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 package org.kuali.kfs.module.ar.document.dataaccess;
017
018 import java.util.Collection;
019 import java.util.List;
020
021 import org.kuali.kfs.module.ar.document.CustomerInvoiceDocument;
022
023 public interface CustomerInvoiceDocumentDao {
024
025 /**
026 *
027 * Retrieves all Invoice document numbers that meet the following criteria:
028 * 1) PrintIndicator = BY_USER
029 * 2) PrintDate = null
030 * 3) DocHeader.Status = Approved
031 *
032 * WARNING that all the returned documents lack any workflow wiring.
033 *
034 * @param initiatorPrincipalName
035 * @return
036 */
037 public List<String> getPrintableCustomerInvoiceDocumentNumbersFromUserQueue();
038
039 /**
040 *
041 * Retrieves all Invoice document numbers in the system associated with the given
042 * Processing Chart and Org, that are approved and ready to print.
043 *
044 * WARNING that all the returned documents lack any workflow wiring.
045 *
046 * @param chartOfAccountsCode
047 * @param organizationCode
048 * @return
049 */
050 public List<String> getPrintableCustomerInvoiceDocumentNumbersByProcessingChartAndOrg(String chartOfAccountsCode, String organizationCode);
051
052 /**
053 *
054 * Retrieves all Invoice document numbers in the system associated with the given
055 * Billing Chart and Org, that are approved and ready to print.
056 *
057 * WARNING that all the returned documents lack any workflow wiring.
058 *
059 * @param chartOfAccountsCode
060 * @param organizationCode
061 * @return
062 */
063 public List<String> getPrintableCustomerInvoiceDocumentNumbersByBillingChartAndOrg(String chartOfAccountsCode, String organizationCode);
064
065 /**
066 *
067 * Retrieves all Invoice document numbers in the system associated with the given
068 * Billing Chart and Org, that are approved but disregards ready to print and print date as this is for Billing Statement generation.
069 *
070 * WARNING that all the returned documents lack any workflow wiring.
071 *
072 * @param chartOfAccountsCode
073 * @param organizationCode
074 * @return
075 */
076 public List<String> getPrintableCustomerInvoiceDocumentNumbersForBillingStatementByBillingChartAndOrg(String chartOfAccountsCode, String organizationCode);
077
078 /**
079 *
080 * Retrieves all Invoice document numbers in the system associated with the given
081 * Processing Chart and Org.
082 *
083 * WARNING that all the returned documents lack any workflow wiring.
084 *
085 * @param chartOfAccountsCode
086 * @param organizationCode
087 * @return
088 */
089 public List<String> getCustomerInvoiceDocumentNumbersByProcessingChartAndOrg(String chartOfAccountsCode, String organizationCode);
090
091 /**
092 *
093 * Retrieves all Invoice document numbers in the system associated with the given
094 * Billing Chart and Org.
095 *
096 * WARNING that all the returned documents lack any workflow wiring.
097 *
098 * @param chartOfAccountsCode
099 * @param organizationCode
100 * @return
101 */
102 public List<String> getCustomerInvoiceDocumentNumbersByBillingChartAndOrg(String chartOfAccountsCode, String organizationCode);
103
104 /**
105 *
106 * Retrieves all Open invoices, with outstanding balances.
107 *
108 * @return
109 */
110 public Collection getAllOpen();
111
112 /**
113 *
114 * Retrieves all Open invoices from the specified Customer Number.
115 * @param customerNumber
116 * @return
117 */
118 public Collection getOpenByCustomerNumber(String customerNumber);
119
120 /**
121 *
122 * Retrieves all Open invoices, by the specified Customer Name and Customer Type Code
123 *
124 * Retrieves all Open invoices, by the specified Customer Name (a LIKE customerName* search) and Customer Type Code.
125 *
126 * @param customerName
127 * @param customerTypeCode
128 * @return
129 */
130 public Collection getOpenByCustomerNameByCustomerType(String customerName, String customerTypeCode);
131
132 /**
133 *
134 * Retrieves all Open invoices, by the specified Customer Name.
135 *
136 * NOTE - this search uses customerName as a leading substring search,
137 * so it will return anything matching a customerName that begins with the
138 * value passed in. ie, a LIKE customerName* search.
139 *
140 * @param customerName
141 * @return
142 */
143 public Collection getOpenByCustomerName(String customerName);
144
145 /**
146 *
147 * Retrieves all Open invoices, by the specified Customer Type Code.
148 * @param customerTypeCode
149 * @return
150 */
151 public Collection getOpenByCustomerType(String customerTypeCode);
152
153 /**
154 * @param organizationInvoiceNumber
155 * @return
156 */
157 public CustomerInvoiceDocument getInvoiceByOrganizationInvoiceNumber(String organizationInvoiceNumber);
158
159 /**
160 * @param documentNumber
161 * @return
162 */
163 public CustomerInvoiceDocument getInvoiceByInvoiceDocumentNumber(String documentNumber);
164 }