X-Git-Url: https://git.cyclocoop.org/?p=burette%2Fcoup_de_pouce_velo.git;a=blobdiff_plain;f=point_of_sale.py;h=7d1ebffb1ab0b36138ddf30c2a9b92ab9fbf6007;hp=426469e247087068a54835851b125610800811c8;hb=f6c340a1189bcabf54b97aeab05618d86c15823f;hpb=c6d315a5c03ecf2e24d99907a005b1c0eb41e653 diff --git a/point_of_sale.py b/point_of_sale.py index 426469e..7d1ebff 100644 --- a/point_of_sale.py +++ b/point_of_sale.py @@ -5,10 +5,49 @@ from openerp.osv import osv from openerp.osv import orm from openerp.osv import fields +from openerp.tools.translate import _ + class pos_order(orm.Model): _inherit = 'pos.order' + def check_partner_mobile(self, cr, uid, partner_id, context=None): + """Check if a partner mobile number is defined and display warning + message if not.""" + partner_obj = self.pool.get('res.partner') + partner = partner_obj.browse(cr, uid, partner_id, context=context) + is_mobile = partner.mobile + if not is_mobile: + warn_message = """ + Mobile is required to print a «Coup de Pouce» receipt. + Add mobile number to this partner: %s. + """.decode('utf-8') % partner.name + raise osv.except_osv( + _('Warning'), + _(warn_message)) + return True + _columns = { 'is_cpv': fields.boolean('"Coup de Pouce Velo"?', change_default=True), } + + + def create(self, cr, uid, vals, context=None): + if 'partner_id' in vals: + partner_id = vals['partner_id'] + if 'is_cpv' in vals: + if vals['is_cpv']: + self.check_partner_mobile(cr, uid, partner_id, context) + return super(pos_order, self).create( + cr, uid, vals, context=context + ) + + def write(self, cr, uid, ids, vals, context=None): + order = self.browse(cr, uid, ids[0], context=context) + partner_id = order.partner_id.id + if 'is_cpv' in vals: + if vals['is_cpv']: + self.check_partner_mobile(cr, uid, partner_id, context) + return super(pos_order, self).write( + cr, uid, ids, vals, context=context + )