From 56fcf30cb901e1c1cfe819bc627c7d57151e74c9 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 5 Jun 2015 18:21:25 +0530 Subject: [PATCH] [Patch] Update material transferred for manufacturing for existing entries --- erpnext/patches.txt | 3 ++- ...rial_transferred_for_manufacturing_again.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 erpnext/patches/v5_0/update_material_transferred_for_manufacturing_again.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 2104f7bcf82..0d1d0de3c2f 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -164,4 +164,5 @@ erpnext.patches.v5_0.update_item_and_description_again erpnext.patches.v5_0.repost_gle_for_jv_with_multiple_party erpnext.patches.v5_0.portal_fixes erpnext.patches.v5_0.reset_values_in_tools -execute:frappe.delete_doc("Page", "users") \ No newline at end of file +execute:frappe.delete_doc("Page", "users") +erpnext.patches.v5_0.update_material_transferred_for_manufacturing_again \ No newline at end of file diff --git a/erpnext/patches/v5_0/update_material_transferred_for_manufacturing_again.py b/erpnext/patches/v5_0/update_material_transferred_for_manufacturing_again.py new file mode 100644 index 00000000000..a74b4bd7769 --- /dev/null +++ b/erpnext/patches/v5_0/update_material_transferred_for_manufacturing_again.py @@ -0,0 +1,18 @@ +import frappe + +def execute(): + pro_order_qty_transferred = frappe._dict() + for se in frappe.db.sql("""select production_order, sum(fg_completed_qty) as transferred_qty + from `tabStock Entry` + where docstatus=1 and ifnull(production_order, '') != '' + and purpose = 'Material Transfer for Manufacture' + group by production_order""", as_dict=1): + pro_order_qty_transferred.setdefault(se.production_order, se.transferred_qty) + + for d in frappe.get_all("Production Order", filters={"docstatus": 1}, fields=["name", "qty"]): + if d.name in pro_order_qty_transferred: + material_transferred_for_manufacturing = pro_order_qty_transferred.get(d.name) \ + if pro_order_qty_transferred.get(d.name) <= d.qty else d.qty + + frappe.db.sql("""update `tabProduction Order` set material_transferred_for_manufacturing=%s + where name=%s""", (material_transferred_for_manufacturing, d.name)) \ No newline at end of file