projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
separate tax exemption numbers for individual exemptions w/tax-cust_exempt-groups...
[freeside.git]
/
FS
/
FS
/
cust_pkg_reason.pm
diff --git
a/FS/FS/cust_pkg_reason.pm
b/FS/FS/cust_pkg_reason.pm
index
1ec5024
..
641605f
100644
(file)
--- a/
FS/FS/cust_pkg_reason.pm
+++ b/
FS/FS/cust_pkg_reason.pm
@@
-1,9
+1,12
@@
package FS::cust_pkg_reason;
use strict;
package FS::cust_pkg_reason;
use strict;
+use vars qw( $ignore_empty_action );
use base qw( FS::otaker_Mixin FS::Record );
use FS::Record qw( qsearch qsearchs );
use base qw( FS::otaker_Mixin FS::Record );
use FS::Record qw( qsearch qsearchs );
+$ignore_empty_action = 0;
+
=head1 NAME
FS::cust_pkg_reason - Object methods for cust_pkg_reason records
=head1 NAME
FS::cust_pkg_reason - Object methods for cust_pkg_reason records
@@
-93,11
+96,14
@@
and replace methods.
sub check {
my $self = shift;
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')
my $error =
$self->ut_numbern('num')
|| $self->ut_number('pkgnum')
|| $self->ut_number('reasonnum')
- || $self->ut_enum('action',
[ 'A', 'C', 'E', 'S' ]
)
+ || $self->ut_enum('action',
\@actions
)
|| $self->ut_alphan('otaker')
|| $self->ut_numbern('date')
;
|| $self->ut_alphan('otaker')
|| $self->ut_numbern('date')
;
@@
-135,13
+141,10
@@
sub reasontext {
use FS::h_cust_pkg;
use FS::h_cust_pkg_reason;
use FS::h_cust_pkg;
use FS::h_cust_pkg_reason;
-use FS::Schema qw(dbdef);
sub _upgrade_data { # class method
my ($class, %opts) = @_;
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' )";
my $action_replace =
" AND ( history_action = 'replace_old' OR history_action = 'replace_new' )";
@@
-208,7
+211,7
@@
sub _upgrade_data { # class method
#remove nullability if scalar(@migrated) - $count == 0 && ->column('action');
#seek expirations/adjourns without reason
#remove nullability if scalar(@migrated) - $count == 0 && ->column('action');
#seek expirations/adjourns without reason
- foreach my $field
qw( expire adjourn cancel susp
) {
+ foreach my $field
(qw( expire adjourn cancel susp )
) {
my $addl_from =
"LEFT JOIN h_cust_pkg ON ".
"(cust_pkg_reason.pkgnum = h_cust_pkg.pkgnum AND".
my $addl_from =
"LEFT JOIN h_cust_pkg ON ".
"(cust_pkg_reason.pkgnum = h_cust_pkg.pkgnum AND".
@@
-268,7
+271,7
@@
sub _upgrade_data { # class method
}
#seek cancels/suspends without reason, but with expire/adjourn reason
}
#seek cancels/suspends without reason, but with expire/adjourn reason
- foreach my $field
qw( cancel susp
) {
+ foreach my $field
(qw( cancel susp )
) {
my %precursor_map = ( 'cancel' => 'expire', 'susp' => 'adjourn' );
my $precursor = $precursor_map{$field};
my %precursor_map = ( 'cancel' => 'expire', 'susp' => 'adjourn' );
my $precursor = $precursor_map{$field};
@@
-306,6
+309,9
@@
sub _upgrade_data { # class method
}
}
}
}
+ #still can't fill in an action? don't abort the upgrade
+ local($ignore_empty_action) = 1;
+
$class->_upgrade_otaker(%opts);
}
$class->_upgrade_otaker(%opts);
}
@@
-313,8
+319,6
@@
sub _upgrade_data { # class method
=head1 BUGS
=head1 BUGS
-Here be termites. Don't use on wooden computers.
-
=head1 SEE ALSO
L<FS::Record>, schema.html from the base documentation.
=head1 SEE ALSO
L<FS::Record>, schema.html from the base documentation.