set diagram_rand [expr{round(rand() * 100000000.0)}]
set diagram_id "revenue_by_month_$diagram_rand"
set default_currency [im_parameter -package_id [im_package_cost_id]"DefaultCurrency""""EUR"]
# Get the list of all years
set year_list [db_list year_list "select distinct 'invoices_' || to_char(im_month_enumerator, 'YYYY') as year from im_month_enumerator(:diagram_min_start_date::date, now()::date) order by year"]
set year_list_json "\['[join$year_list "', '"]'\]"
# The header of the Sencha store:
set header_list [linsert$year_list 0 "month"]
set header_json "\['[join$header_list "', '"]'\]"
# Series JSON
set series_list {}
foreach year $year_list {
lappend series_list "{
type: 'line',
title: '$year',
xField: 'month', yField: '$year',
axis: 'left',
highlight: {size: 7, radius: 7},
listeners: {
'itemclick': function(item, event) {
var date = item.storeItem.get('Year').toISOString().substring(0,10);
var value = item.value\[1\];
var year = item.series.yField;
var url = '/intranet-reporting-dashboard/revenue-by-year-monthly-details';
set json "{\"success\": false, \"message\": \"Insufficient permissions - you need view_companies_all and view_finance.\" }"
doc_return 400 "application/json"$json
ad_script_abort
}
set default_currency [im_parameter -package_id [im_package_cost_id]"DefaultCurrency""""EUR"]
set today_year [db_string today "select to_char(now(), 'YYYY')"]
set start_year [expr$today_year - $diagram_interval]
set today_date "$today_year-01-01"
set start_date "$start_year-01-01"
set next_start_year [expr$start_year + 1]
set next_start_date "$next_start_year-01-01"
set months_sql "select distinct to_char(im_month_enumerator, 'MM') as month from im_month_enumerator('$start_date'::date, '$next_start_date'::date) order by month"