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.bc.service.impl; 017 018 import java.util.HashMap; 019 import java.util.Map; 020 021 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionIntendedIncumbent; 022 import org.kuali.kfs.module.bc.businessobject.Incumbent; 023 import org.kuali.kfs.module.bc.exception.BudgetIncumbentAlreadyExistsException; 024 import org.kuali.kfs.module.bc.service.BudgetConstructionIntendedIncumbentService; 025 import org.kuali.kfs.module.bc.service.HumanResourcesPayrollService; 026 import org.kuali.kfs.sys.KFSPropertyConstants; 027 import org.kuali.rice.kns.service.BusinessObjectService; 028 import org.kuali.rice.kns.util.spring.Logged; 029 030 /** 031 * implements the service methods defined in BudgetConstructionIntendedIncumbentService 032 */ 033 public class BudgetConstructionIntendedIncumbentServiceImpl implements BudgetConstructionIntendedIncumbentService { 034 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(BudgetConstructionIntendedIncumbentServiceImpl.class); 035 036 private BusinessObjectService businessObjectService; 037 private HumanResourcesPayrollService humanResourcesPayrollService; 038 039 /** 040 * @see org.kuali.kfs.module.bc.service.BudgetConstructionIntendedIncumbentService#pullNewIncumbentFromExternal(java.lang.String) 041 */ 042 public synchronized void pullNewIncumbentFromExternal(String emplid) throws BudgetIncumbentAlreadyExistsException { 043 // call humanResourcesPayrollService service to pull record 044 Incumbent incumbent = humanResourcesPayrollService.getIncumbent(emplid); 045 046 // populate BudgetConstructionIntendedIncumbent 047 BudgetConstructionIntendedIncumbent bcIncumbent = new BudgetConstructionIntendedIncumbent(); 048 bcIncumbent.setEmplid(incumbent.getEmplid()); 049 bcIncumbent.setName(incumbent.getName()); 050 bcIncumbent.setIuClassificationLevel("TL"); 051 bcIncumbent.setSetidSalary("XXXXX"); 052 bcIncumbent.setSalaryAdministrationPlan("XXX"); 053 bcIncumbent.setGrade("YYY"); 054 055 bcIncumbent.setActive(Boolean.TRUE); 056 057 // check if incumbent already exists in budget incumbent table, if not add incumbent 058 BudgetConstructionIntendedIncumbent retrievedIncumbent = getByPrimaryId(emplid); 059 if (retrievedIncumbent != null) { 060 throw new BudgetIncumbentAlreadyExistsException(emplid); 061 } 062 063 businessObjectService.save(bcIncumbent); 064 } 065 066 /** 067 * @see org.kuali.kfs.module.bc.service.BudgetConstructionIntendedIncumbentService#refreshIncumbentFromExternal(java.lang.String) 068 */ 069 public void refreshIncumbentFromExternal(String emplid) { 070 // call humanResourcesPayrollService service to pull record 071 Incumbent incumbent = humanResourcesPayrollService.getIncumbent(emplid); 072 073 // populate BudgetConstructionIntendedIncumbent 074 BudgetConstructionIntendedIncumbent bcIncumbent = new BudgetConstructionIntendedIncumbent(); 075 bcIncumbent.setEmplid(incumbent.getEmplid()); 076 bcIncumbent.setName(incumbent.getName()); 077 078 // update budget record 079 BudgetConstructionIntendedIncumbent retrievedIncumbent = getByPrimaryId(emplid); 080 bcIncumbent.setVersionNumber(retrievedIncumbent.getVersionNumber()); 081 bcIncumbent.setIuClassificationLevel("TL"); 082 bcIncumbent.setSetidSalary("XXXXX"); 083 bcIncumbent.setSalaryAdministrationPlan("XXX"); 084 bcIncumbent.setGrade("YYY"); 085 bcIncumbent.setActive(retrievedIncumbent.isActive()); 086 087 businessObjectService.save(bcIncumbent); 088 } 089 090 /** 091 * @see org.kuali.kfs.module.bc.service.BudgetConstructionIntendedIncumbentService#getByPrimaryId(java.lang.String) 092 */ 093 public BudgetConstructionIntendedIncumbent getByPrimaryId(String emplid) { 094 Map<String, Object> primaryKeys = new HashMap<String, Object>(); 095 primaryKeys.put(KFSPropertyConstants.EMPLID, emplid); 096 097 return (BudgetConstructionIntendedIncumbent) businessObjectService.findByPrimaryKey(BudgetConstructionIntendedIncumbent.class, primaryKeys); 098 } 099 100 /** 101 * Sets the businessObjectService attribute value. 102 * 103 * @param businessObjectService The businessObjectService to set. 104 */ 105 public void setBusinessObjectService(BusinessObjectService businessObjectService) { 106 this.businessObjectService = businessObjectService; 107 } 108 109 /** 110 * Sets the humanResourcesPayrollService attribute value. 111 * 112 * @param humanResourcesPayrollService The humanResourcesPayrollService to set. 113 */ 114 public void setHumanResourcesPayrollService(HumanResourcesPayrollService humanResourcesPayrollService) { 115 this.humanResourcesPayrollService = humanResourcesPayrollService; 116 } 117 } 118