summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2026-03-12 11:58:40 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2026-03-12 11:58:40 +0700
commitbdd80a44d2a69e35f0de3e20c378e17179679498 (patch)
tree0f4b358a50c77fa9d7455c8f2386e221e7bacbf1
parentb0583d9afe66887e53aa2ea80f1701b892fbf67f (diff)
push
-rwxr-xr-xindoteknik_custom/models/purchase_order.py16
-rwxr-xr-xindoteknik_custom/models/sale_order.py4
2 files changed, 11 insertions, 9 deletions
diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py
index d83c0336..8c650fc5 100755
--- a/indoteknik_custom/models/purchase_order.py
+++ b/indoteknik_custom/models/purchase_order.py
@@ -687,17 +687,17 @@ class PurchaseOrder(models.Model):
rec.sync_date_planned_to_so()
def sync_date_planned_to_so(self):
- for line in self.order_sales_match_line:
- other_sales_match = self.env['purchase.order.sales.match'].search([
+ for line in self.forecast_line_ids:
+ forecast = self.env['sale.forecast.coverage'].search([
# ('product_id', '=', line.product_id.id),
- ('sale_id', '=', line.sale_id.id),
+ ('purchase_order_id', '=', line.order_id.id),
# ('sale_line_id', '=', line.sale_line_id.id)
])
- dates = [d for d in other_sales_match.mapped('purchase_order_id.date_planned') if d]
+ dates = [d for d in line.mapped('order_id.date_planned') if d]
if dates:
date_planned = max(dates)
- line.sale_id.write({'et_products': date_planned, 'reason_change_date_planned': line.purchase_order_id.reason_change_date_planned})
+ forecast.sale_id.write({'et_products': date_planned, 'reason_change_date_planned': line.order_id.reason_change_date_planned})
@api.depends('name')
def _compute_bu_related_count(self):
@@ -1585,7 +1585,7 @@ class PurchaseOrder(models.Model):
if '/PJ/' in self.name:
price_change_detected = any(line.price_unit_before for line in self.order_line)
if price_change_detected:
- if self.order_sales_match_line:
+ if self.forecast_line_ids:
if self.total_percent_margin <= 15.0:
raise UserError("Approval Pimpinan diperlukan jika terdapat perubahan Unit Price pada PO Line dan Memiliki Margin <= 15%")
@@ -1869,10 +1869,10 @@ class PurchaseOrder(models.Model):
so_line.purchase_price = line.price_unit
def re_calculate_from_apo(self):
- for line in self.order_sales_match_line:
+ for line in self.forecast_line_ids:
order_line = self.env['purchase.order.line'].search([
('product_id', '=', line.product_id.id),
- ('order_id', '=', line.purchase_order_id.id)
+ ('order_id', '=', line.order_id.id)
], limit=1)
line.sale_line_id.purchase_price = order_line.price_unit
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 042cd483..722dc37a 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -524,6 +524,7 @@ class SaleOrder(models.Model):
'forecast_qty': l.get('quantity'),
'receipt_date': receipt_date,
'document_in_name': supply_name,
+ 'purchase_order_id': doc_in.id,
'reservation': bool(l.get('reservation')),
'is_late': bool(l.get('is_late')),
'replenishment_filled': bool(l.get('replenishment_filled')),
@@ -572,7 +573,7 @@ class SaleOrder(models.Model):
'delivery_date': l.get('delivery_date'),
'document_in_name': doc_in.display_name if doc_in else '',
'document_in_model': doc_in._name if doc_in else '',
- 'document_in_id': doc_in.id if doc_in else False,
+ 'purchase_order_id': doc_in.id if doc_in else False,
'document_out_exists': bool(doc_out),
'reservation': bool(l.get('reservation')),
'is_late': bool(l.get('is_late')),
@@ -4026,6 +4027,7 @@ class SaleForecastCoverage(models.Model):
sale_line_id = fields.Many2one('sale.order.line', index=True)
product_id = fields.Many2one('product.product')
+ purchase_order_id = fields.Many2one('purchase.order')
so_qty = fields.Float()
reserved_qty = fields.Float()