From d518bdce72c8f3136dea3635db03112c44e39c8c Mon Sep 17 00:00:00 2001 From: openerp user Date: Tue, 13 Sep 2011 11:55:22 +0200 Subject: [PATCH] Adding vat check for country of Croatia bzr revid: openerp@openerp6desktop-20110913095522-b7ry940z7fnysvlb --- addons/base_vat/base_vat.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/addons/base_vat/base_vat.py b/addons/base_vat/base_vat.py index 6393c0a6182..835a23e7e27 100644 --- a/addons/base_vat/base_vat.py +++ b/addons/base_vat/base_vat.py @@ -42,7 +42,7 @@ _ref_vat = { 'pt': 'PT123456789', 'ro': 'RO1234567897', 'se': 'SE123456789701', 'si': 'SI12345679', 'sk': 'SK0012345675', 'el': 'EL12345670', - 'mx': 'MXABCD831230T1B', + 'mx': 'MXABCD831230T1B', 'hr': 'HR01234567896' } @@ -1104,7 +1104,28 @@ class res_partner(osv.osv): #Valid format and valid date return True - + + def check_vat_hr(self, vat): + ''' + Check Croatia VAT number. + ''' + if not vat: + return True + + if len(vat) != 11: + return False + try: + int(vat) + except ValueError: + return False + t = 10 + for i in vat[:-1]: + c = int(i) + t = (2 * ((t + c) % 10 or 10)) % 11 + check = (11 - t) % 10 + if check != int(vat[10]): + return False + return True res_partner() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: