Fixed issue while updating Requested Qty on stoping material request and patch to recalculate
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 13fb302..adb9b1b 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -152,3 +152,4 @@
execute:frappe.delete_doc("Page", "stock-ledger")
execute:frappe.delete_doc("Page","stock-level")
erpnext.patches.v5_0.reclculate_planned_operating_cost_in_production_order
+erpnext.patches.v5_0.repost_requested_qty
diff --git a/erpnext/patches/v5_0/repost_requested_qty.py b/erpnext/patches/v5_0/repost_requested_qty.py
new file mode 100644
index 0000000..8c1d6f7
--- /dev/null
+++ b/erpnext/patches/v5_0/repost_requested_qty.py
@@ -0,0 +1,21 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+ from erpnext.utilities.repost_stock import update_bin_qty, get_indented_qty
+
+ count=0
+ for item_code, warehouse in frappe.db.sql("""select distinct item_code, warehouse
+ from `tabMaterial Request Item` where docstatus = 1"""):
+ try:
+ count += 1
+ update_bin_qty(item_code, warehouse, {
+ "indented_qty": get_indented_qty(item_code, warehouse),
+ })
+ if count % 200 == 0:
+ frappe.db.commit()
+ except:
+ frappe.db.rollback()
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index d978116..5b61a6c 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -7,7 +7,7 @@
from __future__ import unicode_literals
import frappe
-from frappe.utils import cstr, flt
+from frappe.utils import cstr, flt, getdate
from frappe import _
from frappe.model.mapper import get_mapped_doc
@@ -53,7 +53,7 @@
def validate_schedule_date(self):
for d in self.get('items'):
- if d.schedule_date and d.schedule_date < self.transaction_date:
+ if d.schedule_date and getdate(d.schedule_date) < getdate(self.transaction_date):
frappe.throw(_("Expected Date cannot be before Material Request Date"))
# Validate
@@ -94,8 +94,8 @@
def update_status(self, status):
self.check_modified_date()
- self.update_requested_qty()
frappe.db.set(self, 'status', cstr(status))
+ self.update_requested_qty()
frappe.msgprint(_("Status updated to {0}").format(_(status)))
def on_cancel(self):