5 if ( $cgi->param('magic') && $cgi->param('magic') eq '_date' ) {
8 if ( $cgi->param('payby') ) {
9 $cgi->param('payby') =~ /^(CARD|CHEK|BILL)$/
10 or die "illegal payby ". $cgi->param('payby');
11 $search{'payby'} = $1;
14 #false laziness with cust_pkg.cgi
16 if ( $cgi->param('beginning')
17 && $cgi->param('beginning') =~ /^([ 0-9\-\/]{0,10})$/ ) {
18 my $beginning = str2time($1);
19 $range = " WHERE _date >= $beginning ";
21 if ( $cgi->param('ending')
22 && $cgi->param('ending') =~ /^([ 0-9\-\/]{0,10})$/ ) {
23 my $ending = str2time($1) + 86400;
24 $range .= ( $range ? ' AND ' : ' WHERE ' ). " _date <= $ending ";
26 $range =~ s/^\s*WHERE/ AND/ if scalar(keys %search) ;
28 @cust_pay = qsearch('cust_pay', \%search, '', $range );
30 $sortby = \*date_sort;
34 $cgi->param('payinfo') =~ /^\s*(\d+)\s*$/ or die "illegal payinfo";
37 $cgi->param('payby') =~ /^(\w+)$/ or die "illegal payby";
40 @cust_pay = qsearch('cust_pay', { 'payinfo' => $payinfo,
41 'payby' => $payby } );
42 $sortby = \*date_sort;
47 #if ( scalar(@cust_pay) == 1 ) {
48 # my $invnum = $cust_bill[0]->invnum;
49 # print $cgi->redirect(popurl(2). "view/cust_bill.cgi?$invnum"); #redirect
50 } elsif ( scalar(@cust_pay) == 0 ) {
54 idiot("Payment not found.");
57 my $total = scalar(@cust_pay);
58 my $s = $total > 1 ? 's' : '';
62 print header("Payment Search Results", menubar(
63 'Main Menu', popurl(2)
64 )), "$total matching payment$s found<BR>", &table(), <<END;
75 foreach my $cust_pay (
76 sort $sortby grep(!$saw{$_->paynum}++, @cust_pay)
78 my($paynum, $custnum, $payby, $payinfo, $amount, $date ) = (
83 sprintf("%.2f", $cust_pay->paid),
86 my $pdate = time2str("%b %d %Y", $date);
90 my $view = popurl(2). "view/cust_main.cgi?". $custnum.
91 "#". $payby. $payinfo;
94 if ( $payby eq 'CARD' ) {
95 $payment_info = 'Card #'. 'x'x(length($payinfo)-4).
96 substr($payinfo,(length($payinfo)-4));
97 } elsif ( $payby eq 'CHEK' ) {
98 $payment_info = "E-check acct#$payinfo";
99 } elsif ( $payby eq 'BILL' ) {
100 $payment_info = "Check #$payinfo";
102 $payment_info = "$payby $payinfo";
107 <TD ROWSPAN=$rowspan><A HREF="$view"><FONT SIZE=-1>$payment_info</FONT></A></TD>
108 <TD ROWSPAN=$rowspan ALIGN="right"><A HREF="$view"><FONT SIZE=-1>\$$amount</FONT></A></TD>
109 <TD ROWSPAN=$rowspan><A HREF="$view"><FONT SIZE=-1>$pdate</FONT></A></TD>
111 my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } );
113 #my $cview = popurl(2). "view/cust_main.cgi?". $cust_main->custnum;
114 my ( $name, $company ) = (
115 $cust_main->last. ', '. $cust_main->first,
119 <TD ROWSPAN=$rowspan><A HREF="$view"><FONT SIZE=-1>$name</FONT></A></TD>
120 <TD ROWSPAN=$rowspan><A HREF="$view"><FONT SIZE=-1>$company</FONT></A></TD>
124 <TD ROWSPAN=$rowspan COLSPAN=2>WARNING: couldn't find cust_main.custnum $custnum (cust_pay.paynum $paynum)</TD>
141 # $a->invnum <=> $b->invnum;
145 # $a->custnum <=> $b->custnum || $a->invnum <=> $b->invnum;
149 $a->_date <=> $b->_date || $a->invnum <=> $b->invnum;