-<%
-
-my $eventpart = $cgi->param('eventpart');
-
-my $old = qsearchs('part_bill_event',{'eventpart'=>$eventpart}) if $eventpart;
-
-#s/days/seconds/
-$cgi->param('seconds', $cgi->param('days') * 3600 );
-
-my $new = new FS::part_bill_event ( {
- map {
- $_, scalar($cgi->param($_));
- } fields('part_bill_event'),
-} );
-
-my $error;
-if ( $eventpart ) {
- $error = $new->replace($old);
-} else {
- $error = $new->insert;
- $eventpart = $new->getfield('eventpart');
-}
-
-if ( $error ) {
- $cgi->param('error', $error);
- print $cgi->redirect(popurl(2). "part_bill_event.cgi?". $cgi->query_string );
-} else {
- print $cgi->redirect(popurl(3)."browse/part_bill_event.cgi");
-}
-
-%>
-
+%
+%my $eventpart = $cgi->param('eventpart');
+%
+%my $old = qsearchs('part_bill_event',{'eventpart'=>$eventpart}) if $eventpart;
+%
+%#s/days/seconds/
+%$cgi->param('seconds', int( $cgi->param('days') * 86400 ) );
+%
+%my $error;
+%if ( ! $cgi->param('plan_weight_eventcode') ) {
+% $error = "Must select an action";
+%} else {
+%
+% $cgi->param('plan_weight_eventcode') =~ /^([\w\-]+):(\d+):(.*)$/s
+% or die "illegal plan_weight_eventcode:".
+% $cgi->param('plan_weight_eventcode');
+% $cgi->param('plan', $1);
+% $cgi->param('weight', $2);
+% my $eventcode = $3;
+% my $plandata = '';
+%
+% my $rnum;
+% my $rtype;
+% my $reasonm;
+% 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("new${class}reasonT") =~ /^(\d+)$/
+% or $error = "Invalid new${class}reasonT";
+% $rtype = $1;
+% $cgi->param("new${class}reason") =~ /^([\s\w]+)$/
+% or $error = "Invalid new${class}reason";
+% $reasonm = $1;
+% }
+% }
+%
+% if ($rnum == -1 && !$error) {
+% my $reason = new FS::reason ({ 'reason' => $reasonm,
+% 'reason_type' => $rtype,
+% });
+% $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 {
+% $_, scalar($cgi->param($_));
+% } fields('part_bill_event'),
+% } );
+% $new->setfield('reason', $rnum);
+%
+% if ( $eventpart ) {
+% $error = $new->replace($old);
+% } else {
+% $error = $new->insert;
+% $eventpart = $new->getfield('eventpart');
+% }
+% }
+%}
+%
+%if ( $error ) {
+% $cgi->param('error', $error);
+% print $cgi->redirect(popurl(2). "part_bill_event.cgi?". $cgi->query_string );
+%} else {
+% print $cgi->redirect(popurl(3)."browse/part_bill_event.cgi");
+%}
+%
+%