summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2025-05-28 11:30:46 +0700
committerstephanchrst <stephanchrst@gmail.com>2025-05-28 11:30:46 +0700
commit5acd19789a0319887abe7b53fcbbb0a7ba9f8cf1 (patch)
tree5b00f15f6d80c7be3e78099f834e6909a0a50f08
parentc2c8fff66b2aab1fa034fc2b6a12ebb9b4f9fbc6 (diff)
parentae9766498d304a8336737453310e4272929cea73 (diff)
Merge branch 'odoo-backup' of bitbucket.org:altafixco/indoteknik-addons into odoo-backup
# Conflicts: # indoteknik_custom/models/purchase_order.py
-rwxr-xr-xindoteknik_custom/models/purchase_order.py6
-rw-r--r--indoteknik_custom/models/shipment_group.py10
-rw-r--r--indoteknik_custom/models/stock_picking.py11
3 files changed, 15 insertions, 12 deletions
diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py
index b08dcf62..d6b449fd 100755
--- a/indoteknik_custom/models/purchase_order.py
+++ b/indoteknik_custom/models/purchase_order.py
@@ -808,8 +808,8 @@ class PurchaseOrder(models.Model):
# test = line.product_uom_qty
# test2 = line.product_id.plafon_qty
# test3 = test2 + line.product_uom_qty
- if line.product_uom_qty > line.product_id.plafon_qty + line.product_uom_qty and not self.env.user.has_group('indoteknik_custom.group_role_merchandiser'):
- raise UserError('Product '+line.product_id.name+' melebihi plafon, harus Approval MD')
+ if line.product_uom_qty > line.product_id.plafon_qty + line.product_uom_qty and not self.env.user.id == 21:
+ raise UserError('Product '+line.product_id.name+' melebihi plafon, harus Approval Rafly')
def check_different_vendor_so_po(self):
vendor_po = self.partner_id.id
@@ -834,7 +834,7 @@ class PurchaseOrder(models.Model):
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.is_leader:
+ 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:
self.env.user.notify_danger(
title='WARNING!!!',
message='Beda Margin dengan Sale Order',
diff --git a/indoteknik_custom/models/shipment_group.py b/indoteknik_custom/models/shipment_group.py
index 2d84d54c..fcde39c9 100644
--- a/indoteknik_custom/models/shipment_group.py
+++ b/indoteknik_custom/models/shipment_group.py
@@ -19,11 +19,13 @@ class ShipmentGroup(models.Model):
def sync_api_shipping(self):
for rec in self.shipment_line:
+ picking_names = [lines.picking_id.name for lines in self.shipment_line]
if rec.shipment_id.carrier_id.id == 173:
- rec.picking_id.action_get_kgx_pod()
-
- if rec.shipment_id.carrier_id.id == 151:
- rec.picking_id.track_envio_shipment()
+ rec.picking_id.action_get_kgx_pod(
+ shipment=f"{self.number}, {', '.join(picking_names)}"
+ )
+ elif rec.shipment_id.carrier_id.id == 151:
+ rec.picking_id.track_envio_shipment(shipment=f"{self.number}")
@api.depends('shipment_line.total_colly')
def _compute_total_colly_line(self):
diff --git a/indoteknik_custom/models/stock_picking.py b/indoteknik_custom/models/stock_picking.py
index 05f946fd..ea52450e 100644
--- a/indoteknik_custom/models/stock_picking.py
+++ b/indoteknik_custom/models/stock_picking.py
@@ -310,10 +310,10 @@ class StockPicking(models.Model):
except ValueError:
return False
- def action_get_kgx_pod(self):
+ def action_get_kgx_pod(self, shipment=False):
self.ensure_one()
- awb_number = self._get_kgx_awb_number()
+ awb_number = shipment or self._get_kgx_awb_number()
if not awb_number:
raise UserError("Nomor AWB tidak dapat dibuat, pastikan picking memiliki name dan origin")
@@ -619,18 +619,19 @@ class StockPicking(models.Model):
except ValueError:
raise UserError(f"Format waktu tidak sesuai: {date_str}")
- def track_envio_shipment(self):
+ def track_envio_shipment(self, shipment=False):
pickings = self.env['stock.picking'].search([
('picking_type_code', '=', 'outgoing'),
('state', '=', 'done'),
('carrier_id', '=', 151)
])
- for picking in pickings:
+ for picking in self:
+ name = shipment or picking.name
if not picking.name:
raise UserError("Name pada stock.picking tidak ditemukan.")
# API URL dan headers
- url = f"https://api.envio.co.id/v1/tracking/distribution?code={picking.name}"
+ url = f"https://api.envio.co.id/v1/tracking/distribution?code={name}"
headers = {
'Authorization': 'Bearer JZ0Seh6qpYJAC3CJHdhF7sPqv8B/uSSfZe1VX5BL?vPYdo',
'Content-Type': 'application/json',