diff options
| author | ivan <ivan> | 2006-05-02 11:59:31 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2006-05-02 11:59:31 +0000 | 
| commit | f29c752d6f9e813c10295b334eefb924216e34cf (patch) | |
| tree | 4497153bb67d7acf7fe8ca845f87c110061d9a92 | |
| parent | aa9fd844aeeb385cfc1e934eb7b7a08b1353a4ea (diff) | |
add a "pre-report" page to this report/graph as requested by lewis/wtxs, also add 12mo total option
| -rw-r--r-- | FS/FS/Report/Table/Monthly.pm | 41 | ||||
| -rwxr-xr-x | httemplate/graph/money_time-graph.cgi | 9 | ||||
| -rw-r--r-- | httemplate/graph/money_time.cgi | 67 | ||||
| -rw-r--r-- | httemplate/graph/report_money_time.html | 71 | ||||
| -rw-r--r-- | httemplate/index.html | 2 | 
5 files changed, 140 insertions, 50 deletions
diff --git a/FS/FS/Report/Table/Monthly.pm b/FS/FS/Report/Table/Monthly.pm index 9ef108c44..e7f05e5f2 100644 --- a/FS/FS/Report/Table/Monthly.pm +++ b/FS/FS/Report/Table/Monthly.pm @@ -156,6 +156,47 @@ sub credits {    );  } +#these should be auto-generated +sub invoiced_12mo { +  my( $self, $speriod, $eperiod, $agentnum ) = @_; +  $speriod = $self->_subtract_11mo($speriod); +  $self->invoiced($speriod, $eperiod, $agentnum); +} + +sub netsales_12mo { +  my( $self, $speriod, $eperiod, $agentnum ) = @_; +  $speriod = $self->_subtract_11mo($speriod); +  $self->netsales($speriod, $eperiod, $agentnum); +} + +sub receipts_12mo { +  my( $self, $speriod, $eperiod, $agentnum ) = @_; +  $speriod = $self->_subtract_11mo($speriod); +  $self->receipts($speriod, $eperiod, $agentnum); +} + +sub payments_12mo { +  my( $self, $speriod, $eperiod, $agentnum ) = @_; +  $speriod = $self->_subtract_11mo($speriod); +  $self->payments($speriod, $eperiod, $agentnum); +} + +sub credits_12mo { +  my( $self, $speriod, $eperiod, $agentnum ) = @_; +  $speriod = $self->_subtract_11mo($speriod); +  $self->credits($speriod, $eperiod, $agentnum); +} + +#not being too bad with the false laziness +use Time::Local qw(timelocal); +sub _subtract_11mo { +  my($self, $time) = @_; +  my ($sec,$min,$hour,$mday,$mon,$year) = (localtime($time) )[0,1,2,3,4,5]; +  $mon -= 11; +  if ( $mon < 0 ) { $mon+=12; $year--; } +  timelocal($sec,$min,$hour,$mday,$mon,$year); +} +  # NEEDS TO BE AGENTNUM-capable  sub canceled { #active    my( $self, $speriod, $eperiod, $agentnum ) = @_; diff --git a/httemplate/graph/money_time-graph.cgi b/httemplate/graph/money_time-graph.cgi index fc8207a81..637a3bf94 100755 --- a/httemplate/graph/money_time-graph.cgi +++ b/httemplate/graph/money_time-graph.cgi @@ -22,6 +22,10 @@ if ( $cgi->param('agentnum') =~ /^(\d*)$/ ) {  #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)', @@ -29,6 +33,9 @@ my %label = (   '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 @@ -36,6 +43,8 @@ my %color = (    '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, diff --git a/httemplate/graph/money_time.cgi b/httemplate/graph/money_time.cgi index bc789cb7e..73f9d23a2 100644 --- a/httemplate/graph/money_time.cgi +++ b/httemplate/graph/money_time.cgi @@ -1,16 +1,15 @@ -<!-- mason kludge -->  <% -#my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); -my ($curmon,$curyear) = (localtime(time))[4,5]; +#	#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; +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; +my $eyear = $cgi->param('eyear'); # || 1900+$curyear; +my $emonth = $cgi->param('emonth'); # || $curmon+1;  #XXX or virtual  my( $agentnum, $agent ) = ('', ''); @@ -20,10 +19,8 @@ if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) {    die "agentnum $agentnum not found!" unless $agent;  }  my $agentname = $agent ? $agent->agent.' ' : ''; -warn $agentname;  %> -  <%= include('/elements/header.html',                $agentname. 'Sales, Credits and Receipts Summary'             ) @@ -36,6 +33,10 @@ warn $agentname;  <%  my @items = qw( invoiced netsales credits payments receipts ); +if ( $cgi->param('12mo') == 1 ) { +  @items = map $_.'_12mo', @items; +} +  my %label = (    'invoiced' => 'Gross Sales',    'netsales' => 'Net Sales', @@ -43,6 +44,9 @@ my %label = (    'payments' => 'Gross Receipts',    'receipts' => 'Net Receipts',  ); +$label{$_.'_12mo'} = $label{$_}. " (previous 12 months)" +  foreach keys %label; +  my %color = (    'invoiced' => '9999ff', #light blue    'netsales' => '0000cc', #blue @@ -50,11 +54,15 @@ my %color = (    'payments' => '99cc99', #light green    'receipts' => '00cc00', #green  ); +$color{$_.'_12mo'} = $color{$_} +  foreach keys %color; +  my %link = (    'invoiced' => "${p}search/cust_bill.html?agentnum=$agentnum;",    'credits'  => "${p}search/cust_credit.html?agentnum=$agentnum;",    'payments' => "${p}search/cust_pay.cgi?magic=_date;agentnum=$agentnum;",  ); +# XXX link 12mo?  my $report = new FS::Report::Table::Monthly (    'items' => \@items, @@ -102,43 +110,4 @@ my @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);  <% } %>  </TABLE> -<BR> -<FORM METHOD="POST"> -<!-- -<INPUT TYPE="checkbox" NAME="ar"> -  Accounts receivable (invoices - applied credits)<BR> -<INPUT TYPE="checkbox" NAME="charged"> -  Just Invoices<BR> -<INPUT TYPE="checkbox" NAME="defer"> -  Accounts receivable, with deferred revenue (invoices - applied credits, with charges for annual/semi-annual/quarterly/etc. services deferred over applicable time period) (there has got to be a shorter description for this)<BR> -<INPUT TYPE="checkbox" NAME="cash"> -  Cashflow (payments - refunds)<BR> -<BR> ---> -From <SELECT NAME="smonth"> -<% foreach my $mon ( 1..12 ) { %> -<OPTION VALUE="<%= $mon %>"<%= $mon == $smonth ? ' SELECTED' : '' %>><%= $mon[$mon-1] %> -<% } %> -</SELECT> -<SELECT NAME="syear"> -<% foreach my $y ( 1999 .. 2010 ) { %> -<OPTION VALUE="<%= $y %>"<%= $y == $syear ? ' SELECTED' : '' %>><%= $y %> -<% } %> -</SELECT> - to <SELECT NAME="emonth"> -<% foreach my $mon ( 1..12 ) { %> -<OPTION VALUE="<%= $mon %>"<%= $mon == $emonth ? ' SELECTED' : '' %>><%= $mon[$mon-1] %> -<% } %> -</SELECT> -<SELECT NAME="eyear"> -<% foreach my $y ( 1999 .. 2010 ) { %> -<OPTION VALUE="<%= $y %>"<%= $y == $eyear ? ' SELECTED' : '' %>><%= $y %> -<% } %> -</SELECT> - -for agent: <%= include('/elements/select-agent.html', $agentnum) %> - -<INPUT TYPE="submit" VALUE="Redisplay"> -</FORM> -</BODY> -</HTML> +<%= include('/elements/footer.html') %> diff --git a/httemplate/graph/report_money_time.html b/httemplate/graph/report_money_time.html new file mode 100644 index 000000000..6c7e42716 --- /dev/null +++ b/httemplate/graph/report_money_time.html @@ -0,0 +1,71 @@ +<% + +#my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +my ($curmon,$curyear) = (localtime(time))[4,5]; + +#find first month +my $syear = 1899+$curyear; +my $smonth = $curmon+1; + +#want 12 month by default, not 13 +$smonth++; +if ( $smonth > 12 ) { $smonth-=12; $syear++ } + +#find last month +my $eyear = 1900+$curyear; +my $emonth = $curmon+1; + +my @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); + +%> +<%= include('/elements/header.html', 'Sales, Credits and Receipts Summary' ) %> + +<FORM ACTION="money_time.cgi" METHOD="GET"> + +<!-- +<INPUT TYPE="checkbox" NAME="ar"> +  Accounts receivable (invoices - applied credits)<BR> +<INPUT TYPE="checkbox" NAME="charged"> +  Just Invoices<BR> +<INPUT TYPE="checkbox" NAME="defer"> +  Accounts receivable, with deferred revenue (invoices - applied credits, with charges for annual/semi-annual/quarterly/etc. services deferred over applicable time period) (there has got to be a shorter description for this)<BR> +<INPUT TYPE="checkbox" NAME="cash"> +  Cashflow (payments - refunds)<BR> +<BR> +--> + +From: <SELECT NAME="smonth"> +<% foreach my $mon ( 1..12 ) { %> +<OPTION VALUE="<%= $mon %>"<%= $mon == $smonth ? ' SELECTED' : '' %>><%= $mon[$mon-1] %> +<% } %> +</SELECT> +<SELECT NAME="syear"> +<% foreach my $y ( 1999 .. 2010 ) { %> +<OPTION VALUE="<%= $y %>"<%= $y == $syear ? ' SELECTED' : '' %>><%= $y %> +<% } %> +</SELECT> +<BR> + +To: <SELECT NAME="emonth"> +<% foreach my $mon ( 1..12 ) { %> +<OPTION VALUE="<%= $mon %>"<%= $mon == $emonth ? ' SELECTED' : '' %>><%= $mon[$mon-1] %> +<% } %> +</SELECT> +<SELECT NAME="eyear"> +<% foreach my $y ( 1999 .. 2010 ) { %> +<OPTION VALUE="<%= $y %>"<%= $y == $eyear ? ' SELECTED' : '' %>><%= $y %> +<% } %> +</SELECT> +<BR> + +For agent: <%= include('/elements/select-agent.html' ) %> +<BR> + +<INPUT TYPE="checkbox" NAME="12mo" VALUE="1"> Show 12 month totals instead of monthly values. +<BR> + +<INPUT TYPE="submit" VALUE="Display"> +</FORM> + +<%= include('/elements/footer.html') %> + diff --git a/httemplate/index.html b/httemplate/index.html index 6cd667d8a..4704ebe33 100644 --- a/httemplate/index.html +++ b/httemplate/index.html @@ -97,7 +97,7 @@              </UL>        <A HREF="search/report_cust_pay.html">Payment report (by type and/or date range)</A>        <BR><BR><A HREF="search/report_cust_credit.html">Credit report (by employee and/or date range)</A> -      <BR><BR><A HREF="graph/money_time.cgi">Sales, Credits and Receipts Summary</A> +      <BR><BR><A HREF="graph/report_money_time.html">Sales, Credits and Receipts Summary</A>        <BR><BR><A HREF="search/report_receivables.cgi">Accounts Receivable Aging Summary</A>        <BR><BR><A HREF="search/report_prepaid_income.html">Prepaid Income (Unearned Revenue) Report</A>        <BR><BR><A HREF="search/report_tax.html">Sales Tax Liability Report</A>  | 
