[FIX] l10n_ch - postal number check + postal number in demo data
authorYannick Vaucher <yannick.vaucher@camptocamp.com>
Mon, 14 May 2012 14:44:34 +0000 (16:44 +0200)
committerYannick Vaucher <yannick.vaucher@camptocamp.com>
Mon, 14 May 2012 14:44:34 +0000 (16:44 +0200)
bzr revid: yannick.vaucher@camptocamp.com-20120514144434-br1n8npyw9i55z6e

addons/l10n_ch/bank.py
addons/l10n_ch/demo/dta_demo.xml

index 9dd0cad..3cfe527 100644 (file)
@@ -89,8 +89,11 @@ class ResPartnerBank(osv.osv):
         pattern = r'^[0-9]{2}-[0-9]{1,6}-[0-9]$'
         if not re.search(pattern, number):
             return False
-        num, checksum = (number.replace('-','')[:-1], number[-1:])
-        return mod10r(num)[-1:] == checksum
+        nums = number.split('-')
+        prefix = nums[0]
+        num = nums[1].rjust(6,'0')
+        checksum = nums[2]
+        return mod10r(prefix + num)[-1:] == checksum
 
 
     def _check_5_pos_postal_num(self, number):
@@ -112,7 +115,7 @@ class ResPartnerBank(osv.osv):
 
  
     _constraints = [(_check_postal_num,
-                    'Please enter a correct postal number. (01-23456-5 or 12345)',
+                    'Please enter a correct postal number. (01-23456-1 or 12345)',
                     ['post_number'])]    
 
     _sql_constraints = [('bvr_adherent_uniq', 'unique (bvr_adherent_num)',
index 4f44ad2..832c1c6 100644 (file)
@@ -12,7 +12,7 @@
         <field name="acc_number">123456</field>
         <field name="partner_id" ref="base.res_partner_agrolait"/>
         <field name="state">bvrbank</field>
-        <field name="post_number">01-23456-5</field>
+        <field name="post_number">01-23456-1</field>
         <field name="bank" ref="partner_bank"/>
         <!-- <field name="iban">CH9100767000S00023455</field> -->
     </record>