Merge lp:~numerigraphe/openobject-addons/trunk-rib into lp:openobject-addons
- trunk-rib
- Merge into trunk
Status: | Superseded | ||||
---|---|---|---|---|---|
Proposed branch: | lp:~numerigraphe/openobject-addons/trunk-rib | ||||
Merge into: | lp:openobject-addons | ||||
Diff against target: |
542 lines (+506/-0) 7 files modified
l10n_fr_rib/__init__.py (+25/-0) l10n_fr_rib/__openerp__.py (+48/-0) l10n_fr_rib/bank.py (+117/-0) l10n_fr_rib/bank_data.xml (+44/-0) l10n_fr_rib/bank_view.xml (+44/-0) l10n_fr_rib/i18n/fr.po (+116/-0) l10n_fr_rib/i18n/l10n_fr_rib.pot (+112/-0) |
||||
To merge this branch: | bzr merge lp:~numerigraphe/openobject-addons/trunk-rib | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Olivier Dony (Odoo) | technical | Approve | |
OpenERP Accounting Experts | Pending | ||
Review via email: mp+82886@code.launchpad.net |
This proposal has been superseded by a proposal from 2011-12-08.
Commit message
Description of the change
In this branch, I humbly propose a new module l10n_fr_rib, allowing users to enter bank account details in RIB format.
This format is still very widespread in France, so I think this may be of use for numerous users.
This module existed in the community branch in v5.
Numérigraphe (numerigraphe) wrote : | # |
I'll make these changes ASAP.
Numérigraphe (numerigraphe) wrote : | # |
Dear Olivier,
I've made the changes you suggested.
I dropped the search method because it probably hasn't been working for ages (bad refactoring of mine I guess) and I can't remember what it was for.
I'd be glad to have more French users's reviews, but I don't know any, can you help pass the word please?
Lionel.
Numérigraphe (numerigraphe) wrote : | # |
I have posted a message on the French forum, let's see if someone shows up.
http://
Lionel.
Olivier Dony (Odoo) (odo-openerp) wrote : | # |
On 11/29/2011 09:38 AM, Numérigraphe wrote:
> I have posted a message on the French forum, let's see if someone shows up.
> http://
Excellent, and thanks for the branch update too, it looks good to me now.
Olivier Dony (Odoo) (odo-openerp) wrote : | # |
No-one provided feedback yet (I relayed on twitter too), so I suggest we merge it as it is now. Further improvements can of course be suggested later via new merge proposals, if someone was too late to provide feedback here.
Thanks for the contribution!
Numérigraphe (numerigraphe) wrote : | # |
Great news, thanks Olivier!
Lionel.
Preview Diff
1 | === added directory 'l10n_fr_rib' |
2 | === added file 'l10n_fr_rib/__init__.py' |
3 | --- l10n_fr_rib/__init__.py 1970-01-01 00:00:00 +0000 |
4 | +++ l10n_fr_rib/__init__.py 2011-11-28 16:11:34 +0000 |
5 | @@ -0,0 +1,25 @@ |
6 | +# -*- encoding: utf-8 -*- |
7 | +############################################################################## |
8 | +# |
9 | +# OpenERP, Open Source Management Solution |
10 | +# Copyright (C) 2011 Numérigraphe SARL. |
11 | +# |
12 | +# This program is free software: you can redistribute it and/or modify |
13 | +# it under the terms of the GNU Affero General Public License as |
14 | +# published by the Free Software Foundation, either version 3 of the |
15 | +# License, or (at your option) any later version. |
16 | +# |
17 | +# This program is distributed in the hope that it will be useful, |
18 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
20 | +# GNU Affero General Public License for more details. |
21 | +# |
22 | +# You should have received a copy of the GNU Affero General Public License |
23 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
24 | +# |
25 | +############################################################################## |
26 | + |
27 | +import bank |
28 | + |
29 | +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
30 | + |
31 | |
32 | === added file 'l10n_fr_rib/__openerp__.py' |
33 | --- l10n_fr_rib/__openerp__.py 1970-01-01 00:00:00 +0000 |
34 | +++ l10n_fr_rib/__openerp__.py 2011-11-28 16:11:34 +0000 |
35 | @@ -0,0 +1,48 @@ |
36 | +# -*- encoding: utf-8 -*- |
37 | +############################################################################## |
38 | +# |
39 | +# OpenERP, Open Source Management Solution |
40 | +# Copyright (C) 2011 Numérigraphe SARL. |
41 | +# |
42 | +# This program is free software: you can redistribute it and/or modify |
43 | +# it under the terms of the GNU Affero General Public License as |
44 | +# published by the Free Software Foundation, either version 3 of the |
45 | +# License, or (at your option) any later version. |
46 | +# |
47 | +# This program is distributed in the hope that it will be useful, |
48 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
49 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
50 | +# GNU Affero General Public License for more details. |
51 | +# |
52 | +# You should have received a copy of the GNU Affero General Public License |
53 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
54 | +# |
55 | +############################################################################## |
56 | + |
57 | +{ |
58 | + 'name': 'French RIB Bank Details', |
59 | + 'version': '1.0', |
60 | + 'category': 'Hidden', |
61 | + 'description': ''' |
62 | +This module lets users enter the banking details of Partners in the RIB format (French standard for bank accounts details). |
63 | +RIB Bank Accounts can be entered in the "Accounting" tab of the Partner form by specifying the account type "RIB". The four standard RIB fields will then become mandatory: |
64 | +- Bank Code |
65 | +- Office Code |
66 | +- Account number |
67 | +- RIB key |
68 | +As a safety measure, OpenERP will check the RIB key whenever a RIB is saved, and will refuse to record the data if the key is incorrect. Please bear in mind that this can only happen when the user presses the "save" button, for example on the Partner Form. |
69 | +Since each bank account may relate to a Bank, users may enter the RIB Bank Code in the Bank form - it will the pre-fill the Bank Code on the RIB when they select the Bank. |
70 | +To make this easier, this module will also let users find Banks using their RIB code. |
71 | + |
72 | +The module base_iban can be a useful addition to this module, because French banks are now progressively adopting the international IBAN format instead of the RIB format. |
73 | +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". |
74 | +''', |
75 | + 'author' : u'Numérigraphe SARL', |
76 | + 'depends': ['base', 'account'], |
77 | + 'init_xml': ['bank_data.xml', ], |
78 | + 'update_xml': ['bank_view.xml', ], |
79 | + 'installable': True, |
80 | + 'active': False, |
81 | +} |
82 | + |
83 | +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
84 | |
85 | === added file 'l10n_fr_rib/bank.py' |
86 | --- l10n_fr_rib/bank.py 1970-01-01 00:00:00 +0000 |
87 | +++ l10n_fr_rib/bank.py 2011-11-28 16:11:34 +0000 |
88 | @@ -0,0 +1,117 @@ |
89 | +# -*- encoding: utf-8 -*- |
90 | +############################################################################## |
91 | +# |
92 | +# OpenERP, Open Source Management Solution |
93 | +# Copyright (C) 2011 Numérigraphe SARL. |
94 | +# |
95 | +# This program is free software: you can redistribute it and/or modify |
96 | +# it under the terms of the GNU Affero General Public License as |
97 | +# published by the Free Software Foundation, either version 3 of the |
98 | +# License, or (at your option) any later version. |
99 | +# |
100 | +# This program is distributed in the hope that it will be useful, |
101 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
102 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
103 | +# GNU Affero General Public License for more details. |
104 | +# |
105 | +# You should have received a copy of the GNU Affero General Public License |
106 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
107 | +# |
108 | +############################################################################## |
109 | + |
110 | +import netsvc |
111 | +from osv import fields, osv |
112 | +from tools.translate import _ |
113 | + |
114 | +class res_partner_bank(osv.osv): |
115 | + """Add fields and behavior for French RIB""" |
116 | + _inherit = "res.partner.bank" |
117 | + |
118 | + def _check_key(self, cr, uid, ids): |
119 | + """Check the RIB key""" |
120 | + for bank_acc in self.browse(cr, uid, ids): |
121 | + # Ignore the accounts of type other than rib |
122 | + if bank_acc.state !='rib': |
123 | + continue |
124 | + # Fail if the needed values are empty of too short |
125 | + if (not bank_acc.bank_code |
126 | + or len(bank_acc.bank_code) != 5 |
127 | + or not bank_acc.office or len(bank_acc.office) != 5 |
128 | + or not bank_acc.acc_number or len(bank_acc.acc_number) != 11 |
129 | + or not bank_acc.key or len(bank_acc.key) != 2): |
130 | + return False |
131 | + # Get the rib data (without the key) |
132 | + rib = "%s%s%s" % (bank_acc.bank_code, bank_acc.office, |
133 | + bank_acc.acc_number) |
134 | + # Translate letters into numbers according to a specific table |
135 | + # (notice how s -> 2) |
136 | + table = dict((ord(a), b) for a, b in zip( |
137 | + u'abcdefghijklmnopqrstuvwxyz', u'12345678912345678923456789')) |
138 | + rib = rib.lower().translate(table) |
139 | + # compute the key |
140 | + key = 97 - (100 * int(rib)) % 97 |
141 | + if int(bank_acc.key) != key: |
142 | + return False |
143 | + return True |
144 | + |
145 | + def onchange_bank_id(self, cr, uid, ids, bank_id, context=None): |
146 | + """Change the bank code""" |
147 | + result = super(res_partner_bank, self).onchange_bank_id(cr, uid, ids, bank_id, |
148 | + context=context) |
149 | + if bank_id: |
150 | + bank = self.pool.get('res.bank').browse(cr, uid, bank_id, |
151 | + context=context) |
152 | + result['bank_code'] = bank.rib_code |
153 | + return {'value': result} |
154 | + |
155 | + _columns = { |
156 | + 'bank_code': fields.char('Bank Code', size=64, readonly=True,), |
157 | + 'office': fields.char('Office Code', size=5, readonly=True,), |
158 | + 'key': fields.char('Key', size=2, readonly=True, |
159 | + help="The key is a number allowing to check the " |
160 | + "correctness of the other codes."), |
161 | + } |
162 | + |
163 | + def _construct_constraint_msg(self, cr, uid, ids, context=None): |
164 | + """Quote the data in the warning message""" |
165 | + # Only process the first id |
166 | + if type(ids) not in (int, long): |
167 | + id = ids[0] |
168 | + rib = self.browse(cr, uid, id, context=context) |
169 | + if rib: |
170 | + return (_("\nThe RIB key %s does not correspond to the other " |
171 | + "codes: %s %s %s.") % |
172 | + (rib.key, |
173 | + rib.bank_code, |
174 | + rib.office, |
175 | + rib.acc_number) ) |
176 | + |
177 | + _constraints = [(_check_key, |
178 | + _construct_constraint_msg, |
179 | + ["key"])] |
180 | + |
181 | +res_partner_bank() |
182 | + |
183 | +class res_bank(osv.osv): |
184 | + """Add the bank code to make it easier to enter RIB data""" |
185 | + _inherit = 'res.bank' |
186 | + |
187 | + def name_search(self, cr, user, name, args=None, operator='ilike', |
188 | + context=None, limit=80): |
189 | + """Search by bank code in addition to the standard search""" |
190 | + # Get the standard results |
191 | + results = super(res_bank, self).name_search(cr, user, |
192 | + name, args=args ,operator=operator, context=context, limit=limit) |
193 | + # Get additional results using the RIB code |
194 | + ids = self.search(cr, user, [('rib_code', operator, name)], |
195 | + limit=limit, context=context) |
196 | + # Merge the results |
197 | + results = list(set(results + self.name_get(cr, user, ids, context))) |
198 | + return results |
199 | + |
200 | + _columns = { |
201 | + 'rib_code': fields.char('RIB Bank Code', size=64), |
202 | + } |
203 | +res_bank() |
204 | +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |
205 | + |
206 | |
207 | === added file 'l10n_fr_rib/bank_data.xml' |
208 | --- l10n_fr_rib/bank_data.xml 1970-01-01 00:00:00 +0000 |
209 | +++ l10n_fr_rib/bank_data.xml 2011-11-28 16:11:34 +0000 |
210 | @@ -0,0 +1,44 @@ |
211 | +<?xml version="1.0" encoding="utf-8"?> |
212 | +<openerp> |
213 | + <data> |
214 | + |
215 | + <!-- |
216 | + RIB bank details |
217 | + --> |
218 | + <record id="bank_rib" model="res.partner.bank.type"> |
219 | + <field name="name">RIB Bank Details</field> |
220 | + <field name="code">rib</field> |
221 | + </record> |
222 | + |
223 | + <record id="rib_bank_code_field" model="res.partner.bank.type.field"> |
224 | + <field name="name">bank_code</field> |
225 | + <field name="bank_type_id" ref="bank_rib"/> |
226 | + <field eval="True" name="required"/> |
227 | + <field eval="False" name="readonly"/> |
228 | + </record> |
229 | + <record id="rib_office_field" model="res.partner.bank.type.field"> |
230 | + <field name="name">office</field> |
231 | + <field name="bank_type_id" ref="bank_rib"/> |
232 | + <field eval="True" name="required"/> |
233 | + <field eval="False" name="readonly"/> |
234 | + </record> |
235 | + <record id="bank_acc_number_field" model="res.partner.bank.type.field"> |
236 | + <field name="name">acc_number</field> |
237 | + <field name="bank_type_id" ref="bank_rib"/> |
238 | + <field eval="True" name="required"/> |
239 | + <field eval="False" name="readonly"/> |
240 | + <field name="size">11</field> |
241 | + </record> |
242 | + <record id="rib_key_field" model="res.partner.bank.type.field"> |
243 | + <field name="name">key</field> |
244 | + <field name="bank_type_id" ref="bank_rib"/> |
245 | + <field eval="True" name="required"/> |
246 | + <field eval="False" name="readonly"/> |
247 | + </record> |
248 | + <record id="rib_bic_field" model="res.partner.bank.type.field"> |
249 | + <field name="name">bank_bic</field> |
250 | + <field name="bank_type_id" ref="bank_rib"/> |
251 | + <field name="required" eval="0"/> |
252 | + </record> |
253 | + </data> |
254 | +</openerp> |
255 | |
256 | === added file 'l10n_fr_rib/bank_view.xml' |
257 | --- l10n_fr_rib/bank_view.xml 1970-01-01 00:00:00 +0000 |
258 | +++ l10n_fr_rib/bank_view.xml 2011-11-28 16:11:34 +0000 |
259 | @@ -0,0 +1,44 @@ |
260 | +<?xml version="1.0" encoding="utf-8"?> |
261 | +<openerp> |
262 | + <data> |
263 | + <!-- add the fields for French RIB to the partner form (subform)--> |
264 | + <record id="view_partner_rib1_form" model="ir.ui.view"> |
265 | + <field name="name">res.partner.form.rib1.inherit</field> |
266 | + <field name="model">res.partner</field> |
267 | + <field name="inherit_id" ref="base.view_partner_form" /> |
268 | + <field name="type">form</field> |
269 | + <field name="arch" type="xml"> |
270 | + <field name="acc_number" position="before"> |
271 | + <newline /> |
272 | + <field name="bank_code" /> |
273 | + <field name="office" /> |
274 | + <newline /> |
275 | + </field> |
276 | + </field> |
277 | + </record> |
278 | + <record id="view_partner_rib2_form" model="ir.ui.view"> |
279 | + <field name="name">res.partner.form.rib2.inherit</field> |
280 | + <field name="model">res.partner</field> |
281 | + <field name="inherit_id" ref="base.view_partner_form" /> |
282 | + <field name="type">form</field> |
283 | + <field name="arch" type="xml"> |
284 | + <field name="acc_number" position="after"> |
285 | + <field name="key" /> |
286 | + </field> |
287 | + </field> |
288 | + </record> |
289 | + |
290 | + <!-- add the bank code--> |
291 | + <record id="view_res_bank_form" model="ir.ui.view"> |
292 | + <field name="name">res.bank.form.rib.inherit</field> |
293 | + <field name="model">res.bank</field> |
294 | + <field name="inherit_id" ref="base.view_res_bank_form" /> |
295 | + <field name="type">form</field> |
296 | + <field name="arch" type="xml"> |
297 | + <field name="bic" position="before"> |
298 | + <field name="rib_code" /> |
299 | + </field> |
300 | + </field> |
301 | + </record> |
302 | + </data> |
303 | +</openerp> |
304 | |
305 | === added directory 'l10n_fr_rib/i18n' |
306 | === added file 'l10n_fr_rib/i18n/fr.po' |
307 | --- l10n_fr_rib/i18n/fr.po 1970-01-01 00:00:00 +0000 |
308 | +++ l10n_fr_rib/i18n/fr.po 2011-11-28 16:11:34 +0000 |
309 | @@ -0,0 +1,116 @@ |
310 | +# Translation of OpenERP Server. |
311 | +# This file contains the translation of the following modules: |
312 | +# * l10n_fr_rib |
313 | +# |
314 | +msgid "" |
315 | +msgstr "" |
316 | +"Project-Id-Version: OpenERP Server 6.1beta\n" |
317 | +"Report-Msgid-Bugs-To: \n" |
318 | +"POT-Creation-Date: 2011-11-21 12:37+0000\n" |
319 | +"PO-Revision-Date: 2011-11-21 12:37+0000\n" |
320 | +"Last-Translator: <>\n" |
321 | +"Language-Team: \n" |
322 | +"MIME-Version: 1.0\n" |
323 | +"Content-Type: text/plain; charset=UTF-8\n" |
324 | +"Content-Transfer-Encoding: \n" |
325 | +"Plural-Forms: \n" |
326 | + |
327 | +#. module: l10n_fr_rib |
328 | +#: constraint:res.partner.bank:0 |
329 | +msgid "\n" |
330 | +"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments" |
331 | +msgstr "\n" |
332 | +"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments" |
333 | + |
334 | +#. module: l10n_fr_rib |
335 | +#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank |
336 | +msgid "Bank Accounts" |
337 | +msgstr "Comptes bancaires" |
338 | + |
339 | +#. module: l10n_fr_rib |
340 | +#: field:res.partner.bank,bank_code:0 |
341 | +msgid "Bank Code" |
342 | +msgstr "Code banque" |
343 | + |
344 | +#. module: l10n_fr_rib |
345 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field |
346 | +msgid "bank_bic" |
347 | +msgstr "bank_bic" |
348 | + |
349 | +#. module: l10n_fr_rib |
350 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field |
351 | +msgid "office" |
352 | +msgstr "Agence" |
353 | + |
354 | +#. module: l10n_fr_rib |
355 | +#: field:res.bank,rib_code:0 |
356 | +msgid "RIB Bank Code" |
357 | +msgstr "Code banque RIB" |
358 | + |
359 | +#. module: l10n_fr_rib |
360 | +#: model:ir.module.module,description:l10n_fr_rib.module_meta_information |
361 | +msgid "\n" |
362 | +"This module installs the base for RIB bank accounts (French standard for bank accounts). \n" |
363 | +"To make it easier to enter RIB data, it will also allow to search for banks by code." |
364 | +msgstr "\n" |
365 | +"Ce module installe la base pour les comptes bancaires RIB (norme française pour les n° de compte). \n" |
366 | +"Pour faciliter la saisie des RIBs, il permet aussi de chercher les banques par code." |
367 | + |
368 | +#. module: l10n_fr_rib |
369 | +#: field:res.partner.bank,office:0 |
370 | +msgid "Office Code" |
371 | +msgstr "Code agence" |
372 | + |
373 | +#. module: l10n_fr_rib |
374 | +#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib |
375 | +msgid "RIB Bank Details" |
376 | +msgstr "Relevé d'identité bancaire (RIB)" |
377 | + |
378 | +#. module: l10n_fr_rib |
379 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field |
380 | +msgid "bank_code" |
381 | +msgstr "bank_code" |
382 | + |
383 | +#. module: l10n_fr_rib |
384 | +#: code:addons/l10n_fr_rib/bank.py:109 |
385 | +#, python-format |
386 | +msgid "\n" |
387 | +"The RIB key %s does not correspond to the other codes: %s %s %s." |
388 | +msgstr "\n" |
389 | +"La clé RIB %s ne correspond pas aux autres codes : %s %s %s." |
390 | + |
391 | +#. module: l10n_fr_rib |
392 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field |
393 | +msgid "key" |
394 | +msgstr "key" |
395 | + |
396 | +#. module: l10n_fr_rib |
397 | +#: model:ir.module.module,shortdesc:l10n_fr_rib.module_meta_information |
398 | +msgid "French RIB Bank Details" |
399 | +msgstr "Relevés d'identité bancaire français (RIB)" |
400 | + |
401 | +#. module: l10n_fr_rib |
402 | +#: help:res.partner.bank,key:0 |
403 | +msgid "The key is a number allowing to check the correctness of the other codes." |
404 | +msgstr "La clé est un nombre permettant de vérifier que les autres codes sont corrects." |
405 | + |
406 | +#. module: l10n_fr_rib |
407 | +#: field:res.partner.bank,key:0 |
408 | +msgid "Key" |
409 | +msgstr "Clé" |
410 | + |
411 | +#. module: l10n_fr_rib |
412 | +#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib |
413 | +msgid "%(bank_name)s: %(acc_number)s" |
414 | +msgstr "%(bank_name)s: %(acc_number)s" |
415 | + |
416 | +#. module: l10n_fr_rib |
417 | +#: model:ir.model,name:l10n_fr_rib.model_res_bank |
418 | +msgid "Bank" |
419 | +msgstr "Banque" |
420 | + |
421 | +#. module: l10n_fr_rib |
422 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.bank_acc_number_field |
423 | +msgid "acc_number" |
424 | +msgstr "acc_number" |
425 | + |
426 | |
427 | === added file 'l10n_fr_rib/i18n/l10n_fr_rib.pot' |
428 | --- l10n_fr_rib/i18n/l10n_fr_rib.pot 1970-01-01 00:00:00 +0000 |
429 | +++ l10n_fr_rib/i18n/l10n_fr_rib.pot 2011-11-28 16:11:34 +0000 |
430 | @@ -0,0 +1,112 @@ |
431 | +# Translation of OpenERP Server. |
432 | +# This file contains the translation of the following modules: |
433 | +# * l10n_fr_rib |
434 | +# |
435 | +msgid "" |
436 | +msgstr "" |
437 | +"Project-Id-Version: OpenERP Server 6.1beta\n" |
438 | +"Report-Msgid-Bugs-To: \n" |
439 | +"POT-Creation-Date: 2011-11-21 12:36+0000\n" |
440 | +"PO-Revision-Date: 2011-11-21 12:36+0000\n" |
441 | +"Last-Translator: <>\n" |
442 | +"Language-Team: \n" |
443 | +"MIME-Version: 1.0\n" |
444 | +"Content-Type: text/plain; charset=UTF-8\n" |
445 | +"Content-Transfer-Encoding: \n" |
446 | +"Plural-Forms: \n" |
447 | + |
448 | +#. module: l10n_fr_rib |
449 | +#: constraint:res.partner.bank:0 |
450 | +msgid "\n" |
451 | +"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments" |
452 | +msgstr "" |
453 | + |
454 | +#. module: l10n_fr_rib |
455 | +#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank |
456 | +msgid "Bank Accounts" |
457 | +msgstr "" |
458 | + |
459 | +#. module: l10n_fr_rib |
460 | +#: field:res.partner.bank,bank_code:0 |
461 | +msgid "Bank Code" |
462 | +msgstr "" |
463 | + |
464 | +#. module: l10n_fr_rib |
465 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field |
466 | +msgid "bank_bic" |
467 | +msgstr "" |
468 | + |
469 | +#. module: l10n_fr_rib |
470 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field |
471 | +msgid "office" |
472 | +msgstr "" |
473 | + |
474 | +#. module: l10n_fr_rib |
475 | +#: field:res.bank,rib_code:0 |
476 | +msgid "RIB Bank Code" |
477 | +msgstr "" |
478 | + |
479 | +#. module: l10n_fr_rib |
480 | +#: model:ir.module.module,description:l10n_fr_rib.module_meta_information |
481 | +msgid "\n" |
482 | +"This module installs the base for RIB bank accounts (French standard for bank accounts). \n" |
483 | +"To make it easier to enter RIB data, it will also allow to search for banks by code." |
484 | +msgstr "" |
485 | + |
486 | +#. module: l10n_fr_rib |
487 | +#: field:res.partner.bank,office:0 |
488 | +msgid "Office Code" |
489 | +msgstr "" |
490 | + |
491 | +#. module: l10n_fr_rib |
492 | +#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib |
493 | +msgid "RIB Bank Details" |
494 | +msgstr "" |
495 | + |
496 | +#. module: l10n_fr_rib |
497 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field |
498 | +msgid "bank_code" |
499 | +msgstr "" |
500 | + |
501 | +#. module: l10n_fr_rib |
502 | +#: code:addons/l10n_fr_rib/bank.py:109 |
503 | +#, python-format |
504 | +msgid "\n" |
505 | +"The RIB key %s does not correspond to the other codes: %s %s %s." |
506 | +msgstr "" |
507 | + |
508 | +#. module: l10n_fr_rib |
509 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field |
510 | +msgid "key" |
511 | +msgstr "" |
512 | + |
513 | +#. module: l10n_fr_rib |
514 | +#: model:ir.module.module,shortdesc:l10n_fr_rib.module_meta_information |
515 | +msgid "French RIB Bank Details" |
516 | +msgstr "" |
517 | + |
518 | +#. module: l10n_fr_rib |
519 | +#: help:res.partner.bank,key:0 |
520 | +msgid "The key is a number allowing to check the correctness of the other codes." |
521 | +msgstr "" |
522 | + |
523 | +#. module: l10n_fr_rib |
524 | +#: field:res.partner.bank,key:0 |
525 | +msgid "Key" |
526 | +msgstr "" |
527 | + |
528 | +#. module: l10n_fr_rib |
529 | +#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib |
530 | +msgid "%(bank_name)s: %(acc_number)s" |
531 | +msgstr "" |
532 | + |
533 | +#. module: l10n_fr_rib |
534 | +#: model:ir.model,name:l10n_fr_rib.model_res_bank |
535 | +msgid "Bank" |
536 | +msgstr "" |
537 | + |
538 | +#. module: l10n_fr_rib |
539 | +#: model:res.partner.bank.type.field,name:l10n_fr_rib.bank_acc_number_field |
540 | +msgid "acc_number" |
541 | +msgstr "" |
542 | + |
Hello Lionel,
This looks like a very important addition to the l10n_fr modules, so I'm in favor of merging it :-)
Have you perhaps got the chance to ask other French OpenERP integrators to review it? Shouldn't we ask them?
A few remarks, nevertheless (line numbers are those of the current diff @r.5755):
- l.61: It would be great if the module manifest contained a more complete description, explaining where users can configure its features, and how to use them
- *: the source files should presumably bear your own copyright, rather than being copyright "OpenERP SA" ;-)
- l.139: assuming that every domain item in the list will be iterable is not correct, what about OR/AND/NOT operators? And actually if you only wanted to have name_search match on the `rib` column in addition to the _rec_name, you could simply override name_search or _name_search, without impacting the normal search().
- l.171: why do you check the constraint again when computing the error message? This will duplicate the check every time...
- l.202: this call to search() is actually a normal name_search() call except you're hardcoding the 'name' field. It'd be slightly better to call super.name_search() (which calls name_get for you, so you need a bit of refactoring)
Thanks!
PS: marking this MP as ``Work In Progress``, when you're ready don't forget to make it ``Needs Review`` again