[Home] [Help]
PACKAGE: APPS.ARP_DET_DIST_PKG
Source
1 PACKAGE ARP_DET_DIST_PKG AUTHID CURRENT_USER AS
2 /* $Header: ARPDDS.pls 120.25.12020000.2 2012/07/28 00:59:49 dgaurab ship $ */
3
4 SUBTYPE ae_rule_rec_type IS ARP_ACCT_MAIN.ae_app_rule_rec_type;
5
6 g_appln_count NUMBER := 0;
7
8 /*------------------------------------------------------------------+
9 | the_concern_bucket |
10 +------------------------------------------------------------------+
11 | What is the bucket of allocation amount to use base on line type |
12 | This is line level proration not for distribution |
13 +------------------------------------------------------------------+
14 | Return the bucket based on the input parameters |
15 +------------------------------------------------------------------+
16 | p_pay_adj APP / ADJ / ED / UNED
17 | p_line_type LINE / TAX / FREIGHT
18 | p_line_adj Adj line bucket
19 | p_tax_adj Adj tax bucket
20 | p_frt_adj Adj freight bucket
21 | p_chrg_adj Adj charge bucket
22 | p_line_applied App line
23 | p_tax_applied App tax
24 | p_frt_applied App freight
25 | p_chrg_applied App charge
26 | p_line_ed ED line
27 | p_tax_ed ED tax
28 | p_frt_ed ED freight
29 | p_chrg_ed ED charge
30 | p_line_uned UNED line
31 | p_tax_uned UNED tax
32 | p_frt_uned UNED freight
33 | p_chrg_uned UNED charge
34 | p_acctd Y / N accouting bucket
35 | p_chrg_bucket Y / N charge bucket
36 | p_frt_bucket Y / N frt bucket
37 | p_base_currency function currency
38 +------------------------------------------------------------------*/
39 FUNCTION the_concern_bucket
40 (p_pay_adj IN VARCHAR2,
41 p_line_type IN VARCHAR2,
42 p_acctd IN VARCHAR2,
43 p_chrg_bucket IN VARCHAR2,
44 p_frt_bucket IN VARCHAR2)
45 RETURN NUMBER;
46
47
48 /*-------------------------------------------------------------------------+
49 | Trx_level_cash_apply |
50 +-------------------------------------------------------------------------+
51 | 1) get_invoice_line_info |
52 | 2) prepare_group_for_proration |
53 | 3) maj_group_line |
54 | 4) prepare_trx_line_proration |
55 | 5) maj_line |
56 | 6) update_ctl_rem_orig |
57 | 7) store_group_id |
58 +-------------------------------------------------------------------------+
59 | parameter: |
60 | p_customer_trx_id transaction id
61 | p_app_rec ar receivable application record
62 | p_ae_sys_rec ar system parameter
63 +-------------------------------------------------------------------------*/
64 PROCEDURE Trx_level_cash_apply
65 (p_customer_trx IN ra_customer_trx%ROWTYPE,
66 p_app_rec IN ar_receivable_applications%ROWTYPE,
67 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
68 p_gt_id IN VARCHAR2 DEFAULT NULL);
69
70
71 /*-------------------------------------------------------------------------+
72 | Trx_gp_level_cash_apply |
73 +-------------------------------------------------------------------------+
74 | 1) get_invoice_line_info_per_grp |
75 | 2) prepare_group_for_proration |
76 | 3) maj_group_line |
77 | 4) prepare_trx_line_proration |
78 | 5) maj_line |
79 | 6) update_ctl_rem_orig |
80 | 7) store_group_id |
81 +-------------------------------------------------------------------------+
82 | parameter: |
83 | p_customer_trx_id transaction id
84 | p_group_id source_data_key1
85 | p_app_rec ar receivable application record
86 | p_ae_sys_rec ar system parameter
87 +-------------------------------------------------------------------------*/
88 PROCEDURE Trx_gp_level_cash_apply
89 (p_customer_trx IN ra_customer_trx%ROWTYPE,
90 -- p_group_id IN VARCHAR2,
91 --{HYUBPAGP
92 p_source_data_key1 IN VARCHAR2,
93 p_source_data_key2 IN VARCHAR2,
94 p_source_data_key3 IN VARCHAR2,
95 p_source_data_key4 IN VARCHAR2,
96 p_source_data_key5 IN VARCHAR2,
97 --}
98 p_app_rec IN ar_receivable_applications%ROWTYPE,
99 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
100 p_gt_id IN VARCHAR2 DEFAULT NULL);
101
102
103 /*-------------------------------------------------------------------------+
104 | Trx_line_level_cash_apply |
105 +-------------------------------------------------------------------------+
106 | 1) get_invoice_line_info_per_line |
107 | 2) prepare_group_for_proration |
108 | 3) maj_group_line |
109 | 4) prepare_trx_line_proration |
110 | 5) maj_line |
111 | 6) update_ctl_rem_orig |
112 | 7) store_group_id |
113 +-------------------------------------------------------------------------+
114 | parameter: |
115 | p_customer_trx_id transaction id
116 | p_customer_trx_line_id customer_trx_line_id
117 | p_app_rec ar receivable application record
118 | p_ae_sys_rec ar system parameter
119 +-------------------------------------------------------------------------*/
120 PROCEDURE Trx_line_level_cash_apply
121 (p_customer_trx IN ra_customer_trx%ROWTYPE,
122 p_customer_trx_line_id IN VARCHAR2,
123 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
124 p_app_rec IN ar_receivable_applications%ROWTYPE,
125 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
126 p_gt_id IN VARCHAR2 DEFAULT NULL );
127
128
129 /*-------------------------------------------------------------------------+
130 | Trx_level_direct_adjust |
131 +-------------------------------------------------------------------------+
132 | 1) get_invoice_line_info |
133 | 2) prepare_group_for_proration |
134 | 3) maj_group_line |
135 | 4) prepare_trx_line_proration |
136 | 5) maj_line |
137 | 6) update_ctl_rem_orig |
138 | 7) store_gt_id |
139 +-------------------------------------------------------------------------+
140 | parameter: |
141 | p_customer_trx_id transaction id
142 | p_adj_rec ar adjustment record
143 | p_ae_sys_rec ar system parameter
144 +-------------------------------------------------------------------------*/
145 PROCEDURE Trx_level_direct_adjust
146 (p_customer_trx IN ra_customer_trx%ROWTYPE,
147 p_adj_rec IN ar_adjustments%ROWTYPE,
148 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
149 p_gt_id IN NUMBER DEFAULT NULL);
150
151
152 /*-----------------------------------------------------------+
153 | PROCEDURE gt_initial |
154 +-----------------------------------------------------------+
155 | Note: procedure is to be called at commit point. |
156 | will create in ar_line_application_detail the detail |
157 | distribution for llca at all level |
158 +-----------------------------------------------------------*/
159 --PROCEDURE gt_initial;
160
161 /*-----------------------------------------------------------+
162 | PROCEDURE set_original_rem_amt |
163 +-----------------------------------------------------------+
164 | Note: procedure updates the balance on ctl line when trx |
165 | does not have any activities on it. It should be called |
166 | ideally on transaction completion point |
167 +-----------------------------------------------------------*/
168 PROCEDURE set_original_rem_amt
169 (p_customer_trx IN ra_customer_trx%ROWTYPE,
170 p_adj_id IN NUMBER DEFAULT NULL,
171 p_app_id IN NUMBER DEFAULT NULL,
172 --{HYUNLB
173 p_from_llca IN VARCHAR2 DEFAULT 'N');
174 --}
175 /*-----------------------------------------------------------+
176 | PROCEDURE copy_trx_lines |
177 +-----------------------------------------------------------+
178 | Note: procedure copy the invoice line from ra_customer |
179 | trx_lines into ra_customer_trx_lines_gt. |
180 +-----------------------------------------------------------*/
181 PROCEDURE copy_trx_lines
182 (p_customer_trx_id IN NUMBER,
183 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
184 p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%TYPE DEFAULT NULL);
185
186
187 /*-----------------------------------------------------------+
188 | PROCEDURE final_update_inv_ctl_rem_orig |
189 +-----------------------------------------------------------+
190 | Note: procedure updates the balance on ctl line once user |
191 | commit the activities on the transactions. |
192 +-----------------------------------------------------------*/
193 PROCEDURE final_update_inv_ctl_rem_orig
194 (p_customer_trx IN ra_customer_trx%ROWTYPE);
195
196
197 /*-----------------------------------------------------------+
198 | PROCEDURE create_final_split |
199 +-----------------------------------------------------------+
200 | Note: procedure creates the detail distributions in |
201 | ar_line_application_detail at commit point |
202 +-----------------------------------------------------------*/
203 PROCEDURE create_final_split
204 (p_customer_trx IN ra_customer_trx%ROWTYPE,
205 p_app_rec IN ar_receivable_applications%ROWTYPE,
206 p_adj_rec IN ar_adjustments%ROWTYPE,
207 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
208
209 /*-------------------------------------------------------------------------+
210 | update_dist |
211 +-------------------------------------------------------------------------+
212 | Read ra_ar_gt for proration info |
213 | Does the proration plsql_proration |
214 | update ra_ar_gt with the result |
215 | for distributions of all lines of a invoice |
216 +-------------------------------------------------------------------------+
217 | parameter: |
218 | p_customer_trx_id transaction id |
219 | p_gt_id global id |
220 +-------------------------------------------------------------------------*/
221 PROCEDURE update_dist
222 (p_gt_id IN VARCHAR2,
223 p_customer_trx_id IN NUMBER,
224 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
225
226 /*-------------------------------------------------------------------------+
227 | Trx_level_direct_cash_apply |
228 +-------------------------------------------------------------------------+
229 | 1) get_invoice_line_info |
230 | 2) prepare_group_for_proration |
231 | 3) update_group_line |
232 | 4) prepare_trx_line_proration |
233 | 5) update_line |
234 | 6) update_ctl_rem_orig |
235 | 7) store_gt_id |
236 +-------------------------------------------------------------------------+
237 | parameter: |
238 | p_customer_trx_id transaction id |
239 | p_app_rec ar receivable application record |
240 | p_ae_sys_rec ar system parameter |
241 +-------------------------------------------------------------------------*/
242 PROCEDURE Trx_level_direct_cash_apply
243 (p_customer_trx IN ra_customer_trx%ROWTYPE,
244 p_app_rec IN ar_receivable_applications%ROWTYPE,
245 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
246 p_gt_id IN NUMBER DEFAULT NULL,
247 p_inv_cm IN VARCHAR2 DEFAULT 'I');
248
249
250 /*-----------------------------------------------------------+
251 | PROCEDURE possible_adjust |
252 | check if a particular adjustment is possible. |
253 +-----------------------------------------------------------+
254 | Parameters: |
255 | ----------- |
256 | p_adj_rec the adjustment record. |
257 | p_ae_rule_rec containing accounting acitivity |
258 | and bucket info. |
259 | p_amt_rem containing amount kept at invoice |
260 | lines. |
261 | x_return_status value according to the possibility |
262 | of the adjustment |
263 | FND_API.G_RET_STS_SUCCESS if possible |
264 | FND_API.G_RET_STS_ERROR if imposssible |
265 | x_line_adj codification for line adjustment |
266 | x_tax_adj codification for tax adjustment |
267 | x_frt_adj codification for freight adjustment |
268 | x_chrg_adj codification for charge adjustment |
269 +-----------------------------------------------------------+
270 | Created 26-OCT-03 Herve Yu |
271 +-----------------------------------------------------------*/
272 PROCEDURE possible_adjust(p_adj_rec IN ar_adjustments%rowtype,
273 p_ae_rule_rec IN ae_rule_rec_type,
274 p_customer_trx_id IN NUMBER,
275 x_return_status OUT NOCOPY VARCHAR2,
276 x_line_adj OUT NOCOPY VARCHAR2,
277 x_tax_adj OUT NOCOPY VARCHAR2,
278 x_frt_adj OUT NOCOPY VARCHAR2,
279 x_chrg_adj OUT NOCOPY VARCHAR2,
280 p_app_rec IN ar_receivable_applications%rowtype);
281
282
283 /*---------------------------------------------------------------------+
284 | FUNCTION Accting_Proration_Fct |
285 +---------------------------------------------------------------------+
286 | This function |
287 | does the proration and return the value in a row by row manner |
288 | usefull for function in SQL statement updation |
289 | |
290 | Parameter |
291 | p_temp_amt distribution amount template for proration |
292 | for example ae_pro_amt(i) |
293 | p_base_proration base for proration |
294 | for example sum ae_pro_amt(i) |
295 | p_alloc_amount The amount for which distribution need to be |
296 | computed. For example p_app_rec.from_amt_applied
297 | p_base_currency Base currency code |
298 | p_trx_currency Trx currency code |
299 | p_rec_currency Rec currency code |
300 | p_flag indication of which from distribution to compute
301 | p_flag = 'FROM_AMT' |
302 | p_flag = 'FROM_ACCTD_AMT' |
303 | p_flag = 'FROM_CHRG_AMT' |
304 | p_flag = 'FROM_CHRG_ACCTD_AMT' |
305 | History |
306 | 05-NOV-2004 H. Yu Created |
307 +---------------------------------------------------------------------*/
308 FUNCTION Accting_Proration_Fct
309 (p_temp_amt IN NUMBER,
310 p_base_proration IN NUMBER,
311 p_alloc_amount IN NUMBER,
312 p_base_currency IN VARCHAR2,
313 p_trx_currency IN VARCHAR2,
314 p_rec_currency IN VARCHAR2,
315 p_flag IN VARCHAR2,
316 p_curr_rnd_flag IN VARCHAR2 DEFAULT 'N')
317 RETURN NUMBER;
318
319 PROCEDURE exec_adj_api_if_required
320 (p_adj_rec IN ar_adjustments%ROWTYPE,
321 p_app_rec IN ar_receivable_applications%ROWTYPE,
322 p_ae_rule_rec IN ae_rule_rec_type,
323 p_cust_inv_rec IN ra_customer_trx%ROWTYPE);
324
325 PROCEDURE exec_revrec_if_required
326 ( p_customer_trx_id IN ra_customer_trx.customer_trx_id%TYPE,
327 p_app_rec IN ar_receivable_applications%ROWTYPE,
328 p_adj_rec IN ar_adjustments%ROWTYPE);
329
330 PROCEDURE update_for_mrc_dist
331 (p_gt_id IN VARCHAR2,
332 p_customer_trx_id IN NUMBER,
333 p_app_rec IN ar_receivable_applications%ROWTYPE,
334 p_adj_rec IN ar_adjustments%ROWTYPE,
335 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
336
337
338 PROCEDURE prepare_for_ra
339 ( p_gt_id IN NUMBER,
340 p_app_rec IN ar_receivable_applications%ROWTYPE,
341 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
342 p_inv_cm IN VARCHAR2 DEFAULT 'I',
343 p_cash_mfar IN VARCHAR2 DEFAULT 'CASH');
344
345 --legacy lazy upgrade
346 PROCEDURE check_lazy_apply_req
347 (p_trx_id IN NUMBER,
348 x_out_res OUT NOCOPY VARCHAR2);
349
350 PROCEDURE check_mf_trx
351 ( p_cust_trx_type_id IN NUMBER,
352 x_out_res OUT NOCOPY VARCHAR2);
353
354
355 PROCEDURE online_lazy_apply
356 (p_customer_trx IN ra_customer_trx%ROWTYPE,
357 p_app_rec IN ar_receivable_applications%ROWTYPE,
358 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
359 p_gt_id IN NUMBER,
360 p_inv_cm IN VARCHAR2 DEFAULT 'I');
361
362 FUNCTION next_val(p_num IN NUMBER)
363 RETURN NUMBER;
364
365
366 /*-----------------------------------------------------------------------------+
367 | Procedure get_latest_amount_remaining |
368 +-----------------------------------------------------------------------------+
369 | Parameter : |
370 | p_customer_trx_id The invoice ID |
371 | p_app_level Application Level (TRANSACTION/GROUP/LINE) |
372 | p_group_id Group_id req when Application level is GROUP |
373 | p_ctl_id customer_trx_line_id required when the application level |
374 | is LINE |
375 | OUT |
376 | x_line_rem The remaining revenue amount for the level |
377 | x_tax_rem The remaining tax amount for the level |
378 | x_freight_rem The remaining freight amount for the level TRANSACTION only|
379 | x_charges_rem The remaining charges amount for the level TRANSACTION only|
380 +-----------------------------------------------------------------------------+
381 | Action : |
382 | Read the remaining amount on ra_customer_trx_lines_gt |
383 +-----------------------------------------------------------------------------*/
384 PROCEDURE get_latest_amount_remaining
385 (p_customer_trx_id IN NUMBER,
386 p_app_level IN VARCHAR2 DEFAULT 'TRANSACTION',
387 p_source_data_key1 IN VARCHAR2 DEFAULT NULL,
388 p_source_data_key2 IN VARCHAR2 DEFAULT NULL,
389 p_source_data_key3 IN VARCHAR2 DEFAULT NULL,
390 p_source_data_key4 IN VARCHAR2 DEFAULT NULL,
391 p_source_data_key5 IN VARCHAR2 DEFAULT NULL,
392 p_ctl_id IN NUMBER DEFAULT NULL,
393 x_line_rem OUT NOCOPY NUMBER,
394 x_tax_rem OUT NOCOPY NUMBER,
395 x_freight_rem OUT NOCOPY NUMBER,
396 x_charges_rem OUT NOCOPY NUMBER,
397 x_return_status OUT NOCOPY VARCHAR2,
398 x_msg_data OUT NOCOPY VARCHAR2,
399 x_msg_count OUT NOCOPY NUMBER);
400
401 --BUG#44144391
402 PROCEDURE get_gt_sequence
403 (x_gt_id OUT NOCOPY NUMBER,
404 x_return_status IN OUT NOCOPY VARCHAR2,
405 x_msg_count IN OUT NOCOPY NUMBER,
406 x_msg_data IN OUT NOCOPY VARCHAR2);
407
408 PROCEDURE set_interface_flag
409 ( p_source_table IN VARCHAR2 DEFAULT NULL,
410 p_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
411 p_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
412 p_freight_flag IN VARCHAR2 DEFAULT 'NORMAL',
413 p_charges_flag IN VARCHAR2 DEFAULT 'NORMAL',
414 p_ed_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
415 p_ed_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
416 p_uned_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
417 p_uned_tax_flag IN VARCHAR2 DEFAULT 'NORMAL');
418
419 PROCEDURE adjustment_with_interface
420 (p_customer_trx IN ra_customer_trx%ROWTYPE,
421 p_adj_rec IN ar_adjustments%ROWTYPE,
422 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
423 p_gt_id IN NUMBER,
424 p_line_flag IN VARCHAR2 DEFAULT 'INTERFACE',
425 p_tax_flag IN VARCHAR2 DEFAULT 'INTERFACE',
426 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
427 x_return_status IN OUT NOCOPY VARCHAR2,
428 x_msg_count IN OUT NOCOPY NUMBER,
429 x_msg_data IN OUT NOCOPY VARCHAR2,
430 p_llca_from_call IN VARCHAR2 DEFAULT NULL,
431 p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%TYPE DEFAULT NULL);
432
433 PROCEDURE application_with_interface
434 (p_customer_trx IN ra_customer_trx%ROWTYPE,
435 p_app_rec IN ar_receivable_applications%ROWTYPE,
436 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
437 p_gt_id IN NUMBER,
438 p_line_flag IN VARCHAR2 DEFAULT 'INTERFACE',
439 p_tax_flag IN VARCHAR2 DEFAULT 'INTERFACE',
440 p_ed_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
441 p_ed_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
442 p_uned_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
443 p_uned_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
444 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
445 x_return_status IN OUT NOCOPY VARCHAR2,
446 x_msg_count IN OUT NOCOPY NUMBER,
447 x_msg_data IN OUT NOCOPY VARCHAR2);
448 --}
449
450 --{For Cross Currency this procedure needs to be called externally
451 PROCEDURE update_from_gt
452 (p_from_amt IN NUMBER,
453 p_from_acctd_amt IN NUMBER,
454 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
455 p_app_rec IN ar_receivable_applications%ROWTYPE,
456 p_gt_id IN VARCHAR2 DEFAULT NULL,
457 p_inv_currency IN VARCHAr2 DEFAULT NULL);
458 --}
459
460
461 --{ Diagnostic
462 g_diag_flag VARCHAR2(30) := 'NOT_SET';
463 PROCEDURE get_diag_flag;
464 PROCEDURE diag_data(p_gt_id IN NUMBER DEFAULT NULL);
465
466 PROCEDURE Reconciliation
467 (p_app_rec IN ar_receivable_applications%ROWTYPE,
468 p_adj_rec IN ar_adjustments%ROWTYPE,
469 p_activity_type IN VARCHAR2,
470 p_gt_id IN VARCHAR2 DEFAULT NULL);
471 --}
472
473 --{BUG#5098099
474 PROCEDURE check_legacy_status
475 (p_trx_id IN NUMBER,
476 p_adj_id IN NUMBER DEFAULT NULL,
477 p_app_id IN NUMBER DEFAULT NULL,
478 x_11i_adj OUT NOCOPY VARCHAR2,
479 x_mfar_adj OUT NOCOPY VARCHAR2,
480 x_11i_app OUT NOCOPY VARCHAR2,
481 x_mfar_app OUT NOCOPY VARCHAR2);
482 --}
483
484 --{BUG#5412633
485 PROCEDURE exec_revrec_if_required
486 (p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_TRUE
487 ,p_mode IN VARCHAR2 DEFAULT 'TRANSACTION'
488 ,p_customer_trx_id IN NUMBER DEFAULT NULL
489 ,p_request_id IN NUMBER DEFAULT NULL
490 ,x_sum_dist OUT NOCOPY NUMBER
491 ,x_return_status OUT NOCOPY VARCHAR2
492 ,x_msg_count OUT NOCOPY NUMBER
493 ,x_msg_data OUT NOCOPY VARCHAR2);
494
495 PROCEDURE set_original_rem_amt_r12
496 (p_customer_trx IN ra_customer_trx%ROWTYPE,
497 x_return_status IN OUT NOCOPY VARCHAR2,
498 x_msg_count IN OUT NOCOPY NUMBER,
499 x_msg_data IN OUT NOCOPY VARCHAR2,
500 p_from_llca IN VARCHAR2 DEFAULT 'N');
501
502 PROCEDURE set_original_rem_amt_r12(p_request_id IN NUMBER);
503
504 PROCEDURE verify_stamp_merge_dist_method
505 (p_customer_trx_id IN NUMBER,
506 x_upg_method IN OUT NOCOPY VARCHAR2);
507
508 /* 11825040 - Made public so it can be called by arp_maintain_ps */
509 PROCEDURE re_calcul_rem_amt(p_customer_trx IN ra_customer_trx%ROWTYPE);
510
511 END;