From 6284fbbbf010203846d5781975ae4f68048a0b2a Mon Sep 17 00:00:00 2001 From: Grover Menacho Date: Mon, 23 Jun 2014 17:06:55 -0400 Subject: [PATCH] [ADD] FIXED create_from_ui inheritable to add more fields on order and payment --- addons/point_of_sale/point_of_sale.py | 37 +++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index c8cf81d..b449be9 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -523,6 +523,25 @@ class pos_order(osv.osv): _description = "Point of Sale" _order = "id desc" + def _order_fields(self, cr, uid, ui_order, context=None): + return { + 'name': ui_order['name'], + 'user_id': ui_order['user_id'] or False, + 'session_id': ui_order['pos_session_id'], + 'lines': ui_order['lines'], + 'pos_reference':ui_order['name'], + 'partner_id': ui_order['partner_id'] or False, + } + + def _payment_fields(self, cr, uid, ui_paymentline, context=None): + return { + 'amount': ui_paymentline['amount'] or 0.0, + 'payment_date': ui_paymentline['name'], + 'statement_id': ui_paymentline['statement_id'], + 'payment_name': ui_paymentline.get('note',False), + 'journal': ui_paymentline['journal_id'], + } + def create_from_ui(self, cr, uid, orders, context=None): # Keep only new orders submitted_references = [o['data']['name'] for o in orders] @@ -536,23 +555,9 @@ class pos_order(osv.osv): to_invoice = tmp_order['to_invoice'] order = tmp_order['data'] - order_id = self.create(cr, uid, { - 'name': order['name'], - 'user_id': order['user_id'] or False, - 'session_id': order['pos_session_id'], - 'lines': order['lines'], - 'pos_reference':order['name'], - 'partner_id': order['partner_id'] or False - }, context) + order_id = self.create(cr, uid, self._order_fields(cr, uid, order, context=context),context) for payments in order['statement_ids']: - payment = payments[2] - self.add_payment(cr, uid, order_id, { - 'amount': payment['amount'] or 0.0, - 'payment_date': payment['name'], - 'statement_id': payment['statement_id'], - 'payment_name': payment.get('note', False), - 'journal': payment['journal_id'] - }, context=context) + self.add_payment(cr, uid, order_id, self._payment_fields(cr, uid, payments[2], context=context), context=context) if order['amount_return']: session = self.pool.get('pos.session').browse(cr, uid, order['pos_session_id'], context=context) -- 1.7.10.4