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
+ )
--- /dev/null
+# Copyright 2020 L'Heureux Cyclage
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from openerp.osv import osv
+from openerp.osv import orm
+from openerp.osv import fields
+
+
+class pos_receipt(orm.Model):
+ _inherit = 'pos.receipt'
+
+ def print_report(self, cr, uid, ids, context=None):
+ """Check if partner mobile number is defined before print receipt."""
+ order_id = context['active_id']
+ order_obj = self.pool.get('pos.order')
+ order = order_obj.browse(cr, uid, order_id, context=context)
+ partner_id = order.partner_id.id
+ order_obj.check_partner_mobile(cr, uid, partner_id, context=None)
+ return super(pos_receipt, self).print_report(cr, uid, ids, context=context)