diff options
| author | FIN-IT_AndriFP <it@fixcomart.co.id> | 2025-10-01 15:10:10 +0700 |
|---|---|---|
| committer | FIN-IT_AndriFP <it@fixcomart.co.id> | 2025-10-01 15:10:10 +0700 |
| commit | c04dd5a6a38ba35b30a39ed6596514679067e541 (patch) | |
| tree | a5795fd6006e222dc53ff664ef85ecb0e27c6352 /indoteknik_custom/models | |
| parent | 6adb1cb5fe8dbe85b971dc1cad476718f24c38cb (diff) | |
(andri) add so header margin pada matches SO + fix
Diffstat (limited to 'indoteknik_custom/models')
| -rwxr-xr-x | indoteknik_custom/models/purchase_order.py | 4 | ||||
| -rw-r--r-- | indoteknik_custom/models/purchase_order_sales_match.py | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py index a76cdab1..1a88d036 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -1072,10 +1072,10 @@ class PurchaseOrder(models.Model): if self.env.user.id != 7: # Pimpinan if '/PJ/' in self.name: low_margin_lines = self.order_sales_match_line.filtered( - lambda match: match.sale_line_id.item_percent_margin <= 34.0 + lambda match: match.so_header_margin <= 34.0 ) if low_margin_lines: - raise UserError("Matches SO terdapat item dengan margin SO <= 15%. Approval Pimpinan diperlukan.") + raise UserError("Matches SO terdapat item dengan header margin SO <= 15%. Approval Pimpinan diperlukan.") else: is_po_manual = '/A/' not in self.name and '/MO/' not in self.name if is_po_manual: diff --git a/indoteknik_custom/models/purchase_order_sales_match.py b/indoteknik_custom/models/purchase_order_sales_match.py index 084b93f7..ea25a3b1 100644 --- a/indoteknik_custom/models/purchase_order_sales_match.py +++ b/indoteknik_custom/models/purchase_order_sales_match.py @@ -29,6 +29,11 @@ class PurchaseOrderSalesMatch(models.Model): purchase_line_id = fields.Many2one('purchase.order.line', string='Purchase Line', compute='_compute_purchase_line_id') hold_outgoing_so = fields.Boolean(string='Hold Outgoing SO', related='sale_id.hold_outgoing') bu_pick = fields.Many2one('stock.picking', string='BU Pick', compute='compute_bu_pick') + so_header_margin = fields.Float( + related='sale_id.total_percent_margin', + string='SO Header Margin %', + readonly=True + ) def compute_bu_pick(self): for rec in self: |
