summaryrefslogtreecommitdiff
path: root/httemplate/edit/process
diff options
context:
space:
mode:
authormark <mark>2011-02-11 23:59:29 +0000
committermark <mark>2011-02-11 23:59:29 +0000
commit6a10d16ff4e806357abab206254aa38c80a749d3 (patch)
tree94dfb9705ba9d5aa8b3b0d1d96be6ba460115404 /httemplate/edit/process
parentca2b8a8c99585a4619eb657f2c7fca12a7304249 (diff)
rate selection by CDR type, RT#10991
Diffstat (limited to 'httemplate/edit/process')
-rw-r--r--httemplate/edit/process/cdr_type.cgi42
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>