X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fgraph%2Fmoney_time.cgi;h=aa17eb2f45b16186ce4fbebb940fa68359f2acab;hb=35ac5f08fc816cd7d79dc9a861652537061aed03;hp=bc393835baca8f375dc2b71b48dc9d8dd2e6adf5;hpb=45e03b5221f91ad143a4a9e03ec3de4fc2d1e445;p=freeside.git
diff --git a/httemplate/graph/money_time.cgi b/httemplate/graph/money_time.cgi
index bc393835b..aa17eb2f4 100644
--- a/httemplate/graph/money_time.cgi
+++ b/httemplate/graph/money_time.cgi
@@ -1,16 +1,21 @@
-
-<%
-
-#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;
+<% include('elements/monthly.html',
+ 'title' => $agentname. $referralname.
+ 'Sales, Credits and Receipts Summary',
+ 'items' => \@items,
+ 'labels' => \%label,
+ 'graph_labels' => \%graph_label,
+ 'colors' => \%color,
+ 'links' => \%link,
+ 'agentnum' => $agentnum,
+ 'refnum' => $refnum,
+ 'cust_classnum'=> \@classnums,
+ 'nototal' => scalar($cgi->param('12mo')),
+ )
+%>
+<%init>
-#find last month
-my $eyear = $cgi->param('eyear') || 1900+$curyear;
-my $emonth = $cgi->param('emonth') || $curmon+1;
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
#XXX or virtual
my( $agentnum, $agent ) = ('', '');
@@ -20,125 +25,102 @@ 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'
- )
-%>
-
-
-
+my @classnums;
+if ( $cgi->param('cust_classnum') ) {
+ @classnums = grep /^\d+$/, $cgi->param('cust_classnum');
+}
-<%= table('e8e8e8') %>
-<%
+my( $refnum, $part_referral ) = ('', '');
+if ( $cgi->param('refnum') =~ /^(\d+)$/ ) {
+ $refnum = $1;
+ $part_referral = qsearchs('part_referral', { 'refnum' => $refnum } );
+ die "refnum $refnum not found!" unless $part_referral;
+}
+my $referralname = $part_referral ? $part_referral->referral.' ' : '';
+
+# need to clean this up. the false symmetry of "gross" and "net" everything
+# makes it aesthetically hard to make this report more useful.
+my @items = ($cgi->param('exclude_discount') ? 'invoiced' : 'gross');
+push @items,
+ qw( discounted netsales
+ credits netcredits
+ payments receipts
+ refunds netrefunds
+ cashflow netcashflow
+ );
-my @items = qw( invoiced netsales credits payments receipts );
my %label = (
- 'invoiced' => 'Gross Sales',
- 'netsales' => 'Net Sales',
- 'credits' => 'Credits',
- 'payments' => 'Gross Receipts',
- 'receipts' => 'Net Receipts',
-);
-my %color = (
- 'invoiced' => '9999ff', #light blue
- 'netsales' => '0000cc', #blue
- 'credits' => 'cc0000', #red
- 'payments' => '99cc99', #light green
- 'receipts' => '00cc00', #green
-);
-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;",
+ 'gross' => 'Gross Sales',
+ 'invoiced' => 'Invoiced Sales',
+ 'netsales' => 'Net Sales',
+ 'discounted' => 'Discounts',
+ 'credits' => 'Gross Credits',
+ 'netcredits' => 'Net Credits',
+ 'payments' => 'Gross Receipts',
+ 'receipts' => 'Net Receipts',
+ 'refunds' => 'Gross Refunds',
+ 'netrefunds' => 'Net Refunds',
+ 'cashflow' => 'Gross Cashflow',
+ 'netcashflow' => 'Net Cashflow',
);
-my $report = new FS::Report::Table::Monthly (
- 'items' => \@items,
- 'start_month' => $smonth,
- 'start_year' => $syear,
- 'end_month' => $emonth,
- 'end_year' => $eyear,
- 'agentnum' => $agentnum,
+my %graph_suffix = (
+ 'gross' => ' (invoiced + discounts)',
+ 'invoiced' => '',
+ 'netsales' => ' (invoiced - applied credits)',
+ 'discounted' => '',
+ 'credits' => ' (credited)',
+ 'netcredits' => ' (applied credits)',
+ 'payments' => ' (payments)',
+ 'receipts' => ' (applied payments)',
+ 'refunds' => ' (refunds)',
+ 'netrefunds' => ' (applied refunds)',
+ 'cashflow' => ' (payments - refunds)',
+ 'netcashflow' => ' (applied payments - applied refunds)',
);
-my $data = $report->data;
+my %graph_label = map { $_ => $label{$_}.$graph_suffix{$_} } keys %label;
-my @mon = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
-
-%>
+my %color = (
+ 'gross' => '9999ff', #light blue
+ 'invoiced' => '9999ff', #light blue
+ 'netsales' => '0000cc', #blue
+ 'credits' => 'ff9999', #light red
+ 'netcredits' => 'cc0000', #red
+ 'payments' => '99cc99', #light green
+ 'receipts' => '00cc00', #green
+ 'refunds' => 'ffcc99', #light orange
+ 'netrefunds' => 'ff9900', #orange
+ 'cashflow' => '99cc33', #light olive
+ 'netcashflow' => '339900', #olive
+ 'discounted' => 'cc33cc', #purple-ish?
+);
+$color{$_.'_12mo'} = $color{$_}
+ foreach keys %color;
-