CRM-17182 -- fix when contribution id is empty
authorjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Fri, 4 Mar 2016 09:52:06 +0000 (15:22 +0530)
committerjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Fri, 4 Mar 2016 09:52:06 +0000 (15:22 +0530)
CRM/Price/BAO/PriceFieldValue.php

index 85bcc5b15c70fb26e6dd016dd5a02685b217d4e6..840217ab55f4990406e0adddccd3c19e7f03d6ce 100644 (file)
@@ -317,13 +317,18 @@ WHERE cpse.id IS NOT NULL {$where}";
         1 => array(CRM_Core_DAO::VALUE_SEPARATOR . $prevLabel . ' -', 'String'),
         2 => array(CRM_Core_DAO::VALUE_SEPARATOR . $newLabel . ' -', 'String'),
       );
+      $participantIds = array();
       if (!empty($lineItem->contribution_id)) {
         CRM_Core_DAO::executeQuery("UPDATE `civicrm_contribution` SET `amount_level` = REPLACE(amount_level, %1, %2) WHERE id = {$lineItem->contribution_id}", $params);
         $participantIds = CRM_Event_BAO_Participant::getParticipantIds($lineItem->contribution_id);
-        foreach ($participantIds as $key => $id) {
-          if (!empty($id)) {
-            CRM_Core_DAO::executeQuery("UPDATE `civicrm_participant` SET `fee_level` = REPLACE(fee_level, %1, %2) WHERE id = {$id}", $params);
-          }
+      }
+      // if contribution is not attached to the participant.
+      if (empty($participantIds) && $lineItem->entity_table == 'civicrm_participant') {
+        $participantIds[] = $lineItem->entity_id;
+      }
+      foreach ($participantIds as $key => $id) {
+        if (!empty($id)) {
+          CRM_Core_DAO::executeQuery("UPDATE `civicrm_participant` SET `fee_level` = REPLACE(fee_level, %1, %2) WHERE id = {$id}", $params);
         }
       }
     }