X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_credit.pm;h=938686feafb150cfd2cc6d16815541e403438cb0;hb=b91858c22eae141b31fe0024ee2a04bdeae2f3c5;hp=4c94e15788a2027d4e4067f67edfc8c71ce19dd1;hpb=e8a09e945986a32f9b7d0a5d546142ada91654ca;p=freeside.git diff --git a/FS/FS/cust_credit.pm b/FS/FS/cust_credit.pm index 4c94e1578..938686fea 100644 --- a/FS/FS/cust_credit.pm +++ b/FS/FS/cust_credit.pm @@ -262,11 +262,14 @@ methods. 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' ]) @@ -280,8 +283,6 @@ sub check { $self->_date(time) unless $self->_date; - $self->otaker(getotaker); - $self->SUPER::check; } @@ -388,6 +389,7 @@ sub reason { if (!$reason && $typenum) { $reason = new FS::reason( { 'reason_type' => $typenum, 'reason' => $value, + 'disabled' => 'Y', } ); $reason->insert and $reason = undef; } @@ -410,17 +412,17 @@ sub reason { # 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)) { @@ -430,7 +432,7 @@ sub _upgrade_data { # class method 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; } @@ -439,6 +441,7 @@ sub _upgrade_data { # class method }; 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" @@ -458,7 +461,8 @@ sub _upgrade_data { # class method $cust_credit->setfield('reason', ''); my $error = $cust_credit->replace; - die "error inserting $self into database: $error\n" + warn "*** WARNING: error replacing reason in $class ". + $cust_credit->crednum. ": $error ***\n" if $error; } } @@ -474,11 +478,10 @@ sub _upgrade_data { # class method 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); } } @@ -489,7 +492,7 @@ sub _upgrade_data { # class method 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; }