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
+ )