static function _validateContributionToBatch(&$contributionIDs) { $contributionsAdded = array(); $contributionsAlreadyAdded = array(); $contributionsNotValid = array(); require_once "GiftAid/Utils/GiftAid.php"; require_once "CRM/Core/DAO/EntityBatch.php"; require_once "CRM/Contribute/BAO/Contribution.php"; foreach ($contributionIDs as $contributionID) { $batchContribution =& new CRM_Core_DAO_EntityBatch(); $batchContribution->entity_table = 'civicrm_contribution'; $batchContribution->entity_id = $contributionID; // check if the selected contribution id already in a batch // if not, increment $numContributionsAdded else keep the count of contributions that are already added if (!$batchContribution->find(true)) { // get contact_id, & contribution receive date from Contribution using contribution id $params = array('id' => $contributionID); CRM_Contribute_BAO_Contribution::retrieve($params, $defaults, $ids); // check if contribution is not valid for gift aid, increment $numContributionsNotValid if (GiftAid_Utils_GiftAid::isEligibleForGiftAid($defaults['contact_id'], $defaults['receive_date'], $contributionID)) { $contributionsAdded[] = $contributionID; } else { $contributionsNotValid[] = $contributionID; } } else { $contributionsAlreadyAdded[] = $contributionID; } } return array(count($contributionIDs), $contributionsAdded, $contributionsAlreadyAdded, $contributionsNotValid); }