From 8ae9c244aa06c07d3723cf7a330125bc743c7533 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Thu, 6 Jul 2023 16:55:03 +0700 Subject: if purchase_ok false then cant running action confirm on po --- indoteknik_custom/models/purchase_order.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'indoteknik_custom/models/purchase_order.py') diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py index 13ff2931..1eb76370 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -191,6 +191,9 @@ class PurchaseOrder(models.Model): raise UserError("Beda Margin dengan Sales, harus approval Manager") if not self.sale_order_id and not self.env.user.is_purchasing_manager and not self.env.user.is_leader: raise UserError("Tidak ada link dengan SO, harus approval Manager") + for line in self.order_line: + if not line.product_id.purchase_ok: + raise UserError("Terdapat barang yang tidak bisa di proses") self.approval_status = 'approved' self.po_status = 'menunggu' -- cgit v1.2.3 From f60d2e5a3011a06d5b72c4aac80e11da642368e2 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Mon, 10 Jul 2023 14:51:39 +0700 Subject: Re-Calculate SO di PO --- indoteknik_custom/models/purchase_order.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'indoteknik_custom/models/purchase_order.py') diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py index 1eb76370..efc98e2f 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -215,6 +215,18 @@ class PurchaseOrder(models.Model): else: self.approval_status = 'pengajuan1' + def re_calculate(self): + for line in self.order_line: + sale_order_line = self.env['sale.order.line'].search( + [('product_id', '=', line.product_id.id), + ('order_id', '=', line.order_id.sale_order_id.id)], limit=1, order='price_reduce_taxexcl') + + unit_price = line.price_unit + sale_order_line.purchase_price = unit_price + + total_percent_margin = self.total_percent_margin + self.sale_order_id.total_percent_margin = total_percent_margin + def button_cancel(self): res = super(PurchaseOrder, self).button_cancel() self.approval_status = False -- cgit v1.2.3 From fca284ba540d92c8e379d7779173278408a8d31f Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Mon, 10 Jul 2023 15:20:13 +0700 Subject: refactor Re-Calculate SO di PO --- indoteknik_custom/models/purchase_order.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'indoteknik_custom/models/purchase_order.py') diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py index efc98e2f..db76a919 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -220,12 +220,9 @@ class PurchaseOrder(models.Model): sale_order_line = self.env['sale.order.line'].search( [('product_id', '=', line.product_id.id), ('order_id', '=', line.order_id.sale_order_id.id)], limit=1, order='price_reduce_taxexcl') - - unit_price = line.price_unit - sale_order_line.purchase_price = unit_price - - total_percent_margin = self.total_percent_margin - self.sale_order_id.total_percent_margin = total_percent_margin + for so_line in sale_order_line: + unit_price = line.price_unit + so_line.purchase_price = unit_price def button_cancel(self): res = super(PurchaseOrder, self).button_cancel() -- cgit v1.2.3 From 03910d19a28cf5c7507a2763bc42875546f2b139 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Mon, 10 Jul 2023 15:55:55 +0700 Subject: refactor re calculate po --- indoteknik_custom/models/purchase_order.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'indoteknik_custom/models/purchase_order.py') diff --git a/indoteknik_custom/models/purchase_order.py b/indoteknik_custom/models/purchase_order.py index db76a919..7091bb72 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -217,9 +217,10 @@ class PurchaseOrder(models.Model): def re_calculate(self): for line in self.order_line: - sale_order_line = self.env['sale.order.line'].search( - [('product_id', '=', line.product_id.id), - ('order_id', '=', line.order_id.sale_order_id.id)], limit=1, order='price_reduce_taxexcl') + sale_order_line = self.env['sale.order.line'].search([ + ('product_id', '=', line.product_id.id), + ('order_id', '=', line.order_id.sale_order_id.id) + ], limit=1, order='price_reduce_taxexcl') for so_line in sale_order_line: unit_price = line.price_unit so_line.purchase_price = unit_price -- cgit v1.2.3