diff options
author | Mark Wells <mark@freeside.biz> | 2015-06-30 12:14:19 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2015-06-30 12:14:19 -0700 |
commit | 39501b4ff6c6cd9ac3cfe7ad313affe049e18994 (patch) | |
tree | ec152a661a88cd199a296ec0677b248e0947a4b5 /httemplate | |
parent | a8bdd6bf5d005af9dff6b53047ba378ef6912302 (diff) |
include discounts in gross sales reports, #25943
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/graph/money_time.cgi | 18 | ||||
-rwxr-xr-x | httemplate/search/cust_bill.html | 135 | ||||
-rw-r--r-- | httemplate/search/elements/search-html.html | 18 | ||||
-rw-r--r-- | httemplate/search/report_cust_bill.html | 3 |
4 files changed, 105 insertions, 69 deletions
diff --git a/httemplate/graph/money_time.cgi b/httemplate/graph/money_time.cgi index 9071fc7b9..b44adeaf8 100644 --- a/httemplate/graph/money_time.cgi +++ b/httemplate/graph/money_time.cgi @@ -39,8 +39,10 @@ if ( $cgi->param('refnum') =~ /^(\d+)$/ ) { } my $referralname = $part_referral ? $part_referral->referral.' ' : ''; - -my @items = qw( invoiced netsales +# 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 = qw( gross netsales + discounted credits netcredits payments receipts refunds netrefunds @@ -51,8 +53,9 @@ if ( $cgi->param('12mo') == 1 ) { } my %label = ( - 'invoiced' => 'Gross Sales', + 'gross' => 'Gross Sales', 'netsales' => 'Net Sales', + 'discounted' => 'Discounts', 'credits' => 'Gross Credits', 'netcredits' => 'Net Credits', 'payments' => 'Gross Receipts', @@ -64,8 +67,9 @@ my %label = ( ); my %graph_suffix = ( - 'invoiced' => ' (invoiced)', + 'gross' => ' (invoiced + discounts)', 'netsales' => ' (invoiced - applied credits)', + 'discounted' => ' (discounts)', 'credits' => ' (credited)', 'netcredits' => ' (applied credits)', 'payments' => ' (payments)', @@ -84,7 +88,7 @@ $graph_label{$_.'_12mo'} = $graph_label{$_}. " (prev 12 months)" foreach keys %graph_label; my %color = ( - 'invoiced' => '9999ff', #light blue + 'gross' => '9999ff', #light blue 'netsales' => '0000cc', #blue 'credits' => 'ff9999', #light red 'netcredits' => 'cc0000', #red @@ -94,6 +98,7 @@ my %color = ( 'netrefunds' => 'ff9900', #orange 'cashflow' => '99cc33', #light olive 'netcashflow' => '339900', #olive + 'discounted' => 'cc33cc', #purple-ish? ); $color{$_.'_12mo'} = $color{$_} foreach keys %color; @@ -102,7 +107,7 @@ my $ar = "agentnum=$agentnum;refnum=$refnum"; $ar .= ";cust_classnum=$_" foreach @classnums; my %link = ( - 'invoiced' => "${p}search/cust_bill.html?$ar;", + 'gross' => "${p}search/cust_bill.html?$ar;", 'netsales' => "${p}search/cust_bill.html?$ar;net=1;", 'credits' => "${p}search/cust_credit.html?$ar;", 'netcredits' => "${p}search/cust_credit_bill.html?$ar;", @@ -110,6 +115,7 @@ my %link = ( 'receipts' => "${p}search/cust_bill_pay.html?$ar;", 'refunds' => "${p}search/cust_refund.html?magic=_date;$ar;", 'netrefunds' => "${p}search/cust_credit_refund.html?$ar;", + 'discounted' => "${p}search/cust_bill_pkg_discount.html?$ar;", ); # XXX link 12mo? diff --git a/httemplate/search/cust_bill.html b/httemplate/search/cust_bill.html index 082073339..662673676 100755 --- a/httemplate/search/cust_bill.html +++ b/httemplate/search/cust_bill.html @@ -1,61 +1,82 @@ <& elements/search.html, - 'title' => emt('Invoice Search Results'), - 'html_init' => $html_init, - 'menubar' => $menubar, - 'name' => 'invoices', - 'query' => $sql_query, - 'count_query' => $count_query, - 'count_addl' => $count_addl, - 'redirect' => $link, - 'header' => [ emt('Invoice #'), - emt('Balance'), - emt('Net Amount'), - emt('Gross Amount'), - emt('Date'), - FS::UI::Web::cust_header(), - ], - 'fields' => [ - 'display_invnum', - sub { sprintf($money_char.'%.2f', shift->get('owed') ) }, - sub { sprintf($money_char.'%.2f', shift->get('net') ) }, - sub { sprintf($money_char.'%.2f', shift->charged ) }, - sub { time2str('%b %d %Y', shift->_date ) }, - \&FS::UI::Web::cust_fields, - ], - 'sort_fields' => [ - 'COALESCE( agent_invid, invnum )', - FS::cust_bill->owed_sql, - FS::cust_bill->net_sql, - 'charged', - '_date', - ], - 'align' => 'rrrrl'.FS::UI::Web::cust_aligns(), - 'links' => [ - $link, - $link, - $link, - $link, - $link, - ( map { $_ ne 'Cust. Status' ? $clink : '' } - FS::UI::Web::cust_header() - ), - ], - 'color' => [ - '', - '', - '', - '', - '', - FS::UI::Web::cust_colors(), - ], - 'style' => [ - '', - '', - '', - '', - '', - FS::UI::Web::cust_styles(), - ], + 'title' => emt('Invoice Search Results'), + 'html_init' => $html_init, + 'menubar' => $menubar, + 'name' => 'invoices', + 'query' => $sql_query, + 'count_query' => $count_query, + 'count_addl' => $count_addl, + 'redirect' => $link, + 'header' => [ emt('Invoice #'), + emt('Gross Amount'), + emt('Discount'), + emt('Credits'), + emt('Net Amount'), + emt('Balance'), + emt('Date'), + FS::UI::Web::cust_header(), + ], + 'fields' => [ + 'display_invnum', + 'gross', + 'discounted', + 'credited', + 'net', + 'owed', + sub { time2str('%b %d %Y', shift->_date ) }, + \&FS::UI::Web::cust_fields, + ], + 'sort_fields' => [ + 'COALESCE( agent_invid, invnum )', + 'gross', + 'discounted', + 'credited', + 'net', + 'owed', + '_date', + ], + 'format' => [ + '', + $money_char.'%.2f', + $money_char.'%.2f', + $money_char.'%.2f', + $money_char.'%.2f', + $money_char.'%.2f', + '', + ], + 'align' => 'rrrrrrl'.FS::UI::Web::cust_aligns(), + 'links' => [ + $link, + $link, + $link, + $link, + $link, + $link, + $link, + ( map { $_ ne 'Cust. Status' ? $clink : '' } + FS::UI::Web::cust_header() + ), + ], + 'color' => [ + '', + '', + '', + '', + '', + '', + '', + FS::UI::Web::cust_colors(), + ], + 'style' => [ + '', + '', + '', + '', + '', + '', + '', + FS::UI::Web::cust_styles(), + ], &> <%init> diff --git a/httemplate/search/elements/search-html.html b/httemplate/search/elements/search-html.html index d8ab30a32..6121aea94 100644 --- a/httemplate/search/elements/search-html.html +++ b/httemplate/search/elements/search-html.html @@ -377,9 +377,16 @@ $rows => [] % my $sizes = $opt{'size'} ? [ @{$opt{'size'}} ] : []; % my $styles = $opt{'style'} ? [ @{$opt{'style'}} ] : []; % my $cstyles = $opt{'cell_style'} ? [ @{$opt{'cell_style'}} ] : []; +% my $formats = $opt{'format'} ? [ @{$opt{'format'}} ] : []; % % foreach my $field ( % +% # if the value of the field is an arrayref, then construct a table in +% # the cell. +% # if it's a (non-empty) scalar, and a format has been specified, then +% # format the scalar with that. +% # otherwise, just output the value. +% # XXX we should also do date formats like this % map { % if ( ref($_) eq 'ARRAY' ) { % @@ -443,10 +450,17 @@ $rows => [] % '</table>'; % % } else { +% if ( length($_) > 0 and my $format = shift @$formats ) { +% $_ = sprintf($format, $_); +% } % $_; % } % } % +% # get the value of the field spec: +% # - if the spec is a coderef, evaluate the coderef +% # - if the spec is a string, call that string as a method +% # - if the spec is an integer, get the field in that position % map { % if ( ref($_) eq 'CODE' ) { % &{$_}($row); @@ -491,10 +505,6 @@ $rows => [] % $tooltip = &{$tooltip}($row) % if ref($tooltip) eq 'CODE'; % $tooltip = qq! title="<% $tooltip |h %>"!; -%# qq! onmouseover="return overlib(!. -%# $m->interp->apply_escapes($tooltip, 'h', 'js_string'). -%# qq!, FGCLASS, 'tooltip', REF, 'a$id', !. -%# qq!REFC, 'LL', REFP, 'UL')"! if $tooltip; % % if ( $link ) { % my( $url, $method ) = @{$link}; diff --git a/httemplate/search/report_cust_bill.html b/httemplate/search/report_cust_bill.html index 3efe830e3..e80c6e895 100644 --- a/httemplate/search/report_cust_bill.html +++ b/httemplate/search/report_cust_bill.html @@ -29,8 +29,7 @@ label => mt('Customer Class'), field => 'cust_classnum', multiple => 1, - 'pre_options' => [ '' => emt('(none)') ], - 'all_selected' => 1, + 'pre_options' => [ 0 => emt('(none)') ], &> </TABLE> |