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.service.impl; 017 018 import org.kuali.kfs.coa.service.ObjectCodeService; 019 import org.kuali.kfs.coa.service.OffsetDefinitionService; 020 import org.kuali.kfs.gl.service.OriginEntryGroupService; 021 import org.kuali.kfs.gl.service.PreScrubberService; 022 import org.kuali.kfs.gl.service.ScrubberValidator; 023 import org.kuali.kfs.module.ld.batch.service.LaborAccountingCycleCachingService; 024 import org.kuali.kfs.module.ld.batch.service.LaborScrubberService; 025 import org.kuali.kfs.module.ld.service.LaborOriginEntryService; 026 import org.kuali.kfs.sys.dataaccess.UniversityDateDao; 027 import org.kuali.kfs.sys.service.DocumentNumberAwareReportWriterService; 028 import org.kuali.kfs.sys.service.FlexibleOffsetAccountService; 029 import org.kuali.kfs.sys.service.ReportWriterService; 030 import org.kuali.rice.kns.service.DateTimeService; 031 import org.kuali.rice.kns.service.KualiConfigurationService; 032 import org.kuali.rice.kns.service.ParameterService; 033 import org.kuali.rice.kns.service.PersistenceService; 034 import org.springframework.transaction.annotation.Transactional; 035 036 /** 037 * Service implementation of LaborScrubberService. 038 */ 039 @Transactional 040 public class LaborScrubberServiceImpl implements LaborScrubberService { 041 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(LaborScrubberServiceImpl.class); 042 043 private FlexibleOffsetAccountService flexibleOffsetAccountService; 044 private LaborOriginEntryService laborOriginEntryService; 045 private OriginEntryGroupService originEntryGroupService; 046 private DateTimeService dateTimeService; 047 private OffsetDefinitionService offsetDefinitionService; 048 private ObjectCodeService objectCodeService; 049 private KualiConfigurationService kualiConfigurationService; 050 private UniversityDateDao universityDateDao; 051 private PersistenceService persistenceService; 052 private ScrubberValidator scrubberValidator; 053 private LaborAccountingCycleCachingService laborAccountingCycleCachingService; 054 private PreScrubberService laborPreScrubberService; 055 private DocumentNumberAwareReportWriterService llcpPreScrubberReportWriterService; 056 057 private DocumentNumberAwareReportWriterService laborMainReportWriterService; 058 private DocumentNumberAwareReportWriterService llcpMainReportWriterService; 059 private DocumentNumberAwareReportWriterService laborLedgerReportWriterService; 060 private DocumentNumberAwareReportWriterService llcpLedgerReportWriterService; 061 private ReportWriterService laborBadBalanceTypeReportWriterService; 062 private ReportWriterService laborErrorListingReportWriterService; 063 private DocumentNumberAwareReportWriterService laborGeneratedTransactionsReportWriterService; 064 private ReportWriterService laborDemergerReportWriterService; 065 private ParameterService parameterService; 066 067 private String batchFileDirectoryName; 068 069 /** 070 * @see org.kuali.module.labor.service.ScrubberService#scrubGroupReportOnly(org.kuali.kfs.gl.businessobject.OriginEntryGroup) 071 */ 072 synchronized public void scrubGroupReportOnly(String fileName, String documentNumber) { 073 LOG.debug("scrubGroupReportOnly() started"); 074 075 // The logic for this was moved into another object because the process was written using 076 // many instance variables which shouldn't be used for Spring services 077 078 LaborScrubberProcess sp = new LaborScrubberProcess(flexibleOffsetAccountService, laborAccountingCycleCachingService, laborOriginEntryService, originEntryGroupService, dateTimeService, offsetDefinitionService, objectCodeService, kualiConfigurationService, universityDateDao, persistenceService, scrubberValidator, batchFileDirectoryName, 079 llcpMainReportWriterService, llcpLedgerReportWriterService, laborBadBalanceTypeReportWriterService, laborErrorListingReportWriterService, laborGeneratedTransactionsReportWriterService, laborDemergerReportWriterService, laborPreScrubberService, llcpPreScrubberReportWriterService, parameterService); 080 sp.scrubGroupReportOnly(fileName, documentNumber); 081 } 082 083 /** 084 * @see org.kuali.module.labor.service.ScrubberService#scrubEntries() 085 */ 086 public void scrubEntries() { 087 LOG.debug("scrubEntries() started"); 088 089 // The logic for this was moved into another object because the process was written using 090 // many instance variables which shouldn't be used for Spring services 091 092 LaborScrubberProcess sp = new LaborScrubberProcess(flexibleOffsetAccountService, laborAccountingCycleCachingService, laborOriginEntryService, originEntryGroupService, dateTimeService, offsetDefinitionService, objectCodeService, kualiConfigurationService, universityDateDao, persistenceService, scrubberValidator, batchFileDirectoryName, 093 laborMainReportWriterService, laborLedgerReportWriterService, laborBadBalanceTypeReportWriterService, laborErrorListingReportWriterService, laborGeneratedTransactionsReportWriterService, laborDemergerReportWriterService, null, null, parameterService); 094 sp.scrubEntries(); 095 } 096 097 public void performDemerger() { 098 LOG.debug("performDemerger() started"); 099 LaborScrubberProcess sp = new LaborScrubberProcess(flexibleOffsetAccountService, laborAccountingCycleCachingService, laborOriginEntryService, originEntryGroupService, dateTimeService, offsetDefinitionService, objectCodeService, kualiConfigurationService, universityDateDao, persistenceService, scrubberValidator, batchFileDirectoryName, 100 laborMainReportWriterService, laborLedgerReportWriterService, laborBadBalanceTypeReportWriterService, laborErrorListingReportWriterService, laborGeneratedTransactionsReportWriterService, laborDemergerReportWriterService, null, null, parameterService); 101 sp.performDemerger(); 102 103 } 104 105 /** 106 * Sets the setScrubberValidator attribute value. 107 * 108 * @param sv The setScrubberValidator to set. 109 */ 110 public void setScrubberValidator(ScrubberValidator sv) { 111 scrubberValidator = sv; 112 } 113 114 /** 115 * Sets the laborOriginEntryService attribute value. 116 * 117 * @param loes The laborOriginEntryService to set. 118 */ 119 public void setLaborOriginEntryService(LaborOriginEntryService loes) { 120 this.laborOriginEntryService = loes; 121 } 122 123 /** 124 * Sets the originEntryGroupService attribute value. 125 * 126 * @param groupService The originEntryGroupService to set. 127 */ 128 public void setOriginEntryGroupService(OriginEntryGroupService groupService) { 129 this.originEntryGroupService = groupService; 130 } 131 132 /** 133 * Sets the dateTimeService attribute value. 134 * 135 * @param dts The dateTimeService to set. 136 */ 137 public void setDateTimeService(DateTimeService dts) { 138 this.dateTimeService = dts; 139 } 140 141 /** 142 * Sets the universityDateDao attribute value. 143 * 144 * @param universityDateDao The universityDateDao to set. 145 */ 146 public void setUniversityDateDao(UniversityDateDao universityDateDao) { 147 this.universityDateDao = universityDateDao; 148 } 149 150 /** 151 * Sets the persistenceService attribute value. 152 * 153 * @param ps The persistenceService to set. 154 */ 155 public void setPersistenceService(PersistenceService ps) { 156 persistenceService = ps; 157 } 158 159 /** 160 * Sets the offsetDefinitionService attribute value. 161 * 162 * @param offsetDefinitionService The offsetDefinitionService to set. 163 */ 164 public void setOffsetDefinitionService(OffsetDefinitionService offsetDefinitionService) { 165 this.offsetDefinitionService = offsetDefinitionService; 166 } 167 168 /** 169 * Sets the objectCodeService attribute value. 170 * 171 * @param objectCodeService The objectCodeService to set. 172 */ 173 public void setObjectCodeService(ObjectCodeService objectCodeService) { 174 this.objectCodeService = objectCodeService; 175 } 176 177 /** 178 * Sets the kualiConfigurationService attribute value. 179 * 180 * @param kualiConfigurationService The kualiConfigurationService to set. 181 */ 182 public void setKualiConfigurationService(KualiConfigurationService kualiConfigurationService) { 183 this.kualiConfigurationService = kualiConfigurationService; 184 } 185 186 public void setBatchFileDirectoryName(String batchFileDirectoryName) { 187 this.batchFileDirectoryName = batchFileDirectoryName; 188 } 189 190 /** 191 * Sets the flexibleOffsetAccountService attribute value. 192 * @param flexibleOffsetAccountService The flexibleOffsetAccountService to set. 193 */ 194 public void setFlexibleOffsetAccountService(FlexibleOffsetAccountService flexibleOffsetAccountService) { 195 this.flexibleOffsetAccountService = flexibleOffsetAccountService; 196 } 197 198 199 public void setLaborAccountingCycleCachingService(LaborAccountingCycleCachingService laborAccountingCycleCachingService) { 200 this.laborAccountingCycleCachingService = laborAccountingCycleCachingService; 201 } 202 203 /** 204 * @param laborMainReportWriterService The laborMainReportWriterService to set. 205 */ 206 public void setLaborMainReportWriterService(DocumentNumberAwareReportWriterService laborMainReportWriterService) { 207 this.laborMainReportWriterService = laborMainReportWriterService; 208 } 209 210 /** 211 * @param laborLedgerReportWriterService The laborLedgerReportWriterService to set. 212 */ 213 public void setLaborLedgerReportWriterService(DocumentNumberAwareReportWriterService laborLedgerReportWriterService) { 214 this.laborLedgerReportWriterService = laborLedgerReportWriterService; 215 } 216 217 /** 218 * @param laborBadBalanceTypeReportWriterService The laborBadBalanceTypeReportWriterService to set. 219 */ 220 public void setLaborBadBalanceTypeReportWriterService(ReportWriterService laborBadBalanceTypeReportWriterService) { 221 this.laborBadBalanceTypeReportWriterService = laborBadBalanceTypeReportWriterService; 222 } 223 224 /** 225 * @param laborErrorListingReportWriterService The laborErrorListingReportWriterService to set. 226 */ 227 public void setLaborErrorListingReportWriterService(ReportWriterService laborErrorListingReportWriterService) { 228 this.laborErrorListingReportWriterService = laborErrorListingReportWriterService; 229 } 230 231 /** 232 * @param laborGeneratedTransactionsReportWriterService The laborGeneratedTransactionsReportWriterService to set. 233 */ 234 public void setLaborGeneratedTransactionsReportWriterService(DocumentNumberAwareReportWriterService laborGeneratedTransactionsReportWriterService) { 235 this.laborGeneratedTransactionsReportWriterService = laborGeneratedTransactionsReportWriterService; 236 } 237 238 /** 239 * @param laborDemergerReportWriterService The laborDemergerReportWriterService to set. 240 */ 241 public void setLaborDemergerReportWriterService(ReportWriterService laborDemergerReportWriterService) { 242 this.laborDemergerReportWriterService = laborDemergerReportWriterService; 243 } 244 245 /** 246 * Sets the llcpMainReportWriterService attribute value. 247 * @param llcpMainReportWriterService The llcpMainReportWriterService to set. 248 */ 249 public void setLlcpMainReportWriterService(DocumentNumberAwareReportWriterService llcpMainReportWriterService) { 250 this.llcpMainReportWriterService = llcpMainReportWriterService; 251 } 252 253 /** 254 * Sets the llcpLedgerReportWriterService attribute value. 255 * @param llcpLedgerReportWriterService The llcpLedgerReportWriterService to set. 256 */ 257 public void setLlcpLedgerReportWriterService(DocumentNumberAwareReportWriterService llcpLedgerReportWriterService) { 258 this.llcpLedgerReportWriterService = llcpLedgerReportWriterService; 259 } 260 261 /** 262 * Gets the laborPreScrubberService attribute. 263 * @return Returns the laborPreScrubberService. 264 */ 265 public PreScrubberService getLaborPreScrubberService() { 266 return laborPreScrubberService; 267 } 268 269 /** 270 * Sets the laborPreScrubberService attribute value. 271 * @param laborPreScrubberService The laborPreScrubberService to set. 272 */ 273 public void setLaborPreScrubberService(PreScrubberService laborPreScrubberService) { 274 this.laborPreScrubberService = laborPreScrubberService; 275 } 276 277 /** 278 * Sets the laborPreScrubberAwareReportWriterService attribute value. 279 * @param laborPreScrubberAwareReportWriterService The laborPreScrubberAwareReportWriterService to set. 280 */ 281 public void setLlcpPreScrubberReportWriterService(DocumentNumberAwareReportWriterService llcpPreScrubberReportWriterService) { 282 this.llcpPreScrubberReportWriterService = llcpPreScrubberReportWriterService; 283 } 284 285 /** 286 * Sets the parameterService attribute value. 287 * @param parameterService The parameterService to set. 288 */ 289 public void setParameterService(ParameterService parameterService) { 290 this.parameterService = parameterService; 291 } 292 }