Merge branch 'develop'
diff --git a/erpnext/__version__.py b/erpnext/__version__.py
index 6d0efc7..e4f549b 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1,2 +1,2 @@
from __future__ import unicode_literals
-__version__ = 'v5.0.0'
+__version__ = '5.0.2'
diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py
index 8a954a6..88d1beb 100644
--- a/erpnext/accounts/report/financial_statements.py
+++ b/erpnext/accounts/report/financial_statements.py
@@ -224,20 +224,6 @@
roots.sort(compare_roots)
-def sort_root_accounts(roots):
- """Sort root types as Asset, Liability, Equity, Income, Expense"""
-
- def compare_roots(a, b):
- if a.report_type != b.report_type and a.report_type == "Balance Sheet":
- return -1
- if a.root_type != b.root_type and a.root_type == "Asset":
- return -1
- if a.root_type == "Liability" and b.root_type == "Equity":
- return -1
- return 1
-
- roots.sort(compare_roots)
-
def get_gl_entries(company, from_date, to_date, root_lft, root_rgt, ignore_closing_entries=False):
"""Returns a dict like { "account": [gl entries], ... }"""
additional_conditions = []
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index e0f0e3b..1853fc9 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -421,8 +421,3 @@
})
return all_outstanding_vouchers
-
-@frappe.whitelist()
-def get_letter_head(company):
- return frappe.db.get_value("Company",company,"default_letter_head")
-
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 1599218..846e49e 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -5,7 +5,7 @@
app_description = "Open Source Enterprise Resource Planning for Small and Midsized Organizations"
app_icon = "icon-th"
app_color = "#e74c3c"
-app_version = "v5.0.0"
+app_version = "5.0.2"
error_report_email = "support@erpnext.com"
diff --git a/erpnext/patches/v4_2/repost_requested_qty.py b/erpnext/patches/v4_2/repost_requested_qty.py
deleted file mode 100644
index 8c1d6f7..0000000
--- a/erpnext/patches/v4_2/repost_requested_qty.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-
-def execute():
- from erpnext.utilities.repost_stock import update_bin_qty, get_indented_qty
-
- count=0
- for item_code, warehouse in frappe.db.sql("""select distinct item_code, warehouse
- from `tabMaterial Request Item` where docstatus = 1"""):
- try:
- count += 1
- update_bin_qty(item_code, warehouse, {
- "indented_qty": get_indented_qty(item_code, warehouse),
- })
- if count % 200 == 0:
- frappe.db.commit()
- except:
- frappe.db.rollback()
diff --git a/erpnext/patches/v4_2/update_advance_paid.py b/erpnext/patches/v4_2/update_advance_paid.py
deleted file mode 100644
index 818735a..0000000
--- a/erpnext/patches/v4_2/update_advance_paid.py
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-
-def execute():
- for dt in ("Sales Order", "Purchase Order"):
- orders_with_advance = frappe.db.sql("""select name from `tab{0}`
- where docstatus < 2 and ifnull(advance_paid, 0) != 0""".format(dt), as_dict=1)
-
- for order in orders_with_advance:
- frappe.get_doc(dt, order.name).set_total_advance_paid()
\ No newline at end of file
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index a96f5e9..c8b2b64 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -194,6 +194,7 @@
var fn = function() {
if(me.frm.doc.company && me.frm.fields_dict.currency) {
var company_currency = me.get_company_currency();
+ var company_doc = frappe.get_doc(":Company", me.frm.doc.company);
if (!me.frm.doc.currency) {
me.frm.set_value("currency", company_currency);
}
@@ -204,6 +205,12 @@
if (me.frm.doc.price_list_currency == company_currency) {
me.frm.set_value('plc_conversion_rate', 1.0);
}
+ if (company_doc.default_letter_head) {
+ me.frm.set_value("letter_head", company_doc.default_letter_head);
+ }
+ if (company_doc.default_terms) {
+ me.frm.set_value("tc_name", company_doc.default_terms);
+ }
me.frm.script_manager.trigger("currency");
me.apply_pricing_rule();
@@ -213,7 +220,6 @@
if (this.frm.doc.posting_date) var date = this.frm.doc.posting_date;
else var date = this.frm.doc.transaction_date;
erpnext.get_fiscal_year(this.frm.doc.company, date, fn);
- erpnext.get_letter_head(this.frm.doc.company);
if(this.frm.doc.company) {
erpnext.last_selected_company = this.frm.doc.company;
diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js
index 355fe7d..5476d14 100644
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -105,21 +105,7 @@
d.show();
});
- },
-
- get_letter_head: function(company) {
- frappe.call({
- type:"GET",
- method: "erpnext.accounts.utils.get_letter_head",
- args: {
- "company": company
- },
- callback: function(r) {
- if (!r.exe) cur_frm.set_value("letter_head", r.message);
- }
- });
- },
-
+ }
});
diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py
index 19a9aae..f82e2fb 100644
--- a/erpnext/selling/doctype/customer/customer.py
+++ b/erpnext/selling/doctype/customer/customer.py
@@ -76,7 +76,7 @@
def validate_name_with_customer_group(self):
if frappe.db.exists("Customer Group", self.name):
- frappe.throw(_("A Customer Group exists with same name please change the Customer name or rename the Customer Group"))
+ frappe.throw(_("A Customer Group exists with same name please change the Customer name or rename the Customer Group"), frappe.NameError)
def delete_customer_address(self):
addresses = frappe.db.sql("""select name, lead from `tabAddress`
@@ -125,9 +125,9 @@
billing_this_year = frappe.db.sql("""select sum(base_grand_total)
from `tabSales Invoice`
- where customer=%s and docstatus = 1 and fiscal_year = %s""",
+ where customer=%s and docstatus = 1 and fiscal_year = %s""",
(customer, frappe.db.get_default("fiscal_year")))
-
+
total_unpaid = frappe.db.sql("""select sum(outstanding_amount)
from `tabSales Invoice`
where customer=%s and docstatus = 1""", customer)
diff --git a/erpnext/setup/doctype/company/company.json b/erpnext/setup/doctype/company/company.json
index 0e7b17a..db71d0f 100644
--- a/erpnext/setup/doctype/company/company.json
+++ b/erpnext/setup/doctype/company/company.json
@@ -53,14 +53,6 @@
"read_only": 0
},
{
- "fieldname": "default_letter_head",
- "fieldtype": "Link",
- "label": "Default Letter Head",
- "options": "Letter Head",
- "permlevel": 0,
- "precision": ""
- },
- {
"fieldname": "domain",
"fieldtype": "Select",
"label": "Domain",
@@ -72,10 +64,18 @@
"fieldname": "charts_section",
"fieldtype": "Section Break",
"hidden": 0,
- "label": "Country Settings",
+ "label": "Default Values",
"permlevel": 0
},
{
+ "fieldname": "default_letter_head",
+ "fieldtype": "Link",
+ "label": "Default Letter Head",
+ "options": "Letter Head",
+ "permlevel": 0,
+ "precision": ""
+ },
+ {
"fieldname": "default_holiday_list",
"fieldtype": "Link",
"label": "Default Holiday List",
@@ -118,9 +118,17 @@
"permlevel": 0
},
{
+ "fieldname": "default_terms",
+ "fieldtype": "Link",
+ "label": "Default Terms",
+ "options": "Terms and Conditions",
+ "permlevel": 0,
+ "precision": ""
+ },
+ {
"fieldname": "default_settings",
"fieldtype": "Section Break",
- "label": "Default Settings",
+ "label": "Accounts Settings",
"oldfieldtype": "Section Break",
"permlevel": 0,
"read_only": 0
@@ -406,7 +414,7 @@
],
"icon": "icon-building",
"idx": 1,
- "modified": "2015-05-04 11:22:42.116328",
+ "modified": "2015-05-19 02:00:41.055138",
"modified_by": "Administrator",
"module": "Setup",
"name": "Company",
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index ad89114..d358928 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -63,6 +63,8 @@
if self.default_currency:
frappe.db.set_value("Currency", self.default_currency, "enabled", 1)
+ frappe.clear_cache()
+
def install_country_fixtures(self):
if os.path.exists(os.path.join(os.path.dirname(__file__), "fixtures", self.country.lower())):
frappe.get_attr("erpnext.setup.doctype.company.fixtures.{0}.install".format(self.country.lower()))(self)
@@ -167,7 +169,7 @@
where defkey='Company' and defvalue=%s""", (newdn, olddn))
frappe.defaults.clear_cache()
-
+
def on_trash(self):
"""
Trash accounts and cost centers for this company if no gl entry exists
@@ -178,7 +180,7 @@
frappe.db.sql("delete from `tabAccount` where company = %s", self.name)
# delete cost center child table - budget detail
- frappe.db.sql("""delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc
+ frappe.db.sql("""delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc
where bd.parent = cc.name and cc.company = %s""", self.name)
#delete cost center
frappe.db.sql("delete from `tabCost Center` WHERE company = %s", self.name)
diff --git a/erpnext/startup/boot.py b/erpnext/startup/boot.py
index 48efa27..474af2c 100644
--- a/erpnext/startup/boot.py
+++ b/erpnext/startup/boot.py
@@ -29,8 +29,9 @@
bootinfo.setup_complete = frappe.db.sql("""select name from
tabCompany limit 1""") and 'Yes' or 'No'
- bootinfo.docs += frappe.db.sql("""select name, default_currency, cost_center
- from `tabCompany`""", as_dict=1, update={"doctype":":Company"})
+ bootinfo.docs += frappe.db.sql("""select name, default_currency, cost_center,
+ default_terms, default_letter_head from `tabCompany`""",
+ as_dict=1, update={"doctype":":Company"})
def load_country_and_currency(bootinfo):
country = frappe.db.get_default("country")
diff --git a/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py b/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
index c6ef82f..d911975 100644
--- a/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
+++ b/erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
@@ -7,9 +7,7 @@
from frappe.utils import flt, cint, getdate
def execute(filters=None):
- if not filters: filters = {}
-
- float_precision = cint(frappe.db.get_default("float_precision")) or 3
+ if not filters: filters = {}
float_precision = cint(frappe.db.get_default("float_precision")) or 3
diff --git a/setup.py b/setup.py
index 6ed8378..30ebbbb 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
from setuptools import setup, find_packages
-version = "v5.0.0"
+version = "5.0.2"
with open("requirements.txt", "r") as f:
install_requires = f.readlines()