/*
* 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.fp.businessobject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.kuali.kfs.integration.cam.CapitalAssetManagementAsset;
import org.kuali.kfs.integration.cam.CapitalAssetManagementAssetType;
import org.kuali.kfs.sys.KFSPropertyConstants;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.kfs.vnd.businessobject.VendorDetail;
import org.kuali.rice.core.api.util.type.KualiDecimal;
import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
import org.kuali.rice.krad.service.KualiModuleService;
import org.kuali.rice.krad.util.ObjectUtils;
public class CapitalAssetInformation extends PersistableBusinessObjectBase {
//primary key fields..
private String documentNumber;
private Integer capitalAssetLineNumber;
private Integer vendorHeaderGeneratedIdentifier;
private Integer vendorDetailAssignedIdentifier;
private String vendorName;
private Long capitalAssetNumber;
private Integer capitalAssetQuantity;
private String capitalAssetTypeCode;
private String capitalAssetManufacturerName;
private String capitalAssetDescription;
private String capitalAssetManufacturerModelNumber;
private KualiDecimal capitalAssetLineAmount;
private String capitalAssetActionIndicator;
private boolean capitalAssetProcessedIndicator;
private String distributionAmountCode;
private CapitalAssetManagementAsset capitalAssetManagementAsset;
private CapitalAssetManagementAssetType capitalAssetManagementAssetType;
private List<CapitalAssetInformationDetail> capitalAssetInformationDetails;
private List<CapitalAssetAccountsGroupDetails> capitalAssetAccountsGroupDetails;
private VendorDetail vendorDetail;
/**
* Constructs a CapitalAssetInformation.java.
*/
public CapitalAssetInformation() {
super();
setCapitalAssetLineAmount(KualiDecimal.ZERO);
capitalAssetInformationDetails = new ArrayList<CapitalAssetInformationDetail>();
capitalAssetAccountsGroupDetails = new ArrayList<CapitalAssetAccountsGroupDetails>();
}
protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
LinkedHashMap m = new LinkedHashMap();
m.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.documentNumber);
m.put(KFSPropertyConstants.CAPITAL_ASSET_LINE_NUMBER, this.getCapitalAssetLineNumber());
return m;
}
public String getCapitalAssetDescription() {
return capitalAssetDescription;
}
public void setCapitalAssetDescription(String capitalAssetDescription) {
this.capitalAssetDescription = capitalAssetDescription;
}
public String getCapitalAssetManufacturerModelNumber() {
return capitalAssetManufacturerModelNumber;
}
public void setCapitalAssetManufacturerModelNumber(String capitalAssetManufacturerModelNumber) {
this.capitalAssetManufacturerModelNumber = capitalAssetManufacturerModelNumber;
}
public String getCapitalAssetManufacturerName() {
return capitalAssetManufacturerName;
}
public void setCapitalAssetManufacturerName(String capitalAssetManufacturerName) {
this.capitalAssetManufacturerName = capitalAssetManufacturerName;
}
public Long getCapitalAssetNumber() {
return capitalAssetNumber;
}
public void setCapitalAssetNumber(Long capitalAssetNumber) {
this.capitalAssetNumber = capitalAssetNumber;
}
public Integer getCapitalAssetQuantity() {
// Return capitalAssetQuantity first if it already set. Otherwise, return the size of details. If the order is reversed, the
// user input of quantity may be overridden.
if (this.capitalAssetQuantity != null) {
return this.capitalAssetQuantity;
}
if (ObjectUtils.isNotNull(capitalAssetInformationDetails) && !capitalAssetInformationDetails.isEmpty()) {
return capitalAssetInformationDetails.size();
}
return null;
}
public void setCapitalAssetQuantity(Integer capitalAssetQuantity) {
this.capitalAssetQuantity = capitalAssetQuantity;
}
public String getCapitalAssetTypeCode() {
return capitalAssetTypeCode;
}
public void setCapitalAssetTypeCode(String capitalAssetTypeCode) {
this.capitalAssetTypeCode = capitalAssetTypeCode;
}
public String getDocumentNumber() {
return documentNumber;
}
public void setDocumentNumber(String documentNumber) {
this.documentNumber = documentNumber;
}
public Integer getVendorDetailAssignedIdentifier() {
return vendorDetailAssignedIdentifier;
}
public void setVendorDetailAssignedIdentifier(Integer vendorDetailedAssignedIdentifier) {
this.vendorDetailAssignedIdentifier = vendorDetailedAssignedIdentifier;
}
public Integer getVendorHeaderGeneratedIdentifier() {
return vendorHeaderGeneratedIdentifier;
}
public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderGeneratedIdentifier) {
this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier;
}
/**
* Gets the capitalAssetManagementAsset attribute.
*
* @return Returns the capitalAssetManagementAsset.
*/
public CapitalAssetManagementAsset getCapitalAssetManagementAsset() {
capitalAssetManagementAsset = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CapitalAssetManagementAsset.class).retrieveExternalizableBusinessObjectIfNecessary(this, capitalAssetManagementAsset, KFSPropertyConstants.CAPITAL_ASSET_MANAGEMENT_ASSET);
return capitalAssetManagementAsset;
}
/**
* Sets the capitalAssetManagementAsset attribute value.
*
* @param capitalAssetManagementAsset The capitalAssetManagementAsset to set.
*/
public void setCapitalAssetManagementAsset(CapitalAssetManagementAsset capitalAssetManagementAsset) {
this.capitalAssetManagementAsset = capitalAssetManagementAsset;
}
/**
* Gets the capitalAssetManagementAssetType attribute.
*
* @return Returns the capitalAssetManagementAssetType.
*/
public CapitalAssetManagementAssetType getCapitalAssetManagementAssetType() {
capitalAssetManagementAssetType = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CapitalAssetManagementAssetType.class).retrieveExternalizableBusinessObjectIfNecessary(this, capitalAssetManagementAssetType, KFSPropertyConstants.CAPITAL_ASSET_MANAGEMENT_ASSET_TYPE);
return capitalAssetManagementAssetType;
}
/**
* Sets the capitalAssetManagementAssetType attribute value.
*
* @param capitalAssetManagementAssetType The capitalAssetManagementAssetType to set.
*/
@Deprecated
public void setCapitalAssetManagementAssetType(CapitalAssetManagementAssetType capitalAssetManagementAssetType) {
this.capitalAssetManagementAssetType = capitalAssetManagementAssetType;
}
/**
* Gets the vendorDetail attribute.
*
* @return Returns the vendorDetail.
*/
public VendorDetail getVendorDetail() {
return vendorDetail;
}
/**
* Sets the vendorDetail attribute value.
*
* @param vendorDetail The vendorDetail to set.
*/
@Deprecated
public void setVendorDetail(VendorDetail vendorDetail) {
this.vendorDetail = vendorDetail;
}
/**
* Returns a map with the primitive field names as the key and the primitive values as the map value.
*
* @return Map a map with the primitive field names as the key and the primitive values as the map value.
*/
public Map<String, Object> getValuesMap() {
Map<String, Object> simpleValues = new HashMap<String, Object>();
simpleValues.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.getDocumentNumber());
simpleValues.put(KFSPropertyConstants.VENDOR_HEADER_GENERATED_ID, this.getVendorHeaderGeneratedIdentifier());
simpleValues.put(KFSPropertyConstants.VENDOR_DETAIL_ASSIGNED_ID, this.getVendorDetailAssignedIdentifier());
simpleValues.put(KFSPropertyConstants.VENDOR_NAME, this.getVendorName());
simpleValues.put(KFSPropertyConstants.CAPITAL_ASSET_NUMBER, this.getCapitalAssetNumber());
simpleValues.put(KFSPropertyConstants.CAPITAL_ASSET_TYPE_CODE, this.getCapitalAssetTypeCode());
simpleValues.put(KFSPropertyConstants.CAPITAL_ASSET_LINE_AMOUNT, this.getCapitalAssetLineAmount());
simpleValues.put(KFSPropertyConstants.CAPITAL_ASSET_LINE_NUMBER, this.getCapitalAssetLineNumber());
simpleValues.put(KFSPropertyConstants.CAPITAL_ASSET_ACTION_INDICATOR, this.getCapitalAssetActionIndicator());
simpleValues.put(KFSPropertyConstants.CAPITAL_ASSET_QUANTITY, this.getCapitalAssetQuantity());
simpleValues.put(KFSPropertyConstants.CAPITAL_ASSET_PROCESSED_IND, this.isCapitalAssetProcessedIndicator());
simpleValues.put(KFSPropertyConstants.CPTLAST_DST_AMT_CD, this.getDistributionAmountCode());
return simpleValues;
}
/**
* Gets the vendorName attribute.
*
* @return Returns the vendorName.
*/
public String getVendorName() {
if (ObjectUtils.isNotNull(vendorDetail)) {
vendorName = vendorDetail.getVendorName();
}
else if (StringUtils.isNotBlank(vendorName) && vendorName.indexOf(" > ") > 0){
vendorName = vendorName.substring(vendorName.indexOf(" > ") + 2, vendorName.length());
}
return vendorName;
}
/**
* Sets the vendorName attribute value.
*
* @param vendorName The vendorName to set.
*/
public void setVendorName(String vendorName) {
this.vendorName = vendorName;
}
/**
* Gets the capitalAssetAccountsGroupDetails attribute.
*
* @return Returns the capitalAssetAccountsGroupDetails
*/
public List<CapitalAssetAccountsGroupDetails> getCapitalAssetAccountsGroupDetails() {
return capitalAssetAccountsGroupDetails;
}
/**
* Sets the capitalAssetAccountsGroupDetails attribute.
*
* @param capitalAssetAccountsGroupDetails The capitalAssetAccountsGroupDetails to set.
*/
public void setCapitalAssetAccountsGroupDetails(List<CapitalAssetAccountsGroupDetails> capitalAssetAccountsGroupDetails) {
this.capitalAssetAccountsGroupDetails = capitalAssetAccountsGroupDetails;
}
/**
* Gets the capitalAssetInformationDetails attribute.
*
* @return Returns the capitalAssetInformationDetails.
*/
public List<CapitalAssetInformationDetail> getCapitalAssetInformationDetails() {
return capitalAssetInformationDetails;
}
/**
* Sets the capitalAssetInformationDetails attribute value.
*
* @param capitalAssetInformationDetails The capitalAssetInformationDetails to set.
*/
public void setCapitalAssetInformationDetails(List<CapitalAssetInformationDetail> capitalAssetInformationDetails) {
this.capitalAssetInformationDetails = capitalAssetInformationDetails;
}
/**
* Gets the capitalAssetLineNumber attribute.
* @return Returns the capitalAssetLineNumber.
*/
public Integer getCapitalAssetLineNumber() {
return capitalAssetLineNumber;
}
/**
* Sets the capitalAssetLineNumber attribute value.
* @param capitalAssetLineNumber The capitalAssetLineNumber to set.
*/
public void setCapitalAssetLineNumber(Integer capitalAssetLineNumber) {
this.capitalAssetLineNumber = capitalAssetLineNumber;
}
/**
* @return Returns the capitalAssetLineAmount.
*/
public KualiDecimal getCapitalAssetLineAmount() {
if (ObjectUtils.isNull(capitalAssetLineAmount)) {
return KualiDecimal.ZERO;
}
else {
return capitalAssetLineAmount;
}
}
/**
* @param capitalAssetLineAmount The capitalAssetLineAmount to set.
*/
public void setCapitalAssetLineAmount(KualiDecimal capitalAssetLineAmount) {
if (ObjectUtils.isNull(capitalAssetLineAmount)) {
this.capitalAssetLineAmount = KualiDecimal.ZERO;
}
else {
this.capitalAssetLineAmount = capitalAssetLineAmount;
}
this.capitalAssetLineAmount = capitalAssetLineAmount;
}
/**
* Gets the capitalAssetActionIndicator attribute.
*
* @return Returns the capitalAssetActionIndicator
*/
public String getCapitalAssetActionIndicator() {
return capitalAssetActionIndicator;
}
/**
* Sets the capitalAssetActionIndicator attribute.
*
* @param capitalAssetActionIndicator The capitalAssetActionIndicator to set.
*/
public void setCapitalAssetActionIndicator(String capitalAssetActionIndicator) {
this.capitalAssetActionIndicator = capitalAssetActionIndicator;
}
/**
* Gets the capitalAssetProcessedIndicator attribute.
*
* @return Returns the capitalAssetProcessedIndicator
*/
public boolean isCapitalAssetProcessedIndicator() {
return capitalAssetProcessedIndicator;
}
/**
* Sets the capitalAssetProcessedIndicator attribute.
*
* @param capitalAssetProcessedIndicator The capitalAssetProcessedIndicator to set.
*/
public void setCapitalAssetProcessedIndicator(boolean capitalAssetProcessedIndicator) {
this.capitalAssetProcessedIndicator = capitalAssetProcessedIndicator;
}
/**
* Gets the distributionAmountCode attribute.
*
* @return Returns the distributionAmountCode
*/
public String getDistributionAmountCode() {
return distributionAmountCode;
}
/**
* Sets the distributionAmountCode attribute.
*
* @param distributionAmountCode The distributionAmountCode to set.
*/
public void setDistributionAmountCode(String distributionAmountCode) {
this.distributionAmountCode = distributionAmountCode;
}
}