summaryrefslogtreecommitdiff
path: root/fixco_custom/models/detail_order.py
diff options
context:
space:
mode:
Diffstat (limited to 'fixco_custom/models/detail_order.py')
-rwxr-xr-xfixco_custom/models/detail_order.py17
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'):