From e7ff231d611df44b71cbd497424b6077b1c88a87 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Mon, 25 Sep 2023 15:17:15 +0700 Subject: fix miss compute margin po --- indoteknik_custom/models/purchase_order.py | 5 ++--- 1 file changed, 2 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 3fb61955..daf8d269 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -195,6 +195,7 @@ class PurchaseOrder(models.Model): 'product_qty': order_line.product_qty, 'qty_available_store': qty_available, 'suggest': suggest, + 'so_line_id': order_line.id, } self.order_line.create(values) @@ -258,8 +259,6 @@ class PurchaseOrder(models.Model): self.env['po.sync.price'].create([{ 'order_line_id': line.id, }]) - - def _send_mail(self): output = io.BytesIO() @@ -341,7 +340,7 @@ class PurchaseOrder(models.Model): sum_so_margin = sum_sales_price = sum_margin = 0 for line in self.order_line: sale_order_line = self.env['sale.order.line'].search( - [('product_id', '=', line.product_id.id), + [('id', '=', line.so_line_id.id), ('order_id', '=', line.order_id.sale_order_id.id)], limit=1, order='price_reduce_taxexcl') sum_so_margin += sale_order_line.item_margin sales_price = sale_order_line.price_reduce_taxexcl * sale_order_line.product_uom_qty -- cgit v1.2.3 From d324fdd8ea3b14c966510bde610a96c8f5c3e3c5 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 26 Sep 2023 14:56:35 +0700 Subject: Update readonly condition order line on purchase order --- indoteknik_custom/models/purchase_order.py | 5 +++++ 1 file changed, 5 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 daf8d269..92df3119 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -46,6 +46,11 @@ class PurchaseOrder(models.Model): summary_qty_receipt = fields.Float('Summary Qty Receipt', compute='_compute_summary_qty') count_line_product = fields.Float('Total Item', compute='compute_count_line_product') note_description = fields.Char(string='Note', help='bisa diisi sebagai informasi indent barang tertentu atau apapun') + has_active_invoice = fields.Boolean(string='Has Active Invoice', compute='_compute_has_active_invoice') + + def _compute_has_active_invoice(self): + for order in self: + order.has_active_invoice = any(invoice.state != 'cancel' for invoice in order.invoice_ids) def add_product_to_pricelist(self): for line in self.order_line: -- cgit v1.2.3 From 01f308991afffaff5eda1b758dbb98d0f3ba8396 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 26 Sep 2023 15:06:52 +0700 Subject: User can't create data cab on form input, add multi update data sale order to update state and invoice_status --- indoteknik_custom/models/purchase_order.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (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 daf8d269..08f38afe 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -324,7 +324,7 @@ 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), + ('id', '=', line.so_line_id.id), ('order_id', '=', line.order_id.sale_order_id.id) ], limit=1, order='price_reduce_taxexcl') for so_line in sale_order_line: -- cgit v1.2.3 From 41d40976a4400d973a5d3b627196a303cfd0d712 Mon Sep 17 00:00:00 2001 From: Azka Nathan Date: Tue, 26 Sep 2023 16:41:03 +0700 Subject: fix compute margin total --- indoteknik_custom/models/purchase_order.py | 10 +++++++--- 1 file changed, 7 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 6654bfd2..8ad25228 100755 --- a/indoteknik_custom/models/purchase_order.py +++ b/indoteknik_custom/models/purchase_order.py @@ -344,9 +344,13 @@ class PurchaseOrder(models.Model): def compute_total_margin(self): sum_so_margin = sum_sales_price = sum_margin = 0 for line in self.order_line: - sale_order_line = self.env['sale.order.line'].search( - [('id', '=', line.so_line_id.id), - ('order_id', '=', line.order_id.sale_order_id.id)], limit=1, order='price_reduce_taxexcl') + sale_order_line = line.so_line_id + if not sale_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') + sum_so_margin += sale_order_line.item_margin sales_price = sale_order_line.price_reduce_taxexcl * sale_order_line.product_uom_qty if sale_order_line.order_id.shipping_cost_covered == 'indoteknik': -- cgit v1.2.3