diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py index 25dd29a9967..d313a3259ef 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.py +++ b/accounts/doctype/sales_invoice/sales_invoice.py @@ -468,13 +468,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, 2) != flt(val, 2): msgprint(_("Rate is not matching with ") + ref_dt + ": " + ref_dn + _(" for item: ") + item_code, raise_exception=True) 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 00000000000..59eed7e66f0 --- /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 ac4cd5d3193..b3ed12c09c8 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -252,4 +252,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 93ca721f922..363fb399d5e 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/stock/doctype/delivery_note/delivery_note.py @@ -408,4 +408,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)) diff --git a/stock/stock_ledger.py b/stock/stock_ledger.py index 2480263c1f9..10e490c8e00 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"))