Merge lp:~akretion-team/openobject-addons/trunk-fr-display-rib-and-iban into lp:openobject-addons
- trunk-fr-display-rib-and-iban
- Merge into trunk
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Raphael Collet (OpenERP) (community) | Approve | ||
Review via email: mp+90449@code.launchpad.net |
Commit message
Description of the change
The initiative of this merge proposal started on the forum :
http://
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_
- 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.
Numérigraphe (numerigraphe) wrote : | # |
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.
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
Alexis de Lattre (alexis-via) wrote : | # |
@Raphael Collet
I took into account all your remarks and updated the branch.
Raphael Collet (OpenERP) (rco-openerp) wrote : | # |
Looks good, now. Thanks!
Raphael
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
1 | === modified file 'base_iban/base_iban.py' |
2 | --- base_iban/base_iban.py 2012-01-30 11:15:21 +0000 |
3 | +++ base_iban/base_iban.py 2012-01-31 13:43:27 +0000 |
4 | @@ -94,27 +94,36 @@ |
5 | vals['acc_number'] = _pretty_iban(vals['acc_number']) |
6 | return super(res_partner_bank, self).write(cr, uid, ids, vals, context) |
7 | |
8 | + def is_iban_valid(self, cr, uid, iban, context=None): |
9 | + """Check if IBAN is valid or not |
10 | + @param iban: IBAN as string |
11 | + @return: True if IBAN is valid, False if IBAN is not valid |
12 | + """ |
13 | + iban = _format_iban(iban).lower() |
14 | + if iban[:2] in _ref_iban and len(iban) != len(_format_iban(_ref_iban[iban[:2]])): |
15 | + return False |
16 | + #the four first digits have to be shifted to the end |
17 | + iban = iban[4:] + iban[:4] |
18 | + #letters have to be transformed into numbers (a = 10, b = 11, ...) |
19 | + iban2 = "" |
20 | + for char in iban: |
21 | + if char.isalpha(): |
22 | + iban2 += str(ord(char)-87) |
23 | + else: |
24 | + iban2 += char |
25 | + #iban is correct if modulo 97 == 1 |
26 | + if not int(iban2) % 97 == 1: |
27 | + return False |
28 | + return True |
29 | + |
30 | def check_iban(self, cr, uid, ids, context=None): |
31 | ''' |
32 | Check the IBAN number |
33 | ''' |
34 | for bank_acc in self.browse(cr, uid, ids, context=context): |
35 | - if bank_acc.state<>'iban': |
36 | + if bank_acc.state != 'iban': |
37 | continue |
38 | - iban = _format_iban(bank_acc.acc_number).lower() |
39 | - if iban[:2] in _ref_iban and len(iban) != len(_format_iban(_ref_iban[iban[:2]])): |
40 | - return False |
41 | - #the four first digits have to be shifted to the end |
42 | - iban = iban[4:] + iban[:4] |
43 | - #letters have to be transformed into numbers (a = 10, b = 11, ...) |
44 | - iban2 = "" |
45 | - for char in iban: |
46 | - if char.isalpha(): |
47 | - iban2 += str(ord(char)-87) |
48 | - else: |
49 | - iban2 += char |
50 | - #iban is correct if modulo 97 == 1 |
51 | - if not int(iban2) % 97 == 1: |
52 | + if not self.is_iban_valid(cr, uid, bank_acc.acc_number, context=context): |
53 | return False |
54 | return True |
55 | |
56 | |
57 | === modified file 'l10n_fr_rib/__openerp__.py' |
58 | --- l10n_fr_rib/__openerp__.py 2012-01-30 10:18:37 +0000 |
59 | +++ l10n_fr_rib/__openerp__.py 2012-01-31 13:43:27 +0000 |
60 | @@ -38,7 +38,7 @@ |
61 | The 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". |
62 | ''', |
63 | 'author' : u'Numérigraphe SARL', |
64 | - 'depends': ['base', 'account'], |
65 | + 'depends': ['account', 'base_iban'], |
66 | 'init_xml': ['bank_data.xml', ], |
67 | 'update_xml': ['bank_view.xml', ], |
68 | 'installable': True, |
69 | |
70 | === modified file 'l10n_fr_rib/bank.py' |
71 | --- l10n_fr_rib/bank.py 2011-12-01 14:57:54 +0000 |
72 | +++ l10n_fr_rib/bank.py 2012-01-31 13:43:27 +0000 |
73 | @@ -31,18 +31,18 @@ |
74 | """Check the RIB key""" |
75 | for bank_acc in self.browse(cr, uid, ids): |
76 | # Ignore the accounts of type other than rib |
77 | - if bank_acc.state !='rib': |
78 | + if bank_acc.state != 'rib': |
79 | continue |
80 | # Fail if the needed values are empty of too short |
81 | if (not bank_acc.bank_code |
82 | or len(bank_acc.bank_code) != 5 |
83 | or not bank_acc.office or len(bank_acc.office) != 5 |
84 | - or not bank_acc.acc_number or len(bank_acc.acc_number) != 11 |
85 | + or not bank_acc.rib_acc_number or len(bank_acc.rib_acc_number) != 11 |
86 | or not bank_acc.key or len(bank_acc.key) != 2): |
87 | return False |
88 | # Get the rib data (without the key) |
89 | rib = "%s%s%s" % (bank_acc.bank_code, bank_acc.office, |
90 | - bank_acc.acc_number) |
91 | + bank_acc.rib_acc_number) |
92 | # Translate letters into numbers according to a specific table |
93 | # (notice how s -> 2) |
94 | table = dict((ord(a), b) for a, b in zip( |
95 | @@ -51,7 +51,15 @@ |
96 | # compute the key |
97 | key = 97 - (100 * int(rib)) % 97 |
98 | if int(bank_acc.key) != key: |
99 | - return False |
100 | + raise osv.except_osv(_('Error'), |
101 | + _("The RIB key %s does not correspond to the other " |
102 | + "codes: %s %s %s.") % |
103 | + (bank_acc.key, bank_acc.bank_code, |
104 | + bank_acc.office, bank_acc.rib_acc_number) ) |
105 | + if bank_acc.acc_number: |
106 | + if not self.is_iban_valid(cr, uid, bank_acc.acc_number): |
107 | + raise osv.except_osv(_('Error'), |
108 | + _("The IBAN %s is not valid.") % bank_acc.acc_number) |
109 | return True |
110 | |
111 | def onchange_bank_id(self, cr, uid, ids, bank_id, context=None): |
112 | @@ -66,31 +74,18 @@ |
113 | return result |
114 | |
115 | _columns = { |
116 | + 'acc_number': fields.char('Account Number', size=64, required=False), |
117 | + 'rib_acc_number': fields.char('RIB account number', size=11, readonly=True,), |
118 | 'bank_code': fields.char('Bank Code', size=64, readonly=True,), |
119 | 'office': fields.char('Office Code', size=5, readonly=True,), |
120 | 'key': fields.char('Key', size=2, readonly=True, |
121 | help="The key is a number allowing to check the " |
122 | "correctness of the other codes."), |
123 | } |
124 | - |
125 | - def _construct_constraint_msg(self, cr, uid, ids, context=None): |
126 | - """Quote the data in the warning message""" |
127 | - # Only process the first id |
128 | - if type(ids) not in (int, long): |
129 | - id = ids[0] |
130 | - rib = self.browse(cr, uid, id, context=context) |
131 | - if rib: |
132 | - return (_("\nThe RIB key %s does not correspond to the other " |
133 | - "codes: %s %s %s.") % |
134 | - (rib.key, |
135 | - rib.bank_code, |
136 | - rib.office, |
137 | - rib.acc_number) ) |
138 | - |
139 | - _constraints = [(_check_key, |
140 | - _construct_constraint_msg, |
141 | - ["key"])] |
142 | - |
143 | + |
144 | + _constraints = [(_check_key, 'The RIB and/or IBAN is not valid', |
145 | + ['rib_acc_number', 'bank_code', 'office', 'key'])] |
146 | + |
147 | res_partner_bank() |
148 | |
149 | class res_bank(osv.osv): |
150 | |
151 | === modified file 'l10n_fr_rib/bank_data.xml' |
152 | --- l10n_fr_rib/bank_data.xml 2011-11-21 13:45:45 +0000 |
153 | +++ l10n_fr_rib/bank_data.xml 2012-01-31 13:43:27 +0000 |
154 | @@ -6,24 +6,27 @@ |
155 | RIB bank details |
156 | --> |
157 | <record id="bank_rib" model="res.partner.bank.type"> |
158 | - <field name="name">RIB Bank Details</field> |
159 | + <field name="name">RIB and optional IBAN</field> |
160 | <field name="code">rib</field> |
161 | + <field name="format_layout">%(bank_name)s: %(bank_code)s %(office)s %(rib_acc_number)s %(key)s</field> |
162 | </record> |
163 | - |
164 | + |
165 | <record id="rib_bank_code_field" model="res.partner.bank.type.field"> |
166 | <field name="name">bank_code</field> |
167 | <field name="bank_type_id" ref="bank_rib"/> |
168 | <field eval="True" name="required"/> |
169 | <field eval="False" name="readonly"/> |
170 | + <field name="size">5</field> |
171 | </record> |
172 | <record id="rib_office_field" model="res.partner.bank.type.field"> |
173 | <field name="name">office</field> |
174 | <field name="bank_type_id" ref="bank_rib"/> |
175 | <field eval="True" name="required"/> |
176 | <field eval="False" name="readonly"/> |
177 | + <field name="size">5</field> |
178 | </record> |
179 | - <record id="bank_acc_number_field" model="res.partner.bank.type.field"> |
180 | - <field name="name">acc_number</field> |
181 | + <record id="rib_rib_acc_number_field" model="res.partner.bank.type.field"> |
182 | + <field name="name">rib_acc_number</field> |
183 | <field name="bank_type_id" ref="bank_rib"/> |
184 | <field eval="True" name="required"/> |
185 | <field eval="False" name="readonly"/> |
186 | @@ -34,11 +37,19 @@ |
187 | <field name="bank_type_id" ref="bank_rib"/> |
188 | <field eval="True" name="required"/> |
189 | <field eval="False" name="readonly"/> |
190 | + <field name="size">2</field> |
191 | + </record> |
192 | + <record id="rib_acc_number_field" model="res.partner.bank.type.field"> |
193 | + <field name="name">acc_number</field> |
194 | + <field name="bank_type_id" ref="bank_rib"/> |
195 | + <field eval="False" name="required"/> |
196 | + <field eval="False" name="readonly"/> |
197 | </record> |
198 | <record id="rib_bic_field" model="res.partner.bank.type.field"> |
199 | <field name="name">bank_bic</field> |
200 | <field name="bank_type_id" ref="bank_rib"/> |
201 | - <field name="required" eval="0"/> |
202 | + <field name="required" eval="False"/> |
203 | </record> |
204 | + |
205 | </data> |
206 | </openerp> |
207 | |
208 | === modified file 'l10n_fr_rib/bank_view.xml' |
209 | --- l10n_fr_rib/bank_view.xml 2011-11-21 13:45:45 +0000 |
210 | +++ l10n_fr_rib/bank_view.xml 2012-01-31 13:43:27 +0000 |
211 | @@ -5,29 +5,56 @@ |
212 | <record id="view_partner_rib1_form" model="ir.ui.view"> |
213 | <field name="name">res.partner.form.rib1.inherit</field> |
214 | <field name="model">res.partner</field> |
215 | - <field name="inherit_id" ref="base.view_partner_form" /> |
216 | - <field name="type">form</field> |
217 | - <field name="arch" type="xml"> |
218 | - <field name="acc_number" position="before"> |
219 | - <newline /> |
220 | - <field name="bank_code" /> |
221 | - <field name="office" /> |
222 | - <newline /> |
223 | - </field> |
224 | - </field> |
225 | - </record> |
226 | - <record id="view_partner_rib2_form" model="ir.ui.view"> |
227 | - <field name="name">res.partner.form.rib2.inherit</field> |
228 | - <field name="model">res.partner</field> |
229 | - <field name="inherit_id" ref="base.view_partner_form" /> |
230 | - <field name="type">form</field> |
231 | - <field name="arch" type="xml"> |
232 | - <field name="acc_number" position="after"> |
233 | - <field name="key" /> |
234 | - </field> |
235 | - </field> |
236 | - </record> |
237 | - |
238 | + <field name="inherit_id" ref="account.view_partner_property_form" /> |
239 | + <field name="type">form</field> |
240 | + <field name="arch" type="xml"> |
241 | + <data> |
242 | + <xpath expr="/form/notebook/page[@string='Accounting']/field[@name='bank_ids']/form/field[@name='acc_number']" position="before"> |
243 | + <newline /> |
244 | + <field name="bank_code" /> |
245 | + <field name="office" /> |
246 | + <field name="rib_acc_number" /> |
247 | + <field name="key" /> |
248 | + <newline /> |
249 | + </xpath> |
250 | + <xpath expr="/form/notebook/page[@string='Accounting']/field[@name='bank_ids']/tree/field[@name='acc_number']" position="after"> |
251 | + <field name="rib_acc_number" /> |
252 | + </xpath> |
253 | + </data> |
254 | + </field> |
255 | + </record> |
256 | + |
257 | + <!-- add RIB fields to the form view of res.partner.bank --> |
258 | + <record id="view_partner_bank_rib_form" model="ir.ui.view"> |
259 | + <field name="name">res.partner.bank.form.rib.inherit</field> |
260 | + <field name="model">res.partner.bank</field> |
261 | + <field name="inherit_id" ref="base.view_partner_bank_form" /> |
262 | + <field name="type">form</field> |
263 | + <field name="arch" type="xml"> |
264 | + <field name="acc_number" position="before"> |
265 | + <field name="bank_code" /> |
266 | + <field name="office" /> |
267 | + <newline /> |
268 | + <field name="rib_acc_number" /> |
269 | + <field name="key" /> |
270 | + <newline /> |
271 | + </field> |
272 | + </field> |
273 | + </record> |
274 | + |
275 | + <!-- add rib_acc_number to the tree view of res.partner.bank --> |
276 | + <record id="view_partner_bank_rib_tree" model="ir.ui.view"> |
277 | + <field name="name">res.partner.bank.tree.rib.inherit</field> |
278 | + <field name="model">res.partner.bank</field> |
279 | + <field name="inherit_id" ref="base.view_partner_bank_tree" /> |
280 | + <field name="type">tree</field> |
281 | + <field name="arch" type="xml"> |
282 | + <field name="acc_number" position="after"> |
283 | + <field name="rib_acc_number" /> |
284 | + </field> |
285 | + </field> |
286 | + </record> |
287 | + |
288 | <!-- add the bank code--> |
289 | <record id="view_res_bank_form" model="ir.ui.view"> |
290 | <field name="name">res.bank.form.rib.inherit</field> |
291 | |
292 | === modified file 'l10n_fr_rib/i18n/fr.po' |
293 | --- l10n_fr_rib/i18n/fr.po 2011-11-21 13:45:45 +0000 |
294 | +++ l10n_fr_rib/i18n/fr.po 2012-01-31 13:43:27 +0000 |
295 | @@ -4,10 +4,10 @@ |
296 | # |
297 | msgid "" |
298 | msgstr "" |
299 | -"Project-Id-Version: OpenERP Server 6.1beta\n" |
300 | +"Project-Id-Version: OpenERP Server 6.1rc1\n" |
301 | "Report-Msgid-Bugs-To: \n" |
302 | -"POT-Creation-Date: 2011-11-21 12:37+0000\n" |
303 | -"PO-Revision-Date: 2011-11-21 12:37+0000\n" |
304 | +"POT-Creation-Date: 2012-01-27 18:47+0000\n" |
305 | +"PO-Revision-Date: 2012-01-27 18:47+0000\n" |
306 | "Last-Translator: <>\n" |
307 | "Language-Team: \n" |
308 | "MIME-Version: 1.0\n" |
309 | @@ -23,9 +23,14 @@ |
310 | "Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments" |
311 | |
312 | #. module: l10n_fr_rib |
313 | -#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank |
314 | -msgid "Bank Accounts" |
315 | -msgstr "Comptes bancaires" |
316 | +#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib |
317 | +msgid "RIB and optional IBAN" |
318 | +msgstr "RIB et IBAN optionnel" |
319 | + |
320 | +#. module: l10n_fr_rib |
321 | +#: field:res.partner.bank,rib_acc_number:0 |
322 | +msgid "RIB account number" |
323 | +msgstr "Numéro de compte RIB" |
324 | |
325 | #. module: l10n_fr_rib |
326 | #: field:res.partner.bank,bank_code:0 |
327 | @@ -33,9 +38,10 @@ |
328 | msgstr "Code banque" |
329 | |
330 | #. module: l10n_fr_rib |
331 | -#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field |
332 | -msgid "bank_bic" |
333 | -msgstr "bank_bic" |
334 | +#: code:addons/l10n_fr_rib/bank.py:55 |
335 | +#, python-format |
336 | +msgid "The RIB key %s does not correspond to the other codes: %s %s %s." |
337 | +msgstr "La clé RIB %s ne correspond pas aux autres codes : %s %s %s." |
338 | |
339 | #. module: l10n_fr_rib |
340 | #: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field |
341 | @@ -48,13 +54,15 @@ |
342 | msgstr "Code banque RIB" |
343 | |
344 | #. module: l10n_fr_rib |
345 | -#: model:ir.module.module,description:l10n_fr_rib.module_meta_information |
346 | -msgid "\n" |
347 | -"This module installs the base for RIB bank accounts (French standard for bank accounts). \n" |
348 | -"To make it easier to enter RIB data, it will also allow to search for banks by code." |
349 | -msgstr "\n" |
350 | -"Ce module installe la base pour les comptes bancaires RIB (norme française pour les n° de compte). \n" |
351 | -"Pour faciliter la saisie des RIBs, il permet aussi de chercher les banques par code." |
352 | +#: code:addons/l10n_fr_rib/bank.py:62 |
353 | +#, python-format |
354 | +msgid "The IBAN %s is not valid." |
355 | +msgstr "L'IBAN %s n'est pas valide." |
356 | + |
357 | +#. module: l10n_fr_rib |
358 | +#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank |
359 | +msgid "Bank Accounts" |
360 | +msgstr "Comptes bancaires" |
361 | |
362 | #. module: l10n_fr_rib |
363 | #: field:res.partner.bank,office:0 |
364 | @@ -62,9 +70,9 @@ |
365 | msgstr "Code agence" |
366 | |
367 | #. module: l10n_fr_rib |
368 | -#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib |
369 | -msgid "RIB Bank Details" |
370 | -msgstr "Relevé d'identité bancaire (RIB)" |
371 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_rib_acc_number_field |
372 | +msgid "rib_acc_number" |
373 | +msgstr "rib_acc_number" |
374 | |
375 | #. module: l10n_fr_rib |
376 | #: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field |
377 | @@ -72,34 +80,38 @@ |
378 | msgstr "bank_code" |
379 | |
380 | #. module: l10n_fr_rib |
381 | -#: code:addons/l10n_fr_rib/bank.py:109 |
382 | -#, python-format |
383 | -msgid "\n" |
384 | -"The RIB key %s does not correspond to the other codes: %s %s %s." |
385 | -msgstr "\n" |
386 | -"La clé RIB %s ne correspond pas aux autres codes : %s %s %s." |
387 | - |
388 | -#. module: l10n_fr_rib |
389 | #: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field |
390 | msgid "key" |
391 | msgstr "key" |
392 | |
393 | #. module: l10n_fr_rib |
394 | -#: model:ir.module.module,shortdesc:l10n_fr_rib.module_meta_information |
395 | -msgid "French RIB Bank Details" |
396 | -msgstr "Relevés d'identité bancaire français (RIB)" |
397 | - |
398 | -#. module: l10n_fr_rib |
399 | #: help:res.partner.bank,key:0 |
400 | msgid "The key is a number allowing to check the correctness of the other codes." |
401 | msgstr "La clé est un nombre permettant de vérifier que les autres codes sont corrects." |
402 | |
403 | #. module: l10n_fr_rib |
404 | +#: constraint:res.partner.bank:0 |
405 | +msgid "Error message in raise" |
406 | +msgstr "Error message in raise" |
407 | + |
408 | +#. module: l10n_fr_rib |
409 | #: field:res.partner.bank,key:0 |
410 | msgid "Key" |
411 | msgstr "Clé" |
412 | |
413 | #. module: l10n_fr_rib |
414 | +#: code:addons/l10n_fr_rib/bank.py:54 |
415 | +#: code:addons/l10n_fr_rib/bank.py:61 |
416 | +#, python-format |
417 | +msgid "Error" |
418 | +msgstr "Error" |
419 | + |
420 | +#. module: l10n_fr_rib |
421 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field |
422 | +msgid "bank_bic" |
423 | +msgstr "bank_bic" |
424 | + |
425 | +#. module: l10n_fr_rib |
426 | #: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib |
427 | msgid "%(bank_name)s: %(acc_number)s" |
428 | msgstr "%(bank_name)s: %(acc_number)s" |
429 | @@ -110,7 +122,7 @@ |
430 | msgstr "Banque" |
431 | |
432 | #. module: l10n_fr_rib |
433 | -#: model:res.partner.bank.type.field,name:l10n_fr_rib.bank_acc_number_field |
434 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_acc_number_field |
435 | msgid "acc_number" |
436 | msgstr "acc_number" |
437 | |
438 | |
439 | === modified file 'l10n_fr_rib/i18n/l10n_fr_rib.pot' |
440 | --- l10n_fr_rib/i18n/l10n_fr_rib.pot 2011-12-22 18:55:39 +0000 |
441 | +++ l10n_fr_rib/i18n/l10n_fr_rib.pot 2012-01-31 13:43:27 +0000 |
442 | @@ -4,10 +4,10 @@ |
443 | # |
444 | msgid "" |
445 | msgstr "" |
446 | -"Project-Id-Version: OpenERP Server 6.1beta\n" |
447 | +"Project-Id-Version: OpenERP Server 6.1rc1\n" |
448 | "Report-Msgid-Bugs-To: \n" |
449 | -"POT-Creation-Date: 2011-12-22 18:45+0000\n" |
450 | -"PO-Revision-Date: 2011-12-22 18:45+0000\n" |
451 | +"POT-Creation-Date: 2012-01-27 18:47+0000\n" |
452 | +"PO-Revision-Date: 2012-01-27 18:47+0000\n" |
453 | "Last-Translator: <>\n" |
454 | "Language-Team: \n" |
455 | "MIME-Version: 1.0\n" |
456 | @@ -22,13 +22,24 @@ |
457 | msgstr "" |
458 | |
459 | #. module: l10n_fr_rib |
460 | +#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib |
461 | +msgid "RIB and optional IBAN" |
462 | +msgstr "" |
463 | + |
464 | +#. module: l10n_fr_rib |
465 | +#: field:res.partner.bank,rib_acc_number:0 |
466 | +msgid "RIB account number" |
467 | +msgstr "" |
468 | + |
469 | +#. module: l10n_fr_rib |
470 | #: field:res.partner.bank,bank_code:0 |
471 | msgid "Bank Code" |
472 | msgstr "" |
473 | |
474 | #. module: l10n_fr_rib |
475 | -#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field |
476 | -msgid "bank_bic" |
477 | +#: code:addons/l10n_fr_rib/bank.py:55 |
478 | +#, python-format |
479 | +msgid "The RIB key %s does not correspond to the other codes: %s %s %s." |
480 | msgstr "" |
481 | |
482 | #. module: l10n_fr_rib |
483 | @@ -42,6 +53,12 @@ |
484 | msgstr "" |
485 | |
486 | #. module: l10n_fr_rib |
487 | +#: code:addons/l10n_fr_rib/bank.py:62 |
488 | +#, python-format |
489 | +msgid "The IBAN %s is not valid." |
490 | +msgstr "" |
491 | + |
492 | +#. module: l10n_fr_rib |
493 | #: model:ir.model,name:l10n_fr_rib.model_res_partner_bank |
494 | msgid "Bank Accounts" |
495 | msgstr "" |
496 | @@ -52,8 +69,8 @@ |
497 | msgstr "" |
498 | |
499 | #. module: l10n_fr_rib |
500 | -#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib |
501 | -msgid "RIB Bank Details" |
502 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_rib_acc_number_field |
503 | +msgid "rib_acc_number" |
504 | msgstr "" |
505 | |
506 | #. module: l10n_fr_rib |
507 | @@ -62,13 +79,6 @@ |
508 | msgstr "" |
509 | |
510 | #. module: l10n_fr_rib |
511 | -#: code:addons/l10n_fr_rib/bank.py:83 |
512 | -#, python-format |
513 | -msgid "\n" |
514 | -"The RIB key %s does not correspond to the other codes: %s %s %s." |
515 | -msgstr "" |
516 | - |
517 | -#. module: l10n_fr_rib |
518 | #: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field |
519 | msgid "key" |
520 | msgstr "" |
521 | @@ -79,11 +89,28 @@ |
522 | msgstr "" |
523 | |
524 | #. module: l10n_fr_rib |
525 | +#: constraint:res.partner.bank:0 |
526 | +msgid "Error message in raise" |
527 | +msgstr "" |
528 | + |
529 | +#. module: l10n_fr_rib |
530 | #: field:res.partner.bank,key:0 |
531 | msgid "Key" |
532 | msgstr "" |
533 | |
534 | #. module: l10n_fr_rib |
535 | +#: code:addons/l10n_fr_rib/bank.py:54 |
536 | +#: code:addons/l10n_fr_rib/bank.py:61 |
537 | +#, python-format |
538 | +msgid "Error" |
539 | +msgstr "" |
540 | + |
541 | +#. module: l10n_fr_rib |
542 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field |
543 | +msgid "bank_bic" |
544 | +msgstr "" |
545 | + |
546 | +#. module: l10n_fr_rib |
547 | #: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib |
548 | msgid "%(bank_name)s: %(acc_number)s" |
549 | msgstr "" |
550 | @@ -94,7 +121,7 @@ |
551 | msgstr "" |
552 | |
553 | #. module: l10n_fr_rib |
554 | -#: model:res.partner.bank.type.field,name:l10n_fr_rib.bank_acc_number_field |
555 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_acc_number_field |
556 | msgid "acc_number" |
557 | msgstr "" |
558 |
Wouldn't it be possible to have just one RIB type, and make the IBAN fields read-write but not mandatory ?
Lionel Sausin.