Merge pull request #9124 from mlutfy/master-crm17991
[civicrm-core.git] / CRM / Event / BAO / Participant.php
index bcf797f97e31e5256ff50d65635d1cd8a9de7cd5..b2a608f4664a92d1c42d72f3db0e0c6d8c3342b5 100644 (file)
@@ -870,6 +870,11 @@ WHERE  civicrm_participant.id = {$participantId}
    * @return \CRM_Event_DAO_Participant
    */
   public static function deleteParticipant($id) {
+    $participant = new CRM_Event_DAO_Participant();
+    $participant->id = $id;
+    if (!$participant->find()) {
+      return FALSE;
+    }
     CRM_Utils_Hook::pre('delete', 'Participant', $id, CRM_Core_DAO::$_nullArray);
 
     $transaction = new CRM_Core_Transaction();
@@ -902,8 +907,6 @@ WHERE  civicrm_participant.id = {$participantId}
       CRM_Core_BAO_Note::del($noteId, FALSE);
     }
 
-    $participant = new CRM_Event_DAO_Participant();
-    $participant->id = $id;
     $participant->delete();
 
     $transaction->commit();
@@ -1926,14 +1929,12 @@ WHERE (li.entity_table = 'civicrm_participant' AND li.entity_id = {$participantI
 ";
       CRM_Core_DAO::executeQuery($updateLineItem);
 
-      $fiColumns = "fi.contact_id, fi.description, fi.amount, fi.currency,
-        fi.financial_account_id, fi.status_id, fi.entity_table, fi.entity_id";
       // gathering necessary info to record negative (deselected) financial_item
       $updateFinancialItem = "
-  SELECT {$fiColumns}, SUM(fi.amount) as differenceAmt, price_field_value_id, financial_type_id, tax_amount
+  SELECT fi.*, SUM(fi.amount) as differenceAmt, price_field_value_id, financial_type_id, tax_amount
     FROM civicrm_financial_item fi LEFT JOIN civicrm_line_item li ON (li.id = fi.entity_id AND fi.entity_table = 'civicrm_line_item')
 WHERE (li.entity_table = 'civicrm_participant' AND li.entity_id = {$participantId})
-GROUP BY li.entity_table, li.entity_id, price_field_value_id, fi.id, {$fiColumns}
+GROUP BY li.entity_table, li.entity_id, price_field_value_id, fi.id
 ";
       $updateFinancialItemInfoDAO = CRM_Core_DAO::executeQuery($updateFinancialItem);
       $trxn = CRM_Core_BAO_FinancialTrxn::getFinancialTrxnId($contributionId, 'DESC', TRUE);
@@ -1945,7 +1946,9 @@ GROUP BY li.entity_table, li.entity_id, price_field_value_id, fi.id, {$fiColumns
       while ($updateFinancialItemInfoDAO->fetch()) {
         $updateFinancialItemInfoValues = (array) $updateFinancialItemInfoDAO;
         $updateFinancialItemInfoValues['transaction_date'] = date('YmdHis');
-
+        // the below params are not needed
+        unset($updateFinancialItemInfoValues['id']);
+        unset($updateFinancialItemInfoValues['created_date']);
         // if not submitted and difference is not 0 make it negative
         if (!in_array($updateFinancialItemInfoValues['price_field_value_id'], $submittedFieldValueIds) && $updateFinancialItemInfoValues['differenceAmt'] != 0) {
           // INSERT negative financial_items