/* * 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.ArrayList; import java.util.HashMap; import java.util.List; 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.country.CountryEbo; import org.kuali.rice.location.framework.state.StateEbo; /** * Container for information about how to get in Contact with a person at a Vendor for a particular purpose. */ public class VendorContact extends PersistableBusinessObjectBase implements MutableInactivatable { protected Integer vendorContactGeneratedIdentifier; protected Integer vendorHeaderGeneratedIdentifier; protected Integer vendorDetailAssignedIdentifier; protected String vendorContactTypeCode; protected String vendorContactName; protected String vendorContactEmailAddress; protected String vendorContactCommentText; protected String vendorLine1Address; protected String vendorLine2Address; protected String vendorCityName; protected String vendorStateCode; protected String vendorZipCode; protected String vendorCountryCode; protected String vendorAttentionName; protected String vendorAddressInternationalProvinceName; protected boolean active; // These aren't persisted in db, only for lookup page protected String phoneNumberForLookup; protected String tollFreeForLookup; protected String faxForLookup; protected List<VendorContactPhoneNumber> vendorContactPhoneNumbers; protected VendorDetail vendorDetail; protected ContactType vendorContactType; protected StateEbo vendorState; protected CountryEbo vendorCountry; public VendorContact() { vendorContactPhoneNumbers = new ArrayList<VendorContactPhoneNumber>(); } public Integer getVendorContactGeneratedIdentifier() { return vendorContactGeneratedIdentifier; } public void setVendorContactGeneratedIdentifier(Integer vendorContactGeneratedIdentifier) { this.vendorContactGeneratedIdentifier = vendorContactGeneratedIdentifier; } public Integer getVendorHeaderGeneratedIdentifier() { return vendorHeaderGeneratedIdentifier; } public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderGeneratedIdentifier) { this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier; } public Integer getVendorDetailAssignedIdentifier() { return vendorDetailAssignedIdentifier; } public void setVendorDetailAssignedIdentifier(Integer vendorDetailAssignedIdentifier) { this.vendorDetailAssignedIdentifier = vendorDetailAssignedIdentifier; } public String getVendorContactTypeCode() { return vendorContactTypeCode; } public void setVendorContactTypeCode(String vendorContactTypeCode) { this.vendorContactTypeCode = vendorContactTypeCode; } public String getVendorContactName() { return vendorContactName; } public void setVendorContactName(String vendorContactName) { this.vendorContactName = vendorContactName; } public String getVendorContactEmailAddress() { return vendorContactEmailAddress; } public void setVendorContactEmailAddress(String vendorContactEmailAddress) { this.vendorContactEmailAddress = vendorContactEmailAddress; } public String getVendorContactCommentText() { return vendorContactCommentText; } public void setVendorContactCommentText(String vendorContactCommentText) { this.vendorContactCommentText = vendorContactCommentText; } public ContactType getVendorContactType() { return vendorContactType; } public void setVendorContactType(ContactType vendorContactType) { this.vendorContactType = vendorContactType; } public VendorDetail getVendorDetail() { return vendorDetail; } public void setVendorDetail(VendorDetail vendorDetail) { this.vendorDetail = vendorDetail; } public String getVendorAddressInternationalProvinceName() { return vendorAddressInternationalProvinceName; } public void setVendorAddressInternationalProvinceName(String vendorAddressInternationalProvinceName) { this.vendorAddressInternationalProvinceName = vendorAddressInternationalProvinceName; } @Override public boolean isActive() { return active; } @Override public void setActive(boolean active) { this.active = active; } public String getVendorAttentionName() { return vendorAttentionName; } public void setVendorAttentionName(String vendorAttentionName) { this.vendorAttentionName = vendorAttentionName; } public String getVendorCityName() { return vendorCityName; } public void setVendorCityName(String vendorCityName) { this.vendorCityName = vendorCityName; } public String getVendorCountryCode() { return vendorCountryCode; } public void setVendorCountryCode(String vendorCountryCode) { this.vendorCountryCode = vendorCountryCode; } public String getVendorLine1Address() { return vendorLine1Address; } public void setVendorLine1Address(String vendorLine1Address) { this.vendorLine1Address = vendorLine1Address; } public String getVendorLine2Address() { return vendorLine2Address; } public void setVendorLine2Address(String vendorLine2Address) { this.vendorLine2Address = vendorLine2Address; } public String getVendorStateCode() { return vendorStateCode; } public void setVendorStateCode(String vendorStateCode) { this.vendorStateCode = vendorStateCode; } public String getVendorZipCode() { return vendorZipCode; } public void setVendorZipCode(String vendorZipCode) { this.vendorZipCode = vendorZipCode; } public CountryEbo getVendorCountry() { if ( StringUtils.isBlank(vendorCountryCode) ) { vendorCountry = null; } else { if ( vendorCountry == null || !StringUtils.equals( vendorCountry.getCode(),vendorCountryCode) ) { 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, vendorCountryCode); vendorCountry = moduleService.getExternalizableBusinessObject(CountryEbo.class, keys); } else { throw new RuntimeException( "CONFIGURATION ERROR: No responsible module found for EBO class. Unable to proceed." ); } } } return vendorCountry; } public void setVendorCountry(CountryEbo vendorCountry) { this.vendorCountry = vendorCountry; } public StateEbo getVendorState() { if ( StringUtils.isBlank(vendorStateCode) || StringUtils.isBlank(vendorCountryCode ) ) { vendorState = null; } else { if ( vendorState == null || !StringUtils.equals( vendorState.getCode(),vendorStateCode) || !StringUtils.equals(vendorState.getCountryCode(), vendorCountryCode ) ) { 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, vendorCountryCode); keys.put(LocationConstants.PrimaryKeyConstants.CODE, vendorStateCode); vendorState = moduleService.getExternalizableBusinessObject(StateEbo.class, keys); } else { throw new RuntimeException( "CONFIGURATION ERROR: No responsible module found for EBO class. Unable to proceed." ); } } } return vendorState; } public void setVendorState(StateEbo vendorState) { this.vendorState = vendorState; } public String getFaxForLookup() { return faxForLookup; } public void setFaxForLookup(String faxForLookup) { this.faxForLookup = faxForLookup; } public String getPhoneNumberForLookup() { return phoneNumberForLookup; } public void setPhoneNumberForLookup(String phoneNumberForLookup) { this.phoneNumberForLookup = phoneNumberForLookup; } public String getTollFreeForLookup() { return tollFreeForLookup; } public void setTollFreeForLookup(String tollFreeForLookup) { this.tollFreeForLookup = tollFreeForLookup; } public List<VendorContactPhoneNumber> getVendorContactPhoneNumbers() { return vendorContactPhoneNumbers; } public void setVendorContactPhoneNumbers(List<VendorContactPhoneNumber> vendorContactPhoneNumbers) { this.vendorContactPhoneNumbers = vendorContactPhoneNumbers; } }