From fbde37d985a5f699ae3f1667a1071181dff75a25 Mon Sep 17 00:00:00 2001 From: Andrea Stirpe Date: Thu, 20 Apr 2017 21:41:00 +0200 Subject: [PATCH 01/34] [RFC][ADD] l10n nl tax statement for V10 (#70) * Add module l10n_nl_tax_statement * Update oca_dependencies and flake8 * Developing module * Decoupled from l10n_nl + added config feature * Fix missing tag (Voorbelasting (BTW) bis) * Add printable PDF report * Add onchange for filling statement name * Update layout * Add tests * Set postgres V9.2 for running tests with date_range * Add nl.po translation file * Fix 5a sum * Update domain according with updated account_tax_balance * Fix calculation of lines + minor review * Update steps regarding Usage in README.rst --- l10n_nl_tax_statement/README.rst | 80 +++ l10n_nl_tax_statement/__init__.py | 6 + l10n_nl_tax_statement/__manifest__.py | 25 + l10n_nl_tax_statement/data/report_layouts.xml | 39 ++ l10n_nl_tax_statement/i18n/nl.po | 571 ++++++++++++++++++ l10n_nl_tax_statement/models/__init__.py | 7 + .../models/l10n_nl_vat_statement.py | 290 +++++++++ .../models/l10n_nl_vat_statement_config.py | 36 ++ .../models/l10n_nl_vat_statement_line.py | 71 +++ .../report/report_tax_statement.xml | 79 +++ l10n_nl_tax_statement/report/reports.xml | 33 + .../security/ir.model.access.csv | 4 + .../static/src/css/report.css | 49 ++ l10n_nl_tax_statement/tests/__init__.py | 5 + .../tests/test_l10n_nl_vat_statement.py | 211 +++++++ .../views/l10n_nl_vat_statement.xml | 92 +++ l10n_nl_tax_statement/wizard/__init__.py | 5 + .../l10n_nl_vat_statement_config_wizard.py | 128 ++++ .../l10n_nl_vat_statement_config_wizard.xml | 110 ++++ 19 files changed, 1841 insertions(+) create mode 100644 l10n_nl_tax_statement/README.rst create mode 100644 l10n_nl_tax_statement/__init__.py create mode 100644 l10n_nl_tax_statement/__manifest__.py create mode 100644 l10n_nl_tax_statement/data/report_layouts.xml create mode 100644 l10n_nl_tax_statement/i18n/nl.po create mode 100644 l10n_nl_tax_statement/models/__init__.py create mode 100644 l10n_nl_tax_statement/models/l10n_nl_vat_statement.py create mode 100644 l10n_nl_tax_statement/models/l10n_nl_vat_statement_config.py create mode 100644 l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py create mode 100644 l10n_nl_tax_statement/report/report_tax_statement.xml create mode 100644 l10n_nl_tax_statement/report/reports.xml create mode 100644 l10n_nl_tax_statement/security/ir.model.access.csv create mode 100644 l10n_nl_tax_statement/static/src/css/report.css create mode 100644 l10n_nl_tax_statement/tests/__init__.py create mode 100644 l10n_nl_tax_statement/tests/test_l10n_nl_vat_statement.py create mode 100644 l10n_nl_tax_statement/views/l10n_nl_vat_statement.xml create mode 100644 l10n_nl_tax_statement/wizard/__init__.py create mode 100644 l10n_nl_tax_statement/wizard/l10n_nl_vat_statement_config_wizard.py create mode 100644 l10n_nl_tax_statement/wizard/l10n_nl_vat_statement_config_wizard.xml diff --git a/l10n_nl_tax_statement/README.rst b/l10n_nl_tax_statement/README.rst new file mode 100644 index 000000000..eb95d1fd9 --- /dev/null +++ b/l10n_nl_tax_statement/README.rst @@ -0,0 +1,80 @@ +.. 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 + +========================= +Netherlands BTW Statement +========================= + +This module provides you with the Tax Statement in the Dutch format. + +Installation +============ + +* This module depends from module account_tax_balance available at https://github.com/OCA/account-financial-reporting. +* This module also depends from module date_range that is supported as of postgresql 9.2 or later versions. + +Configuration +============= + +This module depends on the tax tags (eg.: 1a, 1b, 1c, 1d, 2a...) as prescribed by the Dutch tax laws. + +If the default Odoo Dutch chart of accounts is installed (module l10n_nl) then these tags are automatically present in the database. +If this is the case, go to menu: Invoicing -> Configuration -> Accounting -> NL BTW Tags, and check that the tags are correctly set; click Apply to confirm. + +If a non-standard chart of accounts is installed, you have to manually create the tax tags and properly set them into the tax definition. +After that, go to go to menu: Invoicing -> Configuration -> Accounting -> NL BTW Tags, and manually set the tags in the configuration form; click Apply to confirm. + +Usage +===== + +#. Verify that you have enough permits. You need to belong at least to the Accountant group. +#. Go to the menu: Invoicing -> Reports > Taxes Balance > NL BTW Statement +#. Create a statement, providing a name and specifying start date and end date +#. Press the Update button to calculate the report: the report lines will be displayed in the tab Statement +#. Press the Post button to set the status of the statement to Posted; the statements set to this state cannot be modified anymore +#. If you need to recalculate or modify or delete a statement already set to Posted status you need first to set it back to Draft status: press the button Reset to Draft +#. If you need to print the report in PDF, open a statement form and click: Print -> NL Tax Statement + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/176/10.0 + + +Known issues / Roadmap +====================== + +* Exporting in SBR/XBLR format not yet available +* Including in the report being created, not only the data filtered by the selected date range, but also all the old data that was not included in the previous tax declarations (work in progress...) + +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 +------------ + +* Andrea Stirpe +* Antonio Esposito + +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/l10n_nl_tax_statement/__init__.py b/l10n_nl_tax_statement/__init__.py new file mode 100644 index 000000000..0cecaae2e --- /dev/null +++ b/l10n_nl_tax_statement/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import models +from . import wizard diff --git a/l10n_nl_tax_statement/__manifest__.py b/l10n_nl_tax_statement/__manifest__.py new file mode 100644 index 000000000..e20d64292 --- /dev/null +++ b/l10n_nl_tax_statement/__manifest__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + 'name': 'Netherlands BTW Statement', + 'version': '10.0.1.0.0', + 'category': 'Localization', + 'license': 'AGPL-3', + 'author': 'Onestein, Odoo Community Association (OCA)', + 'website': 'http://www.onestein.eu', + 'depends': [ + 'account_tax_balance', + 'report', + ], + 'data': [ + 'security/ir.model.access.csv', + 'data/report_layouts.xml', + 'views/l10n_nl_vat_statement.xml', + 'report/reports.xml', + 'report/report_tax_statement.xml', + 'wizard/l10n_nl_vat_statement_config_wizard.xml', + ], + 'installable': True, +} diff --git a/l10n_nl_tax_statement/data/report_layouts.xml b/l10n_nl_tax_statement/data/report_layouts.xml new file mode 100644 index 000000000..5d983c4d6 --- /dev/null +++ b/l10n_nl_tax_statement/data/report_layouts.xml @@ -0,0 +1,39 @@ + + + + + + + + diff --git a/l10n_nl_tax_statement/i18n/nl.po b/l10n_nl_tax_statement/i18n/nl.po new file mode 100644 index 000000000..ae52c14f0 --- /dev/null +++ b/l10n_nl_tax_statement/i18n/nl.po @@ -0,0 +1,571 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_nl_tax_statement +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-23 12:00+0000\n" +"PO-Revision-Date: 2017-03-23 12:00+0000\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: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "1a" +msgstr "1a" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "1b" +msgstr "1b" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "1c" +msgstr "1c" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "1d" +msgstr "1d" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:120 +#, python-format +msgid "1d Prive-gebruik" +msgstr "1d Prive-gebruik" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "1e" +msgstr "1e" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "2a" +msgstr "2a" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "3a" +msgstr "3a" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "3b" +msgstr "3b" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "3c" +msgstr "3c" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "4a" +msgstr "4a" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "4b" +msgstr "4b" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "5b" +msgstr "5b" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "5b bis" +msgstr "5b bis" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.internal_layout +msgid "Printed: " +msgstr "Printed: " + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement +msgid "Aangifte omzetbelasting" +msgstr "Aangifte omzetbelasting" + +#. module: l10n_nl_tax_statement +#: selection:l10n.nl.vat.statement,target_move:0 +msgid "All Entries" +msgstr "Alle boekingen" + +#. module: l10n_nl_tax_statement +#: selection:l10n.nl.vat.statement,target_move:0 +msgid "All Posted Entries" +msgstr "Alle mutaties" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "Apply" +msgstr "Toepassen" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_format_btw +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "BTW" +msgstr "BTW" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "BTW Tags Settings" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_btw_9796 +msgid "Btw" +msgstr "Btw" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_code_9797 +msgid "Code" +msgstr "Code" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_company_id_9788 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_company_id +msgid "Company" +msgstr "Bedrijf" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_currency_id_9789 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_currency_id_9801 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters +msgid "Currency" +msgstr "Valuta" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_date_posted +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters +msgid "Date posted" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_date_range_id_9794 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters +msgid "Date range" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_date_update +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters +msgid "Date update" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_display_name +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_display_name +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_display_name_9793 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_display_name_9804 +msgid "Display Name" +msgstr "Weergave naam" + +#. module: l10n_nl_tax_statement +#: selection:l10n.nl.vat.statement,state:0 +msgid "Draft" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_from_date_9783 +msgid "From date" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:129 +#, python-format +msgid "Heffing van omzetbelasting is naar u verlegd" +msgstr "Heffing van omzetbelasting is naar u verlegd" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:141 +#, python-format +msgid "Installatie/afstandsverkopen binnen de EU" +msgstr "Installatie/afstandsverkopen binnen de EU" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_is_group +msgid "Is group" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement___last_update_9785 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config___last_update +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard___last_update +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line___last_update_9799 +msgid "Last Modified on" +msgstr "Laatst gewijzigd op" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:107 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +#, python-format +msgid "Leveringen en/of diensten binnenland" +msgstr "Leveringen en/of diensten binnenland" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:132 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +#, python-format +msgid "Leveringen naar het buitenland" +msgstr "Leveringen naar het buitenland" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:138 +#, python-format +msgid "Leveringen naar landen binnen de EU" +msgstr "Leveringen naar landen binnen de EU" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:135 +#, python-format +msgid "Leveringen naar landen buiten de EU" +msgstr "Leveringen naar landen buiten de EU" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:144 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +#, python-format +msgid "Leveringen vanuit het buitenland" +msgstr "Leveringen vanuit het buitenland" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:123 +#, python-format +msgid "Leveringen/diensten belast met 0%" +msgstr "Leveringen/diensten belast met 0%" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:110 +#, python-format +msgid "Leveringen/diensten belast met hoog tarief" +msgstr "Leveringen/diensten belast met hoog tarief" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:113 +#, python-format +msgid "Leveringen/diensten belast met laag tarief" +msgstr "Leveringen/diensten belast met laag tarief" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:116 +#, python-format +msgid "Leveringen/diensten belast met overige tarieven behalve 0%" +msgstr "Leveringen/diensten belast met overige tarieven behalve 0%" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_ids_9792 +msgid "Lines" +msgstr "Regels" + +#. module: l10n_nl_tax_statement +#: model:ir.actions.act_window,name:l10n_nl_tax_statement.action_account_vat_statement_nl +#: model:ir.ui.menu,name:l10n_nl_tax_statement.menu_account_vat_statement_nl +msgid "NL BTW Statement" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.actions.act_window,name:l10n_nl_tax_statement.action_account_vat_statement_nl_config +#: model:ir.ui.menu,name:l10n_nl_tax_statement.menu_account_vat_statement_nl_config +msgid "NL BTW Tags" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.actions.report.xml,name:l10n_nl_tax_statement.action_report_tax_statement +msgid "NL Tax Statement" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_name_9806 +msgid "Name" +msgstr "Naam" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_format_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_omzet_9802 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "Omzet" +msgstr "Omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_l10n_nl_vat_report_form +msgid "Post" +msgstr "Boeken" + +#. module: l10n_nl_tax_statement +#: selection:l10n.nl.vat.statement,state:0 +msgid "Posted" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_l10n_nl_vat_report_form +msgid "Reset to Draft" +msgstr "Terugzetten naar concept" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_statement_id_9798 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_l10n_nl_vat_report_form +msgid "Statement" +msgstr "Afschrift" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_state_9790 +msgid "Status" +msgstr "Status" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:162 +#, python-format +msgid "Subtotaal (rubriek 5a min 5b)" +msgstr "Subtotaal (rubriek 5a min 5b)" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1a_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1a_btw +msgid "Tag 1a btw" +msgstr "Tag 1a btw" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1a_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1a_omzet +msgid "Tag 1a omzet" +msgstr "Tag 1a omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1b_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1b_btw +msgid "Tag 1b btw" +msgstr "Tag 1b btw" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1b_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1b_omzet +msgid "Tag 1b omzet" +msgstr "Tag 1b omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1c_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1c_btw +msgid "Tag 1c btw" +msgstr "Tag 1c btw" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1c_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1c_omzet +msgid "Tag 1c omzet" +msgstr "Tag 1c omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1d_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1d_btw +msgid "Tag 1d btw" +msgstr "Tag 1d btw" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1d_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1d_omzet +msgid "Tag 1d omzet" +msgstr "Tag 1d omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1e_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1e_omzet +msgid "Tag 1e omzet" +msgstr "Tag 1e omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_2a_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_2a_btw +msgid "Tag 2a btw" +msgstr "Tag 2a btw" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_2a_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_2a_omzet +msgid "Tag 2a omzet" +msgstr "Tag 2a omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_3a_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_3a_omzet +msgid "Tag 3a omzet" +msgstr "Tag 3a omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_3b_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_3b_omzet +msgid "Tag 3b omzet" +msgstr "Tag 3b omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_3c_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_3c_omzet +msgid "Tag 3c omzet" +msgstr "Tag 3c omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_4a_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_4a_btw +msgid "Tag 4a btw" +msgstr "Tag 4a btw" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_4a_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_4a_omzet +msgid "Tag 4a omzet" +msgstr "Tag 4a omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_4b_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_4b_btw +msgid "Tag 4b btw" +msgstr "Tag 4b btw" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_4b_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_4b_omzet +msgid "Tag 4b omzet" +msgstr "Tag 4b omzet" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_5b_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_5b_btw +msgid "Tag 5b btw" +msgstr "Tag 5b btw" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_5b_btw_bis +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_5b_btw_bis +msgid "Tag 5b btw bis" +msgstr "Tag 5b btw bis" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:191 +#, python-format +msgid "Tags mapping not configured for this Company! Check the NL BTW Tags Configuration." +msgstr "Tags mapping not configured for this Company! Check the NL BTW Tags Configuration." + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_target_move +msgid "Target Moves" +msgstr "Welke boekingen" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters +msgid "Target moves" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_name_9784 +msgid "Tax Statement" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_to_date_9791 +msgid "To date" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_l10n_nl_vat_report_form +msgid "Update" +msgstr "Bijwerken" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,help:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_currency_id_9801 +msgid "Utility field to express amount currency" +msgstr "Hulpveld om de valuta uit te drukken" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:126 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +#, python-format +msgid "Verleggingsregelingen: BTW naar u verlegd" +msgstr "Verleggingsregelingen: BTW naar u verlegd" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:156 +#, python-format +msgid "Verschuldigde omzetbelasting (rubrieken 1a t/m 4b)" +msgstr "Verschuldigde omzetbelasting (rubrieken 1a t/m 4b)" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:147 +#, python-format +msgid "Verwerving uit landen buiten de EU" +msgstr "Verwerving uit landen buiten de EU" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:150 +#, python-format +msgid "Verwerving van goederen uit landen binnen de EU" +msgstr "Verwerving van goederen uit landen binnen de EU" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:153 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:159 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +#, python-format +msgid "Voorbelasting" +msgstr "Voorbelasting" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:292 +#, python-format +msgid "You cannot delete a posted statement! Reset the statement to draft first." +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py:69 +#, python-format +msgid "You cannot delete lines of a posted statement! Reset the statement to draft first." +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:222 +#, python-format +msgid "You cannot modify a posted statement!" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:283 +#, python-format +msgid "You cannot modify a posted statement! Reset the statement to draft first." +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement_config +msgid "l10n.nl.vat.statement.config" +msgstr "l10n.nl.vat.statement.config" + +#. module: l10n_nl_tax_statement +#: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement_config_wizard +msgid "l10n.nl.vat.statement.config.wizard" +msgstr "l10n.nl.vat.statement.config.wizard" + +#. module: l10n_nl_tax_statement +#: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement_line +msgid "l10n.nl.vat.statement.line" +msgstr "l10n.nl.vat.statement.line" + +#. module: l10n_nl_tax_statement +#: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement +msgid "l10n_nl_vat_statement" +msgstr "l10n_nl_vat_statement" + +#. module: l10n_nl_tax_statement +#: model:ir.model,name:l10n_nl_tax_statement.model_report_l10n_nl_tax_declaration_reporting_tax_report_template +msgid "report.l10n_nl_tax_declaration_reporting.tax_report_template" +msgstr "report.l10n_nl_tax_declaration_reporting.tax_report_template" + diff --git a/l10n_nl_tax_statement/models/__init__.py b/l10n_nl_tax_statement/models/__init__.py new file mode 100644 index 000000000..fe6e610a6 --- /dev/null +++ b/l10n_nl_tax_statement/models/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import l10n_nl_vat_statement +from . import l10n_nl_vat_statement_line +from . import l10n_nl_vat_statement_config diff --git a/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py b/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py new file mode 100644 index 000000000..27223a1aa --- /dev/null +++ b/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py @@ -0,0 +1,290 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from datetime import datetime + +from odoo import api, fields, models, _ +from odoo.exceptions import Warning as UserError + + +class VatStatement(models.Model): + _name = 'l10n.nl.vat.statement' + + name = fields.Char( + string='Tax Statement', + required=True, + ) + state = fields.Selection([ + ('draft', 'Draft'), + ('posted', 'Posted')], + readonly=True, + default='draft', + copy=False, + string='Status' + ) + line_ids = fields.One2many( + 'l10n.nl.vat.statement.line', + 'statement_id', + 'Lines' + ) + company_id = fields.Many2one( + 'res.company', + 'Company', + required=True, + readonly=True, + default=lambda self: self.env.user.company_id + ) + from_date = fields.Date(required=True) + to_date = fields.Date(required=True) + date_range_id = fields.Many2one( + 'date.range', + 'Date range', + ) + currency_id = fields.Many2one( + 'res.currency', + related='company_id.currency_id', + readonly=True + ) + target_move = fields.Selection([ + ('posted', 'All Posted Entries'), + ('all', 'All Entries')], + 'Target Moves', + readonly=True, + required=True, + default='posted' + ) + date_posted = fields.Datetime(readonly=True) + date_update = fields.Datetime(readonly=True) + + @api.model + def default_get(self, fields_list): + defaults = super(VatStatement, self).default_get(fields_list) + company = self.env.user.company_id + fy_dates = company.compute_fiscalyear_dates(datetime.now()) + from_date = fields.Date.to_string(fy_dates['date_from']) + to_date = fields.Date.to_string(fy_dates['date_to']) + defaults.setdefault('from_date', from_date) + defaults.setdefault('to_date', to_date) + defaults.setdefault('name', company.name) + return defaults + + @api.onchange('date_range_id') + def onchange_date_range_id(self): + if self.date_range_id and self.state == 'draft': + self.write({ + 'from_date': self.date_range_id.date_start, + 'to_date': self.date_range_id.date_end, + }) + + @api.onchange('from_date', 'to_date') + def onchange_date(self): + display_name = self.company_id.name + if self.from_date and self.to_date: + display_name += ': ' + ' '.join([self.from_date, self.to_date]) + self.name = display_name + + @api.model + def _get_taxes_domain(self): + return [('has_moves', '=', True)] + + @api.model + def _prepare_lines(self): + lines = {} + lines['1'] = { + 'code': '1', + 'name': _('Leveringen en/of diensten binnenland')} + lines['1a'] = { + 'code': '1a', 'omzet': 0.0, 'btw': 0.0, + 'name': _('Leveringen/diensten belast met hoog tarief')} + lines['1b'] = { + 'code': '1b', 'omzet': 0.0, 'btw': 0.0, + 'name': _('Leveringen/diensten belast met laag tarief')} + lines['1c'] = { + 'code': '1c', 'omzet': 0.0, 'btw': 0.0, + 'name': _('Leveringen/diensten belast met overige tarieven ' + 'behalve 0%')} + lines['1d'] = { + 'code': '1d', 'omzet': 0.0, 'btw': 0.0, + 'name': _('1d Prive-gebruik')} + lines['1e'] = { + 'code': '1e', 'omzet': 0.0, + 'name': _('Leveringen/diensten belast met 0%')} + lines['2'] = { + 'code': '2', + 'name': _('Verleggingsregelingen: BTW naar u verlegd')} + lines['2a'] = { + 'code': '2a', 'omzet': 0.0, 'btw': 0.0, + 'name': _('Heffing van omzetbelasting is naar u verlegd')} + lines['3'] = { + 'code': '3', + 'name': _('Leveringen naar het buitenland')} + lines['3a'] = { + 'code': '3a', 'omzet': 0.0, + 'name': _('Leveringen naar landen buiten de EU')} + lines['3b'] = { + 'code': '3b', 'omzet': 0.0, + 'name': _('Leveringen naar landen binnen de EU')} + lines['3c'] = { + 'code': '3c', 'omzet': 0.0, + 'name': _('Installatie/afstandsverkopen binnen de EU')} + lines['4'] = { + 'code': '4', + 'name': _('Leveringen vanuit het buitenland')} + lines['4a'] = { + 'code': '4a', 'omzet': 0.0, 'btw': 0.0, + 'name': _('Verwerving uit landen buiten de EU')} + lines['4b'] = { + 'code': '4b', 'omzet': 0.0, 'btw': 0.0, + 'name': _('Verwerving van goederen uit landen binnen de EU')} + lines['5'] = { + 'code': '5', + 'name': _('Voorbelasting')} + lines['5a'] = { + 'code': '5a', 'btw': 0.0, + 'name': _('Verschuldigde omzetbelasting (rubrieken 1a t/m 4b)')} + lines['5b'] = { + 'code': '5b', 'btw': 0.0, + 'name': _('Voorbelasting')} + lines['5c'] = { + 'code': '5c', 'btw': 0.0, + 'name': _('Subtotaal (rubriek 5a min 5b)')} + return lines + + @api.model + def _finalize_lines(self, lines): + _1ab = lines['1a']['btw'] + _1bb = lines['1b']['btw'] + _1cb = lines['1c']['btw'] + _1db = lines['1d']['btw'] + _2ab = lines['2a']['btw'] + _4ab = lines['4a']['btw'] + _4bb = lines['4b']['btw'] + + # 5a is the sum of 1a through 4b + _5ab = _1ab + _1bb + _1cb + _1db + _2ab + _4ab + _4bb + + # 5b: invert the original sign (5b should be always positive) + lines['5b']['btw'] = lines['5b']['btw'] * -1 + _5bb = lines['5b']['btw'] + + # 5c is the difference: 5a - 5b + _5cb = _5ab - _5bb + + # update 5a and 5c + lines['5a'].update({'btw': _5ab}) + lines['5c'].update({'btw': _5cb}) + return lines + + @api.model + def _get_tags_map(self): + company_id = self.env.user.company_id.id + config = self.env['l10n.nl.vat.statement.config'].search([ + ('company_id', '=', company_id)], limit=1 + ) + if not config: + raise UserError( + _('Tags mapping not configured for this Company! ' + 'Check the NL BTW Tags Configuration.')) + return { + config.tag_1a_omzet.id: ('1a', 'omzet'), + config.tag_1a_btw.id: ('1a', 'btw'), + config.tag_1b_omzet.id: ('1b', 'omzet'), + config.tag_1b_btw.id: ('1b', 'btw'), + config.tag_1c_omzet.id: ('1c', 'omzet'), + config.tag_1c_btw.id: ('1c', 'btw'), + config.tag_1d_omzet.id: ('1d', 'omzet'), + config.tag_1d_btw.id: ('1d', 'btw'), + config.tag_1e_omzet.id: ('1e', 'omzet'), + config.tag_2a_omzet.id: ('2a', 'omzet'), + config.tag_2a_btw.id: ('2a', 'btw'), + config.tag_3a_omzet.id: ('3a', 'omzet'), + config.tag_3b_omzet.id: ('3b', 'omzet'), + config.tag_3c_omzet.id: ('3c', 'omzet'), + config.tag_4a_omzet.id: ('4a', 'omzet'), + config.tag_4a_btw.id: ('4a', 'btw'), + config.tag_4b_omzet.id: ('4b', 'omzet'), + config.tag_4b_btw.id: ('4b', 'btw'), + config.tag_5b_btw.id: ('5b', 'btw'), + config.tag_5b_btw_bis.id: ('5b', 'btw'), + } + + @api.multi + def update(self): + self.ensure_one() + + if self.state == 'posted': + raise UserError( + _('You cannot modify a posted statement!')) + + # clean old lines + self.line_ids.unlink() + + # calculate lines + lines = self._prepare_lines() + self._compute_lines(lines) + self._finalize_lines(lines) + + # create lines + for line in lines: + lines[line].update({'statement_id': self.id}) + self.env['l10n.nl.vat.statement.line'].create( + lines[line] + ) + self.date_update = fields.Datetime.now() + + def _compute_lines(self, lines): + ctx = { + 'from_date': self.from_date, + 'to_date': self.to_date, + 'target_move': self.target_move, + 'company_id': self.company_id.id, + } + tags_map = self._get_tags_map() + domain = self._get_taxes_domain() + taxes = self.env['account.tax'].with_context(ctx).search(domain) + for tax in taxes: + for tag in tax.tag_ids: + tag_map = tags_map.get(tag.id) + if tag_map: + column = tag_map[1] + code = tag_map[0] + if column == 'omzet': + lines[code][column] += tax.base_balance + else: + lines[code][column] += tax.balance + + @api.multi + def post(self): + self.write({ + 'state': 'posted', + 'date_posted': fields.Datetime.now() + }) + + @api.multi + def reset(self): + self.write({ + 'state': 'draft', + 'date_posted': None + }) + + @api.multi + def write(self, values): + for statement in self: + if 'state' not in values or values['state'] != 'draft': + if statement.state == 'posted': + for val in values: + if val != 'state': + raise UserError( + _('You cannot modify a posted statement! ' + 'Reset the statement to draft first.')) + return super(VatStatement, self).write(values) + + @api.multi + def unlink(self): + for statement in self: + if statement.state == 'posted': + raise UserError( + _('You cannot delete a posted statement! ' + 'Reset the statement to draft first.')) + super(VatStatement, self).unlink() diff --git a/l10n_nl_tax_statement/models/l10n_nl_vat_statement_config.py b/l10n_nl_tax_statement/models/l10n_nl_vat_statement_config.py new file mode 100644 index 000000000..dbce4c9e5 --- /dev/null +++ b/l10n_nl_tax_statement/models/l10n_nl_vat_statement_config.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class VatStatementConfig(models.Model): + _name = 'l10n.nl.vat.statement.config' + + company_id = fields.Many2one( + 'res.company', + 'Company', + required=True + ) + + tag_1a_omzet = fields.Many2one('account.account.tag') + tag_1a_btw = fields.Many2one('account.account.tag') + tag_1b_omzet = fields.Many2one('account.account.tag') + tag_1b_btw = fields.Many2one('account.account.tag') + tag_1c_omzet = fields.Many2one('account.account.tag') + tag_1c_btw = fields.Many2one('account.account.tag') + tag_1d_omzet = fields.Many2one('account.account.tag') + tag_1d_btw = fields.Many2one('account.account.tag') + tag_1e_omzet = fields.Many2one('account.account.tag') + tag_2a_omzet = fields.Many2one('account.account.tag') + tag_2a_btw = fields.Many2one('account.account.tag') + tag_3a_omzet = fields.Many2one('account.account.tag') + tag_3b_omzet = fields.Many2one('account.account.tag') + tag_3c_omzet = fields.Many2one('account.account.tag') + tag_4a_omzet = fields.Many2one('account.account.tag') + tag_4a_btw = fields.Many2one('account.account.tag') + tag_4b_omzet = fields.Many2one('account.account.tag') + tag_4b_btw = fields.Many2one('account.account.tag') + tag_5b_btw = fields.Many2one('account.account.tag') + tag_5b_btw_bis = fields.Many2one('account.account.tag') diff --git a/l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py b/l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py new file mode 100644 index 000000000..d9fd0d80a --- /dev/null +++ b/l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models, _ +from odoo.tools.misc import formatLang +from odoo.exceptions import Warning as UserError + + +OMZET_DISPLAY = ( + '1a', '1b', '1c', '1d', '1e', '2a', '3a', '3b', '3c', '4a', '4b' +) + +BTW_DISPLAY = ( + '1a', '1b', '1c', '1d', '2a', '4a', '4b', '5a', '5b', '5c' +) + +GROUP_DISPLAY = ( + '1', '2', '3', '4', '5' +) + + +class VatStatementLine(models.Model): + _name = 'l10n.nl.vat.statement.line' + _order = 'code' + + name = fields.Char() + code = fields.Char() + + statement_id = fields.Many2one( + 'l10n.nl.vat.statement', + 'Statement' + ) + currency_id = fields.Many2one( + 'res.currency', + related='statement_id.company_id.currency_id', + readonly=True, + help='Utility field to express amount currency' + ) + omzet = fields.Monetary() + btw = fields.Monetary() + format_omzet = fields.Char(compute='_amount_format', string='Omzet') + format_btw = fields.Char(compute='_amount_format', string='BTW') + + is_group = fields.Boolean(compute='_compute_is_group') + + @api.multi + @api.depends('omzet', 'btw', 'code') + def _amount_format(self): + for line in self: + omzet = formatLang(self.env, line.omzet, monetary=True) + btw = formatLang(self.env, line.btw, monetary=True) + if line.code in OMZET_DISPLAY: + line.format_omzet = omzet + if line.code in BTW_DISPLAY: + line.format_btw = btw + + @api.multi + @api.depends('code') + def _compute_is_group(self): + for line in self: + line.is_group = line.code in GROUP_DISPLAY + + @api.multi + def unlink(self): + for line in self: + if line.statement_id.state == 'posted': + raise UserError( + _('You cannot delete lines of a posted statement! ' + 'Reset the statement to draft first.')) + super(VatStatementLine, self).unlink() diff --git a/l10n_nl_tax_statement/report/report_tax_statement.xml b/l10n_nl_tax_statement/report/report_tax_statement.xml new file mode 100644 index 000000000..c22c55334 --- /dev/null +++ b/l10n_nl_tax_statement/report/report_tax_statement.xml @@ -0,0 +1,79 @@ + + + + + + + + diff --git a/l10n_nl_tax_statement/report/reports.xml b/l10n_nl_tax_statement/report/reports.xml new file mode 100644 index 000000000..25498941a --- /dev/null +++ b/l10n_nl_tax_statement/report/reports.xml @@ -0,0 +1,33 @@ + + + + + + + Dutch Tax Statement qweb paperformat + + A4 + 0 + 0 + Portrait + 12 + 8 + 5 + 5 + + 10 + 110 + + + + + + + diff --git a/l10n_nl_tax_statement/security/ir.model.access.csv b/l10n_nl_tax_statement/security/ir.model.access.csv new file mode 100644 index 000000000..946eb4a9b --- /dev/null +++ b/l10n_nl_tax_statement/security/ir.model.access.csv @@ -0,0 +1,4 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_l10n_nl_vat_statement_line,access_l10n_nl_vat_statement_line,model_l10n_nl_vat_statement_line,account.group_account_user,1,1,1,1 +access_l10n_nl_vat_statement,access_l10n_nl_vat_statement,model_l10n_nl_vat_statement,account.group_account_user,1,1,1,1 +access_l10n_nl_vat_statement_config,access_l10n_nl_vat_statement_config,model_l10n_nl_vat_statement_config,account.group_account_user,1,1,1,1 diff --git a/l10n_nl_tax_statement/static/src/css/report.css b/l10n_nl_tax_statement/static/src/css/report.css new file mode 100644 index 000000000..504b4c65a --- /dev/null +++ b/l10n_nl_tax_statement/static/src/css/report.css @@ -0,0 +1,49 @@ +body, table, td, span, div { + font-family: Helvetica, Arial; +} +.act_as_table { + display: table; +} +.act_as_row { + display: table-row !important; + page-break-inside: avoid; +} +.act_as_cell { + display: table-cell; + page-break-inside: avoid; + font-size:18px; +} +.act_as_row.labels { + background-color:#F0F0F0; +} +.data_table { + width: 100%; + table-layout: fixed; + border-left:0px; + border-right:0px; + text-align:left; + font-size:18px; + padding-right:3px; + padding-left:3px; + padding-top:3px; + padding-bottom:3px; + border-collapse:collapse; +} +.data_table .act_as_cell{ + border-bottom: 1px solid lightGrey; + text-align: center; + word-wrap: break-word; +} +.data_table .act_as_row.labels { + font-weight: bold; +} +.act_as_cell.right { + word-wrap:normal; + text-align:right; +} +.act_as_cell.left { + text-align:left; +} +.custom_footer { + font-size:18px; +} diff --git a/l10n_nl_tax_statement/tests/__init__.py b/l10n_nl_tax_statement/tests/__init__.py new file mode 100644 index 000000000..aa0860c67 --- /dev/null +++ b/l10n_nl_tax_statement/tests/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import test_l10n_nl_vat_statement diff --git a/l10n_nl_tax_statement/tests/test_l10n_nl_vat_statement.py b/l10n_nl_tax_statement/tests/test_l10n_nl_vat_statement.py new file mode 100644 index 000000000..9f7757582 --- /dev/null +++ b/l10n_nl_tax_statement/tests/test_l10n_nl_vat_statement.py @@ -0,0 +1,211 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.exceptions import Warning as UserError +from odoo.tests.common import TransactionCase +from datetime import datetime + + +class TestVatStatement(TransactionCase): + + def setUp(self): + super(TestVatStatement, self).setUp() + + self.Statement = self.env['l10n.nl.vat.statement'] + self.StatLine = self.env['l10n.nl.vat.statement.line'] + self.DateRange = self.env['date.range'] + self.DateRangeType = self.env['date.range.type'] + self.Config = self.env['l10n.nl.vat.statement.config'] + self.Tag = self.env['account.account.tag'] + self.Tax = self.env['account.tax'] + self.Invoice = self.env['account.invoice'] + self.InvoiceLine = self.env['account.invoice.line'] + self.Wizard = self.env['l10n.nl.vat.statement.config.wizard'] + + self.tag_1 = self.Tag.create({ + 'name': 'Tag 1', + 'applicability': 'taxes', + }) + + self.tag_2 = self.Tag.create({ + 'name': 'Tag 2', + 'applicability': 'taxes', + }) + + self.tax_1 = self.Tax.create({ + 'name': 'Tax 1', + 'amount': 21, + 'tag_ids': [(6, 0, [self.tag_1.id])], + }) + + self.tax_2 = self.Tax.create({ + 'name': 'Tax 2', + 'amount': 21, + 'tag_ids': [(6, 0, [self.tag_2.id])], + }) + + self.config = self.Config.create({ + 'company_id': self.env.user.company_id.id, + 'tag_1a_omzet': self.tag_1.id, + 'tag_1a_btw': self.tag_2.id, + }) + + self.daterange_type = self.DateRangeType.create({'name': 'Type 1'}) + + self.daterange_1 = self.DateRange.create({ + 'name': 'Daterange 1', + 'type_id': self.daterange_type.id, + 'date_start': '2016-01-01', + 'date_end': '2016-12-31', + }) + + self.statement_1 = self.Statement.create({ + 'name': 'Statement 1', + }) + + self.journal_1 = self.env['account.journal'].create({ + 'name': 'Journal 1', + 'code': 'Jou1', + 'type': 'sale', + }) + + self.partner = self.env['res.partner'].create({ + 'name': 'Test partner'}) + + type_account = self.env.ref('account.data_account_type_receivable') + + invoice_line_account = self.env['account.account'].search([ + ('user_type_id', '=', type_account.id) + ], limit=1).id + + self.invoice_1 = self.Invoice.create({ + 'partner_id': self.partner.id, + 'account_id': invoice_line_account, + 'journal_id': self.journal_1.id, + 'date_invoice': datetime.today(), + 'type': 'out_invoice', + }) + + self.invoice_line_1 = self.InvoiceLine.create({ + 'name': 'Test line', + 'quantity': 1.0, + 'account_id': invoice_line_account, + 'price_unit': 100.0, + 'invoice_id': self.invoice_1.id, + 'invoice_line_tax_ids': [(6, 0, [self.tax_1.id])], + }) + + self.invoice_line_2 = self.InvoiceLine.create({ + 'name': 'Test line 2', + 'quantity': 1.0, + 'account_id': invoice_line_account, + 'price_unit': 50.0, + 'invoice_id': self.invoice_1.id, + 'invoice_line_tax_ids': [(6, 0, [self.tax_2.id])], + }) + + def test_01_onchange(self): + self.statement_1.write({'date_range_id': self.daterange_1.id}) + self.statement_1.onchange_date_range_id() + self.assertEqual(self.statement_1.from_date, '2016-01-01') + self.assertEqual(self.statement_1.to_date, '2016-12-31') + + self.statement_1.onchange_date() + check_name = self.statement_1.company_id.name + check_name += ': ' + ' '.join( + [self.statement_1.from_date, self.statement_1.to_date]) + self.assertEqual(self.statement_1.name, check_name) + + def test_02_post(self): + self.statement_1.post() + self.assertEqual(self.statement_1.state, 'posted') + self.assertTrue(self.statement_1.date_posted) + + def test_03_reset(self): + self.statement_1.reset() + self.assertEqual(self.statement_1.state, 'draft') + self.assertFalse(self.statement_1.date_posted) + + def test_04_write(self): + self.statement_1.post() + with self.assertRaises(UserError): + self.statement_1.write({'name': 'Test Name'}) + + def test_05_unlink_exception(self): + self.statement_1.post() + with self.assertRaises(UserError): + self.statement_1.unlink() + + def test_06_unlink_working(self): + self.statement_1.unlink() + + def test_07_update_exception1(self): + self.statement_1.post() + with self.assertRaises(UserError): + self.statement_1.update() + + def test_08_update_exception2(self): + self.config.unlink() + with self.assertRaises(UserError): + self.statement_1.update() + + def test_09_update_working(self): + self.invoice_1._onchange_invoice_line_ids() + self.invoice_1.action_invoice_open() + self.statement_1.update() + self.assertEqual(len(self.statement_1.line_ids.ids), 19) + + _1 = self.StatLine.search( + [('code', '=', '1'), ('id', 'in', self.statement_1.line_ids.ids)], + limit=1) + + _1a = self.StatLine.search( + [('code', '=', '1a'), ('id', 'in', self.statement_1.line_ids.ids)], + limit=1) + + self.assertFalse(_1.format_omzet) + self.assertFalse(_1.format_btw) + self.assertTrue(_1.is_group) + + self.assertEqual(_1a.format_omzet, '100.00') + self.assertEqual(_1a.format_btw, '10.50') + self.assertFalse(_1a.is_group) + + def test_10_line_unlink_exception(self): + self.invoice_1.action_invoice_open() + self.statement_1.update() + self.statement_1.post() + with self.assertRaises(UserError): + self.statement_1.line_ids.unlink() + + def test_11_wizard_execute(self): + wizard = self.Wizard.create({}) + + self.assertEqual(wizard.tag_1a_omzet, self.tag_1) + self.assertEqual(wizard.tag_1a_btw, self.tag_2) + + wizard.write({ + 'tag_1a_btw': self.tag_1.id, + 'tag_1a_omzet': self.tag_2.id, + }) + + self.config.unlink() + + wizard_2 = self.Wizard.create({}) + self.assertNotEqual(wizard_2.tag_1a_omzet, self.tag_1) + self.assertNotEqual(wizard_2.tag_1a_btw, self.tag_2) + + config = self.Config.search( + [('company_id', '=', self.env.user.company_id.id)], + limit=1) + self.assertFalse(config) + + wizard.execute() + + config = self.Config.search( + [('company_id', '=', self.env.user.company_id.id)], + limit=1) + self.assertTrue(config) + self.assertEqual(config.tag_1a_btw, self.tag_1) + self.assertEqual(config.tag_1a_omzet, self.tag_2) diff --git a/l10n_nl_tax_statement/views/l10n_nl_vat_statement.xml b/l10n_nl_tax_statement/views/l10n_nl_vat_statement.xml new file mode 100644 index 000000000..757a40545 --- /dev/null +++ b/l10n_nl_tax_statement/views/l10n_nl_vat_statement.xml @@ -0,0 +1,92 @@ + + + + + l10n.nl.vat.statement + +
+
+
+ +
+
+
+ +
+
+ + + l10n.nl.vat.statement + + + + + + + + + + + + NL BTW Statement + l10n.nl.vat.statement + form + tree,form + + + + +
diff --git a/l10n_nl_tax_statement/wizard/__init__.py b/l10n_nl_tax_statement/wizard/__init__.py new file mode 100644 index 000000000..3601b563b --- /dev/null +++ b/l10n_nl_tax_statement/wizard/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import l10n_nl_vat_statement_config_wizard diff --git a/l10n_nl_tax_statement/wizard/l10n_nl_vat_statement_config_wizard.py b/l10n_nl_tax_statement/wizard/l10n_nl_vat_statement_config_wizard.py new file mode 100644 index 000000000..6600bbdaf --- /dev/null +++ b/l10n_nl_tax_statement/wizard/l10n_nl_vat_statement_config_wizard.py @@ -0,0 +1,128 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models + + +class VatStatementConfigWizard(models.TransientModel): + _name = 'l10n.nl.vat.statement.config.wizard' + + tag_1a_omzet = fields.Many2one('account.account.tag') + tag_1a_btw = fields.Many2one('account.account.tag') + tag_1b_omzet = fields.Many2one('account.account.tag') + tag_1b_btw = fields.Many2one('account.account.tag') + tag_1c_omzet = fields.Many2one('account.account.tag') + tag_1c_btw = fields.Many2one('account.account.tag') + tag_1d_omzet = fields.Many2one('account.account.tag') + tag_1d_btw = fields.Many2one('account.account.tag') + tag_1e_omzet = fields.Many2one('account.account.tag') + tag_2a_omzet = fields.Many2one('account.account.tag') + tag_2a_btw = fields.Many2one('account.account.tag') + tag_3a_omzet = fields.Many2one('account.account.tag') + tag_3b_omzet = fields.Many2one('account.account.tag') + tag_3c_omzet = fields.Many2one('account.account.tag') + tag_4a_omzet = fields.Many2one('account.account.tag') + tag_4a_btw = fields.Many2one('account.account.tag') + tag_4b_omzet = fields.Many2one('account.account.tag') + tag_4b_btw = fields.Many2one('account.account.tag') + tag_5b_btw = fields.Many2one('account.account.tag') + tag_5b_btw_bis = fields.Many2one('account.account.tag') + + @api.model + def default_get(self, fields_list): + defv = super(VatStatementConfigWizard, self).default_get(fields_list) + + company_id = self.env.user.company_id.id + config = self.env['l10n.nl.vat.statement.config'].search([ + ('company_id', '=', company_id)], limit=1 + ) + if config: + defv.setdefault('tag_1a_omzet', config.tag_1a_omzet.id) + defv.setdefault('tag_1a_btw', config.tag_1a_btw.id) + defv.setdefault('tag_1b_omzet', config.tag_1b_omzet.id) + defv.setdefault('tag_1b_btw', config.tag_1b_btw.id) + defv.setdefault('tag_1c_omzet', config.tag_1c_omzet.id) + defv.setdefault('tag_1c_btw', config.tag_1c_btw.id) + defv.setdefault('tag_1d_omzet', config.tag_1d_omzet.id) + defv.setdefault('tag_1d_btw', config.tag_1d_btw.id) + defv.setdefault('tag_1e_omzet', config.tag_1e_omzet.id) + defv.setdefault('tag_2a_omzet', config.tag_2a_omzet.id) + defv.setdefault('tag_2a_btw', config.tag_2a_btw.id) + defv.setdefault('tag_3a_omzet', config.tag_3a_omzet.id) + defv.setdefault('tag_3b_omzet', config.tag_3b_omzet.id) + defv.setdefault('tag_3c_omzet', config.tag_3c_omzet.id) + defv.setdefault('tag_4a_omzet', config.tag_4a_omzet.id) + defv.setdefault('tag_4a_btw', config.tag_4a_btw.id) + defv.setdefault('tag_4b_omzet', config.tag_4b_omzet.id) + defv.setdefault('tag_4b_btw', config.tag_4b_btw.id) + defv.setdefault('tag_5b_btw', config.tag_5b_btw.id) + defv.setdefault('tag_5b_btw_bis', config.tag_5b_btw_bis.id) + return defv + + is_l10n_nl_coa = self.env.ref('l10n_nl.l10nnl_chart_template', False) + company_coa = self.env.user.company_id.chart_template_id + if company_coa != is_l10n_nl_coa: + return defv + + defv.setdefault('tag_1a_omzet', self.env.ref('l10n_nl.tag_nl_03').id) + defv.setdefault('tag_1a_btw', self.env.ref('l10n_nl.tag_nl_20').id) + defv.setdefault('tag_1b_omzet', self.env.ref('l10n_nl.tag_nl_05').id) + defv.setdefault('tag_1b_btw', self.env.ref('l10n_nl.tag_nl_22').id) + defv.setdefault('tag_1c_omzet', self.env.ref('l10n_nl.tag_nl_06').id) + defv.setdefault('tag_1c_btw', self.env.ref('l10n_nl.tag_nl_23').id) + defv.setdefault('tag_1d_omzet', self.env.ref('l10n_nl.tag_nl_07').id) + defv.setdefault('tag_1d_btw', self.env.ref('l10n_nl.tag_nl_24').id) + defv.setdefault('tag_1e_omzet', self.env.ref('l10n_nl.tag_nl_08').id) + defv.setdefault('tag_2a_omzet', self.env.ref('l10n_nl.tag_nl_10').id) + defv.setdefault('tag_2a_btw', self.env.ref('l10n_nl.tag_nl_27').id) + defv.setdefault('tag_3a_omzet', self.env.ref('l10n_nl.tag_nl_12').id) + defv.setdefault('tag_3b_omzet', self.env.ref('l10n_nl.tag_nl_13').id) + defv.setdefault('tag_3c_omzet', self.env.ref('l10n_nl.tag_nl_14').id) + defv.setdefault('tag_4a_omzet', self.env.ref('l10n_nl.tag_nl_16').id) + defv.setdefault('tag_4a_btw', self.env.ref('l10n_nl.tag_nl_29').id) + defv.setdefault('tag_4b_omzet', self.env.ref('l10n_nl.tag_nl_17').id) + defv.setdefault('tag_4b_btw', self.env.ref('l10n_nl.tag_nl_30').id) + defv.setdefault('tag_5b_btw', self.env.ref('l10n_nl.tag_nl_33').id) + defv.setdefault('tag_5b_btw_bis', self.env.ref('l10n_nl.tag_nl_34').id) + return defv + + @api.multi + def execute(self): + self.ensure_one() + + company_id = self.env.user.company_id.id + config = self.env['l10n.nl.vat.statement.config'].search([ + ('company_id', '=', company_id)], limit=1 + ) + if not config: + config = self.env['l10n.nl.vat.statement.config'].create({ + 'company_id': company_id + }) + config.write({ + 'company_id': company_id, + 'tag_1a_omzet': self.tag_1a_omzet.id, + 'tag_1a_btw': self.tag_1a_btw.id, + 'tag_1b_omzet': self.tag_1b_omzet.id, + 'tag_1b_btw': self.tag_1b_btw.id, + 'tag_1c_omzet': self.tag_1c_omzet.id, + 'tag_1c_btw': self.tag_1c_btw.id, + 'tag_1d_omzet': self.tag_1d_omzet.id, + 'tag_1d_btw': self.tag_1d_btw.id, + 'tag_1e_omzet': self.tag_1e_omzet.id, + 'tag_2a_omzet': self.tag_2a_omzet.id, + 'tag_2a_btw': self.tag_2a_btw.id, + 'tag_3a_omzet': self.tag_3a_omzet.id, + 'tag_3b_omzet': self.tag_3b_omzet.id, + 'tag_3c_omzet': self.tag_3c_omzet.id, + 'tag_4a_omzet': self.tag_4a_omzet.id, + 'tag_4a_btw': self.tag_4a_btw.id, + 'tag_4b_omzet': self.tag_4b_omzet.id, + 'tag_4b_btw': self.tag_4b_btw.id, + 'tag_5b_btw': self.tag_5b_btw.id, + 'tag_5b_btw_bis': self.tag_5b_btw_bis.id, + }) + + action_name = 'l10n_nl_tax_statement.action_account_vat_statement_nl' + action = self.env.ref(action_name).read()[0] + return action diff --git a/l10n_nl_tax_statement/wizard/l10n_nl_vat_statement_config_wizard.xml b/l10n_nl_tax_statement/wizard/l10n_nl_vat_statement_config_wizard.xml new file mode 100644 index 000000000..18587c012 --- /dev/null +++ b/l10n_nl_tax_statement/wizard/l10n_nl_vat_statement_config_wizard.xml @@ -0,0 +1,110 @@ + + + + + l10n.nl.vat.statement.config.wizard + +
+
+
+ + + + + + + + + + + + +
+
+ + + NL BTW Tags + l10n.nl.vat.statement.config.wizard + form + inline + + + + +
From 2cdef5bf3fc28fee5c8412fccafd67a6acdc0cbe Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Mon, 1 May 2017 19:57:18 +0200 Subject: [PATCH 02/34] OCA Transbot updated translations from Transifex --- l10n_nl_tax_statement/i18n/nl.po | 180 ++++++++++++++++++++----------- 1 file changed, 115 insertions(+), 65 deletions(-) diff --git a/l10n_nl_tax_statement/i18n/nl.po b/l10n_nl_tax_statement/i18n/nl.po index ae52c14f0..9d48ac818 100644 --- a/l10n_nl_tax_statement/i18n/nl.po +++ b/l10n_nl_tax_statement/i18n/nl.po @@ -1,19 +1,27 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * l10n_nl_tax_statement -# +# * l10n_nl_tax_statement +# +# Translators: +# OCA Transbot , 2017 msgid "" msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-03-23 12:00+0000\n" -"PO-Revision-Date: 2017-03-23 12:00+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" +"POT-Creation-Date: 2017-04-21 02:39+0000\n" +"PO-Revision-Date: 2017-04-21 02:39+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement +msgid "&nbsp; &nbsp;" +msgstr "" #. module: l10n_nl_tax_statement #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config @@ -36,7 +44,7 @@ msgid "1d" msgstr "1d" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:120 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:109 #, python-format msgid "1d Prive-gebruik" msgstr "1d Prive-gebruik" @@ -124,24 +132,40 @@ msgid "BTW Tags Settings" msgstr "" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_btw_9796 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_btw msgid "Btw" msgstr "Btw" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_code_9797 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_code msgid "Code" msgstr "Code" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_company_id_9788 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_company_id #: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_company_id msgid "Company" msgstr "Bedrijf" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_currency_id_9789 -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_currency_id_9801 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_create_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_create_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_create_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_create_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_create_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_create_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_currency_id +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_currency_id #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters msgid "Currency" msgstr "Valuta" @@ -153,7 +177,7 @@ msgid "Date posted" msgstr "" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_date_range_id_9794 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_date_range_id #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters msgid "Date range" msgstr "" @@ -167,8 +191,8 @@ msgstr "" #. module: l10n_nl_tax_statement #: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_display_name #: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_display_name -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_display_name_9793 -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_display_name_9804 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_display_name +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_display_name msgid "Display Name" msgstr "Weergave naam" @@ -178,18 +202,26 @@ msgid "Draft" msgstr "" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_from_date_9783 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_from_date msgid "From date" msgstr "" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:129 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:118 #, python-format msgid "Heffing van omzetbelasting is naar u verlegd" msgstr "Heffing van omzetbelasting is naar u verlegd" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:141 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_id +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_id +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_id +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_id +msgid "ID" +msgstr "ID" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:130 #, python-format msgid "Installatie/afstandsverkopen binnen de EU" msgstr "Installatie/afstandsverkopen binnen de EU" @@ -200,72 +232,88 @@ msgid "Is group" msgstr "" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement___last_update_9785 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement___last_update #: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config___last_update #: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard___last_update -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line___last_update_9799 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line___last_update msgid "Last Modified on" msgstr "Laatst gewijzigd op" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:107 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_write_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_write_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_write_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_write_uid +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_write_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_write_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_write_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_write_date +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:96 #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config #, python-format msgid "Leveringen en/of diensten binnenland" msgstr "Leveringen en/of diensten binnenland" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:132 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:121 #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config #, python-format msgid "Leveringen naar het buitenland" msgstr "Leveringen naar het buitenland" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:138 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:127 #, python-format msgid "Leveringen naar landen binnen de EU" msgstr "Leveringen naar landen binnen de EU" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:135 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:124 #, python-format msgid "Leveringen naar landen buiten de EU" msgstr "Leveringen naar landen buiten de EU" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:144 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:133 #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config #, python-format msgid "Leveringen vanuit het buitenland" msgstr "Leveringen vanuit het buitenland" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:123 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:112 #, python-format msgid "Leveringen/diensten belast met 0%" msgstr "Leveringen/diensten belast met 0%" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:110 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:99 #, python-format msgid "Leveringen/diensten belast met hoog tarief" msgstr "Leveringen/diensten belast met hoog tarief" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:113 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:102 #, python-format msgid "Leveringen/diensten belast met laag tarief" msgstr "Leveringen/diensten belast met laag tarief" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:116 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:105 #, python-format msgid "Leveringen/diensten belast met overige tarieven behalve 0%" msgstr "Leveringen/diensten belast met overige tarieven behalve 0%" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_ids_9792 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_ids msgid "Lines" msgstr "Regels" @@ -287,13 +335,13 @@ msgid "NL Tax Statement" msgstr "" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_name_9806 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_name msgid "Name" msgstr "Naam" #. module: l10n_nl_tax_statement #: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_format_omzet -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_omzet_9802 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_omzet #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config msgid "Omzet" @@ -315,18 +363,18 @@ msgid "Reset to Draft" msgstr "Terugzetten naar concept" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_statement_id_9798 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_statement_id #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_l10n_nl_vat_report_form msgid "Statement" msgstr "Afschrift" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_state_9790 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_state msgid "Status" msgstr "Status" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:162 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:151 #, python-format msgid "Subtotaal (rubriek 5a min 5b)" msgstr "Subtotaal (rubriek 5a min 5b)" @@ -452,10 +500,14 @@ msgid "Tag 5b btw bis" msgstr "Tag 5b btw bis" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:191 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:187 #, python-format -msgid "Tags mapping not configured for this Company! Check the NL BTW Tags Configuration." -msgstr "Tags mapping not configured for this Company! Check the NL BTW Tags Configuration." +msgid "" +"Tags mapping not configured for this Company! Check the NL BTW Tags " +"Configuration." +msgstr "" +"Tags mapping not configured for this Company! Check the NL BTW Tags " +"Configuration." #. module: l10n_nl_tax_statement #: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_target_move @@ -468,12 +520,12 @@ msgid "Target moves" msgstr "" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_name_9784 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_name msgid "Tax Statement" msgstr "" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_to_date_9791 +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_to_date msgid "To date" msgstr "" @@ -483,65 +535,74 @@ msgid "Update" msgstr "Bijwerken" #. module: l10n_nl_tax_statement -#: model:ir.model.fields,help:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_currency_id_9801 +#: model:ir.model.fields,help:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_currency_id msgid "Utility field to express amount currency" msgstr "Hulpveld om de valuta uit te drukken" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:126 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:115 #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config #, python-format msgid "Verleggingsregelingen: BTW naar u verlegd" msgstr "Verleggingsregelingen: BTW naar u verlegd" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:156 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:145 #, python-format msgid "Verschuldigde omzetbelasting (rubrieken 1a t/m 4b)" msgstr "Verschuldigde omzetbelasting (rubrieken 1a t/m 4b)" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:147 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:136 #, python-format msgid "Verwerving uit landen buiten de EU" msgstr "Verwerving uit landen buiten de EU" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:150 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:139 #, python-format msgid "Verwerving van goederen uit landen binnen de EU" msgstr "Verwerving van goederen uit landen binnen de EU" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:153 -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:159 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:142 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:148 #: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config #, python-format msgid "Voorbelasting" msgstr "Voorbelasting" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:292 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:288 #, python-format -msgid "You cannot delete a posted statement! Reset the statement to draft first." +msgid "" +"You cannot delete a posted statement! Reset the statement to draft first." msgstr "" #. module: l10n_nl_tax_statement #: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py:69 #, python-format -msgid "You cannot delete lines of a posted statement! Reset the statement to draft first." +msgid "" +"You cannot delete lines of a posted statement! Reset the statement to draft " +"first." msgstr "" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:222 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:218 #, python-format msgid "You cannot modify a posted statement!" msgstr "" #. module: l10n_nl_tax_statement -#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:283 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:279 #, python-format -msgid "You cannot modify a posted statement! Reset the statement to draft first." +msgid "" +"You cannot modify a posted statement! Reset the statement to draft first." +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement +msgid "l10n.nl.vat.statement" msgstr "" #. module: l10n_nl_tax_statement @@ -558,14 +619,3 @@ msgstr "l10n.nl.vat.statement.config.wizard" #: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement_line msgid "l10n.nl.vat.statement.line" msgstr "l10n.nl.vat.statement.line" - -#. module: l10n_nl_tax_statement -#: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement -msgid "l10n_nl_vat_statement" -msgstr "l10n_nl_vat_statement" - -#. module: l10n_nl_tax_statement -#: model:ir.model,name:l10n_nl_tax_statement.model_report_l10n_nl_tax_declaration_reporting_tax_report_template -msgid "report.l10n_nl_tax_declaration_reporting.tax_report_template" -msgstr "report.l10n_nl_tax_declaration_reporting.tax_report_template" - From 73f17f18c57ebc716ccd219cb4189ccbb82514f6 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Sat, 3 Jun 2017 05:21:15 +0200 Subject: [PATCH 03/34] OCA Transbot updated translations from Transifex --- l10n_nl_tax_statement/i18n/nl.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/l10n_nl_tax_statement/i18n/nl.po b/l10n_nl_tax_statement/i18n/nl.po index 9d48ac818..7ec98ddd8 100644 --- a/l10n_nl_tax_statement/i18n/nl.po +++ b/l10n_nl_tax_statement/i18n/nl.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-21 02:39+0000\n" -"PO-Revision-Date: 2017-04-21 02:39+0000\n" +"POT-Creation-Date: 2017-05-31 03:42+0000\n" +"PO-Revision-Date: 2017-05-31 03:42+0000\n" "Last-Translator: OCA Transbot , 2017\n" "Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" "MIME-Version: 1.0\n" @@ -199,7 +199,7 @@ msgstr "Weergave naam" #. module: l10n_nl_tax_statement #: selection:l10n.nl.vat.statement,state:0 msgid "Draft" -msgstr "" +msgstr "Concept" #. module: l10n_nl_tax_statement #: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_from_date From 4166d03663b8a4546f5c57cd87264f8b62d783aa Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Sat, 17 Jun 2017 05:21:39 +0200 Subject: [PATCH 04/34] OCA Transbot updated translations from Transifex --- l10n_nl_tax_statement/i18n/nl_NL.po | 619 ++++++++++++++++++++++++++++ 1 file changed, 619 insertions(+) create mode 100644 l10n_nl_tax_statement/i18n/nl_NL.po diff --git a/l10n_nl_tax_statement/i18n/nl_NL.po b/l10n_nl_tax_statement/i18n/nl_NL.po new file mode 100644 index 000000000..b4541881a --- /dev/null +++ b/l10n_nl_tax_statement/i18n/nl_NL.po @@ -0,0 +1,619 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_nl_tax_statement +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-06-04 06:46+0000\n" +"PO-Revision-Date: 2017-06-04 06:46+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/23907/nl_NL/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl_NL\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement +msgid "&nbsp; &nbsp;" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "1a" +msgstr "1a" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "1b" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "1c" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "1d" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:109 +#, python-format +msgid "1d Prive-gebruik" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "1e" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "2a" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "3a" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "3b" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "3c" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "4a" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "4b" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "5b" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "5b bis" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.internal_layout +msgid "Printed: " +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement +msgid "Aangifte omzetbelasting" +msgstr "Aangifte omzetbelasting" + +#. module: l10n_nl_tax_statement +#: selection:l10n.nl.vat.statement,target_move:0 +msgid "All Entries" +msgstr "" + +#. module: l10n_nl_tax_statement +#: selection:l10n.nl.vat.statement,target_move:0 +msgid "All Posted Entries" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "Apply" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_format_btw +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "BTW" +msgstr "BTW" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "BTW Tags Settings" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_btw +msgid "Btw" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_code +msgid "Code" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_company_id +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_company_id +msgid "Company" +msgstr "Bedrijf" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_create_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_create_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_create_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_create_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_create_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_create_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_currency_id +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_currency_id +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters +msgid "Currency" +msgstr "Valuta" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_date_posted +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters +msgid "Date posted" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_date_range_id +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters +msgid "Date range" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_date_update +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters +msgid "Date update" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_display_name +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_display_name +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_display_name +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_display_name +msgid "Display Name" +msgstr "" + +#. module: l10n_nl_tax_statement +#: selection:l10n.nl.vat.statement,state:0 +msgid "Draft" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_from_date +msgid "From date" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:118 +#, python-format +msgid "Heffing van omzetbelasting is naar u verlegd" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_id +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_id +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_id +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_id +msgid "ID" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:130 +#, python-format +msgid "Installatie/afstandsverkopen binnen de EU" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_is_group +msgid "Is group" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement___last_update +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config___last_update +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard___last_update +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line___last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_write_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_write_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_write_uid +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_write_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_write_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_write_date +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_write_date +msgid "Last Updated on" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:96 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +#, python-format +msgid "Leveringen en/of diensten binnenland" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:121 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +#, python-format +msgid "Leveringen naar het buitenland" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:127 +#, python-format +msgid "Leveringen naar landen binnen de EU" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:124 +#, python-format +msgid "Leveringen naar landen buiten de EU" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:133 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +#, python-format +msgid "Leveringen vanuit het buitenland" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:112 +#, python-format +msgid "Leveringen/diensten belast met 0%" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:99 +#, python-format +msgid "Leveringen/diensten belast met hoog tarief" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:102 +#, python-format +msgid "Leveringen/diensten belast met laag tarief" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:105 +#, python-format +msgid "Leveringen/diensten belast met overige tarieven behalve 0%" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_ids +msgid "Lines" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.actions.act_window,name:l10n_nl_tax_statement.action_account_vat_statement_nl +#: model:ir.ui.menu,name:l10n_nl_tax_statement.menu_account_vat_statement_nl +msgid "NL BTW Statement" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.actions.act_window,name:l10n_nl_tax_statement.action_account_vat_statement_nl_config +#: model:ir.ui.menu,name:l10n_nl_tax_statement.menu_account_vat_statement_nl_config +msgid "NL BTW Tags" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.actions.report.xml,name:l10n_nl_tax_statement.action_report_tax_statement +msgid "NL Tax Statement" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_name +msgid "Name" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_format_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_omzet +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +msgid "Omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_l10n_nl_vat_report_form +msgid "Post" +msgstr "" + +#. module: l10n_nl_tax_statement +#: selection:l10n.nl.vat.statement,state:0 +msgid "Posted" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_l10n_nl_vat_report_form +msgid "Reset to Draft" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_statement_id +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_l10n_nl_vat_report_form +msgid "Statement" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_state +msgid "Status" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:151 +#, python-format +msgid "Subtotaal (rubriek 5a min 5b)" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1a_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1a_btw +msgid "Tag 1a btw" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1a_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1a_omzet +msgid "Tag 1a omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1b_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1b_btw +msgid "Tag 1b btw" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1b_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1b_omzet +msgid "Tag 1b omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1c_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1c_btw +msgid "Tag 1c btw" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1c_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1c_omzet +msgid "Tag 1c omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1d_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1d_btw +msgid "Tag 1d btw" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1d_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1d_omzet +msgid "Tag 1d omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_1e_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_1e_omzet +msgid "Tag 1e omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_2a_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_2a_btw +msgid "Tag 2a btw" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_2a_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_2a_omzet +msgid "Tag 2a omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_3a_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_3a_omzet +msgid "Tag 3a omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_3b_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_3b_omzet +msgid "Tag 3b omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_3c_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_3c_omzet +msgid "Tag 3c omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_4a_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_4a_btw +msgid "Tag 4a btw" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_4a_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_4a_omzet +msgid "Tag 4a omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_4b_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_4b_btw +msgid "Tag 4b btw" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_4b_omzet +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_4b_omzet +msgid "Tag 4b omzet" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_5b_btw +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_5b_btw +msgid "Tag 5b btw" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_tag_5b_btw_bis +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_config_wizard_tag_5b_btw_bis +msgid "Tag 5b btw bis" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:187 +#, python-format +msgid "" +"Tags mapping not configured for this Company! Check the NL BTW Tags " +"Configuration." +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_target_move +msgid "Target Moves" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.report_tax_statement_filters +msgid "Target moves" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_name +msgid "Tax Statement" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,field_description:l10n_nl_tax_statement.field_l10n_nl_vat_statement_to_date +msgid "To date" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_l10n_nl_vat_report_form +msgid "Update" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model.fields,help:l10n_nl_tax_statement.field_l10n_nl_vat_statement_line_currency_id +msgid "Utility field to express amount currency" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:115 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +#, python-format +msgid "Verleggingsregelingen: BTW naar u verlegd" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:145 +#, python-format +msgid "Verschuldigde omzetbelasting (rubrieken 1a t/m 4b)" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:136 +#, python-format +msgid "Verwerving uit landen buiten de EU" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:139 +#, python-format +msgid "Verwerving van goederen uit landen binnen de EU" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:142 +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:148 +#: model:ir.ui.view,arch_db:l10n_nl_tax_statement.view_account_vat_statement_nl_config +#, python-format +msgid "Voorbelasting" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:288 +#, python-format +msgid "" +"You cannot delete a posted statement! Reset the statement to draft first." +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py:69 +#, python-format +msgid "" +"You cannot delete lines of a posted statement! Reset the statement to draft " +"first." +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:218 +#, python-format +msgid "You cannot modify a posted statement!" +msgstr "" + +#. module: l10n_nl_tax_statement +#: code:addons/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py:279 +#, python-format +msgid "" +"You cannot modify a posted statement! Reset the statement to draft first." +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement +msgid "l10n.nl.vat.statement" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement_config +msgid "l10n.nl.vat.statement.config" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement_config_wizard +msgid "l10n.nl.vat.statement.config.wizard" +msgstr "" + +#. module: l10n_nl_tax_statement +#: model:ir.model,name:l10n_nl_tax_statement.model_l10n_nl_vat_statement_line +msgid "l10n.nl.vat.statement.line" +msgstr "" From 50e87b50aa32a0306621da92c5fbe15ea3ef5aa9 Mon Sep 17 00:00:00 2001 From: Andrea Date: Wed, 21 Jun 2017 09:20:54 +0200 Subject: [PATCH 05/34] Fix onchange_date_range_id() --- l10n_nl_tax_statement/models/l10n_nl_vat_statement.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py b/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py index 27223a1aa..c8e292181 100644 --- a/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py +++ b/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py @@ -72,10 +72,8 @@ def default_get(self, fields_list): @api.onchange('date_range_id') def onchange_date_range_id(self): if self.date_range_id and self.state == 'draft': - self.write({ - 'from_date': self.date_range_id.date_start, - 'to_date': self.date_range_id.date_end, - }) + self.from_date = self.date_range_id.date_start + self.to_date = self.date_range_id.date_end @api.onchange('from_date', 'to_date') def onchange_date(self): From 824003832cfbc3427a9ef3eb3e907161622164b0 Mon Sep 17 00:00:00 2001 From: Andrea Date: Wed, 21 Jun 2017 10:30:00 +0200 Subject: [PATCH 06/34] Make use of update() + renamed button method --- l10n_nl_tax_statement/__manifest__.py | 2 +- l10n_nl_tax_statement/models/l10n_nl_vat_statement.py | 8 +++++--- l10n_nl_tax_statement/tests/test_l10n_nl_vat_statement.py | 8 ++++---- l10n_nl_tax_statement/views/l10n_nl_vat_statement.xml | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/l10n_nl_tax_statement/__manifest__.py b/l10n_nl_tax_statement/__manifest__.py index e20d64292..b463aef16 100644 --- a/l10n_nl_tax_statement/__manifest__.py +++ b/l10n_nl_tax_statement/__manifest__.py @@ -4,7 +4,7 @@ { 'name': 'Netherlands BTW Statement', - 'version': '10.0.1.0.0', + 'version': '10.0.1.0.1', 'category': 'Localization', 'license': 'AGPL-3', 'author': 'Onestein, Odoo Community Association (OCA)', diff --git a/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py b/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py index c8e292181..4d692cc23 100644 --- a/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py +++ b/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py @@ -72,8 +72,10 @@ def default_get(self, fields_list): @api.onchange('date_range_id') def onchange_date_range_id(self): if self.date_range_id and self.state == 'draft': - self.from_date = self.date_range_id.date_start - self.to_date = self.date_range_id.date_end + self.update({ + 'from_date': self.date_range_id.date_start, + 'to_date': self.date_range_id.date_end, + }) @api.onchange('from_date', 'to_date') def onchange_date(self): @@ -208,7 +210,7 @@ def _get_tags_map(self): } @api.multi - def update(self): + def statement_update(self): self.ensure_one() if self.state == 'posted': diff --git a/l10n_nl_tax_statement/tests/test_l10n_nl_vat_statement.py b/l10n_nl_tax_statement/tests/test_l10n_nl_vat_statement.py index 9f7757582..0d9ae1e82 100644 --- a/l10n_nl_tax_statement/tests/test_l10n_nl_vat_statement.py +++ b/l10n_nl_tax_statement/tests/test_l10n_nl_vat_statement.py @@ -143,17 +143,17 @@ def test_06_unlink_working(self): def test_07_update_exception1(self): self.statement_1.post() with self.assertRaises(UserError): - self.statement_1.update() + self.statement_1.statement_update() def test_08_update_exception2(self): self.config.unlink() with self.assertRaises(UserError): - self.statement_1.update() + self.statement_1.statement_update() def test_09_update_working(self): self.invoice_1._onchange_invoice_line_ids() self.invoice_1.action_invoice_open() - self.statement_1.update() + self.statement_1.statement_update() self.assertEqual(len(self.statement_1.line_ids.ids), 19) _1 = self.StatLine.search( @@ -174,7 +174,7 @@ def test_09_update_working(self): def test_10_line_unlink_exception(self): self.invoice_1.action_invoice_open() - self.statement_1.update() + self.statement_1.statement_update() self.statement_1.post() with self.assertRaises(UserError): self.statement_1.line_ids.unlink() diff --git a/l10n_nl_tax_statement/views/l10n_nl_vat_statement.xml b/l10n_nl_tax_statement/views/l10n_nl_vat_statement.xml index 757a40545..7667e77a6 100644 --- a/l10n_nl_tax_statement/views/l10n_nl_vat_statement.xml +++ b/l10n_nl_tax_statement/views/l10n_nl_vat_statement.xml @@ -11,7 +11,7 @@
-
@@ -71,6 +80,7 @@ + From 0a7d88a3df98f4bf93ed08e3bf4cb9aaa1ff112f Mon Sep 17 00:00:00 2001 From: Andrea Date: Sat, 2 Dec 2017 11:06:47 +0100 Subject: [PATCH 14/34] [MIG] Porting to V11 --- l10n_nl_tax_statement/README.rst | 42 +++++++++++++------ l10n_nl_tax_statement/__init__.py | 4 -- l10n_nl_tax_statement/__manifest__.py | 11 +++-- .../reports.xml => data/paperformat.xml} | 16 ++----- l10n_nl_tax_statement/data/report_layouts.xml | 39 ----------------- l10n_nl_tax_statement/models/__init__.py | 4 -- .../models/l10n_nl_vat_statement.py | 20 +++++++-- .../models/l10n_nl_vat_statement_config.py | 1 - .../models/l10n_nl_vat_statement_line.py | 1 - .../report/report_tax_statement.xml | 32 ++++++++++++++ .../security/tax_statement_security_rule.xml | 3 ++ l10n_nl_tax_statement/templates/assets.xml | 13 ++++++ l10n_nl_tax_statement/tests/__init__.py | 4 -- .../tests/test_l10n_nl_vat_statement.py | 1 - ...ent.xml => l10n_nl_vat_statement_view.xml} | 2 +- .../views/report_tax_statement.xml | 20 +++++++++ l10n_nl_tax_statement/wizard/__init__.py | 4 -- .../l10n_nl_vat_statement_config_wizard.py | 1 - .../l10n_nl_vat_statement_config_wizard.xml | 5 ++- 19 files changed, 127 insertions(+), 96 deletions(-) rename l10n_nl_tax_statement/{report/reports.xml => data/paperformat.xml} (63%) delete mode 100644 l10n_nl_tax_statement/data/report_layouts.xml create mode 100644 l10n_nl_tax_statement/templates/assets.xml rename l10n_nl_tax_statement/views/{l10n_nl_vat_statement.xml => l10n_nl_vat_statement_view.xml} (98%) create mode 100644 l10n_nl_tax_statement/views/report_tax_statement.xml diff --git a/l10n_nl_tax_statement/README.rst b/l10n_nl_tax_statement/README.rst index f4cad8188..81a18181f 100644 --- a/l10n_nl_tax_statement/README.rst +++ b/l10n_nl_tax_statement/README.rst @@ -1,5 +1,5 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: https://www.gnu.org/licenses/agpl :alt: License: AGPL-3 ========================= @@ -8,38 +8,52 @@ Netherlands BTW Statement This module provides you with the Tax Statement in the Dutch format. +Use this module in combination with module ``l10n_nl_tax_invoice_basis`` if you want to adopt the *Factuurstelsel* system for your Company. + Installation ============ -* This module depends from module account_tax_balance available at https://github.com/OCA/account-financial-reporting. -* This module also depends from module date_range that is supported as of postgresql 9.2 or later versions. +* This module depends on module ``account_tax_balance`` available at https://github.com/OCA/account-financial-reporting. +* This module also depends on module date_range that is supported as of postgresql 9.2 or later versions. Configuration ============= -This module depends on the tax tags (eg.: 1a, 1b, 1c, 1d, 2a...) as prescribed by the Dutch tax laws. +This module makes use of the tax tags (eg.: 1a, 1b, 1c, 1d, 2a...) as prescribed by the Dutch tax laws. -If the default Odoo Dutch chart of accounts is installed (module l10n_nl) then these tags are automatically present in the database. -If this is the case, go to menu: Invoicing -> Configuration -> Accounting -> NL BTW Tags, and check that the tags are correctly set; click Apply to confirm. +If the default Odoo Dutch chart of accounts is installed (module ``l10n_nl``) then these tags are automatically present in the database. +If this is the case, go to menu: `Invoicing -> Configuration -> Accounting -> NL BTW Tags`, and check that the tags are correctly set; click Apply to confirm. If a non-standard chart of accounts is installed, you have to manually create the tax tags and properly set them into the tax definition. -After that, go to go to menu: Invoicing -> Configuration -> Accounting -> NL BTW Tags, and manually set the tags in the configuration form; click Apply to confirm. +After that, go to go to menu: `Invoicing -> Configuration -> Accounting -> NL BTW Tags`, and manually set the tags in the configuration form; click Apply to confirm. + +If your Company adopts the *Factuurstelsel* system for the accounting, also install the module ``l10n_nl_tax_invoice_basis`` +(for more information about the installation and configuration of that module, check the README file). Usage ===== +To create a statement you need to: + #. Verify that you have enough permits. You need to belong at least to the Accountant group. -#. Go to the menu: Invoicing -> Reports > Taxes Balance > NL BTW Statement +#. Go to the menu: `Invoicing -> Reports > Taxes Balance > NL BTW Statement` #. Create a statement, providing a name and specifying start date and end date -#. Press the Update button to calculate the report: the report lines will be displayed in the tab Statement +#. Press the Update button to calculate the report: the report lines will be displayed in the tab `Statement` #. Manually enter the BTW amounts of lines '5d', '5e', '5f' (in Edit mode, click on the amount of the line to be able to change it) -#. Press the Post button to set the status of the statement to Posted; the statements set to this state cannot be modified anymore +#. Press the Post button to set the status of the statement to Posted; the statements set to this state cannot be modified + +Extra info about the workflow: + #. If you need to recalculate or modify or delete a statement already set to Posted status you need first to set it back to Draft status: press the button Reset to Draft -#. If you need to print the report in PDF, open a statement form and click: Print -> NL Tax Statement + +Printing a PDF report: + +#. If you need to print the report in PDF, open a statement form and click: `Print -> NL Tax Statement` + .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/176/10.0 + :target: https://runbot.odoo-community.org/runbot/176/11.0 Known issues / Roadmap @@ -65,6 +79,8 @@ Contributors * Andrea Stirpe * Antonio Esposito +Do not contact contributors directly about support or help with technical issues. + Maintainer ---------- diff --git a/l10n_nl_tax_statement/__init__.py b/l10n_nl_tax_statement/__init__.py index 0cecaae2e..9b4296142 100644 --- a/l10n_nl_tax_statement/__init__.py +++ b/l10n_nl_tax_statement/__init__.py @@ -1,6 +1,2 @@ -# -*- coding: utf-8 -*- -# Copyright 2017 Onestein () -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - from . import models from . import wizard diff --git a/l10n_nl_tax_statement/__manifest__.py b/l10n_nl_tax_statement/__manifest__.py index 1d520757e..f1ea72c81 100644 --- a/l10n_nl_tax_statement/__manifest__.py +++ b/l10n_nl_tax_statement/__manifest__.py @@ -1,24 +1,23 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Onestein () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { 'name': 'Netherlands BTW Statement', - 'version': '10.0.1.1.0', + 'version': '11.0.1.0.0', 'category': 'Localization', 'license': 'AGPL-3', 'author': 'Onestein, Odoo Community Association (OCA)', 'website': 'http://www.onestein.eu', 'depends': [ 'account_tax_balance', - 'report', ], 'data': [ 'security/ir.model.access.csv', 'security/tax_statement_security_rule.xml', - 'data/report_layouts.xml', - 'views/l10n_nl_vat_statement.xml', - 'report/reports.xml', + 'data/paperformat.xml', + 'templates/assets.xml', + 'views/l10n_nl_vat_statement_view.xml', + 'views/report_tax_statement.xml', 'report/report_tax_statement.xml', 'wizard/l10n_nl_vat_statement_config_wizard.xml', ], diff --git a/l10n_nl_tax_statement/report/reports.xml b/l10n_nl_tax_statement/data/paperformat.xml similarity index 63% rename from l10n_nl_tax_statement/report/reports.xml rename to l10n_nl_tax_statement/data/paperformat.xml index 25498941a..adc187cc2 100644 --- a/l10n_nl_tax_statement/report/reports.xml +++ b/l10n_nl_tax_statement/data/paperformat.xml @@ -1,14 +1,8 @@ - + - + Dutch Tax Statement qweb paperformat @@ -26,8 +20,4 @@ 110 - - - - diff --git a/l10n_nl_tax_statement/data/report_layouts.xml b/l10n_nl_tax_statement/data/report_layouts.xml deleted file mode 100644 index 5d983c4d6..000000000 --- a/l10n_nl_tax_statement/data/report_layouts.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - diff --git a/l10n_nl_tax_statement/models/__init__.py b/l10n_nl_tax_statement/models/__init__.py index fe6e610a6..5d4a06dc3 100644 --- a/l10n_nl_tax_statement/models/__init__.py +++ b/l10n_nl_tax_statement/models/__init__.py @@ -1,7 +1,3 @@ -# -*- coding: utf-8 -*- -# Copyright 2017 Onestein () -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - from . import l10n_nl_vat_statement from . import l10n_nl_vat_statement_line from . import l10n_nl_vat_statement_config diff --git a/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py b/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py index 7bc4e3d04..68d7b2133 100644 --- a/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py +++ b/l10n_nl_tax_statement/models/l10n_nl_vat_statement.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Onestein () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). @@ -199,6 +198,16 @@ def _finalize_lines(self, lines): # update 5a and 5c lines['5a'].update({'btw': _5ab}) lines['5c'].update({'btw': _5cb}) + + # omzet (from 1a to 4b): invert the original sign + # in case it differs from the sign of related btw + to_be_checked_inverted = ['1a', '1b', '1c', '1d', '2a', '4a', '4b'] + for code in to_be_checked_inverted: + btw_sign = 1 if lines[code]['btw'] >= 0.0 else -1 + omzet_sign = 1 if lines[code]['omzet'] >= 0.0 else -1 + if btw_sign != omzet_sign: + lines[code]['omzet'] *= -1 + return lines @api.model @@ -238,7 +247,7 @@ def _get_tags_map(self): def statement_update(self): self.ensure_one() - if self.state == 'posted': + if self.state in ['posted']: raise UserError( _('You cannot modify a posted statement!')) @@ -259,15 +268,20 @@ def statement_update(self): self.date_update = fields.Datetime.now() def _compute_lines(self, lines): + self.ensure_one() ctx = { 'from_date': self.from_date, 'to_date': self.to_date, 'target_move': self.target_move, 'company_id': self.company_id.id, } - tags_map = self._get_tags_map() domain = self._get_taxes_domain() taxes = self.env['account.tax'].with_context(ctx).search(domain) + self._set_statement_lines(lines, taxes) + + def _set_statement_lines(self, lines, taxes): + self.ensure_one() + tags_map = self._get_tags_map() for tax in taxes: for tag in tax.tag_ids: tag_map = tags_map.get(tag.id) diff --git a/l10n_nl_tax_statement/models/l10n_nl_vat_statement_config.py b/l10n_nl_tax_statement/models/l10n_nl_vat_statement_config.py index dbce4c9e5..656a5a5e1 100644 --- a/l10n_nl_tax_statement/models/l10n_nl_vat_statement_config.py +++ b/l10n_nl_tax_statement/models/l10n_nl_vat_statement_config.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Onestein () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). diff --git a/l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py b/l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py index a80473157..5c87a8007 100644 --- a/l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py +++ b/l10n_nl_tax_statement/models/l10n_nl_vat_statement_line.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2017 Onestein () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). diff --git a/l10n_nl_tax_statement/report/report_tax_statement.xml b/l10n_nl_tax_statement/report/report_tax_statement.xml index 250d4c9b1..94b484c5a 100644 --- a/l10n_nl_tax_statement/report/report_tax_statement.xml +++ b/l10n_nl_tax_statement/report/report_tax_statement.xml @@ -1,6 +1,38 @@ + + + +