1 PACKAGE AP_PREPAY_PKG AUTHID CURRENT_USER AS
2 /*$Header: aprepays.pls 120.8.12010000.3 2010/02/18 01:07:11 manjayar ship $*/
3
4 --==================================================================================
5 -- This record has two types of information
6 -- 1) Prepayment Invoice's distribution information (Source)
7 -- 2) PREPAY distribution's amounts/quantities information (Target)
8 -- all with the same prepay distribution id as its key. This should be declared
9 -- in the package spec.
10 --==================================================================================
14 PREPAY_DISTRIBUTION_ID ap_invoice_distributions_all.invoice_distribution_id%TYPE,
11
12 TYPE Prepay_Dist_Record IS RECORD(
13
15 PPAY_AMOUNT ap_invoice_distributions_all.amount%TYPE,
16 PPAY_BASE_AMOUNT ap_invoice_distributions_all.base_amount%TYPE,
17 PPAY_AMOUNT_REMAINING ap_invoice_distributions_all.prepay_amount_remaining%TYPE,
18 PPAY_PO_DISTRIBUTION_ID ap_invoice_distributions_all.po_distribution_id%TYPE,
19 PPAY_RCV_TRANSACTION_ID ap_invoice_distributions_all.rcv_transaction_id%TYPE,
20 PPAY_QUANTITY_INVOICED ap_invoice_distributions_all.quantity_invoiced%TYPE,
21 PPAY_STAT_AMOUNT ap_invoice_distributions_all.stat_amount%TYPE,
22 PPAY_PA_QUANTITY ap_invoice_distributions_all.pa_quantity%TYPE,
23 PREPAY_APPLY_AMOUNT ap_invoice_distributions_all.amount%TYPE,
24 PREPAY_BASE_AMOUNT ap_invoice_distributions_all.base_amount%TYPE,
25 PREPAY_BASE_AMT_PPAY_XRATE ap_invoice_distributions_all.base_amount%TYPE,
26 PREPAY_BASE_AMT_PPAY_PAY_XRATE ap_invoice_distributions_all.base_amount%TYPE,
27 PREPAY_QUANTITY_INVOICED ap_invoice_distributions_all.quantity_invoiced%TYPE,
28 PREPAY_STAT_AMOUNT ap_invoice_distributions_all.stat_amount%TYPE,
29 PREPAY_PA_QUANTITY ap_invoice_distributions_all.pa_quantity%TYPE,
30 PREPAY_ACCOUNTING_DATE ap_invoice_distributions_all.accounting_date%TYPE,
31 PREPAY_PERIOD_NAME ap_invoice_distributions_all.period_name%TYPE,
32 PREPAY_DIST_LINE_NUMBER ap_invoice_distributions_all.distribution_line_number%TYPE,
33 PREPAY_GLOBAL_ATTR_CATEGORY ap_invoice_distributions_all.global_attribute_category%TYPE,
34 PREPAY_MATCHING_BASIS po_line_types.matching_basis%TYPE,
35 LINE_TYPE_LOOKUP_CODE ap_invoice_distributions.line_type_lookup_code%TYPE,
36 CHARGE_APPLICABLE_TO_DIST_ID ap_invoice_distributions_all.invoice_distribution_id%TYPE,
37 RELATED_ID ap_invoice_distributions_all.invoice_distribution_id%TYPE,
38 PARENT_CHRG_APPL_TO_DIST_ID ap_invoice_distributions_all.invoice_distribution_id%TYPE,
39 PARENT_RELATED_ID ap_invoice_distributions_all.invoice_distribution_id%TYPE,
40 INVOICE_DISTRIBUTION_ID ap_invoice_distributions_all.invoice_distribution_id%TYPE);
41
42 --================================================================================
43 -- This is the GLOBAL PL/SQL table type to be declared in the Package Spec
44 --================================================================================
45
46 TYPE Prepay_Dist_Tab_Type IS TABLE OF Prepay_Dist_Record
47 INDEX BY BINARY_INTEGER;
48
49 --================================================================================
50 -- PL/SQL table will have the prepayment invoice_id, line number and apply amount
51 -- information. This will be used by the application logic to apply the prepayment.
52 --================================================================================
53
54 TYPE Prepay_Appl_Rec IS RECORD (
55 PREPAY_INVOICE_ID ap_invoices_all.invoice_id%TYPE,
56 PREPAY_LINE_NUM ap_invoice_lines_all.line_number%TYPE,
57 PREPAY_APPLY_AMOUNT ap_invoice_lines_all.amount%TYPE);
58
59 TYPE Prepay_Appl_Tab IS TABLE of Prepay_Appl_Rec INDEX BY BINARY_INTEGER;
60
61 TYPE Prepay_Appl_Log_Rec IS RECORD (
62 PREPAY_INVOICE_ID AP_INVOICES_ALL.INVOICE_ID%TYPE,
63 PREPAY_LINE_NUM AP_INVOICE_LINES_ALL.LINE_NUMBER%TYPE,
64 PREPAY_APPLY_AMOUNT AP_INVOICE_LINES_ALL.AMOUNT%TYPE,
65 SUCCESS VARCHAR2(1),
66 ERROR_MESSAGE VARCHAR2(2000));
67
68 TYPE Prepay_Appl_Log_Tab IS TABLE OF Prepay_Appl_Log_Rec INDEX BY BINARY_INTEGER;
69
70
71 FUNCTION Check_Supplier_Consistency (
72 p_prepay_num IN VARCHAR2,
73 p_vendor_id IN NUMBER) RETURN VARCHAR2;
74
75 FUNCTION Check_Currency_Consistency (
76 p_prepay_num IN VARCHAR2,
77 p_vendor_id IN NUMBER,
78 p_base_currency_code IN VARCHAR2,
79 p_invoice_currency_code IN VARCHAR2,
80 p_payment_currency_code IN VARCHAR2) RETURN VARCHAR2 ;
81
82
83 FUNCTION Check_Prepayment_Invoice (
84 p_prepay_num IN VARCHAR2,
85 p_vendor_id IN VARCHAR2,
86 p_prepay_invoice_id OUT NOCOPY NUMBER) RETURN VARCHAR2 ;
87
88
89 FUNCTION Check_Prepayment_Line (
90 p_prepay_num IN VARCHAR2,
91 p_prepay_line_num IN NUMBER,
92 p_vendor_id IN NUMBER) RETURN VARCHAR2 ;
93
94 FUNCTION Check_Nothing_To_Apply_Line (
95 p_prepay_invoice_id IN NUMBER,
96 p_prepay_line_num IN NUMBER) RETURN VARCHAR2 ;
97
98
99 FUNCTION Check_Nothing_To_Apply_Invoice (
100 p_prepay_invoice_id IN NUMBER) RETURN VARCHAR2 ;
101
102
103 FUNCTION Check_Nothing_To_Apply_Vendor (
104 p_vendor_id IN NUMBER) RETURN VARCHAR2 ;
105
106
107 FUNCTION Check_Period_Status (
108 p_prepay_gl_date IN OUT NOCOPY DATE,
109 p_prepay_period_name IN OUT NOCOPY VARCHAR2) RETURN VARCHAR2 ;
110
111 FUNCTION Validate_Prepay_Info (
112 p_prepay_case_name IN VARCHAR2,
113 p_prepay_num IN OUT NOCOPY VARCHAR2,
114 p_prepay_line_num IN OUT NOCOPY NUMBER,
115 p_prepay_apply_amount IN OUT NOCOPY NUMBER, -- Bug 7004765
116 p_invoice_amount IN NUMBER,
117 p_prepay_gl_date IN OUT NOCOPY DATE,
118 p_prepay_period_name IN OUT NOCOPY VARCHAR2,
119 p_vendor_id IN NUMBER,
120 p_import_invoice_id IN NUMBER,
124 p_base_currency_code IN VARCHAR2,
121 p_source IN VARCHAR2,
122 p_apply_advances_flag IN VARCHAR2,
123 p_invoice_date IN DATE,
125 p_invoice_currency_code IN VARCHAR2,
126 p_payment_currency_code IN VARCHAR2,
127 p_calling_sequence IN VARCHAR2,
128 p_prepay_invoice_id OUT NOCOPY NUMBER,
129 p_invoice_type_lookup_code IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2 ; -- Bug 7004765
130
131 FUNCTION Get_Prepay_Case_Name (
132 p_prepay_num IN VARCHAR2,
133 p_prepay_line_num IN NUMBER,
134 p_prepay_apply_amount IN NUMBER,
135 p_source IN VARCHAR2,
136 p_apply_advances_flag IN VARCHAR2,
137 p_calling_sequence IN VARCHAR2) RETURN VARCHAR2;
138
139 FUNCTION get_prepay_apply_amount(
140 p_prepay_case_name IN VARCHAR2,
141 p_prepay_invoice_id IN NUMBER,
142 P_prepay_line_num IN NUMBER,
143 p_prepay_apply_amount IN NUMBER,
144 p_invoice_id IN NUMBER,
145 p_vendor_id IN NUMBER,
146 p_prepay_included IN VARCHAR2) RETURN NUMBER;
147
148 PROCEDURE Select_Lines_For_Application (
149 p_prepay_case_name IN VARCHAR2,
150 p_prepay_invoice_id IN NUMBER,
151 p_prepay_line_num IN NUMBER,
152 p_apply_amount IN NUMBER,
153 p_vendor_id IN NUMBER,
154 p_calling_sequence IN VARCHAR2,
155 p_request_id IN NUMBER,
156 p_invoice_id IN NUMBER, -- Bug 6394865
157 p_prepay_appl_info OUT NOCOPY ap_prepay_pkg.prepay_appl_tab);
158
159 FUNCTION Check_Prepay_Info_Import (
160 p_prepay_num IN OUT NOCOPY VARCHAR2,
161 p_prepay_line_num IN OUT NOCOPY NUMBER,
162 p_prepay_apply_amount IN OUT NOCOPY NUMBER, -- Bug 7004765
163 p_invoice_amount IN NUMBER,
164 p_prepay_gl_date IN OUT NOCOPY DATE,
165 p_prepay_period_name IN OUT NOCOPY VARCHAR2,
166 p_vendor_id IN NUMBER,
167 p_prepay_included IN VARCHAR2,
168 p_import_invoice_id IN NUMBER,
169 p_source IN VARCHAR2,
170 p_apply_advances_flag IN VARCHAR2,
171 p_invoice_date IN DATE,
172 p_base_currency_code IN VARCHAR2,
173 p_invoice_currency_code IN VARCHAR2,
174 p_payment_currency_code IN VARCHAR2,
175 p_calling_sequence IN VARCHAR2,
176 p_request_id IN NUMBER,
177 p_prepay_case_name OUT NOCOPY VARCHAR2,
178 p_prepay_invoice_id OUT NOCOPY NUMBER,
179 p_invoice_type_lookup_code IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2; -- Bug 7004765
180
181 PROCEDURE Get_Prepay_Info_Import (
182 p_prepay_case_name IN VARCHAR2,
183 p_prepay_invoice_id IN NUMBER,
184 p_prepay_num IN VARCHAR2,
185 p_prepay_line_num IN NUMBER,
186 p_prepay_apply_amount IN NUMBER,
187 p_prepay_included IN VARCHAR2,
188 p_import_invoice_id IN NUMBER,
189 p_vendor_id IN NUMBER,
190 p_request_id IN NUMBER,
191 p_prepay_appl_info OUT NOCOPY ap_prepay_pkg.prepay_appl_tab,
192 p_calling_sequence IN VARCHAR2);
193
194 PROCEDURE Apply_Prepay_Import (
195 p_prepay_invoice_id IN NUMBER,
196 p_prepay_num IN VARCHAR2,
197 p_prepay_line_num IN NUMBER,
198 p_prepay_apply_amount IN NUMBER,
199 p_prepay_case_name IN VARCHAR2,
200 p_import_invoice_id IN NUMBER,
201 p_request_id IN NUMBER,
202 p_invoice_id IN NUMBER,
203 p_vendor_id IN NUMBER,
204 p_prepay_gl_date IN DATE,
205 p_prepay_period_name IN VARCHAR2,
206 p_prepay_included IN VARCHAR2,
207 p_user_id IN NUMBER,
208 p_last_update_login IN NUMBER,
209 p_calling_sequence IN VARCHAR2,
210 p_prepay_appl_log OUT NOCOPY ap_prepay_pkg.Prepay_Appl_Log_Tab);
211
212
213 FUNCTION Apply_Prepay_Line (
214 P_PREPAY_INVOICE_ID IN NUMBER,
215 P_PREPAY_LINE_NUM IN NUMBER,
216 P_PREPAY_DIST_INFO IN OUT NOCOPY AP_PREPAY_PKG.PREPAY_DIST_TAB_TYPE,
217 P_PRORATE_FLAG IN VARCHAR2,
218 P_INVOICE_ID IN NUMBER,
219 P_INVOICE_LINE_NUMBER IN NUMBER DEFAULT NULL,
220 P_APPLY_AMOUNT IN NUMBER,
221 P_GL_DATE IN DATE,
222 P_PERIOD_NAME IN VARCHAR2,
223 P_PREPAY_INCLUDED IN VARCHAR2,
224 P_USER_ID IN NUMBER,
225 P_LAST_UPDATE_LOGIN IN NUMBER,
226 P_CALLING_SEQUENCE IN VARCHAR2,
227 P_CALLING_MODE IN VARCHAR2 DEFAULT 'PREPAYMENT APPLICATION',
228 P_ERROR_MESSAGE OUT NOCOPY VARCHAR2) RETURN BOOLEAN;
229
230
231 FUNCTION Insert_Prepay_Line(
232 p_prepay_invoice_id IN NUMBER,
233 p_prepay_line_num IN NUMBER,
234 p_invoice_id IN NUMBER,
235 p_prepay_line_number IN NUMBER,
236 p_amount_to_apply IN NUMBER,
237 p_base_amount_to_apply IN NUMBER,
238 p_gl_date IN DATE,
239 p_period_name IN VARCHAR2,
240 p_prepay_included IN VARCHAR2,
241 p_quantity_invoiced IN NUMBER,
242 p_stat_amount IN NUMBER,
243 p_pa_quantity IN NUMBER,
244 p_user_id IN NUMBER,
245 p_last_update_login IN NUMBER,
246 p_calling_sequence IN VARCHAR2,
247 p_error_message OUT NOCOPY VARCHAR2) RETURN BOOLEAN;
248
249
250 FUNCTION Insert_Prepay_Dists(
251 P_prepay_invoice_id IN NUMBER,
252 P_prepay_line_num IN NUMBER,
253 P_invoice_id IN NUMBER,
254 P_batch_id IN NUMBER,
255 P_line_number IN NUMBER,
256 P_prepay_dist_info IN OUT NOCOPY AP_PREPAY_PKG.Prepay_Dist_Tab_Type,
257 P_user_id IN NUMBER,
258 P_last_update_login IN NUMBER,
259 P_calling_sequence IN VARCHAR2,
260 P_error_message OUT NOCOPY VARCHAR2) RETURN BOOLEAN;
261
262
263 FUNCTION Update_Prepayment(
264 P_prepay_dist_info IN AP_PREPAY_PKG.Prepay_Dist_Tab_Type,
265 P_prepay_invoice_id IN NUMBER,
266 P_prepay_line_num IN NUMBER,
267 P_invoice_id IN NUMBER,
268 P_invoice_line_num IN NUMBER,
269 P_appl_type IN VARCHAR2,
270 P_calling_mode IN VARCHAR2 DEFAULT 'PREPAYMENT APPLICATION',
271 P_calling_sequence IN VARCHAR2,
272 P_error_message OUT NOCOPY VARCHAR2) RETURN BOOLEAN;
273
274
275 FUNCTION Update_PO_Receipt_Info(
276 P_prepay_dist_info IN AP_PREPAY_PKG.Prepay_Dist_Tab_Type,
277 p_prepay_invoice_id IN NUMBER,
278 p_prepay_line_num IN NUMBER,
279 P_invoice_id IN NUMBER,
280 P_invoice_line_num IN NUMBER,
281 P_po_line_location_id IN NUMBER,
282 P_matched_UOM_lookup_code IN VARCHAR2,
283 P_appl_type IN VARCHAR2,
284 P_match_basis IN VARCHAR2,
285 P_calling_sequence IN VARCHAR2,
286 P_error_message OUT NOCOPY VARCHAR2) RETURN BOOLEAN;
287
288 -- Bug 4935951
289 -- Added a new paremeter p_calling_mode so that the updates to ap_invoices
290 -- will be skipped when invoked in the context of Recoupment. These updates
291 -- will be handled in the invoice workbench after the control returns from
292 -- the matching form.
293
294 FUNCTION Update_Payment_Schedule(
295 P_invoice_id IN NUMBER,
296 P_prepay_invoice_id IN NUMBER,
297 P_prepay_line_num IN NUMBER,
298 P_apply_amount IN NUMBER,
299 P_appl_type IN VARCHAR2,
300 P_payment_currency_code IN VARCHAR2,
301 P_user_id IN NUMBER,
302 P_last_update_login IN NUMBER,
303 P_calling_sequence IN VARCHAR2,
304 P_calling_mode IN VARCHAR2 DEFAULT NULL,
305 P_error_message OUT NOCOPY VARCHAR2) RETURN BOOLEAN;
306
307 -- Bug 5056104 -- remove obsolete function Update_Rounding_Amounts
308 --FUNCTION Update_Rounding_Amounts (
309 -- P_prepay_invoice_id IN NUMBER,
310 -- P_prepay_line_num IN NUMBER,
311 -- P_invoice_id IN NUMBER,
312 -- P_line_number IN NUMBER,
313 -- P_final_application IN VARCHAR2,
314 -- P_Calling_Sequence IN VARCHAR2 DEFAULT NULL,
315 -- P_error_message OUT NOCOPY VARCHAR2) RETURN BOOLEAN;
316
317
318 FUNCTION Unapply_Prepay_Line (
319 P_PREPAY_INVOICE_ID IN NUMBER,
320 P_PREPAY_LINE_NUM IN NUMBER,
321 P_INVOICE_ID IN NUMBER,
322 P_LINE_NUM IN NUMBER,
323 P_UNAPPLY_AMOUNT IN NUMBER,
324 P_GL_DATE IN DATE,
325 P_PERIOD_NAME IN VARCHAR2,
326 P_PREPAY_INCLUDED IN VARCHAR2,
327 P_USER_ID IN NUMBER,
328 P_LAST_UPDATE_LOGIN IN NUMBER,
329 P_CALLING_SEQUENCE IN VARCHAR2,
330 P_ERROR_MESSAGE OUT NOCOPY VARCHAR2) RETURN BOOLEAN;
331
332
333 FUNCTION Apply_Prepay_FR_Prepay(
334 p_invoice_id IN NUMBER,
335 p_prepay_num IN VARCHAR2,
336 p_vendor_id IN NUMBER,
337 p_prepay_apply_amount IN NUMBER,
338 p_prepay_gl_date IN DATE,
339 p_prepay_period_name IN VARCHAR2,
340 p_user_id IN NUMBER,
341 p_last_update_login IN NUMBER,
342 p_calling_sequence IN VARCHAR2,
343 p_error_message OUT NOCOPY VARCHAR2) RETURN BOOLEAN;
344
345
346 END AP_PREPAY_PKG;