[PYTHON] +check if partner mobile number exist when creating or modifying pos order...
[burette/coup_de_pouce_velo.git] / point_of_sale.py
1 # -*- coding: utf-8 -*-
2 # Copyright 2020 L'Heureux Cyclage
3 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4
5 from openerp.osv import osv
6 from openerp.osv import orm
7 from openerp.osv import fields
8 from openerp.tools.translate import _
9
10
11 class pos_order(orm.Model):
12 _inherit = 'pos.order'
13
14 def check_partner_mobile(self, cr, uid, partner_id, context=None):
15 """Check if a partner mobile number is defined and display warning
16 message if not."""
17 partner_obj = self.pool.get('res.partner')
18 partner = partner_obj.browse(cr, uid, partner_id, context=context)
19 is_mobile = partner.mobile
20 if not is_mobile:
21 warn_message = """
22 Mobile is required to print a «Coup de Pouce» receipt.
23 Add mobile number to this partner: %s.
24 """.decode('utf-8') % partner.name
25 raise osv.except_osv(
26 _('Warning'),
27 _(warn_message))
28 return True
29
30 _columns = {
31 'is_cpv': fields.boolean('"Coup de Pouce Velo"?', change_default=True),
32 }
33
34
35 def create(self, cr, uid, vals, context=None):
36 if 'partner_id' in vals:
37 partner_id = vals['partner_id']
38 if 'is_cpv' in vals:
39 if vals['is_cpv']:
40 self.check_partner_mobile(cr, uid, partner_id, context)
41 return super(pos_order, self).create(
42 cr, uid, vals, context=context
43 )
44
45 def write(self, cr, uid, ids, vals, context=None):
46 order = self.browse(cr, uid, ids[0], context=context)
47 partner_id = order.partner_id.id
48 if 'is_cpv' in vals:
49 if vals['is_cpv']:
50 self.check_partner_mobile(cr, uid, partner_id, context)
51 return super(pos_order, self).write(
52 cr, uid, ids, vals, context=context
53 )