[IMP] account: Avatax module installation

Auto install AvaTax module for countries that use AvaTax ('US','BR').
Add a checkbox in settings to easily install the module if needed

task ID: 3398637

closes odoo/odoo#136490

Related: odoo/enterprise#47979
Signed-off-by: Quentin De Paoli <qdp@odoo.com>
This commit is contained in:
Yan Victor
2023-09-27 17:41:00 +00:00
committed by qdp-odoo
parent 9b3fbd1b4b
commit 7032917771
3 changed files with 18 additions and 0 deletions
+13
View File
@@ -35,9 +35,22 @@ def _auto_install_l10n(env):
if module_ids:
module_ids.sudo().button_install()
def _auto_install_avatax(env):
""" Install the avatax module automatically if the company is in a country that uses avatax """
avatax_country_codes = ['US', 'BR']
country = env.company.country_id
country_code = country.code
if country_code in avatax_country_codes:
module = env['ir.module.module'].search([('name', '=', 'account_avatax')])
if module.state == 'uninstalled':
module.sudo().button_install()
def _account_post_init(env):
_auto_install_l10n(env)
_set_fiscal_country(env)
_auto_install_avatax(env)
# imported here to avoid dependency cycle issues
# pylint: disable=wrong-import-position
@@ -114,6 +114,7 @@ class ResConfigSettings(models.TransientModel):
module_product_margin = fields.Boolean(string="Allow Product Margin")
module_l10n_eu_oss = fields.Boolean(string="EU Intra-community Distance Selling")
module_account_taxcloud = fields.Boolean(string="Account TaxCloud")
module_account_avatax = fields.Boolean(string="Account Avatax")
module_account_invoice_extract = fields.Boolean(string="Document Digitization")
module_snailmail_account = fields.Boolean(string="Snailmail")
tax_exigibility = fields.Boolean(string='Cash Basis', related='company_id.tax_exigibility', readonly=False)
@@ -62,6 +62,10 @@
documentation="/applications/finance/accounting/taxation/taxes/taxcloud.html">
<field name="module_account_taxcloud" widget="upgrade_boolean"/>
</setting>
<setting id="avatax_settings" string="AvaTax" help="Automatically compute tax rates"
documentation="/applications/finance/accounting/taxation/taxes/avatax.html">
<field name="module_account_avatax" widget="upgrade_boolean"/>
</setting>
<setting id="eu_service" title="If you sell goods and services to customers in a foreign EU country, you must charge VAT based on the delivery address. This rule applies regardless of where you are located." documentation="/applications/finance/accounting/taxation/taxes/eu_distance_selling.html" help="Apply VAT of the EU country to which goods and services are delivered.">
<field name="module_l10n_eu_oss"/>
</setting>