my $dbh = dbh;
unless ($self->reasonnum) {
- my $result = $self->reason( $self->getfield('reason'),
- exists($options{ 'reason_type' })
- ? ('reason_type' => $options{ 'reason_type' })
- : (),
- );
- unless($result) {
- $dbh->rollback if $oldAutoCommit;
- return "failed to set reason for $me"; #: ". $dbh->errstr;
+ local $@;
+ if ( $self->get('reason') ) {
+ my $reason = FS::reason->new_or_existing(
+ reason => $self->get('reason'),
+ class => 'F',
+ type => 'Refund reason',
+ );
+ if ($@) {
+ return "failed to add refund reason: $@";
+ }
+ $self->set('reasonnum', $reason->get('reasonnum'));
+ $self->set('reason', '');
}
}
- $self->setfield('reason', '');
-
if ( $self->crednum ) {
my $cust_credit = qsearchs('cust_credit', { 'crednum' => $self->crednum } )
or do {
|| $self->ut_numbern('_date')
|| $self->ut_textn('paybatch')
|| $self->ut_enum('closed', [ '', 'Y' ])
+ || $self->ut_foreign_keyn('source_paynum', 'cust_pay', 'paynum')
;
return $error if $error;