summaryrefslogtreecommitdiff
path: root/httemplate/graph/cust_bill_pkg-graph.cgi
diff options
context:
space:
mode:
authorivan <ivan>2006-05-07 20:27:21 +0000
committerivan <ivan>2006-05-07 20:27:21 +0000
commite65c6a26ca778166aec2b2d1dd3012ab84fa611a (patch)
tree1ef2a5a21088301217a8b4f1440fedd6b7b1a274 /httemplate/graph/cust_bill_pkg-graph.cgi
parent29644d5921c99520965b884b25800ed084891e94 (diff)
first pass at sales reports per agent and package class
Diffstat (limited to 'httemplate/graph/cust_bill_pkg-graph.cgi')
-rwxr-xr-xhttemplate/graph/cust_bill_pkg-graph.cgi84
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) %>