Merge pull request #58979 from Shllokkk/fix-bom-cost-allocation-per-type

fix: coerce cost_allocation_per to float in BOM cost allocation
This commit is contained in:
Shllokkk
2026-09-11 14:16:57 +05:30
committed by GitHub
2 changed files with 4 additions and 4 deletions

View File

@@ -536,7 +536,7 @@ class BOM(WebsiteGenerator):
if item.valuation_type in ("Valuation Rate", "Manual"):
item.cost_allocation_per = 0
own_cost += flt(item.cost)
total_secondary_items_per += item.cost_allocation_per
total_secondary_items_per += flt(item.cost_allocation_per)
if self.cost_allocation_per == 100 and total_secondary_items_per:
self.cost_allocation_per -= total_secondary_items_per
@@ -552,9 +552,9 @@ class BOM(WebsiteGenerator):
)
def validate_total_cost_allocation(self):
total_cost_allocation_per = self.cost_allocation_per
total_cost_allocation_per = flt(self.cost_allocation_per)
for item in self.secondary_items:
total_cost_allocation_per += item.cost_allocation_per
total_cost_allocation_per += flt(item.cost_allocation_per)
if total_cost_allocation_per != 100:
frappe.throw(_("Cost allocation between finished goods and secondary items should equal 100%"))

View File

@@ -279,7 +279,7 @@ class BOMCostingService:
for d in self.doc.get("secondary_items"):
if d.valuation_type not in ("Valuation Rate", "Manual"):
d.cost = flt(allocation_basis * (d.cost_allocation_per / 100), precision)
d.cost = flt(allocation_basis * (flt(d.cost_allocation_per) / 100), precision)
d.base_cost = flt(d.cost * self.doc.conversion_rate, precision)
if save:
d.db_update()