X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fsvc_forward.cgi;h=a204e345feadd526b7c14eb406bb3ad724c3b3db;hb=550685eff557af23e242c545d6a9e27a7ef44f23;hp=1785fa00bf232f1c92e396b6a6ad7911d5491a0a;hpb=d99603dfa659bc8890433e7de0c3e64ecc82fd9c;p=freeside.git diff --git a/httemplate/search/svc_forward.cgi b/httemplate/search/svc_forward.cgi index 1785fa00b..a204e345f 100755 --- a/httemplate/search/svc_forward.cgi +++ b/httemplate/search/svc_forward.cgi @@ -4,25 +4,43 @@ my $conf = new FS::Conf; my($query)=$cgi->keywords; $query ||= ''; #to avoid use of unitialized value errors -my($orderby); + + +my $orderby; + +my $cjoin = ''; +my @extra_sql = (); +if ( $query =~ /^UN_(.*)$/ ) { + $query = $1; + $cjoin = 'LEFT JOIN cust_svc USING ( svcnum )'; + push @extra_sql, 'pkgnum IS NULL'; +} + if ( $query eq 'svcnum' ) { $orderby = 'ORDER BY svcnum'; } else { eidiot('unimplemented'); } -my $count_query = 'SELECT COUNT(*) FROM svc_forward'; +my $extra_sql = + scalar(@extra_sql) + ? ' WHERE '. join(' AND ', @extra_sql ) + : ''; + +my $count_query = "SELECT COUNT(*) FROM svc_forward $cjoin $extra_sql"; my $sql_query = { 'table' => 'svc_forward', 'hashref' => {}, 'select' => join(', ', 'svc_forward.*', - map "cust_main.$_", qw(custnum last first company) + 'cust_main.custnum', + FS::UI::Web::cust_sql_fields(), ), - 'extra_sql' => $orderby, - 'addl_from' => 'LEFT JOIN cust_svc USING ( svcnum )'. - 'LEFT JOIN cust_pkg USING ( pkgnum )'. - 'LEFT JOIN cust_main USING ( custnum )', + 'extra_sql' => "$extra_sql $orderby", + 'addl_from' => ' LEFT JOIN cust_svc USING ( svcnum ) '. + ' LEFT JOIN part_svc USING ( svcpart ) '. + ' LEFT JOIN cust_pkg USING ( pkgnum ) '. + ' LEFT JOIN cust_main USING ( custnum ) ', }; # Service #
(click to view forward) @@ -69,29 +87,13 @@ my $link_dst = sub { } }; -my $format_cust = sub { - my $svc_forward = shift; - - if ( $svc_forward->custnum ) { - #false laziness w/FS::cust_main::name - my $name = $svc_forward->get('last'). ', '. $svc_forward->first; - $name = $svc_forward->company. " ($name)" if $svc_forward->company; - $name; - } else { - ''; - } -}; - +#smaller false laziness w/svc_*.cgi here my $link_cust = sub { - my $svc_forward = shift; - if ( $svc_forward->custnum ) { - [ "${p}view/cust_main.cgi?", 'custnum' ]; - } else { - ''; - } + my $svc_x = shift; + $svc_x->custnum ? [ "${p}view/cust_main.cgi?", 'custnum' ] : ''; }; -%><%= include ('elements/search.html', +%><%= include( 'elements/search.html', 'title' => "Mail forward Search Results", 'name' => 'mail forwards', 'query' => $sql_query, @@ -100,17 +102,19 @@ my $link_cust = sub { 'header' => [ '#', 'Mail to', 'Forwards to', - 'Customer', + FS::UI::Web::cust_header(), ], 'fields' => [ 'svcnum', $format_src, $format_dst, - $format_cust, + \&FS::UI::Web::cust_fields, ], 'links' => [ $link, $link_src, $link_dst, - $link_cust, + ( map { $link_cust } + FS::UI::Web::cust_header() + ), ], - ) + ) %>