diff options
| author | Mqdd <ahmadmiqdad27@gmail.com> | 2026-01-02 20:56:07 +0700 |
|---|---|---|
| committer | Mqdd <ahmadmiqdad27@gmail.com> | 2026-01-02 20:56:07 +0700 |
| commit | 87b38e373002bdc0ed224bf71762536c0a4d1d85 (patch) | |
| tree | 2b93f0c9799c128a25e2999392a30b46b6e15294 | |
| parent | 486c306380f7e8dbb57f58013c69fdce6d608e1e (diff) | |
<Miqdad> add flag when already dispatched (compute)
| -rwxr-xr-x | fixco_custom/models/stock_picking.py | 21 | ||||
| -rwxr-xr-x | fixco_custom/views/stock_picking.xml | 3 |
2 files changed, 17 insertions, 7 deletions
diff --git a/fixco_custom/models/stock_picking.py b/fixco_custom/models/stock_picking.py index 4b4a850..82714e8 100755 --- a/fixco_custom/models/stock_picking.py +++ b/fixco_custom/models/stock_picking.py @@ -65,6 +65,13 @@ class StockPicking(models.Model): soo_number = fields.Char(string='SOO Altama Number', related='purchase_id.soo_number') type_sku = fields.Selection([('single', 'Single SKU'), ('multi', 'Multi SKU')], string='Type SKU') list_product = fields.Char(string='List Product') + is_dispatched = fields.Boolean(string='Is Dispatched', default=False, compute='_compute_is_dispatched', readonly=True) + + @api.depends('shipment_group_id') + def _compute_is_dispatched(self): + for picking in self: + picking.is_dispatched = bool(picking.shipment_group_id) + def action_cancel_selected_pickings(self): for picking in self: @@ -86,21 +93,21 @@ class StockPicking(models.Model): self.ship_order() def create_invoices(self): - + so_id = self.sale_id.id if not so_id: raise UserError(_("Gaada So nya!")) - + sale_orders = self.env['sale.order'].browse(so_id) created_invoices = self.env['account.move'] - + for order in sale_orders: invoice = order.with_context(default_invoice_origin=order.name)._create_invoices(final=True) invoice.action_post() created_invoices += invoice - + order.invoice_ids += invoice - + if created_invoices: action = { 'name': _('Created Invoice'), @@ -111,14 +118,14 @@ class StockPicking(models.Model): } else: action = {'type': 'ir.actions.act_window_close'} - + return action def button_validate(self): origin = self.origin or '' if any(prefix in origin for prefix in ['PO/', 'SO/']) and not self.check_product_lines and not self.name.startswith('BU/INT'): raise UserError(_("Belum ada check product, gabisa validate")) - + res = super(StockPicking, self).button_validate() # if self.name.startswith('BU/OUT') and self.origin.startswith('SO/'): diff --git a/fixco_custom/views/stock_picking.xml b/fixco_custom/views/stock_picking.xml index cc1fca1..3f946aa 100755 --- a/fixco_custom/views/stock_picking.xml +++ b/fixco_custom/views/stock_picking.xml @@ -12,6 +12,8 @@ <field name="list_product" optional="hide"/> <field name="type_sku" optional="hide"/> <field name="carrier" optional="hide"/> + <field name="shipment_group_id" optional="hide"/> + <field name="is_dispatched" optional="hide"/> </field> </field> </record> @@ -47,6 +49,7 @@ <field name="invoice_number" readonly="1"/> <field name="invoice_mp" readonly="1"/> <field name="shipment_group_id" readonly="1"/> + <field name="is_dispatched" readonly="1"/> <field name="channel" readonly="1"/> <field name="ginee_task_id" readonly="1"/> <field name="pdf_label_url" readonly="1" widget="url"/> |
