summaryrefslogtreecommitdiff
path: root/FS/FS/cust_pkg_reason.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-06-02 00:39:37 -0700
committerIvan Kohler <ivan@freeside.biz>2012-06-02 00:39:37 -0700
commiteed3084d82c4966bae1238011c02a17b284a2753 (patch)
treefd289fd048b0046cf27c03276e9a10d56438cc7d /FS/FS/cust_pkg_reason.pm
parentaa1210004d3249eb1c9616f748b97f2ce91de9ae (diff)
journal parts of cust_pkg_reason upgrade, RT#17629
Diffstat (limited to 'FS/FS/cust_pkg_reason.pm')
-rw-r--r--FS/FS/cust_pkg_reason.pm24
1 files changed, 20 insertions, 4 deletions
diff --git a/FS/FS/cust_pkg_reason.pm b/FS/FS/cust_pkg_reason.pm
index 641605f..c29a2f9 100644
--- a/FS/FS/cust_pkg_reason.pm
+++ b/FS/FS/cust_pkg_reason.pm
@@ -4,6 +4,7 @@ use strict;
use vars qw( $ignore_empty_action );
use base qw( FS::otaker_Mixin FS::Record );
use FS::Record qw( qsearch qsearchs );
+use FS::upgrade_journal;
$ignore_empty_action = 0;
@@ -209,6 +210,25 @@ sub _upgrade_data { # class method
}
#remove nullability if scalar(@migrated) - $count == 0 && ->column('action');
+
+ unless ( FS::upgrade_journal->is_done('cust_pkg_reason__missing_reason') ) {
+ $class->_upgrade_missing_reason(%opts);
+ FS::upgrade_journal->set_done('cust_pkg_reason__missing_reason');
+ }
+
+ #still can't fill in an action? don't abort the upgrade
+ local($ignore_empty_action) = 1;
+
+ $class->_upgrade_otaker(%opts);
+
+}
+
+sub _upgrade_missing_reason {
+ my ($class, %opts) = @_;
+
+ #false laziness w/above
+ my $action_replace =
+ " AND ( history_action = 'replace_old' OR history_action = 'replace_new' )";
#seek expirations/adjourns without reason
foreach my $field (qw( expire adjourn cancel susp )) {
@@ -309,10 +329,6 @@ 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