diff options
| author | Azka Nathan <darizkyfaz@gmail.com> | 2025-06-17 13:19:59 +0700 |
|---|---|---|
| committer | Azka Nathan <darizkyfaz@gmail.com> | 2025-06-17 13:19:59 +0700 |
| commit | 9d192973e402a12616e9d52db50db5f32f10e42e (patch) | |
| tree | 045d1935d1710c6e62602df738ad3983f1dab3a7 | |
| parent | 249922cdf5604b2eeb3d75820d388cd17b91116b (diff) | |
push
| -rwxr-xr-x | fixco_custom/models/detail_order.py | 35 | ||||
| -rwxr-xr-x | fixco_custom/models/stock_picking.py | 11 | ||||
| -rwxr-xr-x | fixco_custom/views/detail_order.xml | 1 | ||||
| -rwxr-xr-x | fixco_custom/views/webhook_ginee.xml | 6 |
4 files changed, 37 insertions, 16 deletions
diff --git a/fixco_custom/models/detail_order.py b/fixco_custom/models/detail_order.py index 2c82db6..acac8e6 100755 --- a/fixco_custom/models/detail_order.py +++ b/fixco_custom/models/detail_order.py @@ -24,6 +24,7 @@ class DetailOrder(models.Model): ('from_webhook', 'From Webhook'), ('detail_order', 'Detail Order'), ('so_confirm', 'SO Confirm'), + ('so_draft', 'SO Draft'), ('done', 'Done'), ('failed', 'Failed'), ('already_so', 'SO Already Created'), @@ -228,15 +229,16 @@ class DetailOrder(models.Model): sale_order.note_by_buyer = json_data.get('data', [{}])[0].get('extraInfo', []).get('noteByBuyer', []) if not product_not_found: sale_order.action_confirm() - - self.picking_id = sale_order.picking_ids[0].id - self.picking_id.order_reference = order_id - self.picking_id.invoice_mp = sale_order.invoice_mp - self.picking_id.carrier = sale_order.carrier - self.picking_id.address = json_data.get('data', [{}])[0].get('shippingAddressInfo', []).get('fullAddress', []) - self.picking_id.note_by_buyer = json_data.get('data', [{}])[0].get('extraInfo', []).get('noteByBuyer', []) + # self.picking_id = sale_order.picking_ids[0].id + # self.picking_id.order_reference = order_id + # self.picking_id.invoice_mp = sale_order.invoice_mp + # self.picking_id.carrier = sale_order.carrier + # self.picking_id.address = json_data.get('data', [{}])[0].get('shippingAddressInfo', []).get('fullAddress', []) + # self.picking_id.note_by_buyer = json_data.get('data', [{}])[0].get('extraInfo', []).get('noteByBuyer', []) - self.execute_status = 'so_confirm' + self.execute_status = 'so_confirm' + else: + self.execute_status = 'so_draft' else: # For other statuses, create new order only if it doesn't exist data['order_line'] = order_lines @@ -248,15 +250,16 @@ class DetailOrder(models.Model): sale_order.note_by_buyer = json_data.get('data', [{}])[0].get('extraInfo', []).get('noteByBuyer', []) if not product_not_found: sale_order.action_confirm() + # self.picking_id = sale_order.picking_ids[0].id + # self.picking_id.order_reference = order_id + # self.picking_id.invoice_mp = sale_order.invoice_mp + # self.picking_id.carrier = sale_order.carrier + # self.picking_id.address = json_data.get('data', [{}])[0].get('shippingAddressInfo', []).get('fullAddress', []) + # self.picking_id.note_by_buyer = json_data.get('data', [{}])[0].get('extraInfo', []).get('noteByBuyer', []) - self.picking_id = sale_order.picking_ids[0].id - self.picking_id.order_reference = order_id - self.picking_id.invoice_mp = sale_order.invoice_mp - self.picking_id.carrier = sale_order.carrier - self.picking_id.address = json_data.get('data', [{}])[0].get('shippingAddressInfo', []).get('fullAddress', []) - self.picking_id.note_by_buyer = json_data.get('data', [{}])[0].get('extraInfo', []).get('noteByBuyer', []) - - self.execute_status = 'so_confirm' + self.execute_status = 'so_confirm' + else: + self.execute_status = 'so_draft' except Exception as e: self.write({ diff --git a/fixco_custom/models/stock_picking.py b/fixco_custom/models/stock_picking.py index 78d4c16..07247f4 100755 --- a/fixco_custom/models/stock_picking.py +++ b/fixco_custom/models/stock_picking.py @@ -39,6 +39,17 @@ class StockPicking(models.Model): carrier = fields.Char(string='Shipping Method') shipment_group_id = fields.Many2one('shipment.group', string='Shipment Group', copy=False) + @api.constrains('sale_id') + def _check_sale_order(self): + for picking in self: + if picking.sale_id: + picking.order_reference = picking.sale_id.name + self.picking_id.order_reference = picking.sale_id.order_reference + self.picking_id.invoice_mp = picking.sale_id.invoice_mp + self.picking_id.carrier = picking.sale_id.carrier + self.picking_id.address = picking.sale_id.address + self.picking_id.note_by_buyer = picking.sale_id.note_by_buyer + def open_form_shipment_group(self): return { 'name': _('Create Shipment Group'), diff --git a/fixco_custom/views/detail_order.xml b/fixco_custom/views/detail_order.xml index 2944126..5ab2116 100755 --- a/fixco_custom/views/detail_order.xml +++ b/fixco_custom/views/detail_order.xml @@ -12,6 +12,7 @@ <field name="invoice_id"/> <field name="execute_status"/> <field name="create_date" optional="hide"/> + <field name="write_date" optional="hide"/> </tree> </field> </record> diff --git a/fixco_custom/views/webhook_ginee.xml b/fixco_custom/views/webhook_ginee.xml index 22f3a05..acec9b7 100755 --- a/fixco_custom/views/webhook_ginee.xml +++ b/fixco_custom/views/webhook_ginee.xml @@ -16,6 +16,12 @@ <field name="model">webhook.ginee</field> <field name="arch" type="xml"> <form> + <header> + <button name="execute_queue" + string="Create Detail Order" + type="object" + /> + </header> <sheet> <group> <group> |
