diff --git a/addons/point_of_sale/wizard/pos_payment.py b/addons/point_of_sale/wizard/pos_payment.py index 8e60acdcae0..ea5bd2639d7 100644 --- a/addons/point_of_sale/wizard/pos_payment.py +++ b/addons/point_of_sale/wizard/pos_payment.py @@ -150,10 +150,7 @@ class pos_make_payment(osv.osv_memory): amount = order.amount_total - order.amount_paid data = self.read(cr, uid, ids, context=context)[0] for m2o_field in ['product_id','pricelist_id','partner_id']: - data[m2o_field] = data[m2o_field][0] - partner = obj_partner.browse(cr, uid, data['partner_id'], context=context) - if not partner.address: - raise osv.except_osv(_('Error!'),_("Customer doesn't have an address to make the invoice")) + data[m2o_field] = data.get(m2o_field, False) and data[m2o_field][0] or False if data['is_acc']: amount = self.pool.get('product.product').browse(cr, uid, data['product_id'], context=context).list_price @@ -163,6 +160,9 @@ class pos_make_payment(osv.osv_memory): if order_obj.test_paid(cr, uid, [active_id]): if data['partner_id'] and data['invoice_wanted']: + partner = obj_partner.browse(cr, uid, data['partner_id'], context=context) + if not partner.address: + raise osv.except_osv(_('Error!'),_("Customer doesn't have an address to make the invoice")) order_obj.action_invoice(cr, uid, [active_id], context=context) order_obj.create_picking(cr, uid, [active_id], context=context) if context.get('return', False):