projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add latitude/longitude to prospects, customers and package locations, RT#15539
[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
bb0542b
..
641605f
100644
(file)
--- a/
FS/FS/cust_pkg_reason.pm
+++ b/
FS/FS/cust_pkg_reason.pm
@@
-1,10
+1,11
@@
package FS::cust_pkg_reason;
use strict;
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 );
use FS::Record qw( qsearch qsearchs );
-
@ISA = qw(FS::Record)
;
+
$ignore_empty_action = 0
;
=head1 NAME
=head1 NAME
@@
-34,16
+35,17
@@
currently supported:
=over 4
=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
=back
@@
-94,12
+96,15
@@
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_
text
('otaker')
+ || $self->ut_enum('action',
\@actions
)
+ || $self->ut_
alphan
('otaker')
|| $self->ut_numbern('date')
;
return $error if $error;
|| $self->ut_numbern('date')
;
return $error if $error;
@@
-136,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' )";
@@
-209,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".
@@
-269,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};
@@
-307,16
+309,16
@@
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);
}
=back
=head1 BUGS
}
=back
=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.