diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 1b66ea75cf..981ca9a510 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -5,7 +5,7 @@ import frappe from erpnext.hooks import regional_overrides from frappe.utils import getdate -__version__ = '10.1.70' +__version__ = '10.1.71' def get_default_company(user=None): '''Get default company for user''' diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 6c7a252b16..bc6f99db84 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -506,4 +506,5 @@ erpnext.patches.v10_0.update_address_template_for_india erpnext.patches.v10_0.set_discount_amount erpnext.patches.v10_0.recalculate_gross_margin_for_project erpnext.patches.v10_0.delete_hub_documents -erpnext.patches.v10_0.update_user_image_in_employee \ No newline at end of file +erpnext.patches.v10_0.update_user_image_in_employee +erpnext.patches.v10_0.repost_gle_for_purchase_receipts_with_rejected_items \ No newline at end of file diff --git a/erpnext/patches/v10_0/repost_gle_for_purchase_receipts_with_rejected_items.py b/erpnext/patches/v10_0/repost_gle_for_purchase_receipts_with_rejected_items.py new file mode 100644 index 0000000000..68c06ef62b --- /dev/null +++ b/erpnext/patches/v10_0/repost_gle_for_purchase_receipts_with_rejected_items.py @@ -0,0 +1,32 @@ +# Copyright (c) 2017, Frappe and Contributors +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals +import frappe, erpnext + +def execute(): + for company in frappe.get_all("Company"): + if not erpnext.is_perpetual_inventory_enabled(company.name): + continue + + acc_frozen_upto = frappe.db.get_value("Accounts Settings", None, "acc_frozen_upto") or "1900-01-01" + pr_with_rejected_warehouse = frappe.db.sql(""" + select pr.name + from `tabPurchase Receipt` pr, `tabPurchase Receipt Item` pr_item + where pr.name = pr_item.parent + and pr.posting_date > %s + and pr.docstatus=1 + and pr.company = %s + and pr_item.rejected_qty > 0 + """, (acc_frozen_upto, company.name), as_dict=1) + + for d in pr_with_rejected_warehouse: + doc = frappe.get_doc("Purchase Receipt", d.name) + + doc.docstatus = 2 + doc.make_gl_entries_on_cancel(repost_future_gle=False) + + + # update gl entries for submit state of PR + doc.docstatus = 1 + doc.make_gl_entries(repost_future_gle=False) diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py index f318c042d5..dfff74a78c 100644 --- a/erpnext/setup/utils.py +++ b/erpnext/setup/utils.py @@ -95,7 +95,7 @@ def get_exchange_rate(from_currency, to_currency, transaction_date=None): if not value: import requests - api_url = "https://frankfurter.erpnext.org/{0}".format(transaction_date) + api_url = "https://frankfurter.app/{0}".format(transaction_date) response = requests.get(api_url, params={ "base": from_currency, "symbols": to_currency diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 80dc4e1260..2c56a97625 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -182,7 +182,8 @@ class PurchaseReceipt(BuyingController): if warehouse_account.get(d.warehouse): stock_value_diff = frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Purchase Receipt", "voucher_no": self.name, - "voucher_detail_no": d.name}, "stock_value_difference") + "voucher_detail_no": d.name, "warehouse": d.warehouse}, "stock_value_difference") + if not stock_value_diff: continue gl_entries.append(self.get_gl_dict({