X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_pay.cgi;h=65bd39e19661c75a16e145161261c33a22b24806;hb=d0221fabd4656b3a04251ca6168cc45f54d23574;hp=51dd3b340779d34443c3bb0a3ae630228fbcf42c;hpb=eb9668a6f3181ee02cb335272c5ee4616e61fd09;p=freeside.git diff --git a/httemplate/search/cust_pay.cgi b/httemplate/search/cust_pay.cgi index 51dd3b340..65bd39e19 100755 --- a/httemplate/search/cust_pay.cgi +++ b/httemplate/search/cust_pay.cgi @@ -1,185 +1,7 @@ -<% - -my $sortby; -my @cust_pay; -if ( $cgi->param('magic') && $cgi->param('magic') eq '_date' ) { - - my %search; - my @search; - - if ( $cgi->param('payby') ) { - $cgi->param('payby') =~ /^(CARD|CHEK|BILL)(-(VisaMC|Amex|Discover))?$/ - or die "illegal payby ". $cgi->param('payby'); - $search{'payby'} = $1; - if ( $3 ) { - if ( $3 eq 'VisaMC' ) { - #avoid posix regexes for portability - push @search, " ( substring(payinfo from 1 for 1) = '4' ". - " OR substring(payinfo from 1 for 2) = '51' ". - " OR substring(payinfo from 1 for 2) = '52' ". - " OR substring(payinfo from 1 for 2) = '53' ". - " OR substring(payinfo from 1 for 2) = '54' ". - " OR substring(payinfo from 1 for 2) = '54' ". - " OR substring(payinfo from 1 for 2) = '55' ". - " ) "; - } elsif ( $3 eq 'Amex' ) { - push @search, " ( substring(payinfo from 1 for 2 ) = '34' ". - " OR substring(payinfo from 1 for 2 ) = '37' ". - " ) "; - } elsif ( $3 eq 'Discover' ) { - push @search, " substring(payinfo from 1 for 4 ) = '6011' "; - } else { - die "unknown card type $3"; - } - } - } - - #false laziness with cust_pkg.cgi - if ( $cgi->param('beginning') - && $cgi->param('beginning') =~ /^([ 0-9\-\/]{0,10})$/ ) { - my $beginning = str2time($1); - push @search, "_date >= $beginning "; - } - if ( $cgi->param('ending') - && $cgi->param('ending') =~ /^([ 0-9\-\/]{0,10})$/ ) { - my $ending = str2time($1) + 86399; - push @search, " _date <= $ending "; - } - my $search; - if ( @search ) { - $search = ( scalar(keys %search) ? ' AND ' : ' WHERE ' ). - join(' AND ', @search); - } - - @cust_pay = qsearch('cust_pay', \%search, '', $search ); - - $sortby = \*date_sort; - -} else { - - $cgi->param('payinfo') =~ /^\s*(\d+)\s*$/ or die "illegal payinfo"; - my $payinfo = $1; - - $cgi->param('payby') =~ /^(\w+)$/ or die "illegal payby"; - my $payby = $1; - - @cust_pay = qsearch('cust_pay', { 'payinfo' => $payinfo, - 'payby' => $payby } ); - $sortby = \*date_sort; - -} - -if (0) { -#if ( scalar(@cust_pay) == 1 ) { -# my $invnum = $cust_bill[0]->invnum; -# print $cgi->redirect(popurl(2). "view/cust_bill.cgi?$invnum"); #redirect -} elsif ( scalar(@cust_pay) == 0 ) { -%> - -<% - idiot("Payment not found."); - #exit; -} else { - my $total = scalar(@cust_pay); - my $s = $total > 1 ? 's' : ''; -%> - -<% - print header("Payment Search Results", menubar( - 'Main Menu', popurl(2) - )), "$total matching payment$s found
", &table(), < - - Amount - Date - Contact name - Company - -END - - my(%saw, $cust_pay); - my $tot_amount = 0; - foreach my $cust_pay ( - sort $sortby grep(!$saw{$_->paynum}++, @cust_pay) - ) { - my($paynum, $custnum, $payby, $payinfo, $amount, $date ) = ( - $cust_pay->paynum, - $cust_pay->custnum, - $cust_pay->payby, - $cust_pay->payinfo, - sprintf("%.2f", $cust_pay->paid), - $cust_pay->_date, - ); - $tot_amount += $amount; - my $pdate = time2str("%b %d %Y", $date); - - my $rowspan = 1; - - my $view = popurl(2). "view/cust_main.cgi?". $custnum. - "#". $payby. $payinfo; - - my $payment_info; - if ( $payby eq 'CARD' ) { - $payment_info = 'Card #'. 'x'x(length($payinfo)-4). - substr($payinfo,(length($payinfo)-4)); - } elsif ( $payby eq 'CHEK' ) { - $payment_info = "E-check acct#$payinfo"; - } elsif ( $payby eq 'BILL' ) { - $payment_info = "Check #$payinfo"; - } else { - $payment_info = "$payby $payinfo"; - } - - print < - $payment_info - \$$amount - $pdate -END - my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } ); - if ( $cust_main ) { - #my $cview = popurl(2). "view/cust_main.cgi?". $cust_main->custnum; - my ( $name, $company ) = ( - $cust_main->last. ', '. $cust_main->first, - $cust_main->company, - ); - print <$name - $company -END - } else { - print <WARNING: couldn't find cust_main.custnum $custnum (cust_pay.paynum $paynum) -END - } - - print ""; - } - - $tot_amount = sprintf("%.2f", $tot_amount); - print '
'. table(). < - Total Amount - \$$tot_amount - - - - -END - -} - -# - -#sub invnum_sort { -# $a->invnum <=> $b->invnum; -#} -# -#sub custnum_sort { -# $a->custnum <=> $b->custnum || $a->invnum <=> $b->invnum; -#} - -sub date_sort { - $a->_date <=> $b->_date || $a->invnum <=> $b->invnum; -} +<% include( 'elements/cust_pay_or_refund.html', + 'thing' => 'pay', + 'amount_field' => 'paid', + 'name_singular' => 'payment', + 'name_verb' => 'paid', + ) %>