diff --git a/addons/base_iban/base_iban.py b/addons/base_iban/base_iban.py
index 157b88960bf..3dac7010755 100644
--- a/addons/base_iban/base_iban.py
+++ b/addons/base_iban/base_iban.py
@@ -100,7 +100,7 @@ class res_partner_bank(osv.osv):
Check the IBAN number
'''
for bank_acc in self.browse(cr, uid, ids, context=context):
- if bank_acc.state<>'iban':
+ if bank_acc.state not in ('iban', 'iban-rib'):
continue
iban = _format_iban(bank_acc.acc_number).lower()
if iban[:2] in _iban_len and len(iban) != _iban_len[iban[:2]]:
diff --git a/addons/l10n_fr_rib/bank.py b/addons/l10n_fr_rib/bank.py
index 03f71f60dee..39d35a8254e 100644
--- a/addons/l10n_fr_rib/bank.py
+++ b/addons/l10n_fr_rib/bank.py
@@ -31,18 +31,18 @@ class res_partner_bank(osv.osv):
"""Check the RIB key"""
for bank_acc in self.browse(cr, uid, ids):
# Ignore the accounts of type other than rib
- if bank_acc.state !='rib':
+ if bank_acc.state not in ('rib', 'iban-rib'):
continue
# Fail if the needed values are empty of too short
if (not bank_acc.bank_code
or len(bank_acc.bank_code) != 5
or not bank_acc.office or len(bank_acc.office) != 5
- or not bank_acc.acc_number or len(bank_acc.acc_number) != 11
+ or not bank_acc.rib_acc_number or len(bank_acc.rib_acc_number) != 11
or not bank_acc.key or len(bank_acc.key) != 2):
return False
# Get the rib data (without the key)
rib = "%s%s%s" % (bank_acc.bank_code, bank_acc.office,
- bank_acc.acc_number)
+ bank_acc.rib_acc_number)
# Translate letters into numbers according to a specific table
# (notice how s -> 2)
table = dict((ord(a), b) for a, b in zip(
@@ -51,7 +51,15 @@ class res_partner_bank(osv.osv):
# compute the key
key = 97 - (100 * int(rib)) % 97
if int(bank_acc.key) != key:
- return False
+ raise osv.except_osv(_('Error'),
+ _("The RIB key %s does not correspond to the other "
+ "codes: %s %s %s.") %
+ (bank_acc.key, bank_acc.bank_code,
+ bank_acc.office, bank_acc.rib_acc_number) )
+ if bank_acc.state == 'iban-rib':
+ if not self.check_iban(cr, uid, [bank_acc.id]):
+ raise osv.except_osv(_('Error'),
+ _("The IBAN %s is not valid.") % bank_acc.acc_number)
return True
def onchange_bank_id(self, cr, uid, ids, bank_id, context=None):
@@ -66,31 +74,18 @@ class res_partner_bank(osv.osv):
return result
_columns = {
+ 'acc_number': fields.char('Account Number', size=64, required=False),
+ 'rib_acc_number': fields.char('RIB account number', size=11, readonly=True,),
'bank_code': fields.char('Bank Code', size=64, readonly=True,),
'office': fields.char('Office Code', size=5, readonly=True,),
'key': fields.char('Key', size=2, readonly=True,
help="The key is a number allowing to check the "
"correctness of the other codes."),
}
-
- def _construct_constraint_msg(self, cr, uid, ids, context=None):
- """Quote the data in the warning message"""
- # Only process the first id
- if type(ids) not in (int, long):
- id = ids[0]
- rib = self.browse(cr, uid, id, context=context)
- if rib:
- return (_("\nThe RIB key %s does not correspond to the other "
- "codes: %s %s %s.") %
- (rib.key,
- rib.bank_code,
- rib.office,
- rib.acc_number) )
- _constraints = [(_check_key,
- _construct_constraint_msg,
- ["key"])]
-
+ _constraints = [(_check_key, 'Error message in raise',
+ ['acc_number', 'rib_acc_number', 'bank_code', 'office', 'key'])]
+
res_partner_bank()
class res_bank(osv.osv):
diff --git a/addons/l10n_fr_rib/bank_data.xml b/addons/l10n_fr_rib/bank_data.xml
index 1dc9f4c88fd..bd01ed5c691 100644
--- a/addons/l10n_fr_rib/bank_data.xml
+++ b/addons/l10n_fr_rib/bank_data.xml
@@ -9,21 +9,23 @@
RIB Bank Details
rib
-
+
bank_code
+ 5
office
+ 5
-
- acc_number
+
+ rib_acc_number
@@ -34,11 +36,66 @@
+ 2
+
+
+ acc_number
+
+
+
bank_bic
+
+
+
+
+
+ IBAN and RIB
+ iban-rib
+
+
+
+ bank_code
+
+
+
+ 5
+
+
+ office
+
+
+
+ 5
+
+
+ rib_acc_number
+
+
+
+ 11
+
+
+ key
+
+
+
+ 2
+
+
+ acc_number
+
+
+
+
+
+ bank_bic
+
+
+
diff --git a/addons/l10n_fr_rib/bank_view.xml b/addons/l10n_fr_rib/bank_view.xml
index 56eb8393aef..af62b810aee 100644
--- a/addons/l10n_fr_rib/bank_view.xml
+++ b/addons/l10n_fr_rib/bank_view.xml
@@ -5,29 +5,56 @@
res.partner.form.rib1.inherit
res.partner
-
+
form
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- res.partner.form.rib2.inherit
- res.partner
-
- form
-
-
-
-
-
-
-
+
+
+
+ res.partner.bank.form.rib.inherit
+ res.partner.bank
+
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ res.partner.bank.tree.rib.inherit
+ res.partner.bank
+
+ tree
+
+
+
+
+
+
+
res.bank.form.rib.inherit
diff --git a/addons/l10n_fr_rib/i18n/fr.po b/addons/l10n_fr_rib/i18n/fr.po
index 4057dafb803..324c3f23940 100644
--- a/addons/l10n_fr_rib/i18n/fr.po
+++ b/addons/l10n_fr_rib/i18n/fr.po
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 6.1beta\n"
+"Project-Id-Version: OpenERP Server 6.1rc1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-21 12:37+0000\n"
-"PO-Revision-Date: 2011-11-21 12:37+0000\n"
+"POT-Creation-Date: 2012-01-27 14:22+0000\n"
+"PO-Revision-Date: 2012-01-27 14:22+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -16,46 +16,11 @@ msgstr ""
"Plural-Forms: \n"
#. module: l10n_fr_rib
-#: constraint:res.partner.bank:0
-msgid "\n"
-"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"
-msgstr "\n"
-"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"
-
-#. module: l10n_fr_rib
-#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank
-msgid "Bank Accounts"
-msgstr "Comptes bancaires"
-
-#. module: l10n_fr_rib
-#: field:res.partner.bank,bank_code:0
-msgid "Bank Code"
-msgstr "Code banque"
-
-#. module: l10n_fr_rib
-#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field
-msgid "bank_bic"
-msgstr "bank_bic"
-
-#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_office_field
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field
msgid "office"
msgstr "Agence"
-#. module: l10n_fr_rib
-#: field:res.bank,rib_code:0
-msgid "RIB Bank Code"
-msgstr "Code banque RIB"
-
-#. module: l10n_fr_rib
-#: model:ir.module.module,description:l10n_fr_rib.module_meta_information
-msgid "\n"
-"This module installs the base for RIB bank accounts (French standard for bank accounts). \n"
-"To make it easier to enter RIB data, it will also allow to search for banks by code."
-msgstr "\n"
-"Ce module installe la base pour les comptes bancaires RIB (norme française pour les n° de compte). \n"
-"Pour faciliter la saisie des RIBs, il permet aussi de chercher les banques par code."
-
#. module: l10n_fr_rib
#: field:res.partner.bank,office:0
msgid "Office Code"
@@ -66,51 +31,110 @@ msgstr "Code agence"
msgid "RIB Bank Details"
msgstr "Relevé d'identité bancaire (RIB)"
-#. module: l10n_fr_rib
-#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field
-msgid "bank_code"
-msgstr "bank_code"
-
-#. module: l10n_fr_rib
-#: code:addons/l10n_fr_rib/bank.py:109
-#, python-format
-msgid "\n"
-"The RIB key %s does not correspond to the other codes: %s %s %s."
-msgstr "\n"
-"La clé RIB %s ne correspond pas aux autres codes : %s %s %s."
-
-#. module: l10n_fr_rib
-#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field
-msgid "key"
-msgstr "key"
-
-#. module: l10n_fr_rib
-#: model:ir.module.module,shortdesc:l10n_fr_rib.module_meta_information
-msgid "French RIB Bank Details"
-msgstr "Relevés d'identité bancaire français (RIB)"
-
#. module: l10n_fr_rib
#: help:res.partner.bank,key:0
msgid "The key is a number allowing to check the correctness of the other codes."
msgstr "La clé est un nombre permettant de vérifier que les autres codes sont corrects."
+#. module: l10n_fr_rib
+#: field:res.partner.bank,rib_acc_number:0
+msgid "RIB account number"
+msgstr "Numéro de compte RIB"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type,name:l10n_fr_rib.bank_iban_rib
+msgid "IBAN and RIB"
+msgstr "IBAN et RIB"
+
+#. module: l10n_fr_rib
+#: code:addons/l10n_fr_rib/bank.py:62
+#, python-format
+msgid "The IBAN %s is not valid."
+msgstr "L'IBAN %s n'est pas valide."
+
#. module: l10n_fr_rib
#: field:res.partner.bank,key:0
msgid "Key"
msgstr "Clé"
-#. module: l10n_fr_rib
-#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib
-msgid "%(bank_name)s: %(acc_number)s"
-msgstr "%(bank_name)s: %(acc_number)s"
-
#. module: l10n_fr_rib
#: model:ir.model,name:l10n_fr_rib.model_res_bank
msgid "Bank"
msgstr "Banque"
#. module: l10n_fr_rib
-#: model:res.partner.bank.type.field,name:l10n_fr_rib.bank_acc_number_field
+#: constraint:res.partner.bank:0
+msgid "\n"
+"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"
+msgstr "\n"
+"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_bank_code_field
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field
+msgid "bank_code"
+msgstr "bank_code"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_key_field
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field
+msgid "key"
+msgstr "key"
+
+#. module: l10n_fr_rib
+#: code:addons/l10n_fr_rib/bank.py:54
+#: code:addons/l10n_fr_rib/bank.py:61
+#, python-format
+msgid "Error"
+msgstr "Error"
+
+#. module: l10n_fr_rib
+#: constraint:res.partner.bank:0
+msgid "Error message in raise"
+msgstr "Error message in raise"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_acc_number_field
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_acc_number_field
msgid "acc_number"
msgstr "acc_number"
+#. module: l10n_fr_rib
+#: field:res.partner.bank,bank_code:0
+msgid "Bank Code"
+msgstr "Code banque"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_bic_field
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field
+msgid "bank_bic"
+msgstr "bank_bic"
+
+#. module: l10n_fr_rib
+#: field:res.bank,rib_code:0
+msgid "RIB Bank Code"
+msgstr "Code banque RIB"
+
+#. module: l10n_fr_rib
+#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank
+msgid "Bank Accounts"
+msgstr "Comptes bancaires"
+
+#. module: l10n_fr_rib
+#: code:addons/l10n_fr_rib/bank.py:55
+#, python-format
+msgid "The RIB key %s does not correspond to the other codes: %s %s %s."
+msgstr "La clé RIB %s ne correspond pas aux autres codes : %s %s %s."
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_rib_acc_number_field
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_rib_acc_number_field
+msgid "rib_acc_number"
+msgstr "rib_acc_number"
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_iban_rib
+#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib
+msgid "%(bank_name)s: %(acc_number)s"
+msgstr "%(bank_name)s: %(acc_number)s"
+
diff --git a/addons/l10n_fr_rib/i18n/l10n_fr_rib.pot b/addons/l10n_fr_rib/i18n/l10n_fr_rib.pot
index 8953cd5329e..c2f6adbd4de 100644
--- a/addons/l10n_fr_rib/i18n/l10n_fr_rib.pot
+++ b/addons/l10n_fr_rib/i18n/l10n_fr_rib.pot
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 6.1beta\n"
+"Project-Id-Version: OpenERP Server 6.1rc1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-12-22 18:45+0000\n"
-"PO-Revision-Date: 2011-12-22 18:45+0000\n"
+"POT-Creation-Date: 2012-01-27 14:22+0000\n"
+"PO-Revision-Date: 2012-01-27 14:22+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -16,36 +16,11 @@ msgstr ""
"Plural-Forms: \n"
#. module: l10n_fr_rib
-#: constraint:res.partner.bank:0
-msgid "\n"
-"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"
-msgstr ""
-
-#. module: l10n_fr_rib
-#: field:res.partner.bank,bank_code:0
-msgid "Bank Code"
-msgstr ""
-
-#. module: l10n_fr_rib
-#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field
-msgid "bank_bic"
-msgstr ""
-
-#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_office_field
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field
msgid "office"
msgstr ""
-#. module: l10n_fr_rib
-#: field:res.bank,rib_code:0
-msgid "RIB Bank Code"
-msgstr ""
-
-#. module: l10n_fr_rib
-#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank
-msgid "Bank Accounts"
-msgstr ""
-
#. module: l10n_fr_rib
#: field:res.partner.bank,office:0
msgid "Office Code"
@@ -56,45 +31,109 @@ msgstr ""
msgid "RIB Bank Details"
msgstr ""
-#. module: l10n_fr_rib
-#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field
-msgid "bank_code"
-msgstr ""
-
-#. module: l10n_fr_rib
-#: code:addons/l10n_fr_rib/bank.py:83
-#, python-format
-msgid "\n"
-"The RIB key %s does not correspond to the other codes: %s %s %s."
-msgstr ""
-
-#. module: l10n_fr_rib
-#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field
-msgid "key"
-msgstr ""
-
#. module: l10n_fr_rib
#: help:res.partner.bank,key:0
msgid "The key is a number allowing to check the correctness of the other codes."
msgstr ""
+#. module: l10n_fr_rib
+#: field:res.partner.bank,rib_acc_number:0
+msgid "RIB account number"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type,name:l10n_fr_rib.bank_iban_rib
+msgid "IBAN and RIB"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: code:addons/l10n_fr_rib/bank.py:62
+#, python-format
+msgid "The IBAN %s is not valid."
+msgstr ""
+
#. module: l10n_fr_rib
#: field:res.partner.bank,key:0
msgid "Key"
msgstr ""
-#. module: l10n_fr_rib
-#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib
-msgid "%(bank_name)s: %(acc_number)s"
-msgstr ""
-
#. module: l10n_fr_rib
#: model:ir.model,name:l10n_fr_rib.model_res_bank
msgid "Bank"
msgstr ""
#. module: l10n_fr_rib
-#: model:res.partner.bank.type.field,name:l10n_fr_rib.bank_acc_number_field
+#: constraint:res.partner.bank:0
+msgid "\n"
+"Please define BIC/Swift code on bank for bank type IBAN Account to make valid payments"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_bank_code_field
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field
+msgid "bank_code"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_key_field
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field
+msgid "key"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: code:addons/l10n_fr_rib/bank.py:54
+#: code:addons/l10n_fr_rib/bank.py:61
+#, python-format
+msgid "Error"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: constraint:res.partner.bank:0
+msgid "Error message in raise"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_acc_number_field
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_acc_number_field
msgid "acc_number"
msgstr ""
+#. module: l10n_fr_rib
+#: field:res.partner.bank,bank_code:0
+msgid "Bank Code"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_bic_field
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field
+msgid "bank_bic"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: field:res.bank,rib_code:0
+msgid "RIB Bank Code"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank
+msgid "Bank Accounts"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: code:addons/l10n_fr_rib/bank.py:55
+#, python-format
+msgid "The RIB key %s does not correspond to the other codes: %s %s %s."
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.iban_rib_rib_acc_number_field
+#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_rib_acc_number_field
+msgid "rib_acc_number"
+msgstr ""
+
+#. module: l10n_fr_rib
+#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_iban_rib
+#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib
+msgid "%(bank_name)s: %(acc_number)s"
+msgstr ""
+