diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index 1b2d7c93466..66856663733 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -361,17 +361,23 @@ class procurement_order(osv.osv): """ ok = True if procurement.move_id: + message = False id = procurement.move_id.id if not (procurement.move_id.state in ('done','assigned','cancel')): ok = ok and self.pool.get('stock.move').action_assign(cr, uid, [id]) cr.execute('select count(id) from stock_warehouse_orderpoint where product_id=%s', (procurement.product_id.id,)) - if not cr.fetchone()[0]: - cr.execute('update procurement_order set message=%s where id=%s', - (_('Not enough stock and no minimum orderpoint rule defined.'), - procurement.id)) - message = _("Procurement '%s' is in exception: not enough stock.") % \ - (procurement.name,) - self.log(cr, uid, procurement.id, message) + res = cr.fetchone()[0] + if not res and not ok: + message = _("Not enough stock and no minimum orderpoint rule defined.") + elif not res: + message = _("No minimum orderpoint rule defined for '%s'.") % \ + (procurement.move_id.product_id.name,) + elif not ok: + message = _("Not enough stock for '%s'.") % (procurement.move_id.product_id.name,) + + if message: + self.log(cr, uid, procurement.id, _("Procurement '%s' is in exception: ") % (procurement.name) + message) + cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id)) return ok def action_produce_assign_service(self, cr, uid, ids, context=None): diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index cd8c338da89..6899b673c70 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -166,10 +166,9 @@ class product_pricelist(osv.osv): pricelist_version_ids = pricelist_ids else: # all pricelists: - pricelist_version_ids = product_pricelist_version_obj.search(cr, uid, []) + pricelist_version_ids = self.pool.get('product.pricelist').search(cr, uid, [], context=context) pricelist_version_ids = list(set(pricelist_version_ids)) - plversions_search_args = [ ('pricelist_id', 'in', pricelist_version_ids), '|', diff --git a/addons/purchase/report/purchase_report_view.xml b/addons/purchase/report/purchase_report_view.xml index 7f52ca73cf0..40c05e2955c 100644 --- a/addons/purchase/report/purchase_report_view.xml +++ b/addons/purchase/report/purchase_report_view.xml @@ -171,7 +171,8 @@ - + diff --git a/addons/purchase_requisition/purchase_requisition_view.xml b/addons/purchase_requisition/purchase_requisition_view.xml index ce67b0921c3..c68c6dbbb89 100644 --- a/addons/purchase_requisition/purchase_requisition_view.xml +++ b/addons/purchase_requisition/purchase_requisition_view.xml @@ -21,8 +21,8 @@ purchase.order - - + + diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 65991b798d8..2628d7ed509 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -739,12 +739,13 @@ class sale_order(osv.osv): proc_obj.write(cr, uid, [proc_id], {'product_qty': mov.product_qty, 'product_uos_qty': mov.product_uos_qty}) val = {} - for proc_id in proc_ids: - wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr) if picking_id: wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr) + for proc_id in proc_ids: + wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr) + if order.state == 'shipping_except': val['state'] = 'progress' val['shipped'] = False diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 97d5f9a0270..52645f05233 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1775,7 +1775,7 @@ class stock_move(osv.osv): picking_obj = self.pool.get('stock.picking') pick_id= picking_obj.create(cr, uid, { 'name': pick_name, - 'origin': str(picking.origin or ''), + 'origin': tools.ustr(picking.origin or ''), 'type': ptype, 'note': picking.note, 'move_type': picking.move_type,