Merge lp:~akretion-team/openobject-addons/trunk-fr-display-rib-and-iban into lp:openobject-addons

Proposed by Alexis de Lattre
Status: Merged
Merged at revision: 6459
Proposed branch: lp:~akretion-team/openobject-addons/trunk-fr-display-rib-and-iban
Merge into: lp:openobject-addons
Diff against target: 557 lines (+196/-115)
7 files modified
base_iban/base_iban.py (+24/-15)
l10n_fr_rib/__openerp__.py (+1/-1)
l10n_fr_rib/bank.py (+18/-23)
l10n_fr_rib/bank_data.xml (+16/-5)
l10n_fr_rib/bank_view.xml (+50/-23)
l10n_fr_rib/i18n/fr.po (+45/-33)
l10n_fr_rib/i18n/l10n_fr_rib.pot (+42/-15)
To merge this branch: bzr merge lp:~akretion-team/openobject-addons/trunk-fr-display-rib-and-iban
Reviewer Review Type Date Requested Status
Raphael Collet (OpenERP) (community) Approve
Review via email: mp+90449@code.launchpad.net

Description of the change

The initiative of this merge proposal started on the forum :
http://www.openerp.com/forum/post99662.html#p99662 (in French, sorry)

We need to be able to define both the RIB (old French format) and the IBAN on the same res.partner.bank. Why ? For example, on the customer invoice report, we need to display both the RIB info (for "old school" French customers) and the IBAN/BIC info (for modern French customer and out-of-France customers) with the same "Bank account".

As I went through the code to develop what was needed, I made a number of fixes/enhancements :

- Fix inheritance of the view 'view_partner_rib1_form' : it must inherit account.view_partner_property_form and not base.view_partner_form !

- Add RIB fields to standard tree and form of res.partner.bank (not just the res.partner form view)

- Add max size on RIB fields.

- Constraint now declares all the fields that must trigger the check.

To post a comment you must log in.
Revision history for this message
Numérigraphe (numerigraphe) wrote :

Wouldn't it be possible to have just one RIB type, and make the IBAN fields read-write but not mandatory ?
Lionel Sausin.

Revision history for this message
Alexis de Lattre (alexis-via) wrote :

I just updated my code to have a single RIB type, as suggestion by Numérigraphe.

I also modified the code of the base_iban module to have IBAN validation in a dedicated function, that can be easily called by the localisation modules and in particular l10n_fr_rib. This change is fully backward compatible.

Revision history for this message
Raphael Collet (OpenERP) (rco-openerp) wrote :

Overall it looks fine.

Just a few things to fix before merging:
 - line 37 of diff below: please resolve the conflict (merge the trunk into your branch)
 - line 73: use '!=' instead of '<>' (the latter is obsolescent)
 - line 139: please use a better error message than 'Error message in raise'

Thanks,
Raphael

review: Needs Fixing
Revision history for this message
Alexis de Lattre (alexis-via) wrote :

@Raphael Collet
I took into account all your remarks and updated the branch.

Revision history for this message
Raphael Collet (OpenERP) (rco-openerp) wrote :

Looks good, now. Thanks!
Raphael

review: Approve
Revision history for this message
Alexis de Lattre (alexis-via) wrote :

@Raphael Collet
Thank you very much for your review and the merge. With these community merges, OpenERP is really heading in the right direction !

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'base_iban/base_iban.py'
--- base_iban/base_iban.py 2012-01-30 11:15:21 +0000
+++ base_iban/base_iban.py 2012-01-31 13:43:27 +0000
@@ -94,27 +94,36 @@
94 vals['acc_number'] = _pretty_iban(vals['acc_number'])94 vals['acc_number'] = _pretty_iban(vals['acc_number'])
95 return super(res_partner_bank, self).write(cr, uid, ids, vals, context)95 return super(res_partner_bank, self).write(cr, uid, ids, vals, context)
9696
97 def is_iban_valid(self, cr, uid, iban, context=None):
98 """Check if IBAN is valid or not
99 @param iban: IBAN as string
100 @return: True if IBAN is valid, False if IBAN is not valid
101 """
102 iban = _format_iban(iban).lower()
103 if iban[:2] in _ref_iban and len(iban) != len(_format_iban(_ref_iban[iban[:2]])):
104 return False
105 #the four first digits have to be shifted to the end
106 iban = iban[4:] + iban[:4]
107 #letters have to be transformed into numbers (a = 10, b = 11, ...)
108 iban2 = ""
109 for char in iban:
110 if char.isalpha():
111 iban2 += str(ord(char)-87)
112 else:
113 iban2 += char
114 #iban is correct if modulo 97 == 1
115 if not int(iban2) % 97 == 1:
116 return False
117 return True
118
97 def check_iban(self, cr, uid, ids, context=None):119 def check_iban(self, cr, uid, ids, context=None):
98 '''120 '''
99 Check the IBAN number121 Check the IBAN number
100 '''122 '''
101 for bank_acc in self.browse(cr, uid, ids, context=context):123 for bank_acc in self.browse(cr, uid, ids, context=context):
102 if bank_acc.state<>'iban':124 if bank_acc.state != 'iban':
103 continue125 continue
104 iban = _format_iban(bank_acc.acc_number).lower()126 if not self.is_iban_valid(cr, uid, bank_acc.acc_number, context=context):
105 if iban[:2] in _ref_iban and len(iban) != len(_format_iban(_ref_iban[iban[:2]])):
106 return False
107 #the four first digits have to be shifted to the end
108 iban = iban[4:] + iban[:4]
109 #letters have to be transformed into numbers (a = 10, b = 11, ...)
110 iban2 = ""
111 for char in iban:
112 if char.isalpha():
113 iban2 += str(ord(char)-87)
114 else:
115 iban2 += char
116 #iban is correct if modulo 97 == 1
117 if not int(iban2) % 97 == 1:
118 return False127 return False
119 return True128 return True
120129
121130
=== modified file 'l10n_fr_rib/__openerp__.py'
--- l10n_fr_rib/__openerp__.py 2012-01-30 10:18:37 +0000
+++ l10n_fr_rib/__openerp__.py 2012-01-31 13:43:27 +0000
@@ -38,7 +38,7 @@
38The RIB and IBAN codes for a single account can be entered by recording two Bank Accounts in OpenERP: the first with the type "RIB", the second with the type "IBAN". 38The RIB and IBAN codes for a single account can be entered by recording two Bank Accounts in OpenERP: the first with the type "RIB", the second with the type "IBAN".
39''',39''',
40 'author' : u'Numérigraphe SARL',40 'author' : u'Numérigraphe SARL',
41 'depends': ['base', 'account'],41 'depends': ['account', 'base_iban'],
42 'init_xml': ['bank_data.xml', ],42 'init_xml': ['bank_data.xml', ],
43 'update_xml': ['bank_view.xml', ],43 'update_xml': ['bank_view.xml', ],
44 'installable': True,44 'installable': True,
4545
=== modified file 'l10n_fr_rib/bank.py'
--- l10n_fr_rib/bank.py 2011-12-01 14:57:54 +0000
+++ l10n_fr_rib/bank.py 2012-01-31 13:43:27 +0000
@@ -31,18 +31,18 @@
31 """Check the RIB key"""31 """Check the RIB key"""
32 for bank_acc in self.browse(cr, uid, ids):32 for bank_acc in self.browse(cr, uid, ids):
33 # Ignore the accounts of type other than rib33 # Ignore the accounts of type other than rib
34 if bank_acc.state !='rib':34 if bank_acc.state != 'rib':
35 continue35 continue
36 # Fail if the needed values are empty of too short 36 # Fail if the needed values are empty of too short
37 if (not bank_acc.bank_code37 if (not bank_acc.bank_code
38 or len(bank_acc.bank_code) != 538 or len(bank_acc.bank_code) != 5
39 or not bank_acc.office or len(bank_acc.office) != 539 or not bank_acc.office or len(bank_acc.office) != 5
40 or not bank_acc.acc_number or len(bank_acc.acc_number) != 1140 or not bank_acc.rib_acc_number or len(bank_acc.rib_acc_number) != 11
41 or not bank_acc.key or len(bank_acc.key) != 2):41 or not bank_acc.key or len(bank_acc.key) != 2):
42 return False42 return False
43 # Get the rib data (without the key)43 # Get the rib data (without the key)
44 rib = "%s%s%s" % (bank_acc.bank_code, bank_acc.office,44 rib = "%s%s%s" % (bank_acc.bank_code, bank_acc.office,
45 bank_acc.acc_number)45 bank_acc.rib_acc_number)
46 # Translate letters into numbers according to a specific table46 # Translate letters into numbers according to a specific table
47 # (notice how s -> 2)47 # (notice how s -> 2)
48 table = dict((ord(a), b) for a, b in zip(48 table = dict((ord(a), b) for a, b in zip(
@@ -51,7 +51,15 @@
51 # compute the key 51 # compute the key
52 key = 97 - (100 * int(rib)) % 9752 key = 97 - (100 * int(rib)) % 97
53 if int(bank_acc.key) != key:53 if int(bank_acc.key) != key:
54 return False54 raise osv.except_osv(_('Error'),
55 _("The RIB key %s does not correspond to the other "
56 "codes: %s %s %s.") %
57 (bank_acc.key, bank_acc.bank_code,
58 bank_acc.office, bank_acc.rib_acc_number) )
59 if bank_acc.acc_number:
60 if not self.is_iban_valid(cr, uid, bank_acc.acc_number):
61 raise osv.except_osv(_('Error'),
62 _("The IBAN %s is not valid.") % bank_acc.acc_number)
55 return True63 return True
5664
57 def onchange_bank_id(self, cr, uid, ids, bank_id, context=None):65 def onchange_bank_id(self, cr, uid, ids, bank_id, context=None):
@@ -66,31 +74,18 @@
66 return result74 return result
6775
68 _columns = {76 _columns = {
77 'acc_number': fields.char('Account Number', size=64, required=False),
78 'rib_acc_number': fields.char('RIB account number', size=11, readonly=True,),
69 'bank_code': fields.char('Bank Code', size=64, readonly=True,),79 'bank_code': fields.char('Bank Code', size=64, readonly=True,),
70 'office': fields.char('Office Code', size=5, readonly=True,),80 'office': fields.char('Office Code', size=5, readonly=True,),
71 'key': fields.char('Key', size=2, readonly=True,81 'key': fields.char('Key', size=2, readonly=True,
72 help="The key is a number allowing to check the "82 help="The key is a number allowing to check the "
73 "correctness of the other codes."),83 "correctness of the other codes."),
74 }84 }
75 85
76 def _construct_constraint_msg(self, cr, uid, ids, context=None):86 _constraints = [(_check_key, 'The RIB and/or IBAN is not valid',
77 """Quote the data in the warning message"""87 ['rib_acc_number', 'bank_code', 'office', 'key'])]
78 # Only process the first id88
79 if type(ids) not in (int, long):
80 id = ids[0]
81 rib = self.browse(cr, uid, id, context=context)
82 if rib:
83 return (_("\nThe RIB key %s does not correspond to the other "
84 "codes: %s %s %s.") %
85 (rib.key,
86 rib.bank_code,
87 rib.office,
88 rib.acc_number) )
89
90 _constraints = [(_check_key,
91 _construct_constraint_msg,
92 ["key"])]
93
94res_partner_bank()89res_partner_bank()
9590
96class res_bank(osv.osv):91class res_bank(osv.osv):
9792
=== modified file 'l10n_fr_rib/bank_data.xml'
--- l10n_fr_rib/bank_data.xml 2011-11-21 13:45:45 +0000
+++ l10n_fr_rib/bank_data.xml 2012-01-31 13:43:27 +0000
@@ -6,24 +6,27 @@
6 RIB bank details6 RIB bank details
7 -->7 -->
8 <record id="bank_rib" model="res.partner.bank.type">8 <record id="bank_rib" model="res.partner.bank.type">
9 <field name="name">RIB Bank Details</field>9 <field name="name">RIB and optional IBAN</field>
10 <field name="code">rib</field>10 <field name="code">rib</field>
11 <field name="format_layout">%(bank_name)s: %(bank_code)s %(office)s %(rib_acc_number)s %(key)s</field>
11 </record>12 </record>
12 13
13 <record id="rib_bank_code_field" model="res.partner.bank.type.field">14 <record id="rib_bank_code_field" model="res.partner.bank.type.field">
14 <field name="name">bank_code</field>15 <field name="name">bank_code</field>
15 <field name="bank_type_id" ref="bank_rib"/>16 <field name="bank_type_id" ref="bank_rib"/>
16 <field eval="True" name="required"/>17 <field eval="True" name="required"/>
17 <field eval="False" name="readonly"/>18 <field eval="False" name="readonly"/>
19 <field name="size">5</field>
18 </record>20 </record>
19 <record id="rib_office_field" model="res.partner.bank.type.field">21 <record id="rib_office_field" model="res.partner.bank.type.field">
20 <field name="name">office</field>22 <field name="name">office</field>
21 <field name="bank_type_id" ref="bank_rib"/>23 <field name="bank_type_id" ref="bank_rib"/>
22 <field eval="True" name="required"/>24 <field eval="True" name="required"/>
23 <field eval="False" name="readonly"/>25 <field eval="False" name="readonly"/>
26 <field name="size">5</field>
24 </record>27 </record>
25 <record id="bank_acc_number_field" model="res.partner.bank.type.field">28 <record id="rib_rib_acc_number_field" model="res.partner.bank.type.field">
26 <field name="name">acc_number</field>29 <field name="name">rib_acc_number</field>
27 <field name="bank_type_id" ref="bank_rib"/>30 <field name="bank_type_id" ref="bank_rib"/>
28 <field eval="True" name="required"/>31 <field eval="True" name="required"/>
29 <field eval="False" name="readonly"/>32 <field eval="False" name="readonly"/>
@@ -34,11 +37,19 @@
34 <field name="bank_type_id" ref="bank_rib"/>37 <field name="bank_type_id" ref="bank_rib"/>
35 <field eval="True" name="required"/>38 <field eval="True" name="required"/>
36 <field eval="False" name="readonly"/>39 <field eval="False" name="readonly"/>
40 <field name="size">2</field>
41 </record>
42 <record id="rib_acc_number_field" model="res.partner.bank.type.field">
43 <field name="name">acc_number</field>
44 <field name="bank_type_id" ref="bank_rib"/>
45 <field eval="False" name="required"/>
46 <field eval="False" name="readonly"/>
37 </record>47 </record>
38 <record id="rib_bic_field" model="res.partner.bank.type.field">48 <record id="rib_bic_field" model="res.partner.bank.type.field">
39 <field name="name">bank_bic</field>49 <field name="name">bank_bic</field>
40 <field name="bank_type_id" ref="bank_rib"/>50 <field name="bank_type_id" ref="bank_rib"/>
41 <field name="required" eval="0"/>51 <field name="required" eval="False"/>
42 </record>52 </record>
53
43 </data>54 </data>
44</openerp>55</openerp>
4556
=== modified file 'l10n_fr_rib/bank_view.xml'
--- l10n_fr_rib/bank_view.xml 2011-11-21 13:45:45 +0000
+++ l10n_fr_rib/bank_view.xml 2012-01-31 13:43:27 +0000
@@ -5,29 +5,56 @@
5 <record id="view_partner_rib1_form" model="ir.ui.view">5 <record id="view_partner_rib1_form" model="ir.ui.view">
6 <field name="name">res.partner.form.rib1.inherit</field>6 <field name="name">res.partner.form.rib1.inherit</field>
7 <field name="model">res.partner</field>7 <field name="model">res.partner</field>
8 <field name="inherit_id" ref="base.view_partner_form" />8 <field name="inherit_id" ref="account.view_partner_property_form" />
9 <field name="type">form</field>9 <field name="type">form</field>
10 <field name="arch" type="xml">10 <field name="arch" type="xml">
11 <field name="acc_number" position="before">11 <data>
12 <newline />12 <xpath expr="/form/notebook/page[@string='Accounting']/field[@name='bank_ids']/form/field[@name='acc_number']" position="before">
13 <field name="bank_code" />13 <newline />
14 <field name="office" />14 <field name="bank_code" />
15 <newline />15 <field name="office" />
16 </field>16 <field name="rib_acc_number" />
17 </field>17 <field name="key" />
18 </record>18 <newline />
19 <record id="view_partner_rib2_form" model="ir.ui.view">19 </xpath>
20 <field name="name">res.partner.form.rib2.inherit</field>20 <xpath expr="/form/notebook/page[@string='Accounting']/field[@name='bank_ids']/tree/field[@name='acc_number']" position="after">
21 <field name="model">res.partner</field>21 <field name="rib_acc_number" />
22 <field name="inherit_id" ref="base.view_partner_form" />22 </xpath>
23 <field name="type">form</field>23 </data>
24 <field name="arch" type="xml">24 </field>
25 <field name="acc_number" position="after">25 </record>
26 <field name="key" />26
27 </field>27 <!-- add RIB fields to the form view of res.partner.bank -->
28 </field>28 <record id="view_partner_bank_rib_form" model="ir.ui.view">
29 </record>29 <field name="name">res.partner.bank.form.rib.inherit</field>
30 30 <field name="model">res.partner.bank</field>
31 <field name="inherit_id" ref="base.view_partner_bank_form" />
32 <field name="type">form</field>
33 <field name="arch" type="xml">
34 <field name="acc_number" position="before">
35 <field name="bank_code" />
36 <field name="office" />
37 <newline />
38 <field name="rib_acc_number" />
39 <field name="key" />
40 <newline />
41 </field>
42 </field>
43 </record>
44
45 <!-- add rib_acc_number to the tree view of res.partner.bank -->
46 <record id="view_partner_bank_rib_tree" model="ir.ui.view">
47 <field name="name">res.partner.bank.tree.rib.inherit</field>
48 <field name="model">res.partner.bank</field>
49 <field name="inherit_id" ref="base.view_partner_bank_tree" />
50 <field name="type">tree</field>
51 <field name="arch" type="xml">
52 <field name="acc_number" position="after">
53 <field name="rib_acc_number" />
54 </field>
55 </field>
56 </record>
57
31 <!-- add the bank code-->58 <!-- add the bank code-->
32 <record id="view_res_bank_form" model="ir.ui.view">59 <record id="view_res_bank_form" model="ir.ui.view">
33 <field name="name">res.bank.form.rib.inherit</field>60 <field name="name">res.bank.form.rib.inherit</field>
3461
=== modified file 'l10n_fr_rib/i18n/fr.po'
--- l10n_fr_rib/i18n/fr.po 2011-11-21 13:45:45 +0000
+++ l10n_fr_rib/i18n/fr.po 2012-01-31 13:43:27 +0000
@@ -4,10 +4,10 @@
4#4#
5msgid ""5msgid ""
6msgstr ""6msgstr ""
7"Project-Id-Version: OpenERP Server 6.1beta\n"7"Project-Id-Version: OpenERP Server 6.1rc1\n"
8"Report-Msgid-Bugs-To: \n"8"Report-Msgid-Bugs-To: \n"
9"POT-Creation-Date: 2011-11-21 12:37+0000\n"9"POT-Creation-Date: 2012-01-27 18:47+0000\n"
10"PO-Revision-Date: 2011-11-21 12:37+0000\n"10"PO-Revision-Date: 2012-01-27 18:47+0000\n"
11"Last-Translator: <>\n"11"Last-Translator: <>\n"
12"Language-Team: \n"12"Language-Team: \n"
13"MIME-Version: 1.0\n"13"MIME-Version: 1.0\n"
@@ -23,9 +23,14 @@
23"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"23"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"
2424
25#. module: l10n_fr_rib25#. module: l10n_fr_rib
26#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank26#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib
27msgid "Bank Accounts"27msgid "RIB and optional IBAN"
28msgstr "Comptes bancaires"28msgstr "RIB et IBAN optionnel"
29
30#. module: l10n_fr_rib
31#: field:res.partner.bank,rib_acc_number:0
32msgid "RIB account number"
33msgstr "Numéro de compte RIB"
2934
30#. module: l10n_fr_rib35#. module: l10n_fr_rib
31#: field:res.partner.bank,bank_code:036#: field:res.partner.bank,bank_code:0
@@ -33,9 +38,10 @@
33msgstr "Code banque"38msgstr "Code banque"
3439
35#. module: l10n_fr_rib40#. module: l10n_fr_rib
36#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field41#: code:addons/l10n_fr_rib/bank.py:55
37msgid "bank_bic"42#, python-format
38msgstr "bank_bic"43msgid "The RIB key %s does not correspond to the other codes: %s %s %s."
44msgstr "La clé RIB %s ne correspond pas aux autres codes : %s %s %s."
3945
40#. module: l10n_fr_rib46#. module: l10n_fr_rib
41#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field47#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field
@@ -48,13 +54,15 @@
48msgstr "Code banque RIB"54msgstr "Code banque RIB"
4955
50#. module: l10n_fr_rib56#. module: l10n_fr_rib
51#: model:ir.module.module,description:l10n_fr_rib.module_meta_information57#: code:addons/l10n_fr_rib/bank.py:62
52msgid "\n"58#, python-format
53"This module installs the base for RIB bank accounts (French standard for bank accounts). \n"59msgid "The IBAN %s is not valid."
54"To make it easier to enter RIB data, it will also allow to search for banks by code."60msgstr "L'IBAN %s n'est pas valide."
55msgstr "\n"61
56"Ce module installe la base pour les comptes bancaires RIB (norme française pour les n° de compte). \n"62#. module: l10n_fr_rib
57"Pour faciliter la saisie des RIBs, il permet aussi de chercher les banques par code."63#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank
64msgid "Bank Accounts"
65msgstr "Comptes bancaires"
5866
59#. module: l10n_fr_rib67#. module: l10n_fr_rib
60#: field:res.partner.bank,office:068#: field:res.partner.bank,office:0
@@ -62,9 +70,9 @@
62msgstr "Code agence"70msgstr "Code agence"
6371
64#. module: l10n_fr_rib72#. module: l10n_fr_rib
65#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib73#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_rib_acc_number_field
66msgid "RIB Bank Details"74msgid "rib_acc_number"
67msgstr "Relevé d'identité bancaire (RIB)"75msgstr "rib_acc_number"
6876
69#. module: l10n_fr_rib77#. module: l10n_fr_rib
70#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field78#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field
@@ -72,34 +80,38 @@
72msgstr "bank_code"80msgstr "bank_code"
7381
74#. module: l10n_fr_rib82#. module: l10n_fr_rib
75#: code:addons/l10n_fr_rib/bank.py:109
76#, python-format
77msgid "\n"
78"The RIB key %s does not correspond to the other codes: %s %s %s."
79msgstr "\n"
80"La clé RIB %s ne correspond pas aux autres codes : %s %s %s."
81
82#. module: l10n_fr_rib
83#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field83#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field
84msgid "key"84msgid "key"
85msgstr "key"85msgstr "key"
8686
87#. module: l10n_fr_rib87#. module: l10n_fr_rib
88#: model:ir.module.module,shortdesc:l10n_fr_rib.module_meta_information
89msgid "French RIB Bank Details"
90msgstr "Relevés d'identité bancaire français (RIB)"
91
92#. module: l10n_fr_rib
93#: help:res.partner.bank,key:088#: help:res.partner.bank,key:0
94msgid "The key is a number allowing to check the correctness of the other codes."89msgid "The key is a number allowing to check the correctness of the other codes."
95msgstr "La clé est un nombre permettant de vérifier que les autres codes sont corrects."90msgstr "La clé est un nombre permettant de vérifier que les autres codes sont corrects."
9691
97#. module: l10n_fr_rib92#. module: l10n_fr_rib
93#: constraint:res.partner.bank:0
94msgid "Error message in raise"
95msgstr "Error message in raise"
96
97#. module: l10n_fr_rib
98#: field:res.partner.bank,key:098#: field:res.partner.bank,key:0
99msgid "Key"99msgid "Key"
100msgstr "Clé"100msgstr "Clé"
101101
102#. module: l10n_fr_rib102#. module: l10n_fr_rib
103#: code:addons/l10n_fr_rib/bank.py:54
104#: code:addons/l10n_fr_rib/bank.py:61
105#, python-format
106msgid "Error"
107msgstr "Error"
108
109#. module: l10n_fr_rib
110#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field
111msgid "bank_bic"
112msgstr "bank_bic"
113
114#. module: l10n_fr_rib
103#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib115#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib
104msgid "%(bank_name)s: %(acc_number)s"116msgid "%(bank_name)s: %(acc_number)s"
105msgstr "%(bank_name)s: %(acc_number)s"117msgstr "%(bank_name)s: %(acc_number)s"
@@ -110,7 +122,7 @@
110msgstr "Banque"122msgstr "Banque"
111123
112#. module: l10n_fr_rib124#. module: l10n_fr_rib
113#: model:res.partner.bank.type.field,name:l10n_fr_rib.bank_acc_number_field125#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_acc_number_field
114msgid "acc_number"126msgid "acc_number"
115msgstr "acc_number"127msgstr "acc_number"
116128
117129
=== modified file 'l10n_fr_rib/i18n/l10n_fr_rib.pot'
--- l10n_fr_rib/i18n/l10n_fr_rib.pot 2011-12-22 18:55:39 +0000
+++ l10n_fr_rib/i18n/l10n_fr_rib.pot 2012-01-31 13:43:27 +0000
@@ -4,10 +4,10 @@
4#4#
5msgid ""5msgid ""
6msgstr ""6msgstr ""
7"Project-Id-Version: OpenERP Server 6.1beta\n"7"Project-Id-Version: OpenERP Server 6.1rc1\n"
8"Report-Msgid-Bugs-To: \n"8"Report-Msgid-Bugs-To: \n"
9"POT-Creation-Date: 2011-12-22 18:45+0000\n"9"POT-Creation-Date: 2012-01-27 18:47+0000\n"
10"PO-Revision-Date: 2011-12-22 18:45+0000\n"10"PO-Revision-Date: 2012-01-27 18:47+0000\n"
11"Last-Translator: <>\n"11"Last-Translator: <>\n"
12"Language-Team: \n"12"Language-Team: \n"
13"MIME-Version: 1.0\n"13"MIME-Version: 1.0\n"
@@ -22,13 +22,24 @@
22msgstr ""22msgstr ""
2323
24#. module: l10n_fr_rib24#. module: l10n_fr_rib
25#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib
26msgid "RIB and optional IBAN"
27msgstr ""
28
29#. module: l10n_fr_rib
30#: field:res.partner.bank,rib_acc_number:0
31msgid "RIB account number"
32msgstr ""
33
34#. module: l10n_fr_rib
25#: field:res.partner.bank,bank_code:035#: field:res.partner.bank,bank_code:0
26msgid "Bank Code"36msgid "Bank Code"
27msgstr ""37msgstr ""
2838
29#. module: l10n_fr_rib39#. module: l10n_fr_rib
30#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field40#: code:addons/l10n_fr_rib/bank.py:55
31msgid "bank_bic"41#, python-format
42msgid "The RIB key %s does not correspond to the other codes: %s %s %s."
32msgstr ""43msgstr ""
3344
34#. module: l10n_fr_rib45#. module: l10n_fr_rib
@@ -42,6 +53,12 @@
42msgstr ""53msgstr ""
4354
44#. module: l10n_fr_rib55#. module: l10n_fr_rib
56#: code:addons/l10n_fr_rib/bank.py:62
57#, python-format
58msgid "The IBAN %s is not valid."
59msgstr ""
60
61#. module: l10n_fr_rib
45#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank62#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank
46msgid "Bank Accounts"63msgid "Bank Accounts"
47msgstr ""64msgstr ""
@@ -52,8 +69,8 @@
52msgstr ""69msgstr ""
5370
54#. module: l10n_fr_rib71#. module: l10n_fr_rib
55#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib72#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_rib_acc_number_field
56msgid "RIB Bank Details"73msgid "rib_acc_number"
57msgstr ""74msgstr ""
5875
59#. module: l10n_fr_rib76#. module: l10n_fr_rib
@@ -62,13 +79,6 @@
62msgstr ""79msgstr ""
6380
64#. module: l10n_fr_rib81#. module: l10n_fr_rib
65#: code:addons/l10n_fr_rib/bank.py:83
66#, python-format
67msgid "\n"
68"The RIB key %s does not correspond to the other codes: %s %s %s."
69msgstr ""
70
71#. module: l10n_fr_rib
72#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field82#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field
73msgid "key"83msgid "key"
74msgstr ""84msgstr ""
@@ -79,11 +89,28 @@
79msgstr ""89msgstr ""
8090
81#. module: l10n_fr_rib91#. module: l10n_fr_rib
92#: constraint:res.partner.bank:0
93msgid "Error message in raise"
94msgstr ""
95
96#. module: l10n_fr_rib
82#: field:res.partner.bank,key:097#: field:res.partner.bank,key:0
83msgid "Key"98msgid "Key"
84msgstr ""99msgstr ""
85100
86#. module: l10n_fr_rib101#. module: l10n_fr_rib
102#: code:addons/l10n_fr_rib/bank.py:54
103#: code:addons/l10n_fr_rib/bank.py:61
104#, python-format
105msgid "Error"
106msgstr ""
107
108#. module: l10n_fr_rib
109#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field
110msgid "bank_bic"
111msgstr ""
112
113#. module: l10n_fr_rib
87#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib114#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib
88msgid "%(bank_name)s: %(acc_number)s"115msgid "%(bank_name)s: %(acc_number)s"
89msgstr ""116msgstr ""
@@ -94,7 +121,7 @@
94msgstr ""121msgstr ""
95122
96#. module: l10n_fr_rib123#. module: l10n_fr_rib
97#: model:res.partner.bank.type.field,name:l10n_fr_rib.bank_acc_number_field124#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_acc_number_field
98msgid "acc_number"125msgid "acc_number"
99msgstr ""126msgstr ""
100127

Subscribers

People subscribed via source and target branches

to all changes: