mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
Replace unallowed ascii caracters by '-'
Update some error messages Update translation files and FR translation Include sepa_export in gen_args Factorize more code between SDD and SCT Fix view of payment lines The modules account_banking_pain_base and account_banking_sepa_* are now fully PEP8 compliant
This commit is contained in:
@@ -62,14 +62,19 @@ class banking_export_pain(orm.AbstractModel):
|
||||
# Scheme Customer-to-bank guidelines
|
||||
if gen_args.get('convert_to_ascii'):
|
||||
value = unidecode(value)
|
||||
unallowed_ascii_chars = [
|
||||
'"', '#', '$', '%', '&', '*', ';', '<', '>', '=', '@',
|
||||
'[', ']', '^', '_', '`', '{', '}', '|', '~', '\\', '!']
|
||||
for unallowed_ascii_char in unallowed_ascii_chars:
|
||||
value = value.replace(unallowed_ascii_char, '-')
|
||||
except:
|
||||
line = eval_ctx.get('line')
|
||||
if line:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("Cannot compute the '%s' of the Payment Line with Invoice Reference '%s'.")
|
||||
% (field_name, self.pool['account.invoice'].name_get(
|
||||
cr, uid, [line.ml_inv_ref.id], context=context)[0][1]))
|
||||
_("Cannot compute the '%s' of the Payment Line with "
|
||||
"reference '%s'.")
|
||||
% (field_name, line.name))
|
||||
else:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
@@ -77,7 +82,8 @@ class banking_export_pain(orm.AbstractModel):
|
||||
if not isinstance(value, (str, unicode)):
|
||||
raise orm.except_orm(
|
||||
_('Field type error:'),
|
||||
_("The type of the field '%s' is %s. It should be a string or unicode.")
|
||||
_("The type of the field '%s' is %s. It should be a string "
|
||||
"or unicode.")
|
||||
% (field_name, type(value)))
|
||||
if not value:
|
||||
raise orm.except_orm(
|
||||
@@ -89,22 +95,22 @@ class banking_export_pain(orm.AbstractModel):
|
||||
return value
|
||||
|
||||
def _prepare_export_sepa(
|
||||
self, cr, uid, sepa_export, total_amount, transactions_count,
|
||||
xml_string, gen_args, context=None):
|
||||
self, cr, uid, total_amount, transactions_count, xml_string,
|
||||
gen_args, context=None):
|
||||
return {
|
||||
'batch_booking': sepa_export.batch_booking,
|
||||
'charge_bearer': sepa_export.charge_bearer,
|
||||
'batch_booking': gen_args['sepa_export'].batch_booking,
|
||||
'charge_bearer': gen_args['sepa_export'].charge_bearer,
|
||||
'total_amount': total_amount,
|
||||
'nb_transactions': transactions_count,
|
||||
'file': base64.encodestring(xml_string),
|
||||
'payment_order_ids': [
|
||||
(6, 0, [x.id for x in sepa_export.payment_order_ids])
|
||||
],
|
||||
'payment_order_ids': [(
|
||||
6, 0, [x.id for x in gen_args['sepa_export'].payment_order_ids]
|
||||
)],
|
||||
}
|
||||
|
||||
def _validate_xml(self, cr, uid, xml_string, pain_xsd_file):
|
||||
def _validate_xml(self, cr, uid, xml_string, gen_args, context=None):
|
||||
xsd_etree_obj = etree.parse(
|
||||
tools.file_open(pain_xsd_file))
|
||||
tools.file_open(gen_args['pain_xsd_file']))
|
||||
official_pain_schema = etree.XMLSchema(xsd_etree_obj)
|
||||
|
||||
try:
|
||||
@@ -117,19 +123,58 @@ class banking_export_pain(orm.AbstractModel):
|
||||
logger.warning(e)
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_('The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s')
|
||||
_("The generated XML file is not valid against the official "
|
||||
"XML Schema Definition. The generated XML file and the "
|
||||
"full error have been written in the server logs. Here "
|
||||
"is the error, which may give you an idea on the cause "
|
||||
"of the problem : %s")
|
||||
% str(e))
|
||||
return True
|
||||
|
||||
def finalize_sepa_file_creation(
|
||||
self, cr, uid, ids, xml_root, total_amount, transactions_count,
|
||||
gen_args, context=None):
|
||||
xml_string = etree.tostring(
|
||||
xml_root, pretty_print=True, encoding='UTF-8',
|
||||
xml_declaration=True)
|
||||
logger.debug(
|
||||
"Generated SEPA XML file in format %s below"
|
||||
% gen_args['pain_flavor'])
|
||||
logger.debug(xml_string)
|
||||
self._validate_xml(cr, uid, xml_string, gen_args, context=context)
|
||||
|
||||
file_id = gen_args['file_obj'].create(
|
||||
cr, uid, self._prepare_export_sepa(
|
||||
cr, uid, total_amount, transactions_count,
|
||||
xml_string, gen_args, context=context),
|
||||
context=context)
|
||||
|
||||
self.write(
|
||||
cr, uid, ids, {
|
||||
'file_id': file_id,
|
||||
'state': 'finish',
|
||||
}, context=context)
|
||||
|
||||
action = {
|
||||
'name': 'SEPA File',
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form,tree',
|
||||
'res_model': self._name,
|
||||
'res_id': ids[0],
|
||||
'target': 'new',
|
||||
}
|
||||
return action
|
||||
|
||||
def generate_group_header_block(
|
||||
self, cr, uid, parent_node, sepa_export, gen_args, context=None):
|
||||
self, cr, uid, parent_node, gen_args, context=None):
|
||||
group_header_1_0 = etree.SubElement(parent_node, 'GrpHdr')
|
||||
message_identification_1_1 = etree.SubElement(
|
||||
group_header_1_0, 'MsgId')
|
||||
message_identification_1_1.text = self._prepare_field(
|
||||
cr, uid, 'Message Identification',
|
||||
'sepa_export.payment_order_ids[0].reference',
|
||||
{'sepa_export': sepa_export}, 35,
|
||||
{'sepa_export': gen_args['sepa_export']}, 35,
|
||||
gen_args=gen_args, context=context)
|
||||
creation_date_time_1_2 = etree.SubElement(group_header_1_0, 'CreDtTm')
|
||||
creation_date_time_1_2.text = datetime.strftime(
|
||||
@@ -138,7 +183,8 @@ class banking_export_pain(orm.AbstractModel):
|
||||
# batch_booking is in "Group header" with pain.001.001.02
|
||||
# and in "Payment info" in pain.001.001.03/04
|
||||
batch_booking = etree.SubElement(group_header_1_0, 'BtchBookg')
|
||||
batch_booking.text = str(sepa_export.batch_booking).lower()
|
||||
batch_booking.text = \
|
||||
str(gen_args['sepa_export'].batch_booking).lower()
|
||||
nb_of_transactions_1_6 = etree.SubElement(
|
||||
group_header_1_0, 'NbOfTxs')
|
||||
control_sum_1_7 = etree.SubElement(group_header_1_0, 'CtrlSum')
|
||||
@@ -147,12 +193,12 @@ class banking_export_pain(orm.AbstractModel):
|
||||
grouping = etree.SubElement(group_header_1_0, 'Grpg')
|
||||
grouping.text = 'GRPD'
|
||||
self.generate_initiating_party_block(
|
||||
cr, uid, group_header_1_0, sepa_export, gen_args,
|
||||
cr, uid, group_header_1_0, gen_args,
|
||||
context=context)
|
||||
return group_header_1_0, nb_of_transactions_1_6, control_sum_1_7
|
||||
|
||||
def generate_start_payment_info_block(
|
||||
self, cr, uid, parent_node, sepa_export, payment_info_ident,
|
||||
self, cr, uid, parent_node, payment_info_ident,
|
||||
priority, local_instrument, sequence_type, requested_date,
|
||||
eval_ctx, gen_args, context=None):
|
||||
payment_info_2_0 = etree.SubElement(parent_node, 'PmtInf')
|
||||
@@ -171,7 +217,8 @@ class banking_export_pain(orm.AbstractModel):
|
||||
request_date_tag = 'ReqdExctnDt'
|
||||
if gen_args.get('pain_flavor') != 'pain.001.001.02':
|
||||
batch_booking_2_3 = etree.SubElement(payment_info_2_0, 'BtchBookg')
|
||||
batch_booking_2_3.text = str(sepa_export.batch_booking).lower()
|
||||
batch_booking_2_3.text = \
|
||||
str(gen_args['sepa_export'].batch_booking).lower()
|
||||
# The "SEPA Customer-to-bank
|
||||
# Implementation guidelines" for SCT and SDD says that control sum
|
||||
# and nb_of_transactions should be present
|
||||
@@ -205,24 +252,23 @@ class banking_export_pain(orm.AbstractModel):
|
||||
requested_date_2_17.text = requested_date
|
||||
return payment_info_2_0, nb_of_transactions_2_4, control_sum_2_5
|
||||
|
||||
|
||||
def generate_initiating_party_block(
|
||||
self, cr, uid, parent_node, sepa_export, gen_args,
|
||||
context=None):
|
||||
self, cr, uid, parent_node, gen_args, context=None):
|
||||
my_company_name = self._prepare_field(
|
||||
cr, uid, 'Company Name',
|
||||
'sepa_export.payment_order_ids[0].mode.bank_id.partner_id.name',
|
||||
{'sepa_export': sepa_export}, gen_args.get('name_maxsize'),
|
||||
gen_args=gen_args, context=context)
|
||||
{'sepa_export': gen_args['sepa_export']},
|
||||
gen_args.get('name_maxsize'), gen_args=gen_args, context=context)
|
||||
initiating_party_1_8 = etree.SubElement(parent_node, 'InitgPty')
|
||||
initiating_party_name = etree.SubElement(initiating_party_1_8, 'Nm')
|
||||
initiating_party_name.text = my_company_name
|
||||
initiating_party_identifier = self.pool['res.company'].\
|
||||
_get_initiating_party_identifier(
|
||||
cr, uid, sepa_export.payment_order_ids[0].company_id.id,
|
||||
cr, uid,
|
||||
gen_args['sepa_export'].payment_order_ids[0].company_id.id,
|
||||
context=context)
|
||||
initiating_party_issuer = \
|
||||
sepa_export.payment_order_ids[0].company_id.initiating_party_issuer
|
||||
initiating_party_issuer = gen_args['sepa_export'].\
|
||||
payment_order_ids[0].company_id.initiating_party_issuer
|
||||
if initiating_party_identifier and initiating_party_issuer:
|
||||
iniparty_id = etree.SubElement(initiating_party_1_8, 'Id')
|
||||
iniparty_org_id = etree.SubElement(iniparty_id, 'OrgId')
|
||||
@@ -306,7 +352,8 @@ class banking_export_pain(orm.AbstractModel):
|
||||
if not line.struct_communication_type:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("Missing 'Structured Communication Type' on payment line with your reference '%s'.")
|
||||
_("Missing 'Structured Communication Type' on payment "
|
||||
"line with reference '%s'.")
|
||||
% (line.name))
|
||||
remittance_info_unstructured_2_100 = etree.SubElement(
|
||||
remittance_info_2_91, 'Strd')
|
||||
|
||||
@@ -31,7 +31,8 @@ class res_company(orm.Model):
|
||||
_columns = {
|
||||
'initiating_party_issuer': fields.char(
|
||||
'Initiating Party Issuer', size=35,
|
||||
help="This will be used as the 'Initiating Party Issuer' in the PAIN files generated by OpenERP."),
|
||||
help="This will be used as the 'Initiating Party Issuer' in the "
|
||||
"PAIN files generated by OpenERP."),
|
||||
}
|
||||
|
||||
def _get_initiating_party_identifier(
|
||||
|
||||
146
account_banking_pain_base/i18n/account_banking_pain_base.pot
Normal file
146
account_banking_pain_base/i18n/account_banking_pain_base.pot
Normal file
@@ -0,0 +1,146 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_banking_pain_base
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-12-23 21:26+0000\n"
|
||||
"PO-Revision-Date: 2013-12-23 21:26+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: account_banking_pain_base
|
||||
#: field:res.company,initiating_party_issuer:0
|
||||
msgid "Initiating Party Issuer"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:122
|
||||
#, python-format
|
||||
msgid "The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: field:payment.line,priority:0
|
||||
msgid "Priority"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: model:ir.model,name:account_banking_pain_base.model_payment_line
|
||||
msgid "Payment Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: model:ir.model,name:account_banking_pain_base.model_payment_mode
|
||||
msgid "Payment Mode"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: help:res.company,initiating_party_issuer:0
|
||||
msgid "This will be used as the 'Initiating Party Issuer' in the PAIN files generated by OpenERP."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:351
|
||||
#, python-format
|
||||
msgid "Missing 'Structured Communication Type' on payment line with reference '%s'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: selection:payment.line,priority:0
|
||||
msgid "Normal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:70
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s' of the Payment Line with reference '%s'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:77
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:81
|
||||
#, python-format
|
||||
msgid "The type of the field '%s' is %s. It should be a string or unicode."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:47
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:69
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:76
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:86
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:121
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:350
|
||||
#, python-format
|
||||
msgid "Error:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: model:ir.model,name:account_banking_pain_base.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:47
|
||||
#, python-format
|
||||
msgid "This IBAN is not valid : %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:80
|
||||
#, python-format
|
||||
msgid "Field type error:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: field:payment.line,struct_communication_type:0
|
||||
msgid "Structured Communication Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:87
|
||||
#, python-format
|
||||
msgid "The '%s' is empty or 0. It should have a non-null value."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: model:ir.model,name:account_banking_pain_base.model_banking_export_pain
|
||||
msgid "banking.export.pain"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: help:payment.mode,convert_to_ascii:0
|
||||
msgid "If active, OpenERP will convert each accented caracter to the corresponding unaccented caracter, so that only ASCII caracters are used in the generated PAIN file."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: help:payment.line,priority:0
|
||||
msgid "This field will be used as the 'Instruction Priority' in the generated PAIN file."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: view:res.company:0
|
||||
msgid "Payment Initiation"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: selection:payment.line,priority:0
|
||||
msgid "High"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: field:payment.mode,convert_to_ascii:0
|
||||
msgid "Convert to ASCII"
|
||||
msgstr ""
|
||||
|
||||
146
account_banking_pain_base/i18n/fr.po
Normal file
146
account_banking_pain_base/i18n/fr.po
Normal file
@@ -0,0 +1,146 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_banking_pain_base
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-12-23 21:27+0000\n"
|
||||
"PO-Revision-Date: 2013-12-23 21:27+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: account_banking_pain_base
|
||||
#: field:res.company,initiating_party_issuer:0
|
||||
msgid "Initiating Party Issuer"
|
||||
msgstr "Initiating Party Issuer"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:122
|
||||
#, python-format
|
||||
msgid "The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s"
|
||||
msgstr "Le fichier XML généré n'est pas valide par rapport à la Définition du Schéma XML officiel. Le fichier XML généré et le message d'erreur complet ont été écrits dans les logs du serveur. Voici l'erreur, qui vous donnera peut-être une idée sur la cause du problème : %s"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: field:payment.line,priority:0
|
||||
msgid "Priority"
|
||||
msgstr "Priorité"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: model:ir.model,name:account_banking_pain_base.model_payment_line
|
||||
msgid "Payment Line"
|
||||
msgstr "Ligne de paiement"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: model:ir.model,name:account_banking_pain_base.model_payment_mode
|
||||
msgid "Payment Mode"
|
||||
msgstr "Mode de paiement"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: help:res.company,initiating_party_issuer:0
|
||||
msgid "This will be used as the 'Initiating Party Issuer' in the PAIN files generated by OpenERP."
|
||||
msgstr "Ce champ sera le 'Initiating Party Issuer' dans les fichiers PAIN générés par OpenERP."
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:351
|
||||
#, python-format
|
||||
msgid "Missing 'Structured Communication Type' on payment line with reference '%s'."
|
||||
msgstr "Le 'Type de communication structuré' n'est pas renseigné sur la ligne de paiement ayant la référence '%s'."
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: selection:payment.line,priority:0
|
||||
msgid "Normal"
|
||||
msgstr "Normal"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:70
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s' of the Payment Line with reference '%s'."
|
||||
msgstr "Impossible de calculer le '%s' de la ligne de paiement ayant la référence '%s'."
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:77
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s'."
|
||||
msgstr "Impossible de calculer le '%s'."
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:81
|
||||
#, python-format
|
||||
msgid "The type of the field '%s' is %s. It should be a string or unicode."
|
||||
msgstr "Le type du champ '%s' est %s. Il devrait être de type string ou unicode."
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:47
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:69
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:76
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:86
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:121
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:350
|
||||
#, python-format
|
||||
msgid "Error:"
|
||||
msgstr "Erreur :"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: model:ir.model,name:account_banking_pain_base.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr "Sociétés"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:47
|
||||
#, python-format
|
||||
msgid "This IBAN is not valid : %s"
|
||||
msgstr "Cet IBAN n'est pas valide : %s"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:80
|
||||
#, python-format
|
||||
msgid "Field type error:"
|
||||
msgstr "Erreur dans le type de champ :"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: field:payment.line,struct_communication_type:0
|
||||
msgid "Structured Communication Type"
|
||||
msgstr "Type de communication structurée"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: code:addons/account_banking_pain_base/banking_export_pain.py:87
|
||||
#, python-format
|
||||
msgid "The '%s' is empty or 0. It should have a non-null value."
|
||||
msgstr "Le '%s' est vide ou égal à 0. Il devrait avoir une valeur non-nulle."
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: model:ir.model,name:account_banking_pain_base.model_banking_export_pain
|
||||
msgid "banking.export.pain"
|
||||
msgstr "banking.export.pain"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: help:payment.mode,convert_to_ascii:0
|
||||
msgid "If active, OpenERP will convert each accented caracter to the corresponding unaccented caracter, so that only ASCII caracters are used in the generated PAIN file."
|
||||
msgstr "Si actif, OpenERP convertira chaque caractère accentué en son équivalent non accentué, de telle façon que seuls des caractères ASCII soient utilisés dans le fichier PAIN généré."
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: help:payment.line,priority:0
|
||||
msgid "This field will be used as the 'Instruction Priority' in the generated PAIN file."
|
||||
msgstr "Ce champ sera le 'Instruction Priority' dans le fichier PAIN généré."
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: view:res.company:0
|
||||
msgid "Payment Initiation"
|
||||
msgstr "Payment Initiation"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: selection:payment.line,priority:0
|
||||
msgid "High"
|
||||
msgstr "Élevé"
|
||||
|
||||
#. module: account_banking_pain_base
|
||||
#: field:payment.mode,convert_to_ascii:0
|
||||
msgid "Convert to ASCII"
|
||||
msgstr "Convertir en ASCII"
|
||||
|
||||
@@ -34,11 +34,14 @@ class payment_line(orm.Model):
|
||||
('NORM', 'Normal'),
|
||||
('HIGH', 'High'),
|
||||
], 'Priority',
|
||||
help="This field will be used as the 'Instruction Priority' in the generated PAIN files."),
|
||||
help="This field will be used as the 'Instruction Priority' in "
|
||||
"the generated PAIN file."),
|
||||
# Update size from 64 to 140, because PAIN allows 140 caracters
|
||||
'communication': fields.char(
|
||||
'Communication', size=140, required=True,
|
||||
help="Used as the message between ordering customer and current company. Depicts 'What do you want to say to the recipient about this order ?'"),
|
||||
help="Used as the message between ordering customer and current "
|
||||
"company. Depicts 'What do you want to say to the recipient "
|
||||
"about this order ?'"),
|
||||
'struct_communication_type': fields.selection(
|
||||
_get_struct_communication_types, 'Structured Communication Type'),
|
||||
}
|
||||
|
||||
@@ -14,11 +14,12 @@
|
||||
<field name="arch" type="xml">
|
||||
<field name="bank_id" position="after">
|
||||
<field name="priority"/>
|
||||
<newline />
|
||||
</field>
|
||||
<field name="communication2" position="replace"/>
|
||||
<field name="state" position="after">
|
||||
<field name="struct_communication_type" attrs="{'invisible': [('state', '!=', 'structured')], 'required': [('state', '=', 'structured')]}"/>
|
||||
</field>
|
||||
<field name="communication2" position="replace"/>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -29,11 +30,12 @@
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='line_ids']/form//field[@name='bank_id']" position="after">
|
||||
<field name="priority"/>
|
||||
<newline />
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='line_ids']/form//field[@name='communication2']" position="replace"/>
|
||||
<xpath expr="//field[@name='line_ids']/form//field[@name='state']" position="after">
|
||||
<field name="struct_communication_type" attrs="{'invisible': [('state', '!=', 'structured')], 'required': [('state', '=', 'structured')]}"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='line_ids']/form//field[@name='communication2']" position="replace"/>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -29,7 +29,9 @@ class payment_mode(orm.Model):
|
||||
_columns = {
|
||||
'convert_to_ascii': fields.boolean(
|
||||
'Convert to ASCII',
|
||||
help="If active, OpenERP will convert each accented caracter to the corresponding unaccented caracter, so that only ASCII caracters are used in the generated PAIN file."),
|
||||
help="If active, OpenERP will convert each accented caracter to "
|
||||
"the corresponding unaccented caracter, so that only ASCII "
|
||||
"caracters are used in the generated PAIN file."),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
||||
@@ -50,18 +50,29 @@ class banking_export_sepa(orm.Model):
|
||||
readonly=True),
|
||||
'nb_transactions': fields.integer(
|
||||
'Number of Transactions', readonly=True),
|
||||
'total_amount': fields.float('Total Amount',
|
||||
digits_compute=dp.get_precision('Account'), readonly=True),
|
||||
'total_amount': fields.float(
|
||||
'Total Amount', digits_compute=dp.get_precision('Account'),
|
||||
readonly=True),
|
||||
'batch_booking': fields.boolean(
|
||||
'Batch Booking', readonly=True,
|
||||
help="If true, the bank statement will display only one debit line for all the wire transfers of the SEPA XML file ; if false, the bank statement will display one debit line per wire transfer of the SEPA XML file."),
|
||||
help="If true, the bank statement will display only one debit "
|
||||
"line for all the wire transfers of the SEPA XML file ; "
|
||||
"if false, the bank statement will display one debit line "
|
||||
"per wire transfer of the SEPA XML file."),
|
||||
'charge_bearer': fields.selection([
|
||||
('SLEV', 'Following Service Level'),
|
||||
('SHAR', 'Shared'),
|
||||
('CRED', 'Borne by Creditor'),
|
||||
('DEBT', 'Borne by Debtor'),
|
||||
], 'Charge Bearer', readonly=True,
|
||||
help='Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the creditor side are to be borne by the creditor, transaction charges on the debtor side are to be borne by the debtor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor.'),
|
||||
help="Following service level : transaction charges are to be "
|
||||
"applied following the rules agreed in the service level and/or "
|
||||
"scheme (SEPA Core messages must use this). Shared : "
|
||||
"transaction charges on the creditor side are to be borne by "
|
||||
"the creditor, transaction charges on the debtor side are to "
|
||||
"be borne by the debtor. Borne by creditor : all transaction "
|
||||
"charges are to be borne by the creditor. Borne by debtor : "
|
||||
"all transaction charges are to be borne by the debtor."),
|
||||
'create_date': fields.datetime('Generation Date', readonly=True),
|
||||
'file': fields.binary('SEPA XML File', readonly=True),
|
||||
'filename': fields.function(
|
||||
|
||||
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-13 09:13+0000\n"
|
||||
"PO-Revision-Date: 2013-11-13 09:13+0000\n"
|
||||
"POT-Creation-Date: 2013-12-23 22:49+0000\n"
|
||||
"PO-Revision-Date: 2013-12-23 22:49+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -15,12 +15,6 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: field:banking.export.sepa,prefered_exec_date:0
|
||||
#: field:banking.export.sepa.wizard,prefered_exec_date:0
|
||||
msgid "Prefered Execution Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: selection:banking.export.sepa.wizard,state:0
|
||||
msgid "Create"
|
||||
@@ -54,12 +48,6 @@ msgstr ""
|
||||
msgid "Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the debtor side are to be borne by the debtor, transaction charges on the creditor side are to be borne by the creditor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:117
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s' of the Payment Line with Invoice Reference '%s'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: selection:banking.export.sepa,charge_bearer:0
|
||||
#: selection:banking.export.sepa.wizard,charge_bearer:0
|
||||
@@ -72,9 +60,14 @@ msgstr ""
|
||||
msgid "Batch Booking"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: selection:banking.export.sepa,state:0
|
||||
msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa_wizard
|
||||
msgid "Export SEPA Credit Transfer XML file"
|
||||
msgid "Export SEPA Credit Transfer File"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
@@ -104,23 +97,6 @@ msgstr ""
|
||||
msgid "Borne by Creditor"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:122
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:126
|
||||
#, python-format
|
||||
msgid "The type of the field '%s' is %s. It should be a string or unicode."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: selection:banking.export.sepa,state:0
|
||||
msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: view:banking.export.sepa.wizard:0
|
||||
msgid "Validate"
|
||||
@@ -131,12 +107,6 @@ msgstr ""
|
||||
msgid "Generate"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:169
|
||||
#, python-format
|
||||
msgid "The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: selection:banking.export.sepa,charge_bearer:0
|
||||
#: selection:banking.export.sepa.wizard,charge_bearer:0
|
||||
@@ -144,13 +114,8 @@ msgid "Borne by Debtor"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:90
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:116
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:121
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:130
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:168
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:206
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:350
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:128
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:245
|
||||
#, python-format
|
||||
msgid "Error:"
|
||||
msgstr ""
|
||||
@@ -172,19 +137,13 @@ msgstr ""
|
||||
msgid "SEPA File Generation"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:125
|
||||
#, python-format
|
||||
msgid "Field type error:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa
|
||||
msgid "SEPA export"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:351
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:246
|
||||
#, python-format
|
||||
msgid "Missing Bank Account on invoice '%s' (payment order line reference '%s')."
|
||||
msgstr ""
|
||||
@@ -195,29 +154,17 @@ msgstr ""
|
||||
msgid "SEPA XML File"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:131
|
||||
#, python-format
|
||||
msgid "The '%s' is empty or 0. It should have a non-null value."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: help:banking.export.sepa,charge_bearer:0
|
||||
msgid "Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the creditor side are to be borne by the creditor, transaction charges on the debtor side are to be borne by the debtor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:207
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:129
|
||||
#, python-format
|
||||
msgid "Payment Type Code '%s' is not supported. The only Payment Type Codes supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03', 'pain.001.001.04' and 'pain.001.001.05'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:90
|
||||
#, python-format
|
||||
msgid "This IBAN is not valid : %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: view:banking.export.sepa:0
|
||||
#: field:banking.export.sepa,payment_order_ids:0
|
||||
@@ -243,11 +190,6 @@ msgstr ""
|
||||
msgid "If true, the bank statement will display only one debit line for all the wire transfers of the SEPA XML file ; if false, the bank statement will display one debit line per wire transfer of the SEPA XML file."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: help:banking.export.sepa.wizard,prefered_exec_date:0
|
||||
msgid "This is the date on which the file should be processed by the bank. Please keep in mind that banks only execute on working days and typically use a delay of two days between execution date and effective transfer date."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: field:banking.export.sepa.wizard,file:0
|
||||
msgid "File"
|
||||
|
||||
@@ -6,21 +6,14 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-13 09:13+0000\n"
|
||||
"PO-Revision-Date: 2013-12-02 16:36+0000\n"
|
||||
"Last-Translator: Alexis de Lattre <alexis@via.ecp.fr>\n"
|
||||
"POT-Creation-Date: 2013-12-23 22:52+0000\n"
|
||||
"PO-Revision-Date: 2013-12-23 22:52+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2013-12-03 06:20+0000\n"
|
||||
"X-Generator: Launchpad (build 16856)\n"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: field:banking.export.sepa,prefered_exec_date:0
|
||||
#: field:banking.export.sepa.wizard,prefered_exec_date:0
|
||||
msgid "Prefered Execution Date"
|
||||
msgstr "Date d'exécution demandée"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: selection:banking.export.sepa.wizard,state:0
|
||||
@@ -52,31 +45,8 @@ msgstr "Brouillon"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: help:banking.export.sepa.wizard,charge_bearer:0
|
||||
msgid ""
|
||||
"Following service level : transaction charges are to be applied following "
|
||||
"the rules agreed in the service level and/or scheme (SEPA Core messages must "
|
||||
"use this). Shared : transaction charges on the debtor side are to be borne "
|
||||
"by the debtor, transaction charges on the creditor side are to be borne by "
|
||||
"the creditor. Borne by creditor : all transaction charges are to be borne by "
|
||||
"the creditor. Borne by debtor : all transaction charges are to be borne by "
|
||||
"the debtor."
|
||||
msgstr ""
|
||||
"Suivant le niveau de service : la répartition des frais bancaires suit les "
|
||||
"règles pré-établies dans le schema ou dans le contrat avec la banque (les "
|
||||
"messages SEPA Core doivent utiliser ce paramètre). Partagés : les frais "
|
||||
"bancaires côté débiteur sont à la charge du débiteur, les frais bancaires "
|
||||
"côté créancier sont à la charge du créancier. Supportés par le créancier : "
|
||||
"tous les frais bancaires sont à la charge du créancier. Supportés par le "
|
||||
"débiteur : tous les frais bancaires sont à la charge du débiteur."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:117
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Cannot compute the '%s' of the Payment Line with Invoice Reference '%s'."
|
||||
msgstr ""
|
||||
"Impossible de générer le '%s' de la ligne de paiement ayant la référence de "
|
||||
"facture '%s'."
|
||||
msgid "Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the debtor side are to be borne by the debtor, transaction charges on the creditor side are to be borne by the creditor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor."
|
||||
msgstr "Suivant le niveau de service : la répartition des frais bancaires suit les règles pré-établies dans le schema ou dans le contrat avec la banque (les messages SEPA Core doivent utiliser ce paramètre). Partagés : les frais bancaires côté débiteur sont à la charge du débiteur, les frais bancaires côté créancier sont à la charge du créancier. Supportés par le créancier : tous les frais bancaires sont à la charge du créancier. Supportés par le débiteur : tous les frais bancaires sont à la charge du débiteur."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: selection:banking.export.sepa,charge_bearer:0
|
||||
@@ -90,10 +60,15 @@ msgstr "Partagé"
|
||||
msgid "Batch Booking"
|
||||
msgstr "Débit groupé"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: selection:banking.export.sepa,state:0
|
||||
msgid "Sent"
|
||||
msgstr "Envoyé"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa_wizard
|
||||
msgid "Export SEPA Credit Transfer XML file"
|
||||
msgstr "Exporte the fichier de virement SEPA XML"
|
||||
msgid "Export SEPA Credit Transfer File"
|
||||
msgstr "Exporte le fichier de virement SEPA"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: view:banking.export.sepa:0
|
||||
@@ -122,24 +97,6 @@ msgstr "Suivant le niveau de service"
|
||||
msgid "Borne by Creditor"
|
||||
msgstr "Supportés par le destinataire"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:122
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s'."
|
||||
msgstr "Impossible de générer le '%s'."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:126
|
||||
#, python-format
|
||||
msgid "The type of the field '%s' is %s. It should be a string or unicode."
|
||||
msgstr ""
|
||||
"Le champ '%s' est de type %s. Le type devrait être string ou unicode."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: selection:banking.export.sepa,state:0
|
||||
msgid "Sent"
|
||||
msgstr "Envoyé"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: view:banking.export.sepa.wizard:0
|
||||
msgid "Validate"
|
||||
@@ -150,20 +107,6 @@ msgstr "Valider"
|
||||
msgid "Generate"
|
||||
msgstr "Générer"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:169
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The generated XML file is not valid against the official XML Schema "
|
||||
"Definition. The generated XML file and the full error have been written in "
|
||||
"the server logs. Here is the error, which may give you an idea on the cause "
|
||||
"of the problem : %s"
|
||||
msgstr ""
|
||||
"Le fichier XML généré n'est pas valide par rapport à la Définition du Schéma "
|
||||
"XML officiel. Le fichier XML généré et le message d'erreur complet ont été "
|
||||
"écrits dans les logs du serveur. Voici l'erreur, qui vous donnera peut-être "
|
||||
"une idée sur la cause du problème : %s"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: selection:banking.export.sepa,charge_bearer:0
|
||||
#: selection:banking.export.sepa.wizard,charge_bearer:0
|
||||
@@ -171,13 +114,8 @@ msgid "Borne by Debtor"
|
||||
msgstr "Supportés par l'émetteur"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:90
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:116
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:121
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:130
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:168
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:206
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:350
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:128
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:245
|
||||
#, python-format
|
||||
msgid "Error:"
|
||||
msgstr "Erreur :"
|
||||
@@ -199,25 +137,16 @@ msgstr "Répartition des frais"
|
||||
msgid "SEPA File Generation"
|
||||
msgstr "Génération du fichier SEPA"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:125
|
||||
#, python-format
|
||||
msgid "Field type error:"
|
||||
msgstr "Erreur dans le type de champ:"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: model:ir.model,name:account_banking_sepa_credit_transfer.model_banking_export_sepa
|
||||
msgid "SEPA export"
|
||||
msgstr "Export SEPA"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:351
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:246
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Missing Bank Account on invoice '%s' (payment order line reference '%s')."
|
||||
msgstr ""
|
||||
"Compte bancaire manquant sur la facture '%s' (référence de la ligne de "
|
||||
"paiement : '%s')."
|
||||
msgid "Missing Bank Account on invoice '%s' (payment order line reference '%s')."
|
||||
msgstr "Compte bancaire manquant sur la facture '%s' (référence de la ligne de paiement : '%s')."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: field:banking.export.sepa,file:0
|
||||
@@ -225,48 +154,16 @@ msgstr ""
|
||||
msgid "SEPA XML File"
|
||||
msgstr "Fichier SEPA XML"
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:131
|
||||
#, python-format
|
||||
msgid "The '%s' is empty or 0. It should have a non-null value."
|
||||
msgstr "Le '%s' est vide ou égal à 0. La valeur devrait être non nulle."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: help:banking.export.sepa,charge_bearer:0
|
||||
msgid ""
|
||||
"Following service level : transaction charges are to be applied following "
|
||||
"the rules agreed in the service level and/or scheme (SEPA Core messages must "
|
||||
"use this). Shared : transaction charges on the creditor side are to be borne "
|
||||
"by the creditor, transaction charges on the debtor side are to be borne by "
|
||||
"the debtor. Borne by creditor : all transaction charges are to be borne by "
|
||||
"the creditor. Borne by debtor : all transaction charges are to be borne by "
|
||||
"the debtor."
|
||||
msgstr ""
|
||||
"Suivant le niveau de service : la répartition des frais bancaires suit les "
|
||||
"règles pré-établies dans le schema ou dans le contrat avec la banque (les "
|
||||
"messages SEPA Core doivent utiliser ce paramètre). Partagés : les frais "
|
||||
"bancaires côté débiteur sont à la charge du débiteur, les frais bancaires "
|
||||
"côté créancier sont à la charge du créancier. Supportés par le créancier : "
|
||||
"tous les frais bancaires sont à la charge du créancier. Supportés par le "
|
||||
"débiteur : tous les frais bancaires sont à la charge du débiteur."
|
||||
msgid "Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the creditor side are to be borne by the creditor, transaction charges on the debtor side are to be borne by the debtor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor."
|
||||
msgstr "Suivant le niveau de service : la répartition des frais bancaires suit les règles pré-établies dans le schema ou dans le contrat avec la banque (les messages SEPA Core doivent utiliser ce paramètre). Partagés : les frais bancaires côté débiteur sont à la charge du débiteur, les frais bancaires côté créancier sont à la charge du créancier. Supportés par le créancier : tous les frais bancaires sont à la charge du créancier. Supportés par le débiteur : tous les frais bancaires sont à la charge du débiteur."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:207
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:129
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Payment Type Code '%s' is not supported. The only Payment Type Codes "
|
||||
"supported for SEPA Credit Transfers are 'pain.001.001.02', "
|
||||
"'pain.001.001.03', 'pain.001.001.04' and 'pain.001.001.05'."
|
||||
msgstr ""
|
||||
"Le code du Type de paiement '%s' n'est pas supporté. Les seuls codes de Type "
|
||||
"de paiement supportés pour les virements SEPA sont 'pain.001.001.02', "
|
||||
"'pain.001.001.03', 'pain.001.001.04' et 'pain.001.001.05'."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: code:addons/account_banking_sepa_credit_transfer/wizard/export_sepa.py:90
|
||||
#, python-format
|
||||
msgid "This IBAN is not valid : %s"
|
||||
msgstr "Cet IBAN n'est pas valide : %s"
|
||||
msgid "Payment Type Code '%s' is not supported. The only Payment Type Codes supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03', 'pain.001.001.04' and 'pain.001.001.05'."
|
||||
msgstr "Le code du Type de paiement '%s' n'est pas supporté. Les seuls codes de Type de paiement supportés pour les virements SEPA sont 'pain.001.001.02', 'pain.001.001.03', 'pain.001.001.04' et 'pain.001.001.05'."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: view:banking.export.sepa:0
|
||||
@@ -290,26 +187,8 @@ msgstr "Fichiers de virement SEPA"
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: help:banking.export.sepa,batch_booking:0
|
||||
#: help:banking.export.sepa.wizard,batch_booking:0
|
||||
msgid ""
|
||||
"If true, the bank statement will display only one debit line for all the "
|
||||
"wire transfers of the SEPA XML file ; if false, the bank statement will "
|
||||
"display one debit line per wire transfer of the SEPA XML file."
|
||||
msgstr ""
|
||||
"Si coché, le relevé de compte ne comportera qu'une ligne de débit pour tous "
|
||||
"les virements du fichier SEPA XML ; si non coché, le relevé de compte "
|
||||
"comportera une ligne de débit pour chaque virement du fichier SEPA XML."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: help:banking.export.sepa.wizard,prefered_exec_date:0
|
||||
msgid ""
|
||||
"This is the date on which the file should be processed by the bank. Please "
|
||||
"keep in mind that banks only execute on working days and typically use a "
|
||||
"delay of two days between execution date and effective transfer date."
|
||||
msgstr ""
|
||||
"C'est la date à laquelle le fichier doit être traité par la banque. Gardez "
|
||||
"en tête que les banques réalisent des traitements seulement les jours ouvrés "
|
||||
"et ont habituellement un délai de 2 jours entre la date de traitement et la "
|
||||
"date du transfert effectif."
|
||||
msgid "If true, the bank statement will display only one debit line for all the wire transfers of the SEPA XML file ; if false, the bank statement will display one debit line per wire transfer of the SEPA XML file."
|
||||
msgstr "Si coché, le relevé de compte ne comportera qu'une ligne de débit pour tous les virements du fichier SEPA XML ; si non coché, le relevé de compte comportera une ligne de débit pour chaque virement du fichier SEPA XML."
|
||||
|
||||
#. module: account_banking_sepa_credit_transfer
|
||||
#: field:banking.export.sepa.wizard,file:0
|
||||
@@ -326,88 +205,3 @@ msgstr "Annuler"
|
||||
msgid "Generation Date"
|
||||
msgstr "Date de génération"
|
||||
|
||||
#~ msgid "SEPA XML file"
|
||||
#~ msgstr "Fichier SEPA XML"
|
||||
|
||||
#~ msgid "Payment order"
|
||||
#~ msgstr "Ordre de paiement"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This is the message identification of the entire SEPA XML file. 35 "
|
||||
#~ "characters max."
|
||||
#~ msgstr ""
|
||||
#~ "Ceci est le libellé d'identification du fichier SEPA XML. 35 caractères "
|
||||
#~ "maximum."
|
||||
|
||||
#~ msgid "Prefered execution date"
|
||||
#~ msgstr "Date d'exécution demandée"
|
||||
|
||||
#~ msgid "Generation date"
|
||||
#~ msgstr "Date de génération"
|
||||
|
||||
#~ msgid "Message identification"
|
||||
#~ msgstr "Libellé d'identification"
|
||||
|
||||
#~ msgid "Total amount"
|
||||
#~ msgstr "Montant total"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Shared : transaction charges on the sender side are to be borne by the "
|
||||
#~ "debtor, transaction charges on the receiver side are to be borne by the "
|
||||
#~ "creditor (most transfers use this). Borne by creditor : all transaction "
|
||||
#~ "charges are to be borne by the creditor. Borne by debtor : all transaction "
|
||||
#~ "charges are to be borne by the debtor. Following service level : transaction "
|
||||
#~ "charges are to be applied following the rules agreed in the service level "
|
||||
#~ "and/or scheme."
|
||||
#~ msgstr ""
|
||||
#~ "Partagés : les frais bancaires côté émetteur sont à la charge de l'émetteur "
|
||||
#~ "et les frais bancaires côté destinataire sont à la charge du destinataire "
|
||||
#~ "(la plupart des virements utilisent cette répartition). Supportés par le "
|
||||
#~ "destinataire : tous les frais bancaires sont à la charge du destinataire. "
|
||||
#~ "Supportés par l'émetteur : tous les frais bancaires sont à la charge de "
|
||||
#~ "l'émetteur. Suivant le niveau de service : la répartition des frais "
|
||||
#~ "bancaires suit les règles pré-établies dans le contrat avec la banque."
|
||||
|
||||
#~ msgid "Borne by creditor"
|
||||
#~ msgstr "Supportés par le destinataire"
|
||||
|
||||
#~ msgid "Payment orders"
|
||||
#~ msgstr "Ordres de paiement"
|
||||
|
||||
#~ msgid "SEPA XML file generation"
|
||||
#~ msgstr "Génération du fichier SEPA XML"
|
||||
|
||||
#~ msgid "Reference for further communication"
|
||||
#~ msgstr "Référence pour communication ultérieure"
|
||||
|
||||
#~ msgid "Processing details"
|
||||
#~ msgstr "Paramètres"
|
||||
|
||||
#~ msgid "Borne by debtor"
|
||||
#~ msgstr "Supportés par l'émetteur"
|
||||
|
||||
#~ msgid "Number of transactions"
|
||||
#~ msgstr "Nombre de transactions"
|
||||
|
||||
#~ msgid "Following service level"
|
||||
#~ msgstr "Suivant le niveau de service"
|
||||
|
||||
#~ msgid "Charge bearer"
|
||||
#~ msgstr "Répartition des frais"
|
||||
|
||||
#, python-format
|
||||
#~ msgid ""
|
||||
#~ "Payment Type Code '%s' is not supported. The only Payment Type Codes "
|
||||
#~ "supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03' "
|
||||
#~ "and 'pain.001.001.04'."
|
||||
#~ msgstr ""
|
||||
#~ "Le code '%s' pour le Type de Paiment n'est pas supporté. Les seuls codes de "
|
||||
#~ "Types de Paiement supportés pour les virements SEPA sont 'pain.001.001.02', "
|
||||
#~ "'pain.001.001.03' et 'pain.001.001.04'."
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Error :"
|
||||
#~ msgstr "Erreur :"
|
||||
|
||||
#~ msgid "Batch booking"
|
||||
#~ msgstr "Débit groupé"
|
||||
|
||||
@@ -23,11 +23,8 @@
|
||||
|
||||
from openerp.osv import orm, fields
|
||||
from openerp.tools.translate import _
|
||||
from openerp import tools, netsvc
|
||||
from openerp import netsvc
|
||||
from lxml import etree
|
||||
import logging
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class banking_export_sepa_wizard(orm.TransientModel):
|
||||
@@ -42,14 +39,24 @@ class banking_export_sepa_wizard(orm.TransientModel):
|
||||
], 'State', readonly=True),
|
||||
'batch_booking': fields.boolean(
|
||||
'Batch Booking',
|
||||
help="If true, the bank statement will display only one debit line for all the wire transfers of the SEPA XML file ; if false, the bank statement will display one debit line per wire transfer of the SEPA XML file."),
|
||||
help="If true, the bank statement will display only one debit "
|
||||
"line for all the wire transfers of the SEPA XML file ; if "
|
||||
"false, the bank statement will display one debit line per wire "
|
||||
"transfer of the SEPA XML file."),
|
||||
'charge_bearer': fields.selection([
|
||||
('SLEV', 'Following Service Level'),
|
||||
('SHAR', 'Shared'),
|
||||
('CRED', 'Borne by Creditor'),
|
||||
('DEBT', 'Borne by Debtor'),
|
||||
], 'Charge Bearer', required=True,
|
||||
help='Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the debtor side are to be borne by the debtor, transaction charges on the creditor side are to be borne by the creditor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor.'),
|
||||
help="Following service level : transaction charges are to be "
|
||||
"applied following the rules agreed in the service level and/or "
|
||||
"scheme (SEPA Core messages must use this). Shared : transaction "
|
||||
"charges on the debtor side are to be borne by the debtor, "
|
||||
"transaction charges on the creditor side are to be borne by "
|
||||
"the creditor. Borne by creditor : all transaction charges are "
|
||||
"to be borne by the creditor. Borne by debtor : all transaction "
|
||||
"charges are to be borne by the debtor."),
|
||||
'nb_transactions': fields.related(
|
||||
'file_id', 'nb_transactions', type='integer',
|
||||
string='Number of Transactions', readonly=True),
|
||||
@@ -119,7 +126,10 @@ class banking_export_sepa_wizard(orm.TransientModel):
|
||||
else:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("Payment Type Code '%s' is not supported. The only Payment Type Codes supported for SEPA Credit Transfers are 'pain.001.001.02', 'pain.001.001.03', 'pain.001.001.04' and 'pain.001.001.05'.")
|
||||
_("Payment Type Code '%s' is not supported. The only "
|
||||
"Payment Type Codes supported for SEPA Credit Transfers "
|
||||
"are 'pain.001.001.02', 'pain.001.001.03', "
|
||||
"'pain.001.001.04' and 'pain.001.001.05'.")
|
||||
% pain_flavor)
|
||||
|
||||
gen_args = {
|
||||
@@ -127,6 +137,11 @@ class banking_export_sepa_wizard(orm.TransientModel):
|
||||
'name_maxsize': name_maxsize,
|
||||
'convert_to_ascii': convert_to_ascii,
|
||||
'pain_flavor': pain_flavor,
|
||||
'sepa_export': sepa_export,
|
||||
'file_obj': self.pool['banking.export.sepa'],
|
||||
'pain_xsd_file':
|
||||
'account_banking_sepa_credit_transfer/data/%s.xsd'
|
||||
% pain_flavor,
|
||||
}
|
||||
|
||||
pain_ns = {
|
||||
@@ -134,15 +149,15 @@ class banking_export_sepa_wizard(orm.TransientModel):
|
||||
None: 'urn:iso:std:iso:20022:tech:xsd:%s' % pain_flavor,
|
||||
}
|
||||
|
||||
root = etree.Element('Document', nsmap=pain_ns)
|
||||
pain_root = etree.SubElement(root, root_xml_tag)
|
||||
xml_root = etree.Element('Document', nsmap=pain_ns)
|
||||
pain_root = etree.SubElement(xml_root, root_xml_tag)
|
||||
pain_03_to_05 = \
|
||||
['pain.001.001.03', 'pain.001.001.04', 'pain.001.001.05']
|
||||
|
||||
# A. Group header
|
||||
group_header_1_0, nb_of_transactions_1_6, control_sum_1_7 = \
|
||||
self.generate_group_header_block(
|
||||
cr, uid, pain_root, sepa_export, gen_args, context=context)
|
||||
self.generate_group_header_block(
|
||||
cr, uid, pain_root, gen_args, context=context)
|
||||
|
||||
transactions_count_1_6 = 0
|
||||
total_amount = 0.0
|
||||
@@ -175,22 +190,25 @@ class banking_export_sepa_wizard(orm.TransientModel):
|
||||
for (requested_date, priority), lines in lines_per_group.items():
|
||||
# B. Payment info
|
||||
payment_info_2_0, nb_of_transactions_2_4, control_sum_2_5 = \
|
||||
self.generate_start_payment_info_block(
|
||||
cr, uid, pain_root, sepa_export,
|
||||
"sepa_export.payment_order_ids[0].reference + '-' + requested_date.replace('-', '') + '-' + priority",
|
||||
priority, False, False, requested_date, {
|
||||
'sepa_export': sepa_export,
|
||||
'priority': priority,
|
||||
'requested_date': requested_date,
|
||||
}, gen_args, context=context)
|
||||
self.generate_start_payment_info_block(
|
||||
cr, uid, pain_root,
|
||||
"sepa_export.payment_order_ids[0].reference + '-' "
|
||||
"+ requested_date.replace('-', '') + '-' + priority",
|
||||
priority, False, False, requested_date, {
|
||||
'sepa_export': sepa_export,
|
||||
'priority': priority,
|
||||
'requested_date': requested_date,
|
||||
}, gen_args, context=context)
|
||||
|
||||
self.generate_party_block(
|
||||
cr, uid, payment_info_2_0, 'Dbtr', 'B',
|
||||
'sepa_export.payment_order_ids[0].mode.bank_id.partner_id.name',
|
||||
'sepa_export.payment_order_ids[0].mode.bank_id.partner_id.'
|
||||
'name',
|
||||
'sepa_export.payment_order_ids[0].mode.bank_id.acc_number',
|
||||
'sepa_export.payment_order_ids[0].mode.bank_id.bank.bic',
|
||||
{'sepa_export': sepa_export},
|
||||
gen_args, context=context)
|
||||
|
||||
charge_bearer_2_24 = etree.SubElement(payment_info_2_0, 'ChrgBr')
|
||||
charge_bearer_2_24.text = sepa_export.charge_bearer
|
||||
|
||||
@@ -225,14 +243,14 @@ class banking_export_sepa_wizard(orm.TransientModel):
|
||||
if not line.bank_id:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("Missing Bank Account on invoice '%s' (payment order line reference '%s').")
|
||||
_("Missing Bank Account on invoice '%s' (payment "
|
||||
"order line reference '%s').")
|
||||
% (line.ml_inv_ref.number, line.name))
|
||||
self.generate_party_block(
|
||||
cr, uid, credit_transfer_transaction_info_2_27, 'Cdtr', 'C',
|
||||
'line.partner_id.name',
|
||||
'line.bank_id.acc_number',
|
||||
'line.bank_id.bank.bic',
|
||||
{'line': line}, gen_args, context=context)
|
||||
cr, uid, credit_transfer_transaction_info_2_27, 'Cdtr',
|
||||
'C', 'line.partner_id.name', 'line.bank_id.acc_number',
|
||||
'line.bank_id.bank.bic', {'line': line}, gen_args,
|
||||
context=context)
|
||||
|
||||
self.generate_remittance_info_block(
|
||||
cr, uid, credit_transfer_transaction_info_2_27,
|
||||
@@ -249,39 +267,9 @@ class banking_export_sepa_wizard(orm.TransientModel):
|
||||
nb_of_transactions_1_6.text = str(transactions_count_1_6)
|
||||
control_sum_1_7.text = '%.2f' % amount_control_sum_1_7
|
||||
|
||||
xml_string = etree.tostring(
|
||||
root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
|
||||
_logger.debug(
|
||||
"Generated SEPA Credit Transfer XML file in format %s below"
|
||||
% pain_flavor)
|
||||
_logger.debug(xml_string)
|
||||
pain_xsd_file = \
|
||||
'account_banking_sepa_credit_transfer/data/%s.xsd' % pain_flavor
|
||||
self._validate_xml(cr, uid, xml_string, pain_xsd_file)
|
||||
|
||||
# CREATE the banking.export.sepa record
|
||||
file_id = self.pool.get('banking.export.sepa').create(
|
||||
cr, uid, self._prepare_export_sepa(
|
||||
cr, uid, sepa_export, total_amount, transactions_count_1_6,
|
||||
xml_string, gen_args, context=context),
|
||||
context=context)
|
||||
|
||||
self.write(
|
||||
cr, uid, ids, {
|
||||
'file_id': file_id,
|
||||
'state': 'finish',
|
||||
}, context=context)
|
||||
|
||||
action = {
|
||||
'name': 'SEPA Credit Transfer File',
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form,tree',
|
||||
'res_model': self._name,
|
||||
'res_id': ids[0],
|
||||
'target': 'new',
|
||||
}
|
||||
return action
|
||||
return self.finalize_sepa_file_creation(
|
||||
cr, uid, ids, xml_root, total_amount, transactions_count_1_6,
|
||||
gen_args, context=context)
|
||||
|
||||
def cancel_sepa(self, cr, uid, ids, context=None):
|
||||
'''
|
||||
|
||||
@@ -63,14 +63,24 @@ class banking_export_sdd(orm.Model):
|
||||
readonly=True),
|
||||
'batch_booking': fields.boolean(
|
||||
'Batch Booking', readonly=True,
|
||||
help="If true, the bank statement will display only one credit line for all the direct debits of the SEPA file ; if false, the bank statement will display one credit line per direct debit of the SEPA file."),
|
||||
help="If true, the bank statement will display only one credit "
|
||||
"line for all the direct debits of the SEPA file ; if false, "
|
||||
"the bank statement will display one credit line per direct "
|
||||
"debit of the SEPA file."),
|
||||
'charge_bearer': fields.selection([
|
||||
('SLEV', 'Following Service Level'),
|
||||
('SHAR', 'Shared'),
|
||||
('CRED', 'Borne by Creditor'),
|
||||
('DEBT', 'Borne by Debtor'),
|
||||
], 'Charge Bearer', readonly=True,
|
||||
help='Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the creditor side are to be borne by the creditor, transaction charges on the debtor side are to be borne by the debtor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor.'),
|
||||
help="Following service level : transaction charges are to be "
|
||||
"applied following the rules agreed in the service level and/or "
|
||||
"scheme (SEPA Core messages must use this). Shared : "
|
||||
"transaction charges on the creditor side are to be borne by "
|
||||
"the creditor, transaction charges on the debtor side are to be "
|
||||
"borne by the debtor. Borne by creditor : all transaction "
|
||||
"charges are to be borne by the creditor. Borne by debtor : "
|
||||
"all transaction charges are to be borne by the debtor."),
|
||||
'create_date': fields.datetime('Generation Date', readonly=True),
|
||||
'file': fields.binary('SEPA File', readonly=True),
|
||||
'filename': fields.function(
|
||||
@@ -98,22 +108,26 @@ class sdd_mandate(orm.Model):
|
||||
_track = {
|
||||
'state': {
|
||||
'account_banking_sepa_direct_debit.mandate_valid':
|
||||
lambda self, cr, uid, obj, ctx=None: obj['state'] == 'valid',
|
||||
lambda self, cr, uid, obj, ctx=None:
|
||||
obj['state'] == 'valid',
|
||||
'account_banking_sepa_direct_debit.mandate_expired':
|
||||
lambda self, cr, uid, obj, ctx=None: obj['state'] == 'expired',
|
||||
lambda self, cr, uid, obj, ctx=None:
|
||||
obj['state'] == 'expired',
|
||||
'account_banking_sepa_direct_debit.mandate_cancel':
|
||||
lambda self, cr, uid, obj, ctx=None: obj['state'] == 'cancel',
|
||||
lambda self, cr, uid, obj, ctx=None:
|
||||
obj['state'] == 'cancel',
|
||||
},
|
||||
'recurrent_sequence_type': {
|
||||
'account_banking_sepa_direct_debit.recurrent_sequence_type_first':
|
||||
lambda self, cr, uid, obj, ctx=None:
|
||||
obj['recurrent_sequence_type'] == 'first',
|
||||
'account_banking_sepa_direct_debit.recurrent_sequence_type_recurring':
|
||||
lambda self, cr, uid, obj, ctx=None:
|
||||
obj['recurrent_sequence_type'] == 'recurring',
|
||||
lambda self, cr, uid, obj, ctx=None:
|
||||
obj['recurrent_sequence_type'] == 'first',
|
||||
'account_banking_sepa_direct_debit.'
|
||||
'recurrent_sequence_type_recurring':
|
||||
lambda self, cr, uid, obj, ctx=None:
|
||||
obj['recurrent_sequence_type'] == 'recurring',
|
||||
'account_banking_sepa_direct_debit.recurrent_sequence_type_final':
|
||||
lambda self, cr, uid, obj, ctx=None:
|
||||
obj['recurrent_sequence_type'] == 'final',
|
||||
lambda self, cr, uid, obj, ctx=None:
|
||||
obj['recurrent_sequence_type'] == 'final',
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,7 +150,8 @@ class sdd_mandate(orm.Model):
|
||||
('recurring', 'Recurring'),
|
||||
('final', 'Final'),
|
||||
], 'Sequence Type for Next Debit', track_visibility='onchange',
|
||||
help="This field is only used for Recurrent mandates, not for One-Off mandates."),
|
||||
help="This field is only used for Recurrent mandates, not for "
|
||||
"One-Off mandates."),
|
||||
'signature_date': fields.date(
|
||||
'Date of Signature of the Mandate', track_visibility='onchange'),
|
||||
'scan': fields.binary('Scan of the Mandate'),
|
||||
@@ -148,24 +163,36 @@ class sdd_mandate(orm.Model):
|
||||
('expired', 'Expired'),
|
||||
('cancel', 'Cancelled'),
|
||||
], 'Status',
|
||||
help="Only valid mandates can be used in a payment line. A cancelled mandate is a mandate that has been cancelled by the customer. A one-off mandate expires after its first use. A recurrent mandate expires after it's final use or if it hasn't been used for 36 months."),
|
||||
help="Only valid mandates can be used in a payment line. A "
|
||||
"cancelled mandate is a mandate that has been cancelled by "
|
||||
"the customer. A one-off mandate expires after its first use. "
|
||||
"A recurrent mandate expires after it's final use or if it "
|
||||
"hasn't been used for 36 months."),
|
||||
'payment_line_ids': fields.one2many(
|
||||
'payment.line', 'sdd_mandate_id', "Related Payment Lines"),
|
||||
'sepa_migrated': fields.boolean(
|
||||
'Migrated to SEPA', track_visibility='onchange',
|
||||
help="If this field is not active, the mandate section of the next direct debit file that include this mandate will contain the 'Original Mandate Identification' and the 'Original Creditor Scheme Identification'. This is required in a few countries (Belgium for instance), but not in all countries. If this is not required in your country, you should keep this field always active."),
|
||||
help="If this field is not active, the mandate section of the "
|
||||
"next direct debit file that include this mandate will contain "
|
||||
"the 'Original Mandate Identification' and the 'Original "
|
||||
"Creditor Scheme Identification'. This is required in a few "
|
||||
"countries (Belgium for instance), but not in all countries. "
|
||||
"If this is not required in your country, you should keep this "
|
||||
"field always active."),
|
||||
'original_mandate_identification': fields.char(
|
||||
'Original Mandate Identification', size=35,
|
||||
track_visibility='onchange',
|
||||
help="When the field 'Migrated to SEPA' is not active, this field will be used as the Original Mandate Identification in the the Direct Debit file."),
|
||||
help="When the field 'Migrated to SEPA' is not active, this "
|
||||
"field will be used as the Original Mandate Identification in "
|
||||
"the Direct Debit file."),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'company_id': lambda self, cr, uid, context:
|
||||
self.pool['res.company'].\
|
||||
_company_default_get(cr, uid, 'sdd.mandate', context=context),
|
||||
self.pool['res.company']._company_default_get(
|
||||
cr, uid, 'sdd.mandate', context=context),
|
||||
'unique_mandate_reference': lambda self, cr, uid, ctx:
|
||||
self.pool['ir.sequence'].get(cr, uid, 'sdd.mandate.reference'),
|
||||
self.pool['ir.sequence'].get(cr, uid, 'sdd.mandate.reference'),
|
||||
'state': 'draft',
|
||||
'sepa_migrated': True,
|
||||
}
|
||||
@@ -183,24 +210,28 @@ class sdd_mandate(orm.Model):
|
||||
datetime.today().strftime('%Y-%m-%d')):
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("The date of signature of mandate '%s' is in the future!")
|
||||
_("The date of signature of mandate '%s' is in the "
|
||||
"future !")
|
||||
% mandate.unique_mandate_reference)
|
||||
if mandate.state == 'valid' and not mandate.signature_date:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("Cannot validate the mandate '%s' without a date of signature.")
|
||||
_("Cannot validate the mandate '%s' without a date of "
|
||||
"signature.")
|
||||
% mandate.unique_mandate_reference)
|
||||
if mandate.state == 'valid' and not mandate.partner_bank_id:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("Cannot validate the mandate '%s' because it is not attached to a bank account.")
|
||||
_("Cannot validate the mandate '%s' because it is not "
|
||||
"attached to a bank account.")
|
||||
% mandate.unique_mandate_reference)
|
||||
|
||||
if (mandate.signature_date and mandate.last_debit_date and
|
||||
mandate.signature_date > mandate.last_debit_date):
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("The mandate '%s' can't have a date of last debit before the date of signature.")
|
||||
_("The mandate '%s' can't have a date of last debit "
|
||||
"before the date of signature.")
|
||||
% mandate.unique_mandate_reference)
|
||||
if (mandate.type == 'recurrent'
|
||||
and not mandate.recurrent_sequence_type):
|
||||
@@ -212,13 +243,17 @@ class sdd_mandate(orm.Model):
|
||||
and mandate.recurrent_sequence_type != 'first'):
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("The recurrent mandate '%s' which is not marked as 'Migrated to SEPA' must have its recurrent sequence type set to 'First'.")
|
||||
_("The recurrent mandate '%s' which is not marked as "
|
||||
"'Migrated to SEPA' must have its recurrent sequence "
|
||||
"type set to 'First'.")
|
||||
% mandate.unique_mandate_reference)
|
||||
if (mandate.type == 'recurrent' and not mandate.sepa_migrated
|
||||
and not mandate.original_mandate_identification):
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("You must set the 'Original Mandate Identification' on the recurrent mandate '%s' which is not marked as 'Migrated to SEPA'.")
|
||||
_("You must set the 'Original Mandate Identification' "
|
||||
"on the recurrent mandate '%s' which is not marked "
|
||||
"as 'Migrated to SEPA'.")
|
||||
% mandate.unique_mandate_reference)
|
||||
return True
|
||||
|
||||
@@ -252,8 +287,11 @@ class sdd_mandate(orm.Model):
|
||||
and recurrent_sequence_type != 'first'):
|
||||
res['value']['recurrent_sequence_type'] = 'first'
|
||||
res['warning'] = {
|
||||
'title': _('Mandate update'),
|
||||
'message': _("As you changed the bank account attached to this mandate, the 'Sequence Type' has been set back to 'First'."),
|
||||
'title': _('Mandate update'),
|
||||
'message': _(
|
||||
"As you changed the bank account attached to this "
|
||||
"mandate, the 'Sequence Type' has been set back to "
|
||||
"'First'."),
|
||||
}
|
||||
return res
|
||||
|
||||
@@ -337,7 +375,7 @@ class payment_line(orm.Model):
|
||||
vals.update({
|
||||
'sdd_mandate_id': line.invoice.sdd_mandate_id.id,
|
||||
'bank_id':
|
||||
line.invoice.sdd_mandate_id.partner_bank_id.id,
|
||||
line.invoice.sdd_mandate_id.partner_bank_id.id,
|
||||
})
|
||||
if partner_bank_id and 'sdd_mandate_id' not in vals:
|
||||
mandate_ids = self.pool['sdd.mandate'].search(cr, uid, [
|
||||
@@ -355,14 +393,17 @@ class payment_line(orm.Model):
|
||||
payline.bank_id.id):
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("The payment line with reference '%s' has the bank account '%s' which is not attached to the mandate '%s' (this mandate is attached to the bank account '%s').")
|
||||
% (payline.name,
|
||||
self.pool['res.partner.bank'].name_get(
|
||||
cr, uid, [payline.bank_id.id])[0][1],
|
||||
payline.sdd_mandate_id.unique_mandate_reference,
|
||||
self.pool['res.partner.bank'].name_get(
|
||||
cr, uid,
|
||||
[payline.sdd_mandate_id.partner_bank_id.id])[0][1],
|
||||
_("The payment line with reference '%s' has the bank "
|
||||
"account '%s' which is not attached to the mandate "
|
||||
"'%s' (this mandate is attached to the bank account "
|
||||
"'%s').") % (
|
||||
payline.name,
|
||||
self.pool['res.partner.bank'].name_get(
|
||||
cr, uid, [payline.bank_id.id])[0][1],
|
||||
payline.sdd_mandate_id.unique_mandate_reference,
|
||||
self.pool['res.partner.bank'].name_get(
|
||||
cr, uid,
|
||||
[payline.sdd_mandate_id.partner_bank_id.id])[0][1],
|
||||
))
|
||||
return True
|
||||
|
||||
|
||||
@@ -31,7 +31,11 @@ class res_company(orm.Model):
|
||||
_columns = {
|
||||
'sepa_creditor_identifier': fields.char(
|
||||
'SEPA Creditor Identifier', size=35,
|
||||
help="Enter the Creditor Identifier that has been attributed to your company to make SEPA Direct Debits. This identifier is composed of :\n- your country ISO code (2 letters)\n- a 2-digits checkum\n- a 3-letters business code\n- a country-specific identifier"),
|
||||
help="Enter the Creditor Identifier that has been attributed "
|
||||
"to your company to make SEPA Direct Debits. This identifier "
|
||||
"is composed of :\n- your country ISO code (2 letters)\n- a "
|
||||
"2-digits checkum\n- a 3-letters business code\n- a "
|
||||
"country-specific identifier"),
|
||||
'original_creditor_identifier': fields.char(
|
||||
'Original Creditor Identifier', size=70),
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-11 14:28+0000\n"
|
||||
"PO-Revision-Date: 2013-11-11 14:28+0000\n"
|
||||
"POT-Creation-Date: 2013-12-23 22:24+0000\n"
|
||||
"PO-Revision-Date: 2013-12-23 22:24+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -27,19 +27,13 @@ msgid "Filename"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:banking.export.sdd,requested_collec_date:0
|
||||
#: field:banking.export.sdd.wizard,requested_collec_date:0
|
||||
msgid "Requested Collection Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:276
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:200
|
||||
#, python-format
|
||||
msgid "The SEPA Direct Debit mandate with reference '%s' for partner '%s' has expired."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:186
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:219
|
||||
#, python-format
|
||||
msgid "Cannot validate the mandate '%s' without a date of signature."
|
||||
msgstr ""
|
||||
@@ -67,8 +61,8 @@ msgid "Error msg in raise"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:sdd.mandate,company_id:0
|
||||
msgid "Company"
|
||||
#: selection:banking.export.sdd,state:0
|
||||
msgid "Reconciled"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
@@ -119,21 +113,18 @@ msgid "Borne by Debtor"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:180
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:185
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:190
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:197
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:203
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:336
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:89
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:115
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:121
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:130
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:168
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:219
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:269
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:275
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:287
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:212
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:218
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:224
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:232
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:239
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:245
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:253
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:395
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:140
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:192
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:199
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:209
|
||||
#, python-format
|
||||
msgid "Error:"
|
||||
msgstr ""
|
||||
@@ -144,20 +135,8 @@ msgid "Messages"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:131
|
||||
#, python-format
|
||||
msgid "The '%s' is empty or 0. It should have a non-null value."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:89
|
||||
#, python-format
|
||||
msgid "This IBAN is not valid : %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_banking_export_sdd_wizard
|
||||
msgid "Export SEPA Direct Debit XML file"
|
||||
#: field:sdd.mandate,unique_mandate_reference:0
|
||||
msgid "Unique Mandate Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
@@ -167,7 +146,7 @@ msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:219
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:141
|
||||
#, python-format
|
||||
msgid "Payment Type Code '%s' is not supported. The only Payment Type Code supported for SEPA Direct Debit are 'pain.008.001.02', 'pain.008.001.03' and 'pain.008.001.04'."
|
||||
msgstr ""
|
||||
@@ -187,6 +166,12 @@ msgstr ""
|
||||
msgid "SEPA Direct Debit Mandate has Expired"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:246
|
||||
#, python-format
|
||||
msgid "The recurrent mandate '%s' which is not marked as 'Migrated to SEPA' must have its recurrent sequence type set to 'First'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:banking.export.sdd,charge_bearer:0
|
||||
#: help:banking.export.sdd.wizard,charge_bearer:0
|
||||
@@ -213,11 +198,6 @@ msgstr ""
|
||||
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: account_banking_sepa_direct_debit
|
||||
#: help:banking.export.sdd.wizard,requested_collec_date:0
|
||||
msgid "This is the date on which you would like the collection to be made by the bank. Please keep in mind that there are minimum delays for SEPA direct debits that depend on the type of mandate and the type of sequence."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_payment_line
|
||||
msgid "Payment Line"
|
||||
@@ -229,7 +209,7 @@ msgid "Generation Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:337
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:396
|
||||
#, python-format
|
||||
msgid "The payment line with reference '%s' has the bank account '%s' which is not attached to the mandate '%s' (this mandate is attached to the bank account '%s')."
|
||||
msgstr ""
|
||||
@@ -258,7 +238,7 @@ msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:204
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:240
|
||||
#, python-format
|
||||
msgid "The recurrent mandate '%s' must have a sequence type."
|
||||
msgstr ""
|
||||
@@ -291,14 +271,13 @@ msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: selection:sdd.mandate,recurrent_sequence_type:0
|
||||
msgid "Recurring"
|
||||
#: field:res.company,original_creditor_identifier:0
|
||||
msgid "Original Creditor Identifier"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:181
|
||||
#, python-format
|
||||
msgid "The date of signature of mandate '%s' is in the future!"
|
||||
#: selection:sdd.mandate,recurrent_sequence_type:0
|
||||
msgid "Recurring"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
@@ -325,6 +304,12 @@ msgstr ""
|
||||
msgid "This field is only used for Recurrent mandates, not for One-Off mandates."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:213
|
||||
#, python-format
|
||||
msgid "The date of signature of mandate '%s' is in the future !"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: view:sdd.mandate:0
|
||||
msgid "Signature Date"
|
||||
@@ -341,12 +326,6 @@ msgstr ""
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:125
|
||||
#, python-format
|
||||
msgid "Field type error:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: selection:sdd.mandate,recurrent_sequence_type:0
|
||||
msgid "First"
|
||||
@@ -364,18 +343,32 @@ msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.actions.act_window,name:account_banking_sepa_direct_debit.act_banking_export_sdd_payment_order
|
||||
#: model:ir.actions.act_window,name:account_banking_sepa_direct_debit.action_account_banking_sdd
|
||||
#: model:ir.ui.menu,name:account_banking_sepa_direct_debit.menu_account_banking_sdd
|
||||
msgid "Generated SEPA Direct Debit Files"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: selection:banking.export.sdd,state:0
|
||||
msgid "Reconciled"
|
||||
#: help:sdd.mandate,sepa_migrated:0
|
||||
msgid "If this field is not active, the mandate section of the next direct debit file that include this mandate will contain the 'Original Mandate Identification' and the 'Original Creditor Scheme Identification'. This is required in a few countries (Belgium for instance), but not in all countries. If this is not required in your country, you should keep this field always active."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:191
|
||||
#: field:sdd.mandate,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_banking_export_sdd_wizard
|
||||
msgid "Export SEPA Direct Debit File"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:banking.export.sdd,batch_booking:0
|
||||
#: help:banking.export.sdd.wizard,batch_booking:0
|
||||
msgid "If true, the bank statement will display only one credit line for all the direct debits of the SEPA file ; if false, the bank statement will display one credit line per direct debit of the SEPA file."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:225
|
||||
#, python-format
|
||||
msgid "Cannot validate the mandate '%s' because it is not attached to a bank account."
|
||||
msgstr ""
|
||||
@@ -388,17 +381,11 @@ msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:232
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:290
|
||||
#, python-format
|
||||
msgid "Mandate update"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:116
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s' of the Payment Line with Invoice Reference '%s'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: selection:banking.export.sdd,charge_bearer:0
|
||||
#: selection:banking.export.sdd.wizard,charge_bearer:0
|
||||
@@ -411,6 +398,11 @@ msgstr ""
|
||||
msgid "Batch Booking"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:sdd.mandate,sepa_migrated:0
|
||||
msgid "Migrated to SEPA"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:sdd.mandate,state:0
|
||||
msgid "Status"
|
||||
@@ -423,9 +415,9 @@ msgid "Total Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:banking.export.sdd,batch_booking:0
|
||||
#: help:banking.export.sdd.wizard,batch_booking:0
|
||||
msgid "If true, the bank statement will display only one credit line for all the direct debits of the SEPA file ; if false, the bank statement will display one credit line per direct debit of the SEPA file."
|
||||
#: model:ir.actions.act_window,name:account_banking_sepa_direct_debit.action_account_banking_sdd
|
||||
#: model:ir.ui.menu,name:account_banking_sepa_direct_debit.menu_account_banking_sdd
|
||||
msgid "SEPA Direct Debit Files"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
@@ -435,7 +427,7 @@ msgid "Following Service Level"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:198
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:233
|
||||
#, python-format
|
||||
msgid "The mandate '%s' can't have a date of last debit before the date of signature."
|
||||
msgstr ""
|
||||
@@ -451,11 +443,21 @@ msgstr ""
|
||||
msgid "Is a Follower"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:sdd.mandate,original_mandate_identification:0
|
||||
msgid "When the field 'Migrated to SEPA' is not active, this field will be used as the Original Mandate Identification in the Direct Debit file."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: view:payment.order:0
|
||||
msgid "SDD Mandate"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:sdd.mandate,original_mandate_identification:0
|
||||
msgid "Original Mandate Identification"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_res_company
|
||||
msgid "Companies"
|
||||
@@ -466,6 +468,11 @@ msgstr ""
|
||||
msgid "Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:res.groups,name:account_banking_sepa_direct_debit.group_original_mandate_required
|
||||
msgid "Original Mandate Required (SEPA)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:account.invoice,sdd_mandate_id:0
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_sdd_mandate
|
||||
@@ -475,13 +482,13 @@ msgid "SEPA Direct Debit Mandate"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:270
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:193
|
||||
#, python-format
|
||||
msgid "Missing SEPA Direct Debit mandate on the payment line with partner '%s' and Invoice ref '%s'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:288
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:210
|
||||
#, python-format
|
||||
msgid "The mandate with reference '%s' for partner '%s' has type set to 'One-Off' and it has a last debit date set to '%s', so we can't use it."
|
||||
msgstr ""
|
||||
@@ -549,12 +556,6 @@ msgstr ""
|
||||
msgid "Related Payment Lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:169
|
||||
#, python-format
|
||||
msgid "The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: view:sdd.mandate:0
|
||||
#: selection:sdd.mandate,type:0
|
||||
@@ -581,18 +582,6 @@ msgstr ""
|
||||
msgid "SEPA Creditor Identifier"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:122
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:126
|
||||
#, python-format
|
||||
msgid "The type of the field '%s' is %s. It should be a string or unicode."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_banking_export_sdd
|
||||
msgid "SEPA Direct Debit export"
|
||||
@@ -609,6 +598,12 @@ msgstr ""
|
||||
msgid "Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:254
|
||||
#, python-format
|
||||
msgid "You must set the 'Original Mandate Identification' on the recurrent mandate '%s' which is not marked as 'Migrated to SEPA'."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:mail.message.subtype,description:account_banking_sepa_direct_debit.recurrent_sequence_type_first
|
||||
#: model:mail.message.subtype,name:account_banking_sepa_direct_debit.recurrent_sequence_type_first
|
||||
@@ -616,7 +611,7 @@ msgid "Sequence Type set to First"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:233
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:291
|
||||
#, python-format
|
||||
msgid "As you changed the bank account attached to this mandate, the 'Sequence Type' has been set back to 'First'."
|
||||
msgstr ""
|
||||
@@ -631,11 +626,6 @@ msgstr ""
|
||||
msgid "Search SEPA Direct Debit Mandates"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:sdd.mandate,unique_mandate_reference:0
|
||||
msgid "Unique Mandate Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:banking.export.sdd.wizard,file:0
|
||||
msgid "File"
|
||||
|
||||
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-11 14:04+0000\n"
|
||||
"PO-Revision-Date: 2013-11-11 14:04+0000\n"
|
||||
"POT-Creation-Date: 2013-12-23 22:25+0000\n"
|
||||
"PO-Revision-Date: 2013-12-23 22:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -27,19 +27,13 @@ msgid "Filename"
|
||||
msgstr "Nom du fichier"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:banking.export.sdd,requested_collec_date:0
|
||||
#: field:banking.export.sdd.wizard,requested_collec_date:0
|
||||
msgid "Requested Collection Date"
|
||||
msgstr "Date de collecte demandée"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:276
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:200
|
||||
#, python-format
|
||||
msgid "The SEPA Direct Debit mandate with reference '%s' for partner '%s' has expired."
|
||||
msgstr "Le mandat de prélèvement SEPA portant la référence '%s' pour le partenaire '%s' a expiré."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:186
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:219
|
||||
#, python-format
|
||||
msgid "Cannot validate the mandate '%s' without a date of signature."
|
||||
msgstr "Impossible de valider le mandat '%s' sans date de signature."
|
||||
@@ -119,21 +113,18 @@ msgid "Borne by Debtor"
|
||||
msgstr "Supportés par le débiteur"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:180
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:185
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:190
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:197
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:203
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:336
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:89
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:115
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:121
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:130
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:168
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:219
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:269
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:275
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:287
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:212
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:218
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:224
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:232
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:239
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:245
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:253
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:395
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:140
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:192
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:199
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:209
|
||||
#, python-format
|
||||
msgid "Error:"
|
||||
msgstr "Erreur :"
|
||||
@@ -144,21 +135,9 @@ msgid "Messages"
|
||||
msgstr "Messages"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:131
|
||||
#, python-format
|
||||
msgid "The '%s' is empty or 0. It should have a non-null value."
|
||||
msgstr "Le champ '%s' est vide ou nul. Il doit avoir une valeur non nulle."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:89
|
||||
#, python-format
|
||||
msgid "This IBAN is not valid : %s"
|
||||
msgstr "Cet IBAN n'est pas valide : %s"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_banking_export_sdd_wizard
|
||||
msgid "Export SEPA Direct Debit XML file"
|
||||
msgstr "Export des fichiers de prélèvement SEPA"
|
||||
#: field:sdd.mandate,unique_mandate_reference:0
|
||||
msgid "Unique Mandate Reference"
|
||||
msgstr "Référence unique de mandat"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: view:sdd.mandate:0
|
||||
@@ -167,7 +146,7 @@ msgid "Cancelled"
|
||||
msgstr "Annulé"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:219
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:141
|
||||
#, python-format
|
||||
msgid "Payment Type Code '%s' is not supported. The only Payment Type Code supported for SEPA Direct Debit are 'pain.008.001.02', 'pain.008.001.03' and 'pain.008.001.04'."
|
||||
msgstr "Le code du Type de paiement '%s' n'est pas supporté. Les seuls codes de Type de paiement supportés pour les prélèvements SEPA sont 'pain.008.001.02', 'pain.008.001.03' et 'pain.008.001.04'."
|
||||
@@ -187,6 +166,12 @@ msgstr "Fichier de prélèvement SEPA"
|
||||
msgid "SEPA Direct Debit Mandate has Expired"
|
||||
msgstr "Le mandat de prélèvement SEPA a expiré"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:246
|
||||
#, python-format
|
||||
msgid "The recurrent mandate '%s' which is not marked as 'Migrated to SEPA' must have its recurrent sequence type set to 'First'."
|
||||
msgstr "Le mandat récurrent '%s' dont l'option 'Migré à SEPA' n'est pas activée doit avec sa séquence mise à 'First'."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:banking.export.sdd,charge_bearer:0
|
||||
#: help:banking.export.sdd.wizard,charge_bearer:0
|
||||
@@ -224,7 +209,7 @@ msgid "Generation Date"
|
||||
msgstr "Date de génération"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:337
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:396
|
||||
#, python-format
|
||||
msgid "The payment line with reference '%s' has the bank account '%s' which is not attached to the mandate '%s' (this mandate is attached to the bank account '%s')."
|
||||
msgstr "La ligne de paiement portant la référence '%s' est configurée avec le compte bancaire '%s' qui n'est pas rattaché au mandat '%s' (ce mandat est rattaché au compte bancaire '%s')."
|
||||
@@ -253,7 +238,7 @@ msgid "State"
|
||||
msgstr "État"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:204
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:240
|
||||
#, python-format
|
||||
msgid "The recurrent mandate '%s' must have a sequence type."
|
||||
msgstr "Le mandat récurrent '%s' doit avoir un type de séquence."
|
||||
@@ -285,17 +270,16 @@ msgstr "Type"
|
||||
msgid "Sent"
|
||||
msgstr "Envoyé"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:res.company,original_creditor_identifier:0
|
||||
msgid "Original Creditor Identifier"
|
||||
msgstr "Ancien Identifiant Créancier"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: selection:sdd.mandate,recurrent_sequence_type:0
|
||||
msgid "Recurring"
|
||||
msgstr "Recurring"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:181
|
||||
#, python-format
|
||||
msgid "The date of signature of mandate '%s' is in the future!"
|
||||
msgstr "La date de signature du mandat '%s' est dans le futur !"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:res.company,sepa_creditor_identifier:0
|
||||
msgid "Enter the Creditor Identifier that has been attributed to your company to make SEPA Direct Debits. This identifier is composed of :\n"
|
||||
@@ -324,6 +308,12 @@ msgstr "Seuls des mandats valides peuvent être utilisés dans une ligne de paie
|
||||
msgid "This field is only used for Recurrent mandates, not for One-Off mandates."
|
||||
msgstr "Ce champ n'est utilisé que pour les mandats récurrents, pas pour les mandats One-Off."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:213
|
||||
#, python-format
|
||||
msgid "The date of signature of mandate '%s' is in the future !"
|
||||
msgstr "La date de signature du mandat '%s' est dans le futur !"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: view:sdd.mandate:0
|
||||
msgid "Signature Date"
|
||||
@@ -340,12 +330,6 @@ msgstr "Répartition des frais"
|
||||
msgid "Partner"
|
||||
msgstr "Partenaire"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:125
|
||||
#, python-format
|
||||
msgid "Field type error:"
|
||||
msgstr "Erreur de type de champ :"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: selection:sdd.mandate,recurrent_sequence_type:0
|
||||
msgid "First"
|
||||
@@ -363,18 +347,32 @@ msgstr "Mandat annulé"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.actions.act_window,name:account_banking_sepa_direct_debit.act_banking_export_sdd_payment_order
|
||||
#: model:ir.actions.act_window,name:account_banking_sepa_direct_debit.action_account_banking_sdd
|
||||
#: model:ir.ui.menu,name:account_banking_sepa_direct_debit.menu_account_banking_sdd
|
||||
msgid "Generated SEPA Direct Debit Files"
|
||||
msgstr "Fichiers de prélèvement SEPA générés"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:sdd.mandate,sepa_migrated:0
|
||||
msgid "If this field is not active, the mandate section of the next direct debit file that include this mandate will contain the 'Original Mandate Identification' and the 'Original Creditor Scheme Identification'. This is required in a few countries (Belgium for instance), but not in all countries. If this is not required in your country, you should keep this field always active."
|
||||
msgstr "Si cette option n'est pas activée, la section qui concerne le mandat dans le prochain fichier de prélèvement qui incluera ce mandat contiendra les champs 'Original Mandate Identification' et 'Original Creditor Scheme Identification'. Ces champs sont requis dans certains pays (en Belgique notamment), mais pas dans tous les pays. Si ces champs ne sont pas requis dans votre pays, vous devriez garder ce champ toujours actif."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:sdd.mandate,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Société"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:191
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_banking_export_sdd_wizard
|
||||
msgid "Export SEPA Direct Debit File"
|
||||
msgstr "Export du fichier de prélèvement SEPA"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:banking.export.sdd,batch_booking:0
|
||||
#: help:banking.export.sdd.wizard,batch_booking:0
|
||||
msgid "If true, the bank statement will display only one credit line for all the direct debits of the SEPA file ; if false, the bank statement will display one credit line per direct debit of the SEPA file."
|
||||
msgstr "Si activé, le relevé de compte ne fera apparaître qu'une ligne de crédit pour tous les prélèvements du fichier SEPA ; si désactivé, le relevé de banque fera apparaître une ligne de crédit pour chaque prélèvement du fichier SEPA."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:225
|
||||
#, python-format
|
||||
msgid "Cannot validate the mandate '%s' because it is not attached to a bank account."
|
||||
msgstr "Impossible de valider le mandat '%s' car il n'est pas rattaché à un compte bancaire."
|
||||
@@ -387,17 +385,11 @@ msgid "Draft"
|
||||
msgstr "Brouillon"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:232
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:290
|
||||
#, python-format
|
||||
msgid "Mandate update"
|
||||
msgstr "Mise-à-jour du mandat"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:116
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s' of the Payment Line with Invoice Reference '%s'."
|
||||
msgstr "Impossible de générer le '%s' de la ligne de paiement ayant la référence de facture '%s'."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: selection:banking.export.sdd,charge_bearer:0
|
||||
#: selection:banking.export.sdd.wizard,charge_bearer:0
|
||||
@@ -410,6 +402,11 @@ msgstr "Partagée"
|
||||
msgid "Batch Booking"
|
||||
msgstr "Crédit groupé"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:sdd.mandate,sepa_migrated:0
|
||||
msgid "Migrated to SEPA"
|
||||
msgstr "Migré à SEPA"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:sdd.mandate,state:0
|
||||
msgid "Status"
|
||||
@@ -422,10 +419,10 @@ msgid "Total Amount"
|
||||
msgstr "Montant total"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:banking.export.sdd,batch_booking:0
|
||||
#: help:banking.export.sdd.wizard,batch_booking:0
|
||||
msgid "If true, the bank statement will display only one credit line for all the direct debits of the SEPA file ; if false, the bank statement will display one credit line per direct debit of the SEPA file."
|
||||
msgstr "Si activé, le relevé de compte ne fera apparaître qu'une ligne de crédit pour tous les prélèvements du fichier SEPA ; si désactivé, le relevé de banque fera apparaître une ligne de crédit pour chaque prélèvement du fichier SEPA."
|
||||
#: model:ir.actions.act_window,name:account_banking_sepa_direct_debit.action_account_banking_sdd
|
||||
#: model:ir.ui.menu,name:account_banking_sepa_direct_debit.menu_account_banking_sdd
|
||||
msgid "SEPA Direct Debit Files"
|
||||
msgstr "Fichiers de prélèvement SEPA"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: selection:banking.export.sdd,charge_bearer:0
|
||||
@@ -434,7 +431,7 @@ msgid "Following Service Level"
|
||||
msgstr "Suivant le niveau de service"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:198
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:233
|
||||
#, python-format
|
||||
msgid "The mandate '%s' can't have a date of last debit before the date of signature."
|
||||
msgstr "Le mandat '%s' ne peut pas avoir une date de dernier débit antérieure à la date de signature."
|
||||
@@ -450,11 +447,21 @@ msgstr "Type de Séquence mis à Final"
|
||||
msgid "Is a Follower"
|
||||
msgstr "Is a Follower"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:sdd.mandate,original_mandate_identification:0
|
||||
msgid "When the field 'Migrated to SEPA' is not active, this field will be used as the Original Mandate Identification in the Direct Debit file."
|
||||
msgstr "Quand le champ 'Migré à SEPA' n'est pas activé, ce champ sera le 'Original Mandate Identification' dans le fichier de prélèvement."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: view:payment.order:0
|
||||
msgid "SDD Mandate"
|
||||
msgstr "Mandat de prélèvement"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:sdd.mandate,original_mandate_identification:0
|
||||
msgid "Original Mandate Identification"
|
||||
msgstr "Ancien Identifiant du Mandat"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_res_company
|
||||
msgid "Companies"
|
||||
@@ -465,6 +472,11 @@ msgstr "Sociétés"
|
||||
msgid "Summary"
|
||||
msgstr "Résumé"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:res.groups,name:account_banking_sepa_direct_debit.group_original_mandate_required
|
||||
msgid "Original Mandate Required (SEPA)"
|
||||
msgstr "Ancien mandat requis (SEPA)"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:account.invoice,sdd_mandate_id:0
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_sdd_mandate
|
||||
@@ -474,13 +486,13 @@ msgid "SEPA Direct Debit Mandate"
|
||||
msgstr "Mandat de prélèvement SEPA"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:270
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:193
|
||||
#, python-format
|
||||
msgid "Missing SEPA Direct Debit mandate on the payment line with partner '%s' and Invoice ref '%s'."
|
||||
msgstr "Mandat de prélèvement SEPA manquant sur la ligne de paiement ayant pour partenaire '%s' et pour référence de facture '%s'."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:288
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:210
|
||||
#, python-format
|
||||
msgid "The mandate with reference '%s' for partner '%s' has type set to 'One-Off' and it has a last debit date set to '%s', so we can't use it."
|
||||
msgstr "Le mandat portant la référence '%s' pour le partenaire '%s' est de type 'One-Off' et il a une date de dernier débit au '%s', donc il n'est pas utilisable."
|
||||
@@ -510,6 +522,21 @@ msgstr "Identifiant créancier SEPA invalide."
|
||||
msgid "Bank Accounts"
|
||||
msgstr "Comptes bancaires"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.actions.act_window,help:account_banking_sepa_direct_debit.sdd_mandate_action
|
||||
msgid "<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a new SEPA Direct Debit Mandate.\n"
|
||||
" </p><p>\n"
|
||||
" A SEPA Direct Debit Mandate is a document signed by your customer that gives you the autorization to do one or several direct debits on his bank account.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr "<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Cliquez pour créer un mandat de prélèvement SEPA.\n"
|
||||
" </p><p>\n"
|
||||
" Un mandat de prélèvement SEPA est un document signé par votre client qui vous donne l'autorisation de réaliser un ou plusieurs prélèvements sur son compte bancaire.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: view:banking.export.sdd:0
|
||||
msgid "General Information"
|
||||
@@ -538,12 +565,6 @@ msgstr "Annuler"
|
||||
msgid "Related Payment Lines"
|
||||
msgstr "Lignes de paiement associées"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:169
|
||||
#, python-format
|
||||
msgid "The generated XML file is not valid against the official XML Schema Definition. The generated XML file and the full error have been written in the server logs. Here is the error, which may give you an idea on the cause of the problem : %s"
|
||||
msgstr "Le fichier XML généré n'est pas valide par rapport à la Définition du Schéma XML officiel. Le fichier XML généré et le message d'erreur complet ont été écrits dans les logs du serveur. Voici l'erreur, qui vous donnera peut-être une idée sur la cause du problème : %s"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: view:sdd.mandate:0
|
||||
#: selection:sdd.mandate,type:0
|
||||
@@ -563,25 +584,13 @@ msgstr "Mandat validé"
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:banking.export.sdd,file:0
|
||||
msgid "SEPA File"
|
||||
msgstr "SEPA File"
|
||||
msgstr "Fichier SEPA"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:res.company,sepa_creditor_identifier:0
|
||||
msgid "SEPA Creditor Identifier"
|
||||
msgstr "Identifiant créancier SEPA"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:122
|
||||
#, python-format
|
||||
msgid "Cannot compute the '%s'."
|
||||
msgstr "Impossible de calculer le '%s'."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/wizard/export_sdd.py:126
|
||||
#, python-format
|
||||
msgid "The type of the field '%s' is %s. It should be a string or unicode."
|
||||
msgstr "Le champ '%s' est de type %s. Il devrait être de type string ou unicode."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.model,name:account_banking_sepa_direct_debit.model_banking_export_sdd
|
||||
msgid "SEPA Direct Debit export"
|
||||
@@ -598,6 +607,12 @@ msgstr "Expiré"
|
||||
msgid "Bank Account"
|
||||
msgstr "Compte bancaire"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:254
|
||||
#, python-format
|
||||
msgid "You must set the 'Original Mandate Identification' on the recurrent mandate '%s' which is not marked as 'Migrated to SEPA'."
|
||||
msgstr "Vous devez renseigner le champ 'Ancien identifiant du mandat' sur le mandat récurrent '%s' qui n'est pas marqué comme étant 'Migré à SEPA'."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:mail.message.subtype,description:account_banking_sepa_direct_debit.recurrent_sequence_type_first
|
||||
#: model:mail.message.subtype,name:account_banking_sepa_direct_debit.recurrent_sequence_type_first
|
||||
@@ -605,22 +620,7 @@ msgid "Sequence Type set to First"
|
||||
msgstr "Type de Séquence mis à First"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: model:ir.actions.act_window,help:account_banking_sepa_direct_debit.sdd_mandate_action
|
||||
msgid "<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Click to create a new SEPA Direct Debit Mandate.\n"
|
||||
" </p><p>\n"
|
||||
" A SEPA Direct Debit Mandate is a document signed by your customer that gives you the autorization to do one or several direct debits on his bank account.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
msgstr "<p class=\"oe_view_nocontent_create\">\n"
|
||||
" Cliquez pour créer un mandat de prélèvement SEPA.\n"
|
||||
" </p><p>\n"
|
||||
" Un mandat de prélèvement SEPA est un document signé par votre client qui vous donne l'autorisation de réaliser un ou plusieurs prélèvements sur son compte bancaire.\n"
|
||||
" </p>\n"
|
||||
" "
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:233
|
||||
#: code:addons/account_banking_sepa_direct_debit/account_banking_sdd.py:291
|
||||
#, python-format
|
||||
msgid "As you changed the bank account attached to this mandate, the 'Sequence Type' has been set back to 'First'."
|
||||
msgstr "Etant donné que vous avez changé le compte bancaire associé à ce mandat, le 'Type de séquence' a été remis à 'First'."
|
||||
@@ -635,16 +635,6 @@ msgstr "Messages and communication history"
|
||||
msgid "Search SEPA Direct Debit Mandates"
|
||||
msgstr "Recherche dans les mandats de prélèvement SEPA"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: help:banking.export.sdd.wizard,requested_collec_date:0
|
||||
msgid "This is the date on which you would like the collection to be made by the bank. Please keep in mind that there are minimum delays for SEPA direct debits that depend on the type of mandate and the type of sequence."
|
||||
msgstr "Entrez la date à laquelle vous voudriez que le prélèvement soit effectué par la banque. Gardez en mémoire qu'il y a un délai minimum pour les prélèvements SEPA qui dépend du type de mandat et du type de séquence."
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:sdd.mandate,unique_mandate_reference:0
|
||||
msgid "Unique Mandate Reference"
|
||||
msgstr "Référence unique de mandat"
|
||||
|
||||
#. module: account_banking_sepa_direct_debit
|
||||
#: field:banking.export.sdd.wizard,file:0
|
||||
msgid "File"
|
||||
|
||||
@@ -23,12 +23,9 @@
|
||||
|
||||
from openerp.osv import orm, fields
|
||||
from openerp.tools.translate import _
|
||||
from openerp import tools, netsvc
|
||||
from openerp import netsvc
|
||||
from datetime import datetime
|
||||
from lxml import etree
|
||||
import logging
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class banking_export_sdd_wizard(orm.TransientModel):
|
||||
@@ -42,14 +39,24 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
], 'State', readonly=True),
|
||||
'batch_booking': fields.boolean(
|
||||
'Batch Booking',
|
||||
help="If true, the bank statement will display only one credit line for all the direct debits of the SEPA file ; if false, the bank statement will display one credit line per direct debit of the SEPA file."),
|
||||
help="If true, the bank statement will display only one credit "
|
||||
"line for all the direct debits of the SEPA file ; if false, "
|
||||
"the bank statement will display one credit line per direct "
|
||||
"debit of the SEPA file."),
|
||||
'charge_bearer': fields.selection([
|
||||
('SLEV', 'Following Service Level'),
|
||||
('SHAR', 'Shared'),
|
||||
('CRED', 'Borne by Creditor'),
|
||||
('DEBT', 'Borne by Debtor'),
|
||||
], 'Charge Bearer', required=True,
|
||||
help='Following service level : transaction charges are to be applied following the rules agreed in the service level and/or scheme (SEPA Core messages must use this). Shared : transaction charges on the creditor side are to be borne by the creditor, transaction charges on the debtor side are to be borne by the debtor. Borne by creditor : all transaction charges are to be borne by the creditor. Borne by debtor : all transaction charges are to be borne by the debtor.'),
|
||||
help="Following service level : transaction charges are to be "
|
||||
"applied following the rules agreed in the service level and/or "
|
||||
"scheme (SEPA Core messages must use this). Shared : transaction "
|
||||
"charges on the creditor side are to be borne by the creditor, "
|
||||
"transaction charges on the debtor side are to be borne by the "
|
||||
"debtor. Borne by creditor : all transaction charges are to be "
|
||||
"borne by the creditor. Borne by debtor : all transaction "
|
||||
"charges are to be borne by the debtor."),
|
||||
'nb_transactions': fields.related(
|
||||
'file_id', 'nb_transactions', type='integer',
|
||||
string='Number of Transactions', readonly=True),
|
||||
@@ -129,13 +136,22 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
name_maxsize = 140
|
||||
root_xml_tag = 'CstmrDrctDbtInitn'
|
||||
else:
|
||||
raise orm.except_orm(_('Error:'), _("Payment Type Code '%s' is not supported. The only Payment Type Code supported for SEPA Direct Debit are 'pain.008.001.02', 'pain.008.001.03' and 'pain.008.001.04'.") % pain_flavor)
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("Payment Type Code '%s' is not supported. The only "
|
||||
"Payment Type Code supported for SEPA Direct Debit "
|
||||
"are 'pain.008.001.02', 'pain.008.001.03' and "
|
||||
"'pain.008.001.04'.") % pain_flavor)
|
||||
|
||||
gen_args = {
|
||||
'bic_xml_tag': bic_xml_tag,
|
||||
'name_maxsize': name_maxsize,
|
||||
'convert_to_ascii': convert_to_ascii,
|
||||
'pain_flavor': pain_flavor,
|
||||
'sepa_export': sepa_export,
|
||||
'file_obj': self.pool['banking.export.sdd'],
|
||||
'pain_xsd_file':
|
||||
'account_banking_sepa_direct_debit/data/%s.xsd' % pain_flavor,
|
||||
}
|
||||
|
||||
pain_ns = {
|
||||
@@ -143,13 +159,13 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
None: 'urn:iso:std:iso:20022:tech:xsd:%s' % pain_flavor,
|
||||
}
|
||||
|
||||
root = etree.Element('Document', nsmap=pain_ns)
|
||||
pain_root = etree.SubElement(root, root_xml_tag)
|
||||
xml_root = etree.Element('Document', nsmap=pain_ns)
|
||||
pain_root = etree.SubElement(xml_root, root_xml_tag)
|
||||
|
||||
# A. Group header
|
||||
group_header_1_0, nb_of_transactions_1_6, control_sum_1_7 = \
|
||||
self.generate_group_header_block(
|
||||
cr, uid, pain_root, sepa_export, gen_args, context=context)
|
||||
self.generate_group_header_block(
|
||||
cr, uid, pain_root, gen_args, context=context)
|
||||
|
||||
transactions_count_1_6 = 0
|
||||
total_amount = 0.0
|
||||
@@ -174,13 +190,15 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
if not line.sdd_mandate_id:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("Missing SEPA Direct Debit mandate on the payment line with partner '%s' and Invoice ref '%s'.")
|
||||
_("Missing SEPA Direct Debit mandate on the payment "
|
||||
"line with partner '%s' and Invoice ref '%s'.")
|
||||
% (line.partner_id.name,
|
||||
line.ml_inv_ref.number))
|
||||
if line.sdd_mandate_id.state != 'valid':
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("The SEPA Direct Debit mandate with reference '%s' for partner '%s' has expired.")
|
||||
_("The SEPA Direct Debit mandate with reference '%s' "
|
||||
"for partner '%s' has expired.")
|
||||
% (line.sdd_mandate_id.unique_mandate_reference,
|
||||
line.sdd_mandate_id.partner_id.name))
|
||||
if line.sdd_mandate_id.type == 'oneoff':
|
||||
@@ -189,7 +207,10 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
else:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("The mandate with reference '%s' for partner '%s' has type set to 'One-Off' and it has a last debit date set to '%s', so we can't use it.")
|
||||
_("The mandate with reference '%s' for partner "
|
||||
"'%s' has type set to 'One-Off' and it has a "
|
||||
"last debit date set to '%s', so we can't use "
|
||||
"it.")
|
||||
% (line.sdd_mandate_id.unique_mandate_reference,
|
||||
line.sdd_mandate_id.partner_id.name,
|
||||
line.sdd_mandate_id.last_debit_date))
|
||||
@@ -199,7 +220,8 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
'first': 'FRST',
|
||||
'final': 'FNAL',
|
||||
}
|
||||
seq_type_label = line.sdd_mandate_id.recurrent_sequence_type
|
||||
seq_type_label = \
|
||||
line.sdd_mandate_id.recurrent_sequence_type
|
||||
assert seq_type_label is not False
|
||||
seq_type = seq_type_map[seq_type_label]
|
||||
|
||||
@@ -214,22 +236,26 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
cr, uid, line.id,
|
||||
{'date': requested_date}, context=context)
|
||||
|
||||
for (requested_date, priority, sequence_type), lines in lines_per_group.items():
|
||||
for (requested_date, priority, sequence_type), lines in \
|
||||
lines_per_group.items():
|
||||
# B. Payment info
|
||||
payment_info_2_0, nb_of_transactions_2_4, control_sum_2_5 = \
|
||||
self.generate_start_payment_info_block(
|
||||
cr, uid, pain_root, sepa_export,
|
||||
"sepa_export.payment_order_ids[0].reference + '-' + sequence_type + '-' + requested_date.replace('-', '') + '-' + priority",
|
||||
priority, 'CORE', sequence_type, requested_date, {
|
||||
'sepa_export': sepa_export,
|
||||
'sequence_type': sequence_type,
|
||||
'priority': priority,
|
||||
'requested_date': requested_date,
|
||||
}, gen_args, context=context)
|
||||
self.generate_start_payment_info_block(
|
||||
cr, uid, pain_root,
|
||||
"sepa_export.payment_order_ids[0].reference + '-' + "
|
||||
"sequence_type + '-' + requested_date.replace('-', '') "
|
||||
"+ '-' + priority",
|
||||
priority, 'CORE', sequence_type, requested_date, {
|
||||
'sepa_export': sepa_export,
|
||||
'sequence_type': sequence_type,
|
||||
'priority': priority,
|
||||
'requested_date': requested_date,
|
||||
}, gen_args, context=context)
|
||||
|
||||
self.generate_party_block(
|
||||
cr, uid, payment_info_2_0, 'Cdtr', 'B',
|
||||
'sepa_export.payment_order_ids[0].mode.bank_id.partner_id.name',
|
||||
'sepa_export.payment_order_ids[0].mode.bank_id.partner_id.'
|
||||
'name',
|
||||
'sepa_export.payment_order_ids[0].mode.bank_id.acc_number',
|
||||
'sepa_export.payment_order_ids[0].mode.bank_id.bank.bic',
|
||||
{'sepa_export': sepa_export},
|
||||
@@ -242,7 +268,8 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
payment_info_2_0, 'CdtrSchmeId')
|
||||
self.generate_creditor_scheme_identification(
|
||||
cr, uid, creditor_scheme_identification_2_27,
|
||||
'sepa_export.payment_order_ids[0].company_id.sepa_creditor_identifier',
|
||||
'sepa_export.payment_order_ids[0].company_id.'
|
||||
'sepa_creditor_identifier',
|
||||
'SEPA Creditor Identifier', {'sepa_export': sepa_export},
|
||||
'SEPA', gen_args, context=context)
|
||||
|
||||
@@ -340,7 +367,8 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
ori_mandate_identification_2_52.text = \
|
||||
self._prepare_field(
|
||||
cr, uid, 'Original Mandate Identification',
|
||||
'line.sdd_mandate_id.original_mandate_identification',
|
||||
'line.sdd_mandate_id.'
|
||||
'original_mandate_identification',
|
||||
{'line': line},
|
||||
gen_args=gen_args,
|
||||
context=context)
|
||||
@@ -348,7 +376,8 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
amendment_info_details_2_51, 'OrgnlCdtrSchmeId')
|
||||
self.generate_creditor_scheme_identification(
|
||||
cr, uid, ori_creditor_scheme_id_2_53,
|
||||
'sepa_export.payment_order_ids[0].company_id.original_creditor_identifier',
|
||||
'sepa_export.payment_order_ids[0].company_id.'
|
||||
'original_creditor_identifier',
|
||||
'Original Creditor Identifier',
|
||||
{'sepa_export': sepa_export},
|
||||
'SEPA', gen_args, context=context)
|
||||
@@ -369,38 +398,9 @@ class banking_export_sdd_wizard(orm.TransientModel):
|
||||
nb_of_transactions_1_6.text = str(transactions_count_1_6)
|
||||
control_sum_1_7.text = '%.2f' % amount_control_sum_1_7
|
||||
|
||||
xml_string = etree.tostring(
|
||||
root, pretty_print=True, encoding='UTF-8', xml_declaration=True)
|
||||
_logger.debug(
|
||||
"Generated SDD XML file in format %s below" % pain_flavor)
|
||||
_logger.debug(xml_string)
|
||||
pain_xsd_file = \
|
||||
'account_banking_sepa_direct_debit/data/%s.xsd' % pain_flavor
|
||||
self._validate_xml(cr, uid, xml_string, pain_xsd_file)
|
||||
|
||||
# CREATE the banking.export.sepa record
|
||||
file_id = self.pool.get('banking.export.sdd').create(
|
||||
cr, uid, self._prepare_export_sepa(
|
||||
cr, uid, sepa_export, total_amount, transactions_count_1_6,
|
||||
xml_string, gen_args, context=context),
|
||||
context=context)
|
||||
|
||||
self.write(
|
||||
cr, uid, ids, {
|
||||
'file_id': file_id,
|
||||
'state': 'finish',
|
||||
}, context=context)
|
||||
|
||||
action = {
|
||||
'name': 'SEPA Direct Debit File',
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form,tree',
|
||||
'res_model': self._name,
|
||||
'res_id': ids[0],
|
||||
'target': 'new',
|
||||
}
|
||||
return action
|
||||
return self.finalize_sepa_file_creation(
|
||||
cr, uid, ids, xml_root, total_amount, transactions_count_1_6,
|
||||
gen_args, context=context)
|
||||
|
||||
def cancel_sepa(self, cr, uid, ids, context=None):
|
||||
'''
|
||||
|
||||
Reference in New Issue
Block a user