fix: incorrect rate in BOM exploded items (#31513)
This commit is contained in:
parent
538cd6fdcf
commit
313625c349
@ -189,8 +189,8 @@ class BOM(WebsiteGenerator):
|
|||||||
self.validate_transfer_against()
|
self.validate_transfer_against()
|
||||||
self.set_routing_operations()
|
self.set_routing_operations()
|
||||||
self.validate_operations()
|
self.validate_operations()
|
||||||
self.update_exploded_items(save=False)
|
|
||||||
self.calculate_cost()
|
self.calculate_cost()
|
||||||
|
self.update_exploded_items(save=False)
|
||||||
self.update_stock_qty()
|
self.update_stock_qty()
|
||||||
self.update_cost(update_parent=False, from_child_bom=True, update_hour_rate=False, save=False)
|
self.update_cost(update_parent=False, from_child_bom=True, update_hour_rate=False, save=False)
|
||||||
self.validate_scrap_items()
|
self.validate_scrap_items()
|
||||||
|
@ -611,6 +611,34 @@ class TestBOM(FrappeTestCase):
|
|||||||
bom.reload()
|
bom.reload()
|
||||||
self.assertEqual(frappe.get_value("Item", fg_item.item_code, "default_bom"), bom.name)
|
self.assertEqual(frappe.get_value("Item", fg_item.item_code, "default_bom"), bom.name)
|
||||||
|
|
||||||
|
def test_exploded_items_rate(self):
|
||||||
|
rm_item = make_item(
|
||||||
|
properties={"is_stock_item": 1, "valuation_rate": 99, "last_purchase_rate": 89}
|
||||||
|
).name
|
||||||
|
fg_item = make_item(properties={"is_stock_item": 1}).name
|
||||||
|
|
||||||
|
from erpnext.manufacturing.doctype.production_plan.test_production_plan import make_bom
|
||||||
|
|
||||||
|
bom = make_bom(item=fg_item, raw_materials=[rm_item], do_not_save=True)
|
||||||
|
|
||||||
|
bom.rm_cost_as_per = "Last Purchase Rate"
|
||||||
|
bom.save()
|
||||||
|
self.assertEqual(bom.items[0].base_rate, 89)
|
||||||
|
self.assertEqual(bom.exploded_items[0].rate, bom.items[0].base_rate)
|
||||||
|
|
||||||
|
bom.rm_cost_as_per = "Price List"
|
||||||
|
bom.save()
|
||||||
|
self.assertEqual(bom.items[0].base_rate, 0.0)
|
||||||
|
self.assertEqual(bom.exploded_items[0].rate, bom.items[0].base_rate)
|
||||||
|
|
||||||
|
bom.rm_cost_as_per = "Valuation Rate"
|
||||||
|
bom.save()
|
||||||
|
self.assertEqual(bom.items[0].base_rate, 99)
|
||||||
|
self.assertEqual(bom.exploded_items[0].rate, bom.items[0].base_rate)
|
||||||
|
|
||||||
|
bom.submit()
|
||||||
|
self.assertEqual(bom.exploded_items[0].rate, bom.items[0].base_rate)
|
||||||
|
|
||||||
|
|
||||||
def get_default_bom(item_code="_Test FG Item 2"):
|
def get_default_bom(item_code="_Test FG Item 2"):
|
||||||
return frappe.db.get_value("BOM", {"item": item_code, "is_active": 1, "is_default": 1})
|
return frappe.db.get_value("BOM", {"item": item_code, "is_active": 1, "is_default": 1})
|
||||||
|
@ -184,6 +184,7 @@
|
|||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"label": "Rate",
|
"label": "Rate",
|
||||||
"options": "currency",
|
"options": "currency",
|
||||||
|
"read_only": 1,
|
||||||
"reqd": 1
|
"reqd": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -288,7 +289,7 @@
|
|||||||
"index_web_pages_for_search": 1,
|
"index_web_pages_for_search": 1,
|
||||||
"istable": 1,
|
"istable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2022-05-19 02:32:43.785470",
|
"modified": "2022-07-28 10:20:51.559010",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Manufacturing",
|
"module": "Manufacturing",
|
||||||
"name": "BOM Item",
|
"name": "BOM Item",
|
||||||
|
Loading…
Reference in New Issue
Block a user