[freeside-commits] branch FREESIDE_4_BRANCH updated. 744bf508495023922d88a53fcd07467e3e01c2f1

Christopher Burger burgerc at freeside.biz
Tue Jun 5 06:02:30 PDT 2018


The branch, FREESIDE_4_BRANCH has been updated
       via  744bf508495023922d88a53fcd07467e3e01c2f1 (commit)
       via  792172634b829220555f2e5aa2bb0c3e947b4cee (commit)
      from  b487b3c39e258cd3b8978bfa8e052ecc8af5c57d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 744bf508495023922d88a53fcd07467e3e01c2f1
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Tue Jun 5 08:50:17 2018 -0400

    RT# 77917 - fixed upgrade to work when all agents were selected.

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');

commit 792172634b829220555f2e5aa2bb0c3e947b4cee
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Mon Jun 4 20:10:15 2018 -0400

    RT# 77917 - Updated event option Agent to allow for selection of multiple agents.

diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm
index 751e1da3c..3e0412795 100644
--- a/FS/FS/Upgrade.pm
+++ b/FS/FS/Upgrade.pm
@@ -510,6 +510,9 @@ sub upgrade_data {
     #'compliance solutions' -> 'compliance_solutions'
     'tax_rate' => [],
     'tax_rate_location' => [],
+
+    #upgrade part_event_condition_option agentnum to a multiple hash value
+    'part_event_condition_option' =>[],
   ;
 
   \%hash;
diff --git a/FS/FS/part_event/Condition/agent.pm b/FS/FS/part_event/Condition/agent.pm
index bdd4e12de..917cf468b 100644
--- a/FS/FS/part_event/Condition/agent.pm
+++ b/FS/FS/part_event/Condition/agent.pm
@@ -13,7 +13,7 @@ sub description {
 
 sub option_fields {
   (
-    'agentnum'   => { label=>'Agent', type=>'select-agent', },
+    'agentnum'   => { label=>'Agent', type=>'select-agent', multiple => '1' },
   );
 }
 
@@ -22,16 +22,15 @@ sub condition {
 
   my $cust_main = $self->cust_main($object);
 
-  my $agentnum = $self->option('agentnum');
-
-  $cust_main->agentnum == $agentnum;
+  my $hashref = $self->option('agentnum') || {};
+  grep $hashref->{ $_->agentnum }, $cust_main->agent;
 
 }
 
 sub condition_sql {
   my( $class, $table, %opt ) = @_;
 
-  "cust_main.agentnum = " . $class->condition_sql_option_integer('agentnum', $opt{'driver_name'});
+  "cust_main.agentnum IN " . $class->condition_sql_option_option_integer('agentnum', $opt{'driver_name'});
 }
 
 1;
diff --git a/FS/FS/part_event_condition_option.pm b/FS/FS/part_event_condition_option.pm
index 3256dc0bd..15a6a5553 100644
--- a/FS/FS/part_event_condition_option.pm
+++ b/FS/FS/part_event_condition_option.pm
@@ -138,6 +138,30 @@ sub optionvalue {
   }
 }
 
+use FS::upgrade_journal;
+sub _upgrade_data { #class method
+  my ($class, %opts) = @_;
+
+  # migrate part_event_condition_option agentnum to part_event_condition_option_option agentnum
+  unless ( FS::upgrade_journal->is_done('agentnum_to_hash') ) {
+
+    foreach my $condition_option (qsearch('part_event_condition_option', { optionname => 'agentnum', })) {
+      my $optionvalue = $condition_option->get("optionvalue");
+      if ($optionvalue eq 'HASH' ) { next; }
+      else {
+        my $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');
+
+  }
+
+}
+
 =back
 
 =head1 SEE ALSO

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Upgrade.pm                     |  3 +++
 FS/FS/part_event/Condition/agent.pm  |  9 ++++-----
 FS/FS/part_event_condition_option.pm | 33 +++++++++++++++++++++++++++++++++
 3 files changed, 40 insertions(+), 5 deletions(-)




More information about the freeside-commits mailing list