diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index 93ee04d0526..b9502c74cc6 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -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%")) diff --git a/erpnext/manufacturing/doctype/bom/services/costing.py b/erpnext/manufacturing/doctype/bom/services/costing.py index b477f2ec405..b86cd9e5663 100644 --- a/erpnext/manufacturing/doctype/bom/services/costing.py +++ b/erpnext/manufacturing/doctype/bom/services/costing.py @@ -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()