Merge pull request #51050 from mihir-kandoi/gh41617

This commit is contained in:
Mihir Kandoi
2025-12-13 14:23:54 +05:30
committed by GitHub
3 changed files with 19 additions and 14 deletions

View File

@@ -24,6 +24,7 @@ frappe.ui.form.on("BOM Creator", {
build_tree(frm) {
let $parent = $(frm.fields_dict["bom_creator"].wrapper);
$parent.empty();
$parent.closest(".section-body").css("max-width", "1100px");
frm.toggle_enable("item_code", false);
frappe.require("bom_configurator.bundle.js").then(() => {

View File

@@ -126,10 +126,6 @@ class BOMCreator(Document):
def on_cancel(self):
self.set_status(True)
def set_conversion_factor(self):
for row in self.items:
row.conversion_factor = 1.0
def before_submit(self):
self.validate_fields()
self.set_status()
@@ -160,10 +156,11 @@ class BOMCreator(Document):
amount = self.get_raw_material_cost()
self.raw_material_cost = amount
def get_raw_material_cost(self, fg_item=None, amount=0):
def get_raw_material_cost(self, fg_item=None):
if not fg_item:
fg_item = self.item_code
amount = 0
for row in self.items:
if row.fg_item != fg_item:
continue
@@ -182,14 +179,10 @@ class BOMCreator(Document):
},
self,
)
row.amount = flt(row.rate) * flt(row.qty)
else:
row.amount = 0.0
row.amount = self.get_raw_material_cost(row.item_code, row.amount)
row.rate = flt(row.amount) / (flt(row.qty) * flt(row.conversion_factor))
row.rate = flt(self.get_raw_material_cost(row.item_code) * row.conversion_factor)
row.amount = flt(row.rate * row.qty)
amount += flt(row.amount)
return amount
@@ -201,6 +194,11 @@ class BOMCreator(Document):
if row.item_code in fg_items:
row.is_expandable = 1
def set_conversion_factor(self):
for row in self.items:
if not row.conversion_factor:
row.conversion_factor = 1.0
def validate_fields(self):
fields = {
"items": "Items",

View File

@@ -63,8 +63,10 @@ class TestBOMCreator(IntegrationTestCase):
fg_valuation_rate = 0
for row in doc.items:
if not row.is_expandable:
if row.fg_item == final_product:
fg_valuation_rate += row.amount
if not row.is_expandable:
self.assertEqual(row.fg_item, "Frame Assembly")
self.assertEqual(row.fg_reference_id, doc.items[0].name)
@@ -105,8 +107,10 @@ class TestBOMCreator(IntegrationTestCase):
fg_valuation_rate = 0
for row in doc.items:
if not row.is_expandable:
if row.fg_item == final_product:
fg_valuation_rate += row.amount
if not row.is_expandable:
self.assertEqual(row.fg_item, "Bicycle")
self.assertEqual(row.fg_reference_id, doc.name)
@@ -170,8 +174,10 @@ class TestBOMCreator(IntegrationTestCase):
fg_valuation_rate = 0
for row in doc.items:
if not row.is_expandable:
if row.fg_item == final_product:
fg_valuation_rate += row.amount
if not row.is_expandable:
self.assertEqual(row.fg_item, "Pedal Assembly")
self.assertEqual(row.qty, 2.0)
self.assertEqual(row.fg_reference_id, doc.items[0].name)