diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2023-05-22 14:36:57 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2023-05-22 14:36:57 +0700 |
| commit | 752db0759177d9e804e9b57ed87e40676a4bcc5d (patch) | |
| tree | 9acb5c7f42c0e67f645ac4c5efce14d521f32989 | |
| parent | d63a3069a30c944b63d784625f046d3e7363eebd (diff) | |
fix sales order monitoring
| -rwxr-xr-x | indoteknik_custom/models/sale_monitoring_detail.py | 1 | ||||
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 18 | ||||
| -rwxr-xr-x | indoteknik_custom/views/sale_monitoring_detail.xml | 2 |
3 files changed, 17 insertions, 4 deletions
diff --git a/indoteknik_custom/models/sale_monitoring_detail.py b/indoteknik_custom/models/sale_monitoring_detail.py index 5fd8e47a..a578f67b 100755 --- a/indoteknik_custom/models/sale_monitoring_detail.py +++ b/indoteknik_custom/models/sale_monitoring_detail.py @@ -29,6 +29,7 @@ class SaleMonitoringDetail(models.Model): SELECT *, CASE + WHEN qty_so = qty_so_invoiced then 'Done' WHEN qty_po < qty_so AND qty_po <= 0 THEN 'Belum PO sama sekali' WHEN qty_po < qty_so THEN 'Belum PO full' WHEN qty_po_received < qty_so and qty_po_received <= 0 THEN 'Belum Received sama sekali' diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index 14c87641..85d7e595 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -421,9 +421,21 @@ class SaleOrderLine(models.Model): def onchange_vendor_id(self): if not self.product_id or self.product_id.type == 'service': return - purchase_price = self.env['purchase.pricelist'].search( - [('vendor_id', '=', self.vendor_id.id), ('product_id', '=', self.product_id.id)], limit=1) - self.purchase_price = purchase_price.product_price + elif self.product_id.categ_id.id == 34: # finish good / manufacturing only + print('a') + bom = self.env['mrp.bom'].search( + [('product_tmpl_id', '=', self.product_id.product_tmpl_id.id)] + , limit=1) + cost = 0 + for line in bom.bom_line_ids: + purchase_price = self.env['purchase.pricelist'].search( + [('vendor_id', '=', self.vendor_id.id), ('product_id', '=', line.product_id.id)], limit=1) + cost += purchase_price.product_price + self.purchase_price = cost + else: + purchase_price = self.env['purchase.pricelist'].search( + [('vendor_id', '=', self.vendor_id.id), ('product_id', '=', self.product_id.id)], limit=1) + self.purchase_price = purchase_price.product_price self.purchase_tax_id = 22 @api.onchange('product_id') diff --git a/indoteknik_custom/views/sale_monitoring_detail.xml b/indoteknik_custom/views/sale_monitoring_detail.xml index d1d900f6..b9602abd 100755 --- a/indoteknik_custom/views/sale_monitoring_detail.xml +++ b/indoteknik_custom/views/sale_monitoring_detail.xml @@ -20,7 +20,7 @@ decoration-danger="status == 'Belum PO sama sekali' or status == 'Belum PO full'" decoration-warning="status == 'Belum Received sama sekali' or status == 'Belum Received full'" decoration-success="status == 'SIAP KIRIM' or status == 'KIRIM SISANYA'" - decoration-info="status == 'Belum Invoiced'" + decoration-info="status == 'Belum Invoiced' or status == 'Done'" /> </tree> </field> |
