From b56412c646be0f03d4e51f9ef6cff49dc22693c3 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 23 May 2013 17:41:52 +0530 Subject: [PATCH 1/5] [fixes][aii] cancelled gl entry for delivery note and patch --- .../p05_update_cancelled_gl_entries.py | 29 +++++++++++++++++++ patches/patch_list.py | 1 + stock/doctype/delivery_note/delivery_note.py | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 patches/may_2013/p05_update_cancelled_gl_entries.py diff --git a/patches/may_2013/p05_update_cancelled_gl_entries.py b/patches/may_2013/p05_update_cancelled_gl_entries.py new file mode 100644 index 0000000000..59eed7e66f --- /dev/null +++ b/patches/may_2013/p05_update_cancelled_gl_entries.py @@ -0,0 +1,29 @@ +# 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 +from webnotes.utils import cint + +def execute(): + aii_enabled = cint(webnotes.conn.get_value("Global Defaults", None, + "auto_inventory_accounting")) + + if aii_enabled: + webnotes.conn.sql("""update `tabGL Entry` gle set is_cancelled = 'Yes' + where voucher_type = 'Delivery Note' + and exists(select name from `tabDelivery Note` + where name = gle.voucher_no and docstatus = 2)""") \ No newline at end of file diff --git a/patches/patch_list.py b/patches/patch_list.py index 89f48e5ce7..ea61a04dc3 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -251,4 +251,5 @@ patch_list = [ "patches.may_2013.p02_update_valuation_rate", "patches.may_2013.p03_update_support_ticket", "patches.may_2013.p04_reorder_level", + "patches.may_2013.p05_update_cancelled_gl_entries", ] \ No newline at end of file diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py index 15e24ef293..6ffd960000 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/stock/doctype/delivery_note/delivery_note.py @@ -419,4 +419,4 @@ class DocType(SellingController): if gl_entries: from accounts.general_ledger import make_gl_entries - make_gl_entries(gl_entries) \ No newline at end of file + make_gl_entries(gl_entries, cancel=(self.doc.docstatus == 2)) \ No newline at end of file From f4591ecc248d8e1dd6e8f0513827c232015531a8 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 23 May 2013 19:07:10 +0530 Subject: [PATCH 2/5] [stock ledger][fix] message for negative qty error --- stock/stock_ledger.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stock/stock_ledger.py b/stock/stock_ledger.py index 2480263c1f..10e490c8e0 100644 --- a/stock/stock_ledger.py +++ b/stock/stock_ledger.py @@ -35,6 +35,9 @@ def update_entries_after(args, verbose=1): "posting_time": "12:00" } """ + global _exceptions + _exceptions = [] + previous_sle = get_sle_before_datetime(args) qty_after_transaction = flt(previous_sle.get("qty_after_transaction")) From 3d75ad1896081db295026aa30c0b2ddeb246d121 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 23 May 2013 19:14:28 +0530 Subject: [PATCH 3/5] [sales invoice][fix] check item rate with sales order and delivery note --- accounts/doctype/sales_invoice/sales_invoice.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py index 4c71cb3342..a7f024c2df 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.py +++ b/accounts/doctype/sales_invoice/sales_invoice.py @@ -558,13 +558,15 @@ class DocType(SellingController): """Validate values with reference document with previous document""" for d in self.doclist.get({"parentfield": "entries"}): if d.so_detail: - self.check_value("Sales Order", d.so_detail, d.export_rate, d.item_code) + self.check_value("Sales Order", d.sales_order, d.so_detail, + d.export_rate, d.item_code) if d.dn_detail: - self.check_value("Delivery Note", d.dn_detail, d.export_rate, d.item_code) + self.check_value("Delivery Note", d.delivery_note, d.dn_detail, + d.export_rate, d.item_code) - def check_value(self, ref_dt, ref_dn, val, item_code): - ref_val = webnotes.conn.get_value(ref_dt + "Item", ref_dn, "export_rate") - if flt(ref_val) != val: + def check_value(self, ref_dt, ref_dn, ref_item_dn, val, item_code): + ref_val = webnotes.conn.get_value(ref_dt + "Item", ref_item_dn, "export_rate") + if flt(ref_val) != flt(val): msgprint(_("Rate is not matching with ") + ref_dt + ": " + ref_dn + _(" for item: ") + item_code, raise_exception=True) From 93ed5b9dae50f247b79983e8227ac7414133011b Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 23 May 2013 19:21:58 +0530 Subject: [PATCH 4/5] [sales invoice][fix] check item rate with sales order and delivery note --- accounts/doctype/sales_invoice/sales_invoice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py index a7f024c2df..050a49055d 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.py +++ b/accounts/doctype/sales_invoice/sales_invoice.py @@ -565,7 +565,7 @@ class DocType(SellingController): d.export_rate, d.item_code) def check_value(self, ref_dt, ref_dn, ref_item_dn, val, item_code): - ref_val = webnotes.conn.get_value(ref_dt + "Item", ref_item_dn, "export_rate") + ref_val = webnotes.conn.get_value(ref_dt + " Item", ref_item_dn, "export_rate") if flt(ref_val) != flt(val): msgprint(_("Rate is not matching with ") + ref_dt + ": " + ref_dn + _(" for item: ") + item_code, raise_exception=True) From 7cd49529f49aadb565eaf04446ea1979d401f5cd Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 24 May 2013 13:51:25 +0530 Subject: [PATCH 5/5] [sales invoice][fix] float precision issue --- accounts/doctype/sales_invoice/sales_invoice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py index 050a49055d..6871b1e90f 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.py +++ b/accounts/doctype/sales_invoice/sales_invoice.py @@ -566,7 +566,7 @@ class DocType(SellingController): def check_value(self, ref_dt, ref_dn, ref_item_dn, val, item_code): ref_val = webnotes.conn.get_value(ref_dt + " Item", ref_item_dn, "export_rate") - if flt(ref_val) != flt(val): + if flt(ref_val, 2) != flt(val, 2): msgprint(_("Rate is not matching with ") + ref_dt + ": " + ref_dn + _(" for item: ") + item_code, raise_exception=True)