summaryrefslogtreecommitdiff
path: root/httemplate/edit/process/cdr_type.cgi
blob: ba9881dc49ec203adca1686e06f7152125fe6696 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
% if ( $error ) {
%   $cgi->param('error', $error);
<% $cgi->redirect(popurl(2). "cdr_type.cgi?". $cgi->query_string ) %>
% } else {
<% $cgi->redirect(popurl(2). "cdr_type.cgi" ) %>
% }
<%init>
my $error = '';
die "access denied" 
    unless $FS::CurrentUser::CurrentUser->access_right('Configuration');

my %vars = $cgi->Vars;

my %old = map { $_->cdrtypenum => $_ } qsearch('cdr_type', {});

my @new;
foreach ( keys(%vars) ) {
  my ($i) = /^cdrtypenum(\d+)$/ or next;
  my $cdrtypenum = $vars{"cdrtypenum$i"} or next;
  my $cdrtypename = $vars{"cdrtypename$i"} or next;
  # don't delete unchanged records
  if ( $old{$i} and $old{$i}->cdrtypename eq $cdrtypename ) {
    delete $old{$i};
    next;
  }
  push @new, FS::cdr_type->new({ 
    'cdrtypenum'  => $cdrtypenum,
    'cdrtypename' => $cdrtypename,
  });
}
foreach (values(%old)) {
  $error = $_->delete;
  last if $error;
}
if(!$error) {
  foreach (@new) {
    $error = $_->insert;
    last if $error;
  }
}
</%init>