001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.kfs.sys.batch.dataaccess.impl; 017 018 import java.sql.Date; 019 import java.sql.PreparedStatement; 020 import java.sql.ResultSet; 021 import java.sql.SQLException; 022 import java.util.HashMap; 023 import java.util.Map; 024 025 import org.kuali.kfs.sys.KFSConstants; 026 import org.kuali.kfs.sys.batch.dataaccess.LedgerReferenceValuePreparedStatementCachingDao; 027 import org.kuali.kfs.sys.businessobject.OriginationCode; 028 import org.kuali.kfs.sys.businessobject.SystemOptions; 029 import org.kuali.kfs.sys.businessobject.UniversityDate; 030 031 public class LedgerReferenceValuePreparedStatementCachingDaoJdbc extends AbstractPreparedStatementCachingDaoJdbc implements LedgerReferenceValuePreparedStatementCachingDao { 032 static final Map<String,String> sql = new HashMap<String,String>(); 033 static { 034 sql.put(RETRIEVE_PREFIX + UniversityDate.class, "select univ_fiscal_yr, univ_fiscal_prd_cd from SH_UNIV_DATE_T where univ_dt = ?"); 035 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 = ?"); 036 sql.put(RETRIEVE_PREFIX + OriginationCode.class, "select ROW_ACTV_IND from FS_ORIGIN_CODE_T where fs_origin_cd = ?"); 037 } 038 039 @Override 040 protected Map<String, String> getSql() { 041 return sql; 042 } 043 044 public OriginationCode getOriginationCode(final String financialSystemOriginationCode) { 045 return new RetrievingJdbcWrapper<OriginationCode>() { 046 @Override 047 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 048 preparedStatement.setString(1, financialSystemOriginationCode); 049 } 050 @Override 051 protected OriginationCode extractResult(ResultSet resultSet) throws SQLException { 052 OriginationCode originationCode = new OriginationCode(); 053 originationCode.setFinancialSystemOriginationCode(financialSystemOriginationCode); 054 originationCode.setActive(KFSConstants.ParameterValues.YES.equals(resultSet.getString(1)) ? true : false); 055 return originationCode; 056 } 057 }.get(OriginationCode.class); 058 } 059 060 public SystemOptions getSystemOptions(final Integer fiscalYear) { 061 return new RetrievingJdbcWrapper<SystemOptions>() { 062 @Override 063 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 064 preparedStatement.setInt(1, fiscalYear); 065 } 066 @Override 067 protected SystemOptions extractResult(ResultSet resultSet) throws SQLException { 068 SystemOptions systemOptions = new SystemOptions(); 069 systemOptions.setUniversityFiscalYear(fiscalYear); 070 systemOptions.setActualFinancialBalanceTypeCd(resultSet.getString(1)); 071 systemOptions.setFinancialObjectTypeAssetsCd(resultSet.getString(2)); 072 systemOptions.setFinObjectTypeFundBalanceCd(resultSet.getString(3)); 073 systemOptions.setFinObjectTypeLiabilitiesCode(resultSet.getString(4)); 074 systemOptions.setCostShareEncumbranceBalanceTypeCd(resultSet.getString(12)); 075 systemOptions.setFinancialObjectTypeTransferExpenseCd(resultSet.getString(13)); 076 systemOptions.setExtrnlEncumFinBalanceTypCd(resultSet.getString(5)); 077 systemOptions.setIntrnlEncumFinBalanceTypCd(resultSet.getString(6)); 078 systemOptions.setPreencumbranceFinBalTypeCd(resultSet.getString(7)); 079 systemOptions.setFinObjTypeExpenditureexpCd(resultSet.getString(8)); 080 systemOptions.setFinObjTypeExpendNotExpCode(resultSet.getString(9)); 081 systemOptions.setFinObjTypeExpNotExpendCode(resultSet.getString(10)); 082 systemOptions.setBudgetCheckingBalanceTypeCd(resultSet.getString(11)); 083 return systemOptions; 084 } 085 }.get(SystemOptions.class); 086 } 087 088 public UniversityDate getUniversityDate(final Date date) { 089 return new RetrievingJdbcWrapper<UniversityDate>() { 090 @Override 091 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 092 preparedStatement.setDate(1, date); 093 } 094 @Override 095 protected UniversityDate extractResult(ResultSet resultSet) throws SQLException { 096 UniversityDate universityDate = new UniversityDate(); 097 universityDate.setUniversityDate(date); 098 universityDate.setUniversityFiscalYear(resultSet.getInt(1)); 099 universityDate.setUniversityFiscalAccountingPeriod(resultSet.getString(2)); 100 return universityDate; 101 } 102 }.get(UniversityDate.class); 103 } 104 }