ticket: 27309; add accountcode
[freeside.git] / httemplate / search / cdr.html
index 642c2da..10b3863 100644 (file)
@@ -9,26 +9,7 @@
                'fields' => \@fields,
                'links' => \@links,
                'html_form'   => qq!<FORM NAME="cdrForm" ACTION="$p/misc/cdr.cgi" METHOD="POST">!,
-               #false laziness w/queue.html
-               'html_foot' => sub {
-                                if ( $areboxes ) {
-                                  '<BR><INPUT TYPE="button" VALUE="select all" onClick="setAll(true)">'.
-                                  '<INPUT TYPE="button" VALUE="unselect all" onClick="setAll(false)">'.
-                                  qq!<BR><INPUT TYPE="submit" NAME="action" VALUE="reprocess selected" onClick="return confirm('Are you sure you want to reprocess the selected CDRs?')">!.
-                                  qq!<INPUT TYPE="submit" NAME="action" VALUE="delete selected" onClick="return confirm('Are you sure you want to delete the selected CDRs?')"><BR>!.
-                                  '<SCRIPT TYPE="text/javascript">'.
-                                  '  function setAll(setTo) { '.
-                                  '    theForm = document.cdrForm;'.
-                                  '    for (i=0,n=theForm.elements.length;i<n;i++)'.
-                                  '      if (theForm.elements[i].name.indexOf("acctid") != -1)'.
-                                  '        theForm.elements[i].checked = setTo;'.
-                                  '  }'.
-                                  '</SCRIPT>';
-                                } else {
-                                  '';
-                                }
-                              },
-             
+               'html_foot' => $html_foot,
 &>
 <%init>
 
@@ -44,8 +25,6 @@ my $totalminutes_sub = sub {
 
 my $conf = new FS::Conf;
 
-my $areboxes = 0;
-
 my $title = 'Call Detail Records';
 my $hashref = {};
 
@@ -279,6 +258,25 @@ if ( $cgi->param('acctid') =~ /\d/ ) {
 }
 
 ###
+# accountcode
+###
+
+if ( $cgi->param('accountcode') =~ /\S/ ) {
+  my $accountcode = $cgi->param('accountcode');
+  my @accountcode = map {
+    ( my $v = $_ ) =~ s/^\s+|\s+$//g;
+    if ( $v =~ /'/ ) { $v =~ s/'/\\'/g; $v = "E'$v'" }
+    elsif ( length $v ) { $v = "'$v'" }
+    length $v ? $v : ()
+  } grep /\S/, split /\R/, $accountcode;
+  if (@accountcode) {
+    my $search = 'accountcode IN ( ' . join( ',', @accountcode ) . ' )';
+    push @qsearch, $search;
+    push @search,  $search;
+  }
+}
+
+###
 # finish it up
 ###
 
@@ -355,7 +353,6 @@ my %links = (
 @fields = map { exists($fields{$_}) ? $fields{$_} : $_ } @fields;
 unshift @fields, sub {
                        return '' unless $edit_data;
-                       $areboxes = 1;
                        my $cdr = shift;
                        my $acctid = $cdr->acctid;
                        qq!<INPUT NAME="acctid$acctid" TYPE="checkbox" VALUE="1">!;
@@ -409,4 +406,14 @@ if ( $topmode ) {
     $nototalminutes = 1;
 }
 
+my $html_foot = include('/search/elements/checkbox-foot.html',
+  actions => [
+    { submit  => "reprocess selected",
+      name    => "action",
+      confirm => "Are you sure you want to reprocess the selected CDRs?" },
+    { submit  => "delete selected",
+      name    => "action",
+      confirm => "Are you sure you want to delete the selected CDRs?" },
+  ]
+);
 </%init>