From 6752b3109102cb733540ba30698144d7f6ab2b1c Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 8 May 2015 12:49:35 +0530 Subject: [PATCH] Fixed issue while updating Requested Qty on stoping material request and patch to recalculate --- erpnext/patches.txt | 1 + erpnext/patches/v5_0/repost_requested_qty.py | 21 +++++++++++++++++++ .../material_request/material_request.py | 6 +++--- 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 erpnext/patches/v5_0/repost_requested_qty.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 13fb302472..adb9b1b6c7 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -152,3 +152,4 @@ erpnext.patches.v5_0.link_warehouse_with_account 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 0000000000..8c1d6f7fbb --- /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 d978116b14..5b61a6cce0 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 @@ class MaterialRequest(BuyingController): 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 @@ class MaterialRequest(BuyingController): 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):