X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_bill.html;h=8d512f58314a955a8d44f8d787ccbee89ac040c3;hb=c7cc0522832d0e1c056f9bce46dd1b4b5551e612;hp=3c0530e4f74283acfe9c914754773ee24cee1450;hpb=c7286ce9036d71665c2bfed9de93f87309b72d35;p=freeside.git diff --git a/httemplate/search/cust_bill.html b/httemplate/search/cust_bill.html index 3c0530e4f..8d512f583 100755 --- a/httemplate/search/cust_bill.html +++ b/httemplate/search/cust_bill.html @@ -62,7 +62,7 @@ die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('List invoices'); -my $join_cust_main = 'LEFT JOIN cust_main USING ( custnum )'; +my $join_cust_main = FS::UI::Web::join_cust_main('cust_bill'); #here is the agent virtualization my $agentnums_sql = $FS::CurrentUser::CurrentUser->agentnums_sql; @@ -84,6 +84,20 @@ if ( $cgi->param('invnum') =~ /^\s*(FS-)?(\d+)\s*$/ ) { 'extra_sql' => $where, }; + if ( FS::Record->scalar_sql($count_query) == 0 ) { + + # check for a voided invoice + $count_query =~ s/cust_bill/cust_bill_void/g; + if ( FS::Record->scalar_sql($count_query) > 0 ) { + # Redirect to the void search. + my $url = $cgi->self_url; + $url =~ s(search/cust_bill)(search/cust_bill_void); + $m->clear_buffer; + $m->print($cgi->redirect($url)); + $m->abort; + } + } + } else { #some false laziness w/cust_bill::re_X @@ -97,7 +111,7 @@ if ( $cgi->param('invnum') =~ /^\s*(FS-)?(\d+)\s*$/ ) { $search{'refnum'} = $1; } - if ( $cgi->param('cust_classnum') ) { +if ( grep { $_ eq 'cust_classnum' } $cgi->param ) { $search{'cust_classnum'} = [ $cgi->param('cust_classnum') ]; } @@ -156,15 +170,13 @@ if ( $cgi->param('invnum') =~ /^\s*(FS-)?(\d+)\s*$/ ) { } } - my $payby_sql = ''; - $payby_sql = ' AND (' . - join(' OR ', map { "cust_main.payby = '$_'" } $cgi->param('payby') ) . - ')' - if $cgi->param('payby'); + #payby + if ($cgi->param('payby')) { + $search{payby} = [ $cgi->param('payby') ]; + } - my $extra_sql = ' WHERE '. - FS::cust_bill->search_sql_where( \%search ). - $payby_sql; + my $extra_sql = FS::cust_bill->search_sql_where( \%search ); + $extra_sql = "WHERE $extra_sql" if $extra_sql; unless ( $count_query ) { $count_query = 'SELECT COUNT(*), '. join(', ', @@ -198,7 +210,6 @@ if ( $cgi->param('invnum') =~ /^\s*(FS-)?(\d+)\s*$/ ) { }; } - my $link = [ "${p}view/cust_bill.cgi?", 'invnum', ]; my $clink = sub { my $cust_bill = shift;