View Javadoc
1   /*
2    * The Kuali Financial System, a comprehensive financial management system for higher education.
3    * 
4    * Copyright 2005-2014 The Kuali Foundation
5    * 
6    * This program is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU Affero General Public License as
8    * published by the Free Software Foundation, either version 3 of the
9    * License, or (at your option) any later version.
10   * 
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU Affero General Public License for more details.
15   * 
16   * You should have received a copy of the GNU Affero General Public License
17   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  package org.kuali.kfs.module.ld.batch;
20  
21  import java.util.Date;
22  import java.util.List;
23  
24  import org.apache.commons.lang.StringUtils;
25  import org.kuali.kfs.coa.service.ChartService;
26  import org.kuali.kfs.module.ld.LaborConstants;
27  import org.kuali.kfs.module.ld.service.LaborLedgerBalanceService;
28  import org.kuali.kfs.sys.batch.AbstractStep;
29  
30  /**
31   * The step is used to remove the labor ledger balances posted before the given year from database
32   */
33  public class LaborPurgeBalanceStep extends AbstractStep {
34      private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(LaborPurgeBalanceStep.class);
35  
36      private ChartService chartService;
37      private LaborLedgerBalanceService laborLedgerBalanceService;
38  
39      /**
40       * @see org.kuali.kfs.sys.batch.Step#execute(java.lang.String, java.util.Date)
41       */
42      public boolean execute(String jobName, Date jobRunDate) throws InterruptedException {
43          String fiscalYearAsString = getParameterService().getParameterValueAsString(getClass(), LaborConstants.PurgeJob.PURGE_LEDGER_BALANCE_YEAR);
44          LOG.info("Purge labor balances posted before the year: " + fiscalYearAsString);
45  
46          Integer fiscalYear = Integer.parseInt(StringUtils.trim(fiscalYearAsString));
47          
48          List<String> allChartOfAccountsCode = chartService.getAllChartCodes();
49          for (String chartOfAccountsCode : allChartOfAccountsCode) {
50              laborLedgerBalanceService.deleteLedgerBalancesPriorToYear(fiscalYear, chartOfAccountsCode);
51          }
52  
53          return true;
54      }
55  
56      /**
57       * Sets the chartService attribute value.
58       * 
59       * @param chartService The chartService to set.
60       */
61      public void setChartService(ChartService chartService) {
62          this.chartService = chartService;
63      }
64  
65      /**
66       * Sets the laborLedgerBalanceService attribute value.
67       * 
68       * @param laborLedgerBalanceService The laborLedgerBalanceService to set.
69       */
70      public void setLaborLedgerBalanceService(LaborLedgerBalanceService laborLedgerBalanceService) {
71          this.laborLedgerBalanceService = laborLedgerBalanceService;
72      }
73  }