summaryrefslogtreecommitdiff
path: root/FS/FS/part_event_condition_option.pm
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2018-06-05 08:50:17 -0400
committerChristopher Burger <burgerc@freeside.biz>2018-06-05 08:50:17 -0400
commit17a3178440ad657665657896fa6ae6d94a8d4e61 (patch)
tree893ddb5b392532391fffe90da69dad4d115c8ca7 /FS/FS/part_event_condition_option.pm
parente928101f860813b7485e79ea549e736f69c50948 (diff)
RT# 77917 - fixed upgrade to work when all agents were selected.
Diffstat (limited to 'FS/FS/part_event_condition_option.pm')
-rw-r--r--FS/FS/part_event_condition_option.pm17
1 files changed, 13 insertions, 4 deletions
diff --git a/FS/FS/part_event_condition_option.pm b/FS/FS/part_event_condition_option.pm
index 15a6a55..f1d1b6a 100644
--- a/FS/FS/part_event_condition_option.pm
+++ b/FS/FS/part_event_condition_option.pm
@@ -146,14 +146,23 @@ sub _upgrade_data { #class method
unless ( FS::upgrade_journal->is_done('agentnum_to_hash') ) {
foreach my $condition_option (qsearch('part_event_condition_option', { optionname => 'agentnum', })) {
+ my %options;
my $optionvalue = $condition_option->get("optionvalue");
if ($optionvalue eq 'HASH' ) { next; }
+ elsif ($optionvalue eq '') {
+ foreach my $agent (qsearch('agent', {})) {
+ $options{$agent->agentnum} = '1';
+ }
+
+ }
else {
- my $options = {"$optionvalue" => '1',};
- $condition_option->optionvalue(ref($options));
- my $error = $condition_option->replace($options);
- die $error if $error;
+ $options{$optionvalue} = '1';
}
+
+ $condition_option->optionvalue(ref(\%options));
+ my $error = $condition_option->replace(\%options);
+ die $error if $error;
+
}
FS::upgrade_journal->set_done('agentnum_to_hash');