X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_main.cgi;h=ba80f02751dcc8b51f0bead555403cb0349666d5;hb=aea97dbd5c5ac96c4610b112e55f64da66028ef6;hp=a81958e200dc786efe977c4492abddb58ca8f67d;hpb=f578e57b593adb9254b2e465c73116a0e0e617b5;p=freeside.git diff --git a/httemplate/search/cust_main.cgi b/httemplate/search/cust_main.cgi index a81958e20..ba80f0275 100755 --- a/httemplate/search/cust_main.cgi +++ b/httemplate/search/cust_main.cgi @@ -54,7 +54,7 @@ % my $refcustlabel = "$referral_custnum: " . % ( $cust_main->company || $cust_main->last. ', '. $cust_main->first ); referrals of - "><% $refcustlabel %> + "><% $refcustlabel |h %> '; % my $max = 8; @@ -119,9 +119,11 @@ % foreach my $cust_pkg ( @{$all_pkgs{$custnum}} ) { % my %cust_svc_by_svcpart; % my $rows = 0; -% foreach my $part_svc ( $cust_pkg->part_svc ) { +% foreach my $part_svc ( +% $cust_pkg->part_svc( summarize_size=>$large_pkg_size ) +% ) { % my $svcpart = $part_svc->svcpart; -% my $num_cust_svc = $cust_pkg->num_cust_svc($svcpart); +% my $num_cust_svc = $part_svc->num_cust_svc; % if ( $large_pkg_size > 0 and $num_cust_svc >= $large_pkg_size ) { % # don't retrieve the cust_svc records, just stash the % # part_svc and num_cust_svc for later @@ -130,7 +132,7 @@ % $rows += 2; % } % elsif ( $num_cust_svc ) { -% $cust_svc_by_svcpart{$svcpart} = [ $cust_pkg->cust_svc($svcpart) ]; +% $cust_svc_by_svcpart{$svcpart} = $part_svc->cust_pkg_svc; % $rows += $num_cust_svc; % } #if summarize % } #foreach $part_svc @@ -147,7 +149,7 @@ % $view = $p. 'view/cust_main.cgi?'. $custnum; % } % my $pcompany = $company -% ? qq!$company! +% ? qq!!. encode_entities($company). '' % : ' '; % % my $status = $cust_main->status; @@ -161,7 +163,7 @@ <% ucfirst($status) %> > - <% "$last, $first" %> + <% "$last, $first" |h %> > <% $pcompany %> @@ -244,7 +246,7 @@ % my $pkg_rowspan = shift @pkg_rowspans; <% $n1 %> - <% $pkg_comment %> + <% $pkg_comment |h %> % my $n2 = ''; @@ -341,7 +343,12 @@ if ( $cgi->param('browse') if ( $query eq 'custnum' ) { if ( $conf->exists('cust_main-default_agent_custid') ) { $sortby=\*display_custnum_sort; - $orderby = "ORDER BY CASE WHEN agent_custid IS NOT NULL AND agent_custid != '' THEN CAST(agent_custid AS BIGINT) ELSE custnum END"; + $orderby = "ORDER BY CASE WHEN agent_custid IS NOT NULL + AND agent_custid != '' + AND agent_custid ". regexp_sql. " '^[0-9]+\$' + THEN CAST(agent_custid AS BIGINT) + ELSE custnum + END"; } else { $sortby=\*custnum_sort; $orderby = "ORDER BY custnum"; @@ -393,6 +400,7 @@ if ( $cgi->param('browse') push @qual, FS::cust_main->cancel_sql if $cgi->param('cancelled'); push @qual, FS::cust_main->prospect_sql if $cgi->param('prospect'); + push @qual, FS::cust_main->ordered_sql if $cgi->param('ordered'); push @qual, FS::cust_main->active_sql if $cgi->param('active'); push @qual, FS::cust_main->inactive_sql if $cgi->param('inactive'); push @qual, FS::cust_main->susp_sql if $cgi->param('suspended'); @@ -468,12 +476,15 @@ if ( $cgi->param('browse') if ( $cgi->param('search_cust') ) { $sortby = \*company_sort; $orderby = "ORDER BY LOWER(company || ' ' || last || ' ' || first )"; - push @cust_main, smart_search( 'search' => scalar($cgi->param('search_cust')), - 'no_fuzzy_on_exact' => 1, #pref? - ); + push @cust_main, smart_search( + 'search' => scalar($cgi->param('search_cust')), + 'no_fuzzy_on_exact' => ! ( $curuser->option('enable_fuzzy_on_exact') + || $conf->exists('enable_fuzzy_on_exact') + ), + ); } - @cust_main = grep { $_->ncancelled_pkgs || ! $_->all_pkgs } @cust_main + @cust_main = grep { $_->num_ncancelled_pkgs || ! $_->num_pkgs } @cust_main if ! $cgi->param('cancelled') && ( $cgi->param('showcancelledcustomers') eq '0' #see if it was set by me @@ -485,12 +496,30 @@ if ( $cgi->param('browse') @cust_main = grep { !$saw{$_->custnum}++ } @cust_main; } -my %all_pkgs; -if ( $conf->exists('hidecancelledpackages' ) ) { - %all_pkgs = map { $_->custnum => [ $_->ncancelled_pkgs ] } @cust_main; -} else { - %all_pkgs = map { $_->custnum => [ $_->all_pkgs ] } @cust_main; -} +my $pkgs_method = $conf->exists('hidecancelledpackages') + ? 'ncancelled_pkgs' + : 'all_pkgs'; + +#false laziness w/httemplate/view/cust_main/packages.html +my $select = '*, setup_option.optionvalue AS _opt_setup_fee, '. + 'recur_option.optionvalue AS _opt_recur_fee', +my $addl_from = qq{ + LEFT JOIN part_pkg USING ( pkgpart ) + LEFT JOIN part_pkg_option AS setup_option + ON ( cust_pkg.pkgpart = setup_option.pkgpart + AND setup_option.optionname = 'setup_fee' ) + LEFT JOIN part_pkg_option AS recur_option + ON ( cust_pkg.pkgpart = recur_option.pkgpart + AND recur_option.optionname = 'recur_fee' ) +}; + +my %all_pkgs = map { $_->custnum => + [ $_->$pkgs_method({ select => $select, + addl_from => $addl_from, + }) + ]; + } + @cust_main; sub last_sort { lc($a->getfield('last')) cmp lc($b->getfield('last'))