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.endow.document.service.impl; 017 018 import java.util.ArrayList; 019 import java.util.Collection; 020 021 import org.kuali.kfs.module.endow.EndowParameterKeyConstants; 022 import org.kuali.kfs.module.endow.businessobject.KemidFee; 023 import org.kuali.kfs.module.endow.document.service.KEMService; 024 import org.kuali.kfs.module.endow.document.service.KemidFeeService; 025 import org.kuali.kfs.sys.service.impl.KfsParameterConstants; 026 import org.kuali.rice.kns.service.BusinessObjectService; 027 import org.kuali.rice.kns.service.ParameterService; 028 import org.kuali.rice.kns.util.KualiDecimal; 029 030 /** 031 * This class is the service implementation for the KemidFeeService. This is the default, Kuali provided implementation. 032 */ 033 public class KemidFeeServiceImpl implements KemidFeeService { 034 protected static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(KemidFeeServiceImpl.class); 035 036 private BusinessObjectService businessObjectService; 037 protected KEMService kemService; 038 protected ParameterService parameterService; 039 040 /** 041 * @see org.kuali.kfs.module.endow.document.service.KemidFeeService#getAllKemIdFee() 042 */ 043 public Collection <KemidFee> getAllKemIdFee() { 044 Collection <KemidFee> kemIdFee = new ArrayList(); 045 046 kemIdFee = businessObjectService.findAll(KemidFee.class); 047 048 return kemIdFee; 049 } 050 051 /** 052 * Updates the END_KEMID_FEE_T table records by setting the amounts in WAIVE_FEE_YTD to zero 053 * if current date is the first day of the institution's fiscal year 054 * @see org.kuali.kfs.module.endow.document.service.KemidFeeService#updateWaiverFeeYearToDateTotals() 055 */ 056 public boolean updateWaiverFeeYearToDateTotals() { 057 LOG.info("updateWaiverFeeYearToDateTotals() process started"); 058 059 boolean updated = true; 060 061 if (!systemParametersForUpdateWaiverFeeAmounts()) { 062 return false; 063 } 064 065 try { 066 java.sql.Date firstDayAfterFiscalYear = kemService.getFirstDayAfterFiscalYearEndDayAndMonth(); 067 068 if (firstDayAfterFiscalYear.equals(kemService.getCurrentDate())) { 069 //update END_KEMID_FEE_T: 070 Collection <KemidFee> kemidFeeRecords = getAllKemIdFee(); 071 072 for (KemidFee kemidFee : kemidFeeRecords) { 073 kemidFee.setTotalWaivedFees(KualiDecimal.ZERO); 074 businessObjectService.save(kemidFee); 075 } 076 } 077 078 return updated; 079 } 080 catch (Exception exception) { 081 return false; 082 } 083 } 084 085 /** 086 * This method checks if the System parameters have been set up for this batch job. 087 * @result return true if the system parameters exist, else false 088 */ 089 protected boolean systemParametersForUpdateWaiverFeeAmounts() { 090 LOG.info("systemParametersForUpdateWaiverFeeAmounts() started."); 091 092 boolean systemParameterExists = true; 093 094 // check to make sure the system parameter has been setup... 095 if (!getParameterService().parameterExists(KfsParameterConstants.ENDOWMENT_BATCH.class, EndowParameterKeyConstants.FISCAL_YEAR_END_MONTH_AND_DAY)) { 096 LOG.warn("FISCAL_YEAR_END_MONTH_AND_DAY System parameter does not exist in the parameters list. The job can not continue without this parameter"); 097 return false; 098 } 099 100 return systemParameterExists; 101 } 102 103 /** 104 * This method gets the businessObjectService. 105 * 106 * @return businessObjectService 107 */ 108 public BusinessObjectService getBusinessObjectService() { 109 return businessObjectService; 110 } 111 112 /** 113 * This method sets the businessObjectService 114 * 115 * @param businessObjectService 116 */ 117 public void setBusinessObjectService(BusinessObjectService businessObjectService) { 118 this.businessObjectService = businessObjectService; 119 } 120 121 /** 122 * Gets the kemService. 123 * @return kemService 124 */ 125 protected KEMService getKemService() { 126 return kemService; 127 } 128 129 /** 130 * Sets the kemService. 131 * @param kemService 132 */ 133 public void setKemService(KEMService kemService) { 134 this.kemService = kemService; 135 } 136 137 /** 138 * Gets the parameterService attribute. 139 * @return Returns the parameterService. 140 */ 141 protected ParameterService getParameterService() { 142 return parameterService; 143 } 144 145 /** 146 * Sets the parameterService attribute value. 147 * @param parameterService The parameterService to set. 148 */ 149 public void setParameterService(ParameterService parameterService) { 150 this.parameterService = parameterService; 151 } 152 153 }