CRM-10225 fix - New Price Set Error
authormonishdeb <monish.deb@webaccess.co.in>
Thu, 7 Nov 2013 13:26:42 +0000 (18:56 +0530)
committermonishdeb <monish.deb@webaccess.co.in>
Thu, 7 Nov 2013 13:26:42 +0000 (18:56 +0530)
http://issues.civicrm.org/jira/browse/CRM-10225

CRM/Price/Form/Set.php

index 32a29101264bd761ff735c9a3ad8eb69d2f10992..30d1fea66318b986f957a9bee68e53e413ed86e7 100644 (file)
@@ -134,46 +134,47 @@ class CRM_Price_Form_Set extends CRM_Core_Form {
 
     $config           = CRM_Core_Config::singleton();
     $showContribution = FALSE;
-    $components       = array('CiviEvent' => array('title' => ts('Event'),
-        'extend' => CRM_Core_Component::getComponentID('CiviEvent'),
-        'tables' => array(
-          'civicrm_event',
-          'civicrm_participant',
-        ),
-      ),
-      'CiviContribute' => array('title' => ts('Contribution'),
-        'extend' => CRM_Core_Component::getComponentID('CiviContribute'),
-        'tables' => array(
-          'civicrm_contribution',
-          'civicrm_contribution_page',
-        ),
-      ),
-      'CiviMember' => array('title' => ts('Membership'),
-        'extend' => CRM_Core_Component::getComponentID('CiviMember'),
-        'tables' => array(
-          'civicrm_membership',
-          'civicrm_contribution_page',
-        ),
-      ),
-    );
-    foreach ($components as $compName => $compValues) {
-      // take only enabled components.
-      if (!in_array($compName, $config->enableComponents)) {
-        continue;
-      }
-      $option = $this->createElement('checkbox', $compValues['extend'], NULL, $compValues['title']);
-
-      //if price set is used than freeze it.
-      if (!empty($priceSetUsedTables)) {
-        foreach ($compValues['tables'] as $table) {
+    $enabledComponents = CRM_Core_Component::getEnabledComponents();
 
-          if (in_array($table, $priceSetUsedTables)) {
-            $option->freeze();
-            break;
+    foreach ($enabledComponents as $name => $compObj) {
+      switch ($name) {
+        case 'CiviEvent':
+          $option = $this->createElement('checkbox', $compObj->componentID, NULL, ts('Event'));
+          if (!empty($priceSetUsedTables)) {
+            foreach (array('civicrm_event', 'civicrm_participant') as $table) {
+              if (in_array($table, $priceSetUsedTables)) {
+                $option->freeze();
+                break;
+              }
+            }
+          }
+          $extends[] = $option;
+          break;
+        case 'CiviContribute':
+          $option = $this->createElement('checkbox', $compObj->componentID, NULL, ts('Contribution'));
+          if (!empty($priceSetUsedTables)) {
+            foreach (array('civicrm_contribution', 'civicrm_contribution_page') as $table) {
+              if (in_array($table, $priceSetUsedTables)) {
+                $option->freeze();
+                break;
+              }
+            }
+          }
+          $extends[] = $option;
+          break;
+        case 'CiviMember':
+          $option = $this->createElement('checkbox', $compObj->componentID, NULL, ts('Membership'));
+          if (!empty($priceSetUsedTables)) {
+            foreach (array('civicrm_membership', 'civicrm_contribution_page') as $table) {
+              if (in_array($table, $priceSetUsedTables)) {
+                $option->freeze();
+                break;
+              }
+            }
           }
-        }
+          $extends[] = $option;
+          break;
       }
-      $extends[] = $option;
     }
 
     if (CRM_Utils_System::isNull($extends)) {