X-Git-Url: https://git.cyclocoop.org/?p=burette%2Fcoup_de_pouce_velo.git;a=blobdiff_plain;f=point_of_sale.py;h=9c9a0168ac392c1b7b7fe48325e67dc5ce13f5c5;hp=426469e247087068a54835851b125610800811c8;hb=HEAD;hpb=c6d315a5c03ecf2e24d99907a005b1c0eb41e653 diff --git a/point_of_sale.py b/point_of_sale.py index 426469e..9c9a016 100644 --- a/point_of_sale.py +++ b/point_of_sale.py @@ -5,10 +5,39 @@ 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' - _columns = { - 'is_cpv': fields.boolean('"Coup de Pouce Velo"?', change_default=True), - } + def check_partner_mobile(self, cr, uid, order_id, context=None): + """Check if a partner mobile number is defined and display warning + message if not.""" + order = self.browse(cr, uid, order_id, context=context) + is_mobile = order.partner_id.mobile + partner = order.partner_id + if not is_mobile: + warn_message = _( + """Mobile is required to print a «Coup de Pouce» receipt.\ + Add mobile number to this partner: %s.""" + ) % partner.name + raise osv.except_osv( + _('Warning!'), + warn_message) + return True + + def write(self, cr, uid, ids, vals, context=None): + order = self.browse(cr, uid, ids[0], context=context) + order_id = order.id + partner_id = order.partner_id.id + statements = order.statement_ids + is_cpv = 0 + for statement in statements: + if statement.journal_id.is_cpv: + is_cpv +=1 + if is_cpv: + self.check_partner_mobile(cr, uid, order_id, context) + return super(pos_order, self).write( + cr, uid, ids, vals, context=context + )