diff --git a/erpnext/__init__.py b/erpnext/__init__.py index f9516335d4..5b26c086d5 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals import frappe -__version__ = '7.2.2' +__version__ = '7.2.3' def get_default_company(user=None): '''Get default company for user''' diff --git a/erpnext/patches/v7_1/save_stock_settings.py b/erpnext/patches/v7_1/save_stock_settings.py index 83c27dc461..d3f0263c10 100644 --- a/erpnext/patches/v7_1/save_stock_settings.py +++ b/erpnext/patches/v7_1/save_stock_settings.py @@ -3,5 +3,13 @@ import frappe def execute(): stock_settings = frappe.get_doc('Stock Settings') + + if stock_settings.default_warehouse \ + and not frappe.db.exists("Warehouse", stock_settings.default_warehouse): + stock_settings.default_warehouse = None + + if stock_settings.stock_uom and not frappe.db.exists("UOM", stock_settings.stock_uom): + stock_settings.stock_uom = None + stock_settings.flags.ignore_mandatory = True stock_settings.save() diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index 4ab49e51cd..ba303bb72f 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -237,7 +237,7 @@ class StockReconciliation(StockController): elif not frappe.db.sql("""select name from `tabStock Ledger Entry` limit 1"""): if frappe.db.get_value("Account", self.expense_account, "report_type") == "Profit and Loss": frappe.throw(_("Difference Account must be a Asset/Liability type account, since this Stock Reconciliation is an Opening Entry"), OpeningEntryAccountError) - + def set_total_qty_and_amount(self): for d in self.get("items"): d.amount = flt(d.qty) * flt(d.valuation_rate) @@ -267,7 +267,8 @@ def get_items(warehouse, posting_date, posting_time): items = frappe.get_list("Bin", fields=["item_code"], filters={"warehouse": warehouse}, as_list=1) items += frappe.get_list("Item", fields=["name"], filters= {"is_stock_item": 1, "has_serial_no": 0, - "has_batch_no": 0, "has_variants": 0, "disabled": 0, "default_warehouse": warehouse}, as_list=1) + "has_batch_no": 0, "has_variants": 0, "disabled": 0, "default_warehouse": warehouse}, + as_list=1) res = [] for item in set(items): @@ -280,6 +281,7 @@ def get_items(warehouse, posting_date, posting_time): "item_code": item[0], "warehouse": warehouse, "qty": stock_bal[0], + "item_name": frappe.db.get_value('Item', item[0], 'item_name'), "valuation_rate": stock_bal[1], "current_qty": stock_bal[0], "current_valuation_rate": stock_bal[1]