summaryrefslogtreecommitdiff
path: root/fixco_custom/models/stock_picking.py
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 /fixco_custom/models/stock_picking.py
parent486c306380f7e8dbb57f58013c69fdce6d608e1e (diff)
<Miqdad> add flag when already dispatched (compute)
Diffstat (limited to 'fixco_custom/models/stock_picking.py')
-rwxr-xr-xfixco_custom/models/stock_picking.py21
1 files changed, 14 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/'):