From 7a8c2750ffe9ca90edba50cc29a2d1277278c77a Mon Sep 17 00:00:00 2001 From: Haresh Chavda Date: Fri, 21 Sep 2018 16:42:10 +0530 Subject: [PATCH] [IMP]: Rounding issues for sale/account discount and remove the line in the invoice when the shipment is not create in purchase order line --- addons/account_discount/models/account_invoice.py | 2 +- addons/purchase/models/account_invoice.py | 7 ++++--- addons/sales_discount/models/sale.py | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/addons/account_discount/models/account_invoice.py b/addons/account_discount/models/account_invoice.py index 16ad498b..f62da34e 100644 --- a/addons/account_discount/models/account_invoice.py +++ b/addons/account_discount/models/account_invoice.py @@ -26,7 +26,7 @@ class AccountInvoice(models.Model): def _get_total_amount(self): for invoice_id in self: invoice_id.gross_amount = sum( - [line_id.quantity * line_id.price_unit + [invoice_id.currency_id.round(line_id.quantity * line_id.price_unit) for line_id in invoice_id.invoice_line_ids]) discount_method = fields.Selection( diff --git a/addons/purchase/models/account_invoice.py b/addons/purchase/models/account_invoice.py index 93865444..350cdac7 100644 --- a/addons/purchase/models/account_invoice.py +++ b/addons/purchase/models/account_invoice.py @@ -81,9 +81,10 @@ class AccountInvoice(models.Model): new_lines = self.env['account.invoice.line'] for line in self.purchase_id.order_line - self.invoice_line_ids.mapped('purchase_line_id'): data = self._prepare_invoice_line_from_po_line(line) - new_line = new_lines.new(data) - new_line._set_additional_fields(self) - new_lines += new_line + if data.get('quantity', False) > 0: + new_line = new_lines.new(data) + new_line._set_additional_fields(self) + new_lines += new_line self.invoice_line_ids += new_lines self.payment_term_id = self.purchase_id.payment_term_id diff --git a/addons/sales_discount/models/sale.py b/addons/sales_discount/models/sale.py index d42e6504..a7c844c5 100644 --- a/addons/sales_discount/models/sale.py +++ b/addons/sales_discount/models/sale.py @@ -26,8 +26,8 @@ class SaleOrder(models.Model): def _get_total_amount(self): for order_id in self: order_id.gross_amount = sum( - [line_id.product_uom_qty * - line_id.price_unit for line_id in order_id.order_line]) + [order_id.pricelist_id.currency_id.round(line_id.product_uom_qty * + line_id.price_unit) for line_id in order_id.order_line]) discount_method = fields.Selection( [('fixed', 'Fixed'), ('per', 'Percentage')], string="Discount Method")