diff options
author | ivan <ivan> | 2006-05-07 20:27:21 +0000 |
---|---|---|
committer | ivan <ivan> | 2006-05-07 20:27:21 +0000 |
commit | e65c6a26ca778166aec2b2d1dd3012ab84fa611a (patch) | |
tree | 1ef2a5a21088301217a8b4f1440fedd6b7b1a274 /httemplate/graph/cust_bill_pkg-graph.cgi | |
parent | 29644d5921c99520965b884b25800ed084891e94 (diff) |
first pass at sales reports per agent and package class
Diffstat (limited to 'httemplate/graph/cust_bill_pkg-graph.cgi')
-rwxr-xr-x | httemplate/graph/cust_bill_pkg-graph.cgi | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/httemplate/graph/cust_bill_pkg-graph.cgi b/httemplate/graph/cust_bill_pkg-graph.cgi new file mode 100755 index 000000000..637a3bf94 --- /dev/null +++ b/httemplate/graph/cust_bill_pkg-graph.cgi @@ -0,0 +1,84 @@ +<% + +#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++; } + +# XXX or virtual +my $agentnum = ''; +if ( $cgi->param('agentnum') =~ /^(\d*)$/ ) { + $agentnum = $1; +} + +#my @labels; +#my %data; + +my @items = qw( invoiced netsales credits payments receipts ); +if ( $cgi->param('12mo') == 1 ) { + @items = map $_.'_12mo', @items; +} + +my %label = ( + 'invoiced' => 'Gross Sales (invoiced)', + 'netsales' => 'Net Sales (invoiced - applied credits)', + 'credits' => 'Credits', + 'payments' => 'Gross Receipts (payments)', + 'receipts' => 'Net Receipts/Cashflow (payments - refunds)', +); +$label{$_.'_12mo'} = $label{$_}. " (previous 12 months)" + foreach keys %label; + +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 +); +$color{$_.'_12mo'} = $color{$_} + foreach keys %color; + +my $report = new FS::Report::Table::Monthly ( + 'items' => \@items, + 'start_month' => $smonth, + 'start_year' => $syear, + 'end_month' => $emonth, + 'end_year' => $eyear, + 'agentnum' => $agentnum, +); +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) %> |