/**
  * On delete contribution record update associated pledge payment and pledge.
  *
  * @param int $contributionID
  *   Contribution id.
  *
  * @return bool
  */
 public static function resetPledgePayment($contributionID)
 {
     // get all status
     $allStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name');
     $transaction = new CRM_Core_Transaction();
     $payment = new CRM_Pledge_DAO_PledgePayment();
     $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->scheduled_amount = $payment->actual_amount;
         $payment->actual_amount = '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;
 }