From 9053cbc9f83b2ec70372d24d93ecba45bb0b7043 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 20 May 2013 15:28:44 +0530 Subject: [PATCH] [fixes][patch] update valuation rate in purchase cycle and repost patch --- controllers/buying_controller.py | 1 - patches/may_2013/p02_update_valuation_rate.py | 48 +++++++++++++++++++ patches/patch_list.py | 1 + 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 patches/may_2013/p02_update_valuation_rate.py diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py index 25efe4dbd3..3deda0284b 100644 --- a/controllers/buying_controller.py +++ b/controllers/buying_controller.py @@ -374,7 +374,6 @@ class BuyingController(StockController): flt(d.qty, self.precision.item.qty)) / flt(d.conversion_factor, self.precision.item.conversion_factor), self.precision.item.valuation_rate) - else: d.valuation_rate = 0.0 diff --git a/patches/may_2013/p02_update_valuation_rate.py b/patches/may_2013/p02_update_valuation_rate.py new file mode 100644 index 0000000000..d538d609dd --- /dev/null +++ b/patches/may_2013/p02_update_valuation_rate.py @@ -0,0 +1,48 @@ +# ERPNext - web based ERP (http://erpnext.com) +# Copyright (C) 2012 Web Notes Technologies Pvt Ltd +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from __future__ import unicode_literals +import webnotes +def execute(): + from stock.stock_ledger import update_entries_after + item_warehouse = [] + # update valuation_rate in transaction + doctypes = {"Purchase Receipt": "purchase_receipt_details", + "Purchase Invoice": "entries"} + + for dt in doctypes: + for d in webnotes.conn.sql("""select name from `tab%s` + where modified >= '2013-05-09' and docstatus=1""" % dt): + rec = webnotes.get_obj(dt, d[0]) + rec.update_valuation_rate(doctypes[dt]) + + for item in rec.doclist.get({"parentfield": doctypes[dt]}): + webnotes.conn.sql("""update `tab%s Item` set valuation_rate = %s + where name = %s"""% (dt, '%s', '%s'), tuple([item.valuation_rate, item.name])) + + if dt == "Purchase Receipt": + webnotes.conn.sql("""update `tabStock Ledger Entry` set incoming_rate = %s + where voucher_detail_no = %s""", (item.valuation_rate, item.name)) + if [item.item_code, item.warehouse] not in item_warehouse: + item_warehouse.append([item.item_code, item.warehouse]) + + for d in item_warehouse: + try: + update_entries_after({"item_code": d[0], "warehouse": d[1], + "posting_date": "2013-01-01", "posting_time": "00:05:00"}) + webnotes.conn.commit() + except: + pass \ No newline at end of file diff --git a/patches/patch_list.py b/patches/patch_list.py index 16100097ce..bd7acb2fc6 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -248,4 +248,5 @@ patch_list = [ "patches.april_2013.p08_price_list_country", "patches.may_2013.repost_stock_for_no_posting_time", "patches.may_2013.p01_conversion_factor_and_aii", + "patches.may_2013.p02_update_valuation_rate", ] \ No newline at end of file