001    /**
002     * Copyright 2004-2013 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.hr.lm.employeeoverride;
017    
018    import java.util.LinkedHashMap;
019    
020    import org.apache.commons.lang.StringUtils;
021    import org.kuali.hr.lm.accrual.AccrualCategory;
022    import org.kuali.hr.time.HrBusinessObject;
023    import org.kuali.hr.time.principal.PrincipalHRAttributes;
024    import org.kuali.hr.time.service.base.TkServiceLocator;
025    import org.kuali.rice.kim.api.identity.Person;
026    import org.kuali.rice.kim.api.services.KimApiServiceLocator;
027    
028    public class EmployeeOverride extends HrBusinessObject {
029    
030            private static final long serialVersionUID = 1L;
031            
032            private String lmEmployeeOverrideId;
033            private String principalId;
034            private String accrualCategory;
035            private String leavePlan;
036            private transient Person principal;
037            private transient PrincipalHRAttributes principalHRAttrObj;
038            private transient AccrualCategory accrualCategoryObj;
039            private String overrideType;
040            private Long overrideValue;
041            private String description;
042    
043            @Override
044            public String getId() {
045                    return getLmEmployeeOverrideId();
046            }
047    
048            @Override
049            protected String getUniqueKey() {
050                    return getLmEmployeeOverrideId();
051            }
052    
053            @Override
054            public void setId(String id) {
055                    setLmEmployeeOverrideId(id);            
056            }
057    
058    //      @SuppressWarnings("unchecked")
059    //      @Override
060    //      protected LinkedHashMap toStringMapper() {
061    //              LinkedHashMap<String, Object> toStringMap = new LinkedHashMap<String, Object>();
062    //              toStringMap.put("lmEmployeeOverrideId", lmEmployeeOverrideId);
063    //              toStringMap.put("principalId", principalId);
064    //              toStringMap.put("overrideType", overrideType);
065    //              toStringMap.put("accrualCategory", accrualCategory);
066    //      
067    //              return toStringMap;
068    //      }
069    
070            public String getLmEmployeeOverrideId() {
071                    return lmEmployeeOverrideId;
072            }
073    
074            public void setLmEmployeeOverrideId(String lmEmployeeOverrideId) {
075                    this.lmEmployeeOverrideId = lmEmployeeOverrideId;
076            }
077    
078            public String getPrincipalId() {
079                    return principalId;
080            }
081    
082            public void setPrincipalId(String principalId) {
083                    this.principalId = principalId;
084                    this.setPrincipal(KimApiServiceLocator.getPersonService().getPerson(this.principalId));
085            }
086            
087            public String getName() {
088                    if (principal == null) {
089            principal = KimApiServiceLocator.getPersonService().getPerson(this.principalId);
090                    }
091                    return (principal != null) ? principal.getName() : "";
092            }
093    
094            public AccrualCategory getAccrualCategoryObj() {
095                    return accrualCategoryObj;
096            }
097    
098            public void setAccrualCategoryObj(AccrualCategory accrualCategoryObj) {
099                    this.accrualCategoryObj = accrualCategoryObj;
100            }
101    
102            public String getOverrideType() {
103                    return overrideType;
104            }
105    
106            public void setOverrideType(String overrideType) {
107                    this.overrideType = overrideType;
108            }
109    
110            public String getDescription() {
111                    return description;
112            }
113    
114            public void setDescription(String description) {
115                    this.description = description;
116            }
117    
118            public String getAccrualCategory() {
119                    return accrualCategory;
120            }
121    
122            public void setAccrualCategory(String accrualCategory) {
123                    this.accrualCategory = accrualCategory;
124            }
125    
126            public String getLeavePlan() {
127            if (leavePlan != null) {
128                return leavePlan;
129            }
130                    if (this.principalHRAttrObj == null && !StringUtils.isEmpty(this.principalId)) {
131                            principalHRAttrObj = TkServiceLocator.getPrincipalHRAttributeService().getPrincipalCalendar(principalId, this.getEffectiveDate());
132                    }
133            leavePlan = principalHRAttrObj == null ? null : principalHRAttrObj.getLeavePlan();
134                    return leavePlan;
135            }
136    
137            public void setLeavePlan(String leavePlan) {
138                    this.leavePlan = leavePlan;
139            }
140    
141            public Long getOverrideValue() {
142                    return overrideValue;
143            }
144    
145            public void setOverrideValue(Long overrideValue) {
146                    this.overrideValue = overrideValue;
147            }
148    
149            public Person getPrincipal() {
150                    return principal;
151            }
152    
153            public void setPrincipal(Person principal) {
154                    this.principal = principal;
155            }
156    
157            public PrincipalHRAttributes getPrincipalHRAttrObj() {
158                    return principalHRAttrObj;
159            }
160    
161            public void setPrincipalHRAttrObj(PrincipalHRAttributes principalHRAttrObj) {
162                    this.principalHRAttrObj = principalHRAttrObj;
163            }
164    
165    }