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.fp.businessobject;
018    
019    import java.util.LinkedHashMap;
020    
021    import org.kuali.kfs.fp.businessobject.options.TaxIncomeClassValuesFinder;
022    import org.kuali.kfs.sys.KFSPropertyConstants;
023    import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
024    import org.kuali.rice.kns.util.KualiDecimal;
025    
026    /**
027     * This class is used to represent a disbursement voucher non-resident alien tax.
028     */
029    public class DisbursementVoucherNonResidentAlienTax extends PersistableBusinessObjectBase {
030    
031        private String documentNumber;
032        private KualiDecimal federalIncomeTaxPercent;
033        private KualiDecimal stateIncomeTaxPercent;
034        private String incomeClassCode;
035        private String postalCountryCode;
036        private boolean incomeTaxTreatyExemptCode;
037        private boolean foreignSourceIncomeCode;
038        private boolean incomeTaxGrossUpCode;
039        private String referenceFinancialSystemOriginationCode;
040        private String referenceFinancialDocumentNumber;
041        private String financialDocumentAccountingLineText;
042        private String taxNQIId;
043        private Boolean taxOtherExemptIndicator;
044        private Boolean taxUSAIDPerDiemIndicator;
045        protected KualiDecimal taxSpecialW4Amount;
046    
047        private TaxIncomeClassCode incomeClass;
048    
049        /**
050         * Default no-arg constructor.
051         */
052        public DisbursementVoucherNonResidentAlienTax() {
053    
054        }
055    
056        /**
057         * Gets the documentNumber attribute.
058         * 
059         * @return Returns the documentNumber
060         */
061        public String getDocumentNumber() {
062            return documentNumber;
063        }
064    
065    
066        /**
067         * Sets the documentNumber attribute.
068         * 
069         * @param documentNumber The documentNumber to set.
070         */
071        public void setDocumentNumber(String documentNumber) {
072            this.documentNumber = documentNumber;
073        }
074    
075        /**
076         * Gets the federalIncomeTaxPercent attribute.
077         * 
078         * @return Returns the federalIncomeTaxPercent
079         */
080        public KualiDecimal getFederalIncomeTaxPercent() {
081            return federalIncomeTaxPercent;
082        }
083    
084    
085        /**
086         * Sets the federalIncomeTaxPercent attribute.
087         * 
088         * @param federalIncomeTaxPercent The federalIncomeTaxPercent to set.
089         */
090        public void setFederalIncomeTaxPercent(KualiDecimal federalIncomeTaxPercent) {
091            this.federalIncomeTaxPercent = federalIncomeTaxPercent;
092        }
093    
094        /**
095         * Gets the stateIncomeTaxPercent attribute.
096         * 
097         * @return Returns the stateIncomeTaxPercent
098         */
099        public KualiDecimal getStateIncomeTaxPercent() {
100            return stateIncomeTaxPercent;
101        }
102    
103    
104        /**
105         * Sets the stateIncomeTaxPercent attribute.
106         * 
107         * @param stateIncomeTaxPercent The stateIncomeTaxPercent to set.
108         */
109        public void setStateIncomeTaxPercent(KualiDecimal stateIncomeTaxPercent) {
110            this.stateIncomeTaxPercent = stateIncomeTaxPercent;
111        }
112    
113        /**
114         * Gets the incomeClassCode attribute.
115         * 
116         * @return Returns the incomeClassCode
117         */
118        public String getIncomeClassCode() {
119            return incomeClassCode;
120        }
121    
122    
123        /**
124         * Sets the incomeClassCode attribute.
125         * 
126         * @param incomeClassCode The incomeClassCode to set.
127         */
128        public void setIncomeClassCode(String incomeClassCode) {
129            this.incomeClassCode = incomeClassCode;
130        }
131    
132        /**
133         * Gets the postalCountryCode attribute.
134         * 
135         * @return Returns the postalCountryCode
136         */
137        public String getPostalCountryCode() {
138            return postalCountryCode;
139        }
140    
141    
142        /**
143         * Sets the postalCountryCode attribute.
144         * 
145         * @param postalCountryCode The postalCountryCode to set.
146         */
147        public void setPostalCountryCode(String postalCountryCode) {
148            this.postalCountryCode = postalCountryCode;
149        }
150    
151        /**
152         * Gets the incomeTaxTreatyExemptCode attribute.
153         * 
154         * @return Returns the incomeTaxTreatyExemptCode
155         */
156        public boolean isIncomeTaxTreatyExemptCode() {
157            return incomeTaxTreatyExemptCode;
158        }
159    
160    
161        /**
162         * Sets the incomeTaxTreatyExemptCode attribute.
163         * 
164         * @param incomeTaxTreatyExemptCode The incomeTaxTreatyExemptCode to set.
165         */
166        public void setIncomeTaxTreatyExemptCode(boolean incomeTaxTreatyExemptCode) {
167            this.incomeTaxTreatyExemptCode = incomeTaxTreatyExemptCode;
168        }
169    
170        /**
171         * Gets the foreignSourceIncomeCode attribute.
172         * 
173         * @return Returns the foreignSourceIncomeCode
174         */
175        public boolean isForeignSourceIncomeCode() {
176            return foreignSourceIncomeCode;
177        }
178    
179    
180        /**
181         * Sets the foreignSourceIncomeCode attribute.
182         * 
183         * @param foreignSourceIncomeCode The foreignSourceIncomeCode to set.
184         */
185        public void setForeignSourceIncomeCode(boolean foreignSourceIncomeCode) {
186            this.foreignSourceIncomeCode = foreignSourceIncomeCode;
187        }
188    
189        /**
190         * Gets the incomeTaxGrossUpCode attribute.
191         * 
192         * @return Returns the incomeTaxGrossUpCode
193         */
194        public boolean isIncomeTaxGrossUpCode() {
195            return incomeTaxGrossUpCode;
196        }
197    
198    
199        /**
200         * Sets the incomeTaxGrossUpCode attribute.
201         * 
202         * @param incomeTaxGrossUpCode The incomeTaxGrossUpCode to set.
203         */
204        public void setIncomeTaxGrossUpCode(boolean incomeTaxGrossUpCode) {
205            this.incomeTaxGrossUpCode = incomeTaxGrossUpCode;
206        }
207    
208        /**
209         * Gets the referenceFinancialSystemOriginationCode attribute.
210         * 
211         * @return Returns the referenceFinancialSystemOriginationCode
212         */
213        public String getReferenceFinancialSystemOriginationCode() {
214            return referenceFinancialSystemOriginationCode;
215        }
216    
217    
218        /**
219         * Sets the referenceFinancialSystemOriginationCode attribute.
220         * 
221         * @param referenceFinancialSystemOriginationCode The referenceFinancialSystemOriginationCode to set.
222         */
223        public void setReferenceFinancialSystemOriginationCode(String referenceFinancialSystemOriginationCode) {
224            this.referenceFinancialSystemOriginationCode = referenceFinancialSystemOriginationCode;
225        }
226    
227        /**
228         * Gets the referenceFinancialDocumentNumber attribute.
229         * 
230         * @return Returns the referenceFinancialDocumentNumber
231         */
232        public String getReferenceFinancialDocumentNumber() {
233            return referenceFinancialDocumentNumber;
234        }
235    
236    
237        /**
238         * Sets the referenceFinancialDocumentNumber attribute.
239         * 
240         * @param referenceFinancialDocumentNumber The referenceFinancialDocumentNumber to set.
241         */
242        public void setReferenceFinancialDocumentNumber(String referenceFinancialDocumentNumber) {
243            this.referenceFinancialDocumentNumber = referenceFinancialDocumentNumber;
244        }
245    
246        /**
247         * @return Returns the financialDocumentAccountingLineText.
248         */
249        public String getFinancialDocumentAccountingLineText() {
250            return financialDocumentAccountingLineText;
251        }
252    
253        /**
254         * @param financialDocumentAccountingLineText The financialDocumentAccountingLineText to set.
255         */
256        public void setFinancialDocumentAccountingLineText(String financialDocumentAccountingLineText) {
257            this.financialDocumentAccountingLineText = financialDocumentAccountingLineText;
258        }
259    
260        /**
261         * Gets the taxNQIId attribute.
262         * 
263         * @return Returns the taxNQIId.
264         */
265        public String getTaxNQIId() {
266            return taxNQIId;
267        }
268    
269        /**
270         * Gets the taxOtherExemptIndicator attribute.
271         * 
272         * @return Returns the taxOtherExemptIndicator.
273         */
274        public Boolean getTaxOtherExemptIndicator() {
275            return taxOtherExemptIndicator;
276        }
277    
278        /**
279         * Gets the taxUSAIDPerDiemIndicator attribute.
280         * 
281         * @return Returns the taxUSAIDPerDiemIndicator.
282         */
283        public Boolean getTaxUSAIDPerDiemIndicator() {
284            return taxUSAIDPerDiemIndicator;
285        }
286    
287        /**
288         * Gets the taxSpecialW4Amount attribute.
289         * 
290         * @return Returns the taxSpecialW4Amount.
291         */
292        public KualiDecimal getTaxSpecialW4Amount() {
293            return taxSpecialW4Amount;
294        }
295    
296        /**
297         * Sets the taxNQIId attribute value.
298         * 
299         * @param taxNQIId The taxNQIId to set.
300         */
301        public void setTaxNQIId(String taxNQIId) {
302            this.taxNQIId = taxNQIId;
303        }
304    
305        /**
306         * Sets the taxOtherExemptIndicator attribute value.
307         * 
308         * @param taxOtherExemptIndicator The taxOtherExemptIndicator to set.
309         */
310        public void setTaxOtherExemptIndicator(Boolean taxOtherExemptIndicator) {
311            this.taxOtherExemptIndicator = taxOtherExemptIndicator;
312        }
313    
314        /**
315         * Sets the taxUSAIDPerDiemIndicator attribute value.
316         * 
317         * @param taxUSAIDPerDiemIndicator The taxUSAIDPerDiemIndicator to set.
318         */
319        public void setTaxUSAIDPerDiemIndicator(Boolean taxUSAIDPerDiemIndicator) {
320            this.taxUSAIDPerDiemIndicator = taxUSAIDPerDiemIndicator;
321        }
322    
323        /**
324         * Sets the taxSpecialW4Amount attribute value.
325         * 
326         * @param taxSpecialW4Amount The taxSpecialW4Amount to set.
327         */
328        public void setTaxSpecialW4Amount(KualiDecimal taxSpecialW4Amount) {
329            this.taxSpecialW4Amount = taxSpecialW4Amount;
330        }
331    
332        /**
333         * Gets the incomeClass attribute.
334         * 
335         * @return Returns the incomeClass
336         */
337        public TaxIncomeClassCode getIncomeClass() {
338            return incomeClass;
339        }
340    
341    
342        /**
343         * Sets the incomeClass attribute.
344         * 
345         * @param incomeClass The incomeClass to set.
346         * @deprecated
347         */
348        public void setIncomeClass(TaxIncomeClassCode incomeClass) {
349            this.incomeClass = incomeClass;
350        }
351    
352        /**
353         * Return select read-only label for income class
354         * 
355         * @return
356         */
357        public String getIncomeClassName() {
358            return new TaxIncomeClassValuesFinder().getKeyLabel(incomeClassCode);
359        }
360    
361        /**
362         * Sets the incomeClassName attribute.
363         * 
364         * @param name The incomeClass name to set.
365         */
366        public void setincomeClassName(String name) {
367        }
368    
369        /**
370         * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
371         */
372        @SuppressWarnings("rawtypes")
373        protected LinkedHashMap toStringMapper() {
374            LinkedHashMap m = new LinkedHashMap();
375            m.put(KFSPropertyConstants.DOCUMENT_NUMBER, this.documentNumber);
376            return m;
377        }
378    
379    }