blob: c1e53a272ff4afc92319393e7b0251034490f487 [file] [log] [blame]
Anand Doshi825d0142014-07-18 18:05:26 +05301frappe.provide("erpnext.financial_statements");
2
3erpnext.financial_statements = {
4 "filters": [
5 {
6 "fieldname":"company",
7 "label": __("Company"),
8 "fieldtype": "Link",
9 "options": "Company",
Nabin Haitb6b56452015-12-23 16:37:00 +053010 "default": frappe.defaults.get_user_default("Company"),
Anand Doshi825d0142014-07-18 18:05:26 +053011 "reqd": 1
12 },
13 {
14 "fieldname":"fiscal_year",
15 "label": __("Fiscal Year"),
16 "fieldtype": "Link",
17 "options": "Fiscal Year",
18 "default": frappe.defaults.get_user_default("fiscal_year"),
19 "reqd": 1
20 },
21 {
22 "fieldname": "periodicity",
23 "label": __("Periodicity"),
24 "fieldtype": "Select",
Rushabh Mehtaeb961372016-01-04 15:48:37 +053025 "options": [
26 { "value": "Monthly", "label": __("Monthly") },
27 { "value": "Quarterly", "label": __("Quarterly") },
28 { "value": "Half-Yearly", "label": __("Half-Yearly") },
29 { "value": "Yearly", "label": __("Yearly") }
30 ],
Nabin Hait44c1b8e2016-05-20 11:44:08 +053031 "default": "Monthly",
Anand Doshi825d0142014-07-18 18:05:26 +053032 "reqd": 1
Nabin Haitbd7f48c2016-02-02 19:05:30 +053033 }
Anand Doshi825d0142014-07-18 18:05:26 +053034 ],
Anand Doshicb86d592014-07-22 19:02:11 +053035 "formatter": function(row, cell, value, columnDef, dataContext, default_formatter) {
Anand Doshi825d0142014-07-18 18:05:26 +053036 if (columnDef.df.fieldname=="account") {
Anand Doshicb86d592014-07-22 19:02:11 +053037 value = dataContext.account_name;
Anand Doshi825d0142014-07-18 18:05:26 +053038
Anand Doshi561e6cd2016-02-16 11:56:53 +053039 columnDef.df.link_onclick =
Nabin Haitbd7f48c2016-02-02 19:05:30 +053040 "erpnext.financial_statements.open_general_ledger(" + JSON.stringify(dataContext) + ")";
Anand Doshicb86d592014-07-22 19:02:11 +053041 columnDef.df.is_tree = true;
Anand Doshi825d0142014-07-18 18:05:26 +053042 }
43
Anand Doshicb86d592014-07-22 19:02:11 +053044 value = default_formatter(row, cell, value, columnDef, dataContext);
45
Anand Doshi825d0142014-07-18 18:05:26 +053046 if (!dataContext.parent_account) {
Anand Doshi5f0459c2014-07-21 16:13:06 +053047 var $value = $(value).css("font-weight", "bold");
Anand Doshicb86d592014-07-22 19:02:11 +053048 if (dataContext.warn_if_negative && dataContext[columnDef.df.fieldname] < 0) {
Anand Doshi5f0459c2014-07-21 16:13:06 +053049 $value.addClass("text-danger");
50 }
51
52 value = $value.wrap("<p></p>").parent().html();
Anand Doshi825d0142014-07-18 18:05:26 +053053 }
54
55 return value;
56 },
Anand Doshi5f0459c2014-07-21 16:13:06 +053057 "open_general_ledger": function(data) {
58 if (!data.account) return;
Anand Doshi825d0142014-07-18 18:05:26 +053059
60 frappe.route_options = {
Anand Doshi5f0459c2014-07-21 16:13:06 +053061 "account": data.account,
62 "company": frappe.query_report.filters_by_name.company.get_value(),
Anand Doshi561e6cd2016-02-16 11:56:53 +053063 "from_date": data.from_date || data.year_start_date,
64 "to_date": data.to_date || data.year_end_date
Anand Doshi825d0142014-07-18 18:05:26 +053065 };
66 frappe.set_route("query-report", "General Ledger");
Anand Doshicb86d592014-07-22 19:02:11 +053067 },
68 "tree": true,
69 "name_field": "account",
70 "parent_field": "parent_account",
Rushabh Mehta05253872016-04-18 19:27:36 +053071 "initial_depth": 3,
72 onload: function(report) {
73 // dropdown for links to other financial statements
74 report.page.add_inner_button(__("Balance Sheet"), function() {
75 var filters = report.get_values();
76 frappe.set_route('query-report', 'Balance Sheet', {company: filters.company});
77 }, 'Financial Statements');
78 report.page.add_inner_button(__("Profit and Loss"), function() {
79 var filters = report.get_values();
80 frappe.set_route('query-report', 'Profit and Loss Statement', {company: filters.company});
81 }, 'Financial Statements');
82 report.page.add_inner_button(__("Cash Flow Statement"), function() {
83 var filters = report.get_values();
84 frappe.set_route('query-report', 'Cash Flow', {company: filters.company});
85 }, 'Financial Statements');
Nabin Hait44c1b8e2016-05-20 11:44:08 +053086 }
Anand Doshi825d0142014-07-18 18:05:26 +053087};