コード例 #1
0
 /**
  * @param array $queryParams
  *
  * @return bool
  */
 public static function isSoftCreditOptionEnabled($queryParams = array())
 {
     static $tempTableFilled = FALSE;
     if (!empty($queryParams)) {
         foreach (array_keys($queryParams) as $id) {
             if (empty($queryParams[$id][0])) {
                 continue;
             }
             if ($queryParams[$id][0] == 'contribution_or_softcredits') {
                 self::$_contribOrSoftCredit = $queryParams[$id][2];
             }
         }
     }
     if (in_array(self::$_contribOrSoftCredit, array("only_scredits", "both_related", "both"))) {
         if (!$tempTableFilled) {
             // build a temp table which is union of contributions and soft credits
             // note: group-by in first part ensures uniqueness in counts
             $tempQuery = "\n            CREATE TEMPORARY TABLE IF NOT EXISTS contribution_search_scredit_combined AS\n               SELECT con.id as id, con.contact_id, cso.id as filter_id, NULL as scredit_id\n                 FROM civicrm_contribution con\n            LEFT JOIN civicrm_contribution_soft cso ON con.id = cso.contribution_id\n             GROUP BY id, contact_id, scredit_id\n            UNION ALL\n               SELECT scredit.contribution_id as id, scredit.contact_id, scredit.id as filter_id, scredit.id as scredit_id\n                 FROM civicrm_contribution_soft as scredit";
             CRM_Core_DAO::executeQuery($tempQuery);
             $tempTableFilled = TRUE;
         }
         return TRUE;
     }
     return FALSE;
 }