Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions stock_voucher/models/stock_picking.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ def _compute_declared_value(self):
for so_bom_line in stock_bom_lines.mapped("sale_line_id"):
bom = self.env["mrp.bom"]._bom_find(products=so_bom_line.product_id)[so_bom_line.product_id]
if bom and bom.type == "phantom":
bom_moves = so_bom_line.move_ids & stock_bom_lines._origin
bom_moves = so_bom_line.move_ids & stock_bom_lines
done_avg = []
picking_avg = []
boms, lines = bom.sudo().explode(
Expand All @@ -207,14 +207,21 @@ def _compute_declared_value(self):
bom_quantity += line_data["qty"]
if not bom_quantity:
continue
rec_move = rec.move_ids.filtered(lambda m: m._origin.id == move.id)
if not rec_move:
continue
picking_avg.append(move.product_uom_qty / bom_quantity)
done_avg.append(rec_move.quantity / bom_quantity)
done_avg.append(move.quantity / bom_quantity)
if picking_avg and done_avg:
picking_value += so_bom_line.price_reduce_taxexcl * (sum(picking_avg) / len(picking_avg))
done_value += so_bom_line.price_reduce_taxexcl * (sum(done_avg) / len(done_avg))
# In v18, we need to multiply by quantity to get the correct total value
# price_reduce_taxexcl is the unit price, not the line total
picking_value += (
so_bom_line.price_reduce_taxexcl
* so_bom_line.product_uom_qty
* (sum(picking_avg) / len(picking_avg))
)
done_value += (
so_bom_line.price_reduce_taxexcl
* so_bom_line.product_uom_qty
* (sum(done_avg) / len(done_avg))
)

declared_value = picking_value if inmediate_transfer else done_value
if pricelist:
Expand Down