package FS::cust_pkg_reason;
use strict;
-use vars qw( @ISA );
+use vars qw( $ignore_empty_action );
+use base qw( FS::otaker_Mixin FS::Record );
use FS::Record qw( qsearch qsearchs );
-@ISA = qw(FS::Record);
+$ignore_empty_action = 0;
=head1 NAME
=over 4
-=item num - primary key
+=item num
-=item pkgnum -
+primary key
-=item reasonnum -
+=item pkgnum
-=item otaker -
+=item reasonnum
-=item date -
+=item usernum
+=item date
=back
sub check {
my $self = shift;
+ my @actions = ( 'A', 'C', 'E', 'S' );
+ push @actions, '' if $ignore_empty_action;
+
my $error =
$self->ut_numbern('num')
|| $self->ut_number('pkgnum')
|| $self->ut_number('reasonnum')
- || $self->ut_enum('action', [ 'A', 'C', 'E', 'S' ])
- || $self->ut_text('otaker')
+ || $self->ut_enum('action', \@actions)
+ || $self->ut_alphan('otaker')
|| $self->ut_numbern('date')
;
return $error if $error;
use FS::h_cust_pkg;
use FS::h_cust_pkg_reason;
-use FS::Schema qw(dbdef);
sub _upgrade_data { # class method
my ($class, %opts) = @_;
- return '' unless dbdef->table('cust_pkg_reason')->column('action');
-
my $action_replace =
" AND ( history_action = 'replace_old' OR history_action = 'replace_new' )";
}
}
- '';
+ #still can't fill in an action? don't abort the upgrade
+ local($ignore_empty_action) = 1;
+ $class->_upgrade_otaker(%opts);
}
=back
=head1 BUGS
-Here be termites. Don't use on wooden computers.
-
=head1 SEE ALSO
L<FS::Record>, schema.html from the base documentation.