[FIX] point_of_sale: prevent duplicated order posting
bzr revid: dle@openerp.com-20140317164131-eewyqmzz5niebz2a
This commit is contained in:
parent
9965b2c434
commit
112fe22347
|
@ -488,10 +488,14 @@ class pos_order(osv.osv):
|
|||
_description = "Point of Sale"
|
||||
_order = "id desc"
|
||||
|
||||
def create_from_ui(self, cr, uid, orders, context=None):
|
||||
#_logger.info("orders: %r", orders)
|
||||
def create_from_ui(self, cr, uid, orders, context=None):
|
||||
# Keep only new orders
|
||||
submitted_references = [o['data']['name'] for o in orders]
|
||||
existing_orders = self.search_read(cr, uid, domain=[('pos_reference', 'in', submitted_references)], fields=['pos_reference'], context=context)
|
||||
existing_references = set([o['pos_reference'] for o in existing_orders])
|
||||
orders_to_save = [o for o in orders if o['data']['name'] not in existing_references]
|
||||
order_ids = []
|
||||
for tmp_order in orders:
|
||||
for tmp_order in orders_to_save:
|
||||
order = tmp_order['data']
|
||||
order_id = self.create(cr, uid, {
|
||||
'name': order['name'],
|
||||
|
@ -529,7 +533,10 @@ class pos_order(osv.osv):
|
|||
}, context=context)
|
||||
order_ids.append(order_id)
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'pos.order', order_id, 'paid', cr)
|
||||
try:
|
||||
wf_service.trg_validate(uid, 'pos.order', order_id, 'paid', cr)
|
||||
except Exception:
|
||||
_logger.error('ERROR: Could not mark POS Order as Paid.', exc_info=True)
|
||||
return order_ids
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
|
|
Loading…
Reference in New Issue