summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-05-26 13:09:44 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-05-26 13:09:44 +0700
commit13762b38ef3b0e5dc4139e88af1ba8c62a965401 (patch)
tree676b23250e9d5dc6973eb50654e453d313f39a19
parent1752661b5e580fde5f8a1906406da0e327221b17 (diff)
push
-rwxr-xr-xfixco_custom/models/detail_order.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/fixco_custom/models/detail_order.py b/fixco_custom/models/detail_order.py
index 3eb70b4..aa07f31 100755
--- a/fixco_custom/models/detail_order.py
+++ b/fixco_custom/models/detail_order.py
@@ -180,41 +180,38 @@ class DetailOrder(models.Model):
sale_order.order_reference = order_id
sale_order.action_confirm()
-
self.picking_id = sale_order.picking_ids[0].id
-
self.picking_id.order_reference = order_id
-
self.execute_status = 'so_confirm'
- self.env.cr.commit()
+
else:
sale_orders = self.env['sale.order'].search([('order_reference', '=', order_id)])
if not sale_orders:
data['order_line'] = order_lines
-
sale_order = self.env['sale.order'].create(data)
-
self.sale_id = sale_order.id
sale_order.order_reference = order_id
sale_order.action_confirm()
-
self.picking_id = sale_order.picking_ids[0].id
self.picking_id.order_reference = order_id
-
self.execute_status = 'so_confirm'
else:
self.sale_id = sale_orders.id
self.execute_status = 'already_so'
- self.env.cr.commit()
-
-
-
+
+ # Commit only after all operations succeed
+ self.env.cr.commit()
+
except Exception as e:
+ # Rollback on error
+ self.env.cr.rollback()
self.write({
'message_error': json.dumps({
'error': str(e)
})
})
+ # Optionally re-raise if you want the caller to know about the error
+ raise
def sign_request(self):
signData = '$'.join(['POST', Request_URI]) + '$'