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.cab.businessobject;
017    
018    import java.util.LinkedHashMap;
019    
020    import org.apache.commons.lang.StringUtils;
021    import org.apache.log4j.Logger;
022    import org.kuali.kfs.module.cab.CabConstants;
023    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
024    import org.kuali.rice.kns.util.KualiDecimal;
025    
026    /**
027     * @author Kuali Nervous System Team (kualidev@oncourse.iu.edu)
028     */
029    public class PurchasingAccountsPayableLineAssetAccount extends PersistableBusinessObjectBase {
030        private static final Logger LOG = Logger.getLogger(PurchasingAccountsPayableLineAssetAccount.class);
031    
032        private String documentNumber;
033        private Integer accountsPayableLineItemIdentifier;
034        private Integer capitalAssetBuilderLineNumber;
035        private Long generalLedgerAccountIdentifier;
036        private KualiDecimal itemAccountTotalAmount;
037        private String activityStatusCode;
038    
039        // non-persistent field
040        private boolean active;
041    
042        // References
043        private GeneralLedgerEntry generalLedgerEntry;
044        private PurchasingAccountsPayableItemAsset purchasingAccountsPayableItemAsset;
045    
046        public PurchasingAccountsPayableLineAssetAccount() {
047    
048        }
049    
050        public PurchasingAccountsPayableLineAssetAccount(PurchasingAccountsPayableItemAsset itemAsset, Long generalLedgerAccountIdentifier) {
051            this.documentNumber = itemAsset.getDocumentNumber();
052            this.accountsPayableLineItemIdentifier = itemAsset.getAccountsPayableLineItemIdentifier();
053            this.capitalAssetBuilderLineNumber = itemAsset.getCapitalAssetBuilderLineNumber();
054            this.generalLedgerAccountIdentifier = generalLedgerAccountIdentifier;
055            this.purchasingAccountsPayableItemAsset = itemAsset;
056            this.setActivityStatusCode(StringUtils.isBlank(itemAsset.getActivityStatusCode()) ? CabConstants.ActivityStatusCode.MODIFIED : itemAsset.getActivityStatusCode());
057        }
058    
059        public String getDocumentNumber() {
060            return documentNumber;
061        }
062    
063        public void setDocumentNumber(String documentNumber) {
064            this.documentNumber = documentNumber;
065        }
066    
067        public Integer getAccountsPayableLineItemIdentifier() {
068            return accountsPayableLineItemIdentifier;
069        }
070    
071        public void setAccountsPayableLineItemIdentifier(Integer accountsPayableLineItemIdentifier) {
072            this.accountsPayableLineItemIdentifier = accountsPayableLineItemIdentifier;
073        }
074    
075        public Integer getCapitalAssetBuilderLineNumber() {
076            return capitalAssetBuilderLineNumber;
077        }
078    
079        public void setCapitalAssetBuilderLineNumber(Integer capitalAssetBuilderLineNumber) {
080            this.capitalAssetBuilderLineNumber = capitalAssetBuilderLineNumber;
081        }
082    
083        public Long getGeneralLedgerAccountIdentifier() {
084            return generalLedgerAccountIdentifier;
085        }
086    
087        public void setGeneralLedgerAccountIdentifier(Long generalLedgerAccountIdentifier) {
088            this.generalLedgerAccountIdentifier = generalLedgerAccountIdentifier;
089        }
090    
091        public KualiDecimal getItemAccountTotalAmount() {
092            return itemAccountTotalAmount;
093        }
094    
095        public void setItemAccountTotalAmount(KualiDecimal itemAccountTotalAmount) {
096            this.itemAccountTotalAmount = itemAccountTotalAmount;
097        }
098    
099        public GeneralLedgerEntry getGeneralLedgerEntry() {
100            return generalLedgerEntry;
101        }
102    
103        public void setGeneralLedgerEntry(GeneralLedgerEntry generalLedgerEntry) {
104            this.generalLedgerEntry = generalLedgerEntry;
105        }
106    
107        public boolean isActive() {
108            return CabConstants.ActivityStatusCode.NEW.equalsIgnoreCase(this.getActivityStatusCode()) || CabConstants.ActivityStatusCode.MODIFIED.equalsIgnoreCase(this.getActivityStatusCode());
109        }
110    
111    
112        /**
113         * Gets the activityStatusCode attribute.
114         * 
115         * @return Returns the activityStatusCode.
116         */
117        public String getActivityStatusCode() {
118            return activityStatusCode;
119        }
120    
121        /**
122         * Sets the activityStatusCode attribute value.
123         * 
124         * @param activityStatusCode The activityStatusCode to set.
125         */
126        public void setActivityStatusCode(String activityStatusCode) {
127            this.activityStatusCode = activityStatusCode;
128        }
129    
130        public PurchasingAccountsPayableItemAsset getPurchasingAccountsPayableItemAsset() {
131            return purchasingAccountsPayableItemAsset;
132        }
133    
134        public void setPurchasingAccountsPayableItemAsset(PurchasingAccountsPayableItemAsset purchasingAccountsPayableItemAsset) {
135            this.purchasingAccountsPayableItemAsset = purchasingAccountsPayableItemAsset;
136        }
137    
138        /**
139         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
140         */
141        protected LinkedHashMap toStringMapper() {
142            LinkedHashMap m = new LinkedHashMap();
143            m.put("documentNumber", this.documentNumber);
144            m.put("accountsPayableLineItemIdentifier", this.accountsPayableLineItemIdentifier);
145            m.put("capitalAssetBuilderLineNumber", this.capitalAssetBuilderLineNumber);
146            m.put("generalLedgerAccountIdentifier", this.generalLedgerAccountIdentifier);
147            return m;
148        }
149    }