summaryrefslogtreecommitdiff
path: root/httemplate/graph/money_time-graph.cgi
blob: bb3d23aae7949afd28dc70af2389c7f287d523f0 (plain)
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
67
68
<%

#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 payments receipts );
my %label = (
 'invoiced' => 'Gross Sales (invoiced)', 
 'netsales' => 'Net Sales (invoiced - applied credits)',
 'credits'  => 'Credits',
 'payments' => 'Gross Receipts (payments)',
 'receipts' => 'Net Receipts/Cashflow (payments - refunds)',
);
my %color = (
  'invoiced' => [ 153, 153, 255 ], #light blue
  'netsales' => [   0,   0, 204 ], #blue
  'credits'  => [ 204,   0,   0 ], #red
  'payments' => [ 153, 204, 153 ], #light green
  '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) %>