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.gl.batch.dataaccess.impl; 017 018 import java.sql.PreparedStatement; 019 import java.sql.ResultSet; 020 import java.sql.SQLException; 021 import java.util.HashMap; 022 import java.util.Map; 023 024 import org.apache.commons.lang.StringUtils; 025 import org.kuali.kfs.gl.GeneralLedgerConstants; 026 import org.kuali.kfs.gl.batch.dataaccess.LedgerPreparedStatementCachingDao; 027 import org.kuali.kfs.gl.businessobject.AccountBalance; 028 import org.kuali.kfs.gl.businessobject.Balance; 029 import org.kuali.kfs.gl.businessobject.Encumbrance; 030 import org.kuali.kfs.gl.businessobject.Entry; 031 import org.kuali.kfs.gl.businessobject.ExpenditureTransaction; 032 import org.kuali.kfs.gl.businessobject.Reversal; 033 import org.kuali.kfs.gl.businessobject.SufficientFundBalances; 034 import org.kuali.kfs.gl.businessobject.Transaction; 035 import org.kuali.kfs.sys.batch.dataaccess.impl.AbstractPreparedStatementCachingDaoJdbc; 036 import org.kuali.rice.kns.util.KualiDecimal; 037 038 public class LedgerPreparedStatementCachingDaoJdbc extends AbstractPreparedStatementCachingDaoJdbc implements LedgerPreparedStatementCachingDao { 039 static final Map<String,String> sql = new HashMap<String,String>(); 040 static { 041 sql.put(RETRIEVE_PREFIX + Integer.class, "select max(trn_entr_seq_nbr) from GL_ENTRY_T where univ_fiscal_yr = ? and fin_coa_cd = ? and account_nbr = ? and sub_acct_nbr = ? and fin_object_cd = ? and fin_sub_obj_cd = ? and fin_balance_typ_cd = ? and fin_obj_typ_cd = ? and univ_fiscal_prd_cd = ? and fdoc_typ_cd = ? and fs_origin_cd = ? and fdoc_nbr = ?"); 042 sql.put(RETRIEVE_PREFIX + Balance.class, "select ACLN_ANNL_BAL_AMT, FIN_BEG_BAL_LN_AMT, CONTR_GR_BB_AC_AMT, MO1_ACCT_LN_AMT, MO2_ACCT_LN_AMT, MO3_ACCT_LN_AMT, MO4_ACCT_LN_AMT, MO5_ACCT_LN_AMT, MO6_ACCT_LN_AMT, MO7_ACCT_LN_AMT, MO8_ACCT_LN_AMT, MO9_ACCT_LN_AMT, MO10_ACCT_LN_AMT, MO11_ACCT_LN_AMT, MO12_ACCT_LN_AMT, MO13_ACCT_LN_AMT from GL_BALANCE_T where UNIV_FISCAL_YR = ? and FIN_COA_CD = ? and ACCOUNT_NBR = ? and SUB_ACCT_NBR = ? and FIN_OBJECT_CD = ? and FIN_SUB_OBJ_CD = ? and FIN_BALANCE_TYP_CD = ? and FIN_OBJ_TYP_CD = ?"); 043 sql.put(INSERT_PREFIX + Balance.class, "insert into GL_BALANCE_T (UNIV_FISCAL_YR,FIN_COA_CD,ACCOUNT_NBR,SUB_ACCT_NBR,FIN_OBJECT_CD,FIN_SUB_OBJ_CD,FIN_BALANCE_TYP_CD,FIN_OBJ_TYP_CD,ACLN_ANNL_BAL_AMT,FIN_BEG_BAL_LN_AMT,CONTR_GR_BB_AC_AMT,MO1_ACCT_LN_AMT,MO2_ACCT_LN_AMT,MO3_ACCT_LN_AMT,MO4_ACCT_LN_AMT,MO5_ACCT_LN_AMT,MO6_ACCT_LN_AMT,MO7_ACCT_LN_AMT,MO8_ACCT_LN_AMT,MO9_ACCT_LN_AMT,MO10_ACCT_LN_AMT,MO11_ACCT_LN_AMT,MO12_ACCT_LN_AMT,MO13_ACCT_LN_AMT,TIMESTAMP)values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); 044 sql.put(UPDATE_PREFIX + Balance.class, "update GL_BALANCE_T set ACLN_ANNL_BAL_AMT = ?, FIN_BEG_BAL_LN_AMT = ?, CONTR_GR_BB_AC_AMT = ?, MO1_ACCT_LN_AMT = ?, MO2_ACCT_LN_AMT = ?, MO3_ACCT_LN_AMT = ?, MO4_ACCT_LN_AMT = ?, MO5_ACCT_LN_AMT = ?, MO6_ACCT_LN_AMT = ?, MO7_ACCT_LN_AMT = ?, MO8_ACCT_LN_AMT = ?, MO9_ACCT_LN_AMT = ?, MO10_ACCT_LN_AMT = ?, MO11_ACCT_LN_AMT = ?, MO12_ACCT_LN_AMT = ?, MO13_ACCT_LN_AMT = ?, TIMESTAMP = ? where UNIV_FISCAL_YR = ? and FIN_COA_CD = ? and ACCOUNT_NBR = ? and SUB_ACCT_NBR = ? and FIN_OBJECT_CD = ? and FIN_SUB_OBJ_CD = ? and FIN_BALANCE_TYP_CD = ? and FIN_OBJ_TYP_CD = ?"); 045 sql.put(RETRIEVE_PREFIX + Encumbrance.class, "select TRN_ENCUM_DESC, TRN_ENCUM_DT, ACLN_ENCUM_AMT, ACLN_ENCUM_CLS_AMT, ACLN_ENCUM_PRG_CD from GL_ENCUMBRANCE_T where univ_fiscal_yr = ? and fin_coa_cd = ? and account_nbr = ? and sub_acct_nbr = ? and fin_object_cd = ? and fin_sub_obj_cd = ? and fin_balance_typ_cd = ? and fdoc_typ_cd = ? and fs_origin_cd = ? and fdoc_nbr = ?"); 046 sql.put(INSERT_PREFIX + Encumbrance.class, "insert into GL_ENCUMBRANCE_T (UNIV_FISCAL_YR, FIN_COA_CD, ACCOUNT_NBR, SUB_ACCT_NBR, FIN_OBJECT_CD, FIN_SUB_OBJ_CD, FIN_BALANCE_TYP_CD, FDOC_TYP_CD, FS_ORIGIN_CD, FDOC_NBR, TRN_ENCUM_DESC, TRN_ENCUM_DT, ACLN_ENCUM_AMT, ACLN_ENCUM_CLS_AMT, ACLN_ENCUM_PRG_CD, TIMESTAMP) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); 047 sql.put(UPDATE_PREFIX + Encumbrance.class, "update GL_ENCUMBRANCE_T set TRN_ENCUM_DESC = ?, TRN_ENCUM_DT = ?, ACLN_ENCUM_AMT = ?, ACLN_ENCUM_CLS_AMT = ?, ACLN_ENCUM_PRG_CD = ?, TIMESTAMP = ? where univ_fiscal_yr = ? and fin_coa_cd = ? and account_nbr = ? and sub_acct_nbr = ? and fin_object_cd = ? and fin_sub_obj_cd = ? and fin_balance_typ_cd = ? and fdoc_typ_cd = ? and fs_origin_cd = ? and fdoc_nbr = ?"); 048 sql.put(RETRIEVE_PREFIX + ExpenditureTransaction.class, "select ACCT_OBJ_DCST_AMT from GL_EXPEND_TRN_T where UNIV_FISCAL_YR = ? and FIN_COA_CD = ? and ACCOUNT_NBR = ? and SUB_ACCT_NBR = ? and FIN_OBJECT_CD = ? and FIN_SUB_OBJ_CD = ? and FIN_BALANCE_TYP_CD = ? and FIN_OBJ_TYP_CD = ? and UNIV_FISCAL_PRD_CD = ? and PROJECT_CD = ? and ORG_REFERENCE_ID = ?"); 049 sql.put(INSERT_PREFIX + ExpenditureTransaction.class, "insert into GL_EXPEND_TRN_T (UNIV_FISCAL_YR, FIN_COA_CD, ACCOUNT_NBR, SUB_ACCT_NBR, FIN_OBJECT_CD, FIN_SUB_OBJ_CD, FIN_BALANCE_TYP_CD, FIN_OBJ_TYP_CD, UNIV_FISCAL_PRD_CD, PROJECT_CD, ORG_REFERENCE_ID, ACCT_OBJ_DCST_AMT) values (?,?,?,?,?,?,?,?,?,?,?,?)"); 050 sql.put(UPDATE_PREFIX + ExpenditureTransaction.class, "update GL_EXPEND_TRN_T set ACCT_OBJ_DCST_AMT = ? where UNIV_FISCAL_YR = ? and FIN_COA_CD = ? and ACCOUNT_NBR = ? and SUB_ACCT_NBR = ? and FIN_OBJECT_CD = ? and FIN_SUB_OBJ_CD = ? and FIN_BALANCE_TYP_CD = ? and FIN_OBJ_TYP_CD = ? and UNIV_FISCAL_PRD_CD = ? and PROJECT_CD = ? and ORG_REFERENCE_ID = ?"); 051 sql.put(RETRIEVE_PREFIX + SufficientFundBalances.class, "select ACCT_SF_CD, CURR_BDGT_BAL_AMT, ACCT_ACTL_XPND_AMT, ACCT_ENCUM_AMT from GL_SF_BALANCES_T where UNIV_FISCAL_YR = ? and FIN_COA_CD = ? and ACCOUNT_NBR = ? and FIN_OBJECT_CD = ?"); 052 sql.put(INSERT_PREFIX + SufficientFundBalances.class, "insert into GL_SF_BALANCES_T (UNIV_FISCAL_YR, FIN_COA_CD, ACCOUNT_NBR, FIN_OBJECT_CD, ACCT_SF_CD, CURR_BDGT_BAL_AMT, ACCT_ACTL_XPND_AMT, ACCT_ENCUM_AMT, TIMESTAMP) values (?,?,?,?,?,?,?,?,?)"); 053 sql.put(UPDATE_PREFIX + SufficientFundBalances.class, "update GL_SF_BALANCES_T set ACCT_SF_CD = ?, CURR_BDGT_BAL_AMT = ?, ACCT_ACTL_XPND_AMT = ?, ACCT_ENCUM_AMT = ?, TIMESTAMP = ? where UNIV_FISCAL_YR = ? and FIN_COA_CD = ? and ACCOUNT_NBR = ? and FIN_OBJECT_CD = ?"); 054 sql.put(RETRIEVE_PREFIX + AccountBalance.class, "select CURR_BDLN_BAL_AMT, ACLN_ACTLS_BAL_AMT, ACLN_ENCUM_BAL_AMT from GL_ACCT_BALANCES_T where UNIV_FISCAL_YR = ? and FIN_COA_CD = ? and ACCOUNT_NBR = ? and SUB_ACCT_NBR = ? and FIN_OBJECT_CD = ? and FIN_SUB_OBJ_CD = ?"); 055 sql.put(INSERT_PREFIX + AccountBalance.class, "insert into GL_ACCT_BALANCES_T (UNIV_FISCAL_YR, FIN_COA_CD, ACCOUNT_NBR, SUB_ACCT_NBR, FIN_OBJECT_CD, FIN_SUB_OBJ_CD, CURR_BDLN_BAL_AMT, ACLN_ACTLS_BAL_AMT, ACLN_ENCUM_BAL_AMT, TIMESTAMP) values (?,?,?,?,?,?,?,?,?,?)"); 056 sql.put(UPDATE_PREFIX + AccountBalance.class, "update GL_ACCT_BALANCES_T set CURR_BDLN_BAL_AMT = ?, ACLN_ACTLS_BAL_AMT = ?, ACLN_ENCUM_BAL_AMT = ?, TIMESTAMP = ? where UNIV_FISCAL_YR = ? and FIN_COA_CD = ? and ACCOUNT_NBR = ? and SUB_ACCT_NBR = ? and FIN_OBJECT_CD = ? and FIN_SUB_OBJ_CD = ?"); 057 sql.put(INSERT_PREFIX + Entry.class, "INSERT INTO GL_ENTRY_T (UNIV_FISCAL_YR, FIN_COA_CD, ACCOUNT_NBR, SUB_ACCT_NBR, FIN_OBJECT_CD, FIN_SUB_OBJ_CD, FIN_BALANCE_TYP_CD, FIN_OBJ_TYP_CD, UNIV_FISCAL_PRD_CD, FDOC_TYP_CD, FS_ORIGIN_CD, FDOC_NBR, TRN_ENTR_SEQ_NBR, TRN_LDGR_ENTR_DESC, TRN_LDGR_ENTR_AMT, TRN_DEBIT_CRDT_CD, TRANSACTION_DT, ORG_DOC_NBR, PROJECT_CD, ORG_REFERENCE_ID, FDOC_REF_TYP_CD, FS_REF_ORIGIN_CD, FDOC_REF_NBR, FDOC_REVERSAL_DT, TRN_ENCUM_UPDT_CD, TRN_POST_DT, TIMESTAMP) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); 058 sql.put(INSERT_PREFIX + Reversal.class, "INSERT INTO GL_REVERSAL_T (FDOC_REVERSAL_DT, UNIV_FISCAL_YR, FIN_COA_CD, ACCOUNT_NBR, SUB_ACCT_NBR, FIN_OBJECT_CD, FIN_SUB_OBJ_CD, FIN_BALANCE_TYP_CD, FIN_OBJ_TYP_CD, UNIV_FISCAL_PRD_CD, FDOC_TYP_CD, FS_ORIGIN_CD, FDOC_NBR, TRN_ENTR_SEQ_NBR, TRN_LDGR_ENTR_DESC, TRN_LDGR_ENTR_AMT, TRN_DEBIT_CRDT_CD, TRANSACTION_DT, ORG_DOC_NBR, PROJECT_CD, ORG_REFERENCE_ID, FDOC_REF_TYP_CD, FS_REF_ORIGIN_CD, FDOC_REF_NBR, TRN_ENCUM_UPDT_CD, TRN_POST_DT) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); 059 } 060 061 @Override 062 protected Map<String, String> getSql() { 063 return sql; 064 } 065 066 public int getMaxSequenceNumber(final Transaction t) { 067 return new RetrievingJdbcWrapper<Integer>() { 068 @Override 069 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 070 preparedStatement.setInt(1, t.getUniversityFiscalYear()); 071 preparedStatement.setString(2, t.getChartOfAccountsCode()); 072 preparedStatement.setString(3, t.getAccountNumber()); 073 preparedStatement.setString(4, t.getSubAccountNumber()); 074 preparedStatement.setString(5, t.getFinancialObjectCode()); 075 preparedStatement.setString(6, t.getFinancialSubObjectCode()); 076 preparedStatement.setString(7, t.getFinancialBalanceTypeCode()); 077 preparedStatement.setString(8, t.getFinancialObjectTypeCode()); 078 preparedStatement.setString(9, t.getUniversityFiscalPeriodCode()); 079 preparedStatement.setString(10, t.getFinancialDocumentTypeCode()); 080 preparedStatement.setString(11, t.getFinancialSystemOriginationCode()); 081 preparedStatement.setString(12, t.getDocumentNumber()); 082 } 083 @Override 084 protected Integer extractResult(ResultSet resultSet) throws SQLException { 085 return resultSet.getInt(1); 086 } 087 }.get(Integer.class); 088 } 089 090 public AccountBalance getAccountBalance(final Transaction t) { 091 return new RetrievingJdbcWrapper<AccountBalance>() { 092 @Override 093 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 094 preparedStatement.setInt(1, t.getUniversityFiscalYear()); 095 preparedStatement.setString(2, t.getChartOfAccountsCode()); 096 preparedStatement.setString(3, t.getAccountNumber()); 097 preparedStatement.setString(4, t.getSubAccountNumber()); 098 preparedStatement.setString(5, t.getFinancialObjectCode()); 099 preparedStatement.setString(6, t.getFinancialSubObjectCode()); 100 } 101 @Override 102 protected AccountBalance extractResult(ResultSet resultSet) throws SQLException { 103 AccountBalance accountBalance = new AccountBalance(); 104 accountBalance.setUniversityFiscalYear(t.getUniversityFiscalYear()); 105 accountBalance.setChartOfAccountsCode(t.getChartOfAccountsCode()); 106 accountBalance.setAccountNumber(t.getAccountNumber()); 107 accountBalance.setSubAccountNumber(t.getSubAccountNumber()); 108 accountBalance.setObjectCode(t.getFinancialObjectCode()); 109 accountBalance.setSubObjectCode(t.getFinancialSubObjectCode()); 110 accountBalance.setCurrentBudgetLineBalanceAmount(new KualiDecimal(resultSet.getBigDecimal(1))); 111 accountBalance.setAccountLineActualsBalanceAmount(new KualiDecimal(resultSet.getBigDecimal(2))); 112 accountBalance.setAccountLineEncumbranceBalanceAmount(new KualiDecimal(resultSet.getBigDecimal(3))); 113 return accountBalance; 114 } 115 }.get(AccountBalance.class); 116 } 117 118 public void insertAccountBalance(final AccountBalance accountBalance) { 119 new InsertingJdbcWrapper<AccountBalance>() { 120 @Override 121 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 122 preparedStatement.setInt(1, accountBalance.getUniversityFiscalYear()); 123 preparedStatement.setString(2, accountBalance.getChartOfAccountsCode()); 124 preparedStatement.setString(3, accountBalance.getAccountNumber()); 125 preparedStatement.setString(4, accountBalance.getSubAccountNumber()); 126 preparedStatement.setString(5, accountBalance.getObjectCode()); 127 preparedStatement.setString(6, accountBalance.getSubObjectCode()); 128 preparedStatement.setBigDecimal(7, accountBalance.getCurrentBudgetLineBalanceAmount().bigDecimalValue()); 129 preparedStatement.setBigDecimal(8, accountBalance.getAccountLineActualsBalanceAmount().bigDecimalValue()); 130 preparedStatement.setBigDecimal(9, accountBalance.getAccountLineEncumbranceBalanceAmount().bigDecimalValue()); 131 preparedStatement.setTimestamp(10, dateTimeService.getCurrentTimestamp()); 132 } 133 }.execute(AccountBalance.class); 134 } 135 136 public void updateAccountBalance(final AccountBalance accountBalance) { 137 new UpdatingJdbcWrapper<AccountBalance>() { 138 @Override 139 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 140 preparedStatement.setBigDecimal(1, accountBalance.getCurrentBudgetLineBalanceAmount().bigDecimalValue()); 141 preparedStatement.setBigDecimal(2, accountBalance.getAccountLineActualsBalanceAmount().bigDecimalValue()); 142 preparedStatement.setBigDecimal(3, accountBalance.getAccountLineEncumbranceBalanceAmount().bigDecimalValue()); 143 preparedStatement.setTimestamp(4, dateTimeService.getCurrentTimestamp()); 144 preparedStatement.setInt(5, accountBalance.getUniversityFiscalYear()); 145 preparedStatement.setString(6, accountBalance.getChartOfAccountsCode()); 146 preparedStatement.setString(7, accountBalance.getAccountNumber()); 147 preparedStatement.setString(8, accountBalance.getSubAccountNumber()); 148 preparedStatement.setString(9, accountBalance.getObjectCode()); 149 preparedStatement.setString(10, accountBalance.getSubObjectCode()); 150 } 151 }.execute(AccountBalance.class); 152 } 153 154 public Balance getBalance(final Transaction t) { 155 return new RetrievingJdbcWrapper<Balance>() { 156 @Override 157 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 158 preparedStatement.setInt(1, t.getUniversityFiscalYear()); 159 preparedStatement.setString(2, t.getChartOfAccountsCode()); 160 preparedStatement.setString(3, t.getAccountNumber()); 161 preparedStatement.setString(4, t.getSubAccountNumber()); 162 preparedStatement.setString(5, t.getFinancialObjectCode()); 163 preparedStatement.setString(6, t.getFinancialSubObjectCode()); 164 preparedStatement.setString(7, t.getFinancialBalanceTypeCode()); 165 preparedStatement.setString(8, t.getFinancialObjectTypeCode()); 166 } 167 @Override 168 protected Balance extractResult(ResultSet resultSet) throws SQLException { 169 Balance balance = new Balance(); 170 balance.setUniversityFiscalYear(t.getUniversityFiscalYear()); 171 balance.setChartOfAccountsCode(t.getChartOfAccountsCode()); 172 balance.setAccountNumber(t.getAccountNumber()); 173 balance.setSubAccountNumber(t.getSubAccountNumber()); 174 balance.setObjectCode(t.getFinancialObjectCode()); 175 balance.setSubObjectCode(t.getFinancialSubObjectCode()); 176 balance.setBalanceTypeCode(t.getFinancialBalanceTypeCode()); 177 balance.setObjectTypeCode(t.getFinancialObjectTypeCode()); 178 balance.setAccountLineAnnualBalanceAmount(new KualiDecimal(resultSet.getBigDecimal(1))); 179 balance.setBeginningBalanceLineAmount(new KualiDecimal(resultSet.getBigDecimal(2))); 180 balance.setContractsGrantsBeginningBalanceAmount(new KualiDecimal(resultSet.getBigDecimal(3))); 181 balance.setMonth1Amount(new KualiDecimal(resultSet.getBigDecimal(4))); 182 balance.setMonth2Amount(new KualiDecimal(resultSet.getBigDecimal(5))); 183 balance.setMonth3Amount(new KualiDecimal(resultSet.getBigDecimal(6))); 184 balance.setMonth4Amount(new KualiDecimal(resultSet.getBigDecimal(7))); 185 balance.setMonth5Amount(new KualiDecimal(resultSet.getBigDecimal(8))); 186 balance.setMonth6Amount(new KualiDecimal(resultSet.getBigDecimal(9))); 187 balance.setMonth7Amount(new KualiDecimal(resultSet.getBigDecimal(10))); 188 balance.setMonth8Amount(new KualiDecimal(resultSet.getBigDecimal(11))); 189 balance.setMonth9Amount(new KualiDecimal(resultSet.getBigDecimal(12))); 190 balance.setMonth10Amount(new KualiDecimal(resultSet.getBigDecimal(13))); 191 balance.setMonth11Amount(new KualiDecimal(resultSet.getBigDecimal(14))); 192 balance.setMonth12Amount(new KualiDecimal(resultSet.getBigDecimal(15))); 193 balance.setMonth13Amount(new KualiDecimal(resultSet.getBigDecimal(16))); 194 return balance; 195 } 196 }.get(Balance.class); 197 } 198 199 public void insertBalance(final Balance balance) { 200 new InsertingJdbcWrapper<Balance>() { 201 @Override 202 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 203 preparedStatement.setInt(1, balance.getUniversityFiscalYear()); 204 preparedStatement.setString(2, balance.getChartOfAccountsCode()); 205 preparedStatement.setString(3, balance.getAccountNumber()); 206 preparedStatement.setString(4, balance.getSubAccountNumber()); 207 preparedStatement.setString(5, balance.getObjectCode()); 208 preparedStatement.setString(6, balance.getSubObjectCode()); 209 preparedStatement.setString(7, balance.getBalanceTypeCode()); 210 preparedStatement.setString(8, balance.getObjectTypeCode()); 211 preparedStatement.setBigDecimal(9, balance.getAccountLineAnnualBalanceAmount().bigDecimalValue()); 212 preparedStatement.setBigDecimal(10, balance.getBeginningBalanceLineAmount().bigDecimalValue()); 213 preparedStatement.setBigDecimal(11, balance.getContractsGrantsBeginningBalanceAmount().bigDecimalValue()); 214 preparedStatement.setBigDecimal(12, balance.getMonth1Amount().bigDecimalValue()); 215 preparedStatement.setBigDecimal(13, balance.getMonth2Amount().bigDecimalValue()); 216 preparedStatement.setBigDecimal(14, balance.getMonth3Amount().bigDecimalValue()); 217 preparedStatement.setBigDecimal(15, balance.getMonth4Amount().bigDecimalValue()); 218 preparedStatement.setBigDecimal(16, balance.getMonth5Amount().bigDecimalValue()); 219 preparedStatement.setBigDecimal(17, balance.getMonth6Amount().bigDecimalValue()); 220 preparedStatement.setBigDecimal(18, balance.getMonth7Amount().bigDecimalValue()); 221 preparedStatement.setBigDecimal(19, balance.getMonth8Amount().bigDecimalValue()); 222 preparedStatement.setBigDecimal(20, balance.getMonth9Amount().bigDecimalValue()); 223 preparedStatement.setBigDecimal(21, balance.getMonth10Amount().bigDecimalValue()); 224 preparedStatement.setBigDecimal(22, balance.getMonth11Amount().bigDecimalValue()); 225 preparedStatement.setBigDecimal(23, balance.getMonth12Amount().bigDecimalValue()); 226 preparedStatement.setBigDecimal(24, balance.getMonth13Amount().bigDecimalValue()); 227 preparedStatement.setTimestamp(25, dateTimeService.getCurrentTimestamp()); 228 } 229 }.execute(Balance.class); 230 } 231 232 public void updateBalance(final Balance balance) { 233 new UpdatingJdbcWrapper<Balance>() { 234 @Override 235 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 236 preparedStatement.setBigDecimal(1, balance.getAccountLineAnnualBalanceAmount().bigDecimalValue()); 237 preparedStatement.setBigDecimal(2, balance.getBeginningBalanceLineAmount().bigDecimalValue()); 238 preparedStatement.setBigDecimal(3, balance.getContractsGrantsBeginningBalanceAmount().bigDecimalValue()); 239 preparedStatement.setBigDecimal(4, balance.getMonth1Amount().bigDecimalValue()); 240 preparedStatement.setBigDecimal(5, balance.getMonth2Amount().bigDecimalValue()); 241 preparedStatement.setBigDecimal(6, balance.getMonth3Amount().bigDecimalValue()); 242 preparedStatement.setBigDecimal(7, balance.getMonth4Amount().bigDecimalValue()); 243 preparedStatement.setBigDecimal(8, balance.getMonth5Amount().bigDecimalValue()); 244 preparedStatement.setBigDecimal(9, balance.getMonth6Amount().bigDecimalValue()); 245 preparedStatement.setBigDecimal(10, balance.getMonth7Amount().bigDecimalValue()); 246 preparedStatement.setBigDecimal(11, balance.getMonth8Amount().bigDecimalValue()); 247 preparedStatement.setBigDecimal(12, balance.getMonth9Amount().bigDecimalValue()); 248 preparedStatement.setBigDecimal(13, balance.getMonth10Amount().bigDecimalValue()); 249 preparedStatement.setBigDecimal(14, balance.getMonth11Amount().bigDecimalValue()); 250 preparedStatement.setBigDecimal(15, balance.getMonth12Amount().bigDecimalValue()); 251 preparedStatement.setBigDecimal(16, balance.getMonth13Amount().bigDecimalValue()); 252 preparedStatement.setTimestamp(17, dateTimeService.getCurrentTimestamp()); 253 preparedStatement.setInt(18, balance.getUniversityFiscalYear()); 254 preparedStatement.setString(19, balance.getChartOfAccountsCode()); 255 preparedStatement.setString(20, balance.getAccountNumber()); 256 preparedStatement.setString(21, balance.getSubAccountNumber()); 257 preparedStatement.setString(22, balance.getObjectCode()); 258 preparedStatement.setString(23, balance.getSubObjectCode()); 259 preparedStatement.setString(24, balance.getBalanceTypeCode()); 260 preparedStatement.setString(25, balance.getObjectTypeCode()); 261 } 262 }.execute(Balance.class); 263 } 264 265 public Encumbrance getEncumbrance(final Entry entry) { 266 return new RetrievingJdbcWrapper<Encumbrance>() { 267 @Override 268 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 269 preparedStatement.setInt(1, entry.getUniversityFiscalYear()); 270 preparedStatement.setString(2, entry.getChartOfAccountsCode()); 271 preparedStatement.setString(3, entry.getAccountNumber()); 272 preparedStatement.setString(4, entry.getSubAccountNumber()); 273 preparedStatement.setString(5, entry.getFinancialObjectCode()); 274 preparedStatement.setString(6, entry.getFinancialSubObjectCode()); 275 preparedStatement.setString(7, entry.getFinancialBalanceTypeCode()); 276 preparedStatement.setString(8, entry.getFinancialDocumentTypeCode()); 277 preparedStatement.setString(9, entry.getFinancialSystemOriginationCode()); 278 preparedStatement.setString(10, entry.getDocumentNumber()); 279 } 280 @Override 281 protected Encumbrance extractResult(ResultSet resultSet) throws SQLException { 282 Encumbrance encumbrance = new Encumbrance(); 283 encumbrance.setUniversityFiscalYear(entry.getUniversityFiscalYear()); 284 encumbrance.setChartOfAccountsCode(entry.getChartOfAccountsCode()); 285 encumbrance.setAccountNumber(entry.getAccountNumber()); 286 encumbrance.setSubAccountNumber(entry.getSubAccountNumber()); 287 encumbrance.setObjectCode(entry.getFinancialObjectCode()); 288 encumbrance.setSubObjectCode(entry.getFinancialSubObjectCode()); 289 encumbrance.setBalanceTypeCode(entry.getFinancialBalanceTypeCode()); 290 encumbrance.setDocumentTypeCode(entry.getFinancialDocumentTypeCode()); 291 encumbrance.setOriginCode(entry.getFinancialSystemOriginationCode()); 292 encumbrance.setDocumentNumber(entry.getDocumentNumber()); 293 encumbrance.setTransactionEncumbranceDescription(resultSet.getString(1)); 294 encumbrance.setTransactionEncumbranceDate(resultSet.getDate(2)); 295 encumbrance.setAccountLineEncumbranceAmount(new KualiDecimal(resultSet.getBigDecimal(3))); 296 encumbrance.setAccountLineEncumbranceClosedAmount(new KualiDecimal(resultSet.getBigDecimal(4))); 297 encumbrance.setAccountLineEncumbrancePurgeCode(resultSet.getString(5)); 298 return encumbrance; 299 } 300 }.get(Encumbrance.class); 301 } 302 303 public void insertEncumbrance(final Encumbrance encumbrance) { 304 new InsertingJdbcWrapper<Encumbrance>() { 305 @Override 306 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 307 preparedStatement.setInt(1, encumbrance.getUniversityFiscalYear()); 308 preparedStatement.setString(2, encumbrance.getChartOfAccountsCode()); 309 preparedStatement.setString(3, encumbrance.getAccountNumber()); 310 preparedStatement.setString(4, encumbrance.getSubAccountNumber()); 311 preparedStatement.setString(5, encumbrance.getObjectCode()); 312 preparedStatement.setString(6, encumbrance.getSubObjectCode()); 313 preparedStatement.setString(7, encumbrance.getBalanceTypeCode()); 314 preparedStatement.setString(8, encumbrance.getDocumentTypeCode()); 315 preparedStatement.setString(9, encumbrance.getOriginCode()); 316 preparedStatement.setString(10, encumbrance.getDocumentNumber()); 317 preparedStatement.setString(11, encumbrance.getTransactionEncumbranceDescription()); 318 preparedStatement.setDate(12, encumbrance.getTransactionEncumbranceDate()); 319 preparedStatement.setBigDecimal(13, encumbrance.getAccountLineEncumbranceAmount().bigDecimalValue()); 320 preparedStatement.setBigDecimal(14, encumbrance.getAccountLineEncumbranceClosedAmount().bigDecimalValue()); 321 preparedStatement.setString(15, encumbrance.getAccountLineEncumbrancePurgeCode()); 322 preparedStatement.setTimestamp(16, dateTimeService.getCurrentTimestamp()); 323 } 324 }.execute(Encumbrance.class); 325 } 326 327 public void updateEncumbrance(final Encumbrance encumbrance) { 328 new UpdatingJdbcWrapper<Encumbrance>() { 329 @Override 330 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 331 preparedStatement.setString(1, encumbrance.getTransactionEncumbranceDescription()); 332 preparedStatement.setDate(2, encumbrance.getTransactionEncumbranceDate()); 333 preparedStatement.setBigDecimal(3, encumbrance.getAccountLineEncumbranceAmount().bigDecimalValue()); 334 preparedStatement.setBigDecimal(4, encumbrance.getAccountLineEncumbranceClosedAmount().bigDecimalValue()); 335 preparedStatement.setString(5, encumbrance.getAccountLineEncumbrancePurgeCode()); 336 preparedStatement.setTimestamp(6, dateTimeService.getCurrentTimestamp()); 337 preparedStatement.setInt(7, encumbrance.getUniversityFiscalYear()); 338 preparedStatement.setString(8, encumbrance.getChartOfAccountsCode()); 339 preparedStatement.setString(9, encumbrance.getAccountNumber()); 340 preparedStatement.setString(10, encumbrance.getSubAccountNumber()); 341 preparedStatement.setString(11, encumbrance.getObjectCode()); 342 preparedStatement.setString(12, encumbrance.getSubObjectCode()); 343 preparedStatement.setString(13, encumbrance.getBalanceTypeCode()); 344 preparedStatement.setString(14, encumbrance.getDocumentTypeCode()); 345 preparedStatement.setString(15, encumbrance.getOriginCode()); 346 preparedStatement.setString(16, encumbrance.getDocumentNumber()); 347 } 348 }.execute(Encumbrance.class); 349 } 350 351 public ExpenditureTransaction getExpenditureTransaction(final Transaction t) { 352 return new RetrievingJdbcWrapper<ExpenditureTransaction>() { 353 @Override 354 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 355 preparedStatement.setInt(1, t.getUniversityFiscalYear()); 356 preparedStatement.setString(2, t.getChartOfAccountsCode()); 357 preparedStatement.setString(3, t.getAccountNumber()); 358 preparedStatement.setString(4, t.getSubAccountNumber()); 359 preparedStatement.setString(5, t.getFinancialObjectCode()); 360 preparedStatement.setString(6, t.getFinancialSubObjectCode()); 361 preparedStatement.setString(7, t.getFinancialBalanceTypeCode()); 362 preparedStatement.setString(8, t.getFinancialObjectTypeCode()); 363 preparedStatement.setString(9, t.getUniversityFiscalPeriodCode()); 364 preparedStatement.setString(10, t.getProjectCode()); 365 preparedStatement.setString(11, StringUtils.isBlank(t.getOrganizationReferenceId()) ? GeneralLedgerConstants.getDashOrganizationReferenceId() : t.getOrganizationReferenceId()); 366 } 367 @Override 368 protected ExpenditureTransaction extractResult(ResultSet resultSet) throws SQLException { 369 ExpenditureTransaction expenditureTransaction = new ExpenditureTransaction(); 370 expenditureTransaction.setUniversityFiscalYear(t.getUniversityFiscalYear()); 371 expenditureTransaction.setChartOfAccountsCode(t.getChartOfAccountsCode()); 372 expenditureTransaction.setAccountNumber(t.getAccountNumber()); 373 expenditureTransaction.setSubAccountNumber(t.getSubAccountNumber()); 374 expenditureTransaction.setObjectCode(t.getFinancialObjectCode()); 375 expenditureTransaction.setSubObjectCode(t.getFinancialSubObjectCode()); 376 expenditureTransaction.setBalanceTypeCode(t.getFinancialBalanceTypeCode()); 377 expenditureTransaction.setObjectTypeCode(t.getFinancialObjectTypeCode()); 378 expenditureTransaction.setUniversityFiscalAccountingPeriod(t.getUniversityFiscalPeriodCode()); 379 expenditureTransaction.setProjectCode(t.getProjectCode()); 380 expenditureTransaction.setOrganizationReferenceId(StringUtils.isBlank(t.getOrganizationReferenceId()) ? GeneralLedgerConstants.getDashOrganizationReferenceId() : t.getOrganizationReferenceId()); 381 expenditureTransaction.setAccountObjectDirectCostAmount(new KualiDecimal(resultSet.getBigDecimal(1))); 382 return expenditureTransaction; 383 } 384 }.get(ExpenditureTransaction.class); 385 } 386 387 public void insertExpenditureTransaction(final ExpenditureTransaction expenditureTransaction) { 388 new InsertingJdbcWrapper<ExpenditureTransaction>() { 389 @Override 390 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 391 preparedStatement.setInt(1, expenditureTransaction.getUniversityFiscalYear()); 392 preparedStatement.setString(2, expenditureTransaction.getChartOfAccountsCode()); 393 preparedStatement.setString(3, expenditureTransaction.getAccountNumber()); 394 preparedStatement.setString(4, expenditureTransaction.getSubAccountNumber()); 395 preparedStatement.setString(5, expenditureTransaction.getObjectCode()); 396 preparedStatement.setString(6, expenditureTransaction.getSubObjectCode()); 397 preparedStatement.setString(7, expenditureTransaction.getBalanceTypeCode()); 398 preparedStatement.setString(8, expenditureTransaction.getObjectTypeCode()); 399 preparedStatement.setString(9, expenditureTransaction.getUniversityFiscalAccountingPeriod()); 400 preparedStatement.setString(10, expenditureTransaction.getProjectCode()); 401 preparedStatement.setString(11, expenditureTransaction.getOrganizationReferenceId()); 402 preparedStatement.setBigDecimal(12, expenditureTransaction.getAccountObjectDirectCostAmount().bigDecimalValue()); 403 } 404 }.execute(ExpenditureTransaction.class); 405 } 406 407 public void updateExpenditureTransaction(final ExpenditureTransaction expenditureTransaction) { 408 new UpdatingJdbcWrapper<ExpenditureTransaction>() { 409 @Override 410 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 411 preparedStatement.setBigDecimal(1, expenditureTransaction.getAccountObjectDirectCostAmount().bigDecimalValue()); 412 preparedStatement.setInt(2, expenditureTransaction.getUniversityFiscalYear()); 413 preparedStatement.setString(3, expenditureTransaction.getChartOfAccountsCode()); 414 preparedStatement.setString(4, expenditureTransaction.getAccountNumber()); 415 preparedStatement.setString(5, expenditureTransaction.getSubAccountNumber()); 416 preparedStatement.setString(6, expenditureTransaction.getObjectCode()); 417 preparedStatement.setString(7, expenditureTransaction.getSubObjectCode()); 418 preparedStatement.setString(8, expenditureTransaction.getBalanceTypeCode()); 419 preparedStatement.setString(9, expenditureTransaction.getObjectTypeCode()); 420 preparedStatement.setString(10, expenditureTransaction.getUniversityFiscalAccountingPeriod()); 421 preparedStatement.setString(11, expenditureTransaction.getProjectCode()); 422 preparedStatement.setString(12, expenditureTransaction.getOrganizationReferenceId()); 423 } 424 }.execute(ExpenditureTransaction.class); 425 } 426 427 public SufficientFundBalances getSufficientFundBalances(final Integer universityFiscalYear, final String chartOfAccountsCode, final String accountNumber, final String financialObjectCode) { 428 return new RetrievingJdbcWrapper<SufficientFundBalances>() { 429 @Override 430 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 431 preparedStatement.setInt(1, universityFiscalYear); 432 preparedStatement.setString(2, chartOfAccountsCode); 433 preparedStatement.setString(3, accountNumber); 434 preparedStatement.setString(4, financialObjectCode); 435 } 436 @Override 437 protected SufficientFundBalances extractResult(ResultSet resultSet) throws SQLException { 438 SufficientFundBalances sufficientFundBalances = new SufficientFundBalances(); 439 sufficientFundBalances.setUniversityFiscalYear(universityFiscalYear); 440 sufficientFundBalances.setChartOfAccountsCode(chartOfAccountsCode); 441 sufficientFundBalances.setAccountNumber(accountNumber); 442 sufficientFundBalances.setFinancialObjectCode(financialObjectCode); 443 sufficientFundBalances.setAccountSufficientFundsCode(resultSet.getString(1)); 444 sufficientFundBalances.setCurrentBudgetBalanceAmount(new KualiDecimal(resultSet.getBigDecimal(2))); 445 sufficientFundBalances.setAccountActualExpenditureAmt(new KualiDecimal(resultSet.getBigDecimal(3))); 446 sufficientFundBalances.setAccountEncumbranceAmount(new KualiDecimal(resultSet.getBigDecimal(4))); 447 return sufficientFundBalances; 448 } 449 }.get(SufficientFundBalances.class); 450 } 451 452 public void insertSufficientFundBalances(final SufficientFundBalances sufficientFundBalances) { 453 new InsertingJdbcWrapper<SufficientFundBalances>() { 454 @Override 455 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 456 preparedStatement.setInt(1, sufficientFundBalances.getUniversityFiscalYear()); 457 preparedStatement.setString(2, sufficientFundBalances.getChartOfAccountsCode()); 458 preparedStatement.setString(3, sufficientFundBalances.getAccountNumber()); 459 preparedStatement.setString(4, sufficientFundBalances.getFinancialObjectCode()); 460 preparedStatement.setString(5, sufficientFundBalances.getAccountSufficientFundsCode()); 461 preparedStatement.setBigDecimal(6, sufficientFundBalances.getCurrentBudgetBalanceAmount().bigDecimalValue()); 462 preparedStatement.setBigDecimal(7, sufficientFundBalances.getAccountActualExpenditureAmt().bigDecimalValue()); 463 preparedStatement.setBigDecimal(8, sufficientFundBalances.getAccountEncumbranceAmount().bigDecimalValue()); 464 preparedStatement.setTimestamp(9, dateTimeService.getCurrentTimestamp()); 465 } 466 }.execute(SufficientFundBalances.class); 467 } 468 469 public void updateSufficientFundBalances(final SufficientFundBalances sufficientFundBalances) { 470 new UpdatingJdbcWrapper<SufficientFundBalances>() { 471 @Override 472 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 473 preparedStatement.setString(1, sufficientFundBalances.getAccountSufficientFundsCode()); 474 preparedStatement.setBigDecimal(2, sufficientFundBalances.getCurrentBudgetBalanceAmount().bigDecimalValue()); 475 preparedStatement.setBigDecimal(3, sufficientFundBalances.getAccountActualExpenditureAmt().bigDecimalValue()); 476 preparedStatement.setBigDecimal(4, sufficientFundBalances.getAccountEncumbranceAmount().bigDecimalValue()); 477 preparedStatement.setTimestamp(5, dateTimeService.getCurrentTimestamp()); 478 preparedStatement.setInt(6, sufficientFundBalances.getUniversityFiscalYear()); 479 preparedStatement.setString(7, sufficientFundBalances.getChartOfAccountsCode()); 480 preparedStatement.setString(8, sufficientFundBalances.getAccountNumber()); 481 preparedStatement.setString(9, sufficientFundBalances.getFinancialObjectCode()); 482 } 483 }.execute(SufficientFundBalances.class); 484 } 485 486 public void insertEntry(final Entry entry) { 487 new InsertingJdbcWrapper<Entry>() { 488 @Override 489 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 490 preparedStatement.setInt(1, entry.getUniversityFiscalYear()); 491 preparedStatement.setString(2, entry.getChartOfAccountsCode()); 492 preparedStatement.setString(3, entry.getAccountNumber()); 493 preparedStatement.setString(4, entry.getSubAccountNumber()); 494 preparedStatement.setString(5, entry.getFinancialObjectCode()); 495 preparedStatement.setString(6, entry.getFinancialSubObjectCode()); 496 preparedStatement.setString(7, entry.getFinancialBalanceTypeCode()); 497 preparedStatement.setString(8, entry.getFinancialObjectTypeCode()); 498 preparedStatement.setString(9, entry.getUniversityFiscalPeriodCode()); 499 preparedStatement.setString(10, entry.getFinancialDocumentTypeCode()); 500 preparedStatement.setString(11, entry.getFinancialSystemOriginationCode()); 501 preparedStatement.setString(12, entry.getDocumentNumber()); 502 preparedStatement.setInt(13, entry.getTransactionLedgerEntrySequenceNumber()); 503 preparedStatement.setString(14, entry.getTransactionLedgerEntryDescription()); 504 preparedStatement.setBigDecimal(15, entry.getTransactionLedgerEntryAmount().bigDecimalValue()); 505 preparedStatement.setString(16, entry.getTransactionDebitCreditCode()); 506 preparedStatement.setDate(17, entry.getTransactionDate()); 507 preparedStatement.setString(18, entry.getOrganizationDocumentNumber()); 508 preparedStatement.setString(19, entry.getProjectCode()); 509 preparedStatement.setString(20, entry.getOrganizationReferenceId()); 510 preparedStatement.setString(21, entry.getReferenceFinancialDocumentTypeCode()); 511 preparedStatement.setString(22, entry.getReferenceFinancialSystemOriginationCode()); 512 preparedStatement.setString(23, entry.getReferenceFinancialDocumentNumber()); 513 preparedStatement.setDate(24, entry.getFinancialDocumentReversalDate()); 514 preparedStatement.setString(25, entry.getTransactionEncumbranceUpdateCode()); 515 preparedStatement.setDate(26, entry.getTransactionPostingDate()); 516 preparedStatement.setTimestamp(27, dateTimeService.getCurrentTimestamp()); 517 } 518 }.execute(Entry.class); 519 } 520 public void insertReversal(final Reversal reversal) { 521 new InsertingJdbcWrapper<Reversal>() { 522 @Override 523 protected void populateStatement(PreparedStatement preparedStatement) throws SQLException { 524 preparedStatement.setDate(1, reversal.getFinancialDocumentReversalDate()); 525 preparedStatement.setInt(2, reversal.getUniversityFiscalYear()); 526 preparedStatement.setString(3, reversal.getChartOfAccountsCode()); 527 preparedStatement.setString(4, reversal.getAccountNumber()); 528 preparedStatement.setString(5, reversal.getSubAccountNumber()); 529 preparedStatement.setString(6, reversal.getFinancialObjectCode()); 530 preparedStatement.setString(7, reversal.getFinancialSubObjectCode()); 531 preparedStatement.setString(8, reversal.getFinancialBalanceTypeCode()); 532 preparedStatement.setString(9, reversal.getFinancialObjectTypeCode()); 533 preparedStatement.setString(10, reversal.getUniversityFiscalPeriodCode()); 534 preparedStatement.setString(11, reversal.getFinancialDocumentTypeCode()); 535 preparedStatement.setString(12, reversal.getFinancialSystemOriginationCode()); 536 preparedStatement.setString(13, reversal.getDocumentNumber()); 537 preparedStatement.setInt(14, reversal.getTransactionLedgerEntrySequenceNumber()); 538 preparedStatement.setString(15, reversal.getTransactionLedgerEntryDescription()); 539 preparedStatement.setBigDecimal(16, reversal.getTransactionLedgerEntryAmount().bigDecimalValue()); 540 preparedStatement.setString(17, reversal.getTransactionDebitCreditCode()); 541 preparedStatement.setDate(18, reversal.getTransactionDate()); 542 preparedStatement.setString(19, reversal.getOrganizationDocumentNumber()); 543 preparedStatement.setString(20, reversal.getProjectCode()); 544 preparedStatement.setString(21, reversal.getOrganizationReferenceId()); 545 preparedStatement.setString(22, reversal.getReferenceFinancialDocumentTypeCode()); 546 preparedStatement.setString(23, reversal.getReferenceFinancialSystemOriginationCode()); 547 preparedStatement.setString(24, reversal.getReferenceFinancialDocumentNumber()); 548 preparedStatement.setString(25, reversal.getTransactionEncumbranceUpdateCode()); 549 preparedStatement.setDate(26, reversal.getTransactionPostingDate()); 550 } 551 }.execute(Reversal.class); 552 } 553 }