/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.sys.batch.dataaccess.impl; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import org.kuali.kfs.sys.KFSConstants; import org.kuali.kfs.sys.batch.dataaccess.LedgerReferenceValuePreparedStatementCachingDao; import org.kuali.kfs.sys.businessobject.OriginationCode; import org.kuali.kfs.sys.businessobject.SystemOptions; import org.kuali.kfs.sys.businessobject.UniversityDate; public class LedgerReferenceValuePreparedStatementCachingDaoJdbc extends AbstractPreparedStatementCachingDaoJdbc implements LedgerReferenceValuePreparedStatementCachingDao { static final Map<String,String> sql = new HashMap<String,String>(); static { sql.put(RETRIEVE_PREFIX + UniversityDate.class, "select univ_fiscal_yr, univ_fiscal_prd_cd from SH_UNIV_DATE_T where univ_dt = ?"); sql.put(RETRIEVE_PREFIX + SystemOptions.class, "select act_fin_bal_typ_cd, fobj_typ_asset_cd, fobj_typ_fndbal_cd, fobj_typ_lblty_cd, ext_enc_fbaltyp_cd, int_enc_fbaltyp_cd, pre_enc_fbaltyp_cd, fobjtp_xpnd_exp_cd, fobjtp_xpndnexp_cd, fobjtp_expnxpnd_cd, bdgt_chk_baltyp_cd, CSTSHR_ENCUM_FIN_BAL_TYP_CD, FIN_OBJECT_TYP_TRNFR_EXP_CD from FS_OPTION_T where univ_fiscal_yr = ?"); sql.put(RETRIEVE_PREFIX + OriginationCode.class, "select ROW_ACTV_IND from FS_ORIGIN_CODE_T where fs_origin_cd = ?"); } @Override protected Map<String, String> getSql() { return sql; } public OriginationCode getOriginationCode(final String financialSystemOriginationCode) { return new RetrievingJdbcWrapper<OriginationCode>() { @Override protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { preparedStatement.setString(1, financialSystemOriginationCode); } @Override protected OriginationCode extractResult(ResultSet resultSet) throws SQLException { OriginationCode originationCode = new OriginationCode(); originationCode.setFinancialSystemOriginationCode(financialSystemOriginationCode); originationCode.setActive(KFSConstants.ParameterValues.YES.equals(resultSet.getString(1)) ? true : false); return originationCode; } }.get(OriginationCode.class); } public SystemOptions getSystemOptions(final Integer fiscalYear) { return new RetrievingJdbcWrapper<SystemOptions>() { @Override protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { preparedStatement.setInt(1, fiscalYear); } @Override protected SystemOptions extractResult(ResultSet resultSet) throws SQLException { SystemOptions systemOptions = new SystemOptions(); systemOptions.setUniversityFiscalYear(fiscalYear); systemOptions.setActualFinancialBalanceTypeCd(resultSet.getString(1)); systemOptions.setFinancialObjectTypeAssetsCd(resultSet.getString(2)); systemOptions.setFinObjectTypeFundBalanceCd(resultSet.getString(3)); systemOptions.setFinObjectTypeLiabilitiesCode(resultSet.getString(4)); systemOptions.setCostShareEncumbranceBalanceTypeCd(resultSet.getString(12)); systemOptions.setFinancialObjectTypeTransferExpenseCd(resultSet.getString(13)); systemOptions.setExtrnlEncumFinBalanceTypCd(resultSet.getString(5)); systemOptions.setIntrnlEncumFinBalanceTypCd(resultSet.getString(6)); systemOptions.setPreencumbranceFinBalTypeCd(resultSet.getString(7)); systemOptions.setFinObjTypeExpenditureexpCd(resultSet.getString(8)); systemOptions.setFinObjTypeExpendNotExpCode(resultSet.getString(9)); systemOptions.setFinObjTypeExpNotExpendCode(resultSet.getString(10)); systemOptions.setBudgetCheckingBalanceTypeCd(resultSet.getString(11)); return systemOptions; } }.get(SystemOptions.class); } public UniversityDate getUniversityDate(final Date date) { return new RetrievingJdbcWrapper<UniversityDate>() { @Override protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { preparedStatement.setDate(1, date); } @Override protected UniversityDate extractResult(ResultSet resultSet) throws SQLException { UniversityDate universityDate = new UniversityDate(); universityDate.setUniversityDate(date); universityDate.setUniversityFiscalYear(resultSet.getInt(1)); universityDate.setUniversityFiscalAccountingPeriod(resultSet.getString(2)); return universityDate; } }.get(UniversityDate.class); } }