Merge pull request #2918 from odoo-dev/8.0-wmsextramoves-jco
[IMP] Make sure invoice_state of picking is used when creating extra moves
This commit is contained in:
commit
f563be5cc0
|
@ -1255,6 +1255,23 @@ class stock_picking(osv.osv):
|
|||
if picking.pack_operation_ids:
|
||||
self.recompute_remaining_qty(cr, uid, picking, context=context)
|
||||
|
||||
def _prepare_values_extra_move(self, cr, uid, op, product, remaining_qty, context=None):
|
||||
"""
|
||||
Creates an extra move when there is no corresponding original move to be copied
|
||||
"""
|
||||
picking = op.picking_id
|
||||
res = {
|
||||
'picking_id': picking.id,
|
||||
'location_id': picking.location_id.id,
|
||||
'location_dest_id': picking.location_dest_id.id,
|
||||
'product_id': product.id,
|
||||
'product_uom': product.uom_id.id,
|
||||
'product_uom_qty': remaining_qty,
|
||||
'name': _('Extra Move: ') + op.product_id.name,
|
||||
'state': 'draft',
|
||||
}
|
||||
return res
|
||||
|
||||
def _create_extra_moves(self, cr, uid, picking, context=None):
|
||||
'''This function creates move lines on a picking, at the time of do_transfer, based on
|
||||
unexpected product transfers (or exceeding quantities) found in the pack operations.
|
||||
|
@ -1266,16 +1283,7 @@ class stock_picking(osv.osv):
|
|||
for product_id, remaining_qty in operation_obj._get_remaining_prod_quantities(cr, uid, op, context=context).items():
|
||||
if remaining_qty > 0:
|
||||
product = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
|
||||
vals = {
|
||||
'picking_id': picking.id,
|
||||
'location_id': picking.location_id.id,
|
||||
'location_dest_id': picking.location_dest_id.id,
|
||||
'product_id': product_id,
|
||||
'product_uom': product.uom_id.id,
|
||||
'product_uom_qty': remaining_qty,
|
||||
'name': _('Extra Move: ') + product.name,
|
||||
'state': 'draft',
|
||||
}
|
||||
vals = self._prepare_values_extra_move(cr, uid, op, product, remaining_qty, context=context)
|
||||
moves.append(move_obj.create(cr, uid, vals, context=context))
|
||||
if moves:
|
||||
move_obj.action_confirm(cr, uid, moves, context=context)
|
||||
|
|
|
@ -300,3 +300,13 @@ class stock_picking(osv.osv):
|
|||
|
||||
invoice_obj.button_compute(cr, uid, invoices.values(), context=context, set_total=(inv_type in ('in_invoice', 'in_refund')))
|
||||
return invoices.values()
|
||||
|
||||
def _prepare_values_extra_move(self, cr, uid, op, product, remaining_qty, context=None):
|
||||
"""
|
||||
Need to pass invoice_state of picking when an extra move is created which is not a copy of a previous
|
||||
"""
|
||||
res = super(stock_picking, self)._prepare_values_extra_move(cr, uid, op, product, remaining_qty, context=context)
|
||||
res.update({'invoice_state': op.picking_id.invoice_state})
|
||||
if op.linked_move_operation_ids:
|
||||
res.update({'price_unit': op.linked_move_operation_ids[-1].move_id.price_unit})
|
||||
return res
|
Loading…
Reference in New Issue