Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / graph / elements / monthly.html
index 99db31e..1a94281 100644 (file)
@@ -20,13 +20,14 @@ Example:
     'link_fromparam'  => 'param_from', #defaults to 'begin'
     'link_toparam'    => 'param_to',   #defaults to 'end'
     'daily'           => 1, # omit for monthly granularity
+    'no_graph'        => \@no_graph, # items to leave off the graph (subtotals)
 
     #optional, pulled from CGI params if not specified
     'start_month'     => $smonth,
     'start_year'      => $syear,
     'end_month'       => $emonth,
     'end_year'        => $eyear,
-
+    '12mo'            => 0,
 
     #optional, pulled from CGI params if not specified, 
     #only if 'daily' option is given
@@ -35,6 +36,8 @@ Example:
 
     #optional
     'agentnum'        => $agentnum,
+    'refnum'          => $refnum,
+    'cust_classnum'   => \@classnums,
     'nototal'         => 1,
     'graph_type'      => 'LinesPoints',
     'remove_empty'    => 1,
@@ -48,18 +51,21 @@ Example:
             'items'         => $data->{'items'},
             'data'          => $data->{'data'},
             'row_labels'    => $data->{'item_labels'},
-            'graph_labels'  => $opt{'graph_labels'} || $data->{'item_labels'},
+            'graph_labels'  => \@graph_labels,
             'col_labels'    => $col_labels,
             'axis_labels'   => $data->{label},
-            'colors'        => $data->{colors},
+            'colors'        => \@colors,
             'links'         => \@links,
+            'no_graph'      => \@no_graph,
             'bottom_link'   => \@bottom_link,
-            map { $_, $opt{$_} } (qw(title 
-                                    nototal 
-                                    graph_type 
-                                    bottom_total 
-                                    sprintf 
-                                    disable_money)),
+            'transpose'     => $opt{'daily'},
+            map { $_, $opt{$_} } (qw(title
+                                    nototal
+                                    graph_type
+                                    bottom_total
+                                    sprintf
+                                    disable_money
+                                    chart_options)),
           ) %>
 <%init>
 
@@ -90,6 +96,10 @@ $opt{'start_year'}  ||= $cgi->param('start_year'); # || 1899+$curyear;
 $opt{'end_month'} ||= $cgi->param('end_month'); # || $curmon+1;
 $opt{'end_year'}  ||= $cgi->param('end_year'); # || 1900+$curyear;
 
+$opt{'12mo'} ||= $cgi->param('12mo') ? 1 : 0;
+
+$opt{'projection'} ||= $cgi->param('projection') ? 1 : 0;
+
 if ( $opt{'daily'} ) { # daily granularity
     $opt{'start_day'} ||= $cgi->param('start_day');
     $opt{'end_day'} ||= $cgi->param('end_day');
@@ -98,7 +108,7 @@ if ( $opt{'daily'} ) { # daily granularity
 my %reportopts = (
       'items'        => \@items,
       'params'       => $opt{'params'},
-      'item_labels'  => ( $cgi->param('_type') =~ /^(png)$/
+      'item_labels'  => ( $cgi->param('_type') =~ /^(png)$/ 
                             ? $opt{'graph_labels'}
                             : $opt{'labels'}
                         ),
@@ -111,9 +121,14 @@ my %reportopts = (
       'end_day'      => $opt{'end_day'},
       'end_month'    => $opt{'end_month'},
       'end_year'     => $opt{'end_year'},
+      '12mo'         => $opt{'12mo'},
+      'projection'   => $opt{'projection'},
       'agentnum'     => $opt{'agentnum'},
+      'refnum'       => $opt{'refnum'},
+      'cust_classnum'=> $opt{'cust_classnum'},
       'remove_empty' => $opt{'remove_empty'},
       'doublemonths' => $opt{'doublemonths'},
+      'normalize'    => $opt{'normalize'},
 );
 
 warn Dumper({ 'REPORTOPTS' => \%reportopts }) if $opt{'debug'};
@@ -125,16 +140,23 @@ my $data = $report->data;
 
 warn Dumper({'DATA' => $data}) if $opt{'debug'};
 
+if ( $data->{'error'} ) {
+  die $data->{'error'}; # could be smarter
+}
+
 my $col_labels = [ map { my $m = $_; $m =~ s/^(\d+)\//$mon[$1-1] / ; $m }
                              @{$data->{label}} ];
 $col_labels = $data->{label} if $opt{'daily'};
 
-if ( $opt{'remove_empty'} ) {
-  # need to filter out series labels for collapsed rows
-  $opt{'graph_labels'} = [ 
-    map { $opt{'graph_labels'}[$_] } 
-    @{ $data->{indices} }
-  ];
+my @colors;
+my @graph_labels;
+my @no_graph;
+#if ( $opt{'remove_empty'} ) { # no, always do this
+  # then filter out per-item things for collapsed rows
+foreach my $i (@{ $data->{'indices'} }) {
+  push @colors,       $opt{'colors'}[$i];
+  push @graph_labels, $opt{'graph_labels'}[$i];
+  push @no_graph,     $opt{'no_graph'}[$i];
 }
 
 my @links;