diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2025-05-26 13:09:44 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2025-05-26 13:09:44 +0700 |
| commit | 13762b38ef3b0e5dc4139e88af1ba8c62a965401 (patch) | |
| tree | 676b23250e9d5dc6973eb50654e453d313f39a19 | |
| parent | 1752661b5e580fde5f8a1906406da0e327221b17 (diff) | |
push
| -rwxr-xr-x | fixco_custom/models/detail_order.py | 21 |
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]) + '$' |
