From cc676c3f06f2c6e797c9c45921595b9e50e5707b Mon Sep 17 00:00:00 2001 From: Andreas Osim Date: Tue, 25 Feb 2025 10:56:48 +0100 Subject: [PATCH] UBL Integration --- .../account_tax_unece/README.rst | 61 +++ .../account_tax_unece/__init__.py | 3 + .../account_tax_unece/__manifest__.py | 22 + .../account_tax_unece/data/unece_date.xml | 32 ++ .../data/unece_tax_categ.xml | 155 +++++++ .../account_tax_unece/data/unece_tax_type.xml | 386 ++++++++++++++++++ .../i18n/account_tax_unece.pot | 84 ++++ .../account_tax_unece/models/__init__.py | 5 + .../account_tax_unece/models/account_tax.py | 40 ++ .../models/account_tax_template.py | 33 ++ .../models/unece_code_list.py | 15 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../account_tax_unece/views/account_tax.xml | 25 ++ .../views/account_tax_template.xml | 26 ++ 14 files changed, 887 insertions(+) create mode 100644 ext/custom-addons/account_tax_unece/README.rst create mode 100644 ext/custom-addons/account_tax_unece/__init__.py create mode 100644 ext/custom-addons/account_tax_unece/__manifest__.py create mode 100644 ext/custom-addons/account_tax_unece/data/unece_date.xml create mode 100644 ext/custom-addons/account_tax_unece/data/unece_tax_categ.xml create mode 100644 ext/custom-addons/account_tax_unece/data/unece_tax_type.xml create mode 100644 ext/custom-addons/account_tax_unece/i18n/account_tax_unece.pot create mode 100644 ext/custom-addons/account_tax_unece/models/__init__.py create mode 100644 ext/custom-addons/account_tax_unece/models/account_tax.py create mode 100644 ext/custom-addons/account_tax_unece/models/account_tax_template.py create mode 100644 ext/custom-addons/account_tax_unece/models/unece_code_list.py create mode 100644 ext/custom-addons/account_tax_unece/static/description/icon.png create mode 100644 ext/custom-addons/account_tax_unece/views/account_tax.xml create mode 100644 ext/custom-addons/account_tax_unece/views/account_tax_template.xml diff --git a/ext/custom-addons/account_tax_unece/README.rst b/ext/custom-addons/account_tax_unece/README.rst new file mode 100644 index 00000000..f0e8ad51 --- /dev/null +++ b/ext/custom-addons/account_tax_unece/README.rst @@ -0,0 +1,61 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: https://www.gnu.org/licenses/agpl + :alt: License: AGPL-3 + +============= +Account UNECE +============= + +This module adds two fields *UNECE Type Code* and *UNECE Category Code* on taxes to allow the use of the standards written by the `United Nations Economic Commission for Europe `_ (which has 56 members states in Europe, America and Central Asia, cf `Wikipedia `_): + +* the UNECE Tax Type code is defined in the `DataElement 5153 `_, +* the UNECE Tax Category Code is defined in the `DataElement 5305 `_. + +This codification is part of the UNCL (United Nations Code List). This codification is used for example in the two main international standards for electronic invoicing: + +* `Cross Industry Invoice `_ (CII), +* `Universal Business Language `_ (UBL). + +Configuration +============= + +Go to the menu *Accounting > Configuration > Accounting > Taxes* and configure the *UNECE Type Code* (the value should be *VAT* for most of your taxes) and the *UNECE Category Code*. + +Usage +===== + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/101/11.0 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smash it by providing detailed and welcomed feedback. + +Credits +======= + +Contributors +------------ + +* Alexis de Lattre +* Andrea Stirpe + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/ext/custom-addons/account_tax_unece/__init__.py b/ext/custom-addons/account_tax_unece/__init__.py new file mode 100644 index 00000000..31660d6a --- /dev/null +++ b/ext/custom-addons/account_tax_unece/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import models diff --git a/ext/custom-addons/account_tax_unece/__manifest__.py b/ext/custom-addons/account_tax_unece/__manifest__.py new file mode 100644 index 00000000..12a82951 --- /dev/null +++ b/ext/custom-addons/account_tax_unece/__manifest__.py @@ -0,0 +1,22 @@ +# Copyright 2016 Akretion (http://www.akretion.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +# @author Alexis de Lattre + +{ + 'name': 'Account Tax UNECE', + 'version': '11.0.1.1.2', + 'category': 'Accounting & Finance', + 'license': 'AGPL-3', + 'summary': 'UNECE nomenclature for taxes', + 'author': 'Akretion,Odoo Community Association (OCA)', + "website": "https://github.com/OCA/community-data-files", + 'depends': ['account', 'base_unece'], + 'data': [ + 'views/account_tax.xml', + 'views/account_tax_template.xml', + 'data/unece_tax_type.xml', + 'data/unece_tax_categ.xml', + 'data/unece_date.xml', + ], + 'installable': True, +} diff --git a/ext/custom-addons/account_tax_unece/data/unece_date.xml b/ext/custom-addons/account_tax_unece/data/unece_date.xml new file mode 100644 index 00000000..06927a6f --- /dev/null +++ b/ext/custom-addons/account_tax_unece/data/unece_date.xml @@ -0,0 +1,32 @@ + + + + + + + + + date + 5 + Date of invoice + Payment time reference is date of invoice. + + + + date + 72 + Payment date + Date when a payment was made. + + + + diff --git a/ext/custom-addons/account_tax_unece/data/unece_tax_categ.xml b/ext/custom-addons/account_tax_unece/data/unece_tax_categ.xml new file mode 100644 index 00000000..c2a01ca3 --- /dev/null +++ b/ext/custom-addons/account_tax_unece/data/unece_tax_categ.xml @@ -0,0 +1,155 @@ + + + + + + + tax_categ + A + Mixed tax rate + Code specifying that the rate is based on mixed tax. + + + + tax_categ + AA + Lower rate + Tax rate is lower than standard rate. + + + + tax_categ + AB + Exempt for resale + A tax category code indicating the item is tax exempt when the item is bought for future resale. + + + + tax_categ + AC + Value Added Tax (VAT) not now due for payment + A code to indicate that the Value Added Tax (VAT) amount which is due on the current invoice is to be paid on receipt of a separate VAT payment request. + + + + tax_categ + AD + Value Added Tax (VAT) due from a previous invoice + A code to indicate that the Value Added Tax (VAT) amount of a previous invoice is to be paid. + + + + tax_categ + AE + VAT Reverse Charge + Code specifying that the standard VAT rate is levied from the invoicee. + + + + tax_categ + B + Transferred (VAT) + VAT not to be paid to the issuer of the invoice but directly to relevant tax authority. + + + + tax_categ + C + Duty paid by supplier + Duty associated with shipment of goods is paid by the supplier; customer receives goods with duty paid. + + + + tax_categ + D + Value Added Tax (VAT) margin scheme - travel agents + Indication that the VAT margin scheme for travel agents is applied. + + + + tax_categ + E + Exempt from tax + Code specifying that taxes are not applicable. + + + + tax_categ + F + Value Added Tax (VAT) margin scheme - second-hand goods + Indication that the VAT margin scheme for second-hand goods is applied. + + + + tax_categ + G + Free export item, tax not charged + Code specifying that the item is free export and taxes are not charged. + + + + tax_categ + H + Higher rate + Code specifying a higher rate of duty or tax or fee. + + + + tax_categ + I + Value Added Tax (VAT) margin scheme - works of art + Indication that the VAT margin scheme for works of art is applied. + + + + tax_categ + J + Value Added Tax (VAT) margin scheme - collector's items and antiques + Indication that the VAT margin scheme for collector's items and antiques is applied. + + + + tax_categ + K + VAT exempt for EEA intra-community supply of goods and services + A tax category code indicating the item is VAT exempt due to an intra-community supply in the European Economic Area. + + + + tax_categ + L + Canary Islands general indirect tax + Impuesto General Indirecto Canario (IGIC) is an indirect tax levied on goods and services supplied in the Canary Islands (Spain) by traders and professionals, as well as on import of goods. + + + + tax_categ + M + Tax for production, services and importation in Ceuta and Melilla + Impuesto sobre la Producción, los Servicios y la Importación (IPSI) is an indirect municipal tax, levied on the production, processing and import of all kinds of movable tangible property, the supply of services and the transfer of immovable property located in the cities of Ceuta and Melilla. + + + + tax_categ + O + Services outside scope of tax + Code specifying that taxes are not applicable to the services. + + + + tax_categ + S + Standard rate + Code specifying the standard rate. + + + + tax_categ + Z + Zero rated goods + Code specifying that the goods are at a zero rate. + + + + diff --git a/ext/custom-addons/account_tax_unece/data/unece_tax_type.xml b/ext/custom-addons/account_tax_unece/data/unece_tax_type.xml new file mode 100644 index 00000000..d0c1261a --- /dev/null +++ b/ext/custom-addons/account_tax_unece/data/unece_tax_type.xml @@ -0,0 +1,386 @@ + + + + + + + tax_type + AAA + Petroleum tax + A tax levied on the volume of petroleum being transacted. + + + + tax_type + AAB + Provisional countervailing duty cash + Countervailing duty paid in cash prior to a formal finding of subsidization by Customs. + + + + tax_type + AAC + Provisional countervailing duty bond + Countervailing duty paid by posting a bond during an investigation period prior to a formal decision on subsidization by Customs. + + + + tax_type + AAD + Tobacco tax + A tax levied on tobacco products. + + + + tax_type + AAE + Energy fee + General fee or tax for the use of energy. + + + + tax_type + AAF + Coffee tax + A tax levied specifically on coffee products. + + + + tax_type + AAG + Harmonised sales tax, Canadian + A harmonized sales tax consisting of a goods and service tax, a Canadian provincial sales tax and, as applicable, a Quebec sales tax which is recoverable. + + + + tax_type + AAH + Quebec sales tax + A sales tax charged within the Canadian province of Quebec which is recoverable. + + + + tax_type + AAI + Canadian provincial sales tax + A sales tax charged within Canadian provinces which is non-recoverable. + + + + tax_type + AAJ + Tax on replacement part + A tax levied on a replacement part, where the original part is returned. + + + + tax_type + AAK + Mineral oil tax + Tax that is levied specifically on products containing mineral oil. + + + + tax_type + AAL + Special tax + To indicate a special type of tax. + + + + tax_type + AAM + Insurance tax + A tax levied specifically on insurances. + + + + tax_type + ADD + Anti-dumping duty + Duty applied to goods ruled to have been dumped in an import market at a price lower than that in the exporter's domestic market. + + + + tax_type + BOL + Stamp duty (Imposta di Bollo) + Tax required in Italy, which may be fixed or graduated in various circumstances (e.g. VAT exempt documents or bank receipts). + + + + tax_type + CAP + Agricultural levy + Levy imposed on agricultural products where there is a difference between the selling price between trading countries. + + + + tax_type + CAR + Car tax + A tax that is levied on the value of the automobile. + + + + tax_type + COC + Paper consortium tax (Italy) + + + + + tax_type + CST + Commodity specific tax + Tax related to a specified commodity, e.g. illuminants, salts. + + + + tax_type + CUD + Customs duty + Duties laid down in the Customs tariff, to which goods are liable on entering or leaving the Customs territory (CCC). + + + + tax_type + CVD + Countervailing duty + A duty on imported goods applied for compensate for subsidies granted to those goods in the exporting country. + + + + tax_type + ENV + Environmental tax + Tax assessed for funding or assuring environmental protection or clean-up. + + + + tax_type + EXC + Excise duty + Customs or fiscal authorities code to identify a specific or ad valorem levy on a specific commodity, applied either domestically or at time of importation. + + + + tax_type + EXP + Agricultural export rebate + Monetary rebate given to the seller in certain circumstances when agricultural products are exported. + + + + tax_type + FET + Federal excise tax + Tax levied by the federal government on the manufacture of specific items. + + + + tax_type + FRE + Free + No tax levied. + + + + tax_type + GCN + General construction tax + General tax for construction. + + + + tax_type + GST + Goods and services tax + Tax levied on the final consumption of goods and services throughout the production and distribution chain. + + + + tax_type + ILL + Illuminants tax + Tax of illuminants. + + + + tax_type + IMP + Import tax + Tax assessed on imports. + + + + tax_type + IND + Individual tax + A tax levied based on an individual's ability to pay. + + + + tax_type + LAC + Business license fee + Government assessed charge for permit to do business. + + + + tax_type + LCN + Local construction tax + Local tax for construction. + + + + tax_type + LDP + Light dues payable + Fee levied on a vessel to pay for port navigation lights. + + + + tax_type + LOC + Local sales tax + Assessment charges on sale of goods or services by city, borough country or other taxing authorities below state or provincial level. + + + + tax_type + LST + Lust tax + Tax imposed for clean-up of leaky underground storage tanks. + + + + tax_type + MCA + Monetary compensatory amount + Levy on Common Agricultural Policy (European Union) goods used to compensate for fluctuating currencies between member states. + + + + tax_type + MCD + Miscellaneous cash deposit + Duty paid and held on deposit, by Customs, during an investigation period prior to a final decision being made on any aspect related to imported goods (except valuation) by Customs. + + + + tax_type + OTH + Other taxes + Unspecified, miscellaneous tax charges. + + + + tax_type + PDB + Provisional duty bond + Anti-dumping duty paid by posting a bond during an investigation period prior to a formal decision on dumping by Customs. + + + + tax_type + PDC + Provisional duty cash + Anti-dumping duty paid in cash prior to a formal finding of dumping by Customs. + + + + tax_type + PRF + Preference duty + Duties laid down in the Customs tariff, to which goods are liable on entering or leaving the Customs territory falling under a preferential regime such as Generalised System of Preferences (GSP). + + + + tax_type + SCN + Special construction tax + Special tax for construction. + + + + tax_type + SSS + Shifted social securities + Social securities share of the invoice amount to be paid directly to the social securities collector. + + + + tax_type + STT + State/provincial sales tax + All applicable sale taxes by authorities at the state or provincial level, below national level. + + + + tax_type + SUP + Suspended duty + Duty suspended or deferred from payment. + + + + tax_type + SUR + Surtax + A tax or duty applied on and in addition to existing duties and taxes. + + + + tax_type + SWT + Shifted wage tax + Wage tax share of the invoice amount to be paid directly to the tax collector's office). + + + + tax_type + TAC + Alcohol mark tax + A tax levied based on the type of alcohol being obtained. + + + + tax_type + TOT + Total + The summary amount of all taxes. + + + + tax_type + TOX + Turnover tax + Tax levied on the total sales/turnover of a corporation. + + + + tax_type + TTA + Tonnage taxes + Tax levied based on the vessel's net tonnage. + + + + tax_type + VAD + Valuation deposit + Duty paid and held on deposit, by Customs, during an investigation period prior to a formal decision on valuation of the goods being made. + + + + tax_type + VAT + Value added tax + A tax on domestic or imported goods applied to the value added at each stage in the production/distribution cycle. + + + + diff --git a/ext/custom-addons/account_tax_unece/i18n/account_tax_unece.pot b/ext/custom-addons/account_tax_unece/i18n/account_tax_unece.pot new file mode 100644 index 00000000..fc204f87 --- /dev/null +++ b/ext/custom-addons/account_tax_unece/i18n/account_tax_unece.pot @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_tax_unece +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_tax_unece +#: model:ir.model.fields,help:account_tax_unece.field_account_tax_template_unece_categ_id +#: model:ir.model.fields,help:account_tax_unece.field_account_tax_unece_categ_id +msgid "Select the Tax Category Code of the official nomenclature of the United Nations Economic Commission for Europe (UNECE), DataElement 5305" +msgstr "" + +#. module: account_tax_unece +#: model:ir.model.fields,help:account_tax_unece.field_account_tax_template_unece_type_id +#: model:ir.model.fields,help:account_tax_unece.field_account_tax_unece_type_id +msgid "Select the Tax Type Code of the official nomenclature of the United Nations Economic Commission for Europe (UNECE), DataElement 5153" +msgstr "" + +#. module: account_tax_unece +#: model:ir.model.fields,help:account_tax_unece.field_account_tax_unece_due_date_id +msgid "Select the due date of that tax from the official nomenclature of the United Nations Economic Commission for Europe (UNECE), DataElement 2005. For a sale VAT tax, it is the date on which that VAT is due to the fiscal administration. For a purchase VAT tax, it is the date on which that VAT can be deducted." +msgstr "" + +#. module: account_tax_unece +#: model:ir.model,name:account_tax_unece.model_account_tax +msgid "Tax" +msgstr "" + +#. module: account_tax_unece +#: model:ir.model,name:account_tax_unece.model_account_tax_template +msgid "Templates for Taxes" +msgstr "" + +#. module: account_tax_unece +#: model:ir.model.fields,field_description:account_tax_unece.field_account_tax_unece_categ_code +msgid "UNECE Category Code" +msgstr "" + +#. module: account_tax_unece +#: model:ir.model.fields,field_description:account_tax_unece.field_account_tax_unece_due_date_id +msgid "UNECE Due Date" +msgstr "" + +#. module: account_tax_unece +#: model:ir.model.fields,field_description:account_tax_unece.field_account_tax_unece_due_date_code +msgid "UNECE Due Date Code" +msgstr "" + +#. module: account_tax_unece +#: model:ir.model.fields,field_description:account_tax_unece.field_account_tax_template_unece_categ_id +#: model:ir.model.fields,field_description:account_tax_unece.field_account_tax_unece_categ_id +msgid "UNECE Tax Category" +msgstr "" + +#. module: account_tax_unece +#: model:ir.model.fields,field_description:account_tax_unece.field_account_tax_template_unece_type_id +#: model:ir.model.fields,field_description:account_tax_unece.field_account_tax_unece_type_id +msgid "UNECE Tax Type" +msgstr "" + +#. module: account_tax_unece +#: model:ir.model.fields,field_description:account_tax_unece.field_account_tax_unece_type_code +msgid "UNECE Type Code" +msgstr "" + +#. module: account_tax_unece +#: model:ir.model,name:account_tax_unece.model_unece_code_list +msgid "UNECE nomenclatures" +msgstr "" + +#. module: account_tax_unece +#: model:ir.ui.view,arch_db:account_tax_unece.view_tax_template_form +msgid "Unece" +msgstr "" + diff --git a/ext/custom-addons/account_tax_unece/models/__init__.py b/ext/custom-addons/account_tax_unece/models/__init__.py new file mode 100644 index 00000000..b2b7c90d --- /dev/null +++ b/ext/custom-addons/account_tax_unece/models/__init__.py @@ -0,0 +1,5 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import unece_code_list +from . import account_tax +from . import account_tax_template diff --git a/ext/custom-addons/account_tax_unece/models/account_tax.py b/ext/custom-addons/account_tax_unece/models/account_tax.py new file mode 100644 index 00000000..c951fea7 --- /dev/null +++ b/ext/custom-addons/account_tax_unece/models/account_tax.py @@ -0,0 +1,40 @@ +# Copyright 2016-2017 Akretion (http://www.akretion.com) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models, fields + + +class AccountTax(models.Model): + _inherit = 'account.tax' + + unece_type_id = fields.Many2one( + 'unece.code.list', string='UNECE Tax Type', + domain=[('type', '=', 'tax_type')], ondelete='restrict', + help="Select the Tax Type Code of the official " + "nomenclature of the United Nations Economic " + "Commission for Europe (UNECE), DataElement 5153") + unece_type_code = fields.Char( + related='unece_type_id.code', store=True, readonly=True, + string='UNECE Type Code') + unece_categ_id = fields.Many2one( + 'unece.code.list', string='UNECE Tax Category', + domain=[('type', '=', 'tax_categ')], ondelete='restrict', + help="Select the Tax Category Code of the official " + "nomenclature of the United Nations Economic " + "Commission for Europe (UNECE), DataElement 5305") + unece_categ_code = fields.Char( + related='unece_categ_id.code', store=True, readonly=True, + string='UNECE Category Code') + unece_due_date_id = fields.Many2one( + 'unece.code.list', string='UNECE Due Date', + domain=[('type', '=', 'date')], ondelete='restrict', + help="Select the due date of that tax from the official " + "nomenclature of the United Nations Economic " + "Commission for Europe (UNECE), DataElement 2005. For a " + "sale VAT tax, it is the date on which that VAT is due to the " + "fiscal administration. For a purchase VAT tax, it is the date " + "on which that VAT can be deducted.") + unece_due_date_code = fields.Char( + related='unece_due_date_id.code', store=True, readonly=True, + string='UNECE Due Date Code') diff --git a/ext/custom-addons/account_tax_unece/models/account_tax_template.py b/ext/custom-addons/account_tax_unece/models/account_tax_template.py new file mode 100644 index 00000000..c6d74234 --- /dev/null +++ b/ext/custom-addons/account_tax_unece/models/account_tax_template.py @@ -0,0 +1,33 @@ +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class AccountTaxTemplate(models.Model): + _inherit = 'account.tax.template' + + unece_type_id = fields.Many2one( + 'unece.code.list', string='UNECE Tax Type', + domain=[('type', '=', 'tax_type')], + help="Select the Tax Type Code of the official " + "nomenclature of the United Nations Economic " + "Commission for Europe (UNECE), DataElement 5153" + ) + unece_categ_id = fields.Many2one( + 'unece.code.list', string='UNECE Tax Category', + domain=[('type', '=', 'tax_categ')], + help="Select the Tax Category Code of the official " + "nomenclature of the United Nations Economic " + "Commission for Europe (UNECE), DataElement 5305" + ) + + def _get_tax_vals(self, company, tax_template_to_tax): + self.ensure_one() + res = super(AccountTaxTemplate, self)._get_tax_vals( + company, + tax_template_to_tax + ) + res['unece_type_id'] = self.unece_type_id.id or False + res['unece_categ_id'] = self.unece_categ_id.id or False + return res diff --git a/ext/custom-addons/account_tax_unece/models/unece_code_list.py b/ext/custom-addons/account_tax_unece/models/unece_code_list.py new file mode 100644 index 00000000..796c4e09 --- /dev/null +++ b/ext/custom-addons/account_tax_unece/models/unece_code_list.py @@ -0,0 +1,15 @@ +# Copyright 2016-2017 Akretion (http://www.akretion.com) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models, fields + + +class UneceCodeList(models.Model): + _inherit = 'unece.code.list' + + type = fields.Selection(selection_add=[ + ('tax_type', 'Tax Types (UNCL 5153)'), + ('tax_categ', 'Tax Categories (UNCL 5305)'), + ('date', 'Date, Time or Period Qualifier (UNTDID 2005)'), + ]) diff --git a/ext/custom-addons/account_tax_unece/static/description/icon.png b/ext/custom-addons/account_tax_unece/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/ext/custom-addons/account_tax_unece/views/account_tax.xml b/ext/custom-addons/account_tax_unece/views/account_tax.xml new file mode 100644 index 00000000..5b821484 --- /dev/null +++ b/ext/custom-addons/account_tax_unece/views/account_tax.xml @@ -0,0 +1,25 @@ + + + + + + + + unece.account.tax.form + account.tax + + + + + + + + + + + + diff --git a/ext/custom-addons/account_tax_unece/views/account_tax_template.xml b/ext/custom-addons/account_tax_unece/views/account_tax_template.xml new file mode 100644 index 00000000..1072bda2 --- /dev/null +++ b/ext/custom-addons/account_tax_unece/views/account_tax_template.xml @@ -0,0 +1,26 @@ + + + + + + + account.tax.template + + + + + + + + + + + + + + + + + +