diff options
Diffstat (limited to 'httemplate/misc/cdr.cgi')
| -rw-r--r-- | httemplate/misc/cdr.cgi | 48 | 
1 files changed, 48 insertions, 0 deletions
| diff --git a/httemplate/misc/cdr.cgi b/httemplate/misc/cdr.cgi new file mode 100644 index 000000000..d2ee77364 --- /dev/null +++ b/httemplate/misc/cdr.cgi @@ -0,0 +1,48 @@ +%# <% $cgi->redirect(popurl(2). "search/cdr.html") %> +%# i should be a popup and reload my parent... until then, this will do +<% include('/elements/header.html','CDR update successful') %>  +<% include('/elements/footer.html') %>  +<%init>  +die "access denied" +  unless $FS::CurrentUser::CurrentUser->access_right('Edit rating data'); + +$cgi->param('action') =~ /^(new|del|(reprocess|delete) selected)$/ +  or die "Illegal action"; +my $action = $1; + +my $cdr; +if ( $action eq 'new' || $action eq 'del' ) { +  $cgi->param('acctid') =~ /^(\d+)$/ or die "Illegal acctid"; +  my $acctid = $1; +  $cdr = qsearchs('cdr', { 'acctid' => $1 }) +    or die "unknown acctid $acctid"; +} + +if ( $action eq 'new' ) { +  my %hash = $cdr->hash; +  $hash{'freesidestatus'} = ''; +  my $new = new FS::cdr \%hash; +  my $error = $new->replace($cdr); +  die $error if $error; +} elsif ( $action eq 'del' ) { +  my $error = $cdr->delete; +  die $error if $error; +} elsif ( $action =~ /^(reprocess|delete) selected$/ ) { +  foreach my $acctid ( +    map { /^acctid(\d+)$/; $1; } grep /^acctid\d+$/, $cgi->param +  ) { +    my $cdr = qsearchs('cdr', { 'acctid' => $acctid }); +    if ( $action eq 'reprocess selected' && $cdr ) { #new +      my %hash = $cdr->hash; +      $hash{'freesidestatus'} = ''; +      my $new = new FS::cdr \%hash; +      my $error = $new->replace($cdr); +      die $error if $error; +    } elsif ( $action eq 'delete selected' && $cdr ) { #del +      my $error = $cdr->delete; +      die $error if $error; +    } +  } +} + +</%init> | 
