From ba7000f3d95b4d10112def2a668f5c3d0fecc634 Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 1 Sep 2025 07:07:28 +0300 Subject: [PATCH] feat: implement order cancellation for assemblies and handle error responses --- routes/assembly.py | 8 ++++++++ sipro/api/orders.py | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/routes/assembly.py b/routes/assembly.py index b134ae2..2a06527 100644 --- a/routes/assembly.py +++ b/routes/assembly.py @@ -149,6 +149,14 @@ def cancel_assembly(): 'message': 'У вас нет активных сборок' } return jsonify(response) + order_id = assembly.order_id + sipro_response = sipro.api.orders.cancel_order_assembly(order_id) + if not sipro_response.get('ok'): + response = { + 'ok': False, + 'message': f'Ошибка: {sipro_response.get("message")}' + } + return jsonify(response) database.db.session.delete(assembly) database.db.session.commit() response = { diff --git a/sipro/api/orders.py b/sipro/api/orders.py index 1c4eb8a..8e7fae4 100644 --- a/sipro/api/orders.py +++ b/sipro/api/orders.py @@ -58,4 +58,11 @@ def attach_crpt(order_product_id, crpt): def need_crpt_by_order_id(order_id): method = f'{router}/needCrptByOrder?orderId={order_id}' response = client.method('GET', method) + return response + + +def cancel_order_assembly(order_id): + method = f'{router}/cancelOrderAssembly' + data = {'orderId': order_id} + response = client.method('POST', method, data=data) return response \ No newline at end of file