static function isEligibleForGiftAid($contactID, $date = null, $contributionID = null)
 {
     $charity = null;
     if ($contributionID && CRM_Core_DAO::checkFieldExists('civicrm_value_gift_aid_submission', 'charity')) {
         $charity = CRM_Core_DAO::singleValueQuery('SELECT charity FROM civicrm_value_gift_aid_submission WHERE entity_id = %1', array(1 => array($contributionID, 'Integer')));
     }
     $declaration = self::getDeclaration($contactID, $date, $charity);
     if (isset($declaration['eligible_for_gift_aid'])) {
         $isEligible = $declaration['eligible_for_gift_aid'] == 1;
     }
     // hook can alter the eligibility if needed
     CRM_Civigiftaid_Utils_Hook::giftAidEligible($isEligible, $contactID, $date, $contributionID);
     return $isEligible;
 }