diff options
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/part_event_condition_option.pm | 17 | 
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 15a6a5553..f1d1b6a15 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');  | 
