[MIG] intrastat_product: Migration to 13.0

This commit is contained in:
Luc De Meyer
2020-02-26 22:16:50 +01:00
committed by Alexis de Lattre
parent 104766143d
commit d1efd64dbb
25 changed files with 1882 additions and 1515 deletions

View File

@@ -14,13 +14,13 @@ Intrastat Product
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fintrastat--extrastat-lightgray.png?logo=github
:target: https://github.com/OCA/intrastat-extrastat/tree/12.0/intrastat_product
:target: https://github.com/OCA/intrastat-extrastat/tree/13.0/intrastat_product
:alt: OCA/intrastat-extrastat
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/intrastat-extrastat-12-0/intrastat-extrastat-12-0-intrastat_product
:target: https://translation.odoo-community.org/projects/intrastat-extrastat-13-0/intrastat-extrastat-13-0-intrastat_product
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/227/12.0
:target: https://runbot.odoo-community.org/runbot/227/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -90,7 +90,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/intrastat-extrastat/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/intrastat-extrastat/issues/new?body=module:%20intrastat_product%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/intrastat-extrastat/issues/new?body=module:%20intrastat_product%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
@@ -123,6 +123,6 @@ 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.
This module is part of the `OCA/intrastat-extrastat <https://github.com/OCA/intrastat-extrastat/tree/12.0/intrastat_product>`_ project on GitHub.
This module is part of the `OCA/intrastat-extrastat <https://github.com/OCA/intrastat-extrastat/tree/13.0/intrastat_product>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -1,42 +1,41 @@
# Copyright 2011-2017 Akretion (http://www.akretion.com)
# Copyright 2009-2019 Noviat (http://www.noviat.com)
# Copyright 2009-2020 Noviat (http://www.noviat.com)
# Copyright 2018 brain-tec AG (http://www.braintec-group.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# @author Luc de Meyer <info@noviat.com>
# @author Kumar Aberer <kumar.aberer@braintec-group.com>
{
'name': 'Intrastat Product',
'version': '12.0.1.0.0',
'category': 'Intrastat',
'license': 'AGPL-3',
'summary': 'Base module for Intrastat Product',
'author': 'brain-tec AG, Akretion, Noviat, '
'Odoo Community Association (OCA)',
'depends': [
'intrastat_base',
'product_harmonized_system',
'sale_stock',
'purchase_stock',
'report_xlsx_helper',
"name": "Intrastat Product",
"version": "13.0.1.0.0",
"category": "Intrastat",
"license": "AGPL-3",
"summary": "Base module for Intrastat Product",
"author": "brain-tec AG, Akretion, Noviat, " "Odoo Community Association (OCA)",
"depends": [
"intrastat_base",
"product_harmonized_system",
"sale_stock",
"purchase_stock",
"report_xlsx_helper",
],
'excludes': ['account_intrastat'],
'data': [
'views/hs_code.xml',
'views/intrastat_region.xml',
'views/intrastat_unit.xml',
'views/intrastat_transaction.xml',
'views/intrastat_transport_mode.xml',
'views/intrastat_product_declaration.xml',
'views/res_config_settings.xml',
'views/account_invoice.xml',
'views/sale_order.xml',
'views/stock_warehouse.xml',
'security/intrastat_security.xml',
'security/ir.model.access.csv',
'data/intrastat_transport_mode.xml',
'data/intrastat_unit.xml',
"excludes": ["account_intrastat"],
"data": [
"views/hs_code.xml",
"views/intrastat_region.xml",
"views/intrastat_unit.xml",
"views/intrastat_transaction.xml",
"views/intrastat_transport_mode.xml",
"views/intrastat_product_declaration.xml",
"views/res_config_settings.xml",
"views/account_move.xml",
"views/sale_order.xml",
"views/stock_warehouse.xml",
"security/intrastat_security.xml",
"security/ir.model.access.csv",
"data/intrastat_transport_mode.xml",
"data/intrastat_unit.xml",
],
'demo': ['demo/intrastat_demo.xml'],
'installable': True,
"demo": ["demo/intrastat_demo.xml"],
"installable": True,
}

View File

@@ -18,7 +18,7 @@
<record id="base.main_company" model="res.company">
<field name="intrastat_arrivals">extended</field>
<field name="intrastat_dispatches">extended</field>
<field name="intrastat_incoterm_id" ref="account.incoterm_DDU"/>
<field name="incoterm_id" ref="account.incoterm_DDU"/>
<field name="intrastat_transport_id" ref="intrastat_transport_3"/>
</record>

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,12 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * intrastat_product
# * intrastat_product
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -14,62 +14,62 @@ msgstr ""
"Plural-Forms: \n"
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__01
msgid "01"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__02
msgid "02"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__03
msgid "03"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__04
msgid "04"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__05
msgid "05"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__06
msgid "06"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__07
msgid "07"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__08
msgid "08"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__09
msgid "09"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__10
msgid "10"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__11
msgid "11"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,month:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__month__12
msgid "12"
msgstr ""
@@ -79,13 +79,14 @@ msgid "<span>Intrastat Product Declaration </span>"
msgstr ""
#. module: intrastat_product
#: sql_constraint:intrastat.product.declaration:0
msgid "A declaration of the same type already exists for this month !\n"
#: model:ir.model.constraint,message:intrastat_product.constraint_intrastat_product_declaration_date_uniq
msgid ""
"A declaration of the same type already exists for this month !\n"
"You should update the existing declaration or change the revision number of this one."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:91
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__amount_accessory_cost_company_currency
#, python-format
msgid "Accessory Costs"
@@ -118,17 +119,23 @@ msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_computation_line__amount_accessory_cost_company_currency
msgid "Amount in company currency of the accessory costs related to this invoice line (by default, these accessory costs are computed at the pro-rata of the amount of each invoice line."
msgid ""
"Amount in company currency of the accessory costs related to this invoice "
"line (by default, these accessory costs are computed at the pro-rata of the "
"amount of each invoice line."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_computation_line__amount_company_currency
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration_line__amount_company_currency
msgid "Amount in company currency to write in the declaration. Amount in company currency = amount in invoice currency converted to company currency with the rate of the invoice date."
msgid ""
"Amount in company currency to write in the declaration. Amount in company "
"currency = amount in invoice currency converted to company currency with the"
" rate of the invoice date."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:139
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Append"
msgstr ""
@@ -163,9 +170,9 @@ msgid "Code"
msgstr ""
#. module: intrastat_product
#: sql_constraint:intrastat.region:0
#: sql_constraint:intrastat.transaction:0
#: sql_constraint:intrastat.transport_mode:0
#: model:ir.model.constraint,message:intrastat_product.constraint_intrastat_region_intrastat_region_code_unique
#: model:ir.model.constraint,message:intrastat_product.constraint_intrastat_transaction_intrastat_transaction_code_unique
#: model:ir.model.constraint,message:intrastat_product.constraint_intrastat_transport_mode_intrastat_transport_code_unique
msgid "Code must be unique."
msgstr ""
@@ -201,8 +208,8 @@ msgid "Company currency"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:226
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:237
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__computation_line_ids
#, python-format
msgid "Computation Lines"
@@ -214,21 +221,25 @@ msgid "Config Settings"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:244
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Conversion from Intrastat Supplementary Unit '%s' to Unit of Measure is not implemented yet."
msgid ""
"Conversion from Intrastat Supplementary Unit '%s' to Unit of Measure is not "
"implemented yet."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:259
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Conversion from unit of measure '%s' to '%s' is not implemented yet."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:293
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Conversion from unit of measure '%s' to 'Kg' is not implemented yet. It is needed for product '%s'."
msgid ""
"Conversion from unit of measure '%s' to 'Kg' is not implemented yet. It is "
"needed for product '%s'."
msgstr ""
#. module: intrastat_product
@@ -251,7 +262,7 @@ msgid "Country of Origin of the Product"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:66
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_computation_line__src_dest_country_id
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration_line__src_dest_country_id
#, python-format
@@ -307,31 +318,25 @@ msgid "Declaration Line"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:228
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:239
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_view_form
#, python-format
msgid "Declaration Lines"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:124
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Declaration for Arrivals"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:126
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Declaration for Dispatches"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_res_company__intrastat_incoterm_id
#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__intrastat_incoterm_id
msgid "Default Incoterm for Intrastat"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_res_company__intrastat_region_id
#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__intrastat_region_id
@@ -377,17 +382,12 @@ msgid "Description"
msgstr ""
#. module: intrastat_product
#: model_terms:ir.ui.view,arch_db:intrastat_product.invoice_form
#: model_terms:ir.ui.view,arch_db:intrastat_product.view_move_form
msgid "Destination Country"
msgstr ""
#. module: intrastat_product
#: model_terms:ir.ui.view,arch_db:intrastat_product.invoice_supplier_form
msgid "Destination Region"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_account_invoice__src_dest_country_id
#: model:ir.model.fields,help:intrastat_product.field_account_move__src_dest_country_id
msgid "Destination country for dispatches. Origin country for arrivals."
msgstr ""
@@ -411,14 +411,14 @@ msgid "Display Name"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,state:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__state__done
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_view_form
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_view_search
msgid "Done"
msgstr ""
#. module: intrastat_product
#: selection:intrastat.product.declaration,state:0
#: model:ir.model.fields.selection,name:intrastat_product.selection__intrastat_product_declaration__state__draft
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_view_search
msgid "Draft"
msgstr ""
@@ -429,13 +429,13 @@ msgid "Excel Export"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:133
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Extended"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:78
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__amount_company_currency
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__amount_company_currency
#, python-format
@@ -468,34 +468,34 @@ msgid "Followers (Partners)"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:708
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_view_form
#, python-format
msgid "Generate Declaration Lines"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:597
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_view_form
#, python-format
msgid "Generate Lines from Invoices"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:730
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_view_form
#, python-format
msgid "Generate XML Declaration File"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:629
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Generate lines from invoices: results"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:193
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Go to Accounting Configuration Settings screen"
msgstr ""
@@ -529,18 +529,15 @@ msgstr ""
msgid "ID"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_unread
msgid "If checked new messages require your attention."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_needaction
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_unread
msgid "If checked, new messages require your attention."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_has_error
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__message_has_sms_error
msgid "If checked, some messages have a delivery error."
msgstr ""
@@ -551,7 +548,7 @@ msgid "Include Accessory Costs in Fiscal Value of Product"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:157
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__incoterm_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__incoterm_id
#, python-format
@@ -569,14 +566,8 @@ msgid "Inland waterway transport"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_res_company__intrastat_incoterm_id
#: model:ir.model.fields,help:intrastat_product.field_res_config_settings__intrastat_incoterm_id
msgid "International Commercial Terms are a series of predefined commercial terms used in international transactions."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:54
#: model:ir.model.fields,field_description:intrastat_product.field_account_invoice_line__hs_code_id
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_account_move_line__hs_code_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__hs_code_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__hs_code_id
#, python-format
@@ -584,24 +575,28 @@ msgid "Intrastat Code"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/hs_code.py:26
#: code:addons/intrastat_product/models/hs_code.py:0
#, python-format
msgid "Intrastat Codes should contain 8 digits. This is not the case for Intrastat Code '%s' which has %d digits."
msgid ""
"Intrastat Codes should contain 8 digits. This is not the case for Intrastat "
"Code '%s' which has %d digits."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/hs_code.py:21
#: code:addons/intrastat_product/models/hs_code.py:0
#, python-format
msgid "Intrastat Codes should only contain digits. This is not the case for code '%s'."
msgid ""
"Intrastat Codes should only contain digits. This is not the case for code "
"'%s'."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_account_invoice__intrastat_country
#: model:ir.model.fields,field_description:intrastat_product.field_account_move__intrastat_country
msgid "Intrastat Country"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_account_invoice__intrastat
#: model:ir.model.fields,field_description:intrastat_product.field_account_move__intrastat
#: model:ir.model.fields,field_description:intrastat_product.field_res_company__intrastat
#: model:ir.model.fields,field_description:intrastat_product.field_res_config_settings__intrastat
#: model:ir.model.fields,field_description:intrastat_product.field_sale_order__intrastat
@@ -658,7 +653,7 @@ msgid "Intrastat Product Report Base Object"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:177
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model,name:intrastat_product.model_intrastat_region
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__region_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__region_id
@@ -690,7 +685,7 @@ msgid "Intrastat Supplementary Units"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:105
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model,name:intrastat_product.model_intrastat_transaction
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__transaction_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__transaction_id
@@ -700,7 +695,7 @@ msgid "Intrastat Transaction"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_account_invoice__intrastat_transaction_id
#: model:ir.model.fields,field_description:intrastat_product.field_account_move__intrastat_transaction_id
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_transaction_form
msgid "Intrastat Transaction Type"
msgstr ""
@@ -712,7 +707,7 @@ msgstr ""
#. module: intrastat_product
#: model:ir.model,name:intrastat_product.model_intrastat_transport_mode
#: model:ir.model.fields,field_description:intrastat_product.field_account_invoice__intrastat_transport_id
#: model:ir.model.fields,field_description:intrastat_product.field_account_move__intrastat_transport_id
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_transport_mode_form
msgid "Intrastat Transport Mode"
msgstr ""
@@ -723,12 +718,17 @@ msgid "Intrastat Transportat Modes"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_account_invoice__intrastat_transaction_id
#: model:ir.model,name:intrastat_product.model_report_intrastat_product_product_declaration_xls
msgid "Intrastat declaration"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_account_move__intrastat_transaction_id
msgid "Intrastat nature of transaction"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:170
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Invalid Year !"
msgstr ""
@@ -739,15 +739,13 @@ msgid "Inventory Locations"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:187
#: model:ir.model,name:intrastat_product.model_account_invoice
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__invoice_id
#, python-format
msgid "Invoice"
msgstr ""
#. module: intrastat_product
#: model:ir.model,name:intrastat_product.model_account_invoice_line
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__invoice_line_id
msgid "Invoice Line"
msgstr ""
@@ -757,6 +755,16 @@ msgstr ""
msgid "Is Follower"
msgstr ""
#. module: intrastat_product
#: model:ir.model,name:intrastat_product.model_account_move
msgid "Journal Entries"
msgstr ""
#. module: intrastat_product
#: model:ir.model,name:intrastat_product.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: intrastat_product
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_computation_line_view_form
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_line_view_form
@@ -813,19 +821,21 @@ msgid "Messages"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:506
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Missing H.S. code on product %s. This product is present in invoice %s."
msgid ""
"Missing H.S. code on product %s. This product is present in invoice %s."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:232
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Missing unit of measure on the line with %d product(s) '%s' on invoice '%s'."
msgid ""
"Missing unit of measure on the line with %d product(s) '%s' on invoice '%s'."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:276
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Missing weight on product %s."
msgstr ""
@@ -854,25 +864,25 @@ msgid "Net weight in Kg"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:140
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Nihil"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:240
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#, python-format
msgid "No"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:740
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "No XML File has been generated."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:616
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "No records found for the selected period !"
msgstr ""
@@ -895,7 +905,7 @@ msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_has_error_counter
msgid "Number of error"
msgid "Number of errors"
msgstr ""
#. module: intrastat_product
@@ -914,27 +924,24 @@ msgid "Number of unread messages"
msgstr ""
#. module: intrastat_product
#: model_terms:ir.ui.view,arch_db:intrastat_product.invoice_supplier_form
msgid "Origin Country"
msgstr ""
#. module: intrastat_product
#: model_terms:ir.ui.view,arch_db:intrastat_product.invoice_form
#: model_terms:ir.ui.view,arch_db:intrastat_product.view_move_form
msgid "Origin Region"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_account_invoice__src_dest_region_id
msgid "Origin region for dispatches, destination region for arrivals. This field is used for the Intrastat Declaration."
#: model:ir.model.fields,help:intrastat_product.field_account_move__src_dest_region_id
msgid ""
"Origin region for dispatches, destination region for arrivals. This field is"
" used for the Intrastat Declaration."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_account_invoice__src_dest_country_id
#: model:ir.model.fields,field_description:intrastat_product.field_account_move__src_dest_country_id
msgid "Origin/Destination Country"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_account_invoice__src_dest_region_id
#: model:ir.model.fields,field_description:intrastat_product.field_account_move__src_dest_region_id
msgid "Origin/Destination Region"
msgstr ""
@@ -945,7 +952,9 @@ msgstr ""
#. module: intrastat_product
#: model:intrastat.transport_mode,description:intrastat_product.intrastat_transport_9
msgid "Own propulsion (imported or exported means of transport crossing the border under their own power, e.g. aircraft, lorries, boats, etc.)"
msgid ""
"Own propulsion (imported or exported means of transport crossing the border "
"under their own power, e.g. aircraft, lorries, boats, etc.)"
msgstr ""
#. module: intrastat_product
@@ -954,28 +963,34 @@ msgid "Period"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:236
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Please adjust this line manually."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:248
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Please correct the Intrastat Supplementary Unit settings and regenerate the lines or adjust the lines with Intrastat Code '%s' manually"
msgid ""
"Please correct the Intrastat Supplementary Unit settings and regenerate the "
"lines or adjust the lines with Intrastat Code '%s' manually"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:279
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Please correct the product record and regenerate the lines or adjust the impacted lines manually"
msgid ""
"Please correct the product record and regenerate the lines or adjust the "
"impacted lines manually"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:263
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:297
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Please correct the unit of measure settings and regenerate the lines or adjust the impacted lines manually"
msgid ""
"Please correct the unit of measure settings and regenerate the lines or "
"adjust the impacted lines manually"
msgstr ""
#. module: intrastat_product
@@ -989,14 +1004,14 @@ msgid "Postal consignments"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:31
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__product_id
#, python-format
msgid "Product"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:42
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_computation_line_view_tree
#: model_terms:ir.ui.view,arch_db:intrastat_product.intrastat_product_declaration_line_view_tree
#, python-format
@@ -1025,7 +1040,7 @@ msgid "Related Transactions"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:138
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Replace"
msgstr ""
@@ -1052,9 +1067,14 @@ msgstr ""
msgid "Road Transport"
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration__message_has_sms_error
msgid "SMS Delivery error"
msgstr ""
#. module: intrastat_product
#: model:ir.model,name:intrastat_product.model_sale_order
msgid "Sale Order"
msgid "Sales Order"
msgstr ""
#. module: intrastat_product
@@ -1064,7 +1084,9 @@ msgstr ""
#. module: intrastat_product
#: model:intrastat.transport_mode,description:intrastat_product.intrastat_transport_1
msgid "Sea Transport (including wagons, motor vehicles, trailers, semi-trailers and lighters on board of a ship)"
msgid ""
"Sea Transport (including wagons, motor vehicles, trailers, semi-trailers and"
" lighters on board of a ship)"
msgstr ""
#. module: intrastat_product
@@ -1096,11 +1118,13 @@ msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_unit__uom_id
msgid "Select the regular Unit of Measure of Odoo that corresponds to this Intrastat Supplementary Unit."
msgid ""
"Select the regular Unit of Measure of Odoo that corresponds to this "
"Intrastat Supplementary Unit."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:132
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "Standard"
msgstr ""
@@ -1112,11 +1136,13 @@ msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_declaration__state
msgid "State of the declaration. When the state is set to 'Done', the parameters become read-only."
msgid ""
"State of the declaration. When the state is set to 'Done', the parameters "
"become read-only."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:146
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__intrastat_unit_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__intrastat_unit_id
#, python-format
@@ -1124,7 +1150,7 @@ msgid "Suppl. Unit"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:130
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__suppl_unit_qty
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__suppl_unit_qty
#, python-format
@@ -1144,27 +1170,36 @@ msgid "Supplementary Units Quantity"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:617
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "The Declaration Action has been set to 'nihil'."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_res_config_settings__country_code
msgid "The ISO country code in two chars. \n"
msgid ""
"The ISO country code in two chars. \n"
"You can use this field for quick search."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:370
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "The default Incoterm of the Company is not set, please configure it first."
msgid ""
"The default Incoterm of the Company is not set, please configure it first."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:356
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "The default Intrastat Transport Mode of the Company is not set, please configure it first."
msgid ""
"The default Intrastat Transport Mode of the Company is not set, please "
"configure it first."
msgstr ""
#. module: intrastat_product
#: model:ir.model.fields,help:intrastat_product.field_intrastat_product_computation_line__invoice_id
msgid "The move of this entry line."
msgstr ""
#. module: intrastat_product
@@ -1205,7 +1240,7 @@ msgid "Transactions"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:167
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__transport_id
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__transport_id
#: model:ir.model.fields,field_description:intrastat_product.field_sale_order__intrastat_transport_id
@@ -1269,7 +1304,7 @@ msgid "Website communication history"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:116
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_computation_line__weight
#: model:ir.model.fields,field_description:intrastat_product.field_intrastat_product_declaration_line__weight
#, python-format
@@ -1292,19 +1327,13 @@ msgid "You can add some comments here if you want."
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:148
#: code:addons/intrastat_product/models/intrastat_product_declaration.py:0
#, python-format
msgid "You must set company's country !"
msgstr ""
#. module: intrastat_product
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:240
#: code:addons/intrastat_product/report/intrastat_product_report_xls.py:0
#, python-format
msgid "for period %s"
msgstr ""
#. module: intrastat_product
#: model:ir.model,name:intrastat_product.model_report_intrastat_product_product_declaration_xls
msgid "report.intrastat_product.product_declaration_xls"
msgstr ""

View File

@@ -1,6 +1,6 @@
from . import res_company
from . import res_config_settings
from . import account_invoice
from . import account_move
from . import hs_code
from . import intrastat_product_declaration
from . import intrastat_region

View File

@@ -1,70 +0,0 @@
# Copyright 2011-2017 Akretion France (http://www.akretion.com)
# Copyright 2009-2018 Noviat (http://www.noviat.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# @author Luc de Meyer <info@noviat.com>
from odoo import api, fields, models
class AccountInvoice(models.Model):
_inherit = 'account.invoice'
intrastat_transaction_id = fields.Many2one(
comodel_name='intrastat.transaction',
string='Intrastat Transaction Type',
ondelete='restrict', track_visibility='onchange',
help="Intrastat nature of transaction")
intrastat_transport_id = fields.Many2one(
comodel_name='intrastat.transport_mode',
string='Intrastat Transport Mode',
ondelete='restrict')
src_dest_country_id = fields.Many2one(
comodel_name='res.country',
string='Origin/Destination Country',
compute='_compute_intrastat_country',
store=True, compute_sudo=True,
help="Destination country for dispatches. Origin country for "
"arrivals.")
intrastat_country = fields.Boolean(
compute='_compute_intrastat_country', string='Intrastat Country',
store=True, compute_sudo=True)
src_dest_region_id = fields.Many2one(
comodel_name='intrastat.region',
string='Origin/Destination Region',
default=lambda self: self._default_src_dest_region_id(),
help="Origin region for dispatches, destination region for "
"arrivals. This field is used for the Intrastat Declaration.",
ondelete='restrict')
intrastat = fields.Char(
string='Intrastat Declaration',
related='company_id.intrastat')
@api.depends('partner_shipping_id.country_id', 'partner_id.country_id')
def _compute_intrastat_country(self):
for inv in self:
country = inv.partner_shipping_id.country_id\
or inv.partner_id.country_id
if not country:
country = inv.company_id.country_id
inv.src_dest_country_id = country.id
inv.intrastat_country = country.intrastat
@api.model
def _default_src_dest_region_id(self):
rco = self.env['res.company']
company = rco._company_default_get()
return company.intrastat_region_id
class AccountInvoiceLine(models.Model):
_inherit = 'account.invoice.line'
hs_code_id = fields.Many2one(
comodel_name='hs.code',
string='Intrastat Code', ondelete='restrict')
@api.onchange('product_id')
def intrastat_product_id_change(self):
if self.product_id:
hs_code = self.product_id.get_hs_code_recursively()
self.hs_code_id = hs_code and hs_code.id or False

View File

@@ -0,0 +1,75 @@
# Copyright 2011-2017 Akretion France (http://www.akretion.com)
# Copyright 2009-2020 Noviat (http://www.noviat.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# @author Luc de Meyer <info@noviat.com>
from odoo import api, fields, models
class AccountMove(models.Model):
_inherit = "account.move"
intrastat_transaction_id = fields.Many2one(
comodel_name="intrastat.transaction",
string="Intrastat Transaction Type",
ondelete="restrict",
track_visibility="onchange",
help="Intrastat nature of transaction",
)
intrastat_transport_id = fields.Many2one(
comodel_name="intrastat.transport_mode",
string="Intrastat Transport Mode",
ondelete="restrict",
)
src_dest_country_id = fields.Many2one(
comodel_name="res.country",
string="Origin/Destination Country",
compute="_compute_intrastat_country",
store=True,
compute_sudo=True,
help="Destination country for dispatches. Origin country for " "arrivals.",
)
intrastat_country = fields.Boolean(
compute="_compute_intrastat_country",
string="Intrastat Country",
store=True,
compute_sudo=True,
)
src_dest_region_id = fields.Many2one(
comodel_name="intrastat.region",
string="Origin/Destination Region",
default=lambda self: self._default_src_dest_region_id(),
help="Origin region for dispatches, destination region for "
"arrivals. This field is used for the Intrastat Declaration.",
ondelete="restrict",
)
intrastat = fields.Char(
string="Intrastat Declaration", related="company_id.intrastat"
)
@api.depends("partner_shipping_id.country_id", "partner_id.country_id")
def _compute_intrastat_country(self):
for inv in self:
country = inv.partner_shipping_id.country_id or inv.partner_id.country_id
if not country:
country = inv.company_id.country_id
inv.src_dest_country_id = country.id
inv.intrastat_country = country.intrastat
@api.model
def _default_src_dest_region_id(self):
return self.env.company.intrastat_region_id
class AccountMoveLine(models.Model):
_inherit = "account.move.line"
hs_code_id = fields.Many2one(
comodel_name="hs.code", string="Intrastat Code", ondelete="restrict"
)
@api.onchange("product_id")
def intrastat_product_id_change(self):
if self.product_id:
hs_code = self.product_id.get_hs_code_recursively()
self.hs_code_id = hs_code and hs_code.id or False

View File

@@ -3,7 +3,7 @@
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# @author Luc de Meyer <info@noviat.com>
from odoo import api, fields, models, _
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
@@ -11,20 +11,26 @@ class HSCode(models.Model):
_inherit = "hs.code"
intrastat_unit_id = fields.Many2one(
comodel_name='intrastat.unit',
string='Intrastat Supplementary Unit')
comodel_name="intrastat.unit", string="Intrastat Supplementary Unit"
)
@api.constrains('local_code')
@api.constrains("local_code")
def _hs_code(self):
if self.company_id.country_id.intrastat:
if not self.local_code.isdigit():
raise ValidationError(_(
"Intrastat Codes should only contain digits. "
"This is not the case for code '%s'.")
% self.local_code)
raise ValidationError(
_(
"Intrastat Codes should only contain digits. "
"This is not the case for code '%s'."
)
% self.local_code
)
if len(self.local_code) != 8:
raise ValidationError(_(
"Intrastat Codes should "
"contain 8 digits. This is not the case for "
"Intrastat Code '%s' which has %d digits.")
% (self.local_code, len(self.local_code)))
raise ValidationError(
_(
"Intrastat Codes should "
"contain 8 digits. This is not the case for "
"Intrastat Code '%s' which has %d digits."
)
% (self.local_code, len(self.local_code))
)

File diff suppressed because it is too large Load Diff

View File

@@ -1,23 +1,32 @@
# Copyright 2009-2018 Noviat nv/sa (www.noviat.com).
# Copyright 2009-2020 Noviat nv/sa (www.noviat.com).
# @author Luc de Meyer <info@noviat.com>
from odoo import fields, models
from odoo import api, fields, models
class IntrastatRegion(models.Model):
_name = 'intrastat.region'
_name = "intrastat.region"
_description = "Intrastat Region"
_sql_constraints = [
('intrastat_region_code_unique',
'UNIQUE(code, country_id)', # TODO add company_id ?
'Code must be unique.')]
(
"intrastat_region_code_unique",
"UNIQUE(code, country_id)", # TODO add company_id ?
"Code must be unique.",
)
]
code = fields.Char(string='Code', required=True)
code = fields.Char(string="Code", required=True)
country_id = fields.Many2one(
comodel_name='res.country',
string='Country', required=True)
name = fields.Char(string='Name', translate=True)
description = fields.Char(string='Description')
comodel_name="res.country", string="Country", required=True
)
name = fields.Char(string="Name", translate=True)
description = fields.Char(string="Description")
company_id = fields.Many2one(
comodel_name='res.company', string='Company',
default=lambda self: self.env['res.company']._company_default_get())
comodel_name="res.company",
string="Company",
default=lambda self: self._default_company_id(),
)
@api.model
def _default_company_id(self):
return self.env.company

View File

@@ -1,5 +1,5 @@
# Copyright 2011-2017 Akretion France (http://www.akretion.com)
# Copyright 2009-2018 Noviat (http://www.noviat.com)
# Copyright 2009-2020 Noviat (http://www.noviat.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# @author Luc de Meyer <info@noviat.com>
@@ -7,27 +7,36 @@ from odoo import api, fields, models
class IntrastatTransaction(models.Model):
_name = 'intrastat.transaction'
_name = "intrastat.transaction"
_description = "Intrastat Transaction"
_order = 'code'
_sql_constraints = [(
'intrastat_transaction_code_unique',
'UNIQUE(code, company_id)',
'Code must be unique.')]
_order = "code"
_sql_constraints = [
(
"intrastat_transaction_code_unique",
"UNIQUE(code, company_id)",
"Code must be unique.",
)
]
code = fields.Char(string='Code', required=True)
description = fields.Text(string='Description')
code = fields.Char(string="Code", required=True)
description = fields.Text(string="Description")
company_id = fields.Many2one(
comodel_name='res.company', string='Company',
default=lambda self: self.env['res.company']._company_default_get())
comodel_name="res.company",
string="Company",
default=lambda self: self._default_company_id(),
)
@api.depends('code', 'description')
@api.model
def _default_company_id(self):
return self.env.company
@api.depends("code", "description")
def name_get(self):
res = []
for this in self:
name = this.code
if this.description:
name += ' ' + this.description
name = len(name) > 55 and name[:55] + '...' or name
name += " " + this.description
name = len(name) > 55 and name[:55] + "..." or name
res.append((this.id, name))
return res

View File

@@ -7,22 +7,21 @@ from odoo import api, fields, models
class IntrastatTransportMode(models.Model):
_name = 'intrastat.transport_mode'
_name = "intrastat.transport_mode"
_description = "Intrastat Transport Mode"
_order = 'code'
_sql_constraints = [(
'intrastat_transport_code_unique',
'UNIQUE(code)',
'Code must be unique.')]
_order = "code"
_sql_constraints = [
("intrastat_transport_code_unique", "UNIQUE(code)", "Code must be unique.")
]
code = fields.Char(string='Code', required=True)
name = fields.Char(string='Name', required=True, translate=True)
description = fields.Char(string='Description', translate=True)
code = fields.Char(string="Code", required=True)
name = fields.Char(string="Name", required=True, translate=True)
description = fields.Char(string="Description", translate=True)
@api.depends('name', 'code')
@api.depends("name", "code")
def name_get(self):
res = []
for mode in self:
name = '%s. %s' % (mode.code, mode.name)
name = "{}. {}".format(mode.code, mode.name)
res.append((mode.id, name))
return res

View File

@@ -7,13 +7,15 @@ from odoo import fields, models
class IntrastatUnit(models.Model):
_name = 'intrastat.unit'
_description = 'Intrastat Supplementary Units'
_name = "intrastat.unit"
_description = "Intrastat Supplementary Units"
name = fields.Char(string='Name', required=True)
description = fields.Char(string='Description', required=True)
name = fields.Char(string="Name", required=True)
description = fields.Char(string="Description", required=True)
uom_id = fields.Many2one(
comodel_name='uom.uom', string='Regular UoM',
comodel_name="uom.uom",
string="Regular UoM",
help="Select the regular Unit of Measure of Odoo that corresponds "
"to this Intrastat Supplementary Unit.")
"to this Intrastat Supplementary Unit.",
)
active = fields.Boolean(default=True)

View File

@@ -1,5 +1,5 @@
# Copyright 2011-2017 Akretion (http://www.akretion.com)
# Copyright 2009-2018 Noviat (http://www.noviat.com)
# Copyright 2009-2020 Noviat (http://www.noviat.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# @author Luc de Meyer <info@noviat.com>
@@ -7,66 +7,82 @@ from odoo import api, fields, models
class ResCompany(models.Model):
_inherit = 'res.company'
_inherit = "res.company"
intrastat_incoterm_id = fields.Many2one(
comodel_name='account.incoterms',
string='Default Incoterm for Intrastat',
help="International Commercial Terms are a series of "
"predefined commercial terms used in international "
"transactions.")
intrastat_arrivals = fields.Selection(
selection='_intrastat_arrivals', string='Arrivals',
default='extended', required=True)
selection="_intrastat_arrivals",
string="Arrivals",
default="extended",
required=True,
)
intrastat_dispatches = fields.Selection(
selection='_intrastat_dispatches', string='Dispatches',
default='extended', required=True)
selection="_intrastat_dispatches",
string="Dispatches",
default="extended",
required=True,
)
intrastat_transport_id = fields.Many2one(
comodel_name='intrastat.transport_mode',
string='Default Transport Mode', ondelete='restrict')
comodel_name="intrastat.transport_mode",
string="Default Transport Mode",
ondelete="restrict",
)
intrastat = fields.Char(
string='Intrastat Declaration', store=True, readonly=True,
compute='_compute_intrastat')
string="Intrastat Declaration",
store=True,
readonly=True,
compute="_compute_intrastat",
)
intrastat_region_id = fields.Many2one(
comodel_name='intrastat.region',
string='Default Intrastat Region')
comodel_name="intrastat.region", string="Default Intrastat Region"
)
intrastat_transaction_out_invoice = fields.Many2one(
comodel_name='intrastat.transaction',
string='Default Intrastat Transaction For Customer Invoice')
comodel_name="intrastat.transaction",
string="Default Intrastat Transaction For Customer Invoice",
)
intrastat_transaction_out_refund = fields.Many2one(
comodel_name='intrastat.transaction',
string='Default Intrastat Transaction for Customer Refunds')
comodel_name="intrastat.transaction",
string="Default Intrastat Transaction for Customer Refunds",
)
intrastat_transaction_in_invoice = fields.Many2one(
comodel_name='intrastat.transaction',
string='Default Intrastat Transaction For Supplier Invoices')
comodel_name="intrastat.transaction",
string="Default Intrastat Transaction For Supplier Invoices",
)
intrastat_transaction_in_refund = fields.Many2one(
comodel_name='intrastat.transaction',
string='Default Intrastat Transaction For Supplier Refunds')
comodel_name="intrastat.transaction",
string="Default Intrastat Transaction For Supplier Refunds",
)
intrastat_accessory_costs = fields.Boolean(
string='Include Accessory Costs in Fiscal Value of Product')
string="Include Accessory Costs in Fiscal Value of Product"
)
@api.model
def _intrastat_arrivals(self):
return [
('exempt', 'Exempt'),
('standard', 'Standard'),
('extended', 'Extended')]
("exempt", "Exempt"),
("standard", "Standard"),
("extended", "Extended"),
]
@api.model
def _intrastat_dispatches(self):
return [
('exempt', 'Exempt'),
('standard', 'Standard'),
('extended', 'Extended')]
("exempt", "Exempt"),
("standard", "Standard"),
("extended", "Extended"),
]
@api.depends('intrastat_arrivals', 'intrastat_dispatches')
@api.depends("intrastat_arrivals", "intrastat_dispatches")
def _compute_intrastat(self):
for this in self:
if this.intrastat_arrivals == 'exempt' \
and this.intrastat_dispatches == 'exempt':
this.intrastat = 'exempt'
elif this.intrastat_arrivals == 'extended' \
or this.intrastat_dispatches == 'extended':
this.intrastat = 'extended'
if (
this.intrastat_arrivals == "exempt"
and this.intrastat_dispatches == "exempt"
):
this.intrastat = "exempt"
elif (
this.intrastat_arrivals == "extended"
or this.intrastat_dispatches == "extended"
):
this.intrastat = "extended"
else:
this.intrastat = 'standard'
this.intrastat = "standard"

View File

@@ -1,33 +1,40 @@
# Copyright 2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# Copyright 2009-2018 Noviat (http://www.noviat.com)
# Copyright 2009-2020 Noviat (http://www.noviat.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
_inherit = "res.config.settings"
intrastat_incoterm_id = fields.Many2one(
related='company_id.intrastat_incoterm_id', readonly=False)
intrastat_arrivals = fields.Selection(
related='company_id.intrastat_arrivals', readonly=False)
related="company_id.intrastat_arrivals", readonly=False
)
intrastat_dispatches = fields.Selection(
related='company_id.intrastat_dispatches', readonly=False)
intrastat = fields.Char(related='company_id.intrastat')
related="company_id.intrastat_dispatches", readonly=False
)
intrastat = fields.Char(related="company_id.intrastat")
intrastat_transport_id = fields.Many2one(
related='company_id.intrastat_transport_id', readonly=False)
related="company_id.intrastat_transport_id", readonly=False
)
intrastat_region_id = fields.Many2one(
related='company_id.intrastat_region_id', readonly=False)
related="company_id.intrastat_region_id", readonly=False
)
intrastat_transaction_out_invoice = fields.Many2one(
related='company_id.intrastat_transaction_out_invoice', readonly=False)
related="company_id.intrastat_transaction_out_invoice", readonly=False
)
intrastat_transaction_out_refund = fields.Many2one(
related='company_id.intrastat_transaction_out_refund', readonly=False)
related="company_id.intrastat_transaction_out_refund", readonly=False
)
intrastat_transaction_in_invoice = fields.Many2one(
related='company_id.intrastat_transaction_in_invoice', readonly=False)
related="company_id.intrastat_transaction_in_invoice", readonly=False
)
intrastat_transaction_in_refund = fields.Many2one(
related='company_id.intrastat_transaction_in_refund', readonly=False)
related="company_id.intrastat_transaction_in_refund", readonly=False
)
intrastat_accessory_costs = fields.Boolean(
related='company_id.intrastat_accessory_costs', readonly=False)
country_id = fields.Many2one(related='company_id.country_id')
country_code = fields.Char(related='company_id.country_id.code')
related="company_id.intrastat_accessory_costs", readonly=False
)
country_id = fields.Many2one(related="company_id.country_id")
country_code = fields.Char(related="company_id.country_id.code")

View File

@@ -9,17 +9,19 @@ class SaleOrder(models.Model):
_inherit = "sale.order"
intrastat_transport_id = fields.Many2one(
comodel_name='intrastat.transport_mode', string='Transport Mode',
help="This information is used in Intrastat reports")
comodel_name="intrastat.transport_mode",
string="Transport Mode",
help="This information is used in Intrastat reports",
)
intrastat = fields.Selection(
string='Intrastat Declaration',
related='company_id.intrastat_dispatches')
string="Intrastat Declaration", related="company_id.intrastat_dispatches"
)
def _prepare_invoice(self):
'''Copy destination country to invoice'''
"""Copy destination country to invoice"""
vals = super(SaleOrder, self)._prepare_invoice()
if self.intrastat_transport_id:
vals['intrastat_transport_id'] = self.intrastat_transport_id.id
vals["intrastat_transport_id"] = self.intrastat_transport_id.id
if self.warehouse_id.region_id:
vals['src_dest_region_id'] = self.warehouse_id.region_id.id
vals["src_dest_region_id"] = self.warehouse_id.region_id.id
return vals

View File

@@ -6,21 +6,22 @@ from odoo import fields, models
class StockWarehouse(models.Model):
_inherit = 'stock.warehouse'
_inherit = "stock.warehouse"
region_id = fields.Many2one(
comodel_name='intrastat.region', string='Intrastat Region')
comodel_name="intrastat.region", string="Intrastat Region"
)
class StockLocation(models.Model):
_inherit = 'stock.location'
_inherit = "stock.location"
def get_intrastat_region(self):
self.ensure_one()
locations = self.search([('id', 'parent_of', self.id)])
warehouses = self.env['stock.warehouse'].search([
('lot_stock_id', 'in', locations.ids),
('region_id', '!=', False)])
locations = self.search([("id", "parent_of", self.id)])
warehouses = self.env["stock.warehouse"].search(
[("lot_stock_id", "in", locations.ids), ("region_id", "!=", False)]
)
if warehouses:
return warehouses[0].region_id
return None

View File

@@ -1,195 +1,149 @@
# Copyright 2009-2018 Noviat
# Copyright 2009-2020 Noviat
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import logging
from odoo import models
from odoo.tools.translate import translate, _
from odoo.tools.translate import _, translate
_logger = logging.getLogger(__name__)
IR_TRANSLATION_NAME = 'intrastat.product.report'
IR_TRANSLATION_NAME = "intrastat.product.report"
class IntrastatProductDeclarationXlsx(models.AbstractModel):
_name = 'report.intrastat_product.product_declaration_xls'
_inherit = 'report.report_xlsx.abstract'
_name = "report.intrastat_product.product_declaration_xls"
_inherit = "report.report_xlsx.abstract"
_description = "Intrastat declaration"
def _(self, src):
lang = self.env.context.get('lang', 'en_US')
val = translate(
self.env.cr, IR_TRANSLATION_NAME, 'report', lang, src) or src
lang = self.env.context.get("lang", "en_US")
val = translate(self.env.cr, IR_TRANSLATION_NAME, "report", lang, src) or src
return val
def _get_template(self, declaration):
template = {
'product': {
'header': {
'type': 'string',
'value': self._('Product'),
"product": {
"header": {"type": "string", "value": self._("Product")},
"line": {
"value": self._render("line.product_id and line.product_id.name")
},
'line': {
'value': self._render(
"line.product_id and line.product_id.name"),
},
'width': 36,
"width": 36,
},
'product_origin_country': {
'header': {
'type': 'string',
'value': self._('Product C/O'),
"product_origin_country": {
"header": {"type": "string", "value": self._("Product C/O")},
"line": {
"type": "string",
"value": self._render("line.product_origin_country_id.name or ''"),
},
'line': {
'type': 'string',
'value': self._render(
"line.product_origin_country_id.name or ''"),
},
'width': 28,
"width": 28,
},
'hs_code': {
'header': {
'type': 'string',
'value': self._('Intrastat Code'),
"hs_code": {
"header": {"type": "string", "value": self._("Intrastat Code")},
"line": {
"type": "string",
"value": self._render("line.hs_code_id.local_code"),
},
'line': {
'type': 'string',
'value': self._render(
"line.hs_code_id.local_code"),
},
'width': 14,
"width": 14,
},
'src_dest_country': {
'header': {
'type': 'string',
'value': self._('Country of Origin/Destination'),
"src_dest_country": {
"header": {
"type": "string",
"value": self._("Country of Origin/Destination"),
},
'line': {
'type': 'string',
'value': self._render(
"line.src_dest_country_id.name"),
"line": {
"type": "string",
"value": self._render("line.src_dest_country_id.name"),
},
'width': 28,
"width": 28,
},
'amount_company_currency': {
'header': {
'type': 'string',
'value': self._('Fiscal Value'),
'format': self.format_theader_yellow_right,
"amount_company_currency": {
"header": {
"type": "string",
"value": self._("Fiscal Value"),
"format": self.format_theader_yellow_right,
},
'line': {
'type': 'number',
'value': self._render("line.amount_company_currency"),
'format': self.format_tcell_amount_right,
"line": {
"type": "number",
"value": self._render("line.amount_company_currency"),
"format": self.format_tcell_amount_right,
},
'width': 18,
"width": 18,
},
'accessory_cost': {
'header': {
'type': 'string',
'value': self._('Accessory Costs'),
'format': self.format_theader_yellow_right,
"accessory_cost": {
"header": {
"type": "string",
"value": self._("Accessory Costs"),
"format": self.format_theader_yellow_right,
},
'line': {
'type': 'number',
'value': self._render(
"line.amount_accessory_cost_company_currency"),
'format': self.format_tcell_amount_right,
"line": {
"type": "number",
"value": self._render(
"line.amount_accessory_cost_company_currency"
),
"format": self.format_tcell_amount_right,
},
'width': 18,
"width": 18,
},
'transaction': {
'header': {
'type': 'string',
'value': self._('Intrastat Transaction'),
},
'line': {
'value': self._render(
"line.transaction_id.display_name"),
},
'width': 36,
"transaction": {
"header": {"type": "string", "value": self._("Intrastat Transaction")},
"line": {"value": self._render("line.transaction_id.display_name")},
"width": 36,
},
'weight': {
'header': {
'type': 'string',
'value': self._('Weight'),
'format': self.format_theader_yellow_right,
"weight": {
"header": {
"type": "string",
"value": self._("Weight"),
"format": self.format_theader_yellow_right,
},
'line': {
'type': 'number',
'value': self._render(
"line.weight"),
'format': self.format_tcell_amount_right,
"line": {
"type": "number",
"value": self._render("line.weight"),
"format": self.format_tcell_amount_right,
},
'width': 18,
"width": 18,
},
'suppl_unit_qty': {
'header': {
'type': 'string',
'value': self._('Suppl. Unit Qty'),
'format': self.format_theader_yellow_right,
"suppl_unit_qty": {
"header": {
"type": "string",
"value": self._("Suppl. Unit Qty"),
"format": self.format_theader_yellow_right,
},
'line': {
"line": {
# we don't specify a type here and rely on the
# report_xlsx_helper type detection to use
# write_string when suppl_unit_qty is zero
'value': self._render(
"line.suppl_unit_qty or ''"),
'format': self.format_tcell_amount_right,
"value": self._render("line.suppl_unit_qty or ''"),
"format": self.format_tcell_amount_right,
},
'width': 18,
"width": 18,
},
'suppl_unit': {
'header': {
'type': 'string',
'value': self._('Suppl. Unit'),
},
'line': {
'value': self._render(
"line.intrastat_unit_id.name or ''"),
},
'width': 14,
"suppl_unit": {
"header": {"type": "string", "value": self._("Suppl. Unit")},
"line": {"value": self._render("line.intrastat_unit_id.name or ''")},
"width": 14,
},
'incoterm': {
'header': {
'type': 'string',
'value': self._('Incoterm'),
},
'line': {
'value': self._render("line.incoterm_id.name or ''"),
},
'width': 14,
"incoterm": {
"header": {"type": "string", "value": self._("Incoterm")},
"line": {"value": self._render("line.incoterm_id.name or ''")},
"width": 14,
},
'transport': {
'header': {
'type': 'string',
'value': self._('Transport Mode'),
},
'line': {
'value': self._render("line.transport_id.name or ''"),
},
'width': 14,
"transport": {
"header": {"type": "string", "value": self._("Transport Mode")},
"line": {"value": self._render("line.transport_id.name or ''")},
"width": 14,
},
'region': {
'header': {
'type': 'string',
'value': self._('Intrastat Region'),
},
'line': {
'value': self._render("line.region_id.name or ''"),
},
'width': 28,
"region": {
"header": {"type": "string", "value": self._("Intrastat Region")},
"line": {"value": self._render("line.region_id.name or ''")},
"width": 28,
},
'invoice': {
'header': {
'type': 'string',
'value': self._('Invoice'),
},
'line': {
'value': self._render("line.invoice_id.number"),
},
'width': 18,
"invoice": {
"header": {"type": "string", "value": self._("Invoice")},
"line": {"value": self._render("line.invoice_id.name")},
"width": 18,
},
}
template.update(declaration._xls_template())
@@ -198,80 +152,86 @@ class IntrastatProductDeclarationXlsx(models.AbstractModel):
def _get_ws_params(self, wb, data, declaration):
template = self._get_template(declaration)
if self.env.context.get('computation_lines'):
if self.env.context.get("computation_lines"):
wl = declaration._xls_computation_line_fields()
report = 'computation'
report = "computation"
else:
wl = declaration._xls_declaration_line_fields()
report = 'declaration'
report = "declaration"
title = self._get_title(declaration, report, title_format='normal')
title_short = self._get_title(declaration, report,
title_format='short')
sheet_name = title_short[:31].replace('/', '-')
title = self._get_title(declaration, report, title_format="normal")
title_short = self._get_title(declaration, report, title_format="short")
sheet_name = title_short[:31].replace("/", "-")
params = {
'ws_name': sheet_name,
'generate_ws_method': '_intrastat_report',
'title': title,
'wanted_list': wl,
'col_specs': template,
"ws_name": sheet_name,
"generate_ws_method": "_intrastat_report",
"title": title,
"wanted_list": wl,
"col_specs": template,
}
return [params]
def _get_title(self, declaration, report, title_format='normal'):
def _get_title(self, declaration, report, title_format="normal"):
title = declaration.year_month
if title_format == 'normal':
if report == 'computation':
title += ' : ' + _('Computation Lines')
if title_format == "normal":
if report == "computation":
title += " : " + _("Computation Lines")
else:
title += ' : ' + _('Declaration Lines')
title += " : " + _("Declaration Lines")
return title
def _report_title(self, ws, row_pos, ws_params, data, declaration):
return self._write_ws_title(ws, row_pos, ws_params)
def _empty_report(self, ws, row_pos, ws_params, data, declaration,
report):
if report == 'computation':
lines = _('Computation Lines')
def _empty_report(self, ws, row_pos, ws_params, data, declaration, report):
if report == "computation":
lines = _("Computation Lines")
else:
lines = _('Declaration Lines')
no_entries = _("No") + " " + lines + " " + _("for period %s") \
% declaration.year_month
lines = _("Declaration Lines")
no_entries = (
_("No") + " " + lines + " " + _("for period %s") % declaration.year_month
)
ws.write_string(row_pos, 0, no_entries, self.format_left_bold)
def _intrastat_report(self, workbook, ws, ws_params, data, declaration):
ws.set_landscape()
ws.fit_to_pages(1, 0)
ws.set_header(self.xls_headers['standard'])
ws.set_footer(self.xls_footers['standard'])
ws.set_header(self.xls_headers["standard"])
ws.set_footer(self.xls_footers["standard"])
self._set_column_width(ws, ws_params)
row_pos = 0
row_pos = self._report_title(ws, row_pos, ws_params, data, declaration)
if self.env.context.get('computation_lines'):
report = 'computation'
if self.env.context.get("computation_lines"):
report = "computation"
lines = declaration.computation_line_ids
else:
report = 'declaration'
report = "declaration"
lines = declaration.declaration_line_ids
if not lines:
return self._empty_report(
ws, row_pos, ws_params, data, declaration, report)
return self._empty_report(ws, row_pos, ws_params, data, declaration, report)
row_pos = self._write_line(
ws, row_pos, ws_params, col_specs_section='header',
default_format=self.format_theader_yellow_left)
ws,
row_pos,
ws_params,
col_specs_section="header",
default_format=self.format_theader_yellow_left,
)
ws.freeze_panes(row_pos, 0)
for line in lines:
row_pos = self._write_line(
ws, row_pos, ws_params, col_specs_section='line',
render_space={'line': line},
default_format=self.format_tcell_left)
ws,
row_pos,
ws_params,
col_specs_section="line",
render_space={"line": line},
default_format=self.format_tcell_left,
)

View File

@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/intrastat-extrastat/tree/12.0/intrastat_product"><img alt="OCA/intrastat-extrastat" src="https://img.shields.io/badge/github-OCA%2Fintrastat--extrastat-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/intrastat-extrastat-12-0/intrastat-extrastat-12-0-intrastat_product"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/227/12.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/intrastat-extrastat/tree/13.0/intrastat_product"><img alt="OCA/intrastat-extrastat" src="https://img.shields.io/badge/github-OCA%2Fintrastat--extrastat-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/intrastat-extrastat-13-0/intrastat-extrastat-13-0-intrastat_product"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/227/13.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>This module contains common objects and fields for the Intrastat Product reporting.</p>
<p>It should be used in combination with country-specific Intrastat Product reporting modules
such as:</p>
@@ -431,7 +431,7 @@ the customization or new method is required for multiple countries).</p>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/intrastat-extrastat/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/intrastat-extrastat/issues/new?body=module:%20intrastat_product%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<a class="reference external" href="https://github.com/OCA/intrastat-extrastat/issues/new?body=module:%20intrastat_product%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
@@ -458,7 +458,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<p>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.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/intrastat-extrastat/tree/12.0/intrastat_product">OCA/intrastat-extrastat</a> project on GitHub.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/intrastat-extrastat/tree/13.0/intrastat_product">OCA/intrastat-extrastat</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>

View File

@@ -1,48 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="invoice_form" model="ir.ui.view">
<field name="name">intrastat.invoice.form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='other_info']//field[@name='name']" position="after">
<field name="intrastat_transaction_id"/>
<field name="intrastat" invisible="1"/>
<field name="intrastat_transport_id"
attrs="{'invisible': [('intrastat', '!=', 'extended')]}"
widget="selection"/>
<field name="src_dest_country_id" string="Destination Country"/>
<field name="src_dest_region_id" string="Origin Region" invisible="1"/>
</xpath>
<xpath expr="//field[@name='invoice_line_ids']//field[@name='account_id']" position="after">
<field name="hs_code_id" invisible="1"/>
</xpath>
</field>
</record>
<record id="invoice_supplier_form" model="ir.ui.view">
<field name="name">intrastat.invoice.supplier.form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_supplier_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='payment_term_id']" position="after">
<field name="incoterms_id"
attrs="{'invisible': [('intrastat', '!=', 'extended')]}"/>
</xpath>
<xpath expr="//page/group/group/field[@name='company_id']" position="after">
<field name="intrastat_transaction_id"/>
<field name="intrastat" invisible="1"/>
<field name="intrastat_transport_id"
attrs="{'invisible': [('intrastat', '!=', 'extended')]}"
widget="selection"/>
<field name="src_dest_country_id" string="Origin Country"/>
<field name="src_dest_region_id" string="Destination Region" invisible="1"/>
</xpath>
<xpath expr="//field[@name='invoice_line_ids']//field[@name='account_id']" position="after">
<field name="hs_code_id" invisible="1"/>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_move_form" model="ir.ui.view">
<field name="name">intrastat.invoice.form</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_move_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='other_info']//field[@name='invoice_incoterm_id']" position="after">
<field name="intrastat_transaction_id"/>
<field name="intrastat" invisible="1"/>
<field name="intrastat_transport_id"
attrs="{'invisible': [('intrastat', '!=', 'extended')]}"
widget="selection"/>
<field name="src_dest_country_id" string="Destination Country"/>
<field name="src_dest_region_id" string="Origin Region" invisible="1"/>
</xpath>
<xpath expr="//field[@name='invoice_line_ids']//field[@name='account_id']" position="after">
<field name="hs_code_id" invisible="1"/>
</xpath>
</field>
</record>
</odoo>

View File

@@ -87,7 +87,7 @@
<field name="name">intrastat.product.declaration.tree</field>
<field name="model">intrastat.product.declaration</field>
<field name="arch" type="xml">
<tree string="Intrastat Product Declarations" colors="blue:state=='draft'">
<tree string="Intrastat Product Declarations" decoration-info="state=='draft'">
<field name="year_month"/>
<field name="revision"/>
<field name="type"/>

View File

@@ -10,60 +10,57 @@
<odoo>
<!-- Intrastat Supplementary Unit -->
<record id="intrastat_unit_form" model="ir.ui.view">
<field name="name">intrastat.unit.form</field>
<field name="model">intrastat.unit</field>
<field name="arch" type="xml">
<form string="Intrastat Supplementary Unit">
<div class="oe_button_box" name="button_box">
<button name="toggle_active" type="object"
class="oe_stat_button" icon="fa-archive">
<field name="active" widget="boolean_button"
options='{"terminology": "archive"}'/>
</button>
</div>
<group name="main">
<field name="name"/>
<field name="uom_id" required="1"/>
<field name="description"/>
</group>
</form>
</field>
<record id="intrastat_unit_form" model="ir.ui.view">
<field name="name">intrastat.unit.form</field>
<field name="model">intrastat.unit</field>
<field name="arch" type="xml">
<form string="Intrastat Supplementary Unit">
<field name="active" invisible="1"/>
<widget name="web_ribbon" text="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"/>
<group name="main">
<field name="name"/>
<field name="uom_id" required="1"/>
<field name="description"/>
</group>
</form>
</field>
</record>
<record id="intrastat_unit_tree" model="ir.ui.view">
<field name="name">intrastat.unit.tree</field>
<field name="model">intrastat.unit</field>
<field name="arch" type="xml">
<tree string="Intrastat Supplementary Units">
<field name="name"/>
<field name="uom_id"/>
<field name="description"/>
</tree>
</field>
<field name="name">intrastat.unit.tree</field>
<field name="model">intrastat.unit</field>
<field name="arch" type="xml">
<tree string="Intrastat Supplementary Units">
<field name="name"/>
<field name="uom_id"/>
<field name="description"/>
</tree>
</field>
</record>
<record id="intrastat_unit_search" model="ir.ui.view">
<field name="name">intrastat.unit.search</field>
<field name="model">intrastat.unit</field>
<field name="arch" type="xml">
<search string="Search Intrastat Supplementary Units">
<field name="name"
filter_domain="['|', ('name', 'ilike', self), ('description', 'ilike', self)]"/>
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
<group string="Group By" name="groupby">
<filter name="uom_groupby" string="Regular UoM"
context="{'group_by': 'uom_id'}"/>
</group>
</search>
</field>
<field name="name">intrastat.unit.search</field>
<field name="model">intrastat.unit</field>
<field name="arch" type="xml">
<search string="Search Intrastat Supplementary Units">
<field name="name"
filter_domain="['|', ('name', 'ilike', self), ('description', 'ilike', self)]"/>
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
<group string="Group By" name="groupby">
<filter name="uom_groupby" string="Regular UoM"
context="{'group_by': 'uom_id'}"/>
</group>
</search>
</field>
</record>
<record id="intrastat_unit_action" model="ir.actions.act_window">
<field name="name">Supplementary Units</field>
<field name="res_model">intrastat.unit</field>
<field name="view_mode">tree,form</field>
<field name="name">Supplementary Units</field>
<field name="res_model">intrastat.unit</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="intrastat_unit_menu"

View File

@@ -34,10 +34,6 @@
<label for="intrastat_transport_id" class="col-md-5 o_light_label"/>
<field name="intrastat_transport_id"/>
</div>
<div class="row" attrs="{'invisible': [('country_code', 'in', ['FR'])]}">
<label for="intrastat_incoterm_id" class="col-md-5 o_light_label"/>
<field name="intrastat_incoterm_id"/>
</div>
<div class="row">
<label for="intrastat_transaction_out_invoice" class="col-md-5 o_light_label"/>
<field name="intrastat_transaction_out_invoice"/>