Merge pull request #14130 from rohitwaghchaure/fixed_financial_report

Added finance book in Asset Depreciation Ledger report, fixed asset issue
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index e388601..786ade1 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -79,6 +79,19 @@
 
 	return frappe.local.enable_perpetual_inventory[company]
 
+def get_default_finance_book(company=None):
+	if not company:
+		company = get_default_company()
+
+	if not hasattr(frappe.local, 'default_finance_book'):
+		frappe.local.default_finance_book = {}
+
+	if not company in frappe.local.default_finance_book:
+		frappe.local.default_finance_book[company] = frappe.db.get_value("Company",
+			company, "default_finance_book")
+
+	return frappe.local.default_finance_book[company]
+
 def get_party_account_type(party_type):
 	if not hasattr(frappe.local, 'party_account_types'):
 		frappe.local.party_account_types = {}
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index 8581a25..017771a 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -2,7 +2,7 @@
 # License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
-import frappe
+import frappe, erpnext
 from frappe import _, scrub
 from frappe.utils import getdate, nowdate, flt, cint
 
@@ -333,11 +333,11 @@
 			values.append(self.filters.company)
 
 		if self.filters.finance_book:
-			conditions.append("finance_book in (%s, '')")
+			conditions.append("ifnull(finance_book,'') in (%s, '')")
 			values.append(self.filters.finance_book)
 		else:
-			conditions.append("ifnull(finance_book,'')=%s")
-			values.append('')
+			conditions.append("ifnull(finance_book,'') in (%s, '')")
+			values.append(erpnext.get_default_finance_book(self.filters.company))
 
 		if self.filters.get(party_type_field):
 			conditions.append("party=%s")
diff --git a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.js b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.js
index 9fa99c7..126cd03 100644
--- a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.js
+++ b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.js
@@ -32,6 +32,12 @@
 			"options": "Asset"
 		},
 		{
+			"fieldname":"finance_book",
+			"label": __("Finance Book"),
+			"fieldtype": "Link",
+			"options": "Finance Book"
+		},
+		{
 			"fieldname":"asset_category",
 			"label": __("Asset Category"),
 			"fieldtype": "Link",
diff --git a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py
index 5497384..318c590 100644
--- a/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py
+++ b/erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py
@@ -2,7 +2,7 @@
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
-import frappe
+import frappe, erpnext
 from frappe import _
 
 def execute(filters=None):
@@ -13,7 +13,7 @@
 	data = frappe.db.sql("""
 		select 
 			a.name as asset, a.asset_category, a.status, 
-			a.depreciation_method, a.purchase_date, a.gross_purchase_amount,
+			ds.depreciation_method, a.purchase_date, a.gross_purchase_amount,
 			ds.schedule_date as depreciation_date, ds.depreciation_amount, 
 			ds.accumulated_depreciation_amount, 
 			(a.gross_purchase_amount - ds.accumulated_depreciation_amount) as amount_after_depreciation,
@@ -30,9 +30,9 @@
 		order by
 			a.name asc, ds.schedule_date asc
 	""".format(conditions=get_filter_conditions(filters)), filters, as_dict=1)
-		
+
 	return data
-	
+
 def get_filter_conditions(filters):
 	conditions = ""
 	
@@ -42,6 +42,12 @@
 	if filters.get("asset_category"):
 		conditions += " and a.asset_category = %(asset_category)s"
 		
+	if filters.get("finance_book"):
+		conditions += " and ifnull(ds.finance_book, '') in (%(finance_book)s, '') "
+	else:
+		filters['finance_book'] = erpnext.get_default_finance_book(filters.get("company"))
+		conditions += " and ifnull(ds.finance_book, '') in (%(finance_book)s, '') "
+
 	return conditions
 	
 def get_columns():
diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py
index ea22bac..f7bde6c 100644
--- a/erpnext/accounts/report/financial_statements.py
+++ b/erpnext/accounts/report/financial_statements.py
@@ -7,7 +7,7 @@
 from past.builtins import cmp
 import functools
 
-import frappe
+import frappe, erpnext
 from erpnext.accounts.report.utils import get_currency, convert_to_presentation_currency
 from erpnext.accounts.utils import get_fiscal_year
 from frappe import _
@@ -379,7 +379,8 @@
 			additional_conditions.append("finance_book in ('%s', '')" %
 				frappe.db.escape(filters.get("finance_book")))
 		else:
-			additional_conditions.append("ifnull(finance_book, '') = ''")
+			additional_conditions.append("finance_book in ('%s', '')" %
+				frappe.db.escape(erpnext.get_default_finance_book(filters.get("company"))))
 
 
 	return " and {}".format(" and ".join(additional_conditions)) if additional_conditions else ""
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index 7134b91..bd4dfb2 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -2,7 +2,7 @@
 # License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
-import frappe
+import frappe, erpnext
 from erpnext import get_company_currency, get_default_company
 from erpnext.accounts.report.utils import get_currency, convert_to_presentation_currency
 from frappe.utils import getdate, cstr, flt, fmt_money
@@ -168,9 +168,10 @@
 		conditions.append("project=%(project)s")
 
 	if filters.get("finance_book"):
-		conditions.append("finance_book in (%(finance_book)s, '')")
+		conditions.append("ifnull(finance_book, '') in (%(finance_book)s, '')")
 	else:
-		conditions.append("ifnull(finance_book, '')=''")
+		filters['finance_book'] = erpnext.get_default_finance_book(filters.get("company"))
+		conditions.append("ifnull(finance_book, '') in (%(finance_book)s, '')")
 
 	from frappe.desk.reportview import build_match_conditions
 	match_conditions = build_match_conditions("GL Entry")
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index 1069db6..84094ce 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -140,6 +140,8 @@
 
 							if d.depreciation_method in ("Straight Line", "Manual"):
 								days = date_diff(schedule_date, from_date)
+								if n == 0: days += 1
+
 								depreciation_amount = days * rate_per_day
 								from_date = schedule_date
 							else:
diff --git a/erpnext/setup/doctype/company/company.json b/erpnext/setup/doctype/company/company.json
index e2f6adf..8501dc2 100644
--- a/erpnext/setup/doctype/company/company.json
+++ b/erpnext/setup/doctype/company/company.json
@@ -178,6 +178,38 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "default_finance_book", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Default Finance Book", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Finance Book", 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "translatable": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "cb0", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -456,26 +488,26 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "default_currency",
+   "fieldname": "default_currency", 
    "fieldtype": "Link", 
    "hidden": 0, 
-   "ignore_user_permissions": 1,
+   "ignore_user_permissions": 1, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Default Currency",
+   "label": "Default Currency", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Currency",
+   "options": "Currency", 
    "permlevel": 0, 
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "remember_last_selected_value": 0, 
    "report_hide": 0, 
-   "reqd": 1,
+   "reqd": 1, 
    "search_index": 0, 
    "set_only_once": 0, 
    "translatable": 0, 
@@ -487,7 +519,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "default_letter_head",
+   "fieldname": "default_letter_head", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -496,10 +528,10 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Default Letter Head",
+   "label": "Default Letter Head", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Letter Head",
+   "options": "Letter Head", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -519,7 +551,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "default_holiday_list",
+   "fieldname": "default_holiday_list", 
    "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -528,12 +560,12 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Default Holiday List",
+   "label": "Default Holiday List", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Holiday List",
+   "options": "Holiday List", 
    "permlevel": 0, 
-   "precision": "",
+   "precision": "", 
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
@@ -551,26 +583,26 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "default_terms",
+   "fieldname": "default_terms", 
    "fieldtype": "Link", 
    "hidden": 0, 
-   "ignore_user_permissions": 0,
+   "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Default Terms",
+   "label": "Default Terms", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Terms and Conditions",
+   "options": "Terms and Conditions", 
    "permlevel": 0, 
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "remember_last_selected_value": 0, 
    "report_hide": 0, 
-   "reqd": 0,
+   "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
    "translatable": 0, 
@@ -2529,7 +2561,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2018-05-14 06:02:22.105952", 
+ "modified": "2018-05-17 21:59:33.594245", 
  "modified_by": "Administrator", 
  "module": "Setup", 
  "name": "Company",