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.leaveadjustment;
017    
018    import java.math.BigDecimal;
019    import java.util.LinkedHashMap;
020    
021    import org.apache.commons.lang.StringUtils;
022    import org.kuali.hr.lm.accrual.AccrualCategory;
023    import org.kuali.hr.time.HrBusinessObject;
024    import org.kuali.hr.time.earncode.EarnCode;
025    import org.kuali.hr.time.principal.PrincipalHRAttributes;
026    import org.kuali.hr.time.service.base.TkServiceLocator;
027    import org.kuali.rice.kim.api.identity.Person;
028    import org.kuali.rice.kim.api.services.KimApiServiceLocator;
029    
030    public class LeaveAdjustment extends HrBusinessObject {
031            private static final long serialVersionUID = 1L;
032            private String lmLeaveAdjustmentId;
033            private String principalId;
034            private String leavePlan;
035            private String accrualCategory;
036            private String earnCode;
037            private String description;
038            private BigDecimal adjustmentAmount = new BigDecimal("0.0");
039        private transient Person principal;
040            private transient AccrualCategory accrualCategoryObj;
041            private transient EarnCode earnCodeObj;
042            private transient PrincipalHRAttributes principalHRAttrObj;
043            
044            public String getEarnCode() {
045                    return earnCode;
046            }
047            public void setEarnCode(String earnCode) {
048                    this.earnCode = earnCode;
049            }
050            public EarnCode getEarnCodeObj() {
051                    return earnCodeObj;
052            }
053            public void setEarnCodeObj(EarnCode earnCodeObj) {
054                    this.earnCodeObj = earnCodeObj;
055            }
056            public String getPrincipalId() {
057                    return principalId;
058            }
059            public void setPrincipalId(String principalId) {
060                    this.principalId = principalId;
061            }
062        public Person getPrincipal() {
063            return principal;
064        }
065        public void setPrincipal(Person principal) {
066            this.principal = principal;
067        }
068        public String getName() {
069                    if (principal == null) {
070            principal = KimApiServiceLocator.getPersonService().getPerson(this.principalId);
071                    }
072                    return (principal != null) ? principal.getName() : "";
073            }
074            
075            public String getLeavePlan() {
076                    if (!StringUtils.isEmpty(this.principalId)) {
077                            principalHRAttrObj = TkServiceLocator.getPrincipalHRAttributeService().getPrincipalCalendar(principalId, this.getEffectiveDate());
078                    }
079                    return (principalHRAttrObj != null) ? principalHRAttrObj.getLeavePlan() : "";
080            }
081    
082            public void setLeavePlan(String leavePlan) {
083                    this.leavePlan = leavePlan;
084            }
085            public String getAccrualCategory() {
086                    return accrualCategory;
087            }
088            public void setAccrualCategory(String accrualCategory) {
089                    this.accrualCategory = accrualCategory;
090            }
091            
092            public String getDescription() {
093                    return description;
094            }
095            public void setDescription(String description) {
096                    this.description = description;
097            }
098            public BigDecimal getAdjustmentAmount() {
099                    return adjustmentAmount;
100            }
101            public void setAdjustmentAmount(BigDecimal adjustmentAmount) {
102                    this.adjustmentAmount = adjustmentAmount;
103            }
104            public AccrualCategory getAccrualCategoryObj() {
105                    return accrualCategoryObj;
106            }
107            public void setAccrualCategoryObj(AccrualCategory accrualCategoryObj) {
108                    this.accrualCategoryObj = accrualCategoryObj;
109            }
110            public static long getSerialversionuid() {
111                    return serialVersionUID;
112            }
113            public String getLmLeaveAdjustmentId() {
114                    return lmLeaveAdjustmentId;
115            }
116            public void setLmLeaveAdjustmentId(String lmLeaveAdjustmentId) {
117                    this.lmLeaveAdjustmentId = lmLeaveAdjustmentId;
118            }
119            
120            @Override
121            protected String getUniqueKey() {
122                    return getLmLeaveAdjustmentId();
123            }
124            
125            @Override
126            public String getId() {
127                    return getLmLeaveAdjustmentId();
128            }
129    
130            @Override
131            public void setId(String id) {
132                    setLmLeaveAdjustmentId(id);
133            }
134    
135            public PrincipalHRAttributes getPrincipalHRAttrObj() {
136                    return principalHRAttrObj;
137            }
138            public void setPrincipalHRAttrObj(PrincipalHRAttributes principalHRAttrObj) {
139                    this.principalHRAttrObj = principalHRAttrObj;
140            }
141    }