From 542bf8f7d47aef4fbdcd3f700eaaed377c904149 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 21 Nov 2016 16:57:10 +0530 Subject: [PATCH 1/2] Party filter and total row for opening and closing in trial balance for party report --- .../trial_balance_for_party.js | 13 +++++++ .../trial_balance_for_party.py | 37 ++++++++++++------- 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js index 4d2efad8b8..7ccec30bde 100644 --- a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js +++ b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.js @@ -50,6 +50,19 @@ frappe.query_reports["Trial Balance for Party"] = { "options": ["Customer", "Supplier"], "default": "Customer" }, + { + "fieldname":"party", + "label": __("Party"), + "fieldtype": "Dynamic Link", + "get_options": function() { + var party_type = frappe.query_report_filters_by_name.party_type.get_value(); + var party = frappe.query_report_filters_by_name.party.get_value(); + if(party && !party_type) { + frappe.throw(__("Please select Party Type first")); + } + return party_type; + } + }, { "fieldname": "show_zero_values", "label": __("Show zero values"), diff --git a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py index 58222ac0d5..6480623ffa 100644 --- a/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py +++ b/erpnext/accounts/report/trial_balance_for_party/trial_balance_for_party.py @@ -20,13 +20,23 @@ def execute(filters=None): def get_data(filters, show_party_name): party_name_field = "customer_name" if filters.get("party_type")=="Customer" else "supplier_name" - parties = frappe.get_all(filters.get("party_type"), fields = ["name", party_name_field], order_by="name") + party_filters = {"name": filters.get("party")} if filters.get("party") else {} + parties = frappe.get_all(filters.get("party_type"), fields = ["name", party_name_field], + filters = party_filters, order_by="name") company_currency = frappe.db.get_value("Company", filters.company, "default_currency") opening_balances = get_opening_balances(filters) balances_within_period = get_balances_within_period(filters) data = [] - total_debit, total_credit = 0, 0 + # total_debit, total_credit = 0, 0 + total_row = frappe._dict({ + "opening_debit": 0, + "opening_credit": 0, + "debit": 0, + "credit": 0, + "closing_debit": 0, + "closing_credit": 0 + }) for party in parties: row = { "party": party.name } if show_party_name: @@ -45,11 +55,7 @@ def get_data(filters, show_party_name): "debit": debit, "credit": credit }) - - # totals - total_debit += debit - total_credit += credit - + # closing closing_debit, closing_credit = toggle_debit_credit(opening_debit + debit, opening_credit + credit) row.update({ @@ -57,6 +63,10 @@ def get_data(filters, show_party_name): "closing_credit": closing_credit }) + # totals + for col in total_row: + total_row[col] += row.get(col) + row.update({ "currency": company_currency }) @@ -69,13 +79,12 @@ def get_data(filters, show_party_name): data.append(row) # Add total row - if total_debit or total_credit: - data.append({ - "party": "'" + _("Totals") + "'", - "debit": total_debit, - "credit": total_credit, - "currency": company_currency - }) + + total_row.update({ + "party": "'" + _("Totals") + "'", + "currency": company_currency + }) + data.append(total_row) return data From fd23fa7c0bf0a43180cfadd391d47380aa2e73f5 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 21 Nov 2016 16:57:39 +0530 Subject: [PATCH 2/2] Prifitability report link added to accounts module page --- .../monthly_distribution.json | 15 +++++++++++++-- erpnext/config/accounts.py | 6 ++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.json b/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.json index 377a95c7d5..7af7f48ce7 100644 --- a/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.json +++ b/erpnext/accounts/doctype/monthly_distribution/monthly_distribution.json @@ -9,11 +9,14 @@ "description": "**Monthly Distribution** helps you distribute the Budget/Target across months if you have seasonality in your business.", "docstatus": 0, "doctype": "DocType", + "editable_grid": 0, + "engine": "InnoDB", "fields": [ { "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "description": "Name of the Monthly Distribution", "fieldname": "distribution_id", "fieldtype": "Data", @@ -31,6 +34,7 @@ "print_hide": 0, "print_hide_if_no_value": 0, "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -41,6 +45,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "fiscal_year", "fieldtype": "Link", "hidden": 0, @@ -58,6 +63,7 @@ "print_hide": 0, "print_hide_if_no_value": 0, "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 1, @@ -68,6 +74,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "percentages", "fieldtype": "Table", "hidden": 0, @@ -85,6 +92,7 @@ "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, @@ -96,13 +104,14 @@ "hide_toolbar": 0, "icon": "icon-bar-chart", "idx": 1, + "image_view": 0, "in_create": 0, "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2016-05-16 16:35:20.349194", + "modified": "2016-11-21 14:54:35.998761", "modified_by": "Administrator", "module": "Accounts", "name": "Monthly Distribution", @@ -119,6 +128,7 @@ "export": 0, "if_owner": 0, "import": 0, + "is_custom": 0, "permlevel": 0, "print": 1, "read": 1, @@ -139,6 +149,7 @@ "export": 0, "if_owner": 0, "import": 0, + "is_custom": 0, "permlevel": 2, "print": 0, "read": 1, @@ -150,7 +161,7 @@ "write": 0 } ], - "quick_entry": 1, + "quick_entry": 0, "read_only": 0, "read_only_onload": 0, "sort_field": "modified", diff --git a/erpnext/config/accounts.py b/erpnext/config/accounts.py index 419d83f645..b9c503a7b0 100644 --- a/erpnext/config/accounts.py +++ b/erpnext/config/accounts.py @@ -371,6 +371,12 @@ def get_data(): "doctype": "GL Entry", "is_query_report": True, }, + { + "type": "report", + "name": "Profitability Analysis", + "doctype": "GL Entry", + "is_query_report": True, + }, { "type": "report", "name": "Payment Period Based On Invoice Date",