wtf?
[freeside.git] / httemplate / edit / process / part_bill_event.cgi
index 4811d9c..af594f2 100755 (executable)
@@ -1,5 +1,4 @@
 %
-%
 %my $eventpart = $cgi->param('eventpart');
 %
 %my $old = qsearchs('part_bill_event',{'eventpart'=>$eventpart}) if $eventpart;
 %  $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('eventcode', $eventcode);
 %  $cgi->param('plandata', $plandata);
 %
-%  my $new = new FS::part_bill_event ( {
-%    map {
-%      $_, scalar($cgi->param($_));
-%    } fields('part_bill_event'),
-%  } );
-%
-%  if ( $eventpart ) {
-%    $error = $new->replace($old);
-%  } else {
-%    $error = $new->insert;
-%    $eventpart = $new->getfield('eventpart');
+%  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');
+%    }
 %  }
 %} 
 %
@@ -51,5 +87,3 @@
 %}
 %
 %
-
-