stray closing /TABLE in the no-ticket case
[freeside.git] / FS / bin / freeside-cdrrewrited
index 1745d67..d117f56 100644 (file)
@@ -63,12 +63,11 @@ while (1) {
   foreach my $cdr ( 
     qsearch( {
       'table'     => 'cdr',
-      'extra_sql' => 'FOR UPDATE', #XXX overwritten by opt below...would fixing this break anything?
       'hashref'   => {},
       'extra_sql' => 'WHERE freesidestatus IS NULL '.
                      ' AND freesiderewritestatus IS NULL '.
                      $extra_sql.
-                     ' LIMIT 1024', #arbitrary, but don't eat too much memory
+                     ' LIMIT 1024 FOR UPDATE', #arbitrary, but don't eat too much memory
     } )
   ) {
 
@@ -88,7 +87,7 @@ while (1) {
       if ($isdup) {
         #we only act on this cdr, not touching previous dupes
         #if a dupe somehow creeped in previously, too late to fix it
-        $cdr->freesidestatus('done'); #prevent it from being billed
+        $cdr->freesidestatus('skipped'); #prevent it from being billed
         push(@status,'duplicate');
       }
     }
@@ -219,6 +218,12 @@ while (1) {
 
     }
 
+    if ( $conf->exists('cdr-userfield_dnis_rewrite') and
+         $cdr->userfield =~ /DNIS=(\d+)/ ) {
+      $cdr->dst($1);
+      push @status, 'userfield_dnis';
+    }
+
     if ( $conf->exists('cdr-intl_to_domestic_rewrite') and
          $cdr->dst =~ /^(011)(\d{0,7})$/ ) {
       $cdr->dst($2);
@@ -261,6 +266,7 @@ sub _shouldrun {
   || $conf->exists('cdr-taqua-accountcode_rewrite')
   || $conf->exists('cdr-taqua-callerid_rewrite')
   || $conf->exists('cdr-intl_to_domestic_rewrite')
+  || $conf->exists('cdr-userfield_dnis_rewrite')
   || $conf->exists('cdr-skip_duplicate_rewrite')
   || 0
   ;
@@ -287,7 +293,7 @@ of the following config options are enabled:
 
 =item cdr-skip_duplicate_rewrite
 
-Marks as 'done' (prevents billing for) any CDRs with 
+Marks as 'skipped' (prevents billing for) any CDRs with 
 a src, dst and calldate identical to an existing CDR
 
 =item cdr-asterisk_australia_rewrite