001: /*
002: * Copyright 2006-2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.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/ecl1.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.module.financial.service;
017:
018: import java.util.List;
019:
020: import org.kuali.core.util.KualiDecimal;
021: import org.kuali.module.financial.document.DisbursementVoucherDocument;
022:
023: /**
024: *
025: * This service interface defines the methods that a DisbursementVoucherTaxService implementation must provide.
026: *
027: * Handles queries and validation on tax id numbers.
028: *
029: */
030: public interface DisbursementVoucherTaxService {
031:
032: /**
033: * Returns the vendor id number whose tax number matches the number passed in, or null if no vendor is found.
034: *
035: * @param taxIDNumber A vendor tax id number.
036: * @param taxpayerTypeCode A vendor tax payer type code.
037: * @return The id of the vendor found with a matching tax id number and payer type code, or null if no vendor is found.
038: */
039: public String getVendorId(String taxIDNumber,
040: String taxpayerTypeCode);
041:
042: /**
043: * Returns the pending payee id number whose tax number matches the number passed in, or null if no payee is found.
044: *
045: * @param taxIDNumber A pending payee tax id number.
046: * @param taxpayerTypeCode A pending payee tax payer type code.
047: * @return The id of the pending payee found with a matching tax id number and payer type code, or null if no payee is found.
048: */
049: public String getPendingPayeeId(String taxIDNumber,
050: String taxpayerTypeCode);
051:
052: /**
053: * Returns the payee id number whose tax number matches the number passed in, or null if no payee is found.
054: *
055: * @param taxIDNumber A payee tax id number.
056: * @param taxpayerTypeCode A payee tax payer type code.
057: * @return The id of the payee found with a matching tax id number and payer type code, or null if no payee is found.
058: */
059: public String getPayeeId(String taxIDNumber, String taxpayerTypeCode);
060:
061: /**
062: * Returns the employee id number whose tax number matches the number passed in, or null if no employee is found.
063: *
064: * @param taxIDNumber A vendor tax id number.
065: * @param taxpayerTypeCode A vendor tax payer type code.
066: * @return The universal id of the employee found with a matching tax id number and payer type code, or null if no employee is found.
067: */
068: public String getUniversalId(String taxIDNumber,
069: String taxpayerTypeCode);
070:
071: /**
072: * Removes non-resident alien tax lines from the document's accounting lines and updates the check total.
073: *
074: * @param document The disbursement voucher document being modified.
075: */
076: public void clearNRATaxLines(DisbursementVoucherDocument document);
077:
078: /**
079: * Generates new tax lines based on associated non-resident alien information, and debits the check total
080: *
081: * @param document The disbursement voucher document being modified.
082: */
083: public void processNonResidentAlienTax(
084: DisbursementVoucherDocument document);
085:
086: /**
087: * Returns the non-resident alien accounting line tax amount (if any).
088: *
089: * @param document The disbursement voucher being reviewed.
090: * @return The total tax amount of the non-resident alien accounting lines for the given disbursement voucher document.
091: */
092: public KualiDecimal getNonResidentAlienTaxAmount(
093: DisbursementVoucherDocument document);
094:
095: /**
096: * Returns a list of Integers representing the non-resident alien tax line numbers parsed from the line string.
097: *
098: * @param taxLineString The tax line representation as as string that will be parsed for the non-resident alien tax line numbers.
099: * @return A collection of Integers representing the line numbers of non-resident alien tax lines.
100: */
101: public List getNRATaxLineNumbers(String taxLineString);
102: }
|