From 36e7b6303ecc4c6bf85b3538b0cf116b49f0e27c Mon Sep 17 00:00:00 2001 From: tundebabzy Date: Thu, 18 Jan 2018 13:56:46 +0100 Subject: [PATCH] get the currencies from database rather than hardcoded --- .../report/general_ledger/general_ledger.js | 233 ++++++++++-------- 1 file changed, 126 insertions(+), 107 deletions(-) diff --git a/erpnext/accounts/report/general_ledger/general_ledger.js b/erpnext/accounts/report/general_ledger/general_ledger.js index 8f999fd93d2..3e39afc3d9f 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.js +++ b/erpnext/accounts/report/general_ledger/general_ledger.js @@ -1,116 +1,135 @@ // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt -frappe.query_reports["General Ledger"] = { - "filters": [ +const get_currencies = () => { + // frappe.db.get_list returns a Promise + return frappe.db.get_list('GL Entry', { - "fieldname":"company", - "label": __("Company"), - "fieldtype": "Link", - "options": "Company", - "default": frappe.defaults.get_user_default("Company"), - "reqd": 1 - }, - { - "fieldname":"from_date", - "label": __("From Date"), - "fieldtype": "Date", - "default": frappe.datetime.add_months(frappe.datetime.get_today(), -1), - "reqd": 1, - "width": "60px" - }, - { - "fieldname":"to_date", - "label": __("To Date"), - "fieldtype": "Date", - "default": frappe.datetime.get_today(), - "reqd": 1, - "width": "60px" - }, - { - "fieldname":"account", - "label": __("Account"), - "fieldtype": "Link", - "options": "Account", - "get_query": function() { - var company = frappe.query_report_filters_by_name.company.get_value(); - return { - "doctype": "Account", - "filters": { - "company": company, + distinct: true, + fields:['account_currency'], + as_list: true + } + ); +} + +const flatten = (array) => { + return [].concat.apply([], array); +} + +get_currencies() +.then((r) => flatten(r)) +.then((currency_list) => { + frappe.query_reports["General Ledger"] = { + "filters": [ + { + "fieldname":"company", + "label": __("Company"), + "fieldtype": "Link", + "options": "Company", + "default": frappe.defaults.get_user_default("Company"), + "reqd": 1 + }, + { + "fieldname":"from_date", + "label": __("From Date"), + "fieldtype": "Date", + "default": frappe.datetime.add_months(frappe.datetime.get_today(), -1), + "reqd": 1, + "width": "60px" + }, + { + "fieldname":"to_date", + "label": __("To Date"), + "fieldtype": "Date", + "default": frappe.datetime.get_today(), + "reqd": 1, + "width": "60px" + }, + { + "fieldname":"account", + "label": __("Account"), + "fieldtype": "Link", + "options": "Account", + "get_query": function() { + var company = frappe.query_report_filters_by_name.company.get_value(); + return { + "doctype": "Account", + "filters": { + "company": company, + } } } - } - }, - { - "fieldname":"voucher_no", - "label": __("Voucher No"), - "fieldtype": "Data", - }, - { - "fieldname":"project", - "label": __("Project"), - "fieldtype": "Link", - "options": "Project" - }, - { - "fieldtype": "Break", - }, - { - "fieldname":"party_type", - "label": __("Party Type"), - "fieldtype": "Link", - "options": "Party Type", - "default": "" - }, - { - "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; }, - on_change: 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_type || !party) { - frappe.query_report_filters_by_name.party_name.set_value(""); - return; - } + { + "fieldname":"voucher_no", + "label": __("Voucher No"), + "fieldtype": "Data", + }, + { + "fieldname":"project", + "label": __("Project"), + "fieldtype": "Link", + "options": "Project" + }, + { + "fieldtype": "Break", + }, + { + "fieldname":"party_type", + "label": __("Party Type"), + "fieldtype": "Link", + "options": "Party Type", + "default": "" + }, + { + "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; + }, + on_change: 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_type || !party) { + frappe.query_report_filters_by_name.party_name.set_value(""); + return; + } - var fieldname = frappe.scrub(party_type) + "_name"; - frappe.db.get_value(party_type, party, fieldname, function(value) { - frappe.query_report_filters_by_name.party_name.set_value(value[fieldname]); - }); + var fieldname = frappe.scrub(party_type) + "_name"; + frappe.db.get_value(party_type, party, fieldname, function(value) { + frappe.query_report_filters_by_name.party_name.set_value(value[fieldname]); + }); + } + }, + { + "fieldname":"party_name", + "label": __("Party Name"), + "fieldtype": "Data", + "hidden": 1 + }, + { + "fieldname":"group_by_voucher", + "label": __("Group by Voucher"), + "fieldtype": "Check", + "default": 1 + }, + { + "fieldname":"group_by_account", + "label": __("Group by Account"), + "fieldtype": "Check", + }, + { + "fieldname": "presentation_currency", + "label": __("Currency"), + "fieldtype": "Select", + "options": currency_list } - }, - { - "fieldname":"party_name", - "label": __("Party Name"), - "fieldtype": "Data", - "hidden": 1 - }, - { - "fieldname":"group_by_voucher", - "label": __("Group by Voucher"), - "fieldtype": "Check", - "default": 1 - }, - { - "fieldname":"group_by_account", - "label": __("Group by Account"), - "fieldtype": "Check", - }, - { - "fieldname": "presentation_currency", - "label": __("Currency"), - "fieldtype": "Select", - "options": "NGN\nINR\nUSD" - } - ] -} + ] + } +});