summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/Report/Table/Monthly.pm31
-rw-r--r--httemplate/elements/tr-select-from_to.html2
-rw-r--r--httemplate/graph/elements/monthly.html9
-rw-r--r--httemplate/graph/report_cust_bill_pkg.html6
4 files changed, 15 insertions, 33 deletions
diff --git a/FS/FS/Report/Table/Monthly.pm b/FS/FS/Report/Table/Monthly.pm
index 4121699..87c13a8 100644
--- a/FS/FS/Report/Table/Monthly.pm
+++ b/FS/FS/Report/Table/Monthly.pm
@@ -49,9 +49,8 @@ sub data {
my $syear = $self->{'start_year'};
my $emonth = $self->{'end_month'};
my $eyear = $self->{'end_year'};
- # how far to extrapolate into the future
- my $pmonth = $self->{'project_month'};
- my $pyear = $self->{'project_year'};
+ # whether to extrapolate into the future
+ my $projecting = $self->{'projection'};
# sanity checks
if ( $eyear < $syear or
@@ -61,17 +60,14 @@ sub data {
my $agentnum = $self->{'agentnum'};
- if ( $pyear > $eyear or
- ($pyear == $eyear and $pmonth > $emonth) ) {
+ if ( $projecting ) {
- # create the entire projection set first to avoid timing problems
+ $self->init_projection;
- $self->init_projection if $pmonth;
-
- my $thisyear = $eyear;
- my $thismonth = $emonth;
- while ( $thisyear < $pyear ||
- ( $thisyear == $pyear and $thismonth <= $pmonth )
+ my $thismonth = $smonth;
+ my $thisyear = $syear;
+ while ( $thisyear < $eyear ||
+ ( $thisyear == $eyear and $thismonth <= $emonth )
) {
my $speriod = timelocal(0,0,0,1,$thismonth-1,$thisyear);
$thismonth++;
@@ -84,10 +80,8 @@ sub data {
my %data;
- my $max_year = $pyear || $eyear;
- my $max_month = $pmonth || $emonth;
-
- my $projecting = 0; # are we currently projecting?
+ my $max_year = $eyear;
+ my $max_month = $emonth;
while ( $syear < $max_year
|| ( $syear == $max_year && $smonth < $max_month+1 ) ) {
@@ -101,11 +95,6 @@ sub data {
push @{$data{label}}, "$smonth/$syear";
}
- if ( $syear > $eyear || ( $syear == $eyear && $smonth >= $emonth + 1 ) ) {
- # start getting data from the projection
- $projecting = 1;
- }
-
my $speriod = timelocal(0,0,0,1,$smonth-1,$syear);
push @{$data{speriod}}, $speriod;
if ( ++$smonth == 13 ) { $syear++; $smonth=1; }
diff --git a/httemplate/elements/tr-select-from_to.html b/httemplate/elements/tr-select-from_to.html
index 1003812..a27412f 100644
--- a/httemplate/elements/tr-select-from_to.html
+++ b/httemplate/elements/tr-select-from_to.html
@@ -39,7 +39,7 @@
my %hash = (
'show_month_abbr' => 1,
'start_year' => '1999',
- 'end_year' => '2012', #haha, well...
+ 'end_year' => '2013', #haha, well...
@_,
);
</%init>
diff --git a/httemplate/graph/elements/monthly.html b/httemplate/graph/elements/monthly.html
index 072798c..86530dd 100644
--- a/httemplate/graph/elements/monthly.html
+++ b/httemplate/graph/elements/monthly.html
@@ -92,10 +92,7 @@ $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;
-#find end of projection
-$opt{'project_month'} ||= $cgi->param('project_month') || 0;
-$opt{'project_year'} ||= $cgi->param('project_year') || 0;
-# setting these to zero prevents projection on reports that don't support it
+$opt{'projection'} ||= $cgi->param('projection') ? 1 : 0;
if ( $opt{'daily'} ) { # daily granularity
$opt{'start_day'} ||= $cgi->param('start_day');
@@ -118,9 +115,7 @@ my %reportopts = (
'end_day' => $opt{'end_day'},
'end_month' => $opt{'end_month'},
'end_year' => $opt{'end_year'},
- 'project_day' => $opt{'project_day'},
- 'project_month' => $opt{'project_month'},
- 'project_year' => $opt{'project_year'},
+ 'projection' => $opt{'projection'},
'agentnum' => $opt{'agentnum'},
'remove_empty' => $opt{'remove_empty'},
'doublemonths' => $opt{'doublemonths'},
diff --git a/httemplate/graph/report_cust_bill_pkg.html b/httemplate/graph/report_cust_bill_pkg.html
index f2c486c..07d4421 100644
--- a/httemplate/graph/report_cust_bill_pkg.html
+++ b/httemplate/graph/report_cust_bill_pkg.html
@@ -7,10 +7,8 @@
<% include('/elements/tr-select-from_to.html' ) %>
<TR>
- <TD ALIGN="right">Project to:</TD>
- <TD><& /elements/select-month_year.html,
- prefix => 'project',
- show_month_abbr => 1 &></TD>
+ <TD ALIGN="right"><INPUT TYPE="checkbox" NAME="projection" VALUE="1"></TD>
+ <TD>Show projected data for future months</TD>
</TR>
<% include('/elements/tr-select-agent.html',