From d00629031af90fc040f8933d2499b418c01f5352 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sat, 20 Dec 2008 10:43:37 +0100 Subject: [PATCH] modifs bzr revid: fp@tinyerp.com-20081220094337-mjo4mhxnfdynzh5y --- addons/point_of_sale/pos.py | 31 +++++++++++++++++++++++-------- addons/point_of_sale/pos_view.xml | 2 +- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/addons/point_of_sale/pos.py b/addons/point_of_sale/pos.py index 954110d2036..d29482db4de 100644 --- a/addons/point_of_sale/pos.py +++ b/addons/point_of_sale/pos.py @@ -44,7 +44,17 @@ class pos_order(osv.osv): _order = "date_order, create_date desc" _order = "date_order desc" - wf_service = netsvc.LocalService("workflow") + def unlink(self, cr, uid, ids, context={}): + for rec in self.browse(cr, uid, ids, context=context): + if rec.state<>'draft': + raise osv.except_osv(_('Invalid action !'), _('Cannot delete a point of sale which is already confirmed !')) + return super(pos_order, self).unlink(cr, uid, ids, context=context) + + def onchange_partner_pricelist(self, cr, uid, ids, part, context={}): + if not part: + return {} + pricelist = self.pool.get('res.partner').browse(cr, uid, part).property_product_pricelist.id + return {'value':{'pricelist_id': pricelist}} def _amount_total(self, cr, uid, ids, field_name, arg, context): id_set = ",".join(map(str, ids)) @@ -340,7 +350,8 @@ class pos_order(osv.osv): 'location_dest_id': stock_dest_id, }) - self.wf_service.trg_validate(uid, 'stock.picking', + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr) self.pool.get('stock.picking').force_assign(cr, uid, [picking_id], context) @@ -375,7 +386,8 @@ class pos_order(osv.osv): clone_id = picking_obj.copy( cr, uid, order.last_out_picking.id, {'type': 'in'}) # Confirm the picking - self.wf_service.trg_validate(uid, 'stock.picking', + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'stock.picking', clone_id, 'button_confirm', cr) clone_list.append(clone_id) # Remove the ref to last picking and delete the payments @@ -409,8 +421,9 @@ class pos_order(osv.osv): 'amount': amount, }) - self.wf_service.trg_validate(uid, 'pos.order', order_id, 'payment', cr) - self.wf_service.trg_write(uid, 'pos.order', order_id, cr) + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'pos.order', order_id, 'payment', cr) + wf_service.trg_write(uid, 'pos.order', order_id, cr) return payment_id def add_product(self, cr, uid, order_id, product_id, qty, context=None): @@ -430,7 +443,8 @@ class pos_order(osv.osv): 'qty': qty, 'price_unit': price, }) - self.wf_service.trg_write(uid, 'pos.order', order_id, cr) + wf_service = netsvc.LocalService("workflow") + wf_service.trg_write(uid, 'pos.order', order_id, cr) return order_line_id @@ -504,7 +518,8 @@ class pos_order(osv.osv): inv_line_ref.create(cr, uid, inv_line, context) for i in inv_ids: - self.wf_service.trg_validate(uid, 'account.invoice', i, 'invoice_open', cr) + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'account.invoice', i, 'invoice_open', cr) return inv_ids def create_account_move(self, cr, uid, ids, context=None): @@ -809,7 +824,7 @@ class pos_payment(osv.osv): _columns = { 'name': fields.char('Description', size=64), - 'order_id': fields.many2one('pos.order', 'Order Ref', required=True), + 'order_id': fields.many2one('pos.order', 'Order Ref', required=True, ondelete='cascade'), 'journal_id': fields.many2one('account.journal', "Journal", required=True), 'amount': fields.float('Amount', required=True), } diff --git a/addons/point_of_sale/pos_view.xml b/addons/point_of_sale/pos_view.xml index b9fe90df9f1..4c6510f4abb 100644 --- a/addons/point_of_sale/pos_view.xml +++ b/addons/point_of_sale/pos_view.xml @@ -80,7 +80,7 @@ - +