From 3857cdca576469191298ad81ac16c260f82196d9 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Sun, 27 Mar 2011 22:59:53 +0200
Subject: [PATCH 001/142] Initial commit of the entirely new code for
report_intrastat for France.
---
l10n_fr_intrastat_service/__init__.py | 23 ++
l10n_fr_intrastat_service/__terp__.py | 42 +++
l10n_fr_intrastat_service/des_xsd.py | 136 +++++++
.../intrastat_service.py | 333 ++++++++++++++++++
.../intrastat_service_view.xml | 104 ++++++
.../security/ir.model.access.csv | 3 +
6 files changed, 641 insertions(+)
create mode 100644 l10n_fr_intrastat_service/__init__.py
create mode 100644 l10n_fr_intrastat_service/__terp__.py
create mode 100644 l10n_fr_intrastat_service/des_xsd.py
create mode 100644 l10n_fr_intrastat_service/intrastat_service.py
create mode 100644 l10n_fr_intrastat_service/intrastat_service_view.xml
create mode 100644 l10n_fr_intrastat_service/security/ir.model.access.csv
diff --git a/l10n_fr_intrastat_service/__init__.py b/l10n_fr_intrastat_service/__init__.py
new file mode 100644
index 000000000..b396785c9
--- /dev/null
+++ b/l10n_fr_intrastat_service/__init__.py
@@ -0,0 +1,23 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# Report intrastat service module for OpenERP
+# Copyright (C) 2010-2011 Akretion (http://www.akretion.com). All Rights Reserved
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import intrastat_service
+import wizard
diff --git a/l10n_fr_intrastat_service/__terp__.py b/l10n_fr_intrastat_service/__terp__.py
new file mode 100644
index 000000000..b4c3e92c2
--- /dev/null
+++ b/l10n_fr_intrastat_service/__terp__.py
@@ -0,0 +1,42 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# Report intrastat service module for OpenERP
+# Copyright (C) 2010-2011 Akretion (http://www.akretion.com). All Rights Reserved
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+
+{
+ 'name': 'Module for Intrastat service reporting (DES) for France',
+ 'version': '1.1',
+ 'category': 'Localisation/Report Intrastat',
+ 'license': 'AGPL-3',
+ 'description': """This module adds support for the "Déclaration Européenne des Services" (DES).
+Please contact Alexis de Lattre from Akretion for any help or question.
+ """,
+ 'author': 'Akretion',
+ 'website': 'http://www.akretion.com',
+ 'depends': ['l10n_fr_intrastat_base'],
+ 'init_xml': [],
+ 'update_xml': [
+ 'security/ir.model.access.csv',
+ 'intrastat_service_view.xml',
+ ],
+ 'demo_xml': [],
+ 'installable': True,
+ 'active': False,
+}
diff --git a/l10n_fr_intrastat_service/des_xsd.py b/l10n_fr_intrastat_service/des_xsd.py
new file mode 100644
index 000000000..96995e6c6
--- /dev/null
+++ b/l10n_fr_intrastat_service/des_xsd.py
@@ -0,0 +1,136 @@
+# -*- encoding: utf-8 -*-
+
+des_xsd = '''\
+
+
+
+ fichier de déclarations de service
+
+
+
+
+
+
+
+
+
+ declaration de services
+
+
+
+
+
+
+
+
+
+
+
+
+
+ numéro de la DES
+
+
+
+
+
+
+
+
+
+
+ numéro TVA
+
+
+
+
+
+
+
+
+
+ mois de la DES
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ année de la DES
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ num de la ligne DES
+
+
+
+
+
+
+
+
+
+
+ valeur de la ligne de DES
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ partenaire
+
+
+
+
+
+
+
+
+
+'''
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
new file mode 100644
index 000000000..4347e4bf6
--- /dev/null
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -0,0 +1,333 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# Report intrastat service module for OpenERP
+# The service declaration (DES i.e. Déclaration Européenne de Services)
+# was in introduced in France on January 1st 2010
+# Copyright (C) 2010-2011 Akretion (http://www.akretion.com/). All rights reserved.
+# Code written by Alexis de Lattre
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+#TODO
+# Arrondis
+# Dépôt DES fait le .... sur pro douane
+# faire un multi sur les 2 champs calculés de report_intrastat_service
+
+from osv import osv, fields
+from tools.sql import drop_view_if_exists
+import netsvc
+from datetime import datetime, timedelta
+from dateutil.relativedelta import relativedelta
+from tools.translate import _
+
+class report_intrastat_service(osv.osv):
+ _name = "report.intrastat.service"
+ _order = "start_date"
+ _rec_name = "start_date"
+ _description = "Intrastat report for service"
+
+
+ def _compute_num_lines(self, cr, uid, ids, name, arg, context=None):
+ print "START _compute_num_lines"
+ result = {}
+ for intrastat in self.browse(cr, uid, ids, context=context):
+ result[intrastat.id] = 0
+ for line in intrastat.service_line_ids:
+ result[intrastat.id] += 1
+ print "_compute_num_lines res = ", result
+ return result
+
+ def _compute_total_amount(self, cr, uid, ids, name, arg, context=None):
+ print "_compute_total_amount START ids=", ids
+ result = {}
+ for intrastat in self.browse(cr, uid, ids, context=context):
+ result[intrastat.id] = 0.0
+ for line in intrastat.service_line_ids:
+ result[intrastat.id] += line.amount_company_currency
+ print "_compute_total_amount res = ", result
+ return result
+
+ def _compute_end_date(self, cr, uid, ids, name, arg, context=None):
+ print "_compute_end_date START ids=", ids
+ result = {}
+ for intrastat in self.browse(cr, uid, ids, context=context):
+ start_date_datetime = datetime.strptime(intrastat.start_date, '%Y-%m-%d')
+ end_date_str = datetime.strftime(start_date_datetime + relativedelta(day=31), '%Y-%m-%d')
+ result[intrastat.id] = end_date_str
+ print "_compute_end_date res=", result
+ return result
+
+
+ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
+ print "invalidation function CALLED !!!"
+ return self.pool.get('report.intrastat.service').search(cr, uid, [('service_line_ids', 'in', ids)], context=context)
+
+ _columns = {
+ 'company_id': fields.many2one('res.company', 'Company', required=True, states={'done':[('readonly',True)]}, help="Related company."),
+ 'start_date': fields.date('Start date', required=True, states={'done':[('readonly',True)]}, help="Start date of the declaration. Must be the first day of a month."),
+ 'end_date': fields.function(_compute_end_date, method=True, type='date', string='End date', store=True, help="End date for the declaration. Must be the last day of the month of the start date."),
+ 'service_line_ids': fields.one2many('report.intrastat.service.line', 'parent_id', 'Report intrastat service lines', states={'done':[('readonly',True)]}),
+ 'num_lines': fields.function(_compute_num_lines, method=True, type='integer', string='Number of lines', store={
+ 'report.intrastat.service.line': (_get_intrastat_from_service_line, ['parent_id'], 20),
+ }, help="Number of lines in this declaration."),
+ 'total_amount': fields.function(_compute_total_amount, method=True, digits=(16,0), string='Total amount', store={
+ 'report.intrastat.service.line': (_get_intrastat_from_service_line, ['amount_company_currency', 'parent_id'], 20),
+ }, help="Total amount in company currency of the declaration."),
+ 'state' : fields.selection([
+ ('draft','Draft'),
+ ('done','Done'),
+ ], 'State', select=True, readonly=True, help="State of the declaration. When the state is set to 'Done', the parameters become read-only."),
+ 'notes' : fields.text('Notes', help="You can add some comments here if you want.")
+ }
+
+ _defaults = {
+ # By default, we propose 'current month -1', because you prepare in
+ # february the DES of January
+ 'start_date': lambda *a: datetime.strftime(datetime.today() + relativedelta(day=1, months=-1), '%Y-%m-%d'),
+ 'state': lambda *a: 'draft',
+ 'company_id': lambda self, cr, uid, context: \
+ self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id,
+ }
+
+#TODO : add check on date of children lines ?
+ def _check_start_date(self, cr, uid, ids, context=None):
+ '''Check that the start date if the first day of the month'''
+ for cur_id in ids:
+ date_to_check = self.read(cr, uid, cur_id, ['start_date'], context=context)['start_date']
+ datetime_to_check = datetime.strptime(date_to_check, '%Y-%m-%d')
+ if datetime_to_check.day != 1:
+ return False
+ return True
+
+ _constraints = [
+ (_check_start_date, "Start date must be the first day of a month", ['start_date']),
+ ]
+
+ _sql_constraints = [
+ ('date_uniq', 'unique(start_date, company_id)', 'You have already created a DES for this month !'),
+ ]
+
+ def generate_service_lines(self, cr, uid, ids, context=None):
+ print "generate lines, ids=", ids
+#TODO delete service lines
+ if len(ids) != 1:
+ raise osv.except_osv(_('Error :'), _('Hara kiri in generate_service_lines'))
+ # Get current lines and delete them
+ line_remove = self.read(cr, uid, ids[0], ['service_line_ids'], context=context)
+ print "line_remove", line_remove
+ if line_remove['service_line_ids']:
+ self.pool.get('report.intrastat.service.line').unlink(cr, uid, line_remove['service_line_ids'], context=context)
+ #TODO : check on company
+ sql = '''
+ select
+ min(inv_line.id) as id,
+ company.id,
+ inv.name as name,
+ inv.number as invoice_number,
+ inv.date_invoice,
+ inv.currency_id as invoice_currency_id,
+ prt.vat as partner_vat,
+ prt.name as partner_name,
+ res_currency_rate.rate as invoice_currency_rate,
+ sum(case when inv.type = 'out_refund'
+ then inv_line.price_subtotal * (-1)
+ when inv.type = 'out_invoice'
+ then inv_line.price_subtotal
+ end) as amount_invoice_currency,
+ sum(case when company.currency_id != inv.currency_id and res_currency_rate.rate is not null
+ then
+ case when inv.type = 'out_refund'
+ then round(inv_line.price_subtotal/res_currency_rate.rate * (-1), 2)
+ when inv.type = 'out_invoice'
+ then round(inv_line.price_subtotal/res_currency_rate.rate, 2)
+ end
+ when company.currency_id = inv.currency_id
+ then
+ case when inv.type = 'out_refund'
+ then inv_line.price_subtotal * (-1)
+ when inv.type = 'out_invoice'
+ then inv_line.price_subtotal
+ end
+ end) as amount_company_currency,
+ company.currency_id as company_currency_id
+
+ from account_invoice inv
+ left join account_invoice_line inv_line on inv_line.invoice_id=inv.id
+ left join (product_template pt
+ left join product_product pp on pp.product_tmpl_id = pt.id
+ )
+ on (inv_line.product_id = pt.id)
+ left join (res_partner_address inv_address
+ left join res_country inv_country on (inv_country.id = inv_address.country_id))
+ on (inv_address.id = inv.address_invoice_id)
+ left join res_partner prt on inv.partner_id = prt.id
+ left join report_intrastat_type intr on inv.intrastat_type_id = intr.id
+ left join res_currency_rate on (inv.currency_id = res_currency_rate.currency_id and inv.date_invoice = res_currency_rate.name)
+ left join res_company company on inv.company_id=company.id
+
+ where
+ inv.type in ('out_invoice', 'out_refund')
+ and inv.state in ('open', 'paid')
+ and inv_line.product_id is not null
+ and inv_line.price_subtotal != 0
+ and inv_country.intrastat = true
+ and pt.type = 'service'
+ and pt.exclude_from_intrastat is not true
+ and intr.type != 'other'
+ and company.id = %s
+ and inv.date_invoice >= %s
+ and inv.date_invoice <= %s
+
+ group by company.id, inv.date_invoice, inv.number, inv.currency_id, prt.vat, prt.name, inv.name, invoice_currency_rate, company_currency_id
+ '''
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+ company_id = str(user.company_id.id)
+ print "company_id =", company_id
+ dates = self.read(cr, uid, ids[0], ['start_date', 'end_date'], context=context)
+ start_date_str = dates['start_date']
+ end_date_str = dates['end_date']
+ print "START date", start_date_str
+ print "END date", end_date_str
+ cr.execute(sql, (company_id, start_date_str, end_date_str))
+ res_sql = cr.fetchall()
+ print "res_sql=", res_sql
+ line_obj = self.pool.get('report.intrastat.service.line')
+ for id, name, company_id, invoice_number, date_invoice, invoice_currency_id, partner_vat, partner_name, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
+ line_obj.create(cr, uid, {
+ 'parent_id': ids[0],
+ 'name': name,
+ 'invoice_number': invoice_number,
+ 'partner_vat': partner_vat,
+ 'partner_name': partner_name,
+ 'date_invoice': date_invoice,
+ 'amount_invoice_currency': amount_invoice_currency,
+ 'invoice_currency_id': invoice_currency_id,
+ 'amount_company_currency': amount_company_currency,
+ 'company_currency_id': company_currency_id,
+ }, context=context)
+ return None
+
+
+ def done(self, cr, uid, ids, context=None):
+ if len(ids) != 1:
+ raise osv.except_osv(_('Error :'), _('Hara kiri in generate_xml'))
+ self.write(cr, uid, ids[0], {'state': 'done'}, context=context)
+ return None
+
+ def back2draft(self, cr, uid, ids, context=None):
+ if len(ids) != 1:
+ raise osv.except_osv(_('Error :'), _('Hara kiri in generate_xml'))
+ self.write(cr, uid, ids[0], {'state': 'draft'}, context=context)
+ return None
+
+
+ def generate_xml(self, cr, uid, ids, context=None):
+ print "generate xml ids=", ids
+ import des_xsd
+ from lxml import etree
+ import base64
+ if len(ids) != 1:
+ raise osv.except_osv(_('Error :'), _('Hara kiri in generate_xml'))
+ dates = self.read(cr, uid, ids[0], ['start_date', 'end_date'], context=context)
+ start_date_str = dates['start_date']
+ end_date_str = dates['end_date']
+ start_date_datetime = datetime.strptime(start_date_str, '%Y-%m-%d')
+
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+
+ if not user.company_id.currency_id.code == 'EUR':
+ raise osv.except_osv(_('Error :'), _('The company currency must be "EUR", but is currently "%s".'%user.company_id.currency_id.code))
+
+ if not user.company_id.partner_id.vat:
+ raise osv.except_osv(_('Error :'), _('The VAT number is not set for the partner "%s".'%user.company_id.partner_id.name))
+ my_company_vat = user.company_id.partner_id.vat.replace(' ', '')
+
+ # Tech spec of XML export are available here :
+ # https://pro.douane.gouv.fr/download/downloadUrl.asp?file=PubliwebBO/fichiers/DES_DTIPlus.pdf
+ root = etree.Element('fichier_des')
+ decl = etree.SubElement(root, 'declaration_des')
+ num_des = etree.SubElement(decl, 'num_des')
+ num_des.text = datetime.strftime(start_date_datetime, '%Y%m')
+ num_tva = etree.SubElement(decl, 'num_tvaFr')
+ num_tva.text = my_company_vat
+ mois_des = etree.SubElement(decl, 'mois_des')
+ mois_des.text = datetime.strftime(start_date_datetime, '%m') # month 2 digits
+ an_des = etree.SubElement(decl, 'an_des')
+ an_des.text = datetime.strftime(start_date_datetime, '%Y')
+ lines = self.pool.get('report.intrastat.service').browse(cr, uid, context['active_ids'], context=context)
+ line = 0
+ total_value_cc = 0
+ # we now go through each service line
+ for sline in self.browse(cr, uid, ids[0], context=context).service_line_ids:
+ line += 1 # increment line number
+ ligne_des = etree.SubElement(decl, 'ligne_des')
+ numlin_des = etree.SubElement(ligne_des, 'numlin_des')
+ numlin_des.text = str(line)
+ valeur = etree.SubElement(ligne_des, 'valeur')
+ # We take amount_company_currency, to be sure we have amounts in EUR
+ value_cc = int(round(sline.amount_company_currency,0))
+ total_value_cc += value_cc
+ valeur.text= str(value_cc)
+ partner_des = etree.SubElement(ligne_des, 'partner_des')
+ try: partner_des.text = sline.partner_vat.replace(' ', '')
+ except: raise osv.except_osv(_('Error :'), _('Missing VAT number for partner "%s".'%sline.partner_name))
+ xml_string = etree.tostring(root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
+ print "xml_string", xml_string
+
+ # We now validate the XML file against the official XML Schema Definition
+ official_des_xml_schema = etree.XMLSchema(etree.fromstring(des_xsd.des_xsd))
+ try: official_des_xml_schema.assertValid(root)
+ except Exception, e: # if the validation of the XSD fails, we arrive here
+ logger = netsvc.Logger()
+ logger.notifyChannel('intrastat_service', netsvc.LOG_WARNING, "The XML file is invalid against the XSD")
+ logger.notifyChannel('intrastat_service', netsvc.LOG_WARNING, xml_string)
+ logger.notifyChannel('intrastat_service', netsvc.LOG_WARNING, e)
+ raise osv.except_osv(_('Error :'), _('The generated XML file is not valid against the official XML schema. The generated XML file and the full error have been written in the server logs. Here is the exact error, which may give you an idea of the cause of the problem : ' + str(e)))
+ #let's give a pretty name to the filename :
+ filename = datetime.strftime(start_date_datetime, '%Y-%m') + '_des.xml'
+ attach_name = 'DES ' + datetime.strftime(start_date_datetime, '%Y-%m')
+
+ # Attach the XML file to the intrastat_service object
+ attach_obj = self.pool.get('ir.attachment')
+ if not context:
+ context = {}
+ context.update({'default_res_id' : ids[0], 'default_res_model': 'report.intrastat.service'})
+ attach_id = attach_obj.create(cr, uid, {'name': attach_name, 'datas': base64.encodestring(xml_string), 'datas_fname': filename}, context=context)
+ return None
+
+
+report_intrastat_service()
+
+class report_intrastat_service_line(osv.osv):
+ _name = "report.intrastat.service.line"
+ _description = "Lines of intrastat service declaration"
+ _order = 'invoice_number'
+ _columns = {
+ 'parent_id': fields.many2one('report.intrastat.service', 'Intrastat service ref', ondelete='cascade', select=True),
+ 'name': fields.char('Invoice description', size=64, readonly=True),
+ 'invoice_number': fields.char('Invoice number', size=32, readonly=True, select=True),
+ 'partner_vat': fields.char('Customer VAT', size=32, readonly=True),
+ 'partner_name': fields.char('Customer name', size=128, readonly=True),
+ 'date_invoice' : fields.date('Invoice date', readonly=True),
+ 'amount_invoice_currency': fields.integer('Amount in invoice cur.', readonly=True),
+ 'invoice_currency_id': fields.many2one('res.currency', "Invoice currency", readonly=True),
+ 'amount_company_currency': fields.integer('Amount in company cur.', readonly=True),
+ 'company_currency_id': fields.many2one('res.currency', "Company currency", readonly=True),
+ }
+
+report_intrastat_service_line()
+
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
new file mode 100644
index 000000000..936c8494d
--- /dev/null
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+ report.intrastat.service.form
+ report.intrastat.service
+ form
+
+
+
+
+
+
+
+ report.intrastat.service.tree
+ report.intrastat.service
+ tree
+
+
+
+
+
+
+
+
+
+
+
+
+
+ report.intrastat.service.line.form
+ report.intrastat.service.line
+ form
+
+
+
+
+
+
+
+ report.intrastat.service.line.tree
+ report.intrastat.service.line
+ tree
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Intrastat Service
+ ir.actions.act_window
+ report.intrastat.service
+ form
+ tree,form
+
+
+
+
+
+
+
+
diff --git a/l10n_fr_intrastat_service/security/ir.model.access.csv b/l10n_fr_intrastat_service/security/ir.model.access.csv
new file mode 100644
index 000000000..1cfe33f35
--- /dev/null
+++ b/l10n_fr_intrastat_service/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_report_intrastat_service","report.intrastat.service","model_report_intrastat_service","account.group_account_manager",1,1,1,1
+"access_report_intrastat_service_line","report.intrastat.service.line","model_report_intrastat_service_line","account.group_account_manager",1,1,1,1
From 7c6cdad3b17af02efd7884c9aec64de45cf338fa Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Sun, 27 Mar 2011 23:09:44 +0200
Subject: [PATCH 002/142] Better performances : we now use multi= to compute
numbers of lines and total amount in a single function call.
---
.../intrastat_service.py | 29 +++++++------------
1 file changed, 11 insertions(+), 18 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 4347e4bf6..b806e0767 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -40,26 +40,19 @@ class report_intrastat_service(osv.osv):
_rec_name = "start_date"
_description = "Intrastat report for service"
-
- def _compute_num_lines(self, cr, uid, ids, name, arg, context=None):
- print "START _compute_num_lines"
+ def _compute_numbers(self, cr, uid, ids, name, arg, context=None):
+ print "START compute numbers ids=", ids
result = {}
for intrastat in self.browse(cr, uid, ids, context=context):
- result[intrastat.id] = 0
+ total_amount = 0.0
+ num_lines = 0
for line in intrastat.service_line_ids:
- result[intrastat.id] += 1
- print "_compute_num_lines res = ", result
+ total_amount += line.amount_company_currency
+ num_lines += 1
+ result[intrastat.id] = {'num_lines': num_lines, 'total_amount': total_amount}
+ print "_compute_numbers res = ", result
return result
- def _compute_total_amount(self, cr, uid, ids, name, arg, context=None):
- print "_compute_total_amount START ids=", ids
- result = {}
- for intrastat in self.browse(cr, uid, ids, context=context):
- result[intrastat.id] = 0.0
- for line in intrastat.service_line_ids:
- result[intrastat.id] += line.amount_company_currency
- print "_compute_total_amount res = ", result
- return result
def _compute_end_date(self, cr, uid, ids, name, arg, context=None):
print "_compute_end_date START ids=", ids
@@ -70,7 +63,7 @@ def _compute_end_date(self, cr, uid, ids, name, arg, context=None):
result[intrastat.id] = end_date_str
print "_compute_end_date res=", result
return result
-
+
def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
print "invalidation function CALLED !!!"
@@ -81,10 +74,10 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
'start_date': fields.date('Start date', required=True, states={'done':[('readonly',True)]}, help="Start date of the declaration. Must be the first day of a month."),
'end_date': fields.function(_compute_end_date, method=True, type='date', string='End date', store=True, help="End date for the declaration. Must be the last day of the month of the start date."),
'service_line_ids': fields.one2many('report.intrastat.service.line', 'parent_id', 'Report intrastat service lines', states={'done':[('readonly',True)]}),
- 'num_lines': fields.function(_compute_num_lines, method=True, type='integer', string='Number of lines', store={
+ 'num_lines': fields.function(_compute_numbers, method=True, type='integer', multi='numbers', string='Number of lines', store={
'report.intrastat.service.line': (_get_intrastat_from_service_line, ['parent_id'], 20),
}, help="Number of lines in this declaration."),
- 'total_amount': fields.function(_compute_total_amount, method=True, digits=(16,0), string='Total amount', store={
+ 'total_amount': fields.function(_compute_numbers, method=True, digits=(16,0), multi='numbers', string='Total amount', store={
'report.intrastat.service.line': (_get_intrastat_from_service_line, ['amount_company_currency', 'parent_id'], 20),
}, help="Total amount in company currency of the declaration."),
'state' : fields.selection([
From b8bc778ea0ebb5a3831f9b825ce5a2a4e1d059c0 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Sun, 27 Mar 2011 23:55:41 +0200
Subject: [PATCH 003/142] Add currency in view via a fields.related on
report_intrastat_service Check that company currency is EUR when generating
service lines. Do the rounding work when generating the service lines, not
when generating the XML. Remove unused code.
---
.../intrastat_service.py | 48 +++++++++----------
.../intrastat_service_view.xml | 4 +-
2 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index b806e0767..e81368219 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -23,9 +23,7 @@
##############################################################################
#TODO
-# Arrondis
-# Dépôt DES fait le .... sur pro douane
-# faire un multi sur les 2 champs calculés de report_intrastat_service
+# Dépôt DES fait le .... sur pro douane, ac attachement de l'Accusé de réception ?
from osv import osv, fields
from tools.sql import drop_view_if_exists
@@ -80,6 +78,7 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
'total_amount': fields.function(_compute_numbers, method=True, digits=(16,0), multi='numbers', string='Total amount', store={
'report.intrastat.service.line': (_get_intrastat_from_service_line, ['amount_company_currency', 'parent_id'], 20),
}, help="Total amount in company currency of the declaration."),
+ 'currency_id': fields.related('company_id', 'currency_id', readonly=True, type='many2one', relation='res.currency', string='Currency'),
'state' : fields.selection([
('draft','Draft'),
('done','Done'),
@@ -116,15 +115,17 @@ def _check_start_date(self, cr, uid, ids, context=None):
def generate_service_lines(self, cr, uid, ids, context=None):
print "generate lines, ids=", ids
-#TODO delete service lines
if len(ids) != 1:
raise osv.except_osv(_('Error :'), _('Hara kiri in generate_service_lines'))
- # Get current lines and delete them
+ intrastat = self.browse(cr, uid, ids[0], context=context)
+ # Check that the company currency is EUR
+ if not intrastat.currency_id.code == 'EUR':
+ raise osv.except_osv(_('Error :'), _('The company currency must be "EUR", but is currently "%s".'%intrastat.currency_id.code))
+ # Get current service lines and delete them
line_remove = self.read(cr, uid, ids[0], ['service_line_ids'], context=context)
print "line_remove", line_remove
if line_remove['service_line_ids']:
self.pool.get('report.intrastat.service.line').unlink(cr, uid, line_remove['service_line_ids'], context=context)
- #TODO : check on company
sql = '''
select
min(inv_line.id) as id,
@@ -190,16 +191,17 @@ def generate_service_lines(self, cr, uid, ids, context=None):
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
company_id = str(user.company_id.id)
print "company_id =", company_id
- dates = self.read(cr, uid, ids[0], ['start_date', 'end_date'], context=context)
- start_date_str = dates['start_date']
- end_date_str = dates['end_date']
- print "START date", start_date_str
- print "END date", end_date_str
+ start_date_str = intrastat.start_date
+ end_date_str = intrastat.end_date
+ # Execute the big SQL query to get all service lines
cr.execute(sql, (company_id, start_date_str, end_date_str))
res_sql = cr.fetchall()
print "res_sql=", res_sql
line_obj = self.pool.get('report.intrastat.service.line')
for id, name, company_id, invoice_number, date_invoice, invoice_currency_id, partner_vat, partner_name, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
+ print "amount_invoice_currency =", amount_invoice_currency
+ print "amount_company_currency =", amount_company_currency
+ # Store the service lines
line_obj.create(cr, uid, {
'parent_id': ids[0],
'name': name,
@@ -207,9 +209,9 @@ def generate_service_lines(self, cr, uid, ids, context=None):
'partner_vat': partner_vat,
'partner_name': partner_name,
'date_invoice': date_invoice,
- 'amount_invoice_currency': amount_invoice_currency,
+ 'amount_invoice_currency': int(round(amount_invoice_currency, 0)),
'invoice_currency_id': invoice_currency_id,
- 'amount_company_currency': amount_company_currency,
+ 'amount_company_currency': int(round(amount_company_currency, 0)),
'company_currency_id': company_currency_id,
}, context=context)
return None
@@ -234,16 +236,16 @@ def generate_xml(self, cr, uid, ids, context=None):
from lxml import etree
import base64
if len(ids) != 1:
- raise osv.except_osv(_('Error :'), _('Hara kiri in generate_xml'))
- dates = self.read(cr, uid, ids[0], ['start_date', 'end_date'], context=context)
- start_date_str = dates['start_date']
- end_date_str = dates['end_date']
+ raise osv.except_osv(_('Error :'), 'Hara kiri in generate_xml')
+ intrastat = self.browse(cr, uid, ids[0], context=context)
+ start_date_str = intrastat.start_date
+ end_date_str = intrastat.end_date
start_date_datetime = datetime.strptime(start_date_str, '%Y-%m-%d')
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
- if not user.company_id.currency_id.code == 'EUR':
- raise osv.except_osv(_('Error :'), _('The company currency must be "EUR", but is currently "%s".'%user.company_id.currency_id.code))
+ if not intrastat.currency_id.code == 'EUR':
+ raise osv.except_osv(_('Error :'), _('The company currency must be "EUR", but is currently "%s".'%intrastat.currency_id.code))
if not user.company_id.partner_id.vat:
raise osv.except_osv(_('Error :'), _('The VAT number is not set for the partner "%s".'%user.company_id.partner_id.name))
@@ -261,20 +263,16 @@ def generate_xml(self, cr, uid, ids, context=None):
mois_des.text = datetime.strftime(start_date_datetime, '%m') # month 2 digits
an_des = etree.SubElement(decl, 'an_des')
an_des.text = datetime.strftime(start_date_datetime, '%Y')
- lines = self.pool.get('report.intrastat.service').browse(cr, uid, context['active_ids'], context=context)
line = 0
- total_value_cc = 0
# we now go through each service line
- for sline in self.browse(cr, uid, ids[0], context=context).service_line_ids:
+ for sline in intrastat.service_line_ids:
line += 1 # increment line number
ligne_des = etree.SubElement(decl, 'ligne_des')
numlin_des = etree.SubElement(ligne_des, 'numlin_des')
numlin_des.text = str(line)
valeur = etree.SubElement(ligne_des, 'valeur')
# We take amount_company_currency, to be sure we have amounts in EUR
- value_cc = int(round(sline.amount_company_currency,0))
- total_value_cc += value_cc
- valeur.text= str(value_cc)
+ valeur.text = str(sline.amount_company_currency)
partner_des = etree.SubElement(ligne_des, 'partner_des')
try: partner_des.text = sline.partner_vat.replace(' ', '')
except: raise osv.except_osv(_('Error :'), _('Missing VAT number for partner "%s".'%sline.partner_name))
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 936c8494d..acc6790d9 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -9,11 +9,12 @@
form
From f59b61d8d2252f85ace05ae5339dd468ae5a30d7 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Mon, 28 Mar 2011 01:50:57 +0200
Subject: [PATCH 004/142] View style update
---
l10n_fr_intrastat_service/intrastat_service_view.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index acc6790d9..e5f80b492 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -20,10 +20,10 @@
-
-
+
+
-
+
From f1473615b1b4437095c3793e4d41804d6c3e27f9 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Fri, 1 Apr 2011 00:36:23 +0200
Subject: [PATCH 005/142] Started work on l10n_fr_intrastat_product
---
l10n_fr_intrastat_service/__init__.py | 1 -
l10n_fr_intrastat_service/intrastat_service.py | 1 +
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_fr_intrastat_service/__init__.py b/l10n_fr_intrastat_service/__init__.py
index b396785c9..3f221854d 100644
--- a/l10n_fr_intrastat_service/__init__.py
+++ b/l10n_fr_intrastat_service/__init__.py
@@ -20,4 +20,3 @@
##############################################################################
import intrastat_service
-import wizard
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index e81368219..ed9682631 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -24,6 +24,7 @@
#TODO
# Dépôt DES fait le .... sur pro douane, ac attachement de l'Accusé de réception ?
+# revoir champ calculé end_date
from osv import osv, fields
from tools.sql import drop_view_if_exists
From 3bcfc2733ea1db3eb093d569d47d121becf5aa52 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Fri, 1 Apr 2011 23:24:17 +0200
Subject: [PATCH 006/142] First alpha version of the new module
"l10n_fr_intrastat_product". First factorisation of common functionnal code
between the product and service module (intrastat_common.py) - to be
continued. Some code clean-up in the service module.
---
.../intrastat_service.py | 71 ++++++-------------
.../intrastat_service_view.xml | 7 +-
2 files changed, 25 insertions(+), 53 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index ed9682631..41c8900f0 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -27,7 +27,6 @@
# revoir champ calculé end_date
from osv import osv, fields
-from tools.sql import drop_view_if_exists
import netsvc
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
@@ -37,42 +36,29 @@ class report_intrastat_service(osv.osv):
_name = "report.intrastat.service"
_order = "start_date"
_rec_name = "start_date"
- _description = "Intrastat report for service"
+ _description = "Intrastat report for services"
def _compute_numbers(self, cr, uid, ids, name, arg, context=None):
- print "START compute numbers ids=", ids
- result = {}
- for intrastat in self.browse(cr, uid, ids, context=context):
- total_amount = 0.0
- num_lines = 0
- for line in intrastat.service_line_ids:
- total_amount += line.amount_company_currency
- num_lines += 1
- result[intrastat.id] = {'num_lines': num_lines, 'total_amount': total_amount}
- print "_compute_numbers res = ", result
- return result
+ print "SERVICE _compute numbers start ids=", ids
+ return self.pool.get('report.intrastat.common')._compute_numbers(cr, uid, ids, self, context=context)
def _compute_end_date(self, cr, uid, ids, name, arg, context=None):
- print "_compute_end_date START ids=", ids
- result = {}
- for intrastat in self.browse(cr, uid, ids, context=context):
- start_date_datetime = datetime.strptime(intrastat.start_date, '%Y-%m-%d')
- end_date_str = datetime.strftime(start_date_datetime + relativedelta(day=31), '%Y-%m-%d')
- result[intrastat.id] = end_date_str
- print "_compute_end_date res=", result
- return result
+ print "SERVICE _compute_end_date START ids=", ids
+ return self.pool.get('report.intrastat.common')._compute_end_date(cr, uid, ids, self, context=context)
def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
print "invalidation function CALLED !!!"
- return self.pool.get('report.intrastat.service').search(cr, uid, [('service_line_ids', 'in', ids)], context=context)
+ return self.pool.get('report.intrastat.service').search(cr, uid, [('intrastat_line_ids', 'in', ids)], context=context)
_columns = {
'company_id': fields.many2one('res.company', 'Company', required=True, states={'done':[('readonly',True)]}, help="Related company."),
'start_date': fields.date('Start date', required=True, states={'done':[('readonly',True)]}, help="Start date of the declaration. Must be the first day of a month."),
- 'end_date': fields.function(_compute_end_date, method=True, type='date', string='End date', store=True, help="End date for the declaration. Must be the last day of the month of the start date."),
- 'service_line_ids': fields.one2many('report.intrastat.service.line', 'parent_id', 'Report intrastat service lines', states={'done':[('readonly',True)]}),
+ 'end_date': fields.function(_compute_end_date, method=True, type='date', string='End date', store={
+ 'report.intrastat.service': (lambda self, cr, uid, ids, c={}: ids, ['start_date'], 20)
+ }, help="End date for the declaration. Must be the last day of the month of the start date."),
+ 'intrastat_line_ids': fields.one2many('report.intrastat.service.line', 'parent_id', 'Report intrastat service lines', states={'done':[('readonly',True)]}),
'num_lines': fields.function(_compute_numbers, method=True, type='integer', multi='numbers', string='Number of lines', store={
'report.intrastat.service.line': (_get_intrastat_from_service_line, ['parent_id'], 20),
}, help="Number of lines in this declaration."),
@@ -84,7 +70,7 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
('draft','Draft'),
('done','Done'),
], 'State', select=True, readonly=True, help="State of the declaration. When the state is set to 'Done', the parameters become read-only."),
- 'notes' : fields.text('Notes', help="You can add some comments here if you want.")
+ 'notes' : fields.text('Notes', help="You can add some comments here if you want."),
}
_defaults = {
@@ -98,13 +84,7 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
#TODO : add check on date of children lines ?
def _check_start_date(self, cr, uid, ids, context=None):
- '''Check that the start date if the first day of the month'''
- for cur_id in ids:
- date_to_check = self.read(cr, uid, cur_id, ['start_date'], context=context)['start_date']
- datetime_to_check = datetime.strptime(date_to_check, '%Y-%m-%d')
- if datetime_to_check.day != 1:
- return False
- return True
+ return self.pool.get('report.intrastat.common')._check_start_date(cr, uid, ids, self, context=context)
_constraints = [
(_check_start_date, "Start date must be the first day of a month", ['start_date']),
@@ -123,10 +103,10 @@ def generate_service_lines(self, cr, uid, ids, context=None):
if not intrastat.currency_id.code == 'EUR':
raise osv.except_osv(_('Error :'), _('The company currency must be "EUR", but is currently "%s".'%intrastat.currency_id.code))
# Get current service lines and delete them
- line_remove = self.read(cr, uid, ids[0], ['service_line_ids'], context=context)
+ line_remove = self.read(cr, uid, ids[0], ['intrastat_line_ids'], context=context)
print "line_remove", line_remove
- if line_remove['service_line_ids']:
- self.pool.get('report.intrastat.service.line').unlink(cr, uid, line_remove['service_line_ids'], context=context)
+ if line_remove['intrastat_line_ids']:
+ self.pool.get('report.intrastat.service.line').unlink(cr, uid, line_remove['intrastat_line_ids'], context=context)
sql = '''
select
min(inv_line.id) as id,
@@ -189,17 +169,12 @@ def generate_service_lines(self, cr, uid, ids, context=None):
group by company.id, inv.date_invoice, inv.number, inv.currency_id, prt.vat, prt.name, inv.name, invoice_currency_rate, company_currency_id
'''
- user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
- company_id = str(user.company_id.id)
- print "company_id =", company_id
- start_date_str = intrastat.start_date
- end_date_str = intrastat.end_date
# Execute the big SQL query to get all service lines
- cr.execute(sql, (company_id, start_date_str, end_date_str))
+ cr.execute(sql, (intrastat.company_id.id, intrastat.start_date, intrastat.end_date))
res_sql = cr.fetchall()
print "res_sql=", res_sql
line_obj = self.pool.get('report.intrastat.service.line')
- for id, name, company_id, invoice_number, date_invoice, invoice_currency_id, partner_vat, partner_name, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
+ for id, company_id, name, invoice_number, date_invoice, invoice_currency_id, partner_vat, partner_name, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
print "amount_invoice_currency =", amount_invoice_currency
print "amount_company_currency =", amount_company_currency
# Store the service lines
@@ -243,14 +218,12 @@ def generate_xml(self, cr, uid, ids, context=None):
end_date_str = intrastat.end_date
start_date_datetime = datetime.strptime(start_date_str, '%Y-%m-%d')
- user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
-
if not intrastat.currency_id.code == 'EUR':
raise osv.except_osv(_('Error :'), _('The company currency must be "EUR", but is currently "%s".'%intrastat.currency_id.code))
- if not user.company_id.partner_id.vat:
- raise osv.except_osv(_('Error :'), _('The VAT number is not set for the partner "%s".'%user.company_id.partner_id.name))
- my_company_vat = user.company_id.partner_id.vat.replace(' ', '')
+ if not intrastat.company_id.partner_id.vat:
+ raise osv.except_osv(_('Error :'), _('The VAT number is not set for the partner "%s".'%intrastat.company_id.partner_id.name))
+ my_company_vat = intrastat.company_id.partner_id.vat.replace(' ', '')
# Tech spec of XML export are available here :
# https://pro.douane.gouv.fr/download/downloadUrl.asp?file=PubliwebBO/fichiers/DES_DTIPlus.pdf
@@ -266,7 +239,7 @@ def generate_xml(self, cr, uid, ids, context=None):
an_des.text = datetime.strftime(start_date_datetime, '%Y')
line = 0
# we now go through each service line
- for sline in intrastat.service_line_ids:
+ for sline in intrastat.intrastat_line_ids:
line += 1 # increment line number
ligne_des = etree.SubElement(decl, 'ligne_des')
numlin_des = etree.SubElement(ligne_des, 'numlin_des')
@@ -306,7 +279,7 @@ def generate_xml(self, cr, uid, ids, context=None):
class report_intrastat_service_line(osv.osv):
_name = "report.intrastat.service.line"
- _description = "Lines of intrastat service declaration"
+ _description = "Lines of intrastat service declaration (DES)"
_order = 'invoice_number'
_columns = {
'parent_id': fields.many2one('report.intrastat.service', 'Intrastat service ref', ondelete='cascade', select=True),
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index e5f80b492..073177c74 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -22,7 +22,7 @@
-
+
@@ -82,8 +82,8 @@
-
+
@@ -92,7 +92,6 @@
Intrastat Service
- ir.actions.act_windowreport.intrastat.serviceformtree,form
@@ -100,7 +99,7 @@
-
+
From c25730b1aca7b9ceefc594c9624e0c6120f282ae Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Sun, 3 Apr 2011 17:37:07 +0200
Subject: [PATCH 007/142] More work on full DEB+DES implementation. Added full
support for "transport type" and partial support for the department. More
factorisation between product & service module. Add date_done field. More
checks.
---
l10n_fr_intrastat_service/__init__.py | 3 +-
l10n_fr_intrastat_service/__terp__.py | 10 +++-
.../intrastat_service.py | 54 ++++---------------
.../intrastat_service_view.xml | 10 +++-
4 files changed, 30 insertions(+), 47 deletions(-)
diff --git a/l10n_fr_intrastat_service/__init__.py b/l10n_fr_intrastat_service/__init__.py
index 3f221854d..0fa733f6e 100644
--- a/l10n_fr_intrastat_service/__init__.py
+++ b/l10n_fr_intrastat_service/__init__.py
@@ -1,8 +1,9 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
-# Report intrastat service module for OpenERP
+# Report intrastat service module for OpenERP (DES)
# Copyright (C) 2010-2011 Akretion (http://www.akretion.com). All Rights Reserved
+# @author Alexis de Lattre
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
diff --git a/l10n_fr_intrastat_service/__terp__.py b/l10n_fr_intrastat_service/__terp__.py
index b4c3e92c2..5fc817832 100644
--- a/l10n_fr_intrastat_service/__terp__.py
+++ b/l10n_fr_intrastat_service/__terp__.py
@@ -1,8 +1,9 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
-# Report intrastat service module for OpenERP
+# Report intrastat service module for OpenERP (DES)
# Copyright (C) 2010-2011 Akretion (http://www.akretion.com). All Rights Reserved
+# @author Alexis de Lattre
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -26,7 +27,12 @@
'category': 'Localisation/Report Intrastat',
'license': 'AGPL-3',
'description': """This module adds support for the "Déclaration Européenne des Services" (DES).
-Please contact Alexis de Lattre from Akretion for any help or question.
+
+The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France's Customs administration if they sell services to other EU companies.
+
+More information about the DES is available on this official web page : http://www.douane.gouv.fr/page.asp?id=3846
+
+Please contact Alexis de Lattre from Akretion for any help or question about this module.
""",
'author': 'Akretion',
'website': 'http://www.akretion.com',
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 41c8900f0..530afaade 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -1,11 +1,9 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
-# Report intrastat service module for OpenERP
-# The service declaration (DES i.e. Déclaration Européenne de Services)
-# was in introduced in France on January 1st 2010
+# Report intrastat service module for OpenERP (DES)
# Copyright (C) 2010-2011 Akretion (http://www.akretion.com/). All rights reserved.
-# Code written by Alexis de Lattre
+# @author Alexis de Lattre
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -22,12 +20,8 @@
#
##############################################################################
-#TODO
-# Dépôt DES fait le .... sur pro douane, ac attachement de l'Accusé de réception ?
-# revoir champ calculé end_date
from osv import osv, fields
-import netsvc
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
from tools.translate import _
@@ -70,6 +64,7 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
('draft','Draft'),
('done','Done'),
], 'State', select=True, readonly=True, help="State of the declaration. When the state is set to 'Done', the parameters become read-only."),
+ 'date_done' : fields.date('Date done', readonly=True, help="Last date when the intrastat declaration was converted to 'Done' state."),
'notes' : fields.text('Notes', help="You can add some comments here if you want."),
}
@@ -96,12 +91,8 @@ def _check_start_date(self, cr, uid, ids, context=None):
def generate_service_lines(self, cr, uid, ids, context=None):
print "generate lines, ids=", ids
- if len(ids) != 1:
- raise osv.except_osv(_('Error :'), _('Hara kiri in generate_service_lines'))
intrastat = self.browse(cr, uid, ids[0], context=context)
- # Check that the company currency is EUR
- if not intrastat.currency_id.code == 'EUR':
- raise osv.except_osv(_('Error :'), _('The company currency must be "EUR", but is currently "%s".'%intrastat.currency_id.code))
+ self.pool.get('report.intrastat.common')._check_generate_lines(cr, uid, ids, intrastat, context=context)
# Get current service lines and delete them
line_remove = self.read(cr, uid, ids[0], ['intrastat_line_ids'], context=context)
print "line_remove", line_remove
@@ -194,14 +185,12 @@ def generate_service_lines(self, cr, uid, ids, context=None):
def done(self, cr, uid, ids, context=None):
- if len(ids) != 1:
- raise osv.except_osv(_('Error :'), _('Hara kiri in generate_xml'))
- self.write(cr, uid, ids[0], {'state': 'done'}, context=context)
+ if len(ids) != 1: raise osv.except_osv(_('Error :'), 'Hara kiri in done')
+ self.write(cr, uid, ids[0], {'state': 'done', 'date_done': datetime.strftime(datetime.today(), '%Y-%m-%d')}, context=context)
return None
def back2draft(self, cr, uid, ids, context=None):
- if len(ids) != 1:
- raise osv.except_osv(_('Error :'), _('Hara kiri in generate_xml'))
+ if len(ids) != 1: raise osv.except_osv(_('Error :'), 'Hara kiri in back2draft')
self.write(cr, uid, ids[0], {'state': 'draft'}, context=context)
return None
@@ -210,19 +199,13 @@ def generate_xml(self, cr, uid, ids, context=None):
print "generate xml ids=", ids
import des_xsd
from lxml import etree
- import base64
- if len(ids) != 1:
- raise osv.except_osv(_('Error :'), 'Hara kiri in generate_xml')
intrastat = self.browse(cr, uid, ids[0], context=context)
start_date_str = intrastat.start_date
end_date_str = intrastat.end_date
start_date_datetime = datetime.strptime(start_date_str, '%Y-%m-%d')
- if not intrastat.currency_id.code == 'EUR':
- raise osv.except_osv(_('Error :'), _('The company currency must be "EUR", but is currently "%s".'%intrastat.currency_id.code))
+ self.pool.get('report.intrastat.common')._check_generate_xml(cr, uid, ids, intrastat, context=context)
- if not intrastat.company_id.partner_id.vat:
- raise osv.except_osv(_('Error :'), _('The VAT number is not set for the partner "%s".'%intrastat.company_id.partner_id.name))
my_company_vat = intrastat.company_id.partner_id.vat.replace(' ', '')
# Tech spec of XML export are available here :
@@ -254,24 +237,9 @@ def generate_xml(self, cr, uid, ids, context=None):
print "xml_string", xml_string
# We now validate the XML file against the official XML Schema Definition
- official_des_xml_schema = etree.XMLSchema(etree.fromstring(des_xsd.des_xsd))
- try: official_des_xml_schema.assertValid(root)
- except Exception, e: # if the validation of the XSD fails, we arrive here
- logger = netsvc.Logger()
- logger.notifyChannel('intrastat_service', netsvc.LOG_WARNING, "The XML file is invalid against the XSD")
- logger.notifyChannel('intrastat_service', netsvc.LOG_WARNING, xml_string)
- logger.notifyChannel('intrastat_service', netsvc.LOG_WARNING, e)
- raise osv.except_osv(_('Error :'), _('The generated XML file is not valid against the official XML schema. The generated XML file and the full error have been written in the server logs. Here is the exact error, which may give you an idea of the cause of the problem : ' + str(e)))
- #let's give a pretty name to the filename :
- filename = datetime.strftime(start_date_datetime, '%Y-%m') + '_des.xml'
- attach_name = 'DES ' + datetime.strftime(start_date_datetime, '%Y-%m')
-
- # Attach the XML file to the intrastat_service object
- attach_obj = self.pool.get('ir.attachment')
- if not context:
- context = {}
- context.update({'default_res_id' : ids[0], 'default_res_model': 'report.intrastat.service'})
- attach_id = attach_obj.create(cr, uid, {'name': attach_name, 'datas': base64.encodestring(xml_string), 'datas_fname': filename}, context=context)
+ self.pool.get('report.intrastat.common')._check_xml_schema(cr, uid, root, xml_string, des_xsd.des_xsd, context=context)
+ # Attach the XML file
+ self.pool.get('report.intrastat.common')._attach_xml_file(cr, uid, ids, self, xml_string, start_date_datetime, 'des', context=context)
return None
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 073177c74..16e500b76 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -1,4 +1,11 @@
+
+
+
@@ -23,8 +30,9 @@
-
+
+
From 2d6709099a67831ede4f8d8ee4a766febb887247 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Mon, 4 Apr 2011 11:21:00 +0200
Subject: [PATCH 008/142] Converted some fields on
report_intrastat_product/service to many2one (fields that are not in the
official declaration or never subject to change) Add copy of department from
warehouse to invoice. Import DEB don't have the partner_vat field Department
can be 99 for Monaco. Copy tranport and department from
report_intrastat_product in XML file First attempt at adapting the display of
fields depending on the type of declaration.
---
.../intrastat_service.py | 28 ++++++++-----------
.../intrastat_service_view.xml | 11 ++++----
2 files changed, 17 insertions(+), 22 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 530afaade..6a82f7d98 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -102,12 +102,10 @@ def generate_service_lines(self, cr, uid, ids, context=None):
select
min(inv_line.id) as id,
company.id,
- inv.name as name,
- inv.number as invoice_number,
- inv.date_invoice,
+ inv.id as invoice_id,
inv.currency_id as invoice_currency_id,
prt.vat as partner_vat,
- prt.name as partner_name,
+ inv.partner_id as partner_id,
res_currency_rate.rate as invoice_currency_rate,
sum(case when inv.type = 'out_refund'
then inv_line.price_subtotal * (-1)
@@ -158,24 +156,22 @@ def generate_service_lines(self, cr, uid, ids, context=None):
and inv.date_invoice >= %s
and inv.date_invoice <= %s
- group by company.id, inv.date_invoice, inv.number, inv.currency_id, prt.vat, prt.name, inv.name, invoice_currency_rate, company_currency_id
+ group by company.id, inv.currency_id, prt.vat, inv.partner_id, inv.id, invoice_currency_rate, company_currency_id
'''
# Execute the big SQL query to get all service lines
cr.execute(sql, (intrastat.company_id.id, intrastat.start_date, intrastat.end_date))
res_sql = cr.fetchall()
print "res_sql=", res_sql
line_obj = self.pool.get('report.intrastat.service.line')
- for id, company_id, name, invoice_number, date_invoice, invoice_currency_id, partner_vat, partner_name, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
+ for id, company_id, invoice_id, invoice_currency_id, partner_vat, partner_id, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
print "amount_invoice_currency =", amount_invoice_currency
print "amount_company_currency =", amount_company_currency
# Store the service lines
line_obj.create(cr, uid, {
'parent_id': ids[0],
- 'name': name,
- 'invoice_number': invoice_number,
+ 'invoice_id': invoice_id,
'partner_vat': partner_vat,
- 'partner_name': partner_name,
- 'date_invoice': date_invoice,
+ 'partner_id': partner_id,
'amount_invoice_currency': int(round(amount_invoice_currency, 0)),
'invoice_currency_id': invoice_currency_id,
'amount_company_currency': int(round(amount_company_currency, 0)),
@@ -232,7 +228,7 @@ def generate_xml(self, cr, uid, ids, context=None):
valeur.text = str(sline.amount_company_currency)
partner_des = etree.SubElement(ligne_des, 'partner_des')
try: partner_des.text = sline.partner_vat.replace(' ', '')
- except: raise osv.except_osv(_('Error :'), _('Missing VAT number for partner "%s".'%sline.partner_name))
+ except: raise osv.except_osv(_('Error :'), _('Missing VAT number for partner "%s".'%sline.partner_id.name))
xml_string = etree.tostring(root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
print "xml_string", xml_string
@@ -248,14 +244,14 @@ def generate_xml(self, cr, uid, ids, context=None):
class report_intrastat_service_line(osv.osv):
_name = "report.intrastat.service.line"
_description = "Lines of intrastat service declaration (DES)"
- _order = 'invoice_number'
+ _rec_name = "partner_vat"
+ _order = 'invoice_id'
_columns = {
'parent_id': fields.many2one('report.intrastat.service', 'Intrastat service ref', ondelete='cascade', select=True),
- 'name': fields.char('Invoice description', size=64, readonly=True),
- 'invoice_number': fields.char('Invoice number', size=32, readonly=True, select=True),
+ 'invoice_id': fields.many2one('account.invoice', 'Invoice ref', readonly=True),
'partner_vat': fields.char('Customer VAT', size=32, readonly=True),
- 'partner_name': fields.char('Customer name', size=128, readonly=True),
- 'date_invoice' : fields.date('Invoice date', readonly=True),
+ 'partner_id': fields.many2one('res.partner', 'Partner name', readonly=True),
+ 'date_invoice' : fields.related('invoice_id', 'date_invoice', type='date', relation='account.invoice', string='Invoice date', readonly=True),
'amount_invoice_currency': fields.integer('Amount in invoice cur.', readonly=True),
'invoice_currency_id': fields.many2one('res.currency', "Invoice currency", readonly=True),
'amount_company_currency': fields.integer('Amount in company cur.', readonly=True),
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 16e500b76..822fd7939 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -64,15 +64,14 @@
form
@@ -89,8 +88,8 @@
-
-
+
+
From a34082b200befa839d88dd51326c8173a1033501 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Tue, 5 Apr 2011 00:57:21 +0200
Subject: [PATCH 009/142] Complete change of design for intrastat_type ! Now
that report_intrastat_product/service object is stored in database, we don't
need the legal_intrastat state on invoices any more, because we will be able
to create entry lines for DEB for a repair of equipment under warranty
without using a legal_intrastat. Report_intrastat_type is now only required
for DEB -> object moved to module l10n_fr_intrastat_product. For DEB, the
button "regenerate lines" only regenerate DEB lines related to invoices.
Renamed intrastat base module, because it doesn't have France-specific parameters any more.
Add demo data.
---
l10n_fr_intrastat_service/__terp__.py | 2 +-
l10n_fr_intrastat_service/intrastat_service.py | 9 +++------
l10n_fr_intrastat_service/intrastat_service_view.xml | 2 +-
3 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/l10n_fr_intrastat_service/__terp__.py b/l10n_fr_intrastat_service/__terp__.py
index 5fc817832..98f683254 100644
--- a/l10n_fr_intrastat_service/__terp__.py
+++ b/l10n_fr_intrastat_service/__terp__.py
@@ -36,7 +36,7 @@
""",
'author': 'Akretion',
'website': 'http://www.akretion.com',
- 'depends': ['l10n_fr_intrastat_base'],
+ 'depends': ['intrastat_base'],
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 6a82f7d98..63d26fe50 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -43,7 +43,7 @@ def _compute_end_date(self, cr, uid, ids, name, arg, context=None):
def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
- print "invalidation function CALLED !!!"
+ print "invalidation function CALLED !"
return self.pool.get('report.intrastat.service').search(cr, uid, [('intrastat_line_ids', 'in', ids)], context=context)
_columns = {
@@ -92,12 +92,12 @@ def _check_start_date(self, cr, uid, ids, context=None):
def generate_service_lines(self, cr, uid, ids, context=None):
print "generate lines, ids=", ids
intrastat = self.browse(cr, uid, ids[0], context=context)
+ line_obj = self.pool.get('report.intrastat.service.line')
self.pool.get('report.intrastat.common')._check_generate_lines(cr, uid, ids, intrastat, context=context)
# Get current service lines and delete them
line_remove = self.read(cr, uid, ids[0], ['intrastat_line_ids'], context=context)
- print "line_remove", line_remove
if line_remove['intrastat_line_ids']:
- self.pool.get('report.intrastat.service.line').unlink(cr, uid, line_remove['intrastat_line_ids'], context=context)
+ line_obj.unlink(cr, uid, line_remove['intrastat_line_ids'], context=context)
sql = '''
select
min(inv_line.id) as id,
@@ -139,7 +139,6 @@ def generate_service_lines(self, cr, uid, ids, context=None):
left join res_country inv_country on (inv_country.id = inv_address.country_id))
on (inv_address.id = inv.address_invoice_id)
left join res_partner prt on inv.partner_id = prt.id
- left join report_intrastat_type intr on inv.intrastat_type_id = intr.id
left join res_currency_rate on (inv.currency_id = res_currency_rate.currency_id and inv.date_invoice = res_currency_rate.name)
left join res_company company on inv.company_id=company.id
@@ -151,7 +150,6 @@ def generate_service_lines(self, cr, uid, ids, context=None):
and inv_country.intrastat = true
and pt.type = 'service'
and pt.exclude_from_intrastat is not true
- and intr.type != 'other'
and company.id = %s
and inv.date_invoice >= %s
and inv.date_invoice <= %s
@@ -162,7 +160,6 @@ def generate_service_lines(self, cr, uid, ids, context=None):
cr.execute(sql, (intrastat.company_id.id, intrastat.start_date, intrastat.end_date))
res_sql = cr.fetchall()
print "res_sql=", res_sql
- line_obj = self.pool.get('report.intrastat.service.line')
for id, company_id, invoice_id, invoice_currency_id, partner_vat, partner_id, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
print "amount_invoice_currency =", amount_invoice_currency
print "amount_company_currency =", amount_company_currency
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 822fd7939..02b5268dd 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -106,7 +106,7 @@
-
+
From f126716dac37ae69ead2b4537f8f960568cdc36b Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Wed, 6 Apr 2011 01:32:39 +0200
Subject: [PATCH 010/142] Renamed some fields Now manages the specifications of
the different procedure_code, for example some info don't need to be declared
for some procedure codes. Ability to enter DEB lines manually Stat value
doesn't exist any more Tree vue of DEB lines is now identical to Cerfa
---
l10n_fr_intrastat_service/intrastat_service_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 02b5268dd..24130a08b 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -46,7 +46,7 @@
report.intrastat.servicetree
-
+
From fecb920f3a15096068d20507dab044ea655301d4 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Wed, 6 Apr 2011 10:44:07 +0200
Subject: [PATCH 011/142] "Date done" converted to date + time. Re-order fields
in intrastat_service view
---
l10n_fr_intrastat_service/intrastat_service.py | 4 ++--
l10n_fr_intrastat_service/intrastat_service_view.xml | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 63d26fe50..88cf57dec 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -64,7 +64,7 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
('draft','Draft'),
('done','Done'),
], 'State', select=True, readonly=True, help="State of the declaration. When the state is set to 'Done', the parameters become read-only."),
- 'date_done' : fields.date('Date done', readonly=True, help="Last date when the intrastat declaration was converted to 'Done' state."),
+ 'date_done' : fields.datetime('Date done', readonly=True, help="Last date when the intrastat declaration was converted to 'Done' state."),
'notes' : fields.text('Notes', help="You can add some comments here if you want."),
}
@@ -179,7 +179,7 @@ def generate_service_lines(self, cr, uid, ids, context=None):
def done(self, cr, uid, ids, context=None):
if len(ids) != 1: raise osv.except_osv(_('Error :'), 'Hara kiri in done')
- self.write(cr, uid, ids[0], {'state': 'done', 'date_done': datetime.strftime(datetime.today(), '%Y-%m-%d')}, context=context)
+ self.write(cr, uid, ids[0], {'state': 'done', 'date_done': datetime.strftime(datetime.today(), '%Y-%m-%d %H:%M:%S')}, context=context)
return None
def back2draft(self, cr, uid, ids, context=None):
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 24130a08b..c5748d20d 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -65,12 +65,12 @@
@@ -86,10 +86,10 @@
-
-
+
+
From fede3b5c3128cea6bf43d690031cb458b8427cd8 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Thu, 7 Apr 2011 12:03:25 +0200
Subject: [PATCH 012/142] Removed from prints (not all yet)
---
l10n_fr_intrastat_service/intrastat_service.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 88cf57dec..342f0f4b5 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -33,17 +33,14 @@ class report_intrastat_service(osv.osv):
_description = "Intrastat report for services"
def _compute_numbers(self, cr, uid, ids, name, arg, context=None):
- print "SERVICE _compute numbers start ids=", ids
return self.pool.get('report.intrastat.common')._compute_numbers(cr, uid, ids, self, context=context)
def _compute_end_date(self, cr, uid, ids, name, arg, context=None):
- print "SERVICE _compute_end_date START ids=", ids
return self.pool.get('report.intrastat.common')._compute_end_date(cr, uid, ids, self, context=context)
def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
- print "invalidation function CALLED !"
return self.pool.get('report.intrastat.service').search(cr, uid, [('intrastat_line_ids', 'in', ids)], context=context)
_columns = {
@@ -161,8 +158,6 @@ def generate_service_lines(self, cr, uid, ids, context=None):
res_sql = cr.fetchall()
print "res_sql=", res_sql
for id, company_id, invoice_id, invoice_currency_id, partner_vat, partner_id, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
- print "amount_invoice_currency =", amount_invoice_currency
- print "amount_company_currency =", amount_company_currency
# Store the service lines
line_obj.create(cr, uid, {
'parent_id': ids[0],
From ec93090b29cd220394710127f1f5081b712241a5 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Sun, 10 Apr 2011 00:19:31 +0200
Subject: [PATCH 013/142] Removed unused code in SQL query (this "id" field was
required when it was an SQL view)
---
l10n_fr_intrastat_service/intrastat_service.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 342f0f4b5..4f1476881 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -97,7 +97,6 @@ def generate_service_lines(self, cr, uid, ids, context=None):
line_obj.unlink(cr, uid, line_remove['intrastat_line_ids'], context=context)
sql = '''
select
- min(inv_line.id) as id,
company.id,
inv.id as invoice_id,
inv.currency_id as invoice_currency_id,
@@ -157,7 +156,7 @@ def generate_service_lines(self, cr, uid, ids, context=None):
cr.execute(sql, (intrastat.company_id.id, intrastat.start_date, intrastat.end_date))
res_sql = cr.fetchall()
print "res_sql=", res_sql
- for id, company_id, invoice_id, invoice_currency_id, partner_vat, partner_id, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
+ for company_id, invoice_id, invoice_currency_id, partner_vat, partner_id, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
# Store the service lines
line_obj.create(cr, uid, {
'parent_id': ids[0],
From e214e62c4e21b44c12cb51a750c540359d4dd8bc Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Tue, 19 Apr 2011 00:36:16 +0200
Subject: [PATCH 014/142] Full re-design of intrastat types : probably requires
deleting the report_intrastat_type table, restarting OpenERP and re-creating
intrastat types. Moved intrastat departments from stock.warehouse to
stock.location. Dropped SQL queries ; replaced by traditionnal python code
logic. No more need to have one rate per day for invoices with foreign
currency. Add total fiscal value for DEB More code factorization. Prepare
translation work.
---
.../intrastat_service.py | 159 +++++++++---------
.../intrastat_service_view.xml | 10 +-
2 files changed, 81 insertions(+), 88 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 4f1476881..eecf04caa 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -62,7 +62,7 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
('done','Done'),
], 'State', select=True, readonly=True, help="State of the declaration. When the state is set to 'Done', the parameters become read-only."),
'date_done' : fields.datetime('Date done', readonly=True, help="Last date when the intrastat declaration was converted to 'Done' state."),
- 'notes' : fields.text('Notes', help="You can add some comments here if you want."),
+ 'notes' : fields.text('Notes', help="You can write some comments here if you want."),
}
_defaults = {
@@ -74,7 +74,7 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id,
}
-#TODO : add check on date of children lines ?
+
def _check_start_date(self, cr, uid, ids, context=None):
return self.pool.get('report.intrastat.common')._check_start_date(cr, uid, ids, self, context=context)
@@ -90,84 +90,74 @@ def generate_service_lines(self, cr, uid, ids, context=None):
print "generate lines, ids=", ids
intrastat = self.browse(cr, uid, ids[0], context=context)
line_obj = self.pool.get('report.intrastat.service.line')
- self.pool.get('report.intrastat.common')._check_generate_lines(cr, uid, ids, intrastat, context=context)
+ invoice_obj = self.pool.get('account.invoice')
+ self.pool.get('report.intrastat.common')._check_generate_lines(cr, uid, intrastat, context=context)
# Get current service lines and delete them
line_remove = self.read(cr, uid, ids[0], ['intrastat_line_ids'], context=context)
if line_remove['intrastat_line_ids']:
line_obj.unlink(cr, uid, line_remove['intrastat_line_ids'], context=context)
- sql = '''
- select
- company.id,
- inv.id as invoice_id,
- inv.currency_id as invoice_currency_id,
- prt.vat as partner_vat,
- inv.partner_id as partner_id,
- res_currency_rate.rate as invoice_currency_rate,
- sum(case when inv.type = 'out_refund'
- then inv_line.price_subtotal * (-1)
- when inv.type = 'out_invoice'
- then inv_line.price_subtotal
- end) as amount_invoice_currency,
- sum(case when company.currency_id != inv.currency_id and res_currency_rate.rate is not null
- then
- case when inv.type = 'out_refund'
- then round(inv_line.price_subtotal/res_currency_rate.rate * (-1), 2)
- when inv.type = 'out_invoice'
- then round(inv_line.price_subtotal/res_currency_rate.rate, 2)
- end
- when company.currency_id = inv.currency_id
- then
- case when inv.type = 'out_refund'
- then inv_line.price_subtotal * (-1)
- when inv.type = 'out_invoice'
- then inv_line.price_subtotal
- end
- end) as amount_company_currency,
- company.currency_id as company_currency_id
-
- from account_invoice inv
- left join account_invoice_line inv_line on inv_line.invoice_id=inv.id
- left join (product_template pt
- left join product_product pp on pp.product_tmpl_id = pt.id
- )
- on (inv_line.product_id = pt.id)
- left join (res_partner_address inv_address
- left join res_country inv_country on (inv_country.id = inv_address.country_id))
- on (inv_address.id = inv.address_invoice_id)
- left join res_partner prt on inv.partner_id = prt.id
- left join res_currency_rate on (inv.currency_id = res_currency_rate.currency_id and inv.date_invoice = res_currency_rate.name)
- left join res_company company on inv.company_id=company.id
-
- where
- inv.type in ('out_invoice', 'out_refund')
- and inv.state in ('open', 'paid')
- and inv_line.product_id is not null
- and inv_line.price_subtotal != 0
- and inv_country.intrastat = true
- and pt.type = 'service'
- and pt.exclude_from_intrastat is not true
- and company.id = %s
- and inv.date_invoice >= %s
- and inv.date_invoice <= %s
-
- group by company.id, inv.currency_id, prt.vat, inv.partner_id, inv.id, invoice_currency_rate, company_currency_id
- '''
- # Execute the big SQL query to get all service lines
- cr.execute(sql, (intrastat.company_id.id, intrastat.start_date, intrastat.end_date))
- res_sql = cr.fetchall()
- print "res_sql=", res_sql
- for company_id, invoice_id, invoice_currency_id, partner_vat, partner_id, invoice_currency_rate, amount_invoice_currency, amount_company_currency, company_currency_id in res_sql:
- # Store the service lines
- line_obj.create(cr, uid, {
- 'parent_id': ids[0],
- 'invoice_id': invoice_id,
- 'partner_vat': partner_vat,
- 'partner_id': partner_id,
- 'amount_invoice_currency': int(round(amount_invoice_currency, 0)),
- 'invoice_currency_id': invoice_currency_id,
- 'amount_company_currency': int(round(amount_company_currency, 0)),
- 'company_currency_id': company_currency_id,
+
+ invoice_ids = invoice_obj.search(cr, uid, [
+ ('type', 'in', ('out_invoice', 'out_refund')),
+ ('date_invoice', '<=', intrastat.end_date),
+ ('date_invoice', '>=', intrastat.start_date),
+ ('state', 'in', ('open', 'paid')),
+ ('company_id', '=', intrastat.company_id.id)
+ ], order='date_invoice', context=context)
+ print "invoice_ids=", invoice_ids
+ for invoice in invoice_obj.browse(cr, uid, invoice_ids, context=context):
+
+ if not invoice.address_invoice_id.country_id:
+ raise osv.except_osv(_('Error :'), _("Missing country on partner address '%s' of partner '%s'.") %(invoice.address_invoice_id.name, invoice.address_invoice_id.partner_id.name))
+ elif not invoice.address_invoice_id.country_id.intrastat:
+ continue
+
+ if not invoice.partner_id.vat:
+ raise osv.except_osv(_('Error :'), _("Missing VAT number on partner '%s'.") %invoice.partner_id.name)
+ else:
+ partner_vat_to_write = invoice.partner_id.vat
+
+ amount_invoice_currency_to_write = 0.0
+ amount_company_currency_to_write = 0.0
+ context['date'] = invoice.date_invoice
+
+ for line in invoice.invoice_line:
+ if not line.product_id:
+ continue
+
+ if line.product_id.type <> 'service':
+ continue
+
+ if line.product_id.exclude_from_intrastat:
+ continue
+
+ if not line.quantity:
+ continue
+
+ if not line.price_subtotal:
+ continue
+ else:
+ amount_invoice_currency_to_write += line.price_subtotal
+ if invoice.currency_id.code <> 'EUR':
+ amount_company_currency_to_write += self.pool.get('res.currency').compute(cr, uid, invoice.currency_id.id, intrastat.company_id.currency_id.id, line.price_subtotal, round=False, context=context)
+ else:
+ amount_company_currency_to_write += line.price_subtotal
+
+ if amount_company_currency_to_write:
+ if invoice.type == 'out_refund':
+ amount_invoice_currency_to_write = amount_invoice_currency_to_write * (-1)
+ amount_company_currency_to_write = amount_company_currency_to_write * (-1)
+
+ line_obj.create(cr, uid, {
+ 'parent_id': ids[0],
+ 'invoice_id': invoice.id,
+ 'partner_vat': partner_vat_to_write,
+ 'partner_id': invoice.partner_id.id,
+ 'invoice_currency_id': invoice.currency_id.id,
+ 'amount_invoice_currency': int(round(amount_invoice_currency_to_write, 0)),
+ 'amount_company_currency': int(round(amount_company_currency_to_write, 0)),
}, context=context)
+
return None
@@ -191,7 +181,7 @@ def generate_xml(self, cr, uid, ids, context=None):
end_date_str = intrastat.end_date
start_date_datetime = datetime.strptime(start_date_str, '%Y-%m-%d')
- self.pool.get('report.intrastat.common')._check_generate_xml(cr, uid, ids, intrastat, context=context)
+ self.pool.get('report.intrastat.common')._check_generate_xml(cr, uid, intrastat, context=context)
my_company_vat = intrastat.company_id.partner_id.vat.replace(' ', '')
@@ -219,7 +209,7 @@ def generate_xml(self, cr, uid, ids, context=None):
valeur.text = str(sline.amount_company_currency)
partner_des = etree.SubElement(ligne_des, 'partner_des')
try: partner_des.text = sline.partner_vat.replace(' ', '')
- except: raise osv.except_osv(_('Error :'), _('Missing VAT number for partner "%s".'%sline.partner_id.name))
+ except: raise osv.except_osv(_('Error :'), _("Missing VAT number for partner '%s'.") %sline.partner_id.name)
xml_string = etree.tostring(root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
print "xml_string", xml_string
@@ -236,18 +226,23 @@ class report_intrastat_service_line(osv.osv):
_name = "report.intrastat.service.line"
_description = "Lines of intrastat service declaration (DES)"
_rec_name = "partner_vat"
- _order = 'invoice_id'
+ _order = 'id'
_columns = {
'parent_id': fields.many2one('report.intrastat.service', 'Intrastat service ref', ondelete='cascade', select=True),
+ 'state' : fields.related('parent_id', 'state', type='string', relation='report.intrastat.service', string='State', readonly=True),
+ 'company_id': fields.related('parent_id', 'company_id', type='many2one', relation='res.company', string="Company", readonly=True),
+ 'company_currency_id': fields.related('company_id', 'currency_id', type='many2one', relation='res.currency', string="Company currency", readonly=True),
'invoice_id': fields.many2one('account.invoice', 'Invoice ref', readonly=True),
- 'partner_vat': fields.char('Customer VAT', size=32, readonly=True),
- 'partner_id': fields.many2one('res.partner', 'Partner name', readonly=True),
'date_invoice' : fields.related('invoice_id', 'date_invoice', type='date', relation='account.invoice', string='Invoice date', readonly=True),
+ 'partner_vat': fields.char('Customer VAT', size=32, states={'done':[('readonly',True)]}),
+ 'partner_id': fields.many2one('res.partner', 'Partner name', states={'done':[('readonly',True)]}),
+ 'amount_company_currency': fields.integer('Amount in company cur.', states={'done':[('readonly',True)]}),
'amount_invoice_currency': fields.integer('Amount in invoice cur.', readonly=True),
'invoice_currency_id': fields.many2one('res.currency', "Invoice currency", readonly=True),
- 'amount_company_currency': fields.integer('Amount in company cur.', readonly=True),
- 'company_currency_id': fields.many2one('res.currency', "Company currency", readonly=True),
}
+ def partner_on_change(self, cr, uid, ids, partner_id=False):
+ return self.pool.get('report.intrastat.common').partner_on_change(cr, uid, ids, partner_id)
+
report_intrastat_service_line()
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index c5748d20d..5cc6203f0 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -64,13 +64,14 @@
form
@@ -84,13 +85,10 @@
-
+
-
-
-
From a120fa73a085cf983c17e65e7949a27ae10eeb49 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Tue, 26 Apr 2011 09:28:46 +0200
Subject: [PATCH 015/142] Moved some demo data from l10n_fr_intrastat_product
to intrastat_base Moved configuration about taxes from company form to tax
form Some modifications to ease v5 -> v6 migration : - object
report_intrastat_code now belong to group account manager - button functions
now return True Tried to implement the following feature : open attachement
form when the XML file as been generated : works on v6, but make client crash
en v5 -> code has been commented DEB lines with procedure code = 25 are now
deducted from the fiscal total. Round invoice total.
---
l10n_fr_intrastat_service/intrastat_service.py | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index eecf04caa..e486adc5d 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -158,18 +158,18 @@ def generate_service_lines(self, cr, uid, ids, context=None):
'amount_company_currency': int(round(amount_company_currency_to_write, 0)),
}, context=context)
- return None
+ return True
def done(self, cr, uid, ids, context=None):
if len(ids) != 1: raise osv.except_osv(_('Error :'), 'Hara kiri in done')
self.write(cr, uid, ids[0], {'state': 'done', 'date_done': datetime.strftime(datetime.today(), '%Y-%m-%d %H:%M:%S')}, context=context)
- return None
+ return True
def back2draft(self, cr, uid, ids, context=None):
if len(ids) != 1: raise osv.except_osv(_('Error :'), 'Hara kiri in back2draft')
self.write(cr, uid, ids[0], {'state': 'draft'}, context=context)
- return None
+ return True
def generate_xml(self, cr, uid, ids, context=None):
@@ -216,12 +216,15 @@ def generate_xml(self, cr, uid, ids, context=None):
# We now validate the XML file against the official XML Schema Definition
self.pool.get('report.intrastat.common')._check_xml_schema(cr, uid, root, xml_string, des_xsd.des_xsd, context=context)
# Attach the XML file
- self.pool.get('report.intrastat.common')._attach_xml_file(cr, uid, ids, self, xml_string, start_date_datetime, 'des', context=context)
- return None
+ attach_id = self.pool.get('report.intrastat.common')._attach_xml_file(cr, uid, ids, self, xml_string, start_date_datetime, 'des', context=context)
+
+# return self.pool.get('report.intrastat.common')._open_attach_view(cr, uid, attach_id, 'DES XML file', context=context) # Works on v6 only - Makes the client crash on v5
+ return True
report_intrastat_service()
+
class report_intrastat_service_line(osv.osv):
_name = "report.intrastat.service.line"
_description = "Lines of intrastat service declaration (DES)"
From 242c634c0568ffe962c084a2591d1cf8269993d9 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Mon, 9 May 2011 15:13:28 +0200
Subject: [PATCH 016/142] Moved the field exclude_from_intrastat_if_present of
account.tax from l10n_fr_intrastat_product to intrastat_base, because it
should also be used in the module l10n_fr_intrastat_service. Take this field
into account in the generation of DEB lines (module
l10n_fr_intrastat_service).
---
l10n_fr_intrastat_service/intrastat_service.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index e486adc5d..d8387f1f0 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -134,6 +134,13 @@ def generate_service_lines(self, cr, uid, ids, context=None):
if not line.quantity:
continue
+ skip_this_line = False
+ for line_tax in line.invoice_line_tax_id:
+ if line_tax.exclude_from_intrastat_if_present:
+ skip_this_line = True
+ if skip_this_line:
+ continue
+
if not line.price_subtotal:
continue
else:
From d058e43c2c1f5834f2cfd36dfa7f5062780225b9 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Fri, 10 Jun 2011 11:22:00 +0200
Subject: [PATCH 017/142] Update of some strings before translation. Started
translation work.
---
l10n_fr_intrastat_service/intrastat_service.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index d8387f1f0..cebe1716e 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -22,7 +22,7 @@
from osv import osv, fields
-from datetime import datetime, timedelta
+from datetime import datetime
from dateutil.relativedelta import relativedelta
from tools.translate import _
From 0f8d5ff1a5b006db497bbab099eb377d23f2d341 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Tue, 16 Aug 2011 11:03:35 +0200
Subject: [PATCH 018/142] Translation and strings update. Add demo data.
---
l10n_fr_intrastat_service/i18n/fr_FR.po | 271 ++++++++++++++++++
.../i18n/l10n_fr_intrastat_service.pot | 270 +++++++++++++++++
.../intrastat_service.py | 4 +-
.../intrastat_service_view.xml | 4 +-
4 files changed, 545 insertions(+), 4 deletions(-)
create mode 100644 l10n_fr_intrastat_service/i18n/fr_FR.po
create mode 100644 l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
diff --git a/l10n_fr_intrastat_service/i18n/fr_FR.po b/l10n_fr_intrastat_service/i18n/fr_FR.po
new file mode 100644
index 000000000..9683773d7
--- /dev/null
+++ b/l10n_fr_intrastat_service/i18n/fr_FR.po
@@ -0,0 +1,271 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * l10n_fr_intrastat_service
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.16\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2011-07-09 10:13:56+0000\n"
+"PO-Revision-Date: 2011-07-09 10:13:56+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,invoice_id:0
+msgid "Invoice ref"
+msgstr "Réf facture"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,amount_company_currency:0
+msgid "Amount in company cur."
+msgstr "Montant en monnaie société"
+
+#. module: l10n_fr_intrastat_service
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr "Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères spéciaux !"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,company_currency_id:0
+msgid "Company currency"
+msgstr "Monnaie société"
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,notes:0
+msgid "You can write some comments here if you want."
+msgstr "Vous pouvez écrire un commentaire ici."
+
+#. module: l10n_fr_intrastat_service
+#: selection:report.intrastat.service,state:0
+msgid "Draft"
+msgstr "Brouillon"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Comp. cur."
+msgstr "Monn. soc."
+
+#. module: l10n_fr_intrastat_service
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Invalid model name in the action definition."
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,start_date:0
+msgid "Start date"
+msgstr "Date de début"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Back to draft"
+msgstr "Retour au brouillon"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Amount in comp. cur."
+msgstr "Montant en monn. soc."
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,partner_id:0
+msgid "Partner name"
+msgstr "Nom du partenaire"
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service_line
+msgid "Lines of intrastat service declaration (DES)"
+msgstr "Lignes de DES"
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,date_done:0
+msgid "Last date when the intrastat declaration was converted to 'Done' state."
+msgstr "Dernière date à laquelle la DES a été mise à l'état 'Déclaré'."
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.module.module,description:l10n_fr_intrastat_service.module_meta_information
+msgid "This module adds support for the \"Déclaration Européenne des Services\" (DES).\n"
+"\n"
+"The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France's Customs administration if they sell services to other EU companies.\n"
+"\n"
+"More information about the DES is available on this official web page : http://www.douane.gouv.fr/page.asp?id=3846\n"
+"\n"
+"Please contact Alexis de Lattre from Akretion for any help or question about this module.\n"
+" "
+msgstr "This module adds support for the \"Déclaration Européenne des Services\" (DES).\n"
+"\n"
+"The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France's Customs administration if they sell services to other EU companies.\n"
+"\n"
+"More information about the DES is available on this official web page : http://www.douane.gouv.fr/page.asp?id=3846\n"
+"\n"
+"Please contact Alexis de Lattre from Akretion for any help or question about this module.\n"
+" "
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,company_id:0
+#: field:report.intrastat.service.line,company_id:0
+msgid "Company"
+msgstr "Société"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,invoice_currency_id:0
+msgid "Invoice currency"
+msgstr "Monnaie de la facture"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Attach XML file"
+msgstr "Attacher le fichier XML"
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,num_lines:0
+msgid "Number of lines in this declaration."
+msgstr "Nombre de lignes de la déclaration."
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+#: field:report.intrastat.service,total_amount:0
+msgid "Total amount"
+msgstr "Montant total"
+
+#. module: l10n_fr_intrastat_service
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#, python-format
+msgid "Missing VAT number on partner '%s'."
+msgstr "Numéro de TVA non renseigné pour le partenaire '%s'."
+
+#. module: l10n_fr_intrastat_service
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#, python-format
+msgid "Error :"
+msgstr "Erreur :"
+
+#. module: l10n_fr_intrastat_service
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML non valide pour l'architecture de la vue"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,intrastat_line_ids:0
+msgid "Report intrastat service lines"
+msgstr "Lignes de DES"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+#: field:report.intrastat.service,notes:0
+msgid "Notes"
+msgstr "Notes"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,date_invoice:0
+msgid "Invoice date"
+msgstr "Date de facture"
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.action_report_intrastat_service_tree
+#: model:ir.ui.menu,name:l10n_fr_intrastat_service.menu_report_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Intrastat Service"
+msgstr "DES"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Intrastat service lines"
+msgstr "Lignes de DES"
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,start_date:0
+msgid "Start date of the declaration. Must be the first day of a month."
+msgstr "Date de début de la déclaration. Doit être le premier jour d'un mois."
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,end_date:0
+msgid "End date"
+msgstr "Date de fin"
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,end_date:0
+msgid "End date for the declaration. Must be the last day of the month of the start date."
+msgstr "Date de fin de la déclaration. Doit être le dernier jour du mois de la date de début."
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,total_amount:0
+msgid "Total amount in company currency of the declaration."
+msgstr "Montant total en monnaie société de la déclaration."
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,state:0
+msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
+msgstr "Etat de la déclaration. Quand l'état est à 'Déclaré', les champs passent en lecture seule."
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,company_id:0
+msgid "Related company."
+msgstr "Société associée."
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,amount_invoice_currency:0
+msgid "Amount in invoice cur."
+msgstr "Montant en monn. de la fact."
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,partner_vat:0
+msgid "Customer VAT"
+msgstr "N° TVA du client"
+
+#. module: l10n_fr_intrastat_service
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#, python-format
+msgid "Missing country on partner address '%s' of partner '%s'."
+msgstr "Pays non renseigné sur l'adresse partenaire '%s' du partenaire '%s'."
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,state:0
+#: field:report.intrastat.service.line,state:0
+msgid "State"
+msgstr "Etat"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,currency_id:0
+msgid "Currency"
+msgstr "Monnaie"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+#: selection:report.intrastat.service,state:0
+msgid "Done"
+msgstr "Déclaré"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,parent_id:0
+msgid "Intrastat service ref"
+msgstr "Lien DES"
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.module.module,shortdesc:l10n_fr_intrastat_service.module_meta_information
+msgid "Module for Intrastat service reporting (DES) for France"
+msgstr "Module pour la Déclaration Européenne des Services (DES)"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Re-generate lines"
+msgstr "Re-générer les lignes"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,num_lines:0
+msgid "Number of lines"
+msgstr "Nombre de lignes"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,date_done:0
+msgid "Date done"
+msgstr "Date de déclaration"
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service
+msgid "Intrastat report for services"
+msgstr "DES"
+
diff --git a/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot b/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
new file mode 100644
index 000000000..d37679722
--- /dev/null
+++ b/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
@@ -0,0 +1,270 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * l10n_fr_intrastat_service
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.16\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2011-07-09 10:11:46+0000\n"
+"PO-Revision-Date: 2011-07-09 10:11:46+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,invoice_id:0
+msgid "Invoice ref"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,amount_company_currency:0
+msgid "Amount in company cur."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,company_currency_id:0
+msgid "Company currency"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,notes:0
+msgid "You can write some comments here if you want."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:report.intrastat.service,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Comp. cur."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,start_date:0
+msgid "Start date"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Back to draft"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Amount in comp. cur."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,partner_id:0
+msgid "Partner name"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service_line
+msgid "Lines of intrastat service declaration (DES)"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,date_done:0
+msgid "Last date when the intrastat declaration was converted to 'Done' state."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.module.module,description:l10n_fr_intrastat_service.module_meta_information
+msgid "This module adds support for the \"Déclaration Européenne des Services\" (DES).\n"
+"\n"
+"The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France's Customs administration if they sell services to other EU companies.\n"
+"\n"
+"More information about the DES is available on this official web page : http://www.douane.gouv.fr/page.asp?id=3846\n"
+"\n"
+"Please contact Alexis de Lattre from Akretion for any help or question about this module.\n"
+" "
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,company_id:0
+#: field:report.intrastat.service.line,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,invoice_currency_id:0
+msgid "Invoice currency"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Attach XML file"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,num_lines:0
+msgid "Number of lines in this declaration."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+#: field:report.intrastat.service,total_amount:0
+msgid "Total amount"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#, python-format
+msgid "Missing VAT number on partner '%s'."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#, python-format
+msgid "Error :"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,intrastat_line_ids:0
+msgid "Report intrastat service lines"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+#: field:report.intrastat.service,notes:0
+msgid "Notes"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,date_invoice:0
+msgid "Invoice date"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.action_report_intrastat_service_tree
+#: model:ir.ui.menu,name:l10n_fr_intrastat_service.menu_report_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Intrastat Service"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Intrastat service lines"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,start_date:0
+msgid "Start date of the declaration. Must be the first day of a month."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,end_date:0
+msgid "End date"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,end_date:0
+msgid "End date for the declaration. Must be the last day of the month of the start date."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,total_amount:0
+msgid "Total amount in company currency of the declaration."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,state:0
+msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,company_id:0
+msgid "Related company."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,amount_invoice_currency:0
+msgid "Amount in invoice cur."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,partner_vat:0
+msgid "Customer VAT"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#, python-format
+msgid "Missing country on partner address '%s' of partner '%s'."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,state:0
+#: field:report.intrastat.service.line,state:0
+msgid "State"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,currency_id:0
+msgid "Currency"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+#: selection:report.intrastat.service,state:0
+msgid "Done"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,parent_id:0
+msgid "Intrastat service ref"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.module.module,shortdesc:l10n_fr_intrastat_service.module_meta_information
+msgid "Module for Intrastat service reporting (DES) for France"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#, python-format
+msgid "Missing VAT number for partner '%s'."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Re-generate lines"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,num_lines:0
+msgid "Number of lines"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,date_done:0
+msgid "Date done"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service
+msgid "Intrastat report for services"
+msgstr ""
+
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index cebe1716e..e854a295a 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -60,7 +60,7 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
'state' : fields.selection([
('draft','Draft'),
('done','Done'),
- ], 'State', select=True, readonly=True, help="State of the declaration. When the state is set to 'Done', the parameters become read-only."),
+ ], 'State', select=True, readonly=True, help="State of the declaration. When the state is set to 'Done', the fields become read-only."),
'date_done' : fields.datetime('Date done', readonly=True, help="Last date when the intrastat declaration was converted to 'Done' state."),
'notes' : fields.text('Notes', help="You can write some comments here if you want."),
}
@@ -216,7 +216,7 @@ def generate_xml(self, cr, uid, ids, context=None):
valeur.text = str(sline.amount_company_currency)
partner_des = etree.SubElement(ligne_des, 'partner_des')
try: partner_des.text = sline.partner_vat.replace(' ', '')
- except: raise osv.except_osv(_('Error :'), _("Missing VAT number for partner '%s'.") %sline.partner_id.name)
+ except: raise osv.except_osv(_('Error :'), _("Missing VAT number on partner '%s'.") %sline.partner_id.name)
xml_string = etree.tostring(root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
print "xml_string", xml_string
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 5cc6203f0..5367b6a49 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -85,8 +85,8 @@
-
-
+
+
From 47f30d745454a42e202414e912323c534907cfd2 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Tue, 16 Aug 2011 12:32:26 +0200
Subject: [PATCH 019/142] Port to OpenERP v6 Add seach views for Intrastat
product and Intrastat service Comment prints in the code Standardize the name
of ids Add "done" button in tree view Display company_id fields in the
interface if the user belongs to "group_multi_company"
---
.../i18n/{fr_FR.po => fr.po} | 0
.../intrastat_service.py | 13 +++--
.../intrastat_service_view.xml | 51 ++++++++++++++-----
3 files changed, 43 insertions(+), 21 deletions(-)
rename l10n_fr_intrastat_service/i18n/{fr_FR.po => fr.po} (100%)
diff --git a/l10n_fr_intrastat_service/i18n/fr_FR.po b/l10n_fr_intrastat_service/i18n/fr.po
similarity index 100%
rename from l10n_fr_intrastat_service/i18n/fr_FR.po
rename to l10n_fr_intrastat_service/i18n/fr.po
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index e854a295a..79ba7581c 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -87,7 +87,7 @@ def _check_start_date(self, cr, uid, ids, context=None):
]
def generate_service_lines(self, cr, uid, ids, context=None):
- print "generate lines, ids=", ids
+ #print "generate lines, ids=", ids
intrastat = self.browse(cr, uid, ids[0], context=context)
line_obj = self.pool.get('report.intrastat.service.line')
invoice_obj = self.pool.get('account.invoice')
@@ -104,7 +104,7 @@ def generate_service_lines(self, cr, uid, ids, context=None):
('state', 'in', ('open', 'paid')),
('company_id', '=', intrastat.company_id.id)
], order='date_invoice', context=context)
- print "invoice_ids=", invoice_ids
+ #print "invoice_ids=", invoice_ids
for invoice in invoice_obj.browse(cr, uid, invoice_ids, context=context):
if not invoice.address_invoice_id.country_id:
@@ -145,7 +145,7 @@ def generate_service_lines(self, cr, uid, ids, context=None):
continue
else:
amount_invoice_currency_to_write += line.price_subtotal
- if invoice.currency_id.code <> 'EUR':
+ if invoice.currency_id.name <> 'EUR':
amount_company_currency_to_write += self.pool.get('res.currency').compute(cr, uid, invoice.currency_id.id, intrastat.company_id.currency_id.id, line.price_subtotal, round=False, context=context)
else:
amount_company_currency_to_write += line.price_subtotal
@@ -180,7 +180,7 @@ def back2draft(self, cr, uid, ids, context=None):
def generate_xml(self, cr, uid, ids, context=None):
- print "generate xml ids=", ids
+ #print "generate xml ids=", ids
import des_xsd
from lxml import etree
intrastat = self.browse(cr, uid, ids[0], context=context)
@@ -218,15 +218,14 @@ def generate_xml(self, cr, uid, ids, context=None):
try: partner_des.text = sline.partner_vat.replace(' ', '')
except: raise osv.except_osv(_('Error :'), _("Missing VAT number on partner '%s'.") %sline.partner_id.name)
xml_string = etree.tostring(root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
- print "xml_string", xml_string
+ #print "xml_string", xml_string
# We now validate the XML file against the official XML Schema Definition
self.pool.get('report.intrastat.common')._check_xml_schema(cr, uid, root, xml_string, des_xsd.des_xsd, context=context)
# Attach the XML file
attach_id = self.pool.get('report.intrastat.common')._attach_xml_file(cr, uid, ids, self, xml_string, start_date_datetime, 'des', context=context)
-# return self.pool.get('report.intrastat.common')._open_attach_view(cr, uid, attach_id, 'DES XML file', context=context) # Works on v6 only - Makes the client crash on v5
- return True
+ return self.pool.get('report.intrastat.common')._open_attach_view(cr, uid, attach_id, 'DES XML file', context=context) # Works on v6 only - Makes the client crash on v5
report_intrastat_service()
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 5367b6a49..2a7a5c8ec 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -9,19 +9,21 @@
-
-
- report.intrastat.service.form
+
+
+ fr.intrastat.service.formreport.intrastat.serviceform
-
-
- report.intrastat.service.tree
+
+
+ fr.intrastat.service.treereport.intrastat.servicetree
@@ -53,13 +55,34 @@
+
+
+
+ fr.intrastat.service.search
+ report.intrastat.service
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- report.intrastat.service.line.form
+
+ fr.intrastat.service.line.formreport.intrastat.service.lineform
@@ -78,8 +101,8 @@
-
- report.intrastat.service.line.tree
+
+ fr.intrastat.service.line.treereport.intrastat.service.linetree
@@ -95,7 +118,7 @@
-
+Intrastat Servicereport.intrastat.serviceform
@@ -104,7 +127,7 @@
-
+
From 0cf5fe928f5a32c3f738b73b1b6c6dff3d69fa5a Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Mon, 5 Sep 2011 17:38:54 +0200
Subject: [PATCH 020/142] l10n_fr_intrastat_service : Moved the raise if the
Partner VAT number is missing, so that, when we sell to a physical person in
the EU, we don't get the raise. Thanks to Anevia for this interesting bug
report ! We need to do the same thing in l10n_fr_intrastat_product.
---
l10n_fr_intrastat_service/intrastat_service.py | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 79ba7581c..2f8d2471a 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -112,11 +112,6 @@ def generate_service_lines(self, cr, uid, ids, context=None):
elif not invoice.address_invoice_id.country_id.intrastat:
continue
- if not invoice.partner_id.vat:
- raise osv.except_osv(_('Error :'), _("Missing VAT number on partner '%s'.") %invoice.partner_id.name)
- else:
- partner_vat_to_write = invoice.partner_id.vat
-
amount_invoice_currency_to_write = 0.0
amount_company_currency_to_write = 0.0
context['date'] = invoice.date_invoice
@@ -155,6 +150,18 @@ def generate_service_lines(self, cr, uid, ids, context=None):
amount_invoice_currency_to_write = amount_invoice_currency_to_write * (-1)
amount_company_currency_to_write = amount_company_currency_to_write * (-1)
+ # Why do I check that the Partner has a VAT number only here and not earlier ?
+ # Because, if I sell to a physical person in the EU with VAT, then
+ # the corresponding partner will not have a VAT number, and the entry
+ # will be skipped because line_tax.exclude_from_intrastat_if_present is always
+ # True and amount_company_currency_to_write = 0
+ # So we should not block with a raise before the end of the loop on the
+ # invoice lines and the "if amount_company_currency_to_write:"
+ if not invoice.partner_id.vat:
+ raise osv.except_osv(_('Error :'), _("Missing VAT number on partner '%s'.") %invoice.partner_id.name)
+ else:
+ partner_vat_to_write = invoice.partner_id.vat
+
line_obj.create(cr, uid, {
'parent_id': ids[0],
'invoice_id': invoice.id,
From e022bc539be3c7ce70a8d5fcc9efbe20aa590df3 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Fri, 9 Sep 2011 11:15:01 +0200
Subject: [PATCH 021/142] Update translations.
---
.../{__terp__.py => __openerp__.py} | 0
l10n_fr_intrastat_service/i18n/fr.po | 82 ++++++++++--------
.../i18n/l10n_fr_intrastat_service.pot | 86 +++++++++----------
.../intrastat_service.py | 2 +-
4 files changed, 88 insertions(+), 82 deletions(-)
rename l10n_fr_intrastat_service/{__terp__.py => __openerp__.py} (100%)
diff --git a/l10n_fr_intrastat_service/__terp__.py b/l10n_fr_intrastat_service/__openerp__.py
similarity index 100%
rename from l10n_fr_intrastat_service/__terp__.py
rename to l10n_fr_intrastat_service/__openerp__.py
diff --git a/l10n_fr_intrastat_service/i18n/fr.po b/l10n_fr_intrastat_service/i18n/fr.po
index 9683773d7..ad331b45e 100644
--- a/l10n_fr_intrastat_service/i18n/fr.po
+++ b/l10n_fr_intrastat_service/i18n/fr.po
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.16\n"
+"Project-Id-Version: OpenERP Server 6.0.3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2011-07-09 10:13:56+0000\n"
-"PO-Revision-Date: 2011-07-09 10:13:56+0000\n"
+"POT-Creation-Date: 2011-09-09 08:25+0000\n"
+"PO-Revision-Date: 2011-09-09 08:25+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -25,11 +25,6 @@ msgstr "Réf facture"
msgid "Amount in company cur."
msgstr "Montant en monnaie société"
-#. module: l10n_fr_intrastat_service
-#: constraint:ir.model:0
-msgid "The Object name must start with x_ and not contain any special character !"
-msgstr "Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères spéciaux !"
-
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service.line,company_currency_id:0
msgid "Company currency"
@@ -41,35 +36,26 @@ msgid "You can write some comments here if you want."
msgstr "Vous pouvez écrire un commentaire ici."
#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
#: selection:report.intrastat.service,state:0
msgid "Draft"
msgstr "Brouillon"
-#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Comp. cur."
-msgstr "Monn. soc."
-
-#. module: l10n_fr_intrastat_service
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr "Invalid model name in the action definition."
-
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,start_date:0
msgid "Start date"
msgstr "Date de début"
+#. module: l10n_fr_intrastat_service
+#: sql_constraint:report.intrastat.service:0
+msgid "A DES for this month already exists !"
+msgstr "Une DES est déjà crée pour ce mois !"
+
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
msgid "Back to draft"
msgstr "Retour au brouillon"
-#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Amount in comp. cur."
-msgstr "Montant en monn. soc."
-
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service.line,partner_id:0
msgid "Partner name"
@@ -110,6 +96,11 @@ msgstr "This module adds support for the \"Déclaration Européenne des Services
msgid "Company"
msgstr "Société"
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Comp. cur."
+msgstr "Monn. soc."
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service.line,invoice_currency_id:0
msgid "Invoice currency"
@@ -125,6 +116,11 @@ msgstr "Attacher le fichier XML"
msgid "Number of lines in this declaration."
msgstr "Nombre de lignes de la déclaration."
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Extended Filters..."
+msgstr "Filtres avancés..."
+
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
#: field:report.intrastat.service,total_amount:0
@@ -132,22 +128,22 @@ msgid "Total amount"
msgstr "Montant total"
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:161
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:226
#, python-format
msgid "Missing VAT number on partner '%s'."
msgstr "Numéro de TVA non renseigné pour le partenaire '%s'."
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:111
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:161
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:179
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:184
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:226
#, python-format
msgid "Error :"
msgstr "Erreur :"
-#. module: l10n_fr_intrastat_service
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML non valide pour l'architecture de la vue"
-
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,intrastat_line_ids:0
msgid "Report intrastat service lines"
@@ -165,8 +161,13 @@ msgid "Invoice date"
msgstr "Date de facture"
#. module: l10n_fr_intrastat_service
-#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.action_report_intrastat_service_tree
-#: model:ir.ui.menu,name:l10n_fr_intrastat_service.menu_report_intrastat_service
+#: help:report.intrastat.service,state:0
+msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
+msgstr "Etat de la déclaration. Quand l'état est à 'Déclaré', les champs passent en lecture seule."
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.fr_intrastat_service_tree_action
+#: model:ir.ui.menu,name:l10n_fr_intrastat_service.fr_intrastat_service_menu
#: view:report.intrastat.service:0
msgid "Intrastat Service"
msgstr "DES"
@@ -181,6 +182,11 @@ msgstr "Lignes de DES"
msgid "Start date of the declaration. Must be the first day of a month."
msgstr "Date de début de la déclaration. Doit être le premier jour d'un mois."
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Amount in comp. cur."
+msgstr "Montant en monn. soc."
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,end_date:0
msgid "End date"
@@ -196,11 +202,6 @@ msgstr "Date de fin de la déclaration. Doit être le dernier jour du mois de la
msgid "Total amount in company currency of the declaration."
msgstr "Montant total en monnaie société de la déclaration."
-#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,state:0
-msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
-msgstr "Etat de la déclaration. Quand l'état est à 'Déclaré', les champs passent en lecture seule."
-
#. module: l10n_fr_intrastat_service
#: help:report.intrastat.service,company_id:0
msgid "Related company."
@@ -217,7 +218,7 @@ msgid "Customer VAT"
msgstr "N° TVA du client"
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:111
#, python-format
msgid "Missing country on partner address '%s' of partner '%s'."
msgstr "Pays non renseigné sur l'adresse partenaire '%s' du partenaire '%s'."
@@ -228,6 +229,11 @@ msgstr "Pays non renseigné sur l'adresse partenaire '%s' du partenaire '%s'."
msgid "State"
msgstr "Etat"
+#. module: l10n_fr_intrastat_service
+#: constraint:report.intrastat.service:0
+msgid "Start date must be the first day of a month"
+msgstr "La date de début doit être le premier jour d'un mois"
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,currency_id:0
msgid "Currency"
diff --git a/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot b/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
index d37679722..77b3bd886 100644
--- a/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
+++ b/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.16\n"
+"Project-Id-Version: OpenERP Server 6.0.3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2011-07-09 10:11:46+0000\n"
-"PO-Revision-Date: 2011-07-09 10:11:46+0000\n"
+"POT-Creation-Date: 2011-09-09 08:18+0000\n"
+"PO-Revision-Date: 2011-09-09 08:18+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -25,11 +25,6 @@ msgstr ""
msgid "Amount in company cur."
msgstr ""
-#. module: l10n_fr_intrastat_service
-#: constraint:ir.model:0
-msgid "The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service.line,company_currency_id:0
msgid "Company currency"
@@ -41,33 +36,24 @@ msgid "You can write some comments here if you want."
msgstr ""
#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
#: selection:report.intrastat.service,state:0
msgid "Draft"
msgstr ""
-#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Comp. cur."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: constraint:ir.actions.act_window:0
-msgid "Invalid model name in the action definition."
-msgstr ""
-
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,start_date:0
msgid "Start date"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-msgid "Back to draft"
+#: sql_constraint:report.intrastat.service:0
+msgid "A DES for this month already exists !"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Amount in comp. cur."
+#: view:report.intrastat.service:0
+msgid "Back to draft"
msgstr ""
#. module: l10n_fr_intrastat_service
@@ -103,6 +89,11 @@ msgstr ""
msgid "Company"
msgstr ""
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Comp. cur."
+msgstr ""
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service.line,invoice_currency_id:0
msgid "Invoice currency"
@@ -118,6 +109,11 @@ msgstr ""
msgid "Number of lines in this declaration."
msgstr ""
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Extended Filters..."
+msgstr ""
+
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
#: field:report.intrastat.service,total_amount:0
@@ -125,22 +121,22 @@ msgid "Total amount"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:161
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:226
#, python-format
msgid "Missing VAT number on partner '%s'."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:111
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:161
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:179
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:184
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:226
#, python-format
msgid "Error :"
msgstr ""
-#. module: l10n_fr_intrastat_service
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,intrastat_line_ids:0
msgid "Report intrastat service lines"
@@ -158,8 +154,13 @@ msgid "Invoice date"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.action_report_intrastat_service_tree
-#: model:ir.ui.menu,name:l10n_fr_intrastat_service.menu_report_intrastat_service
+#: help:report.intrastat.service,state:0
+msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.fr_intrastat_service_tree_action
+#: model:ir.ui.menu,name:l10n_fr_intrastat_service.fr_intrastat_service_menu
#: view:report.intrastat.service:0
msgid "Intrastat Service"
msgstr ""
@@ -174,6 +175,11 @@ msgstr ""
msgid "Start date of the declaration. Must be the first day of a month."
msgstr ""
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Amount in comp. cur."
+msgstr ""
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,end_date:0
msgid "End date"
@@ -189,11 +195,6 @@ msgstr ""
msgid "Total amount in company currency of the declaration."
msgstr ""
-#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,state:0
-msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
-msgstr ""
-
#. module: l10n_fr_intrastat_service
#: help:report.intrastat.service,company_id:0
msgid "Related company."
@@ -210,7 +211,7 @@ msgid "Customer VAT"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:111
#, python-format
msgid "Missing country on partner address '%s' of partner '%s'."
msgstr ""
@@ -221,6 +222,11 @@ msgstr ""
msgid "State"
msgstr ""
+#. module: l10n_fr_intrastat_service
+#: constraint:report.intrastat.service:0
+msgid "Start date must be the first day of a month"
+msgstr ""
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,currency_id:0
msgid "Currency"
@@ -242,12 +248,6 @@ msgstr ""
msgid "Module for Intrastat service reporting (DES) for France"
msgstr ""
-#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:0
-#, python-format
-msgid "Missing VAT number for partner '%s'."
-msgstr ""
-
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
msgid "Re-generate lines"
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 2f8d2471a..2eff18c67 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -83,7 +83,7 @@ def _check_start_date(self, cr, uid, ids, context=None):
]
_sql_constraints = [
- ('date_uniq', 'unique(start_date, company_id)', 'You have already created a DES for this month !'),
+ ('date_uniq', 'unique(start_date, company_id)', 'A DES for this month already exists !'),
]
def generate_service_lines(self, cr, uid, ids, context=None):
From 69086088dafc74432116596e47e70559030b4b47 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Mon, 30 Jan 2012 11:30:47 +0100
Subject: [PATCH 022/142] Updated licence pointer.
---
l10n_fr_intrastat_service/intrastat_service_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 2a7a5c8ec..a937d0b52 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -3,7 +3,7 @@
From 364eebe711d5746f58c651f97ab84d4680ab6ca2 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Tue, 5 Jun 2012 15:04:00 +0200
Subject: [PATCH 023/142] Add option "is_accessory_cost" on product.template :
If the invoice has is_accessory_cost services but no regular product -> DES
If the invoice has is_accessory_cost services and regular product -> added to
the cost of products in DEB
Now allows "pricelist for statistical value" which is not in EUR (the currency conversion will be made from the pricelist currency to EUR)
Usability improvements :
- Order for DEB and DES tree view : "the more recent at the top"
- distinction between "Information to declare" and "Additionnal information" in intrastat lines
---
.../intrastat_service.py | 153 ++++++++++++------
.../intrastat_service_view.xml | 7 +-
2 files changed, 108 insertions(+), 52 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 2eff18c67..4e8320810 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -25,10 +25,12 @@
from datetime import datetime
from dateutil.relativedelta import relativedelta
from tools.translate import _
+import decimal_precision as dp
+
class report_intrastat_service(osv.osv):
_name = "report.intrastat.service"
- _order = "start_date"
+ _order = "start_date desc"
_rec_name = "start_date"
_description = "Intrastat report for services"
@@ -44,25 +46,45 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
return self.pool.get('report.intrastat.service').search(cr, uid, [('intrastat_line_ids', 'in', ids)], context=context)
_columns = {
- 'company_id': fields.many2one('res.company', 'Company', required=True, states={'done':[('readonly',True)]}, help="Related company."),
- 'start_date': fields.date('Start date', required=True, states={'done':[('readonly',True)]}, help="Start date of the declaration. Must be the first day of a month."),
- 'end_date': fields.function(_compute_end_date, method=True, type='date', string='End date', store={
- 'report.intrastat.service': (lambda self, cr, uid, ids, c={}: ids, ['start_date'], 20)
- }, help="End date for the declaration. Must be the last day of the month of the start date."),
- 'intrastat_line_ids': fields.one2many('report.intrastat.service.line', 'parent_id', 'Report intrastat service lines', states={'done':[('readonly',True)]}),
- 'num_lines': fields.function(_compute_numbers, method=True, type='integer', multi='numbers', string='Number of lines', store={
- 'report.intrastat.service.line': (_get_intrastat_from_service_line, ['parent_id'], 20),
- }, help="Number of lines in this declaration."),
- 'total_amount': fields.function(_compute_numbers, method=True, digits=(16,0), multi='numbers', string='Total amount', store={
- 'report.intrastat.service.line': (_get_intrastat_from_service_line, ['amount_company_currency', 'parent_id'], 20),
- }, help="Total amount in company currency of the declaration."),
- 'currency_id': fields.related('company_id', 'currency_id', readonly=True, type='many2one', relation='res.currency', string='Currency'),
+ 'company_id': fields.many2one('res.company', 'Company',
+ required=True, states={'done':[('readonly',True)]},
+ help="Related company."),
+ 'start_date': fields.date('Start date', required=True,
+ states={'done':[('readonly',True)]},
+ help="Start date of the declaration. Must be the first day of a month."),
+ 'end_date': fields.function(_compute_end_date, method=True,
+ type='date', string='End date', store={
+ 'report.intrastat.service': (lambda self, cr, uid, ids, c={}: ids, ['start_date'], 20)
+ },
+ help="End date for the declaration. Must be the last day of the month of the start date."),
+ 'intrastat_line_ids': fields.one2many('report.intrastat.service.line',
+ 'parent_id', 'Report intrastat service lines',
+ states={'done':[('readonly',True)]}),
+ 'num_lines': fields.function(_compute_numbers, method=True,
+ type='integer', multi='numbers', string='Number of lines',
+ store={
+ 'report.intrastat.service.line': (_get_intrastat_from_service_line, ['parent_id'], 20),
+ },
+ help="Number of lines in this declaration."),
+ 'total_amount': fields.function(_compute_numbers, method=True,
+ digits_compute=dp.get_precision('Account'),
+ multi='numbers', string='Total amount',
+ store={
+ 'report.intrastat.service.line': (_get_intrastat_from_service_line, ['amount_company_currency', 'parent_id'], 20),
+ },
+ help="Total amount in company currency of the declaration."),
+ 'currency_id': fields.related('company_id', 'currency_id',
+ readonly=True, type='many2one', relation='res.currency',
+ string='Currency'),
'state' : fields.selection([
- ('draft','Draft'),
- ('done','Done'),
- ], 'State', select=True, readonly=True, help="State of the declaration. When the state is set to 'Done', the fields become read-only."),
- 'date_done' : fields.datetime('Date done', readonly=True, help="Last date when the intrastat declaration was converted to 'Done' state."),
- 'notes' : fields.text('Notes', help="You can write some comments here if you want."),
+ ('draft','Draft'),
+ ('done','Done'),
+ ], 'State', select=True, readonly=True,
+ help="State of the declaration. When the state is set to 'Done', the fields become read-only."),
+ 'date_done' : fields.datetime('Date done', readonly=True,
+ help="Last date when the intrastat declaration was converted to 'Done' state."),
+ 'notes' : fields.text('Notes',
+ help="You can write some comments here if you want."),
}
_defaults = {
@@ -112,21 +134,28 @@ def generate_service_lines(self, cr, uid, ids, context=None):
elif not invoice.address_invoice_id.country_id.intrastat:
continue
- amount_invoice_currency_to_write = 0.0
- amount_company_currency_to_write = 0.0
- context['date'] = invoice.date_invoice
+ amount_invoice_cur_to_write = 0.0
+ amount_company_cur_to_write = 0.0
+ amount_invoice_cur_regular_service = 0.0
+ amount_invoice_cur_accessory_cost = 0.0
+ regular_product_in_invoice = False
for line in invoice.invoice_line:
if not line.product_id:
continue
- if line.product_id.type <> 'service':
+ if line.product_id.exclude_from_intrastat:
continue
- if line.product_id.exclude_from_intrastat:
+ if not line.quantity or not line.price_subtotal:
continue
- if not line.quantity:
+ # If we have a regular product/consu in the invoice, we
+ # don't take the is_accessory_cost in DES (it will be in DEB)
+ # If we don't, we declare the is_accessory_cost in DES as other
+ # regular services
+ if line.product_id.type != 'service':
+ regular_product_in_invoice = True
continue
skip_this_line = False
@@ -136,27 +165,35 @@ def generate_service_lines(self, cr, uid, ids, context=None):
if skip_this_line:
continue
- if not line.price_subtotal:
- continue
+ if line.product_id.is_accessory_cost:
+ amount_invoice_cur_accessory_cost += line.price_subtotal
else:
- amount_invoice_currency_to_write += line.price_subtotal
- if invoice.currency_id.name <> 'EUR':
- amount_company_currency_to_write += self.pool.get('res.currency').compute(cr, uid, invoice.currency_id.id, intrastat.company_id.currency_id.id, line.price_subtotal, round=False, context=context)
- else:
- amount_company_currency_to_write += line.price_subtotal
+ amount_invoice_cur_regular_service += line.price_subtotal
+
+ # END of the loop on invoice lines
+ if regular_product_in_invoice:
+ amount_invoice_cur_to_write = amount_invoice_cur_regular_service
+ else:
+ amount_invoice_cur_to_write = amount_invoice_cur_regular_service + amount_invoice_cur_accessory_cost
+
+ if invoice.currency_id.name <> 'EUR':
+ context['date'] = invoice.date_invoice
+ amount_company_cur_to_write = int(round(self.pool.get('res.currency').compute(cr, uid, invoice.currency_id.id, intrastat.company_id.currency_id.id, amount_invoice_cur_to_write, round=False, context=context), 0))
+ else:
+ amount_company_cur_to_write = int(round(amount_invoice_cur_to_write, 0))
- if amount_company_currency_to_write:
+ if amount_company_cur_to_write:
if invoice.type == 'out_refund':
- amount_invoice_currency_to_write = amount_invoice_currency_to_write * (-1)
- amount_company_currency_to_write = amount_company_currency_to_write * (-1)
+ amount_invoice_cur_to_write = amount_invoice_cur_to_write * (-1)
+ amount_company_cur_to_write = amount_company_cur_to_write * (-1)
# Why do I check that the Partner has a VAT number only here and not earlier ?
# Because, if I sell to a physical person in the EU with VAT, then
# the corresponding partner will not have a VAT number, and the entry
# will be skipped because line_tax.exclude_from_intrastat_if_present is always
- # True and amount_company_currency_to_write = 0
+ # True and amount_company_cur_to_write = 0
# So we should not block with a raise before the end of the loop on the
- # invoice lines and the "if amount_company_currency_to_write:"
+ # invoice lines and the "if amount_company_cur_to_write:"
if not invoice.partner_id.vat:
raise osv.except_osv(_('Error :'), _("Missing VAT number on partner '%s'.") %invoice.partner_id.name)
else:
@@ -168,8 +205,8 @@ def generate_service_lines(self, cr, uid, ids, context=None):
'partner_vat': partner_vat_to_write,
'partner_id': invoice.partner_id.id,
'invoice_currency_id': invoice.currency_id.id,
- 'amount_invoice_currency': int(round(amount_invoice_currency_to_write, 0)),
- 'amount_company_currency': int(round(amount_company_currency_to_write, 0)),
+ 'amount_invoice_currency': amount_invoice_cur_to_write,
+ 'amount_company_currency': amount_company_cur_to_write,
}, context=context)
return True
@@ -244,17 +281,33 @@ class report_intrastat_service_line(osv.osv):
_rec_name = "partner_vat"
_order = 'id'
_columns = {
- 'parent_id': fields.many2one('report.intrastat.service', 'Intrastat service ref', ondelete='cascade', select=True),
- 'state' : fields.related('parent_id', 'state', type='string', relation='report.intrastat.service', string='State', readonly=True),
- 'company_id': fields.related('parent_id', 'company_id', type='many2one', relation='res.company', string="Company", readonly=True),
- 'company_currency_id': fields.related('company_id', 'currency_id', type='many2one', relation='res.currency', string="Company currency", readonly=True),
- 'invoice_id': fields.many2one('account.invoice', 'Invoice ref', readonly=True),
- 'date_invoice' : fields.related('invoice_id', 'date_invoice', type='date', relation='account.invoice', string='Invoice date', readonly=True),
- 'partner_vat': fields.char('Customer VAT', size=32, states={'done':[('readonly',True)]}),
- 'partner_id': fields.many2one('res.partner', 'Partner name', states={'done':[('readonly',True)]}),
- 'amount_company_currency': fields.integer('Amount in company cur.', states={'done':[('readonly',True)]}),
- 'amount_invoice_currency': fields.integer('Amount in invoice cur.', readonly=True),
- 'invoice_currency_id': fields.many2one('res.currency', "Invoice currency", readonly=True),
+ 'parent_id': fields.many2one('report.intrastat.service',
+ 'Intrastat service ref', ondelete='cascade', select=True),
+ 'state' : fields.related('parent_id', 'state', type='string',
+ relation='report.intrastat.service', string='State', readonly=True),
+ 'company_id': fields.related('parent_id', 'company_id',
+ type='many2one', relation='res.company',
+ string="Company", readonly=True),
+ 'company_currency_id': fields.related('company_id', 'currency_id',
+ type='many2one', relation='res.currency',
+ string="Company currency", readonly=True),
+ 'invoice_id': fields.many2one('account.invoice', 'Invoice ref',
+ readonly=True),
+ 'date_invoice' : fields.related('invoice_id', 'date_invoice',
+ type='date', relation='account.invoice',
+ string='Invoice date', readonly=True),
+ 'partner_vat': fields.char('Customer VAT', size=32,
+ states={'done':[('readonly',True)]}),
+ 'partner_id': fields.many2one('res.partner', 'Partner name',
+ states={'done':[('readonly',True)]}),
+ 'amount_company_currency': fields.integer('Amount in company currency',
+ states={'done':[('readonly',True)]},
+ help="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 and rounded at 0 digits"),
+ 'amount_invoice_currency': fields.float('Amount in invoice currency',
+ digits_compute=dp.get_precision('Account'), readonly=True,
+ help="Amount in invoice currency (not rounded)"),
+ 'invoice_currency_id': fields.many2one('res.currency',
+ "Invoice currency", readonly=True),
}
def partner_on_change(self, cr, uid, ids, partner_id=False):
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index a937d0b52..16dbf3e89 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -87,13 +87,16 @@
form
From 388d1ced81791fbd534012f5c5d1f7980aacf805 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Tue, 5 Jun 2012 16:56:54 +0200
Subject: [PATCH 024/142] Update FR translation.
---
l10n_fr_intrastat_service/i18n/fr.po | 82 ++++++++++++-------
.../i18n/l10n_fr_intrastat_service.pot | 74 +++++++++++------
2 files changed, 98 insertions(+), 58 deletions(-)
diff --git a/l10n_fr_intrastat_service/i18n/fr.po b/l10n_fr_intrastat_service/i18n/fr.po
index ad331b45e..3518e2e9f 100644
--- a/l10n_fr_intrastat_service/i18n/fr.po
+++ b/l10n_fr_intrastat_service/i18n/fr.po
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 6.0.3\n"
+"Project-Id-Version: OpenERP Server 6.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2011-09-09 08:25+0000\n"
-"PO-Revision-Date: 2011-09-09 08:25+0000\n"
+"POT-Creation-Date: 2012-06-05 14:49+0000\n"
+"PO-Revision-Date: 2012-06-05 14:49+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -21,9 +21,11 @@ msgid "Invoice ref"
msgstr "Réf facture"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,amount_company_currency:0
-msgid "Amount in company cur."
-msgstr "Montant en monnaie société"
+#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.fr_intrastat_service_tree_action
+#: model:ir.ui.menu,name:l10n_fr_intrastat_service.fr_intrastat_service_menu
+#: view:report.intrastat.service:0
+msgid "Intrastat Service"
+msgstr "DES"
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service.line,company_currency_id:0
@@ -46,16 +48,16 @@ msgstr "Brouillon"
msgid "Start date"
msgstr "Date de début"
-#. module: l10n_fr_intrastat_service
-#: sql_constraint:report.intrastat.service:0
-msgid "A DES for this month already exists !"
-msgstr "Une DES est déjà crée pour ce mois !"
-
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
msgid "Back to draft"
msgstr "Retour au brouillon"
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service.line,amount_company_currency:0
+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 and rounded at 0 digits"
+msgstr "Montant dans la monnaie de la société à reporter dans la déclaration. Montant dans la monnaie de la société = montant dans la monnaie de la facture converti au taux de la date de la facture et arrondi à l'entier le plus proche"
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service.line,partner_id:0
msgid "Partner name"
@@ -107,9 +109,9 @@ msgid "Invoice currency"
msgstr "Monnaie de la facture"
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-msgid "Attach XML file"
-msgstr "Attacher le fichier XML"
+#: view:report.intrastat.service.line:0
+msgid "Information to declare"
+msgstr "Informations à déclarer"
#. module: l10n_fr_intrastat_service
#: help:report.intrastat.service,num_lines:0
@@ -128,27 +130,37 @@ msgid "Total amount"
msgstr "Montant total"
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:161
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:226
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:198
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:263
#, python-format
msgid "Missing VAT number on partner '%s'."
msgstr "Numéro de TVA non renseigné pour le partenaire '%s'."
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:111
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:161
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:179
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:184
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:226
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:133
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:198
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:216
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:221
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:263
#, python-format
msgid "Error :"
msgstr "Erreur :"
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Additionnal information"
+msgstr "Informations complémentaires"
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,intrastat_line_ids:0
msgid "Report intrastat service lines"
msgstr "Lignes de DES"
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service.line,amount_invoice_currency:0
+msgid "Amount in invoice currency (not rounded)"
+msgstr "Montant dans la monnaie de la facture (non arrondi)"
+
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
#: field:report.intrastat.service,notes:0
@@ -166,17 +178,25 @@ msgid "State of the declaration. When the state is set to 'Done', the fields bec
msgstr "Etat de la déclaration. Quand l'état est à 'Déclaré', les champs passent en lecture seule."
#. module: l10n_fr_intrastat_service
-#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.fr_intrastat_service_tree_action
-#: model:ir.ui.menu,name:l10n_fr_intrastat_service.fr_intrastat_service_menu
+#: sql_constraint:report.intrastat.service:0
+msgid "A DES for this month already exists !"
+msgstr "Une DES est déjà crée pour ce mois !"
+
+#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
-msgid "Intrastat Service"
-msgstr "DES"
+msgid "Attach XML file"
+msgstr "Attacher le fichier XML"
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service.line:0
msgid "Intrastat service lines"
msgstr "Lignes de DES"
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,amount_company_currency:0
+msgid "Amount in company currency"
+msgstr "Montant dans la monnaie de la société"
+
#. module: l10n_fr_intrastat_service
#: help:report.intrastat.service,start_date:0
msgid "Start date of the declaration. Must be the first day of a month."
@@ -207,18 +227,13 @@ msgstr "Montant total en monnaie société de la déclaration."
msgid "Related company."
msgstr "Société associée."
-#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,amount_invoice_currency:0
-msgid "Amount in invoice cur."
-msgstr "Montant en monn. de la fact."
-
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service.line,partner_vat:0
msgid "Customer VAT"
msgstr "N° TVA du client"
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:111
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:133
#, python-format
msgid "Missing country on partner address '%s' of partner '%s'."
msgstr "Pays non renseigné sur l'adresse partenaire '%s' du partenaire '%s'."
@@ -234,6 +249,11 @@ msgstr "Etat"
msgid "Start date must be the first day of a month"
msgstr "La date de début doit être le premier jour d'un mois"
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,amount_invoice_currency:0
+msgid "Amount in invoice currency"
+msgstr "Montant dans la monnaie de la facture"
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,currency_id:0
msgid "Currency"
diff --git a/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot b/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
index 77b3bd886..5a965b46c 100644
--- a/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
+++ b/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 6.0.3\n"
+"Project-Id-Version: OpenERP Server 6.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2011-09-09 08:18+0000\n"
-"PO-Revision-Date: 2011-09-09 08:18+0000\n"
+"POT-Creation-Date: 2012-06-05 14:48+0000\n"
+"PO-Revision-Date: 2012-06-05 14:48+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -21,8 +21,10 @@ msgid "Invoice ref"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,amount_company_currency:0
-msgid "Amount in company cur."
+#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.fr_intrastat_service_tree_action
+#: model:ir.ui.menu,name:l10n_fr_intrastat_service.fr_intrastat_service_menu
+#: view:report.intrastat.service:0
+msgid "Intrastat Service"
msgstr ""
#. module: l10n_fr_intrastat_service
@@ -47,13 +49,13 @@ msgid "Start date"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: sql_constraint:report.intrastat.service:0
-msgid "A DES for this month already exists !"
+#: view:report.intrastat.service:0
+msgid "Back to draft"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-msgid "Back to draft"
+#: help:report.intrastat.service.line,amount_company_currency:0
+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 and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
@@ -100,8 +102,8 @@ msgid "Invoice currency"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-msgid "Attach XML file"
+#: view:report.intrastat.service.line:0
+msgid "Information to declare"
msgstr ""
#. module: l10n_fr_intrastat_service
@@ -121,27 +123,37 @@ msgid "Total amount"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:161
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:226
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:198
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:263
#, python-format
msgid "Missing VAT number on partner '%s'."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:111
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:161
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:179
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:184
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:226
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:133
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:198
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:216
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:221
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:263
#, python-format
msgid "Error :"
msgstr ""
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Additionnal information"
+msgstr ""
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,intrastat_line_ids:0
msgid "Report intrastat service lines"
msgstr ""
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service.line,amount_invoice_currency:0
+msgid "Amount in invoice currency (not rounded)"
+msgstr ""
+
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
#: field:report.intrastat.service,notes:0
@@ -159,10 +171,13 @@ msgid "State of the declaration. When the state is set to 'Done', the fields bec
msgstr ""
#. module: l10n_fr_intrastat_service
-#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.fr_intrastat_service_tree_action
-#: model:ir.ui.menu,name:l10n_fr_intrastat_service.fr_intrastat_service_menu
+#: sql_constraint:report.intrastat.service:0
+msgid "A DES for this month already exists !"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
-msgid "Intrastat Service"
+msgid "Attach XML file"
msgstr ""
#. module: l10n_fr_intrastat_service
@@ -170,6 +185,11 @@ msgstr ""
msgid "Intrastat service lines"
msgstr ""
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,amount_company_currency:0
+msgid "Amount in company currency"
+msgstr ""
+
#. module: l10n_fr_intrastat_service
#: help:report.intrastat.service,start_date:0
msgid "Start date of the declaration. Must be the first day of a month."
@@ -200,18 +220,13 @@ msgstr ""
msgid "Related company."
msgstr ""
-#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,amount_invoice_currency:0
-msgid "Amount in invoice cur."
-msgstr ""
-
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service.line,partner_vat:0
msgid "Customer VAT"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:111
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:133
#, python-format
msgid "Missing country on partner address '%s' of partner '%s'."
msgstr ""
@@ -227,6 +242,11 @@ msgstr ""
msgid "Start date must be the first day of a month"
msgstr ""
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,amount_invoice_currency:0
+msgid "Amount in invoice currency"
+msgstr ""
+
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,currency_id:0
msgid "Currency"
From 3feb702ad711b94d5ce3d1dee1a44da328934ca1 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Tue, 27 Nov 2012 17:08:30 +0100
Subject: [PATCH 025/142] Code clean-up : - context is not passed in
constraints - don't use lambda when not necessary
---
l10n_fr_intrastat_service/intrastat_service.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 4e8320810..f4a950b04 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -91,14 +91,14 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
# By default, we propose 'current month -1', because you prepare in
# february the DES of January
'start_date': lambda *a: datetime.strftime(datetime.today() + relativedelta(day=1, months=-1), '%Y-%m-%d'),
- 'state': lambda *a: 'draft',
+ 'state': 'draft',
'company_id': lambda self, cr, uid, context: \
self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id,
}
- def _check_start_date(self, cr, uid, ids, context=None):
- return self.pool.get('report.intrastat.common')._check_start_date(cr, uid, ids, self, context=context)
+ def _check_start_date(self, cr, uid, ids):
+ return self.pool.get('report.intrastat.common')._check_start_date(cr, uid, ids, self)
_constraints = [
(_check_start_date, "Start date must be the first day of a month", ['start_date']),
From 99008949ebcd881885f41939823e6b4831b28240 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Tue, 23 Apr 2013 15:39:08 +0200
Subject: [PATCH 026/142] IMPORTANT CHANGE : - All EU countries should now be
intrastat=True, including your own country - When generating lines for
Intrastat Product/Service, all invoices for which country == Company's
country are excluded
---
l10n_fr_intrastat_service/intrastat_service.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index f4a950b04..71c39b2e7 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -133,6 +133,8 @@ def generate_service_lines(self, cr, uid, ids, context=None):
raise osv.except_osv(_('Error :'), _("Missing country on partner address '%s' of partner '%s'.") %(invoice.address_invoice_id.name, invoice.address_invoice_id.partner_id.name))
elif not invoice.address_invoice_id.country_id.intrastat:
continue
+ elif invoice.address_invoice_id.country_id.id == intrastat.company_id.country_id.id:
+ continue
amount_invoice_cur_to_write = 0.0
amount_company_cur_to_write = 0.0
From 2dc011dfeaa03906046a6e73d4fa2d4de2f695a0 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Wed, 24 Apr 2013 10:55:14 +0200
Subject: [PATCH 027/142] Initial port to v7.0. Not tested a lot for the
moment.
---
l10n_fr_intrastat_service/__init__.py | 2 +-
l10n_fr_intrastat_service/__openerp__.py | 6 ++--
.../intrastat_service.py | 29 ++++++++-----------
.../intrastat_service_view.xml | 24 ++++-----------
4 files changed, 23 insertions(+), 38 deletions(-)
diff --git a/l10n_fr_intrastat_service/__init__.py b/l10n_fr_intrastat_service/__init__.py
index 0fa733f6e..260fa839a 100644
--- a/l10n_fr_intrastat_service/__init__.py
+++ b/l10n_fr_intrastat_service/__init__.py
@@ -2,7 +2,7 @@
##############################################################################
#
# Report intrastat service module for OpenERP (DES)
-# Copyright (C) 2010-2011 Akretion (http://www.akretion.com). All Rights Reserved
+# Copyright (C) 2010-2013 Akretion (http://www.akretion.com). All Rights Reserved
# @author Alexis de Lattre
#
# This program is free software: you can redistribute it and/or modify
diff --git a/l10n_fr_intrastat_service/__openerp__.py b/l10n_fr_intrastat_service/__openerp__.py
index 98f683254..cc1ee7c74 100644
--- a/l10n_fr_intrastat_service/__openerp__.py
+++ b/l10n_fr_intrastat_service/__openerp__.py
@@ -2,7 +2,7 @@
##############################################################################
#
# Report intrastat service module for OpenERP (DES)
-# Copyright (C) 2010-2011 Akretion (http://www.akretion.com). All Rights Reserved
+# Copyright (C) 2010-2013 Akretion (http://www.akretion.com)
# @author Alexis de Lattre
#
# This program is free software: you can redistribute it and/or modify
@@ -22,10 +22,11 @@
{
- 'name': 'Module for Intrastat service reporting (DES) for France',
+ 'name': 'France Intrastat Service',
'version': '1.1',
'category': 'Localisation/Report Intrastat',
'license': 'AGPL-3',
+ 'summary': 'Module for Intrastat service reporting (DES) for France',
'description': """This module adds support for the "Déclaration Européenne des Services" (DES).
The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France's Customs administration if they sell services to other EU companies.
@@ -45,4 +46,5 @@
'demo_xml': [],
'installable': True,
'active': False,
+ 'application': True,
}
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 71c39b2e7..3047e5c5b 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -2,7 +2,7 @@
##############################################################################
#
# Report intrastat service module for OpenERP (DES)
-# Copyright (C) 2010-2011 Akretion (http://www.akretion.com/). All rights reserved.
+# Copyright (C) 2010-2013 Akretion (http://www.akretion.com/)
# @author Alexis de Lattre
#
# This program is free software: you can redistribute it and/or modify
@@ -21,14 +21,14 @@
##############################################################################
-from osv import osv, fields
+from openerp.osv import osv, fields
+from openerp.tools.translate import _
from datetime import datetime
from dateutil.relativedelta import relativedelta
-from tools.translate import _
import decimal_precision as dp
-class report_intrastat_service(osv.osv):
+class report_intrastat_service(osv.Model):
_name = "report.intrastat.service"
_order = "start_date desc"
_rec_name = "start_date"
@@ -129,11 +129,11 @@ def generate_service_lines(self, cr, uid, ids, context=None):
#print "invoice_ids=", invoice_ids
for invoice in invoice_obj.browse(cr, uid, invoice_ids, context=context):
- if not invoice.address_invoice_id.country_id:
- raise osv.except_osv(_('Error :'), _("Missing country on partner address '%s' of partner '%s'.") %(invoice.address_invoice_id.name, invoice.address_invoice_id.partner_id.name))
- elif not invoice.address_invoice_id.country_id.intrastat:
+ if not invoice.partner_id.country_id:
+ raise osv.except_osv(_('Error :'), _("Missing country on partner '%s'.") %invoice.partner_id.name)
+ elif not invoice.partner_id.country_id.intrastat:
continue
- elif invoice.address_invoice_id.country_id.id == intrastat.company_id.country_id.id:
+ elif invoice.partner_id.country_id.id == intrastat.company_id.country_id.id:
continue
amount_invoice_cur_to_write = 0.0
@@ -277,16 +277,14 @@ def generate_xml(self, cr, uid, ids, context=None):
report_intrastat_service()
-class report_intrastat_service_line(osv.osv):
+class report_intrastat_service_line(osv.Model):
_name = "report.intrastat.service.line"
_description = "Lines of intrastat service declaration (DES)"
_rec_name = "partner_vat"
_order = 'id'
_columns = {
'parent_id': fields.many2one('report.intrastat.service',
- 'Intrastat service ref', ondelete='cascade', select=True),
- 'state' : fields.related('parent_id', 'state', type='string',
- relation='report.intrastat.service', string='State', readonly=True),
+ 'Intrastat service ref', ondelete='cascade'),
'company_id': fields.related('parent_id', 'company_id',
type='many2one', relation='res.company',
string="Company", readonly=True),
@@ -298,12 +296,9 @@ class report_intrastat_service_line(osv.osv):
'date_invoice' : fields.related('invoice_id', 'date_invoice',
type='date', relation='account.invoice',
string='Invoice date', readonly=True),
- 'partner_vat': fields.char('Customer VAT', size=32,
- states={'done':[('readonly',True)]}),
- 'partner_id': fields.many2one('res.partner', 'Partner name',
- states={'done':[('readonly',True)]}),
+ 'partner_vat': fields.char('Customer VAT', size=32),
+ 'partner_id': fields.many2one('res.partner', 'Partner name'),
'amount_company_currency': fields.integer('Amount in company currency',
- states={'done':[('readonly',True)]},
help="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 and rounded at 0 digits"),
'amount_invoice_currency': fields.float('Amount in invoice currency',
digits_compute=dp.get_precision('Account'), readonly=True,
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 16dbf3e89..18a056e66 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -1,7 +1,7 @@
@@ -13,9 +13,8 @@
fr.intrastat.service.formreport.intrastat.service
- form
-
From f71ec7b9c952f49b138442bf22bff92e80738a49 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Wed, 23 Oct 2013 23:23:35 +0200
Subject: [PATCH 034/142] Fix to make the module truly usable when user is not
part of the group "Detailed intrastat product". Remove dead code and fields
that was used when we had to put DEB lines for repair operations (a thing of
the past !). Update coding style. Reduce the number of flake8 warnings.
---
l10n_fr_intrastat_service/__init__.py | 2 +-
.../intrastat_service.py | 62 +++++++++----------
2 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/l10n_fr_intrastat_service/__init__.py b/l10n_fr_intrastat_service/__init__.py
index 260fa839a..95bca52b5 100644
--- a/l10n_fr_intrastat_service/__init__.py
+++ b/l10n_fr_intrastat_service/__init__.py
@@ -20,4 +20,4 @@
#
##############################################################################
-import intrastat_service
+from . import intrastat_service
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 0f6fb69d2..9152597bc 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -21,7 +21,7 @@
##############################################################################
-from openerp.osv import osv, orm, fields
+from openerp.osv import orm, fields
from openerp.tools.translate import _
import openerp.addons.decimal_precision as dp
from datetime import datetime
@@ -31,7 +31,7 @@
logger = logging.getLogger(__name__)
-class report_intrastat_service(osv.Model):
+class report_intrastat_service(orm.Model):
_name = "report.intrastat.service"
_order = "start_date desc"
_rec_name = "start_date"
@@ -68,10 +68,10 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
_columns = {
'company_id': fields.many2one('res.company', 'Company',
- required=True, states={'done':[('readonly',True)]},
+ required=True, states={'done': [('readonly', True)]},
help="Related company."),
'start_date': fields.date('Start date', required=True,
- states={'done':[('readonly',True)]},
+ states={'done': [('readonly', True)]},
help="Start date of the declaration. Must be the first day of a month."),
'end_date': fields.function(_compute_dates, type='date',
string='End date', multi='intrastat-service-dates', readonly=True,
@@ -87,7 +87,7 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
help="Year and month of the declaration."),
'intrastat_line_ids': fields.one2many('report.intrastat.service.line',
'parent_id', 'Report intrastat service lines',
- states={'done':[('readonly',True)]}),
+ states={'done': [('readonly', True)]}),
'num_lines': fields.function(_compute_numbers,
type='integer', multi='numbers', string='Number of lines',
store={
@@ -106,9 +106,9 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
'currency_id': fields.related('company_id', 'currency_id',
readonly=True, type='many2one', relation='res.currency',
string='Currency'),
- 'state' : fields.selection([
- ('draft','Draft'),
- ('done','Done'),
+ 'state': fields.selection([
+ ('draft', 'Draft'),
+ ('done', 'Done'),
], 'State', select=True, readonly=True, track_visibility='onchange',
help="State of the declaration. When the state is set to 'Done', the fields become read-only."),
# No more need for date_done, because chatter does the job
@@ -119,8 +119,8 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
# february the DES of January
'start_date': lambda *a: datetime.strftime(datetime.today() + relativedelta(day=1, months=-1), '%Y-%m-%d'),
'state': 'draft',
- 'company_id': lambda self, cr, uid, context: \
- self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id,
+ 'company_id': lambda self, cr, uid, context:
+ self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id,
}
@@ -128,11 +128,13 @@ def _check_start_date(self, cr, uid, ids):
return self.pool.get('report.intrastat.common')._check_start_date(cr, uid, ids, self)
_constraints = [
- (_check_start_date, "Start date must be the first day of a month", ['start_date']),
+ (_check_start_date, "Start date must be the first day of a month",
+ ['start_date']),
]
_sql_constraints = [
- ('date_uniq', 'unique(start_date, company_id)', 'A DES for this month already exists !'),
+ ('date_uniq', 'unique(start_date, company_id)',
+ 'A DES for this month already exists !'),
]
def generate_service_lines(self, cr, uid, ids, context=None):
@@ -157,7 +159,7 @@ def generate_service_lines(self, cr, uid, ids, context=None):
for invoice in invoice_obj.browse(cr, uid, invoice_ids, context=context):
if not invoice.partner_id.country_id:
- raise osv.except_osv(_('Error :'), _("Missing country on partner '%s'.") %invoice.partner_id.name)
+ raise orm.except_orm(_('Error :'), _("Missing country on partner '%s'.") % invoice.partner_id.name)
elif not invoice.partner_id.country_id.intrastat:
continue
elif invoice.partner_id.country_id.id == intrastat.company_id.country_id.id:
@@ -211,7 +213,7 @@ def generate_service_lines(self, cr, uid, ids, context=None):
else:
amount_invoice_cur_to_write = amount_invoice_cur_regular_service + amount_invoice_cur_accessory_cost
- if invoice.currency_id.name <> 'EUR':
+ if invoice.currency_id.name != 'EUR':
context['date'] = invoice.date_invoice
amount_company_cur_to_write = int(round(self.pool.get('res.currency').compute(cr, uid, invoice.currency_id.id, intrastat.company_id.currency_id.id, amount_invoice_cur_to_write, round=False, context=context), 0))
else:
@@ -230,7 +232,7 @@ def generate_service_lines(self, cr, uid, ids, context=None):
# So we should not block with a raise before the end of the loop on the
# invoice lines and the "if amount_company_cur_to_write:"
if not invoice.partner_id.vat:
- raise osv.except_osv(_('Error :'), _("Missing VAT number on partner '%s'.") %invoice.partner_id.name)
+ raise orm.except_orm(_('Error :'), _("Missing VAT number on partner '%s'.") % invoice.partner_id.name)
else:
partner_vat_to_write = invoice.partner_id.vat
@@ -246,18 +248,16 @@ def generate_service_lines(self, cr, uid, ids, context=None):
return True
-
def done(self, cr, uid, ids, context=None):
- if len(ids) != 1: raise osv.except_osv(_('Error :'), 'Hara kiri in done')
+ assert len(ids) == 1, "Only one ID accepted"
self.write(cr, uid, ids[0], {'state': 'done'}, context=context)
return True
def back2draft(self, cr, uid, ids, context=None):
- if len(ids) != 1: raise osv.except_osv(_('Error :'), 'Hara kiri in back2draft')
+ assert len(ids) == 1, "Only one ID accepted"
self.write(cr, uid, ids[0], {'state': 'draft'}, context=context)
return True
-
def generate_xml(self, cr, uid, ids, context=None):
#print "generate xml ids=", ids
import des_xsd
@@ -280,13 +280,13 @@ def generate_xml(self, cr, uid, ids, context=None):
num_tva = etree.SubElement(decl, 'num_tvaFr')
num_tva.text = my_company_vat
mois_des = etree.SubElement(decl, 'mois_des')
- mois_des.text = datetime.strftime(start_date_datetime, '%m') # month 2 digits
+ mois_des.text = datetime.strftime(start_date_datetime, '%m') # month 2 digits
an_des = etree.SubElement(decl, 'an_des')
an_des.text = datetime.strftime(start_date_datetime, '%Y')
line = 0
# we now go through each service line
for sline in intrastat.intrastat_line_ids:
- line += 1 # increment line number
+ line += 1 # increment line number
ligne_des = etree.SubElement(decl, 'ligne_des')
numlin_des = etree.SubElement(ligne_des, 'numlin_des')
numlin_des.text = str(line)
@@ -294,8 +294,10 @@ def generate_xml(self, cr, uid, ids, context=None):
# We take amount_company_currency, to be sure we have amounts in EUR
valeur.text = str(sline.amount_company_currency)
partner_des = etree.SubElement(ligne_des, 'partner_des')
- try: partner_des.text = sline.partner_vat.replace(' ', '')
- except: raise osv.except_osv(_('Error :'), _("Missing VAT number on partner '%s'.") %sline.partner_id.name)
+ try:
+ partner_des.text = sline.partner_vat.replace(' ', '')
+ except:
+ raise orm.except_orm(_('Error :'), _("Missing VAT number on partner '%s'.") % sline.partner_id.name)
xml_string = etree.tostring(root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
#print "xml_string", xml_string
@@ -304,7 +306,7 @@ def generate_xml(self, cr, uid, ids, context=None):
# Attach the XML file
attach_id = self.pool.get('report.intrastat.common')._attach_xml_file(cr, uid, ids, self, xml_string, start_date_datetime, 'des', context=context)
- return self.pool.get('report.intrastat.common')._open_attach_view(cr, uid, attach_id, 'DES XML file', context=context) # Works on v6 only - Makes the client crash on v5
+ return self.pool.get('report.intrastat.common')._open_attach_view(cr, uid, attach_id, 'DES XML file', context=context)
def _scheduler_reminder(self, cr, uid, context=None):
@@ -320,18 +322,18 @@ def _scheduler_reminder(self, cr, uid, context=None):
# in the future, we may check the state and send a mail
# if the state is still in draft ?
if intrastat_ids:
- logger.info('An Intrastat Service for month %s already exists for company %s' %(previous_month, company.name))
+ logger.info('An Intrastat Service for month %s already exists for company %s' % (previous_month, company.name))
continue
else:
# If not, we create an intrastat.service for month N-1
intrastat_id = self.create(cr, uid, {
'company_id': company.id,
}, context=context)
- logger.info('An Intrastat Service for month %s has been created by OpenERP for company %s' %(previous_month, company.name))
+ logger.info('An Intrastat Service for month %s has been created by OpenERP for company %s' % (previous_month, company.name))
# we try to generate the lines
try:
self.generate_service_lines(cr, uid, [intrastat_id], context=context)
- except Exception as e: # TODO filter on exception from except_orm
+ except Exception as e: # TODO filter on exception from except_orm
context['exception'] = True
#print "e=", e
context['error_msg'] = e[1]
@@ -341,7 +343,7 @@ def _scheduler_reminder(self, cr, uid, context=None):
return True
-class report_intrastat_service_line(osv.Model):
+class report_intrastat_service_line(orm.Model):
_name = "report.intrastat.service.line"
_description = "Lines of intrastat service declaration (DES)"
_rec_name = "partner_vat"
@@ -357,7 +359,7 @@ class report_intrastat_service_line(osv.Model):
string="Company currency", readonly=True),
'invoice_id': fields.many2one('account.invoice', 'Invoice ref',
readonly=True),
- 'date_invoice' : fields.related('invoice_id', 'date_invoice',
+ 'date_invoice': fields.related('invoice_id', 'date_invoice',
type='date', relation='account.invoice',
string='Invoice date', readonly=True),
'partner_vat': fields.char('Customer VAT', size=32),
@@ -373,5 +375,3 @@ class report_intrastat_service_line(osv.Model):
def partner_on_change(self, cr, uid, ids, partner_id=False):
return self.pool.get('report.intrastat.common').partner_on_change(cr, uid, ids, partner_id)
-
-
From 09b71ddf9418fdaef47c7e65feb32971bd906d28 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Sat, 1 Feb 2014 23:43:05 +0100
Subject: [PATCH 035/142] Add ir.rule for multi-company. Better "OpenERP v7
style/ergonomy" for FR intrastat reports
---
l10n_fr_intrastat_service/__openerp__.py | 1 +
.../intrastat_service.py | 2 +-
.../intrastat_service_view.xml | 24 ++++++++++---------
.../security/intrastat_service_security.xml | 21 ++++++++++++++++
4 files changed, 36 insertions(+), 12 deletions(-)
create mode 100644 l10n_fr_intrastat_service/security/intrastat_service_security.xml
diff --git a/l10n_fr_intrastat_service/__openerp__.py b/l10n_fr_intrastat_service/__openerp__.py
index ce3e67f17..b3e151bf3 100644
--- a/l10n_fr_intrastat_service/__openerp__.py
+++ b/l10n_fr_intrastat_service/__openerp__.py
@@ -42,6 +42,7 @@
'security/ir.model.access.csv',
'intrastat_service_view.xml',
'intrastat_service_reminder.xml',
+ 'security/intrastat_service_security.xml',
],
'demo': [],
'installable': True,
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 9152597bc..837de480d 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -345,7 +345,7 @@ def _scheduler_reminder(self, cr, uid, context=None):
class report_intrastat_service_line(orm.Model):
_name = "report.intrastat.service.line"
- _description = "Lines of intrastat service declaration (DES)"
+ _description = "Intrastat Service Lines"
_rec_name = "partner_vat"
_order = 'id'
_columns = {
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 34066c8c1..2d282e844 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -18,6 +18,8 @@
+
+
@@ -27,17 +29,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n_fr_intrastat_service/security/intrastat_service_security.xml b/l10n_fr_intrastat_service/security/intrastat_service_security.xml
new file mode 100644
index 000000000..1caf7d9d3
--- /dev/null
+++ b/l10n_fr_intrastat_service/security/intrastat_service_security.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ Intrastat Service multi-company
+
+
+ ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]
+
+
+
+
+ Intrastat Service Line multi-company
+
+
+ ['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]
+
+
+
+
From aaca2dfda72b634e69fa567be9591282b361ca02 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Sat, 8 Mar 2014 14:37:02 +0100
Subject: [PATCH 036/142] Only send reminder for French companies.
---
l10n_fr_intrastat_service/intrastat_service.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index 837de480d..a98fc9b12 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -313,9 +313,14 @@ def _scheduler_reminder(self, cr, uid, context=None):
if context is None:
context = {}
previous_month = datetime.strftime(datetime.today() + relativedelta(day=1, months=-1), '%Y-%m')
- company_ids = self.pool.get('res.company').search(cr, uid, [], context=context)
+ # I can't search on [('country_id', '=', ...)]
+ # because it is a fields.function not stored and without fnct_search
+ company_ids = self.pool['res.company'].search(
+ cr, uid, [], context=context)
logger.info('Starting the Intrastat Service reminder')
for company in self.pool['res.company'].browse(cr, uid, company_ids, context=None):
+ if company.country_id.code != 'FR':
+ continue
# Check if an intrastat service already exists for month N-1
intrastat_ids = self.search(cr, uid, [('year_month', '=', previous_month), ('company_id', '=', company.id)], context=context)
# if it already exists, we don't do anything
From 9751163f6b87c78e0dc05a289abd7481776ed39e Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Mon, 14 Apr 2014 16:32:08 +0200
Subject: [PATCH 037/142] Use l10n_fr_* : use the method _company_default_get()
intrastat_base : - the module is now PEP-8 compliant ! - add search view on
countries - is_accessory_cost is now invisible when product != service -
update POT file and FR translation - remove double import of logging lib
---
l10n_fr_intrastat_service/intrastat_service.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index a98fc9b12..e48debe62 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -120,7 +120,7 @@ def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
'start_date': lambda *a: datetime.strftime(datetime.today() + relativedelta(day=1, months=-1), '%Y-%m-%d'),
'state': 'draft',
'company_id': lambda self, cr, uid, context:
- self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id,
+ self.pool['res.company']._company_default_get(cr, uid, 'report.intrastat.service', context=context),
}
From 6f811f89069292c79a12599cafdd57c3fca76596 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Mon, 14 Apr 2014 19:41:39 +0200
Subject: [PATCH 038/142] Add context in on_change (to be able to use
web_context_tunnel) XSD files are now pure XSD files, not python file with
the content as string. Convert l10n_fr_intrastat_service to PEP-8 Start to
convert l10n_fr_intrastat_product to PEP-8 (not finished yet)
l10n_fr_intrastat_product : Update POT file and FR translation.
---
.../{des_xsd.py => data/des.xsd} | 5 +-
.../intrastat_service.py | 292 +++++++++++-------
.../intrastat_service_view.xml | 2 +-
3 files changed, 189 insertions(+), 110 deletions(-)
rename l10n_fr_intrastat_service/{des_xsd.py => data/des.xsd} (98%)
diff --git a/l10n_fr_intrastat_service/des_xsd.py b/l10n_fr_intrastat_service/data/des.xsd
similarity index 98%
rename from l10n_fr_intrastat_service/des_xsd.py
rename to l10n_fr_intrastat_service/data/des.xsd
index 96995e6c6..471a996fe 100644
--- a/l10n_fr_intrastat_service/des_xsd.py
+++ b/l10n_fr_intrastat_service/data/des.xsd
@@ -1,6 +1,4 @@
-# -*- encoding: utf-8 -*-
-
-des_xsd = '''\
+
@@ -133,4 +131,3 @@
-'''
diff --git a/l10n_fr_intrastat_service/intrastat_service.py b/l10n_fr_intrastat_service/intrastat_service.py
index e48debe62..86514c1fa 100644
--- a/l10n_fr_intrastat_service/intrastat_service.py
+++ b/l10n_fr_intrastat_service/intrastat_service.py
@@ -26,7 +26,9 @@
import openerp.addons.decimal_precision as dp
from datetime import datetime
from dateutil.relativedelta import relativedelta
+from openerp.tools import DEFAULT_SERVER_DATE_FORMAT
import logging
+from lxml import etree
logger = logging.getLogger(__name__)
@@ -39,114 +41,140 @@ class report_intrastat_service(orm.Model):
_description = "Intrastat Service"
_track = {
'state': {
- 'l10n_fr_intrastat_service.declaration_done': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'done',
+ 'l10n_fr_intrastat_service.declaration_done':
+ lambda self, cr, uid, obj, ctx=None: obj['state'] == 'done',
}
}
-
def copy(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
default.update({
- 'start_date': datetime.strftime(datetime.today() + relativedelta(day=1, months=-1), '%Y-%m-%d'),
+ 'start_date': datetime.strftime(
+ datetime.today() + relativedelta(day=1, months=-1),
+ DEFAULT_SERVER_DATE_FORMAT),
'intrastat_line_ids': False,
'state': 'draft',
})
- return super(report_intrastat_service, self).copy(cr, uid, id, default=default, context=context)
-
+ return super(report_intrastat_service, self).copy(
+ cr, uid, id, default=default, context=context)
def _compute_numbers(self, cr, uid, ids, name, arg, context=None):
- return self.pool.get('report.intrastat.common')._compute_numbers(cr, uid, ids, self, context=context)
-
+ return self.pool['report.intrastat.common']._compute_numbers(
+ cr, uid, ids, self, context=context)
def _compute_dates(self, cr, uid, ids, name, arg, context=None):
- return self.pool.get('report.intrastat.common')._compute_dates(cr, uid, ids, self, context=context)
-
+ return self.pool['report.intrastat.common']._compute_dates(
+ cr, uid, ids, self, context=context)
def _get_intrastat_from_service_line(self, cr, uid, ids, context=None):
- return self.pool.get('report.intrastat.service').search(cr, uid, [('intrastat_line_ids', 'in', ids)], context=context)
+ return self.pool['report.intrastat.service'].search(
+ cr, uid, [('intrastat_line_ids', 'in', ids)], context=context)
_columns = {
- 'company_id': fields.many2one('res.company', 'Company',
+ 'company_id': fields.many2one(
+ 'res.company', 'Company',
required=True, states={'done': [('readonly', True)]},
help="Related company."),
- 'start_date': fields.date('Start date', required=True,
+ 'start_date': fields.date(
+ 'Start date', required=True,
states={'done': [('readonly', True)]},
- help="Start date of the declaration. Must be the first day of a month."),
- 'end_date': fields.function(_compute_dates, type='date',
+ help="Start date of the declaration. Must be the first day of "
+ "a month."),
+ 'end_date': fields.function(
+ _compute_dates, type='date',
string='End date', multi='intrastat-service-dates', readonly=True,
store={
- 'report.intrastat.service': (lambda self, cr, uid, ids, c={}: ids, ['start_date'], 20)
+ 'report.intrastat.service': (
+ lambda self, cr, uid, ids, c={}: ids, ['start_date'], 20),
},
- help="End date for the declaration. Must be the last day of the month of the start date."),
- 'year_month': fields.function(_compute_dates, type='char',
+ help="End date for the declaration. Must be the last day of the "
+ "month of the start date."),
+ 'year_month': fields.function(
+ _compute_dates, type='char',
string='Month', multi='intrastat-service-dates', readonly=True,
track_visibility='always', store={
- 'report.intrastat.service': (lambda self, cr, uid, ids, c={}: ids, ['start_date'], 20)
+ 'report.intrastat.service': (
+ lambda self, cr, uid, ids, c={}: ids, ['start_date'], 20),
},
help="Year and month of the declaration."),
- 'intrastat_line_ids': fields.one2many('report.intrastat.service.line',
+ 'intrastat_line_ids': fields.one2many(
+ 'report.intrastat.service.line',
'parent_id', 'Report intrastat service lines',
states={'done': [('readonly', True)]}),
- 'num_lines': fields.function(_compute_numbers,
+ 'num_lines': fields.function(
+ _compute_numbers,
type='integer', multi='numbers', string='Number of lines',
store={
- 'report.intrastat.service.line': (_get_intrastat_from_service_line, ['parent_id'], 20),
+ 'report.intrastat.service.line': (
+ _get_intrastat_from_service_line, ['parent_id'], 20),
},
track_visibility='always',
help="Number of lines in this declaration."),
- 'total_amount': fields.function(_compute_numbers,
+ 'total_amount': fields.function(
+ _compute_numbers,
digits_compute=dp.get_precision('Account'),
multi='numbers', string='Total amount',
store={
- 'report.intrastat.service.line': (_get_intrastat_from_service_line, ['amount_company_currency', 'parent_id'], 20),
+ 'report.intrastat.service.line': (
+ _get_intrastat_from_service_line,
+ ['amount_company_currency', 'parent_id'], 20),
},
track_visibility='always',
help="Total amount in company currency of the declaration."),
- 'currency_id': fields.related('company_id', 'currency_id',
- readonly=True, type='many2one', relation='res.currency',
- string='Currency'),
+ 'currency_id': fields.related(
+ 'company_id', 'currency_id', readonly=True, type='many2one',
+ relation='res.currency', string='Currency'),
'state': fields.selection([
- ('draft', 'Draft'),
- ('done', 'Done'),
- ], 'State', select=True, readonly=True, track_visibility='onchange',
- help="State of the declaration. When the state is set to 'Done', the fields become read-only."),
+ ('draft', 'Draft'),
+ ('done', 'Done'),
+ ], 'State', select=True, readonly=True,
+ track_visibility='onchange',
+ help="State of the declaration. When the state is set to 'Done', "
+ "the fields become read-only."),
# No more need for date_done, because chatter does the job
}
_defaults = {
# By default, we propose 'current month -1', because you prepare in
# february the DES of January
- 'start_date': lambda *a: datetime.strftime(datetime.today() + relativedelta(day=1, months=-1), '%Y-%m-%d'),
+ 'start_date':
+ lambda *a: datetime.strftime(
+ datetime.today() + relativedelta(day=1, months=-1),
+ DEFAULT_SERVER_DATE_FORMAT),
'state': 'draft',
'company_id': lambda self, cr, uid, context:
- self.pool['res.company']._company_default_get(cr, uid, 'report.intrastat.service', context=context),
+ self.pool['res.company']._company_default_get(
+ cr, uid, 'report.intrastat.service', context=context),
}
-
def _check_start_date(self, cr, uid, ids):
- return self.pool.get('report.intrastat.common')._check_start_date(cr, uid, ids, self)
+ return self.pool['report.intrastat.common']._check_start_date(
+ cr, uid, ids, self)
- _constraints = [
- (_check_start_date, "Start date must be the first day of a month",
- ['start_date']),
- ]
+ _constraints = [(
+ _check_start_date,
+ "Start date must be the first day of a month",
+ ['start_date']
+ )]
- _sql_constraints = [
- ('date_uniq', 'unique(start_date, company_id)',
- 'A DES for this month already exists !'),
- ]
+ _sql_constraints = [(
+ 'date_uniq', 'unique(start_date, company_id)',
+ 'A DES for this month already exists !'
+ )]
def generate_service_lines(self, cr, uid, ids, context=None):
- #print "generate lines, ids=", ids
intrastat = self.browse(cr, uid, ids[0], context=context)
- line_obj = self.pool.get('report.intrastat.service.line')
- invoice_obj = self.pool.get('account.invoice')
- self.pool.get('report.intrastat.common')._check_generate_lines(cr, uid, intrastat, context=context)
+ line_obj = self.pool['report.intrastat.service.line']
+ invoice_obj = self.pool['account.invoice']
+ self.pool['report.intrastat.common']._check_generate_lines(
+ cr, uid, intrastat, context=context)
# Get current service lines and delete them
- line_remove = self.read(cr, uid, ids[0], ['intrastat_line_ids'], context=context)
+ line_remove = self.read(
+ cr, uid, ids[0], ['intrastat_line_ids'], context=context)
if line_remove['intrastat_line_ids']:
- line_obj.unlink(cr, uid, line_remove['intrastat_line_ids'], context=context)
+ line_obj.unlink(
+ cr, uid, line_remove['intrastat_line_ids'], context=context)
invoice_ids = invoice_obj.search(cr, uid, [
('type', 'in', ('out_invoice', 'out_refund')),
@@ -156,13 +184,17 @@ def generate_service_lines(self, cr, uid, ids, context=None):
('company_id', '=', intrastat.company_id.id)
], order='date_invoice', context=context)
#print "invoice_ids=", invoice_ids
- for invoice in invoice_obj.browse(cr, uid, invoice_ids, context=context):
-
+ for invoice in invoice_obj.browse(
+ cr, uid, invoice_ids, context=context):
if not invoice.partner_id.country_id:
- raise orm.except_orm(_('Error :'), _("Missing country on partner '%s'.") % invoice.partner_id.name)
+ raise orm.except_orm(
+ _('Error :'),
+ _("Missing country on partner '%s'.")
+ % invoice.partner_id.name)
elif not invoice.partner_id.country_id.intrastat:
continue
- elif invoice.partner_id.country_id.id == intrastat.company_id.country_id.id:
+ elif (invoice.partner_id.country_id.id ==
+ intrastat.company_id.country_id.id):
continue
amount_invoice_cur_to_write = 0.0
@@ -209,30 +241,47 @@ def generate_service_lines(self, cr, uid, ids, context=None):
# END of the loop on invoice lines
if regular_product_in_invoice:
- amount_invoice_cur_to_write = amount_invoice_cur_regular_service
+ amount_invoice_cur_to_write = \
+ amount_invoice_cur_regular_service
else:
- amount_invoice_cur_to_write = amount_invoice_cur_regular_service + amount_invoice_cur_accessory_cost
+ amount_invoice_cur_to_write = (
+ amount_invoice_cur_regular_service
+ + amount_invoice_cur_accessory_cost)
if invoice.currency_id.name != 'EUR':
context['date'] = invoice.date_invoice
- amount_company_cur_to_write = int(round(self.pool.get('res.currency').compute(cr, uid, invoice.currency_id.id, intrastat.company_id.currency_id.id, amount_invoice_cur_to_write, round=False, context=context), 0))
+ amount_company_cur_to_write = int(
+ round(self.pool['res.currency'].compute(
+ cr, uid, invoice.currency_id.id,
+ intrastat.company_id.currency_id.id,
+ amount_invoice_cur_to_write, round=False,
+ context=context), 0))
else:
- amount_company_cur_to_write = int(round(amount_invoice_cur_to_write, 0))
+ amount_company_cur_to_write = int(round(
+ amount_invoice_cur_to_write, 0))
if amount_company_cur_to_write:
if invoice.type == 'out_refund':
- amount_invoice_cur_to_write = amount_invoice_cur_to_write * (-1)
- amount_company_cur_to_write = amount_company_cur_to_write * (-1)
-
- # Why do I check that the Partner has a VAT number only here and not earlier ?
- # Because, if I sell to a physical person in the EU with VAT, then
- # the corresponding partner will not have a VAT number, and the entry
- # will be skipped because line_tax.exclude_from_intrastat_if_present is always
- # True and amount_company_cur_to_write = 0
- # So we should not block with a raise before the end of the loop on the
- # invoice lines and the "if amount_company_cur_to_write:"
+ amount_invoice_cur_to_write = \
+ amount_invoice_cur_to_write * (-1)
+ amount_company_cur_to_write = \
+ amount_company_cur_to_write * (-1)
+
+ # Why do I check that the Partner has a VAT number
+ # only here and not earlier ? Because, if I sell
+ # to a physical person in the EU with VAT, then
+ # the corresponding partner will not have a VAT
+ # number, and the entry will be skipped because
+ # line_tax.exclude_from_intrastat_if_present is
+ # always True and amount_company_cur_to_write = 0
+ # So we should not block with a raise before the
+ # end of the loop on the invoice lines and the "if
+ # amount_company_cur_to_write:"
if not invoice.partner_id.vat:
- raise orm.except_orm(_('Error :'), _("Missing VAT number on partner '%s'.") % invoice.partner_id.name)
+ raise orm.except_orm(
+ _('Error :'),
+ _("Missing VAT number on partner '%s'.")
+ % invoice.partner_id.name)
else:
partner_vat_to_write = invoice.partner_id.vat
@@ -260,14 +309,14 @@ def back2draft(self, cr, uid, ids, context=None):
def generate_xml(self, cr, uid, ids, context=None):
#print "generate xml ids=", ids
- import des_xsd
- from lxml import etree
+ common_obj = self.pool['report.intrastat.common']
intrastat = self.browse(cr, uid, ids[0], context=context)
start_date_str = intrastat.start_date
- end_date_str = intrastat.end_date
- start_date_datetime = datetime.strptime(start_date_str, '%Y-%m-%d')
+ start_date_datetime = datetime.strptime(
+ start_date_str, DEFAULT_SERVER_DATE_FORMAT)
- self.pool.get('report.intrastat.common')._check_generate_xml(cr, uid, intrastat, context=context)
+ self.pool['report.intrastat.common']._check_generate_xml(
+ cr, uid, intrastat, context=context)
my_company_vat = intrastat.company_id.partner_id.vat.replace(' ', '')
@@ -280,7 +329,8 @@ def generate_xml(self, cr, uid, ids, context=None):
num_tva = etree.SubElement(decl, 'num_tvaFr')
num_tva.text = my_company_vat
mois_des = etree.SubElement(decl, 'mois_des')
- mois_des.text = datetime.strftime(start_date_datetime, '%m') # month 2 digits
+ mois_des.text = datetime.strftime(start_date_datetime, '%m')
+ # month 2 digits
an_des = etree.SubElement(decl, 'an_des')
an_des.text = datetime.strftime(start_date_datetime, '%Y')
line = 0
@@ -291,60 +341,83 @@ def generate_xml(self, cr, uid, ids, context=None):
numlin_des = etree.SubElement(ligne_des, 'numlin_des')
numlin_des.text = str(line)
valeur = etree.SubElement(ligne_des, 'valeur')
- # We take amount_company_currency, to be sure we have amounts in EUR
+ # We take amount_company_currency, to get amounts in EUR
valeur.text = str(sline.amount_company_currency)
partner_des = etree.SubElement(ligne_des, 'partner_des')
try:
partner_des.text = sline.partner_vat.replace(' ', '')
except:
- raise orm.except_orm(_('Error :'), _("Missing VAT number on partner '%s'.") % sline.partner_id.name)
- xml_string = etree.tostring(root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
+ raise orm.except_orm(
+ _('Error :'),
+ _("Missing VAT number on partner '%s'.")
+ % sline.partner_id.name)
+ xml_string = etree.tostring(
+ root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
#print "xml_string", xml_string
- # We now validate the XML file against the official XML Schema Definition
- self.pool.get('report.intrastat.common')._check_xml_schema(cr, uid, root, xml_string, des_xsd.des_xsd, context=context)
+ # We now validate the XML file against the official XSD
+ common_obj._check_xml_schema(
+ cr, uid, root, xml_string,
+ 'l10n_fr_intrastat_service/data/des.xsd', context=context)
# Attach the XML file
- attach_id = self.pool.get('report.intrastat.common')._attach_xml_file(cr, uid, ids, self, xml_string, start_date_datetime, 'des', context=context)
-
- return self.pool.get('report.intrastat.common')._open_attach_view(cr, uid, attach_id, 'DES XML file', context=context)
+ attach_id = common_obj._attach_xml_file(
+ cr, uid, ids, self, xml_string, start_date_datetime, 'des',
+ context=context)
+ return common_obj._open_attach_view(
+ cr, uid, attach_id, 'DES XML file', context=context)
def _scheduler_reminder(self, cr, uid, context=None):
if context is None:
context = {}
- previous_month = datetime.strftime(datetime.today() + relativedelta(day=1, months=-1), '%Y-%m')
+ previous_month = datetime.strftime(
+ datetime.today() + relativedelta(day=1, months=-1), '%Y-%m')
# I can't search on [('country_id', '=', ...)]
# because it is a fields.function not stored and without fnct_search
company_ids = self.pool['res.company'].search(
cr, uid, [], context=context)
logger.info('Starting the Intrastat Service reminder')
- for company in self.pool['res.company'].browse(cr, uid, company_ids, context=None):
+ for company in self.pool['res.company'].browse(
+ cr, uid, company_ids, context=None):
if company.country_id.code != 'FR':
continue
# Check if an intrastat service already exists for month N-1
- intrastat_ids = self.search(cr, uid, [('year_month', '=', previous_month), ('company_id', '=', company.id)], context=context)
+ intrastat_ids = self.search(
+ cr, uid, [
+ ('year_month', '=', previous_month),
+ ('company_id', '=', company.id)
+ ], context=context)
# if it already exists, we don't do anything
# in the future, we may check the state and send a mail
# if the state is still in draft ?
if intrastat_ids:
- logger.info('An Intrastat Service for month %s already exists for company %s' % (previous_month, company.name))
+ logger.info(
+ 'An Intrastat Service for month %s already exists for '
+ 'company %s'
+ % (previous_month, company.name))
continue
else:
# If not, we create an intrastat.service for month N-1
intrastat_id = self.create(cr, uid, {
'company_id': company.id,
}, context=context)
- logger.info('An Intrastat Service for month %s has been created by OpenERP for company %s' % (previous_month, company.name))
+ logger.info(
+ 'An Intrastat Service for month %s has been created '
+ 'by OpenERP for company %s'
+ % (previous_month, company.name))
# we try to generate the lines
try:
- self.generate_service_lines(cr, uid, [intrastat_id], context=context)
- except Exception as e: # TODO filter on exception from except_orm
+ self.generate_service_lines(
+ cr, uid, [intrastat_id], context=context)
+ except orm.except_orm as e:
context['exception'] = True
- #print "e=", e
context['error_msg'] = e[1]
# send the reminder email
- self.pool['report.intrastat.common'].send_reminder_email(cr, uid, company, 'l10n_fr_intrastat_service', 'intrastat_service_reminder_email_template', intrastat_id, context=context)
+ self.pool['report.intrastat.common'].send_reminder_email(
+ cr, uid, company, 'l10n_fr_intrastat_service',
+ 'intrastat_service_reminder_email_template',
+ intrastat_id, context=context)
return True
@@ -354,29 +427,38 @@ class report_intrastat_service_line(orm.Model):
_rec_name = "partner_vat"
_order = 'id'
_columns = {
- 'parent_id': fields.many2one('report.intrastat.service',
+ 'parent_id': fields.many2one(
+ 'report.intrastat.service',
'Intrastat service ref', ondelete='cascade'),
- 'company_id': fields.related('parent_id', 'company_id',
+ 'company_id': fields.related(
+ 'parent_id', 'company_id',
type='many2one', relation='res.company',
string="Company", readonly=True),
- 'company_currency_id': fields.related('company_id', 'currency_id',
+ 'company_currency_id': fields.related(
+ 'company_id', 'currency_id',
type='many2one', relation='res.currency',
string="Company currency", readonly=True),
- 'invoice_id': fields.many2one('account.invoice', 'Invoice ref',
- readonly=True),
- 'date_invoice': fields.related('invoice_id', 'date_invoice',
- type='date', relation='account.invoice',
- string='Invoice date', readonly=True),
+ 'invoice_id': fields.many2one(
+ 'account.invoice', 'Invoice ref', readonly=True),
+ 'date_invoice': fields.related(
+ 'invoice_id', 'date_invoice', type='date',
+ relation='account.invoice', string='Invoice date', readonly=True),
'partner_vat': fields.char('Customer VAT', size=32),
'partner_id': fields.many2one('res.partner', 'Partner name'),
- 'amount_company_currency': fields.integer('Amount in company currency',
- help="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 and rounded at 0 digits"),
- 'amount_invoice_currency': fields.float('Amount in invoice currency',
+ 'amount_company_currency': fields.integer(
+ 'Amount in company currency',
+ help="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 and rounded at 0 digits"),
+ 'amount_invoice_currency': fields.float(
+ 'Amount in invoice currency',
digits_compute=dp.get_precision('Account'), readonly=True,
help="Amount in invoice currency (not rounded)"),
- 'invoice_currency_id': fields.many2one('res.currency',
- "Invoice currency", readonly=True),
+ 'invoice_currency_id': fields.many2one(
+ 'res.currency', "Invoice currency", readonly=True),
}
- def partner_on_change(self, cr, uid, ids, partner_id=False):
- return self.pool.get('report.intrastat.common').partner_on_change(cr, uid, ids, partner_id)
+ def partner_on_change(self, cr, uid, ids, partner_id=False, context=None):
+ return self.pool['report.intrastat.common'].partner_on_change(
+ cr, uid, ids, partner_id, context=context)
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index 2d282e844..fd48897b9 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -88,7 +88,7 @@
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in OpenERP, a draft declaration has been generated automatically by OpenERP.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\", open the declaration of month ${object.year_month} and click on the button \"Re-generate lines\".
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_lines} ${object.num_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by OpenERP doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in OpenERP in the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\".
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by OpenERP.\n"
+"\n"
+"
\n"
+"
\n"
+""
+msgstr "\n"
+"
\n"
+"\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in OpenERP, a draft declaration has been generated automatically by OpenERP.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\", open the declaration of month ${object.year_month} and click on the button \"Re-generate lines\".
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_lines} ${object.num_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by OpenERP doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in OpenERP in the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\".
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by OpenERP.\n"
+"\n"
+"
\n"
+"
\n"
+""
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,notes:0
-msgid "You can write some comments here if you want."
-msgstr "Vous pouvez écrire un commentaire ici."
+#: sql_constraint:report.intrastat.service:0
+msgid "A DES for this month already exists !"
+msgstr "Une DES est déjà crée pour ce mois !"
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-#: selection:report.intrastat.service,state:0
-msgid "Draft"
-msgstr "Brouillon"
+#: view:report.intrastat.service.line:0
+msgid "Additionnal information"
+msgstr "Informations complémentaires"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,start_date:0
-msgid "Start date"
-msgstr "Date de début"
+#: view:report.intrastat.service.line:0
+msgid "Amount in comp. cur."
+msgstr "Montant en monn. soc."
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-msgid "Back to draft"
-msgstr "Retour au brouillon"
+#: field:report.intrastat.service.line,amount_company_currency:0
+msgid "Amount in company currency"
+msgstr "Montant dans la monnaie de la société"
#. module: l10n_fr_intrastat_service
#: help:report.intrastat.service.line,amount_company_currency:0
@@ -59,38 +108,29 @@ msgid "Amount in company currency to write in the declaration. Amount in company
msgstr "Montant dans la monnaie de la société à reporter dans la déclaration. Montant dans la monnaie de la société = montant dans la monnaie de la facture converti au taux de la date de la facture et arrondi à l'entier le plus proche"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,partner_id:0
-msgid "Partner name"
-msgstr "Nom du partenaire"
+#: field:report.intrastat.service.line,amount_invoice_currency:0
+msgid "Amount in invoice currency"
+msgstr "Montant dans la monnaie de la facture"
#. module: l10n_fr_intrastat_service
-#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service_line
-msgid "Lines of intrastat service declaration (DES)"
-msgstr "Lignes de DES"
+#: help:report.intrastat.service.line,amount_invoice_currency:0
+msgid "Amount in invoice currency (not rounded)"
+msgstr "Montant dans la monnaie de la facture (non arrondi)"
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,date_done:0
-msgid "Last date when the intrastat declaration was converted to 'Done' state."
-msgstr "Dernière date à laquelle la DES a été mise à l'état 'Déclaré'."
+#: view:report.intrastat.service:0
+msgid "Attach XML file"
+msgstr "Attacher le fichier XML"
#. module: l10n_fr_intrastat_service
-#: model:ir.module.module,description:l10n_fr_intrastat_service.module_meta_information
-msgid "This module adds support for the \"Déclaration Européenne des Services\" (DES).\n"
-"\n"
-"The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France's Customs administration if they sell services to other EU companies.\n"
-"\n"
-"More information about the DES is available on this official web page : http://www.douane.gouv.fr/page.asp?id=3846\n"
-"\n"
-"Please contact Alexis de Lattre from Akretion for any help or question about this module.\n"
-" "
-msgstr "This module adds support for the \"Déclaration Européenne des Services\" (DES).\n"
-"\n"
-"The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France's Customs administration if they sell services to other EU companies.\n"
-"\n"
-"More information about the DES is available on this official web page : http://www.douane.gouv.fr/page.asp?id=3846\n"
-"\n"
-"Please contact Alexis de Lattre from Akretion for any help or question about this module.\n"
-" "
+#: view:report.intrastat.service:0
+msgid "Back to draft"
+msgstr "Retour au brouillon"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Comp. cur."
+msgstr "Monn. soc."
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service,company_id:0
@@ -99,73 +139,103 @@ msgid "Company"
msgstr "Société"
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Comp. cur."
-msgstr "Monn. soc."
+#: field:report.intrastat.service.line,company_currency_id:0
+msgid "Company currency"
+msgstr "Monnaie société"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,invoice_currency_id:0
-msgid "Invoice currency"
-msgstr "Monnaie de la facture"
+#: field:report.intrastat.service,currency_id:0
+msgid "Currency"
+msgstr "Monnaie"
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Information to declare"
-msgstr "Informations à déclarer"
+#: field:report.intrastat.service.line,partner_vat:0
+msgid "Customer VAT"
+msgstr "N° TVA du client"
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,num_lines:0
-msgid "Number of lines in this declaration."
-msgstr "Nombre de lignes de la déclaration."
+#: view:report.intrastat.service:0
+#: selection:report.intrastat.service,state:0
+msgid "Done"
+msgstr "Déclaré"
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
-msgid "Extended Filters..."
-msgstr "Filtres avancés..."
+#: selection:report.intrastat.service,state:0
+msgid "Draft"
+msgstr "Brouillon"
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-#: field:report.intrastat.service,total_amount:0
-msgid "Total amount"
-msgstr "Montant total"
+#: field:report.intrastat.service,end_date:0
+msgid "End date"
+msgstr "Date de fin"
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:198
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:263
-#, python-format
-msgid "Missing VAT number on partner '%s'."
-msgstr "Numéro de TVA non renseigné pour le partenaire '%s'."
+#: help:report.intrastat.service,end_date:0
+msgid "End date for the declaration. Must be the last day of the month of the start date."
+msgstr "Date de fin de la déclaration. Doit être le dernier jour du mois de la date de début."
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:133
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:198
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:216
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:221
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:263
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:191
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:282
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:351
#, python-format
msgid "Error :"
msgstr "Erreur :"
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service,message_follower_ids:0
+msgid "Followers"
+msgstr "Followers"
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,message_summary:0
+msgid "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views."
+msgstr "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views."
+
+#. module: l10n_fr_intrastat_service
+#: help:report.intrastat.service,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr "If checked new messages require your attention."
+
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service.line:0
-msgid "Additionnal information"
-msgstr "Informations complémentaires"
+msgid "Information to declare"
+msgstr "Informations à déclarer"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,intrastat_line_ids:0
-msgid "Report intrastat service lines"
+#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.fr_intrastat_service_tree_action
+#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service
+#: model:ir.ui.menu,name:l10n_fr_intrastat_service.fr_intrastat_service_menu
+#: view:report.intrastat.service:0
+msgid "Intrastat Service"
+msgstr "DES"
+
+#. module: l10n_fr_intrastat_service
+#: model:email.template,subject:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
+msgid "Intrastat Service ${object.year_month} for ${object.company_id.name}"
+msgstr "Intrastat Service ${object.year_month} for ${object.company_id.name}"
+
+#. module: l10n_fr_intrastat_service
+#: model:mail.message.subtype,description:l10n_fr_intrastat_service.declaration_done
+#: model:mail.message.subtype,name:l10n_fr_intrastat_service.declaration_done
+msgid "Intrastat Service Validated"
+msgstr "DES validée"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Intrastat service lines"
msgstr "Lignes de DES"
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service.line,amount_invoice_currency:0
-msgid "Amount in invoice currency (not rounded)"
-msgstr "Montant dans la monnaie de la facture (non arrondi)"
+#: field:report.intrastat.service.line,parent_id:0
+msgid "Intrastat service ref"
+msgstr "Lien DES"
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-#: field:report.intrastat.service,notes:0
-msgid "Notes"
-msgstr "Notes"
+#: field:report.intrastat.service.line,invoice_currency_id:0
+msgid "Invoice currency"
+msgstr "Monnaie de la facture"
#. module: l10n_fr_intrastat_service
#: field:report.intrastat.service.line,date_invoice:0
@@ -173,54 +243,67 @@ msgid "Invoice date"
msgstr "Date de facture"
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,state:0
-msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
-msgstr "Etat de la déclaration. Quand l'état est à 'Déclaré', les champs passent en lecture seule."
+#: field:report.intrastat.service.line,invoice_id:0
+msgid "Invoice ref"
+msgstr "Réf facture"
#. module: l10n_fr_intrastat_service
-#: sql_constraint:report.intrastat.service:0
-msgid "A DES for this month already exists !"
-msgstr "Une DES est déjà crée pour ce mois !"
+#: field:report.intrastat.service,message_is_follower:0
+msgid "Is a Follower"
+msgstr "Is a Follower"
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-msgid "Attach XML file"
-msgstr "Attacher le fichier XML"
+#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service_line
+msgid "Lines of intrastat service declaration (DES)"
+msgstr "Lignes de DES"
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Intrastat service lines"
-msgstr "Lignes de DES"
+#: field:report.intrastat.service,message_ids:0
+msgid "Messages"
+msgstr "Messages"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,amount_company_currency:0
-msgid "Amount in company currency"
-msgstr "Montant dans la monnaie de la société"
+#: help:report.intrastat.service,message_ids:0
+msgid "Messages and communication history"
+msgstr "Messages and communication history"
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,start_date:0
-msgid "Start date of the declaration. Must be the first day of a month."
-msgstr "Date de début de la déclaration. Doit être le premier jour d'un mois."
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:283
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:352
+#, python-format
+msgid "Missing VAT number on partner '%s'."
+msgstr "Numéro de TVA non renseigné pour le partenaire '%s'."
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Amount in comp. cur."
-msgstr "Montant en monn. soc."
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:192
+#, python-format
+msgid "Missing country on partner '%s'."
+msgstr "Pays manquant sur le partenaire '%s'."
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,end_date:0
-msgid "End date"
-msgstr "Date de fin"
+#: field:report.intrastat.service,year_month:0
+msgid "Month"
+msgstr "Mois"
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,end_date:0
-msgid "End date for the declaration. Must be the last day of the month of the start date."
-msgstr "Date de fin de la déclaration. Doit être le dernier jour du mois de la date de début."
+#: field:report.intrastat.service,num_lines:0
+msgid "Number of lines"
+msgstr "Nombre de lignes"
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,total_amount:0
-msgid "Total amount in company currency of the declaration."
-msgstr "Montant total en monnaie société de la déclaration."
+#: help:report.intrastat.service,num_lines:0
+msgid "Number of lines in this declaration."
+msgstr "Nombre de lignes de la déclaration."
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,partner_id:0
+msgid "Partner name"
+msgstr "Nom du partenaire"
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Re-generate lines"
+msgstr "Re-générer les lignes"
#. module: l10n_fr_intrastat_service
#: help:report.intrastat.service,company_id:0
@@ -228,21 +311,19 @@ msgid "Related company."
msgstr "Société associée."
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,partner_vat:0
-msgid "Customer VAT"
-msgstr "N° TVA du client"
+#: field:report.intrastat.service,intrastat_line_ids:0
+msgid "Report intrastat service lines"
+msgstr "Lignes de DES"
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:133
-#, python-format
-msgid "Missing country on partner address '%s' of partner '%s'."
-msgstr "Pays non renseigné sur l'adresse partenaire '%s' du partenaire '%s'."
+#: view:report.intrastat.service:0
+msgid "Search Intrastat Service"
+msgstr "Recherche DES"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,state:0
-#: field:report.intrastat.service.line,state:0
-msgid "State"
-msgstr "Etat"
+#: field:report.intrastat.service,start_date:0
+msgid "Start date"
+msgstr "Date de début"
#. module: l10n_fr_intrastat_service
#: constraint:report.intrastat.service:0
@@ -250,48 +331,43 @@ msgid "Start date must be the first day of a month"
msgstr "La date de début doit être le premier jour d'un mois"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,amount_invoice_currency:0
-msgid "Amount in invoice currency"
-msgstr "Montant dans la monnaie de la facture"
-
-#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,currency_id:0
-msgid "Currency"
-msgstr "Monnaie"
+#: help:report.intrastat.service,start_date:0
+msgid "Start date of the declaration. Must be the first day of a month."
+msgstr "Date de début de la déclaration. Doit être le premier jour d'un mois."
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-#: selection:report.intrastat.service,state:0
-msgid "Done"
-msgstr "Déclaré"
+#: field:report.intrastat.service,state:0
+msgid "State"
+msgstr "État"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,parent_id:0
-msgid "Intrastat service ref"
-msgstr "Lien DES"
+#: help:report.intrastat.service,state:0
+msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
+msgstr "État de la déclaration. Quand l'état est à 'Déclaré', les champs passent en lecture seule."
#. module: l10n_fr_intrastat_service
-#: model:ir.module.module,shortdesc:l10n_fr_intrastat_service.module_meta_information
-msgid "Module for Intrastat service reporting (DES) for France"
-msgstr "Module pour la Déclaration Européenne des Services (DES)"
+#: field:report.intrastat.service,message_summary:0
+msgid "Summary"
+msgstr "Summary"
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
-msgid "Re-generate lines"
-msgstr "Re-générer les lignes"
+#: field:report.intrastat.service,total_amount:0
+msgid "Total amount"
+msgstr "Montant total"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,num_lines:0
-msgid "Number of lines"
-msgstr "Nombre de lignes"
+#: help:report.intrastat.service,total_amount:0
+msgid "Total amount in company currency of the declaration."
+msgstr "Montant total en monnaie société de la déclaration."
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,date_done:0
-msgid "Date done"
-msgstr "Date de déclaration"
+#: field:report.intrastat.service,message_unread:0
+msgid "Unread Messages"
+msgstr "Unread Messages"
#. module: l10n_fr_intrastat_service
-#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service
-msgid "Intrastat report for services"
-msgstr "DES"
+#: help:report.intrastat.service,year_month:0
+msgid "Year and month of the declaration."
+msgstr "Année et mois de la déclaration."
diff --git a/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot b/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
index 5a965b46c..96c413551 100644
--- a/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
+++ b/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 6.0.4\n"
-"Report-Msgid-Bugs-To: support@openerp.com\n"
-"POT-Creation-Date: 2012-06-05 14:48+0000\n"
-"PO-Revision-Date: 2012-06-05 14:48+0000\n"
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-04-14 21:44+0000\n"
+"PO-Revision-Date: 2014-04-14 21:44+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -16,73 +16,89 @@ msgstr ""
"Plural-Forms: \n"
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,invoice_id:0
-msgid "Invoice ref"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.fr_intrastat_service_tree_action
-#: model:ir.ui.menu,name:l10n_fr_intrastat_service.fr_intrastat_service_menu
-#: view:report.intrastat.service:0
-msgid "Intrastat Service"
+#: model:email.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
+msgid "\n"
+"
\n"
+"\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in OpenERP, a draft declaration has been generated automatically by OpenERP.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\", open the declaration of month ${object.year_month} and click on the button \"Re-generate lines\".
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_lines} ${object.num_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by OpenERP doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in OpenERP in the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\".
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by OpenERP.\n"
+"\n"
+"
\n"
+"
\n"
+""
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,company_currency_id:0
-msgid "Company currency"
+#: sql_constraint:report.intrastat.service:0
+msgid "A DES for this month already exists !"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,notes:0
-msgid "You can write some comments here if you want."
+#: view:report.intrastat.service.line:0
+msgid "Additionnal information"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-#: selection:report.intrastat.service,state:0
-msgid "Draft"
+#: view:report.intrastat.service.line:0
+msgid "Amount in comp. cur."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,start_date:0
-msgid "Start date"
+#: field:report.intrastat.service.line,amount_company_currency:0
+msgid "Amount in company currency"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-msgid "Back to draft"
+#: help:report.intrastat.service.line,amount_company_currency:0
+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 and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service.line,amount_company_currency:0
-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 and rounded at 0 digits"
+#: field:report.intrastat.service.line,amount_invoice_currency:0
+msgid "Amount in invoice currency"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,partner_id:0
-msgid "Partner name"
+#: help:report.intrastat.service.line,amount_invoice_currency:0
+msgid "Amount in invoice currency (not rounded)"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service_line
-msgid "Lines of intrastat service declaration (DES)"
+#: view:report.intrastat.service:0
+msgid "Attach XML file"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,date_done:0
-msgid "Last date when the intrastat declaration was converted to 'Done' state."
+#: view:report.intrastat.service:0
+msgid "Back to draft"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: model:ir.module.module,description:l10n_fr_intrastat_service.module_meta_information
-msgid "This module adds support for the \"Déclaration Européenne des Services\" (DES).\n"
-"\n"
-"The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France's Customs administration if they sell services to other EU companies.\n"
-"\n"
-"More information about the DES is available on this official web page : http://www.douane.gouv.fr/page.asp?id=3846\n"
-"\n"
-"Please contact Alexis de Lattre from Akretion for any help or question about this module.\n"
-" "
+#: view:report.intrastat.service.line:0
+msgid "Comp. cur."
msgstr ""
#. module: l10n_fr_intrastat_service
@@ -92,72 +108,102 @@ msgid "Company"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Comp. cur."
+#: field:report.intrastat.service.line,company_currency_id:0
+msgid "Company currency"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,invoice_currency_id:0
-msgid "Invoice currency"
+#: field:report.intrastat.service,currency_id:0
+msgid "Currency"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Information to declare"
+#: field:report.intrastat.service.line,partner_vat:0
+msgid "Customer VAT"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,num_lines:0
-msgid "Number of lines in this declaration."
+#: view:report.intrastat.service:0
+#: selection:report.intrastat.service,state:0
+msgid "Done"
msgstr ""
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
-msgid "Extended Filters..."
+#: selection:report.intrastat.service,state:0
+msgid "Draft"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-#: field:report.intrastat.service,total_amount:0
-msgid "Total amount"
+#: field:report.intrastat.service,end_date:0
+msgid "End date"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:198
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:263
-#, python-format
-msgid "Missing VAT number on partner '%s'."
+#: help:report.intrastat.service,end_date:0
+msgid "End date for the declaration. Must be the last day of the month of the start date."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:133
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:198
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:216
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:221
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:263
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:191
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:282
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:351
#, python-format
msgid "Error :"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Additionnal information"
+#: field:report.intrastat.service,message_follower_ids:0
+msgid "Followers"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,intrastat_line_ids:0
-msgid "Report intrastat service lines"
+#: help:report.intrastat.service,message_summary:0
+msgid "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service.line,amount_invoice_currency:0
-msgid "Amount in invoice currency (not rounded)"
+#: help:report.intrastat.service,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Information to declare"
msgstr ""
#. module: l10n_fr_intrastat_service
+#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.fr_intrastat_service_tree_action
+#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service
+#: model:ir.ui.menu,name:l10n_fr_intrastat_service.fr_intrastat_service_menu
#: view:report.intrastat.service:0
-#: field:report.intrastat.service,notes:0
-msgid "Notes"
+msgid "Intrastat Service"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: model:email.template,subject:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
+msgid "Intrastat Service ${object.year_month} for ${object.company_id.name}"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: model:mail.message.subtype,description:l10n_fr_intrastat_service.declaration_done
+#: model:mail.message.subtype,name:l10n_fr_intrastat_service.declaration_done
+msgid "Intrastat Service Validated"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service.line:0
+msgid "Intrastat service lines"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,parent_id:0
+msgid "Intrastat service ref"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,invoice_currency_id:0
+msgid "Invoice currency"
msgstr ""
#. module: l10n_fr_intrastat_service
@@ -166,53 +212,66 @@ msgid "Invoice date"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,state:0
-msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
+#: field:report.intrastat.service.line,invoice_id:0
+msgid "Invoice ref"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: sql_constraint:report.intrastat.service:0
-msgid "A DES for this month already exists !"
+#: field:report.intrastat.service,message_is_follower:0
+msgid "Is a Follower"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-msgid "Attach XML file"
+#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service_line
+msgid "Lines of intrastat service declaration (DES)"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Intrastat service lines"
+#: field:report.intrastat.service,message_ids:0
+msgid "Messages"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,amount_company_currency:0
-msgid "Amount in company currency"
+#: help:report.intrastat.service,message_ids:0
+msgid "Messages and communication history"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,start_date:0
-msgid "Start date of the declaration. Must be the first day of a month."
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:283
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:352
+#, python-format
+msgid "Missing VAT number on partner '%s'."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service.line:0
-msgid "Amount in comp. cur."
+#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:192
+#, python-format
+msgid "Missing country on partner '%s'."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,end_date:0
-msgid "End date"
+#: field:report.intrastat.service,year_month:0
+msgid "Month"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,end_date:0
-msgid "End date for the declaration. Must be the last day of the month of the start date."
+#: field:report.intrastat.service,num_lines:0
+msgid "Number of lines"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:report.intrastat.service,total_amount:0
-msgid "Total amount in company currency of the declaration."
+#: help:report.intrastat.service,num_lines:0
+msgid "Number of lines in this declaration."
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: field:report.intrastat.service.line,partner_id:0
+msgid "Partner name"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: view:report.intrastat.service:0
+msgid "Re-generate lines"
msgstr ""
#. module: l10n_fr_intrastat_service
@@ -221,20 +280,18 @@ msgid "Related company."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,partner_vat:0
-msgid "Customer VAT"
+#: field:report.intrastat.service,intrastat_line_ids:0
+msgid "Report intrastat service lines"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:133
-#, python-format
-msgid "Missing country on partner address '%s' of partner '%s'."
+#: view:report.intrastat.service:0
+msgid "Search Intrastat Service"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,state:0
-#: field:report.intrastat.service.line,state:0
-msgid "State"
+#: field:report.intrastat.service,start_date:0
+msgid "Start date"
msgstr ""
#. module: l10n_fr_intrastat_service
@@ -243,48 +300,43 @@ msgid "Start date must be the first day of a month"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,amount_invoice_currency:0
-msgid "Amount in invoice currency"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,currency_id:0
-msgid "Currency"
+#: help:report.intrastat.service,start_date:0
+msgid "Start date of the declaration. Must be the first day of a month."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:report.intrastat.service:0
-#: selection:report.intrastat.service,state:0
-msgid "Done"
+#: field:report.intrastat.service,state:0
+msgid "State"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service.line,parent_id:0
-msgid "Intrastat service ref"
+#: help:report.intrastat.service,state:0
+msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: model:ir.module.module,shortdesc:l10n_fr_intrastat_service.module_meta_information
-msgid "Module for Intrastat service reporting (DES) for France"
+#: field:report.intrastat.service,message_summary:0
+msgid "Summary"
msgstr ""
#. module: l10n_fr_intrastat_service
#: view:report.intrastat.service:0
-msgid "Re-generate lines"
+#: field:report.intrastat.service,total_amount:0
+msgid "Total amount"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,num_lines:0
-msgid "Number of lines"
+#: help:report.intrastat.service,total_amount:0
+msgid "Total amount in company currency of the declaration."
msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:report.intrastat.service,date_done:0
-msgid "Date done"
+#: field:report.intrastat.service,message_unread:0
+msgid "Unread Messages"
msgstr ""
#. module: l10n_fr_intrastat_service
-#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service
-msgid "Intrastat report for services"
+#: help:report.intrastat.service,year_month:0
+msgid "Year and month of the declaration."
msgstr ""
From a8a233d2a2c514ce34714ea154aedc9b2ad59f0b Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Fri, 4 Jul 2014 00:15:06 +0200
Subject: [PATCH 040/142] Continue the work on port to v8.0
---
.../intrastat_service_view.xml | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index fd48897b9..c2062e015 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -10,7 +10,7 @@
-
+fr.intrastat.service.formreport.intrastat.service
@@ -54,7 +54,7 @@
-
+fr.intrastat.service.treereport.intrastat.service
@@ -70,7 +70,7 @@
-
+fr.intrastat.service.searchreport.intrastat.service
@@ -82,7 +82,7 @@
-
+fr.intrastat.service.line.formreport.intrastat.service.line
@@ -104,7 +104,7 @@
-
+fr.intrastat.service.line.treereport.intrastat.service.line
@@ -120,16 +120,15 @@
-
+Intrastat Servicereport.intrastat.service
- formtree,form
-
+
From 1f41022790e0378399e2b76f7e927efae61ef3e7 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Fri, 4 Jul 2014 00:16:37 +0200
Subject: [PATCH 041/142] Add intrastat_type_data and update demo data
accordingly Remove version="7.0" from form views Add ondelete='restrict' on
M2O pointing to intrastat.type Add graph views on intrastat.product and
intrastat.service... because Odoo v8 graph views are so cool ! :)
---
.../intrastat_service_view.xml | 21 ++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/l10n_fr_intrastat_service/intrastat_service_view.xml b/l10n_fr_intrastat_service/intrastat_service_view.xml
index c2062e015..08c208a84 100644
--- a/l10n_fr_intrastat_service/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/intrastat_service_view.xml
@@ -14,7 +14,7 @@
fr.intrastat.service.formreport.intrastat.service
-
As there were no Intrastat Service declaration for that month in OpenERP, a draft declaration has been generated automatically by OpenERP.
+
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
% if ctx.get('exception'):
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
${ctx.get('error_msg')}
-
You should solve this error, then go to the menu "Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service", open the declaration of month ${object.year_month} and click on the button "Re-generate lines".
+
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
% else:
-% if object.num_lines and object.num_lines > 0:
-
This draft Intrastat Service declaration contains ${object.num_lines} ${object.num_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
+% if object.num_lines and object.num_decl_lines > 0:
+
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
% else:
-
This draft Intrastat Service declaration generated automatically by OpenERP doesn't contain any line.
+
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
% endif
-
Go and check this declaration in OpenERP in the menu "Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service".
+
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
% endif
--
-Automatic e-mail sent by OpenERP.
-
+Automatic e-mail sent by Odoo.
@@ -109,8 +123,12 @@
-
-
+
+
+
@@ -122,7 +140,7 @@
DESl10n.fr.intrastat.service.declaration
- tree,form
+ tree,form,graph
@@ -132,13 +150,4 @@
action="l10n_fr_intrastat_service_declaration_action" />
-
-
- DES Validated
- l10n.fr.intrastat.service.declaration
-
- DES Validated
-
-
-
-
+
From 83d6c1159f224a89008ee4aec405a57219bff0c9 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Wed, 8 Mar 2017 14:18:34 +0100
Subject: [PATCH 061/142] Update README for DEB and DES
PEP8
---
l10n_fr_intrastat_service/README.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_fr_intrastat_service/README.rst b/l10n_fr_intrastat_service/README.rst
index 02938cf53..37c81dcb5 100644
--- a/l10n_fr_intrastat_service/README.rst
+++ b/l10n_fr_intrastat_service/README.rst
@@ -15,7 +15,7 @@ More information about the DES is available on this `official web page Reporting > Legal Reports > Intrastat Reporting > Intrastat Service and create a new DES. Then, click on the button *Generate lines from invoices* to automatically generate the lines of DES. After checking the lines that have been automatically generated, click on the button *Attach XML file* to create the XML file corresponding to the DES. Eventually, connect to your account on `pro.douane ` and upload the DES XML file.
+To use this module, you need to go to the menu Accounting > Reports > Intrastat > DES and create a new DES. Then, click on the button *Generate lines from invoices* to automatically generate the lines of DES. After checking the lines that have been automatically generated, click on the button *Attach XML file* to create the XML file corresponding to the DES. Eventually, connect to your account on `pro.douane ` and upload the DES XML file.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
From b8968dfc308edd390a48dcb7013f501c2d68f642 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Wed, 8 Mar 2017 14:44:40 +0100
Subject: [PATCH 062/142] Suggestions of David Beal: remove @api.multi (default
in v10) and use *= -1 to change the sign
---
l10n_fr_intrastat_service/models/intrastat_service.py | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/l10n_fr_intrastat_service/models/intrastat_service.py b/l10n_fr_intrastat_service/models/intrastat_service.py
index d884b8c96..d9ca631a8 100644
--- a/l10n_fr_intrastat_service/models/intrastat_service.py
+++ b/l10n_fr_intrastat_service/models/intrastat_service.py
@@ -35,7 +35,6 @@ def _get_month(self):
else:
return datetime.now().month - 1
- @api.multi
@api.depends('year', 'month')
def _compute_year_month(self):
for rec in self:
@@ -114,7 +113,6 @@ def _is_service(self, invoice_line):
else:
return False
- @api.multi
def generate_service_lines(self):
self.ensure_one()
line_obj = self.env['l10n.fr.intrastat.service.declaration.line']
@@ -199,8 +197,8 @@ def generate_service_lines(self):
if amount_company_cur_to_write:
if invoice.type == 'out_refund':
- amount_invoice_cur_to_write = - amount_invoice_cur_to_write
- amount_company_cur_to_write = - amount_company_cur_to_write
+ amount_invoice_cur_to_write *= -1
+ amount_company_cur_to_write *= -1
# Why do I check that the Partner has a VAT number
# only here and not earlier ? Because, if I sell
@@ -231,17 +229,14 @@ def generate_service_lines(self):
self.message_post(_('Re-generating lines from invoices'))
return
- @api.multi
def done(self):
self.state = 'done'
return
- @api.multi
def back2draft(self):
self.state = 'draft'
return
- @api.multi
def generate_xml(self):
self.ensure_one()
From 484abeaefa2428bc76eea681d60155b56c7f30cf Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Wed, 8 Mar 2017 15:45:02 +0100
Subject: [PATCH 063/142] Put DEB menu before DES menu
---
l10n_fr_intrastat_service/views/intrastat_service_view.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_fr_intrastat_service/views/intrastat_service_view.xml b/l10n_fr_intrastat_service/views/intrastat_service_view.xml
index 6627b3633..5ac52db39 100644
--- a/l10n_fr_intrastat_service/views/intrastat_service_view.xml
+++ b/l10n_fr_intrastat_service/views/intrastat_service_view.xml
@@ -147,7 +147,7 @@
+ action="l10n_fr_intrastat_service_declaration_action" sequence="20"/>
From 132f42ddd9b35fac0d67afe2a45814a97c4c1b37 Mon Sep 17 00:00:00 2001
From: Alexis de Lattre
Date: Wed, 26 Apr 2017 00:06:20 +0200
Subject: [PATCH 064/142] Update README for DES
---
l10n_fr_intrastat_service/README.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_fr_intrastat_service/README.rst b/l10n_fr_intrastat_service/README.rst
index 37c81dcb5..102eb03c3 100644
--- a/l10n_fr_intrastat_service/README.rst
+++ b/l10n_fr_intrastat_service/README.rst
@@ -8,7 +8,7 @@ Déclaration Européenne des Services (DES)
This module adds support for the "Déclaration Européenne des Services" (DES) for France.
-The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France's Customs administration if they sell services to other EU companies.
+The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France's Customs administration if they sell services without VAT to other EU companies.
More information about the DES is available on this `official web page `.
From 3738665f4766923d6e4be9467681496da391df37 Mon Sep 17 00:00:00 2001
From: OCA Transbot
Date: Mon, 1 May 2017 19:52:01 +0200
Subject: [PATCH 065/142] OCA Transbot updated translations from Transifex
---
l10n_fr_intrastat_service/i18n/am.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/ca.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/de.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/el_GR.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/es.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/es_ES.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/fi.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/fr.po | 429 ++++++++++++------------
l10n_fr_intrastat_service/i18n/gl.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/it.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/nb_NO.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/pt.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/pt_BR.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/pt_PT.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/sl.po | 368 ++++++++++++++++++++
l10n_fr_intrastat_service/i18n/tr.po | 368 ++++++++++++++++++++
16 files changed, 5731 insertions(+), 218 deletions(-)
create mode 100644 l10n_fr_intrastat_service/i18n/am.po
create mode 100644 l10n_fr_intrastat_service/i18n/ca.po
create mode 100644 l10n_fr_intrastat_service/i18n/de.po
create mode 100644 l10n_fr_intrastat_service/i18n/el_GR.po
create mode 100644 l10n_fr_intrastat_service/i18n/es.po
create mode 100644 l10n_fr_intrastat_service/i18n/es_ES.po
create mode 100644 l10n_fr_intrastat_service/i18n/fi.po
create mode 100644 l10n_fr_intrastat_service/i18n/gl.po
create mode 100644 l10n_fr_intrastat_service/i18n/it.po
create mode 100644 l10n_fr_intrastat_service/i18n/nb_NO.po
create mode 100644 l10n_fr_intrastat_service/i18n/pt.po
create mode 100644 l10n_fr_intrastat_service/i18n/pt_BR.po
create mode 100644 l10n_fr_intrastat_service/i18n/pt_PT.po
create mode 100644 l10n_fr_intrastat_service/i18n/sl.po
create mode 100644 l10n_fr_intrastat_service/i18n/tr.po
diff --git a/l10n_fr_intrastat_service/i18n/am.po b/l10n_fr_intrastat_service/i18n/am.po
new file mode 100644
index 000000000..5f0eb1588
--- /dev/null
+++ b/l10n_fr_intrastat_service/i18n/am.po
@@ -0,0 +1,368 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_fr_intrastat_service
+#
+# Translators:
+# OCA Transbot , 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-04-26 02:41+0000\n"
+"PO-Revision-Date: 2017-04-26 02:41+0000\n"
+"Last-Translator: OCA Transbot , 2017\n"
+"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: am\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: l10n_fr_intrastat_service
+#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
+msgid ""
+"\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
-"\n"
-"
As there were no Intrastat Service declaration for that month in OpenERP, a draft declaration has been generated automatically by OpenERP.
\n"
-"\n"
-"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
-"\n"
-"
${ctx.get('error_msg')}
\n"
-"\n"
-"
You should solve this error, then go to the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\", open the declaration of month ${object.year_month} and click on the button \"Re-generate lines\".
\n"
-"\n"
-"% else:\n"
-"% if object.num_lines and object.num_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_lines} ${object.num_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
-"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by OpenERP doesn't contain any line.
\n"
-"% endif\n"
-"\n"
-"
Go and check this declaration in OpenERP in the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\".
\n"
-"\n"
-"% endif\n"
-"\n"
-"
\n"
-"-- \n"
-"Automatic e-mail sent by OpenERP.\n"
-"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in OpenERP, a draft declaration has been generated automatically by OpenERP.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\", open the declaration of month ${object.year_month} and click on the button \"Re-generate lines\".
\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
"\n"
"% else:\n"
-"% if object.num_lines and object.num_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_lines} ${object.num_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by OpenERP doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in OpenERP in the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\".
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
"
\n"
-"-- \n"
-"Automatic e-mail sent by OpenERP.\n"
-"\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
"
\n"
-"
\n"
-""
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "01"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "02"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "03"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "04"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "05"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "06"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "07"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "08"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "09"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "10"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: sql_constraint:l10n.fr.report.intrastat.service:0
-msgid "A DES for this month already exists !"
-msgstr "Une DES est déjà créée pour ce mois !"
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "11"
+msgstr "11"
#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service.line:l10n_fr_intrastat_service.l10n_fr_intrastat_service_line_form
-msgid "Additionnal information"
-msgstr "Additionnal information"
+#: selection:l10n.fr.intrastat.service.declaration,month:0
+msgid "12"
+msgstr "12"
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,amount_company_currency:0
-msgid "Amount in company currency"
-msgstr "Montant dans la monnaie de la société"
+#: sql_constraint:l10n.fr.intrastat.service.declaration:0
+msgid "A DES already exists for this month!"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service.line,amount_company_currency:0
-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 and rounded at 0 digits"
-msgstr "Montant dans la monnaie de la société à reporter dans la déclaration. Montant dans la monnaie de la société = montant dans la monnaie de la facture converti au taux de la date de la facture et arrondi à l'entier le plus proche"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_amount_company_currency
+msgid "Amount"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,amount_invoice_currency:0
-msgid "Amount in invoice currency"
-msgstr "Montant dans la monnaie de la facture"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_amount_invoice_currency
+msgid "Amount in Invoice Currency"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service.line,amount_invoice_currency:0
-msgid "Amount in invoice currency (not rounded)"
-msgstr "Montant dans la monnaie de la facture (non arrondi)"
+#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+msgstr ""
+"Montant dans la monnaie de la société à reporter dans la déclaration. "
+"Montant dans la monnaie de la société = montant dans la monnaie de la "
+"facture converti au taux de la date de la facture et arrondi à l'entier le "
+"plus proche"
#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_form
-msgid "Attach XML file"
-msgstr "Attacher le fichier XML"
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_form
+msgid "Attach XML File"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_form
-msgid "Back to draft"
-msgstr "Retour au brouillon"
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_form
+msgid "Back to Draft"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,company_id:0
-#: field:l10n.fr.report.intrastat.service.line,company_id:0
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_company_id
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_company_id
msgid "Company"
msgstr "Société"
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,create_uid:0
-#: field:l10n.fr.report.intrastat.service.line,create_uid:0
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_currency_id
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_company_currency_id
+msgid "Company Currency"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_create_uid
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_create_uid
msgid "Created by"
msgstr "Créé par"
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,create_date:0
-#: field:l10n.fr.report.intrastat.service.line,create_date:0
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_create_date
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_create_date
msgid "Created on"
msgstr "Créé le"
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,partner_vat:0
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_partner_vat
msgid "Customer VAT"
msgstr "N° TVA du client"
#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_search
-msgid "Date"
-msgstr "Date"
+#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_action
+#: model:ir.model,name:l10n_fr_intrastat_service.model_l10n_fr_intrastat_service_declaration
+#: model:ir.ui.menu,name:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_menu
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_form
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_tree
+msgid "DES"
+msgstr ""
+
+#. module: l10n_fr_intrastat_service
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_graph
+msgid "DES Graph"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,message_last_post:0
-msgid "Date of the last message posted on the record."
-msgstr "Date of the last message posted on the record."
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_display_name
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_display_name
+msgid "Display Name"
+msgstr "Afficher le nom"
#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_form
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_search
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_tree
-#: selection:l10n.fr.report.intrastat.service,state:0
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_form
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_search
+#: selection:l10n.fr.intrastat.service.declaration,state:0
msgid "Done"
msgstr "Déclaré"
#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_search
-#: selection:l10n.fr.report.intrastat.service,state:0
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_search
+#: selection:l10n.fr.intrastat.service.declaration,state:0
msgid "Draft"
msgstr "Brouillon"
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,end_date:0
-msgid "End date"
-msgstr "Date de fin"
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,end_date:0
-msgid "End date for the declaration. Must be the last day of the month of the start date."
-msgstr "Date de fin de la déclaration. Doit être le dernier jour du mois de la date de début."
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_follower_ids:0
-msgid "Followers"
-msgstr "Followers"
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_form
-msgid "Generate lines from invoices"
-msgstr "Générer les lignes à partir des factures"
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_form
+msgid "Generate Lines from Invoices"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_search
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_search
msgid "Group By"
msgstr "Grouper par"
#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,message_summary:0
-msgid "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views."
-msgstr "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views."
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,id:0
-#: field:l10n.fr.report.intrastat.service.line,id:0
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_id
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_id
msgid "ID"
msgstr "ID"
#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,message_unread:0
-msgid "If checked new messages require your attention."
-msgstr "If checked new messages require your attention."
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service.line:l10n_fr_intrastat_service.l10n_fr_intrastat_service_line_form
-msgid "Information to declare"
-msgstr "Informations à déclarer"
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_line_form
+msgid "Information to Declare"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.l10n_fr_intrastat_service_tree_action
-#: model:ir.model,name:l10n_fr_intrastat_service.model_l10n_fr_report_intrastat_service
-#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service
-#: model:ir.ui.menu,name:l10n_fr_intrastat_service.l10n_fr_intrastat_service_menu
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_form
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_graph
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_tree
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_form
msgid "Intrastat Service"
msgstr "DES"
#. module: l10n_fr_intrastat_service
-#: model:email.template,subject:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
+#: model:mail.template,subject:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid "Intrastat Service ${object.year_month} for ${object.company_id.name}"
msgstr "DES ${object.year_month} pour ${object.company_id.name}"
#. module: l10n_fr_intrastat_service
-#: model:ir.model,name:l10n_fr_intrastat_service.model_l10n_fr_report_intrastat_service_line
-#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service_line
-#: field:l10n.fr.report.intrastat.service,intrastat_line_ids:0
-#: view:l10n.fr.report.intrastat.service.line:l10n_fr_intrastat_service.l10n_fr_intrastat_service_line_form
-#: view:l10n.fr.report.intrastat.service.line:l10n_fr_intrastat_service.l10n_fr_intrastat_service_line_tree
-msgid "Intrastat Service Lines"
-msgstr "Lignes de DES"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_parent_id
+msgid "Intrastat Service Declaration"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: model:mail.message.subtype,description:l10n_fr_intrastat_service.l10n_fr_declaration_done
-#: model:mail.message.subtype,name:l10n_fr_intrastat_service.l10n_fr_declaration_done
-msgid "Intrastat Service Validated"
-msgstr "DES validée"
+#: model:ir.model,name:l10n_fr_intrastat_service.model_l10n_fr_intrastat_service_declaration_line
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_declaration_line_ids
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_line_form
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_line_tree
+msgid "Intrastat Service Lines"
+msgstr "Lignes de DES"
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,parent_id:0
-msgid "Intrastat service ref"
-msgstr "Réf DES"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_invoice_id
+msgid "Invoice"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,invoice_currency_id:0
-msgid "Invoice currency"
-msgstr "Monnaie de la facture"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_invoice_currency_id
+msgid "Invoice Currency"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,invoice_id:0
-msgid "Invoice ref"
-msgstr "Réf. facture"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_date_invoice
+msgid "Invoice Date"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_is_follower:0
-msgid "Is a Follower"
-msgstr "Is a Follower"
+#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_date_invoice
+msgid "Keep empty to use the current date"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_last_post:0
-msgid "Last Message Date"
-msgstr "Last Message Date"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration___last_update
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line___last_update
+msgid "Last Modified on"
+msgstr "Dernière Modification le"
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,write_uid:0
-#: field:l10n.fr.report.intrastat.service.line,write_uid:0
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_write_uid
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_write_uid
msgid "Last Updated by"
msgstr "Dernière modification par"
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,write_date:0
-#: field:l10n.fr.report.intrastat.service.line,write_date:0
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_write_date
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_write_date
msgid "Last Updated on"
msgstr "Dernière modification le"
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_ids:0
-msgid "Messages"
-msgstr "Messages"
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,message_ids:0
-msgid "Messages and communication history"
-msgstr "Messages and communication history"
-
-#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:210
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:274
+#: code:addons/l10n_fr_intrastat_service/models/intrastat_service.py:214
+#: code:addons/l10n_fr_intrastat_service/models/intrastat_service.py:274
#, python-format
msgid "Missing VAT number on partner '%s'."
msgstr "Numéro de TVA non renseigné pour le partenaire '%s'."
#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:123
+#: code:addons/l10n_fr_intrastat_service/models/intrastat_service.py:132
#, python-format
msgid "Missing country on partner '%s'."
msgstr "Pays manquant sur le partenaire '%s'."
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,year_month:0
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_month
msgid "Month"
msgstr "Mois"
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,num_lines:0
-msgid "Number of lines"
-msgstr "Nombre de lignes"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_num_decl_lines
+msgid "Number of Lines"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,num_lines:0
-msgid "Number of lines in this declaration."
-msgstr "Nombre de lignes de la déclaration."
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_line_partner_id
+msgid "Partner Name"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,partner_id:0
-msgid "Partner name"
-msgstr "Nom du partenaire"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_year_month
+msgid "Period"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_search
-msgid "Search Intrastat Service"
-msgstr "Recherche DES"
+#: code:addons/l10n_fr_intrastat_service/models/intrastat_service.py:229
+#, python-format
+msgid "Re-generating lines from invoices"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,start_date:0
-msgid "Start date"
-msgstr "Date de début"
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_line_form
+msgid "Related Invoice"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,start_date:0
-msgid "Start date of the declaration. Must be the first day of a month."
-msgstr "Date de début de la déclaration. Doit être le premier jour d'un mois."
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_search
+msgid "Search DES"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,state:0
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_state
msgid "State"
msgstr "État"
#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,state:0
-msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
-msgstr "État de la déclaration. Quand l'état est à 'Déclaré', les champs passent en lecture seule."
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_summary:0
-msgid "Summary"
-msgstr "Summary"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_total_amount
+msgid "Total Amount"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_tree
-#: field:l10n.fr.report.intrastat.service,total_amount:0
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_tree
msgid "Total amount"
msgstr "Montant total"
#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,total_amount:0
+#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_total_amount
msgid "Total amount in company currency of the declaration."
msgstr "Montant total en monnaie société de la déclaration."
#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_unread:0
-msgid "Unread Messages"
-msgstr "Unread Messages"
+#: model:ir.model.fields,field_description:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_year
+#: model:ir.ui.view,arch_db:l10n_fr_intrastat_service.l10n_fr_intrastat_service_declaration_search
+msgid "Year"
+msgstr ""
#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,year_month:0
+#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_declaration_year_month
msgid "Year and month of the declaration."
msgstr "Année et mois de la déclaration."
-
diff --git a/l10n_fr_intrastat_service/i18n/gl.po b/l10n_fr_intrastat_service/i18n/gl.po
new file mode 100644
index 000000000..0fd3871c6
--- /dev/null
+++ b/l10n_fr_intrastat_service/i18n/gl.po
@@ -0,0 +1,368 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_fr_intrastat_service
+#
+# Translators:
+# OCA Transbot , 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-04-26 02:41+0000\n"
+"PO-Revision-Date: 2017-04-26 02:41+0000\n"
+"Last-Translator: OCA Transbot , 2017\n"
+"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: gl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: l10n_fr_intrastat_service
+#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
+msgid ""
+"\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
-"\n"
-"
As there were no Intrastat Service declaration for that month in OpenERP, a draft declaration has been generated automatically by OpenERP.
\n"
-"\n"
-"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
-"\n"
-"
${ctx.get('error_msg')}
\n"
-"\n"
-"
You should solve this error, then go to the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\", open the declaration of month ${object.year_month} and click on the button \"Re-generate lines\".
\n"
-"\n"
-"% else:\n"
-"% if object.num_lines and object.num_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_lines} ${object.num_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
-"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by OpenERP doesn't contain any line.
\n"
-"% endif\n"
-"\n"
-"
Go and check this declaration in OpenERP in the menu \"Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service\".
\n"
-"\n"
-"% endif\n"
-"\n"
-"
\n"
-"-- \n"
-"Automatic e-mail sent by OpenERP.\n"
-"\n"
-"
\n"
-"
\n"
-""
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: sql_constraint:l10n.fr.report.intrastat.service:0
-msgid "A DES for this month already exists !"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service.line:l10n_fr_intrastat_service.l10n_fr_intrastat_service_line_form
-msgid "Additionnal information"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,amount_company_currency:0
-msgid "Amount in company currency"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service.line,amount_company_currency:0
-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 and rounded at 0 digits"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,amount_invoice_currency:0
-msgid "Amount in invoice currency"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service.line,amount_invoice_currency:0
-msgid "Amount in invoice currency (not rounded)"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_form
-msgid "Attach XML file"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_form
-msgid "Back to draft"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,company_id:0
-#: field:l10n.fr.report.intrastat.service.line,company_id:0
-msgid "Company"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,create_uid:0
-#: field:l10n.fr.report.intrastat.service.line,create_uid:0
-msgid "Created by"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,create_date:0
-#: field:l10n.fr.report.intrastat.service.line,create_date:0
-msgid "Created on"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,partner_vat:0
-msgid "Customer VAT"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_search
-msgid "Date"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,message_last_post:0
-msgid "Date of the last message posted on the record."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_form
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_search
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_tree
-#: selection:l10n.fr.report.intrastat.service,state:0
-msgid "Done"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_search
-#: selection:l10n.fr.report.intrastat.service,state:0
-msgid "Draft"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,end_date:0
-msgid "End date"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,end_date:0
-msgid "End date for the declaration. Must be the last day of the month of the start date."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_follower_ids:0
-msgid "Followers"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_form
-msgid "Generate lines from invoices"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_search
-msgid "Group By"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,message_summary:0
-msgid "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,id:0
-#: field:l10n.fr.report.intrastat.service.line,id:0
-msgid "ID"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,message_unread:0
-msgid "If checked new messages require your attention."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service.line:l10n_fr_intrastat_service.l10n_fr_intrastat_service_line_form
-msgid "Information to declare"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: model:ir.actions.act_window,name:l10n_fr_intrastat_service.l10n_fr_intrastat_service_tree_action
-#: model:ir.model,name:l10n_fr_intrastat_service.model_l10n_fr_report_intrastat_service
-#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service
-#: model:ir.ui.menu,name:l10n_fr_intrastat_service.l10n_fr_intrastat_service_menu
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_form
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_graph
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_tree
-msgid "Intrastat Service"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: model:email.template,subject:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
-msgid "Intrastat Service ${object.year_month} for ${object.company_id.name}"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: model:ir.model,name:l10n_fr_intrastat_service.model_l10n_fr_report_intrastat_service_line
-#: model:ir.model,name:l10n_fr_intrastat_service.model_report_intrastat_service_line
-#: field:l10n.fr.report.intrastat.service,intrastat_line_ids:0
-#: view:l10n.fr.report.intrastat.service.line:l10n_fr_intrastat_service.l10n_fr_intrastat_service_line_form
-#: view:l10n.fr.report.intrastat.service.line:l10n_fr_intrastat_service.l10n_fr_intrastat_service_line_tree
-msgid "Intrastat Service Lines"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: model:mail.message.subtype,description:l10n_fr_intrastat_service.l10n_fr_declaration_done
-#: model:mail.message.subtype,name:l10n_fr_intrastat_service.l10n_fr_declaration_done
-msgid "Intrastat Service Validated"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,parent_id:0
-msgid "Intrastat service ref"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,invoice_currency_id:0
-msgid "Invoice currency"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,invoice_id:0
-msgid "Invoice ref"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_is_follower:0
-msgid "Is a Follower"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_last_post:0
-msgid "Last Message Date"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,write_uid:0
-#: field:l10n.fr.report.intrastat.service.line,write_uid:0
-msgid "Last Updated by"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,write_date:0
-#: field:l10n.fr.report.intrastat.service.line,write_date:0
-msgid "Last Updated on"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_ids:0
-msgid "Messages"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,message_ids:0
-msgid "Messages and communication history"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:210
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:274
-#, python-format
-msgid "Missing VAT number on partner '%s'."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: code:addons/l10n_fr_intrastat_service/intrastat_service.py:123
-#, python-format
-msgid "Missing country on partner '%s'."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,year_month:0
-msgid "Month"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,num_lines:0
-msgid "Number of lines"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,num_lines:0
-msgid "Number of lines in this declaration."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service.line,partner_id:0
-msgid "Partner name"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_search
-msgid "Search Intrastat Service"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,start_date:0
-msgid "Start date"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,start_date:0
-msgid "Start date of the declaration. Must be the first day of a month."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,state:0
-msgid "State"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,state:0
-msgid "State of the declaration. When the state is set to 'Done', the fields become read-only."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_summary:0
-msgid "Summary"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: view:l10n.fr.report.intrastat.service:l10n_fr_intrastat_service.l10n_fr_intrastat_service_tree
-#: field:l10n.fr.report.intrastat.service,total_amount:0
-msgid "Total amount"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,total_amount:0
-msgid "Total amount in company currency of the declaration."
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: field:l10n.fr.report.intrastat.service,message_unread:0
-msgid "Unread Messages"
-msgstr ""
-
-#. module: l10n_fr_intrastat_service
-#: help:l10n.fr.report.intrastat.service,year_month:0
-msgid "Year and month of the declaration."
-msgstr ""
-
From 5645f1690994bbfbf61a3e416442626b4a88f108 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Fri, 22 Jun 2018 20:44:12 +0000
Subject: [PATCH 069/142] Update l10n_fr_intrastat_service.pot
---
l10n_fr_intrastat_service/i18n/am.po | 32 +-
l10n_fr_intrastat_service/i18n/ca.po | 32 +-
l10n_fr_intrastat_service/i18n/de.po | 32 +-
l10n_fr_intrastat_service/i18n/el_GR.po | 35 +-
l10n_fr_intrastat_service/i18n/es.po | 32 +-
l10n_fr_intrastat_service/i18n/es_ES.po | 35 +-
l10n_fr_intrastat_service/i18n/fi.po | 32 +-
l10n_fr_intrastat_service/i18n/fr.po | 32 +-
l10n_fr_intrastat_service/i18n/gl.po | 32 +-
l10n_fr_intrastat_service/i18n/it.po | 32 +-
.../i18n/l10n_fr_intrastat_service.pot | 361 ++++++++++++++++++
l10n_fr_intrastat_service/i18n/nb_NO.po | 35 +-
l10n_fr_intrastat_service/i18n/pt.po | 32 +-
l10n_fr_intrastat_service/i18n/pt_BR.po | 35 +-
l10n_fr_intrastat_service/i18n/pt_PT.po | 35 +-
l10n_fr_intrastat_service/i18n/sl.po | 35 +-
l10n_fr_intrastat_service/i18n/tr.po | 32 +-
17 files changed, 709 insertions(+), 182 deletions(-)
create mode 100644 l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
diff --git a/l10n_fr_intrastat_service/i18n/am.po b/l10n_fr_intrastat_service/i18n/am.po
index 5f0eb1588..5a27a2481 100644
--- a/l10n_fr_intrastat_service/i18n/am.po
+++ b/l10n_fr_intrastat_service/i18n/am.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,45 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n"
+"Language: am\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: am\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +139,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/ca.po b/l10n_fr_intrastat_service/i18n/ca.po
index 19ebe67d1..cd81ef058 100644
--- a/l10n_fr_intrastat_service/i18n/ca.po
+++ b/l10n_fr_intrastat_service/i18n/ca.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,45 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n"
+"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +139,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/de.po b/l10n_fr_intrastat_service/i18n/de.po
index ec61cdb87..ed271a423 100644
--- a/l10n_fr_intrastat_service/i18n/de.po
+++ b/l10n_fr_intrastat_service/i18n/de.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,45 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +139,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/el_GR.po b/l10n_fr_intrastat_service/i18n/el_GR.po
index 0beda4a56..2b1dcb2bb 100644
--- a/l10n_fr_intrastat_service/i18n/el_GR.po
+++ b/l10n_fr_intrastat_service/i18n/el_GR.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -11,36 +11,47 @@ msgstr ""
"POT-Creation-Date: 2017-04-26 02:41+0000\n"
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
-"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/el_GR/)\n"
+"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/"
+"el_GR/)\n"
+"Language: el_GR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: el_GR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +140,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/es.po b/l10n_fr_intrastat_service/i18n/es.po
index cbca711bf..e779e9eb1 100644
--- a/l10n_fr_intrastat_service/i18n/es.po
+++ b/l10n_fr_intrastat_service/i18n/es.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,45 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +139,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/es_ES.po b/l10n_fr_intrastat_service/i18n/es_ES.po
index a044091a5..ac717cb4d 100644
--- a/l10n_fr_intrastat_service/i18n/es_ES.po
+++ b/l10n_fr_intrastat_service/i18n/es_ES.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -11,36 +11,47 @@ msgstr ""
"POT-Creation-Date: 2017-04-26 02:41+0000\n"
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
-"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/es_ES/)\n"
+"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/"
+"es_ES/)\n"
+"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_ES\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +140,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/fi.po b/l10n_fr_intrastat_service/i18n/fi.po
index 9ebf8c146..fe0d6d85c 100644
--- a/l10n_fr_intrastat_service/i18n/fi.po
+++ b/l10n_fr_intrastat_service/i18n/fi.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,45 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n"
+"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +139,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/fr.po b/l10n_fr_intrastat_service/i18n/fr.po
index ca45221d1..774556638 100644
--- a/l10n_fr_intrastat_service/i18n/fr.po
+++ b/l10n_fr_intrastat_service/i18n/fr.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,45 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +139,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
"Montant dans la monnaie de la société à reporter dans la déclaration. "
"Montant dans la monnaie de la société = montant dans la monnaie de la "
diff --git a/l10n_fr_intrastat_service/i18n/gl.po b/l10n_fr_intrastat_service/i18n/gl.po
index 0fd3871c6..8312bdc67 100644
--- a/l10n_fr_intrastat_service/i18n/gl.po
+++ b/l10n_fr_intrastat_service/i18n/gl.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,45 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n"
+"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: gl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +139,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/it.po b/l10n_fr_intrastat_service/i18n/it.po
index e1664cac6..40116ee56 100644
--- a/l10n_fr_intrastat_service/i18n/it.po
+++ b/l10n_fr_intrastat_service/i18n/it.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,45 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +139,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot b/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
new file mode 100644
index 000000000..70589b38d
--- /dev/null
+++ b/l10n_fr_intrastat_service/i18n/l10n_fr_intrastat_service.pot
@@ -0,0 +1,361 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_fr_intrastat_service
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_fr_intrastat_service
+#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
+msgid "\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"\n"
+"% if ctx.get('exception'):\n"
+"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"\n"
+"
${ctx.get('error_msg')}
\n"
+"\n"
+"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"\n"
+"% else:\n"
+"% if object.num_lines and object.num_decl_lines > 0:\n"
+"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"% else:\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"% endif\n"
+"\n"
+"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"\n"
+"% endif\n"
+"\n"
+"
\n"
+"-- \n"
+"Automatic e-mail sent by Odoo.\n"
+"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +140,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/pt.po b/l10n_fr_intrastat_service/i18n/pt.po
index cff448498..fd27081e5 100644
--- a/l10n_fr_intrastat_service/i18n/pt.po
+++ b/l10n_fr_intrastat_service/i18n/pt.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,45 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n"
+"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +139,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/pt_BR.po b/l10n_fr_intrastat_service/i18n/pt_BR.po
index 0eccfaa63..956a8d73c 100644
--- a/l10n_fr_intrastat_service/i18n/pt_BR.po
+++ b/l10n_fr_intrastat_service/i18n/pt_BR.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -11,36 +11,47 @@ msgstr ""
"POT-Creation-Date: 2017-04-26 02:41+0000\n"
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
-"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/"
+"teams/23907/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +140,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/pt_PT.po b/l10n_fr_intrastat_service/i18n/pt_PT.po
index e7f708de9..53df7dd2e 100644
--- a/l10n_fr_intrastat_service/i18n/pt_PT.po
+++ b/l10n_fr_intrastat_service/i18n/pt_PT.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -11,36 +11,47 @@ msgstr ""
"POT-Creation-Date: 2017-04-26 02:41+0000\n"
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
-"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/teams/23907/pt_PT/)\n"
+"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/"
+"teams/23907/pt_PT/)\n"
+"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: pt_PT\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +140,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/sl.po b/l10n_fr_intrastat_service/i18n/sl.po
index 79c7064dc..71f0276e6 100644
--- a/l10n_fr_intrastat_service/i18n/sl.po
+++ b/l10n_fr_intrastat_service/i18n/sl.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,46 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
+"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: sl\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
+"%100==4 ? 2 : 3);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
\n"
"\n"
"% endif\n"
"\n"
@@ -129,8 +140,8 @@ msgstr ""
#: model:ir.model.fields,help:l10n_fr_intrastat_service.field_l10n_fr_intrastat_service_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 and rounded at 0 digits"
+"currency = amount in invoice currency converted to company currency with the "
+"rate of the invoice date and rounded at 0 digits"
msgstr ""
#. module: l10n_fr_intrastat_service
diff --git a/l10n_fr_intrastat_service/i18n/tr.po b/l10n_fr_intrastat_service/i18n/tr.po
index 305910625..ee7433541 100644
--- a/l10n_fr_intrastat_service/i18n/tr.po
+++ b/l10n_fr_intrastat_service/i18n/tr.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_fr_intrastat_service
-#
+#
# Translators:
# OCA Transbot , 2017
msgid ""
@@ -12,35 +12,45 @@ msgstr ""
"PO-Revision-Date: 2017-04-26 02:41+0000\n"
"Last-Translator: OCA Transbot , 2017\n"
"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n"
+"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: l10n_fr_intrastat_service
#: model:mail.template,body_html:l10n_fr_intrastat_service.intrastat_service_reminder_email_template
msgid ""
"\n"
-"
I would like to remind you that we are approaching the deadline for the Intrastat Service declaration for month ${object.year_month}.
\n"
+"
I would like to remind you that we are approaching the deadline for the "
+"Intrastat Service declaration for month ${object.year_month}.
\n"
"\n"
-"
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
\n"
+"
As there were no Intrastat Service declaration for that month in Odoo, a "
+"draft declaration has been generated automatically.
\n"
"\n"
"% if ctx.get('exception'):\n"
-"
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
\n"
+"
When trying to generate the lines of the Intrastat Service declaration, "
+"the following error was encountered:
\n"
"\n"
"
${ctx.get('error_msg')}
\n"
"\n"
-"
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
\n"
+"
You should solve this error, then go to the menu Accounting > "
+"Reporting > Legal Reports > Intrastat reporting > Intrastat Service, "
+"open the declaration of month ${object.year_month} and click on the button "
+"Re-generate lines.
\n"
"\n"
"% else:\n"
"% if object.num_lines and object.num_decl_lines > 0:\n"
-"
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
+"
This draft Intrastat Service declaration contains ${object."
+"num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the "
+"total amount is ${object.total_amount} ${object.currency_id.symbol}.
\n"
"% else:\n"
-"
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
\n"
+"
This draft Intrastat Service declaration generated automatically by Odoo "
+"doesn't contain any line.
\n"
"% endif\n"
"\n"
-"
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
\n"
+"
Go and check this declaration in the menu Accounting > Reporting > "
+"Legal Reports > Intrastat reporting > Intrastat Service.
I would like to remind you that we are approaching the deadline for the DES declaration for month ${object.year_month}.
-
As there were no Intrastat Service declaration for that month in Odoo, a draft declaration has been generated automatically.
+
As there were no DES for that month in Odoo, a draft declaration has been generated automatically.
% if ctx.get('exception'):
-
When trying to generate the lines of the Intrastat Service declaration, the following error was encountered:
+
When trying to generate the DES lines, the following error was encountered:
${ctx.get('error_msg')}
-
You should solve this error, then go to the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
+
You should solve this error, then go to the menu Invoicing > Reporting > Intrastat > DES, open the declaration of month ${object.year_month} and click on the button Re-generate lines.
% else:
% if object.num_lines and object.num_decl_lines > 0:
-
This draft Intrastat Service declaration contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
+
This draft DES contains ${object.num_decl_lines} ${object.num_decl_lines == 1 and 'line' or 'lines'} and the total amount is ${object.total_amount} ${object.currency_id.symbol}.
% else:
-
This draft Intrastat Service declaration generated automatically by Odoo doesn't contain any line.
+
This draft DES generated automatically by Odoo doesn't contain any line.
% endif
-
Go and check this declaration in the menu Accounting > Reporting > Legal Reports > Intrastat reporting > Intrastat Service.
+
Go and check this declaration in the menu Invoicing > Reporting > Intrastat > DES.
This module adds support for the Déclaration Européenne des Services (DES) for France.
+
The DES declaration has been introduced on January 1st 2010 in France. All French companies must send this declaration each month to France’s Customs administration if they sell services without VAT to other EU companies.
+
More information about the DES is available on this official web page.
To use this module, you need to go to the menu Invoicing > Reports > Intrastat > DES and create a new DES. Then, click on the button Generate lines from invoices to automatically generate the lines of DES. After checking the lines that have been automatically generated, click on the button Attach XML file to create the XML file corresponding to the DES. Eventually, connect to your account on pro.douane and upload the XML file.
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
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/l10n-france project on GitHub.