org.kuali.kfs.vnd.document.service
Interface VendorService

All Known Implementing Classes:
VendorServiceImpl

public interface VendorService


Method Summary
 boolean equalMemberLists(List<? extends VendorRoutingComparable> list_a, List<? extends VendorRoutingComparable> list_b)
          Compares lists which have an isEqualForRouting method by using that method.
 org.kuali.rice.kns.util.KualiDecimal getApoLimitFromContract(Integer contractId, String chart, String org)
          Gets the apo limit for the given parameters using the following logic:

First it checks to see if an existing VendorContractOrganization object exists for the associated parameters.
 VendorDetail getByVendorNumber(String vendorNumber)
          get the vendor detail with the given vendor number
 VendorDetail getParentVendor(Integer vendorHeaderGeneratedIdentifier)
          Retrieves the VendorDetail which is the parent vendor with the given headerId.
 VendorContract getVendorB2BContract(VendorDetail vendorDetail, String campus)
          This method retrieves the B2B Contract for the given Vendor (see method in VendorDao for criteria).
 VendorDetail getVendorByDunsNumber(String vendorDunsNumber)
          Retrieves the VendorDetail using its vendorDunsNumber.
 VendorAddress getVendorDefaultAddress(Integer vendorHeaderId, Integer vendorDetailId, String addressType, String campus)
          Finds the addresses for the given vendor and then calls the method to determine the default address from this list.
 VendorAddress getVendorDefaultAddress(List<VendorAddress> addresses, String addressType, String campus)
          Finds the default address for the given addressType and campus from the address list passed in based on the following logic: 1) The allDefaultAddress is defined by defaultAddressIndicator on VendorAddress.
 VendorDetail getVendorDetail(Integer headerId, Integer detailId)
           
 VendorDetail getVendorDetail(String vendorNumber)
           
 boolean isRevolvingFundCodeVendor(Integer vendorHeaderGeneratedIdentifier)
          Indicates whether the vendor identified by the given vendorHeaderGeneratedIdentifier is a revolving fund code vendor by checking the value of VendorHeader.getVendorTypeCode() to see if it equals "RF".
 boolean isSubjectPaymentVendor(Integer vendorHeaderGeneratedIdentifier)
          Indicates whether the vendor identified by the given vendorHeaderGeneratedIdentifier is a subject payment vendor by checking the value of VendorHeader.getVendorTypeCode() to see if it equals "SP".
 boolean isVendorForeign(Integer vendorHeaderGeneratedIdentifier)
          Indicates whether the vendor identified by the given vendorHeaderGeneratedIdentifier is a non-resident alien by checking the value of VendorHeader.getVendorForeignIndicator().
 boolean isVendorInstitutionEmployee(Integer vendorHeaderGeneratedIdentifier)
          Indicates whether the vendor identified by the given vendorHeaderGeneratedIdentifier is an employee of the institution.
 boolean noRouteSignificantChangeOccurred(VendorDetail newVDtl, VendorHeader newVHdr, VendorDetail oldVDtl, VendorHeader oldVHdr)
          This method is the place to put the calls to equality checks that are needed when deciding whether to route a vendor for approval or directly to final status on the basis of what has changed.
 void saveVendorHeader(VendorDetail vendorDetail)
           
 boolean shouldVendorRouteForApproval(String documentId)
          Checks to see if a the Vendor Document associated with the given document ID should route to the route path branch in workflow where the document will stop for approvals.
 

Method Detail

saveVendorHeader

void saveVendorHeader(VendorDetail vendorDetail)

getByVendorNumber

VendorDetail getByVendorNumber(String vendorNumber)
get the vendor detail with the given vendor number

Parameters:
vendorNumber - the given vendor number
Returns:
the vendor detail with the given vendor number if the vendor exists, otherwise, return null

getVendorDetail

VendorDetail getVendorDetail(String vendorNumber)

getVendorDetail

VendorDetail getVendorDetail(Integer headerId,
                             Integer detailId)

getParentVendor

VendorDetail getParentVendor(Integer vendorHeaderGeneratedIdentifier)
Retrieves the VendorDetail which is the parent vendor with the given headerId. This is the method to use when working backward from a division vendor to its parent vendor. This method throws RuntimeExceptions if there are found to be no parent vendor or more than one parent vendor for the associated corporate structure.

Parameters:
vendorHeaderGeneratedIdentifier - The Header Id in Integer form
Returns:
The VendorDetail of the parent vendor associated with the corporate structure indicated by the given Header Id, or null if there are no vendors associated with it.

getVendorByDunsNumber

VendorDetail getVendorByDunsNumber(String vendorDunsNumber)
Retrieves the VendorDetail using its vendorDunsNumber.

Parameters:
vendorDunsNumber - the vendor's DUN number.
Returns:

getApoLimitFromContract

org.kuali.rice.kns.util.KualiDecimal getApoLimitFromContract(Integer contractId,
                                                             String chart,
                                                             String org)
Gets the apo limit for the given parameters using the following logic:

First it checks to see if an existing VendorContractOrganization object exists for the associated parameters. If one exists and it is not excluded (see VendorContractOrganization.isVendorContractExcludeIndicator()) this will return the value of VendorContractOrganization.getVendorContractPurchaseOrderLimitAmount().

If an associated VendorContractOrganization object cannot be found then a valid VendorContract object will be sought. If one is found this method will return the value of VendorContract.getOrganizationAutomaticPurchaseOrderLimit().

If no valid VendorContractOrganization or VendorContract objects can be found for the given parameters this method will return null.

Parameters:
contractId - id used to find VendorContractOrganization object and VendorContract object
chart - chart code for use in finding VendorContractOrganization object
org - org code for use in finding VendorContractOrganization object
Returns:
the automatic purchase order limit amount from the contract found using the parameters. If parameters do not find valid vendor contract objects then null is returned.

getVendorDefaultAddress

VendorAddress getVendorDefaultAddress(Integer vendorHeaderId,
                                      Integer vendorDetailId,
                                      String addressType,
                                      String campus)
Finds the addresses for the given vendor and then calls the method to determine the default address from this list.

Parameters:
vendorHeaderId - Integer - Header ID of vendor.
vendorDetailId - Integer - Detail ID of vendor.
addressType - String - Address type of desired default.
campus - String - Campus of desired default.
Returns:
VendorAddress Desired default address; return null is possible if no defaults set.

getVendorDefaultAddress

VendorAddress getVendorDefaultAddress(List<VendorAddress> addresses,
                                      String addressType,
                                      String campus)
Finds the default address for the given addressType and campus from the address list passed in based on the following logic: 1) The allDefaultAddress is defined by defaultAddressIndicator on VendorAddress. 2) If campus passed in is null, return allDefaultAddress if found. 3) If campus passed in is not null, look in campus lists of addresses to see if given campus is found for the given address type. If match found, return address. If no match found, return allDefaultAddress.

Parameters:
addresses - List of addresses for a vendor.
addressType - String - Address type of the desired default sought.
campus - String - Campus of the desired default sought.
Returns:
VendorAddress Desired default address; return null is possible if no defaults set.

shouldVendorRouteForApproval

boolean shouldVendorRouteForApproval(String documentId)
Checks to see if a the Vendor Document associated with the given document ID should route to the route path branch in workflow where the document will stop for approvals.

Parameters:
documentId -
Returns:
true if the vendor should be take the approval patch... false if the vendor can be 'auto approved'

equalMemberLists

boolean equalMemberLists(List<? extends VendorRoutingComparable> list_a,
                         List<? extends VendorRoutingComparable> list_b)
Compares lists which have an isEqualForRouting method by using that method. An Equals() method would be wrong for the purpose of comparing these because we want to compare only using certain specified attributes, which is what our isEqualForRouting methods will do.

Parameters:
list_a - A List which implements VendorRoutingComparable (specifies isEqualForRouting)
list_b - Another such list
Returns:
True if all the member objects in the given lists are equal (as far as routing is concerned) at the same locations in the lists.

noRouteSignificantChangeOccurred

boolean noRouteSignificantChangeOccurred(VendorDetail newVDtl,
                                         VendorHeader newVHdr,
                                         VendorDetail oldVDtl,
                                         VendorHeader oldVHdr)
This method is the place to put the calls to equality checks that are needed when deciding whether to route a vendor for approval or directly to final status on the basis of what has changed. This method has been split out from shouldVendorRouteForApproval for the convenience of unit testing, but might be useful for other purposes.

Parameters:
newVDtl - A VendorDetail object representing the state of the proposed change
newVHdr - A VendorHeader object representing the state of the proposed change
oldVDtl - A VendorDetail object from before the change
oldVHdr - A VendorHeader object from before the change
Returns:
True if no route-significant change occurred

isVendorInstitutionEmployee

boolean isVendorInstitutionEmployee(Integer vendorHeaderGeneratedIdentifier)
Indicates whether the vendor identified by the given vendorHeaderGeneratedIdentifier is an employee of the institution. The vendor must have a valid tax id and it must be of type SSN (see VendorConstants.TAX_TYPE_SSN).

Parameters:
vendorHeaderGeneratedIdentifier - The Header Id in Integer form
Returns:
true if the vendor identified by the vendorHeaderGeneratedIdentifier given is an employee of the institution

isVendorForeign

boolean isVendorForeign(Integer vendorHeaderGeneratedIdentifier)
Indicates whether the vendor identified by the given vendorHeaderGeneratedIdentifier is a non-resident alien by checking the value of VendorHeader.getVendorForeignIndicator().

Parameters:
vendorHeaderGeneratedIdentifier - The Header Id in Integer form
Returns:
true if the vendor identified by the vendorHeaderGeneratedIdentifier given is valid and is marked as a foreign vendor

isSubjectPaymentVendor

boolean isSubjectPaymentVendor(Integer vendorHeaderGeneratedIdentifier)
Indicates whether the vendor identified by the given vendorHeaderGeneratedIdentifier is a subject payment vendor by checking the value of VendorHeader.getVendorTypeCode() to see if it equals "SP".

Parameters:
vendorHeaderGeneratedIdentifier - The Header Id in Integer form
Returns:
true if the vendor identified by the vendorHeaderGeneratedIdentifier given is valid and has a vendor type code of "SP"

isRevolvingFundCodeVendor

boolean isRevolvingFundCodeVendor(Integer vendorHeaderGeneratedIdentifier)
Indicates whether the vendor identified by the given vendorHeaderGeneratedIdentifier is a revolving fund code vendor by checking the value of VendorHeader.getVendorTypeCode() to see if it equals "RF".

Parameters:
vendorHeaderGeneratedIdentifier - The Header Id in Integer form
Returns:
true if the vendor identified by the vendorHeaderGeneratedIdentifier given is valid and has a vendor type code of "RF"

getVendorB2BContract

VendorContract getVendorB2BContract(VendorDetail vendorDetail,
                                    String campus)
This method retrieves the B2B Contract for the given Vendor (see method in VendorDao for criteria).

Parameters:
vendorDetail - Vendor info
campus - Campus
Returns:
VendorContract B2B Contract for given vendor


Copyright © 2005-2012 The Kuali Foundation. All Rights Reserved.