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 }