sub check {
my $self = shift;
+ $self->otaker(getotaker) unless ($self->otaker);
+
my $error =
$self->ut_numbern('crednum')
|| $self->ut_number('custnum')
|| $self->ut_numbern('_date')
|| $self->ut_money('amount')
+ || $self->ut_alpha('otaker')
|| $self->ut_textn('reason')
|| $self->ut_foreign_key('reasonnum', 'reason', 'reasonnum')
|| $self->ut_enum('closed', [ '', 'Y' ])
$self->_date(time) unless $self->_date;
- $self->otaker(getotaker);
-
$self->SUPER::check;
}
if (!$reason && $typenum) {
$reason = new FS::reason( { 'reason_type' => $typenum,
'reason' => $value,
+ 'disabled' => 'Y',
} );
$reason->insert and $reason = undef;
}
#
sub _upgrade_data { # class method
- my ($self, %opts) = @_;
+ my ($class, %opts) = @_;
- warn "$me upgrading $self\n" if $DEBUG;
+ warn "$me upgrading $class\n" if $DEBUG;
- if (defined dbdef->table($self->table)->column('reason')) {
+ if (defined dbdef->table($class->table)->column('reason')) {
warn "$me Checking for unmigrated reasons\n" if $DEBUG;
- my @cust_credits = qsearch({ 'table' => $self->table,
- 'hashref' => {},
- 'extrasql' => 'WHERE reason IS NOT NULL',
+ my @cust_credits = qsearch({ 'table' => $class->table,
+ 'hashref' => {},
+ 'extra_sql' => 'WHERE reason IS NOT NULL',
});
if (scalar(grep { $_->getfield('reason') =~ /\S/ } @cust_credits)) {
unless ($reason_type) {
$reason_type = new FS::reason_type( $hashref );
my $error = $reason_type->insert();
- die "$self had error inserting FS::reason_type into database: $error\n"
+ die "$class had error inserting FS::reason_type into database: $error\n"
if $error;
}
};
my $noreason = qsearchs( 'reason', $hashref );
unless ($noreason) {
+ $hashref->{'disabled'} = 'Y';
$noreason = new FS::reason( $hashref );
my $error = $noreason->insert();
die "can't insert legacy reason '(none)' into database: $error\n"
$cust_credit->setfield('reason', '');
my $error = $cust_credit->replace;
- warn "*** WARNING: error replacing reason in $self ".
- $self->crednum. ": $error ***\n"
+ warn "*** WARNING: error replacing reason in $class ".
+ $cust_credit->crednum. ": $error ***\n"
if $error;
}
}
unless ($reason_type) {
$reason_type = new FS::reason_type( $hashref );
my $error = $reason_type->insert();
- die "$self had error inserting FS::reason_type into database: $error\n"
+ die "$class had error inserting FS::reason_type into database: $error\n"
if $error;
}
- # or clause for 1.7.x
- $conf->set($_, $reason_type->typenum) or die "failed setting config";
+ $conf->set($_, $reason_type->typenum);
}
}
unless ($reason_type) {
$reason_type = new FS::reason_type( $hashref );
my $error = $reason_type->insert();
- die "$self had error inserting FS::reason_type into database: $error\n"
+ die "$class had error inserting FS::reason_type into database: $error\n"
if $error;
}