############################################################################## # # Copyright (c) 2005-2006 TINY SPRL. (http://tiny.be) All Rights Reserved. # # WARNING: This program as such is intended to be used by professional # programmers who take the whole responsability of assessing all potential # consequences resulting from its eventual inadequacies and bugs # End users who are looking for a ready-to-use solution with commercial # garantees and support are strongly adviced to contract a Free Software # Service Company # # This program is Free Software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################## import wizard import math from osv import osv from tools.misc import UpdateableStr import pooler def _is_pair(x): return not x%2 def _get_ean_key(string): if not string or string=='': return '0' if len(string)!=12: return '0' sum=0 for i in range(12): if _is_pair(i): sum+=int(string[i]) else: sum+=3*int(string[i]) return str(int(math.ceil(sum/10.0)*10-sum)) #FIXME: this is not concurrency safe !!!! _check_arch = UpdateableStr() _check_fields = {} def _check_key(self, cr, uid, data, context): partner_table=pooler.get_pool(cr.dbname).get('res.partner') partners = partner_table.browse(cr, uid, data['ids']) _check_arch_lst=['', '
', '