summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMqdd <ahmadmiqdad27@gmail.com>2026-01-02 20:56:07 +0700
committerMqdd <ahmadmiqdad27@gmail.com>2026-01-02 20:56:07 +0700
commit87b38e373002bdc0ed224bf71762536c0a4d1d85 (patch)
tree2b93f0c9799c128a25e2999392a30b46b6e15294
parent486c306380f7e8dbb57f58013c69fdce6d608e1e (diff)
<Miqdad> add flag when already dispatched (compute)
-rwxr-xr-xfixco_custom/models/stock_picking.py21
-rwxr-xr-xfixco_custom/views/stock_picking.xml3
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"/>