2 %my $eventpart = $cgi->param('eventpart');
4 %my $old = qsearchs('part_bill_event',{'eventpart'=>$eventpart}) if $eventpart;
7 %$cgi->param('seconds', int( $cgi->param('days') * 86400 ) );
10 %if ( ! $cgi->param('plan_weight_eventcode') ) {
11 % $error = "Must select an action";
14 % $cgi->param('plan_weight_eventcode') =~ /^([\w\-]+):(\d+):(.*)$/s
15 % or die "illegal plan_weight_eventcode:".
16 % $cgi->param('plan_weight_eventcode');
17 % $cgi->param('plan', $1);
18 % $cgi->param('weight', $2);
21 % while ( $eventcode =~ /%%%(\w+)%%%/ ) {
23 % my $value = join(', ', $cgi->param($field) );
24 % $cgi->param($field, $value); #in case it errors out
25 % $eventcode =~ s/%%%$field%%%/$value/;
26 % $plandata .= "$field $value\n";
28 % $cgi->param('eventcode', $eventcode);
29 % $cgi->param('plandata', $plandata);
34 % if ($eventcode =~ /cancel/) {
35 % $cgi->param('creason') =~ /^(-?\d+)$/ || die "Invalid creason";
38 % $cgi->param('newcreasonT') =~ /^(\d+)$/ || die "Invalid newcreasonT";
40 % $cgi->param('newcreason') =~ /^([\s\w]+)$/ || die "Invalid newcreasonT";
44 % if ($eventcode =~ /suspend/) {
45 % $cgi->param('sreason') =~ /^(-?\d+)$/ || die "Invalid sreason";
48 % $cgi->param('newsreasonT') =~ /^(\d+)$/ || die "Invalid newsreasonT";
50 % $cgi->param('newsreason') =~ /^([\s\w]+)$/ || die "Invalid newsreasonT";
55 % if ($rnum == -1 && !$error) {
56 % my $reason = new FS::reason ({ 'reason' => $reasonm,
57 % 'reason_type' => $rtype,
59 % $error = $reason->insert or $rnum = $reason->reasonnum;
63 % my $new = new FS::part_bill_event ( {
65 % $_, scalar($cgi->param($_));
66 % } fields('part_bill_event'),
68 % $new->setfield('reason', $rnum);
71 % $error = $new->replace($old);
73 % $error = $new->insert;
74 % $eventpart = $new->getfield('eventpart');
80 % $cgi->param('error', $error);
81 % print $cgi->redirect(popurl(2). "part_bill_event.cgi?". $cgi->query_string );
83 % print $cgi->redirect(popurl(3)."browse/part_bill_event.cgi");