001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.kfs.fp.businessobject; 017 018 import java.util.HashMap; 019 import java.util.LinkedHashMap; 020 import java.util.List; 021 import java.util.Map; 022 023 import org.apache.commons.lang.StringUtils; 024 import org.kuali.kfs.integration.cam.CapitalAssetManagementAsset; 025 import org.kuali.kfs.integration.cam.CapitalAssetManagementAssetType; 026 import org.kuali.kfs.sys.KFSPropertyConstants; 027 import org.kuali.kfs.sys.context.SpringContext; 028 import org.kuali.kfs.vnd.businessobject.VendorDetail; 029 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 030 import org.kuali.rice.kns.service.KualiModuleService; 031 import org.kuali.rice.kns.util.ObjectUtils; 032 import org.kuali.rice.kns.util.TypedArrayList; 033 034 public class CapitalAssetInformation extends PersistableBusinessObjectBase { 035 036 private String documentNumber; 037 private Integer vendorHeaderGeneratedIdentifier; 038 private Integer vendorDetailAssignedIdentifier; 039 private String vendorName; 040 private Long capitalAssetNumber; 041 private Integer capitalAssetQuantity; 042 private String capitalAssetTypeCode; 043 private String capitalAssetManufacturerName; 044 private String capitalAssetDescription; 045 private String capitalAssetManufacturerModelNumber; 046 047 048 private CapitalAssetManagementAsset capitalAssetManagementAsset; 049 private CapitalAssetManagementAssetType capitalAssetManagementAssetType; 050 private List<CapitalAssetInformationDetail> capitalAssetInformationDetails; 051 052 private VendorDetail vendorDetail; 053 // non-persistent field 054 private Integer nextItemLineNumber; 055 056 /** 057 * Constructs a CapitalAssetInformation.java. 058 */ 059 public CapitalAssetInformation() { 060 super(); 061 capitalAssetInformationDetails = new TypedArrayList(CapitalAssetInformationDetail.class); 062 } 063 064 protected LinkedHashMap toStringMapper() { 065 LinkedHashMap m = new LinkedHashMap(); 066 067 m.put("documentNumber", getDocumentNumber()); 068 069 return m; 070 } 071 072 public String getCapitalAssetDescription() { 073 return capitalAssetDescription; 074 } 075 076 public void setCapitalAssetDescription(String capitalAssetDescription) { 077 this.capitalAssetDescription = capitalAssetDescription; 078 } 079 080 public String getCapitalAssetManufacturerModelNumber() { 081 return capitalAssetManufacturerModelNumber; 082 } 083 084 public void setCapitalAssetManufacturerModelNumber(String capitalAssetManufacturerModelNumber) { 085 this.capitalAssetManufacturerModelNumber = capitalAssetManufacturerModelNumber; 086 } 087 088 public String getCapitalAssetManufacturerName() { 089 return capitalAssetManufacturerName; 090 } 091 092 public void setCapitalAssetManufacturerName(String capitalAssetManufacturerName) { 093 this.capitalAssetManufacturerName = capitalAssetManufacturerName; 094 } 095 096 public Long getCapitalAssetNumber() { 097 return capitalAssetNumber; 098 } 099 100 public void setCapitalAssetNumber(Long capitalAssetNumber) { 101 this.capitalAssetNumber = capitalAssetNumber; 102 } 103 104 public Integer getCapitalAssetQuantity() { 105 // Return capitalAssetQuantity first if it already set. Otherwise, return the size of details. If the order is reversed, the 106 // user input of quantity may be overridden. 107 if (this.capitalAssetQuantity != null) { 108 return this.capitalAssetQuantity; 109 } 110 111 if (ObjectUtils.isNotNull(capitalAssetInformationDetails) && !capitalAssetInformationDetails.isEmpty()) { 112 return capitalAssetInformationDetails.size(); 113 } 114 return null; 115 } 116 117 public void setCapitalAssetQuantity(Integer capitalAssetQuantity) { 118 this.capitalAssetQuantity = capitalAssetQuantity; 119 } 120 121 122 public String getCapitalAssetTypeCode() { 123 return capitalAssetTypeCode; 124 } 125 126 public void setCapitalAssetTypeCode(String capitalAssetTypeCode) { 127 this.capitalAssetTypeCode = capitalAssetTypeCode; 128 } 129 130 public String getDocumentNumber() { 131 return documentNumber; 132 } 133 134 public void setDocumentNumber(String documentNumber) { 135 this.documentNumber = documentNumber; 136 } 137 138 public Integer getVendorDetailAssignedIdentifier() { 139 return vendorDetailAssignedIdentifier; 140 } 141 142 public void setVendorDetailAssignedIdentifier(Integer vendorDetailedAssignedIdentifier) { 143 this.vendorDetailAssignedIdentifier = vendorDetailedAssignedIdentifier; 144 } 145 146 public Integer getVendorHeaderGeneratedIdentifier() { 147 return vendorHeaderGeneratedIdentifier; 148 } 149 150 public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderGeneratedIdentifier) { 151 this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier; 152 } 153 154 /** 155 * Gets the capitalAssetManagementAsset attribute. 156 * 157 * @return Returns the capitalAssetManagementAsset. 158 */ 159 public CapitalAssetManagementAsset getCapitalAssetManagementAsset() { 160 capitalAssetManagementAsset = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CapitalAssetManagementAsset.class).retrieveExternalizableBusinessObjectIfNecessary(this, capitalAssetManagementAsset, KFSPropertyConstants.CAPITAL_ASSET_MANAGEMENT_ASSET); 161 return capitalAssetManagementAsset; 162 } 163 164 /** 165 * Sets the capitalAssetManagementAsset attribute value. 166 * 167 * @param capitalAssetManagementAsset The capitalAssetManagementAsset to set. 168 */ 169 public void setCapitalAssetManagementAsset(CapitalAssetManagementAsset capitalAssetManagementAsset) { 170 this.capitalAssetManagementAsset = capitalAssetManagementAsset; 171 } 172 173 /** 174 * Gets the capitalAssetManagementAssetType attribute. 175 * 176 * @return Returns the capitalAssetManagementAssetType. 177 */ 178 public CapitalAssetManagementAssetType getCapitalAssetManagementAssetType() { 179 capitalAssetManagementAssetType = SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CapitalAssetManagementAssetType.class).retrieveExternalizableBusinessObjectIfNecessary(this, capitalAssetManagementAssetType, KFSPropertyConstants.CAPITAL_ASSET_MANAGEMENT_ASSET_TYPE); 180 return capitalAssetManagementAssetType; 181 } 182 183 /** 184 * Sets the capitalAssetManagementAssetType attribute value. 185 * 186 * @param capitalAssetManagementAssetType The capitalAssetManagementAssetType to set. 187 */ 188 @Deprecated 189 public void setCapitalAssetManagementAssetType(CapitalAssetManagementAssetType capitalAssetManagementAssetType) { 190 this.capitalAssetManagementAssetType = capitalAssetManagementAssetType; 191 } 192 193 /** 194 * Gets the vendorDetail attribute. 195 * 196 * @return Returns the vendorDetail. 197 */ 198 public VendorDetail getVendorDetail() { 199 return vendorDetail; 200 } 201 202 /** 203 * Sets the vendorDetail attribute value. 204 * 205 * @param vendorDetail The vendorDetail to set. 206 */ 207 @Deprecated 208 public void setVendorDetail(VendorDetail vendorDetail) { 209 this.vendorDetail = vendorDetail; 210 } 211 212 /** 213 * Returns a map with the primitive field names as the key and the primitive values as the map value. 214 * 215 * @return Map a map with the primitive field names as the key and the primitive values as the map value. 216 */ 217 public Map<String, Object> getValuesMap() { 218 Map<String, Object> simpleValues = new HashMap<String, Object>(); 219 220 simpleValues.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.getDocumentNumber()); 221 simpleValues.put(KFSPropertyConstants.VENDOR_HEADER_GENERATED_ID, this.getVendorHeaderGeneratedIdentifier()); 222 simpleValues.put(KFSPropertyConstants.VENDOR_DETAIL_ASSIGNED_ID, this.getVendorDetailAssignedIdentifier()); 223 simpleValues.put(KFSPropertyConstants.VENDOR_NAME, this.getVendorName()); 224 simpleValues.put(KFSPropertyConstants.CAPITAL_ASSET_NUMBER, this.getCapitalAssetNumber()); 225 simpleValues.put(KFSPropertyConstants.CAPITAL_ASSET_TYPE_CODE, this.getCapitalAssetTypeCode()); 226 227 return simpleValues; 228 } 229 230 /** 231 * Gets the vendorName attribute. 232 * 233 * @return Returns the vendorName. 234 */ 235 public String getVendorName() { 236 if (ObjectUtils.isNotNull(vendorDetail)) { 237 vendorName = vendorDetail.getVendorName(); 238 } 239 else if (StringUtils.isNotBlank(vendorName) && vendorName.indexOf(" > ") > 0){ 240 vendorName = vendorName.substring(vendorName.indexOf(" > ") + 2, vendorName.length()); 241 } 242 243 return vendorName; 244 } 245 246 /** 247 * Sets the vendorName attribute value. 248 * 249 * @param vendorName The vendorName to set. 250 */ 251 public void setVendorName(String vendorName) { 252 this.vendorName = vendorName; 253 } 254 255 /** 256 * Gets the capitalAssetInformationDetails attribute. 257 * 258 * @return Returns the capitalAssetInformationDetails. 259 */ 260 public List<CapitalAssetInformationDetail> getCapitalAssetInformationDetails() { 261 return capitalAssetInformationDetails; 262 } 263 264 /** 265 * Sets the capitalAssetInformationDetails attribute value. 266 * 267 * @param capitalAssetInformationDetails The capitalAssetInformationDetails to set. 268 */ 269 public void setCapitalAssetInformationDetails(List<CapitalAssetInformationDetail> capitalAssetInformationDetails) { 270 this.capitalAssetInformationDetails = capitalAssetInformationDetails; 271 } 272 273 /** 274 * Gets the nextItemLineNumber attribute. 275 * @return Returns the nextItemLineNumber. 276 */ 277 public Integer getNextItemLineNumber() { 278 return nextItemLineNumber; 279 } 280 281 /** 282 * Sets the nextItemLineNumber attribute value. 283 * @param nextItemLineNumber The nextItemLineNumber to set. 284 */ 285 public void setNextItemLineNumber(Integer nextItemLineNumber) { 286 this.nextItemLineNumber = nextItemLineNumber; 287 } 288 289 290 }