diff --git a/addons/point_of_sale/__init__.py b/addons/point_of_sale/__init__.py index 323eb4ccd7f..ec5403212f4 100644 --- a/addons/point_of_sale/__init__.py +++ b/addons/point_of_sale/__init__.py @@ -22,6 +22,7 @@ import point_of_sale import account_bank_statement import product +import res_users import wizard import report diff --git a/addons/point_of_sale/__openerp__.py b/addons/point_of_sale/__openerp__.py index 91f5202536b..088e3ceeb3a 100644 --- a/addons/point_of_sale/__openerp__.py +++ b/addons/point_of_sale/__openerp__.py @@ -67,6 +67,7 @@ Main features : 'account_statement_view.xml', 'account_statement_report.xml', 'product_view.xml', + 'res_users_view.xml', ], 'demo_xml': [ 'point_of_sale_demo.xml', diff --git a/addons/point_of_sale/res_users.py b/addons/point_of_sale/res_users.py new file mode 100644 index 00000000000..e048ad01dac --- /dev/null +++ b/addons/point_of_sale/res_users.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python +from osv import osv, fields +import math + +def is_pair(x): + return not x%2 +# This code is a duplicate of product#check_ean function +def check_ean(eancode): + if not eancode: + return True + if len(eancode) <> 13: + return False + try: + int(eancode) + except: + return False + oddsum=0 + evensum=0 + total=0 + eanvalue=eancode + reversevalue = eanvalue[::-1] + finalean=reversevalue[1:] + + for i in range(len(finalean)): + if is_pair(i): + oddsum += int(finalean[i]) + else: + evensum += int(finalean[i]) + total=(oddsum * 3) + evensum + + check = int(10 - math.ceil(total % 10.0)) %10 + + if check != int(eancode[-1]): + return False + return True + +class res_users(osv.osv): + _inherit = 'res.users' + + _columns = { + 'ean13' : fields.char('EAN13', size=13, help="BarCode"), + } + + def _check_ean(self, cr, uid, ids, context=None): + return all( + check_ean(user.ean13) == True + for user in self.browse(cr, uid, ids, context=context) + ) + + _constraints = [ + (_check_ean, "Error: Invalid ean code", ['ean13'],), + ] + + diff --git a/addons/point_of_sale/res_users_view.xml b/addons/point_of_sale/res_users_view.xml new file mode 100644 index 00000000000..c34b9566406 --- /dev/null +++ b/addons/point_of_sale/res_users_view.xml @@ -0,0 +1,18 @@ + + + + + res.users.form.view + res.users + form + + + + + + + + + + + \ No newline at end of file