From 5ce5c352e4ab2293b3f5b5dac9bc1a2a1912e620 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 5 Feb 2024 11:25:25 +0530 Subject: [PATCH 1/3] fix: disable no-copy for blanket order in PO --- .../doctype/purchase_order_item/purchase_order_item.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/erpnext/buying/doctype/purchase_order_item/purchase_order_item.json b/erpnext/buying/doctype/purchase_order_item/purchase_order_item.json index 5a24cc2e92..e3e8def7ff 100644 --- a/erpnext/buying/doctype/purchase_order_item/purchase_order_item.json +++ b/erpnext/buying/doctype/purchase_order_item/purchase_order_item.json @@ -545,7 +545,6 @@ "fieldname": "blanket_order", "fieldtype": "Link", "label": "Blanket Order", - "no_copy": 1, "options": "Blanket Order" }, { @@ -553,7 +552,6 @@ "fieldname": "blanket_order_rate", "fieldtype": "Currency", "label": "Blanket Order Rate", - "no_copy": 1, "print_hide": 1, "read_only": 1 }, @@ -917,7 +915,7 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2023-11-24 13:24:41.298416", + "modified": "2024-02-05 11:23:24.859435", "modified_by": "Administrator", "module": "Buying", "name": "Purchase Order Item", From 61ded697a7384d8ef133a42424d8a14763bb6061 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 5 Feb 2024 11:42:17 +0530 Subject: [PATCH 2/3] fix: update BO Ordered Quantity on PO Close/Open --- erpnext/buying/doctype/purchase_order/purchase_order.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py index 4efbb270e9..656ee9b91c 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/purchase_order.py @@ -457,6 +457,7 @@ class PurchaseOrder(BuyingController): self.update_ordered_qty() self.update_reserved_qty_for_subcontract() self.update_subcontracting_order_status() + self.update_blanket_order() self.notify_update() clear_doctype_notifications(self) From 27d6c8b6d52ada292eef5c42506e95bcf933eec8 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 5 Feb 2024 14:08:57 +0530 Subject: [PATCH 3/3] test: BO on PO Close/Open --- .../purchase_order/test_purchase_order.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index 5405799b4e..a30de68a00 100644 --- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py @@ -822,6 +822,30 @@ class TestPurchaseOrder(FrappeTestCase): # To test if the PO does NOT have a Blanket Order self.assertEqual(po_doc.items[0].blanket_order, None) + def test_blanket_order_on_po_close_and_open(self): + # Step - 1: Create Blanket Order + bo = make_blanket_order(blanket_order_type="Purchasing", quantity=10, rate=10) + + # Step - 2: Create Purchase Order + po = create_purchase_order( + item_code="_Test Item", qty=5, against_blanket_order=1, against_blanket=bo.name + ) + + bo.load_from_db() + self.assertEqual(bo.items[0].ordered_qty, 5) + + # Step - 3: Close Purchase Order + po.update_status("Closed") + + bo.load_from_db() + self.assertEqual(bo.items[0].ordered_qty, 0) + + # Step - 4: Re-Open Purchase Order + po.update_status("Re-open") + + bo.load_from_db() + self.assertEqual(bo.items[0].ordered_qty, 5) + def test_payment_terms_are_fetched_when_creating_purchase_invoice(self): from erpnext.accounts.doctype.payment_entry.test_payment_entry import ( create_payment_terms_template, @@ -1148,6 +1172,7 @@ def create_purchase_order(**args): "schedule_date": add_days(nowdate(), 1), "include_exploded_items": args.get("include_exploded_items", 1), "against_blanket_order": args.against_blanket_order, + "against_blanket": args.against_blanket, "material_request": args.material_request, "material_request_item": args.material_request_item, },