diff options
author | mark <mark> | 2011-02-11 23:59:29 +0000 |
---|---|---|
committer | mark <mark> | 2011-02-11 23:59:29 +0000 |
commit | 6a10d16ff4e806357abab206254aa38c80a749d3 (patch) | |
tree | 94dfb9705ba9d5aa8b3b0d1d96be6ba460115404 /httemplate/edit/process | |
parent | ca2b8a8c99585a4619eb657f2c7fca12a7304249 (diff) |
rate selection by CDR type, RT#10991
Diffstat (limited to 'httemplate/edit/process')
-rw-r--r-- | httemplate/edit/process/cdr_type.cgi | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/httemplate/edit/process/cdr_type.cgi b/httemplate/edit/process/cdr_type.cgi new file mode 100644 index 000000000..b661de75d --- /dev/null +++ b/httemplate/edit/process/cdr_type.cgi @@ -0,0 +1,42 @@ +% 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; +warn Dumper(\%vars)."\n"; + +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> |