/*
* 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/>.
*/
/*
* Created on Aug 19, 2004
*
*/
package org.kuali.kfs.pdp.businessobject;
import java.sql.Timestamp;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.sys.businessobject.TimestampedBusinessObjectBase;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.rice.core.api.util.type.KualiInteger;
import org.kuali.rice.kim.api.identity.Person;
import org.kuali.rice.krad.service.KualiModuleService;
import org.kuali.rice.krad.service.ModuleService;
import org.kuali.rice.location.api.LocationConstants;
import org.kuali.rice.location.framework.campus.CampusEbo;
/**
* This class represents a Payment Process.
*/
public class PaymentProcess extends TimestampedBusinessObjectBase {
protected KualiInteger id;
protected Timestamp processTimestamp;
protected String campusCode;
protected String processUserId;
protected Person processUser;
protected boolean extractedInd;
protected boolean formattedIndicator;
protected CampusEbo campus;
/**
* Constructs a PaymentProcess.
*/
public PaymentProcess() {
super();
this.setExtractedInd(false);
this.setFormattedIndicator(false);
}
/**
* This method updates the user based on processUserId.
*
* @param userService
*/
public void updateUser(org.kuali.rice.kim.api.identity.PersonService userService) {
Person u = userService.getPerson(processUserId);
setProcessUser(u);
}
/**
* This method gets the campusCode.
*
* @return campusCode
*/
public String getCampusCode() {
return campusCode;
}
/**
* This method sets the campusCode.
*
* @param campusCode
*/
public void setCampusCode(String campusCode) {
this.campusCode = campusCode;
}
/**
* This method gets the Id.
*
* @return id
*/
public KualiInteger getId() {
return id;
}
/**
* This method sets the id.
*
* @param id
*/
public void setId(KualiInteger id) {
this.id = id;
}
/**
* This method gets the processTimestamp
*
* @return processTimestamp
*/
public Timestamp getProcessTimestamp() {
return processTimestamp;
}
/**
* This method sets the processTimestamp.
*
* @param processTimestamp
*/
public void setProcessTimestamp(Timestamp processTimestamp) {
this.processTimestamp = processTimestamp;
}
/**
* This method gets the processUser.
*
* @return processUser
*/
public Person getProcessUser() {
processUser = SpringContext.getBean(org.kuali.rice.kim.api.identity.PersonService.class).updatePersonIfNecessary(processUserId, processUser);
return processUser;
}
/**
* This method sets the processUser.
*
* @param processUser
*/
public void setProcessUser(Person processUser) {
if (processUser != null) {
processUserId = processUser.getPrincipalId();
}
this.processUser = processUser;
}
/**
* This method gets the processUserId.
*
* @return processUserId
*/
public String getProcessUserId() {
return processUserId;
}
/**
* This method sets the processUserId.
*
* @param processUserId
*/
public void setProcessUserId(String processUserId) {
this.processUserId = processUserId;
}
/**
* This method gets the extractedInd.
*
* @return extractedInd
*/
public boolean isExtractedInd() {
return extractedInd;
}
/**
* This method sets the extractedInd.
*
* @param extractedInd
*/
public void setExtractedInd(boolean extractedInd) {
this.extractedInd = extractedInd;
}
/**
* This method gets the formattedIndicator.
*
* @return formattedIndicator
*/
public boolean isFormattedIndicator() {
return formattedIndicator;
}
/**
* This method sets the formattedIndicator.
*
* @param formattedIndicator
*/
public void setFormattedIndicator(boolean formattedIndicator) {
this.formattedIndicator = formattedIndicator;
}
/**
* This method gets the campus.
*
* @return campus
*/
public CampusEbo getCampus() {
if ( StringUtils.isBlank(campusCode) ) {
campus = null;
} else {
if ( campus == null || !StringUtils.equals( campus.getCode(),campusCode) ) {
ModuleService moduleService = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CampusEbo.class);
if ( moduleService != null ) {
Map<String,Object> keys = new HashMap<String, Object>(1);
keys.put(LocationConstants.PrimaryKeyConstants.CODE, campusCode);
campus = moduleService.getExternalizableBusinessObject(CampusEbo.class, keys);
} else {
throw new RuntimeException( "CONFIGURATION ERROR: No responsible module found for EBO class. Unable to proceed." );
}
}
}
return campus;
}
/**
* This method sets the campus.
*
* @param campus
*/
public void setCampus(CampusEbo campus) {
this.campus = campus;
}
}