[XML] ~fix bad inheritance for pos order form
[burette/coup_de_pouce_velo.git] / point_of_sale.py
index 426469e..30a1b2c 100644 (file)
@@ -5,10 +5,48 @@
 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."""
+            ) % 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
+        )