/* * 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.module.ld.batch.service.impl; import org.kuali.kfs.coa.service.ObjectCodeService; import org.kuali.kfs.coa.service.OffsetDefinitionService; import org.kuali.kfs.gl.service.OriginEntryGroupService; import org.kuali.kfs.gl.service.PreScrubberService; import org.kuali.kfs.gl.service.ScrubberValidator; import org.kuali.kfs.module.ld.batch.service.LaborAccountingCycleCachingService; import org.kuali.kfs.module.ld.batch.service.LaborScrubberService; import org.kuali.kfs.module.ld.service.LaborOriginEntryService; import org.kuali.kfs.sys.dataaccess.UniversityDateDao; import org.kuali.kfs.sys.service.DocumentNumberAwareReportWriterService; import org.kuali.kfs.sys.service.FlexibleOffsetAccountService; import org.kuali.kfs.sys.service.ReportWriterService; import org.kuali.rice.core.api.config.property.ConfigurationService; import org.kuali.rice.core.api.datetime.DateTimeService; import org.kuali.rice.coreservice.framework.parameter.ParameterService; import org.kuali.rice.krad.service.PersistenceService; import org.springframework.transaction.annotation.Transactional; /** * Service implementation of LaborScrubberService. */ @Transactional public class LaborScrubberServiceImpl implements LaborScrubberService { private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(LaborScrubberServiceImpl.class); private FlexibleOffsetAccountService flexibleOffsetAccountService; private LaborOriginEntryService laborOriginEntryService; private OriginEntryGroupService originEntryGroupService; private DateTimeService dateTimeService; private OffsetDefinitionService offsetDefinitionService; private ObjectCodeService objectCodeService; private ConfigurationService kualiConfigurationService; private UniversityDateDao universityDateDao; private PersistenceService persistenceService; private ScrubberValidator scrubberValidator; private LaborAccountingCycleCachingService laborAccountingCycleCachingService; private PreScrubberService laborPreScrubberService; private DocumentNumberAwareReportWriterService llcpPreScrubberReportWriterService; private DocumentNumberAwareReportWriterService laborMainReportWriterService; private DocumentNumberAwareReportWriterService llcpMainReportWriterService; private DocumentNumberAwareReportWriterService laborLedgerReportWriterService; private DocumentNumberAwareReportWriterService llcpLedgerReportWriterService; private ReportWriterService laborBadBalanceTypeReportWriterService; private ReportWriterService laborErrorListingReportWriterService; private DocumentNumberAwareReportWriterService laborGeneratedTransactionsReportWriterService; private ReportWriterService laborDemergerReportWriterService; private ParameterService parameterService; private String batchFileDirectoryName; /** * @see org.kuali.module.labor.service.ScrubberService#scrubGroupReportOnly(org.kuali.kfs.gl.businessobject.OriginEntryGroup) */ synchronized public void scrubGroupReportOnly(String fileName, String documentNumber) { LOG.debug("scrubGroupReportOnly() started"); // The logic for this was moved into another object because the process was written using // many instance variables which shouldn't be used for Spring services LaborScrubberProcess sp = new LaborScrubberProcess(flexibleOffsetAccountService, laborAccountingCycleCachingService, laborOriginEntryService, originEntryGroupService, dateTimeService, offsetDefinitionService, objectCodeService, kualiConfigurationService, universityDateDao, persistenceService, scrubberValidator, batchFileDirectoryName, llcpMainReportWriterService, llcpLedgerReportWriterService, laborBadBalanceTypeReportWriterService, laborErrorListingReportWriterService, laborGeneratedTransactionsReportWriterService, laborDemergerReportWriterService, laborPreScrubberService, llcpPreScrubberReportWriterService, parameterService); sp.scrubGroupReportOnly(fileName, documentNumber); } /** * @see org.kuali.module.labor.service.ScrubberService#scrubEntries() */ public void scrubEntries() { LOG.debug("scrubEntries() started"); // The logic for this was moved into another object because the process was written using // many instance variables which shouldn't be used for Spring services LaborScrubberProcess sp = new LaborScrubberProcess(flexibleOffsetAccountService, laborAccountingCycleCachingService, laborOriginEntryService, originEntryGroupService, dateTimeService, offsetDefinitionService, objectCodeService, kualiConfigurationService, universityDateDao, persistenceService, scrubberValidator, batchFileDirectoryName, laborMainReportWriterService, laborLedgerReportWriterService, laborBadBalanceTypeReportWriterService, laborErrorListingReportWriterService, laborGeneratedTransactionsReportWriterService, laborDemergerReportWriterService, null, null, parameterService); sp.scrubEntries(); } public void performDemerger() { LOG.debug("performDemerger() started"); LaborScrubberProcess sp = new LaborScrubberProcess(flexibleOffsetAccountService, laborAccountingCycleCachingService, laborOriginEntryService, originEntryGroupService, dateTimeService, offsetDefinitionService, objectCodeService, kualiConfigurationService, universityDateDao, persistenceService, scrubberValidator, batchFileDirectoryName, laborMainReportWriterService, laborLedgerReportWriterService, laborBadBalanceTypeReportWriterService, laborErrorListingReportWriterService, laborGeneratedTransactionsReportWriterService, laborDemergerReportWriterService, null, null, parameterService); sp.performDemerger(); } /** * Sets the setScrubberValidator attribute value. * * @param sv The setScrubberValidator to set. */ public void setScrubberValidator(ScrubberValidator sv) { scrubberValidator = sv; } /** * Sets the laborOriginEntryService attribute value. * * @param loes The laborOriginEntryService to set. */ public void setLaborOriginEntryService(LaborOriginEntryService loes) { this.laborOriginEntryService = loes; } /** * Sets the originEntryGroupService attribute value. * * @param groupService The originEntryGroupService to set. */ public void setOriginEntryGroupService(OriginEntryGroupService groupService) { this.originEntryGroupService = groupService; } /** * Sets the dateTimeService attribute value. * * @param dts The dateTimeService to set. */ public void setDateTimeService(DateTimeService dts) { this.dateTimeService = dts; } /** * Sets the universityDateDao attribute value. * * @param universityDateDao The universityDateDao to set. */ public void setUniversityDateDao(UniversityDateDao universityDateDao) { this.universityDateDao = universityDateDao; } /** * Sets the persistenceService attribute value. * * @param ps The persistenceService to set. */ public void setPersistenceService(PersistenceService ps) { persistenceService = ps; } /** * Sets the offsetDefinitionService attribute value. * * @param offsetDefinitionService The offsetDefinitionService to set. */ public void setOffsetDefinitionService(OffsetDefinitionService offsetDefinitionService) { this.offsetDefinitionService = offsetDefinitionService; } /** * Sets the objectCodeService attribute value. * * @param objectCodeService The objectCodeService to set. */ public void setObjectCodeService(ObjectCodeService objectCodeService) { this.objectCodeService = objectCodeService; } /** * Sets the kualiConfigurationService attribute value. * * @param kualiConfigurationService The kualiConfigurationService to set. */ public void setConfigurationService(ConfigurationService kualiConfigurationService) { this.kualiConfigurationService = kualiConfigurationService; } public void setBatchFileDirectoryName(String batchFileDirectoryName) { this.batchFileDirectoryName = batchFileDirectoryName; } /** * Sets the flexibleOffsetAccountService attribute value. * @param flexibleOffsetAccountService The flexibleOffsetAccountService to set. */ public void setFlexibleOffsetAccountService(FlexibleOffsetAccountService flexibleOffsetAccountService) { this.flexibleOffsetAccountService = flexibleOffsetAccountService; } public void setLaborAccountingCycleCachingService(LaborAccountingCycleCachingService laborAccountingCycleCachingService) { this.laborAccountingCycleCachingService = laborAccountingCycleCachingService; } /** * @param laborMainReportWriterService The laborMainReportWriterService to set. */ public void setLaborMainReportWriterService(DocumentNumberAwareReportWriterService laborMainReportWriterService) { this.laborMainReportWriterService = laborMainReportWriterService; } /** * @param laborLedgerReportWriterService The laborLedgerReportWriterService to set. */ public void setLaborLedgerReportWriterService(DocumentNumberAwareReportWriterService laborLedgerReportWriterService) { this.laborLedgerReportWriterService = laborLedgerReportWriterService; } /** * @param laborBadBalanceTypeReportWriterService The laborBadBalanceTypeReportWriterService to set. */ public void setLaborBadBalanceTypeReportWriterService(ReportWriterService laborBadBalanceTypeReportWriterService) { this.laborBadBalanceTypeReportWriterService = laborBadBalanceTypeReportWriterService; } /** * @param laborErrorListingReportWriterService The laborErrorListingReportWriterService to set. */ public void setLaborErrorListingReportWriterService(ReportWriterService laborErrorListingReportWriterService) { this.laborErrorListingReportWriterService = laborErrorListingReportWriterService; } /** * @param laborGeneratedTransactionsReportWriterService The laborGeneratedTransactionsReportWriterService to set. */ public void setLaborGeneratedTransactionsReportWriterService(DocumentNumberAwareReportWriterService laborGeneratedTransactionsReportWriterService) { this.laborGeneratedTransactionsReportWriterService = laborGeneratedTransactionsReportWriterService; } /** * @param laborDemergerReportWriterService The laborDemergerReportWriterService to set. */ public void setLaborDemergerReportWriterService(ReportWriterService laborDemergerReportWriterService) { this.laborDemergerReportWriterService = laborDemergerReportWriterService; } /** * Sets the llcpMainReportWriterService attribute value. * @param llcpMainReportWriterService The llcpMainReportWriterService to set. */ public void setLlcpMainReportWriterService(DocumentNumberAwareReportWriterService llcpMainReportWriterService) { this.llcpMainReportWriterService = llcpMainReportWriterService; } /** * Sets the llcpLedgerReportWriterService attribute value. * @param llcpLedgerReportWriterService The llcpLedgerReportWriterService to set. */ public void setLlcpLedgerReportWriterService(DocumentNumberAwareReportWriterService llcpLedgerReportWriterService) { this.llcpLedgerReportWriterService = llcpLedgerReportWriterService; } /** * Gets the laborPreScrubberService attribute. * @return Returns the laborPreScrubberService. */ public PreScrubberService getLaborPreScrubberService() { return laborPreScrubberService; } /** * Sets the laborPreScrubberService attribute value. * @param laborPreScrubberService The laborPreScrubberService to set. */ public void setLaborPreScrubberService(PreScrubberService laborPreScrubberService) { this.laborPreScrubberService = laborPreScrubberService; } /** * Sets the laborPreScrubberAwareReportWriterService attribute value. * @param laborPreScrubberAwareReportWriterService The laborPreScrubberAwareReportWriterService to set. */ public void setLlcpPreScrubberReportWriterService(DocumentNumberAwareReportWriterService llcpPreScrubberReportWriterService) { this.llcpPreScrubberReportWriterService = llcpPreScrubberReportWriterService; } /** * Sets the parameterService attribute value. * @param parameterService The parameterService to set. */ public void setParameterService(ParameterService parameterService) { this.parameterService = parameterService; } }