/**
  * Add default value of certain params, if not provided.
  *
  * @param $params
  */
 private static function addDefaults(&$params)
 {
     if (!isset($params['financial_types_enabled'])) {
         $params['financial_types_enabled'] = CRM_Civigiftaid_Form_Admin::getFinancialTypesEnabled();
     }
     if (!isset($params['globally_enabled'])) {
         $params['globally_enabled'] = CRM_Civigiftaid_Form_Admin::isGloballyEnabled();
     }
 }
 /**
  * @param       $contributionIdStr
  * @param array $result
  *
  * @return mixed
  */
 private static function addLineItemDetails($contributionIdStr, array &$result)
 {
     $query = "\n      SELECT c.id, i.entity_table, i.label, i.line_total, i.qty, c.currency, t.name\n      FROM civicrm_contribution c\n      LEFT JOIN civicrm_line_item i\n      ON c.id = i.contribution_id\n      LEFT JOIN civicrm_financial_type t\n      ON i.financial_type_id = t.id\n      WHERE c.id IN ({$contributionIdStr})";
     if (!CRM_Civigiftaid_Form_Admin::isGloballyEnabled()) {
         $enabledTypes = CRM_Civigiftaid_Form_Admin::getFinancialTypesEnabled();
         $enabledTypesStr = implode(', ', $enabledTypes);
         // if no financial types are selected, don't return anything from query
         $query .= $enabledTypesStr ? " AND i.financial_type_id IN ({$enabledTypesStr})" : " AND 0";
     }
     $dao = CRM_Core_DAO::executeQuery($query);
     while ($dao->fetch()) {
         if (isset($result[$dao->id])) {
             $item = static::getLineItemName($dao->entity_table);
             $lineItem = array('item' => $item, 'description' => $dao->label, 'financial_type' => $dao->name, 'amount' => CRM_Utils_Money::format($dao->line_total, $dao->currency), 'qty' => (int) $dao->qty);
             $result[$dao->id]['line_items'][] = $lineItem;
         }
     }
 }