diff --git a/addons/stock/procurement.py b/addons/stock/procurement.py index 6cf274ee2d0..b47908c73bb 100644 --- a/addons/stock/procurement.py +++ b/addons/stock/procurement.py @@ -278,7 +278,7 @@ class procurement_order(osv.osv): self. _procure_orderpoint_confirm(cr, uid, automatic=False,use_new_cursor=False, context=context, user_id=False) #Search all confirmed stock_moves and try to assign them - confirmed_ids = move_obj.search(cr, uid, [('state', '=', 'confirmed'), ('company_id','=', company.id)], limit = None, context=context) #Type = stockable product? + confirmed_ids = move_obj.search(cr, uid, [('state', '=', 'confirmed'), ('company_id','=', company.id)], limit=None, order='picking_priority desc, date_expected asc', context=context) for x in xrange(0, len(confirmed_ids), 100): move_obj.action_assign(cr, uid, confirmed_ids[x:x+100], context=context) if use_new_cursor: diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 2f52ce604e0..062dd5efb10 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1243,6 +1243,12 @@ class stock_move(osv.osv): res.add(quant.reservation_id.id) return list(res) + def _get_move_ids(self, cr, uid, ids, context=None): + res = [] + for picking in self.browse(cr, uid, ids, context=context): + res += [x.id for x in picking.move_lines] + return res + _columns = { 'name': fields.char('Description', required=True, select=True), 'priority': fields.selection([('0', 'Not urgent'), ('1', 'Urgent')], 'Priority'), @@ -1281,7 +1287,7 @@ class stock_move(osv.osv): 'move_orig_ids': fields.one2many('stock.move', 'move_dest_id', 'Original Move', help="Optional: previous stock move when chaining them", select=True), 'picking_id': fields.many2one('stock.picking', 'Reference', select=True, states={'done': [('readonly', True)]}), - 'picking_priority': fields.related('picking_id', 'priority', type='selection', selection=[('0', 'Low'), ('1', 'Normal'), ('2', 'High')], string='Picking Priority'), + 'picking_priority': fields.related('picking_id', 'priority', type='selection', selection=[('0', 'Low'), ('1', 'Normal'), ('2', 'High')], string='Picking Priority', store={'stock.picking': (_get_move_ids, ['priority'], 10)}), 'note': fields.text('Notes'), 'state': fields.selection([('draft', 'New'), ('cancel', 'Cancelled'), @@ -2904,7 +2910,7 @@ class stock_location_path(osv.osv): def _get_rules(self, cr, uid, ids, context=None): res = [] - for route in self.browse(cr, uid, ids): + for route in self.browse(cr, uid, ids, context=context): res += [x.id for x in route.push_ids] return res