fiscalYearStart['M'], $config->fiscalYearStart['d'], $fiscalYear); $fiscalStartDate = date('Y-m-d', $mkTime); $fiscalEndDate = date('Y-m-d', strtotime($startDate . '+ 1 year')); $qParams = [ 1 => [$fiscalYear, 'String'], 2 => [$fiscalStartDate, 'String'], 3 => [$fiscalEndDate, 'String'], 4 => [$paidStatusID, 'Integer'], ]; $where = ''; if (!empty($params['financial_type_id'])) { $where = 'WHERE cft.id = %5'; $qParams[5] = [$params['financial_type_id'], 'Integer']; } $grantBudgetTableName = CRM_Grant_DAO_GrantBudget::getTableName(); $sql = "SELECT gs.id, cft.name, IFNULL(cgb.budget, 0) AS budget, SUM(IFNULL(cg.amount_granted, 0)) as total_amount_granted FROM civicrm_financial_type cft INNER JOIN " . GRANT_SCHOLARSHIP_CUSTOM_TABLE_NAME . " gs ON gs.entity_id = cft.id AND gs." . GRANT_SCHOLARSHIP_CUSTOM_FIELD . " = 1 LEFT JOIN " . $grantBudgetTableName . " cgb ON cgb.financial_type_id = cft.id AND cgb.fiscal_year = %1 LEFT JOIN civicrm_grant cg ON cg.financial_type_id = cft.id AND cg.status_id IN (%4) AND cg.decision_date >= %2 AND cg.decision_date < %3 {$where} GROUP BY cft.id ORDER BY cft.name"; $result = CRM_Core_DAO::executeQuery($sql, $qParams); while ($result->fetch()) { $grantBudget[$result->id] = [ 'id' => $result->id, 'name' => $result->name, 'budget' => CRM_Utils_Money::format($result->budget), 'total_amount_granted' => CRM_Utils_Money::format($result->total_amount_granted), 'balance_amount' => CRM_Utils_Money::format(($result->budget - $result->total_amount_granted)), ]; } return $grantBudget; } }