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.ld.businessobject;
017    
018    import java.math.BigDecimal;
019    import java.util.LinkedHashMap;
020    
021    import org.kuali.kfs.integration.ld.LaborLedgerExpenseTransferTargetAccountingLine;
022    import org.kuali.kfs.integration.ld.LaborLedgerObject;
023    import org.kuali.kfs.sys.KFSPropertyConstants;
024    import org.kuali.kfs.sys.businessobject.TargetAccountingLine;
025    
026    /**
027     * Labor business object for special case <code>{@link TargetAccountingLine}</code> type for
028     * <code>{@link org.kuali.module.labor.document.ExpenseTransferDocument}</code>
029     */
030    public class ExpenseTransferTargetAccountingLine extends TargetAccountingLine implements ExpenseTransferAccountingLine, LaborLedgerExpenseTransferTargetAccountingLine, Comparable<ExpenseTransferTargetAccountingLine> {
031        private String positionNumber;
032        private BigDecimal payrollTotalHours;
033        private Integer payrollEndDateFiscalYear;
034        private String payrollEndDateFiscalPeriodCode;
035        private String emplid;
036        private LaborObject laborObject;
037        
038        /**
039         * Constructs a ExpenseTransferTargetAccountingLine.java.
040         */
041        public ExpenseTransferTargetAccountingLine() {
042            super();
043            payrollTotalHours = new BigDecimal(0);
044        }
045    
046        /**
047         * Gets the positionNumber.
048         * 
049         * @return Returns the positionNumber
050         */
051        public String getPositionNumber() {
052            return positionNumber;
053        }
054    
055        /**
056         * Sets the positionNumber.
057         * 
058         * @param positionNumber The positionNumber to set.
059         */
060        public void setPositionNumber(String positionNumber) {
061            this.positionNumber = positionNumber;
062        }
063    
064        /**
065         * Gets the payrollTotalHours.
066         * 
067         * @return Returns the payrollTotalHours
068         */
069        public BigDecimal getPayrollTotalHours() {
070            return payrollTotalHours;
071        }
072    
073        /**
074         * Sets the payrollTotalHours.
075         * 
076         * @param payrollTotalHours The payrollTotalHours to set.
077         */
078        public void setPayrollTotalHours(BigDecimal payrollTotalHours) {
079            this.payrollTotalHours = payrollTotalHours;
080        }
081    
082        /**
083         * Gets the payrollEndDateFiscalYear.
084         * 
085         * @return Returns the payrollEndDateFiscalYear
086         */
087        public Integer getPayrollEndDateFiscalYear() {
088            return payrollEndDateFiscalYear;
089        }
090    
091        /**
092         * Sets the payrollEndDateFiscalYear.
093         * 
094         * @param payrollEndDateFiscalYear The payrollEndDateFiscalYear to set.
095         */
096        public void setPayrollEndDateFiscalYear(Integer payrollEndDateFiscalYear) {
097            this.payrollEndDateFiscalYear = payrollEndDateFiscalYear;
098        }
099    
100        /**
101         * Gets the payrollEndDateFiscalPeriodCode.
102         * 
103         * @return Returns the payrollEndDateFiscalPeriodCode
104         */
105        public String getPayrollEndDateFiscalPeriodCode() {
106            return payrollEndDateFiscalPeriodCode;
107        }
108    
109        /**
110         * Sets the payrollEndDateFiscalPeriodCode.
111         * 
112         * @param payrollEndDateFiscalPeriodCode The payrollEndDateFiscalPeriodCode to set.
113         */
114        public void setPayrollEndDateFiscalPeriodCode(String payrollEndDateFiscalPeriodCode) {
115            this.payrollEndDateFiscalPeriodCode = payrollEndDateFiscalPeriodCode;
116        }
117    
118        /**
119         * Gets the emplid.
120         * 
121         * @return Returns the emplid
122         */
123        public String getEmplid() {
124            return emplid;
125        }
126    
127        /**
128         * Sets the emplid.
129         * 
130         * @param emplid The emplid to set.
131         */
132        public void setEmplid(String emplid) {
133            this.emplid = emplid;
134        }
135    
136        /**
137         * Gets the laborObject.
138         * 
139         * @return Returns the laborObject.
140         */
141        public LaborObject getLaborObject() {
142            return laborObject;
143        }
144    
145        /**
146         * Sets the laborObject.
147         * 
148         * @param laborObject The laborObject to set.
149         */
150        @Deprecated
151        public void setLaborObject(LaborObject laborObject) {
152            this.laborObject = laborObject;
153        }
154        
155        /**
156         * @see org.kuali.kfs.bo.LaborLedgerExpenseTransferAccoutingLine#getLaborLedgerObject()
157         */
158        public LaborLedgerObject getLaborLedgerObject() {
159            return this.laborObject;
160        }
161    
162        /**
163         * @see org.kuali.kfs.bo.LaborLedgerExpenseTransferAccoutingLine#setLaborLedgerObject(org.kuali.kfs.bo.LaborLedgerObject)
164         */
165        @Deprecated
166        public void setLaborLedgerObject(LaborLedgerObject laborLedgerObject) {
167            this.laborObject = (LaborObject) laborLedgerObject;
168        }
169    
170        /**
171         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
172         */
173        @SuppressWarnings("unchecked")
174        protected LinkedHashMap toStringMapper() {
175            LinkedHashMap m = new LinkedHashMap();
176            m.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.getDocumentNumber());
177            if (this.getSequenceNumber() != null) {
178                m.put("sequenceNumber", this.getSequenceNumber().toString());
179            }
180    
181            return m;
182        }
183    
184        /**
185         * Used to for sorting <code>{@link ExpenseTransferAccountingLine}</code> instances within a java
186         * <code>{@link java.util.Collection}</code> by payrollEndDateFisdalYear and payrollEndDateFiscalPeriodCode
187         * 
188         * @see java.lang.Comparable#compareTo(T)
189         */
190        public int compareTo(ExpenseTransferTargetAccountingLine o) {
191            if (o == null)
192                throw new NullPointerException("ExpenseTransferAccountingLine is null");
193            int retval = 0;
194            retval = getPayrollEndDateFiscalYear().compareTo(o.getPayrollEndDateFiscalYear());
195    
196            if (retval == 0) {
197                retval = new Integer(getPayrollEndDateFiscalPeriodCode()).compareTo(new Integer(o.getPayrollEndDateFiscalPeriodCode()));
198            }
199    
200            return retval;
201        }
202    
203        /**
204         * Used to copy a particular transaction line into another This method...
205         * 
206         * @param from
207         */
208        public void copyFrom(ExpenseTransferAccountingLine from) {
209            super.copyFrom(from);
210            this.setPayrollTotalHours(from.getPayrollTotalHours());
211            this.setPositionNumber(from.getPositionNumber());
212            this.setPayrollEndDateFiscalYear(from.getPayrollEndDateFiscalYear());
213            this.setPayrollEndDateFiscalPeriodCode(from.getPayrollEndDateFiscalPeriodCode());
214            this.setEmplid(from.getEmplid());
215        }
216    }