/** * This function check contribution is valid for giftaid or not: * 1 - if contribution_id already inserted in batch_contribution * 2 - if contributions are not valid for gift aid * * @param $contributionIDs * * @return array */ public static function validateContributionToBatch(&$contributionIDs) { $contributionsAdded = array(); $contributionsAlreadyAdded = array(); $contributionsNotValid = array(); require_once "CRM/Civigiftaid/Utils/GiftAid.php"; //require_once "CRM/Core/DAO/EntityBatch.php"; require_once "CRM/Batch/DAO/EntityBatch.php"; require_once "CRM/Contribute/BAO/Contribution.php"; foreach ($contributionIDs as $contributionID) { $batchContribution =& new CRM_Batch_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 (CRM_Civigiftaid_Utils_GiftAid::isEligibleForGiftAid($defaults['contact_id'], $defaults['receive_date'], $contributionID) and $defaults['contribution_status_id'] == 1) { $contributionsAdded[] = $contributionID; } else { $contributionsNotValid[] = $contributionID; } } else { $contributionsAlreadyAdded[] = $contributionID; } } return array(count($contributionIDs), $contributionsAdded, $contributionsAlreadyAdded, $contributionsNotValid); }