summaryrefslogtreecommitdiff
path: root/httemplate/misc/process/elements/reason
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/misc/process/elements/reason')
-rw-r--r--httemplate/misc/process/elements/reason17
1 files changed, 17 insertions, 0 deletions
diff --git a/httemplate/misc/process/elements/reason b/httemplate/misc/process/elements/reason
new file mode 100644
index 000000000..ae92a7528
--- /dev/null
+++ b/httemplate/misc/process/elements/reason
@@ -0,0 +1,17 @@
+<%init>
+#untaint reasonnum, and set up new reason if appropriate
+my $reasonnum = $cgi->param('reasonnum');
+$reasonnum =~ /^(-?\d+)$/ or die "Illegal reasonnum";
+$reasonnum = $1;
+
+my $error;
+if ($reasonnum == -1) {
+ my $new_reason = FS::reason->new({
+ map { $_ => scalar( $cgi->param("reasonnum_new_$_") ) }
+ qw( reason_type reason unsuspend_pkgpart unsuspend_hold unused_credit )
+ }); # not sanitizing them here, but check() will do it
+ $error = $new_reason->insert;
+ $reasonnum = $new_reason->reasonnum;
+}
+return ($reasonnum, $error);
+</%init>