Merge pull request #14117 from shreyashah115/fixes
Fix patch
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..bf906ce 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
@@ -332,12 +332,14 @@
conditions.append("company=%s")
values.append(self.filters.company)
- if self.filters.finance_book:
- conditions.append("finance_book in (%s, '')")
+ company_finance_book = erpnext.get_default_finance_book(self.filters.company)
+
+ if not self.filters.finance_book or (self.filters.finance_book == company_finance_book):
+ conditions.append("ifnull(finance_book,'') in (%s, '')")
+ values.append(company_finance_book)
+ elif self.filters.finance_book:
+ conditions.append("ifnull(finance_book,'') = %s")
values.append(self.filters.finance_book)
- else:
- conditions.append("ifnull(finance_book,'')=%s")
- values.append('')
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..fb59882 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,14 @@
if filters.get("asset_category"):
conditions += " and a.asset_category = %(asset_category)s"
+ company_finance_book = erpnext.get_default_finance_book(filters.get("company"))
+
+ if (not filters.get('finance_book') or (filters.get('finance_book') == company_finance_book)):
+ filters['finance_book'] = company_finance_book
+ conditions += " and ifnull(ds.finance_book, '') in (%(finance_book)s, '') "
+ elif filters.get("finance_book"):
+ conditions += " and ifnull(ds.finance_book, '') = %(finance_book)s"
+
return conditions
def get_columns():
diff --git a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.js b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.js
index 63f263f..91a06f4 100644
--- a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.js
+++ b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.js
@@ -29,6 +29,12 @@
"reqd": 1
},
{
+ "fieldname":"finance_book",
+ "label": __("Finance Book"),
+ "fieldtype": "Link",
+ "options": "Finance Book"
+ },
+ {
"fieldname":"report",
"label": __("Report"),
"fieldtype": "Select",
diff --git a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
index 750120b..39f4771 100644
--- a/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
+++ b/erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.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 _
from frappe.utils import flt, cint
from erpnext.accounts.report.financial_statements import get_fiscal_year_data, sort_accounts
@@ -322,7 +322,7 @@
company_lft, company_rgt = frappe.db.get_value('Company',
filters.get('company'), ["lft", "rgt"])
- additional_conditions = get_additional_conditions(from_date, ignore_closing_entries)
+ additional_conditions = get_additional_conditions(from_date, ignore_closing_entries, filters)
gl_entries = frappe.db.sql("""select gl.posting_date, gl.account, gl.debit, gl.credit, gl.is_opening, gl.company,
gl.fiscal_year, gl.debit_in_account_currency, gl.credit_in_account_currency, gl.account_currency,
@@ -353,7 +353,7 @@
field = "Account number" if entry.account_number else "Account name"
frappe.throw(_("{0} {1} is not present in the parent company").format(field, key))
-def get_additional_conditions(from_date, ignore_closing_entries):
+def get_additional_conditions(from_date, ignore_closing_entries, filters):
additional_conditions = []
if ignore_closing_entries:
@@ -362,6 +362,15 @@
if from_date:
additional_conditions.append("gl.posting_date >= %(from_date)s")
+ company_finance_book = erpnext.get_default_finance_book(filters.get("company"))
+
+ if not filters.get('finance_book') or (filters.get('finance_book') == company_finance_book):
+ additional_conditions.append("finance_book in ('%s', '')" %
+ frappe.db.escape(company_finance_book))
+ elif filters.get("finance_book"):
+ additional_conditions.append("finance_book = '%s' " %
+ frappe.db.escape(filters.get("finance_book")))
+
return " and {}".format(" and ".join(additional_conditions)) if additional_conditions else ""
def add_total_row(out, root_type, balance_must_be, companies, company_currency):
diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py
index ea22bac..41abc3f 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 _
@@ -375,12 +375,15 @@
additional_conditions.append("project = '%s'" % (frappe.db.escape(filters.get("project"))))
if filters.get("cost_center"):
additional_conditions.append(get_cost_center_cond(filters.get("cost_center")))
- if filters.get("finance_book"):
- additional_conditions.append("finance_book in ('%s', '')" %
- frappe.db.escape(filters.get("finance_book")))
- else:
- additional_conditions.append("ifnull(finance_book, '') = ''")
+ company_finance_book = erpnext.get_default_finance_book(filters.get("company"))
+
+ if not filters.get('finance_book') or (filters.get('finance_book') == company_finance_book):
+ additional_conditions.append("finance_book in ('%s', '')" %
+ frappe.db.escape(company_finance_book))
+ elif filters.get("finance_book"):
+ additional_conditions.append("finance_book = '%s' " %
+ frappe.db.escape(filters.get("finance_book")))
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..6aecab9 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
@@ -167,10 +167,12 @@
if filters.get("project"):
conditions.append("project=%(project)s")
- if filters.get("finance_book"):
- conditions.append("finance_book in (%(finance_book)s, '')")
- else:
- conditions.append("ifnull(finance_book, '')=''")
+ company_finance_book = erpnext.get_default_finance_book(filters.get("company"))
+ if not filters.get("finance_book") or (filters.get("finance_book") == company_finance_book):
+ filters['finance_book'] = company_finance_book
+ conditions.append("ifnull(finance_book, '') in (%(finance_book)s, '')")
+ elif filters.get("finance_book"):
+ conditions.append("ifnull(finance_book, '') = %(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",
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index 1a73ae5..9289d69 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -35,6 +35,10 @@
},
+ onload_post_render: function(frm) {
+ frm.get_field("items").grid.set_multiple_add("item_code", "qty");
+ },
+
refresh: function(frm) {
if(frm.doc.company) {
frm.trigger("toggle_display_account_head");