diff options
author | ivan <ivan> | 2011-07-27 23:26:57 +0000 |
---|---|---|
committer | ivan <ivan> | 2011-07-27 23:26:57 +0000 |
commit | c52f1b6999b57cc3cb52fe8e4304d0bbfbbbb2f2 (patch) | |
tree | 73513a27cf93dd036b692662d0723fe79288a7cc | |
parent | fd81134f9f262894f7133ac3084d64c52a686093 (diff) |
add per-customer "Invoice reports" link, RT#13802
-rw-r--r-- | FS/FS/cust_bill.pm | 5 | ||||
-rwxr-xr-x | httemplate/search/cust_bill.html | 4 | ||||
-rw-r--r-- | httemplate/search/report_cust_bill.html | 30 | ||||
-rw-r--r-- | httemplate/view/cust_main/payment_history.html | 24 |
4 files changed, 62 insertions, 1 deletions
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 4ea67b69a..a6a782a0c 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -5221,6 +5221,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 4f73aaf84..627703691 100755 --- a/httemplate/search/cust_bill.html +++ b/httemplate/search/cust_bill.html @@ -93,6 +93,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 4be5f73a7..0f0d91b14 100644 --- a/httemplate/search/report_cust_bill.html +++ b/httemplate/search/report_cust_bill.html @@ -1,15 +1,18 @@ -<& /elements/header.html, mt('Invoice Report') &> +<& /elements/header.html, mt($title, @title_arg) &> <FORM ACTION="cust_bill.html" METHOD="GET"> <INPUT TYPE="hidden" NAME="magic" VALUE="_date"> +<INPUT TYPE="hidden" NAME="custnum" VALUE="<% $custnum %>"> <TABLE BGCOLOR="#cccccc" CELLSPACING=0 +% unless ( $custnum ) { <& /elements/tr-select-agent.html, 'curr_value' => scalar( $cgi->param('agentnum') ), 'label' => emt('Invoices for agent: '), 'disable_empty' => 0, &> +% } <& /elements/tr-input-beginning_ending.html &> @@ -22,21 +25,29 @@ label => emt('Owed'), field => 'owed', &> + +% if ( $cust_main ) { + <INPUT TYPE="hidden" NAME="payby" VALUE="<% $cust_main->payby %>"> +% } else { <& /elements/tr-select-payby.html, label => emt('Payment method:'), payby_type => 'cust', multiple => 1, all_selected => 1, &> +% } <TR> <TD ALIGN="right"><INPUT TYPE="checkbox" NAME="open" VALUE="1" CHECKED></TD> <TD><% mt('Show only open invoices') |h %></TD> </TR> + +% unless ( $custnum ) { <TR> <TD ALIGN="right"><INPUT TYPE="checkbox" NAME="newest_percust" VALUE="1"></TD> <TD><% mt('Show only the single most recent invoice per-customer') |h %></TD> </TR> +% } </TABLE> @@ -51,4 +62,21 @@ die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('List invoices'); +my $title = 'Invoice Report'; +#false laziness w/report_cust_pkg.html +my @title_arg = (); + +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 .= ': [_1]'; + push @title_arg, $cust_main->name; +} + </%init> diff --git a/httemplate/view/cust_main/payment_history.html b/httemplate/view/cust_main/payment_history.html index f29ae164b..fa9c16697 100644 --- a/httemplate/view/cust_main/payment_history.html +++ b/httemplate/view/cust_main/payment_history.html @@ -1,3 +1,7 @@ +<TABLE> + <TR> + <TD ALIGN="left"> + %# payment links % my $s = 0; @@ -28,6 +32,9 @@ <A HREF="<% $p %>edit/cust_pay.cgi?payby=WEST;custnum=<% $custnum %>"><% mt('Enter Western Union payment') |h %></A> % } +<BR> +% $s=0; + % if ( ( $payby{'CARD'} || $payby{'DCRD'} ) % && $curuser->access_right(['Process payment', 'Process credit card payment']) % && ! $cust_main->is_encrypted($cust_main->payinfo) @@ -113,8 +120,17 @@ <A HREF="<% $p %>edit/cust_refund.cgi?payby=MCRD;custnum=<% $custnum %>"><% mt('Post manual (offline/POS) credit card refund') |h %></A> % } + </TD> + <TD ALIGN="right" VALIGN="top"> + +%# invoice reports +% if ( $curuser->access_right('List invoices') ) { + <A HREF="<% $p %>search/report_cust_bill.html?custnum=<% $custnum %>"><% mt('Invoice reports') |h %></A> +% } <BR> +%# XXX payments, credits, refund reports + %# tax exemption link % my $view_exemptions = $curuser->access_right('View customer tax exemptions'); @@ -166,6 +182,11 @@ <A HREF="<% $p %>search/cust_pay_pending.html?magic=_date;statusNOT=done;custnum=<% $custnum %>"><% mt('View pending payments') |h %></A><BR> % } + </TD> + </TR> + <TR> + <TD COLSPAN=2> + %# and now the table <& /elements/table-grid.html &> @@ -319,6 +340,9 @@ %} </TABLE> + </TD> + </TR> +</TABLE> <SCRIPT TYPE="text/javascript"> |