1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<%
#my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my ($curmon,$curyear) = (localtime(time))[4,5];
#find first month
my $syear = $cgi->param('syear') || 1899+$curyear;
my $smonth = $cgi->param('smonth') || $curmon+1;
#find last month
my $eyear = $cgi->param('eyear') || 1900+$curyear;
my $emonth = $cgi->param('emonth') || $curmon+1;
#if ( $emonth++>12 ) { $emonth-=12; $eyear++; }
#my @labels;
#my %data;
my @items = qw( invoiced netsales credits receipts );
my %label = (
'invoiced' => 'Gross Sales (invoiced)',
'netsales' => 'Net Sales (invoiced - applied credits)',
'credits' => 'Credits',
'receipts' => 'Receipts/Cashflow (payments - refunds)',
);
my %color = (
'invoiced' => [ 153, 153, 255 ], #light blue
'netsales' => [ 0, 0, 204 ], #blue
'credits' => [ 204, 0, 0 ], #red
'receipts' => [ 0, 204, 0 ], #green
);
my $report = new FS::Report::Table::Monthly (
'items' => \@items,
'start_month' => $smonth,
'start_year' => $syear,
'end_month' => $emonth,
'end_year' => $eyear,
);
my %data = %{$report->data};
#my $chart = Chart::LinesPoints->new(1024,480);
#my $chart = Chart::LinesPoints->new(768,480);
my $chart = Chart::LinesPoints->new(976,384);
my $d = 0;
$chart->set(
#'min_val' => 0,
'legend' => 'bottom',
'colors' => { ( map { 'dataset'.$d++ => $color{$_} } @items ),
#'grey_background' => [ 211, 211, 211 ],
'grey_background' => 'white',
'background' => [ 0xe8, 0xe8, 0xe8 ], #grey
},
#'grey_background' => 'false',
'legend_labels' => [ map { $label{$_} } @items ],
'brush_size' => 4,
#'pt_size' => 12,
);
my @data = map { $data{$_} } ( 'label', @items );
http_header('Content-Type' => 'image/png' );
$chart->_set_colors();
%><%= $chart->scalar_png(\@data) %>
|