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.module.ld.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.kuali.kfs.module.ld.batch.dataaccess.LedgerPreparedStatementCachingDao;
025    import org.kuali.kfs.module.ld.businessobject.LaborObject;
026    import org.kuali.kfs.module.ld.businessobject.LedgerBalance;
027    import org.kuali.kfs.module.ld.businessobject.LedgerEntry;
028    import org.kuali.kfs.sys.batch.dataaccess.impl.AbstractPreparedStatementCachingDaoJdbc;
029    import org.kuali.rice.kns.util.Guid;
030    import org.kuali.rice.kns.util.KualiDecimal;
031    
032    public class LedgerPreparedStatementCachingDaoJdbc extends AbstractPreparedStatementCachingDaoJdbc implements LedgerPreparedStatementCachingDao {
033        static final Map<String,String> sql = new HashMap<String,String>();
034        static {
035            sql.put(RETRIEVE_PREFIX + LaborObject.class, "select finobj_frngslry_cd from LD_LABOR_OBJ_T where univ_fiscal_yr = ? and fin_coa_cd = ? and fin_object_cd = ?");
036            sql.put(RETRIEVE_PREFIX + Integer.class, "select max(trn_entr_seq_nbr) from LD_LDGR_ENTR_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 = ?");
037            sql.put(RETRIEVE_PREFIX + LedgerBalance.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 LD_LDGR_BAL_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 POSITION_NBR = ? and EMPLID = ?");
038            sql.put(INSERT_PREFIX + LedgerBalance.class, "insert into LD_LDGR_BAL_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, POSITION_NBR, EMPLID, OBJ_ID, VER_NBR, 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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
039            sql.put(UPDATE_PREFIX + LedgerBalance.class, "update LD_LDGR_BAL_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 = ? and POSITION_NBR = ? and EMPLID = ?");
040            sql.put(INSERT_PREFIX + LedgerEntry.class, "INSERT INTO LD_LDGR_ENTR_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, OBJ_ID, VER_NBR, POSITION_NBR, PROJECT_CD, TRN_LDGR_ENTR_DESC, TRN_LDGR_ENTR_AMT, TRN_DEBIT_CRDT_CD, TRANSACTION_DT, ORG_DOC_NBR, ORG_REFERENCE_ID, FDOC_REF_TYP_CD, FS_REF_ORIGIN_CD, FDOC_REF_NBR, FDOC_REVERSAL_DT, TRN_ENCUM_UPDT_CD, TRN_POST_DT, PAY_PERIOD_END_DT, TRN_TOTAL_HR, PYRL_DT_FSCL_YR, PYRL_DT_FSCLPRD_CD, EMPLID, EMPL_RCD, ERNCD, PAYGROUP, SAL_ADMIN_PLAN, GRADE, RUN_ID, LL_ORIG_FIN_COA_CD, LL_ORIG_ACCT_NBR, LL_ORIG_SUB_ACCT_NBR, LL_ORIG_FIN_OBJECT_CD, LL_ORIG_FIN_SUB_OBJ_CD, COMPANY, SETID, TIMESTAMP) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
041        }
042    
043        @Override
044        protected Map<String, String> getSql() {
045            return sql;
046        }
047        
048        public LaborObject getLaborObject(final Integer fiscalYear, final String chartCode, final String objectCode) {
049            return new RetrievingJdbcWrapper<LaborObject>() {
050                @Override
051                protected void populateStatement(PreparedStatement preparedStatement) throws SQLException {
052                    preparedStatement.setInt(1, fiscalYear);
053                    preparedStatement.setString(2, chartCode);
054                    preparedStatement.setString(3, objectCode);
055                }
056                @Override
057                protected LaborObject extractResult(ResultSet resultSet) throws SQLException {
058                    LaborObject laborObject = new LaborObject();
059                    laborObject.setUniversityFiscalYear(fiscalYear);
060                    laborObject.setChartOfAccountsCode(chartCode);
061                    laborObject.setFinancialObjectCode(objectCode);
062                    laborObject.setFinancialObjectFringeOrSalaryCode(resultSet.getString(1)); 
063                    return laborObject;
064                }
065            }.get(LaborObject.class);
066        }
067    
068        public int getMaxLaborSequenceNumber(final LedgerEntry t) {
069            return new RetrievingJdbcWrapper<Integer>() {
070                @Override
071                protected void populateStatement(PreparedStatement preparedStatement) throws SQLException {
072                    preparedStatement.setInt(1, t.getUniversityFiscalYear());
073                    preparedStatement.setString(2, t.getChartOfAccountsCode());
074                    preparedStatement.setString(3, t.getAccountNumber());
075                    preparedStatement.setString(4, t.getSubAccountNumber());
076                    preparedStatement.setString(5, t.getFinancialObjectCode());
077                    preparedStatement.setString(6, t.getFinancialSubObjectCode());
078                    preparedStatement.setString(7, t.getFinancialBalanceTypeCode());
079                    preparedStatement.setString(8, t.getFinancialObjectTypeCode());
080                    preparedStatement.setString(9, t.getUniversityFiscalPeriodCode());
081                    preparedStatement.setString(10, t.getFinancialDocumentTypeCode());
082                    preparedStatement.setString(11, t.getFinancialSystemOriginationCode());
083                    preparedStatement.setString(12, t.getDocumentNumber());
084                }
085                @Override
086                protected Integer extractResult(ResultSet resultSet) throws SQLException {
087                    return resultSet.getInt(1);
088                }
089            }.get(Integer.class);
090        }
091        
092        public LedgerBalance getLedgerBalance(final LedgerBalance lb) {
093            return new RetrievingJdbcWrapper<LedgerBalance>() {
094                @Override
095                protected void populateStatement(PreparedStatement preparedStatement) throws SQLException {
096                    preparedStatement.setInt(1, lb.getUniversityFiscalYear());
097                    preparedStatement.setString(2, lb.getChartOfAccountsCode());
098                    preparedStatement.setString(3, lb.getAccountNumber());
099                    preparedStatement.setString(4, lb.getSubAccountNumber());
100                    preparedStatement.setString(5, lb.getFinancialObjectCode());
101                    preparedStatement.setString(6, lb.getFinancialSubObjectCode());
102                    preparedStatement.setString(7, lb.getFinancialBalanceTypeCode());
103                    preparedStatement.setString(8, lb.getFinancialObjectTypeCode());
104                    preparedStatement.setString(9, lb.getPositionNumber());
105                    preparedStatement.setString(10, lb.getEmplid());
106                }
107                @Override
108                protected LedgerBalance extractResult(ResultSet resultSet) throws SQLException {
109                    LedgerBalance ledgerBalance = new LedgerBalance();
110                    ledgerBalance.setUniversityFiscalYear(lb.getUniversityFiscalYear());
111                    ledgerBalance.setChartOfAccountsCode(lb.getChartOfAccountsCode());
112                    ledgerBalance.setAccountNumber(lb.getAccountNumber());
113                    ledgerBalance.setSubAccountNumber(lb.getSubAccountNumber());
114                    ledgerBalance.setFinancialObjectCode(lb.getFinancialObjectCode());
115                    ledgerBalance.setFinancialSubObjectCode(lb.getFinancialSubObjectCode());
116                    ledgerBalance.setFinancialBalanceTypeCode(lb.getFinancialBalanceTypeCode());
117                    ledgerBalance.setFinancialObjectTypeCode(lb.getFinancialObjectTypeCode());
118                    ledgerBalance.setPositionNumber(lb.getPositionNumber());
119                    ledgerBalance.setEmplid(lb.getEmplid());
120                    ledgerBalance.setAccountLineAnnualBalanceAmount(new KualiDecimal(resultSet.getBigDecimal(1)));
121                    ledgerBalance.setBeginningBalanceLineAmount(new KualiDecimal(resultSet.getBigDecimal(2)));
122                    ledgerBalance.setContractsGrantsBeginningBalanceAmount(new KualiDecimal(resultSet.getBigDecimal(3)));
123                    ledgerBalance.setMonth1Amount(new KualiDecimal(resultSet.getBigDecimal(4)));
124                    ledgerBalance.setMonth2Amount(new KualiDecimal(resultSet.getBigDecimal(5)));
125                    ledgerBalance.setMonth3Amount(new KualiDecimal(resultSet.getBigDecimal(6)));
126                    ledgerBalance.setMonth4Amount(new KualiDecimal(resultSet.getBigDecimal(7)));
127                    ledgerBalance.setMonth5Amount(new KualiDecimal(resultSet.getBigDecimal(8)));
128                    ledgerBalance.setMonth6Amount(new KualiDecimal(resultSet.getBigDecimal(9)));
129                    ledgerBalance.setMonth7Amount(new KualiDecimal(resultSet.getBigDecimal(10)));
130                    ledgerBalance.setMonth8Amount(new KualiDecimal(resultSet.getBigDecimal(11)));
131                    ledgerBalance.setMonth9Amount(new KualiDecimal(resultSet.getBigDecimal(12)));
132                    ledgerBalance.setMonth10Amount(new KualiDecimal(resultSet.getBigDecimal(13)));
133                    ledgerBalance.setMonth11Amount(new KualiDecimal(resultSet.getBigDecimal(14)));
134                    ledgerBalance.setMonth12Amount(new KualiDecimal(resultSet.getBigDecimal(15)));
135                    ledgerBalance.setMonth13Amount(new KualiDecimal(resultSet.getBigDecimal(16)));
136                    return ledgerBalance;
137                }
138            }.get(LedgerBalance.class);
139        }
140    
141        public void insertLedgerBalance(final LedgerBalance ledgerBalance) {
142            new InsertingJdbcWrapper<LedgerBalance>() {
143                @Override
144                protected void populateStatement(PreparedStatement preparedStatement) throws SQLException {
145                    preparedStatement.setInt(1, ledgerBalance.getUniversityFiscalYear());
146                    preparedStatement.setString(2, ledgerBalance.getChartOfAccountsCode());
147                    preparedStatement.setString(3, ledgerBalance.getAccountNumber());
148                    preparedStatement.setString(4, ledgerBalance.getSubAccountNumber());
149                    preparedStatement.setString(5, ledgerBalance.getFinancialObjectCode());
150                    preparedStatement.setString(6, ledgerBalance.getFinancialSubObjectCode());
151                    preparedStatement.setString(7, ledgerBalance.getFinancialBalanceTypeCode());
152                    preparedStatement.setString(8, ledgerBalance.getFinancialObjectTypeCode());
153                    preparedStatement.setString(9, ledgerBalance.getPositionNumber());
154                    preparedStatement.setString(10, ledgerBalance.getEmplid());
155                    if (ledgerBalance.getObjectId() == null) {
156                        preparedStatement.setString(11, new Guid().toString());
157                    }
158                    else {
159                        preparedStatement.setString(11, ledgerBalance.getObjectId());
160                    }
161                    if (ledgerBalance.getVersionNumber() == null) {
162                        preparedStatement.setLong(12, 1);
163                    }
164                    else {
165                        preparedStatement.setLong(12, ledgerBalance.getVersionNumber());
166                    }
167                    preparedStatement.setBigDecimal(13, ledgerBalance.getAccountLineAnnualBalanceAmount().bigDecimalValue());
168                    preparedStatement.setBigDecimal(14, ledgerBalance.getBeginningBalanceLineAmount().bigDecimalValue());
169                    preparedStatement.setBigDecimal(15, ledgerBalance.getContractsGrantsBeginningBalanceAmount().bigDecimalValue());
170                    preparedStatement.setBigDecimal(16, ledgerBalance.getMonth1Amount().bigDecimalValue());
171                    preparedStatement.setBigDecimal(17, ledgerBalance.getMonth2Amount().bigDecimalValue());
172                    preparedStatement.setBigDecimal(18, ledgerBalance.getMonth3Amount().bigDecimalValue());
173                    preparedStatement.setBigDecimal(19, ledgerBalance.getMonth4Amount().bigDecimalValue());
174                    preparedStatement.setBigDecimal(20, ledgerBalance.getMonth5Amount().bigDecimalValue());
175                    preparedStatement.setBigDecimal(21, ledgerBalance.getMonth6Amount().bigDecimalValue());
176                    preparedStatement.setBigDecimal(22, ledgerBalance.getMonth7Amount().bigDecimalValue());
177                    preparedStatement.setBigDecimal(23, ledgerBalance.getMonth8Amount().bigDecimalValue());
178                    preparedStatement.setBigDecimal(24, ledgerBalance.getMonth9Amount().bigDecimalValue());
179                    preparedStatement.setBigDecimal(25, ledgerBalance.getMonth10Amount().bigDecimalValue());
180                    preparedStatement.setBigDecimal(26, ledgerBalance.getMonth11Amount().bigDecimalValue());
181                    preparedStatement.setBigDecimal(27, ledgerBalance.getMonth12Amount().bigDecimalValue());
182                    preparedStatement.setBigDecimal(28, ledgerBalance.getMonth13Amount().bigDecimalValue());
183                    preparedStatement.setTimestamp(29, dateTimeService.getCurrentTimestamp());
184               }
185            }.execute(LedgerBalance.class);
186        }
187    
188        public void updateLedgerBalance(final LedgerBalance ledgerBalance) {
189            new UpdatingJdbcWrapper<LedgerBalance>() {
190                @Override
191                protected void populateStatement(PreparedStatement preparedStatement) throws SQLException {
192                    preparedStatement.setBigDecimal(1, ledgerBalance.getAccountLineAnnualBalanceAmount().bigDecimalValue());
193                    preparedStatement.setBigDecimal(2, ledgerBalance.getBeginningBalanceLineAmount().bigDecimalValue());
194                    preparedStatement.setBigDecimal(3, ledgerBalance.getContractsGrantsBeginningBalanceAmount().bigDecimalValue());
195                    preparedStatement.setBigDecimal(4, ledgerBalance.getMonth1Amount().bigDecimalValue());
196                    preparedStatement.setBigDecimal(5, ledgerBalance.getMonth2Amount().bigDecimalValue());
197                    preparedStatement.setBigDecimal(6, ledgerBalance.getMonth3Amount().bigDecimalValue());
198                    preparedStatement.setBigDecimal(7, ledgerBalance.getMonth4Amount().bigDecimalValue());
199                    preparedStatement.setBigDecimal(8, ledgerBalance.getMonth5Amount().bigDecimalValue());
200                    preparedStatement.setBigDecimal(9, ledgerBalance.getMonth6Amount().bigDecimalValue());
201                    preparedStatement.setBigDecimal(10, ledgerBalance.getMonth7Amount().bigDecimalValue());
202                    preparedStatement.setBigDecimal(11, ledgerBalance.getMonth8Amount().bigDecimalValue());
203                    preparedStatement.setBigDecimal(12, ledgerBalance.getMonth9Amount().bigDecimalValue());
204                    preparedStatement.setBigDecimal(13, ledgerBalance.getMonth10Amount().bigDecimalValue());
205                    preparedStatement.setBigDecimal(14, ledgerBalance.getMonth11Amount().bigDecimalValue());
206                    preparedStatement.setBigDecimal(15, ledgerBalance.getMonth12Amount().bigDecimalValue());
207                    preparedStatement.setBigDecimal(16, ledgerBalance.getMonth13Amount().bigDecimalValue());
208                    preparedStatement.setTimestamp(17, dateTimeService.getCurrentTimestamp());
209                    preparedStatement.setInt(18, ledgerBalance.getUniversityFiscalYear());
210                    preparedStatement.setString(19, ledgerBalance.getChartOfAccountsCode());
211                    preparedStatement.setString(20, ledgerBalance.getAccountNumber());
212                    preparedStatement.setString(21, ledgerBalance.getSubAccountNumber());
213                    preparedStatement.setString(22, ledgerBalance.getFinancialObjectCode());
214                    preparedStatement.setString(23, ledgerBalance.getFinancialSubObjectCode());
215                    preparedStatement.setString(24, ledgerBalance.getFinancialBalanceTypeCode());
216                    preparedStatement.setString(25, ledgerBalance.getFinancialObjectTypeCode());
217                    preparedStatement.setString(26, ledgerBalance.getPositionNumber());
218                    preparedStatement.setString(27, ledgerBalance.getEmplid());
219               }
220            }.execute(LedgerBalance.class);
221        }
222        
223        public void insertLedgerEntry(final LedgerEntry ledgerEntry) {
224            new InsertingJdbcWrapper<LedgerEntry>() {
225                @Override
226                protected void populateStatement(PreparedStatement preparedStatement) throws SQLException {
227                    preparedStatement.setInt(1, ledgerEntry.getUniversityFiscalYear());
228                    preparedStatement.setString(2, ledgerEntry.getChartOfAccountsCode());
229                    preparedStatement.setString(3, ledgerEntry.getAccountNumber());
230                    preparedStatement.setString(4, ledgerEntry.getSubAccountNumber());
231                    preparedStatement.setString(5, ledgerEntry.getFinancialObjectCode());
232                    preparedStatement.setString(6, ledgerEntry.getFinancialSubObjectCode());
233                    preparedStatement.setString(7, ledgerEntry.getFinancialBalanceTypeCode());
234                    preparedStatement.setString(8, ledgerEntry.getFinancialObjectTypeCode());
235                    preparedStatement.setString(9, ledgerEntry.getUniversityFiscalPeriodCode());
236                    preparedStatement.setString(10, ledgerEntry.getFinancialDocumentTypeCode());
237                    preparedStatement.setString(11, ledgerEntry.getFinancialSystemOriginationCode());
238                    preparedStatement.setString(12, ledgerEntry.getDocumentNumber());
239                    preparedStatement.setInt(13, ledgerEntry.getTransactionLedgerEntrySequenceNumber());
240                    if (ledgerEntry.getObjectId() == null) {
241                        preparedStatement.setString(14, new Guid().toString());
242                    }
243                    else
244                    {
245                        preparedStatement.setString(14, ledgerEntry.getObjectId());
246                    }
247                    if (ledgerEntry.getVersionNumber() == null) {
248                        preparedStatement.setLong(15, 1);
249                    }
250                    else
251                    {
252                        preparedStatement.setLong(15, ledgerEntry.getVersionNumber()); 
253                    }
254                    preparedStatement.setString(16, ledgerEntry.getPositionNumber());
255                    preparedStatement.setString(17, ledgerEntry.getProjectCode());
256                    preparedStatement.setString(18, ledgerEntry.getTransactionLedgerEntryDescription());
257                    preparedStatement.setBigDecimal(19, ledgerEntry.getTransactionLedgerEntryAmount().bigDecimalValue());
258                    preparedStatement.setString(20, ledgerEntry.getTransactionDebitCreditCode());
259                    preparedStatement.setDate(21, ledgerEntry.getTransactionDate());
260                    preparedStatement.setString(22, ledgerEntry.getOrganizationDocumentNumber());
261                    preparedStatement.setString(23, ledgerEntry.getOrganizationReferenceId());
262                    preparedStatement.setString(24, ledgerEntry.getReferenceFinancialDocumentTypeCode());
263                    preparedStatement.setString(25, ledgerEntry.getReferenceFinancialSystemOriginationCode());
264                    preparedStatement.setString(26, ledgerEntry.getReferenceFinancialDocumentNumber());
265                    preparedStatement.setDate(27, ledgerEntry.getFinancialDocumentReversalDate());
266                    preparedStatement.setString(28, ledgerEntry.getTransactionEncumbranceUpdateCode());
267                    preparedStatement.setDate(29, ledgerEntry.getTransactionPostingDate());
268                    preparedStatement.setDate(30, ledgerEntry.getPayPeriodEndDate());
269                    preparedStatement.setBigDecimal(31, ledgerEntry.getTransactionTotalHours());
270                    if (ledgerEntry.getPayrollEndDateFiscalYear() == null) {
271                        preparedStatement.setNull(32, java.sql.Types.INTEGER);
272                    }
273                    else {
274                        preparedStatement.setInt(32, ledgerEntry.getPayrollEndDateFiscalYear());
275                    }
276                    preparedStatement.setString(33, ledgerEntry.getPayrollEndDateFiscalPeriodCode());
277                    preparedStatement.setString(34, ledgerEntry.getEmplid());
278                    if (ledgerEntry.getEmployeeRecord() == null) {
279                        preparedStatement.setNull(35, java.sql.Types.INTEGER);
280                    }
281                    else {
282                        preparedStatement.setInt(35, ledgerEntry.getEmployeeRecord());
283                    }
284                    preparedStatement.setString(36, ledgerEntry.getEarnCode());
285                    preparedStatement.setString(37, ledgerEntry.getPayGroup());
286                    preparedStatement.setString(38, ledgerEntry.getSalaryAdministrationPlan());
287                    preparedStatement.setString(39, ledgerEntry.getGrade());
288                    preparedStatement.setString(40, ledgerEntry.getRunIdentifier());
289                    preparedStatement.setString(41, ledgerEntry.getLaborLedgerOriginalChartOfAccountsCode());
290                    preparedStatement.setString(42, ledgerEntry.getLaborLedgerOriginalAccountNumber());
291                    preparedStatement.setString(43, ledgerEntry.getLaborLedgerOriginalSubAccountNumber());
292                    preparedStatement.setString(44, ledgerEntry.getLaborLedgerOriginalFinancialObjectCode());
293                    preparedStatement.setString(45, ledgerEntry.getLaborLedgerOriginalFinancialSubObjectCode());
294                    preparedStatement.setString(46, ledgerEntry.getHrmsCompany());
295                    preparedStatement.setString(47, ledgerEntry.getSetid());
296                    preparedStatement.setTimestamp(48, ledgerEntry.getTransactionDateTimeStamp());
297               }
298            }.execute(LedgerEntry.class);
299        }
300    }