<& elements/search.html, 'title' => 'Billing event fees', 'html_init' => include('.init'), 'menubar' => $menubar, 'name' => 'billing events', 'query' => $sql_query, 'count_query' => $count_sql, 'header' => [ 'Event', 'Event date', 'Fee', 'Invoice', 'Invoice date', FS::UI::Web::cust_header(), ], 'fields' => [ 'event', sub { time2str("%b %d %Y %T", $_[0]->_date) }, 'itemdesc', $inv_sub, sub { my $d = $_[0]->fee_cust_bill_date; $d ? time2str("%b %d %Y %T", $d) : '' }, \&FS::UI::Web::cust_fields, ], 'align' => 'lrlrr'.FS::UI::Web::cust_aligns(), 'links' => [ '', '', '', $inv_link, $inv_link, ( map { $_ ne 'Cust. Status' ? $link_cust : '' } FS::UI::Web::cust_header() ), ], 'color' => [ '', '', '', '', '', FS::UI::Web::cust_colors(), ], 'style' => [ '', '', '', '', '', FS::UI::Web::cust_styles(), ], &> <%once> my $inv_sub = sub { my $cust_event_fee = shift; my $fee_invnum = $cust_event_fee->fee_invnum; $fee_invnum || ( $cust_event_fee->nextbill ? '(next bill)' : '(not yet)' ); }; my $inv_link = sub { $_[0]->fee_invnum ? [ "${p}view/cust_bill.cgi?", 'fee_invnum' ] : ''; }; my $link_cust = sub { my $cust_event_fee = shift; $cust_event_fee->custnum ? [ "${p}view/cust_main.cgi?", 'custnum' ] : ''; }; <%shared> my @scalars = qw( billpkgnum ); #qw( agentnum status custnum invnum pkgnum failed ); my @lists = qw( eventpart ); my %search; <%init> my $curuser = $FS::CurrentUser::CurrentUser; die "access denied" unless $curuser->access_right('Billing event reports'); for my $param (@scalars) { $search{$param} = scalar( $cgi->param($param) ) if $cgi->param($param); } #lists 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_fee->search_sql_where( \%search ); my $join = FS::cust_event_fee->join_sql(); my $sql_query = { 'table' => 'cust_event_fee', 'select' => join(', ', 'cust_event_fee.*', 'cust_event.*', 'part_event.*', 'cust_bill_pkg.invnum AS fee_invnum', 'fee_cust_bill._date AS fee_cust_bill_date', 'part_fee.itemdesc', 'cust_main.custnum', FS::UI::Web::cust_sql_fields(), ), 'hashref' => {}, 'extra_sql' => $where, 'order_by' => 'ORDER BY eventfeenum ASC', #'ORDER BY _date ASC', 'addl_from' => $join, }; my $count_sql = "SELECT COUNT(*) FROM cust_event_fee $join $where"; my $conf = new FS::Conf; my $menubar = []; push @$menubar, 'Delete these fees' => "javascript:confirm_delete_fees()" if $curuser->access_right('Delete fees'); <%def .init> <& /elements/progress-init.html, 'delete_fees_form', [ @scalars, @lists, 'beginning', 'ending' ], "../misc/delete_fees.cgi", { 'message' => 'Fees deleted', #would be nice to show the number of them... #what we were just displaying is gone, so where to go? # woudl be nice to not keep displaying the deleted data #'url' => }, &>
% foreach my $param (@scalars, 'beginning', 'ending') { % } % foreach my $param (@lists) { % foreach my $value (@{ $search{$param} }) { % } % }