first part of ACL and re-skinning work and some other small stuff
[freeside.git] / httemplate / search / cust_bill_event.cgi
index f34bb68..d82a833 100644 (file)
@@ -15,8 +15,16 @@ my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi);
 
 my $where = " WHERE cust_bill_event._date >= $beginning".
             "   AND cust_bill_event._date <= $ending";
-$where .= " AND statustext != '' AND statustext IS NOT NULL"
-  if $cgi->param('failed');
+
+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',
@@ -27,8 +35,8 @@ my $sql_query = {
                    'part_bill_event.event',
                    'cust_bill.custnum',
                    'cust_bill._date AS cust_bill_date',
-                   map "cust_main.$_", qw(last first company)
-
+                   '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 ) '.
@@ -36,7 +44,9 @@ my $sql_query = {
                  'LEFT JOIN cust_main       USING ( custnum   ) ',
 };
 
-my $count_sql = "select count(*) from cust_bill_event $where";
+my $count_sql = "SELECT COUNT(*) FROM cust_bill_event ".
+                "LEFT JOIN part_bill_event USING ( eventpart ) ".
+                $where;
 
 my $conf = new FS::Conf;
 
@@ -71,6 +81,13 @@ 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,
@@ -78,9 +95,12 @@ push @$menubar, 'Re-fax these events' =>
                  'name'        => 'billing events',
                  'query'       => $sql_query,
                  'count_query' => $count_sql,
-                 'header'      => [ qw( Event Date Status ),
+                 'header'      => [ 'Event',
+                                    'Date',
+                                    'Status',
                                     #'Inv #', 'Inv Date', 'Cust #',
-                                    'Invoice', 'Cust #',
+                                    'Invoice',
+                                    FS::UI::Web::cust_header(),
                                   ],
                  'fields' => [
                                'event',
@@ -99,9 +119,7 @@ push @$menubar, 'Re-fax these events' =>
                                        time2str("%D", $_[0]->cust_bill_date).
                                      ')';
                                    },
-                               sub { FS::cust_main::name($_[0]) },
-
-
+                               \&FS::UI::Web::cust_fields,
                              ],
                  'links' => [
                               '',
@@ -113,8 +131,7 @@ push @$menubar, 'Re-fax these events' =>
                                 $template .= '-' if $template;
                                 [ "${p}view/cust_bill.cgi?$template", 'invnum'];
                               },
-                              [ "${p}view/cust_main.cgi?", 'custnum' ],
-                              [ "${p}view/cust_main.cgi?", 'custnum' ],
+                              ( map { $link_cust } FS::UI::Web::cust_header() ),
                             ],
              )
 %>