Merge pull request #57325 from frappe/mergify/bp/version-15-hotfix/pr-57321

fix: sync process loss percentage when fg qty changes (backport #57321)
This commit is contained in:
Shllokkk
2026-07-21 17:37:16 +05:30
committed by GitHub
2 changed files with 23 additions and 1 deletions

View File

@@ -2648,7 +2648,7 @@ class StockEntry(StockController):
self.process_loss_qty = flt(
(flt(self.fg_completed_qty) * flt(self.process_loss_percentage)) / 100
)
elif self.process_loss_qty and not self.process_loss_percentage:
elif self.process_loss_qty and self.fg_completed_qty:
self.process_loss_percentage = flt(
(flt(self.process_loss_qty) / flt(self.fg_completed_qty)) * 100
)

View File

@@ -2729,6 +2729,28 @@ class TestStockEntry(FrappeTestCase):
# delete naming rule
frappe.delete_doc("Document Naming Rule", qc_naming_rule.name)
def test_process_loss_percentage_resyncs_from_qty(self):
# changing fg qty recomputes process_loss_qty
se = frappe.new_doc("Stock Entry")
se.purpose = "Manufacture"
se.fg_completed_qty = 200
se.process_loss_qty = 100
se.process_loss_percentage = 80
se.set_process_loss_qty()
self.assertEqual(se.process_loss_percentage, 50)
def test_process_loss_qty_derived_from_percentage_when_qty_blank(self):
se = frappe.new_doc("Stock Entry")
se.purpose = "Manufacture"
se.fg_completed_qty = 200
se.process_loss_percentage = 25
se.set_process_loss_qty()
self.assertEqual(se.process_loss_qty, 50)
def make_serialized_item(**args):
args = frappe._dict(args)