diff options
Diffstat (limited to 'fixco_custom/models/detail_order.py')
| -rwxr-xr-x | fixco_custom/models/detail_order.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/fixco_custom/models/detail_order.py b/fixco_custom/models/detail_order.py index 188424a..e8e87aa 100755 --- a/fixco_custom/models/detail_order.py +++ b/fixco_custom/models/detail_order.py @@ -276,13 +276,6 @@ class DetailOrder(models.Model): # First check if a sale order with this reference already exists existing_order = self.env['sale.order'].search([('order_reference', '=', order_id)], limit=1) - if existing_order: - # If order already exists, just update the references - self.sale_id = existing_order.id - self.execute_status = 'already_so' - return # Exit early since we don't need to create anything - - # Handle cancelled orders if order_status == 'CANCELLED': external_order_id = json_data.get('data', [{}])[0].get('externalOrderId') order_id = json_data.get('data', [{}])[0].get('orderId') @@ -302,10 +295,12 @@ class DetailOrder(models.Model): picking.action_cancel() self.sale_id = existing_order.id self.execute_status = 'cancelled_so_picking' + existing_order.action_cancel() else: existing_order.action_cancel() self.sale_id = existing_order.id self.execute_status = 'cancelled_so' + else: # If no existing SO, create one, then cancel data = self.prepare_data_so(json_data) @@ -320,6 +315,14 @@ class DetailOrder(models.Model): sale_order.action_cancel() self.execute_status = 'cancelled_so_created' + + return + + if existing_order: + # If order already exists, just update the references + self.sale_id = existing_order.id + self.execute_status = 'already_so' + return # Exit early since we don't need to create anything if order_status != 'PENDING_PAYMENT': if order_status in ('PARTIALLY_PAID', 'PAID'): |
