diff --git a/addons/stock_landed_costs/stock_landed_costs.py b/addons/stock_landed_costs/stock_landed_costs.py index 73e47e84aa9..11ead0ab85e 100644 --- a/addons/stock_landed_costs/stock_landed_costs.py +++ b/addons/stock_landed_costs/stock_landed_costs.py @@ -44,6 +44,27 @@ class stock_landed_cost(osv.osv): result[line.cost_id.id] = True return result.keys() + def onchange_pickings(self, cr, uid, ids, picking_ids=None): + result = {'valuation_adjustment_lines': []} + line_obj = self.pool.get('stock.valuation.adjustment.lines') + picking_obj = self.pool.get('stock.picking') + lines = [] + + for cost in self.browse(cr, uid, ids): + line_ids = [line.id for line in cost.valuation_adjustment_lines] + line_obj.unlink(cr, uid, line_ids) + + picking_ids = picking_ids and picking_ids[0][2] or False + if not picking_ids: + return {'value': result} + + for picking in picking_obj.browse(cr, uid, picking_ids): + for move in picking.move_lines: + vals = dict(product_id = move.product_id.id, quantity = move.product_uom_qty, former_cost = move.product_uom_qty * move.price_unit) + lines.append(vals) + result['valuation_adjustment_lines'] = lines + return {'value': result} + _columns = { 'name': fields.char('Name', size=256, required=True), 'date': fields.datetime('Date', required=True), diff --git a/addons/stock_landed_costs/stock_landed_costs_view.xml b/addons/stock_landed_costs/stock_landed_costs_view.xml index db26d329c43..89efd8cc38c 100644 --- a/addons/stock_landed_costs/stock_landed_costs_view.xml +++ b/addons/stock_landed_costs/stock_landed_costs_view.xml @@ -25,7 +25,8 @@ - +