From b1c1559dec0570bc401ccd0e29e66a9bf6f151e1 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 27 Jul 2011 23:27:26 +0000 Subject: [PATCH] add per-customer "Invoice reports" link, RT#13802 --- FS/FS/cust_bill.pm | 5 +++++ httemplate/search/cust_bill.html | 4 ++++ httemplate/search/report_cust_bill.html | 28 +++++++++++++++++++++++++- httemplate/view/cust_main/payment_history.html | 24 ++++++++++++++++++++++ 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 32c2cb1a8..f5219c06a 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -5082,6 +5082,11 @@ sub search_sql_where { push @search, "cust_main.agentnum = $1"; } + #agentnum + if ( $param->{'custnum'} =~ /^(\d+)$/ ) { + push @search, "cust_bill.custnum = $1"; + } + #_date if ( $param->{_date} ) { my($beginning, $ending) = @{$param->{_date}}; diff --git a/httemplate/search/cust_bill.html b/httemplate/search/cust_bill.html index 4e40fb06d..0e7f2110c 100755 --- a/httemplate/search/cust_bill.html +++ b/httemplate/search/cust_bill.html @@ -98,6 +98,10 @@ if ( $cgi->param('invnum') =~ /^\s*(FS-)?(\d+)\s*$/ ) { $search{'agentnum'} = $1; } + if ( $cgi->param('custnum') =~ /^(\d+)$/ ) { + $search{'custnum'} = $1; + } + # begin/end/beginning/ending my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi, ''); $search{'_date'} = [ $beginning, $ending ] diff --git a/httemplate/search/report_cust_bill.html b/httemplate/search/report_cust_bill.html index b1a252e6c..0ff9e6b98 100644 --- a/httemplate/search/report_cust_bill.html +++ b/httemplate/search/report_cust_bill.html @@ -1,16 +1,19 @@ -<% include('/elements/header.html', 'Invoice Report' ) %> +<% include('/elements/header.html', $title ) %>
+ scalar( $cgi->param('agentnum') ), 'label' => 'Invoices for agent: ', 'disable_empty' => 0, ) %> +% } <% include( '/elements/tr-input-beginning_ending.html' ) %> @@ -25,6 +28,10 @@ field => 'owed', ) %> + +% if ( $cust_main ) { + +% } else { <% include( '/elements/tr-select-payby.html', label => 'Payment method:', payby_type => 'cust', @@ -32,15 +39,19 @@ all_selected => 1, ) %> +% } + +% unless ( $custnum ) { +% }
Show only open invoices
Show only the single most recent invoice per-customer
@@ -55,4 +66,19 @@ die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('List invoices'); +my $title = 'Invoice Report'; + +#false laziness w/report_cust_pkg.html +my $custnum = ''; +my $cust_main = ''; +if ( $cgi->param('custnum') =~ /^(\d+)$/ ) { + $custnum = $1; + $cust_main = qsearchs({ + 'table' => 'cust_main', + 'hashref' => { 'custnum' => $custnum }, + 'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql, + }) or die "unknown custnum $custnum"; + $title .= ': '. $cust_main->name; +} + diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html index 046899e5e..3288f15a7 100644 --- a/httemplate/view/cust_main/payment_history.html +++ b/httemplate/view/cust_main/payment_history.html @@ -1,3 +1,7 @@ + + + + + + +
+ %# payment links % my $s = 0; @@ -32,6 +36,9 @@ Enter Western Union payment % } +
+% $s=0; + % if ( ( $payby{'CARD'} || $payby{'DCRD'} ) % && $curuser->access_right(['Process payment', 'Process credit card payment']) % && ! $cust_main->is_encrypted($cust_main->payinfo) @@ -123,8 +130,17 @@ Post manual (offline/POS) credit card refund % } +
+ +%# invoice reports +% if ( $curuser->access_right('List invoices') ) { + Invoice reports +% }
+%# XXX payments, credits, refund reports + %# tax exemption link % my $view_exemptions = $curuser->access_right('View customer tax exemptions'); @@ -178,6 +194,11 @@ View pending payments
% } +
+ %# and now the table <% include("/elements/table-grid.html") %> @@ -331,6 +352,9 @@ %}
+ + +