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/purchase_order.py | 18 +++++++++++++++--- indoteknik_custom/models/shipment_group.py | 8 ++++++++ indoteknik_custom/models/vendor_approval.py | 6 +++--- indoteknik_custom/views/shipment_group.xml | 7 +++++++ 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py index c5ba5792..cbfd4acd 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -827,11 +827,23 @@ class PurchaseOrder(models.Model): self.check_different_vendor_so_po() # self.check_data_vendor() - if self.amount_untaxed >= 50000000 and not self.env.user.has_group('indoteknik_custom.group_role_merchandiser'): - raise UserError("Hanya Merchandiser yang bisa approve") + if self.amount_untaxed >= 50000000 and not self.env.user.id == 21: + raise UserError("Hanya Rafly Hanggara yang bisa approve") if self.total_percent_margin < self.total_so_percent_margin and not self.env.user.has_group('indoteknik_custom.group_role_merchandiser') and not self.env.user.is_leader: - raise UserError("Beda Margin dengan Sales, harus approval Merchandise") + self.env.user.notify_danger( + title='WARNING!!!', + message='Beda Margin dengan Sale Order', + sticky=True + ) + + if len(self.order_sales_match_line) == 0 and not self.env.user.has_group('indoteknik_custom.group_role_merchandiser') and not self.env.user.is_leader: + self.env.user.notify_danger( + title='WARNING!!!', + message='Tidak ada matches SO', + sticky=True + ) + if not self.from_apo: if not self.matches_so and not self.env.user.has_group('indoteknik_custom.group_role_merchandiser') and not self.env.user.is_leader: raise UserError("Tidak ada link dengan SO, harus approval Merchandise") 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: diff --git a/indoteknik_custom/models/vendor_approval.py b/indoteknik_custom/models/vendor_approval.py index 01d2e6a2..62fd5368 100644 --- a/indoteknik_custom/models/vendor_approval.py +++ b/indoteknik_custom/models/vendor_approval.py @@ -45,7 +45,7 @@ class VendorApproval(models.Model): def action_approve(self): for rec in self: self.check_state_so() - if not self.env.user.has_group('indoteknik_custom.group_role_merchandiser'): + if not self.env.user.has_group('indoteknik_custom.group_role_purchasing'): raise UserError('Hanya Merchandiser yang bisa approve') # Set state menjadi 'done' @@ -65,8 +65,8 @@ class VendorApproval(models.Model): def action_reject(self): for rec in self: self.check_state_so() - if not self.env.user.has_group('indoteknik_custom.group_role_merchandiser'): - raise UserError('Hanya Merchandiser yang bisa cancel') + if not self.env.user.has_group('indoteknik_custom.group_role_purchasing'): + raise UserError('Hanya Procurement yang bisa cancel') rec.state = 'cancel' diff --git a/indoteknik_custom/views/shipment_group.xml b/indoteknik_custom/views/shipment_group.xml index a4f82e27..ea202ee2 100644 --- a/indoteknik_custom/views/shipment_group.xml +++ b/indoteknik_custom/views/shipment_group.xml @@ -30,6 +30,13 @@ shipment.group.form shipment.group +
+
-- cgit v1.2.3