summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2025-05-27 09:02:47 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2025-05-27 09:02:47 +0700
commit8ac8c2f8b89e6069bf13e879d486fa9cf4814cb4 (patch)
tree566aaac904476d4ae0540dac1390ccf0dc3b736e
parentc1aefea6e72798848d090abb32bb753c550ce76b (diff)
push cr shipment group, vendor approval and purchase order
-rwxr-xr-xindoteknik_custom/models/purchase_order.py18
-rw-r--r--indoteknik_custom/models/shipment_group.py8
-rw-r--r--indoteknik_custom/models/vendor_approval.py6
-rw-r--r--indoteknik_custom/views/shipment_group.xml7
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 @@
<field name="name">shipment.group.form</field>
<field name="model">shipment.group</field>
<field name="arch" type="xml">
+ <header>
+ <button name="sync_api_shipping"
+ string="Sync API"
+ type="object"
+ attrs="{'invisible': [('carrier_id', 'not in', [151, 173])]}"
+ />
+ </header>
<form>
<sheet>
<group>