X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_event.html;h=241a0267a225c6c371227dd15bce260479c7a9f6;hb=8eb6542c022ac84b125416f3fb0828b278ba600a;hp=715d1ca9aebcc25fd3340fa6c9674af6b9d66a8a;hpb=d57a1feb48c55fecb95502e894575eebb306a58a;p=freeside.git diff --git a/httemplate/search/cust_event.html b/httemplate/search/cust_event.html index 715d1ca9a..241a0267a 100644 --- a/httemplate/search/cust_event.html +++ b/httemplate/search/cust_event.html @@ -1,4 +1,4 @@ -<% include( 'elements/search.html', +<& elements/search.html, 'title' => $title, 'html_init' => $html_init, 'menubar' => $menubar, @@ -62,42 +62,46 @@ #'', FS::UI::Web::cust_styles(), ], - ) -%> +&> <%once> my $status_sub = sub { my $cust_event = shift; my $status = $cust_event->status; - $status .= ': '.$cust_event->statustext + $status .= ': '. encode_entities($cust_event->statustext) if $cust_event->statustext; my $part_event = $cust_event->part_event; - if ( $part_event->eventtable eq 'cust_bill' && $part_event->templatename ) { - my $alt_templatename = $part_event->templatename; - my $alt_link = "$alt_templatename-". $cust_event->tablenum; + if ( $part_event->eventtable eq 'cust_bill' + && ( $part_event->templatename || $part_event->option('notice_name') ) + ) + { + my $link = 'invnum='. $cust_event->tablenum; + $link .= ';template='. uri_escape($part_event->templatename) + if $part_event->templatename; + $link .= ';notice_name='. uri_escape($part_event->option('notice_name')) + if $part_event->option('notice_name'); my $conf = new FS::Conf; my $cust_bill = $cust_event->cust_X; $status .= qq{ - ( view - | view - typeset - | re-print + ( view + | view typeset + | re-print }; if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) { $status .= qq{ - | re-email + | re-email }; } if ( $conf->exists('hylafax') && length($cust_bill->cust_main->fax) ) { $status .= qq{ - | re-fax + | re-fax } } @@ -148,23 +152,41 @@ die "access denied" || $cgi->param('pkgnum') =~ /^(\d+)$/ ); -my $title = $cgi->param('failed') ? 'Failed billing events' : 'Billing events'; +my @statuses = $cgi->multi_param('event_status'); +my $title = 'Billing events'; +if ( $statuses[0] eq 'failed' and !defined($statuses[1]) ) { + # tweak the title if we're showing only failed events + $title = 'Failed billing events'; +} my %search = (); -my @scalars = qw ( agentnum custnum invnum pkgnum failed ); -for my $param ( @scalars ) { +my @scalars = qw( agentnum status custnum invnum pkgnum failed ); +for my $param (@scalars) { $search{$param} = scalar( $cgi->param($param) ) if $cgi->param($param); } +$search{event_status} = \@statuses; + +#lists +my @lists = qw( eventpart ); +foreach my $param (@lists) { + $search{$param} = [ $cgi->param($param) ]; +} my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi); $search{'beginning'} = $beginning; $search{'ending'} = $ending; -my $where = ' WHERE '. FS::cust_event->search_sql( \%search ); +my $where = ' WHERE '. FS::cust_event->search_sql_where( \%search ); -my $join = FS::cust_event->join_sql(); +my $join = FS::cust_event->join_sql() . + 'LEFT JOIN cust_location bill_location '. + 'ON (cust_main.bill_locationnum = bill_location.locationnum) '. + 'LEFT JOIN cust_location ship_location '. + 'ON (cust_main.ship_locationnum = ship_location.locationnum)'; + # warning: does not show the true service address for package events. + # the query to do that would be painfully slow. my $sql_query = { 'table' => 'cust_event', @@ -177,8 +199,10 @@ my $sql_query = { FS::UI::Web::cust_sql_fields(), ), 'hashref' => {}, - 'extra_sql' => "$where ORDER BY _date ASC", + 'extra_sql' => $where, + 'order_by' => 'ORDER BY _date ASC', 'addl_from' => $join, + 'debug' => 2, }; my $count_sql = "SELECT COUNT(*) FROM cust_event $join $where"; @@ -203,6 +227,11 @@ my $html_init = join("\n", map { } @params #keys %search ), + ( map { my $value = encode_entities( join(',', @{ $search{$_} } ) ); + qq(); + } + @lists + ), qq!! } qw( print_ email_ fax_ ) ).