generalise CRM_Event_Form_ManageEvent_Repeat::updateModeRecurringEntityForEvent and...
authorunknown <priyanka.karan26@gmail.com>
Wed, 15 Oct 2014 12:27:01 +0000 (13:27 +0100)
committerunknown <priyanka.karan26@gmail.com>
Wed, 15 Oct 2014 12:27:01 +0000 (13:27 +0100)
CRM/Core/BAO/RecurringEntity.php
CRM/Core/Page/AJAX/RecurringEntity.php
CRM/Event/Form/ManageEvent/Repeat.php

index 3f59a54f6c97d0ced257cf67a47134fd456109fe..3ed6f8025c71ba9f8df75d5727eb95c8ec43b7f2 100644 (file)
@@ -1023,4 +1023,36 @@ class CRM_Core_BAO_RecurringEntity extends CRM_Core_DAO_RecurringEntity {
     }
     return $dao;
   }
+  
+  /**
+  * Update mode column in civicrm_recurring_entity table for event related tabs
+  * 
+  * @params int $entityId event id
+  * @params string $linkedEntityTable Linked entity table name for this event
+  * @return array
+  */
+  public static function updateModeLinkedEntity($entityId, $linkedEntityTable, $mainEntityTable) {
+    $result = array();
+    if ( $entityId && $linkedEntityTable && $mainEntityTable ) {
+      if (CRM_Utils_Array::value($linkedEntityTable, self::$_tableDAOMapper)) {
+        $dao = self::$_tableDAOMapper[$linkedEntityTable];
+      }
+      else {
+        CRM_Core_Session::setStatus('Could not update mode for linked entities');
+        return;
+      }
+      $entityTable = $linkedEntityTable;
+      $params = array(
+                      'entity_id' => $entityId,
+                      'entity_table' => $mainEntityTable
+                    );
+      $defaults = array();
+      CRM_Core_DAO::commonRetrieve($dao, $params, $defaults);
+      if (CRM_Utils_Array::value('id', $defaults)) {
+        $result['entityId'] = $defaults['id'];
+        $result['entityTable'] = $entityTable;
+      }
+    } 
+    return $result;
+  } 
 }
index 2c608199f13dae6ef242756b7846dfc244926f2c..0ecf6ce7a6ff2afc757f5dbbf44764751c47c09b 100644 (file)
@@ -24,7 +24,7 @@ class CRM_Core_Page_AJAX_RecurringEntity {
 
       if (CRM_Utils_Array::value('linkedEntityTable', $_REQUEST)) {
         $result = array();
-        $result = CRM_Event_Form_ManageEvent_Repeat::updateModeRecurringEntityForEvent($entityId, $_REQUEST['linkedEntityTable']);
+        $result = CRM_Core_BAO_RecurringEntity::updateModeLinkedEntity($entityId, $_REQUEST['linkedEntityTable'], $entityTable);
       }
 
       $dao = new CRM_Core_DAO_RecurringEntity();
index e61bdfcfbc43386dff63760f8f826969d9c761be..2424ea24094ddac4d808cca426350e9180def953 100644 (file)
@@ -191,51 +191,6 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent {
     return $participantDetails;
   }
   
-  /**
-  * Update mode column in civicrm_recurring_entity table for event related tabs
-  * 
-  * @params int $entityId event id
-  * @params string $linkedEntityTable Linked entity table name for this event
-  * @return array
-  */
-  public static function updateModeRecurringEntityForEvent($entityId, $linkedEntityTable) {
-    $result = array();
-    if ( $entityId && $linkedEntityTable ) {
-      switch ($linkedEntityTable) {
-        case 'civicrm_tell_friend':
-          $dao = 'CRM_Friend_DAO_Friend';
-          $entityTable = 'civicrm_tell_friend';
-          break;
-
-        case 'civicrm_pcp_block':
-          $dao = 'CRM_PCP_DAO_PCPBlock';
-          $entityTable = 'civicrm_pcp_block';
-          break;
-
-        case 'civicrm_price_set_entity':
-          $dao = 'CRM_Price_DAO_PriceSetEntity';
-          $entityTable = 'civicrm_price_set_entity';
-          break;
-
-        case 'civicrm_uf_join':
-          $dao = 'CRM_Core_DAO_UFJoin';
-          $entityTable = 'civicrm_uf_join';
-          break;
-        }
-        $params = array(
-                        'entity_id' => $entityId,
-                        'entity_table' => 'civicrm_event'
-                      );
-        $defaults = array();
-        CRM_Core_DAO::commonRetrieve($dao, $params, $defaults);
-        if (CRM_Utils_Array::value('id', $defaults)) {
-          $result['entityId'] = $defaults['id'];
-          $result['entityTable'] = $entityTable;
-        }
-    } 
-    return $result;
-  } 
-  
   /**
    * This function checks if there was any registraion for related event ids,
    * and returns array of ids with no regsitrations