fix multiple pkgpart search, RT#5924
[freeside.git] / httemplate / search / cdr.html
index 126c4fd..d1f68c5 100644 (file)
@@ -23,6 +23,7 @@
                              @fields,       #XXX fill in some pretty-print
                                             #processing, etc.
                            ],
+               'links' => \@links,
 
                'html_form'   => qq!<FORM NAME="cdrForm" ACTION="$p/misc/cdr.cgi" METHOD="POST">!,
                #false laziness w/queue.html
@@ -193,6 +194,23 @@ if ( $cgi->param('cdrbatch') ne '__ALL__' ) {
 }
 
 ###
+# acctid
+###
+
+if ( $cgi->param('acctid') =~ /\d/ ) {
+  my $acctid = $cgi->param('acctid');
+  $acctid =~ s/\r\n/\n/g; #browsers?
+  my @acctid = map  { /^\s*(\d+)\s*$/ or die "guru meditation #4"; $1; }
+               grep { /^\s*(\d+)\s*$/ }
+               split(/\n/, $acctid);
+  if ( @acctid ) {
+    my $search = 'acctid IN ( '. join(',', @acctid). ' )';
+    push @qsearch, $search;
+    push @search,  $search;
+  }
+}
+
+###
 # finish it up
 ###
 
@@ -225,9 +243,33 @@ my @header = map {
                      $header{$_};
                    } else {
                      my $header = $_;
-                     $header =~ s/\_/ /g;
+                     $header =~ s/\_/ /g; #//wtf
                      ucfirst($header);
                    }
                  } @fields;
 
+my $date_sub_factory = sub {
+  my $column = shift;
+  sub {
+    #my $cdr = shift;
+    my $date = shift->$column();
+    $date ? time2str( '%Y-%m-%d %T', $date ) : ''; #config time2str format?
+  };
+};
+
+my %fields = (
+  #any other formatters?
+  map { $_ => &{ $date_sub_factory }($_) } qw( startdate answerdate enddate )
+);
+
+my %links = (
+  'svcnum' =>
+    sub { $_[0]->svcnum ? [ $p.'view/svc_phone.cgi?', 'svcnum' ] : ''; },
+);
+
+@fields = map { exists($fields{$_}) ? $fields{$_} : $_ } @fields;
+
+              #checkbox column
+my @links = ( '', map { exists($links{$_}) ? $links{$_} : '' } @fields );
+
 </%init>