diff options
| author | ivan <ivan> | 2002-02-27 23:03:10 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2002-02-27 23:03:10 +0000 | 
| commit | caff66abc3e2ccd9a9c26d4770fe4f4136a2e610 (patch) | |
| tree | b38286a340228a72666ca15b5c12fab18e2f1de8 /FS | |
| parent | e78d63847de9fbcb78d22188a25b77b7678f1cee (diff) | |
bubble up billing event errors
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/cust_main.pm | 63 | 
1 files changed, 33 insertions, 30 deletions
| diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index ae6155a57..7c9bae3c3 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -1135,7 +1135,9 @@ sub collect {          grep { $_->seconds <= ( $invoice_time - $cust_bill->_date )                 && ! qsearchs( 'cust_bill_event', {                                  'invnum'    => $cust_bill->invnum, -                                'eventpart' => $_->eventpart       } ) +                                'eventpart' => $_->eventpart, +                                'status'    => 'done', +                                                                   } )               }            qsearch('part_bill_event', { 'payby'    => $self->payby,                                         'disabled' => '',           } ) @@ -1145,41 +1147,42 @@ sub collect {        my $cust_main = $self; #for callback        my $error = eval $part_bill_event->eventcode; +      my $status = ''; +      my $statustext = '';        if ( $@ ) { -        warn "fatal error running invoice event (". $part_bill_event->eventcode. -             "): $@"; +        $status = 'failed'; +        $statustext = $@; +      } elsif ( $error ) { +        $status = 'done'; +        $statustext = $error; +      } else { +        $status = 'done'        } +      #add cust_bill_event +      my $cust_bill_event = new FS::cust_bill_event { +        'invnum'     => $cust_bill->invnum, +        'eventpart'  => $part_bill_event->eventpart, +        '_date'      => $invoice_time, +        'status'     => $status, +        'statustext' => $statustext, +      }; +      $cust_bill_event->insert;        if ( $error ) { - -        warn "Error running invoice event (". $part_bill_event->eventcode. -             "): $error"; - -      } else { - -        #add cust_bill_event -        my $cust_bill_event = new FS::cust_bill_event { -          'invnum'    => $cust_bill->invnum, -          'eventpart' => $part_bill_event->eventpart, -          '_date'     => $invoice_time, -        }; -        $cust_bill_event->insert; -        if ( $error ) { -          #$dbh->rollback if $oldAutoCommit; -          #return "error: $error"; - -          # gah, even with transactions. -          $dbh->commit if $oldAutoCommit; #well. -          my $e = 'WARNING: Event run but database not updated - '. -                  'error inserting cust_bill_event, invnum #'. $cust_bill->invnum. -                  ', eventpart '. $part_bill_event->eventpart. -                  ": $error"; -          warn $e; -          return $e; -        } - +        #$dbh->rollback if $oldAutoCommit; +        #return "error: $error"; + +        # gah, even with transactions. +        $dbh->commit if $oldAutoCommit; #well. +        my $e = 'WARNING: Event run but database not updated - '. +                'error inserting cust_bill_event, invnum #'. $cust_bill->invnum. +                ', eventpart '. $part_bill_event->eventpart. +                ": $error"; +        warn $e; +        return $e;        } +      }    } | 
