fix: purchase to Stock UOM conversion on Production Plan #28570 (#29325)

fix: purchase to Stock UOM conversion on Production Plan
(cherry picked from commit 9cd26fbb6a)

Co-authored-by: Maxwell Morais <MaxMorais@users.noreply.github.com>
This commit is contained in:
mergify[bot]
2022-01-17 22:15:12 +05:30
committed by GitHub
parent 0b4b60a6c3
commit 5e3f5d8bcc

View File

@@ -970,7 +970,25 @@ def get_materials_from_other_locations(item, warehouses, new_mr_items, company):
new_mr_items.append(new_dict)
if required_qty:
stock_uom, purchase_uom = frappe.db.get_value(
'Item',
item['item_code'],
['stock_uom', 'purchase_uom']
)
if purchase_uom != stock_uom and purchase_uom == item['uom']:
conversion_factor = get_uom_conversion_factor(item['item_code'], item['uom'])
if not (conversion_factor or frappe.flags.show_qty_in_stock_uom):
frappe.throw(_("UOM Conversion factor ({0} -> {1}) not found for item: {2}")
.format(purchase_uom, stock_uom, item['item_code']))
required_qty = required_qty / conversion_factor
if frappe.db.get_value("UOM", purchase_uom, "must_be_whole_number"):
required_qty = ceil(required_qty)
item["quantity"] = required_qty
new_mr_items.append(item)
@frappe.whitelist()