From: Ludovic CHEVALIER Date: Wed, 27 May 2020 08:39:03 +0000 (+0200) Subject: [PYTHON] +check if partner mobile number exist when creating or modifying pos order... X-Git-Url: http://git.cyclocoop.org/?p=burette%2Fcoup_de_pouce_velo.git;a=commitdiff_plain;h=f6c340a1189bcabf54b97aeab05618d86c15823f [PYTHON] +check if partner mobile number exist when creating or modifying pos order and when printing pos receipt --- diff --git a/__init__.py b/__init__.py index f6b0d96..ca6fde1 100644 --- a/__init__.py +++ b/__init__.py @@ -2,3 +2,4 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). import point_of_sale +import wizard diff --git a/point_of_sale.py b/point_of_sale.py index 426469e..7d1ebff 100644 --- a/point_of_sale.py +++ b/point_of_sale.py @@ -5,10 +5,49 @@ 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 + ) diff --git a/wizard/__init__.py b/wizard/__init__.py new file mode 100644 index 0000000..630cf01 --- /dev/null +++ b/wizard/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2020 L'Heureux Cyclage +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +import pos_receipt diff --git a/wizard/pos_receipt.py b/wizard/pos_receipt.py new file mode 100644 index 0000000..e4bff73 --- /dev/null +++ b/wizard/pos_receipt.py @@ -0,0 +1,19 @@ +# 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)