diff --git a/osi_avatax_rounding_fix/README.rst b/osi_avatax_rounding_fix/README.rst new file mode 100644 index 000000000..abfc6e930 --- /dev/null +++ b/osi_avatax_rounding_fix/README.rst @@ -0,0 +1,23 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +======== +Overview +======== + +* Correct rounding issues on avatax lines + + +======= +Credits +======= + +* Open Source Integrators + + +Contributors +------------ + +* Tirth Patel +* Raphael Lee diff --git a/osi_avatax_rounding_fix/__init__.py b/osi_avatax_rounding_fix/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/osi_avatax_rounding_fix/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/osi_avatax_rounding_fix/__manifest__.py b/osi_avatax_rounding_fix/__manifest__.py new file mode 100644 index 000000000..7430c66b1 --- /dev/null +++ b/osi_avatax_rounding_fix/__manifest__.py @@ -0,0 +1,17 @@ +{ # noqa + "name": "OSI Avatax Rounding Fix", + "summary": "OSI Avatax Rounding Fix", + "version": "17.0.1.0.0", + "license": "LGPL-3", + "author": "Open Source Integrators", + "maintainer": "Open Source Integrators", + "website": "https://github.com/ursais/osi-addons", + "category": "Accounting", + "depends": [ + "account_avatax_sale_oca", + ], + "data": [], + "application": False, + "installable": True, + "auto_install": False, +} diff --git a/osi_avatax_rounding_fix/models/__init__.py b/osi_avatax_rounding_fix/models/__init__.py new file mode 100644 index 000000000..b60632946 --- /dev/null +++ b/osi_avatax_rounding_fix/models/__init__.py @@ -0,0 +1 @@ +from . import account_tax diff --git a/osi_avatax_rounding_fix/models/account_tax.py b/osi_avatax_rounding_fix/models/account_tax.py new file mode 100644 index 000000000..e091ebcbf --- /dev/null +++ b/osi_avatax_rounding_fix/models/account_tax.py @@ -0,0 +1,18 @@ +from odoo import api, models + + +class AccountTax(models.Model): + _inherit = "account.tax" + + @api.model + def _prepare_tax_totals( + self, base_lines, currency, tax_lines=None, is_company_currency_requested=False + ): + vals = super()._prepare_tax_totals( + base_lines, currency, tax_lines, is_company_currency_requested + ) + if vals.get("amount_untaxed"): + vals["amount_untaxed"] = round(vals["amount_untaxed"], 2) + if vals.get("amount_total"): + vals["amount_total"] = round(vals["amount_total"], 2) + return vals