/*
* 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.bc.service.impl;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.module.bc.BCConstants.SynchronizationCheckType;
import org.kuali.kfs.module.bc.businessobject.BudgetConstructionIntendedIncumbent;
import org.kuali.kfs.module.bc.businessobject.Incumbent;
import org.kuali.kfs.module.bc.businessobject.Position;
import org.kuali.kfs.module.bc.dataaccess.HumanResourcesPayrollDao;
import org.kuali.kfs.module.bc.exception.IncumbentNotFoundException;
import org.kuali.kfs.module.bc.exception.PositionNotFoundException;
import org.kuali.kfs.module.bc.service.HumanResourcesPayrollService;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.kfs.sys.service.FinancialSystemUserService;
import org.kuali.kfs.sys.service.NonTransactional;
import org.kuali.rice.kim.api.identity.PersonService;
import org.springframework.transaction.annotation.Transactional;
/**
* Bootstrap implementation of HumanResourcesPayrollService. Only implements the methods so that Budget will function. Data is not
* correct and should not be used in production.
*
* @see org.kuali.kfs.module.bc.service.HumanResourcesPayrollService
*/
public class HumanResourcesPayrollServiceImpl implements HumanResourcesPayrollService {
HumanResourcesPayrollDao humanResourcesPayrollDao;
private PersonService personService;
/**
* This is just a bootstrap implementation. Should be replaced by the real integration with the payroll/hr system.
*
* @see org.kuali.kfs.module.bc.service.HumanResourcesPayrollService#validatePositionUnionCode(java.lang.String)
*/
@Override
@NonTransactional
public boolean validatePositionUnionCode(String positionUnionCode) {
return true;
}
/**
* This is just a bootstrap implementation. Should be replaced by the real integration with the payroll/hr system.
*
* @see org.kuali.kfs.module.bc.service.HumanResourcesPayrollService#getPosition(java.lang.Integer, java.lang.String)
*/
@Override
@Transactional
public Position getPosition(Integer universityFiscalYear, String positionNumber) throws PositionNotFoundException {
Position position = humanResourcesPayrollDao.getPosition(universityFiscalYear, positionNumber);
if (position == null) {
throw new PositionNotFoundException(universityFiscalYear, positionNumber);
}
return position;
}
/**
* This is just a bootstrap implementation. Should be replaced by the real integration with the payroll/hr system.
*
* @see org.kuali.kfs.module.bc.service.HumanResourcesPayrollService#getIncumbent(java.lang.String)
*/
@Override
@Transactional
public Incumbent getIncumbent(String emplid) throws IncumbentNotFoundException {
String name = SpringContext.getBean(FinancialSystemUserService.class).getPersonNameByEmployeeId(emplid);
if (!StringUtils.isEmpty(name)) {
Incumbent incumbent = new BudgetConstructionIntendedIncumbent();
incumbent.setEmplid(emplid);
incumbent.setName(name);
return incumbent;
} else {
throw new IncumbentNotFoundException(emplid);
}
}
/**
* @see org.kuali.kfs.module.bc.service.HumanResourcesPayrollService#isActiveJob(java.lang.String, java.lang.String,
* java.lang.Integer, org.kuali.kfs.module.bc.BCConstants.SynchronizationCheckType)
*/
@Override
@Transactional
public boolean isActiveJob(String emplid, String positionNumber, Integer fiscalYear, SynchronizationCheckType synchronizationCheckType) {
return true;
}
/**
* Sets the humanResourcesPayrollDao attribute value.
*
* @param humanResourcesPayrollDao The humanResourcesPayrollDao to set.
*/
@NonTransactional
public void setHumanResourcesPayrollDao(HumanResourcesPayrollDao humanResourcesPayrollDao) {
this.humanResourcesPayrollDao = humanResourcesPayrollDao;
}
/**
* @return Returns the personService.
*/
protected PersonService getPersonService() {
if(personService==null) {
personService = SpringContext.getBean(PersonService.class);
}
return personService;
}
}