From 931302d883e111222aaebd8475eb4c7088af1a8f Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev <iel@odoo.com> Date: Mon, 8 Nov 2021 15:53:58 +0100 Subject: [PATCH] [REF] i18n/localization.rst: improve instruction for dev Reconciliation models section is deleted because it was obsolete and rarely used in localization modules --- .../developer/misc/i18n/images/tax-report.png | Bin 0 -> 59988 bytes content/developer/misc/i18n/localization.rst | 843 +++++++++++------- 2 files changed, 541 insertions(+), 302 deletions(-) create mode 100644 content/developer/misc/i18n/images/tax-report.png diff --git a/content/developer/misc/i18n/images/tax-report.png b/content/developer/misc/i18n/images/tax-report.png new file mode 100644 index 0000000000000000000000000000000000000000..cf31e49fb06fcba59d23c2c9edade26fa98831b0 GIT binary patch literal 59988 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 Zz%Muv>1o@Uh{6FsP$f;plKYPX{~z<7)gu4^ literal 0 HcmV?d00001 diff --git a/content/developer/misc/i18n/localization.rst b/content/developer/misc/i18n/localization.rst index 3aa6a336f..703e04d5f 100644 --- a/content/developer/misc/i18n/localization.rst +++ b/content/developer/misc/i18n/localization.rst @@ -8,136 +8,234 @@ Accounting Localization This tutorial requires knowledges about how to build a module in Odoo (see :doc:`/developer/howtos/backend`). + +How localization works +====================== + +On installing the `account <https://github.com/odoo/odoo/tree/15.0/addons/account>`__ module, the localization module corresponding to the country code of the company is installed automatically. +In case of no country code set or no localization module found, the `l10n_generic_coa <https://github.com/odoo/odoo/tree/15.0/addons/l10n_generic_coa>`__ (US) localization module is installed by default. +Check `post init hook <https://github.com/odoo/odoo/blob/15.0/addons/account/__init__.py>`__ for details. + +For example, `l10n_ch <https://github.com/odoo/odoo/tree/15.0/addons/l10n_ch>`__ will be installed if the company has ``Switzerland`` as country. + Building a localization module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +============================== -When installing the ``accounting`` module, the localization module corresponding to the country code of the company is installed automatically. -In case of no country code set or no localization module found, the ``l10n_generic_coa`` (US) localization module is installed by default. +Structure of a basic ``l10n_XX`` module may be described as following ``__manifest__.py`` file: -For example, ``l10n_be`` will be installed if the company has ``Belgium`` as country. +.. code-block:: py -This behavior is allowed by the presence of a *.xml* file containing the following code: + { + "name": "COUNTRY - Accounting", + "version": "1.0.0", + "category": "Accounting/Localizations/Account Charts", + "license": "LGPL-3", + "depends": [ + "account", + # "l10n_multilang", + ], + "data": [ + # Chart of Accounts + "data/account_chart_template_data.xml", + "data/account_account_tag_data.xml", + "data/account_account_template_data.xml", + "data/account.group.template.csv", + "data/l10n_XX_chart_post_data.xml", + "data/account_chart_template_configure_data.xml", + + # Taxes + "data/account_tax_group_data.xml", + "data/account_tax_report_data.xml", + "data/account_tax_template_data.xml", + "data/account_fiscal_position_template_data.xml", + ], + "demo": [ + "demo/demo_company.xml", + ] + } + + +In the first file `data/account_chart_template_data.xml` we give name for the Chart of Accounts and set some basic fields. For example, for Swiss localization the file looks as following .. code-block:: xml - <function model="account.chart.template" name="try_loading_for_current_company"> - <value eval="[ref(module.template_xmlid)]"/> + <?xml version="1.0" encoding="utf-8"?> + <odoo> + <record id="l10nch_chart_template" model="account.chart.template"> + <field name="name">Plan comptable 2015 (Suisse)</field> + <field name="code_digits">4</field> + <field name="bank_account_code_prefix">102</field> + <field name="cash_account_code_prefix">100</field> + <field name="transfer_account_code_prefix">1090</field> + <field name="currency_id" ref="base.CHF"/> + <field name="country_id" ref="base.ch"/> + <field name="use_anglo_saxon" eval="False"/> + <field name="spoken_languages" eval="'it_IT;de_DE;de_CH;fr_FR;fr_CH'"/> + </record> + </odoo> + + +.. note:: + + Recommended **xmlid** for the record is `l10n_XX_chart_template`. + It will be used for field `chart_template_id`, for example. + If you need many chart of accounts, you can add some suffixes, i.e. `l10n_XX_chart_template_XXX`. + + **Number of digits** to use for account codes is specified in `code_digits` parameter. + + **Bank/cash code** prefixes are used to create *Suspense Account*, *Outstanding Payments*, *Outstanding Receipts* accounts, if those are not set implicitly in the chart template (see note below about `account_journal_suspense_account_id` field). It may be also used to create `default_account_id` in a new `account.journal` record. + + **Transfer code** is used to create a transfer account that is an intermediary + account used when moving money from a liquidity account to another, + e.g. internal transfer from one bank account to another bank account. + + **Spoken languages** instructs to load translations for Chart of Accounts on module installations. It's useful for countries with several official languages. To use this option you must add `l10n_multilang` to the module dependencies. List of supported lang codes can be found in `base/data/res.lang.csv <https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/res.lang.csv>`__. + + To check the **currency** codes open `base/data/res_currency_data.xml <https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/res_currency_data.xml>`__. And the **country** codes are listed in `base/data/res_country_data.xml <https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/res_country_data.xml>`__. + +Next settings for the chart of accounts are set in a separate file, because we need to provide `list of accounts <#accounts>`__ first. In `data/l10n_XX_chart_post_data.xml` we set some default accounts: + +.. code-block:: xml + + <record id="l10n_XX_chart_template" model="account.chart.template"> + + <!-- Receivable/payable accounts. --> + <field name="property_account_receivable_id" ref="..."/> + <field name="property_account_payable_id" ref="..."/> + + <!-- Default Income/Expense Account for a Product Template. --> + <field name="property_account_income_id" ref="..."/> + <field name="property_account_expense_id" ref="..."/> + + <!-- Default Income/Expense Account for a Product Category. --> + <field name="property_account_income_categ_id" ref="..."/> + <field name="property_account_expense_categ_id" ref="..."/> + + <!-- Cash loss/gain accounts. They correspond profit_account_id / loss_account_id fields --> + <field name="default_cash_difference_income_account_id" ref="..."/> + <field name="default_cash_difference_expense_account_id" ref="..."/> + + <!-- Loss/gain exchange rate accounts. --> + <field name="income_currency_exchange_account_id" ref="..."/> + <field name="expense_currency_exchange_account_id" ref="..."/> + + <!-- Stock valuation accounts. --> + <field name="property_stock_account_input_categ_id" ref="..."/> + <field name="property_stock_account_output_categ_id" ref="..."/> + <field name="property_stock_valuation_account_id" ref="..."/> + + <!-- Tax accounts to balance current/advance tax payments. --> + <!-- It's used in `env['account.generic.tax.report']._generate_tax_closing_entries` --> + <field name="property_tax_payable_account_id" ref="..."/> + <field name="property_tax_receivable_account_id" ref="..."/> + <field name="property_advance_tax_payment_account_id" ref="..."/> + + + <!-- Base Tax Received Account --> + <!-- Corresponds to `account_cash_basis_base_account_id` field. --> + <!-- It's used for taxes with `tax_exigibility` equal to `on_payment` --> + <field name="property_cash_basis_base_account_id" ref="..."/> + + <!-- POS account. --> + <field name="default_pos_receivable_account_id" ref="..."/> + + <!-- Payment accounts. --> + <!-- + Suspense account is used to register an unreconciled bank entries created via bank statement. + Once it's reconciled, the suspense account in `account.move` will be replaced with a proper account. + Suspense account is an exceptional case when an account is supposed to be replaced in the transaction. + The new account depends on `account.payment` records. There are two cases + 1. `account.payment' exists before reconciliation aka Blue lines in reconciliation wizard + 2. `account.payment' is created on reconciliation aka regular Black lines in reconciliation wizard + + For case n.1 the new account is Outstanding Receipts/Payments account and the workflow is following: + + Initial transactions: + * Invoice/bill: Payable/Receivable vs Expenses/Sales + * Payment: Outstanding vs Payable/Receivable + After creating bank statement + * Bank entry: Bank vs Suspense + After reconciliation: + * Bank entry: Bank vs Outstanding + + For case n.2 the new account is Payable/Receivable account from invoice/bill and the workflow is following: + + Initial transactions: + * Invoice/bill: Payable/Receivable vs Expenses/Sales + After creating bank statement + * Bank entry: Bank vs Suspense + After reconciliation: + * Bank entry: Bank vs Payable/Receivable + --> + <field name="account_journal_suspense_account_id" ref="..."/> + <!-- Outstanding Receipts Account --> + <field name="account_journal_payment_debit_account_id" ref="..."/> + <!-- Outstanding Payments Account --> + <field name="account_journal_payment_credit_account_id" ref="..."/> + + </record> + + +For example, the Swiss file `data/l10n_ch_chart_post_data.xml` looks as following: + +.. code-block:: xml + + <record id="l10nch_chart_template" model="account.chart.template"> + <field name="property_account_receivable_id" ref="ch_coa_1100"/> + <field name="property_account_payable_id" ref="ch_coa_2000"/> + <field name="property_account_expense_categ_id" ref="ch_coa_4200"/> + <field name="property_account_income_categ_id" ref="ch_coa_3200"/> + <field name="income_currency_exchange_account_id" ref="ch_coa_3806"/> + <field name="expense_currency_exchange_account_id" ref="ch_coa_4906"/> + <field name="default_pos_receivable_account_id" ref="ch_coa_1101" /> + </record> + +The last step on installing Chart of Accounts is applying it on current company. File `data/account_chart_template_configure_data.xml` is responsible for that: + +.. code-block:: xml + + <function model="account.chart.template" name="try_loading"> + <value eval="[ref('l10n_XX.l10n_XX_chart_template')]"/> </function> -Where ``module.template_xmlid`` is the **fully-qualified** xmlid of the corresponding template. +Finally, you may add a demo company, so the localization can be easily tested in demo mode. Check `l10n_ch/demo/demo_company.xml <https://github.com/odoo/odoo/blob/15.0/addons/l10n_ch/demo/demo_company.xml>`__ for example. -Usually located in the ``data`` folder, it must be loaded at the very last in the ``__manifest__.py`` file. +Chart of Accounts +================= -.. danger:: +Accounts +-------- - If the *.xml* file is missing, the right chart of accounts won't be loaded on time! - - -Configuring my own Chart of Accounts? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -First of all, before I proceed, we need to talk about the templates. A template is a record that allows replica of itself. -This mechanism is needed when working in multi-companies. For example, the creation of a new account is done using the ``account.account.template`` model. -However, each company using this chart of accounts will be linked to a replica having ``account.account`` as model. -So, the templates are never used directly by the company. - -Then, when a chart of accounts needs to be installed, all templates dependent of this one will create a replica and link this newly generated record to the company's user. -It means all such templates must be linked to the chart of accounts in some way. To do so, each one must reference the desired chart of accounts using the ``chart_template_id`` field. -For this reason, we need to define an instance of the ``account.chart.template`` model before creating its templates. - -.. code-block:: xml - - <record id="..." model="account.chart.template"> - <!-- [Required] Specify the name to display for this CoA. --> - <field name="name">...</field> - - <!-- [Required] Specify the currency. E.g. "base.USD". --> - <field name="currency_id" ref="..."/> - - <!-- [Required] Specify a prefix of the bank accounts. --> - <field name="bank_account_code_prefix">...</field> - - <!-- [Required] Specify a prefix of the cash accounts. --> - <field name="cash_account_code_prefix">...</field> - - <!-- [Optional] Define a parent chart of accounts that will be installed just before this one. --> - <field name="parent_id" ref="..."/> - - <!-- [Optional] Define the number of digits of account codes. By default, the value is 6. --> - <field name="code_digits">...</field> - - <!-- [Optional] Boolean to show or not this CoA on the list. By default, the CoA is visible. - This field is mostly used when this CoA has some children (see parent_id field). --> - <field name="visible" eval="..."/> - - <!-- [Optional] Boolean to enable the Anglo-Saxon accounting. By default, this field is False. --> - <field name="use_anglo_saxon" eval="..."/> - - <!-- [Optional] Boolean to enable the complete set of taxes. By default, this field is True. - This boolean helps you to choose if you want to propose to the user to encode the sale and purchase rates or choose from list of taxes. - This last choice assumes that the set of tax defined on this template is complete. --> - <field name="complete_tax_set" eval="..."/> - - <!-- [Optional] Specify the spoken languages. - /!\ This option is only available if your module depends of l10n_multilang. - You must provide the language codes separated by ';', e.g. eval="'en_US;ar_EG;ar_SY'". --> - <field name="spoken_languages" eval="..."/> - </record> - -For example, let's take a look to the Belgium chart of accounts. - -.. code-block:: xml - - <record id="l10nbe_chart_template" model="account.chart.template"> - <field name="name">Belgian PCMN</field> - <field name="currency_id" ref="base.EUR"/> - <field name="bank_account_code_prefix">550</field> - <field name="cash_account_code_prefix">570</field> - <field name="spoken_languages" eval="'nl_BE'"/> - </record> - -Now that the chart of accounts is created, we can focus on the creation of the templates. -As said previously, each record must reference this record through the ``chart_template_id`` field. -If not, the template will be ignored. The following sections show in details how to create these templates. - -Adding a new account to my Chart of Accounts -############################################ - -It's time to create our accounts. It consists to creating records of ``account.account.template`` type. -Each ``account.account.template`` is able to create an ``account.account`` for each company. +Obviously, *Chart of Accounts* cannot exist without *Accounts*. You need to specify them in `data/account_account_template_data.xml`. .. code-block:: xml <record id="..." model="account.account.template"> - <!-- [Required] Specify the name to display for this account. --> - <field name="name">...</field> + <!-- Required fields --> + <field name="name">XXX</field> + <field name="code">XXX</field> + <field name="user_type_id" ref="account.data_account_type_XXX" /> + <field name="chart_template_id" ref="l10n_XX_chart_template"/> - <!-- [Required] Specify a code. --> - <field name="code">...</field> - - <!-- [Required] Specify a type. --> - <field name="user_type_id">...</field> - - <!-- [Required] Set the CoA owning this account. --> - <field name="chart_template_id" ref="..."/> + <!-- [Optional] Extra information about account. --> + <field name="note">This account is used for ...</field> <!-- [Optional] Specify a secondary currency for each account.move.line linked to this account. --> - <field name="currency_id" ref="..."/> + <field name="currency_id" ref="base.XXX"/> <!-- [Optional] Boolean to allow the user to reconcile entries in this account. True by default. --> - <field name="reconcile" eval="..."/> + <field name="reconcile" eval="False"/> - <!-- [Optional] Specify a group for this account. --> - <field name="group_id" ref="..."> - - <!-- [Optional] Specify some tags. --> - <field name="tag_ids" eval="..."> + <!-- [Optional] Account tags. --> + <field name="tag_ids" eval="[(6, 0, [ref('l10n_XX.account_tag_XXX'), ref('l10n_XX.account_tag_YYY')])]" /> </record> -Some of the described fields above deserve a bit more explanation. +.. note:: + + You may use csv format instead. Check `l10n_ch/data/account.account.template.csv <https://github.com/odoo/odoo/blob/15.0/addons/l10n_ch/data/account.account.template.csv>`__ for example. The ``user_type_id`` field requires a value of type ``account.account.type``. -Although some additional types could be created in a localization module, we encourage the usage of the existing types in the `account/data/data_account_type.xml <https://github.com/odoo/odoo/blob/14.0/addons/account/data/data_account_type.xml>`_ file. +Although some additional types could be created in a localization module, we encourage the usage of the existing types in the `account/data/data_account_type.xml <https://github.com/odoo/odoo/blob/15.0/addons/account/data/data_account_type.xml>`_ file. The usage of these generic types ensures the generic reports working correctly in addition to those that you could create in your localization module. .. warning:: @@ -149,94 +247,145 @@ The usage of these generic types ensures the generic reports working correctly i Only one account of type payable/receivable is enough. -Although the ``tag_ids`` field is optional, this one remains a very powerful feature. -Indeed, this one allows you to define some tags for your accounts to spread them correctly on your reports. -For example, suppose you want to create a financial report having multiple lines but you have no way to find a rule to dispatch the accounts according their ``code`` or ``name``. -The solution is the usage of tags, one for each report line, to spread and aggregate your accounts like you want. - -Like any other record, a tag can be created with the following xml structure: - -.. code-block:: xml - - <record id="..." model="account.account.tag"> - <!-- [Required] Specify the name to display for this tag. --> - <field name="name">...</field> - - <!-- [Optional] Define a scope for this applicability. - The available keys are 'accounts' and 'taxes' but 'accounts' is the default value. --> - <field name="applicability">...</field> - </record> - -As you can well imagine with the usage of tags, this feature can also be used with taxes. - -An examples coming from the ``l10n_be`` module: - -.. code-block:: xml - - <record id="a4000" model="account.account.template"> - <field name="name">Clients</field> - <field name="code">4000</field> - <field name="user_type_id" ref="account.data_account_type_receivable"/> - <field name="chart_template_id" ref="l10nbe_chart_template"/> - </record> - .. warning:: Don't create too much accounts: 200-300 is enough. -Adding a new tax to my Chart of Accounts -######################################## +Account tags +------------ -To create a new tax record, you just need to follow the same process as the creation of accounts. -The only difference being that you must use the ``account.tax.template`` model. +Tags is a way to sort accounts. +For example, imagine you want to create a financial report having multiple lines but you have no way to find a rule to dispatch the accounts according their ``code`` or ``name``. +The solution is the usage of tags, one for each report line, to filter accounts like you want. + +Put the tags in `data/account_account_tag_data.xml` file: .. code-block:: xml - <record id="..." model="account.tax.template"> - <!-- [Required] Specify the name to display for this tax. --> + <record id="..." model="account.account.tag"> <field name="name">...</field> + <!-- Applicability: 'accounts', 'taxes' or 'products'. By default it's equal to 'accounts'. --> + <field name="applicability">accounts</field> + + <!-- integer between 1 and 11 --> + <field name="color" eval="8"/> + + </record> + +Then apply tags on some accounts (field `tag_ids`). Examples: + +* csv: `l10n_lt/data/account.account.template.csv <https://github.com/odoo/odoo/blob/15.0/addons/l10n_lt/data/account.account.template.csv>`__ +* xml: `l10n_at/data/account_account_template.xml <https://github.com/odoo/odoo/blob/15.0/addons/l10n_at/data/account_account_template.xml>`__ + +Account groups +-------------- + +Account groups allows to describe structure of chart of accounts. Just check example from `l10n_il/data/account.group.template.csv <https://github.com/odoo/odoo/blob/15.0/addons/l10n_il/data/account.group.template.csv>`__: + + ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| id | code_prefix_start | code_prefix_end | name | chart_template_id/id | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| il_group_100100 | 100100 | 100499 | Fixed Assets | l10n_il.il_chart_template | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| il_group_101110 | 101110 | 101400 | Current Assets | l10n_il.il_chart_template | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| il_group_101401 | 101401 | 101799 | Bank And Cash | l10n_il.il_chart_template | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| il_group_111000 | 111000 | 111999 | Current Liabilities | l10n_il.il_chart_template | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| il_group_112000 | 112000 | 112210 | Non-current Liabilities | l10n_il.il_chart_template | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| il_group_200000 | 200000 | 200199 | Sales Income | l10n_il.il_chart_template | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| il_group_200200 | 200200 | 200300 | Other Income | l10n_il.il_chart_template | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| il_group_201000 | 201000 | 201299 | Cost of Goods | l10n_il.il_chart_template | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| il_group_202000 | 202000 | 220900 | Expenses | l10n_il.il_chart_template | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ +| il_group_300000 | 300000 | 399999 | Capital And Shares | l10n_il.il_chart_template | ++-----------------+-------------------+-----------------+-------------------------+---------------------------+ + + +Taxes +----- + +To add taxes you first need to specify tax groups. It has just two fields: name and country. Create file `data/account_tax_group_data.xml` and list the groups: + +.. code-block:: xml + + <?xml version="1.0" encoding="utf-8"?> + <odoo> + <data noupdate="1"> + <record id="tax_group_tva_0" model="account.tax.group"> + <field name="name">TVA 0%</field> + <field name="country_id" ref="base.ch"/> + </record> + + ... + </data> + </odoo> + + +Examples: + +* xml: `l10n_ch/data/account_tax_group_data.xml <https://github.com/odoo/odoo/blob/15.0/addons/l10n_ch/data/account_tax_group_data.xml>`__ +* csv: `l10n_uk/data/account.tax.group.csv <https://github.com/odoo/odoo/blob/15.0/addons/l10n_uk/data/account.tax.group.csv>`__ + + +Now you can add the taxes via `data/account_tax_template_data.xml` file: + +.. code-block:: xml + + <record id="tax_XXX" model="account.tax.template"> + <!-- [Required] Specify the name to display for this tax. --> + <field name="name">XXX</field> + + <!-- [Required] Set the CoA owning this tax. --> + <field name="chart_template_id" ref="l10n_XX_chart_template"/> + + <!-- [Optional] Define a tax group used to display the sums of taxes in the invoices. --> + <field name="tax_group_id" ref="tax_group_XXX"/> + <!-- [Required] Specify the amount. E.g. 7 with fixed amount_type means v + 7 if v is the amount on which the tax is applied. If amount_type is 'percent', the tax amount is v * 0.07. --> - <field name="amount" eval="..."/> - - <!-- [Required] Set the CoA owning this tax. --> - <field name="chart_template_id" ref="..."/> - - <!-- [Required/Optional] Define an account if the tax is not a group of taxes. --> - <field name="account_id" ref="..."/> - - <!-- [Required/Optional] Define an refund account if the tax is not a group of taxes. --> - <field name="refund_account_id" ref="..."/> - - <!-- [Optional] Define the tax's type. - 'sale', 'purchase' or 'none' are the allowed values. 'sale' is the default value. - Note: 'none' means a tax can't be used by itself, however it can still be used in a group. --> - <field name="type_tax_use">...</field> + <field name="amount" eval="7"/> <!-- [Optional] Define the type of amount: - 'group' for a group of taxes, 'fixed' for a tax with a fixed amount or 'percent' for a classic percentage of price. + * 'percent' for a classic percentage of price (default) + * 'division' for percentage of Price Tax Included. + * 'fixed' for a tax with a fixed amount, + * 'group' for a group of taxes, By default, the type of amount is percentage. --> - <field name="amount_type" eval="..."/> + <field name="amount_type">percent</field> <!-- [Optional] Define some children taxes. /!\ Should be used only with an amount_type with 'group' set. --> - <field name="children_tax_ids" eval="..."/> + <field name="children_tax_ids" eval="[(6,0,[ref('tax_XXX'), ref('tax_YYY')])]"/> + + <!-- [Optional] Define the tax's type: + * 'sale' (default) + * 'purchase' + * 'none' - if tax can't be used by itself, but only in a group. + --> + <field name="type_tax_use">sale</field> <!-- [Optional] The sequence field is used to define order in which the tax lines are applied. By default, sequence = 1. --> - <field name="sequence" eval="..."/> + <field name="sequence" eval="1"/> <!-- [Optional] Specify a short text to be displayed on invoices. For example, a tax named "15% on Services" can have the following label on invoice "15%". --> - <field name="description">...</field> + <field name="description">VAT 20%</field> <!-- [Optional] Boolean that indicates if the amount should be considered as included in price. False by default. E.g. Suppose v = 132 and a tax amount of 20. - If price_include = False, the computed amount will be 132 * 0.2 = 26.4. - If price_include = True, the computed amount will be 132 - (132 / 1.2) = 132 - 110 = 22. --> - <field name="price_include" eval="..."/> + If price_include = False, the computed tax amount will be 132 * 0.2 = 26.4. + If price_include = True, the computed tax amount will be 132 - (132 / 1.2) = 132 - 110 = 22. --> + <field name="price_include" eval="False"/> <!-- [Optional] Boolean to set to include the amount to the base. False by default. If True, the subsequent taxes will be computed based on the base tax amount plus the amount of this tax. @@ -245,56 +394,195 @@ The only difference being that you must use the ``account.tax.template`` model. t1 amount = 100 * 0.1 = 10 and t2 amount = 100 * 0.2 = 20. If t1 affects the base, t1 amount = 100 * 0.1 = 10 and t2 amount = 110 * 0.2 = 22. --> - <field name="include_base_amount" eval="..."/> + <field name="include_base_amount" eval="False"/> <!-- [Optional] Boolean false by default. If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any). --> - <field name="analytic" eval="..."/> + <field name="analytic" eval="False"/> - <!-- [Optional] Specify some tags. - These tags must have 'taxes' as applicability. - See the previous section for more details. --> - <field name="tag_ids" eval="..."> + <!-- [Optional] Define the tax exigibility: + * 'on_invoice' - based on invoice (default value) + * 'on_payment' - based on payment + --> + <field name="tax_exigibility">on_invoice</field> - <!-- [Optional] Define a tax group used to display the sums of taxes in the invoices. --> - <field name="tax_group_id" ref="..."/> + <!-- [Optional] Define a cash basis account in case of tax exigibility 'on_payment'. + The account will contain the tax amount as long as the original invoice has not been reconciled; + at reconciliation, this amount cancelled on this account and put on the regular tax account + --> + <field name="cash_basis_transition_account_id" ref="..."/> - <!-- [Optional] Define the tax exigibility either based on invoice ('on_invoice' value) or - either based on payment using the 'on_payment' key. - The default value is 'on_invoice'. --> - <field name="tax_exigibility">...</field> - - <!-- [Optional] Define a cash basis account in case of tax exigibility 'on_payment'. --> - <field name="cash_basis_account" red="..."/> + <!-- [Optional] Distribution when the tax is used on an invoice / a refund. + Each distribution has following parameters: + * `factor_percent` - Factor to apply on the account move lines generated from this distribution line, in percents + * `repartition_type` - either 'base' or 'tax' + * `account_id` - Account on which to post the tax amount + * `plus_report_line_ids` - Tax report lines whose '+' tag will be assigned to move lines by this repartition line + * `minus_report_line_ids` - Tax report lines whose '-' tag will be assigned to move lines by this repartition line + --> + <field name="invoice_repartition_line_ids" eval="[(5, 0, 0), + (0,0, { + 'factor_percent': 100, + 'repartition_type': 'base', + 'plus_report_line_ids': [ref('tax_XXX'), ref('tax_YYY')], + }), + ]"/> + <field name="refund_repartition_line_ids" eval="..."/> </record> -An example found in the ``l10n_pl`` module: +Check `l10n_ae/data/account_tax_template_data.xml <https://github.com/odoo/odoo/blob/15.0/addons/l10n_ae/data/account_tax_template_data.xml>`__ for example. + +Tax Report +---------- + +In previous section you noticed fields `invoice_repartition_line_ids` / `refund_repartition_line_ids` and probably understand nothing about it. Good news: you are not alone on this incomprehension. Bad news: you have to figure it out a bit. The topic is complicated indeed: + +.. image:: images/tax-report.png + +But lucky we have a presentation explaining the tax reports in details: + +.. youtube:: PuXE_NyFRTM + :align: right + :width: 700 + :height: 394 + +So, once you have properly configured taxes, you just need to add `data/account_tax_report_data.xml` file with a single record for `account.tax.report` in beginning: .. code-block:: xml - <record id="vp_leas_sale" model="account.tax.template"> - <field name="chart_template_id" ref="pl_chart_template"/> - <field name="name">VAT - leasing pojazdu(sale)</field> - <field name="description">VLP</field> - <field name="amount">1.00</field> - <field name="sequence" eval="1"/> - <field name="amount_type">group</field> - <field name="type_tax_use">sale</field> - <field name="children_tax_ids" eval="[(6, 0, [ref('vp_leas_sale_1'), ref('vp_leas_sale_2')])]"/> - <field name="tag_ids" eval="[(6,0,[ref('l10n_pl.tag_pl_21')])]"/> - <field name="tax_group_id" ref="tax_group_vat_23"/> - </record> + <?xml version="1.0" encoding="utf-8"?> + <odoo> + <record id="tax_report" model="account.tax.report"> + <field name="name">Tax Report</field> + <field name="country_id" ref="base.XX"/> + </record> + + ... + </odoo> + +... following by a list of records for `account.tax.report.line`. Check for example `l10n_au/data/account_tax_report_data.xml <https://github.com/odoo/odoo/blob/15.0/addons/l10n_au/data/account_tax_report_data.xml>`__. Meaning of the fields can be found directly in the `code <https://github.com/odoo/odoo/blob/15.0/addons/account/models/account_tax_report.py#L96>`__: + +.. code-block:: py + + class AccountTaxReportLine(models.Model): + _name = "account.tax.report.line" + _description = "Account Tax Report Line" + _order = "sequence" + _parent_store = True + + name = fields.Char( + string="Name", + required=True, + help="Complete name for this report line, to be used in report.", + ) + tag_ids = fields.Many2many( + string="Tags", + comodel_name="account.account.tag", + relation="account_tax_report_line_tags_rel", + help="Tax tags populating this line", + ) + report_action_id = fields.Many2one( + string="Report Action", + comodel_name="ir.actions.act_window", + help="The optional action to call when clicking on this line in accounting reports.", + ) + children_line_ids = fields.One2many( + string="Children Lines", + comodel_name="account.tax.report.line", + inverse_name="parent_id", + help="Lines that should be rendered as children of this one", + ) + parent_id = fields.Many2one( + string="Parent Line", comodel_name="account.tax.report.line" + ) + sequence = fields.Integer( + string="Sequence", + required=True, + help="Sequence determining the order of the lines in the report (smaller ones come first). " + "This order is applied locally per section " + "(so, children of the same line are always rendered one after the other).", + ) + parent_path = fields.Char(index=True) + report_id = fields.Many2one( + string="Tax Report", + required=True, + comodel_name="account.tax.report", + ondelete="cascade", + help="The parent tax report of this line", + ) + + # helper to create tags (positive and negative) on report line creation + tag_name = fields.Char( + string="Tag Name", + help="Short name for the tax grid corresponding to this report line. " + "Leave empty if this report line should not correspond to any such grid.", + ) + + # fields used in specific localization reports, + # where a report line isn't simply the given by the sum of account.move.line with selected tags + code = fields.Char( + string="Code", + help="Optional unique code to refer to this line in total formulas", + ) + formula = fields.Char( + string="Formula", + help="Python expression used to compute the value of a total line. " + "This field is mutually exclusive with tag_name, setting it turns the line to a total line. " + "Tax report line codes can be used as variables in this expression to refer to the balance " + "of the corresponding lines in the report. A formula cannot refer to another line using a formula.", + ) + + # fields used to carry over amounts between periods + + # The selection should be filled in localizations using the system + carry_over_condition_method = fields.Selection( + selection=[ + ("no_negative_amount_carry_over_condition", "No negative amount"), + ("always_carry_over_and_set_to_0", "Always carry over and set to 0"), + ], + string="Method", + help="The method used to determine if this line should be carried over.", + ) + carry_over_destination_line_id = fields.Many2one( + string="Destination", + comodel_name="account.tax.report.line", + domain="[('report_id', '=', report_id)]", + help="The line to which the value of this line will be carried over to if needed." + " If left empty the line will carry over to itself.", + ) + carryover_line_ids = fields.One2many( + string="Carryover lines", + comodel_name="account.tax.carryover.line", + inverse_name="tax_report_line_id", + ) + is_carryover_persistent = fields.Boolean( + string="Persistent", + help="Defines how this report line creates carry over lines when performing tax closing." + "If true, the amounts carried over will always be added on top of each other: " + "for example, a report line with a balance of 10 with an existing carryover of 50 " + "will add an additional 10 to it when doing the closing, making a total carryover of 60. " + "If false, the total carried over amount will be forced to the total of this report line: " + "a report line with a balance of 10 with an existing carryover of 50 will create a new " + "carryover line of -40, so that the total carryover becomes 10.", + default=True, + ) + is_carryover_used_in_balance = fields.Boolean( + string="Used in line balance", + help="If set, the carryover amount for this line will be used when calculating its balance in the report." + "This means that the carryover could affect other lines if they are using this one in their computation.", + ) -Adding a new fiscal position to my Chart of Accounts -#################################################### + +Fiscal positions +---------------- .. note:: If you need more information about what is a fiscal position and how it works in Odoo, please refer to :doc:`/applications/finance/accounting/taxation/taxes/fiscal_positions`. -To create a new fiscal position, simply use the ``account.fiscal.position.template`` model: +Specify fiscal positions in `data/account_fiscal_position_template_data.xml` file as following: .. code-block:: xml @@ -303,123 +591,74 @@ To create a new fiscal position, simply use the ``account.fiscal.position.templa <field name="name">...</field> <!-- [Required] Set the CoA owning this fiscal position. --> - <field name="chart_template_id" ref="..."/> + <field name="chart_template_id" ref="l10n_XX_chart_template"/> + + <!-- [Optional] Can be used to specify priorities of the fiscal positions. + When few fiscal positions are available, the one with lowest value is used. + Zero by default --> + <field name="sequence">10</field> <!-- [Optional] Add some additional notes. --> <field name="note">...</field> + + <!-- [Optional] Apply automatically this fiscal position. False by default--> + <field name="auto_apply" eval="False"/> + + <!-- [Optional] When set to True, it can be applied only if partner has VAT number. False by default --> + <field name="vat_required" eval="True"/> + + <!-- [Optional] Different ways to restrict fiscal position usage depending on delivery address. + All values are empty by default. + --> + <field name="country_id" ref="base.es"/> + <field name="zip_from">...</field> + <field name="zip_to">...</field> + <!-- You can also set country group. In this case counry_id, zip_from, zip_to are supposed to be empty + <field name="country_group_id" ref="base.europe"/> + --> </record> -Adding the properties to my Chart of Accounts -############################################# +You may have as many fiscal position as you need. Check `l10n_es/data/account_fiscal_position_template_data.xml <https://github.com/odoo/odoo/blob/15.0/addons/l10n_es/data/account_fiscal_position_template_data.xml>`__ for example. -When the whole accounts are generated, you have the possibility to override the newly generated chart of accounts by adding some properties that correspond to default accounts used in certain situations. -This must be done after the creation of accounts before each one must be linked to the chart of accounts. +Accounting reports +================== -.. code-block:: xml +Accounting reports should be added via a separate module **l10n_XX_reports** that should go to the `enterprise repository <https://github.com/odoo/enterprise>`__. - <?xml version="1.0" encoding="utf-8"?> - <odoo> - <record id="l10n_xx_chart_template" model="account.chart.template"> +Basic `__manifest__.py` file for such a module looks as following: - <!-- Define receivable/payable accounts. --> - <field name="property_account_receivable_id" ref="..."/> - <field name="property_account_payable_id" ref="..."/> - - <!-- Define categories of expense/income account. --> - <field name="property_account_expense_categ_id" ref="..."/> - <field name="property_account_income_categ_id" ref="..."/> - - <!-- Define input/output accounts for stock valuation. --> - <field name="property_stock_account_input_categ_id" ref="..."/> - <field name="property_stock_account_output_categ_id" ref="..."/> - - <!-- Define an account template for stock valuation. --> - <field name="property_stock_valuation_account_id" ref="..."/> - - <!-- Define loss/gain exchange rate accounts. --> - <field name="expense_currency_exchange_account_id" ref="..."/> - <field name="income_currency_exchange_account_id" ref="..."/> - - <!-- Define a transfer account. --> - <field name="transfer_account_id" ref="..."/> - </record> - </odoo> - -For example, let's come back to the Belgium PCMN. This chart of accounts is override in this way to add some properties. - -.. code-block:: xml - - <record id="l10nbe_chart_template" model="account.chart.template"> - <field name="property_account_receivable_id" ref="a4000"/> - <field name="property_account_payable_id" ref="a440"/> - <field name="property_account_expense_categ_id" ref="a600"/> - <field name="property_account_income_categ_id" ref="a7010"/> - <field name="expense_currency_exchange_account_id" ref="a654"/> - <field name="income_currency_exchange_account_id" ref="a754"/> - <field name="transfer_account_id" ref="trans"/> - </record> - -How to create a new bank operation model? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. note:: - - How a bank operation model works exactly in Odoo? See :doc:`/applications/finance/accounting/bank/reconciliation/reconciliation_models`. - -Since ``V10``, a new feature is available in the bank statement reconciliation widget: the bank operation model. -This allows the user to pre-fill some accounting entries with a single click. -The creation of an ``account.reconcile.model.template`` record is quite easy: - -.. code-block:: xml - - <record id="..." model="account.reconcile.model.template"> - <!-- [Required] Specify the name to display. --> - <field name="name">...</field> - - <!-- [Required] Set the CoA owning this. --> - <field name="chart_template_id" ref="..."/> - - <!-- [Optional] Set a sequence number defining the order in which it will be displayed. - By default, the sequence is 10. --> - <field name="sequence" eval="..."/> - - <!-- [Optional] Define an account. --> - <field name="account_id" ref="..."/> - - <!-- [Optional] Define a label to be added to the journal item. --> - <field name="label">...</field> - - <!-- [Optional] Define the type of amount_type, either 'fixed' or 'percentage'. - The last one is the default value. --> - <field name="amount_type">...</field> - - <!-- [Optional] Define the balance amount on which this model will be applied to (100 by default). - Fixed amount will count as a debit if it is negative, as a credit if it is positive. --> - <field name="amount">...</field> - - <!-- [Optional] Define eventually a tax. --> - <field name="tax_id" ref="..."/> - - <!-- [Optional] The sames fields are available twice. - To enable a second journal line, you can set this field to true and - fill the fields accordingly. --> - <field name="has_second_line" eval="..."/> - <field name="second_account_id" ref="..."/> - <field name="second_label">...</field> - <field name="second_amount_type">...</field> - <field name="second_amount">...</field> - <field name="second_tax_id" ref="..."/> - </record> - -How to create a new dynamic report? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If you need to add some reports on your localization, you need to create a new module named **l10n_xx_reports**. -Furthermore, this additional module must be present in the ``enterprise`` repository and must have at least two dependencies, -one to bring all the stuff for your localization module and one more, ``account_reports``, to design dynamic reports. .. code-block:: py - 'depends': ['l10n_xx', 'account_reports'], + { + "name": "COUNTRY - Accounting Reports", + "category": "Accounting/Localizations/Reporting", + "version": "1.0.0", + "license": "OEEL-1", + "depends": [ + "l10n_XX", "account_reports" + ], + "data": [ + "data/account_financial_html_report_data.xml", + ], + "auto_install": True, + } -Once it's done, you can start the creation of your report statements. The documentation is available in the following `slides <https://www.odoo.com/slides/slide/how-to-create-custom-accounting-report-415>`_. + +Functional overview of financial reports is here: :doc:`/applications/finance/accounting/reporting/overview/main_reports`. + +Some good examples: + +* `l10n_ch_reports/data/account_financial_html_report_data.xml <https://github.com/odoo/enterprise/blob/15.0/l10n_ch_reports/data/account_financial_html_report_data.xml>`__ +* `l10n_be_reports/data/account_financial_html_report_data.xml <https://github.com/odoo/enterprise/blob/15.0/l10n_be_reports/data/account_financial_html_report_data.xml>`__ + +For the fields meaning dive directly to the source: + +* `account.financial.html.report (v15) <https://github.com/odoo/enterprise/blob/d4eff9d39469cf3fe18589a1547cb0cdb93f4ae9/account_reports/models/account_financial_report.py#L59-L75>`__ +* `account.financial.html.report.line (v15) <https://github.com/odoo/enterprise/blob/d4eff9d39469cf3fe18589a1547cb0cdb93f4ae9/account_reports/models/account_financial_report.py#L931-L964>`__ + +Menu for the new report is created automatically. By default it's located under *Accounting >> Reporting* menu. +To create a dedicated section in Reporting menu, you need to create new `ir.ui.menu` record (usually in the main `l10n_XX` module) and set it as `parent_id` field in `account.financial.html.report` model. Example for Belgium localization: + +* `ir.ui.menu record in l10n_be <https://github.com/odoo/odoo/blob/15.0/addons/l10n_be/data/menuitem_data.xml>`__ +* `parent_id field in l10n_be_reports (v15) <https://github.com/odoo/enterprise/blob/d4eff9d39469cf3fe18589a1547cb0cdb93f4ae9/l10n_be_reports/data/account_financial_html_report_data.xml#L11>`__