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.ld.businessobject;
018    
019    import java.util.LinkedHashMap;
020    
021    import org.kuali.kfs.coa.businessobject.Chart;
022    import org.kuali.kfs.coa.businessobject.ObjectCode;
023    import org.kuali.kfs.integration.ld.LaborLedgerBenefitsCalculation;
024    import org.kuali.kfs.integration.ld.LaborLedgerBenefitsType;
025    import org.kuali.kfs.sys.businessobject.SystemOptions;
026    import org.kuali.rice.kns.bo.Inactivateable;
027    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
028    import org.kuali.rice.kns.util.KualiPercent;
029    
030    /**
031     * Labor business object for Benefits Calculation.
032     */
033    public class BenefitsCalculation extends PersistableBusinessObjectBase implements LaborLedgerBenefitsCalculation, Inactivateable {
034    
035        private Integer universityFiscalYear;
036        private String chartOfAccountsCode;
037        private String positionBenefitTypeCode;
038        private KualiPercent positionFringeBenefitPercent;
039        private String positionFringeBenefitObjectCode;
040        private ObjectCode positionFringeBenefitObject;
041        private Chart chartOfAccounts;
042        private BenefitsType positionBenefitType;
043        private transient SystemOptions universityFiscal;
044        private boolean active;
045        private LaborObject laborObject;
046    
047        /**
048         * Default constructor.
049         */
050        public BenefitsCalculation() {
051    
052        }
053    
054        /**
055         * Gets the universityFiscalYear attribute.
056         * 
057         * @return Returns the universityFiscalYear
058         */
059        public Integer getUniversityFiscalYear() {
060            return universityFiscalYear;
061        }
062    
063        /**
064         * Sets the universityFiscalYear attribute.
065         * 
066         * @param universityFiscalYear The universityFiscalYear to set.
067         */
068        public void setUniversityFiscalYear(Integer universityFiscalYear) {
069            this.universityFiscalYear = universityFiscalYear;
070        }
071    
072        /**
073         * Gets the chartOfAccountsCode attribute.
074         * 
075         * @return Returns the chartOfAccountsCode
076         */
077        public String getChartOfAccountsCode() {
078            return chartOfAccountsCode;
079        }
080    
081        /**
082         * Sets the chartOfAccountsCode attribute.
083         * 
084         * @param chartOfAccountsCode The chartOfAccountsCode to set.
085         */
086        public void setChartOfAccountsCode(String chartOfAccountsCode) {
087            this.chartOfAccountsCode = chartOfAccountsCode;
088        }
089    
090        /**
091         * Gets the positionBenefitTypeCode attribute.
092         * 
093         * @return Returns the positionBenefitTypeCode
094         */
095        public String getPositionBenefitTypeCode() {
096            return positionBenefitTypeCode;
097        }
098    
099        /**
100         * Sets the positionBenefitTypeCode attribute.
101         * 
102         * @param positionBenefitTypeCode The positionBenefitTypeCode to set.
103         */
104        public void setPositionBenefitTypeCode(String positionBenefitTypeCode) {
105            this.positionBenefitTypeCode = positionBenefitTypeCode;
106        }
107    
108        /**
109         * Gets the positionFringeBenefitPercent attribute.
110         * 
111         * @return Returns the positionFringeBenefitPercent
112         */
113        public KualiPercent getPositionFringeBenefitPercent() {
114            return positionFringeBenefitPercent;
115        }
116    
117        /**
118         * Sets the positionFringeBenefitPercent attribute.
119         * 
120         * @param positionFringeBenefitPercent The positionFringeBenefitPercent to set.
121         */
122        public void setPositionFringeBenefitPercent(KualiPercent positionFringeBenefitPercent) {
123            this.positionFringeBenefitPercent = positionFringeBenefitPercent;
124        }
125    
126        /**
127         * Gets the positionFringeBenefitObjectCode attribute.
128         * 
129         * @return Returns the positionFringeBenefitObjectCode
130         */
131        public String getPositionFringeBenefitObjectCode() {
132            return positionFringeBenefitObjectCode;
133        }
134    
135        /**
136         * Sets the positionFringeBenefitObjectCode attribute.
137         * 
138         * @param positionFringeBenefitObjectCode The positionFringeBenefitObjectCode to set.
139         */
140        public void setPositionFringeBenefitObjectCode(String positionFringeBenefitObjectCode) {
141            this.positionFringeBenefitObjectCode = positionFringeBenefitObjectCode;
142        }
143    
144        /**
145         * Gets the positionFringeBenefitObject attribute.
146         * 
147         * @return Returns the positionFringeBenefitObject
148         */
149        public ObjectCode getPositionFringeBenefitObject() {
150            return positionFringeBenefitObject;
151        }
152    
153        /**
154         * Sets the positionFringeBenefitObject attribute.
155         * 
156         * @param positionFringeBenefitObject The positionFringeBenefitObject to set.
157         */
158        @Deprecated
159        public void setPositionFringeBenefitObject(ObjectCode positionFringeBenefitObject) {
160            this.positionFringeBenefitObject = positionFringeBenefitObject;
161        }
162    
163        /**
164         * Gets the chartOfAccounts attribute.
165         * 
166         * @return Returns the chartOfAccounts
167         */
168        public Chart getChartOfAccounts() {
169            return chartOfAccounts;
170        }
171    
172        /**
173         * Sets the chartOfAccounts attribute.
174         * 
175         * @param chartOfAccounts The chartOfAccounts to set.
176         */
177        @Deprecated
178        public void setChartOfAccounts(Chart chartOfAccounts) {
179            this.chartOfAccounts = chartOfAccounts;
180        }
181    
182        /**
183         * Gets the positionBenefitType attribute.
184         * 
185         * @return Returns the positionBenefitType.
186         */
187        public BenefitsType getPositionBenefitType() {
188            return positionBenefitType;
189        }
190    
191        /**
192         * Sets the positionBenefitType attribute value.
193         * 
194         * @param positionBenefitType The positionBenefitType to set.
195         */
196        @Deprecated
197        public void setPositionBenefitType(BenefitsType positionBenefitType) {
198            this.positionBenefitType = positionBenefitType;
199        }
200    
201        /**
202         * Gets the laborObject
203         * 
204         * @return Returns the laborObject.
205         */
206        public LaborObject getLaborObject() {
207            return laborObject;
208        }
209        
210        /**
211         * Sets the laborObject
212         * 
213         * @param laborObject The laborObject to set.
214         */
215        @Deprecated
216        public void setLaborObject(LaborObject laborObject) {
217            this.laborObject = laborObject;
218        }
219        
220        /**
221         * Gets the universityFiscal attribute.
222         * 
223         * @return Returns the universityFiscal.
224         */
225        public SystemOptions getUniversityFiscal() {
226            return universityFiscal;
227        }
228    
229        /**
230         * Sets the universityFiscal attribute value.
231         * 
232         * @param universityFiscal The universityFiscal to set.
233         */
234        public void setUniversityFiscal(SystemOptions universityFiscal) {
235            this.universityFiscal = universityFiscal;
236        }
237        
238        /**
239         * This method (a hack by any other name...) returns a string so that an Labor Benefits Calculation can have a link to view its own
240         * inquiry page after a look up
241         * 
242         * @return the String "View Labor Benefits Calculation"
243         */
244        public String getLaborBenefitsCalculationViewer() {
245            return "View Labor Benefits Calculation";
246        }
247    
248        /**
249         * Gets the active attribute.
250         * 
251         * @return Returns the active.
252         */
253        public boolean isActive() {
254            return active;
255        }
256    
257        /**
258         * Sets the active attribute value.
259         * 
260         * @param active The active to set.
261         */
262        public void setActive(boolean active) {
263            this.active = active;
264        }
265    
266        /**
267         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
268         */
269        protected LinkedHashMap toStringMapper() {
270            LinkedHashMap m = new LinkedHashMap();
271            if (this.universityFiscalYear != null) {
272                m.put("universityFiscalYear", this.universityFiscalYear.toString());
273            }
274            m.put("chartOfAccountsCode", this.chartOfAccountsCode);
275            m.put("positionBenefitTypeCode", this.positionBenefitTypeCode);
276    
277            return m;
278        }
279    
280        /**
281         * @see org.kuali.kfs.integration.businessobject.LaborLedgerBenefitsCalculation#getLaborLedgerBenefitsType()
282         */
283        public LaborLedgerBenefitsType getLaborLedgerBenefitsType() {
284            return this.getPositionBenefitType();
285        }
286    
287        /**
288         * @see org.kuali.kfs.integration.businessobject.LaborLedgerBenefitsCalculation#setLaborLedgerBenefitsType(org.kuali.module.labor.bo.LaborLedgerBenefitsType)
289         */
290        public void setLaborLedgerBenefitsType(LaborLedgerBenefitsType laborLedgerBenefitsType) {
291            this.setPositionBenefitType((BenefitsType)laborLedgerBenefitsType);
292        }
293    }