[SECURITY] ~fix access to pos.make.payment
[burette/coup_de_pouce_velo.git] / point_of_sale.py
index 426469e..9c9a016 100644 (file)
@@ -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
+        )