diff --git a/erpnext/manufacturing/doctype/job_card/test_job_card.py b/erpnext/manufacturing/doctype/job_card/test_job_card.py index cfd559202be..1d58ebb5bce 100644 --- a/erpnext/manufacturing/doctype/job_card/test_job_card.py +++ b/erpnext/manufacturing/doctype/job_card/test_job_card.py @@ -22,6 +22,7 @@ from erpnext.manufacturing.doctype.job_card.job_card import ( from erpnext.manufacturing.doctype.work_order.test_work_order import make_wo_order_test_record from erpnext.manufacturing.doctype.work_order.work_order import WorkOrder, make_work_order from erpnext.manufacturing.doctype.workstation.test_workstation import make_workstation +from erpnext.patches.v16_0.set_stock_uom_in_job_card import execute as set_stock_uom_in_job_card from erpnext.stock.doctype.item.test_item import create_item from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry from erpnext.tests.utils import ERPNextTestSuite @@ -909,6 +910,47 @@ class TestJobCard(ERPNextTestSuite): self.assertEqual(job_card.stock_uom, frappe.db.get_value("Item", item_code, "stock_uom")) + def test_stock_uom_patch_backfills_legacy_job_cards(self): + suffix = random_string(8) + finished_good = create_item(f"Stock UOM Patch FG {suffix}", stock_uom="Kg") + production_item = create_item(f"Stock UOM Patch Product {suffix}", stock_uom="Nos") + + finished_good_job_card = self.get_first_job_card( + make_wo_order_test_record(item="_Test FG Item 2", qty=5).name + ) + production_item_job_card = self.get_first_job_card( + make_wo_order_test_record(item="_Test FG Item 2", qty=6).name + ) + + frappe.db.set_value( + "Job Card", + finished_good_job_card.name, + { + "finished_good": finished_good.name, + "production_item": production_item.name, + "stock_uom": None, + }, + update_modified=False, + ) + frappe.db.set_value( + "Job Card", + production_item_job_card.name, + {"finished_good": None, "production_item": production_item.name, "stock_uom": None}, + update_modified=False, + ) + + set_stock_uom_in_job_card() + + self.assertEqual(frappe.db.get_value("Job Card", finished_good_job_card.name, "stock_uom"), "Kg") + self.assertEqual(frappe.db.get_value("Job Card", production_item_job_card.name, "stock_uom"), "Nos") + + frappe.db.set_value( + "Job Card", finished_good_job_card.name, "stock_uom", "Nos", update_modified=False + ) + set_stock_uom_in_job_card() + + self.assertEqual(frappe.db.get_value("Job Card", finished_good_job_card.name, "stock_uom"), "Nos") + def test_completion_qty_reduces_for_quantity_without_process_loss(self): work_order = make_wo_order_test_record(item="_Test FG Item 2", qty=5)