[FIX+IMP] intrastat_*: Several things:

* Add readonly on some fields when state of declaration is done
* Division by zero in computation of accessory costs
* Add FR translation
* Fix strings
* Minor code updates
This commit is contained in:
Alexis de Lattre
2018-12-10 15:07:40 +01:00
committed by Pedro M. Baeza
parent d68468cb77
commit 4dbfeecd09
6 changed files with 1522 additions and 99 deletions

227
intrastat_base/i18n/fr.po Normal file
View File

@@ -0,0 +1,227 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * intrastat_base
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-12-29 09:52+0000\n"
"PO-Revision-Date: 2018-12-29 09:52+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: intrastat_base
#: model:ir.model.fields,help:intrastat_base.field_product_product_is_accessory_cost
#: model:ir.model.fields,help:intrastat_base.field_product_template_is_accessory_cost
msgid "Activate this option for shipping costs, packaging costs and all services related to the sale of products. This option is used for Intrastat reports."
msgstr "Activer cette option pour les frais de port, les frais d'emballage et tous les services associés à la vente de produits. Cette option est utilisée pour la DEB et la DES."
#. module: intrastat_base
#: code:addons/intrastat_base/models/intrastat_common.py:150
#, python-format
msgid "Cannot delete the declaration %s because it is in Done state"
msgstr "Impossible de supprimer la déclaration %s parce qu'elle est à l'état 'Terminé'."
#. module: intrastat_base
#: model:ir.model,name:intrastat_base.model_intrastat_common
msgid "Common functions for intrastat reports for products "
msgstr "Common functions for intrastat reports for products "
#. module: intrastat_base
#: model:ir.model,name:intrastat_base.model_res_company
msgid "Companies"
msgstr "Sociétés"
#. module: intrastat_base
#: code:addons/intrastat_base/models/intrastat_common.py:35
#, python-format
msgid "Company not yet set on intrastat report."
msgstr "Société non configurée sur le rapport DEB/DES."
#. module: intrastat_base
#: model:ir.model,name:intrastat_base.model_res_country
msgid "Country"
msgstr "Pays"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_result_view_create_uid
msgid "Created by"
msgstr "Créé par"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_result_view_create_date
msgid "Created on"
msgstr "Créé le"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_common_display_name
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_result_view_display_name
msgid "Display Name"
msgstr "Afficher le nom"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_res_country_intrastat
#: model:ir.ui.view,arch_db:intrastat_base.res_country_view_search
msgid "EU Country"
msgstr "Membre de l'UE"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_account_tax_exclude_from_intrastat_if_present
#: model:ir.model.fields,field_description:intrastat_base.field_account_tax_template_exclude_from_intrastat_if_present
msgid "Exclude invoice line from intrastat if this tax is present"
msgstr "Ligne de facture exclue de la DEB et de la DES si cette taxe est présente"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_common_id
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_result_view_id
msgid "ID"
msgstr "ID"
#. module: intrastat_base
#: model:ir.model.fields,help:intrastat_base.field_account_tax_exclude_from_intrastat_if_present
#: model:ir.model.fields,help:intrastat_base.field_account_tax_template_exclude_from_intrastat_if_present
msgid "If this tax is present on an invoice line, this invoice line will be skipped when generating Intrastat Product or Service lines from invoices."
msgstr "Si cette taxe est présente sur une ligne de facture, cette ligne de facture sera sautée lors de la génération de la DEB et de la DES à partir des factures."
#. module: intrastat_base
#: model:ir.ui.menu,name:intrastat_base.menu_intrastat_base_root
#: model:ir.ui.menu,name:intrastat_base.menu_intrastat_config_root
#: model:ir.ui.view,arch_db:intrastat_base.view_intrastat_res_config_settings
msgid "Intrastat"
msgstr "DEB/DES"
#. module: intrastat_base
#: model:ir.ui.view,arch_db:intrastat_base.product_template_form_view
msgid "Intrastat Properties"
msgstr "Propriétés DEB/DES"
#. module: intrastat_base
#: model:ir.ui.view,arch_db:intrastat_base.intrastat_result_view_form
msgid "Intrastat Result View"
msgstr "Résultat DEB"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_product_product_is_accessory_cost
#: model:ir.model.fields,field_description:intrastat_base.field_product_template_is_accessory_cost
msgid "Is accessory cost"
msgstr "Est un frais accessoire"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_common___last_update
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_result_view___last_update
msgid "Last Modified on"
msgstr "Dernière modification le"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_result_view_write_uid
msgid "Last Updated by"
msgstr "Dernière modification par"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_result_view_write_date
msgid "Last Updated on"
msgstr "Dernière modification le"
#. module: intrastat_base
#: model:ir.model.fields,help:intrastat_base.field_res_company_intrastat_remind_user_ids
#: model:ir.model.fields,help:intrastat_base.field_res_config_settings_intrastat_remind_user_ids
msgid "List of Odoo users who will receive a notification to remind them about the Intrastat declaration."
msgstr "Liste d'utilisateurs Odoo qui recevront un rappel pour la DEB/DES."
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_res_company_intrastat_email_list
msgid "List of emails of Users Receiving the Intrastat Reminder"
msgstr "Liste des emails des utilisateurs qui reçoivent le rappel DEB/DES"
#. module: intrastat_base
#: code:addons/intrastat_base/models/res_company.py:38
#, python-format
msgid "Missing e-mail address on user '%s'."
msgstr "Adresse e-mail manquante pour l'utilisateur '%s'."
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_intrastat_result_view_note
msgid "Notes"
msgstr "Notes"
#. module: intrastat_base
#: model:ir.ui.view,arch_db:intrastat_base.intrastat_result_view_form
msgid "Ok"
msgstr "Ok"
#. module: intrastat_base
#: model:ir.model,name:intrastat_base.model_product_template
msgid "Product Template"
msgstr "Modèle d'article"
#. module: intrastat_base
#: model:ir.ui.view,arch_db:intrastat_base.res_country_view_search
msgid "Search Countries"
msgstr "Recherche pays"
#. module: intrastat_base
#: model:ir.model.fields,help:intrastat_base.field_res_country_intrastat
msgid "Set to True for all European Union countries."
msgstr "Cocher la case pour tous les pays de l'Union Européenne."
#. module: intrastat_base
#: model:product.product,name:intrastat_base.shipping_costs_exclude
#: model:product.template,name:intrastat_base.shipping_costs_exclude_product_template
msgid "Shipping costs"
msgstr "Frais de port"
#. module: intrastat_base
#: model:ir.model,name:intrastat_base.model_account_tax
msgid "Tax"
msgstr "Taxe"
#. module: intrastat_base
#: model:ir.model,name:intrastat_base.model_account_tax_template
msgid "Templates for Taxes"
msgstr "Modèles pour les taxes"
#. module: intrastat_base
#: code:addons/intrastat_base/models/intrastat_common.py:48
#, python-format
msgid "The VAT number is not set for the partner '%s'."
msgstr "Numéro de TVA non renseigné sur le partenaire '%s'."
#. module: intrastat_base
#: code:addons/intrastat_base/models/intrastat_common.py:39
#, python-format
msgid "The country is not set on the company '%s'."
msgstr "Pays non renseigné sur la société '%s'."
#. module: intrastat_base
#: code:addons/intrastat_base/models/intrastat_common.py:70
#, python-format
msgid "The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s."
msgstr "Le fichier XML n'est pas valide au regard du schéma de définition XML. Le fichier XML généré et l'erreur complète ont été écrits dans les logs du serveur Odoo. Voici l'erreur, qui pourrait vous aiguiller sur la cause du problème : %s."
#. module: intrastat_base
#: code:addons/intrastat_base/models/product_template.py:23
#, python-format
msgid "The option 'Is accessory cost?' should only be activated on 'Service' products. You have activated this option for the product '%s' which is of type '%s'"
msgstr "L'option 'Est un frais accessoire' ne doit être activée que sur des articles de service. Vous avez activé cette option pour l'article '%s' qui est de type '%s'"
#. module: intrastat_base
#: model:ir.model.fields,field_description:intrastat_base.field_res_company_intrastat_remind_user_ids
#: model:ir.model.fields,field_description:intrastat_base.field_res_config_settings_intrastat_remind_user_ids
msgid "Users Receiving the Intrastat Reminder"
msgstr "Utilisateurs qui reçoivent le rappel DEB/DES"
#. module: intrastat_base
#: model:ir.model,name:intrastat_base.model_intrastat_result_view
msgid "intrastat.result.view"
msgstr "intrastat.result.view"
#. module: intrastat_base
#: model:ir.model,name:intrastat_base.model_res_config_settings
msgid "res.config.settings"
msgstr "res.config.settings"

View File

@@ -19,9 +19,8 @@ class ProductTemplate(models.Model):
def _check_accessory_cost(self):
for this in self:
if this.is_accessory_cost and this.type != 'service':
raise ValidationError(
_("The option 'Is accessory cost?' should only be "
"activated on 'Service' products. You have activated "
"this option for the product '%s' which is of type "
"'%s'") %
(this.name, this.type))
raise ValidationError(_(
"The option 'Is accessory cost' should only be "
"activated on 'Service' products. You have activated "
"this option for the product '%s' which is of type "
"'%s'") % (this.name, this.type))

1182
intrastat_product/i18n/fr.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -79,15 +79,15 @@ class IntrastatProductDeclaration(models.Model):
return 'replace'
company_id = fields.Many2one(
'res.company', string='Company', readonly=True,
'res.company', string='Company', readonly=True, required=True,
default=lambda self: self.env['res.company']._company_default_get())
company_country_code = fields.Char(
compute='_compute_company_country_code',
string='Company Country Code', readonly=True, store=True,
help="Used in views and methods of localization modules.")
year = fields.Integer(
string='Year', required=True,
default=_get_year)
string='Year', required=True, default=_get_year,
states={'done': [('readonly', True)]})
month = fields.Selection([
(1, '01'),
(2, '02'),
@@ -101,8 +101,8 @@ class IntrastatProductDeclaration(models.Model):
(10, '10'),
(11, '11'),
(12, '12')
], string='Month', required=True,
default=_get_month)
], string='Month', required=True, default=_get_month,
states={'done': [('readonly', True)]})
year_month = fields.Char(
compute='_compute_year_month', string='Period', readonly=True,
track_visibility='onchange', store=True,
@@ -136,12 +136,11 @@ class IntrastatProductDeclaration(models.Model):
compute='_compute_numbers', string='Total Fiscal Amount', store=True,
help="Total fiscal amount in company currency of the declaration.")
currency_id = fields.Many2one(
'res.currency', related='company_id.currency_id', readonly=True,
string='Currency')
related='company_id.currency_id', readonly=True, string='Company Currency')
state = fields.Selection([
('draft', 'Draft'),
('done', 'Done'),
], string='State', readonly=True, track_visibility='onchange',
], string='State', readonly=True, track_visibility='onchange',
copy=False, default='draft',
help="State of the declaration. When the state is set to 'Done', "
"the parameters become read-only.")
@@ -149,13 +148,12 @@ class IntrastatProductDeclaration(models.Model):
string='Notes',
help="You can add some comments here if you want.")
reporting_level = fields.Selection(
'_get_reporting_level',
string='Reporting Level')
'_get_reporting_level', string='Reporting Level',
states={'done': [('readonly', True)]})
valid = fields.Boolean(
compute='_check_validity',
string='Valid')
@api.model
@api.constrains('year')
def _check_year(self):
for this in self:
@@ -178,7 +176,7 @@ class IntrastatProductDeclaration(models.Model):
if this.company_id:
if not this.company_id.country_id:
raise ValidationError(
_("You must set company's country !"))
_("You must set the country of the company!"))
this.company_country_code = \
this.company_id.country_id.code.lower()
@@ -292,7 +290,7 @@ class IntrastatProductDeclaration(models.Model):
elif source_uom.category_id == pce_uom_categ:
if not product.weight: # re-create weight_net ?
note = "\n" + _(
"Missing net weight on product %s."
"Missing weight on product %s."
) % product.name_get()[0][1]
note += "\n" + _(
"Please correct the product record and regenerate "
@@ -418,13 +416,18 @@ class IntrastatProductDeclaration(models.Model):
total_inv_accessory_costs_cc *
ac_line_vals['amount_company_currency'] /
total_inv_product_cc)
else:
elif total_inv_weight:
# pro-rata of the weight
for ac_line_vals in lines_current_invoice:
ac_line_vals['amount_accessory_cost_company_currency'] = (
total_inv_accessory_costs_cc *
ac_line_vals['weight'] /
total_inv_weight)
else:
for ac_line_vals in lines_current_invoice:
ac_line_vals['amount_accessory_cost_company_currency'] = (
total_inv_accessory_costs_cc /
len(lines_current_invoice))
def _prepare_invoice_domain(self):
"""
@@ -763,34 +766,27 @@ class IntrastatProductDeclaration(models.Model):
class IntrastatProductComputationLine(models.Model):
_name = 'intrastat.product.computation.line'
_description = "Intrastat Product Computataion Lines"
_description = "Intrastat Product Computation Lines"
parent_id = fields.Many2one(
'intrastat.product.declaration',
string='Intrastat Product Declaration',
ondelete='cascade', readonly=True)
company_id = fields.Many2one(
'res.company', related='parent_id.company_id',
string="Company", readonly=True)
related='parent_id.company_id', readonly=True)
company_currency_id = fields.Many2one(
'res.currency', related='company_id.currency_id',
string="Company currency", readonly=True)
related='company_id.currency_id', readonly=True)
type = fields.Selection(
related='parent_id.type',
string='Type',
readonly=True)
related='parent_id.type', readonly=True)
reporting_level = fields.Selection(
related='parent_id.reporting_level',
string='Reporting Level',
readonly=True)
related='parent_id.reporting_level', readonly=True)
valid = fields.Boolean(
compute='_check_validity',
string='Valid')
invoice_line_id = fields.Many2one(
'account.invoice.line', string='Invoice Line', readonly=True)
invoice_id = fields.Many2one(
'account.invoice', related='invoice_line_id.invoice_id',
string='Invoice', readonly=True)
related='invoice_line_id.invoice_id', string='Invoice', readonly=True)
declaration_line_id = fields.Many2one(
'intrastat.product.declaration.line',
string='Declaration Line', readonly=True)
@@ -799,12 +795,11 @@ class IntrastatProductComputationLine(models.Model):
help="Country of Origin/Destination",
domain=[('intrastat', '=', True)])
product_id = fields.Many2one(
'product.product', related='invoice_line_id.product_id',
string='Product', readonly=True)
related='invoice_line_id.product_id', readonly=True)
hs_code_id = fields.Many2one(
'hs.code', string='Intrastat Code')
intrastat_unit_id = fields.Many2one(
'intrastat.unit', related='hs_code_id.intrastat_unit_id',
related='hs_code_id.intrastat_unit_id',
string='Suppl. Unit', readonly=True,
help="Intrastat Supplementary Unit")
weight = fields.Float(
@@ -871,19 +866,12 @@ class IntrastatProductDeclarationLine(models.Model):
string='Intrastat Product Declaration',
ondelete='cascade', readonly=True)
company_id = fields.Many2one(
'res.company', related='parent_id.company_id',
string="Company", readonly=True)
related='parent_id.company_id', readonly=True)
company_currency_id = fields.Many2one(
'res.currency', related='company_id.currency_id',
string="Company currency", readonly=True)
type = fields.Selection(
related='parent_id.type',
string='Type',
readonly=True)
related='company_id.currency_id', readonly=True)
type = fields.Selection(related='parent_id.type', readonly=True)
reporting_level = fields.Selection(
related='parent_id.reporting_level',
string='Reporting Level',
readonly=True)
related='parent_id.reporting_level', readonly=True)
computation_line_ids = fields.One2many(
'intrastat.product.computation.line', 'declaration_line_id',
string='Computation Lines', readonly=True)

View File

@@ -79,7 +79,7 @@
<field name="revision"/>
<field name="type"/>
<field name="num_decl_lines"/>
<field name="total_amount" sum="Total amount"/>
<field name="total_amount" sum="1"/>
<field name="currency_id"/>
<field name="state"/>
</tree>
@@ -168,10 +168,10 @@
<field name="product_id"/>
<field name="hs_code_id"/>
<field name="src_dest_country_id" domain="[('intrastat', '=', True)]"/>
<field name="amount_company_currency"/>
<field name="amount_accessory_cost_company_currency"/>
<field name="amount_company_currency" sum="1"/>
<field name="amount_accessory_cost_company_currency" sum="1"/>
<field name="transaction_id"/>
<field name="weight"/>
<field name="weight" sum="1"/>
<field name="suppl_unit_qty"
attrs="{'invisible': [('intrastat_unit_id', '=', False)], 'required': [('intrastat_unit_id', '!=', False)]}"/>
<field name="intrastat_unit_id"/>
@@ -230,9 +230,9 @@
invisible="not context.get('intrastat_product_declaration_line_main_view')"/>
<field name="hs_code_id"/>
<field name="src_dest_country_id" domain="[('intrastat', '=', True)]"/>
<field name="amount_company_currency"/>
<field name="amount_company_currency" sum="1"/>
<field name="transaction_id"/>
<field name="weight"/>
<field name="weight" sum="1"/>
<field name="suppl_unit_qty"/>
<field name="intrastat_unit_id"/>
<field name="reporting_level" invisible="1"/>

View File

@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-07-16 13:11+0000\n"
"PO-Revision-Date: 2015-07-16 13:11+0000\n"
"POT-Creation-Date: 2018-12-29 10:15+0000\n"
"PO-Revision-Date: 2018-12-29 10:15+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -16,118 +16,139 @@ msgstr ""
"Plural-Forms: \n"
#. module: product_harmonized_system
#: field:hs.code,active:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_active
msgid "Active"
msgstr "Actif"
#. module: product_harmonized_system
#: model:hs.code,description:product_harmonized_system.84715000
msgid "Automatic data-processing machines (computers)"
msgstr ""
msgstr "Automatic data-processing machines (computers)"
#. module: product_harmonized_system
#: help:hs.code,local_code:0
msgid "Code used for the national Import/Export declaration. e.g. Intrastat for the European Union"
msgstr "Code utilisé pour la déclaration nationale d'import/export, par exemple la DEB pour la France"
#: model:ir.model.fields,help:product_harmonized_system.field_hs_code_local_code
msgid "Code used for the national Import/Export declaration. The national code starts with the 6 digits of the H.S. and often has a few additional digits to extend the H.S. code."
msgstr "Code utilisé pour la DEB. Le code national commence par les 6 numéros du Système Harmonisé et est suivi généralement par un ou plusieurs numéros d'extention."
#. module: product_harmonized_system
#: field:hs.code,company_id:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_company_id
msgid "Company"
msgstr "Société"
#. module: product_harmonized_system
#: field:product.template,origin_country_id:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_product_product_origin_country_id
#: model:ir.model.fields,field_description:product_harmonized_system.field_product_template_origin_country_id
msgid "Country of Origin"
msgstr "Pays d'origine"
#. module: product_harmonized_system
#: help:product.template,origin_country_id:0
msgid "Country of origin of the product i.e. product 'made in ____'. If you have different countries of origin depending on the supplier from which you purchased the product, leave this field empty and use the equivalent field on the 'product supplier info' form."
msgstr ""
#: model:ir.model.fields,help:product_harmonized_system.field_product_product_origin_country_id
#: model:ir.model.fields,help:product_harmonized_system.field_product_template_origin_country_id
msgid "Country of origin of the product i.e. product 'made in ____'."
msgstr "Pays d'origine de l'article i.e. produit 'made in ____'."
#. module: product_harmonized_system
#: field:hs.code,create_uid:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_create_uid
msgid "Created by"
msgstr "Créé par"
#. module: product_harmonized_system
#: field:hs.code,create_date:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_create_date
msgid "Created on"
msgstr "Créé le"
#. module: product_harmonized_system
#: field:hs.code,description:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_description
msgid "Description"
msgstr "Description"
#. module: product_harmonized_system
#: field:hs.code,display_name:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_display_name
msgid "Display Name"
msgstr "Nom affiché"
msgstr "Afficher le nom"
#. module: product_harmonized_system
#: model:ir.model,name:product_harmonized_system.model_hs_code
#: field:product.category,hs_code_id:0
#: field:product.template,hs_code_id:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_hs_code
#: model:ir.model.fields,field_description:product_harmonized_system.field_product_category_hs_code_id
#: model:ir.model.fields,field_description:product_harmonized_system.field_product_product_hs_code_id
#: model:ir.model.fields,field_description:product_harmonized_system.field_product_template_hs_code_id
#: model:ir.ui.view,arch_db:product_harmonized_system.hs_code_view_form
msgid "H.S. Code"
msgstr "Code S.H."
#. module: product_harmonized_system
#: view:hs.code:product_harmonized_system.hs_code_form
msgid "HS Code"
msgstr "Code S.H."
#. module: product_harmonized_system
#: view:hs.code:product_harmonized_system.hs_code_tree
#: model:ir.actions.act_window,name:product_harmonized_system.hs_code_act
#: model:ir.ui.menu,name:product_harmonized_system.hs_code_menu
msgid "HS Codes"
#: model:ir.actions.act_window,name:product_harmonized_system.hs_code_action
#: model:ir.ui.view,arch_db:product_harmonized_system.hs_code_view_tree
msgid "H.S. Codes"
msgstr "Codes S.H."
#. module: product_harmonized_system
#: help:product.category,hs_code_id:0
#: model:ir.model.fields,help:product_harmonized_system.field_product_category_hs_code_id
msgid "Harmonised System Code. If this code is not set on the product itself, it will be read here, on the related product category."
msgstr ""
msgstr "Code du système harmonisé. Si ce code n'est pas renseigné sur l'article, il sera lu ici, sur la catégorie d'article associée."
#. module: product_harmonized_system
#: help:product.template,hs_code_id:0
#: model:ir.model.fields,help:product_harmonized_system.field_product_product_hs_code_id
#: model:ir.model.fields,help:product_harmonized_system.field_product_template_hs_code_id
msgid "Harmonised System Code. Nomenclature is available from the World Customs Organisation, see http://www.wcoomd.org/. You can leave this field empty and configure the H.S. code on the product category."
msgstr ""
msgstr "Code du système harmonisé. La nomenclature est publiée par l'organisation mondiale des douanes, cf http://www.wcoomd.org/. Vous pouvez laisser ce champ vide et renseigner le code S.H. sur la catégorie d'article."
#. module: product_harmonized_system
#: field:hs.code,id:0
#: model:ir.model.fields,help:product_harmonized_system.field_hs_code_hs_code
msgid "Harmonized System code (6 digits). Full list is available from the World Customs Organisation, see http://www.wcoomd.org"
msgstr "Code du système harmonisé (6 chiffres). Liste complète publiée par l'organisation mondiale des douanes, cf http://www.wcoomd.org"
#. module: product_harmonized_system
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_id
msgid "ID"
msgstr "ID"
#. module: product_harmonized_system
#: view:product.category:product_harmonized_system.product_category_form_view
#: model:ir.ui.view,arch_db:product_harmonized_system.product_category_form_view
msgid "Import/Export Properties"
msgstr "Propriétés pour l'import/export"
#. module: product_harmonized_system
#: field:hs.code,write_uid:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code___last_update
msgid "Last Modified on"
msgstr "Dernière modification le"
#. module: product_harmonized_system
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_write_uid
msgid "Last Updated by"
msgstr "Dernière modification par"
#. module: product_harmonized_system
#: field:hs.code,write_date:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_write_date
msgid "Last Updated on"
msgstr "Dernière modification le"
#. module: product_harmonized_system
#: field:hs.code,local_code:0
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_local_code
msgid "Local Code"
msgstr "Code local"
#. module: product_harmonized_system
#: model:hs.code,description:product_harmonized_system.85340090
msgid "Printed circuits"
msgstr ""
msgstr "Printed circuits"
#. module: product_harmonized_system
#: model:ir.model,name:product_harmonized_system.model_product_product
msgid "Product"
msgstr "Article"
#. module: product_harmonized_system
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_product_categ_ids
#: model:ir.ui.view,arch_db:product_harmonized_system.hs_code_view_form
msgid "Product Categories"
msgstr "Catégories d'articles"
#. module: product_harmonized_system
#: model:ir.model,name:product_harmonized_system.model_product_category
msgid "Product Category"
msgstr "Catégorie d'articles"
msgstr "Catégorie d'article"
#. module: product_harmonized_system
#: model:ir.model,name:product_harmonized_system.model_product_template
@@ -135,19 +156,25 @@ msgid "Product Template"
msgstr "Modèle d'article"
#. module: product_harmonized_system
#: view:hs.code:product_harmonized_system.hs_code_search
msgid "Search HS Codes"
msgstr "Recherche dans les codes S.H."
#: model:ir.model.fields,field_description:product_harmonized_system.field_hs_code_product_tmpl_ids
#: model:ir.ui.view,arch_db:product_harmonized_system.hs_code_view_form
msgid "Products"
msgstr "Articles"
#. module: product_harmonized_system
#: help:hs.code,description:0
#: model:ir.ui.view,arch_db:product_harmonized_system.hs_code_view_search
msgid "Search H.S. Codes"
msgstr "Rechercher parmi les codes S.H."
#. module: product_harmonized_system
#: model:ir.model.fields,help:product_harmonized_system.field_hs_code_description
msgid "Short text description of the H.S. category"
msgstr "Courte description de la catégorie H.S."
msgstr "Courte description du code S.H."
#. module: product_harmonized_system
#: model:hs.code,description:product_harmonized_system.84717050
msgid "Storage units"
msgstr ""
msgstr "Storage units"
#. module: product_harmonized_system
#: sql_constraint:hs.code:0