diff options
Diffstat (limited to 'fixco_custom')
| -rwxr-xr-x | fixco_custom/models/detail_order.py | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/fixco_custom/models/detail_order.py b/fixco_custom/models/detail_order.py index aec9ef5..54d3a0a 100755 --- a/fixco_custom/models/detail_order.py +++ b/fixco_custom/models/detail_order.py @@ -123,11 +123,9 @@ class DetailOrder(models.Model): def process_queue_item_detail(self, limit=100): domain = [('execute_status', '=', 'detail_order')] - records = self.search(domain, limit=limit) + records = self.search(domain, order='create_date asc', limit=limit) for rec in records: rec.execute_queue_detail() - - return True def prepare_data_so(self, json_data): data = { @@ -180,38 +178,37 @@ 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' - 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 if sale_order else False + + 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' - - # 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]) + '$' |
