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    
017    package org.kuali.kfs.module.bc.businessobject;
018    
019    import java.util.Collection;
020    import java.util.HashMap;
021    import java.util.LinkedHashMap;
022    import java.util.List;
023    import java.util.Map;
024    
025    import org.kuali.kfs.coa.businessobject.ObjectCode;
026    import org.kuali.kfs.fp.service.impl.FiscalYearFunctionControlServiceImpl;
027    import org.kuali.kfs.sys.KFSPropertyConstants;
028    import org.kuali.kfs.sys.context.SpringContext;
029    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
030    import org.kuali.rice.kns.service.BusinessObjectService;
031    
032    /**
033     * Business object that represents a selected/unselected object code for a user.
034     */
035    public class BudgetConstructionObjectPick extends PersistableBusinessObjectBase {
036    
037        private String financialObjectCode;
038        private Integer selectFlag;
039        private String principalId;
040    
041        /**
042         * Default constructor.
043         */
044        public BudgetConstructionObjectPick() {
045            selectFlag = new Integer(0);
046        }
047    
048        /**
049         * Gets the financialObjectCode attribute.
050         * 
051         * @return Returns the financialObjectCode
052         */
053        public String getFinancialObjectCode() {
054            return financialObjectCode;
055        }
056    
057        /**
058         * Sets the financialObjectCode attribute.
059         * 
060         * @param financialObjectCode The financialObjectCode to set.
061         */
062        public void setFinancialObjectCode(String financialObjectCode) {
063            this.financialObjectCode = financialObjectCode;
064        }
065    
066    
067        /**
068         * Gets the selectFlag attribute.
069         * 
070         * @return Returns the selectFlag
071         */
072        public Integer getSelectFlag() {
073            return selectFlag;
074        }
075    
076        /**
077         * We only care about a general description for the object code regardless of chart. Therefore we need to do a query and return
078         * first row (if multiple).
079         * 
080         * @return String - Object code description
081         */
082        public String getObjectCodeDescription() {
083            Map criteria = new HashMap();
084    
085            List activeBudgetYears = SpringContext.getBean(FiscalYearFunctionControlServiceImpl.class).getActiveBudgetYear();
086            criteria.put(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR, activeBudgetYears.get(0));
087            criteria.put(KFSPropertyConstants.FINANCIAL_OBJECT_CODE, this.getFinancialObjectCode());
088    
089            Collection results = SpringContext.getBean(BusinessObjectService.class).findMatching(ObjectCode.class, criteria);
090            if (results != null && results.size() > 0) {
091                ObjectCode objectCode = (ObjectCode) results.iterator().next();
092                return objectCode.getFinancialObjectCodeName();
093            }
094    
095            return "";
096        }
097        
098        /**
099         * Dummy setter for UI.
100         */
101        public void setObjectCodeDescription(String objectCodeDescription) {
102        }
103    
104        /**
105         * Sets the selectFlag attribute.
106         * 
107         * @param selectFlag The selectFlag to set.
108         */
109        public void setSelectFlag(Integer selectFlag) {
110            this.selectFlag = selectFlag;
111        }
112    
113    
114        /**
115         * Gets the principalId attribute.
116         * 
117         * @return Returns the principalId.
118         */
119        public String getPrincipalId() {
120            return principalId;
121        }
122    
123        /**
124         * Sets the principalId attribute value.
125         * 
126         * @param principalId The principalId to set.
127         */
128        public void setPrincipalId(String principalId) {
129            this.principalId = principalId;
130        }
131    
132        /**
133         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
134         */
135        protected LinkedHashMap toStringMapper() {
136            LinkedHashMap m = new LinkedHashMap();
137            m.put("principalId", this.principalId);
138            m.put("financialObjectCode", this.financialObjectCode);
139            return m;
140        }
141    }
142