diff --git a/addons/account_edi/models/account_move.py b/addons/account_edi/models/account_move.py index 48fce7f0c722977b077c3ecf6b31e6f8d702e755..8d4f0479d8fc0c0a0a3e77993ddc0ec8295b7477 100644 --- a/addons/account_edi/models/account_move.py +++ b/addons/account_edi/models/account_move.py @@ -188,12 +188,15 @@ class AccountMove(models.Model): tax_values_list = invoice_lines_tax_values_dict[invoice_line] = [] rate = abs(invoice_line.balance) / abs(invoice_line.amount_currency) if invoice_line.amount_currency else 0.0 for tax_res in taxes_res['taxes']: + tax_amount = tax_res['amount'] * rate + if self.company_id.tax_calculation_rounding_method == 'round_per_line': + tax_amount = invoice_line.company_currency_id.round(tax_amount) tax_values_list.append({ 'base_line_id': invoice_line, 'tax_id': self.env['account.tax'].browse(tax_res['id']), 'tax_repartition_line_id': self.env['account.tax.repartition.line'].browse(tax_res['tax_repartition_line_id']), 'base_amount': sign * invoice_line.company_currency_id.round(tax_res['base'] * rate), - 'tax_amount': sign * invoice_line.company_currency_id.round(tax_res['amount'] * rate), + 'tax_amount': sign * tax_amount, 'base_amount_currency': sign * tax_res['base'], 'tax_amount_currency': sign * tax_res['amount'], })