001/*
002 * Copyright 2005 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
017package org.kuali.ole.fp.businessobject;
018
019import java.util.LinkedHashMap;
020
021import org.kuali.ole.fp.businessobject.options.TaxIncomeClassValuesFinder;
022import org.kuali.ole.sys.OLEPropertyConstants;
023import org.kuali.rice.core.api.util.type.KualiDecimal;
024import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
025
026/**
027 * This class is used to represent a disbursement voucher non-resident alien tax.
028 */
029public 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 isTaxOtherExemptIndicator() {
275        return taxOtherExemptIndicator;
276    }
277
278    /**
279     * Gets the taxUSAIDPerDiemIndicator attribute.
280     * 
281     * @return Returns the taxUSAIDPerDiemIndicator.
282     */
283    public boolean isTaxUSAIDPerDiemIndicator() {
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    @Deprecated
349    public void setIncomeClass(TaxIncomeClassCode incomeClass) {
350        this.incomeClass = incomeClass;
351    }
352
353    /**
354     * Return select read-only label for income class
355     * 
356     * @return
357     */
358    public String getIncomeClassName() {
359        return new TaxIncomeClassValuesFinder().getKeyLabel(incomeClassCode);
360    }
361
362    /**
363     * Sets the incomeClassName attribute.
364     * 
365     * @param name The incomeClass name to set.
366     */
367    public void setincomeClassName(String name) {
368    }
369
370    /**
371     * @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper()
372     */
373    @SuppressWarnings("rawtypes")
374    protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
375        LinkedHashMap m = new LinkedHashMap();
376        m.put(OLEPropertyConstants.DOCUMENT_NUMBER, this.documentNumber);
377        return m;
378    }
379
380}