% $cgi->param('weight', $2);
% my $eventcode = $3;
% my $plandata = '';
-% while ( $eventcode =~ /%%%(\w+)%%%/ ) {
-% my $field = $1;
-% my $value = join(', ', $cgi->param($field) );
-% $cgi->param($field, $value); #in case it errors out
-% $eventcode =~ s/%%%$field%%%/$value/;
-% $plandata .= "$field $value\n";
-% }
-% $cgi->param('eventcode', $eventcode);
-% $cgi->param('plandata', $plandata);
%
% my $rnum;
% my $rtype;
% my $reasonm;
-% if ($eventcode =~ /cancel/) {
-% $cgi->param('creason') =~ /^(-?\d+)$/ || die "Invalid creason";
-% $rnum = $1;
-% if ($rnum == -1) {
-% $cgi->param('newcreasonT') =~ /^(\d+)$/ || die "Invalid newcreasonT";
-% $rtype = $1;
-% $cgi->param('newcreason') =~ /^([\s\w]+)$/ || die "Invalid newcreasonT";
-% $reasonm = $1;
-% }
-% }
-% if ($eventcode =~ /suspend/) {
-% $cgi->param('sreason') =~ /^(-?\d+)$/ || die "Invalid sreason";
+% my $class = '';
+% $class='c' if ($eventcode =~ /cancel/);
+% $class='s' if ($eventcode =~ /suspend/);
+% if ($class) {
+% $cgi->param("${class}reason") =~ /^(-?\d+)$/
+% or $error = "Invalid ${class}reason";
% $rnum = $1;
% if ($rnum == -1) {
-% $cgi->param('newsreasonT') =~ /^(\d+)$/ || die "Invalid newsreasonT";
+% $cgi->param("new${class}reasonT") =~ /^(\d+)$/
+% or $error = "Invalid new${class}reasonT";
% $rtype = $1;
-% $cgi->param('newsreason') =~ /^([\s\w]+)$/ || die "Invalid newsreasonT";
+% $cgi->param("new${class}reason") =~ /^([\s\w]+)$/
+% or $error = "Invalid new${class}reason";
% $reasonm = $1;
% }
% }
% my $reason = new FS::reason ({ 'reason' => $reasonm,
% 'reason_type' => $rtype,
% });
-% $error = $reason->insert or $rnum = $reason->reasonnum;
+% $error = $reason->insert;
+% unless ($error) {
+% $rnum = $reason->reasonnum;
+% $cgi->param("${class}reason", $rnum);
+% $cgi->param("new${class}reason", '');
+% $cgi->param("new${class}reasonT", '');
+% }
% }
%
+% while ( $eventcode =~ /%%%(\w+)%%%/ ) {
+% my $field = $1;
+% my $value = join(', ', $cgi->param($field) );
+% $cgi->param($field, $value); #in case it errors out
+% $eventcode =~ s/%%%$field%%%/$value/;
+% $plandata .= "$field $value\n";
+% }
+% $cgi->param('eventcode', $eventcode);
+% $cgi->param('plandata', $plandata);
+%
% unless($error){
% my $new = new FS::part_bill_event ( {
% map {
%}
%
%
-
-