2 % $cgi->param('error', $error);
3 <% $cgi->redirect(popurl(2). "part_bill_event.cgi?". $cgi->query_string ) %>
5 <% $cgi->redirect(popurl(3)."browse/part_bill_event.cgi") %>
10 unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
12 my $eventpart = $cgi->param('eventpart');
14 my $old = qsearchs('part_bill_event',{'eventpart'=>$eventpart}) if $eventpart;
17 $cgi->param('seconds', int( $cgi->param('days') * 86400 ) );
20 if ( ! $cgi->param('plan_weight_eventcode') ) {
21 $error = "Must select an action";
24 $cgi->param('plan_weight_eventcode') =~ /^([\w\-]+):(\d+):(.*)$/s
25 or die "illegal plan_weight_eventcode:".
26 $cgi->param('plan_weight_eventcode');
27 $cgi->param('plan', $1);
28 $cgi->param('weight', $2);
36 $class='c' if ($eventcode =~ /cancel/);
37 $class='s' if ($eventcode =~ /suspend/);
39 $cgi->param("${class}reason") =~ /^(-?\d+)$/
40 or $error = "Invalid ${class}reason";
43 $cgi->param("new${class}reasonT") =~ /^(\d+)$/
44 or $error = "Invalid new${class}reasonT";
46 $cgi->param("new${class}reason") =~ /^([\s\w]+)$/
47 or $error = "Invalid new${class}reason";
52 if ($rnum == -1 && !$error) {
53 my $reason = new FS::reason ({ 'reason' => $reasonm,
54 'reason_type' => $rtype,
56 $error = $reason->insert;
58 $rnum = $reason->reasonnum;
59 $cgi->param("${class}reason", $rnum);
60 $cgi->param("new${class}reason", '');
61 $cgi->param("new${class}reasonT", '');
65 while ( $eventcode =~ /%%%(\w+)%%%/ ) {
67 my $value = join(', ', $cgi->param($field) );
68 $cgi->param($field, $value); #in case it errors out
69 $eventcode =~ s/%%%$field%%%/$value/;
70 $plandata .= "$field $value\n";
72 $cgi->param('eventcode', $eventcode);
73 $cgi->param('plandata', $plandata);
79 my $new = new FS::part_bill_event ( {
80 map { $_ => scalar($cgi->param($_)) }
81 fields('part_bill_event'),
83 $new->setfield('reason' => $rnum);
84 $error = $new->replace($old);
88 foreach my $payby ( $cgi->param('payby') ) {
89 my $new = new FS::part_bill_event ( {
90 map { $_ => scalar($cgi->param($_)) }
91 grep { $_ ne 'payby' }
92 fields('part_bill_event')
94 $new->setfield('payby' => $payby);
95 $new->setfield('reason' => $rnum );
96 $error = $new->insert;