X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_bill_event.cgi;h=90c89139c7106e91a563bbb84dbab187b3a525bb;hb=d8299144d2175f1695adafe29e9549bd9b158e2f;hp=d1dd65d659b5727ee1752c402f9c67d9abe6f970;hpb=3ce7691203a7737406bf2d4442f7fd84b81f847e;p=freeside.git diff --git a/httemplate/search/cust_bill_event.cgi b/httemplate/search/cust_bill_event.cgi index d1dd65d65..90c89139c 100644 --- a/httemplate/search/cust_bill_event.cgi +++ b/httemplate/search/cust_bill_event.cgi @@ -1,94 +1,3 @@ -% -% -%my $title = $cgi->param('failed') ? 'Failed invoice events' : 'Invoice events'; -% -%my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi); -% -%##tie my %hash, 'Tie::DxHash', -%#my %hash = ( -%# _date => { op=> '>=', value=>$beginning }, -%## i wish... -%## _date => { op=> '<=', value=>$ending }, -%#); -%#$hash{'statustext'} = { op=> '!=', value=>'' } -%# if $cgi->param('failed'); -% -%my $where = " WHERE cust_bill_event._date >= $beginning". -% " AND cust_bill_event._date <= $ending"; -% -%if ( $cgi->param('failed') ) { -% $where .= " AND statustext != '' ". -% " AND statustext IS NOT NULL ". -% " AND statustext != 'N/A' " -%} -% -%if ( $cgi->param('part_bill_event.payby') =~ /^(\w+)$/ ) { -% $where .= " AND part_bill_event.payby = '$1' "; -%} -% -%my $sql_query = { -% 'table' => 'cust_bill_event', -% #'hashref' => \%hash, -% 'hashref' => {}, -% 'select' => join(', ', -% 'cust_bill_event.*', -% 'part_bill_event.event', -% 'cust_bill.custnum', -% 'cust_bill._date AS cust_bill_date', -% 'cust_main.custnum AS cust_main_custnum', -% FS::UI::Web::cust_sql_fields(), -% ), -% 'extra_sql' => "$where ORDER BY _date ASC", -% 'addl_from' => 'LEFT JOIN part_bill_event USING ( eventpart ) '. -% 'LEFT JOIN cust_bill USING ( invnum ) '. -% 'LEFT JOIN cust_main USING ( custnum ) ', -%}; -% -%my $count_sql = "SELECT COUNT(*) FROM cust_bill_event ". -% "LEFT JOIN part_bill_event USING ( eventpart ) ". -% $where; -% -%my $conf = new FS::Conf; -% -%my $failed = $cgi->param('failed'); -% -%my $html_init = join("\n", map { -% ( my $action = $_ ) =~ s/_$//; -% include('/elements/progress-init.html', -% $_.'form', -% [ 'action', 'beginning', 'ending', 'failed' ], -% "../misc/${_}invoice_events.cgi", -% { 'message' => "Invoices re-${action}ed" }, #would be nice to show the number of them, but... -% $_, #key -% ), -% qq!
!, -% qq!!, #not used though -% qq!!, -% qq!!, -% qq!!, -% qq!
! -%} qw( print_ email_ fax_ ) ); -% -%my $menubar = [ -% 'Main menu' => $p, -% 'Re-print these events' => -% "javascript:print_process()", -% 'Re-email these events' => -% "javascript:email_process()", -% ]; -% -%push @$menubar, 'Re-fax these events' => -% "javascript:fax_process()" -% if $conf->exists('hylafax'); -% -%my $link_cust = sub { -% my $cust_bill_event = shift; -% $cust_bill_event->cust_main_custnum -% ? [ "${p}view/cust_main.cgi?", 'custnum' ] -% : ''; -%}; -% -% <% include( 'elements/search.html', 'title' => $title, 'html_init' => $html_init, @@ -122,7 +31,8 @@ }, \&FS::UI::Web::cust_fields, ], - 'links' => [ + 'align' => 'lrlr'.FS::UI::Web::cust_aligns(), + 'links' => [ '', '', '', @@ -132,7 +42,126 @@ $template .= '-' if $template; [ "${p}view/cust_bill.cgi?$template", 'invnum']; }, - ( map { $link_cust } FS::UI::Web::cust_header() ), + ( map { $_ ne 'Cust. Status' ? $link_cust : '' } + FS::UI::Web::cust_header() + ), + ], + 'color' => [ + '', + '', + '', + '', + FS::UI::Web::cust_colors(), + ], + 'style' => [ + '', + '', + '', + '', + FS::UI::Web::cust_styles(), ], ) %> +<%init> + +my $curuser = $FS::CurrentUser::CurrentUser; + +die "access denied" + unless $curuser->access_right('Billing event reports') + or $curuser->access_right('View customer billing events') + && $cgi->param('invnum') =~ /^(\d+)$/; + +my $title = $cgi->param('failed') + ? 'Failed invoice events' + : 'Invoice events'; + +my %search = (); + +if ( $cgi->param('agentnum') && $cgi->param('agentnum') =~ /^(\d+)$/ ) { + $search{agentnum} = $1; +} + +($search{beginning}, $search{ending}) + = FS::UI::Web::parse_beginning_ending($cgi); + +if ( $cgi->param('failed') ) { + $search{failed} = '1'; +} + +if ( $cgi->param('part_bill_event.payby') =~ /^(\w+)$/ ) { + $search{payby} = $1; +} + +if ( $cgi->param('invnum') =~ /^(\d+)$/ ) { + $search{invnum} = $1; +} + +my $where = 'WHERE '. FS::cust_bill_event->search_sql_where( \%search ); + +my $join = 'LEFT JOIN part_bill_event USING ( eventpart ) '. + 'LEFT JOIN cust_bill USING ( invnum ) '. + 'LEFT JOIN cust_main USING ( custnum ) '; + +my $sql_query = { + 'table' => 'cust_bill_event', + 'select' => join(', ', + 'cust_bill_event.*', + 'part_bill_event.event', + 'cust_bill.custnum', + 'cust_bill._date AS cust_bill_date', + 'cust_main.custnum AS cust_main_custnum', + FS::UI::Web::cust_sql_fields(), + ), + 'hashref' => {}, + 'extra_sql' => $where, + 'order_by' => 'ORDER BY _date ASC', + 'addl_from' => $join, +}; + +my $count_sql = "SELECT COUNT(*) FROM cust_bill_event $join $where"; + +my $conf = new FS::Conf; + +my $html_init = ' + Invoice events are the deprecated, old-style actions taken o +n open invoices. See Reports->Billing events->Billing events for current event reports.

'; + +$html_init .= join("\n", map { + ( my $action = $_ ) =~ s/_$//; + include('/elements/progress-init.html', + $_.'form', + [ keys(%search) ], + "../misc/${_}invoice_events.cgi", + { 'message' => "Invoices re-${action}ed" }, #would be nice to show the number of them, but... + $_, #key + ), + qq!
!, + qq!!, #not used though + (map {qq!!} keys(%search)), + qq!
! +} qw( print_ email_ fax_ ) ); + +my $menubar = []; + +if ( $curuser->access_right('Resend invoices') ) { + + push @$menubar, 'Re-print these events' => + "javascript:print_process()", + 'Re-email these events' => + "javascript:email_process()", + ; + + push @$menubar, 'Re-fax these events' => + "javascript:fax_process()" + if $conf->exists('hylafax'); + +} + +my $link_cust = sub { + my $cust_bill_event = shift; + $cust_bill_event->cust_main_custnum + ? [ "${p}view/cust_main.cgi?", 'custnum' ] + : ''; +}; + +