Ejemplo n.º 1
0
 /**
  * On delete contribution record update associated pledge payment and pledge.
  *
  * @param int $contributionID  contribution id
  *
  * @access public
  * @static
  */
 static function resetPledgePayment($contributionID)
 {
     //get all status
     require_once 'CRM/Contribute/PseudoConstant.php';
     $allStatus = CRM_Contribute_PseudoConstant::contributionStatus(null, 'name');
     require_once 'CRM/Core/Transaction.php';
     $transaction = new CRM_Core_Transaction();
     $payment = new CRM_Pledge_DAO_Payment();
     $payment->contribution_id = $contributionID;
     if ($payment->find(true)) {
         $payment->contribution_id = 'null';
         $payment->status_id = array_search('Pending', $allStatus);
         $payment->scheduled_date = NULL;
         $payment->reminder_date = NULL;
         $payment->save();
         //update pledge status.
         $pledgeID = $payment->pledge_id;
         $pledgeStatusID = self::calculatePledgeStatus($pledgeID);
         CRM_Core_DAO::setFieldValue('CRM_Pledge_DAO_Pledge', $pledgeID, 'status_id', $pledgeStatusID);
         $payment->free();
     }
     $transaction->commit();
     return true;
 }