/*
* 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.vnd.businessobject;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.rice.core.api.mo.common.active.MutableInactivatable;
import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
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;
import org.kuali.rice.location.framework.country.CountryEbo;
import org.kuali.rice.location.framework.state.StateEbo;
/**
* Campus Parameter Business Object. Maintenance document for campus parameters.
*/
public class CampusParameter extends PersistableBusinessObjectBase implements MutableInactivatable {
protected String campusCode;
protected String campusPurchasingDirectorName;
protected String campusPurchasingDirectorTitle;
protected String campusAccountsPayableEmailAddress;
protected String purchasingInstitutionName;
protected String purchasingDepartmentName;
protected String purchasingDepartmentLine1Address;
protected String purchasingDepartmentLine2Address;
protected String purchasingDepartmentCityName;
protected String purchasingDepartmentStateCode;
protected String purchasingDepartmentZipCode;
protected String purchasingDepartmentCountryCode;
protected boolean active;
protected CampusEbo campus;
protected StateEbo purchasingDepartmentState;
protected CountryEbo purchasingDepartmentCountry;
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;
}
@Deprecated
public void setCampus(CampusEbo campus) {
this.campus = campus;
}
public String getCampusAccountsPayableEmailAddress() {
return campusAccountsPayableEmailAddress;
}
public void setCampusAccountsPayableEmailAddress(String campusAccountsPayableEmailAddress) {
this.campusAccountsPayableEmailAddress = campusAccountsPayableEmailAddress;
}
public String getCampusCode() {
return campusCode;
}
public void setCampusCode(String campusCode) {
this.campusCode = campusCode;
}
public String getCampusPurchasingDirectorName() {
return campusPurchasingDirectorName;
}
public void setCampusPurchasingDirectorName(String campusPurchasingDirectorName) {
this.campusPurchasingDirectorName = campusPurchasingDirectorName;
}
public String getCampusPurchasingDirectorTitle() {
return campusPurchasingDirectorTitle;
}
public void setCampusPurchasingDirectorTitle(String campusPurchasingDirectorTitle) {
this.campusPurchasingDirectorTitle = campusPurchasingDirectorTitle;
}
public String getPurchasingDepartmentCityName() {
return purchasingDepartmentCityName;
}
public void setPurchasingDepartmentCityName(String purchasingDepartmentCityName) {
this.purchasingDepartmentCityName = purchasingDepartmentCityName;
}
public CountryEbo getPurchasingDepartmentCountry() {
if ( StringUtils.isBlank(purchasingDepartmentCountryCode) ) {
purchasingDepartmentCountry = null;
} else {
if ( purchasingDepartmentCountry == null || !StringUtils.equals( purchasingDepartmentCountry.getCode(),purchasingDepartmentCountryCode) ) {
ModuleService moduleService = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CountryEbo.class);
if ( moduleService != null ) {
Map<String,Object> keys = new HashMap<String, Object>(1);
keys.put(LocationConstants.PrimaryKeyConstants.CODE, purchasingDepartmentCountryCode);
purchasingDepartmentCountry = moduleService.getExternalizableBusinessObject(CountryEbo.class, keys);
} else {
throw new RuntimeException( "CONFIGURATION ERROR: No responsible module found for EBO class. Unable to proceed." );
}
}
}
return purchasingDepartmentCountry;
}
@Deprecated
public void setPurchasingDepartmentCountry(CountryEbo purchasingDepartmentCountry) {
this.purchasingDepartmentCountry = purchasingDepartmentCountry;
}
public String getPurchasingDepartmentCountryCode() {
return purchasingDepartmentCountryCode;
}
public void setPurchasingDepartmentCountryCode(String purchasingDepartmentCountryCode) {
this.purchasingDepartmentCountryCode = purchasingDepartmentCountryCode;
}
public String getPurchasingDepartmentLine1Address() {
return purchasingDepartmentLine1Address;
}
public void setPurchasingDepartmentLine1Address(String purchasingDepartmentLine1Address) {
this.purchasingDepartmentLine1Address = purchasingDepartmentLine1Address;
}
public String getPurchasingDepartmentLine2Address() {
return purchasingDepartmentLine2Address;
}
public void setPurchasingDepartmentLine2Address(String purchasingDepartmentLine2Address) {
this.purchasingDepartmentLine2Address = purchasingDepartmentLine2Address;
}
public String getPurchasingDepartmentName() {
return purchasingDepartmentName;
}
public void setPurchasingDepartmentName(String purchasingDepartmentName) {
this.purchasingDepartmentName = purchasingDepartmentName;
}
public StateEbo getPurchasingDepartmentState() {
if ( StringUtils.isBlank(purchasingDepartmentStateCode) || StringUtils.isBlank(purchasingDepartmentCountryCode ) ) {
purchasingDepartmentState = null;
} else {
if ( purchasingDepartmentState == null || !StringUtils.equals( purchasingDepartmentState.getCode(),purchasingDepartmentStateCode) || !StringUtils.equals(purchasingDepartmentState.getCountryCode(), purchasingDepartmentCountryCode ) ) {
ModuleService moduleService = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(StateEbo.class);
if ( moduleService != null ) {
Map<String,Object> keys = new HashMap<String, Object>(2);
keys.put(LocationConstants.PrimaryKeyConstants.COUNTRY_CODE, purchasingDepartmentCountryCode);
keys.put(LocationConstants.PrimaryKeyConstants.CODE, purchasingDepartmentStateCode);
purchasingDepartmentState = moduleService.getExternalizableBusinessObject(StateEbo.class, keys);
} else {
throw new RuntimeException( "CONFIGURATION ERROR: No responsible module found for EBO class. Unable to proceed." );
}
}
}
return purchasingDepartmentState;
}
/**
* @deprecated
*/
public void setPurchasingDepartmentState(StateEbo purchasingDepartmentState) {
this.purchasingDepartmentState = purchasingDepartmentState;
}
public String getPurchasingDepartmentStateCode() {
return purchasingDepartmentStateCode;
}
public void setPurchasingDepartmentStateCode(String purchasingDepartmentStateCode) {
this.purchasingDepartmentStateCode = purchasingDepartmentStateCode;
}
public String getPurchasingDepartmentZipCode() {
return purchasingDepartmentZipCode;
}
public void setPurchasingDepartmentZipCode(String purchasingDepartmentZipCode) {
this.purchasingDepartmentZipCode = purchasingDepartmentZipCode;
}
public String getPurchasingInstitutionName() {
return purchasingInstitutionName;
}
public void setPurchasingInstitutionName(String purchasingInstitutionName) {
this.purchasingInstitutionName = purchasingInstitutionName;
}
@Override
public boolean isActive() {
return active;
}
@Override
public void setActive(boolean active) {
this.active = active;
}
}