summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2011-07-27 23:27:26 +0000
committerivan <ivan>2011-07-27 23:27:26 +0000
commitb1c1559dec0570bc401ccd0e29e66a9bf6f151e1 (patch)
tree6d68d40fb8c4bb8a3a55aec077f2b56dc31abd1d
parenta10881a4daca69112f2bd18bce0c57b934a6fefa (diff)
add per-customer "Invoice reports" link, RT#13802
-rw-r--r--FS/FS/cust_bill.pm5
-rwxr-xr-xhttemplate/search/cust_bill.html4
-rw-r--r--httemplate/search/report_cust_bill.html28
-rw-r--r--httemplate/view/cust_main/payment_history.html24
4 files changed, 60 insertions, 1 deletions
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 ) %>
<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 ) {
<% include( '/elements/tr-select-agent.html',
'curr_value' => 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 ) {
+ <INPUT TYPE="hidden" NAME="payby" VALUE="<% $cust_main->payby %>">
+% } else {
<% include( '/elements/tr-select-payby.html',
label => 'Payment method:',
payby_type => 'cust',
@@ -32,15 +39,19 @@
all_selected => 1,
)
%>
+% }
<TR>
<TD ALIGN="right"><INPUT TYPE="checkbox" NAME="open" VALUE="1" CHECKED></TD>
<TD>Show only open invoices</TD>
</TR>
+
+% unless ( $custnum ) {
<TR>
<TD ALIGN="right"><INPUT TYPE="checkbox" NAME="newest_percust" VALUE="1"></TD>
<TD>Show only the single most recent invoice per-customer</TD>
</TR>
+% }
</TABLE>
@@ -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;
+}
+
</%init>
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 @@
+<TABLE>
+ <TR>
+ <TD ALIGN="left">
+
%# payment links
% my $s = 0;
@@ -32,6 +36,9 @@
<A HREF="<% $p %>edit/cust_pay.cgi?payby=WEST;custnum=<% $custnum %>">Enter Western Union payment</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)
@@ -123,8 +130,17 @@
<A HREF="<% $p %>edit/cust_refund.cgi?payby=MCRD;custnum=<% $custnum %>">Post manual (offline/POS) credit card refund</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 %>">Invoice reports</A>
+% }
<BR>
+%# XXX payments, credits, refund reports
+
%# tax exemption link
% my $view_exemptions = $curuser->access_right('View customer tax exemptions');
@@ -178,6 +194,11 @@
<A HREF="<% $p %>search/cust_pay_pending.html?magic=_date;statusNOT=done;custnum=<% $custnum %>">View pending payments</A><BR>
% }
+ </TD>
+ </TR>
+ <TR>
+ <TD COLSPAN=2>
+
%# and now the table
<% include("/elements/table-grid.html") %>
@@ -331,6 +352,9 @@
%}
</TABLE>
+ </TD>
+ </TR>
+</TABLE>
<SCRIPT TYPE="text/javascript">