X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_pay.cgi;h=d4aaaa89c772d6a7ea9c006a85b4cc4772b8b301;hb=f34557b8890dcc63db6c5588233dc7bfa9d39f22;hp=ba2bc63f03400c6e03fc8f2c494737acbeeedcfa;hpb=87227cd405166484ca7b791b2bd3c8829ce8d969;p=freeside.git diff --git a/httemplate/search/cust_pay.cgi b/httemplate/search/cust_pay.cgi index ba2bc63f0..d4aaaa89c 100755 --- a/httemplate/search/cust_pay.cgi +++ b/httemplate/search/cust_pay.cgi @@ -1,14 +1,21 @@ <% + my $title = 'Payment Search Results'; my( $count_query, $sql_query ); if ( $cgi->param('magic') && $cgi->param('magic') eq '_date' ) { - my %search; - my @search; + my @search = (); + + if ( $cgi->param('agentnum') && $cgi->param('agentnum') =~ /^(\d+)$/ ) { + push @search, "agentnum = $1"; # $search{'agentnum'} = $1; + my $agent = qsearchs('agent', { 'agentnum' => $1 } ); + die "unknown agentnum $1" unless $agent; + $title = $agent->agent. " $title"; + } if ( $cgi->param('payby') ) { $cgi->param('payby') =~ /^(CARD|CHEK|BILL)(-(VisaMC|Amex|Discover))?$/ or die "illegal payby ". $cgi->param('payby'); - $search{'payby'} = $1; + push @search, "cust_pay.payby = '$1'"; if ( $3 ) { if ( $3 eq 'VisaMC' ) { #avoid posix regexes for portability @@ -52,21 +59,21 @@ push @search, " _date < $1 "; } - my $search; + my $search = ''; if ( @search ) { - $search = ( scalar(keys %search) ? ' AND ' : ' WHERE ' ). - join(' AND ', @search); + $search = ' WHERE '. join(' AND ', @search); } - my $hsearch = join(' AND ', map { "$_ = '$search{$_}'" } keys %search ); - $count_query = "SELECT COUNT(*), SUM(paid) FROM cust_pay ". - ( $hsearch ? " WHERE $hsearch " : '' ). + $count_query = "SELECT COUNT(*), SUM(paid) ". + "FROM cust_pay LEFT JOIN cust_main USING ( custnum )". $search; $sql_query = { 'table' => 'cust_pay', - 'hashref' => \%search, + 'select' => 'cust_pay.*, cust_main.last, cust_main.first, cust_main.company', + 'hashref' => {}, 'extra_sql' => "$search ORDER BY _date", + 'addl_from' => 'LEFT JOIN cust_main USING ( custnum )', }; } else { @@ -93,13 +100,14 @@ %> <%= include( 'elements/search.html', - 'title' => 'Payment Search Results', + 'title' => $title, 'name' => 'payments', 'query' => $sql_query, 'count_query' => $count_query, 'count_addl' => [ '$%.2f total paid', ], 'header' => - [ qw(Payment Amount Date), 'Contact name', 'Company', ], + [ qw(Payment Amount Date), 'Cust #', 'Contact name', + 'Company', ], 'fields' => [ sub { my $cust_pay = shift; @@ -115,19 +123,18 @@ }, sub { sprintf('$%.2f', shift->paid ) }, sub { time2str('%b %d %Y', shift->_date ) }, - sub { my $cust_main = shift->cust_main; - $cust_main->get('last'). ', '. $cust_main->first; - }, - sub { my $cust_main = shift->cust_main; - $cust_main->company; - }, + 'custnum', + sub { $_[0]->get('last'). ', '. $_[0]->first; }, + 'company', ], + 'align' => 'lrrrll', 'links' => [ '', '', '', $link, $link, + $link, ], ) %>