/** * Will get a the set of contributions of a given contact * * caution: will only the contributions of the last year * * @return an array with contributions */ public function getPotentialContributionsForContact($contact_id, CRM_Banking_Matcher_Context $context) { $config = $this->_plugin_config; // check in cache $cache_key = "_contributions_{$contact_id}_{$range_back}_{$config->received_date_check}"; $contributions = $context->getCachedEntry($cache_key); if ($contributions != NULL) { return $contributions; } $contributions = array(); if ($config->received_date_check) { $range_back = (int) $config->received_range_days; $date_restriction = " AND receive_date > (NOW() - INTERVAL {$range_back} DAY)"; } else { $date_restriction = ""; } $sql = "SELECT * FROM civicrm_contribution WHERE contact_id={$contact_id} AND is_test = 0 {$date_restriction};"; $contribution = CRM_Contribute_DAO_Contribution::executeQuery($sql); while ($contribution->fetch()) { array_push($contributions, $contribution->toArray()); } // cache result and return $context->setCachedEntry($cache_key, $contributions); return $contributions; }