add a "pre-report" page to this report/graph as requested by lewis/wtxs, also add...
authorivan <ivan>
Tue, 2 May 2006 11:59:31 +0000 (11:59 +0000)
committerivan <ivan>
Tue, 2 May 2006 11:59:31 +0000 (11:59 +0000)
FS/FS/Report/Table/Monthly.pm
httemplate/graph/money_time-graph.cgi
httemplate/graph/money_time.cgi
httemplate/graph/report_money_time.html [new file with mode: 0644]
httemplate/index.html

index 9ef108c..e7f05e5 100644 (file)
@@ -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 ) = @_;
index fc8207a..637a3bf 100755 (executable)
@@ -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,
index bc789cb..73f9d23 100644 (file)
@@ -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 (file)
index 0000000..6c7e427
--- /dev/null
@@ -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') %>
+
index 6cd667d..4704ebe 100644 (file)
@@ -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>