From bc89a3ae2ac20a53d46d8e50da4a3427f44bd870 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 8 May 2025 13:41:03 +0700 Subject: push --- indoteknik_custom/models/shipment_group.py | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'indoteknik_custom/models/shipment_group.py') diff --git a/indoteknik_custom/models/shipment_group.py b/indoteknik_custom/models/shipment_group.py index df3f1bb4..b7d7ac12 100644 --- a/indoteknik_custom/models/shipment_group.py +++ b/indoteknik_custom/models/shipment_group.py @@ -14,6 +14,13 @@ class ShipmentGroup(models.Model): number = fields.Char(string='Document No', index=True, copy=False, readonly=True, tracking=True) shipment_line = fields.One2many('shipment.group.line', 'shipment_id', string='Shipment Group Lines', auto_join=True) partner_id = fields.Many2one('res.partner', string='Customer') + carrier_id = fields.Many2one('delivery.carrier', string='Ekspedisi') + total_colly_line = fields.Float(string='Total Colly', compute='_compute_total_colly_line') + + @api.depends('shipment_line.total_colly') + def _compute_total_colly_line(self): + for rec in self: + rec.total_colly_line = sum(rec.shipment_line.mapped('total_colly')) @api.model def create(self, vals): @@ -35,6 +42,26 @@ class ShipmentGroupLine(models.Model): ('indoteknik', 'Indoteknik'), ('customer', 'Customer') ], string='Shipping Paid by', copy=False) + total_colly = fields.Float(string='Total Colly') + carrier_id = fields.Many2one('delivery.carrier', string='Ekspedisi') + + @api.constrains('picking_id') + def _check_picking_id(self): + for rec in self: + if not rec.picking_id: + continue + + duplicates = self.env['shipment.group.line'].search([ + ('picking_id', '=', rec.picking_id.id), + ('id', '!=', rec.id) + ]) + + if duplicates: + shipment_numbers = duplicates.mapped('shipment_id.number') + raise UserError( + f"Picking {rec.picking_id.name} sudah discan dalam shipment group berikut: {', '.join(shipment_numbers)}! " + "Satu picking hanya boleh dimasukkan dalam satu shipment group." + ) @api.depends('picking_id.state') def _compute_state(self): @@ -63,12 +90,20 @@ class ShipmentGroupLine(models.Model): if self.shipment_id.partner_id and self.shipment_id.partner_id != picking.partner_id: raise UserError('Partner must be same as shipment group') + if self.shipment_id.carrier_id and self.shipment_id.carrier_id != picking.carrier_id: + raise UserError('carrier must be same as shipment group') + self.partner_id = picking.partner_id self.shipping_paid_by = picking.sale_id.shipping_paid_by + self.carrier_id = picking.carrier_id.id + self.total_colly = picking.total_mapping_koli if not self.shipment_id.partner_id: self.shipment_id.partner_id = picking.partner_id + if not self.shipment_id.carrier_id: + self.shipment_id.carrier_id = picking.carrier_id + self.sale_id = picking.sale_id @api.model -- cgit v1.2.3 From 1d7a2902b1b97e6fb7951252cf851695d6a8ee8e Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Wed, 14 May 2025 15:09:46 +0700 Subject: shipment group --- indoteknik_custom/models/shipment_group.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'indoteknik_custom/models/shipment_group.py') diff --git a/indoteknik_custom/models/shipment_group.py b/indoteknik_custom/models/shipment_group.py index b7d7ac12..a4bea9c4 100644 --- a/indoteknik_custom/models/shipment_group.py +++ b/indoteknik_custom/models/shipment_group.py @@ -93,6 +93,9 @@ class ShipmentGroupLine(models.Model): if self.shipment_id.carrier_id and self.shipment_id.carrier_id != picking.carrier_id: raise UserError('carrier must be same as shipment group') + if picking.total_mapping_koli == 0: + raise UserError(f'Picking {picking.name} tidak memiliki mapping koli') + self.partner_id = picking.partner_id self.shipping_paid_by = picking.sale_id.shipping_paid_by self.carrier_id = picking.carrier_id.id -- cgit v1.2.3 From 4360e1fd9f3af2c18b19463773047d9939716069 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Fri, 16 May 2025 09:27:25 +0700 Subject: revisi shipment group --- indoteknik_custom/models/shipment_group.py | 6 ------ 1 file changed, 6 deletions(-) (limited to 'indoteknik_custom/models/shipment_group.py') diff --git a/indoteknik_custom/models/shipment_group.py b/indoteknik_custom/models/shipment_group.py index a4bea9c4..48a3fa21 100644 --- a/indoteknik_custom/models/shipment_group.py +++ b/indoteknik_custom/models/shipment_group.py @@ -87,9 +87,6 @@ class ShipmentGroupLine(models.Model): if self.picking_id: picking = self.env['stock.picking'].browse(self.picking_id.id) - if self.shipment_id.partner_id and self.shipment_id.partner_id != picking.partner_id: - raise UserError('Partner must be same as shipment group') - if self.shipment_id.carrier_id and self.shipment_id.carrier_id != picking.carrier_id: raise UserError('carrier must be same as shipment group') @@ -101,9 +98,6 @@ class ShipmentGroupLine(models.Model): self.carrier_id = picking.carrier_id.id self.total_colly = picking.total_mapping_koli - if not self.shipment_id.partner_id: - self.shipment_id.partner_id = picking.partner_id - if not self.shipment_id.carrier_id: self.shipment_id.carrier_id = picking.carrier_id -- cgit v1.2.3 From 8ac8c2f8b89e6069bf13e879d486fa9cf4814cb4 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 27 May 2025 09:02:47 +0700 Subject: push cr shipment group, vendor approval and purchase order --- indoteknik_custom/models/shipment_group.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'indoteknik_custom/models/shipment_group.py') diff --git a/indoteknik_custom/models/shipment_group.py b/indoteknik_custom/models/shipment_group.py index 48a3fa21..87d222a6 100644 --- a/indoteknik_custom/models/shipment_group.py +++ b/indoteknik_custom/models/shipment_group.py @@ -17,6 +17,14 @@ class ShipmentGroup(models.Model): carrier_id = fields.Many2one('delivery.carrier', string='Ekspedisi') total_colly_line = fields.Float(string='Total Colly', compute='_compute_total_colly_line') + def sync_api_shipping(self): + for rec in self.shipment_line: + if rec.shipment_id.carrier_id == 173: + rec.picking_id.action_get_kgx_pod() + + if rec.shipment_id.carrier_id == 151: + rec.picking_id.track_envio_shipment() + @api.depends('shipment_line.total_colly') def _compute_total_colly_line(self): for rec in self: -- cgit v1.2.3