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.module.purap.businessobject; 017 018 import java.util.LinkedHashMap; 019 020 import org.apache.commons.lang.StringUtils; 021 import org.kuali.kfs.integration.cab.CapitalAssetBuilderAssetTransactionType; 022 import org.kuali.kfs.integration.purap.CapitalAssetSystem; 023 import org.kuali.kfs.integration.purap.ItemCapitalAsset; 024 import org.kuali.kfs.module.purap.PurapConstants; 025 import org.kuali.kfs.module.purap.PurapPropertyConstants; 026 import org.kuali.kfs.module.purap.document.PurchasingDocument; 027 import org.kuali.kfs.sys.context.SpringContext; 028 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 029 import org.kuali.rice.kns.service.KualiModuleService; 030 import org.kuali.rice.kns.util.ObjectUtils; 031 032 public abstract class PurchasingCapitalAssetItemBase extends PersistableBusinessObjectBase implements PurchasingCapitalAssetItem { 033 034 private Integer capitalAssetItemIdentifier; 035 private Integer itemIdentifier; 036 private String capitalAssetTransactionTypeCode; 037 private Integer capitalAssetSystemIdentifier; 038 039 private CapitalAssetBuilderAssetTransactionType capitalAssetTransactionType; 040 private CapitalAssetSystem purchasingCapitalAssetSystem; 041 private PurchasingDocument purchasingDocument; 042 private PurchasingItem purchasingItem; 043 private ItemCapitalAsset newPurchasingItemCapitalAssetLine; 044 045 public PurchasingCapitalAssetItemBase(){ 046 super(); 047 this.setNewPurchasingItemCapitalAssetLine(this.setupNewPurchasingItemCapitalAssetLine()); 048 } 049 050 public PurchasingCapitalAssetItemBase(PurchasingDocument pd) { 051 setPurchasingDocument(pd); 052 } 053 054 public Integer getCapitalAssetItemIdentifier() { 055 return capitalAssetItemIdentifier; 056 } 057 058 public void setCapitalAssetItemIdentifier(Integer capitalAssetItemIdentifier) { 059 this.capitalAssetItemIdentifier = capitalAssetItemIdentifier; 060 } 061 062 public Integer getItemIdentifier() { 063 return itemIdentifier; 064 } 065 066 public void setItemIdentifier(Integer itemIdentifier) { 067 this.itemIdentifier = itemIdentifier; 068 } 069 070 public String getCapitalAssetTransactionTypeCode() { 071 return capitalAssetTransactionTypeCode; 072 } 073 074 public void setCapitalAssetTransactionTypeCode(String capitalAssetTransactionTypeCode) { 075 this.capitalAssetTransactionTypeCode = capitalAssetTransactionTypeCode; 076 } 077 078 public Integer getCapitalAssetSystemIdentifier() { 079 return capitalAssetSystemIdentifier; 080 } 081 082 public void setCapitalAssetSystemIdentifier(Integer capitalAssetSystemIdentifier) { 083 this.capitalAssetSystemIdentifier = capitalAssetSystemIdentifier; 084 } 085 086 public CapitalAssetBuilderAssetTransactionType getCapitalAssetTransactionType() { 087 return capitalAssetTransactionType = (CapitalAssetBuilderAssetTransactionType) SpringContext.getBean(KualiModuleService.class).getResponsibleModuleService(CapitalAssetBuilderAssetTransactionType.class).retrieveExternalizableBusinessObjectIfNecessary(this, capitalAssetTransactionType, PurapPropertyConstants.ITEM_CAPITAL_ASSET_TRANSACTION_TYPE); 088 } 089 090 public CapitalAssetSystem getPurchasingCapitalAssetSystem() { 091 return purchasingCapitalAssetSystem; 092 } 093 094 public void setPurchasingCapitalAssetSystem(CapitalAssetSystem purchasingCapitalAssetSystem) { 095 this.purchasingCapitalAssetSystem = purchasingCapitalAssetSystem; 096 } 097 098 public PurchasingDocument getPurchasingDocument(){ 099 if(ObjectUtils.isNull(this.purchasingDocument)){ 100 this.refreshReferenceObject("purchasingDocument"); 101 } 102 103 return this.purchasingDocument; 104 } 105 106 public void setPurchasingDocument(PurchasingDocument pd){ 107 this.purchasingDocument = pd; 108 } 109 110 public PurchasingItem getPurchasingItem(){ 111 PurchasingDocument pd = this.getPurchasingDocument(); 112 113 if(( pd != null) && ( this.getItemIdentifier() != null)) { 114 return pd.getPurchasingItem(this.getItemIdentifier()); 115 } 116 else { 117 return null; 118 } 119 } 120 121 public boolean isEmpty() { 122 if (this.getPurchasingDocument().getCapitalAssetSystemTypeCode().equals(PurapConstants.CapitalAssetSystemTypes.INDIVIDUAL)) { 123 return !(StringUtils.isNotEmpty(capitalAssetTransactionTypeCode) || ! this.getPurchasingCapitalAssetSystem().isEmpty()); 124 } 125 else { 126 return !(StringUtils.isNotEmpty(capitalAssetTransactionTypeCode) || ! this.getPurchasingDocument().getPurchasingCapitalAssetSystems().get(0).isEmpty()); 127 } 128 } 129 130 public void setNewPurchasingItemCapitalAssetLine(ItemCapitalAsset newItemCapitalAssetLine) { 131 this.newPurchasingItemCapitalAssetLine = newItemCapitalAssetLine; 132 } 133 134 public ItemCapitalAsset getNewPurchasingItemCapitalAssetLine() { 135 return newPurchasingItemCapitalAssetLine; 136 } 137 138 public ItemCapitalAsset getAndResetNewPurchasingItemCapitalAssetLine() { 139 ItemCapitalAsset asset = getNewPurchasingItemCapitalAssetLine(); 140 setNewPurchasingItemCapitalAssetLine(setupNewPurchasingItemCapitalAssetLine()); 141 return asset; 142 } 143 144 public ItemCapitalAsset setupNewPurchasingItemCapitalAssetLine() { 145 ItemCapitalAsset asset = null; 146 return asset; 147 } 148 149 protected LinkedHashMap toStringMapper() { 150 LinkedHashMap m = new LinkedHashMap(); 151 m.put("capitalAssetItemIdentifier", this.capitalAssetItemIdentifier); 152 return m; 153 } 154 155 }