[Home] [Help]
PACKAGE BODY: APPS.ARP_DET_DIST_PKG
Source
1 PACKAGE BODY ARP_DET_DIST_PKG AS
2 /* $Header: ARPDDB.pls 120.142.12020000.7 2013/01/31 10:41:34 kkikkise ship $ */
3
4 --{HYU possible_adj
5 TYPE g_amt_rem_type IS RECORD (
6 sum_tax_amt_rem NUMBER,
7 sum_tax_acctd_amt_rem NUMBER,
8 sum_line_amt_rem NUMBER,
9 sum_line_acctd_amt_rem NUMBER,
10 sum_frt_amt_rem NUMBER,
11 sum_frt_acctd_amt_rem NUMBER,
12 sum_all_amt_rem NUMBER,
13 sum_all_acctd_amt_rem NUMBER,
14 sum_line_frt_amt_rem NUMBER,
15 sum_line_frt_acctd_amt_rem NUMBER,
16 --
17 sum_head_frt_amt_rem NUMBER,
18 sum_head_frt_acctd_amt_rem NUMBER,
19 --
20 sum_chrg_amt_rem NUMBER,
21 sum_chrg_acctd_amt_rem NUMBER,
22 -- Need to display the amount original
23 sum_tax_amt_orig NUMBER,
24 sum_tax_acctd_amt_orig NUMBER,
25 sum_line_amt_orig NUMBER,
26 sum_line_acctd_amt_orig NUMBER,
27 sum_frt_amt_orig NUMBER,
28 sum_frt_acctd_amt_orig NUMBER,
29 --
30 sum_line_chrg_amt_rem NUMBER,
31 sum_line_chrg_acctd_amt_rem NUMBER,
32 sum_frt_chrg_amt_rem NUMBER,
33 sum_frt_chrg_acctd_amt_rem NUMBER,
34 --
35 sum_head_frt_amt_orig NUMBER,
36 sum_line_frt_amt_orig NUMBER,
37 sum_head_frt_acctd_amt_orig NUMBER,
38 sum_line_frt_acctd_amt_orig NUMBER,
39 tl_for_rl VARCHAR2(1),
40 tl_for_fl VARCHAR2(1) );
41 --}
42
43 g_rowid_tab DBMS_SQL.VARCHAR2_TABLE;
44
45 PROCEDURE localdebug(p_txt IN VARCHAR2);
46
47 PROCEDURE display_ra_ar_gt
48 (p_code IN VARCHAR2 DEFAULT NULL,
49 p_gt_id IN VARCHAR2);
50
51 PROCEDURE display_cust_trx_gt(p_customer_trx_id IN NUMBER);
52 /*
53 PROCEDURE br_set_original_rem_amt
54 (p_customer_trx_id IN NUMBER);
55 */
56 --}
57
58 g_bulk_fetch_rows NUMBER := 10000;
59 g_ed_req VARCHAR2(1) := 'N';
60 g_uned_req VARCHAR2(1) := 'N';
61 g_cm_trx_id NUMBER := null;
62 g_cm_upg_mthd VARCHAR2(30);
63 g_gt_id VARCHAR2(30);
64 --{BUG4414391
65 --g_se_gt_id NUMBER := USERENV('SESSIONID');
66 --}
67
68 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
69
70 --{BUG#4414391
71 g_source_table VARCHAR2(30) DEFAULT NULL;
72 g_line_flag VARCHAR2(30) DEFAULT 'NORMAL';
73 g_tax_flag VARCHAR2(30) DEFAULT 'NORMAL';
74 g_freight_flag VARCHAR2(30) DEFAULT 'NORMAL';
75 g_charges_flag VARCHAR2(30) DEFAULT 'NORMAL';
76 g_ed_line_flag VARCHAR2(30) DEFAULT 'NORMAL';
77 g_ed_tax_flag VARCHAR2(30) DEFAULT 'NORMAL';
78 g_uned_line_flag VARCHAR2(30) DEFAULT 'NORMAL';
79 g_uned_tax_flag VARCHAR2(30) DEFAULT 'NORMAL';
80 --}
81
82 l_sob_list gl_ca_utility_pkg.r_sob_list;
83 previous_org_id NUMBER(15);
84 previous_sob_id NUMBER(15);
85 previous_ctx_id NUMBER(15);
86 previous_pk_id_one NUMBER;
87 previous_pk_id_two NUMBER;
88
89 g_line_adj NUMBER := 0;
90 g_tax_adj NUMBER := 0;
91 g_frt_adj NUMBER := 0;
92 g_chrg_adj NUMBER := 0;
93 g_line_applied NUMBER := 0;
94 g_tax_applied NUMBER := 0;
95 g_frt_applied NUMBER := 0;
96 g_chrg_applied NUMBER := 0;
97 g_line_ed NUMBER := 0;
98 g_tax_ed NUMBER := 0;
99 g_frt_ed NUMBER := 0;
100 g_chrg_ed NUMBER := 0;
101 g_line_uned NUMBER := 0;
102 g_tax_uned NUMBER := 0;
103 g_frt_uned NUMBER := 0;
104 g_chrg_uned NUMBER := 0;
105 --
106 g_acctd_line_adj NUMBER := 0;
107 g_acctd_tax_adj NUMBER := 0;
108 g_acctd_frt_adj NUMBER := 0;
109 g_acctd_chrg_adj NUMBER := 0;
110 g_acctd_line_applied NUMBER := 0;
111 g_acctd_tax_applied NUMBER := 0;
112 g_acctd_frt_applied NUMBER := 0;
113 g_acctd_chrg_applied NUMBER := 0;
114 g_acctd_line_ed NUMBER := 0;
115 g_acctd_tax_ed NUMBER := 0;
116 g_acctd_frt_ed NUMBER := 0;
117 g_acctd_chrg_ed NUMBER := 0;
118 g_acctd_line_uned NUMBER := 0;
119 g_acctd_tax_uned NUMBER := 0;
120 g_acctd_frt_uned NUMBER := 0;
121 g_acctd_chrg_uned NUMBER := 0;
122
123 g_cust_inv_rec ra_customer_trx%ROWTYPE;
124
125 --{
126 g_run_from_amt NUMBER;
127 g_run_from_total NUMBER;
128 g_run_from_acctd_amt NUMBER;
129 g_run_from_acctd_total NUMBER;
130 g_current_trx_id NUMBER;
131 --}
132
133 --{CASH and MFAR legacy
134 g_mode_process VARCHAR2(30) := 'R12';
135 --}
136
137 --{HYU upgrade cash basis
138 g_upgrade_mode VARCHAR2(30) := 'N';
139 g_currency_code VARCHAR2(30);
140 g_org_id NUMBER;
141
142
143 --{FRT and CHRG
144 g_trx_line_frt VARCHAR2(1) := 'N';
145 g_trx_line_chrg VARCHAR2(1) := 'N';
146 --}
147
148 --HY Cash Basis Upgrade
149 FUNCTION CurrRound
150 ( p_amount IN NUMBER,
151 p_currency_code IN VARCHAR2 DEFAULT NULL)
152 RETURN NUMBER;
153
154
155 PROCEDURE conv_acctd_amt
156 (p_pay_adj IN VARCHAR2,
157 p_adj_rec IN ar_adjustments%ROWTYPE,
158 p_app_rec IN ar_receivable_applications%ROWTYPE,
159 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
160
161 PROCEDURE conv_acctd_amt_upg
162 (p_pay_adj IN VARCHAR2,
163 p_adj_rec IN ar_adjustments%ROWTYPE,
164 p_app_rec IN ar_receivable_applications%ROWTYPE,
165 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
166
167 PROCEDURE update_taxable
168 (p_gt_id IN VARCHAR2,
169 p_customer_trx_id IN NUMBER,
170 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
171
172
173 PROCEDURE convert_ra_inv_to_cm
174 ( p_inv_ra_rec IN ar_receivable_applications%ROWTYPE,
175 p_cm_trx_id IN NUMBER,
176 x_cm_ra_rec IN OUT NOCOPY ar_receivable_applications%ROWTYPE,
177 p_mode IN VARCHAR2 DEFAULT 'OLTP',
178 p_gt_id IN VARCHAR2 DEFAULT NULL,
179 p_from_llca IN VARCHAR2 DEFAULT 'N',
180 p_upg_cm IN VARCHAR2 DEFAULT 'N');
181
182 /*-------------------------------------------------------------------------+
183 | Routine elementary and data structure |
184 +-------------------------------------------------------------------------*/
185 TYPE gt_record IS RECORD (gt_id NUMBER,
186 app_level VARCHAR2(30),
187 app_rec ar_receivable_applications%ROWTYPE);
188
189 TYPE gt_tab_type IS TABLE of gt_record INDEX BY BINARY_INTEGER;
190 g_gt_tab gt_tab_type;
191 clear_gt_tab gt_tab_type;
192
193 TYPE CHAR_HASH_TABLE IS TABLE OF VARCHAR2(2000) INDEX BY VARCHAR2(2000);
194
195 --
196 -- Structure to keep the input amount and the output amount of the proration
197 --
198 TYPE pro_res_tbl_type IS RECORD
199 ( -- Groupe
200 GROUPE DBMS_SQL.VARCHAR2_TABLE,
201 -- Base
202 -- ADJ and APP
203 base_pro_amt DBMS_SQL.NUMBER_TABLE,
204 base_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
205 BASE_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
206 BASE_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
207 base_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
208 base_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
209 base_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
210 base_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
211 -- ED
212 base_ed_pro_amt DBMS_SQL.NUMBER_TABLE,
213 base_ed_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
214 BASE_ed_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
215 BASE_ed_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
216 base_ed_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
217 base_ed_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
218 base_ed_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
219 base_ed_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
220 -- UNED
221 base_uned_pro_amt DBMS_SQL.NUMBER_TABLE,
222 base_uned_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
223 BASE_uned_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
224 BASE_uned_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
225 base_uned_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
226 base_uned_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
227 base_uned_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
228 base_uned_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
229 -- Element numerator
230 -- ADJ and APP
231 elmt_pro_amt DBMS_SQL.NUMBER_TABLE,
232 elmt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
233 ELMT_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
234 ELMT_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
235 elmt_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
236 elmt_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
237 elmt_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
238 elmt_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
239 -- ED
240 elmt_ed_pro_amt DBMS_SQL.NUMBER_TABLE,
241 elmt_ed_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
242 ELMT_ed_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
243 ELMT_ed_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
244 elmt_ed_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
245 elmt_ed_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
246 elmt_ed_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
247 elmt_ed_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
248 -- UNED
249 elmt_uned_pro_amt DBMS_SQL.NUMBER_TABLE,
250 elmt_uned_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
251 ELMT_uned_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
252 ELMT_uned_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
253 elmt_uned_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
254 elmt_uned_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
255 elmt_uned_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
256 elmt_uned_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
257 -- Amount to be allocated -- ADJ and APP
258 buc_alloc_amt DBMS_SQL.NUMBER_TABLE,
259 buc_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
260 buc_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
261 buc_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
262 buc_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
263 buc_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
264 buc_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
265 buc_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
266 -- ED
267 buc_ed_alloc_amt DBMS_SQL.NUMBER_TABLE,
268 buc_ed_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
269 buc_ed_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
270 buc_ed_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
271 buc_ed_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
272 buc_ed_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
273 buc_ed_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
274 buc_ed_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
275 -- UNED
276 buc_uned_alloc_amt DBMS_SQL.NUMBER_TABLE,
277 buc_uned_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
278 buc_uned_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
279 buc_uned_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
280 buc_uned_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
281 buc_uned_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
282 buc_uned_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
283 buc_uned_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
284 -- Currency
285 FROM_CURRENCY DBMS_SQL.VARCHAR2_TABLE,
286 TO_CURRENCY DBMS_SQL.VARCHAR2_TABLE,
287 BASE_CURRENCY DBMS_SQL.VARCHAR2_TABLE,
288 -- Result of the allocation
289 -- ADJ and APP
290 tl_alloc_amt DBMS_SQL.NUMBER_TABLE,
291 tl_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
292 tl_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
293 tl_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
294 tl_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
295 tl_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
296 tl_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
297 tl_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
298 -- ED
299 tl_ed_alloc_amt DBMS_SQL.NUMBER_TABLE,
300 tl_ed_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
301 tl_ed_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
302 tl_ed_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
303 tl_ed_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
304 tl_ed_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
305 tl_ed_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
306 tl_ed_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
307 -- UNED
308 tl_uned_alloc_amt DBMS_SQL.NUMBER_TABLE,
309 tl_uned_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
310 tl_uned_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
311 tl_uned_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
312 tl_uned_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
313 tl_uned_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
314 tl_uned_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
315 tl_uned_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
316 --
317 ROWID_ID DBMS_SQL.VARCHAR2_TABLE,
318 line_type DBMS_SQL.VARCHAR2_TABLE);
319
320 --
321 -- Internal structure for safety on proration
322 --
323 TYPE group_tbl_type IS RECORD
324 ( GROUPE DBMS_SQL.VARCHAR2_TABLE,
325 -- ADJ and APP
326 RUN_ALLOC DBMS_SQL.NUMBER_TABLE,
327 RUN_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
328 RUN_AMT DBMS_SQL.NUMBER_TABLE,
329 RUN_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
330 RUN_CHRG_ALLOC DBMS_SQL.NUMBER_TABLE,
331 RUN_CHRG_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
332 RUN_CHRG_AMT DBMS_SQL.NUMBER_TABLE,
333 RUN_CHRG_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
334 RUN_FRT_ALLOC DBMS_SQL.NUMBER_TABLE,
335 RUN_FRT_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
336 RUN_FRT_AMT DBMS_SQL.NUMBER_TABLE,
337 RUN_FRT_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
338 RUN_TAX_ALLOC DBMS_SQL.NUMBER_TABLE,
339 RUN_TAX_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
340 RUN_TAX_AMT DBMS_SQL.NUMBER_TABLE,
341 RUN_TAX_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
342 -- ED
343 RUN_ED_ALLOC DBMS_SQL.NUMBER_TABLE,
344 RUN_ED_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
345 RUN_ED_AMT DBMS_SQL.NUMBER_TABLE,
346 RUN_ED_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
347 RUN_ED_CHRG_ALLOC DBMS_SQL.NUMBER_TABLE,
348 RUN_ED_CHRG_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
349 RUN_ED_CHRG_AMT DBMS_SQL.NUMBER_TABLE,
350 RUN_ED_CHRG_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
351 RUN_ED_FRT_ALLOC DBMS_SQL.NUMBER_TABLE,
352 RUN_ED_FRT_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
353 RUN_ED_FRT_AMT DBMS_SQL.NUMBER_TABLE,
354 RUN_ED_FRT_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
355 RUN_ED_TAX_ALLOC DBMS_SQL.NUMBER_TABLE,
356 RUN_ED_TAX_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
357 RUN_ED_TAX_AMT DBMS_SQL.NUMBER_TABLE,
358 RUN_ED_TAX_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
359 -- UNED
360 RUN_UNED_ALLOC DBMS_SQL.NUMBER_TABLE,
361 RUN_UNED_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
362 RUN_UNED_AMT DBMS_SQL.NUMBER_TABLE,
363 RUN_UNED_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
364 RUN_UNED_CHRG_ALLOC DBMS_SQL.NUMBER_TABLE,
365 RUN_UNED_CHRG_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
366 RUN_UNED_CHRG_AMT DBMS_SQL.NUMBER_TABLE,
367 RUN_UNED_CHRG_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
368 RUN_UNED_FRT_ALLOC DBMS_SQL.NUMBER_TABLE,
369 RUN_UNED_FRT_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
370 RUN_UNED_FRT_AMT DBMS_SQL.NUMBER_TABLE,
371 RUN_UNED_FRT_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
372 RUN_UNED_TAX_ALLOC DBMS_SQL.NUMBER_TABLE,
373 RUN_UNED_TAX_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
374 RUN_UNED_TAX_AMT DBMS_SQL.NUMBER_TABLE,
375 RUN_UNED_TAX_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
376 GROUPE_INDEX CHAR_HASH_TABLE);
377
378
379 --HY Cash Basis Upgrade
380 FUNCTION CurrRound
381 ( p_amount IN NUMBER,
382 p_currency_code IN VARCHAR2 DEFAULT NULL)
383 RETURN NUMBER
384 IS
385 l_return NUMBER;
386 BEGIN
387 IF g_upgrade_mode = 'Y' THEN
388 l_return := ar_unposted_item_util.CurrRound(p_amount,g_currency_code);
389 ELSE
390 l_return := ar_unposted_item_util.CurrRound(p_amount,p_currency_code);
391 END IF;
392 RETURN l_return;
393 END;
394
395
396 --BUG#44144391
397 PROCEDURE get_gt_sequence
398 (x_gt_id OUT NOCOPY NUMBER,
399 x_return_status IN OUT NOCOPY VARCHAR2,
400 x_msg_count IN OUT NOCOPY NUMBER,
401 x_msg_data IN OUT NOCOPY VARCHAR2)
402 IS
403 CURSOR c_gt IS
404 SELECT ar_distribution_split_s.NEXTVAL
405 FROM DUAL;
406 no_sequence EXCEPTION;
407 BEGIN
408 IF PG_DEBUG = 'Y' THEN
409 localdebug('arp_det_dist_pkg.get_gt_sequence()+');
410 END IF;
411 OPEN c_gt;
412 FETCH c_gt INTO x_gt_id;
413 IF c_gt%NOTFOUND THEN
414 RAISE no_sequence;
415 END IF;
416 CLOSE c_gt;
417 IF PG_DEBUG = 'Y' THEN
418 localdebug('arp_det_dist_pkg.get_gt_sequence()-');
419 END IF;
420 EXCEPTION
421 WHEN no_sequence THEN
422 IF c_gt%ISOPEN THEN
423 CLOSE c_gt;
424 END IF;
425 IF PG_DEBUG = 'Y' THEN
426 localdebug('EXCEPTION no_sequence in in arp_dte_dist_pkg.get_gt_sequence');
427 END IF;
428 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
429 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR' );
430 FND_MESSAGE.SET_TOKEN( 'TEXT', 'EXCEPTION no_sequence in arp_dte_dist_pkg.get_gt_sequence');
431 FND_MSG_PUB.ADD;
432 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
433 p_count => x_msg_count,
434 p_data => x_msg_data);
435 END get_gt_sequence;
436 --}
437
438
439 PROCEDURE localdebug(p_txt IN VARCHAR2) IS
440 BEGIN
441 IF PG_DEBUG = 'Y' THEN
442 arp_debug.debug(p_txt);
443 END IF;
444 END;
445
446
447 PROCEDURE set_mode_process
448 (p_customer_trx IN ra_customer_trx%ROWTYPE,
449 p_from_llca IN VARCHAR2 DEFAULT 'N' )
450 IS
451 CURSOR cu_trx IS
452 SELECT * FROM ra_customer_trx
453 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
454 l_mark VARCHAR2(30);
455 BEGIN
456 IF PG_DEBUG = 'Y' THEN
457 localdebug('arp_det_dist_pkg.set_mode_process()+');
458 localdebug(' p_customer_trx.customer_trx_id :'||p_customer_trx.customer_trx_id);
459 localdebug(' p_customer_trx.upgrade_method :'||p_customer_trx.upgrade_method);
460 END IF;
461
462 IF p_customer_trx.upgrade_method IS NULL THEN
463 OPEN cu_trx;
464 FETCH cu_trx INTO g_cust_inv_rec;
465 IF cu_trx%NOTFOUND THEN
466 RAISE no_data_found;
467 ELSE
468 l_mark := g_cust_inv_rec.upgrade_method;
469 END IF;
470 CLOSE cu_trx;
471 ELSE
472 l_mark := p_customer_trx.upgrade_method;
473 END IF;
474
475 IF l_mark = 'R12' THEN
476 g_mode_process := 'R12';
477 ELSIF l_mark = 'R12_11IMFAR' THEN
478 g_mode_process := 'R12_11IMFAR';
479 ELSIF l_mark = 'R12_11ICASH' THEN
480 g_mode_process := 'R12_11ICASH';
481 --{
482 ELSIF l_mark = 'R12_NLB' THEN
483 g_mode_process := 'R12_NLB';
484 --}
485 ELSIF l_mark = 'R12_MERGE' THEN
486 g_mode_process := 'R12_MERGE';
487 ELSE
488 g_mode_process := 'R12_NLB';
489 END IF;
490 IF PG_DEBUG = 'Y' THEN
491 localdebug(' g_mode_process :'||g_mode_process);
492 localdebug('arp_det_dist_pkg.set_mode_process()-');
493 END IF;
494
495 END;
496 --}
497
498
499 PROCEDURE stamping_ra
500 (p_app_id IN NUMBER)
501 IS
502 BEGIN
503 --
504 -- application on a 11i Mfar transaction with Mfar adjustments
505 --
506 IF g_mode_process = 'R12_11IMFAR' THEN
507
508 UPDATE ar_receivable_applications
509 SET upgrade_method = 'R12_11IMFAR'
510 WHERE receivable_application_id = p_app_id;
511
512 --
513 -- Application on a R12 transaction
514 -- Note all 11i transactions without applications will be stamped as R12
515 --
516 ELSIF g_mode_process IN ('R12','R12_NLB') THEN
517
518 UPDATE ar_receivable_applications
519 SET upgrade_method = 'R12'
520 WHERE receivable_application_id = p_app_id;
521
522 --
523 -- application on a 11i transaction with 11i adjustments (no Mfar)
524 --
525 ELSIF g_mode_process = 'R12_11ICASH' THEN
526
527 UPDATE ar_receivable_applications
528 SET upgrade_method = 'R12_11ICASH'
529 WHERE receivable_application_id = p_app_id;
530
531 --application on invoice having activity/application with summarized distributions
532 ELSIF g_mode_process = 'R12_MERGE' THEN
533
534 UPDATE ar_receivable_applications
535 SET upgrade_method = 'R12_MERGE'
536 WHERE receivable_application_id = p_app_id;
537
538 END IF;
539 END;
540
541 PROCEDURE stamping_adj
542 (p_adj_id IN NUMBER)
543 IS
544 BEGIN
545
546 -- Adjustment has upgrade_method as
547 -- 11I -- At downtime upgrade
548 -- 11IMFAR -- * At 11I Mfar transaction with Mfar adjustment being applied in R12
549 -- done in set_original_rem_amt procedure
550 -- * At extracted posting time if the adjustment is marked as 11I
551 -- we need to update this flag to retrieve Mfar distributions
552 -- Note this process is needed when application is getting posted
553 -- R12 -- At the end of nornal process
554 IF g_mode_process IN ('R12','R12_NLB','R12_11ICASH','R12_11IMFAR') THEN
555
556 UPDATE ar_adjustments
557 SET upgrade_method = 'R12'
558 WHERE adjustment_id = p_adj_id;
559
560 ELSIF g_mode_process IN ('R12_MERGE') THEN
561 UPDATE ar_adjustments
562 SET upgrade_method = 'R12_MERGE'
563 WHERE adjustment_id = p_adj_id;
564 END IF;
565 END;
566
567
568 --
569 -- Function procedure declaration
570 --
571 /*-----------------------------------------------------------------------+
572 | plsql_proration |
573 +-----------------------------------------------------------------------+
574 | Does the proration based on the input pro_res_tbl_type parameter |
575 | structure |
576 +-----------------------------------------------------------------------+
577 | parameter IN OUT pro_res_tbl_type |
578 +-----------------------------------------------------------------------*/
579 PROCEDURE plsql_proration
580 ( x_tab IN OUT NOCOPY pro_res_tbl_type,
581 x_group_tbl IN OUT NOCOPY group_tbl_type,
582 p_group_level IN VARCHAR2 DEFAULT 'NOGROUP',
583 -- ADJ and APP
584 x_run_amt IN OUT NOCOPY NUMBER,
585 x_run_alloc IN OUT NOCOPY NUMBER,
586 x_run_acctd_amt IN OUT NOCOPY NUMBER,
587 x_run_acctd_alloc IN OUT NOCOPY NUMBER,
588 x_run_chrg_amt IN OUT NOCOPY NUMBER,
589 x_run_chrg_alloc IN OUT NOCOPY NUMBER,
590 x_run_chrg_acctd_amt IN OUT NOCOPY NUMBER,
591 x_run_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
592 x_run_frt_amt IN OUT NOCOPY NUMBER,
593 x_run_frt_alloc IN OUT NOCOPY NUMBER,
594 x_run_frt_acctd_amt IN OUT NOCOPY NUMBER,
595 x_run_frt_acctd_alloc IN OUT NOCOPY NUMBER,
596 x_run_tax_amt IN OUT NOCOPY NUMBER,
597 x_run_tax_alloc IN OUT NOCOPY NUMBER,
598 x_run_tax_acctd_amt IN OUT NOCOPY NUMBER,
599 x_run_tax_acctd_alloc IN OUT NOCOPY NUMBER,
600 -- ED
601 x_run_ed_amt IN OUT NOCOPY NUMBER,
602 x_run_ed_alloc IN OUT NOCOPY NUMBER,
603 x_run_ed_acctd_amt IN OUT NOCOPY NUMBER,
604 x_run_ed_acctd_alloc IN OUT NOCOPY NUMBER,
605 x_run_ed_chrg_amt IN OUT NOCOPY NUMBER,
606 x_run_ed_chrg_alloc IN OUT NOCOPY NUMBER,
607 x_run_ed_chrg_acctd_amt IN OUT NOCOPY NUMBER,
608 x_run_ed_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
609 x_run_ed_frt_amt IN OUT NOCOPY NUMBER,
610 x_run_ed_frt_alloc IN OUT NOCOPY NUMBER,
611 x_run_ed_frt_acctd_amt IN OUT NOCOPY NUMBER,
612 x_run_ed_frt_acctd_alloc IN OUT NOCOPY NUMBER,
613 x_run_ed_tax_amt IN OUT NOCOPY NUMBER,
614 x_run_ed_tax_alloc IN OUT NOCOPY NUMBER,
615 x_run_ed_tax_acctd_amt IN OUT NOCOPY NUMBER,
616 x_run_ed_tax_acctd_alloc IN OUT NOCOPY NUMBER,
617 -- UNED
618 x_run_uned_amt IN OUT NOCOPY NUMBER,
619 x_run_uned_alloc IN OUT NOCOPY NUMBER,
620 x_run_uned_acctd_amt IN OUT NOCOPY NUMBER,
621 x_run_uned_acctd_alloc IN OUT NOCOPY NUMBER,
622 x_run_uned_chrg_amt IN OUT NOCOPY NUMBER,
623 x_run_uned_chrg_alloc IN OUT NOCOPY NUMBER,
624 x_run_uned_chrg_acctd_amt IN OUT NOCOPY NUMBER,
625 x_run_uned_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
626 x_run_uned_frt_amt IN OUT NOCOPY NUMBER,
627 x_run_uned_frt_alloc IN OUT NOCOPY NUMBER,
628 x_run_uned_frt_acctd_amt IN OUT NOCOPY NUMBER,
629 x_run_uned_frt_acctd_alloc IN OUT NOCOPY NUMBER,
630 x_run_uned_tax_amt IN OUT NOCOPY NUMBER,
631 x_run_uned_tax_alloc IN OUT NOCOPY NUMBER,
632 x_run_uned_tax_acctd_amt IN OUT NOCOPY NUMBER,
633 x_run_uned_tax_acctd_alloc IN OUT NOCOPY NUMBER);
634
635 /*-----------------------------------------------------------------------+
636 | update_line |
637 +-----------------------------------------------------------------------+
638 | Read ra_ar_gt for proration info |
639 | Does the proration plsql_proration |
640 | update ra_ar_gt with the result |
641 | for lines of a transaction |
642 +-----------------------------------------------------------------------+
643 | parameter: |
644 | p_customer_trx_id transaction id |
645 | p_gt_id global id |
646 +-----------------------------------------------------------------------*/
647 PROCEDURE update_line
648 (p_gt_id IN VARCHAR2,
649 p_customer_trx_id IN NUMBER,
650 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
651
652 /*-------------------------------------------------------------------------+
653 | get_invoice_line_info |
654 +-------------------------------------------------------------------------+
655 | parameter : |
656 | p_gt_id global temporary id |
657 | p_customer_trx_id transaction id |
658 | p_ae_sys_rec receivable system parameter |
659 | p_mode NORMAL / REMESTIM |
660 +-------------------------------------------------------------------------*/
661 PROCEDURE get_invoice_line_info
662 (p_gt_id IN VARCHAR2,
663 p_customer_trx_id IN NUMBER,
664 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
665 p_mode IN VARCHAR2);
666
667 /*-------------------------------------------------------------------------+
668 | get_invoice_line_info_cm |
669 +-------------------------------------------------------------------------+
670 | parameter : |
671 | p_gt_id global temporary id |
672 | p_customer_trx_id transaction id |
673 | p_ae_sys_rec receivable system parameter |
674 | p_mode NORMAL / REMESTIM |
675 +-------------------------------------------------------------------------*/
676 PROCEDURE get_invoice_line_info_cm
677 (p_gt_id IN VARCHAR2,
678 p_customer_trx_id IN NUMBER,
679 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
680 p_mode IN VARCHAR2);
681
682
683 /*-------------------------------------------------------------------------+
684 | get_invoice_line_info_per_grp |
685 +-------------------------------------------------------------------------+
686 | parameter : |
687 | p_gt_id global temporary id |
688 | p_customer_trx_id transaction id |
689 | p_source_data_key1..5 group identification |
690 | p_ae_sys_rec receivable system parameter |
691 +-------------------------------------------------------------------------*/
692 PROCEDURE get_invoice_line_info_per_grp
693 (p_gt_id IN VARCHAR2,
694 p_customer_trx_id IN NUMBER,
695 -- p_group_id IN VARCHAR2,
696 --{HYUBPAGP
697 p_source_data_key1 IN VARCHAR2,
698 p_source_data_key2 IN VARCHAR2,
699 p_source_data_key3 IN VARCHAR2,
700 p_source_data_key4 IN VARCHAR2,
701 p_source_data_key5 IN VARCHAR2,
702 --}
703 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
704
705 /*-------------------------------------------------------------------------+
706 | get_invoice_line_info_per_line |
707 +-------------------------------------------------------------------------+
708 | parameter : |
709 | p_gt_id global temporary id |
710 | p_customer_trx_id transaction id |
711 | p_customer_trx_line_id customer_trx_line_id |
712 | p_ae_sys_rec receivable system parameter |
713 +-------------------------------------------------------------------------*/
714 PROCEDURE get_invoice_line_info_per_line
715 (p_gt_id IN VARCHAR2,
716 p_customer_trx_id IN NUMBER,
717 p_customer_trx_line_id IN NUMBER,
718 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
719 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
720
721 /*-------------------------------------------------------------------------+
722 | prepare_trx_line_proration |
723 +-------------------------------------------------------------------------+
724 | This procedure determine the base |
725 | the element |
726 | the bucket |
727 | line amounts for prorations |
728 | It uses the bucket returned at the GPL gl_level |
729 | to determine the buckets |
730 +-------------------------------------------------------------------------+
731 | p_pay_adj APP / ADJ |
732 | in case of APP ED/UNED will be |
733 | kicked off. |
734 | p_adj_rec adjustment record |
735 | p_app_rec receivable application record |
736 | p_ae_sys_rec receivable system parameter |
737 +-------------------------------------------------------------------------*/
738 PROCEDURE prepare_trx_line_proration
739 (p_gt_id IN VARCHAR2,
740 p_customer_trx_id IN NUMBER,
741 p_pay_adj IN VARCHAR2,
742 p_adj_rec IN ar_adjustments%ROWTYPE,
743 p_app_rec IN ar_receivable_applications%ROWTYPE,
744 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
745
746 /*-------------------------------------------------------------------------+
747 | prepare_group_for_proration |
748 +-------------------------------------------------------------------------+
749 | This procedure determine the base |
750 | the element |
751 | the bucket |
752 | group of lines proration |
753 | It inserts into ra_ar_gt with gp_level = 'GPL' |
754 +-------------------------------------------------------------------------+
755 | p_pay_adj APP / ADJ |
756 | in case of APP ED/UNED will be |
757 | kicked off. |
758 | p_adj_rec adjustment record |
759 | p_app_rec receivable application record |
760 | p_ae_sys_rec receivable system parameter |
761 +-------------------------------------------------------------------------*/
762 PROCEDURE prepare_group_for_proration
763 (p_gt_id IN VARCHAR2,
764 p_customer_trx_id IN NUMBER,
765 p_pay_adj IN VARCHAR2,
766 p_adj_rec IN ar_adjustments%ROWTYPE,
767 p_app_rec IN ar_receivable_applications%ROWTYPE,
768 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
769
770 /*-------------------------------------------------------------------------+
771 | update_ctl_rem_orig |
772 +-------------------------------------------------------------------------+
773 | Update ra_customer_trx_lines |
774 | remaining and original amount |
775 | base on result in ra_ar_gt |
776 +-------------------------------------------------------------------------+
777 | parameter: |
778 | p_gt_id global id |
779 | p_customer_trx_id transaction id |
780 | p_pay_adj Application or Adjustment |
781 | p_customer_trx_line_id transaction line id |
782 | p_source_data_key1..5 group identification |
783 | p_log_inv_line
784 | p_ae_sys_rec system parameter |
785 +-------------------------------------------------------------------------*/
786 PROCEDURE update_ctl_rem_orig
787 (p_gt_id IN VARCHAR2,
788 p_customer_trx_id IN NUMBER,
789 p_pay_adj IN VARCHAR2,
790 p_customer_trx_line_id IN NUMBER DEFAULT NULL,
791 -- p_group_id IN VARCHAR2 DEFAULT NULL,
792 --{HYUBPAGP
793 p_source_data_key1 IN VARCHAR2 DEFAULT NULL,
794 p_source_data_key2 IN VARCHAR2 DEFAULT NULL,
795 p_source_data_key3 IN VARCHAR2 DEFAULT NULL,
796 p_source_data_key4 IN VARCHAR2 DEFAULT NULL,
797 p_source_data_key5 IN VARCHAR2 DEFAULT NULL,
798 --}
799 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
800 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
801
802
803 /*-------------------------------------------------------------------------+
804 | get_inv_dist |
805 +-------------------------------------------------------------------------+
806 | parameter : |
807 | p_pay_adj APP / ADJ / ED / UNED |
808 | p_gt_id global temporary id |
809 | p_customer_trx_id transaction id |
810 | p_adj_rec adjustment record |
811 | p_app_rec receivable application record |
812 | p_ae_sys_rec receivable system parameter |
813 +-------------------------------------------------------------------------*/
814 PROCEDURE get_inv_dist
815 (p_pay_adj IN VARCHAR2,
816 p_customer_trx_id IN NUMBER,
817 p_gt_id IN VARCHAR2,
818 p_adj_rec IN ar_adjustments%ROWTYPE,
819 p_app_rec IN ar_receivable_applications%ROWTYPE,
820 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
821
822
823 /*-------------------------------------------------------------------------+
824 | update_group_line |
825 +-------------------------------------------------------------------------+
826 | Read ra_ar_gt for proration info |
827 | Does the proration plsql_proration |
828 | update ra_ar_gt with the result |
829 | for group of line of all lines of a invoice |
830 +-------------------------------------------------------------------------+
831 | parameter: |
832 | p_customer_trx_id transaction id |
833 | p_gt_id global id |
834 | p_ae_sys_rec system parameter |
835 +-------------------------------------------------------------------------*/
836 PROCEDURE update_group_line
837 (p_gt_id IN VARCHAR2,
838 p_customer_trx_id IN NUMBER,
839 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
840
841 /*-------------------------------------------------------------------------+
842 | create_split_distribution |
843 +-------------------------------------------------------------------------+
844 | create records in ra_ar_concile |
845 | activity on a trx |
846 +-------------------------------------------------------------------------+
847 | parameters: |
848 | p_pay_adj Application or Adjustment |
849 | p_customer_trx_id transaction id |
850 | p_gt_id global id |
851 | p_app_level TRANSACTION/GROUP/LINE |
852 | p_ae_sys_rec ar syst param |
853 +-------------------------------------------------------------------------*/
854 PROCEDURE create_split_distribution
855 (p_pay_adj IN VARCHAR2,
856 p_customer_trx_id IN NUMBER,
857 p_gt_id IN VARCHAR2,
858 p_app_level IN VARCHAR2,
859 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
860
861 /*-------------------------------------------------------------------------+
862 | adjustment_detemination |
863 +-------------------------------------------------------------------------+
864 | ajustment boundary condition treatment |
865 +-------------------------------------------------------------------------+
866 | parameters: |
867 | p_customer_trx_id transaction id |
868 | p_gt_id global id |
869 | p_pay_adj ADJ/APP/ED/UNED |
870 | p_ae_sys_rec ar syst param |
871 | p_adj_rec adjustment record |
872 +-------------------------------------------------------------------------*/
873 PROCEDURE adjustment_detemination
874 (p_customer_trx_id IN NUMBER,
875 p_gt_id IN VARCHAR2,
876 p_pay_adj IN VARCHAR2,
877 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
878 p_adj_rec IN ar_adjustments%ROWTYPE);
879
880 /*-------------------------------------------------------------------------+
881 | proration_app_dist_trx |
882 +-------------------------------------------------------------------------+
883 | does the proration at distrib level and create the detail distributions |
884 | for application |
885 +-------------------------------------------------------------------------+
886 | parameters: |
887 | p_customer_trx_id transaction id |
888 | p_gt_id global id |
889 | p_app_level LINE/GROUP/TRANSACTION |
890 | p_ae_sys_rec ar syst param |
891 | p_app_rec application record |
892 +-------------------------------------------------------------------------*/
893 PROCEDURE proration_app_dist_trx
894 (p_gt_id IN VARCHAR2,
895 p_app_level IN VARCHAR2,
896 p_customer_trx_id IN NUMBER,
897 p_app_rec IN ar_receivable_applications%ROWTYPE,
898 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
899
900 PROCEDURE proration_adj_dist_trx
901 (p_gt_id IN VARCHAR2,
902 p_app_level IN VARCHAR2,
903 p_customer_trx_id IN NUMBER,
904 p_adj_rec IN ar_adjustments%ROWTYPE,
905 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
906
907
908 -------------
909 -- Body of the package
910 -------------
911 /*------------------------------------------+
912 | return_existing_group is used internally |
913 | by plsql_proration to return an existing|
914 | groupe order happens to be wrong |
915 +------------------------------------------*/
916 PROCEDURE return_existing_group
917 (p_groupe IN VARCHAR2,
918 p_group_level IN VARCHAR2 DEFAULT 'NOGROUP',
919 x_group_tbl IN OUT NOCOPY group_tbl_type,
920 x_exist IN OUT NOCOPY BOOLEAN,
921 -- ADJ and APP
922 x_run_amt IN OUT NOCOPY NUMBER,
923 x_run_alloc IN OUT NOCOPY NUMBER,
924 x_run_acctd_amt IN OUT NOCOPY NUMBER,
925 x_run_acctd_alloc IN OUT NOCOPY NUMBER,
926 x_run_chrg_amt IN OUT NOCOPY NUMBER,
927 x_run_chrg_alloc IN OUT NOCOPY NUMBER,
928 x_run_chrg_acctd_amt IN OUT NOCOPY NUMBER,
929 x_run_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
930 x_run_frt_amt IN OUT NOCOPY NUMBER,
931 x_run_frt_alloc IN OUT NOCOPY NUMBER,
932 x_run_frt_acctd_amt IN OUT NOCOPY NUMBER,
933 x_run_frt_acctd_alloc IN OUT NOCOPY NUMBER,
934 x_run_tax_amt IN OUT NOCOPY NUMBER,
935 x_run_tax_alloc IN OUT NOCOPY NUMBER,
936 x_run_tax_acctd_amt IN OUT NOCOPY NUMBER,
937 x_run_tax_acctd_alloc IN OUT NOCOPY NUMBER,
938 -- ED
939 x_run_ed_amt IN OUT NOCOPY NUMBER,
940 x_run_ed_alloc IN OUT NOCOPY NUMBER,
941 x_run_ed_acctd_amt IN OUT NOCOPY NUMBER,
942 x_run_ed_acctd_alloc IN OUT NOCOPY NUMBER,
943 x_run_ed_chrg_amt IN OUT NOCOPY NUMBER,
944 x_run_ed_chrg_alloc IN OUT NOCOPY NUMBER,
945 x_run_ed_chrg_acctd_amt IN OUT NOCOPY NUMBER,
946 x_run_ed_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
947 x_run_ed_frt_amt IN OUT NOCOPY NUMBER,
948 x_run_ed_frt_alloc IN OUT NOCOPY NUMBER,
949 x_run_ed_frt_acctd_amt IN OUT NOCOPY NUMBER,
950 x_run_ed_frt_acctd_alloc IN OUT NOCOPY NUMBER,
951 x_run_ed_tax_amt IN OUT NOCOPY NUMBER,
952 x_run_ed_tax_alloc IN OUT NOCOPY NUMBER,
953 x_run_ed_tax_acctd_amt IN OUT NOCOPY NUMBER,
954 x_run_ed_tax_acctd_alloc IN OUT NOCOPY NUMBER,
955 -- UNED
956 x_run_uned_amt IN OUT NOCOPY NUMBER,
957 x_run_uned_alloc IN OUT NOCOPY NUMBER,
958 x_run_uned_acctd_amt IN OUT NOCOPY NUMBER,
959 x_run_uned_acctd_alloc IN OUT NOCOPY NUMBER,
960 x_run_uned_chrg_amt IN OUT NOCOPY NUMBER,
961 x_run_uned_chrg_alloc IN OUT NOCOPY NUMBER,
962 x_run_uned_chrg_acctd_amt IN OUT NOCOPY NUMBER,
963 x_run_uned_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
964 x_run_uned_frt_amt IN OUT NOCOPY NUMBER,
965 x_run_uned_frt_alloc IN OUT NOCOPY NUMBER,
966 x_run_uned_frt_acctd_amt IN OUT NOCOPY NUMBER,
967 x_run_uned_frt_acctd_alloc IN OUT NOCOPY NUMBER,
968 x_run_uned_tax_amt IN OUT NOCOPY NUMBER,
969 x_run_uned_tax_alloc IN OUT NOCOPY NUMBER,
970 x_run_uned_tax_acctd_amt IN OUT NOCOPY NUMBER,
971 x_run_uned_tax_acctd_alloc IN OUT NOCOPY NUMBER)
972
973 IS
974 i NUMBER(15);
975 BEGIN
976 IF PG_DEBUG = 'Y' THEN
977 localdebug('arp_det_dist_pkg.return_existing_group()+');
978 localdebug(' p_groupe '||p_groupe);
979 END IF;
980 x_exist := FALSE;
981 -- ADJ and APP
982 x_run_chrg_amt := 0;
983 x_run_chrg_alloc := 0;
984 x_run_chrg_acctd_amt := 0;
985 x_run_chrg_acctd_alloc := 0;
986 x_run_frt_amt := 0;
987 x_run_frt_alloc := 0;
988 x_run_frt_acctd_amt := 0;
989 x_run_frt_acctd_alloc := 0;
990
991 /*If the current proration is at line level and the source is INTERFACE, then
992 we retain the counter values across various calls to the current procedure
993 with in the context of update_line.This enables cumulative logic for proration
994 of acctd amounts and thus avoids rounding issues. Please refer bug 8220511..*/
995 IF nvl(p_group_level,'NOGROUP') <> 'L' OR g_tax_flag <> 'INTERFACE' OR g_line_flag <> 'INTERFACE' THEN
996 x_run_amt := 0;
997 x_run_alloc := 0;
998 x_run_acctd_amt := 0;
999 x_run_acctd_alloc := 0;
1000 x_run_tax_amt := 0;
1001 x_run_tax_alloc := 0;
1002 x_run_tax_acctd_amt := 0;
1003 x_run_tax_acctd_alloc := 0;
1004 END IF;
1005
1006 -- ED
1007 x_run_ed_chrg_amt := 0;
1008 x_run_ed_chrg_alloc := 0;
1009 x_run_ed_chrg_acctd_amt := 0;
1010 x_run_ed_chrg_acctd_alloc := 0;
1011 x_run_ed_frt_amt := 0;
1012 x_run_ed_frt_alloc := 0;
1013 x_run_ed_frt_acctd_amt := 0;
1014 x_run_ed_frt_acctd_alloc := 0;
1015
1016 /*If the current proration is at line level and the source is INTERFACE, then
1017 we retain the counter values across various calls to the current procedure
1018 with in the context of update_line.This enables cumulative logic for proration
1019 of acctd amounts and thus avoids rounding issues. Please refer bug 8220511..*/
1020 IF nvl(p_group_level,'NOGROUP') <> 'L' OR g_ed_tax_flag <> 'INTERFACE' OR g_ed_line_flag <> 'INTERFACE' THEN
1021 x_run_ed_amt := 0;
1022 x_run_ed_alloc := 0;
1023 x_run_ed_acctd_amt := 0;
1024 x_run_ed_acctd_alloc := 0;
1025 x_run_ed_tax_amt := 0;
1026 x_run_ed_tax_alloc := 0;
1027 x_run_ed_tax_acctd_amt := 0;
1028 x_run_ed_tax_acctd_alloc := 0;
1029 END IF;
1030
1031 -- UNED
1032 x_run_uned_chrg_amt := 0;
1033 x_run_uned_chrg_alloc := 0;
1034 x_run_uned_chrg_acctd_amt := 0;
1035 x_run_uned_chrg_acctd_alloc := 0;
1036 x_run_uned_frt_amt := 0;
1037 x_run_uned_frt_alloc := 0;
1038 x_run_uned_frt_acctd_amt := 0;
1039 x_run_uned_frt_acctd_alloc := 0;
1040
1041 /*If the current proration is at line level and the source is INTERFACE, then
1042 we retain the counter values across various calls to the current procedure
1043 with in the context of update_line.This enables cumulative logic for proration
1044 of acctd amounts and thus avoids rounding issues. Please refer bug 8220511..*/
1045 IF nvl(p_group_level,'NOGROUP') <> 'L' OR g_uned_tax_flag <> 'INTERFACE' OR g_uned_line_flag <> 'INTERFACE' THEN
1046 x_run_uned_amt := 0;
1047 x_run_uned_alloc := 0;
1048 x_run_uned_acctd_amt := 0;
1049 x_run_uned_acctd_alloc := 0;
1050 x_run_uned_tax_amt := 0;
1051 x_run_uned_tax_alloc := 0;
1052 x_run_uned_tax_acctd_amt := 0;
1053 x_run_uned_tax_acctd_alloc := 0;
1054 END IF;
1055
1056 IF p_groupe <> 'NOGROUP' AND x_group_tbl.GROUPE.COUNT <> 0 THEN
1057 IF x_group_tbl.groupe_index.EXISTS( p_groupe ) THEN
1058
1059 i := x_group_tbl.groupe_index( p_groupe );
1060
1061 IF PG_DEBUG = 'Y' THEN
1062 localdebug('found in cache(hash table) index '||i);
1063 END IF;
1064
1065 x_exist := TRUE;
1066 -- ADJ and APP
1067 x_run_chrg_amt := x_group_tbl.run_chrg_amt(i);
1068 x_run_chrg_alloc := x_group_tbl.run_chrg_alloc(i);
1069 x_run_chrg_acctd_amt := x_group_tbl.run_chrg_acctd_amt(i);
1070 x_run_chrg_acctd_alloc := x_group_tbl.run_chrg_acctd_alloc(i);
1071 x_run_frt_amt := x_group_tbl.run_frt_amt(i);
1072 x_run_frt_alloc := x_group_tbl.run_frt_alloc(i);
1073 x_run_frt_acctd_amt := x_group_tbl.run_frt_acctd_amt(i);
1074 x_run_frt_acctd_alloc := x_group_tbl.run_frt_acctd_alloc(i);
1075
1076 /*If the current proration is at line level and the source is INTERFACE, then
1077 we retain the counter values across various calls to the current procedure
1078 with in the context of update_line.This enables cumulative logic for proration
1079 of acctd amounts and thus avoids rounding issues. Please refer bug 8220511..*/
1080 IF nvl(p_group_level,'NOGROUP') <> 'L' OR g_tax_flag <> 'INTERFACE' OR g_line_flag <> 'INTERFACE' THEN
1081 x_run_amt := x_group_tbl.run_amt(i);
1082 x_run_alloc := x_group_tbl.run_alloc(i);
1083 x_run_acctd_amt := x_group_tbl.run_acctd_amt(i);
1084 x_run_acctd_alloc := x_group_tbl.run_acctd_alloc(i);
1085 x_run_tax_amt := x_group_tbl.run_tax_amt(i);
1086 x_run_tax_alloc := x_group_tbl.run_tax_alloc(i);
1087 x_run_tax_acctd_amt := x_group_tbl.run_tax_acctd_amt(i);
1088 x_run_tax_acctd_alloc := x_group_tbl.run_tax_acctd_alloc(i);
1089 END IF;
1090
1091 -- ED
1092 x_run_ed_chrg_amt := x_group_tbl.run_ed_chrg_amt(i);
1093 x_run_ed_chrg_alloc := x_group_tbl.run_ed_chrg_alloc(i);
1094 x_run_ed_chrg_acctd_amt := x_group_tbl.run_ed_chrg_acctd_amt(i);
1095 x_run_ed_chrg_acctd_alloc := x_group_tbl.run_ed_chrg_acctd_alloc(i);
1096 x_run_ed_frt_amt := x_group_tbl.run_ed_frt_amt(i);
1097 x_run_ed_frt_alloc := x_group_tbl.run_ed_frt_alloc(i);
1098 x_run_ed_frt_acctd_amt := x_group_tbl.run_ed_frt_acctd_amt(i);
1099 x_run_ed_frt_acctd_alloc := x_group_tbl.run_ed_frt_acctd_alloc(i);
1100
1101 /*If the current proration is at line level and the source is INTERFACE, then
1102 we retain the counter values across various calls to the current procedure
1103 with in the context of update_line.This enables cumulative logic for proration
1104 of acctd amounts and thus avoids rounding issues. Please refer bug 8220511..*/
1105 IF nvl(p_group_level,'NOGROUP') <> 'L' OR g_ed_tax_flag <> 'INTERFACE' OR g_ed_line_flag <> 'INTERFACE' THEN
1106 x_run_ed_amt := x_group_tbl.run_ed_amt(i);
1107 x_run_ed_alloc := x_group_tbl.run_ed_alloc(i);
1108 x_run_ed_acctd_amt := x_group_tbl.run_ed_acctd_amt(i);
1109 x_run_ed_acctd_alloc := x_group_tbl.run_ed_acctd_alloc(i);
1110 x_run_ed_tax_amt := x_group_tbl.run_ed_tax_amt(i);
1111 x_run_ed_tax_alloc := x_group_tbl.run_ed_tax_alloc(i);
1112 x_run_ed_tax_acctd_amt := x_group_tbl.run_ed_tax_acctd_amt(i);
1113 x_run_ed_tax_acctd_alloc := x_group_tbl.run_ed_tax_acctd_alloc(i);
1114 END IF;
1115
1116 -- UNED
1117 x_run_uned_chrg_amt := x_group_tbl.run_uned_chrg_amt(i);
1118 x_run_uned_chrg_alloc := x_group_tbl.run_uned_chrg_alloc(i);
1119 x_run_uned_chrg_acctd_amt := x_group_tbl.run_uned_chrg_acctd_amt(i);
1120 x_run_uned_chrg_acctd_alloc := x_group_tbl.run_uned_chrg_acctd_alloc(i);
1121 x_run_uned_frt_amt := x_group_tbl.run_ed_frt_amt(i);
1122 x_run_uned_frt_alloc := x_group_tbl.run_ed_frt_alloc(i);
1123 x_run_uned_frt_acctd_amt := x_group_tbl.run_ed_frt_acctd_amt(i);
1124 x_run_uned_frt_acctd_alloc := x_group_tbl.run_ed_frt_acctd_alloc(i);
1125
1126 /*If the current proration is at line level and the source is INTERFACE, then
1127 we retain the counter values across various calls to the current procedure
1128 with in the context of update_line.This enables cumulative logic for proration
1129 of acctd amounts and thus avoids rounding issues. Please refer bug 8220511..*/
1130 IF nvl(p_group_level,'NOGROUP') <> 'L' OR g_uned_tax_flag <> 'INTERFACE' OR g_uned_line_flag <> 'INTERFACE' THEN
1131 x_run_uned_amt := x_group_tbl.run_uned_amt(i);
1132 x_run_uned_alloc := x_group_tbl.run_uned_alloc(i);
1133 x_run_uned_acctd_amt := x_group_tbl.run_uned_acctd_amt(i);
1134 x_run_uned_acctd_alloc := x_group_tbl.run_uned_acctd_alloc(i);
1135 x_run_uned_tax_amt := x_group_tbl.run_ed_tax_amt(i);
1136 x_run_uned_tax_alloc := x_group_tbl.run_ed_tax_alloc(i);
1137 x_run_uned_tax_acctd_amt := x_group_tbl.run_ed_tax_acctd_amt(i);
1138 x_run_uned_tax_acctd_alloc := x_group_tbl.run_ed_tax_acctd_alloc(i);
1139 END IF;
1140
1141 -- ADJ and APP
1142 IF PG_DEBUG = 'Y' THEN
1143 localdebug(' x_run_amt :'|| x_group_tbl.run_amt(i));
1144 localdebug(' x_run_alloc :'|| x_group_tbl.run_alloc(i));
1145 localdebug(' x_run_acctd_amt :'|| x_group_tbl.run_acctd_amt(i));
1146 localdebug(' x_run_acctd_alloc :'|| x_group_tbl.run_acctd_alloc(i));
1147 localdebug(' x_run_chrg_amt :'|| x_group_tbl.run_chrg_amt(i));
1148 localdebug(' x_run_chrg_alloc :'|| x_group_tbl.run_chrg_alloc(i));
1149 localdebug(' x_run_chrg_acctd_amt :'|| x_group_tbl.run_chrg_acctd_amt(i));
1150 localdebug(' x_run_chrg_acctd_alloc :'|| x_group_tbl.run_chrg_acctd_alloc(i));
1151 localdebug(' x_run_frt_amt :'|| x_group_tbl.run_frt_amt(i));
1152 localdebug(' x_run_frt_alloc :'|| x_group_tbl.run_frt_alloc(i));
1153 localdebug(' x_run_frt_acctd_amt :'|| x_group_tbl.run_frt_acctd_amt(i));
1154 localdebug(' x_run_frt_acctd_alloc :'|| x_group_tbl.run_frt_acctd_alloc(i));
1155 localdebug(' x_run_tax_amt :'|| x_group_tbl.run_tax_amt(i));
1156 localdebug(' x_run_tax_alloc :'|| x_group_tbl.run_tax_alloc(i));
1157 localdebug(' x_run_tax_acctd_amt :'|| x_group_tbl.run_tax_acctd_amt(i));
1158 localdebug(' x_run_tax_acctd_alloc :'|| x_group_tbl.run_tax_acctd_alloc(i));
1159 -- ED
1160 localdebug(' x_run_ed_amt :'|| x_group_tbl.run_ed_amt(i));
1161 localdebug(' x_run_ed_alloc :'|| x_group_tbl.run_ed_alloc(i));
1162 localdebug(' x_run_ed_acctd_amt :'|| x_group_tbl.run_ed_acctd_amt(i));
1163 localdebug(' x_run_ed_acctd_alloc :'|| x_group_tbl.run_ed_acctd_alloc(i));
1164 localdebug(' x_run_ed_chrg_amt :'|| x_group_tbl.run_ed_chrg_amt(i));
1165 localdebug(' x_run_ed_chrg_alloc :'|| x_group_tbl.run_ed_chrg_alloc(i));
1166 localdebug(' x_run_ed_chrg_acctd_amt :'|| x_group_tbl.run_ed_chrg_acctd_amt(i));
1167 localdebug(' x_run_ed_chrg_acctd_alloc :'|| x_group_tbl.run_ed_chrg_acctd_alloc(i));
1168 localdebug(' x_run_ed_frt_amt :'|| x_group_tbl.run_ed_frt_amt(i));
1169 localdebug(' x_run_ed_frt_alloc :'|| x_group_tbl.run_ed_frt_alloc(i));
1170 localdebug(' x_run_ed_frt_acctd_amt :'|| x_group_tbl.run_ed_frt_acctd_amt(i));
1171 localdebug(' x_run_ed_frt_acctd_alloc :'|| x_group_tbl.run_ed_frt_acctd_alloc(i));
1172 localdebug(' x_run_ed_tax_amt :'|| x_group_tbl.run_ed_tax_amt(i));
1173 localdebug(' x_run_ed_tax_alloc :'|| x_group_tbl.run_ed_tax_alloc(i));
1174 localdebug(' x_run_ed_tax_acctd_amt :'|| x_group_tbl.run_ed_tax_acctd_amt(i));
1175 localdebug(' x_run_ed_tax_acctd_alloc :'|| x_group_tbl.run_ed_tax_acctd_alloc(i));
1176 -- UNED
1177 localdebug(' x_run_uned_amt :'|| x_group_tbl.run_uned_amt(i));
1178 localdebug(' x_run_uned_alloc :'|| x_group_tbl.run_uned_alloc(i));
1179 localdebug(' x_run_uned_acctd_amt :'|| x_group_tbl.run_uned_acctd_amt(i));
1180 localdebug(' x_run_uned_acctd_alloc :'|| x_group_tbl.run_uned_acctd_alloc(i));
1181 localdebug(' x_run_uned_chrg_amt :'|| x_group_tbl.run_uned_chrg_amt(i));
1182 localdebug(' x_run_uned_chrg_alloc :'|| x_group_tbl.run_uned_chrg_alloc(i));
1183 localdebug(' x_run_uned_chrg_acctd_amt :'|| x_group_tbl.run_uned_chrg_acctd_amt(i));
1184 localdebug(' x_run_uned_chrg_acctd_alloc :'|| x_group_tbl.run_uned_chrg_acctd_alloc(i));
1185 localdebug(' x_run_uned_frt_amt :'|| x_group_tbl.run_uned_frt_amt(i));
1186 localdebug(' x_run_uned_frt_alloc :'|| x_group_tbl.run_uned_frt_alloc(i));
1187 localdebug(' x_run_uned_frt_acctd_amt :'|| x_group_tbl.run_uned_frt_acctd_amt(i));
1188 localdebug(' x_run_uned_frt_acctd_alloc :'|| x_group_tbl.run_uned_frt_acctd_alloc(i));
1189 localdebug(' x_run_uned_tax_amt :'|| x_group_tbl.run_uned_tax_amt(i));
1190 localdebug(' x_run_uned_tax_alloc :'|| x_group_tbl.run_uned_tax_alloc(i));
1191 localdebug(' x_run_uned_tax_acctd_amt :'|| x_group_tbl.run_uned_tax_acctd_amt(i));
1192 localdebug(' x_run_uned_tax_acctd_alloc :'|| x_group_tbl.run_uned_tax_acctd_alloc(i));
1193 END IF;
1194 END IF;
1195 END IF;
1196 IF PG_DEBUG = 'Y' THEN
1197 localdebug('arp_det_dist_pkg.return_existing_group()-');
1198 END IF;
1199 END return_existing_group;
1200
1201 /*------------------------------------------+
1202 | store_group is used internally |
1203 | by plsql_proration to store an group |
1204 | before moving to another |
1205 +------------------------------------------*/
1206 PROCEDURE store_group
1207 (p_groupe IN VARCHAR2,
1208 -- ADJ and APP
1209 p_run_amt IN NUMBER,
1210 p_run_alloc IN NUMBER,
1211 p_run_acctd_amt IN NUMBER,
1212 p_run_acctd_alloc IN NUMBER,
1213 p_run_chrg_amt IN NUMBER,
1214 p_run_chrg_alloc IN NUMBER,
1215 p_run_chrg_acctd_amt IN NUMBER,
1216 p_run_chrg_acctd_alloc IN NUMBER,
1217 p_run_frt_amt IN NUMBER,
1218 p_run_frt_alloc IN NUMBER,
1219 p_run_frt_acctd_amt IN NUMBER,
1220 p_run_frt_acctd_alloc IN NUMBER,
1221 p_run_tax_amt IN NUMBER,
1222 p_run_tax_alloc IN NUMBER,
1223 p_run_tax_acctd_amt IN NUMBER,
1224 p_run_tax_acctd_alloc IN NUMBER,
1225 -- ED
1226 p_run_ed_amt IN NUMBER,
1227 p_run_ed_alloc IN NUMBER,
1228 p_run_ed_acctd_amt IN NUMBER,
1229 p_run_ed_acctd_alloc IN NUMBER,
1230 p_run_ed_chrg_amt IN NUMBER,
1231 p_run_ed_chrg_alloc IN NUMBER,
1232 p_run_ed_chrg_acctd_amt IN NUMBER,
1233 p_run_ed_chrg_acctd_alloc IN NUMBER,
1234 p_run_ed_frt_amt IN NUMBER,
1235 p_run_ed_frt_alloc IN NUMBER,
1236 p_run_ed_frt_acctd_amt IN NUMBER,
1237 p_run_ed_frt_acctd_alloc IN NUMBER,
1238 p_run_ed_tax_amt IN NUMBER,
1239 p_run_ed_tax_alloc IN NUMBER,
1240 p_run_ed_tax_acctd_amt IN NUMBER,
1241 p_run_ed_tax_acctd_alloc IN NUMBER,
1242 -- UNED
1243 p_run_uned_amt IN NUMBER,
1244 p_run_uned_alloc IN NUMBER,
1245 p_run_uned_acctd_amt IN NUMBER,
1246 p_run_uned_acctd_alloc IN NUMBER,
1247 p_run_uned_chrg_amt IN NUMBER,
1248 p_run_uned_chrg_alloc IN NUMBER,
1249 p_run_uned_chrg_acctd_amt IN NUMBER,
1250 p_run_uned_chrg_acctd_alloc IN NUMBER,
1251 p_run_uned_frt_amt IN NUMBER,
1252 p_run_uned_frt_alloc IN NUMBER,
1253 p_run_uned_frt_acctd_amt IN NUMBER,
1254 p_run_uned_frt_acctd_alloc IN NUMBER,
1255 p_run_uned_tax_amt IN NUMBER,
1256 p_run_uned_tax_alloc IN NUMBER,
1257 p_run_uned_tax_acctd_amt IN NUMBER,
1258 p_run_uned_tax_acctd_alloc IN NUMBER,
1259 --
1260 x_group_tbl IN OUT NOCOPY group_tbl_type)
1261 IS
1262 l_found BOOLEAN := FALSE;
1263 l_cnt NUMBER;
1264 i NUMBER(15);
1265 BEGIN
1266 IF PG_DEBUG = 'Y' THEN
1267 localdebug('arp_det_dist_pkg.store_group()+');
1268 localdebug(' p_groupe :'||p_groupe);
1269 -- ADJ and APP
1270 localdebug(' p_run_amt :'||p_run_amt);
1271 localdebug(' p_run_alloc :'||p_run_alloc);
1272 localdebug(' p_run_acctd_amt :'||p_run_acctd_amt);
1273 localdebug(' p_run_acctd_alloc :'||p_run_acctd_alloc);
1274 localdebug(' p_run_chrg_amt :'||p_run_chrg_amt);
1275 localdebug(' p_run_chrg_alloc :'||p_run_chrg_alloc);
1276 localdebug(' p_run_chrg_acctd_amt :'||p_run_chrg_acctd_amt);
1277 localdebug(' p_run_chrg_acctd_alloc:'||p_run_chrg_acctd_alloc);
1278 localdebug(' p_run_frt_amt :'||p_run_frt_amt);
1279 localdebug(' p_run_frt_alloc :'||p_run_frt_alloc);
1280 localdebug(' p_run_frt_acctd_amt :'||p_run_frt_acctd_amt);
1281 localdebug(' p_run_frt_acctd_alloc:'||p_run_frt_acctd_alloc);
1282 localdebug(' p_run_tax_amt :'||p_run_tax_amt);
1283 localdebug(' p_run_tax_alloc :'||p_run_tax_alloc);
1284 localdebug(' p_run_tax_acctd_amt :'||p_run_tax_acctd_amt);
1285 localdebug(' p_run_tax_acctd_alloc:'||p_run_tax_acctd_alloc);
1286 -- ED
1287 localdebug(' p_run_ed_amt :'||p_run_ed_amt);
1288 localdebug(' p_run_ed_alloc :'||p_run_ed_alloc);
1289 localdebug(' p_run_ed_acctd_amt :'||p_run_ed_acctd_amt);
1290 localdebug(' p_run_ed_acctd_alloc :'||p_run_ed_acctd_alloc);
1291 localdebug(' p_run_ed_chrg_amt :'||p_run_ed_chrg_amt);
1292 localdebug(' p_run_ed_chrg_alloc :'||p_run_ed_chrg_alloc);
1293 localdebug(' p_run_ed_chrg_acctd_amt :'||p_run_ed_chrg_acctd_amt);
1294 localdebug(' p_run_ed_chrg_acctd_alloc:'||p_run_ed_chrg_acctd_alloc);
1295 localdebug(' p_run_ed_frt_amt :'||p_run_ed_frt_amt);
1296 localdebug(' p_run_ed_frt_alloc :'||p_run_ed_frt_alloc);
1297 localdebug(' p_run_ed_frt_acctd_amt :'||p_run_ed_frt_acctd_amt);
1298 localdebug(' p_run_ed_frt_acctd_alloc:'||p_run_ed_frt_acctd_alloc);
1299 localdebug(' p_run_ed_tax_amt :'||p_run_ed_tax_amt);
1300 localdebug(' p_run_ed_tax_alloc :'||p_run_ed_tax_alloc);
1301 localdebug(' p_run_ed_tax_acctd_amt :'||p_run_ed_tax_acctd_amt);
1302 localdebug(' p_run_ed_tax_acctd_alloc:'||p_run_ed_tax_acctd_alloc);
1303 -- UNED
1304 localdebug(' p_run_uned_amt :'||p_run_uned_amt);
1305 localdebug(' p_run_uned_alloc :'||p_run_uned_alloc);
1306 localdebug(' p_run_uned_acctd_amt :'||p_run_uned_acctd_amt);
1307 localdebug(' p_run_uned_acctd_alloc :'||p_run_uned_acctd_alloc);
1308 localdebug(' p_run_uned_chrg_amt :'||p_run_uned_chrg_amt);
1309 localdebug(' p_run_uned_chrg_alloc :'||p_run_uned_chrg_alloc);
1310 localdebug(' p_run_uned_chrg_acctd_amt :'||p_run_uned_chrg_acctd_amt);
1311 localdebug(' p_run_uned_chrg_acctd_alloc:'||p_run_uned_chrg_acctd_alloc);
1312 localdebug(' p_run_uned_frt_amt :'||p_run_uned_frt_amt);
1313 localdebug(' p_run_uned_frt_alloc :'||p_run_uned_frt_alloc);
1314 localdebug(' p_run_uned_frt_acctd_amt :'||p_run_uned_frt_acctd_amt);
1315 localdebug(' p_run_uned_frt_acctd_alloc:'||p_run_uned_frt_acctd_alloc);
1316 localdebug(' p_run_uned_tax_amt :'||p_run_uned_tax_amt);
1317 localdebug(' p_run_uned_tax_alloc :'||p_run_uned_tax_alloc);
1318 localdebug(' p_run_uned_tax_acctd_amt :'||p_run_uned_tax_acctd_amt);
1319 localdebug(' p_run_uned_tax_acctd_alloc:'||p_run_uned_tax_acctd_alloc);
1320 END IF;
1321
1322 IF p_groupe <> 'NOGROUP' THEN
1323 IF x_group_tbl.groupe.COUNT = 0 THEN
1324 x_group_tbl.groupe(1) := p_groupe;
1325 -- ADJ and APP
1326 x_group_tbl.run_amt(1) := p_run_amt;
1327 x_group_tbl.run_alloc(1) := p_run_alloc;
1328 x_group_tbl.run_acctd_amt(1) := p_run_acctd_amt;
1329 x_group_tbl.run_acctd_alloc(1) := p_run_acctd_alloc;
1330 x_group_tbl.run_chrg_amt(1) := p_run_chrg_amt;
1331 x_group_tbl.run_chrg_alloc(1) := p_run_chrg_alloc;
1332 x_group_tbl.run_chrg_acctd_amt(1) := p_run_chrg_acctd_amt;
1333 x_group_tbl.run_chrg_acctd_alloc(1) := p_run_chrg_acctd_alloc;
1334 x_group_tbl.run_frt_amt(1) := p_run_frt_amt;
1335 x_group_tbl.run_frt_alloc(1) := p_run_frt_alloc;
1336 x_group_tbl.run_frt_acctd_amt(1) := p_run_frt_acctd_amt;
1337 x_group_tbl.run_frt_acctd_alloc(1) := p_run_frt_acctd_alloc;
1338 x_group_tbl.run_tax_amt(1) := p_run_tax_amt;
1339 x_group_tbl.run_tax_alloc(1) := p_run_tax_alloc;
1340 x_group_tbl.run_tax_acctd_amt(1) := p_run_tax_acctd_amt;
1341 x_group_tbl.run_tax_acctd_alloc(1) := p_run_tax_acctd_alloc;
1342 -- ED
1343 x_group_tbl.run_ed_amt(1) := p_run_ed_amt;
1344 x_group_tbl.run_ed_alloc(1) := p_run_ed_alloc;
1345 x_group_tbl.run_ed_acctd_amt(1) := p_run_ed_acctd_amt;
1346 x_group_tbl.run_ed_acctd_alloc(1) := p_run_ed_acctd_alloc;
1347 x_group_tbl.run_ed_chrg_amt(1) := p_run_ed_chrg_amt;
1348 x_group_tbl.run_ed_chrg_alloc(1) := p_run_ed_chrg_alloc;
1349 x_group_tbl.run_ed_chrg_acctd_amt(1) := p_run_ed_chrg_acctd_amt;
1350 x_group_tbl.run_ed_chrg_acctd_alloc(1) := p_run_ed_chrg_acctd_alloc;
1351 x_group_tbl.run_ed_frt_amt(1) := p_run_ed_frt_amt;
1352 x_group_tbl.run_ed_frt_alloc(1) := p_run_ed_frt_alloc;
1353 x_group_tbl.run_ed_frt_acctd_amt(1) := p_run_ed_frt_acctd_amt;
1354 x_group_tbl.run_ed_frt_acctd_alloc(1) := p_run_ed_frt_acctd_alloc;
1355 x_group_tbl.run_ed_tax_amt(1) := p_run_ed_tax_amt;
1356 x_group_tbl.run_ed_tax_alloc(1) := p_run_ed_tax_alloc;
1357 x_group_tbl.run_ed_tax_acctd_amt(1) := p_run_ed_tax_acctd_amt;
1358 x_group_tbl.run_ed_tax_acctd_alloc(1) := p_run_ed_tax_acctd_alloc;
1359 -- UNED
1360 x_group_tbl.run_uned_amt(1) := p_run_uned_amt;
1361 x_group_tbl.run_uned_alloc(1) := p_run_uned_alloc;
1362 x_group_tbl.run_uned_acctd_amt(1) := p_run_uned_acctd_amt;
1363 x_group_tbl.run_uned_acctd_alloc(1) := p_run_uned_acctd_alloc;
1364 x_group_tbl.run_uned_chrg_amt(1) := p_run_uned_chrg_amt;
1365 x_group_tbl.run_uned_chrg_alloc(1) := p_run_uned_chrg_alloc;
1366 x_group_tbl.run_uned_chrg_acctd_amt(1) := p_run_uned_chrg_acctd_amt;
1367 x_group_tbl.run_uned_chrg_acctd_alloc(1) := p_run_uned_chrg_acctd_alloc;
1368 x_group_tbl.run_uned_frt_amt(1) := p_run_uned_frt_amt;
1369 x_group_tbl.run_uned_frt_alloc(1) := p_run_uned_frt_alloc;
1370 x_group_tbl.run_uned_frt_acctd_amt(1) := p_run_uned_frt_acctd_amt;
1371 x_group_tbl.run_uned_frt_acctd_alloc(1) := p_run_uned_frt_acctd_alloc;
1372 x_group_tbl.run_uned_tax_amt(1) := p_run_uned_tax_amt;
1373 x_group_tbl.run_uned_tax_alloc(1) := p_run_uned_tax_alloc;
1374 x_group_tbl.run_uned_tax_acctd_amt(1) := p_run_uned_tax_acctd_amt;
1375 x_group_tbl.run_uned_tax_acctd_alloc(1) := p_run_uned_tax_acctd_alloc;
1376 x_group_tbl.groupe_index(p_groupe) := 1;
1377
1378 ELSIF x_group_tbl.groupe_index.EXISTS( p_groupe ) THEN
1379 i := x_group_tbl.groupe_index( p_groupe );
1380 IF PG_DEBUG = 'Y' THEN
1381 localdebug('found in cache(hash table) index '||i);
1382 localdebug('p_groupe '||p_groupe);
1383 END IF;
1384
1385 x_group_tbl.groupe(i) := p_groupe;
1386 -- ADJ and APP
1387 x_group_tbl.run_amt(i) := p_run_amt;
1388 x_group_tbl.run_alloc(i) := p_run_alloc;
1389 x_group_tbl.run_acctd_amt(i) := p_run_acctd_amt;
1390 x_group_tbl.run_acctd_alloc(i) := p_run_acctd_alloc;
1391 x_group_tbl.run_chrg_amt(i) := p_run_chrg_amt;
1392 x_group_tbl.run_chrg_alloc(i) := p_run_chrg_alloc;
1393 x_group_tbl.run_chrg_acctd_amt(i) := p_run_chrg_acctd_amt;
1394 x_group_tbl.run_chrg_acctd_alloc(i) := p_run_chrg_acctd_alloc;
1395 x_group_tbl.run_frt_amt(i) := p_run_frt_amt;
1396 x_group_tbl.run_frt_alloc(i) := p_run_frt_alloc;
1397 x_group_tbl.run_frt_acctd_amt(i) := p_run_frt_acctd_amt;
1398 x_group_tbl.run_frt_acctd_alloc(i) := p_run_frt_acctd_alloc;
1399 x_group_tbl.run_tax_amt(i) := p_run_tax_amt;
1400 x_group_tbl.run_tax_alloc(i) := p_run_tax_alloc;
1401 x_group_tbl.run_tax_acctd_amt(i) := p_run_tax_acctd_amt;
1402 x_group_tbl.run_tax_acctd_alloc(i) := p_run_tax_acctd_alloc;
1403 -- ED
1404 x_group_tbl.run_ed_amt(i) := p_run_ed_amt;
1405 x_group_tbl.run_ed_alloc(i) := p_run_ed_alloc;
1406 x_group_tbl.run_ed_acctd_amt(i) := p_run_ed_acctd_amt;
1407 x_group_tbl.run_ed_acctd_alloc(i) := p_run_ed_acctd_alloc;
1408 x_group_tbl.run_ed_chrg_amt(i) := p_run_ed_chrg_amt;
1409 x_group_tbl.run_ed_chrg_alloc(i) := p_run_ed_chrg_alloc;
1410 x_group_tbl.run_ed_chrg_acctd_amt(i) := p_run_ed_chrg_acctd_amt;
1411 x_group_tbl.run_ed_chrg_acctd_alloc(i) := p_run_ed_chrg_acctd_alloc;
1412 x_group_tbl.run_ed_frt_amt(i) := p_run_ed_frt_amt;
1413 x_group_tbl.run_ed_frt_alloc(i) := p_run_ed_frt_alloc;
1414 x_group_tbl.run_ed_frt_acctd_amt(i) := p_run_ed_frt_acctd_amt;
1415 x_group_tbl.run_ed_frt_acctd_alloc(i) := p_run_ed_frt_acctd_alloc;
1416 x_group_tbl.run_ed_tax_amt(i) := p_run_ed_tax_amt;
1417 x_group_tbl.run_ed_tax_alloc(i) := p_run_ed_tax_alloc;
1418 x_group_tbl.run_ed_tax_acctd_amt(i) := p_run_ed_tax_acctd_amt;
1419 x_group_tbl.run_ed_tax_acctd_alloc(i) := p_run_ed_tax_acctd_alloc;
1420 -- UNED
1421 x_group_tbl.run_uned_amt(i) := p_run_uned_amt;
1422 x_group_tbl.run_uned_alloc(i) := p_run_uned_alloc;
1423 x_group_tbl.run_uned_acctd_amt(i) := p_run_uned_acctd_amt;
1424 x_group_tbl.run_uned_acctd_alloc(i) := p_run_uned_acctd_alloc;
1425 x_group_tbl.run_uned_chrg_amt(i) := p_run_uned_chrg_amt;
1426 x_group_tbl.run_uned_chrg_alloc(i) := p_run_uned_chrg_alloc;
1427 x_group_tbl.run_uned_chrg_acctd_amt(i) := p_run_uned_chrg_acctd_amt;
1428 x_group_tbl.run_uned_chrg_acctd_alloc(i) := p_run_uned_chrg_acctd_alloc;
1429 x_group_tbl.run_uned_frt_amt(i) := p_run_uned_frt_amt;
1430 x_group_tbl.run_uned_frt_alloc(i) := p_run_uned_frt_alloc;
1431 x_group_tbl.run_uned_frt_acctd_amt(i) := p_run_uned_frt_acctd_amt;
1432 x_group_tbl.run_uned_frt_acctd_alloc(i) := p_run_uned_frt_acctd_alloc;
1433 x_group_tbl.run_uned_tax_amt(i) := p_run_uned_tax_amt;
1434 x_group_tbl.run_uned_tax_alloc(i) := p_run_uned_tax_alloc;
1435 x_group_tbl.run_uned_tax_acctd_amt(i) := p_run_uned_tax_acctd_amt;
1436 x_group_tbl.run_uned_tax_acctd_alloc(i) := p_run_uned_tax_acctd_alloc;
1437 ELSE
1438 l_cnt := x_group_tbl.groupe.COUNT;
1439 x_group_tbl.groupe_index( p_groupe ) := l_cnt + 1;
1440
1441 IF PG_DEBUG = 'Y' THEN
1442 localdebug('Added to cache(hash table) index '||l_cnt);
1443 localdebug('p_groupe '||p_groupe);
1444 END IF;
1445
1446 x_group_tbl.groupe(l_cnt+1) := p_groupe;
1447 -- ADJ and APP
1448 x_group_tbl.run_amt(l_cnt+1) := p_run_amt;
1449 x_group_tbl.run_alloc(l_cnt+1) := p_run_alloc;
1450 x_group_tbl.run_acctd_amt(l_cnt+1) := p_run_acctd_amt;
1451 x_group_tbl.run_acctd_alloc(l_cnt+1) := p_run_acctd_alloc;
1452 x_group_tbl.run_chrg_amt(l_cnt+1) := p_run_chrg_amt;
1453 x_group_tbl.run_chrg_alloc(l_cnt+1) := p_run_chrg_alloc;
1454 x_group_tbl.run_chrg_acctd_amt(l_cnt+1) := p_run_chrg_acctd_amt;
1455 x_group_tbl.run_chrg_acctd_alloc(l_cnt+1) := p_run_chrg_acctd_alloc;
1456 x_group_tbl.run_frt_amt(l_cnt+1) := p_run_frt_amt;
1457 x_group_tbl.run_frt_alloc(l_cnt+1) := p_run_frt_alloc;
1458 x_group_tbl.run_frt_acctd_amt(l_cnt+1) := p_run_frt_acctd_amt;
1459 x_group_tbl.run_frt_acctd_alloc(l_cnt+1) := p_run_frt_acctd_alloc;
1460 x_group_tbl.run_tax_amt(l_cnt+1) := p_run_tax_amt;
1461 x_group_tbl.run_tax_alloc(l_cnt+1) := p_run_tax_alloc;
1462 x_group_tbl.run_tax_acctd_amt(l_cnt+1) := p_run_tax_acctd_amt;
1463 x_group_tbl.run_tax_acctd_alloc(l_cnt+1) := p_run_tax_acctd_alloc;
1464 -- ED
1465 x_group_tbl.run_ed_amt(l_cnt+1) := p_run_ed_amt;
1466 x_group_tbl.run_ed_alloc(l_cnt+1) := p_run_ed_alloc;
1467 x_group_tbl.run_ed_acctd_amt(l_cnt+1) := p_run_ed_acctd_amt;
1468 x_group_tbl.run_ed_acctd_alloc(l_cnt+1) := p_run_ed_acctd_alloc;
1469 x_group_tbl.run_ed_chrg_amt(l_cnt+1) := p_run_ed_chrg_amt;
1470 x_group_tbl.run_ed_chrg_alloc(l_cnt+1) := p_run_ed_chrg_alloc;
1471 x_group_tbl.run_ed_chrg_acctd_amt(l_cnt+1) := p_run_ed_chrg_acctd_amt;
1472 x_group_tbl.run_ed_chrg_acctd_alloc(l_cnt+1) := p_run_ed_chrg_acctd_alloc;
1473 x_group_tbl.run_ed_frt_amt(l_cnt+1) := p_run_ed_frt_amt;
1474 x_group_tbl.run_ed_frt_alloc(l_cnt+1) := p_run_ed_frt_alloc;
1475 x_group_tbl.run_ed_frt_acctd_amt(l_cnt+1) := p_run_ed_frt_acctd_amt;
1476 x_group_tbl.run_ed_frt_acctd_alloc(l_cnt+1) := p_run_ed_frt_acctd_alloc;
1477 x_group_tbl.run_ed_tax_amt(l_cnt+1) := p_run_ed_tax_amt;
1478 x_group_tbl.run_ed_tax_alloc(l_cnt+1) := p_run_ed_tax_alloc;
1479 x_group_tbl.run_ed_tax_acctd_amt(l_cnt+1) := p_run_ed_tax_acctd_amt;
1480 x_group_tbl.run_ed_tax_acctd_alloc(l_cnt+1) := p_run_ed_tax_acctd_alloc;
1481 -- UNED
1482 x_group_tbl.run_uned_amt(l_cnt+1) := p_run_uned_amt;
1483 x_group_tbl.run_uned_alloc(l_cnt+1) := p_run_uned_alloc;
1484 x_group_tbl.run_uned_acctd_amt(l_cnt+1) := p_run_uned_acctd_amt;
1485 x_group_tbl.run_uned_acctd_alloc(l_cnt+1) := p_run_uned_acctd_alloc;
1486 x_group_tbl.run_uned_chrg_amt(l_cnt+1) := p_run_uned_chrg_amt;
1487 x_group_tbl.run_uned_chrg_alloc(l_cnt+1) := p_run_uned_chrg_alloc;
1488 x_group_tbl.run_uned_chrg_acctd_amt(l_cnt+1) := p_run_uned_chrg_acctd_amt;
1489 x_group_tbl.run_uned_chrg_acctd_alloc(l_cnt+1) := p_run_uned_chrg_acctd_alloc;
1490 x_group_tbl.run_uned_frt_amt(l_cnt+1) := p_run_uned_frt_amt;
1491 x_group_tbl.run_uned_frt_alloc(l_cnt+1) := p_run_uned_frt_alloc;
1492 x_group_tbl.run_uned_frt_acctd_amt(l_cnt+1) := p_run_uned_frt_acctd_amt;
1493 x_group_tbl.run_uned_frt_acctd_alloc(l_cnt+1) := p_run_uned_frt_acctd_alloc;
1494 x_group_tbl.run_uned_tax_amt(l_cnt+1) := p_run_uned_tax_amt;
1495 x_group_tbl.run_uned_tax_alloc(l_cnt+1) := p_run_uned_tax_alloc;
1496 x_group_tbl.run_uned_tax_acctd_amt(l_cnt+1) := p_run_uned_tax_acctd_amt;
1497 x_group_tbl.run_uned_tax_acctd_alloc(l_cnt+1) := p_run_uned_tax_acctd_alloc;
1498 END IF;
1499 END IF;
1500 IF PG_DEBUG = 'Y' THEN
1501 localdebug('arp_det_dist_pkg.store_group()-');
1502 END IF;
1503 END;
1504
1505
1506 PROCEDURE plsql_proration
1507 ( x_tab IN OUT NOCOPY pro_res_tbl_type,
1508 x_group_tbl IN OUT NOCOPY group_tbl_type,
1509 p_group_level IN VARCHAR2 DEFAULT 'NOGROUP',
1510 -- ADJ and APP
1511 x_run_amt IN OUT NOCOPY NUMBER,
1512 x_run_alloc IN OUT NOCOPY NUMBER,
1513 x_run_acctd_amt IN OUT NOCOPY NUMBER,
1514 x_run_acctd_alloc IN OUT NOCOPY NUMBER,
1515 x_run_chrg_amt IN OUT NOCOPY NUMBER,
1516 x_run_chrg_alloc IN OUT NOCOPY NUMBER,
1517 x_run_chrg_acctd_amt IN OUT NOCOPY NUMBER,
1518 x_run_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
1519 x_run_frt_amt IN OUT NOCOPY NUMBER,
1520 x_run_frt_alloc IN OUT NOCOPY NUMBER,
1521 x_run_frt_acctd_amt IN OUT NOCOPY NUMBER,
1522 x_run_frt_acctd_alloc IN OUT NOCOPY NUMBER,
1523 x_run_tax_amt IN OUT NOCOPY NUMBER,
1524 x_run_tax_alloc IN OUT NOCOPY NUMBER,
1525 x_run_tax_acctd_amt IN OUT NOCOPY NUMBER,
1526 x_run_tax_acctd_alloc IN OUT NOCOPY NUMBER,
1527 -- ED
1528 x_run_ed_amt IN OUT NOCOPY NUMBER,
1529 x_run_ed_alloc IN OUT NOCOPY NUMBER,
1530 x_run_ed_acctd_amt IN OUT NOCOPY NUMBER,
1531 x_run_ed_acctd_alloc IN OUT NOCOPY NUMBER,
1532 x_run_ed_chrg_amt IN OUT NOCOPY NUMBER,
1533 x_run_ed_chrg_alloc IN OUT NOCOPY NUMBER,
1534 x_run_ed_chrg_acctd_amt IN OUT NOCOPY NUMBER,
1535 x_run_ed_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
1536 x_run_ed_frt_amt IN OUT NOCOPY NUMBER,
1537 x_run_ed_frt_alloc IN OUT NOCOPY NUMBER,
1538 x_run_ed_frt_acctd_amt IN OUT NOCOPY NUMBER,
1539 x_run_ed_frt_acctd_alloc IN OUT NOCOPY NUMBER,
1540 x_run_ed_tax_amt IN OUT NOCOPY NUMBER,
1541 x_run_ed_tax_alloc IN OUT NOCOPY NUMBER,
1542 x_run_ed_tax_acctd_amt IN OUT NOCOPY NUMBER,
1543 x_run_ed_tax_acctd_alloc IN OUT NOCOPY NUMBER,
1544 -- UNED
1545 x_run_uned_amt IN OUT NOCOPY NUMBER,
1546 x_run_uned_alloc IN OUT NOCOPY NUMBER,
1547 x_run_uned_acctd_amt IN OUT NOCOPY NUMBER,
1548 x_run_uned_acctd_alloc IN OUT NOCOPY NUMBER,
1549 x_run_uned_chrg_amt IN OUT NOCOPY NUMBER,
1550 x_run_uned_chrg_alloc IN OUT NOCOPY NUMBER,
1551 x_run_uned_chrg_acctd_amt IN OUT NOCOPY NUMBER,
1552 x_run_uned_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
1553 x_run_uned_frt_amt IN OUT NOCOPY NUMBER,
1554 x_run_uned_frt_alloc IN OUT NOCOPY NUMBER,
1555 x_run_uned_frt_acctd_amt IN OUT NOCOPY NUMBER,
1556 x_run_uned_frt_acctd_alloc IN OUT NOCOPY NUMBER,
1557 x_run_uned_tax_amt IN OUT NOCOPY NUMBER,
1558 x_run_uned_tax_alloc IN OUT NOCOPY NUMBER,
1559 x_run_uned_tax_acctd_amt IN OUT NOCOPY NUMBER,
1560 x_run_uned_tax_acctd_alloc IN OUT NOCOPY NUMBER)
1561 IS
1562 l_group VARCHAR2(900);
1563 -- ADJ and APP
1564 l_alloc NUMBER := 0;
1565 l_acctd_alloc NUMBER := 0;
1566 l_chrg_alloc NUMBER := 0;
1567 l_chrg_acctd_alloc NUMBER := 0;
1568 l_frt_alloc NUMBER := 0;
1569 l_frt_acctd_alloc NUMBER := 0;
1570 l_tax_alloc NUMBER := 0;
1571 l_tax_acctd_alloc NUMBER := 0;
1572 -- ED
1573 l_ed_alloc NUMBER := 0;
1574 l_ed_acctd_alloc NUMBER := 0;
1575 l_ed_chrg_alloc NUMBER := 0;
1576 l_ed_chrg_acctd_alloc NUMBER := 0;
1577 l_ed_frt_alloc NUMBER := 0;
1578 l_ed_frt_acctd_alloc NUMBER := 0;
1579 l_ed_tax_alloc NUMBER := 0;
1580 l_ed_tax_acctd_alloc NUMBER := 0;
1581 -- UNED
1582 l_uned_alloc NUMBER := 0;
1583 l_uned_acctd_alloc NUMBER := 0;
1584 l_uned_chrg_alloc NUMBER := 0;
1585 l_uned_chrg_acctd_alloc NUMBER := 0;
1586 l_uned_frt_alloc NUMBER := 0;
1587 l_uned_frt_acctd_alloc NUMBER := 0;
1588 l_uned_tax_alloc NUMBER := 0;
1589 l_uned_tax_acctd_alloc NUMBER := 0;
1590
1591 l_exist BOOLEAN;
1592 tbl_pro_res_tbl_empty EXCEPTION;
1593 BEGIN
1594 IF PG_DEBUG = 'Y' THEN
1595 localdebug('arp_det_dist_pkg.plsql_proration()+');
1596 END IF;
1597 IF x_tab.ROWID_ID.COUNT = 0 THEN
1598 RAISE tbl_pro_res_tbl_empty;
1599 END IF;
1600
1601 IF x_group_tbl.GROUPE.COUNT <> 0 THEN
1602 l_group := x_group_tbl.GROUPE.LAST;
1603 ELSE
1604 l_group := 'NOGROUP';
1605 END IF;
1606
1607 FOR i IN x_tab.ROWID_ID.FIRST .. x_tab.ROWID_ID.LAST LOOP
1608 IF PG_DEBUG = 'Y' THEN
1609 localdebug('current indice i:'||i);
1610 END IF;
1611
1612 IF l_group <> x_tab.GROUPE(i) THEN
1613 -- put away the current group value
1614 store_group
1615 (p_groupe => l_group,
1616 -- ADJ and APP
1617 p_run_amt => x_run_amt,
1618 p_run_alloc => x_run_alloc,
1619 p_run_acctd_amt => x_run_acctd_amt,
1620 p_run_acctd_alloc => x_run_acctd_alloc,
1621 p_run_chrg_amt => x_run_chrg_amt,
1622 p_run_chrg_alloc => x_run_chrg_alloc,
1623 p_run_chrg_acctd_amt => x_run_chrg_acctd_amt,
1624 p_run_chrg_acctd_alloc => x_run_chrg_acctd_alloc,
1625 p_run_frt_amt => x_run_frt_amt,
1626 p_run_frt_alloc => x_run_frt_alloc,
1627 p_run_frt_acctd_amt => x_run_frt_acctd_amt,
1628 p_run_frt_acctd_alloc => x_run_frt_acctd_alloc,
1629 p_run_tax_amt => x_run_tax_amt,
1630 p_run_tax_alloc => x_run_tax_alloc,
1631 p_run_tax_acctd_amt => x_run_tax_acctd_amt,
1632 p_run_tax_acctd_alloc => x_run_tax_acctd_alloc,
1633 -- ED
1634 p_run_ed_amt => x_run_ed_amt,
1635 p_run_ed_alloc => x_run_ed_alloc,
1636 p_run_ed_acctd_amt => x_run_ed_acctd_amt,
1637 p_run_ed_acctd_alloc => x_run_ed_acctd_alloc,
1638 p_run_ed_chrg_amt => x_run_ed_chrg_amt,
1639 p_run_ed_chrg_alloc => x_run_ed_chrg_alloc,
1640 p_run_ed_chrg_acctd_amt => x_run_ed_chrg_acctd_amt,
1641 p_run_ed_chrg_acctd_alloc => x_run_ed_chrg_acctd_alloc,
1642 p_run_ed_frt_amt => x_run_ed_frt_amt,
1643 p_run_ed_frt_alloc => x_run_ed_frt_alloc,
1644 p_run_ed_frt_acctd_amt => x_run_ed_frt_acctd_amt,
1645 p_run_ed_frt_acctd_alloc => x_run_ed_frt_acctd_alloc,
1646 p_run_ed_tax_amt => x_run_ed_tax_amt,
1647 p_run_ed_tax_alloc => x_run_ed_tax_alloc,
1648 p_run_ed_tax_acctd_amt => x_run_ed_tax_acctd_amt,
1649 p_run_ed_tax_acctd_alloc => x_run_ed_tax_acctd_alloc,
1650 -- UNED
1651 p_run_uned_amt => x_run_uned_amt,
1652 p_run_uned_alloc => x_run_uned_alloc,
1653 p_run_uned_acctd_amt => x_run_uned_acctd_amt,
1654 p_run_uned_acctd_alloc => x_run_uned_acctd_alloc,
1655 p_run_uned_chrg_amt => x_run_uned_chrg_amt,
1656 p_run_uned_chrg_alloc => x_run_uned_chrg_alloc,
1657 p_run_uned_chrg_acctd_amt => x_run_uned_chrg_acctd_amt,
1658 p_run_uned_chrg_acctd_alloc => x_run_uned_chrg_acctd_alloc,
1659 p_run_uned_frt_amt => x_run_uned_frt_amt,
1660 p_run_uned_frt_alloc => x_run_uned_frt_alloc,
1661 p_run_uned_frt_acctd_amt => x_run_uned_frt_acctd_amt,
1662 p_run_uned_frt_acctd_alloc => x_run_uned_frt_acctd_alloc,
1663 p_run_uned_tax_amt => x_run_uned_tax_amt,
1664 p_run_uned_tax_alloc => x_run_uned_tax_alloc,
1665 p_run_uned_tax_acctd_amt => x_run_uned_tax_acctd_amt,
1666 p_run_uned_tax_acctd_alloc => x_run_uned_tax_acctd_alloc,
1667 --
1668 x_group_tbl => x_group_tbl);
1669 -- Check if the new group already exists in case DB ordering problem
1670 -- to initiate the correct running amount
1671 -- and initiate the running amount
1672 return_existing_group
1673 (p_groupe => x_tab.GROUPE(i),
1674 x_group_tbl => x_group_tbl,
1675 p_group_level => p_group_level,
1676 x_exist => l_exist,
1677 -- ADJ and APP
1678 x_run_amt => x_run_amt,
1679 x_run_alloc => x_run_alloc,
1680 x_run_acctd_amt => x_run_acctd_amt,
1681 x_run_acctd_alloc => x_run_acctd_alloc,
1682 x_run_chrg_amt => x_run_chrg_amt,
1683 x_run_chrg_alloc => x_run_chrg_alloc,
1684 x_run_chrg_acctd_amt => x_run_chrg_acctd_amt,
1685 x_run_chrg_acctd_alloc => x_run_chrg_acctd_alloc,
1686 x_run_frt_amt => x_run_frt_amt,
1687 x_run_frt_alloc => x_run_frt_alloc,
1688 x_run_frt_acctd_amt => x_run_frt_acctd_amt,
1689 x_run_frt_acctd_alloc => x_run_frt_acctd_alloc,
1690 x_run_tax_amt => x_run_tax_amt,
1691 x_run_tax_alloc => x_run_tax_alloc,
1692 x_run_tax_acctd_amt => x_run_tax_acctd_amt,
1693 x_run_tax_acctd_alloc => x_run_tax_acctd_alloc,
1694 -- ED
1695 x_run_ed_amt => x_run_ed_amt,
1696 x_run_ed_alloc => x_run_ed_alloc,
1697 x_run_ed_acctd_amt => x_run_ed_acctd_amt,
1698 x_run_ed_acctd_alloc => x_run_ed_acctd_alloc,
1699 x_run_ed_chrg_amt => x_run_ed_chrg_amt,
1700 x_run_ed_chrg_alloc => x_run_ed_chrg_alloc,
1701 x_run_ed_chrg_acctd_amt => x_run_ed_chrg_acctd_amt,
1702 x_run_ed_chrg_acctd_alloc => x_run_ed_chrg_acctd_alloc,
1703 x_run_ed_frt_amt => x_run_ed_frt_amt,
1704 x_run_ed_frt_alloc => x_run_ed_frt_alloc,
1705 x_run_ed_frt_acctd_amt => x_run_ed_frt_acctd_amt,
1706 x_run_ed_frt_acctd_alloc => x_run_ed_frt_acctd_alloc,
1707 x_run_ed_tax_amt => x_run_ed_tax_amt,
1708 x_run_ed_tax_alloc => x_run_ed_tax_alloc,
1709 x_run_ed_tax_acctd_amt => x_run_ed_tax_acctd_amt,
1710 x_run_ed_tax_acctd_alloc => x_run_ed_tax_acctd_alloc,
1711 -- UNED
1712 x_run_uned_amt => x_run_uned_amt,
1713 x_run_uned_alloc => x_run_uned_alloc,
1714 x_run_uned_acctd_amt => x_run_uned_acctd_amt,
1715 x_run_uned_acctd_alloc => x_run_uned_acctd_alloc,
1716 x_run_uned_chrg_amt => x_run_uned_chrg_amt,
1717 x_run_uned_chrg_alloc => x_run_uned_chrg_alloc,
1718 x_run_uned_chrg_acctd_amt => x_run_uned_chrg_acctd_amt,
1719 x_run_uned_chrg_acctd_alloc => x_run_uned_chrg_acctd_alloc,
1720 x_run_uned_frt_amt => x_run_uned_frt_amt,
1721 x_run_uned_frt_alloc => x_run_uned_frt_alloc,
1722 x_run_uned_frt_acctd_amt => x_run_uned_frt_acctd_amt,
1723 x_run_uned_frt_acctd_alloc => x_run_uned_frt_acctd_alloc,
1724 x_run_uned_tax_amt => x_run_uned_tax_amt,
1725 x_run_uned_tax_alloc => x_run_uned_tax_alloc,
1726 x_run_uned_tax_acctd_amt => x_run_uned_tax_acctd_amt,
1727 x_run_uned_tax_acctd_alloc => x_run_uned_tax_acctd_alloc);
1728 -- the current group is the new group
1729 l_group := x_tab.GROUPE(i);
1730 END IF;
1731
1732 /********************************
1733 -- ADJ AND APP
1734 ********************************/
1735 /*-------------------------------------------------+
1736 | Running Rev amount in trx currency |
1737 +-------------------------------------------------*/
1738 IF PG_DEBUG = 'Y' THEN
1739 localdebug(' x_tab.line_type(i):'||x_tab.line_type(i));
1740 END IF;
1741
1742 IF x_tab.base_pro_amt(i) <> 0 AND x_tab.buc_alloc_amt(i) <> 0 THEN
1743 IF PG_DEBUG = 'Y' THEN
1744 localdebug(' x_run_amt:'||x_run_amt);
1745 localdebug(' x_tab.elmt_pro_amt(i):'||x_tab.elmt_pro_amt(i));
1746 localdebug(' x_tab.buc_alloc_amt(i):'||x_tab.buc_alloc_amt(i));
1747 localdebug(' x_tab.base_pro_amt(i):'||x_tab.base_pro_amt(i));
1748 END IF;
1749 x_run_amt := x_run_amt + x_tab.elmt_pro_amt(i);
1750 l_alloc := CurrRound( x_run_amt
1751 / x_tab.base_pro_amt(i)
1752 * x_tab.buc_alloc_amt(i),
1753 x_tab.to_currency(i))
1754 - x_run_alloc;
1755 -- MAJ proration_res_tbl.res_pro := l_alloc;
1756 x_tab.tl_alloc_amt(i) := l_alloc;
1757 x_run_alloc := x_run_alloc + l_alloc;
1758 IF PG_DEBUG = 'Y' THEN
1759 localdebug(' x_tab.tl_alloc_amt(i):'||x_tab.tl_alloc_amt(i));
1760 localdebug(' x_run_alloc:'||x_run_alloc);
1761 localdebug(' l_alloc:'||l_alloc);
1762 END IF;
1763 ELSIF ((p_group_level = 'D' AND x_tab.elmt_pro_amt(i) = 0 AND x_tab.base_pro_amt(i) = 0 AND x_tab.buc_alloc_amt(i) <> 0)
1764 OR (x_tab.base_pro_amt(i) = 0 AND (g_line_adj <> 0 OR g_line_applied <> 0) AND (x_tab.line_type(i) = 'LINE'))) THEN -- Bug14415571
1765 IF PG_DEBUG = 'Y' THEN
1766 localdebug(' x_run_amt:'||x_run_amt);
1767 localdebug(' x_tab.elmt_pro_amt(i):'||x_tab.elmt_pro_amt(i));
1768 localdebug(' x_tab.buc_alloc_amt(i):'||x_tab.buc_alloc_amt(i));
1769 localdebug(' x_tab.base_pro_amt(i):'||x_tab.base_pro_amt(i));
1770 END IF;
1771 IF x_tab.buc_alloc_amt(i) <> 0 THEN
1772 l_alloc := x_tab.buc_alloc_amt(i) - x_run_alloc;
1773 x_tab.tl_alloc_amt(i) := l_alloc;
1774 x_run_alloc := x_run_alloc + l_alloc;
1775 ELSE x_tab.tl_alloc_amt(i) := 0;
1776 END IF;
1777 IF PG_DEBUG = 'Y' THEN
1778 localdebug(' x_tab.tl_alloc_amt(i):'||x_tab.tl_alloc_amt(i));
1779 localdebug(' x_run_alloc:'||x_run_alloc);
1780 localdebug(' l_alloc:'||l_alloc);
1781 END IF;
1782 ELSE
1783 x_tab.tl_alloc_amt(i) := 0;
1784 END IF;
1785
1786
1787 /*-------------------------------------------------+
1788 | Running Rev amount in base currency |
1789 +-------------------------------------------------*/
1790
1791 IF x_tab.base_pro_acctd_amt(i) <> 0 AND x_tab.buc_alloc_acctd_amt(i) <> 0 THEN
1792 IF PG_DEBUG = 'Y' THEN
1793 localdebug(' x_run_acctd_amt:'||x_run_acctd_amt);
1794 localdebug(' x_tab.elmt_pro_acctd_amt(i):'||x_tab.elmt_pro_acctd_amt(i));
1795 localdebug(' x_tab.buc_alloc_acctd_amt(i):'||x_tab.buc_alloc_acctd_amt(i));
1796 localdebug(' x_tab.base_pro_acctd_amt(i):'||x_tab.base_pro_acctd_amt(i));
1797 END IF;
1798 x_run_acctd_amt := x_run_acctd_amt + x_tab.elmt_pro_acctd_amt(i);
1799 l_acctd_alloc := CurrRound( x_run_acctd_amt
1800 / x_tab.base_pro_acctd_amt(i)
1801 * x_tab.buc_alloc_acctd_amt(i),
1802 x_tab.base_currency(i))
1803 - x_run_acctd_alloc;
1804 -- MAJ proration_res_tbl.res_pro := l_alloc;
1805 x_tab.tl_alloc_acctd_amt(i) := l_acctd_alloc;
1806 x_run_acctd_alloc := x_run_acctd_alloc + l_acctd_alloc;
1807 IF PG_DEBUG = 'Y' THEN
1808 localdebug(' x_tab.tl_alloc_acctd_amt(i):'||x_tab.tl_alloc_acctd_amt(i));
1809 localdebug(' x_run_acctd_alloc:'||x_run_acctd_alloc);
1810 localdebug(' l_acctd_alloc:'||l_acctd_alloc);
1811 END IF;
1812 ELSIF ((p_group_level = 'D' AND x_tab.elmt_pro_acctd_amt(i) = 0 AND x_tab.base_pro_acctd_amt(i) = 0 AND x_tab.buc_alloc_acctd_amt(i) <> 0)
1813 OR (x_tab.base_pro_acctd_amt(i) = 0 AND (g_acctd_line_adj <> 0 OR g_acctd_line_applied <> 0) AND (x_tab.line_type(i) = 'LINE'))) THEN -- Bug14415571
1814 IF PG_DEBUG = 'Y' THEN
1815 localdebug(' x_run_acctd_amt:'||x_run_acctd_amt);
1816 localdebug(' x_tab.elmt_pro_acctd_amt(i):'||x_tab.elmt_pro_acctd_amt(i));
1817 localdebug(' x_tab.buc_alloc_acctd_amt(i):'||x_tab.buc_alloc_acctd_amt(i));
1818 localdebug(' x_tab.base_pro_acctd_amt(i):'||x_tab.base_pro_acctd_amt(i));
1819 END IF;
1820 IF x_tab.buc_alloc_acctd_amt(i) <> 0 THEN
1821 l_acctd_alloc := x_tab.buc_alloc_acctd_amt(i) - x_run_acctd_alloc;
1822 x_tab.tl_alloc_acctd_amt(i) := l_acctd_alloc;
1823 x_run_acctd_alloc := x_run_acctd_alloc + l_acctd_alloc;
1824 ELSE x_tab.tl_alloc_acctd_amt(i) := 0;
1825 END IF;
1826 IF PG_DEBUG = 'Y' THEN
1827 localdebug(' x_tab.tl_alloc_acctd_amt(i):'||x_tab.tl_alloc_acctd_amt(i));
1828 localdebug(' x_run_acctd_alloc:'||x_run_acctd_alloc);
1829 localdebug(' l_acctd_alloc:'||l_acctd_alloc);
1830 END IF;
1831 ELSE
1832 x_tab.tl_alloc_acctd_amt(i) := 0;
1833 END IF;
1834
1835 /*-------------------------------------------------+
1836 | Running tax amount in trx currency |
1837 +-------------------------------------------------*/
1838
1839 IF x_tab.BASE_tax_PRO_AMT(i) <> 0 AND x_tab.buc_tax_alloc_amt(i) <> 0 THEN
1840 IF PG_DEBUG = 'Y' THEN
1841 localdebug(' x_run_tax_amt:'||x_run_tax_amt);
1842 localdebug(' x_tab.ELMT_tax_PRO_AMT(i):'||x_tab.ELMT_tax_PRO_AMT(i));
1843 localdebug(' x_tab.buc_tax_alloc_amt(i):'||x_tab.buc_tax_alloc_amt(i));
1844 localdebug(' x_tab.BASE_TAX_PRO_AMT(i):'||x_tab.BASE_tax_PRO_AMT(i));
1845 END IF;
1846 x_run_tax_amt := x_run_tax_amt + x_tab.ELMT_tax_PRO_AMT(i);
1847 l_tax_alloc := CurrRound( x_run_tax_amt
1848 / x_tab.BASE_tax_PRO_AMT(i)
1849 * x_tab.buc_tax_alloc_amt(i),
1850 x_tab.to_currency(i))
1851 - x_run_tax_alloc;
1852 x_tab.tl_tax_alloc_amt(i) := l_tax_alloc;
1853 x_run_tax_alloc := x_run_tax_alloc + l_tax_alloc;
1854 IF PG_DEBUG = 'Y' THEN
1855 localdebug(' x_tab.tl_tax_alloc_amt(i):'||x_tab.tl_tax_alloc_amt(i));
1856 localdebug(' x_run_tax_alloc:'||x_run_tax_alloc);
1857 localdebug(' l_tax_alloc:'||l_tax_alloc);
1858 END IF;
1859 ELSIF ((p_group_level = 'D' AND x_tab.ELMT_tax_PRO_AMT(i) = 0 AND x_tab.BASE_tax_PRO_AMT(i) = 0 AND x_tab.buc_tax_alloc_amt(i) <> 0)
1860 OR (x_tab.BASE_tax_PRO_AMT(i) = 0 AND (g_tax_adj <> 0 OR g_tax_applied <> 0) AND (x_tab.line_type(i) = 'TAX'))) THEN -- Bug14415571
1861 IF PG_DEBUG = 'Y' THEN
1862 localdebug(' x_run_tax_amt:'||x_run_tax_amt);
1863 localdebug(' x_tab.ELMT_tax_PRO_AMT(i):'||x_tab.ELMT_tax_PRO_AMT(i));
1864 localdebug(' x_tab.buc_tax_alloc_amt(i):'||x_tab.buc_tax_alloc_amt(i));
1865 localdebug(' x_tab.BASE_TAX_PRO_AMT(i):'||x_tab.BASE_tax_PRO_AMT(i));
1866 END IF;
1867 IF x_tab.buc_tax_alloc_amt(i) <> 0 THEN
1868 l_tax_alloc := x_tab.buc_tax_alloc_amt(i) - x_run_tax_amt;
1869 x_tab.tl_tax_alloc_amt(i) := l_tax_alloc;
1870 x_run_tax_amt := x_run_tax_amt + l_tax_alloc;
1871 ELSE x_tab.tl_tax_alloc_amt(i) := 0;
1872 END IF;
1873 IF PG_DEBUG = 'Y' THEN
1874 localdebug(' x_tab.tl_tax_alloc_amt(i):'||x_tab.tl_tax_alloc_amt(i));
1875 localdebug(' x_run_tax_alloc:'||x_run_tax_alloc);
1876 localdebug(' l_tax_alloc:'||l_tax_alloc);
1877 END IF;
1878 ELSE
1879 x_tab.tl_tax_alloc_amt(i) := 0;
1880 END IF;
1881
1882
1883 /*-------------------------------------------------+
1884 | Running tax acctd amount in trx currency |
1885 +-------------------------------------------------*/
1886 IF x_tab.BASE_tax_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_tax_alloc_acctd_amt(i) <> 0 THEN
1887 IF PG_DEBUG = 'Y' THEN
1888 localdebug(' x_run_tax_amt:'||x_run_tax_amt);
1889 localdebug(' x_tab.ELMT_tax_PRO_acctd_AMT(i):'||x_tab.ELMT_tax_PRO_acctd_AMT(i));
1890 localdebug(' x_tab.buc_tax_alloc_acctd_amt(i):'||x_tab.buc_tax_alloc_acctd_amt(i));
1891 localdebug(' x_tab.BASE_TAX_PRO_acctd_AMT(i):'||x_tab.BASE_tax_PRO_acctd_AMT(i));
1892 END IF;
1893 x_run_tax_acctd_amt := x_run_tax_acctd_amt + x_tab.ELMT_tax_PRO_ACCTD_AMT(i);
1894 l_tax_acctd_alloc := CurrRound( x_run_tax_acctd_amt
1895 / x_tab.BASE_tax_PRO_ACCTD_AMT(i)
1896 * x_tab.buc_tax_alloc_acctd_amt(i),
1897 x_tab.base_currency(i))
1898 - x_run_tax_acctd_alloc;
1899 x_tab.tl_tax_alloc_acctd_amt(i) := l_tax_acctd_alloc;
1900 x_run_tax_acctd_alloc := x_run_tax_acctd_alloc + l_tax_acctd_alloc;
1901 IF PG_DEBUG = 'Y' THEN
1902 localdebug(' x_tab.tl_tax_alloc_acctd_amt(i):'||x_tab.tl_tax_alloc_acctd_amt(i));
1903 localdebug(' x_run_tax_acctd_alloc:'||x_run_tax_acctd_alloc);
1904 localdebug(' l_tax_acctd_alloc:'||l_tax_acctd_alloc);
1905 END IF;
1906 ELSIF ((p_group_level = 'D' AND x_tab.ELMT_tax_PRO_ACCTD_AMT(i) = 0 AND x_tab.BASE_tax_PRO_ACCTD_AMT(i) = 0 AND x_tab.buc_tax_alloc_acctd_amt(i) <> 0)
1907 OR (x_tab.BASE_tax_PRO_ACCTD_AMT(i) = 0 AND (g_acctd_tax_adj <> 0 OR g_acctd_tax_applied <> 0) AND (x_tab.line_type(i) = 'TAX'))) THEN -- Bug14415571
1908 IF PG_DEBUG = 'Y' THEN
1909 localdebug(' x_run_tax_amt:'||x_run_tax_amt);
1910 localdebug(' x_tab.ELMT_tax_PRO_acctd_AMT(i):'||x_tab.ELMT_tax_PRO_acctd_AMT(i));
1911 localdebug(' x_tab.buc_tax_alloc_acctd_amt(i):'||x_tab.buc_tax_alloc_acctd_amt(i));
1912 localdebug(' x_tab.BASE_TAX_PRO_acctd_AMT(i):'||x_tab.BASE_tax_PRO_acctd_AMT(i));
1913 END IF;
1914 IF x_tab.buc_tax_alloc_acctd_amt(i) <> 0 THEN
1915 l_tax_acctd_alloc := x_tab.buc_tax_alloc_acctd_amt(i) - x_run_tax_acctd_amt;
1916 x_tab.tl_tax_alloc_acctd_amt(i) := l_tax_acctd_alloc;
1917 x_run_tax_acctd_amt := x_run_tax_acctd_amt + l_tax_acctd_alloc;
1918 ELSE x_tab.tl_tax_alloc_acctd_amt(i) := 0;
1919 END IF;
1920 IF PG_DEBUG = 'Y' THEN
1921 localdebug(' x_tab.tl_tax_alloc_acctd_amt(i):'||x_tab.tl_tax_alloc_acctd_amt(i));
1922 localdebug(' x_run_tax_acctd_alloc:'||x_run_tax_acctd_alloc);
1923 localdebug(' l_tax_acctd_alloc:'||l_tax_acctd_alloc);
1924 END IF;
1925 ELSE
1926 x_tab.tl_tax_alloc_acctd_amt(i) := 0;
1927 END IF;
1928
1929
1930 /*-------------------------------------------------+
1931 | Running frt amount in trx currency |
1932 +-------------------------------------------------*/
1933
1934 IF x_tab.BASE_FRT_PRO_AMT(i) <> 0 AND x_tab.buc_frt_alloc_amt(i) <> 0 THEN
1935 IF PG_DEBUG = 'Y' THEN
1936 localdebug(' x_run_frt_amt:'||x_run_frt_amt);
1937 localdebug(' x_tab.ELMT_frt_PRO_AMT(i):'||x_tab.ELMT_frt_PRO_AMT(i));
1938 localdebug(' x_tab.buc_frt_alloc_amt(i):'||x_tab.buc_frt_alloc_amt(i));
1939 localdebug(' x_tab.BASE_FRT_PRO_AMT(i):'||x_tab.BASE_FRT_PRO_AMT(i));
1940 END IF;
1941 x_run_frt_amt := x_run_frt_amt + x_tab.ELMT_FRT_PRO_AMT(i);
1942 l_frt_alloc := CurrRound( x_run_frt_amt
1943 / x_tab.BASE_FRT_PRO_AMT(i)
1944 * x_tab.buc_frt_alloc_amt(i),
1945 x_tab.to_currency(i))
1946 - x_run_frt_alloc;
1947 x_tab.tl_frt_alloc_amt(i) := l_frt_alloc;
1948 x_run_frt_alloc := x_run_frt_alloc + l_frt_alloc;
1949 IF PG_DEBUG = 'Y' THEN
1950 localdebug(' x_tab.tl_frt_alloc_amt(i):'||x_tab.tl_frt_alloc_amt(i));
1951 localdebug(' x_run_frt_alloc:'||x_run_frt_alloc);
1952 localdebug(' l_frt_alloc:'||l_frt_alloc);
1953 END IF;
1954 ELSIF ((p_group_level = 'D' AND x_tab.ELMT_FRT_PRO_AMT(i) = 0 AND x_tab.BASE_FRT_PRO_AMT(i) = 0 AND x_tab.buc_frt_alloc_amt(i) <> 0)
1955 OR (x_tab.BASE_FRT_PRO_AMT(i) = 0 AND (g_frt_adj <> 0 OR g_frt_applied <> 0) AND (x_tab.line_type(i) = 'FREIGHT'))) THEN -- Bug14415571
1956 IF PG_DEBUG = 'Y' THEN
1957 localdebug(' x_run_frt_amt:'||x_run_frt_amt);
1958 localdebug(' x_tab.ELMT_frt_PRO_AMT(i):'||x_tab.ELMT_frt_PRO_AMT(i));
1959 localdebug(' x_tab.buc_frt_alloc_amt(i):'||x_tab.buc_frt_alloc_amt(i));
1960 localdebug(' x_tab.BASE_FRT_PRO_AMT(i):'||x_tab.BASE_FRT_PRO_AMT(i));
1961 END IF;
1962 IF x_tab.buc_frt_alloc_amt(i) <> 0 THEN
1963 l_frt_alloc := x_tab.buc_frt_alloc_amt(i) - x_run_frt_alloc;
1964 x_tab.tl_frt_alloc_amt(i) := l_frt_alloc;
1965 x_run_frt_alloc := x_run_frt_alloc + l_frt_alloc;
1966 ELSE x_tab.tl_frt_alloc_amt(i) := 0;
1967 END IF;
1968 IF PG_DEBUG = 'Y' THEN
1969 localdebug(' x_tab.tl_frt_alloc_amt(i):'||x_tab.tl_frt_alloc_amt(i));
1970 localdebug(' x_run_frt_alloc:'||x_run_frt_alloc);
1971 localdebug(' l_frt_alloc:'||l_frt_alloc);
1972 END IF;
1973 ELSE
1974 x_tab.tl_frt_alloc_amt(i) := 0;
1975 END IF;
1976
1977
1978 /*-------------------------------------------------+
1979 | Running frt acctd amount in trx currency |
1980 +-------------------------------------------------*/
1981 IF x_tab.BASE_FRT_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_frt_alloc_acctd_amt(i) <> 0 THEN
1982 IF PG_DEBUG = 'Y' THEN
1983 localdebug(' x_run_frt_acctd_amt:'||x_run_frt_acctd_amt);
1984 localdebug(' x_tab.ELMT_FRT_PRO_ACCTD_AMT(i):'||x_tab.ELMT_FRT_PRO_ACCTD_AMT(i));
1985 localdebug(' x_tab.buc_frt_alloc_acctd_amt(i):'||x_tab.buc_frt_alloc_acctd_amt(i));
1986 localdebug(' x_tab.BASE_FRT_PRO_ACCTD_AMT(i):'||x_tab.BASE_FRT_PRO_ACCTD_AMT(i));
1987 END IF;
1988 x_run_frt_acctd_amt := x_run_frt_acctd_amt + x_tab.ELMT_FRT_PRO_ACCTD_AMT(i);
1989 l_frt_acctd_alloc := CurrRound( x_run_frt_acctd_amt
1990 / x_tab.BASE_FRT_PRO_ACCTD_AMT(i)
1991 * x_tab.buc_frt_alloc_acctd_amt(i),
1992 x_tab.base_currency(i))
1993 - x_run_frt_acctd_alloc;
1994 x_tab.tl_frt_alloc_acctd_amt(i) := l_frt_acctd_alloc;
1995 x_run_frt_acctd_alloc := x_run_frt_acctd_alloc + l_frt_acctd_alloc;
1996 IF PG_DEBUG = 'Y' THEN
1997 localdebug(' x_tab.tl_frt_alloc_acctd_amt(i):'||x_tab.tl_frt_alloc_acctd_amt(i));
1998 localdebug(' x_run_frt_acctd_alloc:'||x_run_frt_acctd_alloc);
1999 localdebug(' l_frt_acctd_alloc:'||l_frt_acctd_alloc);
2000 END IF;
2001 ELSIF ((p_group_level = 'D' AND x_tab.ELMT_FRT_PRO_ACCTD_AMT(i) = 0 AND x_tab.BASE_FRT_PRO_ACCTD_AMT(i) = 0 AND x_tab.buc_frt_alloc_acctd_amt(i) <> 0)
2002 OR (x_tab.BASE_FRT_PRO_ACCTD_AMT(i) = 0 AND (g_acctd_frt_adj <> 0 OR g_acctd_frt_applied <> 0) AND (x_tab.line_type(i) = 'FREIGHT'))) THEN -- Bug14415571
2003 IF PG_DEBUG = 'Y' THEN
2004 localdebug(' x_run_frt_acctd_amt:'||x_run_frt_acctd_amt);
2005 localdebug(' x_tab.ELMT_FRT_PRO_ACCTD_AMT(i):'||x_tab.ELMT_FRT_PRO_ACCTD_AMT(i));
2006 localdebug(' x_tab.buc_frt_alloc_acctd_amt(i):'||x_tab.buc_frt_alloc_acctd_amt(i));
2007 localdebug(' x_tab.BASE_FRT_PRO_ACCTD_AMT(i):'||x_tab.BASE_FRT_PRO_ACCTD_AMT(i));
2008 END IF;
2009 IF x_tab.buc_frt_alloc_acctd_amt(i) <> 0 THEN
2010 l_frt_acctd_alloc := x_tab.buc_frt_alloc_acctd_amt(i) - x_run_frt_acctd_amt;
2011 x_tab.tl_frt_alloc_acctd_amt(i) := l_frt_acctd_alloc;
2012 x_run_frt_acctd_amt := x_run_frt_acctd_amt + l_frt_acctd_alloc;
2013 ELSE x_tab.tl_frt_alloc_acctd_amt(i) := 0;
2014 END IF;
2015 IF PG_DEBUG = 'Y' THEN
2016 localdebug(' x_tab.tl_frt_alloc_acctd_amt(i):'||x_tab.tl_frt_alloc_acctd_amt(i));
2017 localdebug(' x_run_frt_acctd_alloc:'||x_run_frt_acctd_alloc);
2018 localdebug(' l_frt_acctd_alloc:'||l_frt_acctd_alloc);
2019 END IF;
2020 ELSE
2021 x_tab.tl_frt_alloc_acctd_amt(i) := 0;
2022 END IF;
2023
2024 /*-------------------------------------------------+
2025 | Running chrg amount in trx currency |
2026 +-------------------------------------------------*/
2027
2028 IF x_tab.BASE_CHRG_PRO_AMT(i) <> 0 AND x_tab.buc_chrg_alloc_amt(i) <> 0 THEN
2029 IF PG_DEBUG = 'Y' THEN
2030 localdebug(' x_run_chrg_amt:'||x_run_chrg_amt);
2031 localdebug(' x_tab.ELMT_CHRG_PRO_AMT(i):'||x_tab.ELMT_CHRG_PRO_AMT(i));
2032 localdebug(' x_tab.buc_chrg_alloc_amt(i):'||x_tab.buc_chrg_alloc_amt(i));
2033 localdebug(' x_tab.BASE_CHRG_PRO_AMT(i):'||x_tab.BASE_CHRG_PRO_AMT(i));
2034 END IF;
2035 x_run_chrg_amt := x_run_chrg_amt + x_tab.ELMT_CHRG_PRO_AMT(i);
2036 l_chrg_alloc := CurrRound( x_run_chrg_amt
2037 / x_tab.BASE_CHRG_PRO_AMT(i)
2038 * x_tab.buc_chrg_alloc_amt(i),
2039 x_tab.to_currency(i))
2040 - x_run_chrg_alloc;
2041 x_tab.tl_chrg_alloc_amt(i) := l_chrg_alloc;
2042 x_run_chrg_alloc := x_run_chrg_alloc + l_chrg_alloc;
2043 IF PG_DEBUG = 'Y' THEN
2044 localdebug(' x_tab.tl_chrg_alloc_amt(i):'||x_tab.tl_chrg_alloc_amt(i));
2045 localdebug(' x_run_chrg_alloc:'||x_run_chrg_alloc);
2046 localdebug(' l_chrg_alloc:'||l_chrg_alloc);
2047 END IF;
2048 ELSIF ((p_group_level = 'D' AND x_tab.ELMT_CHRG_PRO_AMT(i) = 0 AND x_tab.BASE_CHRG_PRO_AMT(i) = 0 AND x_tab.buc_chrg_alloc_amt(i) <> 0)
2049 OR (x_tab.BASE_CHRG_PRO_AMT(i) = 0 AND (g_chrg_adj <> 0 OR g_chrg_applied <> 0) AND (x_tab.line_type(i) = 'CHARGES'))) THEN -- Bug14415571
2050 IF PG_DEBUG = 'Y' THEN
2051 localdebug(' x_run_chrg_amt:'||x_run_chrg_amt);
2052 localdebug(' x_tab.ELMT_CHRG_PRO_AMT(i):'||x_tab.ELMT_CHRG_PRO_AMT(i));
2053 localdebug(' x_tab.buc_chrg_alloc_amt(i):'||x_tab.buc_chrg_alloc_amt(i));
2054 localdebug(' x_tab.BASE_CHRG_PRO_AMT(i):'||x_tab.BASE_CHRG_PRO_AMT(i));
2055 END IF;
2056 IF x_tab.buc_chrg_alloc_amt(i) <> 0 THEN
2057 l_chrg_alloc := x_tab.buc_chrg_alloc_amt(i) - x_run_chrg_amt;
2058 x_tab.tl_chrg_alloc_amt(i) := l_chrg_alloc;
2059 x_run_chrg_amt := x_run_chrg_amt + l_chrg_alloc;
2060 ELSE x_tab.tl_chrg_alloc_amt(i) := 0;
2061 END IF;
2062 IF PG_DEBUG = 'Y' THEN
2063 localdebug(' x_tab.tl_chrg_alloc_amt(i):'||x_tab.tl_chrg_alloc_amt(i));
2064 localdebug(' x_run_chrg_alloc:'||x_run_chrg_alloc);
2065 localdebug(' l_chrg_alloc:'||l_chrg_alloc);
2066 END IF;
2067 ELSE
2068 x_tab.tl_chrg_alloc_amt(i) := 0;
2069 END IF;
2070
2071
2072 /*-------------------------------------------------+
2073 | Running chrg acctd amount in trx currency |
2074 +-------------------------------------------------*/
2075 IF x_tab.BASE_CHRG_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_chrg_alloc_acctd_amt(i) <> 0 THEN
2076 IF PG_DEBUG = 'Y' THEN
2077 localdebug(' x_run_chrg_acctd_amt:'||x_run_chrg_acctd_amt);
2078 localdebug(' x_tab.ELMT_CHRG_PRO_ACCTD_AMT(i):'||x_tab.ELMT_CHRG_PRO_ACCTD_AMT(i));
2079 localdebug(' x_tab.buc_chrg_alloc_acctd_amt(i):'||x_tab.buc_chrg_alloc_acctd_amt(i));
2080 localdebug(' x_tab.BASE_CHRG_PRO_ACCTD_AMT(i):'||x_tab.BASE_CHRG_PRO_ACCTD_AMT(i));
2081 END IF;
2082 x_run_chrg_acctd_amt := x_run_chrg_acctd_amt + x_tab.ELMT_CHRG_PRO_ACCTD_AMT(i);
2083 l_chrg_acctd_alloc := CurrRound( x_run_chrg_acctd_amt
2084 / x_tab.BASE_CHRG_PRO_ACCTD_AMT(i)
2085 * x_tab.buc_chrg_alloc_acctd_amt(i),
2086 x_tab.base_currency(i))
2087 - x_run_chrg_acctd_alloc;
2088 x_tab.tl_chrg_alloc_acctd_amt(i) := l_chrg_acctd_alloc;
2089 x_run_chrg_acctd_alloc := x_run_chrg_acctd_alloc + l_chrg_acctd_alloc;
2090 IF PG_DEBUG = 'Y' THEN
2091 localdebug(' x_tab.tl_chrg_alloc_acctd_amt(i):'||x_tab.tl_chrg_alloc_acctd_amt(i));
2092 localdebug(' x_run_chrg_acctd_amt:'||x_run_chrg_acctd_amt);
2093 localdebug(' l_chrg_acctd_alloc:'||l_chrg_acctd_alloc);
2094 END IF;
2095 ELSIF ((p_group_level = 'D' AND x_tab.ELMT_CHRG_PRO_ACCTD_AMT(i) = 0 AND x_tab.BASE_CHRG_PRO_ACCTD_AMT(i) = 0 AND x_tab.buc_chrg_alloc_acctd_amt(i) <> 0)
2096 OR (x_tab.BASE_CHRG_PRO_ACCTD_AMT(i) = 0 AND (g_acctd_chrg_adj <> 0 OR g_acctd_chrg_applied <> 0) AND (x_tab.line_type(i) = 'CHARGES'))) THEN -- Bug14415571
2097 IF PG_DEBUG = 'Y' THEN
2098 localdebug(' x_run_chrg_acctd_amt:'||x_run_chrg_acctd_amt);
2099 localdebug(' x_tab.ELMT_CHRG_PRO_ACCTD_AMT(i):'||x_tab.ELMT_CHRG_PRO_ACCTD_AMT(i));
2100 localdebug(' x_tab.buc_chrg_alloc_acctd_amt(i):'||x_tab.buc_chrg_alloc_acctd_amt(i));
2101 localdebug(' x_tab.BASE_CHRG_PRO_ACCTD_AMT(i):'||x_tab.BASE_CHRG_PRO_ACCTD_AMT(i));
2102 END IF;
2103 IF x_tab.buc_chrg_alloc_acctd_amt(i) <> 0 THEN
2104 l_chrg_acctd_alloc := x_tab.buc_chrg_alloc_acctd_amt(i) - x_run_chrg_acctd_amt;
2105 x_tab.tl_chrg_alloc_acctd_amt(i) := l_chrg_acctd_alloc;
2106 x_run_chrg_acctd_amt := x_run_chrg_acctd_amt + l_chrg_acctd_alloc;
2107 ELSE x_tab.tl_chrg_alloc_acctd_amt(i) := 0;
2108 END IF;
2109 IF PG_DEBUG = 'Y' THEN
2110 localdebug(' x_tab.tl_chrg_alloc_acctd_amt(i):'||x_tab.tl_chrg_alloc_acctd_amt(i));
2111 localdebug(' x_run_chrg_acctd_amt:'||x_run_chrg_acctd_amt);
2112 localdebug(' l_chrg_acctd_alloc:'||l_chrg_acctd_alloc);
2113 END IF;
2114 ELSE
2115 x_tab.tl_chrg_alloc_acctd_amt(i) := 0;
2116 END IF;
2117
2118
2119 /********************************
2120 -- ED
2121 ********************************/
2122 IF g_ed_req = 'Y' THEN
2123 /*-------------------------------------------------+
2124 | Running Revenue amount in trx currency |
2125 +-------------------------------------------------*/
2126
2127 IF x_tab.base_ed_pro_amt(i) <> 0 AND x_tab.buc_ed_alloc_amt(i) <> 0 THEN
2128 IF PG_DEBUG = 'Y' THEN
2129 localdebug(' x_run_ed_amt:'||x_run_ed_amt);
2130 localdebug(' x_tab.elmt_ed_pro_amt(i):'||x_tab.elmt_ed_pro_amt(i));
2131 localdebug(' x_tab.buc_ed_alloc_amt(i):'||x_tab.buc_ed_alloc_amt(i));
2132 localdebug(' x_tab.base_ed_pro_amt(i):'||x_tab.base_ed_pro_amt(i));
2133 END IF;
2134 x_run_ed_amt := x_run_ed_amt + x_tab.elmt_ed_pro_amt(i);
2135 l_ed_alloc := CurrRound( x_run_ed_amt
2136 / x_tab.base_ed_pro_amt(i)
2137 * x_tab.buc_ed_alloc_amt(i),
2138 x_tab.to_currency(i))
2139 - x_run_ed_alloc;
2140 -- MAJ proration_res_tbl.res_pro := l_alloc;
2141 x_tab.tl_ed_alloc_amt(i) := l_ed_alloc;
2142 x_run_ed_alloc := x_run_ed_alloc + l_ed_alloc;
2143 IF PG_DEBUG = 'Y' THEN
2144 localdebug(' x_tab.tl_ed_alloc_amt(i):'||x_tab.tl_ed_alloc_amt(i));
2145 localdebug(' x_run_ed_alloc:'||x_run_ed_alloc);
2146 localdebug(' l_ed_alloc:'||l_ed_alloc);
2147 END IF;
2148 ELSIF x_tab.base_ed_pro_amt(i) = 0 AND g_line_ed <> 0 AND x_tab.line_type(i) = 'LINE' THEN -- Bug14415571
2149 IF PG_DEBUG = 'Y' THEN
2150 localdebug(' x_run_ed_amt:'||x_run_ed_amt);
2151 localdebug(' x_tab.elmt_ed_pro_amt(i):'||x_tab.elmt_ed_pro_amt(i));
2152 localdebug(' x_tab.buc_ed_alloc_amt(i):'||x_tab.buc_ed_alloc_amt(i));
2153 localdebug(' x_tab.base_ed_pro_amt(i):'||x_tab.base_ed_pro_amt(i));
2154 END IF;
2155 IF x_tab.buc_ed_alloc_amt(i) <> 0 THEN
2156 l_ed_alloc := x_tab.buc_ed_alloc_amt(i) - x_run_ed_alloc;
2157 x_tab.tl_ed_alloc_amt(i) := l_ed_alloc;
2158 x_run_ed_amt := x_run_ed_amt + l_ed_alloc;
2159 ELSE x_tab.tl_ed_alloc_amt(i) := 0;
2160 END IF;
2161 IF PG_DEBUG = 'Y' THEN
2162 localdebug(' x_tab.tl_ed_alloc_amt(i):'||x_tab.tl_ed_alloc_amt(i));
2163 localdebug(' x_run_ed_alloc:'||x_run_ed_alloc);
2164 localdebug(' l_ed_alloc:'||l_ed_alloc);
2165 END IF;
2166 ELSE
2167 x_tab.tl_ed_alloc_amt(i) := 0;
2168 END IF;
2169
2170
2171 /*-------------------------------------------------+
2172 | Running Revenue amount in base currency |
2173 +-------------------------------------------------*/
2174 IF x_tab.base_ed_pro_acctd_amt(i) <> 0 AND x_tab.buc_ed_alloc_acctd_amt(i) <> 0 THEN
2175 IF PG_DEBUG = 'Y' THEN
2176 localdebug(' x_run_ed_acctd_amt:'||x_run_ed_acctd_amt);
2177 localdebug(' x_tab.elmt_ed_pro_acctd_amt(i):'||x_tab.elmt_ed_pro_acctd_amt(i));
2178 localdebug(' x_tab.buc_ed_alloc_acctd_amt(i):'||x_tab.buc_ed_alloc_acctd_amt(i));
2179 localdebug(' x_tab.base_ed_pro_acctd_amt(i):'||x_tab.base_ed_pro_acctd_amt(i));
2180 END IF;
2181 x_run_ed_acctd_amt := x_run_ed_acctd_amt + x_tab.elmt_ed_pro_acctd_amt(i);
2182 l_ed_acctd_alloc := CurrRound( x_run_ed_acctd_amt
2183 / x_tab.base_ed_pro_acctd_amt(i)
2184 * x_tab.buc_ed_alloc_acctd_amt(i),
2185 x_tab.base_currency(i))
2186 - x_run_ed_acctd_alloc;
2187 -- MAJ proration_res_tbl.res_pro := l_alloc;
2188 x_tab.tl_ed_alloc_acctd_amt(i) := l_ed_acctd_alloc;
2189 x_run_ed_acctd_alloc := x_run_ed_acctd_alloc + l_ed_acctd_alloc;
2190 IF PG_DEBUG = 'Y' THEN
2191 localdebug(' x_tab.tl_ed_alloc_acctd_amt(i):'||x_tab.tl_ed_alloc_acctd_amt(i));
2192 localdebug(' x_run_ed_acctd_alloc:'||x_run_ed_acctd_alloc);
2193 localdebug(' l_ed_acctd_alloc:'||l_ed_acctd_alloc);
2194 END IF;
2195 ELSIF x_tab.base_ed_pro_acctd_amt(i) = 0 AND g_acctd_line_ed <> 0 AND x_tab.line_type(i) = 'LINE' THEN -- Bug14415571
2196 IF PG_DEBUG = 'Y' THEN
2197 localdebug(' x_run_ed_acctd_amt:'||x_run_ed_acctd_amt);
2198 localdebug(' x_tab.elmt_ed_pro_acctd_amt(i):'||x_tab.elmt_ed_pro_acctd_amt(i));
2199 localdebug(' x_tab.buc_ed_alloc_acctd_amt(i):'||x_tab.buc_ed_alloc_acctd_amt(i));
2200 localdebug(' x_tab.base_ed_pro_acctd_amt(i):'||x_tab.base_ed_pro_acctd_amt(i));
2201 END IF;
2202 IF x_tab.buc_ed_alloc_acctd_amt(i) <> 0 THEN
2203 l_ed_acctd_alloc := x_tab.buc_ed_alloc_acctd_amt(i) - x_run_ed_acctd_alloc;
2204 x_tab.tl_ed_alloc_acctd_amt(i) := l_ed_acctd_alloc;
2205 x_run_ed_acctd_amt := x_run_ed_acctd_amt + l_ed_acctd_alloc;
2206 ELSE x_tab.tl_ed_alloc_acctd_amt(i) := 0;
2207 END IF;
2208 IF PG_DEBUG = 'Y' THEN
2209 localdebug(' x_tab.tl_ed_alloc_acctd_amt(i):'||x_tab.tl_ed_alloc_acctd_amt(i));
2210 localdebug(' x_run_ed_acctd_alloc:'||x_run_ed_acctd_alloc);
2211 localdebug(' l_ed_acctd_alloc:'||l_ed_acctd_alloc);
2212 END IF;
2213 ELSE
2214 x_tab.tl_ed_alloc_acctd_amt(i) := 0;
2215 END IF;
2216
2217
2218
2219 /*-------------------------------------------------+
2220 | Running tax amount in trx currency |
2221 +-------------------------------------------------*/
2222
2223 IF x_tab.BASE_ed_tax_PRO_AMT(i) <> 0 AND x_tab.buc_ed_tax_alloc_amt(i) <> 0 THEN
2224 IF PG_DEBUG = 'Y' THEN
2225 localdebug(' x_run_ed_tax_amt:'||x_run_ed_tax_amt);
2226 localdebug(' x_tab.ELMT_ed_tax_PRO_AMT(i):'||x_tab.ELMT_ed_tax_PRO_AMT(i));
2227 localdebug(' x_tab.buc_ed_tax_alloc_amt(i):'||x_tab.buc_ed_tax_alloc_amt(i));
2228 localdebug(' x_tab.BASE_ed_tax_PRO_AMT(i):'||x_tab.BASE_ed_tax_PRO_AMT(i));
2229 END IF;
2230 x_run_ed_tax_amt := x_run_ed_tax_amt + x_tab.ELMT_ed_tax_PRO_AMT(i);
2231 l_ed_tax_alloc := CurrRound( x_run_ed_tax_amt
2232 / x_tab.BASE_ed_tax_PRO_AMT(i)
2233 * x_tab.buc_ed_tax_alloc_amt(i),
2234 x_tab.to_currency(i))
2235 - x_run_ed_tax_alloc;
2236 x_tab.tl_ed_tax_alloc_amt(i) := l_ed_tax_alloc;
2237 x_run_ed_tax_alloc := x_run_ed_tax_alloc + l_ed_tax_alloc;
2238 IF PG_DEBUG = 'Y' THEN
2239 localdebug(' x_tab.tl_ed_tax_alloc_amt(i):'||x_tab.tl_ed_tax_alloc_amt(i));
2240 localdebug(' x_run_ed_tax_alloc:'||x_run_ed_tax_alloc);
2241 localdebug(' l_ed_tax_alloc:'||l_ed_tax_alloc);
2242 END IF;
2243 ELSIF x_tab.BASE_ed_tax_PRO_AMT(i) = 0 AND g_tax_ed <> 0 AND x_tab.line_type(i) = 'TAX' THEN -- Bug14415571
2244 IF PG_DEBUG = 'Y' THEN
2245 localdebug(' x_run_ed_tax_amt:'||x_run_ed_tax_amt);
2246 localdebug(' x_tab.ELMT_ed_tax_PRO_AMT(i):'||x_tab.ELMT_ed_tax_PRO_AMT(i));
2247 localdebug(' x_tab.buc_ed_tax_alloc_amt(i):'||x_tab.buc_ed_tax_alloc_amt(i));
2248 localdebug(' x_tab.BASE_ed_tax_PRO_AMT(i):'||x_tab.BASE_ed_tax_PRO_AMT(i));
2249 END IF;
2250 IF x_tab.buc_ed_tax_alloc_amt(i) <> 0 THEN
2251 l_ed_tax_alloc := x_tab.buc_ed_tax_alloc_amt(i) - x_run_ed_tax_alloc;
2252 x_tab.tl_ed_tax_alloc_amt(i) := l_ed_tax_alloc;
2253 x_run_ed_tax_amt := x_run_ed_tax_amt + l_ed_tax_alloc;
2254 ELSE x_tab.tl_ed_tax_alloc_amt(i) := 0;
2255 END IF;
2256 IF PG_DEBUG = 'Y' THEN
2257 localdebug(' x_tab.tl_ed_tax_alloc_amt(i):'||x_tab.tl_ed_tax_alloc_amt(i));
2258 localdebug(' x_run_ed_tax_alloc:'||x_run_ed_tax_alloc);
2259 localdebug(' l_ed_tax_alloc:'||l_ed_tax_alloc);
2260 END IF;
2261 ELSE
2262 x_tab.tl_ed_tax_alloc_amt(i) := 0;
2263 END IF;
2264
2265
2266 /*-------------------------------------------------+
2267 | Running tax acctd amount in trx currency |
2268 +-------------------------------------------------*/
2269 IF x_tab.BASE_ed_tax_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_ed_tax_alloc_acctd_amt(i) <> 0 THEN
2270 IF PG_DEBUG = 'Y' THEN
2271 localdebug(' x_run_ed_tax_acctd_amt:'||x_run_ed_tax_acctd_amt);
2272 localdebug(' x_tab.ELMT_ed_tax_PRO_ACCTD_AMT(i):'||x_tab.ELMT_ed_tax_PRO_ACCTD_AMT(i));
2273 localdebug(' x_tab.buc_ed_tax_alloc_acctd_amt(i):'||x_tab.buc_ed_tax_alloc_acctd_amt(i));
2274 localdebug(' x_tab.BASE_ed_tax_PRO_ACCTD_AMT(i):'||x_tab.BASE_ed_tax_PRO_ACCTD_AMT(i));
2275 END IF;
2276 x_run_ed_tax_acctd_amt := x_run_ed_tax_acctd_amt + x_tab.ELMT_ed_tax_PRO_ACCTD_AMT(i);
2277 l_ed_tax_acctd_alloc := CurrRound( x_run_ed_tax_acctd_amt
2278 / x_tab.BASE_ed_tax_PRO_ACCTD_AMT(i)
2279 * x_tab.buc_ed_tax_alloc_acctd_amt(i),
2280 x_tab.base_currency(i))
2281 - x_run_ed_tax_acctd_alloc;
2282 x_tab.tl_ed_tax_alloc_acctd_amt(i) := l_ed_tax_acctd_alloc;
2283 x_run_ed_tax_acctd_alloc := x_run_ed_tax_acctd_alloc + l_ed_tax_acctd_alloc;
2284 IF PG_DEBUG = 'Y' THEN
2285 localdebug(' x_tab.tl_ed_tax_alloc_acctd_amt(i):'||x_tab.tl_ed_tax_alloc_acctd_amt(i));
2286 localdebug(' x_run_ed_tax_acctd_alloc:'||x_run_ed_tax_acctd_alloc);
2287 localdebug(' l_ed_tax_acctd_alloc:'||l_ed_tax_acctd_alloc);
2288 END IF;
2289 ELSIF x_tab.BASE_ed_tax_PRO_ACCTD_AMT(i) = 0 AND g_acctd_tax_ed <> 0 AND x_tab.line_type(i) = 'TAX' THEN -- Bug14415571
2290 IF PG_DEBUG = 'Y' THEN
2291 localdebug(' x_run_ed_tax_acctd_amt:'||x_run_ed_tax_acctd_amt);
2292 localdebug(' x_tab.ELMT_ed_tax_PRO_ACCTD_AMT(i):'||x_tab.ELMT_ed_tax_PRO_ACCTD_AMT(i));
2293 localdebug(' x_tab.buc_ed_tax_alloc_acctd_amt(i):'||x_tab.buc_ed_tax_alloc_acctd_amt(i));
2294 localdebug(' x_tab.BASE_ed_tax_PRO_ACCTD_AMT(i):'||x_tab.BASE_ed_tax_PRO_ACCTD_AMT(i));
2295 END IF;
2296 IF x_tab.buc_ed_tax_alloc_acctd_amt(i) <> 0 THEN
2297 l_ed_tax_acctd_alloc := x_tab.buc_ed_tax_alloc_acctd_amt(i) - x_run_ed_tax_acctd_alloc;
2298 x_tab.tl_ed_tax_alloc_acctd_amt(i) := l_ed_tax_acctd_alloc;
2299 x_run_ed_tax_acctd_amt := x_run_ed_tax_acctd_amt + l_ed_tax_acctd_alloc;
2300 ELSE x_tab.tl_ed_tax_alloc_acctd_amt(i) := 0;
2301 END IF;
2302 IF PG_DEBUG = 'Y' THEN
2303 localdebug(' x_tab.tl_ed_tax_alloc_acctd_amt(i):'||x_tab.tl_ed_tax_alloc_acctd_amt(i));
2304 localdebug(' x_run_ed_tax_acctd_alloc:'||x_run_ed_tax_acctd_alloc);
2305 localdebug(' l_ed_tax_acctd_alloc:'||l_ed_tax_acctd_alloc);
2306 END IF;
2307 ELSE
2308 x_tab.tl_ed_tax_alloc_acctd_amt(i) := 0;
2309 END IF;
2310
2311 /*-------------------------------------------------+
2312 | Running frt amount in trx currency |
2313 +-------------------------------------------------*/
2314
2315 IF x_tab.BASE_ed_FRT_PRO_AMT(i) <> 0 AND x_tab.buc_ed_frt_alloc_amt(i) <> 0 THEN
2316 IF PG_DEBUG = 'Y' THEN
2317 localdebug(' x_run_ed_frt_amt:'||x_run_ed_frt_amt);
2318 localdebug(' x_tab.ELMT_ed_FRT_PRO_AMT(i):'||x_tab.ELMT_ed_FRT_PRO_AMT(i));
2319 localdebug(' x_tab.buc_ed_frt_alloc_amt(i):'||x_tab.buc_ed_frt_alloc_amt(i));
2320 localdebug(' x_tab.BASE_ed_FRT_PRO_AMT(i):'||x_tab.BASE_ed_FRT_PRO_AMT(i));
2321 END IF;
2322 x_run_ed_frt_amt := x_run_ed_frt_amt + x_tab.ELMT_ed_FRT_PRO_AMT(i);
2323 l_ed_frt_alloc := CurrRound( x_run_ed_frt_amt
2324 / x_tab.BASE_ed_frt_PRO_AMT(i)
2325 * x_tab.buc_ed_frt_alloc_amt(i),
2326 x_tab.to_currency(i))
2327 - x_run_ed_frt_alloc;
2328 x_tab.tl_ed_frt_alloc_amt(i) := l_ed_frt_alloc;
2329 x_run_ed_frt_alloc := x_run_ed_frt_alloc + l_ed_frt_alloc;
2330 IF PG_DEBUG = 'Y' THEN
2331 localdebug(' x_tab.tl_ed_frt_alloc_amt(i):'||x_tab.tl_ed_frt_alloc_amt(i));
2332 localdebug(' x_run_ed_frt_alloc:'||x_run_ed_frt_alloc);
2333 localdebug(' l_ed_frt_alloc:'||l_ed_frt_alloc);
2334 END IF;
2335 ELSIF x_tab.BASE_ed_FRT_PRO_AMT(i) = 0 AND g_frt_ed <> 0 AND x_tab.line_type(i) = 'FREIGHT' THEN -- Bug14415571
2336 IF PG_DEBUG = 'Y' THEN
2337 localdebug(' x_run_ed_frt_amt:'||x_run_ed_frt_amt);
2338 localdebug(' x_tab.ELMT_ed_FRT_PRO_AMT(i):'||x_tab.ELMT_ed_FRT_PRO_AMT(i));
2339 localdebug(' x_tab.buc_ed_frt_alloc_amt(i):'||x_tab.buc_ed_frt_alloc_amt(i));
2340 localdebug(' x_tab.BASE_ed_FRT_PRO_AMT(i):'||x_tab.BASE_ed_FRT_PRO_AMT(i));
2341 END IF;
2342 IF x_tab.buc_ed_frt_alloc_amt(i) <> 0 THEN
2343 l_ed_frt_alloc := x_tab.buc_ed_frt_alloc_amt(i) - x_run_ed_frt_alloc;
2344 x_tab.tl_ed_frt_alloc_amt(i) := l_ed_frt_alloc;
2345 x_run_ed_frt_amt := x_run_ed_frt_amt + l_ed_frt_alloc;
2346 ELSE x_tab.tl_ed_frt_alloc_amt(i) := 0;
2347 END IF;
2348 IF PG_DEBUG = 'Y' THEN
2349 localdebug(' x_tab.tl_ed_frt_alloc_amt(i):'||x_tab.tl_ed_frt_alloc_amt(i));
2350 localdebug(' x_run_ed_frt_alloc:'||x_run_ed_frt_alloc);
2351 localdebug(' l_ed_frt_alloc:'||l_ed_frt_alloc);
2352 END IF;
2353 ELSE
2354 x_tab.tl_ed_frt_alloc_amt(i) := 0;
2355 END IF;
2356
2357
2358 /*-------------------------------------------------+
2359 | Running frt acctd amount in trx currency |
2360 +-------------------------------------------------*/
2361 IF x_tab.BASE_ed_FRT_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_ed_frt_alloc_acctd_amt(i) <> 0 THEN
2362 x_run_ed_frt_acctd_amt := x_run_ed_frt_acctd_amt + x_tab.ELMT_ed_FRT_PRO_ACCTD_AMT(i);
2363 l_ed_frt_acctd_alloc := CurrRound( x_run_ed_frt_acctd_amt
2364 / x_tab.BASE_ed_FRT_PRO_ACCTD_AMT(i)
2365 * x_tab.buc_ed_frt_alloc_acctd_amt(i),
2366 x_tab.base_currency(i))
2367 - x_run_ed_frt_acctd_alloc;
2368 x_tab.tl_ed_frt_alloc_acctd_amt(i) := l_ed_frt_acctd_alloc;
2369 x_run_ed_frt_acctd_alloc := x_run_ed_frt_acctd_alloc + l_ed_frt_acctd_alloc;
2370 ELSIF x_tab.BASE_ed_FRT_PRO_ACCTD_AMT(i) = 0 AND g_acctd_frt_ed <> 0 AND x_tab.line_type(i) = 'FREIGHT' THEN -- Bug14415571
2371 IF PG_DEBUG = 'Y' THEN
2372 localdebug(' x_run_ed_frt_acctd_amt:'||x_run_ed_frt_acctd_amt);
2373 localdebug(' x_tab.ELMT_ed_FRT_PRO_ACCTD_AMT(i):'||x_tab.ELMT_ed_FRT_PRO_ACCTD_AMT(i));
2374 localdebug(' x_tab.buc_ed_frt_alloc_acctd_amt(i):'||x_tab.buc_ed_frt_alloc_acctd_amt(i));
2375 localdebug(' x_tab.BASE_ed_FRT_PRO_ACCTD_AMT(i):'||x_tab.BASE_ed_FRT_PRO_ACCTD_AMT(i));
2376 END IF;
2377 IF x_tab.buc_ed_frt_alloc_acctd_amt(i) <> 0 THEN
2378 l_ed_frt_acctd_alloc := x_tab.buc_ed_frt_alloc_acctd_amt(i) - x_run_ed_frt_acctd_alloc;
2379 x_tab.tl_ed_frt_alloc_acctd_amt(i) := l_ed_frt_acctd_alloc;
2380 x_run_ed_frt_acctd_amt := x_run_ed_frt_acctd_amt + l_ed_frt_acctd_alloc;
2381 ELSE x_tab.tl_ed_frt_alloc_acctd_amt(i) := 0;
2382 END IF;
2383 IF PG_DEBUG = 'Y' THEN
2384 localdebug(' x_tab.tl_ed_frt_alloc_acctd_amt(i):'||x_tab.tl_ed_frt_alloc_acctd_amt(i));
2385 localdebug(' x_run_ed_frt_acctd_amt:'||x_run_ed_frt_acctd_amt);
2386 localdebug(' l_ed_frt_acctd_alloc:'||l_ed_frt_acctd_alloc);
2387 END IF;
2388 ELSE
2389 x_tab.tl_ed_frt_alloc_acctd_amt(i) := 0;
2390 END IF;
2391
2392 /*-------------------------------------------------+
2393 | Running chrg amount in trx currency |
2394 +-------------------------------------------------*/
2395
2396 IF x_tab.BASE_ed_CHRG_PRO_AMT(i) <> 0 AND x_tab.buc_ed_chrg_alloc_amt(i) <> 0 THEN
2397 IF PG_DEBUG = 'Y' THEN
2398 localdebug(' x_run_ed_chrg_amt:'||x_run_ed_chrg_amt);
2399 localdebug(' x_tab.ELMT_ed_CHRG_PRO_AMT(i):'||x_tab.ELMT_ed_CHRG_PRO_AMT(i));
2400 localdebug(' x_tab.buc_ed_chrg_alloc_amt(i):'||x_tab.buc_ed_chrg_alloc_amt(i));
2401 localdebug(' x_tab.BASE_ed_CHRG_PRO_AMT(i):'||x_tab.BASE_ed_CHRG_PRO_AMT(i));
2402 END IF;
2403 x_run_ed_chrg_amt := x_run_ed_chrg_amt + x_tab.ELMT_ed_CHRG_PRO_AMT(i);
2404 l_ed_chrg_alloc := CurrRound( x_run_ed_chrg_amt
2405 / x_tab.BASE_ed_CHRG_PRO_AMT(i)
2406 * x_tab.buc_ed_chrg_alloc_amt(i),
2407 x_tab.to_currency(i))
2408 - x_run_ed_chrg_alloc;
2409 x_tab.tl_ed_chrg_alloc_amt(i) := l_ed_chrg_alloc;
2410 x_run_ed_chrg_alloc := x_run_ed_chrg_alloc + l_ed_chrg_alloc;
2411 IF PG_DEBUG = 'Y' THEN
2412 localdebug(' x_tab.tl_ed_chrg_alloc_amt(i):'||x_tab.tl_ed_chrg_alloc_amt(i));
2413 localdebug(' x_run_ed_chrg_alloc:'||x_run_ed_chrg_alloc);
2414 localdebug(' l_ed_chrg_alloc:'||l_ed_chrg_alloc);
2415 END IF;
2416 ELSIF x_tab.BASE_ed_CHRG_PRO_AMT(i) = 0 AND g_chrg_ed <> 0 AND x_tab.line_type(i) = 'CHARGES' THEN -- Bug14415571
2417 IF PG_DEBUG = 'Y' THEN
2418 localdebug(' x_run_ed_chrg_amt:'||x_run_ed_chrg_amt);
2419 localdebug(' x_tab.ELMT_ed_CHRG_PRO_AMT(i):'||x_tab.ELMT_ed_CHRG_PRO_AMT(i));
2420 localdebug(' x_tab.buc_ed_chrg_alloc_amt(i):'||x_tab.buc_ed_chrg_alloc_amt(i));
2421 localdebug(' x_tab.BASE_ed_CHRG_PRO_AMT(i):'||x_tab.BASE_ed_CHRG_PRO_AMT(i));
2422 END IF;
2423 IF x_tab.buc_ed_chrg_alloc_amt(i) <> 0 THEN
2424 l_ed_chrg_alloc := x_tab.buc_ed_chrg_alloc_amt(i) - x_run_ed_chrg_alloc;
2425 x_tab.tl_ed_chrg_alloc_amt(i) := l_ed_chrg_alloc;
2426 x_run_ed_chrg_amt := x_run_ed_chrg_amt + l_ed_chrg_alloc;
2427 ELSE x_tab.tl_ed_chrg_alloc_amt(i) := 0;
2428 END IF;
2429 IF PG_DEBUG = 'Y' THEN
2430 localdebug(' x_tab.tl_ed_chrg_alloc_amt(i):'||x_tab.tl_ed_chrg_alloc_amt(i));
2431 localdebug(' x_run_ed_chrg_alloc:'||x_run_ed_chrg_alloc);
2432 localdebug(' l_ed_chrg_alloc:'||l_ed_chrg_alloc);
2433 END IF;
2434 ELSE
2435 x_tab.tl_ed_chrg_alloc_amt(i) := 0;
2436 END IF;
2437
2438
2439 /*-------------------------------------------------+
2440 | Running chrg acctd amount in trx currency |
2441 +-------------------------------------------------*/
2442 IF x_tab.BASE_ed_CHRG_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_ed_chrg_alloc_acctd_amt(i) <> 0 THEN
2443 x_run_ed_chrg_acctd_amt := x_run_ed_chrg_acctd_amt + x_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT(i);
2444 l_ed_chrg_acctd_alloc := CurrRound( x_run_ed_chrg_acctd_amt
2445 / x_tab.BASE_ed_CHRG_PRO_ACCTD_AMT(i)
2446 * x_tab.buc_ed_chrg_alloc_acctd_amt(i),
2447 x_tab.base_currency(i))
2448 - x_run_ed_chrg_acctd_alloc;
2449 x_tab.tl_ed_chrg_alloc_acctd_amt(i) := l_ed_chrg_acctd_alloc;
2450 x_run_ed_chrg_acctd_alloc := x_run_ed_chrg_acctd_alloc + l_ed_chrg_acctd_alloc;
2451 ELSIF x_tab.BASE_ed_CHRG_PRO_ACCTD_AMT(i) = 0 AND g_acctd_chrg_ed <> 0 AND x_tab.line_type(i) = 'CHARGES' THEN -- Bug14415571
2452 IF PG_DEBUG = 'Y' THEN
2453 localdebug(' x_run_ed_chrg_acctd_amt:'||x_run_ed_chrg_acctd_amt);
2454 localdebug(' x_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT(i):'||x_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT(i));
2455 localdebug(' x_tab.buc_ed_chrg_alloc_acctd_amt(i):'||x_tab.buc_ed_chrg_alloc_acctd_amt(i));
2456 localdebug(' x_tab.BASE_ed_CHRG_PRO_ACCTD_AMT(i):'||x_tab.BASE_ed_CHRG_PRO_ACCTD_AMT(i));
2457 END IF;
2458 IF x_tab.buc_ed_chrg_alloc_acctd_amt(i) <> 0 THEN
2459 l_ed_chrg_acctd_alloc := x_tab.buc_ed_chrg_alloc_acctd_amt(i) - x_run_ed_chrg_acctd_alloc;
2460 x_tab.tl_ed_chrg_alloc_acctd_amt(i) := l_ed_chrg_acctd_alloc;
2461 x_run_ed_chrg_acctd_amt := x_run_ed_chrg_acctd_amt + l_ed_chrg_acctd_alloc;
2462 ELSE x_tab.tl_ed_chrg_alloc_acctd_amt(i) := 0;
2463 END IF;
2464 IF PG_DEBUG = 'Y' THEN
2465 localdebug(' x_tab.tl_ed_chrg_alloc_acctd_amt(i):'||x_tab.tl_ed_chrg_alloc_acctd_amt(i));
2466 localdebug(' x_run_ed_chrg_acctd_amt:'||x_run_ed_chrg_acctd_amt);
2467 localdebug(' l_ed_chrg_acctd_alloc:'||l_ed_chrg_acctd_alloc);
2468 END IF;
2469 ELSE
2470 x_tab.tl_ed_chrg_alloc_acctd_amt(i) := 0;
2471 END IF;
2472
2473 ELSE
2474
2475 x_tab.tl_ed_alloc_amt(i) := 0;
2476 x_tab.tl_ed_alloc_acctd_amt(i) := 0;
2477 x_tab.tl_ed_tax_alloc_amt(i) := 0;
2478 x_tab.tl_ed_tax_alloc_acctd_amt(i) := 0;
2479 x_tab.tl_ed_frt_alloc_amt(i) := 0;
2480 x_tab.tl_ed_frt_alloc_acctd_amt(i) := 0;
2481 x_tab.tl_ed_chrg_alloc_amt(i) := 0;
2482 x_tab.tl_ed_chrg_alloc_acctd_amt(i) := 0;
2483
2484 END IF;
2485
2486 /********************************
2487 -- UNED
2488 ********************************/
2489 IF g_uned_req = 'Y' THEN
2490 /*-------------------------------------------------+
2491 | Running revenue in trx currency |
2492 +-------------------------------------------------*/
2493 IF PG_DEBUG = 'Y' THEN
2494 localdebug(' x_run_uned_amt:'||x_run_uned_amt);
2495 localdebug(' x_tab.elmt_uned_pro_amt(i):'||x_tab.elmt_uned_pro_amt(i));
2496 localdebug(' x_tab.buc_uned_alloc_amt(i):'||x_tab.buc_uned_alloc_amt(i));
2497 localdebug(' x_tab.base_uned_pro_amt(i):'||x_tab.base_uned_pro_amt(i));
2498 END IF;
2499
2500 IF x_tab.base_uned_pro_amt(i) <> 0 AND x_tab.buc_uned_alloc_amt(i) <> 0 THEN
2501 x_run_uned_amt := x_run_uned_amt + x_tab.elmt_uned_pro_amt(i);
2502 l_uned_alloc := CurrRound( x_run_uned_amt
2503 / x_tab.base_uned_pro_amt(i)
2504 * x_tab.buc_uned_alloc_amt(i),
2505 x_tab.to_currency(i))
2506 - x_run_uned_alloc;
2507 -- MAJ proration_res_tbl.res_pro := l_alloc;
2508 x_tab.tl_uned_alloc_amt(i) := l_uned_alloc;
2509 x_run_uned_alloc := x_run_uned_alloc + l_uned_alloc;
2510 ELSIF x_tab.base_uned_pro_amt(i) = 0 AND g_line_uned <> 0 AND x_tab.line_type(i) = 'LINE' THEN -- Bug14415571
2511 IF PG_DEBUG = 'Y' THEN
2512 localdebug(' x_run_uned_amt:'||x_run_uned_amt);
2513 localdebug(' x_tab.elmt_uned_pro_amt(i):'||x_tab.elmt_uned_pro_amt(i));
2514 localdebug(' x_tab.buc_uned_alloc_amt(i):'||x_tab.buc_uned_alloc_amt(i));
2515 localdebug(' x_tab.base_uned_pro_amt(i):'||x_tab.base_uned_pro_amt(i));
2516 END IF;
2517 IF x_tab.buc_uned_alloc_amt(i) <> 0 THEN
2518 l_uned_alloc := x_tab.buc_uned_alloc_amt(i) - x_run_uned_alloc;
2519 x_tab.tl_uned_alloc_amt(i) := l_uned_alloc;
2520 x_run_uned_amt := x_run_uned_amt + l_uned_alloc;
2521 ELSE x_tab.tl_uned_alloc_amt(i) := 0;
2522 END IF;
2523 IF PG_DEBUG = 'Y' THEN
2524 localdebug(' x_tab.tl_uned_alloc_amt(i):'||x_tab.tl_uned_alloc_amt(i));
2525 localdebug(' x_run_uned_amt:'||x_run_uned_amt);
2526 localdebug(' l_uned_alloc:'||l_uned_alloc);
2527 END IF;
2528 ELSE
2529 x_tab.tl_uned_alloc_amt(i) := 0;
2530 END IF;
2531
2532 IF PG_DEBUG = 'Y' THEN
2533 localdebug(' x_tab.tl_uned_alloc_amt(i):'||x_tab.tl_uned_alloc_amt(i));
2534 localdebug(' x_run_uned_alloc:'||x_run_uned_alloc);
2535 localdebug(' l_uned_alloc:'||l_uned_alloc);
2536 END IF;
2537
2538 /*-------------------------------------------------+
2539 | Running revenue in base currency |
2540 +-------------------------------------------------*/
2541 IF x_tab.base_uned_pro_acctd_amt(i) <> 0 AND x_tab.buc_uned_alloc_acctd_amt(i) <> 0 THEN
2542 x_run_uned_acctd_amt := x_run_uned_acctd_amt + x_tab.elmt_uned_pro_acctd_amt(i);
2543 l_uned_acctd_alloc := CurrRound( x_run_uned_acctd_amt
2544 / x_tab.base_uned_pro_acctd_amt(i)
2545 * x_tab.buc_uned_alloc_acctd_amt(i),
2546 x_tab.base_currency(i))
2547 - x_run_uned_acctd_alloc;
2548 -- MAJ proration_res_tbl.res_pro := l_alloc;
2549 x_tab.tl_uned_alloc_acctd_amt(i) := l_uned_acctd_alloc;
2550 x_run_uned_acctd_alloc := x_run_uned_acctd_alloc + l_uned_acctd_alloc;
2551 ELSIF x_tab.base_uned_pro_acctd_amt(i) = 0 AND g_acctd_line_uned <> 0 AND x_tab.line_type(i) = 'LINE' THEN -- Bug14415571
2552 IF PG_DEBUG = 'Y' THEN
2553 localdebug(' x_run_uned_acctd_amt:'||x_run_uned_acctd_amt);
2554 localdebug(' x_tab.elmt_uned_pro_acctd_amt(i):'||x_tab.elmt_uned_pro_acctd_amt(i));
2555 localdebug(' x_tab.buc_uned_alloc_acctd_amt(i):'||x_tab.buc_uned_alloc_acctd_amt(i));
2556 localdebug(' x_tab.base_uned_pro_acctd_amt(i):'||x_tab.base_uned_pro_acctd_amt(i));
2557 END IF;
2558 IF x_tab.buc_uned_alloc_acctd_amt(i) <> 0 THEN
2559 l_uned_acctd_alloc := x_tab.buc_uned_alloc_acctd_amt(i) - x_run_uned_acctd_alloc;
2560 x_tab.tl_uned_alloc_acctd_amt(i) := l_uned_acctd_alloc;
2561 x_run_uned_acctd_amt := x_run_uned_acctd_amt + l_uned_acctd_alloc;
2562 ELSE x_tab.tl_uned_alloc_acctd_amt(i) := 0;
2563 END IF;
2564 IF PG_DEBUG = 'Y' THEN
2565 localdebug(' x_tab.tl_uned_alloc_acctd_amt(i):'||x_tab.tl_uned_alloc_acctd_amt(i));
2566 localdebug(' x_run_uned_acctd_amt:'||x_run_uned_acctd_amt);
2567 localdebug(' l_uned_acctd_alloc:'||l_uned_acctd_alloc);
2568 END IF;
2569 ELSE
2570 x_tab.tl_uned_alloc_acctd_amt(i) := 0;
2571 END IF;
2572
2573
2574
2575 /*-------------------------------------------------+
2576 | Running tax amount in trx currency |
2577 +-------------------------------------------------*/
2578 IF PG_DEBUG = 'Y' THEN
2579 localdebug(' x_run_uned_tax_amt:'||x_run_uned_tax_amt);
2580 localdebug(' x_tab.ELMT_uned_tax_PRO_AMT(i):'||x_tab.ELMT_uned_tax_PRO_AMT(i));
2581 localdebug(' x_tab.buc_uned_tax_alloc_amt(i):'||x_tab.buc_uned_tax_alloc_amt(i));
2582 localdebug(' x_tab.BASE_uned_tax_PRO_AMT(i):'||x_tab.BASE_uned_tax_PRO_AMT(i));
2583 END IF;
2584
2585 IF x_tab.BASE_uned_tax_PRO_AMT(i) <> 0 AND x_tab.buc_uned_tax_alloc_amt(i) <> 0 THEN
2586 x_run_uned_tax_amt := x_run_uned_tax_amt + x_tab.ELMT_uned_tax_PRO_AMT(i);
2587 l_uned_tax_alloc := CurrRound( x_run_uned_tax_amt
2588 / x_tab.BASE_uned_tax_PRO_AMT(i)
2589 * x_tab.buc_uned_tax_alloc_amt(i),
2590 x_tab.to_currency(i))
2591 - x_run_uned_tax_alloc;
2592 x_tab.tl_uned_tax_alloc_amt(i) := l_uned_tax_alloc;
2593 x_run_uned_tax_alloc := x_run_uned_tax_alloc + l_uned_tax_alloc;
2594 ELSIF x_tab.BASE_uned_tax_PRO_AMT(i) = 0 AND g_tax_uned <> 0 AND x_tab.line_type(i) = 'TAX' THEN -- Bug14415571
2595 IF PG_DEBUG = 'Y' THEN
2596 localdebug(' x_run_uned_tax_amt:'||x_run_uned_tax_amt);
2597 localdebug(' x_tab.ELMT_uned_tax_PRO_AMT(i):'||x_tab.ELMT_uned_tax_PRO_AMT(i));
2598 localdebug(' x_tab.buc_uned_tax_alloc_amt(i):'||x_tab.buc_uned_tax_alloc_amt(i));
2599 localdebug(' x_tab.BASE_uned_tax_PRO_AMT(i):'||x_tab.BASE_uned_tax_PRO_AMT(i));
2600 END IF;
2601 IF x_tab.buc_uned_tax_alloc_amt(i) <> 0 THEN
2602 l_uned_tax_alloc := x_tab.buc_uned_tax_alloc_amt(i) - x_run_uned_tax_alloc;
2603 x_tab.tl_uned_tax_alloc_amt(i) := l_uned_tax_alloc;
2604 x_run_uned_tax_amt := x_run_uned_tax_amt + l_uned_tax_alloc;
2605 ELSE x_tab.tl_uned_tax_alloc_amt(i) := 0;
2606 END IF;
2607 IF PG_DEBUG = 'Y' THEN
2608 localdebug(' x_tab.tl_uned_tax_alloc_amt(i):'||x_tab.tl_uned_tax_alloc_amt(i));
2609 localdebug(' x_run_uned_tax_amt:'||x_run_uned_tax_amt);
2610 localdebug(' l_uned_tax_alloc:'||l_uned_tax_alloc);
2611 END IF;
2612 ELSE
2613 x_tab.tl_uned_tax_alloc_amt(i) := 0;
2614 END IF;
2615
2616 IF PG_DEBUG = 'Y' THEN
2617 localdebug(' x_tab.tl_uned_tax_alloc_amt(i):'||x_tab.tl_uned_tax_alloc_amt(i));
2618 localdebug(' x_run_uned_tax_alloc:'||x_run_uned_tax_alloc);
2619 localdebug(' l_uned_tax_alloc:'||l_uned_tax_alloc);
2620 END IF;
2621
2622 /*-------------------------------------------------+
2623 | Running tax acctd amount in trx currency |
2624 +-------------------------------------------------*/
2625 IF x_tab.BASE_uned_tax_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_uned_tax_alloc_acctd_amt(i) <> 0 THEN
2626 x_run_uned_tax_acctd_amt := x_run_uned_tax_acctd_amt + x_tab.ELMT_uned_tax_PRO_ACCTD_AMT(i);
2627 l_uned_tax_acctd_alloc := CurrRound( x_run_uned_tax_acctd_amt
2628 / x_tab.BASE_uned_tax_PRO_ACCTD_AMT(i)
2629 * x_tab.buc_uned_tax_alloc_acctd_amt(i),
2630 x_tab.base_currency(i))
2631 - x_run_uned_tax_acctd_alloc;
2632 x_tab.tl_uned_tax_alloc_acctd_amt(i) := l_uned_tax_acctd_alloc;
2633 x_run_uned_tax_acctd_alloc := x_run_uned_tax_acctd_alloc + l_uned_tax_acctd_alloc;
2634 ELSIF x_tab.BASE_uned_tax_PRO_ACCTD_AMT(i) = 0 AND g_acctd_tax_uned <> 0 AND x_tab.line_type(i) = 'TAX' THEN -- Bug14415571
2635 IF PG_DEBUG = 'Y' THEN
2636 localdebug(' x_run_uned_tax_acctd_amt:'||x_run_uned_tax_acctd_amt);
2637 localdebug(' x_tab.ELMT_uned_tax_PRO_ACCTD_AMT(i):'||x_tab.ELMT_uned_tax_PRO_ACCTD_AMT(i));
2638 localdebug(' x_tab.buc_uned_tax_alloc_acctd_amt(i):'||x_tab.buc_uned_tax_alloc_acctd_amt(i));
2639 localdebug(' x_tab.BASE_uned_tax_PRO_ACCTD_AMT(i):'||x_tab.BASE_uned_tax_PRO_ACCTD_AMT(i));
2640 END IF;
2641 IF x_tab.buc_uned_tax_alloc_acctd_amt(i) <> 0 THEN
2642 l_uned_tax_acctd_alloc := x_tab.buc_uned_tax_alloc_acctd_amt(i) - x_run_uned_tax_acctd_alloc;
2643 x_tab.tl_uned_tax_alloc_acctd_amt(i) := l_uned_tax_acctd_alloc;
2644 x_run_uned_tax_acctd_amt := x_run_uned_tax_acctd_amt + l_uned_tax_acctd_alloc;
2645 ELSE x_tab.tl_uned_tax_alloc_acctd_amt(i) := 0;
2646 END IF;
2647 IF PG_DEBUG = 'Y' THEN
2648 localdebug(' x_tab.tl_uned_tax_alloc_acctd_amt(i):'||x_tab.tl_uned_tax_alloc_acctd_amt(i));
2649 localdebug(' x_run_uned_tax_acctd_amt:'||x_run_uned_tax_acctd_amt);
2650 localdebug(' l_uned_tax_acctd_alloc:'||l_uned_tax_acctd_alloc);
2651 END IF;
2652 ELSE
2653 x_tab.tl_uned_tax_alloc_acctd_amt(i) := 0;
2654 END IF;
2655
2656
2657 /*-------------------------------------------------+
2658 | Running frt amount in trx currency |
2659 +-------------------------------------------------*/
2660 IF PG_DEBUG = 'Y' THEN
2661 localdebug(' x_run_uned_frt_amt:'||x_run_uned_frt_amt);
2662 localdebug(' x_tab.ELMT_uned_frt_PRO_AMT(i):'||x_tab.ELMT_uned_frt_PRO_AMT(i));
2663 localdebug(' x_tab.buc_uned_frt_alloc_amt(i):'||x_tab.buc_uned_frt_alloc_amt(i));
2664 localdebug(' x_tab.BASE_uned_frt_PRO_AMT(i):'||x_tab.BASE_uned_frt_PRO_AMT(i));
2665 END IF;
2666
2667 IF x_tab.BASE_uned_frt_PRO_AMT(i) <> 0 AND x_tab.buc_uned_frt_alloc_amt(i) <> 0 THEN
2668 x_run_uned_frt_amt := x_run_uned_frt_amt + x_tab.ELMT_uned_frt_PRO_AMT(i);
2669 l_uned_frt_alloc := CurrRound( x_run_uned_frt_amt
2670 / x_tab.BASE_uned_frt_PRO_AMT(i)
2671 * x_tab.buc_uned_frt_alloc_amt(i),
2672 x_tab.to_currency(i))
2673 - x_run_uned_frt_alloc;
2674 x_tab.tl_uned_frt_alloc_amt(i) := l_uned_frt_alloc;
2675 x_run_uned_frt_alloc := x_run_uned_frt_alloc + l_uned_frt_alloc;
2676 ELSIF x_tab.BASE_uned_frt_PRO_AMT(i) = 0 AND g_frt_uned <> 0 AND x_tab.line_type(i) = 'FREIGHT' THEN -- Bug14415571
2677 IF PG_DEBUG = 'Y' THEN
2678 localdebug(' x_run_uned_frt_amt:'||x_run_uned_frt_amt);
2679 localdebug(' x_tab.ELMT_uned_frt_PRO_AMT(i):'||x_tab.ELMT_uned_frt_PRO_AMT(i));
2680 localdebug(' x_tab.buc_uned_frt_alloc_amt(i):'||x_tab.buc_uned_frt_alloc_amt(i));
2681 localdebug(' x_tab.BASE_uned_frt_PRO_AMT(i):'||x_tab.BASE_uned_frt_PRO_AMT(i));
2682 END IF;
2683 IF x_tab.buc_uned_frt_alloc_amt(i) <> 0 THEN
2684 l_uned_frt_alloc := x_tab.buc_uned_frt_alloc_amt(i) - x_run_uned_frt_alloc;
2685 x_tab.tl_uned_frt_alloc_amt(i) := l_uned_frt_alloc;
2686 x_run_uned_frt_amt := x_run_uned_frt_amt + l_uned_frt_alloc;
2687 ELSE x_tab.tl_uned_frt_alloc_amt(i) := 0;
2688 END IF;
2689 IF PG_DEBUG = 'Y' THEN
2690 localdebug(' x_tab.tl_uned_frt_alloc_amt(i):'||x_tab.tl_uned_frt_alloc_amt(i));
2691 localdebug(' x_run_uned_frt_amt:'||x_run_uned_frt_amt);
2692 localdebug(' l_uned_frt_alloc:'||l_uned_frt_alloc);
2693 END IF;
2694 ELSE
2695 x_tab.tl_uned_frt_alloc_amt(i) := 0;
2696 END IF;
2697
2698 IF PG_DEBUG = 'Y' THEN
2699 localdebug(' x_tab.tl_uned_frt_alloc_amt(i):'||x_tab.tl_uned_frt_alloc_amt(i));
2700 localdebug(' x_run_uned_frt_alloc:'||x_run_uned_frt_alloc);
2701 localdebug(' l_uned_frt_alloc:'||l_uned_frt_alloc);
2702 END IF;
2703
2704 /*-------------------------------------------------+
2705 | Running frt acctd amount in trx currency |
2706 +-------------------------------------------------*/
2707 IF x_tab.BASE_uned_frt_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_uned_frt_alloc_acctd_amt(i) <> 0 THEN
2708 x_run_uned_frt_acctd_amt := x_run_uned_frt_acctd_amt + x_tab.ELMT_uned_frt_PRO_ACCTD_AMT(i);
2709 l_uned_frt_acctd_alloc := CurrRound( x_run_uned_frt_acctd_amt
2710 / x_tab.BASE_uned_frt_PRO_ACCTD_AMT(i)
2711 * x_tab.buc_uned_frt_alloc_acctd_amt(i),
2712 x_tab.base_currency(i))
2713 - x_run_uned_frt_acctd_alloc;
2714 x_tab.tl_uned_frt_alloc_acctd_amt(i) := l_uned_frt_acctd_alloc;
2715 x_run_uned_frt_acctd_alloc := x_run_uned_frt_acctd_alloc + l_uned_frt_acctd_alloc;
2716 ELSIF x_tab.BASE_uned_frt_PRO_ACCTD_AMT(i) = 0 AND g_acctd_frt_uned <> 0 AND x_tab.line_type(i) = 'FREIGHT' THEN -- Bug14415571
2717 IF PG_DEBUG = 'Y' THEN
2718 localdebug(' x_run_uned_frt_acctd_amt:'||x_run_uned_frt_acctd_amt);
2719 localdebug(' x_tab.ELMT_uned_frt_PRO_ACCTD_AMT(i):'||x_tab.ELMT_uned_frt_PRO_ACCTD_AMT(i));
2720 localdebug(' x_tab.buc_uned_frt_alloc_acctd_amt(i):'||x_tab.buc_uned_frt_alloc_acctd_amt(i));
2721 localdebug(' x_tab.BASE_uned_frt_PRO_ACCTD_AMT(i):'||x_tab.BASE_uned_frt_PRO_ACCTD_AMT(i));
2722 END IF;
2723 IF x_tab.buc_uned_frt_alloc_acctd_amt(i) <> 0 THEN
2724 l_uned_frt_acctd_alloc := x_tab.buc_uned_frt_alloc_acctd_amt(i) - x_run_uned_frt_acctd_alloc;
2725 x_tab.tl_uned_frt_alloc_acctd_amt(i) := l_uned_frt_acctd_alloc;
2726 x_run_uned_frt_acctd_amt := x_run_uned_frt_acctd_amt + l_uned_frt_acctd_alloc;
2727 ELSE x_tab.tl_uned_frt_alloc_acctd_amt(i) := 0;
2728 END IF;
2729 IF PG_DEBUG = 'Y' THEN
2730 localdebug(' x_tab.tl_uned_frt_alloc_acctd_amt(i):'||x_tab.tl_uned_frt_alloc_acctd_amt(i));
2731 localdebug(' x_run_uned_frt_acctd_amt:'||x_run_uned_frt_acctd_amt);
2732 localdebug(' l_uned_frt_acctd_alloc:'||l_uned_frt_acctd_alloc);
2733 END IF;
2734 ELSE
2735 x_tab.tl_uned_frt_alloc_acctd_amt(i) := 0;
2736 END IF;
2737
2738 /*-------------------------------------------------+
2739 | Running chrg amount in trx currency |
2740 +-------------------------------------------------*/
2741 IF PG_DEBUG = 'Y' THEN
2742 localdebug(' x_run_uned_chrg_amt:'||x_run_uned_chrg_amt);
2743 localdebug(' x_tab.ELMT_uned_CHRG_PRO_AMT(i):'||x_tab.ELMT_uned_CHRG_PRO_AMT(i));
2744 localdebug(' x_tab.buc_uned_chrg_alloc_amt(i):'||x_tab.buc_uned_chrg_alloc_amt(i));
2745 localdebug(' x_tab.BASE_uned_CHRG_PRO_AMT(i):'||x_tab.BASE_uned_CHRG_PRO_AMT(i));
2746 END IF;
2747
2748 IF x_tab.BASE_uned_CHRG_PRO_AMT(i) <> 0 AND x_tab.buc_uned_chrg_alloc_amt(i) <> 0 THEN
2749 x_run_uned_chrg_amt := x_run_uned_chrg_amt + x_tab.ELMT_uned_CHRG_PRO_AMT(i);
2750 l_uned_chrg_alloc := CurrRound( x_run_uned_chrg_amt
2751 / x_tab.BASE_uned_CHRG_PRO_AMT(i)
2752 * x_tab.buc_uned_chrg_alloc_amt(i),
2753 x_tab.to_currency(i))
2754 - x_run_uned_chrg_alloc;
2755 x_tab.tl_uned_chrg_alloc_amt(i) := l_uned_chrg_alloc;
2756 x_run_uned_chrg_alloc := x_run_uned_chrg_alloc + l_uned_chrg_alloc;
2757 ELSIF x_tab.BASE_uned_CHRG_PRO_AMT(i) = 0 AND g_chrg_uned <> 0 AND x_tab.line_type(i) = 'CHARGES' THEN -- Bug14415571
2758 IF PG_DEBUG = 'Y' THEN
2759 localdebug(' x_run_uned_chrg_amt:'||x_run_uned_chrg_amt);
2760 localdebug(' x_tab.ELMT_uned_CHRG_PRO_AMT(i):'||x_tab.ELMT_uned_CHRG_PRO_AMT(i));
2761 localdebug(' x_tab.buc_uned_chrg_alloc_amt(i):'||x_tab.buc_uned_chrg_alloc_amt(i));
2762 localdebug(' x_tab.BASE_uned_CHRG_PRO_AMT(i):'||x_tab.BASE_uned_CHRG_PRO_AMT(i));
2763 END IF;
2764 IF x_tab.buc_uned_chrg_alloc_amt(i) <> 0 THEN
2765 l_uned_chrg_alloc := x_tab.buc_uned_chrg_alloc_amt(i) - x_run_uned_chrg_alloc;
2766 x_tab.tl_uned_chrg_alloc_amt(i) := l_uned_chrg_alloc;
2767 x_run_uned_chrg_amt := x_run_uned_chrg_amt + l_uned_chrg_alloc;
2768 ELSE x_tab.tl_uned_chrg_alloc_amt(i) := 0;
2769 END IF;
2770 IF PG_DEBUG = 'Y' THEN
2771 localdebug(' x_tab.tl_uned_chrg_alloc_amt(i):'||x_tab.tl_uned_chrg_alloc_amt(i));
2772 localdebug(' x_run_uned_chrg_amt:'||x_run_uned_chrg_amt);
2773 localdebug(' l_uned_chrg_alloc:'||l_uned_chrg_alloc);
2774 END IF;
2775 ELSE
2776 x_tab.tl_uned_chrg_alloc_amt(i) := 0;
2777 END IF;
2778
2779 IF PG_DEBUG = 'Y' THEN
2780 localdebug(' x_tab.tl_uned_chrg_alloc_amt(i):'||x_tab.tl_uned_chrg_alloc_amt(i));
2781 localdebug(' x_run_uned_chrg_alloc:'||x_run_uned_chrg_alloc);
2782 localdebug(' l_uned_chrg_alloc:'||l_uned_chrg_alloc);
2783 END IF;
2784
2785 /*-------------------------------------------------+
2786 | Running chrg acctd amount in trx currency |
2787 +-------------------------------------------------*/
2788 IF x_tab.BASE_uned_CHRG_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_uned_chrg_alloc_acctd_amt(i) <> 0 THEN
2789 x_run_uned_chrg_acctd_amt := x_run_uned_chrg_acctd_amt + x_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT(i);
2790 l_uned_chrg_acctd_alloc := CurrRound( x_run_uned_chrg_acctd_amt
2791 / x_tab.BASE_uned_CHRG_PRO_ACCTD_AMT(i)
2792 * x_tab.buc_uned_chrg_alloc_acctd_amt(i),
2793 x_tab.base_currency(i))
2794 - x_run_uned_chrg_acctd_alloc;
2795 x_tab.tl_uned_chrg_alloc_acctd_amt(i) := l_uned_chrg_acctd_alloc;
2796 x_run_uned_chrg_acctd_alloc := x_run_uned_chrg_acctd_alloc + l_uned_chrg_acctd_alloc;
2797 ELSIF x_tab.BASE_uned_CHRG_PRO_ACCTD_AMT(i) = 0 AND g_acctd_chrg_uned <> 0 AND x_tab.line_type(i) = 'CHARGES' THEN -- Bug14415571
2798 IF PG_DEBUG = 'Y' THEN
2799 localdebug(' x_run_uned_chrg_acctd_amt:'||x_run_uned_chrg_acctd_amt);
2800 localdebug(' x_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT(i):'||x_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT(i));
2801 localdebug(' x_tab.buc_uned_chrg_alloc_acctd_amt(i):'||x_tab.buc_uned_chrg_alloc_acctd_amt(i));
2802 localdebug(' x_tab.BASE_uned_CHRG_PRO_ACCTD_AMT(i):'||x_tab.BASE_uned_CHRG_PRO_ACCTD_AMT(i));
2803 END IF;
2804 IF x_tab.buc_uned_chrg_alloc_acctd_amt(i) <> 0 THEN
2805 l_uned_chrg_acctd_alloc := x_tab.buc_uned_chrg_alloc_acctd_amt(i) - x_run_uned_chrg_acctd_alloc;
2806 x_tab.tl_uned_chrg_alloc_acctd_amt(i) := l_uned_chrg_acctd_alloc;
2807 x_run_uned_chrg_acctd_amt := x_run_uned_chrg_acctd_amt + l_uned_chrg_acctd_alloc;
2808 ELSE x_tab.tl_uned_chrg_alloc_acctd_amt(i) := 0;
2809 END IF;
2810 IF PG_DEBUG = 'Y' THEN
2811 localdebug(' x_tab.tl_uned_chrg_alloc_acctd_amt(i):'||x_tab.tl_uned_chrg_alloc_acctd_amt(i));
2812 localdebug(' x_run_uned_chrg_acctd_amt:'||x_run_uned_chrg_acctd_amt);
2813 localdebug(' l_uned_chrg_acctd_alloc:'||l_uned_chrg_acctd_alloc);
2814 END IF;
2815 ELSE
2816 x_tab.tl_uned_chrg_alloc_acctd_amt(i) := 0;
2817 END IF;
2818 ELSE
2819
2820 x_tab.tl_uned_alloc_amt(i) := 0;
2821 x_tab.tl_uned_alloc_acctd_amt(i) := 0;
2822 x_tab.tl_uned_tax_alloc_amt(i) := 0;
2823 x_tab.tl_uned_tax_alloc_acctd_amt(i) := 0;
2824 x_tab.tl_uned_frt_alloc_amt(i) := 0;
2825 x_tab.tl_uned_frt_alloc_acctd_amt(i) := 0;
2826 x_tab.tl_uned_chrg_alloc_amt(i) := 0;
2827 x_tab.tl_uned_chrg_alloc_acctd_amt(i) := 0;
2828
2829 END IF;
2830
2831 IF i = x_tab.ROWID_ID.LAST THEN
2832 -- Store the last group
2833 store_group
2834 (p_groupe => l_group,
2835 -- ADJ and APP
2836 p_run_amt => x_run_amt,
2837 p_run_alloc => x_run_alloc,
2838 p_run_acctd_amt => x_run_acctd_amt,
2839 p_run_acctd_alloc => x_run_acctd_alloc,
2840 p_run_chrg_amt => x_run_chrg_amt,
2841 p_run_chrg_alloc => x_run_chrg_alloc,
2842 p_run_chrg_acctd_amt => x_run_chrg_acctd_amt,
2843 p_run_chrg_acctd_alloc => x_run_chrg_acctd_alloc,
2844 p_run_frt_amt => x_run_frt_amt,
2845 p_run_frt_alloc => x_run_frt_alloc,
2846 p_run_frt_acctd_amt => x_run_frt_acctd_amt,
2847 p_run_frt_acctd_alloc => x_run_frt_acctd_alloc,
2848 p_run_tax_amt => x_run_tax_amt,
2849 p_run_tax_alloc => x_run_tax_alloc,
2850 p_run_tax_acctd_amt => x_run_tax_acctd_amt,
2851 p_run_tax_acctd_alloc => x_run_tax_acctd_alloc,
2852 -- ED
2853 p_run_ed_amt => x_run_ed_amt,
2854 p_run_ed_alloc => x_run_ed_alloc,
2855 p_run_ed_acctd_amt => x_run_ed_acctd_amt,
2856 p_run_ed_acctd_alloc => x_run_ed_acctd_alloc,
2857 p_run_ed_chrg_amt => x_run_ed_chrg_amt,
2858 p_run_ed_chrg_alloc => x_run_ed_chrg_alloc,
2859 p_run_ed_chrg_acctd_amt => x_run_ed_chrg_acctd_amt,
2860 p_run_ed_chrg_acctd_alloc => x_run_ed_chrg_acctd_alloc,
2861 p_run_ed_frt_amt => x_run_ed_frt_amt,
2862 p_run_ed_frt_alloc => x_run_ed_frt_alloc,
2863 p_run_ed_frt_acctd_amt => x_run_ed_frt_acctd_amt,
2864 p_run_ed_frt_acctd_alloc => x_run_ed_frt_acctd_alloc,
2865 p_run_ed_tax_amt => x_run_ed_tax_amt,
2866 p_run_ed_tax_alloc => x_run_ed_tax_alloc,
2867 p_run_ed_tax_acctd_amt => x_run_ed_tax_acctd_amt,
2868 p_run_ed_tax_acctd_alloc => x_run_ed_tax_acctd_alloc,
2869 -- UNED
2870 p_run_uned_amt => x_run_uned_amt,
2871 p_run_uned_alloc => x_run_uned_alloc,
2872 p_run_uned_acctd_amt => x_run_uned_acctd_amt,
2873 p_run_uned_acctd_alloc => x_run_uned_acctd_alloc,
2874 p_run_uned_chrg_amt => x_run_uned_chrg_amt,
2875 p_run_uned_chrg_alloc => x_run_uned_chrg_alloc,
2876 p_run_uned_chrg_acctd_amt => x_run_uned_chrg_acctd_amt,
2877 p_run_uned_chrg_acctd_alloc => x_run_uned_chrg_acctd_alloc,
2878 p_run_uned_frt_amt => x_run_uned_frt_amt,
2879 p_run_uned_frt_alloc => x_run_uned_frt_alloc,
2880 p_run_uned_frt_acctd_amt => x_run_uned_frt_acctd_amt,
2881 p_run_uned_frt_acctd_alloc => x_run_uned_frt_acctd_alloc,
2882 p_run_uned_tax_amt => x_run_uned_tax_amt,
2883 p_run_uned_tax_alloc => x_run_uned_tax_alloc,
2884 p_run_uned_tax_acctd_amt => x_run_uned_tax_acctd_amt,
2885 p_run_uned_tax_acctd_alloc => x_run_uned_tax_acctd_alloc,
2886 --
2887 x_group_tbl => x_group_tbl);
2888 END IF;
2889
2890 END LOOP;
2891 IF PG_DEBUG = 'Y' THEN
2892 localdebug('arp_det_dist_pkg.plsql_proration()-');
2893 END IF;
2894 EXCEPTION
2895 WHEN tbl_pro_res_tbl_empty THEN
2896 IF PG_DEBUG = 'Y' THEN
2897 localdebug('EXCEPTION tbl_pro_res_tbl_empty in PLSQL_PRORATION '||
2898 ' table containing element over which proration should happen is empty');
2899 END IF;
2900 WHEN OTHERS THEN
2901 IF PG_DEBUG = 'Y' THEN
2902 localdebug('EXCEPTION OTHERS in PLSQL_PRORATION :'|| SQLERRM);
2903 END IF;
2904 RAISE;
2905 END plsql_proration;
2906
2907
2908
2909 PROCEDURE update_line
2910 (p_gt_id IN VARCHAR2,
2911 p_customer_trx_id IN NUMBER,
2912 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
2913 IS
2914 CURSOR c_read_for_line IS
2915 SELECT /*+ leading(b) INDEX (b ra_ar_n1) INDEX( d RA_AR_AMOUNTS_GT_N1 )
2916 use_nl(D) */
2917 b.group_id||'-'||b.line_type||'-'||
2918 b.ref_customer_trx_id || '-' ||
2919 b.ref_customer_trx_line_id groupe,
2920 -- ADJ AND APP
2921 --Base
2922 d.base_pro_amt,
2923 d.base_pro_acctd_amt,
2924 d.base_frt_pro_amt,
2925 d.base_frt_pro_acctd_amt,
2926 d.base_tax_pro_amt,
2927 d.base_tax_pro_acctd_amt,
2928 d.BASE_CHRG_PRO_AMT,
2929 d.BASE_CHRG_PRO_ACCTD_AMT,
2930 --Element
2931 d.elmt_pro_amt,
2932 d.elmt_pro_acctd_amt,
2933 d.ELMT_FRT_PRO_AMT,
2934 d.ELMT_FRT_PRO_ACCTD_AMT,
2935 d.ELMT_tax_PRO_AMT,
2936 d.ELMT_tax_PRO_ACCTD_AMT,
2937 d.ELMT_CHRG_PRO_AMT,
2938 d.ELMT_CHRG_PRO_ACCTD_AMT,
2939 --Amount to be allocated
2940 d.buc_alloc_amt,
2941 d.buc_alloc_acctd_amt,
2942 d.buc_frt_alloc_amt,
2943 d.buc_frt_alloc_acctd_amt,
2944 d.buc_tax_alloc_amt,
2945 d.buc_tax_alloc_acctd_amt,
2946 d.buc_chrg_alloc_amt,
2947 d.buc_chrg_alloc_acctd_amt,
2948 -- ED
2949 --Base
2950 d.base_ed_pro_amt,
2951 d.base_ed_pro_acctd_amt,
2952 d.BASE_ed_frt_PRO_AMT,
2953 d.BASE_ed_frt_PRO_ACCTD_AMT,
2954 d.BASE_ed_tax_PRO_AMT,
2955 d.BASE_ed_tax_PRO_ACCTD_AMT,
2956 d.BASE_ed_CHRG_PRO_AMT,
2957 d.BASE_ed_CHRG_PRO_ACCTD_AMT,
2958 --Element
2959 d.elmt_ed_pro_amt,
2960 d.elmt_ed_pro_acctd_amt,
2961 d.ELMT_ed_FRT_PRO_AMT,
2962 d.ELMT_ed_FRT_PRO_ACCTD_AMT,
2963 d.ELMT_ed_tax_PRO_AMT,
2964 d.ELMT_ed_tax_PRO_ACCTD_AMT,
2965 d.ELMT_ed_CHRG_PRO_AMT,
2966 d.ELMT_ed_CHRG_PRO_ACCTD_AMT,
2967 --Amount to be allocated
2968 d.buc_ed_alloc_amt,
2969 d.buc_ed_alloc_acctd_amt,
2970 d.buc_ed_frt_alloc_amt,
2971 d.buc_ed_frt_alloc_acctd_amt,
2972 d.buc_ed_tax_alloc_amt,
2973 d.buc_ed_tax_alloc_acctd_amt,
2974 d.buc_ed_chrg_alloc_amt,
2975 d.buc_ed_chrg_alloc_acctd_amt,
2976 -- UNED
2977 --Base
2978 d.base_uned_pro_amt,
2979 d.base_uned_pro_acctd_amt,
2980 d.BASE_uned_FRT_PRO_AMT,
2981 d.BASE_uned_FRT_PRO_ACCTD_AMT,
2982 d.BASE_uned_tax_PRO_AMT,
2983 d.BASE_uned_tax_PRO_ACCTD_AMT,
2984 d.BASE_uned_CHRG_PRO_AMT,
2985 d.BASE_uned_CHRG_PRO_ACCTD_AMT,
2986 --Element
2987 d.elmt_uned_pro_amt,
2988 d.elmt_uned_pro_acctd_amt,
2989 d.ELMT_uned_FRT_PRO_AMT,
2990 d.ELMT_uned_FRT_PRO_ACCTD_AMT,
2991 d.ELMT_uned_tax_PRO_AMT,
2992 d.ELMT_uned_tax_PRO_ACCTD_AMT,
2993 d.ELMT_uned_CHRG_PRO_AMT,
2994 d.ELMT_uned_CHRG_PRO_ACCTD_AMT,
2995 --Amount to be allocated
2996 d.buc_uned_alloc_amt,
2997 d.buc_uned_alloc_acctd_amt,
2998 d.buc_uned_frt_alloc_amt,
2999 d.buc_uned_frt_alloc_acctd_amt,
3000 d.buc_uned_tax_alloc_amt,
3001 d.buc_uned_tax_alloc_acctd_amt,
3002 d.buc_uned_chrg_alloc_amt,
3003 d.buc_uned_chrg_alloc_acctd_amt,
3004 ----
3005 --Currencies
3006 b.BASE_CURRENCY ,
3007 b.TO_CURRENCY ,
3008 b.FROM_CURRENCY ,
3009 -- Rowid
3010 b.rowid,
3011 b.line_type
3012 FROM RA_AR_GT b,
3013 RA_AR_AMOUNTS_GT d
3014 WHERE b.gt_id = p_gt_id
3015 AND b.ref_customer_trx_id = p_customer_trx_id
3016 AND b.gp_level = 'L'
3017 AND d.gt_id = b.gt_id
3018 AND d.base_rec_rowid = b.rowid
3019 --Bug#3611016
3020 AND b.SET_OF_BOOKS_ID = p_ae_sys_rec.set_of_books_id
3021 AND (b.SOB_TYPE = p_ae_sys_rec.sob_type OR
3022 (b.SOB_TYPE IS NULL AND p_ae_sys_rec.sob_type IS NULL))
3023 ORDER BY b.group_id||'-'||
3024 b.line_type||'-'||b.ref_customer_trx_id || '-' ||b.ref_customer_trx_line_id;
3025 l_tab pro_res_tbl_type;
3026
3027 l_group_tbl group_tbl_type;
3028 l_group VARCHAR2(900) := 'NOGROUP';
3029
3030 -- ADJ and APP
3031 l_run_amt NUMBER := 0;
3032 l_run_alloc NUMBER := 0;
3033 l_run_acctd_amt NUMBER := 0;
3034 l_run_acctd_alloc NUMBER := 0;
3035 l_alloc NUMBER := 0;
3036 l_acctd_alloc NUMBER := 0;
3037
3038 l_run_chrg_amt NUMBER := 0;
3039 l_run_chrg_alloc NUMBER := 0;
3040 l_run_chrg_acctd_amt NUMBER := 0;
3041 l_run_chrg_acctd_alloc NUMBER := 0;
3042 l_chrg_alloc NUMBER := 0;
3043 l_chrg_acctd_alloc NUMBER := 0;
3044
3045 l_run_frt_amt NUMBER := 0;
3046 l_run_frt_alloc NUMBER := 0;
3047 l_run_frt_acctd_amt NUMBER := 0;
3048 l_run_frt_acctd_alloc NUMBER := 0;
3049 l_frt_alloc NUMBER := 0;
3050 l_frt_acctd_alloc NUMBER := 0;
3051
3052 l_run_tax_amt NUMBER := 0;
3053 l_run_tax_alloc NUMBER := 0;
3054 l_run_tax_acctd_amt NUMBER := 0;
3055 l_run_tax_acctd_alloc NUMBER := 0;
3056 l_tax_alloc NUMBER := 0;
3057 l_tax_acctd_alloc NUMBER := 0;
3058
3059
3060 -- ED
3061 l_run_ed_amt NUMBER := 0;
3062 l_run_ed_alloc NUMBER := 0;
3063 l_run_ed_acctd_amt NUMBER := 0;
3064 l_run_ed_acctd_alloc NUMBER := 0;
3065 l_ed_alloc NUMBER := 0;
3066 l_ed_acctd_alloc NUMBER := 0;
3067
3068 l_run_ed_chrg_amt NUMBER := 0;
3069 l_run_ed_chrg_alloc NUMBER := 0;
3070 l_run_ed_chrg_acctd_amt NUMBER := 0;
3071 l_run_ed_chrg_acctd_alloc NUMBER := 0;
3072 l_ed_chrg_alloc NUMBER := 0;
3073 l_ed_chrg_acctd_alloc NUMBER := 0;
3074
3075 l_run_ed_frt_amt NUMBER := 0;
3076 l_run_ed_frt_alloc NUMBER := 0;
3077 l_run_ed_frt_acctd_amt NUMBER := 0;
3078 l_run_ed_frt_acctd_alloc NUMBER := 0;
3079 l_ed_frt_alloc NUMBER := 0;
3080 l_ed_frt_acctd_alloc NUMBER := 0;
3081
3082 l_run_ed_tax_amt NUMBER := 0;
3083 l_run_ed_tax_alloc NUMBER := 0;
3084 l_run_ed_tax_acctd_amt NUMBER := 0;
3085 l_run_ed_tax_acctd_alloc NUMBER := 0;
3086 l_ed_tax_alloc NUMBER := 0;
3087 l_ed_tax_acctd_alloc NUMBER := 0;
3088
3089 -- UNED
3090 l_run_uned_amt NUMBER := 0;
3091 l_run_uned_alloc NUMBER := 0;
3092 l_run_uned_acctd_amt NUMBER := 0;
3093 l_run_uned_acctd_alloc NUMBER := 0;
3094 l_uned_alloc NUMBER := 0;
3095 l_uned_acctd_alloc NUMBER := 0;
3096
3097 l_run_uned_chrg_amt NUMBER := 0;
3098 l_run_uned_chrg_alloc NUMBER := 0;
3099 l_run_uned_chrg_acctd_amt NUMBER := 0;
3100 l_run_uned_chrg_acctd_alloc NUMBER := 0;
3101 l_uned_chrg_alloc NUMBER := 0;
3102 l_uned_chrg_acctd_alloc NUMBER := 0;
3103
3104 l_run_uned_frt_amt NUMBER := 0;
3105 l_run_uned_frt_alloc NUMBER := 0;
3106 l_run_uned_frt_acctd_amt NUMBER := 0;
3107 l_run_uned_frt_acctd_alloc NUMBER := 0;
3108 l_uned_frt_alloc NUMBER := 0;
3109 l_uned_frt_acctd_alloc NUMBER := 0;
3110
3111 l_run_uned_tax_amt NUMBER := 0;
3112 l_run_uned_tax_alloc NUMBER := 0;
3113 l_run_uned_tax_acctd_amt NUMBER := 0;
3114 l_run_uned_tax_acctd_alloc NUMBER := 0;
3115 l_uned_tax_alloc NUMBER := 0;
3116 l_uned_tax_acctd_alloc NUMBER := 0;
3117
3118 l_exist BOOLEAN;
3119 l_last_fetch BOOLEAN;
3120
3121 BEGIN
3122 IF PG_DEBUG = 'Y' THEN
3123 localdebug('arp_det_dist_pkg.update_line()+');
3124 END IF;
3125
3126 OPEN c_read_for_line;
3127 LOOP
3128 FETCH c_read_for_line BULK COLLECT INTO
3129 l_tab.GROUPE ,
3130 -- ADJ and APP
3131 -- Base
3132 l_tab.base_pro_amt ,
3133 l_tab.base_pro_acctd_amt ,
3134 l_tab.BASE_FRT_PRO_AMT ,
3135 l_tab.BASE_FRT_PRO_ACCTD_AMT ,
3136 l_tab.BASE_tax_PRO_AMT ,
3137 l_tab.BASE_tax_PRO_ACCTD_AMT ,
3138 l_tab.BASE_CHRG_PRO_AMT ,
3139 l_tab.BASE_CHRG_PRO_ACCTD_AMT ,
3140 -- Element numerator
3141 l_tab.elmt_pro_amt ,
3142 l_tab.elmt_pro_acctd_amt ,
3143 l_tab.ELMT_FRT_PRO_AMT ,
3144 l_tab.ELMT_FRT_PRO_ACCTD_AMT ,
3145 l_tab.ELMT_tax_PRO_AMT ,
3146 l_tab.ELMT_tax_PRO_ACCTD_AMT ,
3147 l_tab.ELMT_CHRG_PRO_AMT ,
3148 l_tab.ELMT_CHRG_PRO_ACCTD_AMT ,
3149 -- Amount to be allocated
3150 l_tab.buc_alloc_amt ,
3151 l_tab.buc_alloc_acctd_amt,
3152 l_tab.buc_frt_alloc_amt ,
3153 l_tab.buc_frt_alloc_acctd_amt,
3154 l_tab.buc_tax_alloc_amt ,
3155 l_tab.buc_tax_alloc_acctd_amt,
3156 l_tab.buc_chrg_alloc_amt ,
3157 l_tab.buc_chrg_alloc_acctd_amt,
3158 -- ED
3159 -- Base
3160 l_tab.base_ed_pro_amt ,
3161 l_tab.base_ed_pro_acctd_amt ,
3162 l_tab.BASE_ed_FRT_PRO_AMT ,
3163 l_tab.BASE_ed_FRT_PRO_ACCTD_AMT ,
3164 l_tab.BASE_ed_tax_PRO_AMT ,
3165 l_tab.BASE_ed_tax_PRO_ACCTD_AMT ,
3166 l_tab.BASE_ed_CHRG_PRO_AMT ,
3167 l_tab.BASE_ed_CHRG_PRO_ACCTD_AMT ,
3168 -- Element numerator
3169 l_tab.elmt_ed_pro_amt ,
3170 l_tab.elmt_ed_pro_acctd_amt ,
3171 l_tab.ELMT_ed_FRT_PRO_AMT ,
3172 l_tab.ELMT_ed_FRT_PRO_ACCTD_AMT ,
3173 l_tab.ELMT_ed_tax_PRO_AMT ,
3174 l_tab.ELMT_ed_tax_PRO_ACCTD_AMT ,
3175 l_tab.ELMT_ed_CHRG_PRO_AMT ,
3176 l_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT ,
3177 -- Amount to be allocated
3178 l_tab.buc_ed_alloc_amt ,
3179 l_tab.buc_ed_alloc_acctd_amt,
3180 l_tab.buc_ed_frt_alloc_amt ,
3181 l_tab.buc_ed_frt_alloc_acctd_amt,
3182 l_tab.buc_ed_tax_alloc_amt ,
3183 l_tab.buc_ed_tax_alloc_acctd_amt,
3184 l_tab.buc_ed_chrg_alloc_amt ,
3185 l_tab.buc_ed_chrg_alloc_acctd_amt,
3186 -- UNED
3187 -- Base
3188 l_tab.base_uned_pro_amt ,
3189 l_tab.base_uned_pro_acctd_amt ,
3190 l_tab.BASE_uned_FRT_PRO_AMT ,
3191 l_tab.BASE_uned_FRT_PRO_ACCTD_AMT ,
3192 l_tab.BASE_uned_tax_PRO_AMT ,
3193 l_tab.BASE_uned_tax_PRO_ACCTD_AMT ,
3194 l_tab.BASE_uned_CHRG_PRO_AMT ,
3195 l_tab.BASE_uned_CHRG_PRO_ACCTD_AMT ,
3196 -- Element numerator
3197 l_tab.elmt_uned_pro_amt ,
3198 l_tab.elmt_uned_pro_acctd_amt ,
3199 l_tab.ELMT_uned_FRT_PRO_AMT ,
3200 l_tab.ELMT_uned_FRT_PRO_ACCTD_AMT ,
3201 l_tab.ELMT_uned_tax_PRO_AMT ,
3202 l_tab.ELMT_uned_tax_PRO_ACCTD_AMT ,
3203 l_tab.ELMT_uned_CHRG_PRO_AMT ,
3204 l_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT ,
3205 -- Amount to be allocated
3206 l_tab.buc_uned_alloc_amt ,
3207 l_tab.buc_uned_alloc_acctd_amt,
3208 l_tab.buc_uned_frt_alloc_amt ,
3209 l_tab.buc_uned_frt_alloc_acctd_amt,
3210 l_tab.buc_uned_tax_alloc_amt ,
3211 l_tab.buc_uned_tax_alloc_acctd_amt,
3212 l_tab.buc_uned_chrg_alloc_amt ,
3213 l_tab.buc_uned_chrg_alloc_acctd_amt,
3214 --
3215 l_tab.BASE_CURRENCY ,
3216 l_tab.TO_CURRENCY ,
3217 l_tab.FROM_CURRENCY ,
3218 --
3219 l_tab.ROWID_ID,
3220 l_tab.line_type LIMIT g_bulk_fetch_rows;
3221
3222 IF c_read_for_line%NOTFOUND THEN
3223 l_last_fetch := TRUE;
3224 END IF;
3225
3226 IF (l_tab.ROWID_ID.COUNT = 0) AND (l_last_fetch) THEN
3227 IF PG_DEBUG = 'Y' THEN
3228 localdebug('COUNT = 0 and LAST FETCH ');
3229 END IF;
3230 EXIT;
3231 END IF;
3232
3233 plsql_proration( x_tab => l_tab,
3234 x_group_tbl => l_group_tbl,
3235 p_group_level => 'L',
3236 -- ADJ and APP
3237 x_run_amt => l_run_amt,
3238 x_run_alloc => l_run_alloc,
3239 x_run_acctd_amt => l_run_acctd_amt,
3240 x_run_acctd_alloc => l_run_acctd_alloc,
3241 x_run_chrg_amt => l_run_chrg_amt,
3242 x_run_chrg_alloc => l_run_chrg_alloc,
3243 x_run_chrg_acctd_amt => l_run_chrg_acctd_amt,
3244 x_run_chrg_acctd_alloc => l_run_chrg_acctd_alloc,
3245 x_run_frt_amt => l_run_frt_amt,
3246 x_run_frt_alloc => l_run_frt_alloc,
3247 x_run_frt_acctd_amt => l_run_frt_acctd_amt,
3248 x_run_frt_acctd_alloc => l_run_frt_acctd_alloc,
3249 x_run_tax_amt => l_run_tax_amt,
3250 x_run_tax_alloc => l_run_tax_alloc,
3251 x_run_tax_acctd_amt => l_run_tax_acctd_amt,
3252 x_run_tax_acctd_alloc => l_run_tax_acctd_alloc,
3253 -- ED
3254 x_run_ed_amt => l_run_ed_amt,
3255 x_run_ed_alloc => l_run_ed_alloc,
3256 x_run_ed_acctd_amt => l_run_ed_acctd_amt,
3257 x_run_ed_acctd_alloc => l_run_ed_acctd_alloc,
3258 x_run_ed_chrg_amt => l_run_ed_chrg_amt,
3259 x_run_ed_chrg_alloc => l_run_ed_chrg_alloc,
3260 x_run_ed_chrg_acctd_amt => l_run_ed_chrg_acctd_amt,
3261 x_run_ed_chrg_acctd_alloc => l_run_ed_chrg_acctd_alloc,
3262 x_run_ed_frt_amt => l_run_ed_frt_amt,
3263 x_run_ed_frt_alloc => l_run_ed_frt_alloc,
3264 x_run_ed_frt_acctd_amt => l_run_ed_frt_acctd_amt,
3265 x_run_ed_frt_acctd_alloc => l_run_ed_frt_acctd_alloc,
3266 x_run_ed_tax_amt => l_run_ed_tax_amt,
3267 x_run_ed_tax_alloc => l_run_ed_tax_alloc,
3268 x_run_ed_tax_acctd_amt => l_run_ed_tax_acctd_amt,
3269 x_run_ed_tax_acctd_alloc => l_run_ed_tax_acctd_alloc,
3270 -- UNED
3271 x_run_uned_amt => l_run_uned_amt,
3272 x_run_uned_alloc => l_run_uned_alloc,
3273 x_run_uned_acctd_amt => l_run_uned_acctd_amt,
3274 x_run_uned_acctd_alloc => l_run_uned_acctd_alloc,
3275 x_run_uned_chrg_amt => l_run_uned_chrg_amt,
3276 x_run_uned_chrg_alloc => l_run_uned_chrg_alloc,
3277 x_run_uned_chrg_acctd_amt => l_run_uned_chrg_acctd_amt,
3278 x_run_uned_chrg_acctd_alloc => l_run_uned_chrg_acctd_alloc,
3279 x_run_uned_frt_amt => l_run_uned_frt_amt,
3280 x_run_uned_frt_alloc => l_run_uned_frt_alloc,
3281 x_run_uned_frt_acctd_amt => l_run_uned_frt_acctd_amt,
3282 x_run_uned_frt_acctd_alloc => l_run_uned_frt_acctd_alloc,
3283 x_run_uned_tax_amt => l_run_uned_tax_amt,
3284 x_run_uned_tax_alloc => l_run_uned_tax_alloc,
3285 x_run_uned_tax_acctd_amt => l_run_uned_tax_acctd_amt,
3286 x_run_uned_tax_acctd_alloc => l_run_uned_tax_acctd_alloc
3287 );
3288
3289 IF PG_DEBUG = 'Y' THEN
3290 localdebug(' update ra_ar_gt trx_line_all ');
3291 END IF;
3292 FORALL i IN l_tab.ROWID_ID.FIRST .. l_tab.ROWID_ID.LAST
3293 UPDATE ra_ar_gt
3294 SET
3295 -- ADJ and APP
3296 tl_alloc_amt = l_tab.tl_alloc_amt(i),
3297 tl_alloc_acctd_amt = l_tab.tl_alloc_acctd_amt(i),
3298 tl_chrg_alloc_amt = l_tab.tl_chrg_alloc_amt(i),
3299 tl_chrg_alloc_acctd_amt = l_tab.tl_chrg_alloc_acctd_amt(i),
3300 tl_frt_alloc_amt = l_tab.tl_frt_alloc_amt(i),
3301 tl_frt_alloc_acctd_amt = l_tab.tl_frt_alloc_acctd_amt(i),
3302 tl_tax_alloc_amt = l_tab.tl_tax_alloc_amt(i),
3303 tl_tax_alloc_acctd_amt = l_tab.tl_tax_alloc_acctd_amt(i),
3304 -- ED
3305 tl_ed_alloc_amt = l_tab.tl_ed_alloc_amt(i),
3306 tl_ed_alloc_acctd_amt = l_tab.tl_ed_alloc_acctd_amt(i),
3307 tl_ed_chrg_alloc_amt = l_tab.tl_ed_chrg_alloc_amt(i),
3308 tl_ed_chrg_alloc_acctd_amt = l_tab.tl_ed_chrg_alloc_acctd_amt(i),
3309 tl_ed_frt_alloc_amt = l_tab.tl_ed_frt_alloc_amt(i),
3310 tl_ed_frt_alloc_acctd_amt = l_tab.tl_ed_frt_alloc_acctd_amt(i),
3311 tl_ed_tax_alloc_amt = l_tab.tl_ed_tax_alloc_amt(i),
3312 tl_ed_tax_alloc_acctd_amt = l_tab.tl_ed_tax_alloc_acctd_amt(i),
3313 -- UNED
3314 tl_uned_alloc_amt = l_tab.tl_uned_alloc_amt(i),
3315 tl_uned_alloc_acctd_amt = l_tab.tl_uned_alloc_acctd_amt(i),
3316 tl_uned_chrg_alloc_amt = l_tab.tl_uned_chrg_alloc_amt(i),
3317 tl_uned_chrg_alloc_acctd_amt = l_tab.tl_uned_chrg_alloc_acctd_amt(i),
3318 tl_uned_frt_alloc_amt = l_tab.tl_uned_frt_alloc_amt(i),
3319 tl_uned_frt_alloc_acctd_amt = l_tab.tl_uned_frt_alloc_acctd_amt(i),
3320 tl_uned_tax_alloc_amt = l_tab.tl_uned_tax_alloc_amt(i),
3321 tl_uned_tax_alloc_acctd_amt = l_tab.tl_uned_tax_alloc_acctd_amt(i)
3322 WHERE rowid = l_tab.ROWID_ID(i);
3323 IF PG_DEBUG = 'Y' THEN
3324 localdebug(' update ra_ar_gt trx_line_all ');
3325 END IF;
3326
3327 END LOOP;
3328 CLOSE c_read_for_line;
3329 IF PG_DEBUG = 'Y' THEN
3330 localdebug('arp_det_dist_pkg.update_line()-');
3331 END IF;
3332 END update_line;
3333
3334
3335 PROCEDURE get_invoice_line_info
3336 (p_gt_id IN VARCHAR2,
3337 p_customer_trx_id IN NUMBER,
3338 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
3339 p_mode IN VARCHAR2)
3340 IS
3341
3342 l_rows NUMBER;
3343
3344 BEGIN
3345 IF PG_DEBUG = 'Y' THEN
3346 localdebug('arp_det_dist_pkg.get_invoice_line_info()+');
3347 localdebug(' p_mode :'||p_mode);
3348 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
3349 localdebug(' sob_type :'||p_ae_sys_rec.sob_type);
3350 localdebug(' set_of_books_id :'||p_ae_sys_rec.set_of_books_id);
3351 END IF;
3352
3353 IF PG_DEBUG = 'Y' THEN
3354 localdebug(' for regular transaction');
3355 END IF;
3356 INSERT INTO RA_AR_GT
3357 ( GT_ID ,
3358 BASE_CURRENCY ,
3359 TO_CURRENCY ,
3360 REF_CUSTOMER_TRX_ID ,
3361 REF_CUSTOMER_TRX_LINE_ID ,
3362 --
3363 DUE_ORIG_AMT ,
3364 DUE_ORIG_ACCTD_AMT ,
3365 --{line of type CHRG
3366 CHRG_ORIG_AMT ,
3367 CHRG_ORIG_ACCTD_AMT ,
3368 --}
3369 --
3370 FRT_ORIG_AMT ,
3371 FRT_ORIG_ACCTD_AMT ,
3372 TAX_ORIG_AMT ,
3373 TAX_ORIG_ACCTD_AMT ,
3374 --
3375 DUE_REM_AMT ,
3376 DUE_REM_ACCTD_AMT ,
3377 CHRG_REM_AMT ,
3378 CHRG_REM_ACCTD_AMT ,
3379 --
3380 FRT_REM_AMT ,
3381 FRT_REM_ACCTD_AMT ,
3382 TAX_REM_AMT ,
3383 TAX_REM_ACCTD_AMT ,
3384 --
3385 --{line of type CHRG
3386 CHRG_ADJ_REM_AMT ,
3387 CHRG_ADJ_REM_ACCTD_AMT ,
3388 --}
3389 FRT_ADJ_REM_AMT ,
3390 FRT_ADJ_REM_ACCTD_AMT ,
3391 --
3392 LINE_TYPE ,
3393 group_id ,
3394 --{HYUBPAGP
3395 source_data_key1 ,
3396 source_data_key2 ,
3397 source_data_key3 ,
3398 source_data_key4 ,
3399 source_data_key5 ,
3400 --}
3401 --
3402 SUM_LINE_ORIG_AMT ,
3403 SUM_LINE_ORIG_ACCTD_AMT ,
3404 --{line of type CHRG
3405 SUM_LINE_CHRG_ORIG_AMT ,
3406 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
3407 --}
3408 SUM_LINE_FRT_ORIG_AMT ,
3409 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
3410 SUM_LINE_TAX_ORIG_AMT ,
3411 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
3412 --
3413 SUM_LINE_REM_AMT ,
3414 SUM_LINE_REM_ACCTD_AMT ,
3415 SUM_LINE_CHRG_REM_AMT ,
3416 SUM_LINE_CHRG_REM_ACCTD_AMT,
3417 --
3418 SUM_LINE_FRT_REM_AMT ,
3419 SUM_LINE_FRT_REM_ACCTD_AMT ,
3420 SUM_LINE_TAX_REM_AMT ,
3421 SUM_LINE_TAX_REM_ACCTD_AMT ,
3422 --
3423 gp_level,
3424 --3611016
3425 set_of_books_id,
3426 sob_type,
3427 -- se_gt_id,
3428 tax_link_id,
3429 tax_inc_flag
3430 --{BUG#4415037
3431 ,INT_LINE_AMOUNT
3432 ,INT_TAX_AMOUNT
3433 ,INT_ED_LINE_AMOUNT
3434 ,INT_ED_TAX_AMOUNT
3435 ,INT_UNED_LINE_AMOUNT
3436 ,INT_UNED_TAX_AMOUNT
3437 ,SUM_INT_LINE_AMOUNT
3438 ,SUM_INT_TAX_AMOUNT
3439 ,SUM_INT_ED_LINE_AMOUNT
3440 ,SUM_INT_ED_TAX_AMOUNT
3441 ,SUM_INT_UNED_LINE_AMOUNT
3442 ,SUM_INT_UNED_TAX_AMOUNT
3443 --}
3444 )
3445 SELECT /*+INDEX (ctl ra_customer_trx_lines_gt_n1)*/
3446 p_gt_id , --GT_ID
3447 p_ae_sys_rec.base_currency , --BASE_CURRENCY
3448 trx.invoice_currency_code , --TO_CURRENCY
3449 trx.customer_trx_id , --REF_CUSTOMER_TRX_ID
3450 ctl.customer_trx_line_id , --REF_CUSTOMER_TRX_LINE_ID
3451 -- Orig
3452 DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
3453 'CB' ,ctl.amount_due_original, 0), --DUE_ORIG_AMT
3454 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
3455 'CB' ,ctl.acctd_amount_due_original,0), --DUE_ORIG_ACCTD_AMT
3456 --{line of type CHRG
3457 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0), --CHRG_ORIG_AMT
3458 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0), --CHRG_ORIG_ACCTD_AMT
3459 --}
3460 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0), --FRT_ORIG_AMT
3461 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0), --FRT_ORIG_ACCTD_AMT
3462 DECODE(ctl.line_type,'TAX',ctl.amount_due_original, 0), --TAX_ORIG_AMT
3463 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0), --TAX_ORIG_ACCTD_AMT
3464 -- Remaining
3465 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original),
3466 'CB' ,abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original),0))
3467 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3468 THEN
3469 DECODE(ctl.line_type,'LINE',1,
3470 'CB' ,1,0)
3471 ELSE
3472 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
3473 'CB' ,ctl.amount_due_remaining,0))
3474 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3475 THEN
3476 DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
3477 'CB' ,ctl.amount_due_original,0)
3478 ELSE
3479 DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
3480 'CB' ,ctl.amount_due_remaining, 0) END
3481 END, --DUE_REM_AMT
3482 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original),
3483 'CB' ,abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original),0))
3484 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3485 THEN
3486 DECODE(ctl.line_type,'LINE',1,
3487 'CB' ,1,0)
3488 ELSE
3489 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
3490 'CB' ,ctl.acctd_amount_due_remaining,0))
3491 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3492 THEN
3493 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
3494 'CB' ,ctl.acctd_amount_due_original,0)
3495 ELSE
3496 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
3497 'CB' ,ctl.acctd_amount_due_remaining,0) END
3498 END, --DUE_REM_ACCTD_AMT
3499 --{line of type CHRG
3500 CASE WHEN SUM(DECODE
3501 (ctl.line_type,'LINE' ,abs(NVL(ctl.chrg_amount_remaining,0)),
3502 'CB' ,abs(NVL(ctl.chrg_amount_remaining,0)),
3503 'CHARGES',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original), /*HYU*/
3504 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3505 THEN DECODE(ctl.line_type,'CHARGES',1,0)
3506 ELSE
3507 CASE WHEN SUM(DECODE
3508 (ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
3509 'CB' ,NVL(ctl.chrg_amount_remaining,0),
3510 'CHARGES',NVL(ctl.amount_due_remaining,0), /*HYU*/
3511 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3512 THEN
3513 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0)
3514 ELSE
3515 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_remaining,0) END
3516 END, --CHRG_REM_AMT
3517 CASE WHEN SUM(DECODE
3518 (ctl.line_type,'LINE' ,abs(NVL(ctl.chrg_acctd_amount_remaining,0)),
3519 'CB' ,abs(NVL(ctl.chrg_acctd_amount_remaining,0)),
3520 'CHARGES',abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original), /*HYU*/
3521 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3522 THEN DECODE(ctl.line_type,'CHARGES',1,0)
3523 ELSE
3524 CASE WHEN SUM(DECODE
3525 (ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3526 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3527 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
3528 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3529 THEN
3530 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0)
3531 ELSE
3532 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_remaining,0) END
3533 END, --CHRG_REM_ACCTD_AMT
3534 --
3535 CASE WHEN SUM(DECODE
3536 (ctl.line_type,'LINE' ,abs(NVL(ctl.frt_adj_remaining,0)),
3537 'CB' ,abs(NVL(ctl.frt_adj_remaining,0)),
3538 'FREIGHT',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original), /*HYU*/
3539 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3540 THEN DECODE(ctl.line_type,'FREIGHT',1,0)
3541 ELSE
3542 CASE WHEN SUM(DECODE
3543 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
3544 'CB' ,NVL(ctl.frt_adj_remaining,0),
3545 'FREIGHT',NVL(ctl.amount_due_remaining,0), /*HYU*/
3546 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3547 THEN
3548 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0)
3549 ELSE
3550 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_remaining,0) END
3551 END, --FRT_REM_AMT
3552 /*Frt Rem on freight is the
3553 rem amount of the freight calculated
3554 from orig frt - cash application
3555 frt adjustment variations are excluded
3556 they are kept in frt_adj_rem_amt on rev line */
3557 CASE WHEN SUM(DECODE
3558 (ctl.line_type,'LINE' ,abs(NVL(ctl.frt_adj_acctd_remaining,0)),
3559 'CB' ,abs(NVL(ctl.frt_adj_acctd_remaining,0)),
3560 'FREIGHT',abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original), /*HYU*/
3561 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3562 THEN DECODE(ctl.line_type,'FREIGHT',1,0)
3563 ELSE
3564 CASE WHEN SUM(DECODE
3565 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
3566 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
3567 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
3568 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3569 THEN
3570 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0)
3571 ELSE
3572 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_remaining,0) END
3573 END, --FRT_REM_ACCTD_AMT
3574 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original),0))
3575 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3576 THEN
3577 DECODE(ctl.line_type,'TAX',1,0)
3578 ELSE
3579 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0))
3580 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3581 THEN
3582 DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0)
3583 ELSE
3584 DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0) END
3585 END, --TAX_REM_AMT
3586 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original),0))
3587 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3588 THEN
3589 DECODE(ctl.line_type,'TAX',1,0)
3590 ELSE
3591 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0))
3592 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3593 THEN
3594 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0)
3595 ELSE
3596 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0) END
3597 END, --TAX_REM_ACCTD_AMT
3598 --{line of type CHRG
3599 CASE WHEN SUM(DECODE
3600 (ctl.line_type,'LINE' ,abs(NVL(ctl.chrg_amount_remaining,0)),
3601 'CB' ,abs(NVL(ctl.chrg_amount_remaining,0)),
3602 'CHARGES',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original), /*HYU*/
3603 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3604 THEN 0
3605 ELSE
3606 CASE WHEN SUM(DECODE
3607 (ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
3608 'CB' ,NVL(ctl.chrg_amount_remaining,0),
3609 'CHARGES',NVL(ctl.amount_due_remaining,0), /*HYU*/
3610 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3611 THEN 0
3612 ELSE
3613 NVL(ctl.chrg_amount_remaining,0) END
3614 END, --CHRG_ADJ_REM_AMT
3615 CASE WHEN SUM(DECODE
3616 (ctl.line_type,'LINE' ,abs(NVL(ctl.chrg_acctd_amount_remaining,0)),
3617 'CB' ,abs(NVL(ctl.chrg_acctd_amount_remaining,0)),
3618 'CHARGES',abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original), /*HYU*/
3619 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3620 THEN 0
3621 ELSE
3622 CASE WHEN SUM(DECODE
3623 (ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3624 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3625 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
3626 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3627 THEN 0
3628 ELSE
3629 NVL(ctl.chrg_acctd_amount_remaining,0) END
3630 END, --CHRG_ADJ_REM_ACCTD_AMT
3631 --}
3632 CASE WHEN SUM(DECODE
3633 (ctl.line_type,'LINE' ,abs(NVL(ctl.frt_adj_remaining,0)),
3634 'CB' ,abs(NVL(ctl.frt_adj_remaining,0)),
3635 'FREIGHT',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original), /*HYU*/
3636 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3637 THEN 0
3638 ELSE
3639 CASE WHEN SUM(DECODE
3640 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
3641 'CB' ,NVL(ctl.frt_adj_remaining,0),
3642 'FREIGHT',NVL(ctl.amount_due_remaining,0), /*HYU*/
3643 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3644 THEN 0
3645 ELSE
3646 NVL(ctl.frt_adj_remaining,0) END
3647 END, --FRT_ADJ_REM_AMT
3648 CASE WHEN SUM(DECODE
3649 (ctl.line_type,'LINE' ,abs(NVL(ctl.frt_adj_acctd_remaining,0)),
3650 'CB' ,abs(NVL(ctl.frt_adj_acctd_remaining,0)),
3651 'FREIGHT',abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original), /*HYU*/
3652 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3653 THEN 0
3654 ELSE
3655 CASE WHEN SUM(DECODE
3656 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
3657 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
3658 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
3659 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3660 THEN 0
3661 ELSE
3662 NVL(ctl.frt_adj_acctd_remaining,0) END
3663 END, --FRT_ADJ_REM_ACCTD_AMT
3664 --
3665 ctl.line_type , --LINE_TYPE
3666 '00-00-00-00-00', --GROUP_ID
3667 '00' ,
3668 '00' ,
3669 '00' ,
3670 '00' ,
3671 '00' ,
3672 --
3673 SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
3674 'CB' ,ctl.amount_due_original,0))
3675 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_ORIG_AMT
3676 SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
3677 'CB' ,ctl.acctd_amount_due_original,0))
3678 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_ORIG_ACCTD_AMT
3679 --
3680 --{HYUCHRG
3681 SUM(DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0))
3682 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_CHRG_ORIG_AMT
3683 SUM(DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0))
3684 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_CHRG_ORIG_ACCTD_AMT
3685 --}
3686 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0))
3687 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_FRT_ORIG_AMT
3688 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0))
3689 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_FRT_ORIG_ACCTD_AMT
3690 --
3691 SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0))
3692 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_ORIG_AMT
3693 SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0))
3694 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_ORIG_ACCTD_AMT
3695 --
3696 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original),
3697 'CB' ,abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original),0))
3698 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3699 THEN
3700 SUM(DECODE(ctl.line_type,'LINE',1,
3701 'CB' ,1,0))
3702 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3703 ELSE
3704 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
3705 'CB' ,ctl.amount_due_remaining,0))
3706 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3707 THEN SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
3708 'CB' ,ctl.amount_due_original,0))
3709 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3710 ELSE
3711 SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
3712 'CB' ,ctl.amount_due_remaining,0))
3713 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) END
3714 END, --SUM_LINE_REM_AMT
3715 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original),
3716 'CB' ,abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original),0))
3717 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3718 THEN
3719 SUM(DECODE(ctl.line_type,'LINE',1,
3720 'CB' ,1,0))
3721 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3722 ELSE
3723 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
3724 'CB' ,ctl.acctd_amount_due_remaining,0))
3725 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3726 THEN SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
3727 'CB' ,ctl.acctd_amount_due_original,0))
3728 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3729 ELSE
3730 SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
3731 'CB' ,ctl.acctd_amount_due_remaining,0))
3732 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) END
3733 END, --SUM_LINE_REM_ACCTD_AMT
3734
3735 CASE WHEN SUM(DECODE
3736 (ctl.line_type,'LINE' ,abs(NVL(ctl.chrg_amount_remaining,0)),
3737 'CB' ,abs(NVL(ctl.chrg_amount_remaining,0)),
3738 'CHARGES',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original), /*HYU*/
3739 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3740 THEN SUM(DECODE(ctl.line_type,'CHARGES',1,0))
3741 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3742 ELSE
3743 CASE WHEN SUM(DECODE
3744 (ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
3745 'CB' ,NVL(ctl.chrg_amount_remaining,0),
3746 'CHARGES',NVL(ctl.amount_due_remaining,0), /*HYU*/
3747 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3748 THEN SUM(DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0))
3749 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3750 ELSE
3751 SUM(DECODE
3752 (ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
3753 'CB' ,NVL(ctl.chrg_amount_remaining,0),
3754 'CHARGES',NVL(ctl.amount_due_remaining,0), /*HYU*/
3755 0)) OVER (PARTITION BY trx.customer_trx_id ) END
3756 END,--SUM_LINE_CHRG_REM_AMT
3757 CASE WHEN SUM(DECODE
3758 (ctl.line_type,'LINE' ,abs(NVL(ctl.chrg_acctd_amount_remaining,0)),
3759 'CB' ,abs(NVL(ctl.chrg_acctd_amount_remaining,0)),
3760 'CHARGES',abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original), /*HYU*/
3761 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3762 THEN SUM(DECODE(ctl.line_type,'CHARGES',1,0))
3763 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3764 ELSE
3765 CASE WHEN SUM(DECODE
3766 (ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3767 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3768 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
3769 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3770 THEN SUM(DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0))
3771 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3772 ELSE SUM(DECODE
3773 (ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3774 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3775 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
3776 0)) OVER (PARTITION BY trx.customer_trx_id ) END
3777 END,--SUM_LINE_CHRG_REM_ACCTD_AMT
3778 --}
3779 --
3780 /*This is the sum of freight amount adjusted on the revenue line
3781 + sum of freight amount due remaining on the original freight line
3782 Those 2 amounts combined form the basis for cash receipt apps */
3783 CASE WHEN SUM(DECODE
3784 (ctl.line_type,'LINE' ,abs(NVL(ctl.frt_adj_remaining,0)),
3785 'CB' ,abs(NVL(ctl.frt_adj_remaining,0)),
3786 'FREIGHT',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original), /*HYU*/
3787 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3788 THEN SUM(DECODE(ctl.line_type,'FREIGHT',1,0))
3789 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3790 ELSE
3791 CASE WHEN SUM(DECODE
3792 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
3793 'CB' ,NVL(ctl.frt_adj_remaining,0),
3794 'FREIGHT',NVL(ctl.amount_due_remaining,0), /*HYU*/
3795 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3796 THEN SUM(DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0))
3797 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3798 ELSE SUM(DECODE
3799 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
3800 'CB' ,NVL(ctl.frt_adj_remaining,0),
3801 'FREIGHT',NVL(ctl.amount_due_remaining,0), /*HYU*/
3802 0)) OVER (PARTITION BY trx.customer_trx_id ) END
3803 END,--SUM_LINE_FRT_REM_AMT
3804 CASE WHEN SUM(DECODE
3805 (ctl.line_type,'LINE' ,abs(NVL(ctl.frt_adj_acctd_remaining,0)),
3806 'CB' ,abs(NVL(ctl.frt_adj_acctd_remaining,0)),
3807 'FREIGHT',abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original), /*HYU*/
3808 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3809 THEN SUM(DECODE(ctl.line_type,'FREIGHT',1,0))
3810 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3811 ELSE
3812 CASE WHEN SUM(DECODE
3813 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
3814 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
3815 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
3816 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3817 THEN SUM(DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0))
3818 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3819 ELSE SUM(DECODE
3820 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
3821 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
3822 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
3823 0)) OVER (PARTITION BY trx.customer_trx_id ) END
3824 END,--SUM_LINE_FRT_REM_ACCTD_AMT
3825 --
3826 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',abs(ctl.amount_due_remaining)+abs(ctl.amount_due_original),0))
3827 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3828 THEN
3829 SUM(DECODE(ctl.line_type,'TAX',1,0))
3830 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3831 ELSE
3832 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0))
3833 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3834 THEN SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0))
3835 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3836 ELSE SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0))
3837 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) END
3838 END, --SUM_LINE_TAX_REM_AMT
3839 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',abs(ctl.acctd_amount_due_remaining)+abs(ctl.acctd_amount_due_original),0))
3840 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3841 THEN
3842 SUM(DECODE(ctl.line_type,'TAX',1,0))
3843 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3844 ELSE
3845 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0))
3846 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3847 THEN SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0))
3848 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3849 ELSE SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0))
3850 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) END
3851 END, --SUM_LINE_TAX_REM_ACCTD_AMT
3852 --
3853 'L',
3854 --Bug#3611016
3855 p_ae_sys_rec.set_of_books_id,
3856 p_ae_sys_rec.sob_type,
3857 -- g_se_gt_id,
3858 --{Taxable_amount
3859 DECODE(ctl.line_type, 'TAX' ,ctl.link_to_cust_trx_line_id,
3860 'LINE',ctl.customer_trx_line_id,
3861 'CB' ,ctl.customer_trx_line_id,
3862 NULL),
3863 DECODE(ctl.line_type,'LINE','Y',
3864 'CB' ,'Y',
3865 'TAX','Y','N')
3866 --{BUG#4415037
3867 ,CASE WHEN g_line_flag = 'INTERFACE' THEN it.line_amount ELSE NULL END -- INT_LINE_AMOUNT
3868 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN it.tax_amount ELSE NULL END -- INT_TAX_AMOUNT
3869 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN it.ed_line_amount ELSE NULL END -- INT_ED_LINE_AMOUNT
3870 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN it.ed_tax_amount ELSE NULL END -- INT_ED_TAX_AMOUNT
3871 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN it.uned_line_amount ELSE NULL END -- INT_UNED_LINE_AMOUNT
3872 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN it.uned_tax_amount ELSE NULL END -- INT_UNED_TAX_AMOUNT >> BUG 5736570
3873 ,CASE WHEN g_line_flag = 'INTERFACE' THEN it.sum_line_amount ELSE NULL END -- SUM_INT_LINE_AMOUNT
3874 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN it.sum_tax_amount ELSE NULL END -- SUM_INT_TAX_AMOUNT
3875 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN it.sum_ed_line_amount ELSE NULL END -- SUM_INT_ED_LINE_AMOUNT
3876 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN it.sum_ed_tax_amount ELSE NULL END -- SUM_INT_ED_TAX_AMOUNT
3877 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN it.sum_uned_line_amount ELSE NULL END -- SUM_INT_UNED_LINE_AMOUNT
3878 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN it.sum_uned_tax_amount ELSE NULL END -- SUM_INT_UNED_TAX_AMOUNT
3879 --}
3880 FROM ra_customer_trx trx,
3881 ra_customer_trx_lines_gt ctl,
3882 (SELECT
3883 gt_id gt_id
3884 ,customer_trx_id customer_trx_id
3885 ,customer_trx_line_id customer_trx_line_id
3886 ,line_type line_type
3887 ,NVL(line_amount,0) line_amount
3888 ,NVL(tax_amount,0) tax_amount
3889 ,NVL(ed_line_amount,0) ed_line_amount
3890 ,NVL(ed_tax_amount,0) ed_tax_amount
3891 ,NVL(uned_line_amount,0) uned_line_amount
3892 ,NVL(uned_tax_amount,0) uned_tax_amount
3893 ,SUM(NVL(line_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id, line_type) sum_line_amount
3894 ,SUM(NVL(tax_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id, line_type) sum_tax_amount
3895 ,SUM(NVL(ed_line_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id, line_type) sum_ed_line_amount
3896 ,SUM(NVL(ed_tax_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id, line_type) sum_ed_tax_amount
3897 ,SUM(NVL(uned_line_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id, line_type) sum_uned_line_amount
3898 ,SUM(NVL(uned_tax_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id, line_type) sum_uned_tax_amount
3899 FROM
3900 (SELECT /*+INDEX (ar_line_dist_interface_gt ar_line_dist_interface_gt_n1)*/
3901 gt_id gt_id
3902 ,customer_trx_id customer_trx_id
3903 ,customer_trx_line_id customer_trx_line_id
3904 ,line_type line_type
3905 ,MAX(NVL(line_amount,0)) line_amount
3906 ,MAX(NVL(tax_amount,0)) tax_amount
3907 ,SUM(NVL(ed_line_amount,0)) ed_line_amount
3908 ,SUM(NVL(ed_tax_amount,0)) ed_tax_amount
3909 ,SUM(NVL(uned_line_amount,0)) uned_line_amount
3910 ,SUM(NVL(uned_tax_amount,0)) uned_tax_amount
3911 FROM ar_line_dist_interface_gt
3912 WHERE gt_id = p_gt_id
3913 AND customer_trx_id = p_customer_trx_id
3914 GROUP BY gt_id, customer_trx_id, customer_trx_line_id, line_type)) it
3915 WHERE trx.customer_trx_id = p_customer_trx_id
3916 AND trx.customer_trx_id = ctl.customer_trx_id
3917 AND ctl.customer_trx_line_id = it.customer_trx_line_id (+);
3918
3919 l_rows := sql%rowcount;
3920 g_appln_count := g_appln_count + l_rows;
3921 IF PG_DEBUG = 'Y' THEN
3922 localdebug(' rows inserted = ' || l_rows);
3923 END IF;
3924
3925 IF PG_DEBUG = 'Y' THEN
3926 display_ra_ar_gt(p_gt_id => p_gt_id);
3927 END IF;
3928
3929 IF PG_DEBUG = 'Y' THEN
3930 localdebug('arp_det_dist_pkg.get_invoice_line_info()-');
3931 END IF;
3932 EXCEPTION
3933 WHEN OTHERS THEN
3934 IF PG_DEBUG = 'Y' THEN
3935 localdebug('EXCEPTION get_invoice_line_info OTHERS :'||SQLERRM);
3936 END IF;
3937 END get_invoice_line_info;
3938
3939
3940 PROCEDURE get_invoice_line_info_cm
3941 (p_gt_id IN VARCHAR2,
3942 p_customer_trx_id IN NUMBER,
3943 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
3944 p_mode IN VARCHAR2)
3945 IS
3946
3947 l_rows NUMBER;
3948
3949 BEGIN
3950 localdebug('arp_det_dist_pkg.get_invoice_line_info_cm()+');
3951 localdebug(' p_mode :'||p_mode);
3952 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
3953 localdebug(' sob_type :'||p_ae_sys_rec.sob_type);
3954 localdebug(' set_of_books_id :'||p_ae_sys_rec.set_of_books_id);
3955
3956 localdebug(' for regular transaction against cm');
3957 INSERT INTO RA_AR_GT
3958 ( GT_ID ,
3959 BASE_CURRENCY ,
3960 TO_CURRENCY ,
3961 REF_CUSTOMER_TRX_ID ,
3962 REF_CUSTOMER_TRX_LINE_ID ,
3963 --
3964 DUE_ORIG_AMT ,
3965 DUE_ORIG_ACCTD_AMT ,
3966
3967 CHRG_ORIG_AMT ,
3968 CHRG_ORIG_ACCTD_AMT ,
3969
3970 --
3971 FRT_ORIG_AMT ,
3972 FRT_ORIG_ACCTD_AMT ,
3973 TAX_ORIG_AMT ,
3974 TAX_ORIG_ACCTD_AMT ,
3975 --
3976 DUE_REM_AMT ,
3977 DUE_REM_ACCTD_AMT ,
3978 CHRG_REM_AMT ,
3979 CHRG_REM_ACCTD_AMT ,
3980 --
3981 FRT_REM_AMT ,
3982 FRT_REM_ACCTD_AMT ,
3983 TAX_REM_AMT ,
3984 TAX_REM_ACCTD_AMT ,
3985 --
3986
3987 CHRG_ADJ_REM_AMT ,
3988 CHRG_ADJ_REM_ACCTD_AMT ,
3989
3990 FRT_ADJ_REM_AMT ,
3991 FRT_ADJ_REM_ACCTD_AMT ,
3992 --
3993 LINE_TYPE ,
3994 group_id ,
3995
3996 source_data_key1 ,
3997 source_data_key2 ,
3998 source_data_key3 ,
3999 source_data_key4 ,
4000 source_data_key5 ,
4001
4002 --
4003 SUM_LINE_ORIG_AMT ,
4004 SUM_LINE_ORIG_ACCTD_AMT ,
4005
4006 SUM_LINE_CHRG_ORIG_AMT ,
4007 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
4008
4009 SUM_LINE_FRT_ORIG_AMT ,
4010 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
4011 SUM_LINE_TAX_ORIG_AMT ,
4012 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
4013 --
4014 SUM_LINE_REM_AMT ,
4015 SUM_LINE_REM_ACCTD_AMT ,
4016 SUM_LINE_CHRG_REM_AMT ,
4017 SUM_LINE_CHRG_REM_ACCTD_AMT,
4018 --
4019 SUM_LINE_FRT_REM_AMT ,
4020 SUM_LINE_FRT_REM_ACCTD_AMT ,
4021 SUM_LINE_TAX_REM_AMT ,
4022 SUM_LINE_TAX_REM_ACCTD_AMT ,
4023 --
4024 gp_level,
4025 set_of_books_id,
4026 sob_type,
4027 tax_link_id,
4028 tax_inc_flag
4029 )
4030 SELECT /*+INDEX (ctl ra_customer_trx_lines_gt_n1)*/
4031 p_gt_id , --GT_ID
4032 p_ae_sys_rec.base_currency , --BASE_CURRENCY
4033 trx.invoice_currency_code , --TO_CURRENCY
4034 trx.customer_trx_id , --REF_CUSTOMER_TRX_ID
4035 ctl.customer_trx_line_id , --REF_CUSTOMER_TRX_LINE_ID
4036 -- Orig
4037 DECODE(ctl.line_type,'LINE',ctl.cm_amt_due_orig,
4038 'CB' ,ctl.cm_amt_due_orig, 0), --DUE_ORIG_AMT
4039 DECODE(ctl.line_type,'LINE',ctl.cm_acctd_amt_due_orig,
4040 'CB' ,ctl.cm_acctd_amt_due_orig,0), --DUE_ORIG_ACCTD_AMT
4041
4042 DECODE(ctl.line_type,'CHARGES',ctl.cm_amt_due_orig,0), --CHRG_ORIG_AMT
4043 DECODE(ctl.line_type,'CHARGES',ctl.cm_acctd_amt_due_orig,0), --CHRG_ORIG_ACCTD_AMT
4044
4045 DECODE(ctl.line_type,'FREIGHT',ctl.cm_amt_due_orig,0), --FRT_ORIG_AMT
4046 DECODE(ctl.line_type,'FREIGHT',ctl.cm_acctd_amt_due_orig,0), --FRT_ORIG_ACCTD_AMT
4047 DECODE(ctl.line_type,'TAX',ctl.cm_amt_due_orig, 0), --TAX_ORIG_AMT
4048 DECODE(ctl.line_type,'TAX',ctl.cm_acctd_amt_due_orig,0), --TAX_ORIG_ACCTD_AMT
4049 -- Remaining
4050 DECODE(ctl.line_type,'LINE',ctl.cm_amt_due_rem,
4051 'CB' ,ctl.cm_amt_due_rem,0), --DUE_REM_AMT
4052 DECODE(ctl.line_type,'LINE',ctl.cm_acctd_amt_due_rem,
4053 'CB' ,ctl.cm_acctd_amt_due_rem,0), --DUE_REM_ACCTD_AMT
4054
4055 DECODE(ctl.line_type,'CHARGES',ctl.cm_amt_due_rem,0), --CHRG_REM_AMT
4056 DECODE(ctl.line_type,'CHARGES',ctl.cm_acctd_amt_due_rem,0), --CHRG_REM_ACCTD_AMT
4057
4058 --
4059 DECODE(ctl.line_type,'FREIGHT',ctl.cm_amt_due_rem,0), --FRT_REM_AMT
4060 DECODE(ctl.line_type,'FREIGHT',ctl.cm_acctd_amt_due_rem,0), --FRT_REM_ACCTD_AMT
4061 DECODE(ctl.line_type,'TAX',ctl.cm_amt_due_rem,0), --TAX_REM_AMT
4062 DECODE(ctl.line_type,'TAX',ctl.cm_acctd_amt_due_rem,0) , --TAX_REM_ACCTD_AMT
4063
4064 0, --CHRG_ADJ_REM_AMT
4065 0, --CHRG_ADJ_REM_ACCTD_AMT
4066
4067 0, --FRT_ADJ_REM_AMT
4068 0, --FRT_ADJ_REM_ACCTD_AMT
4069 --
4070 ctl.line_type , --LINE_TYPE
4071
4072 '00-00-00-00-00', --GROUP_ID
4073 '00' ,
4074 '00' ,
4075 '00' ,
4076 '00' ,
4077 '00' ,
4078 --
4079 SUM(DECODE(ctl.line_type,'LINE',ctl.cm_amt_due_orig,
4080 'CB' ,ctl.cm_amt_due_orig,0))
4081 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_ORIG_AMT
4082 SUM(DECODE(ctl.line_type,'LINE',ctl.cm_acctd_amt_due_orig,
4083 'CB' ,ctl.cm_acctd_amt_due_orig,0))
4084 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_ORIG_ACCTD_AMT
4085 --
4086
4087 SUM(DECODE(ctl.line_type,'CHARGES',ctl.cm_amt_due_orig,0))
4088 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_CHRG_ORIG_AMT
4089 SUM(DECODE(ctl.line_type,'CHARGES',ctl.cm_acctd_amt_due_orig,0))
4090 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_CHRG_ORIG_ACCTD_AMT
4091
4092 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.cm_amt_due_orig,0))
4093 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_FRT_ORIG_AMT
4094 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.cm_acctd_amt_due_orig,0))
4095 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_FRT_ORIG_ACCTD_AMT
4096 --
4097 SUM(DECODE(ctl.line_type,'TAX',ctl.cm_amt_due_orig,0))
4098 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_ORIG_AMT
4099 SUM(DECODE(ctl.line_type,'TAX',ctl.cm_acctd_amt_due_orig,0))
4100 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_ORIG_ACCTD_AMT
4101 --
4102 SUM(DECODE(ctl.line_type,'LINE',ctl.cm_amt_due_rem,
4103 'CB' ,ctl.cm_amt_due_rem,0))
4104 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_REM_AMT
4105 SUM(DECODE(ctl.line_type,'LINE',ctl.cm_acctd_amt_due_rem,
4106 'CB' ,ctl.cm_acctd_amt_due_rem,0))
4107 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_REM_ACCTD_AMT
4108
4109 SUM(DECODE(ctl.line_type,'CHARGES',ctl.cm_amt_due_rem,0))
4110 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_CHRG_REM_AMT
4111 SUM(DECODE(ctl.line_type,'CHARGES',ctl.cm_acctd_amt_due_rem,0))
4112 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_CHRG_REM_ACCTD_AMT
4113 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.cm_amt_due_rem,0))
4114 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_FRT_REM_AMT
4115 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.cm_acctd_amt_due_rem,0))
4116 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_FRT_REM_ACCTD_AMT
4117 --
4118 SUM(DECODE(ctl.line_type,'TAX',ctl.cm_amt_due_rem,0))
4119 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_REM_AMT
4120 SUM(DECODE(ctl.line_type,'TAX',ctl.cm_acctd_amt_due_rem,0))
4121 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_REM_ACCTD_AMT
4122 --
4123 'L',
4124 p_ae_sys_rec.set_of_books_id,
4125 p_ae_sys_rec.sob_type,
4126 --{Taxable_amount
4127 DECODE(ctl.line_type, 'TAX' ,ctl.link_to_cust_trx_line_id,
4128 'LINE',ctl.customer_trx_line_id,
4129 'CB' ,ctl.customer_trx_line_id,
4130 NULL),
4131 DECODE(ctl.line_type,'LINE','Y',
4132 'CB' ,'Y',
4133 'TAX','Y','N')
4134 FROM ra_customer_trx trx,
4135 ra_customer_trx_lines_gt ctl
4136 WHERE trx.customer_trx_id = p_customer_trx_id
4137 AND trx.customer_trx_id = ctl.customer_trx_id
4138 AND ctl.cm_amt_due_orig is not null;
4139
4140 l_rows := sql%rowcount;
4141 localdebug(' rows inserted = ' || l_rows);
4142
4143 IF PG_DEBUG = 'Y' THEN
4144 display_ra_ar_gt(p_gt_id => p_gt_id);
4145 END IF;
4146
4147 localdebug('arp_det_dist_pkg.get_invoice_line_info_cm()-');
4148 EXCEPTION
4149 WHEN OTHERS THEN
4150 localdebug('EXCEPTION get_invoice_line_info_cm OTHERS :'||SQLERRM);
4151 END get_invoice_line_info_cm;
4152
4153
4154
4155 PROCEDURE prepare_group_for_proration
4156 (p_gt_id IN VARCHAR2,
4157 p_customer_trx_id IN NUMBER,
4158 p_pay_adj IN VARCHAR2,
4159 p_adj_rec IN ar_adjustments%ROWTYPE,
4160 p_app_rec IN ar_receivable_applications%ROWTYPE,
4161 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
4162 IS
4163 l_rows NUMBER;
4164 BEGIN
4165 IF PG_DEBUG = 'Y' THEN
4166 localdebug('arp_det_dist_pkg.prepare_group_for_proration()+');
4167 END IF;
4168
4169 IF p_pay_adj = 'APP' THEN
4170 IF(p_app_rec.LINE_EDISCOUNTED IS NOT NULL AND p_app_rec.LINE_EDISCOUNTED <> 0) OR
4171 (p_app_rec.TAX_EDISCOUNTED IS NOT NULL AND p_app_rec.TAX_EDISCOUNTED <> 0) OR
4172 (p_app_rec.FREIGHT_EDISCOUNTED IS NOT NULL AND p_app_rec.FREIGHT_EDISCOUNTED <> 0) OR
4173 (p_app_rec.CHARGES_EDISCOUNTED IS NOT NULL AND p_app_rec.CHARGES_EDISCOUNTED <> 0)
4174 THEN
4175 g_ed_req := 'Y';
4176 ELSE
4177 g_ed_req := 'N';
4178 END IF;
4179 IF(p_app_rec.LINE_UEDISCOUNTED IS NOT NULL AND p_app_rec.LINE_UEDISCOUNTED <> 0) OR
4180 (p_app_rec.TAX_UEDISCOUNTED IS NOT NULL AND p_app_rec.TAX_UEDISCOUNTED <> 0) OR
4181 (p_app_rec.FREIGHT_UEDISCOUNTED IS NOT NULL AND p_app_rec.FREIGHT_UEDISCOUNTED <> 0) OR
4182 (p_app_rec.CHARGES_UEDISCOUNTED IS NOT NULL AND p_app_rec.CHARGES_UEDISCOUNTED <> 0)
4183 THEN
4184 g_uned_req := 'Y';
4185 ELSE
4186 g_uned_req := 'N';
4187 END IF;
4188 END IF;
4189
4190 IF PG_DEBUG = 'Y' THEN
4191 localdebug(' g_ed_req :'||g_ed_req);
4192 localdebug(' g_uned_req :'||g_uned_req);
4193 END IF;
4194 ------------------------------------------------------------------------
4195 -- Create groups
4196 -- The group_id used currently is ra_customer_trx_lines.SOURCE_DATA_KEY1
4197 ------------------------------------------------------------------------
4198 INSERT INTO ra_ar_gt
4199 (gt_id,
4200 gp_level,
4201 group_id,
4202 --{HYUBPAGP
4203 source_data_key1 ,
4204 source_data_key2 ,
4205 source_data_key3 ,
4206 source_data_key4 ,
4207 source_data_key5 ,
4208 --}
4209 ref_customer_trx_id,
4210 from_currency,
4211 to_currency,
4212 base_currency,
4213 line_type,
4214 --
4215 SUM_LINE_ORIG_AMT ,
4216 SUM_LINE_ORIG_ACCTD_AMT ,
4217 --{HYUCHRG
4218 SUM_LINE_CHRG_ORIG_AMT ,
4219 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
4220 --}
4221 SUM_LINE_FRT_ORIG_AMT ,
4222 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
4223 SUM_LINE_TAX_ORIG_AMT ,
4224 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
4225 --
4226 SUM_LINE_REM_AMT ,
4227 SUM_LINE_REM_ACCTD_AMT ,
4228 SUM_LINE_CHRG_REM_AMT ,
4229 SUM_LINE_CHRG_REM_ACCTD_AMT ,
4230 SUM_LINE_FRT_REM_AMT ,
4231 SUM_LINE_FRT_REM_ACCTD_AMT ,
4232 SUM_LINE_TAX_REM_AMT ,
4233 SUM_LINE_TAX_REM_ACCTD_AMT ,
4234 --
4235 SUM_GP_LINE_ORIG_AMT ,
4236 SUM_GP_LINE_ORIG_ACCTD_AMT ,
4237 --{HYUCHRG
4238 SUM_GP_LINE_CHRG_ORIG_AMT,
4239 SUM_GP_LINE_CHRG_ORIG_ACCTD_AM,
4240 --}
4241 SUM_GP_LINE_FRT_ORIG_AMT ,
4242 SUM_GP_LINE_FRT_ORIG_ACCTD_AMT ,
4243 SUM_GP_LINE_TAX_ORIG_AMT ,
4244 SUM_GP_LINE_TAX_ORIG_ACCTD_AMT ,
4245 --
4246 SUM_GP_LINE_REM_AMT ,
4247 SUM_GP_LINE_REM_ACCTD_AMT ,
4248 SUM_GP_LINE_CHRG_REM_AMT ,
4249 SUM_GP_LINE_CHRG_REM_ACCTD_AMT,
4250 SUM_GP_LINE_FRT_REM_AMT ,
4251 SUM_GP_LINE_FRT_REM_ACCTD_AMT,
4252 SUM_GP_LINE_TAX_REM_AMT ,
4253 SUM_GP_LINE_TAX_REM_ACCTD_AMT,
4254 --BUG#3611016
4255 set_of_books_id ,
4256 sob_type,
4257 --{HYUIssue
4258 ref_customer_trx_line_id
4259 --}
4260 -- se_gt_id
4261 --{Taxable amount
4262 -- ,tax_link_id,
4263 -- tax_inc_flag
4264 --}
4265 )
4266 SELECT /*+INDEX (rar ra_ar_n1)*/
4267 p_gt_id --GT_ID
4268 ,'GPL' --GP_LEVEL
4269 ,rar.group_id --GROUP_ID
4270 --{HYUBPAGP
4271 ,rar.source_data_key1
4272 ,rar.source_data_key2
4273 ,rar.source_data_key3
4274 ,rar.source_data_key4
4275 ,rar.source_data_key5
4276 --}
4277 ,rar.ref_customer_trx_id --REF_CUSTOMER_TRX_ID
4278 ,rar.from_currency --FROM_CURRENCY
4279 ,rar.to_currency --TO_CURRENCY
4280 ,rar.base_currency --BASE_CURRENCY
4281 ,rar.line_type --LINE_TYPE
4282 --
4283 ,rar.SUM_LINE_ORIG_AMT --SUM_LINE_ORIG_AMT
4284 ,rar.SUM_LINE_ORIG_ACCTD_AMT --SUM_LINE_ORIG_ACCTD_AMT
4285 --
4286 --{HYUCHRG
4287 ,rar.SUM_LINE_CHRG_ORIG_AMT --SUM_LINE_CHRG_ORIG_AMT
4288 ,rar.SUM_LINE_CHRG_ORIG_ACCTD_AMT --SUM_LINE_CHRG_ORIG_ACCTD_AMT
4289 --}
4290 ,rar.SUM_LINE_FRT_ORIG_AMT --SUM_LINE_FRT_ORIG_AMT
4291 ,rar.SUM_LINE_FRT_ORIG_ACCTD_AMT --SUM_LINE_FRT_ORIG_ACCTD_AMT
4292 --
4293 ,rar.SUM_LINE_TAX_ORIG_AMT --SUM_LINE_TAX_ORIG_AMT
4294 ,rar.SUM_LINE_TAX_ORIG_ACCTD_AMT --SUM_LINE_TAX_ORIG_ACCTD_AMT
4295 --
4296 ,rar.SUM_LINE_REM_AMT
4297 ,rar.SUM_LINE_REM_ACCTD_AMT
4298 --
4299 ,rar.SUM_LINE_CHRG_REM_AMT
4300 ,rar.SUM_LINE_CHRG_REM_ACCTD_AMT
4301 --
4302 ,rar.SUM_LINE_FRT_REM_AMT --SUM_LINE_FRT_REM_AMT
4303 ,rar.SUM_LINE_FRT_REM_ACCTD_AMT --SUM_LINE_FRT_REM_ACCTD_AMT
4304 --
4305 ,rar.SUM_LINE_TAX_REM_AMT
4306 ,rar.SUM_LINE_TAX_REM_ACCTD_AMT
4307 --
4308 ,SUM(rar.DUE_ORIG_AMT) -- SUM_GP_LINE_ORIG_AMT
4309 ,SUM(rar.DUE_ORIG_ACCTD_AMT) -- SUM_GP_LINE_ORIG_ACCTD_AMT
4310 --{HYUCHRG
4311 ,SUM(rar.CHRG_ORIG_AMT) -- SUM_GP_LINE_CHRG_ORIG_AMT
4312 ,SUM(rar.CHRG_ORIG_ACCTD_AMT) -- SUM_GP_LINE_CHRG_ORIG_ACCTD_AM
4313 --}
4314 ,SUM(rar.FRT_ORIG_AMT) -- SUM_GP_LINE_FRT_ORIG_AMT
4315 ,SUM(rar.FRT_ORIG_ACCTD_AMT) -- SUM_GP_LINE_FRT_ORIG_ACCTD_AMT
4316 ,SUM(rar.TAX_ORIG_AMT) -- SUM_GP_LINE_TAX_ORIG_AMT
4317 ,SUM(rar.TAX_ORIG_ACCTD_AMT) -- SUM_GP_LINE_TAX_ORIG_ACCTD_AMT
4318 --
4319 ,SUM(rar.DUE_REM_AMT) -- SUM_GP_LINE_REM_AMT
4320 ,SUM(rar.DUE_REM_ACCTD_AMT) -- SUM_GP_LINE_REM_ACCTD_AMT
4321 --{HYUCHRG
4322 ,sgch.sum_gp_chrg_rem_amt --SUM_GP_LINE_CHRG_REM_AMT HYUCHRG
4323 ,sgch.sum_gp_chrg_rem_acctd_amt --SUM_GP_LINE_CHRG_REM_ACCTD_AMT HYUCHRG
4324 -- ,SUM(rar.CHRG_REM_AMT) -- SUM_GP_LINE_CHRG_REM_AMT
4325 -- ,SUM(rar.CHRG_REM_ACCTD_AMT) -- SUM_GP_LINE_CHRG_REM_ACCTD_AMT
4326 --}
4327 ,sgfr.sum_gp_frt_rem_amt --SUM_GP_LINE_FRT_REM_AMT HYUFR
4328 ,sgfr.sum_gp_frt_rem_acctd_amt --SUM_GP_LINE_FRT_REM_ACCTD_AMT HYUFR
4329 ,SUM(rar.TAX_REM_AMT) -- SUM_GP_LINE_TAX_REM_AMT
4330 ,SUM(rar.TAX_REM_ACCTD_AMT) -- SUM_GP_LINE_TAX_REM_ACCTD_AMT
4331 --Bug#3611016
4332 ,p_ae_sys_rec.set_of_books_id
4333 ,p_ae_sys_rec.sob_type
4334 --{HYUIssue
4335 ,rar.ref_customer_trx_line_id
4336 --}
4337 -- ,g_se_gt_id
4338 --{Taxable Amount
4339 -- ,rar.tax_link_id
4340 -- ,rar.tax_inc_flag
4341 --}
4342 FROM ra_ar_gt rar,
4343 (SELECT /*+INDEX (b ra_ar_n1)*/
4344 SUM(DECODE(b.line_type,'LINE' ,b.FRT_ADJ_REM_AMT,
4345 'CB' ,b.FRT_ADJ_REM_AMT,
4346 'FREIGHT',b.FRT_REM_AMT,
4347 0)) sum_gp_frt_rem_amt
4348 ,SUM(DECODE(b.line_type,'LINE' ,b.FRT_ADJ_REM_ACCTD_AMT,
4349 'CB' ,b.FRT_ADJ_REM_ACCTD_AMT,
4350 'FREIGHT',b.frt_rem_acctd_amt,
4351 0)) sum_gp_frt_rem_acctd_amt
4352 ,b.group_id
4353 --{HYUBPAGP
4354 ,b.source_data_key1
4355 ,b.source_data_key2
4356 ,b.source_data_key3
4357 ,b.source_data_key4
4358 ,b.source_data_key5
4359 --{HYUIssue
4360 ,b.ref_customer_trx_line_id
4361 --}
4362 FROM ra_ar_gt b
4363 WHERE b.ref_customer_trx_id = p_customer_trx_id
4364 AND b.gt_id = p_gt_id
4365 AND b.gp_level = 'L'
4366 AND b.set_of_books_id = p_ae_sys_rec.set_of_books_id
4367 AND (b.sob_type = p_ae_sys_rec.sob_type OR
4368 (b.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
4369 group by b.group_id
4370 --{HYUBPAGP
4371 ,b.source_data_key1
4372 ,b.source_data_key2
4373 ,b.source_data_key3
4374 ,b.source_data_key4
4375 ,b.source_data_key5
4376 --{HYUIssue
4377 ,b.ref_customer_trx_line_id
4378 --}
4379 --}
4380 ) sgfr,
4381 --{HYUCHRG
4382 (SELECT /*+INDEX (b ra_ar_n1)*/
4383 SUM(DECODE(b.line_type,'LINE' ,b.CHRG_ADJ_REM_AMT,
4384 'CB' ,b.CHRG_ADJ_REM_AMT,
4385 'CHARGES',b.CHRG_REM_AMT,
4386 0)) sum_gp_chrg_rem_amt
4387 ,SUM(DECODE(b.line_type,'LINE' ,b.CHRG_ADJ_REM_ACCTD_AMT,
4388 'CB' ,b.CHRG_ADJ_REM_ACCTD_AMT,
4389 'CHARGES',b.chrg_rem_acctd_amt,
4390 0)) sum_gp_chrg_rem_acctd_amt
4391 ,b.group_id
4392 --{HYUBPAGP
4393 ,b.source_data_key1
4394 ,b.source_data_key2
4395 ,b.source_data_key3
4396 ,b.source_data_key4
4397 ,b.source_data_key5
4398 --{HYUIssue
4399 ,b.ref_customer_trx_line_id
4400 --}
4401 --}
4402 FROM ra_ar_gt b
4403 WHERE b.ref_customer_trx_id = p_customer_trx_id
4404 AND b.gt_id = p_gt_id
4405 AND b.gp_level = 'L'
4406 AND b.set_of_books_id = p_ae_sys_rec.set_of_books_id
4407 AND (b.sob_type = p_ae_sys_rec.sob_type OR
4408 (b.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
4409 group by b.group_id
4410 --{HYUBPAGP
4411 ,b.source_data_key1
4412 ,b.source_data_key2
4413 ,b.source_data_key3
4414 ,b.source_data_key4
4415 ,b.source_data_key5
4416 --{HYUIssue
4417 ,b.ref_customer_trx_line_id
4418 --}
4419 --}
4420 ) sgch
4421 --}
4422 WHERE rar.ref_customer_trx_id = p_customer_trx_id
4423 AND rar.gt_id = p_gt_id
4424 AND rar.gp_level = 'L'
4425 AND rar.group_id = sgfr.group_id
4426 --{HYUBPAGP
4427 AND rar.source_data_key1 = sgfr.source_data_key1
4428 AND rar.source_data_key2 = sgfr.source_data_key2
4429 AND rar.source_data_key3 = sgfr.source_data_key3
4430 AND rar.source_data_key4 = sgfr.source_data_key4
4431 AND rar.source_data_key5 = sgfr.source_data_key5
4432 --{HYUIssue
4433 AND rar.ref_customer_trx_line_id = sgfr.ref_customer_trx_line_id
4434 --}
4435 --}
4436 --{HYUCHRG
4437 AND rar.group_id = sgch.group_id
4438 AND rar.source_data_key1 = sgch.source_data_key1
4439 AND rar.source_data_key2 = sgch.source_data_key2
4440 AND rar.source_data_key3 = sgch.source_data_key3
4441 AND rar.source_data_key4 = sgch.source_data_key4
4442 AND rar.source_data_key5 = sgch.source_data_key5
4443 --{HYUIssue
4444 AND rar.ref_customer_trx_line_id = sgch.ref_customer_trx_line_id
4445 --}
4446 --}
4447 --BUG#3611016
4448 AND rar.set_of_books_id = p_ae_sys_rec.set_of_books_id
4449 AND (rar.sob_type = p_ae_sys_rec.sob_type OR
4450 (rar.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
4451 GROUP BY p_gt_id
4452 ,'GPL'
4453 ,rar.group_id
4454 --{HYUBPAGP
4455 ,rar.source_data_key1
4456 ,rar.source_data_key2
4457 ,rar.source_data_key3
4458 ,rar.source_data_key4
4459 ,rar.source_data_key5
4460 --}
4461 ,rar.ref_customer_trx_id
4462 --{HYUIssue
4463 ,rar.ref_customer_trx_line_id
4464 --}
4465 ,rar.from_currency
4466 ,rar.to_currency
4467 ,rar.base_currency
4468 ,rar.line_type
4469 --
4470 ,rar.SUM_LINE_ORIG_AMT
4471 ,rar.SUM_LINE_ORIG_ACCTD_AMT
4472 ,rar.SUM_LINE_CHRG_ORIG_AMT
4473 ,rar.SUM_LINE_CHRG_ORIG_ACCTD_AMT
4474 ,rar.SUM_LINE_FRT_ORIG_AMT
4475 ,rar.SUM_LINE_FRT_ORIG_ACCTD_AMT
4476 ,rar.SUM_LINE_TAX_ORIG_AMT
4477 ,rar.SUM_LINE_TAX_ORIG_ACCTD_AMT
4478 --
4479 ,rar.SUM_LINE_REM_AMT
4480 ,rar.SUM_LINE_REM_ACCTD_AMT
4481 ,rar.SUM_LINE_CHRG_REM_AMT
4482 ,rar.SUM_LINE_CHRG_REM_ACCTD_AMT
4483 ,rar.SUM_LINE_FRT_REM_AMT
4484 ,rar.SUM_LINE_FRT_REM_ACCTD_AMT
4485 ,rar.SUM_LINE_TAX_REM_AMT
4486 ,rar.SUM_LINE_TAX_REM_ACCTD_AMT
4487 --{HYUCHRG
4488 ,sgch.sum_gp_chrg_rem_amt
4489 ,sgch.sum_gp_chrg_rem_acctd_amt
4490 --}
4491 ,sgfr.sum_gp_frt_rem_amt
4492 ,sgfr.sum_gp_frt_rem_acctd_amt
4493 ,p_ae_sys_rec.set_of_books_id
4494 ,p_ae_sys_rec.sob_type;
4495 -- ,g_se_gt_id;
4496 --{Taxble Amount
4497 -- ,rar.tax_link_id
4498 -- ,rar.tax_inc_flag;
4499 --}
4500 l_rows := sql%rowcount;
4501 g_appln_count := g_appln_count + l_rows;
4502 IF PG_DEBUG = 'Y' THEN
4503 localdebug(' rows inserted = ' || l_rows);
4504 END IF;
4505
4506 IF PG_DEBUG = 'Y' THEN
4507 display_ra_ar_gt(p_code => 'GPL', p_gt_id => p_gt_id);
4508 END IF;
4509
4510 ---------------------------------
4511 -- Determine the bucket for group
4512 ---------------------------------
4513 INSERT INTO RA_AR_AMOUNTS_GT (
4514 gt_id
4515 ,gp_level
4516 ,base_rec_rowid
4517 ,ref_customer_trx_id
4518 ,ref_customer_trx_line_id
4519 ,base_pro_amt
4520 ,base_pro_acctd_amt
4521 ,base_frt_pro_amt
4522 ,base_frt_pro_acctd_amt
4523 ,base_tax_pro_amt
4524 ,base_tax_pro_acctd_amt
4525 ,BASE_CHRG_PRO_AMT
4526 ,BASE_CHRG_PRO_ACCTD_AMT
4527
4528 ,elmt_pro_amt
4529 ,elmt_pro_acctd_amt
4530 ,ELMT_FRT_PRO_AMT
4531 ,ELMT_FRT_PRO_ACCTD_AMT
4532 ,ELMT_TAX_PRO_AMT
4533 ,ELMT_TAX_PRO_ACCTD_AMT
4534 ,ELMT_CHRG_PRO_AMT
4535 ,ELMT_CHRG_PRO_ACCTD_AMT
4536
4537 ,buc_alloc_amt
4538 ,buc_alloc_acctd_amt
4539 ,buc_frt_alloc_amt
4540 ,buc_frt_alloc_acctd_amt
4541 ,buc_tax_alloc_amt
4542 ,buc_tax_alloc_acctd_amt
4543 ,buc_chrg_alloc_amt
4544 ,buc_chrg_alloc_acctd_amt
4545
4546 ,base_ed_pro_amt
4547 ,base_ed_pro_acctd_amt
4548 ,BASE_ed_FRT_PRO_AMT
4549 ,BASE_ed_FRT_PRO_ACCTD_AMT
4550 ,BASE_ed_TAX_PRO_AMT
4551 ,BASE_ed_TAX_PRO_ACCTD_AMT
4552 ,BASE_ed_CHRG_PRO_AMT
4553 ,BASE_ed_CHRG_PRO_ACCTD_AMT
4554
4555 ,elmt_ed_pro_amt
4556 ,elmt_ed_pro_acctd_amt
4557 ,ELMT_ed_FRT_PRO_AMT
4558 ,ELMT_ed_FRT_PRO_ACCTD_AMT
4559 ,ELMT_ed_TAX_PRO_AMT
4560 ,ELMT_ed_TAX_PRO_ACCTD_AMT
4561 ,ELMT_ed_CHRG_PRO_AMT
4562 ,ELMT_ed_CHRG_PRO_ACCTD_AMT
4563
4564 ,buc_ed_alloc_amt
4565 ,buc_ed_alloc_acctd_amt
4566 ,buc_ed_frt_alloc_amt
4567 ,buc_ed_frt_alloc_acctd_amt
4568 ,buc_ed_tax_alloc_amt
4569 ,buc_ed_tax_alloc_acctd_amt
4570 ,buc_ed_chrg_alloc_amt
4571 ,buc_ed_chrg_alloc_acctd_amt
4572
4573 ,base_uned_pro_amt
4574 ,base_uned_pro_acctd_amt
4575 ,BASE_uned_FRT_PRO_AMT
4576 ,BASE_uned_FRT_PRO_ACCTD_AMT
4577 ,BASE_uned_TAX_PRO_AMT
4578 ,BASE_uned_TAX_PRO_ACCTD_AMT
4579 ,BASE_uned_CHRG_PRO_AMT
4580 ,BASE_uned_CHRG_PRO_ACCTD_AMT
4581
4582 ,elmt_uned_pro_amt
4583 ,elmt_uned_pro_acctd_amt
4584 ,ELMT_uned_FRT_PRO_AMT
4585 ,ELMT_uned_FRT_PRO_ACCTD_AMT
4586 ,ELMT_uned_TAX_PRO_AMT
4587 ,ELMT_uned_TAX_PRO_ACCTD_AMT
4588 ,ELMT_uned_CHRG_PRO_AMT
4589 ,ELMT_uned_CHRG_PRO_ACCTD_AMT
4590
4591 ,buc_uned_alloc_amt
4592 ,buc_uned_alloc_acctd_amt
4593 ,buc_uned_frt_alloc_amt
4594 ,buc_uned_frt_alloc_acctd_amt
4595 ,buc_uned_tax_alloc_amt
4596 ,buc_uned_tax_alloc_acctd_amt
4597 ,buc_uned_chrg_alloc_amt
4598 ,buc_uned_chrg_alloc_acctd_amt
4599 )
4600 SELECT /*+INDEX(a ra_ar_n1)*/
4601 a.gt_id,
4602 a.gp_level,
4603 a.rowid,
4604 a.ref_customer_trx_id,
4605 a.ref_customer_trx_line_id,
4606 /**************************
4607 -- ADJ and APP
4608 **************************/
4609 -------
4610 -- BASE
4611 -------
4612 DECODE(p_pay_adj,
4613 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
4614 a.SUM_LINE_ORIG_AMT ,
4615 a.SUM_LINE_REM_AMT),
4616 a.SUM_LINE_REM_AMT),
4617 DECODE(p_pay_adj,
4618 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
4619 a.SUM_LINE_ORIG_ACCTD_AMT,
4620 a.SUM_LINE_REM_ACCTD_AMT),
4621 a.SUM_LINE_REM_ACCTD_AMT),
4622
4623 DECODE(p_pay_adj,
4624 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
4625 a.SUM_LINE_ORIG_AMT ,
4626 a.SUM_LINE_REM_AMT),
4627 a.SUM_LINE_FRT_REM_AMT),
4628 DECODE(p_pay_adj,
4629 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
4630 a.SUM_LINE_ORIG_ACCTD_AMT,
4631 a.SUM_LINE_REM_ACCTD_AMT),
4632 a.SUM_LINE_FRT_REM_ACCTD_AMT),
4633 -- Base Tax
4634 DECODE(p_pay_adj,
4635 'ADJ',DECODE(a.SUM_LINE_TAX_REM_AMT, 0 ,
4636 a.SUM_LINE_TAX_ORIG_AMT ,
4637 a.SUM_LINE_TAX_REM_AMT),
4638 a.SUM_LINE_TAX_REM_AMT),
4639 DECODE(p_pay_adj,
4640 'ADJ',DECODE(a.SUM_LINE_TAX_REM_ACCTD_AMT, 0 ,
4641 a.SUM_LINE_TAX_ORIG_ACCTD_AMT,
4642 a.SUM_LINE_TAX_REM_ACCTD_AMT),
4643 a.SUM_LINE_TAX_REM_ACCTD_AMT),
4644 -- Base Chrg
4645 DECODE(p_pay_adj,
4646 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
4647 a.SUM_LINE_ORIG_AMT ,
4648 a.SUM_LINE_REM_AMT),
4649 a.SUM_LINE_CHRG_REM_AMT),
4650 DECODE(p_pay_adj,
4651 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
4652 a.SUM_LINE_ORIG_ACCTD_AMT ,
4653 a.SUM_LINE_REM_ACCTD_AMT),
4654 a.SUM_LINE_CHRG_REM_ACCTD_AMT),
4655 ----------
4656 -- Element
4657 ----------
4658 -- Elmt Rev
4659 DECODE(p_pay_adj,
4660 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
4661 a.SUM_GP_LINE_ORIG_AMT ,
4662 a.SUM_GP_LINE_REM_AMT),
4663 a.SUM_GP_LINE_REM_AMT),
4664 DECODE(p_pay_adj,
4665 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
4666 a.SUM_GP_LINE_ORIG_ACCTD_AMT ,
4667 a.SUM_GP_LINE_REM_ACCTD_AMT),
4668 a.SUM_GP_LINE_REM_ACCTD_AMT),
4669 -- Elt Frt
4670 DECODE(p_pay_adj,
4671 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
4672 a.SUM_GP_LINE_ORIG_AMT ,
4673 a.SUM_GP_LINE_REM_AMT),
4674 a.SUM_GP_LINE_FRT_REM_AMT),
4675 DECODE(p_pay_adj,
4676 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
4677 a.SUM_GP_LINE_ORIG_ACCTD_AMT ,
4678 a.SUM_GP_LINE_REM_ACCTD_AMT),
4679 a.SUM_GP_LINE_FRT_REM_ACCTD_AMT),
4680 -- Elt Tax
4681 DECODE(p_pay_adj,
4682 'ADJ',DECODE(a.SUM_LINE_TAX_REM_AMT, 0 ,
4683 a.SUM_GP_LINE_TAX_ORIG_AMT ,
4684 a.SUM_GP_LINE_TAX_REM_AMT),
4685 a.SUM_GP_LINE_TAX_REM_AMT),
4686 DECODE(p_pay_adj,
4687 'ADJ',DECODE(a.SUM_LINE_TAX_REM_ACCTD_AMT, 0 ,
4688 a.SUM_GP_LINE_TAX_ORIG_ACCTD_AMT ,
4689 a.SUM_GP_LINE_TAX_REM_ACCTD_AMT),
4690 a.SUM_GP_LINE_TAX_REM_ACCTD_AMT),
4691 -- Elt Chrg
4692 DECODE(p_pay_adj,
4693 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
4694 a.SUM_GP_LINE_ORIG_AMT ,
4695 a.SUM_GP_LINE_REM_AMT),
4696 a.sum_gp_line_chrg_rem_amt),
4697 DECODE(p_pay_adj,
4698 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
4699 a.SUM_GP_LINE_ORIG_ACCTD_AMT ,
4700 a.SUM_GP_LINE_REM_ACCTD_AMT),
4701 a.sum_gp_line_chrg_rem_acctd_amt),
4702 ---------
4703 -- Bucket
4704 ---------
4705 -- Buc Rev
4706 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4707 a.line_type,
4708 'N',
4709 'N',
4710 'N'),
4711 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4712 a.line_type,
4713 'Y',
4714 'N',
4715 'N'),
4716 --Buc Freight
4717 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4718 a.line_type,
4719 'N',
4720 'N',
4721 'Y'),
4722 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4723 a.line_type,
4724 'Y',
4725 'N',
4726 'Y'),
4727 -- Buc Tax
4728 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4729 a.line_type,
4730 'N',
4731 'N',
4732 'N'),
4733 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4734 a.line_type,
4735 'Y',
4736 'N',
4737 'N'),
4738 -- Buc Chrg
4739 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4740 a.line_type,
4741 'N',
4742 'Y',
4743 'N'),
4744 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4745 a.line_type,
4746 'Y',
4747 'Y',
4748 'N'),
4749 /**************************
4750 -- ED
4751 **************************/
4752 a.SUM_LINE_REM_AMT, -- Base ED Rev over Rev line
4753 a.SUM_LINE_REM_ACCTD_AMT,
4754 a.SUM_LINE_FRT_REM_AMT, -- a.SUM_LINE_REM_AMT
4755 a.SUM_LINE_FRT_REM_ACCTD_AMT, -- a.SUM_LINE_REM_ACCTD_AMT
4756 a.SUM_LINE_TAX_REM_AMT,
4757 a.SUM_LINE_TAX_REM_ACCTD_AMT,
4758 a.SUM_LINE_CHRG_REM_AMT,
4759 a.SUM_LINE_CHRG_REM_ACCTD_AMT,
4760 --
4761 a.SUM_GP_LINE_REM_AMT, -- Elmt ED Rev
4762 a.SUM_GP_LINE_REM_ACCTD_AMT,
4763 a.SUM_GP_LINE_FRT_REM_AMT, -- a.SUM_GP_LINE_REM_AMT
4764 a.SUM_GP_LINE_FRT_REM_ACCTD_AMT,
4765 a.SUM_GP_LINE_TAX_REM_AMT,
4766 a.SUM_GP_LINE_TAX_REM_ACCTD_AMT,
4767 a.SUM_GP_LINE_CHRG_REM_AMT,
4768 a.SUM_GP_LINE_CHRG_REM_ACCTD_AMT,
4769
4770 CASE
4771 when g_ed_req = 'Y' then
4772 arp_det_dist_pkg.the_concern_bucket('ED',
4773 a.line_type,
4774 'N',
4775 'N',
4776 'N')
4777 else 0 end,
4778 CASE
4779 when g_ed_req = 'Y' then
4780 arp_det_dist_pkg.the_concern_bucket('ED',
4781 a.line_type,
4782 'Y',
4783 'N',
4784 'N')
4785 else 0 end,
4786 CASE
4787 when g_ed_req = 'Y' then
4788 arp_det_dist_pkg.the_concern_bucket('ED',
4789 a.line_type,
4790 'N',
4791 'N',
4792 'Y')
4793 else 0 end,
4794 CASE
4795 when g_ed_req = 'Y' then
4796 arp_det_dist_pkg.the_concern_bucket('ED',
4797 a.line_type,
4798 'Y',
4799 'N',
4800 'Y')
4801 else 0 end,
4802 CASE
4803 when g_ed_req = 'Y' then
4804 arp_det_dist_pkg.the_concern_bucket('ED',
4805 a.line_type,
4806 'N',
4807 'N',
4808 'N')
4809 else 0 end,
4810 CASE
4811 when g_ed_req = 'Y' then
4812 arp_det_dist_pkg.the_concern_bucket('ED',
4813 a.line_type,
4814 'Y',
4815 'N',
4816 'N')
4817 else 0 end,
4818 CASE
4819 when g_ed_req = 'Y' then
4820 arp_det_dist_pkg.the_concern_bucket('ED',
4821 a.line_type,
4822 'N',
4823 'Y',
4824 'N')
4825 else 0 end,
4826 CASE
4827 when g_ed_req = 'Y' then
4828 arp_det_dist_pkg.the_concern_bucket('ED',
4829 a.line_type,
4830 'Y',
4831 'Y',
4832 'N')
4833 else 0 end,
4834 /**************************
4835 -- UNED
4836 **************************/
4837 a.SUM_LINE_REM_AMT,
4838 a.SUM_LINE_REM_ACCTD_AMT,
4839 a.SUM_LINE_FRT_REM_AMT,
4840 a.SUM_LINE_FRT_REM_ACCTD_AMT,
4841 a.SUM_LINE_TAX_REM_AMT,
4842 a.SUM_LINE_TAX_REM_ACCTD_AMT,
4843 a.SUM_LINE_CHRG_REM_AMT,
4844 a.SUM_LINE_CHRG_REM_ACCTD_AMT,
4845 --
4846 a.SUM_GP_LINE_REM_AMT,
4847 a.SUM_GP_LINE_REM_ACCTD_AMT,
4848 a.SUM_GP_LINE_FRT_REM_AMT,
4849 a.SUM_GP_LINE_FRT_REM_ACCTD_AMT,
4850 a.SUM_GP_LINE_TAX_REM_AMT,
4851 a.SUM_GP_LINE_TAX_REM_ACCTD_AMT,
4852 a.SUM_GP_LINE_CHRG_REM_AMT,
4853 a.SUM_GP_LINE_CHRG_REM_ACCTD_AMT,
4854 --
4855 CASE
4856 when g_uned_req = 'Y' then
4857 arp_det_dist_pkg.the_concern_bucket('UNED',
4858 a.line_type,
4859 'N',
4860 'N',
4861 'N')
4862 else 0 end,
4863 CASE
4864 when g_uned_req = 'Y' then
4865 arp_det_dist_pkg.the_concern_bucket('UNED',
4866 a.line_type,
4867 'Y',
4868 'N',
4869 'N')
4870 else 0 end,
4871 CASE
4872 when g_uned_req = 'Y' then
4873 arp_det_dist_pkg.the_concern_bucket('UNED',
4874 a.line_type,
4875 'N',
4876 'N',
4877 'Y')
4878 else 0 end,
4879 CASE
4880 when g_uned_req = 'Y' then
4881 arp_det_dist_pkg.the_concern_bucket('UNED',
4882 a.line_type,
4883 'Y',
4884 'N',
4885 'Y')
4886 else 0 end,
4887 CASE
4888 when g_uned_req = 'Y' then
4889 arp_det_dist_pkg.the_concern_bucket('UNED',
4890 a.line_type,
4891 'N',
4892 'N',
4893 'N')
4894 else 0 end,
4895 CASE
4896 when g_uned_req = 'Y' then
4897 arp_det_dist_pkg.the_concern_bucket('UNED',
4898 a.line_type,
4899 'Y',
4900 'N',
4901 'N')
4902 else 0 end,
4903 CASE
4904 when g_uned_req = 'Y' then
4905 arp_det_dist_pkg.the_concern_bucket('UNED',
4906 a.line_type,
4907 'N',
4908 'Y',
4909 'N')
4910 else 0 end,
4911 CASE
4912 when g_uned_req = 'Y' then
4913 arp_det_dist_pkg.the_concern_bucket('UNED',
4914 a.line_type,
4915 'Y',
4916 'Y',
4917 'N')
4918 else 0 end
4919 FROM RA_AR_GT a
4920 WHERE a.gt_id = p_gt_id
4921 AND a.ref_customer_trx_id = p_customer_trx_id
4922 AND a.gp_level = 'GPL'
4923 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
4924 AND (a.sob_type = p_ae_sys_rec.sob_type OR
4925 (a.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL));
4926
4927 IF PG_DEBUG = 'Y' THEN
4928 display_ra_ar_gt(p_code => 'GPL',p_gt_id => p_gt_id);
4929 END IF;
4930
4931 IF PG_DEBUG = 'Y' THEN
4932 localdebug('arp_det_dist_pkg.prepare_group_for_proration()-');
4933 END IF;
4934 END prepare_group_for_proration;
4935
4936 PROCEDURE dump_g_amt
4937 IS
4938 BEGIN
4939 IF PG_DEBUG = 'Y' THEN
4940 localdebug('-----------');
4941 localdebug('g_line_adj : '|| g_line_adj);
4942 localdebug('g_tax_adj : '|| g_tax_adj);
4943 localdebug('g_frt_adj : '|| g_frt_adj);
4944 localdebug('g_chrg_adj : '|| g_chrg_adj);
4945 localdebug('g_acctd_line_adj : '|| g_acctd_line_adj);
4946 localdebug('g_acctd_tax_adj : '|| g_acctd_tax_adj);
4947 localdebug('g_acctd_frt_adj : '|| g_acctd_frt_adj);
4948 localdebug('g_acctd_chrg_adj : '|| g_acctd_chrg_adj);
4949
4950 localdebug('-----------');
4951 localdebug('g_line_applied : '|| g_line_applied);
4952 localdebug('g_tax_applied : '|| g_tax_applied);
4953 localdebug('g_frt_applied : '|| g_frt_applied);
4954 localdebug('g_chrg_applied : '|| g_chrg_applied );
4955 localdebug('g_line_ed : '|| g_line_ed);
4956 localdebug('g_tax_ed : '|| g_tax_ed);
4957 localdebug('g_frt_ed : '|| g_frt_ed);
4958 localdebug('g_chrg_ed : '|| g_chrg_ed);
4959 localdebug('g_line_uned : '|| g_line_uned);
4960 localdebug('g_tax_uned : '|| g_tax_uned);
4961 localdebug('g_frt_uned : '|| g_frt_uned);
4962 localdebug('g_chrg_uned : '|| g_chrg_uned);
4963
4964 localdebug('g_acctd_line_applied : '||g_acctd_line_applied);
4965 localdebug('g_acctd_tax_applied : '|| g_acctd_tax_applied);
4966 localdebug('g_acctd_frt_applied : '|| g_acctd_frt_applied);
4967 localdebug('g_acctd_chrg_applied : '|| g_acctd_chrg_applied);
4968 localdebug('g_acctd_line_ed : '|| g_acctd_line_ed);
4969 localdebug('g_acctd_tax_ed : '|| g_acctd_tax_ed);
4970 localdebug('g_acctd_frt_ed : '|| g_acctd_frt_ed);
4971 localdebug('g_acctd_chrg_ed : '|| g_acctd_chrg_ed);
4972 localdebug('g_acctd_line_uned : '|| g_acctd_line_uned);
4973 localdebug('g_acctd_tax_uned : '|| g_acctd_tax_uned);
4974 localdebug('g_acctd_frt_uned : '|| g_acctd_frt_uned);
4975 localdebug('g_acctd_chrg_uned : '|| g_acctd_chrg_uned);
4976 localdebug('-----------');
4977 END IF;
4978 END;
4979
4980 PROCEDURE conv_acctd_amt
4981 (p_pay_adj IN VARCHAR2,
4982 p_adj_rec IN ar_adjustments%ROWTYPE,
4983 p_app_rec IN ar_receivable_applications%ROWTYPE,
4984 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
4985 IS
4986 l_acctd_amt NUMBER;
4987 BEGIN
4988 IF PG_DEBUG = 'Y' THEN
4989 localdebug('arp_det_dist_pkg.conv_acctd_amt()+');
4990 localdebug(' p_pay_adj :'||p_pay_adj);
4991 localdebug(' p_app_rec.AMOUNT_APPLIED :'||p_app_rec.AMOUNT_APPLIED);
4992 localdebug(' p_app_rec.LINE_APPLIED :'||p_app_rec.LINE_APPLIED);
4993 localdebug(' p_app_rec.TAX_APPLIED :'||p_app_rec.TAX_APPLIED);
4994 END IF;
4995
4996 g_line_adj := 0;
4997 g_tax_adj := 0;
4998 g_frt_adj := 0;
4999 g_chrg_adj := 0;
5000 g_line_applied := 0;
5001 g_tax_applied := 0;
5002 g_frt_applied := 0;
5003 g_chrg_applied := 0;
5004 g_line_ed := 0;
5005 g_tax_ed := 0;
5006 g_frt_ed := 0;
5007 g_chrg_ed := 0;
5008 g_line_uned := 0;
5009 g_tax_uned := 0;
5010 g_frt_uned := 0;
5011 g_chrg_uned := 0;
5012
5013
5014 g_acctd_line_adj := 0;
5015 g_acctd_tax_adj := 0;
5016 g_acctd_frt_adj := 0;
5017 g_acctd_chrg_adj := 0;
5018 g_acctd_line_applied := 0;
5019 g_acctd_tax_applied := 0;
5020 g_acctd_frt_applied := 0;
5021 g_acctd_chrg_applied := 0;
5022 g_acctd_line_ed := 0;
5023 g_acctd_tax_ed := 0;
5024 g_acctd_frt_ed := 0;
5025 g_acctd_chrg_ed := 0;
5026 g_acctd_line_uned := 0;
5027 g_acctd_tax_uned := 0;
5028 g_acctd_frt_uned := 0;
5029 g_acctd_chrg_uned := 0;
5030
5031
5032 IF p_pay_adj = 'ADJ' THEN
5033 -- Trx currency
5034 -- HYU Adjustment distribution in the same sign of the header adjustment rem * -1
5035 -- because detail distribution passed for a negative adjustment ends to create
5036 -- debit write-off distributions in ARD. ARALLOCB create the write-off distributions
5037 -- in case of adjustments
5038 g_line_adj := NVL(p_adj_rec.LINE_ADJUSTED,0); -- -1*
5039 g_frt_adj := NVL(p_adj_rec.FREIGHT_ADJUSTED,0); -- -1*
5040 g_tax_adj := NVL(p_adj_rec.TAX_ADJUSTED,0); -- -1*
5041 g_chrg_adj := NVL(p_adj_rec.RECEIVABLES_CHARGES_ADJUSTED ,0); -- -1*
5042 -- Based currency
5043 l_acctd_amt := NVL(p_adj_rec.acctd_amount,0); -- -1*
5044
5045 arp_util.Set_Buckets(
5046 p_header_acctd_amt => l_acctd_amt ,
5047 p_base_currency => p_ae_sys_rec.base_currency ,
5048 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
5049 p_base_precision => p_ae_sys_rec.base_precision ,
5050 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
5051 p_tax_amt => g_tax_adj ,
5052 p_charges_amt => g_chrg_adj ,
5053 p_line_amt => g_line_adj ,
5054 p_freight_amt => g_frt_adj ,
5055 p_tax_acctd_amt => g_acctd_tax_adj ,
5056 p_charges_acctd_amt => g_acctd_chrg_adj ,
5057 p_line_acctd_amt => g_acctd_line_adj ,
5058 p_freight_acctd_amt => g_acctd_frt_adj );
5059
5060 ELSE
5061 -- Distribution sign integration between ARPDDB and ARALLOCB
5062 -- To integrate with ARALLOCB as application distributions are * -1 in ARALLOCB
5063 -- For positive distributions creation, we need to pass a negative distribution
5064 -- => -1 * detail_dist (DR side) --> ARALLOCB (* -1) becomes positive distribution
5065 -- therefore created as Credit side of the accounting. Note ARALLOCB creates
5066 -- Credit REC distributions for Application
5067 g_line_applied := NVL(p_app_rec.LINE_APPLIED,0) * -1;
5068 g_tax_applied := NVL(p_app_rec.TAX_APPLIED,0) * -1;
5069 g_frt_applied := NVL(p_app_rec.FREIGHT_APPLIED,0) * -1;
5070 g_chrg_applied := NVL(p_app_rec.RECEIVABLES_CHARGES_APPLIED,0) * -1;
5071 l_acctd_amt := NVL(p_app_rec.ACCTD_AMOUNT_APPLIED_TO,0) * -1;
5072
5073 IF l_acctd_amt <> 0 THEN
5074
5075 arp_util.Set_Buckets(p_header_acctd_amt => l_acctd_amt ,
5076 p_base_currency => p_ae_sys_rec.base_currency ,
5077 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
5078 p_base_precision => p_ae_sys_rec.base_precision ,
5079 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
5080 p_tax_amt => g_tax_applied ,
5081 p_charges_amt => g_chrg_applied ,
5082 p_line_amt => g_line_applied ,
5083 p_freight_amt => g_frt_applied ,
5084 p_tax_acctd_amt => g_acctd_tax_applied ,
5085 p_charges_acctd_amt => g_acctd_chrg_applied ,
5086 p_line_acctd_amt => g_acctd_line_applied ,
5087 p_freight_acctd_amt => g_acctd_frt_applied );
5088 END IF;
5089
5090 --
5091 -- For ED and UNED discounts they are handled as adjustment distributions
5092 -- ARALLOCB that is ARALLOCB will create the Write-off side
5093 -- The credit REC for ED UNED are created by ARRECACB arp_receipt_main
5094 -- so for a positive ED it is like a negative adjustments, so detail_distributions
5095 -- for ED and UNED from ARPDDB need to be multiplied by -1 to be passed to ARALLOCB
5096 --
5097 g_line_ed := NVL(p_app_rec.LINE_EDISCOUNTED,0) * -1;
5098 g_tax_ed := NVL(p_app_rec.TAX_EDISCOUNTED,0) * -1;
5099 g_frt_ed := NVL(p_app_rec.FREIGHT_EDISCOUNTED,0) * -1;
5100 g_chrg_ed := NVL(p_app_rec.CHARGES_EDISCOUNTED,0) * -1;
5101 l_acctd_amt := NVL(p_app_rec.ACCTD_EARNED_DISCOUNT_TAKEN,0) * -1;
5102
5103 IF l_acctd_amt <> 0 THEN
5104
5105 arp_util.Set_Buckets(
5106 p_header_acctd_amt => l_acctd_amt ,
5107 p_base_currency => p_ae_sys_rec.base_currency ,
5108 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
5109 p_base_precision => p_ae_sys_rec.base_precision ,
5110 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
5111 p_tax_amt => g_tax_ed ,
5112 p_charges_amt => g_chrg_ed ,
5113 p_line_amt => g_line_ed ,
5114 p_freight_amt => g_frt_ed ,
5115 p_tax_acctd_amt => g_acctd_tax_ed ,
5116 p_charges_acctd_amt => g_acctd_chrg_ed ,
5117 p_line_acctd_amt => g_acctd_line_ed ,
5118 p_freight_acctd_amt => g_acctd_frt_ed );
5119 END IF;
5120
5121
5122 g_line_uned := NVL(p_app_rec.LINE_UEDISCOUNTED,0) * -1;
5123 g_tax_uned := NVL(p_app_rec.TAX_UEDISCOUNTED,0) * -1;
5124 g_frt_uned := NVL(p_app_rec.FREIGHT_UEDISCOUNTED,0) * -1;
5125 g_chrg_uned := NVL(p_app_rec.CHARGES_UEDISCOUNTED,0) * -1;
5126 l_acctd_amt := NVL(p_app_rec.ACCTD_UNEARNED_DISCOUNT_TAKEN,0) * -1;
5127
5128 IF l_acctd_amt <> 0 THEN
5129
5130 arp_util.Set_Buckets(
5131 p_header_acctd_amt => l_acctd_amt ,
5132 p_base_currency => p_ae_sys_rec.base_currency ,
5133 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
5134 p_base_precision => p_ae_sys_rec.base_precision ,
5135 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
5136 p_tax_amt => g_tax_uned ,
5137 p_charges_amt => g_chrg_uned ,
5138 p_line_amt => g_line_uned ,
5139 p_freight_amt => g_frt_uned ,
5140 p_tax_acctd_amt => g_acctd_tax_uned ,
5141 p_charges_acctd_amt => g_acctd_chrg_uned ,
5142 p_line_acctd_amt => g_acctd_line_uned ,
5143 p_freight_acctd_amt => g_acctd_frt_uned );
5144 END IF;
5145
5146 END IF;
5147 dump_g_amt;
5148 IF PG_DEBUG = 'Y' THEN
5149 localdebug('arp_det_dist_pkg.conv_acctd_amt()-');
5150 END IF;
5151 END conv_acctd_amt;
5152
5153 --
5154 -- This routine is similar to conv_acctd_amt, the only thing is it removes dependencies on
5155 -- org context so that it is usable in Down time upgrade
5156 --
5157 PROCEDURE conv_acctd_amt_upg
5158 (p_pay_adj IN VARCHAR2,
5159 p_adj_rec IN ar_adjustments%ROWTYPE,
5160 p_app_rec IN ar_receivable_applications%ROWTYPE,
5161 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
5162 IS
5163 l_acctd_amt NUMBER;
5164 BEGIN
5165 g_acctd_line_adj := 0;
5166 g_acctd_tax_adj := 0;
5167 g_acctd_frt_adj := 0;
5168 g_acctd_chrg_adj := 0;
5169 g_acctd_line_applied := 0;
5170 g_acctd_tax_applied := 0;
5171 g_acctd_frt_applied := 0;
5172 g_acctd_chrg_applied := 0;
5173 g_acctd_line_ed := 0;
5174 g_acctd_tax_ed := 0;
5175 g_acctd_frt_ed := 0;
5176 g_acctd_chrg_ed := 0;
5177 g_acctd_line_uned := 0;
5178 g_acctd_tax_uned := 0;
5179 g_acctd_frt_uned := 0;
5180 g_acctd_chrg_uned := 0;
5181
5182
5183 IF p_pay_adj = 'ADJ' THEN
5184 -- Trx currency
5185 -- HYU Adjustment distribution in the same sign of the header adjustment rem * -1
5186 -- because detail distribution passed for a negative adjustment ends to create
5187 -- debit write-off distributions in ARD. ARALLOCB create the write-off distributions
5188 -- in case of adjustments
5189 g_line_adj := NVL(p_adj_rec.LINE_ADJUSTED,0); -- -1*
5190 g_frt_adj := NVL(p_adj_rec.FREIGHT_ADJUSTED,0); -- -1*
5191 g_tax_adj := NVL(p_adj_rec.TAX_ADJUSTED,0); -- -1*
5192 g_chrg_adj := NVL(p_adj_rec.RECEIVABLES_CHARGES_ADJUSTED ,0); -- -1*
5193 -- Based currency
5194 l_acctd_amt := NVL(p_adj_rec.acctd_amount,0); -- -1*
5195
5196 ar_unposted_item_util.Set_Buckets(
5197 p_header_acctd_amt => l_acctd_amt ,
5198 p_base_currency => p_ae_sys_rec.base_currency ,
5199 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
5200 p_base_precision => p_ae_sys_rec.base_precision ,
5201 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
5202 p_tax_amt => g_tax_adj ,
5203 p_charges_amt => g_chrg_adj ,
5204 p_line_amt => g_line_adj ,
5205 p_freight_amt => g_frt_adj ,
5206 p_tax_acctd_amt => g_acctd_tax_adj ,
5207 p_charges_acctd_amt => g_acctd_chrg_adj ,
5208 p_line_acctd_amt => g_acctd_line_adj ,
5209 p_freight_acctd_amt => g_acctd_frt_adj );
5210
5211 ELSE
5212 -- Distribution sign integration between ARPDDB and ARALLOCB
5213 -- To integrate with ARALLOCB as application distributions are * -1 in ARALLOCB
5214 -- For positive distributions creation, we need to pass a negative distribution
5215 -- => -1 * detail_dist (DR side) --> ARALLOCB (* -1) becomes positive distribution
5216 -- therefore created as Credit side of the accounting. Note ARALLOCB creates
5217 -- Credit REC distributions for Application
5218 g_line_applied := NVL(p_app_rec.LINE_APPLIED,0) * -1;
5219 g_tax_applied := NVL(p_app_rec.TAX_APPLIED,0) * -1;
5220 g_frt_applied := NVL(p_app_rec.FREIGHT_APPLIED,0) * -1;
5221 g_chrg_applied := NVL(p_app_rec.RECEIVABLES_CHARGES_APPLIED,0) * -1;
5222 l_acctd_amt := NVL(p_app_rec.ACCTD_AMOUNT_APPLIED_TO,0) * -1;
5223
5224 IF l_acctd_amt <> 0 THEN
5225
5226 ar_unposted_item_util.Set_Buckets(p_header_acctd_amt => l_acctd_amt ,
5227 p_base_currency => p_ae_sys_rec.base_currency ,
5228 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
5229 p_base_precision => p_ae_sys_rec.base_precision ,
5230 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
5231 p_tax_amt => g_tax_applied ,
5232 p_charges_amt => g_chrg_applied ,
5233 p_line_amt => g_line_applied ,
5234 p_freight_amt => g_frt_applied ,
5235 p_tax_acctd_amt => g_acctd_tax_applied ,
5236 p_charges_acctd_amt => g_acctd_chrg_applied ,
5237 p_line_acctd_amt => g_acctd_line_applied ,
5238 p_freight_acctd_amt => g_acctd_frt_applied );
5239 END IF;
5240
5241 --
5242 -- For ED and UNED discounts they are handled as adjustment distributions
5243 -- ARALLOCB that is ARALLOCB will create the Write-off side
5244 -- The credit REC for ED UNED are created by ARRECACB arp_receipt_main
5245 -- so for a positive ED it is like a negative adjustments, so detail_distributions
5246 -- for ED and UNED from ARPDDB need to be multiplied by -1 to be passed to ARALLOCB
5247 --
5248 g_line_ed := NVL(p_app_rec.LINE_EDISCOUNTED,0) * -1;
5249 g_tax_ed := NVL(p_app_rec.TAX_EDISCOUNTED,0) * -1;
5250 g_frt_ed := NVL(p_app_rec.FREIGHT_EDISCOUNTED,0) * -1;
5251 g_chrg_ed := NVL(p_app_rec.CHARGES_EDISCOUNTED,0) * -1;
5252 l_acctd_amt := NVL(p_app_rec.ACCTD_EARNED_DISCOUNT_TAKEN,0) * -1;
5253
5254 IF l_acctd_amt <> 0 THEN
5255
5256 ar_unposted_item_util.Set_Buckets(
5257 p_header_acctd_amt => l_acctd_amt ,
5258 p_base_currency => p_ae_sys_rec.base_currency ,
5259 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
5260 p_base_precision => p_ae_sys_rec.base_precision ,
5261 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
5262 p_tax_amt => g_tax_ed ,
5263 p_charges_amt => g_chrg_ed ,
5264 p_line_amt => g_line_ed ,
5265 p_freight_amt => g_frt_ed ,
5266 p_tax_acctd_amt => g_acctd_tax_ed ,
5267 p_charges_acctd_amt => g_acctd_chrg_ed ,
5268 p_line_acctd_amt => g_acctd_line_ed ,
5269 p_freight_acctd_amt => g_acctd_frt_ed );
5270 END IF;
5271
5272
5273 g_line_uned := NVL(p_app_rec.LINE_UEDISCOUNTED,0) * -1;
5274 g_tax_uned := NVL(p_app_rec.TAX_UEDISCOUNTED,0) * -1;
5275 g_frt_uned := NVL(p_app_rec.FREIGHT_UEDISCOUNTED,0) * -1;
5276 g_chrg_uned := NVL(p_app_rec.CHARGES_UEDISCOUNTED,0) * -1;
5277 l_acctd_amt := NVL(p_app_rec.ACCTD_UNEARNED_DISCOUNT_TAKEN,0) * -1;
5278
5279 IF l_acctd_amt <> 0 THEN
5280
5281 ar_unposted_item_util.Set_Buckets(
5282 p_header_acctd_amt => l_acctd_amt ,
5283 p_base_currency => p_ae_sys_rec.base_currency ,
5284 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
5285 p_base_precision => p_ae_sys_rec.base_precision ,
5286 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
5287 p_tax_amt => g_tax_uned ,
5288 p_charges_amt => g_chrg_uned ,
5289 p_line_amt => g_line_uned ,
5290 p_freight_amt => g_frt_uned ,
5291 p_tax_acctd_amt => g_acctd_tax_uned ,
5292 p_charges_acctd_amt => g_acctd_chrg_uned ,
5293 p_line_acctd_amt => g_acctd_line_uned ,
5294 p_freight_acctd_amt => g_acctd_frt_uned );
5295 END IF;
5296
5297 END IF;
5298 END conv_acctd_amt_upg;
5299
5300
5301
5302 FUNCTION the_concern_bucket
5303 (p_pay_adj IN VARCHAR2,
5304 p_line_type IN VARCHAR2,
5305 p_acctd IN VARCHAR2,
5306 p_chrg_bucket IN VARCHAR2,
5307 p_frt_bucket IN VARCHAR2)
5308 RETURN NUMBER IS
5309 l_res NUMBER;
5310 BEGIN
5311 IF PG_DEBUG = 'Y' THEN
5312 localdebug('arp_det_dist_pkg.the_concern_bucket()+');
5313 localdebug(' p_pay_adj :' ||p_pay_adj);
5314 localdebug(' p_line_type :' ||p_line_type);
5315 localdebug(' p_acctd :' ||p_acctd);
5316 localdebug(' p_chrg_bucket :' ||p_chrg_bucket);
5317 localdebug(' p_frt_bucket :' ||p_frt_bucket);
5318 END IF;
5319 -- LINE over LINE
5320 -- TAX over TAX
5321 -- FREIGHT over LINE FOR ADJ
5322 -- and FREIGHT over LINE frt_adj_rem and over FREIGHT on amt_rem
5323 -- Chrg bucket on LINE for 11i
5324 -- Chrg bucket on LINE+FREIGHT for 11iX
5325 -- ED and UNED Revenue on Revenue line
5326 -- ED and UNED Tax on Tax line
5327 -- ED and UNED Chrg on Rev Line
5328 -- ED and UNED frt on Rev Line
5329
5330
5331 IF PG_DEBUG = 'Y' THEN
5332 localdebug(' For Regular Transaction');
5333 END IF;
5334
5335 IF p_chrg_bucket = 'Y' THEN
5336
5337 IF p_line_type IN ('LINE','CB') THEN
5338 IF p_pay_adj = 'ADJ' THEN
5339 -- Chrg adjusted on Rev Line
5340 IF p_acctd = 'Y' THEN
5341 l_res := g_acctd_chrg_adj; ELSE l_res := g_chrg_adj;
5342 END IF;
5343 ELSIF p_pay_adj = 'APP' THEN
5344 -- Chrg paied on Rev line
5345 IF p_acctd = 'Y' THEN
5346 l_res := g_acctd_chrg_applied; ELSE l_res := g_chrg_applied;
5347 END IF;
5348 ELSIF p_pay_adj = 'ED' THEN
5349 -- ED charge on Rev line
5350 IF p_acctd = 'Y' THEN
5351 l_res := g_acctd_chrg_ed; ELSE l_res := g_chrg_ed;
5352 END IF;
5353 ELSIF p_pay_adj = 'UNED' THEN
5354 --UNED charge on Rev line
5355 IF p_acctd = 'Y' THEN
5356 l_res := g_acctd_chrg_uned; ELSE l_res := g_chrg_uned;
5357 END IF;
5358 END IF;
5359 ELSIF p_line_type IN ('CHARGES') THEN
5360 --{HYUCHRG
5361 IF p_pay_adj = 'APP' THEN
5362 -- Chrg paid on Chrg line
5363 IF p_acctd = 'Y' THEN
5364 l_res := g_acctd_chrg_applied; ELSE l_res := g_chrg_applied;
5365 END IF;
5366 ELSE
5367 l_res := 0;
5368 END IF;
5369 --}
5370
5371 ELSE
5372 -- Not line type LINE not chrg should be returned
5373 l_res := 0;
5374 END IF;
5375
5376 ELSIF p_frt_bucket = 'Y' THEN
5377
5378 IF p_line_type IN ('LINE','CB') THEN
5379 IF p_pay_adj = 'ADJ' THEN
5380 -- Freight adjusted over Rev lines only
5381 IF p_acctd = 'Y' THEN
5382 l_res := g_acctd_frt_adj; ELSE l_res := g_frt_adj;
5383 END IF;
5384 ELSIF p_pay_adj = 'APP' THEN
5385 -- Freight paied over Rev line frt_adj_rem
5386 IF p_acctd = 'Y' THEN
5387 l_res := g_acctd_frt_applied; ELSE l_res := g_frt_applied;
5388 END IF;
5389 ELSIF p_pay_adj = 'ED' THEN
5390 -- ED Frt on Rev line
5391 IF p_acctd = 'Y' THEN
5392 l_res := g_acctd_frt_ed; ELSE l_res := g_frt_ed;
5393 END IF;
5394 ELSIF p_pay_adj = 'UNED' THEN
5395 -- UNED Frt on Rev line
5396 IF p_acctd = 'Y' THEN
5397 l_res := g_acctd_frt_uned; ELSE l_res := g_frt_uned;
5398 END IF;
5399 END IF;
5400 ELSIF p_line_type = 'FREIGHT' THEN
5401 IF p_pay_adj = 'ADJ' THEN
5402 -- Freight adjusted over rev line only
5403 l_res := 0;
5404 ELSIF p_pay_adj = 'APP' THEN
5405 -- Freight paied over freight line remaining amount
5406 IF p_acctd = 'Y' THEN
5407 l_res := g_acctd_frt_applied; ELSE l_res := g_frt_applied;
5408 END IF;
5409 ELSIF p_pay_adj = 'ED' THEN
5410 IF p_acctd = 'Y' THEN
5411 --{ HYUED Frt over Rev line Only
5412 l_res := g_acctd_frt_ed; ELSE l_res := g_frt_ed;
5413 -- l_res := 0; ELSE l_res := 0;
5414 --}
5415 END IF;
5416 ELSIF p_pay_adj = 'UNED' THEN
5417 IF p_acctd = 'Y' THEN
5418 --{ Frt HYUUNED over Rev line Only
5419 l_res := g_acctd_frt_uned; ELSE l_res := g_frt_uned;
5420 -- l_res := 0; ELSE l_res := 0;
5421 END IF;
5422 END IF;
5423 ELSE
5424 -- Not Freight amount affected if the line type is TAX
5425 l_res := 0;
5426 END IF;
5427
5428 ELSIF p_chrg_bucket = 'N' AND p_frt_bucket = 'N' THEN
5429
5430 IF p_line_type IN ('LINE','CB') THEN
5431 IF p_pay_adj = 'ADJ' THEN
5432 -- Rev adjusted over Rev Line
5433 IF p_acctd = 'Y' THEN
5434 l_res := g_acctd_line_adj; ELSE l_res := g_line_adj;
5435 END IF;
5436 ELSIF p_pay_adj = 'APP' THEN
5437 -- Rev paied over Rev Line
5438 IF p_acctd = 'Y' THEN
5439 l_res := g_acctd_line_applied; ELSE l_res := g_line_applied;
5440 END IF;
5441 ELSIF p_pay_adj = 'ED' THEN
5442 -- ED Rev on Rev line
5443 IF p_acctd = 'Y' THEN
5444 l_res := g_acctd_line_ed; ELSE l_res := g_line_ed;
5445 END IF;
5446 ELSIF p_pay_adj = 'UNED' THEN
5447 -- UNED Rev on Rev line
5448 IF p_acctd = 'Y' THEN
5449 l_res := g_acctd_line_uned; ELSE l_res := g_line_uned;
5450 END IF;
5451 END IF;
5452 ELSIF p_line_type = 'TAX' THEN
5453 IF p_pay_adj = 'ADJ' THEN
5454 --Tax adjusted on Tax Line
5455 IF p_acctd = 'Y' THEN
5456 l_res := g_acctd_tax_adj; ELSE l_res := g_tax_adj;
5457 END IF;
5458 ELSIF p_pay_adj = 'APP' THEN
5459 -- Tax applied on Tax line
5460 IF p_acctd = 'Y' THEN
5461 l_res := g_acctd_tax_applied; ELSE l_res := g_tax_applied;
5462 END IF;
5463 ELSIF p_pay_adj = 'ED' THEN
5464 -- ED Tax over Tax line
5465 IF p_acctd = 'Y' THEN
5466 l_res := g_acctd_tax_ed; ELSE l_res := g_tax_ed;
5467 END IF;
5468 ELSIF p_pay_adj = 'UNED' THEN
5469 -- UNED Tax over Tax Line
5470 IF p_acctd = 'Y' THEN
5471 l_res := g_acctd_tax_uned; ELSE l_res := g_tax_uned;
5472 END IF;
5473 END IF;
5474 ELSE
5475 -- No tax amount affected to Rev or Frt line
5476 l_res := 0;
5477 END IF;
5478 END IF;
5479
5480 IF PG_DEBUG = 'Y' THEN
5481 localdebug(' l_res : '|| l_res);
5482 localdebug('arp_det_dist_pkg.the_concern_bucket()-');
5483 END IF;
5484 RETURN l_res;
5485 END the_concern_bucket;
5486
5487
5488
5489 PROCEDURE prepare_trx_line_proration
5490 (p_gt_id IN VARCHAR2,
5491 p_customer_trx_id IN NUMBER,
5492 p_pay_adj IN VARCHAR2,
5493 p_adj_rec IN ar_adjustments%ROWTYPE,
5494 p_app_rec IN ar_receivable_applications%ROWTYPE,
5495 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
5496 IS
5497 BEGIN
5498 IF PG_DEBUG = 'Y' THEN
5499 localdebug('arp_det_dist_pkg.prepare_trx_line_proration()+');
5500 END IF;
5501
5502
5503 -- To executed independently
5504 -- prepare_group_for_proration(p_gt_id => p_gt_id,
5505 -- p_customer_trx_id => p_customer_trx_id);
5506 -- update_group_line(p_gt_id => p_gt_id,
5507 -- p_customer_trx_id => p_customer_trx_id);
5508
5509 --replaced the update with an insert for better performance[Bug 6454022]
5510 INSERT INTO RA_AR_AMOUNTS_GT (
5511 gt_id ,
5512 gp_level,
5513 base_rec_rowid,
5514 ref_customer_trx_id ,
5515 ref_customer_trx_line_id,
5516
5517 -- ADJ and APP
5518 base_pro_amt ,
5519 base_pro_acctd_amt ,
5520 BASE_FRT_PRO_AMT ,
5521 BASE_FRT_PRO_ACCTD_AMT ,
5522 BASE_TAX_PRO_AMT ,
5523 BASE_TAX_PRO_ACCTD_AMT ,
5524 BASE_CHRG_PRO_AMT ,
5525 BASE_CHRG_PRO_ACCTD_AMT ,
5526
5527 elmt_pro_amt ,
5528 elmt_pro_acctd_amt ,
5529 ELMT_FRT_PRO_AMT ,
5530 ELMT_FRT_PRO_ACCTD_AMT ,
5531 ELMT_TAX_PRO_AMT ,
5532 ELMT_TAX_PRO_ACCTD_AMT ,
5533 ELMT_CHRG_PRO_AMT ,
5534 ELMT_CHRG_PRO_ACCTD_AMT ,
5535
5536 buc_alloc_amt ,
5537 buc_alloc_acctd_amt,
5538 buc_frt_alloc_amt ,
5539 buc_frt_alloc_acctd_amt,
5540 buc_tax_alloc_amt ,
5541 buc_tax_alloc_acctd_amt,
5542 buc_chrg_alloc_amt ,
5543 buc_chrg_alloc_acctd_amt,
5544 --D
5545 base_ed_pro_amt ,
5546 base_ed_pro_acctd_amt ,
5547 BASE_ed_FRT_PRO_AMT ,
5548 BASE_ed_FRT_PRO_ACCTD_AMT ,
5549 BASE_ed_TAX_PRO_AMT ,
5550 BASE_ed_TAX_PRO_ACCTD_AMT ,
5551 BASE_ed_CHRG_PRO_AMT ,
5552 BASE_ed_CHRG_PRO_ACCTD_AMT ,
5553
5554 elmt_ed_pro_amt ,
5555 elmt_ed_pro_acctd_amt ,
5556 ELMT_ed_FRT_PRO_AMT ,
5557 ELMT_ed_FRT_PRO_ACCTD_AMT ,
5558 ELMT_ed_TAX_PRO_AMT ,
5559 ELMT_ed_TAX_PRO_ACCTD_AMT ,
5560 ELMT_ed_CHRG_PRO_AMT ,
5561 ELMT_ed_CHRG_PRO_ACCTD_AMT ,
5562
5563 buc_ed_alloc_amt ,
5564 buc_ed_alloc_acctd_amt,
5565 buc_ed_frt_alloc_amt ,
5566 buc_ed_frt_alloc_acctd_amt,
5567 buc_ed_tax_alloc_amt ,
5568 buc_ed_tax_alloc_acctd_amt,
5569 buc_ed_chrg_alloc_amt ,
5570 buc_ed_chrg_alloc_acctd_amt,
5571 --NED
5572 base_uned_pro_amt ,
5573 base_uned_pro_acctd_amt ,
5574 BASE_uned_FRT_PRO_AMT ,
5575 BASE_uned_FRT_PRO_ACCTD_AMT ,
5576 BASE_uned_TAX_PRO_AMT ,
5577 BASE_uned_TAX_PRO_ACCTD_AMT ,
5578 BASE_uned_CHRG_PRO_AMT ,
5579 BASE_uned_CHRG_PRO_ACCTD_AMT ,
5580
5581 elmt_uned_pro_amt ,
5582 elmt_uned_pro_acctd_amt ,
5583 ELMT_uned_FRT_PRO_AMT ,
5584 ELMT_uned_FRT_PRO_ACCTD_AMT ,
5585 ELMT_uned_TAX_PRO_AMT ,
5586 ELMT_uned_TAX_PRO_ACCTD_AMT ,
5587 ELMT_uned_CHRG_PRO_AMT ,
5588 ELMT_uned_CHRG_PRO_ACCTD_AMT ,
5589
5590 buc_uned_alloc_amt ,
5591 buc_uned_alloc_acctd_amt,
5592 buc_uned_frt_alloc_amt ,
5593 buc_uned_frt_alloc_acctd_amt,
5594 buc_uned_tax_alloc_amt ,
5595 buc_uned_tax_alloc_acctd_amt,
5596 buc_uned_chrg_alloc_amt ,
5597 buc_uned_chrg_alloc_acctd_amt
5598 )
5599
5600
5601 SELECT /*+INDEX(c ra_ar_n1) INDEX(b ra_ar_n1) INDEX(d RA_AR_AMOUNTS_GT_N1)*/
5602 c.gt_id
5603 ,b.gp_level
5604 ,b.rowid
5605 ,c.ref_customer_trx_id
5606 ,c.ref_customer_trx_line_id
5607 /**************************
5608 -- ADJ and APP
5609 **************************/
5610 --Base
5611 ,CASE WHEN g_line_flag = 'INTERFACE' THEN b.sum_int_line_amount ELSE d.elmt_pro_amt END
5612 ,CASE WHEN g_line_flag = 'INTERFACE' THEN b.sum_int_line_amount ELSE d.elmt_pro_acctd_amt END
5613 ,d.ELMT_FRT_PRO_AMT
5614 ,d.ELMT_FRT_PRO_ACCTD_AMT
5615 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN b.sum_int_tax_amount ELSE d.ELMT_TAX_PRO_AMT END
5616 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN b.sum_int_tax_amount ELSE d.ELMT_TAX_PRO_ACCTD_AMT END
5617 ,d.ELMT_CHRG_PRO_AMT
5618 ,d.ELMT_CHRG_PRO_ACCTD_AMT
5619 --Elmt
5620 -- For line
5621 ,CASE WHEN g_line_flag = 'INTERFACE' THEN b.int_line_amount
5622 ELSE
5623 DECODE(p_pay_adj,
5624 'ADJ',DECODE(b.SUM_LINE_REM_AMT, 0 ,
5625 b.DUE_ORIG_AMT ,
5626 b.DUE_REM_AMT),
5627 b.DUE_REM_AMT)
5628 END
5629 ,CASE WHEN g_line_flag = 'INTERFACE' THEN b.int_line_amount
5630 ELSE
5631 DECODE(p_pay_adj,
5632 'ADJ',DECODE(b.SUM_LINE_REM_ACCTD_AMT, 0 ,
5633 b.DUE_ORIG_ACCTD_AMT ,
5634 b.DUE_REM_ACCTD_AMT),
5635 b.DUE_REM_ACCTD_AMT)
5636 END
5637 -- For freight
5638 ,DECODE(p_pay_adj,
5639 'ADJ',DECODE(b.SUM_LINE_REM_AMT, 0 ,
5640 b.DUE_ORIG_AMT ,
5641 b.DUE_REM_AMT),
5642 DECODE(b.line_type,'FREIGHT', b.FRT_REM_AMT,
5643 'LINE' , b.frt_adj_rem_amt,
5644 'CB' , b.frt_adj_rem_amt, 0))
5645 ,DECODE(p_pay_adj,
5646 'ADJ',DECODE(b.SUM_LINE_REM_ACCTD_AMT, 0 ,
5647 b.DUE_ORIG_ACCTD_AMT ,
5648 b.DUE_REM_ACCTD_AMT),
5649 DECODE(b.line_type,'FREIGHT', b.FRT_REM_ACCTD_AMT,
5650 'LINE' , b.frt_adj_rem_acctd_amt,
5651 'CB' , b.frt_adj_rem_acctd_amt,0))
5652 -- For tax
5653 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN b.int_tax_amount
5654 ELSE
5655 DECODE(p_pay_adj,
5656 'ADJ',DECODE(b.SUM_LINE_TAX_REM_AMT, 0 ,
5657 b.TAX_ORIG_AMT ,
5658 b.TAX_REM_AMT),
5659 b.TAX_REM_AMT)
5660 END
5661 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN b.int_tax_amount
5662 ELSE
5663 DECODE(p_pay_adj,
5664 'ADJ',DECODE(b.SUM_LINE_TAX_REM_ACCTD_AMT, 0 ,
5665 b.TAX_ORIG_ACCTD_AMT ,
5666 b.TAX_REM_ACCTD_AMT),
5667 b.TAX_REM_ACCTD_AMT)
5668 END
5669 -- For Chrg
5670 ,DECODE(p_pay_adj,
5671 'ADJ',DECODE(b.SUM_LINE_REM_AMT, 0 ,
5672 b.DUE_ORIG_AMT ,
5673 b.DUE_REM_AMT),
5674 DECODE(b.line_type,'CHARGES', b.CHRG_REM_AMT,
5675 'LINE' , b.chrg_adj_rem_amt,
5676 'CB' , b.chrg_adj_rem_amt, 0))
5677 ,DECODE(p_pay_adj,
5678 'ADJ',DECODE(b.SUM_LINE_REM_ACCTD_AMT, 0 ,
5679 b.DUE_ORIG_ACCTD_AMT ,
5680 b.DUE_REM_ACCTD_AMT),
5681 DECODE(b.line_type,'CHARGES', b.CHRG_REM_ACCTD_AMT,
5682 'LINE' , b.chrg_adj_rem_acctd_amt,
5683 'CB' , b.chrg_adj_rem_acctd_amt,0))
5684 --Bucket
5685 ,CASE WHEN g_line_flag = 'NORMAL' THEN c.TL_ALLOC_AMT ELSE
5686 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
5687 b.line_type,
5688 'N',
5689 'N',
5690 'N') END
5691 ,CASE WHEN g_line_flag = 'NORMAL' THEN c.TL_ALLOC_ACCTD_AMT ELSE
5692 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
5693 b.line_type,
5694 'Y',
5695 'N',
5696 'N') END
5697 ,c.tl_frt_alloc_amt
5698 ,c.tl_frt_alloc_acctd_amt
5699 ,CASE WHEN g_tax_flag = 'NORMAL' THEN c.TL_TAX_ALLOC_AMT ELSE
5700 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
5701 b.line_type,
5702 'N',
5703 'N',
5704 'N') END
5705 ,CASE WHEN g_tax_flag = 'NORMAL' THEN c.TL_TAX_ALLOC_ACCTD_AMT ELSE
5706 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
5707 b.line_type,
5708 'Y',
5709 'N',
5710 'N') END
5711 ,c.TL_CHRG_ALLOC_AMT
5712 ,c.TL_CHRG_ALLOC_ACCTD_AMT
5713 /**************************
5714 -- ED
5715 **************************/
5716 --Base
5717 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN b.sum_int_ed_line_amount ELSE d.elmt_ed_pro_amt END
5718 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN b.sum_int_ed_line_amount ELSE d.elmt_ed_pro_acctd_amt END
5719 ,d.elmt_ed_frt_pro_amt
5720 ,d.elmt_ed_frt_pro_acctd_amt
5721 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN b.sum_int_ed_tax_amount ELSE d.elmt_ed_tax_pro_amt END
5722 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN b.sum_int_ed_tax_amount ELSE d.elmt_ed_tax_pro_acctd_amt END
5723 ,d.ELMT_ed_CHRG_PRO_AMT
5724 ,d.ELMT_ed_CHRG_PRO_ACCTD_AMT
5725 --
5726 --Elmt
5727 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN b.int_ed_line_amount
5728 ELSE
5729 DECODE(b.line_type,'LINE' , b.DUE_REM_AMT,
5730 'CB' , b.due_rem_amt, 0)
5731 END
5732 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN b.int_ed_line_amount
5733 ELSE
5734 DECODE(b.line_type,'LINE' , b.DUE_REM_ACCTD_AMT,
5735 'CB' , b.due_rem_acctd_amt,0)
5736 END
5737 ,DECODE(b.line_type,'FREIGHT', b.frt_REM_AMT,
5738 'LINE' , b.frt_adj_rem_amt,
5739 'CB' , b.frt_adj_rem_amt,0)
5740 ,DECODE(b.line_type,'FREIGHT', b.frt_REM_ACCTD_AMT,
5741 'LINE' , b.frt_adj_rem_acctd_amt,
5742 'CB' , b.frt_adj_rem_acctd_amt,0)
5743 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN b.int_ed_tax_amount ELSE b.TAX_REM_AMT END
5744 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN b.int_ed_tax_amount ELSE b.TAX_REM_ACCTD_AMT END
5745 ,DECODE(b.line_type,'CHARGES', b.chrg_REM_AMT,
5746 'LINE' , b.chrg_adj_rem_amt,
5747 'CB' , b.chrg_adj_rem_amt,0)
5748 ,DECODE(b.line_type,'CHARGES', b.chrg_REM_ACCTD_AMT,
5749 'LINE' , b.chrg_adj_rem_acctd_amt,
5750 'CB' , b.chrg_adj_rem_acctd_amt,0)
5751 --Bucket
5752 ,CASE WHEN g_ed_line_flag = 'NORMAL' THEN c.TL_ED_ALLOC_AMT ELSE
5753 CASE when g_ed_req = 'Y' then
5754 arp_det_dist_pkg.the_concern_bucket('ED',
5755 b.line_type,
5756 'N',
5757 'N',
5758 'N')
5759 else 0 end
5760 END
5761 ,CASE WHEN g_ed_line_flag = 'NORMAL' THEN c.TL_ED_ALLOC_ACCTD_AMT ELSE
5762 CASE
5763 when g_ed_req = 'Y' then
5764 arp_det_dist_pkg.the_concern_bucket('ED',
5765 b.line_type,
5766 'Y',
5767 'N',
5768 'N')
5769 else 0 end
5770 END
5771 ,c.TL_ED_FRT_ALLOC_AMT
5772 ,c.TL_ED_FRT_ALLOC_ACCTD_AMT
5773 ,CASE WHEN g_ed_tax_flag = 'NORMAL' THEN c.TL_ED_TAX_ALLOC_AMT ELSE
5774 CASE
5775 when g_ed_req = 'Y' then
5776 arp_det_dist_pkg.the_concern_bucket('ED',
5777 b.line_type,
5778 'N',
5779 'N',
5780 'N')
5781 else 0 end
5782 END
5783 ,CASE WHEN g_ed_tax_flag = 'NORMAL' THEN c.TL_ED_TAX_ALLOC_ACCTD_AMT ELSE
5784 CASE
5785 when g_ed_req = 'Y' then
5786 arp_det_dist_pkg.the_concern_bucket('ED',
5787 b.line_type,
5788 'Y',
5789 'N',
5790 'N')
5791 else 0 end
5792 END
5793 ,c.TL_ED_CHRG_ALLOC_AMT
5794 ,c.TL_ED_CHRG_ALLOC_ACCTD_AMT
5795
5796 /**************************
5797 -- UNED
5798 **************************/
5799 --Base
5800 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN b.sum_int_uned_line_amount ELSE d.elmt_uned_pro_amt END
5801 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN b.sum_int_uned_line_amount ELSE d.elmt_uned_pro_acctd_amt END
5802 ,d.elmt_uned_frt_pro_amt
5803 ,d.elmt_uned_frt_pro_acctd_amt
5804 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN b.sum_int_uned_tax_amount ELSE d.elmt_uned_tax_pro_amt END
5805 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN b.sum_int_uned_tax_amount ELSE d.elmt_uned_tax_pro_acctd_amt END
5806 ,d.ELMT_uned_CHRG_PRO_AMT
5807 ,d.ELMT_uned_CHRG_PRO_ACCTD_AMT
5808 --
5809 -- ,b.DUE_REM_AMT
5810 -- ,b.DUE_REM_ACCTD_AMT
5811 --{BUG#4415037
5812 -- ,DECODE(b.line_type,'LINE' , b.DUE_REM_AMT,
5813 -- 'CB' , b.due_rem_amt,0)
5814 -- ,DECODE(b.line_type,'LINE' , b.DUE_REM_ACCTD_AMT,
5815 -- 'CB' , b.due_rem_acctd_amt,0)
5816 --Elmt
5817 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN b.int_uned_line_amount
5818 ELSE
5819 DECODE(b.line_type,'LINE' , b.DUE_REM_AMT,
5820 'CB' , b.due_rem_amt,0)
5821 END
5822 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN b.int_uned_line_amount
5823 ELSE
5824 DECODE(b.line_type,'LINE' , b.DUE_REM_ACCTD_AMT,
5825 'CB' , b.due_rem_acctd_amt,0)
5826 END
5827 ,DECODE(b.line_type,'FREIGHT', b.frt_REM_AMT,
5828 'LINE' , b.frt_adj_rem_amt,
5829 'CB' , b.frt_adj_rem_amt,0)
5830 ,DECODE(b.line_type,'FREIGHT', b.frt_REM_ACCTD_AMT,
5831 'LINE' , b.frt_adj_rem_acctd_amt,
5832 'CB' , b.frt_adj_rem_acctd_amt,0)
5833 -- ,DECODE(b.line_type,'LINE' , b.DUE_REM_AMT,0)
5834 -- ,DECODE(b.line_type,'LINE' , b.DUE_REM_ACCTD_AMT,0)
5835 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN b.int_uned_tax_amount ELSE b.TAX_REM_AMT END
5836 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN b.int_uned_tax_amount ELSE b.TAX_REM_ACCTD_AMT END
5837 ,DECODE(b.line_type,'CHARGES', b.chrg_REM_AMT,
5838 'LINE' , b.chrg_adj_rem_amt,
5839 'CB' , b.chrg_adj_rem_amt,0)
5840 ,DECODE(b.line_type,'CHARGES', b.chrg_REM_ACCTD_AMT,
5841 'LINE' , b.chrg_adj_rem_acctd_amt,
5842 'CB' , b.chrg_adj_rem_acctd_amt,0)
5843 --Bucket
5844 ,CASE WHEN g_uned_line_flag = 'NORMAL' THEN c.TL_UNED_ALLOC_AMT ELSE
5845 CASE
5846 when g_uned_req = 'Y' then
5847 arp_det_dist_pkg.the_concern_bucket('UNED',
5848 b.line_type,
5849 'N',
5850 'N',
5851 'N')
5852 else 0 end
5853 END
5854 ,CASE WHEN g_uned_line_flag = 'NORMAL' THEN c.TL_UNED_ALLOC_ACCTD_AMT ELSE
5855 CASE
5856 when g_uned_req = 'Y' then
5857 arp_det_dist_pkg.the_concern_bucket('UNED',
5858 b.line_type,
5859 'Y',
5860 'N',
5861 'N')
5862 else 0 end
5863 END
5864 ,c.TL_UNED_FRT_ALLOC_AMT
5865 ,c.TL_UNED_FRT_ALLOC_ACCTD_AMT
5866 ,CASE WHEN g_uned_tax_flag = 'NORMAL' THEN c.TL_UNED_TAX_ALLOC_AMT ELSE
5867 CASE
5868 when g_uned_req = 'Y' then
5869 arp_det_dist_pkg.the_concern_bucket('UNED',
5870 b.line_type,
5871 'N',
5872 'N',
5873 'N')
5874 else 0 end
5875 END
5876 ,CASE WHEN g_uned_tax_flag = 'NORMAL' THEN c.TL_UNED_TAX_ALLOC_ACCTD_AMT ELSE
5877 CASE
5878 when g_uned_req = 'Y' then
5879 arp_det_dist_pkg.the_concern_bucket('UNED',
5880 b.line_type,
5881 'Y',
5882 'N',
5883 'N')
5884 else 0 end
5885 END
5886 ,c.TL_UNED_CHRG_ALLOC_AMT
5887 ,c.TL_UNED_CHRG_ALLOC_ACCTD_AMT
5888 FROM RA_AR_GT b,
5889 RA_AR_GT c,
5890 RA_AR_AMOUNTS_GT d
5891 WHERE b.gt_id = p_gt_id
5892 -- AND b.se_gt_id = g_se_gt_id
5893 AND b.ref_customer_trx_id = p_customer_trx_id
5894 AND b.gp_level = 'L'
5895 --Bug#3611016
5896 AND b.set_of_books_id = p_ae_sys_rec.set_of_books_id
5897 AND (b.sob_type = p_ae_sys_rec.sob_type OR
5898 (b.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
5899 AND c.gt_id = p_gt_id
5900 AND c.gp_level = 'GPL'
5901 AND c.ref_customer_trx_id = p_customer_trx_id
5902 --Bug#3611016
5903 AND c.set_of_books_id = p_ae_sys_rec.set_of_books_id
5904 AND (c.sob_type = p_ae_sys_rec.sob_type OR
5905 (c.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
5906 AND c.gt_id = d.gt_id
5907 AND c.rowid = d.base_rec_rowid
5908 -- AND c.group_id = b.group_id
5909 --{HYUBPAGP
5910 AND c.source_data_key1 = b.source_data_key1
5911 AND c.source_data_key2 = b.source_data_key2
5912 AND c.source_data_key3 = b.source_data_key3
5913 AND c.source_data_key4 = b.source_data_key4
5914 AND c.source_data_key5 = b.source_data_key5
5915 --}
5916 AND c.line_type = b.line_type
5917 --{HYUIssue
5918 AND c.ref_customer_trx_line_id = b.ref_customer_trx_line_id;
5919 --}
5920
5921 IF PG_DEBUG = 'Y' THEN
5922 display_ra_ar_gt(p_code => 'L', p_gt_id => p_gt_id);
5923 END IF;
5924
5925 IF PG_DEBUG = 'Y' THEN
5926 localdebug('arp_det_dist_pkg.prepare_trx_line_proration()-');
5927 END IF;
5928 EXCEPTION
5929 WHEN OTHERS THEN
5930 IF PG_DEBUG = 'Y' THEN
5931 localdebug('EXCEPTION OTHERS prepare_trx_line_proration:'||SQLERRM);
5932 END IF;
5933 END prepare_trx_line_proration;
5934
5935
5936
5937 PROCEDURE update_ctl_rem_orig
5938 (p_gt_id IN VARCHAR2,
5939 p_customer_trx_id IN NUMBER,
5940 p_pay_adj IN VARCHAR2,
5941 p_customer_trx_line_id IN NUMBER DEFAULT NULL,
5942 --{HYUBPAGP
5943 p_source_data_key1 IN VARCHAR2 DEFAULT NULL,
5944 p_source_data_key2 IN VARCHAR2 DEFAULT NULL,
5945 p_source_data_key3 IN VARCHAR2 DEFAULT NULL,
5946 p_source_data_key4 IN VARCHAR2 DEFAULT NULL,
5947 p_source_data_key5 IN VARCHAR2 DEFAULT NULL,
5948 --}
5949 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
5950 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
5951 IS
5952 BEGIN
5953 IF PG_DEBUG = 'Y' THEN
5954 localdebug('arp_det_dist_pkg.update_ctl_rem_orig()+');
5955 localdebug(' p_customer_trx_line_id:'||p_customer_trx_line_id);
5956 localdebug(' p_source_data_key1 :'||p_source_data_key1);
5957 localdebug(' p_source_data_key2 :'||p_source_data_key2);
5958 localdebug(' p_source_data_key3 :'||p_source_data_key3);
5959 localdebug(' p_source_data_key4 :'||p_source_data_key4);
5960 localdebug(' p_source_data_key5 :'||p_source_data_key5);
5961 localdebug(' p_log_inv_line :'||p_log_inv_line);
5962 localdebug(' Update rem amount in ra_customer_trx_lines_gt for regular transaction');
5963 END IF;
5964 IF p_customer_trx_line_id IS NOT NULL THEN
5965 IF p_log_inv_line = 'N' THEN
5966
5967 UPDATE /*+ index(A RA_CUSTOMER_TRX_LINES_GT_N1)*/ ra_customer_trx_lines_gt a
5968 SET (a.AMOUNT_DUE_REMAINING ,
5969 a.ACCTD_AMOUNT_DUE_REMAINING ,
5970 a.AMOUNT_DUE_ORIGINAL ,
5971 a.ACCTD_AMOUNT_DUE_ORIGINAL ,
5972 a.CHRG_AMOUNT_REMAINING ,
5973 a.CHRG_ACCTD_AMOUNT_REMAINING ,
5974 a.FRT_ADJ_REMAINING ,
5975 a.FRT_ADJ_ACCTD_REMAINING ,
5976 a.frt_ed_amount,
5977 a.frt_ed_acctd_amount,
5978 a.frt_uned_amount,
5979 a.frt_uned_acctd_amount) =
5980 (SELECT /*+INDEX (b ra_ar_n1)*/
5981 DECODE(a.line_type, 'LINE',
5982 NVL(a.AMOUNT_DUE_REMAINING,0)
5983 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
5984 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
5985 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
5986 'CB',
5987 NVL(a.AMOUNT_DUE_REMAINING,0)
5988 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
5989 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
5990 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
5991 'TAX',
5992 NVL(a.AMOUNT_DUE_REMAINING,0)
5993 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_amt,0),NVL(b.tl_tax_alloc_amt,0))
5994 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_amt,0),NVL(b.tl_ed_tax_alloc_amt,0))
5995 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_amt,0),NVL(b.tl_uned_tax_alloc_amt,0)),
5996 'FREIGHT',
5997 NVL(a.AMOUNT_DUE_REMAINING,0)
5998 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_amt,0)),
5999 'CHARGES',
6000 NVL(a.AMOUNT_DUE_REMAINING,0)
6001 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_amt,0)),
6002 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_amt,0))
6003 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_amt,0)),
6004 0) -- AMOUNT_DUE_REMAINING
6005 ,DECODE(a.line_type, 'LINE',
6006 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6007 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
6008 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
6009 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
6010 'CB',
6011 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6012 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
6013 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
6014 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
6015 'TAX',
6016 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6017 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_acctd_amt,0),NVL(b.tl_tax_alloc_acctd_amt,0))
6018 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_acctd_amt,0),NVL(b.tl_ed_tax_alloc_acctd_amt,0))
6019 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_acctd_amt,0),NVL(b.tl_uned_tax_alloc_acctd_amt,0)),
6020 'FREIGHT',
6021 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6022 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_acctd_amt,0)),
6023 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0))
6024 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)),
6025 --{HYUCHRG
6026 'CHARGES',
6027 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6028 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_acctd_amt,0)),
6029 0) -- ACCTD_AMOUNT_DUE_REMAINING
6030 --}
6031 ,DECODE(a.line_type, 'LINE', NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
6032 'CB' , NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
6033 'FREIGHT', NVL(a.AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_AMT),
6034 'CHARGES', NVL(a.AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_AMT),
6035 'TAX', NVL(a.AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_AMT),
6036 0) -- AMOUNT_DUE_ORIGINAL
6037 ,DECODE(a.line_type, 'LINE', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
6038 'CB' , NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
6039 'FREIGHT', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_ACCTD_AMT),
6040 'CHARGES', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_ACCTD_AMT),
6041 'TAX', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_ACCTD_AMT),
6042 0) -- ACCTD_AMOUNT_DUE_ORIGINAL
6043 --{HYUCHRG
6044 -- ,NVL(a.CHRG_AMOUNT_REMAINING,0)
6045 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),NVL(b.tl_chrg_alloc_amt,0))
6046 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_amt,0),NVL(b.tl_ed_chrg_alloc_amt,0))
6047 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_amt,0),NVL(b.tl_uned_chrg_alloc_amt,0))
6048 -- -- CHRG_AMOUNT_REMAINING
6049 -- ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
6050 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),NVL(b.tl_chrg_alloc_acctd_amt,0))
6051 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_acctd_amt,0),NVL(b.tl_ed_chrg_alloc_acctd_amt,0))
6052 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_acctd_amt,0),NVL(b.tl_uned_chrg_alloc_acctd_amt,0))
6053 -- -- CHRG_ACCTD_AMOUNT_REMAINING
6054 ,NVL(a.CHRG_AMOUNT_REMAINING,0)
6055 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),
6056 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_amt,0),
6057 'CB' ,NVL(b.tl_chrg_alloc_amt,0),0))
6058 -- CHRG_AMOUNT_REMAINING
6059 ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
6060 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),
6061 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_acctd_amt,0),
6062 'CB' ,NVL(b.tl_chrg_alloc_acctd_amt,0),0))
6063 -- CHRG_ACCTD_AMOUNT_REMAINING
6064 --}
6065 ,NVL(a.FRT_ADJ_REMAINING,0)
6066 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_amt,0),
6067 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_amt,0),
6068 'CB' ,NVL(b.tl_frt_alloc_amt,0),0))
6069 -- FRT_ADJ_REMAINING
6070 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_amt,0),
6071 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_amt,0),0))
6072 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_amt,0),
6073 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_amt,0),0))
6074 ,NVL(a.FRT_ADJ_ACCTD_REMAINING,0)
6075 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_acctd_amt,0),
6076 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_acctd_amt,0),
6077 'CB' ,NVL(b.tl_frt_alloc_acctd_amt,0),0))
6078 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0),
6079 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0)))
6080 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0),
6081 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)))
6082 -- FRT_ADJ_ACCTD_REMAINING
6083 ,NVL(a.frt_ed_amount,0)
6084 + DECODE(p_pay_adj,'ADJ',0,
6085 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_amt,0),
6086 'CB' ,NVL(b.tl_ed_frt_alloc_amt,0), 0))
6087 ,NVL(a.frt_ed_acctd_amount,0)
6088 + DECODE(p_pay_adj,'ADJ',0,
6089 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_acctd_amt,0),
6090 'CB' ,NVL(b.tl_ed_frt_alloc_acctd_amt,0),0))
6091 ,NVL(a.frt_uned_amount,0)
6092 + DECODE(p_pay_adj,'ADJ',0,
6093 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_amt,0),
6094 'CB' ,NVL(b.tl_uned_frt_alloc_amt,0),0))
6095 ,NVL(a.frt_uned_acctd_amount,0)
6096 + DECODE(p_pay_adj,'ADJ',0,
6097 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_acctd_amt,0),
6098 'CB' ,NVL(b.tl_uned_frt_alloc_acctd_amt,0),0))
6099 FROM RA_AR_GT b
6100 WHERE b.gt_id = p_gt_id
6101 -- AND b.se_gt_id = g_se_gt_id
6102 AND a.customer_trx_id = b.ref_customer_trx_id
6103 AND a.customer_trx_line_id = b.ref_customer_trx_line_id
6104 -- AND a.group_id = b.group_id
6105 --{HYUBPAGP
6106 AND NVL(a.source_data_key1,'00') = b.source_data_key1
6107 AND NVL(a.source_data_key2,'00') = b.source_data_key2
6108 AND NVL(a.source_data_key3,'00') = b.source_data_key3
6109 AND NVL(a.source_data_key4,'00') = b.source_data_key4
6110 AND NVL(a.source_data_key5,'00') = b.source_data_key5
6111 --}
6112 --Bug#3611016
6113 AND (b.sob_type = 'P' OR b.sob_type IS NULL)
6114 AND b.set_of_books_id = a.set_of_books_id
6115 AND b.gp_level = 'L')
6116 WHERE a.customer_trx_id = p_customer_trx_id
6117 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
6118 AND p_customer_trx_line_id = a.customer_trx_line_id
6119 -- AND DECODE( p_group_id, NULL, '-99', p_group_id)
6120 -- = DECODE(p_group_id, NULL, '-99', a.group_id)
6121 --{HYUBPAGP
6122 AND DECODE( p_source_data_key1, NULL, '-99', p_source_data_key1)
6123 = DECODE(p_source_data_key1, NULL, '-99', a.source_data_key1)
6124 AND DECODE( p_source_data_key2, NULL, '-99', p_source_data_key2)
6125 = DECODE(p_source_data_key2, NULL, '-99', a.source_data_key2)
6126 AND DECODE( p_source_data_key3, NULL, '-99', p_source_data_key3)
6127 = DECODE(p_source_data_key3, NULL, '-99', a.source_data_key3)
6128 AND DECODE( p_source_data_key4, NULL, '-99', p_source_data_key4)
6129 = DECODE(p_source_data_key4, NULL, '-99', a.source_data_key4)
6130 AND DECODE( p_source_data_key5, NULL, '-99', p_source_data_key5)
6131 = DECODE(p_source_data_key5, NULL, '-99', a.source_data_key5)
6132 --}
6133 AND a.line_type IN ('LINE','FREIGHT','TAX','CB','CHARGES');
6134
6135 ELSE
6136 UPDATE /*+ index(A RA_CUSTOMER_TRX_LINES_GT_N1)*/ ra_customer_trx_lines_gt a
6137 SET (a.AMOUNT_DUE_REMAINING ,
6138 a.ACCTD_AMOUNT_DUE_REMAINING ,
6139 a.AMOUNT_DUE_ORIGINAL ,
6140 a.ACCTD_AMOUNT_DUE_ORIGINAL ,
6141 a.CHRG_AMOUNT_REMAINING ,
6142 a.CHRG_ACCTD_AMOUNT_REMAINING ,
6143 a.FRT_ADJ_REMAINING ,
6144 a.FRT_ADJ_ACCTD_REMAINING ,
6145 a.frt_ed_amount,
6146 a.frt_ed_acctd_amount,
6147 a.frt_uned_amount,
6148 a.frt_uned_acctd_amount) =
6149 (SELECT /*+INDEX (b ra_ar_n1)*/
6150 DECODE(a.line_type, 'LINE',
6151 NVL(a.AMOUNT_DUE_REMAINING,0)
6152 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
6153 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
6154 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
6155 'CB',
6156 NVL(a.AMOUNT_DUE_REMAINING,0)
6157 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
6158 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
6159 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
6160 'TAX',
6161 NVL(a.AMOUNT_DUE_REMAINING,0)
6162 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_amt,0),NVL(b.tl_tax_alloc_amt,0))
6163 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_amt,0),NVL(b.tl_ed_tax_alloc_amt,0))
6164 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_amt,0),NVL(b.tl_uned_tax_alloc_amt,0)),
6165 'FREIGHT',
6166 NVL(a.AMOUNT_DUE_REMAINING,0)
6167 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_amt,0)),
6168 'CHARGES',
6169 NVL(a.AMOUNT_DUE_REMAINING,0)
6170 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_amt,0)),
6171 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_amt,0))
6172 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_amt,0)),
6173 0) -- AMOUNT_DUE_REMAINING
6174 ,DECODE(a.line_type, 'LINE',
6175 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6176 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
6177 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
6178 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
6179 'CB',
6180 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6181 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
6182 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
6183 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
6184 'TAX',
6185 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6186 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_acctd_amt,0),NVL(b.tl_tax_alloc_acctd_amt,0))
6187 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_acctd_amt,0),NVL(b.tl_ed_tax_alloc_acctd_amt,0))
6188 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_acctd_amt,0),NVL(b.tl_uned_tax_alloc_acctd_amt,0)),
6189 'FREIGHT',
6190 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6191 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_acctd_amt,0)),
6192 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0))
6193 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)),
6194 --{HYUCHRG
6195 'CHARGES',
6196 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6197 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_acctd_amt,0)),
6198 0) -- ACCTD_AMOUNT_DUE_REMAINING
6199 --}
6200 ,DECODE(a.line_type, 'LINE', NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
6201 'CB' , NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
6202 'FREIGHT', NVL(a.AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_AMT),
6203 'CHARGES', NVL(a.AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_AMT),
6204 'TAX', NVL(a.AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_AMT),
6205 0) -- AMOUNT_DUE_ORIGINAL
6206 ,DECODE(a.line_type, 'LINE', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
6207 'CB' , NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
6208 'FREIGHT', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_ACCTD_AMT),
6209 'CHARGES', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_ACCTD_AMT),
6210 'TAX', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_ACCTD_AMT),
6211 0) -- ACCTD_AMOUNT_DUE_ORIGINAL
6212 --{HYUCHRG
6213 -- ,NVL(a.CHRG_AMOUNT_REMAINING,0)
6214 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),NVL(b.tl_chrg_alloc_amt,0))
6215 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_amt,0),NVL(b.tl_ed_chrg_alloc_amt,0))
6216 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_amt,0),NVL(b.tl_uned_chrg_alloc_amt,0))
6217 -- -- CHRG_AMOUNT_REMAINING
6218 -- ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
6219 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),NVL(b.tl_chrg_alloc_acctd_amt,0))
6220 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_acctd_amt,0),NVL(b.tl_ed_chrg_alloc_acctd_amt,0))
6221 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_acctd_amt,0),NVL(b.tl_uned_chrg_alloc_acctd_amt,0))
6222 -- -- CHRG_ACCTD_AMOUNT_REMAINING
6223 ,NVL(a.CHRG_AMOUNT_REMAINING,0)
6224 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),
6225 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_amt,0),
6226 'CB' ,NVL(b.tl_chrg_alloc_amt,0),0))
6227 -- CHRG_AMOUNT_REMAINING
6228 ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
6229 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),
6230 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_acctd_amt,0),
6231 'CB' ,NVL(b.tl_chrg_alloc_acctd_amt,0),0))
6232 -- CHRG_ACCTD_AMOUNT_REMAINING
6233 --}
6234 ,NVL(a.FRT_ADJ_REMAINING,0)
6235 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_amt,0),
6236 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_amt,0),
6237 'CB' ,NVL(b.tl_frt_alloc_amt,0),0))
6238 -- FRT_ADJ_REMAINING
6239 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_amt,0),
6240 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_amt,0),0))
6241 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_amt,0),
6242 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_amt,0),0))
6243 ,NVL(a.FRT_ADJ_ACCTD_REMAINING,0)
6244 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_acctd_amt,0),
6245 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_acctd_amt,0),
6246 'CB' ,NVL(b.tl_frt_alloc_acctd_amt,0),0))
6247 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0),
6248 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0)))
6249 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0),
6250 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)))
6251 -- FRT_ADJ_ACCTD_REMAINING
6252 ,NVL(a.frt_ed_amount,0)
6253 + DECODE(p_pay_adj,'ADJ',0,
6254 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_amt,0),
6255 'CB' ,NVL(b.tl_ed_frt_alloc_amt,0), 0))
6256 ,NVL(a.frt_ed_acctd_amount,0)
6257 + DECODE(p_pay_adj,'ADJ',0,
6258 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_acctd_amt,0),
6259 'CB' ,NVL(b.tl_ed_frt_alloc_acctd_amt,0),0))
6260 ,NVL(a.frt_uned_amount,0)
6261 + DECODE(p_pay_adj,'ADJ',0,
6262 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_amt,0),
6263 'CB' ,NVL(b.tl_uned_frt_alloc_amt,0),0))
6264 ,NVL(a.frt_uned_acctd_amount,0)
6265 + DECODE(p_pay_adj,'ADJ',0,
6266 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_acctd_amt,0),
6267 'CB' ,NVL(b.tl_uned_frt_alloc_acctd_amt,0),0))
6268 FROM RA_AR_GT b
6269 WHERE b.gt_id = p_gt_id
6270 -- AND b.se_gt_id = g_se_gt_id
6271 AND a.customer_trx_id = b.ref_customer_trx_id
6272 AND a.customer_trx_line_id = b.ref_customer_trx_line_id
6273 -- AND a.group_id = b.group_id
6274 --{HYUBPAGP
6275 AND NVL(a.source_data_key1,'00') = b.source_data_key1
6276 AND NVL(a.source_data_key2,'00') = b.source_data_key2
6277 AND NVL(a.source_data_key3,'00') = b.source_data_key3
6278 AND NVL(a.source_data_key4,'00') = b.source_data_key4
6279 AND NVL(a.source_data_key5,'00') = b.source_data_key5
6280 --}
6281 --Bug#3611016
6282 AND (b.sob_type = 'P' OR b.sob_type IS NULL)
6283 AND b.set_of_books_id = a.set_of_books_id
6284 AND b.gp_level = 'L')
6285 WHERE a.customer_trx_id = p_customer_trx_id
6286 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
6287 AND p_customer_trx_line_id = a.customer_trx_line_id
6288 -- AND DECODE( p_group_id, NULL, '-99', p_group_id)
6289 -- = DECODE(p_group_id, NULL, '-99', a.group_id)
6290 --{HYUBPAGP
6291 AND DECODE( p_source_data_key1, NULL, '-99', p_source_data_key1)
6292 = DECODE(p_source_data_key1, NULL, '-99', a.source_data_key1)
6293 AND DECODE( p_source_data_key2, NULL, '-99', p_source_data_key2)
6294 = DECODE(p_source_data_key2, NULL, '-99', a.source_data_key2)
6295 AND DECODE( p_source_data_key3, NULL, '-99', p_source_data_key3)
6296 = DECODE(p_source_data_key3, NULL, '-99', a.source_data_key3)
6297 AND DECODE( p_source_data_key4, NULL, '-99', p_source_data_key4)
6298 = DECODE(p_source_data_key4, NULL, '-99', a.source_data_key4)
6299 AND DECODE( p_source_data_key5, NULL, '-99', p_source_data_key5)
6300 = DECODE(p_source_data_key5, NULL, '-99', a.source_data_key5)
6301 --}
6302 AND a.line_type IN ('LINE','CB');
6303
6304 UPDATE /*+ index(A RA_CUSTOMER_TRX_LINES_GT_N2)*/ ra_customer_trx_lines_gt a
6305 SET (a.AMOUNT_DUE_REMAINING ,
6306 a.ACCTD_AMOUNT_DUE_REMAINING ,
6307 a.AMOUNT_DUE_ORIGINAL ,
6308 a.ACCTD_AMOUNT_DUE_ORIGINAL ,
6309 a.CHRG_AMOUNT_REMAINING ,
6310 a.CHRG_ACCTD_AMOUNT_REMAINING ,
6311 a.FRT_ADJ_REMAINING ,
6312 a.FRT_ADJ_ACCTD_REMAINING ,
6313 a.frt_ed_amount,
6314 a.frt_ed_acctd_amount,
6315 a.frt_uned_amount,
6316 a.frt_uned_acctd_amount) =
6317 (SELECT /*+INDEX (b ra_ar_n1)*/
6318 DECODE(a.line_type, 'LINE',
6319 NVL(a.AMOUNT_DUE_REMAINING,0)
6320 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
6321 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
6322 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
6323 'CB',
6324 NVL(a.AMOUNT_DUE_REMAINING,0)
6325 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
6326 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
6327 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
6328 'TAX',
6329 NVL(a.AMOUNT_DUE_REMAINING,0)
6330 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_amt,0),NVL(b.tl_tax_alloc_amt,0))
6331 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_amt,0),NVL(b.tl_ed_tax_alloc_amt,0))
6332 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_amt,0),NVL(b.tl_uned_tax_alloc_amt,0)),
6333 'FREIGHT',
6334 NVL(a.AMOUNT_DUE_REMAINING,0)
6335 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_amt,0)),
6336 'CHARGES',
6337 NVL(a.AMOUNT_DUE_REMAINING,0)
6338 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_amt,0)),
6339 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_amt,0))
6340 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_amt,0)),
6341 0) -- AMOUNT_DUE_REMAINING
6342 ,DECODE(a.line_type, 'LINE',
6343 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6344 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
6345 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
6346 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
6347 'CB',
6348 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6349 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
6350 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
6351 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
6352 'TAX',
6353 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6354 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_acctd_amt,0),NVL(b.tl_tax_alloc_acctd_amt,0))
6355 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_acctd_amt,0),NVL(b.tl_ed_tax_alloc_acctd_amt,0))
6356 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_acctd_amt,0),NVL(b.tl_uned_tax_alloc_acctd_amt,0)),
6357 'FREIGHT',
6358 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6359 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_acctd_amt,0)),
6360 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0))
6361 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)),
6362 --{HYUCHRG
6363 'CHARGES',
6364 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6365 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_acctd_amt,0)),
6366 0) -- ACCTD_AMOUNT_DUE_REMAINING
6367 --}
6368 ,DECODE(a.line_type, 'LINE', NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
6369 'CB' , NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
6370 'FREIGHT', NVL(a.AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_AMT),
6371 'CHARGES', NVL(a.AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_AMT),
6372 'TAX', NVL(a.AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_AMT),
6373 0) -- AMOUNT_DUE_ORIGINAL
6374 ,DECODE(a.line_type, 'LINE', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
6375 'CB' , NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
6376 'FREIGHT', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_ACCTD_AMT),
6377 'CHARGES', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_ACCTD_AMT),
6378 'TAX', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_ACCTD_AMT),
6379 0) -- ACCTD_AMOUNT_DUE_ORIGINAL
6380 --{HYUCHRG
6381 -- ,NVL(a.CHRG_AMOUNT_REMAINING,0)
6382 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),NVL(b.tl_chrg_alloc_amt,0))
6383 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_amt,0),NVL(b.tl_ed_chrg_alloc_amt,0))
6384 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_amt,0),NVL(b.tl_uned_chrg_alloc_amt,0))
6385 -- -- CHRG_AMOUNT_REMAINING
6386 -- ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
6387 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),NVL(b.tl_chrg_alloc_acctd_amt,0))
6388 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_acctd_amt,0),NVL(b.tl_ed_chrg_alloc_acctd_amt,0))
6389 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_acctd_amt,0),NVL(b.tl_uned_chrg_alloc_acctd_amt,0))
6390 -- -- CHRG_ACCTD_AMOUNT_REMAINING
6391 ,NVL(a.CHRG_AMOUNT_REMAINING,0)
6392 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),
6393 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_amt,0),
6394 'CB' ,NVL(b.tl_chrg_alloc_amt,0),0))
6395 -- CHRG_AMOUNT_REMAINING
6396 ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
6397 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),
6398 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_acctd_amt,0),
6399 'CB' ,NVL(b.tl_chrg_alloc_acctd_amt,0),0))
6400 -- CHRG_ACCTD_AMOUNT_REMAINING
6401 --}
6402 ,NVL(a.FRT_ADJ_REMAINING,0)
6403 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_amt,0),
6404 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_amt,0),
6405 'CB' ,NVL(b.tl_frt_alloc_amt,0),0))
6406 -- FRT_ADJ_REMAINING
6407 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_amt,0),
6408 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_amt,0),0))
6409 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_amt,0),
6410 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_amt,0),0))
6411 ,NVL(a.FRT_ADJ_ACCTD_REMAINING,0)
6412 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_acctd_amt,0),
6413 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_acctd_amt,0),
6414 'CB' ,NVL(b.tl_frt_alloc_acctd_amt,0),0))
6415 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0),
6416 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0)))
6417 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0),
6418 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)))
6419 -- FRT_ADJ_ACCTD_REMAINING
6420 ,NVL(a.frt_ed_amount,0)
6421 + DECODE(p_pay_adj,'ADJ',0,
6422 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_amt,0),
6423 'CB' ,NVL(b.tl_ed_frt_alloc_amt,0), 0))
6424 ,NVL(a.frt_ed_acctd_amount,0)
6425 + DECODE(p_pay_adj,'ADJ',0,
6426 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_acctd_amt,0),
6427 'CB' ,NVL(b.tl_ed_frt_alloc_acctd_amt,0),0))
6428 ,NVL(a.frt_uned_amount,0)
6429 + DECODE(p_pay_adj,'ADJ',0,
6430 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_amt,0),
6431 'CB' ,NVL(b.tl_uned_frt_alloc_amt,0),0))
6432 ,NVL(a.frt_uned_acctd_amount,0)
6433 + DECODE(p_pay_adj,'ADJ',0,
6434 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_acctd_amt,0),
6435 'CB' ,NVL(b.tl_uned_frt_alloc_acctd_amt,0),0))
6436 FROM RA_AR_GT b
6437 WHERE b.gt_id = p_gt_id
6438 -- AND b.se_gt_id = g_se_gt_id
6439 AND a.customer_trx_id = b.ref_customer_trx_id
6440 AND a.customer_trx_line_id = b.ref_customer_trx_line_id
6441 -- AND a.group_id = b.group_id
6442 --{HYUBPAGP
6443 AND NVL(a.source_data_key1,'00') = b.source_data_key1
6444 AND NVL(a.source_data_key2,'00') = b.source_data_key2
6445 AND NVL(a.source_data_key3,'00') = b.source_data_key3
6446 AND NVL(a.source_data_key4,'00') = b.source_data_key4
6447 AND NVL(a.source_data_key5,'00') = b.source_data_key5
6448 --}
6449 --Bug#3611016
6450 AND (b.sob_type = 'P' OR b.sob_type IS NULL)
6451 AND b.set_of_books_id = a.set_of_books_id
6452 AND b.gp_level = 'L')
6453 WHERE a.customer_trx_id = p_customer_trx_id
6454 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
6455 AND p_customer_trx_line_id = a.LINK_TO_CUST_TRX_LINE_ID
6456 -- AND DECODE( p_group_id, NULL, '-99', p_group_id)
6457 -- = DECODE(p_group_id, NULL, '-99', a.group_id)
6458 --{HYUBPAGP
6459 AND DECODE( p_source_data_key1, NULL, '-99', p_source_data_key1)
6460 = DECODE(p_source_data_key1, NULL, '-99', a.source_data_key1)
6461 AND DECODE( p_source_data_key2, NULL, '-99', p_source_data_key2)
6462 = DECODE(p_source_data_key2, NULL, '-99', a.source_data_key2)
6463 AND DECODE( p_source_data_key3, NULL, '-99', p_source_data_key3)
6464 = DECODE(p_source_data_key3, NULL, '-99', a.source_data_key3)
6465 AND DECODE( p_source_data_key4, NULL, '-99', p_source_data_key4)
6466 = DECODE(p_source_data_key4, NULL, '-99', a.source_data_key4)
6467 AND DECODE( p_source_data_key5, NULL, '-99', p_source_data_key5)
6468 = DECODE(p_source_data_key5, NULL, '-99', a.source_data_key5)
6469 --}
6470 AND a.line_type IN ('FREIGHT','TAX','CHARGES');
6471 END IF; -- End of p_log_inv_line check
6472 ELSE
6473 UPDATE /*+ index(A RA_CUSTOMER_TRX_LINES_GT_N1)*/ ra_customer_trx_lines_gt a
6474 SET (a.AMOUNT_DUE_REMAINING ,
6475 a.ACCTD_AMOUNT_DUE_REMAINING ,
6476 a.AMOUNT_DUE_ORIGINAL ,
6477 a.ACCTD_AMOUNT_DUE_ORIGINAL ,
6478 a.CHRG_AMOUNT_REMAINING ,
6479 a.CHRG_ACCTD_AMOUNT_REMAINING ,
6480 a.FRT_ADJ_REMAINING ,
6481 a.FRT_ADJ_ACCTD_REMAINING ,
6482 a.frt_ed_amount,
6483 a.frt_ed_acctd_amount,
6484 a.frt_uned_amount,
6485 a.frt_uned_acctd_amount) =
6486 (SELECT /*+INDEX (b ra_ar_n1)*/
6487 DECODE(a.line_type, 'LINE',
6488 NVL(a.AMOUNT_DUE_REMAINING,0)
6489 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
6490 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
6491 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
6492 'CB',
6493 NVL(a.AMOUNT_DUE_REMAINING,0)
6494 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
6495 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
6496 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
6497 'TAX',
6498 NVL(a.AMOUNT_DUE_REMAINING,0)
6499 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_amt,0),NVL(b.tl_tax_alloc_amt,0))
6500 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_amt,0),NVL(b.tl_ed_tax_alloc_amt,0))
6501 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_amt,0),NVL(b.tl_uned_tax_alloc_amt,0)),
6502 'FREIGHT',
6503 NVL(a.AMOUNT_DUE_REMAINING,0)
6504 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_amt,0)),
6505 'CHARGES',
6506 NVL(a.AMOUNT_DUE_REMAINING,0)
6507 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_amt,0)),
6508 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_amt,0))
6509 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_amt,0)),
6510 0) -- AMOUNT_DUE_REMAINING
6511 ,DECODE(a.line_type, 'LINE',
6512 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6513 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
6514 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
6515 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
6516 'CB',
6517 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6518 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
6519 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
6520 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
6521 'TAX',
6522 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6523 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_acctd_amt,0),NVL(b.tl_tax_alloc_acctd_amt,0))
6524 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_acctd_amt,0),NVL(b.tl_ed_tax_alloc_acctd_amt,0))
6525 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_acctd_amt,0),NVL(b.tl_uned_tax_alloc_acctd_amt,0)),
6526 'FREIGHT',
6527 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6528 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_acctd_amt,0)),
6529 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0))
6530 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)),
6531 --{HYUCHRG
6532 'CHARGES',
6533 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
6534 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_acctd_amt,0)),
6535 0) -- ACCTD_AMOUNT_DUE_REMAINING
6536 --}
6537 ,DECODE(a.line_type, 'LINE', NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
6538 'CB' , NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
6539 'FREIGHT', NVL(a.AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_AMT),
6540 'CHARGES', NVL(a.AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_AMT),
6541 'TAX', NVL(a.AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_AMT),
6542 0) -- AMOUNT_DUE_ORIGINAL
6543 ,DECODE(a.line_type, 'LINE', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
6544 'CB' , NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
6545 'FREIGHT', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_ACCTD_AMT),
6546 'CHARGES', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_ACCTD_AMT),
6547 'TAX', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_ACCTD_AMT),
6548 0) -- ACCTD_AMOUNT_DUE_ORIGINAL
6549 --{HYUCHRG
6550 -- ,NVL(a.CHRG_AMOUNT_REMAINING,0)
6551 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),NVL(b.tl_chrg_alloc_amt,0))
6552 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_amt,0),NVL(b.tl_ed_chrg_alloc_amt,0))
6553 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_amt,0),NVL(b.tl_uned_chrg_alloc_amt,0))
6554 -- -- CHRG_AMOUNT_REMAINING
6555 -- ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
6556 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),NVL(b.tl_chrg_alloc_acctd_amt,0))
6557 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_acctd_amt,0),NVL(b.tl_ed_chrg_alloc_acctd_amt,0))
6558 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_acctd_amt,0),NVL(b.tl_uned_chrg_alloc_acctd_amt,0))
6559 -- -- CHRG_ACCTD_AMOUNT_REMAINING
6560 ,NVL(a.CHRG_AMOUNT_REMAINING,0)
6561 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),
6562 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_amt,0),
6563 'CB' ,NVL(b.tl_chrg_alloc_amt,0),0))
6564 -- CHRG_AMOUNT_REMAINING
6565 ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
6566 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),
6567 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_acctd_amt,0),
6568 'CB' ,NVL(b.tl_chrg_alloc_acctd_amt,0),0))
6569 -- CHRG_ACCTD_AMOUNT_REMAINING
6570 --}
6571 ,NVL(a.FRT_ADJ_REMAINING,0)
6572 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_amt,0),
6573 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_amt,0),
6574 'CB' ,NVL(b.tl_frt_alloc_amt,0),0))
6575 -- FRT_ADJ_REMAINING
6576 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_amt,0),
6577 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_amt,0),0))
6578 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_amt,0),
6579 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_amt,0),0))
6580 ,NVL(a.FRT_ADJ_ACCTD_REMAINING,0)
6581 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_acctd_amt,0),
6582 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_acctd_amt,0),
6583 'CB' ,NVL(b.tl_frt_alloc_acctd_amt,0),0))
6584 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0),
6585 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0)))
6586 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0),
6587 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)))
6588 -- FRT_ADJ_ACCTD_REMAINING
6589 ,NVL(a.frt_ed_amount,0)
6590 + DECODE(p_pay_adj,'ADJ',0,
6591 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_amt,0),
6592 'CB' ,NVL(b.tl_ed_frt_alloc_amt,0), 0))
6593 ,NVL(a.frt_ed_acctd_amount,0)
6594 + DECODE(p_pay_adj,'ADJ',0,
6595 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_acctd_amt,0),
6596 'CB' ,NVL(b.tl_ed_frt_alloc_acctd_amt,0),0))
6597 ,NVL(a.frt_uned_amount,0)
6598 + DECODE(p_pay_adj,'ADJ',0,
6599 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_amt,0),
6600 'CB' ,NVL(b.tl_uned_frt_alloc_amt,0),0))
6601 ,NVL(a.frt_uned_acctd_amount,0)
6602 + DECODE(p_pay_adj,'ADJ',0,
6603 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_acctd_amt,0),
6604 'CB' ,NVL(b.tl_uned_frt_alloc_acctd_amt,0),0))
6605 FROM RA_AR_GT b
6606 WHERE b.gt_id = p_gt_id
6607 -- AND b.se_gt_id = g_se_gt_id
6608 AND a.customer_trx_id = b.ref_customer_trx_id
6609 AND a.customer_trx_line_id = b.ref_customer_trx_line_id
6610 -- AND a.group_id = b.group_id
6611 --{HYUBPAGP
6612 AND NVL(a.source_data_key1,'00') = b.source_data_key1
6613 AND NVL(a.source_data_key2,'00') = b.source_data_key2
6614 AND NVL(a.source_data_key3,'00') = b.source_data_key3
6615 AND NVL(a.source_data_key4,'00') = b.source_data_key4
6616 AND NVL(a.source_data_key5,'00') = b.source_data_key5
6617 --}
6618 --Bug#3611016
6619 AND (b.sob_type = 'P' OR b.sob_type IS NULL)
6620 AND b.set_of_books_id = a.set_of_books_id
6621 AND b.gp_level = 'L')
6622 WHERE a.customer_trx_id = p_customer_trx_id
6623 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
6624 -- AND DECODE( p_customer_trx_line_id, NULL, -99, p_customer_trx_line_id)
6625 -- = DECODE(p_customer_trx_line_id, NULL, -99,
6626 -- DECODE(p_log_inv_line, 'N', a.customer_trx_line_id,
6627 -- DECODE(a.line_type,'LINE', a.customer_trx_line_id,
6628 -- 'CB' , a.customer_trx_line_id,
6629 -- a.LINK_TO_CUST_TRX_LINE_ID)))
6630 -- AND DECODE( p_group_id, NULL, '-99', p_group_id)
6631 -- = DECODE(p_group_id, NULL, '-99', a.group_id)
6632 --{HYUBPAGP
6633 AND DECODE( p_source_data_key1, NULL, '-99', p_source_data_key1)
6634 = DECODE(p_source_data_key1, NULL, '-99', a.source_data_key1)
6635 AND DECODE( p_source_data_key2, NULL, '-99', p_source_data_key2)
6636 = DECODE(p_source_data_key2, NULL, '-99', a.source_data_key2)
6637 AND DECODE( p_source_data_key3, NULL, '-99', p_source_data_key3)
6638 = DECODE(p_source_data_key3, NULL, '-99', a.source_data_key3)
6639 AND DECODE( p_source_data_key4, NULL, '-99', p_source_data_key4)
6640 = DECODE(p_source_data_key4, NULL, '-99', a.source_data_key4)
6641 AND DECODE( p_source_data_key5, NULL, '-99', p_source_data_key5)
6642 = DECODE(p_source_data_key5, NULL, '-99', a.source_data_key5)
6643 --}
6644 AND a.line_type IN ('LINE','FREIGHT','TAX','CB','CHARGES')
6645 AND EXISTS (
6646 SELECT 'X' FROM RA_AR_GT R
6647 WHERE R.gt_id = p_gt_id
6648 AND a.customer_trx_id = R.ref_customer_trx_id
6649 AND a.customer_trx_line_id = R.ref_customer_trx_line_id
6650 AND NVL(a.source_data_key1,'00') = R.source_data_key1
6651 AND NVL(a.source_data_key2,'00') = R.source_data_key2
6652 AND NVL(a.source_data_key3,'00') = R.source_data_key3
6653 AND NVL(a.source_data_key4,'00') = R.source_data_key4
6654 AND NVL(a.source_data_key5,'00') = R.source_data_key5
6655 AND (R.sob_type = 'P' OR R.sob_type IS NULL)
6656 AND R.set_of_books_id = a.set_of_books_id
6657 AND R.gp_level = 'L');
6658
6659 END IF; -- End of p_customer_trx_line_id check
6660
6661 IF PG_DEBUG = 'Y' THEN
6662 localdebug('arp_det_dist_pkg.update_ctl_rem_orig()-');
6663 END IF;
6664 EXCEPTION
6665 WHEN OTHERS THEN
6666 IF PG_DEBUG = 'Y' THEN
6667 localdebug('update_ctl_rem_orig EXCEPTION OTHERS :'||SQLERRM);
6668 END IF;
6669 END update_ctl_rem_orig;
6670
6671
6672
6673 PROCEDURE get_inv_dist
6674 (p_pay_adj IN VARCHAR2,
6675 p_customer_trx_id IN NUMBER,
6676 p_gt_id IN VARCHAR2,
6677 p_adj_rec IN ar_adjustments%ROWTYPE,
6678 p_app_rec IN ar_receivable_applications%ROWTYPE,
6679 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
6680 IS
6681
6682 l_rows NUMBER;
6683 BEGIN
6684 IF PG_DEBUG = 'Y' THEN
6685 localdebug('arp_det_dist_pkg.get_inv_dist()+');
6686 localdebug(' p_ae_sys_rec.set_of_books_id :'||p_ae_sys_rec.set_of_books_id);
6687 localdebug(' p_ae_sys_rec.sob_type :'||p_ae_sys_rec.sob_type);
6688 END IF;
6689
6690 INSERT INTO RA_AR_GT
6691 ( GT_ID ,
6692 AMT ,
6693 ACCTD_AMT ,
6694 ACCOUNT_CLASS ,
6695 CCID_SECONDARY ,
6696 REF_CUST_TRX_LINE_GL_DIST_ID,
6697 REF_CUSTOMER_TRX_LINE_ID ,
6698 REF_CUSTOMER_TRX_ID ,
6699 TO_CURRENCY ,
6700 BASE_CURRENCY ,
6701 -- ADJ and APP Elmt
6702 DIST_AMT, --HYUD LINE
6703 DIST_ACCTD_AMT, --HYUD LINE
6704 DIST_CHRG_AMT, --HYUD CHRG
6705 DIST_CHRG_ACCTD_AMT, --HYUD CHRG
6706 DIST_FRT_AMT, --HYUD FRT
6707 DIST_FRT_ACCTD_AMT, --HYUD FRT
6708 DIST_TAX_AMT, --HYUD TAX
6709 DIST_TAX_ACCTD_AMT, --HYUD TAX
6710 -- Buc
6711 tl_alloc_amt ,
6712 tl_alloc_acctd_amt ,
6713 tl_chrg_alloc_amt ,
6714 tl_chrg_alloc_acctd_amt,
6715 tl_frt_alloc_amt ,
6716 tl_frt_alloc_acctd_amt,
6717 tl_tax_alloc_amt ,
6718 tl_tax_alloc_acctd_amt,
6719 -- ED Elmt
6720 DIST_ed_AMT,
6721 DIST_ed_ACCTD_AMT,
6722 DIST_ed_chrg_AMT,
6723 DIST_ed_chrg_ACCTD_AMT,
6724 DIST_ed_frt_AMT ,
6725 DIST_ed_frt_ACCTD_AMT,
6726 DIST_ed_tax_AMT ,
6727 DIST_ed_tax_ACCTD_AMT,
6728 --
6729 tl_ed_alloc_amt ,
6730 tl_ed_alloc_acctd_amt ,
6731 tl_ed_chrg_alloc_amt ,
6732 tl_ed_chrg_alloc_acctd_amt,
6733 tl_ed_frt_alloc_amt ,
6734 tl_ed_frt_alloc_acctd_amt,
6735 tl_ed_tax_alloc_amt ,
6736 tl_ed_tax_alloc_acctd_amt,
6737 --
6738 -- UNED
6739 DIST_uned_AMT ,
6740 DIST_uned_ACCTD_AMT ,
6741 DIST_uned_chrg_AMT,
6742 DIST_uned_chrg_ACCTD_AMT,
6743 DIST_uned_frt_AMT ,
6744 DIST_uned_frt_ACCTD_AMT,
6745 DIST_uned_tax_AMT ,
6746 DIST_uned_tax_ACCTD_AMT,
6747 --
6748 tl_uned_alloc_amt ,
6749 tl_uned_alloc_acctd_amt ,
6750 tl_uned_chrg_alloc_amt ,
6751 tl_uned_chrg_alloc_acctd_amt,
6752 tl_uned_frt_alloc_amt ,
6753 tl_uned_frt_alloc_acctd_amt,
6754 tl_uned_tax_alloc_amt ,
6755 tl_uned_tax_alloc_acctd_amt,
6756 --
6757 source_type ,
6758 source_table ,
6759 source_id ,
6760 line_type,
6761 --
6762 group_id,
6763 source_data_key1 ,
6764 source_data_key2 ,
6765 source_data_key3 ,
6766 source_data_key4 ,
6767 source_data_key5 ,
6768 gp_level,
6769 --
6770 set_of_books_id,
6771 sob_type,
6772 tax_link_id,
6773 tax_inc_flag
6774 )
6775 SELECT /*+INDEX (rar ra_ar_n1) LEADING(rar,ctlgd) USE_NL_WITH_INDEX(rar ra_ar_n1) USE_NL_WITH_INDEX(ctlgd RA_CUST_TRX_LINE_GL_DIST_N1)*/
6776 p_gt_id,
6777 ctlgd.amount,
6778 ctlgd.acctd_amount,
6779 ctlgd.account_class,
6780 -- The ccid_secondary is used to populate ar_line_apps_det.ccid
6781 -- which in turn served as ref_dist_ccid for cash basis accounting
6782 -- therefor only used at payment, hence should hit the collected ccid
6783 DECODE(ctlgd.account_class,'TAX',
6784 DECODE(ctlgd.collected_tax_ccid,NULL,
6785 ctlgd.code_combination_id,
6786 ctlgd.collected_tax_ccid),
6787 ctlgd.code_combination_id),
6788 ctlgd.cust_trx_line_gl_dist_id,
6789 ctlgd.customer_trx_line_id,
6790 ctlgd.customer_trx_id,
6791 rar.to_currency,
6792 rar.base_currency,
6793 -- ADJ and APP
6794 DECODE(rar.line_type,'LINE',ctlgd.amount,
6795 'CB' ,ctlgd.amount,0), --For Line DIST_AMT
6796 DECODE(rar.line_type,'LINE',ctlgd.acctd_amount,
6797 'CB' ,ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
6798 DECODE(p_pay_adj,'APP',
6799 DECODE(rar.line_type,'CHARGES',ctlgd.amount,0),
6800 DECODE(rar.line_type,'LINE',ctlgd.amount,
6801 'CB' ,ctlgd.amount,0)), --For Chrg DIST_CHRG_AMT
6802 DECODE(p_pay_adj,'APP',
6803 DECODE(rar.line_type,'CHARGES',ctlgd.amount,0),
6804 DECODE(rar.line_type,'LINE',ctlgd.acctd_amount,
6805 'CB' ,ctlgd.acctd_amount,0)),-- DIST_CHRG_ACCTD_AMT
6806 DECODE(p_pay_adj,'APP',
6807 DECODE(rar.line_type,'FREIGHT',ctlgd.amount,0),
6808 DECODE(rar.line_type,'LINE',ctlgd.amount,
6809 'CB' ,ctlgd.amount,0)),--For Frt DIST_FRT_AMT
6810 DECODE(p_pay_adj,'APP',
6811 DECODE(rar.line_type,'FREIGHT',ctlgd.amount,0),
6812 DECODE(rar.line_type,'LINE',ctlgd.acctd_amount,
6813 'CB' ,ctlgd.acctd_amount,0)),-- DIST_FRT_AMT
6814 DECODE(rar.line_type,'TAX',ctlgd.amount,0), --For Tax DIST_AMT
6815 DECODE(rar.line_type,'TAX',ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
6816 --
6817 tl_alloc_amt ,
6818 tl_alloc_acctd_amt ,
6819 tl_chrg_alloc_amt ,
6820 tl_chrg_alloc_acctd_amt,
6821 tl_frt_alloc_amt,
6822 tl_frt_alloc_acctd_amt,
6823 tl_tax_alloc_amt ,
6824 tl_tax_alloc_acctd_amt,
6825 --
6826 -- ED
6827 DECODE(rar.line_type,'LINE',ctlgd.amount,
6828 'CB' ,ctlgd.amount,0), --For Line DIST_AMT
6829 DECODE(rar.line_type,'LINE',ctlgd.acctd_amount,
6830 'CB' ,ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
6831 DECODE(p_pay_adj,'APP',
6832 DECODE(rar.line_type,'CHARGES',ctlgd.amount,0),
6833 0), --For Chrg DIST_CHRG_AMT
6834 DECODE(p_pay_adj,'APP',
6835 DECODE(rar.line_type,'CHARGES',ctlgd.acctd_amount,0),
6836 0), -- DIST_CHRG_ACCTD_AMT
6837 DECODE(p_pay_adj,'APP',
6838 DECODE(rar.line_type,'FREIGHT',ctlgd.amount,0),
6839 0), --For Frt DIST_FRT_AMT
6840 DECODE(p_pay_adj,'APP',
6841 DECODE(rar.line_type,'FREIGHT',ctlgd.acctd_amount,0),
6842 0), -- DIST_FRT_ACCTD_AMT
6843
6844 DECODE(rar.line_type,'TAX',ctlgd.amount,0), --For Tax DIST_AMT
6845 DECODE(rar.line_type,'TAX',ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
6846 tl_ed_alloc_amt ,
6847 tl_ed_alloc_acctd_amt ,
6848 tl_ed_chrg_alloc_amt ,
6849 tl_ed_chrg_alloc_acctd_amt,
6850
6851 tl_ed_frt_alloc_amt ,
6852 tl_ed_frt_alloc_acctd_amt,
6853 tl_ed_tax_alloc_amt ,
6854 tl_ed_tax_alloc_acctd_amt,
6855 --
6856 -- UNED
6857 DECODE(rar.line_type,'LINE',ctlgd.amount,
6858 'CB' ,ctlgd.amount,0), --For Line DIST_AMT
6859 DECODE(rar.line_type,'LINE',ctlgd.acctd_amount,
6860 'CB' ,ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
6861
6862 DECODE(p_pay_adj,'APP',
6863 DECODE(rar.line_type,'CHARGES',ctlgd.amount,0),
6864 0), --For Charges DIST_CHRG_AMT
6865 DECODE(p_pay_adj,'APP',
6866 DECODE(rar.line_type,'CHARGES',ctlgd.acctd_amount,0),
6867 0), -- DIST_CHRG_ACCTD_AMT
6868 --{ Uned Frt Element
6869 DECODE(p_pay_adj,'APP',
6870 DECODE(rar.line_type,'FREIGHT',ctlgd.amount,0),
6871 0), --For Frt DIST_FRT_AMT
6872 DECODE(p_pay_adj,'APP',
6873 DECODE(rar.line_type,'FREIGHT',ctlgd.acctd_amount,0),
6874 0), -- DIST_FRT_ACCTD_AMT
6875 --}
6876 DECODE(rar.line_type,'TAX',ctlgd.amount,0), --For Tax DIST_AMT
6877 DECODE(rar.line_type,'TAX',ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
6878 -- Buc
6879 tl_uned_alloc_amt ,
6880 tl_uned_alloc_acctd_amt ,
6881 tl_uned_chrg_alloc_amt ,
6882 tl_uned_chrg_alloc_acctd_amt,
6883 tl_uned_frt_alloc_amt ,
6884 tl_uned_frt_alloc_acctd_amt,
6885 tl_uned_tax_alloc_amt ,
6886 tl_uned_tax_alloc_acctd_amt,
6887 DECODE(p_pay_adj,'ADJ',p_adj_rec.TYPE,p_app_rec.APPLICATION_TYPE),
6888 DECODE(p_pay_adj,'ADJ','ADJ','RA'),
6889 DECODE(p_pay_adj,'ADJ',p_adj_rec.adjustment_id, p_app_rec.receivable_application_id),
6890 rar.line_type,
6891 --
6892 rar.group_id,
6893 rar.source_data_key1 ,
6894 rar.source_data_key2 ,
6895 rar.source_data_key3 ,
6896 rar.source_data_key4 ,
6897 rar.source_data_key5 ,
6898 'D',
6899 --BUG#3611016
6900 p_ae_sys_rec.set_of_books_id,
6901 p_ae_sys_rec.sob_type,
6902 rar.tax_link_id,
6903 rar.tax_inc_flag
6904 FROM ra_ar_gt rar,
6905 ra_cust_trx_line_gl_dist ctlgd
6906 WHERE rar.gt_id = p_gt_id
6907 AND rar.ref_customer_trx_id = p_customer_trx_id
6908 AND rar.gp_level = 'L'
6909 AND rar.ref_customer_trx_id = ctlgd.customer_trx_id
6910 AND rar.ref_customer_trx_line_id = ctlgd.customer_trx_line_id(+)
6911 --{HYU revrec adj api restriction
6912 AND ctlgd.account_set_flag = 'N';
6913 --{HYUTREATUNEARNUNBILLED
6914 -- AND ctlgd.account_class NOT IN ('UNEARN','UNBILL');
6915
6916 l_rows := sql%rowcount;
6917 g_appln_count := g_appln_count + l_rows;
6918 IF PG_DEBUG = 'Y' THEN
6919 localdebug(' rows inserted = ' || l_rows);
6920 localdebug(' -->Distributions gotten from transaction ');
6921 END IF;
6922
6923
6924 /* Commented this portion of de code out for no adjustment will use LLCA in 11i,
6925 and unification of cash basis and accrual basis accounting is not required in 11i
6926 the is portion of the code is necessary in 11iX for unification of cash basis and accrual
6927 Without commenting out this piece of code the mechanism will not break
6928 because not adjustment will be created with detail distributions in 11i
6929 For performance reason, we might need to comment out this piece in 11i
6930 */
6931
6932 IF p_pay_adj <> 'ADJ' THEN
6933
6934 -- Need to insert adjustment distributions for cash basis representation
6935 -- Use for R12 and R12_11IMFAR, but not for R12_11ICASH (online_lazy_upg)
6936 -- As online_lazy_upg never goes here no need to add a if condition, add it for safety
6937
6938 IF PG_DEBUG = 'Y' THEN
6939 localdebug('Get_inv_dist: Insert Adjustoment distributions');
6940 localdebug(' g_mode_process:'||g_mode_process);
6941 END IF;
6942
6943 IF g_mode_process NOT IN ('R12_MERGE') THEN
6944
6945 IF PG_DEBUG = 'Y' THEN
6946 localdebug(' Normal R12 distributions');
6947 END IF;
6948
6949 -- Adj Distribution R12
6950 INSERT INTO RA_AR_GT
6951 ( GT_ID ,
6952 AMT ,
6953 ACCTD_AMT ,
6954 ACCOUNT_CLASS ,
6955 CCID_SECONDARY ,
6956 REF_CUST_TRX_LINE_GL_DIST_ID,
6957 REF_CUSTOMER_TRX_LINE_ID ,
6958 REF_CUSTOMER_TRX_ID ,
6959 TO_CURRENCY ,
6960 BASE_CURRENCY ,
6961 -- ADJ and APP Elmt
6962 DIST_AMT, --HYUD LINE
6963 DIST_ACCTD_AMT, --HYUD LINE
6964 DIST_CHRG_AMT, --HYUD CHRG
6965 DIST_CHRG_ACCTD_AMT, --HYUD CHRG
6966 DIST_FRT_AMT, --HYUD FRT
6967 DIST_FRT_ACCTD_AMT, --HYUD FRT
6968 DIST_TAX_AMT, --HYUD TAX
6969 DIST_TAX_ACCTD_AMT, --HYUD TAX
6970 --
6971 tl_alloc_amt ,
6972 tl_alloc_acctd_amt ,
6973 tl_chrg_alloc_amt ,
6974 tl_chrg_alloc_acctd_amt,
6975 tl_frt_alloc_amt ,
6976 tl_frt_alloc_acctd_amt,
6977 tl_tax_alloc_amt ,
6978 tl_tax_alloc_acctd_amt,
6979 -- ED Elmt
6980 DIST_ed_AMT,
6981 DIST_ed_ACCTD_AMT,
6982 DIST_ed_chrg_AMT,
6983 DIST_ed_chrg_ACCTD_AMT,
6984 DIST_ed_frt_AMT ,
6985 DIST_ed_frt_ACCTD_AMT,
6986 DIST_ed_tax_AMT ,
6987 DIST_ed_tax_ACCTD_AMT,
6988 --
6989 tl_ed_alloc_amt ,
6990 tl_ed_alloc_acctd_amt ,
6991 tl_ed_chrg_alloc_amt ,
6992 tl_ed_chrg_alloc_acctd_amt,
6993 tl_ed_frt_alloc_amt ,
6994 tl_ed_frt_alloc_acctd_amt,
6995 tl_ed_tax_alloc_amt ,
6996 tl_ed_tax_alloc_acctd_amt,
6997 --
6998 -- UNED
6999 DIST_uned_AMT ,
7000 DIST_uned_ACCTD_AMT ,
7001 DIST_uned_chrg_AMT,
7002 DIST_uned_chrg_ACCTD_AMT,
7003 DIST_uned_frt_AMT ,
7004 DIST_uned_frt_ACCTD_AMT,
7005 DIST_uned_tax_AMT ,
7006 DIST_uned_tax_ACCTD_AMT,
7007 --
7008 tl_uned_alloc_amt ,
7009 tl_uned_alloc_acctd_amt ,
7010 tl_uned_chrg_alloc_amt ,
7011 tl_uned_chrg_alloc_acctd_amt,
7012 tl_uned_frt_alloc_amt ,
7013 tl_uned_frt_alloc_acctd_amt,
7014 tl_uned_tax_alloc_amt ,
7015 tl_uned_tax_alloc_acctd_amt,
7016 --
7017 source_type ,
7018 source_table ,
7019 source_id ,
7020 ref_line_id ,
7021 line_type ,
7022 --
7023 group_id,
7024 source_data_key1 ,
7025 source_data_key2 ,
7026 source_data_key3 ,
7027 source_data_key4 ,
7028 source_data_key5 ,
7029 gp_level,
7030 --
7031 set_of_books_id,
7032 sob_type,
7033 tax_link_id,
7034 tax_inc_flag
7035 )
7036 SELECT /*+INDEX (rar ra_ar_n1)*/
7037 p_gt_id, --gt_id
7038 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0), --amt
7039 --HYU A negative adj distrib increase the inv rec therefore the rem on trx line
7040 -- For ARPDDB and ARALLOCB integration detail distribution from ARPDDB needs
7041 -- to be created in the same sign of the parent adjustment <=>
7042 -- ADJ -100 will create a set of det_dist for the Write-off account with a total
7043 -- of -100 ending decrease the line balance, no need to multply by -1 removing it
7044 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0), --acctd_amt Rem * -1
7045 rrc.ref_account_class, --account_class
7046 rrc.code_combination_id, --ccid_secondary
7047
7048 NVL(rrc.ref_cust_trx_line_gl_dist_id,
7049 DECODE(rrc.ref_account_class,'REV',
7050 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, --Boundary line : -6
7051 'ADJ_FRT' ,-9, --Boundary frt : -9 frt adjustment over Rev line
7052 -7), --Boundary charge:-7
7053 'UNEARN',
7054 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, --Boundary line : -6
7055 'ADJ_FRT' ,-9, --Boundary frt : -9 frt adjustment over Rev line
7056 -7), --Boundary charge:-7
7057 'UNBILL',
7058 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, --Boundary line : -6
7059 'ADJ_FRT' ,-9, --Boundary frt : -9 frt adjustment over Rev line
7060 -7), --Boundary charge:-7
7061
7062 'TAX', -8, -- Boundary tax
7063 'FREIGHT',-9)), -- Boundary freight : This should not happens as not adjustment
7064 -- will be tied to freight line
7065 NVL(rrc.ref_customer_trx_line_id,
7066 DECODE(rrc.ref_account_class,'REV',
7067 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, -- Boundary line:-6
7068 'ADJ_FRT' ,-9, -- Boundary freight:-6
7069 -7), -- Boundary charge:-7
7070 'UNEARN',
7071 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, -- Boundary line:-6
7072 'ADJ_FRT' ,-9, -- Boundary freight:-6
7073 -7), -- Boundary charge:-7
7074 'UNBILL',
7075 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, -- Boundary line:-6
7076 'ADJ_FRT' ,-9, -- Boundary freight:-6
7077 -7), -- Boundary charge:-7
7078 'TAX', -8, -- Boundary tax
7079 'FREIGHT',-9)), -- Boundary freight : This should not happens as not adjustment
7080 -- will be tied to freight line
7081 rar.ref_customer_trx_id,
7082 rar.to_currency,
7083 rar.base_currency,
7084 -- ADJ and APP -- HYU "A reprendre ici"
7085 DECODE(rrc.ref_account_class,'REV',
7086 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
7087 'ADJ_CHRG',0,
7088 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7089 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7090 + rar.DUE_ORIG_AMT = 0 THEN
7091 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
7092 'UNEARN',
7093 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
7094 'ADJ_CHRG',0,
7095 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7096 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7097 + rar.DUE_ORIG_AMT = 0 THEN
7098 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
7099 'UNBILL',
7100 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
7101 'ADJ_CHRG',0,
7102 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7103 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7104 + rar.DUE_ORIG_AMT = 0 THEN
7105 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
7106 0), -- DIST_AMT
7107 DECODE(rrc.ref_account_class,'REV',
7108 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
7109 'ADJ_CHRG',0,
7110 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7111 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7112 + rar.DUE_ORIG_AMT = 0 THEN
7113 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
7114 'UNEARN',
7115 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
7116 'ADJ_CHRG',0,
7117 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7118 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7119 + rar.DUE_ORIG_AMT = 0 THEN
7120 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
7121 'UNBILL',
7122 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
7123 'ADJ_CHRG',0,
7124 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7125 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7126 + rar.DUE_ORIG_AMT = 0 THEN
7127 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
7128 0), -- DIST_ACCTD_AMT
7129 DECODE(rrc.ref_account_class,'REV',
7130 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7131 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7132 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7133 + rar.CHRG_ORIG_AMT = 0 THEN
7134 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7135 0 ),
7136 'UNEARN',
7137 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7138 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7139 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7140 + rar.CHRG_ORIG_AMT = 0 THEN
7141 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7142 0 ),
7143 'UNBILL',
7144 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7145 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7146 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7147 + rar.CHRG_ORIG_AMT = 0 THEN
7148 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7149 0 ),
7150 0), -- DIST_CHRG_AMT
7151 DECODE(rrc.ref_account_class,'REV',
7152 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7153 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7154 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7155 + rar.CHRG_ORIG_AMT = 0 THEN
7156 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7157 0 ),
7158 'UNEARN',
7159 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7160 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7161 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7162 + rar.CHRG_ORIG_AMT = 0 THEN
7163 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7164 0 ),
7165 'UNBILL',
7166 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7167 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7168 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7169 + rar.CHRG_ORIG_AMT = 0 THEN
7170 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7171 0 ),
7172 0), -- DIST_CHRG_ACCTD_AMT
7173 DECODE(rrc.ref_account_class,'REV',
7174 DECODE(rrc.activity_bucket,'ADJ_FRT',
7175 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7176 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7177 + rar.FRT_ORIG_AMT = 0 THEN
7178 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7179 0 ),
7180 'UNEARN',
7181 DECODE(rrc.activity_bucket,'ADJ_FRT',
7182 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7183 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7184 + rar.FRT_ORIG_AMT = 0 THEN
7185 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7186 0 ),
7187 DECODE(rrc.activity_bucket,'ADJ_FRT',
7188 'UNBILL',
7189 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7190 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7191 + rar.FRT_ORIG_AMT = 0 THEN
7192 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7193 0 ),
7194 0), -- DIST_FRT_AMT
7195 DECODE(rrc.ref_account_class,'REV',
7196 DECODE(rrc.activity_bucket,'ADJ_FRT',
7197 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7198 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7199 + rar.FRT_ORIG_AMT = 0 THEN
7200 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7201 0 ),
7202 'UNEARN',
7203 DECODE(rrc.activity_bucket,'ADJ_FRT',
7204 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7205 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7206 + rar.FRT_ORIG_AMT = 0 THEN
7207 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7208 0 ),
7209 'UNBILL',
7210 DECODE(rrc.activity_bucket,'ADJ_FRT',
7211 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7212 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7213 + rar.FRT_ORIG_AMT = 0 THEN
7214 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7215 0 ),
7216 0), -- DIST_FRT_ACCTD_AMT
7217 DECODE(rrc.ref_account_class,'TAX',
7218 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7219 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7220 + rar.TAX_ORIG_AMT = 0 THEN
7221 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,0), -- DIST_TAX_AMT
7222 DECODE(rrc.ref_account_class,'TAX',
7223 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7224 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7225 + rar.TAX_ORIG_AMT = 0 THEN
7226 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,0), -- DIST_TAX_ACCTD_AMT
7227 --
7228 rar.tl_alloc_amt ,
7229 rar.tl_alloc_acctd_amt ,
7230 rar.tl_chrg_alloc_amt ,
7231 rar.tl_chrg_alloc_acctd_amt,
7232 rar.tl_frt_alloc_amt ,
7233 rar.tl_frt_alloc_acctd_amt ,
7234 rar.tl_tax_alloc_amt ,
7235 rar.tl_tax_alloc_acctd_amt ,
7236 -- Elemt Rev
7237 DECODE(rrc.ref_account_class,'REV',
7238 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
7239 'ADJ_CHRG',0,
7240 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7241 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7242 + rar.DUE_ORIG_AMT = 0 THEN
7243 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
7244 'UNEARN',
7245 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
7246 'ADJ_CHRG',0,
7247 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7248 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7249 + rar.DUE_ORIG_AMT = 0 THEN
7250 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
7251 'UNBILL',
7252 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
7253 'ADJ_CHRG',0,
7254 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7255 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7256 + rar.DUE_ORIG_AMT = 0 THEN
7257 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
7258 0) , -- DIST_ED_AMT Rem * -1
7259 DECODE(rrc.ref_account_class,'REV',
7260 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
7261 'ADJ_CHRG',0,
7262 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7263 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7264 + rar.DUE_ORIG_AMT = 0 THEN
7265 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
7266 'UNEARN',
7267 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
7268 'ADJ_CHRG',0,
7269 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7270 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7271 + rar.DUE_ORIG_AMT = 0 THEN
7272 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
7273 'UNBILL',
7274 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
7275 'ADJ_CHRG',0,
7276 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7277 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7278 + rar.DUE_ORIG_AMT = 0 THEN
7279 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
7280
7281 0), -- DIST_ED_ACCTD_AMT Rem * -1
7282 -- Elemt Chrg
7283 DECODE(rrc.ref_account_class,'REV',
7284 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7285 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7286 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7287 + rar.CHRG_ORIG_AMT = 0 THEN
7288 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7289 0 ),
7290 'UNEARN',
7291 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7292 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7293 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7294 + rar.CHRG_ORIG_AMT = 0 THEN
7295 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7296 0 ),
7297 'UNBILL',
7298 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7299 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7300 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7301 + rar.CHRG_ORIG_AMT = 0 THEN
7302 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7303 0 ),
7304 0), -- DIST_ED_CHRG_AMT Rem * -1
7305 DECODE(rrc.ref_account_class,'REV',
7306 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7307 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7308 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7309 + rar.CHRG_ORIG_AMT = 0 THEN
7310 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7311 0 ),
7312 'UNEARN',
7313 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7314 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7315 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7316 + rar.CHRG_ORIG_AMT = 0 THEN
7317 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7318 0 ),
7319 'UNBILL',
7320 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7321 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7322 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7323 + rar.CHRG_ORIG_AMT = 0 THEN
7324 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7325 0 ),
7326 0), -- DIST_ED_CHRG_ACCTD_AMT Rem * -1
7327 -- Elemt Frt
7328 DECODE(rrc.ref_account_class,'REV',
7329 DECODE(rrc.activity_bucket,'ADJ_FRT',
7330 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7331 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7332 + rar.FRT_ORIG_AMT = 0 THEN
7333 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7334 0 ),
7335 'UNEARN',
7336 DECODE(rrc.activity_bucket,'ADJ_FRT',
7337 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7338 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7339 + rar.FRT_ORIG_AMT = 0 THEN
7340 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7341 0 ),
7342 'UNBILL',
7343 DECODE(rrc.activity_bucket,'ADJ_FRT',
7344 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7345 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7346 + rar.FRT_ORIG_AMT = 0 THEN
7347 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7348 0 ),
7349 0), -- DIST_ED_FRT_AMT Rem * -1
7350 DECODE(rrc.ref_account_class,'REV',
7351 DECODE(rrc.activity_bucket,'ADJ_FRT',
7352 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7353 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7354 + rar.FRT_ORIG_AMT = 0 THEN
7355 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7356 0 ),
7357 'UNEARN',
7358 DECODE(rrc.activity_bucket,'ADJ_FRT',
7359 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7360 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7361 + rar.FRT_ORIG_AMT = 0 THEN
7362 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7363 0 ),
7364 'UNBILL',
7365 DECODE(rrc.activity_bucket,'ADJ_FRT',
7366 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7367 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7368 + rar.FRT_ORIG_AMT = 0 THEN
7369 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7370 0 ),
7371 0), -- DIST_ED_FRT_ACCTD_AMT Rem * -1
7372 -- Elemt Tax
7373 DECODE(rrc.ref_account_class,'TAX',
7374 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7375 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7376 + rar.TAX_ORIG_AMT = 0 THEN
7377 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,0), -- DIST_ED_TAX_AMT Rem * -1
7378 DECODE(rrc.ref_account_class,'TAX',
7379 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7380 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7381 + rar.TAX_ORIG_AMT = 0 THEN
7382 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,0), -- DIST_ED_TAX_ACCTD_AMT Rem * -1
7383 --Bucket
7384 -- Buc Rev
7385 rar.tl_ed_alloc_amt ,
7386 rar.tl_ed_alloc_acctd_amt ,
7387 --Buc Chrg
7388 rar.tl_ed_chrg_alloc_amt ,
7389 rar.tl_ed_chrg_alloc_acctd_amt,
7390 --Buc Frt
7391 rar.tl_ed_frt_alloc_amt ,
7392 rar.tl_ed_frt_alloc_acctd_amt ,
7393 --Buc Tax
7394 rar.tl_ed_tax_alloc_amt ,
7395 rar.tl_ed_tax_alloc_acctd_amt ,
7396 --
7397 -- UNED
7398 -- Rev Elemt
7399 DECODE(rrc.ref_account_class,'REV',
7400 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
7401 'ADJ_CHRG',0,
7402 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7403 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7404 + rar.DUE_ORIG_AMT = 0 THEN
7405 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
7406 'UNEARN',
7407 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
7408 'ADJ_CHRG',0,
7409 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7410 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7411 + rar.DUE_ORIG_AMT = 0 THEN
7412 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
7413 'UNBILL',
7414 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
7415 'ADJ_CHRG',0,
7416 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7417 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7418 + rar.DUE_ORIG_AMT = 0 THEN
7419 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
7420 0), -- DIST_UNED_AMT Rem * -1
7421 DECODE(rrc.ref_account_class,'REV',
7422 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
7423 'ADJ_CHRG',0,
7424 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7425 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7426 + rar.DUE_ORIG_AMT = 0 THEN
7427 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
7428 'UNEARN',
7429 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
7430 'ADJ_CHRG',0,
7431 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7432 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7433 + rar.DUE_ORIG_AMT = 0 THEN
7434 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
7435 'UNBILL',
7436 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
7437 'ADJ_CHRG',0,
7438 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7439 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7440 + rar.DUE_ORIG_AMT = 0 THEN
7441 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
7442 0), -- DIST_UNED_ACCTD_AMT Rem * -1
7443 -- Chrg Elemt
7444 DECODE(rrc.ref_account_class,'REV',
7445 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7446 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7447 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7448 + rar.CHRG_ORIG_AMT = 0 THEN
7449 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7450 0 ),
7451 'UNEARN',
7452 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7453 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7454 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7455 + rar.CHRG_ORIG_AMT = 0 THEN
7456 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7457 0 ),
7458 'UNBILL',
7459 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7460 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7461 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7462 + rar.CHRG_ORIG_AMT = 0 THEN
7463 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7464 0 ),
7465 0), -- DIST_UNED_CHRG_AMT Rem * -1
7466 DECODE(rrc.ref_account_class,'REV',
7467 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7468 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7469 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7470 + rar.CHRG_ORIG_AMT = 0 THEN
7471 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7472 0 ),
7473 'UNEARN',
7474 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7475 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7476 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7477 + rar.CHRG_ORIG_AMT = 0 THEN
7478 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7479 0 ),
7480 'UNBILL',
7481 DECODE(rrc.activity_bucket,'ADJ_CHRG',
7482 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7483 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7484 + rar.CHRG_ORIG_AMT = 0 THEN
7485 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7486 0 ),
7487 0), -- DIST_UNED_CHRG_ACCTD_AMT Rem * -1
7488 -- Frt Elemt
7489 DECODE(rrc.ref_account_class,'REV',
7490 DECODE(rrc.activity_bucket,'ADJ_FRT',
7491 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7492 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7493 + rar.FRT_ORIG_AMT = 0 THEN
7494 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7495 0 ),
7496 'UNEARN',
7497 DECODE(rrc.activity_bucket,'ADJ_FRT',
7498 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7499 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7500 + rar.FRT_ORIG_AMT = 0 THEN
7501 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7502 0 ),
7503 'UNBILL',
7504 DECODE(rrc.activity_bucket,'ADJ_FRT',
7505 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7506 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7507 + rar.FRT_ORIG_AMT = 0 THEN
7508 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
7509 0 ),
7510 0), -- DIST_UNED_FRT_AMT Rem * -1
7511 DECODE(rrc.ref_account_class,'REV',
7512 DECODE(rrc.activity_bucket,'ADJ_FRT',
7513 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7514 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7515 + rar.FRT_ORIG_AMT = 0 THEN
7516 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7517 0 ),
7518 'UNEARN',
7519 DECODE(rrc.activity_bucket,'ADJ_FRT',
7520 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7521 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7522 + rar.FRT_ORIG_AMT = 0 THEN
7523 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7524 0 ),
7525 'UNBILL',
7526 DECODE(rrc.activity_bucket,'ADJ_FRT',
7527 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7528 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7529 + rar.FRT_ORIG_AMT = 0 THEN
7530 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
7531 0 ),
7532 0), -- DIST_UNED_FRT_ACCTD_AMT Rem * -1
7533 -- Tax Elemt
7534 DECODE(rrc.ref_account_class,'TAX',
7535 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7536 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7537 + rar.TAX_ORIG_AMT = 0 THEN
7538 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,0), -- DIST_UNED_TAX_AMT Rem * -1
7539 DECODE(rrc.ref_account_class,'TAX',
7540 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
7541 OVER (PARTITION BY rar.ref_customer_trx_line_id||rrc.activity_bucket)
7542 + rar.TAX_ORIG_AMT = 0 THEN
7543 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,0), -- DIST_UNED_TAX_ACCTD_AMT Rem * -1
7544 --Bucket
7545 -- Rev
7546 rar.tl_uned_alloc_amt ,
7547 rar.tl_uned_alloc_acctd_amt ,
7548 --Chrg
7549 rar.tl_uned_chrg_alloc_amt ,
7550 rar.tl_uned_chrg_alloc_acctd_amt,
7551 --Frt
7552 rar.tl_uned_frt_alloc_amt ,
7553 rar.tl_uned_frt_alloc_acctd_amt ,
7554 --Tax
7555 rar.tl_uned_tax_alloc_amt ,
7556 rar.tl_uned_tax_alloc_acctd_amt ,
7557 --
7558 p_app_rec.APPLICATION_TYPE,
7559 'RA',
7560 p_app_rec.receivable_application_id,
7561 rrc.line_id,
7562 rar.line_type,
7563 --
7564 rar.group_id,
7565 rar.source_data_key1 ,
7566 rar.source_data_key2 ,
7567 rar.source_data_key3 ,
7568 rar.source_data_key4 ,
7569 rar.source_data_key5 ,
7570 'D',
7571 --BUG#3611016
7572 p_ae_sys_rec.set_of_books_id,
7573 p_ae_sys_rec.sob_type,
7574 rrc.tax_link_id, -- tax_link_id
7575 DECODE(rrc.ref_account_class,'TAX','Y',
7576 --'REV',DECODE(NVL(adj.tax_adjusted,0),0, 'N','Y'),
7577 'REV','Y', -- BUG 7597090
7578 'N') -- tax_inc_flag
7579 FROM ra_ar_gt rar,
7580 ar_distributions rrc,
7581 ar_adjustments adj
7582 WHERE rar.gt_id = p_gt_id
7583 AND rar.ref_customer_trx_id = p_customer_trx_id
7584 AND rar.gp_level = 'L'
7585 AND adj.customer_trx_id = p_customer_trx_id
7586 AND rrc.source_table = 'ADJ'
7587 AND rrc.source_id = adj.adjustment_id
7588 AND rar.ref_customer_trx_line_id = rrc.ref_customer_trx_line_id
7589 AND rar.ref_cust_trx_line_gl_dist_id IS NULL
7590 AND (adj.upgrade_method = 'R12' OR adj.upgrade_method IS NULL);
7591 -- exclude the FREIGHT from REV line
7592 -- AND rrc.source_type <> 'FREIGHT'; /*FREIGHT adjustment is included in REV*/
7593
7594 l_rows := sql%rowcount;
7595 g_appln_count := g_appln_count + l_rows;
7596 IF PG_DEBUG = 'Y' THEN
7597 localdebug(' rows inserted = ' || l_rows);
7598 localdebug(' App Frt/Chrg R12 distributions');
7599 END IF;
7600
7601 -- App Frt/Chrg Distribution R12
7602 INSERT INTO RA_AR_GT
7603 ( GT_ID ,
7604 AMT ,
7605 ACCTD_AMT ,
7606 ACCOUNT_CLASS ,
7607 CCID_SECONDARY ,
7608 REF_CUST_TRX_LINE_GL_DIST_ID,
7609 REF_CUSTOMER_TRX_LINE_ID ,
7610 REF_CUSTOMER_TRX_ID ,
7611 TO_CURRENCY ,
7612 BASE_CURRENCY ,
7613 -- ADJ and APP Elmt
7614 DIST_AMT, --HYUD LINE
7615 DIST_ACCTD_AMT, --HYUD LINE
7616 DIST_CHRG_AMT, --HYUD CHRG
7617 DIST_CHRG_ACCTD_AMT, --HYUD CHRG
7618 DIST_FRT_AMT, --HYUD FRT
7619 DIST_FRT_ACCTD_AMT, --HYUD FRT
7620 DIST_TAX_AMT, --HYUD TAX
7621 DIST_TAX_ACCTD_AMT, --HYUD TAX
7622 --
7623 tl_alloc_amt ,
7624 tl_alloc_acctd_amt ,
7625 tl_chrg_alloc_amt ,
7626 tl_chrg_alloc_acctd_amt,
7627 tl_frt_alloc_amt ,
7628 tl_frt_alloc_acctd_amt,
7629 tl_tax_alloc_amt ,
7630 tl_tax_alloc_acctd_amt,
7631 -- ED Elmt
7632 DIST_ed_AMT,
7633 DIST_ed_ACCTD_AMT,
7634 DIST_ed_chrg_AMT,
7635 DIST_ed_chrg_ACCTD_AMT,
7636 DIST_ed_frt_AMT ,
7637 DIST_ed_frt_ACCTD_AMT,
7638 DIST_ed_tax_AMT ,
7639 DIST_ed_tax_ACCTD_AMT,
7640 --
7641 tl_ed_alloc_amt ,
7642 tl_ed_alloc_acctd_amt ,
7643 tl_ed_chrg_alloc_amt ,
7644 tl_ed_chrg_alloc_acctd_amt,
7645 tl_ed_frt_alloc_amt ,
7646 tl_ed_frt_alloc_acctd_amt,
7647 tl_ed_tax_alloc_amt ,
7648 tl_ed_tax_alloc_acctd_amt,
7649 --
7650 -- UNED
7651 DIST_uned_AMT ,
7652 DIST_uned_ACCTD_AMT ,
7653 DIST_uned_chrg_AMT,
7654 DIST_uned_chrg_ACCTD_AMT,
7655 DIST_uned_frt_AMT ,
7656 DIST_uned_frt_ACCTD_AMT,
7657 DIST_uned_tax_AMT ,
7658 DIST_uned_tax_ACCTD_AMT,
7659 --
7660 tl_uned_alloc_amt ,
7661 tl_uned_alloc_acctd_amt ,
7662 tl_uned_chrg_alloc_amt ,
7663 tl_uned_chrg_alloc_acctd_amt,
7664 tl_uned_frt_alloc_amt ,
7665 tl_uned_frt_alloc_acctd_amt,
7666 tl_uned_tax_alloc_amt ,
7667 tl_uned_tax_alloc_acctd_amt,
7668 --
7669 source_type ,
7670 source_table ,
7671 source_id ,
7672 ref_line_id ,
7673 line_type ,
7674 --
7675 group_id,
7676 source_data_key1 ,
7677 source_data_key2 ,
7678 source_data_key3 ,
7679 source_data_key4 ,
7680 source_data_key5 ,
7681 gp_level,
7682 --
7683 set_of_books_id,
7684 sob_type,
7685 tax_link_id,
7686 tax_inc_flag
7687 )
7688 SELECT /*+INDEX (rar ra_ar_n1)*/
7689 p_gt_id, --gt_id
7690 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0), --amt
7691 --HYU A negative adj distrib increase the inv rec therefore the rem on trx line
7692 -- For ARPDDB and ARALLOCB integration detail distribution from ARPDDB needs
7693 -- to be created in the same sign of the parent adjustment <=>
7694 -- ADJ -100 will create a set of det_dist for the Write-off account with a total
7695 -- of -100 ending decrease the line balance, no need to multply by -1 removing it
7696 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0), --acctd_amt Rem * -1
7697 rrc.ref_account_class, --account_class
7698 rrc.code_combination_id, --ccid_secondary
7699
7700 NVL(rrc.ref_cust_trx_line_gl_dist_id,
7701 DECODE(rrc.ref_account_class,'REV',
7702 DECODE(rrc.activity_bucket,'APP_LINE' ,-6, --Boundary line : -6
7703 'APP_FRT' ,-9, --Boundary frt : -9 frt adjustment over Rev line
7704 -7), --Boundary charge:-7
7705 'UNEARN',
7706 DECODE(rrc.activity_bucket,'APP_LINE' ,-6, --Boundary line : -6
7707 'APP_FRT' ,-9, --Boundary frt : -9 frt adjustment over Rev line
7708 -7), --Boundary charge:-7
7709 'UNBILL',
7710 DECODE(rrc.activity_bucket,'APP_LINE' ,-6, --Boundary line : -6
7711 'APP_FRT' ,-9, --Boundary frt : -9 frt adjustment over Rev line
7712 -7), --Boundary charge:-7
7713
7714 'TAX', -8, -- Boundary tax
7715 'FREIGHT',-9)), -- Boundary freight : This should not happens as not adjustment
7716 -- will be tied to freight line
7717 NVL(rrc.ref_customer_trx_line_id,
7718 DECODE(rrc.ref_account_class,'REV',
7719 DECODE(rrc.activity_bucket,'APP_LINE' ,-6, -- Boundary line:-6
7720 'APP_FRT' ,-9, -- Boundary freight:-6
7721 -7), -- Boundary charge:-7
7722 'UNEARN',
7723 DECODE(rrc.activity_bucket,'APP_LINE' ,-6, -- Boundary line:-6
7724 'APP_FRT' ,-9, -- Boundary freight:-6
7725 -7), -- Boundary charge:-7
7726 'UNBILL',
7727 DECODE(rrc.activity_bucket,'APP_LINE' ,-6, -- Boundary line:-6
7728 'APP_FRT' ,-9, -- Boundary freight:-6
7729 -7), -- Boundary charge:-7
7730 'TAX', -8, -- Boundary tax
7731 'FREIGHT',-9)), -- Boundary freight : This should not happens as not adjustment
7732 -- will be tied to freight line
7733 rar.ref_customer_trx_id,
7734 rar.to_currency,
7735 rar.base_currency,
7736 -- ADJ and APP -- HYU "A reprendre ici"
7737 0, -- DIST_AMT
7738 0, -- DIST_ACCTD_AMT
7739 DECODE(rrc.ref_account_class,'REV',
7740 DECODE(rrc.activity_bucket,'APP_CHRG',
7741 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7742 0 ),
7743 'UNEARN',
7744 DECODE(rrc.activity_bucket,'APP_CHRG',
7745 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7746 0 ),
7747 'UNBILL',
7748 DECODE(rrc.activity_bucket,'APP_CHRG',
7749 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7750 0 ),
7751 0), -- DIST_CHRG_AMT
7752 DECODE(rrc.ref_account_class,'REV',
7753 DECODE(rrc.activity_bucket,'APP_CHRG',
7754 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7755 0 ),
7756 'UNEARN',
7757 DECODE(rrc.activity_bucket,'APP_CHRG',
7758 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7759 0 ),
7760 'UNBILL',
7761 DECODE(rrc.activity_bucket,'APP_CHRG',
7762 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7763 0 ),
7764 0), -- DIST_CHRG_ACCTD_AMT
7765 DECODE(rrc.ref_account_class,'REV',
7766 DECODE(rrc.activity_bucket,'APP_FRT',
7767 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7768 0 ),
7769 'UNEARN',
7770 DECODE(rrc.activity_bucket,'APP_FRT',
7771 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7772 0 ),
7773 DECODE(rrc.activity_bucket,'APP_FRT',
7774 'UNBILL',
7775 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7776 0 ),
7777 0), -- DIST_FRT_AMT
7778 DECODE(rrc.ref_account_class,'REV',
7779 DECODE(rrc.activity_bucket,'APP_FRT',
7780 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7781 0 ),
7782 'UNEARN',
7783 DECODE(rrc.activity_bucket,'APP_FRT',
7784 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7785 0 ),
7786 'UNBILL',
7787 DECODE(rrc.activity_bucket,'APP_FRT',
7788 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7789 0 ),
7790 0), -- DIST_FRT_ACCTD_AMT
7791 0, -- DIST_TAX_AMT
7792 0, -- DIST_TAX_ACCTD_AMT
7793 --
7794 rar.tl_alloc_amt ,
7795 rar.tl_alloc_acctd_amt ,
7796 rar.tl_chrg_alloc_amt ,
7797 rar.tl_chrg_alloc_acctd_amt,
7798 rar.tl_frt_alloc_amt ,
7799 rar.tl_frt_alloc_acctd_amt ,
7800 rar.tl_tax_alloc_amt ,
7801 rar.tl_tax_alloc_acctd_amt ,
7802 -- Elemt Rev
7803 0, -- DIST_ED_AMT Rem * -1
7804 0, -- DIST_ED_ACCTD_AMT Rem * -1
7805 -- Elemt Chrg
7806 DECODE(rrc.ref_account_class,'REV',
7807 DECODE(rrc.activity_bucket,'APP_CHRG',
7808 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7809 0 ),
7810 'UNEARN',
7811 DECODE(rrc.activity_bucket,'APP_CHRG',
7812 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7813 0 ),
7814 'UNBILL',
7815 DECODE(rrc.activity_bucket,'APP_CHRG',
7816 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7817 0 ),
7818 0), -- DIST_ED_CHRG_AMT Rem * -1
7819 DECODE(rrc.ref_account_class,'REV',
7820 DECODE(rrc.activity_bucket,'APP_CHRG',
7821 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7822 0 ),
7823 'UNEARN',
7824 DECODE(rrc.activity_bucket,'APP_CHRG',
7825 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7826 0 ),
7827 'UNBILL',
7828 DECODE(rrc.activity_bucket,'APP_CHRG',
7829 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7830 0 ),
7831 0), -- DIST_ED_CHRG_ACCTD_AMT Rem * -1
7832 -- Elemt Frt
7833 DECODE(rrc.ref_account_class,'REV',
7834 DECODE(rrc.activity_bucket,'APP_FRT',
7835 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7836 0 ),
7837 'UNEARN',
7838 DECODE(rrc.activity_bucket,'APP_FRT',
7839 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7840 0 ),
7841 'UNBILL',
7842 DECODE(rrc.activity_bucket,'APP_FRT',
7843 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7844 0 ),
7845 0), -- DIST_ED_FRT_AMT Rem * -1
7846 DECODE(rrc.ref_account_class,'REV',
7847 DECODE(rrc.activity_bucket,'APP_FRT',
7848 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7849 0 ),
7850 'UNEARN',
7851 DECODE(rrc.activity_bucket,'APP_FRT',
7852 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7853 0 ),
7854 'UNBILL',
7855 DECODE(rrc.activity_bucket,'APP_FRT',
7856 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7857 0 ),
7858 0), -- DIST_ED_FRT_ACCTD_AMT Rem * -1
7859 -- Elemt Tax
7860 0, -- DIST_ED_TAX_AMT Rem * -1
7861 0, -- DIST_ED_TAX_ACCTD_AMT Rem * -1
7862 --Bucket
7863 -- Buc Rev
7864 rar.tl_ed_alloc_amt ,
7865 rar.tl_ed_alloc_acctd_amt ,
7866 --Buc Chrg
7867 rar.tl_ed_chrg_alloc_amt ,
7868 rar.tl_ed_chrg_alloc_acctd_amt,
7869 --Buc Frt
7870 rar.tl_ed_frt_alloc_amt ,
7871 rar.tl_ed_frt_alloc_acctd_amt ,
7872 --Buc Tax
7873 rar.tl_ed_tax_alloc_amt ,
7874 rar.tl_ed_tax_alloc_acctd_amt ,
7875 --
7876 -- UNED
7877 -- Rev Elemt
7878 0, -- DIST_UNED_AMT Rem * -1
7879 0, -- DIST_UNED_ACCTD_AMT Rem * -1
7880 -- Chrg Elemt
7881 DECODE(rrc.ref_account_class,'REV',
7882 DECODE(rrc.activity_bucket,'APP_CHRG',
7883 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7884 0 ),
7885 'UNEARN',
7886 DECODE(rrc.activity_bucket,'APP_CHRG',
7887 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7888 0 ),
7889 'UNBILL',
7890 DECODE(rrc.activity_bucket,'APP_CHRG',
7891 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7892 0 ),
7893 0), -- DIST_UNED_CHRG_AMT Rem * -1
7894 DECODE(rrc.ref_account_class,'REV',
7895 DECODE(rrc.activity_bucket,'APP_CHRG',
7896 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7897 0 ),
7898 'UNEARN',
7899 DECODE(rrc.activity_bucket,'APP_CHRG',
7900 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7901 0 ),
7902 'UNBILL',
7903 DECODE(rrc.activity_bucket,'APP_CHRG',
7904 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7905 0 ),
7906 0), -- DIST_UNED_CHRG_ACCTD_AMT Rem * -1
7907 -- Frt Elemt
7908 DECODE(rrc.ref_account_class,'REV',
7909 DECODE(rrc.activity_bucket,'APP_FRT',
7910 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7911 0 ),
7912 'UNEARN',
7913 DECODE(rrc.activity_bucket,'APP_FRT',
7914 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7915 0 ),
7916 'UNBILL',
7917 DECODE(rrc.activity_bucket,'APP_FRT',
7918 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),
7919 0 ),
7920 0), -- DIST_UNED_FRT_AMT Rem * -1
7921 DECODE(rrc.ref_account_class,'REV',
7922 DECODE(rrc.activity_bucket,'APP_FRT',
7923 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7924 0 ),
7925 'UNEARN',
7926 DECODE(rrc.activity_bucket,'APP_FRT',
7927 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7928 0 ),
7929 'UNBILL',
7930 DECODE(rrc.activity_bucket,'APP_FRT',
7931 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),
7932 0 ),
7933 0), -- DIST_UNED_FRT_ACCTD_AMT Rem * -1
7934 -- Tax Elemt
7935 0, -- DIST_UNED_TAX_AMT Rem * -1
7936 0, -- DIST_UNED_TAX_ACCTD_AMT Rem * -1
7937 --Bucket
7938 -- Rev
7939 rar.tl_uned_alloc_amt ,
7940 rar.tl_uned_alloc_acctd_amt ,
7941 --Chrg
7942 rar.tl_uned_chrg_alloc_amt ,
7943 rar.tl_uned_chrg_alloc_acctd_amt,
7944 --Frt
7945 rar.tl_uned_frt_alloc_amt ,
7946 rar.tl_uned_frt_alloc_acctd_amt ,
7947 --Tax
7948 rar.tl_uned_tax_alloc_amt ,
7949 rar.tl_uned_tax_alloc_acctd_amt ,
7950 --
7951 p_app_rec.APPLICATION_TYPE,
7952 'RA',
7953 p_app_rec.receivable_application_id,
7954 rrc.ref_line_id,
7955 rar.line_type,
7956 --
7957 rar.group_id,
7958 rar.source_data_key1 ,
7959 rar.source_data_key2 ,
7960 rar.source_data_key3 ,
7961 rar.source_data_key4 ,
7962 rar.source_data_key5 ,
7963 'D',
7964 --BUG#3611016
7965 p_ae_sys_rec.set_of_books_id,
7966 p_ae_sys_rec.sob_type,
7967 rrc.tax_link_id, -- tax_link_id
7968 DECODE(rrc.ref_account_class,'TAX','Y',
7969 --'REV',DECODE(NVL(adj.tax_adjusted,0),0, 'N','Y'),
7970 'REV','Y', -- BUG 7597090
7971 'N') -- tax_inc_flag
7972 FROM ra_ar_gt rar,
7973 ar_distributions rrc,
7974 ar_receivable_applications ra,
7975 ra_customer_trx_lines ctl
7976 WHERE rar.gt_id = p_gt_id
7977 AND rar.ref_customer_trx_id = p_customer_trx_id
7978 AND rar.gp_level = 'L'
7979 AND ra.applied_customer_trx_id = p_customer_trx_id
7980 AND rrc.source_table = 'RA'
7981 AND rrc.source_id = ra.receivable_application_id
7982 AND rar.ref_customer_trx_line_id = rrc.ref_customer_trx_line_id
7983 AND rrc.ref_customer_trx_line_id = ctl.customer_trx_line_id
7984 AND ctl.line_type = 'LINE'
7985 AND rrc.activity_bucket in ('APP_FRT','APP_CHRG')
7986 AND rar.ref_cust_trx_line_gl_dist_id IS NULL
7987 AND (ra.upgrade_method = 'R12' OR ra.upgrade_method IS NULL);
7988
7989 l_rows := sql%rowcount;
7990 g_appln_count := g_appln_count + l_rows;
7991 IF PG_DEBUG = 'Y' THEN
7992 localdebug(' rows inserted = ' || l_rows);
7993
7994 --{Boundary distributions
7995 localdebug(' Boundary R12 distributions');
7996 END IF;
7997
7998 INSERT INTO RA_AR_GT
7999 ( GT_ID ,
8000 AMT ,
8001 ACCTD_AMT ,
8002 ACCOUNT_CLASS ,
8003 CCID_SECONDARY ,
8004 REF_CUST_TRX_LINE_GL_DIST_ID,
8005 REF_CUSTOMER_TRX_LINE_ID ,
8006 REF_CUSTOMER_TRX_ID ,
8007 TO_CURRENCY ,
8008 BASE_CURRENCY ,
8009 -- ADJ and APP Elmt
8010 DIST_AMT, --HYUD LINE
8011 DIST_ACCTD_AMT, --HYUD LINE
8012 DIST_CHRG_AMT, --HYUD CHRG
8013 DIST_CHRG_ACCTD_AMT, --HYUD CHRG
8014 DIST_FRT_AMT, --HYUD FRT
8015 DIST_FRT_ACCTD_AMT, --HYUD FRT
8016 DIST_TAX_AMT, --HYUD TAX
8017 DIST_TAX_ACCTD_AMT, --HYUD TAX
8018 --
8019 tl_alloc_amt ,
8020 tl_alloc_acctd_amt ,
8021 tl_chrg_alloc_amt ,
8022 tl_chrg_alloc_acctd_amt,
8023 tl_frt_alloc_amt ,
8024 tl_frt_alloc_acctd_amt,
8025 tl_tax_alloc_amt ,
8026 tl_tax_alloc_acctd_amt,
8027 -- ED Elmt
8028 DIST_ed_AMT,
8029 DIST_ed_ACCTD_AMT,
8030 DIST_ed_chrg_AMT,
8031 DIST_ed_chrg_ACCTD_AMT,
8032 DIST_ed_frt_AMT ,
8033 DIST_ed_frt_ACCTD_AMT,
8034 DIST_ed_tax_AMT ,
8035 DIST_ed_tax_ACCTD_AMT,
8036 --
8037 tl_ed_alloc_amt ,
8038 tl_ed_alloc_acctd_amt ,
8039 tl_ed_chrg_alloc_amt ,
8040 tl_ed_chrg_alloc_acctd_amt,
8041 tl_ed_frt_alloc_amt ,
8042 tl_ed_frt_alloc_acctd_amt,
8043 tl_ed_tax_alloc_amt ,
8044 tl_ed_tax_alloc_acctd_amt,
8045 --
8046 -- UNED
8047 DIST_uned_AMT ,
8048 DIST_uned_ACCTD_AMT ,
8049 DIST_uned_chrg_AMT,
8050 DIST_uned_chrg_ACCTD_AMT,
8051 DIST_uned_frt_AMT ,
8052 DIST_uned_frt_ACCTD_AMT,
8053 DIST_uned_tax_AMT ,
8054 DIST_uned_tax_ACCTD_AMT,
8055 --
8056 tl_uned_alloc_amt ,
8057 tl_uned_alloc_acctd_amt ,
8058 tl_uned_chrg_alloc_amt ,
8059 tl_uned_chrg_alloc_acctd_amt,
8060 tl_uned_frt_alloc_amt ,
8061 tl_uned_frt_alloc_acctd_amt,
8062 tl_uned_tax_alloc_amt ,
8063 tl_uned_tax_alloc_acctd_amt,
8064 --
8065 source_type ,
8066 source_table ,
8067 source_id ,
8068 ref_line_id ,
8069 line_type ,
8070 --
8071 group_id,
8072 source_data_key1 ,
8073 source_data_key2 ,
8074 source_data_key3 ,
8075 source_data_key4 ,
8076 source_data_key5 ,
8077 gp_level,
8078 --
8079 set_of_books_id,
8080 sob_type,
8081 tax_link_id,
8082 tax_inc_flag
8083 )
8084 SELECT p_gt_id, --gt_id
8085 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0), --amt Rem * -1
8086 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0), --acctd_amt Rem * -1
8087 rrc.ref_account_class, --account_class
8088 rrc.code_combination_id, --ccid_secondary
8089 rrc.ref_cust_trx_line_gl_dist_id, -- (-6 line, -7 chrg, -8 tax, -9 frt)
8090 rrc.ref_customer_trx_line_id,
8091 p_customer_trx_id,
8092 trx.invoice_currency_code,
8093 arp_global.functional_currency,
8094 -- APP
8095 -- Elemt Rev
8096 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
8097 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_AMT Rem * -1
8098 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
8099 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_ACCTD_AMT Rem * -1
8100 --Elemt Chrg
8101 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
8102 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_CHRG_AMT Rem * -1
8103 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
8104 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_CHRG_ACCTD_AMT Rem * -1
8105 --Elemt Frt
8106 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
8107 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_FRT_AMT Rem * -1
8108 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
8109 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_FRT_ACCTD_AMT Rem * -1
8110 --Elemt Tax
8111 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
8112 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_TAX_AMT Rem * -1
8113 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
8114 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_TAX_ACCTD_AMT Rem * -1
8115 --Bucket
8116 --Rev
8117 decode(rrc.ref_customer_trx_line_id, -6, g_line_applied, 0) ,
8118 decode(rrc.ref_customer_trx_line_id, -6, g_acctd_line_applied, 0) ,
8119 --Chrg
8120 decode(rrc.ref_customer_trx_line_id, -7, g_chrg_applied, 0) ,
8121 decode(rrc.ref_customer_trx_line_id, -7, g_acctd_chrg_applied, 0) ,
8122 --Frt
8123 decode(rrc.ref_customer_trx_line_id, -9, g_frt_applied, 0) ,
8124 decode(rrc.ref_customer_trx_line_id, -9, g_acctd_frt_applied, 0) ,
8125 --Tax
8126 decode(rrc.ref_customer_trx_line_id, -8, g_tax_applied, 0) ,
8127 decode(rrc.ref_customer_trx_line_id, -8, g_acctd_tax_applied, 0) ,
8128 --
8129 -- ED
8130 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
8131 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_ED_AMT Rem * -1
8132 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
8133 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_ED_ACCTD_AMT Rem * -1
8134 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
8135 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_ED_CHRG_AMT Rem * -1
8136 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
8137 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_ED_CHRG_ACCTD_AMT Rem * -1
8138 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
8139 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_ED_FRT_AMT Rem * -1
8140 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
8141 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_ED_FRT_ACCTD_AMT Rem * -1
8142 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
8143 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_ED_TAX_AMT Rem * -1
8144 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
8145 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_ED_TAX_ACCTD_AMT Rem * -1
8146 --
8147 g_line_ed ,
8148 g_acctd_line_ed ,
8149 g_chrg_ed ,
8150 g_acctd_chrg_ed ,
8151 g_frt_ed ,
8152 g_acctd_frt_ed ,
8153 g_tax_ed ,
8154 g_acctd_tax_ed ,
8155 --
8156 -- UNED
8157 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
8158 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_UNED_AMT Rem * -1
8159 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
8160 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_UNED_ACCTD_AMT Rem * -1
8161 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
8162 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_UNED_CHRG_AMT Rem * -1
8163 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
8164 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_UNED_CHRG_ACCTD_AMT Rem * -1
8165 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
8166 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_UNED_FRT_AMT Rem * -1
8167 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
8168 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_UNED_FRT_ACCTD_AMT Rem * -1
8169 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
8170 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_UNED_TAX_AMT Rem * -1
8171 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
8172 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_UNED_TAX_ACCTD_AMT Rem * -1
8173 --
8174 g_line_uned ,
8175 g_acctd_line_uned ,
8176 g_chrg_uned ,
8177 g_acctd_chrg_uned ,
8178 g_frt_uned ,
8179 g_acctd_frt_uned ,
8180 g_tax_uned ,
8181 g_acctd_tax_uned ,
8182 --
8183 p_app_rec.APPLICATION_TYPE,
8184 'RA',
8185 p_app_rec.receivable_application_id,
8186 rrc.line_id,
8187 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,'LINE',
8188 -7,'LINE',
8189 -9,'LINE',
8190 -8,'TAX' ),
8191 --
8192 g.group_id,
8193 g.source_data_key1 ,
8194 g.source_data_key2 ,
8195 g.source_data_key3 ,
8196 g.source_data_key4 ,
8197 g.source_data_key5 ,
8198 'D',
8199 p_ae_sys_rec.set_of_books_id,
8200 p_ae_sys_rec.sob_type,
8201 rrc.tax_link_id, -- tax_link_id
8202 'N' -- tax_inc_flag
8203 FROM ar_distributions rrc,
8204 (SELECT /*+INDEX (ra_ar_gt ra_ar_n1)*/
8205 MAX(group_id) group_id,
8206 --{HYUBPAGP
8207 MAX(source_data_key1) source_data_key1,
8208 MAX(source_data_key2) source_data_key2,
8209 MAX(source_data_key3) source_data_key3,
8210 MAX(source_data_key4) source_data_key4,
8211 MAX(source_data_key5) source_data_key5
8212 --}
8213 FROM ra_ar_gt
8214 WHERE gt_id = p_gt_id
8215 AND ref_customer_trx_id = p_customer_trx_id
8216 AND gp_level = 'L') g,
8217 ar_adjustments adj,
8218 ra_customer_trx trx
8219 --{Line Charge and Freight boundary
8220 -- Insert freight dist or the charge dist only in the no CHARGES or FREIGHT line exist
8221 -- As by default the boundary on those 2 lines exist only if there are no REV line on the invoice
8222 -- But in the case the CHARGES or FREIGHT exist and we are not maintaining the balance on lines
8223 -- The issue will be the amount applied in FRT or CHRG will get prorated on the initial
8224 -- Freight line and charge line as there is no remaining on REV line for FRT and CHRG 100% of the amount
8225 -- will be on the FRT and CHRG line, if we insert the boundary line here, the amount will be double accounted
8226 --}
8227 WHERE adj.customer_trx_id = p_customer_trx_id
8228 AND adj.adjustment_id = rrc.source_id
8229 AND rrc.source_table = 'ADJ'
8230 AND ((rrc.ref_customer_trx_line_id = -6) OR --Line
8231 (rrc.ref_customer_trx_line_id = -8) OR --Tax
8232 (rrc.ref_customer_trx_line_id = -7 AND g_trx_line_chrg = 'N') OR --Charges
8233 (rrc.ref_customer_trx_line_id = -9 AND g_trx_line_frt = 'N')) --Freight
8234 AND (adj.upgrade_method = 'R12' OR adj.upgrade_method IS NULL)
8235 AND adj.customer_trx_id = trx.customer_trx_id;
8236
8237 l_rows := sql%rowcount;
8238 g_appln_count := g_appln_count + l_rows;
8239 IF PG_DEBUG = 'Y' THEN
8240 localdebug(' rows inserted = ' || l_rows);
8241 localdebug(' -->Distribution gotten from adjustment R12 ');
8242 END IF;
8243
8244
8245 --{Get the dist from MFAR if required
8246 IF g_mode_process = 'R12_11IMFAR' THEN
8247 IF PG_DEBUG = 'Y' THEN
8248 localdebug(' Mfar 11I legacy to R12 distributions');
8249 END IF;
8250 INSERT INTO RA_AR_GT
8251 ( GT_ID ,
8252 AMT ,
8253 ACCTD_AMT ,
8254 ACCOUNT_CLASS ,
8255 CCID_SECONDARY ,
8256 REF_CUST_TRX_LINE_GL_DIST_ID,
8257 REF_CUSTOMER_TRX_LINE_ID ,
8258 REF_CUSTOMER_TRX_ID ,
8259 TO_CURRENCY ,
8260 BASE_CURRENCY ,
8261 -- ADJ and APP Elmt
8262 DIST_AMT, --HYUD LINE
8263 DIST_ACCTD_AMT, --HYUD LINE
8264 DIST_CHRG_AMT, --HYUD CHRG
8265 DIST_CHRG_ACCTD_AMT, --HYUD CHRG
8266 DIST_FRT_AMT, --HYUD FRT
8267 DIST_FRT_ACCTD_AMT, --HYUD FRT
8268 DIST_TAX_AMT, --HYUD TAX
8269 DIST_TAX_ACCTD_AMT, --HYUD TAX
8270 --
8271 tl_alloc_amt ,
8272 tl_alloc_acctd_amt ,
8273 tl_chrg_alloc_amt ,
8274 tl_chrg_alloc_acctd_amt,
8275 tl_frt_alloc_amt ,
8276 tl_frt_alloc_acctd_amt,
8277 tl_tax_alloc_amt ,
8278 tl_tax_alloc_acctd_amt,
8279 -- ED Elmt
8280 DIST_ed_AMT,
8281 DIST_ed_ACCTD_AMT,
8282 DIST_ed_chrg_AMT,
8283 DIST_ed_chrg_ACCTD_AMT,
8284 DIST_ed_frt_AMT ,
8285 DIST_ed_frt_ACCTD_AMT,
8286 DIST_ed_tax_AMT ,
8287 DIST_ed_tax_ACCTD_AMT,
8288 --
8289 tl_ed_alloc_amt ,
8290 tl_ed_alloc_acctd_amt ,
8291 tl_ed_chrg_alloc_amt ,
8292 tl_ed_chrg_alloc_acctd_amt,
8293 tl_ed_frt_alloc_amt ,
8294 tl_ed_frt_alloc_acctd_amt,
8295 tl_ed_tax_alloc_amt ,
8296 tl_ed_tax_alloc_acctd_amt,
8297 -- UNED
8298 DIST_uned_AMT ,
8299 DIST_uned_ACCTD_AMT ,
8300 DIST_uned_chrg_AMT,
8301 DIST_uned_chrg_ACCTD_AMT,
8302 DIST_uned_frt_AMT ,
8303 DIST_uned_frt_ACCTD_AMT,
8304 DIST_uned_tax_AMT ,
8305 DIST_uned_tax_ACCTD_AMT,
8306 --
8307 tl_uned_alloc_amt ,
8308 tl_uned_alloc_acctd_amt ,
8309 tl_uned_chrg_alloc_amt ,
8310 tl_uned_chrg_alloc_acctd_amt,
8311 tl_uned_frt_alloc_amt ,
8312 tl_uned_frt_alloc_acctd_amt,
8313 tl_uned_tax_alloc_amt ,
8314 tl_uned_tax_alloc_acctd_amt,
8315 --
8316 source_type ,
8317 source_table ,
8318 source_id ,
8319 ref_line_id ,
8320 line_type ,
8321 --
8322 group_id,
8323 source_data_key1 ,
8324 source_data_key2 ,
8325 source_data_key3 ,
8326 source_data_key4 ,
8327 source_data_key5 ,
8328 gp_level,
8329 set_of_books_id,
8330 sob_type,
8331 tax_link_id,
8332 tax_inc_flag,
8333 ref_mf_dist_flag
8334 )
8335 SELECT /*+INDEX (rar ra_ar_n1)*/
8336 p_gt_id, --gt_id
8337 NVL(rrc.AMOUNT,0), --amt in the sign of cor adj dist
8338 NVL(rrc.AMOUNT,0), --acctd_amt is iden amt because in mfar world base and trx currency are the same
8339 ctlgd.account_class, --account_class
8340 rrc.mf_adjustment_ccid, --ccid_secondary
8341 rrc.cust_trx_line_gl_dist_id, --ref_cust_trx_line_gl_dist_id no boundary can exist
8342 ctlgd.customer_trx_line_id, -- ref_customer_trx_line_id no boundary can exist
8343 rar.ref_customer_trx_id,
8344 rar.to_currency,
8345 rar.base_currency,
8346 -- ADJ and APP
8347 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_AMT
8348 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_ACCTD_AMT
8349 0, -- DIST_CHRG_AMT charges in psa are prorate on other lines
8350 -- need revisit at charge line introduced in AR
8351 0, -- DIST_CHRG_ACCTD_AMT
8352 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_FRT_AMT
8353 -- frt adjusted in psa are over frt line
8354 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_FRT_ACCTD_AMT
8355 -- frt adjusted in psa are over frt line
8356 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_TAX_AMT
8357 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_TAX_ACCTD_AMT
8358 --
8359 rar.tl_alloc_amt ,
8360 rar.tl_alloc_acctd_amt ,
8361 rar.tl_chrg_alloc_amt ,
8362 rar.tl_chrg_alloc_acctd_amt,
8363 rar.tl_frt_alloc_amt ,
8364 rar.tl_frt_alloc_acctd_amt ,
8365 rar.tl_tax_alloc_amt ,
8366 rar.tl_tax_alloc_acctd_amt ,
8367 -- ED
8368 -- Elemt Rev
8369 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_ED_AMT
8370 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_ED_ACCTD_AMT
8371 -- Elemt Chrg
8372 0, -- DIST_ED_CHRG_AMT
8373 0, -- DIST_ED_CHRG_ACCTD_AMT
8374 -- Elemt Frt
8375 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_ED_FRT_AMT
8376 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_ED_FRT_ACCTD_AMT
8377 -- Elemt Tax
8378 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_ED_TAX_AMT
8379 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_ED_TAX_ACCTD_AMT
8380 --Bucket
8381 -- Buc Rev
8382 rar.tl_ed_alloc_amt ,
8383 rar.tl_ed_alloc_acctd_amt ,
8384 --Buc Chrg
8385 rar.tl_ed_chrg_alloc_amt ,
8386 rar.tl_ed_chrg_alloc_acctd_amt,
8387 --Buc Frt
8388 rar.tl_ed_frt_alloc_amt ,
8389 rar.tl_ed_frt_alloc_acctd_amt ,
8390 --Buc Tax
8391 rar.tl_ed_tax_alloc_amt ,
8392 rar.tl_ed_tax_alloc_acctd_amt ,
8393 --
8394 -- UNED
8395 -- Rev Elemt
8396 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_AMT
8397 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_ACCTD_AMT
8398 -- Chrg Elemt
8399 0, -- DIST_UNED_CHRG_AMT
8400 0, -- DIST_UNED_CHRG_ACCTD_AMT
8401 -- Frt Elemt
8402 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_FRT_AMT
8403 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_FRT_ACCTD_AMT
8404 -- Tax Elemt
8405 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_TAX_AMT
8406 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_TAX_ACCTD_AMT
8407 --Bucket
8408 -- Rev
8409 rar.tl_uned_alloc_amt ,
8410 rar.tl_uned_alloc_acctd_amt ,
8411 --Chrg
8412 rar.tl_uned_chrg_alloc_amt ,
8413 rar.tl_uned_chrg_alloc_acctd_amt,
8414 --Frt
8415 rar.tl_uned_frt_alloc_amt ,
8416 rar.tl_uned_frt_alloc_acctd_amt ,
8417 --Tax
8418 rar.tl_uned_tax_alloc_amt ,
8419 rar.tl_uned_tax_alloc_acctd_amt ,
8420 --
8421 p_app_rec.APPLICATION_TYPE,
8422 'RA',
8423 p_app_rec.receivable_application_id,
8424 -12345, --ref_line_id -12345 at the insertion time need to interpret the ref_psa_dist_flag
8425 rar.line_type,
8426 --
8427 rar.group_id,
8428 rar.source_data_key1 ,
8429 rar.source_data_key2 ,
8430 rar.source_data_key3 ,
8431 rar.source_data_key4 ,
8432 rar.source_data_key5 ,
8433 'D',
8434 --BUG#3611016
8435 p_ae_sys_rec.set_of_books_id,
8436 p_ae_sys_rec.sob_type,
8437 -- g_se_gt_id,
8438 DECODE(ctl.line_type,'TAX',ctl.link_to_cust_trx_line_id,
8439 'LINE',ctl.customer_trx_line_id,
8440 NULL), -- tax_link_id
8441 DECODE(ctl.line_type,'TAX','Y',
8442 'REV',DECODE(NVL(adj.tax_adjusted,0),0, 'N','Y'),
8443 'N'), -- tax_inc_flag
8444 'Y' -- ref_mf_dist_flag
8445 FROM ra_ar_gt rar,
8446 psa_mf_adj_dist_all rrc,
8447 ra_cust_trx_line_gl_dist ctlgd,
8448 ra_customer_trx_lines ctl,
8449 ar_adjustments adj
8450 WHERE rar.gt_id = p_gt_id
8451 AND rar.ref_customer_trx_id = p_customer_trx_id
8452 AND rar.gp_level = 'L'
8453 AND rar.ref_customer_trx_line_id = ctl.customer_trx_line_id
8454 AND rar.ref_customer_trx_line_id = ctlgd.customer_trx_line_id
8455 AND rar.ref_cust_trx_line_gl_dist_id IS NULL
8456 AND ctlgd.cust_trx_line_gl_dist_id = rrc.cust_trx_line_gl_dist_id
8457 AND rrc.adjustment_id = adj.adjustment_id
8458 AND adj.upgrade_method = '11IMFAR'; -- For adjustment the marks are R12 - 11I (cash) - 11IMFAR (Mfar)
8459
8460 l_rows := sql%rowcount;
8461 g_appln_count := g_appln_count + l_rows;
8462 IF PG_DEBUG = 'Y' THEN
8463 localdebug(' rows inserted = ' || l_rows);
8464 localdebug(' -->Distribution gotten from adjustment 11IMFAR ');
8465 END IF;
8466
8467 END IF;
8468
8469 END IF; -- g_mode_process <> 'R12_11iCASH'
8470 END IF;
8471
8472 --Populate base distribution amounts
8473 INSERT INTO AR_BASE_DIST_AMTS_GT
8474 ( gt_id
8475 ,gp_level
8476 ,ref_customer_trx_id
8477 ,ref_customer_trx_line_id
8478 ,base_dist_amt
8479 ,base_dist_acctd_amt
8480 ,base_dist_chrg_amt
8481 ,base_dist_chrg_acctd_amt
8482 ,base_dist_frt_amt
8483 ,base_dist_frt_acctd_amt
8484 ,base_dist_tax_amt
8485 ,base_dist_tax_acctd_amt
8486 ,base_ed_dist_amt
8487 ,base_ed_dist_acctd_amt
8488 ,base_ed_dist_chrg_amt
8489 ,base_ed_dist_chrg_acctd_amt
8490 ,base_ed_dist_frt_amt
8491 ,base_ed_dist_frt_acctd_amt
8492 ,base_ed_dist_tax_amt
8493 ,base_ed_dist_tax_acctd_amt
8494 ,base_uned_dist_amt
8495 ,base_uned_dist_acctd_amt
8496 ,base_uned_dist_chrg_amt
8497 ,base_uned_dist_chrg_acctd_amt
8498 ,base_uned_dist_frt_amt
8499 ,base_uned_dist_frt_acctd_amt
8500 ,base_uned_dist_tax_amt
8501 ,base_uned_dist_tax_acctd_amt
8502 ,set_of_books_id
8503 ,sob_type)
8504 SELECT /*+INDEX (b ra_ar_n1)*/
8505 p_gt_id
8506 ,b.gp_level
8507 ,b.ref_customer_trx_id
8508 ,b.ref_customer_trx_line_id
8509 -- ADJ and APP
8510 ,SUM(b.dist_amt) base_dist_amt
8511 ,SUM(b.dist_acctd_amt) base_dist_acctd_amt
8512 ,SUM(b.dist_chrg_amt) base_dist_chrg_amt
8513 ,SUM(b.dist_chrg_acctd_amt) base_dist_chrg_acctd_amt
8514 ,SUM(b.dist_frt_amt) base_dist_frt_amt
8515 ,SUM(b.dist_frt_acctd_amt) base_dist_frt_acctd_amt
8516 ,SUM(b.dist_tax_amt) base_dist_tax_amt
8517 ,SUM(b.dist_tax_acctd_amt) base_dist_tax_acctd_amt
8518 -- ED
8519 ,SUM(b.dist_ed_amt) base_ed_dist_amt
8520 ,SUM(b.dist_ed_acctd_amt) base_ed_dist_acctd_amt
8521 ,SUM(b.dist_ed_chrg_amt) base_ed_dist_chrg_amt
8522 ,SUM(b.dist_ed_chrg_acctd_amt) base_ed_dist_chrg_acctd_amt
8523 ,SUM(b.dist_ed_frt_amt) base_ed_dist_frt_amt
8524 ,SUM(b.dist_ed_frt_acctd_amt) base_ed_dist_frt_acctd_amt
8525 ,SUM(b.dist_ed_tax_amt) base_ed_dist_tax_amt
8526 ,SUM(b.dist_ed_tax_acctd_amt) base_ed_dist_tax_acctd_amt
8527 -- UNED
8528 ,SUM(b.dist_uned_amt) base_uned_dist_amt
8529 ,SUM(b.dist_uned_acctd_amt) base_uned_dist_acctd_amt
8530 ,SUM(b.dist_uned_chrg_amt) base_uned_dist_chrg_amt
8531 ,SUM(b.dist_uned_chrg_acctd_amt) base_uned_dist_chrg_acctd_amt
8532 ,SUM(b.dist_uned_frt_amt) base_uned_dist_frt_amt
8533 ,SUM(b.dist_uned_frt_acctd_amt) base_uned_dist_frt_acctd_amt
8534 ,SUM(b.dist_uned_tax_amt) base_uned_dist_tax_amt
8535 ,SUM(b.dist_uned_tax_acctd_amt) base_uned_dist_tax_acctd_amt
8536 ,set_of_books_id
8537 ,sob_type
8538 FROM ra_ar_gt b
8539 WHERE b.gt_id = p_gt_id
8540 AND b.gp_level = 'D'
8541 AND b.set_of_books_id = p_ae_sys_rec.set_of_books_id
8542 AND (b.sob_type = p_ae_sys_rec.sob_type OR
8543 (b.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
8544 AND b.ref_cust_trx_line_gl_dist_id IS NOT NULL
8545 GROUP BY b.ref_customer_trx_id,
8546 b.ref_customer_trx_line_id,
8547 b.gp_level,
8548 b.sob_type,b.set_of_books_id;
8549
8550 --
8551
8552 l_rows := sql%rowcount;
8553 IF PG_DEBUG = 'Y' THEN
8554 localdebug(' rows inserted(ar_base_dist_amts_gt) = ' || l_rows);
8555
8556 localdebug('arp_det_dist_pkg.get_inv_dist()-');
8557 END IF;
8558 END get_inv_dist;
8559
8560
8561 PROCEDURE update_dist
8562 (p_gt_id IN VARCHAR2,
8563 p_customer_trx_id IN NUMBER,
8564 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
8565 IS
8566 l_rows NUMBER;
8567
8568 CURSOR c_read_for_line IS
8569 SELECT /*+ leading (A) index(A ra_ar_n1) INDEX(B ar_base_dist_amts_gt_n1)*/
8570 line_type||'-'||a.ref_customer_trx_id||'-'||a.ref_customer_trx_line_id groupe,
8571 -- ADJ and APP
8572 --Base
8573 b.BASE_dist_AMT, --Base for Revenue distributions
8574 b.BASE_dist_ACCTD_AMT,
8575 b.BASE_dist_frt_AMT, --Base for freight distributions HYUFR
8576 b.BASE_dist_frt_ACCTD_AMT,
8577 b.BASE_dist_tax_AMT, --Base for tax distributions HYUFRTAX
8578 b.BASE_dist_tax_ACCTD_AMT,
8579 b.BASE_dist_chrg_AMT, --Base for charge distributions
8580 b.BASE_dist_chrg_ACCTD_AMT,
8581 --Element
8582 DIST_AMT, --Element for Revenue distributions
8583 DIST_ACCTD_AMT,
8584 DIST_frt_AMT, --Element for freight distributions
8585 DIST_frt_ACCTD_AMT,
8586 DIST_tax_AMT, --Element for tax distributions
8587 DIST_tax_ACCTD_AMT,
8588 DIST_chrg_AMT, --Element for charge distributions
8589 DIST_chrg_ACCTD_AMT,
8590 --Amount to be allocated
8591 tl_alloc_amt, --Allocation for Revenue distributions
8592 tl_alloc_acctd_amt,
8593 tl_frt_alloc_amt, --Allocation for freight distributions
8594 tl_frt_alloc_acctd_amt,
8595 tl_tax_alloc_amt, --Allocation for tax ditsributions
8596 tl_tax_alloc_acctd_amt,
8597 tl_chrg_alloc_amt, --Allocation for charge distributions
8598 tl_chrg_alloc_acctd_amt,
8599 -- ED
8600 --Base
8601 b.BASE_ed_dist_AMT, --Base ED on Rev
8602 b.BASE_ed_dist_ACCTD_AMT,
8603 b.BASE_ed_dist_frt_AMT, --Base ED on Freight HYUFR
8604 b.BASE_ed_dist_frt_ACCTD_AMT,
8605 b.BASE_ed_dist_tax_AMT, --Base ED on Tax HYUFRTAX
8606 b.BASE_ed_dist_tax_ACCTD_AMT,
8607 b.BASE_ed_dist_chrg_AMT, --Base ED on Charge
8608 b.BASE_ed_dist_chrg_ACCTD_AMT,
8609 --Element
8610 DIST_ed_AMT, --Element ED on Rev
8611 DIST_ed_ACCTD_AMT,
8612 DIST_ed_frt_AMT, --Element ED on Freight HYUFR
8613 DIST_ed_frt_ACCTD_AMT,
8614 DIST_ed_tax_AMT, --Element ED on Tax HYUFRTAX
8615 DIST_ed_tax_ACCTD_AMT,
8616 DIST_ed_chrg_AMT, --Element ED on Charge
8617 DIST_ed_chrg_ACCTD_AMT,
8618 --Amount to be allocated
8619 tl_ed_alloc_amt, --Allocation ED on Rev
8620 tl_ed_alloc_acctd_amt,
8621 tl_ed_frt_alloc_amt, --Allocation ED on Freight HYUFR
8622 tl_ed_frt_alloc_acctd_amt,
8623 tl_ed_tax_alloc_amt, --Allocation ED on Tax HYUFRTAX
8624 tl_ed_tax_alloc_acctd_amt,
8625 tl_ed_chrg_alloc_amt,
8626 tl_ed_chrg_alloc_acctd_amt,
8627 -- UNED
8628 --Base
8629 b.BASE_uned_dist_AMT,
8630 b.BASE_uned_dist_ACCTD_AMT,
8631 b.BASE_uned_dist_frt_AMT,
8632 b.BASE_uned_dist_frt_ACCTD_AMT,
8633 b.BASE_uned_dist_tax_AMT,
8634 b.BASE_uned_dist_tax_ACCTD_AMT,
8635 b.BASE_uned_dist_chrg_AMT,
8636 b.BASE_uned_dist_chrg_ACCTD_AMT,
8637 --Element
8638 DIST_uned_AMT,
8639 DIST_uned_ACCTD_AMT,
8640 DIST_uned_frt_AMT,
8641 DIST_uned_frt_ACCTD_AMT,
8642 DIST_uned_tax_AMT,
8643 DIST_uned_tax_ACCTD_AMT,
8644 DIST_uned_chrg_AMT,
8645 DIST_uned_chrg_ACCTD_AMT,
8646 --Amount to be allocated
8647 tl_uned_alloc_amt,
8648 tl_uned_alloc_acctd_amt,
8649 tl_uned_frt_alloc_amt,
8650 tl_uned_frt_alloc_acctd_amt,
8651 tl_uned_tax_alloc_amt,
8652 tl_uned_tax_alloc_acctd_amt,
8653 tl_uned_chrg_alloc_amt,
8654 tl_uned_chrg_alloc_acctd_amt,
8655 --Currencies
8656 NVL(BASE_CURRENCY, p_ae_sys_rec.base_currency) ,
8657 TO_CURRENCY ,
8658 FROM_CURRENCY ,
8659 -- Rowid
8660 a.rowid,
8661 a.line_type
8662 FROM RA_AR_GT a,AR_BASE_DIST_AMTS_GT b--[bug 6454022]
8663 WHERE a.gt_id = p_gt_id
8664 -- AND se_gt_id = g_se_gt_id
8665 AND a.ref_customer_trx_id = p_customer_trx_id
8666 AND a.ref_cust_trx_line_gl_dist_id IS NOT NULL
8667 AND a.gp_level = 'D'
8668 --BUG#3611016
8669 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
8670 AND (a.sob_type = p_ae_sys_rec.sob_type OR (
8671 a.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
8672 AND b.gt_id = a.gt_id
8673 AND b.gp_level = 'D'
8674 AND a.ref_customer_trx_id = b.ref_customer_trx_id
8675 AND a.ref_customer_trx_line_id = b.ref_customer_trx_line_id
8676 AND b.set_of_books_id = p_ae_sys_rec.set_of_books_id
8677 AND (b.sob_type = p_ae_sys_rec.sob_type OR (
8678 b.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
8679 --source_table is populated in AR_BASE_DIST_AMTS_GT only for online_lazy_apply flow,the condition
8680 --is modified to restrict duplicate matching pairs [bug 8359020]
8681 AND nvl( a.source_type,'#$%') =
8682 DECODE( b.source_table,'CTLGD',nvl(b.source_type,'#$%'),
8683 DECODE(b.source_type,null,nvl(a.source_type,'#$%'),b.source_type))
8684 ORDER BY a.line_type||'-'||a.ref_customer_trx_id||'-'||a.ref_customer_trx_line_id||'-'||a.account_class;
8685
8686 l_tab pro_res_tbl_type;
8687
8688 l_group_tbl group_tbl_type;
8689 l_group VARCHAR2(60) := 'NOGROUP';
8690
8691 -- ADJ and APP
8692 l_run_amt NUMBER := 0;
8693 l_run_alloc NUMBER := 0;
8694 l_run_acctd_amt NUMBER := 0;
8695 l_run_acctd_alloc NUMBER := 0;
8696 l_alloc NUMBER := 0;
8697 l_acctd_alloc NUMBER := 0;
8698
8699 l_run_chrg_amt NUMBER := 0;
8700 l_run_chrg_alloc NUMBER := 0;
8701 l_run_chrg_acctd_amt NUMBER := 0;
8702 l_run_chrg_acctd_alloc NUMBER := 0;
8703 l_chrg_alloc NUMBER := 0;
8704 l_chrg_acctd_alloc NUMBER := 0;
8705
8706 l_run_frt_amt NUMBER := 0;
8707 l_run_frt_alloc NUMBER := 0;
8708 l_run_frt_acctd_amt NUMBER := 0;
8709 l_run_frt_acctd_alloc NUMBER := 0;
8710 l_frt_alloc NUMBER := 0;
8711 l_frt_acctd_alloc NUMBER := 0;
8712
8713 l_run_tax_amt NUMBER := 0;
8714 l_run_tax_alloc NUMBER := 0;
8715 l_run_tax_acctd_amt NUMBER := 0;
8716 l_run_tax_acctd_alloc NUMBER := 0;
8717 l_tax_alloc NUMBER := 0;
8718 l_tax_acctd_alloc NUMBER := 0;
8719
8720 -- ED
8721 l_run_ed_amt NUMBER := 0;
8722 l_run_ed_alloc NUMBER := 0;
8723 l_run_ed_acctd_amt NUMBER := 0;
8724 l_run_ed_acctd_alloc NUMBER := 0;
8725 l_ed_alloc NUMBER := 0;
8726 l_ed_acctd_alloc NUMBER := 0;
8727
8728 l_run_ed_chrg_amt NUMBER := 0;
8729 l_run_ed_chrg_alloc NUMBER := 0;
8730 l_run_ed_chrg_acctd_amt NUMBER := 0;
8731 l_run_ed_chrg_acctd_alloc NUMBER := 0;
8732 l_ed_chrg_alloc NUMBER := 0;
8733 l_ed_chrg_acctd_alloc NUMBER := 0;
8734
8735 l_run_ed_frt_amt NUMBER := 0;
8736 l_run_ed_frt_alloc NUMBER := 0;
8737 l_run_ed_frt_acctd_amt NUMBER := 0;
8738 l_run_ed_frt_acctd_alloc NUMBER := 0;
8739 l_ed_frt_alloc NUMBER := 0;
8740 l_ed_frt_acctd_alloc NUMBER := 0;
8741
8742 l_run_ed_tax_amt NUMBER := 0;
8743 l_run_ed_tax_alloc NUMBER := 0;
8744 l_run_ed_tax_acctd_amt NUMBER := 0;
8745 l_run_ed_tax_acctd_alloc NUMBER := 0;
8746 l_ed_tax_alloc NUMBER := 0;
8747 l_ed_tax_acctd_alloc NUMBER := 0;
8748
8749 -- UNED
8750 l_run_uned_amt NUMBER := 0;
8751 l_run_uned_alloc NUMBER := 0;
8752 l_run_uned_acctd_amt NUMBER := 0;
8753 l_run_uned_acctd_alloc NUMBER := 0;
8754 l_uned_alloc NUMBER := 0;
8755 l_uned_acctd_alloc NUMBER := 0;
8756
8757 l_run_uned_chrg_amt NUMBER := 0;
8758 l_run_uned_chrg_alloc NUMBER := 0;
8759 l_run_uned_chrg_acctd_amt NUMBER := 0;
8760 l_run_uned_chrg_acctd_alloc NUMBER := 0;
8761 l_uned_chrg_alloc NUMBER := 0;
8762 l_uned_chrg_acctd_alloc NUMBER := 0;
8763
8764 l_run_uned_frt_amt NUMBER := 0;
8765 l_run_uned_frt_alloc NUMBER := 0;
8766 l_run_uned_frt_acctd_amt NUMBER := 0;
8767 l_run_uned_frt_acctd_alloc NUMBER := 0;
8768 l_uned_frt_alloc NUMBER := 0;
8769 l_uned_frt_acctd_alloc NUMBER := 0;
8770
8771 l_run_uned_tax_amt NUMBER := 0;
8772 l_run_uned_tax_alloc NUMBER := 0;
8773 l_run_uned_tax_acctd_amt NUMBER := 0;
8774 l_run_uned_tax_acctd_alloc NUMBER := 0;
8775 l_uned_tax_alloc NUMBER := 0;
8776 l_uned_tax_acctd_alloc NUMBER := 0;
8777
8778 l_exist BOOLEAN;
8779 l_last_fetch BOOLEAN;
8780
8781 BEGIN
8782 IF PG_DEBUG = 'Y' THEN
8783 localdebug('arp_det_dist_pkg.update_dist()+');
8784 localdebug(' p_ae_sys_rec.set_of_books_id :'|| p_ae_sys_rec.set_of_books_id);
8785 localdebug(' p_ae_sys_rec.sob_type :'|| p_ae_sys_rec.sob_type);
8786 END IF;
8787 OPEN c_read_for_line;
8788 LOOP
8789 FETCH c_read_for_line BULK COLLECT INTO
8790 l_tab.GROUPE ,
8791 -- ADJ and APP
8792 -- Base
8793 l_tab.base_pro_amt ,
8794 l_tab.base_pro_acctd_amt ,
8795 l_tab.BASE_FRT_PRO_AMT ,
8796 l_tab.BASE_FRT_PRO_ACCTD_AMT ,
8797 l_tab.BASE_TAX_PRO_AMT ,
8798 l_tab.BASE_TAX_PRO_ACCTD_AMT ,
8799 l_tab.BASE_CHRG_PRO_AMT ,
8800 l_tab.BASE_CHRG_PRO_ACCTD_AMT ,
8801 -- Element numerator
8802 l_tab.elmt_pro_amt ,
8803 l_tab.elmt_pro_acctd_amt ,
8804 l_tab.ELMT_FRT_PRO_AMT ,
8805 l_tab.ELMT_FRT_PRO_ACCTD_AMT ,
8806 l_tab.ELMT_TAX_PRO_AMT ,
8807 l_tab.ELMT_TAX_PRO_ACCTD_AMT ,
8808 l_tab.ELMT_CHRG_PRO_AMT ,
8809 l_tab.ELMT_CHRG_PRO_ACCTD_AMT ,
8810 -- Amount to be allocated
8811 l_tab.buc_alloc_amt ,
8812 l_tab.buc_alloc_acctd_amt,
8813 l_tab.buc_frt_alloc_amt ,
8814 l_tab.buc_frt_alloc_acctd_amt,
8815 l_tab.buc_tax_alloc_amt ,
8816 l_tab.buc_tax_alloc_acctd_amt,
8817 l_tab.buc_chrg_alloc_amt ,
8818 l_tab.buc_chrg_alloc_acctd_amt,
8819 -- ED
8820 -- Base
8821 l_tab.base_ed_pro_amt ,
8822 l_tab.base_ed_pro_acctd_amt ,
8823 l_tab.BASE_ed_FRT_PRO_AMT ,
8824 l_tab.BASE_ed_FRT_PRO_ACCTD_AMT ,
8825 l_tab.BASE_ed_TAX_PRO_AMT ,
8826 l_tab.BASE_ed_TAX_PRO_ACCTD_AMT ,
8827 l_tab.BASE_ed_CHRG_PRO_AMT ,
8828 l_tab.BASE_ed_CHRG_PRO_ACCTD_AMT ,
8829 -- Element numerator
8830 l_tab.elmt_ed_pro_amt ,
8831 l_tab.elmt_ed_pro_acctd_amt ,
8832 l_tab.ELMT_ed_FRT_PRO_AMT ,
8833 l_tab.ELMT_ed_FRT_PRO_ACCTD_AMT ,
8834 l_tab.ELMT_ed_TAX_PRO_AMT ,
8835 l_tab.ELMT_ed_TAX_PRO_ACCTD_AMT ,
8836 l_tab.ELMT_ed_CHRG_PRO_AMT ,
8837 l_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT ,
8838 -- Amount to be allocated
8839 l_tab.buc_ed_alloc_amt ,
8840 l_tab.buc_ed_alloc_acctd_amt,
8841 l_tab.buc_ed_frt_alloc_amt ,
8842 l_tab.buc_ed_frt_alloc_acctd_amt,
8843 l_tab.buc_ed_tax_alloc_amt ,
8844 l_tab.buc_ed_tax_alloc_acctd_amt,
8845 l_tab.buc_ed_chrg_alloc_amt ,
8846 l_tab.buc_ed_chrg_alloc_acctd_amt,
8847 -- UNED
8848 -- Base
8849 l_tab.base_uned_pro_amt ,
8850 l_tab.base_uned_pro_acctd_amt ,
8851 l_tab.BASE_uned_FRT_PRO_AMT ,
8852 l_tab.BASE_uned_FRT_PRO_ACCTD_AMT ,
8853 l_tab.BASE_uned_TAX_PRO_AMT ,
8854 l_tab.BASE_uned_TAX_PRO_ACCTD_AMT ,
8855 l_tab.BASE_uned_CHRG_PRO_AMT ,
8856 l_tab.BASE_uned_CHRG_PRO_ACCTD_AMT ,
8857 -- Element numerator
8858 l_tab.elmt_uned_pro_amt ,
8859 l_tab.elmt_uned_pro_acctd_amt ,
8860 l_tab.ELMT_uned_FRT_PRO_AMT ,
8861 l_tab.ELMT_uned_FRT_PRO_ACCTD_AMT ,
8862 l_tab.ELMT_uned_TAX_PRO_AMT ,
8863 l_tab.ELMT_uned_TAX_PRO_ACCTD_AMT ,
8864 l_tab.ELMT_uned_CHRG_PRO_AMT ,
8865 l_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT ,
8866 -- Amount to be allocated
8867 l_tab.buc_uned_alloc_amt ,
8868 l_tab.buc_uned_alloc_acctd_amt,
8869 l_tab.buc_uned_frt_alloc_amt ,
8870 l_tab.buc_uned_frt_alloc_acctd_amt,
8871 l_tab.buc_uned_tax_alloc_amt ,
8872 l_tab.buc_uned_tax_alloc_acctd_amt,
8873 l_tab.buc_uned_chrg_alloc_amt ,
8874 l_tab.buc_uned_chrg_alloc_acctd_amt,
8875 --
8876 l_tab.BASE_CURRENCY ,
8877 l_tab.TO_CURRENCY ,
8878 l_tab.FROM_CURRENCY ,
8879 --
8880 l_tab.ROWID_ID,
8881 l_tab.line_type LIMIT g_bulk_fetch_rows;
8882
8883 IF c_read_for_line%NOTFOUND THEN
8884 l_last_fetch := TRUE;
8885 END IF;
8886
8887 IF (l_tab.ROWID_ID.COUNT = 0) AND (l_last_fetch) THEN
8888 IF PG_DEBUG = 'Y' THEN
8889 localdebug('COUNT = 0 and LAST FETCH ');
8890 END IF;
8891 EXIT;
8892 END IF;
8893
8894 plsql_proration( x_tab => l_tab,
8895 x_group_tbl => l_group_tbl,
8896 p_group_level => 'D',
8897 -- ADJ and APP
8898 x_run_amt => l_run_amt,
8899 x_run_alloc => l_run_alloc,
8900 x_run_acctd_amt => l_run_acctd_amt,
8901 x_run_acctd_alloc => l_run_acctd_alloc,
8902 x_run_chrg_amt => l_run_chrg_amt,
8903 x_run_chrg_alloc => l_run_chrg_alloc,
8904 x_run_chrg_acctd_amt => l_run_chrg_acctd_amt,
8905 x_run_chrg_acctd_alloc => l_run_chrg_acctd_alloc,
8906 x_run_frt_amt => l_run_frt_amt,
8907 x_run_frt_alloc => l_run_frt_alloc,
8908 x_run_frt_acctd_amt => l_run_frt_acctd_amt,
8909 x_run_frt_acctd_alloc => l_run_frt_acctd_alloc,
8910 x_run_tax_amt => l_run_tax_amt,
8911 x_run_tax_alloc => l_run_tax_alloc,
8912 x_run_tax_acctd_amt => l_run_tax_acctd_amt,
8913 x_run_tax_acctd_alloc => l_run_tax_acctd_alloc,
8914 -- ED
8915 x_run_ed_amt => l_run_ed_amt,
8916 x_run_ed_alloc => l_run_ed_alloc,
8917 x_run_ed_acctd_amt => l_run_ed_acctd_amt,
8918 x_run_ed_acctd_alloc => l_run_ed_acctd_alloc,
8919 x_run_ed_chrg_amt => l_run_ed_chrg_amt,
8920 x_run_ed_chrg_alloc => l_run_ed_chrg_alloc,
8921 x_run_ed_chrg_acctd_amt => l_run_ed_chrg_acctd_amt,
8922 x_run_ed_chrg_acctd_alloc => l_run_ed_chrg_acctd_alloc,
8923 x_run_ed_frt_amt => l_run_ed_frt_amt,
8924 x_run_ed_frt_alloc => l_run_ed_frt_alloc,
8925 x_run_ed_frt_acctd_amt => l_run_ed_frt_acctd_amt,
8926 x_run_ed_frt_acctd_alloc => l_run_ed_frt_acctd_alloc,
8927 x_run_ed_tax_amt => l_run_ed_tax_amt,
8928 x_run_ed_tax_alloc => l_run_ed_tax_alloc,
8929 x_run_ed_tax_acctd_amt => l_run_ed_tax_acctd_amt,
8930 x_run_ed_tax_acctd_alloc => l_run_ed_tax_acctd_alloc,
8931 -- UNED
8932 x_run_uned_amt => l_run_uned_amt,
8933 x_run_uned_alloc => l_run_uned_alloc,
8934 x_run_uned_acctd_amt => l_run_uned_acctd_amt,
8935 x_run_uned_acctd_alloc => l_run_uned_acctd_alloc,
8936 x_run_uned_chrg_amt => l_run_uned_chrg_amt,
8937 x_run_uned_chrg_alloc => l_run_uned_chrg_alloc,
8938 x_run_uned_chrg_acctd_amt => l_run_uned_chrg_acctd_amt,
8939 x_run_uned_chrg_acctd_alloc => l_run_uned_chrg_acctd_alloc,
8940 x_run_uned_frt_amt => l_run_uned_frt_amt,
8941 x_run_uned_frt_alloc => l_run_uned_frt_alloc,
8942 x_run_uned_frt_acctd_amt => l_run_uned_frt_acctd_amt,
8943 x_run_uned_frt_acctd_alloc => l_run_uned_frt_acctd_alloc,
8944 x_run_uned_tax_amt => l_run_uned_tax_amt,
8945 x_run_uned_tax_alloc => l_run_uned_tax_alloc,
8946 x_run_uned_tax_acctd_amt => l_run_uned_tax_acctd_amt,
8947 x_run_uned_tax_acctd_alloc => l_run_uned_tax_acctd_alloc);
8948
8949 FORALL i IN l_tab.ROWID_ID.FIRST .. l_tab.ROWID_ID.LAST
8950 UPDATE ra_ar_gt
8951 SET
8952 -- ADJ and APP
8953 tl_alloc_amt = l_tab.tl_alloc_amt(i),
8954 tl_alloc_acctd_amt = l_tab.tl_alloc_acctd_amt(i),
8955 tl_chrg_alloc_amt = l_tab.tl_chrg_alloc_amt(i),
8956 tl_chrg_alloc_acctd_amt = l_tab.tl_chrg_alloc_acctd_amt(i),
8957 tl_frt_alloc_amt = l_tab.tl_frt_alloc_amt(i),
8958 tl_frt_alloc_acctd_amt = l_tab.tl_frt_alloc_acctd_amt(i),
8959 tl_tax_alloc_amt = l_tab.tl_tax_alloc_amt(i),
8960 tl_tax_alloc_acctd_amt = l_tab.tl_tax_alloc_acctd_amt(i),
8961 -- ED
8962 tl_ed_alloc_amt = l_tab.tl_ed_alloc_amt(i),
8963 tl_ed_alloc_acctd_amt = l_tab.tl_ed_alloc_acctd_amt(i),
8964 tl_ed_chrg_alloc_amt = l_tab.tl_ed_chrg_alloc_amt(i),
8965 tl_ed_chrg_alloc_acctd_amt = l_tab.tl_ed_chrg_alloc_acctd_amt(i),
8966 tl_ed_frt_alloc_amt = l_tab.tl_ed_frt_alloc_amt(i),
8967 tl_ed_frt_alloc_acctd_amt = l_tab.tl_ed_frt_alloc_acctd_amt(i),
8968 tl_ed_tax_alloc_amt = l_tab.tl_ed_tax_alloc_amt(i),
8969 tl_ed_tax_alloc_acctd_amt = l_tab.tl_ed_tax_alloc_acctd_amt(i),
8970 -- UNED
8971 tl_uned_alloc_amt = l_tab.tl_uned_alloc_amt(i),
8972 tl_uned_alloc_acctd_amt = l_tab.tl_uned_alloc_acctd_amt(i),
8973 tl_uned_chrg_alloc_amt = l_tab.tl_uned_chrg_alloc_amt(i),
8974 tl_uned_chrg_alloc_acctd_amt = l_tab.tl_uned_chrg_alloc_acctd_amt(i),
8975 tl_uned_frt_alloc_amt = l_tab.tl_uned_frt_alloc_amt(i),
8976 tl_uned_frt_alloc_acctd_amt = l_tab.tl_uned_frt_alloc_acctd_amt(i),
8977 tl_uned_tax_alloc_amt = l_tab.tl_uned_tax_alloc_amt(i),
8978 tl_uned_tax_alloc_acctd_amt = l_tab.tl_uned_tax_alloc_acctd_amt(i)
8979 WHERE rowid = l_tab.ROWID_ID(i);
8980
8981 l_rows := sql%rowcount;
8982 IF PG_DEBUG = 'Y' THEN
8983 localdebug(' rows updated = ' || l_rows);
8984 END IF;
8985
8986 END LOOP;
8987 CLOSE c_read_for_line;
8988
8989 IF PG_DEBUG = 'Y' THEN
8990 localdebug('arp_det_dist_pkg.update_dist()-');
8991 END IF;
8992 EXCEPTION
8993 WHEN OTHERS THEN
8994 IF PG_DEBUG = 'Y' THEN
8995 localdebug(' EXCEPTION OTHERS update_dist :'||SQLERRM);
8996 END IF;
8997 END update_dist;
8998
8999 PROCEDURE create_split_distribution
9000 (p_pay_adj IN VARCHAR2,
9001 p_customer_trx_id IN NUMBER,
9002 p_gt_id IN VARCHAR2,
9003 p_app_level IN VARCHAR2,
9004 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
9005 IS
9006 l_amt NUMBER;
9007 l_ind VARCHAR2(10);
9008 l_org_id NUMBER;
9009 l_rows NUMBER;
9010 BEGIN
9011 IF PG_DEBUG = 'Y' THEN
9012 localdebug('arp_det_dist_pkg.create_split_distribution()+');
9013 localdebug(' p_pay_adj :'||p_pay_adj);
9014 localdebug(' p_customer_trx_id:'||p_customer_trx_id);
9015 localdebug(' p_app_level :'||p_app_level);
9016 localdebug(' p_ae_sys_rec.set_of_books_id :'||p_ae_sys_rec.set_of_books_id);
9017 localdebug(' p_ae_sys_rec.sob_type :'||p_ae_sys_rec.sob_type);
9018 localdebug(' p_gt_id :'||p_gt_id);
9019 END IF;
9020
9021 --Monoparsing
9022 IF g_upgrade_mode = 'Y' THEN
9023 INSERT INTO AR_LINE_APP_DETAIL_GT
9024 ( DET_ID
9025 ,APP_LEVEL
9026 ,GROUP_ID
9027 ,source_data_key1
9028 ,source_data_key2
9029 ,source_data_key3
9030 ,source_data_key4
9031 ,source_data_key5
9032 ,REF_CUSTOMER_TRX_ID
9033 ,REF_CUSTOMER_TRX_LINE_ID
9034 ,REF_CUST_TRX_LINE_GL_DIST_ID
9035 ,REF_LINE_ID
9036 ,REF_DET_ID
9037 ,SOURCE_TYPE
9038 ,SOURCE_TABLE
9039 ,SOURCE_ID
9040 ,AMOUNT
9041 ,ACCTD_AMOUNT
9042 ,CCID
9043 ,BASE_CURRENCY
9044 ,FROM_CURRENCY
9045 ,TO_CURRENCY
9046 ,ref_account_class
9047 ,activity_bucket
9048 ,CREATION_DATE
9049 ,CREATED_BY
9050 ,LAST_UPDATED_BY
9051 ,LAST_UPDATE_DATE
9052 ,LAST_UPDATE_LOGIN
9053 ,gt_id
9054 ,tax_link_id
9055 ,tax_inc_flag
9056 , ledger_id
9057 , ref_mf_dist_flag
9058 , org_id
9059 , tax_code_id
9060 , location_segment_id
9061 )
9062 SELECT /*+INDEX (A ra_ar_n1)*/
9063 NULL --ra_ar_s.NEXTVAL,
9064 ,p_app_level
9065 ,group_id
9066 ,source_data_key1
9067 ,source_data_key2
9068 ,source_data_key3
9069 ,source_data_key4
9070 ,source_data_key5
9071 ,REF_CUSTOMER_TRX_ID
9072 ,DECODE(b.act,'RAADJLINE' , DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-6,REF_CUSTOMER_TRX_LINE_ID),
9073 'RAADJFREIGHT', DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-9,REF_CUSTOMER_TRX_LINE_ID),
9074 'RAADJTAX' , DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-8,REF_CUSTOMER_TRX_LINE_ID),
9075 'RAADJCHARGES', DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-7,REF_CUSTOMER_TRX_LINE_ID),
9076 REF_CUSTOMER_TRX_LINE_ID)
9077 ,REF_CUST_TRX_LINE_GL_DIST_ID
9078 ,REF_LINE_ID
9079 ,REF_DET_ID
9080 ,source_type
9081 ,source_table
9082 ,source_id
9083 ,DECODE(b.act,'RAADJLINE' , tl_alloc_amt,
9084 'RAADJFREIGHT', tl_frt_alloc_amt,
9085 'RAADJTAX' , tl_tax_alloc_amt,
9086 'RAADJCHARGES', tl_chrg_alloc_amt,
9087 'EDLINE' , tl_ed_alloc_amt,
9088 'EDFREIGHT' , tl_ed_frt_alloc_amt,
9089 'EDTAX' , tl_ed_tax_alloc_amt,
9090 'EDCHARGES' , tl_ed_chrg_alloc_amt,
9091 'UNEDLINE' , tl_uned_alloc_amt,
9092 'UNEDFREIGHT' , tl_uned_frt_alloc_amt,
9093 'UNEDTAX' , tl_uned_tax_alloc_amt,
9094 'UNEDCHARGES' , tl_uned_chrg_alloc_amt)
9095 --acctd_alloc
9096 ,DECODE(b.act,'RAADJLINE' , tl_alloc_acctd_amt,
9097 'RAADJFREIGHT', tl_frt_alloc_acctd_amt,
9098 'RAADJTAX' , tl_tax_alloc_acctd_amt,
9099 'RAADJCHARGES', tl_chrg_alloc_acctd_amt,
9100 'EDLINE' , tl_ed_alloc_acctd_amt,
9101 'EDFREIGHT' , tl_ed_frt_alloc_acctd_amt,
9102 'EDTAX' , tl_ed_tax_alloc_acctd_amt,
9103 'EDCHARGES' , tl_ed_chrg_alloc_acctd_amt,
9104 'UNEDLINE' , tl_uned_alloc_acctd_amt,
9105 'UNEDFREIGHT' , tl_uned_frt_alloc_acctd_amt,
9106 'UNEDTAX' , tl_uned_tax_alloc_acctd_amt,
9107 'UNEDCHARGES' , tl_uned_chrg_alloc_acctd_amt)
9108 ,CCID_SECONDARY
9109 ,BASE_CURRENCY
9110 ,FROM_CURRENCY
9111 ,TO_CURRENCY
9112 --Account_class
9113 ,DECODE(b.act,
9114 'RAADJLINE' , DECODE(ACCOUNT_CLASS, 'INVOICE','REV',ACCOUNT_CLASS),
9115 'RAADJFREIGHT', DECODE(ACCOUNT_CLASS, 'INVOICE','FREIGHT',ACCOUNT_CLASS),
9116 'RAADJTAX' , DECODE(ACCOUNT_CLASS, 'INVOICE','TAX',ACCOUNT_CLASS),
9117 'RAADJCHARGES', DECODE(ACCOUNT_CLASS, 'INVOICE','CHARGES',ACCOUNT_CLASS),
9118 ACCOUNT_CLASS)
9119 --Activity Bucket
9120 ,DECODE(b.act,
9121 'RAADJLINE' , DECODE(p_pay_adj,'APP','APP_LINE','ADJ','ADJ_LINE',''),
9122 'RAADJFREIGHT', DECODE(p_pay_adj,'APP','APP_FRT','ADJ','ADJ_FRT',''),
9123 'RAADJTAX' , DECODE(p_pay_adj,'APP','APP_TAX','ADJ','ADJ_TAX',''),
9124 'RAADJCHARGES', DECODE(p_pay_adj,'APP','APP_CHRG','ADJ','ADJ_CHRG',''),
9125 'EDLINE' , 'ED_LINE',
9126 'EDFREIGHT' , 'ED_FRT',
9127 'EDTAX' , 'ED_TAX',
9128 'EDCHARGES' , 'ED_CHRG',
9129 'UNEDLINE' , 'UNED_LINE',
9130 'UNEDFREIGHT' , 'UNED_FRT',
9131 'UNEDTAX' , 'UNED_TAX',
9132 'UNEDCHARGES' , 'UNED_CHRG')
9133 ,SYSDATE
9134 ,1
9135 ,1
9136 ,SYSDATE
9137 ,1
9138 ,gt_id
9139 ,tax_link_id
9140 ,tax_inc_flag
9141 , p_ae_sys_rec.set_of_books_id
9142 , ref_mf_dist_flag
9143 , g_org_id
9144 , tax_code_id
9145 , location_segment_id
9146 FROM RA_AR_GT a,
9147 (SELECT DECODE(ROWNUM,1, 'RAADJLINE',
9148 2,'RAADJFREIGHT',
9149 3,'RAADJTAX',
9150 4,'RAADJCHARGES',
9151 5,'EDLINE',
9152 6,'EDFREIGHT',
9153 7,'EDTAX',
9154 8,'EDCHARGES',
9155 9,'UNEDLINE',
9156 10,'UNEDFREIGHT',
9157 11,'UNEDTAX',
9158 12,'UNEDCHARGES',NULL) act
9159 FROM DUAL CONNECT BY ROWNUM < 13 ) b
9160 WHERE REF_CUSTOMER_TRX_ID = p_customer_trx_id
9161 AND gt_id = p_gt_id
9162 AND REF_CUST_TRX_LINE_GL_DIST_ID IS NOT NULL
9163 AND gp_level = 'D'
9164 AND set_of_books_id = p_ae_sys_rec.set_of_books_id
9165 AND (sob_type = p_ae_sys_rec.sob_type OR
9166 (sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
9167 AND (( NVL(DECODE(b.act,
9168 'RAADJLINE' , tl_alloc_amt,
9169 'RAADJFREIGHT', tl_frt_alloc_amt,
9170 'RAADJTAX' , tl_tax_alloc_amt,
9171 'RAADJCHARGES', tl_chrg_alloc_amt,
9172 'EDLINE' , tl_ed_alloc_amt,
9173 'EDFREIGHT' , tl_ed_frt_alloc_amt,
9174 'EDTAX' , tl_ed_tax_alloc_amt,
9175 'EDCHARGES' , tl_ed_chrg_alloc_amt,
9176 'UNEDLINE' , tl_uned_alloc_amt,
9177 'UNEDFREIGHT' , tl_uned_frt_alloc_amt,
9178 'UNEDTAX' , tl_uned_tax_alloc_amt,
9179 'UNEDCHARGES' , tl_uned_chrg_alloc_amt),0)<> 0)
9180 OR
9181 ( NVL(DECODE(p_pay_adj||line_type,'ADJTAX', DECODE(b.act,'RAADJTAX',abs(amt)+abs(tl_tax_alloc_amt)),
9182 'APPTAX', DECODE(b.act, 'RAADJTAX',abs(amt)+abs(tl_tax_alloc_amt),
9183 'EDTAX',decode(g_ed_req,'Y',decode(abs(amt)+abs(tl_tax_alloc_amt),0,tl_ed_tax_alloc_amt,1),1),
9184 'UNEDTAX',decode(g_uned_req,'Y',decode(abs(amt)+abs(tl_tax_alloc_amt),0,tl_uned_tax_alloc_amt,1),1))),1)=0)
9185 OR
9186 ( NVL(DECODE(b.act,
9187 'RAADJLINE' , tl_alloc_acctd_amt,
9188 'RAADJFREIGHT', tl_frt_alloc_acctd_amt,
9189 'RAADJTAX' , tl_tax_alloc_acctd_amt,
9190 'RAADJCHARGES', tl_chrg_alloc_acctd_amt,
9191 'EDLINE' , tl_ed_alloc_acctd_amt,
9192 'EDFREIGHT' , tl_ed_frt_alloc_acctd_amt,
9193 'EDTAX' , tl_ed_tax_alloc_acctd_amt,
9194 'EDCHARGES' , tl_ed_chrg_alloc_acctd_amt,
9195 'UNEDLINE' , tl_uned_alloc_acctd_amt,
9196 'UNEDFREIGHT' , tl_uned_frt_alloc_acctd_amt,
9197 'UNEDTAX' , tl_uned_tax_alloc_acctd_amt,
9198 'UNEDCHARGES' , tl_uned_chrg_alloc_acctd_amt),0)<>0)
9199 OR
9200 ( NVL(DECODE(p_pay_adj||line_type,'ADJTAX', DECODE(b.act,'RAADJTAX',abs(acctd_amt)+abs(tl_tax_alloc_acctd_amt)),
9201 'APPTAX', DECODE(b.act,'RAADJTAX',abs(acctd_amt)+abs(tl_tax_alloc_acctd_amt),
9202 'EDTAX',decode(g_ed_req,'Y',decode(abs(acctd_amt)+abs(tl_tax_alloc_acctd_amt),0,tl_ed_tax_alloc_acctd_amt,1),1),
9203 'UNEDTAX',decode(g_uned_req,'Y',decode(abs(acctd_amt)+abs(tl_tax_alloc_acctd_amt),0,tl_uned_tax_alloc_acctd_amt,1),1))),1)=0));
9204
9205 -- l_rows := sql%rowcount;
9206 -- localdebug(' rows inserted = ' || l_rows);
9207 ELSE
9208 INSERT INTO AR_LINE_APP_DETAIL_GT
9209 ( DET_ID ,
9210 APP_LEVEL ,
9211 GROUP_ID ,
9212 source_data_key1 ,
9213 source_data_key2 ,
9214 source_data_key3 ,
9215 source_data_key4 ,
9216 source_data_key5 ,
9217 REF_CUSTOMER_TRX_ID ,
9218 REF_CUSTOMER_TRX_LINE_ID ,
9219 REF_CUST_TRX_LINE_GL_DIST_ID ,
9220 REF_LINE_ID ,
9221 REF_DET_ID ,
9222 SOURCE_TYPE ,
9223 SOURCE_TABLE ,
9224 SOURCE_ID ,
9225 AMOUNT ,
9226 ACCTD_AMOUNT ,
9227 CCID ,
9228 BASE_CURRENCY ,
9229 FROM_CURRENCY ,
9230 TO_CURRENCY ,
9231 ref_account_class ,
9232 activity_bucket ,
9233 CREATION_DATE ,
9234 CREATED_BY ,
9235 LAST_UPDATED_BY ,
9236 LAST_UPDATE_DATE ,
9237 LAST_UPDATE_LOGIN ,
9238 gt_id ,
9239 tax_link_id,
9240 tax_inc_flag,
9241 ledger_id,
9242 ref_mf_dist_flag,
9243 org_id,
9244 tax_code_id,
9245 location_segment_id
9246 )
9247 SELECT /*+INDEX (A RA_ar_n1)*/
9248 NULL, --ra_ar_s.NEXTVAL,
9249 p_app_level ,
9250 group_id ,
9251 source_data_key1 ,
9252 source_data_key2 ,
9253 source_data_key3 ,
9254 source_data_key4 ,
9255 source_data_key5 ,
9256 REF_CUSTOMER_TRX_ID ,
9257 DECODE(b.act,'RAADJLINE' , DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-6,REF_CUSTOMER_TRX_LINE_ID),
9258 'RAADJFREIGHT', DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-9,REF_CUSTOMER_TRX_LINE_ID),
9259 'RAADJTAX' , DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-8,REF_CUSTOMER_TRX_LINE_ID),
9260 'RAADJCHARGES', DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-7,REF_CUSTOMER_TRX_LINE_ID),
9261 REF_CUSTOMER_TRX_LINE_ID),
9262 REF_CUST_TRX_LINE_GL_DIST_ID,
9263 REF_LINE_ID ,
9264 REF_DET_ID ,
9265 source_type ,
9266 source_table ,
9267 source_id ,
9268 DECODE(b.act,'RAADJLINE' , tl_alloc_amt,
9269 'RAADJFREIGHT', tl_frt_alloc_amt,
9270 'RAADJTAX' , tl_tax_alloc_amt,
9271 'RAADJCHARGES', tl_chrg_alloc_amt,
9272 'EDLINE' , tl_ed_alloc_amt,
9273 'EDFREIGHT' , tl_ed_frt_alloc_amt,
9274 'EDTAX' , tl_ed_tax_alloc_amt,
9275 'EDCHARGES' , tl_ed_chrg_alloc_amt,
9276 'UNEDLINE' , tl_uned_alloc_amt,
9277 'UNEDFREIGHT' , tl_uned_frt_alloc_amt,
9278 'UNEDTAX' , tl_uned_tax_alloc_amt,
9279 'UNEDCHARGES' , tl_uned_chrg_alloc_amt),
9280 --acctd_alloc
9281 DECODE(b.act,'RAADJLINE' , tl_alloc_acctd_amt,
9282 'RAADJFREIGHT', tl_frt_alloc_acctd_amt,
9283 'RAADJTAX' , tl_tax_alloc_acctd_amt,
9284 'RAADJCHARGES', tl_chrg_alloc_acctd_amt,
9285 'EDLINE' , tl_ed_alloc_acctd_amt,
9286 'EDFREIGHT' , tl_ed_frt_alloc_acctd_amt,
9287 'EDTAX' , tl_ed_tax_alloc_acctd_amt,
9288 'EDCHARGES' , tl_ed_chrg_alloc_acctd_amt,
9289 'UNEDLINE' , tl_uned_alloc_acctd_amt,
9290 'UNEDFREIGHT' , tl_uned_frt_alloc_acctd_amt,
9291 'UNEDTAX' , tl_uned_tax_alloc_acctd_amt,
9292 'UNEDCHARGES' , tl_uned_chrg_alloc_acctd_amt),
9293 CCID_SECONDARY,
9294 BASE_CURRENCY,
9295 FROM_CURRENCY,
9296 TO_CURRENCY,
9297 --Account_class
9298 DECODE(b.act,
9299 'RAADJLINE' , DECODE(ACCOUNT_CLASS, 'INVOICE','REV',ACCOUNT_CLASS),
9300 'RAADJFREIGHT', DECODE(ACCOUNT_CLASS, 'INVOICE','FREIGHT',ACCOUNT_CLASS),
9301 'RAADJTAX' , DECODE(ACCOUNT_CLASS, 'INVOICE','TAX',ACCOUNT_CLASS),
9302 'RAADJCHARGES', DECODE(ACCOUNT_CLASS, 'INVOICE','CHARGES',ACCOUNT_CLASS),
9303 ACCOUNT_CLASS),
9304 --Activity Bucket
9305 DECODE(b.act,
9306 'RAADJLINE' , DECODE(p_pay_adj,'APP','APP_LINE','ADJ','ADJ_LINE',''),
9307 'RAADJFREIGHT', DECODE(p_pay_adj,'APP','APP_FRT','ADJ','ADJ_FRT',''),
9308 'RAADJTAX' , DECODE(p_pay_adj,'APP','APP_TAX','ADJ','ADJ_TAX',''),
9309 'RAADJCHARGES', DECODE(p_pay_adj,'APP','APP_CHRG','ADJ','ADJ_CHRG',''),
9310 'EDLINE' , 'ED_LINE',
9311 'EDFREIGHT' , 'ED_FRT',
9312 'EDTAX' , 'ED_TAX',
9313 'EDCHARGES' , 'ED_CHRG',
9314 'UNEDLINE' , 'UNED_LINE',
9315 'UNEDFREIGHT' , 'UNED_FRT',
9316 'UNEDTAX' , 'UNED_TAX',
9317 'UNEDCHARGES' , 'UNED_CHRG'),
9318 SYSDATE,
9319 arp_standard.profile.user_id,
9320 arp_standard.profile.user_id,
9321 SYSDATE,
9322 arp_standard.profile.last_update_login,
9323 gt_id,
9324 tax_link_id,
9325 tax_inc_flag,
9326 p_ae_sys_rec.set_of_books_id,
9327 ref_mf_dist_flag,
9328 arp_standard.sysparm.org_id,
9329 tax_code_id,
9330 location_segment_id
9331 FROM RA_AR_GT a,
9332 (SELECT DECODE(ROWNUM,1, 'RAADJLINE',
9333 2,'RAADJFREIGHT',
9334 3,'RAADJTAX',
9335 4,'RAADJCHARGES',
9336 5,'EDLINE',
9337 6,'EDFREIGHT',
9338 7,'EDTAX',
9339 8,'EDCHARGES',
9340 9,'UNEDLINE',
9341 10,'UNEDFREIGHT',
9342 11,'UNEDTAX',
9343 12,'UNEDCHARGES',NULL) act
9344 FROM DUAL CONNECT BY ROWNUM < 13 ) b
9345 WHERE REF_CUSTOMER_TRX_ID = p_customer_trx_id
9346 AND gt_id = p_gt_id
9347 AND REF_CUST_TRX_LINE_GL_DIST_ID IS NOT NULL
9348 AND gp_level = 'D'
9349 AND set_of_books_id = p_ae_sys_rec.set_of_books_id
9350 AND (sob_type = p_ae_sys_rec.sob_type OR
9351 (sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
9352 AND (( NVL(DECODE(b.act,
9353 'RAADJLINE' , tl_alloc_amt,
9354 'RAADJFREIGHT', tl_frt_alloc_amt,
9355 'RAADJTAX' , tl_tax_alloc_amt,
9356 'RAADJCHARGES', tl_chrg_alloc_amt,
9357 'EDLINE' , tl_ed_alloc_amt,
9358 'EDFREIGHT' , tl_ed_frt_alloc_amt,
9359 'EDTAX' , tl_ed_tax_alloc_amt,
9360 'EDCHARGES' , tl_ed_chrg_alloc_amt,
9361 'UNEDLINE' , tl_uned_alloc_amt,
9362 'UNEDFREIGHT' , tl_uned_frt_alloc_amt,
9363 'UNEDTAX' , tl_uned_tax_alloc_amt,
9364 'UNEDCHARGES' , tl_uned_chrg_alloc_amt),0)<> 0)
9365 OR
9366 ( NVL(DECODE(p_pay_adj||line_type,'ADJTAX', DECODE(b.act,'RAADJTAX',abs(amt)+abs(tl_tax_alloc_amt)),
9367 'APPTAX', DECODE(b.act, 'RAADJTAX',abs(amt)+abs(tl_tax_alloc_amt),
9368 'EDTAX',decode(g_ed_req,'Y',decode(abs(amt)+abs(tl_tax_alloc_amt),0,tl_ed_tax_alloc_amt,1),1),
9369 'UNEDTAX',decode(g_uned_req,'Y',decode(abs(amt)+abs(tl_tax_alloc_amt),0,tl_uned_tax_alloc_amt,1),1))),1)=0)
9370 OR
9371 ( NVL(DECODE(b.act,
9372 'RAADJLINE' , tl_alloc_acctd_amt,
9373 'RAADJFREIGHT', tl_frt_alloc_acctd_amt,
9374 'RAADJTAX' , tl_tax_alloc_acctd_amt,
9375 'RAADJCHARGES', tl_chrg_alloc_acctd_amt,
9376 'EDLINE' , tl_ed_alloc_acctd_amt,
9377 'EDFREIGHT' , tl_ed_frt_alloc_acctd_amt,
9378 'EDTAX' , tl_ed_tax_alloc_acctd_amt,
9379 'EDCHARGES' , tl_ed_chrg_alloc_acctd_amt,
9380 'UNEDLINE' , tl_uned_alloc_acctd_amt,
9381 'UNEDFREIGHT' , tl_uned_frt_alloc_acctd_amt,
9382 'UNEDTAX' , tl_uned_tax_alloc_acctd_amt,
9383 'UNEDCHARGES' , tl_uned_chrg_alloc_acctd_amt),0)<>0)
9384 OR
9385 ( NVL(DECODE(p_pay_adj||line_type,'ADJTAX', DECODE(b.act,'RAADJTAX',abs(acctd_amt)+abs(tl_tax_alloc_acctd_amt)),
9386 'APPTAX', DECODE(b.act, 'RAADJTAX',abs(acctd_amt)+abs(tl_tax_alloc_acctd_amt),
9387 'EDTAX',decode(g_ed_req,'Y',decode(abs(acctd_amt)+abs(tl_tax_alloc_acctd_amt),0,tl_ed_tax_alloc_acctd_amt,1),1),
9388 'UNEDTAX',decode(g_uned_req,'Y',decode(abs(acctd_amt)+abs(tl_tax_alloc_acctd_amt),0,tl_uned_tax_alloc_acctd_amt,1),1))),1)=0));
9389
9390 l_rows := sql%rowcount;
9391 IF PG_DEBUG = 'Y' THEN
9392 localdebug(' rows inserted = ' || l_rows);
9393 END IF;
9394 END IF;
9395
9396 --{Taxable_amount
9397 /*update_taxable
9398 (p_gt_id => p_gt_id,
9399 p_customer_trx_id => p_customer_trx_id,
9400 p_ae_sys_rec => p_ae_sys_rec);*/
9401 --}
9402
9403 UPDATE /*+INDEX (APP_OUT AR_LINE_APP_DETAIL_GT_N1) */
9404 AR_LINE_APP_DETAIL_GT app_out
9405 SET (taxable_amount, taxable_acctd_amount)
9406 =
9407 (SELECT /*+INDEX (APP_IN AR_LINE_APP_DETAIL_GT_N1) */
9408 DECODE(app_out.activity_bucket, 'APP_TAX',
9409 SUM(DECODE(activity_bucket,'APP_LINE',amount,
9410 'ADJ_LINE',amount,
9411 'APP_CHRG',amount,
9412 'ADJ_CHRG',amount,
9413 'APP_FRT' ,amount,
9414 'ADJ_FRT' ,amount, 0)),
9415 'ADJ_TAX',
9416 SUM(DECODE(activity_bucket,'APP_LINE',amount,
9417 'ADJ_LINE',amount,
9418 'APP_CHRG',amount,
9419 'ADJ_CHRG',amount,
9420 'APP_FRT' ,amount,
9421 'ADJ_FRT' ,amount, 0)),
9422 'ED_TAX',
9423 SUM(DECODE(activity_bucket,'ED_LINE',amount,
9424 'ED_CHRG',amount,
9425 'ED_FRT' ,amount, 0)),
9426 'UNED_TAX',
9427 SUM(DECODE(activity_bucket,'UNED_LINE',amount,
9428 'UNED_CHRG',amount,
9429 'UNED_FRT' ,amount, 0)),0) taxable_amount,
9430 DECODE(app_out.activity_bucket, 'APP_TAX',
9431 SUM(DECODE(activity_bucket,'APP_LINE',acctd_amount,
9432 'ADJ_LINE',acctd_amount,
9433 'APP_CHRG',acctd_amount,
9434 'ADJ_CHRG',acctd_amount,
9435 'APP_FRT' ,acctd_amount,
9436 'ADJ_FRT' ,acctd_amount, 0)),
9437 'ADJ_TAX',
9438 SUM(DECODE(activity_bucket,'APP_LINE',acctd_amount,
9439 'ADJ_LINE',acctd_amount,
9440 'APP_CHRG',acctd_amount,
9441 'ADJ_CHRG',acctd_amount,
9442 'APP_FRT' ,acctd_amount,
9443 'ADJ_FRT' ,acctd_amount, 0)),
9444 'ED_TAX',
9445 SUM(DECODE(activity_bucket,'ED_LINE',acctd_amount,
9446 'ED_CHRG',acctd_amount,
9447 'ED_FRT' ,acctd_amount, 0)),
9448 'UNED_TAX',
9449 SUM(DECODE(activity_bucket,'UNED_LINE',acctd_amount,
9450 'UNED_CHRG',acctd_amount,
9451 'UNED_FRT' ,acctd_amount, 0)),0) taxable_acctd_amount
9452 FROM AR_LINE_APP_DETAIL_GT app_in
9453 WHERE gt_id = p_gt_id
9454 AND ref_customer_trx_id = p_customer_trx_id
9455 AND tax_link_id IS NOT NULL
9456 AND tax_link_id = app_out.tax_link_id)
9457 WHERE gt_id = p_gt_id
9458 AND ref_customer_trx_id = p_customer_trx_id
9459 AND tax_link_id IS NOT NULL
9460 AND DECODE(ref_account_class,'REV',tax_inc_flag,
9461 'FREIGHT',tax_inc_flag,
9462 'TAX','Y','N') = 'Y';
9463
9464 IF PG_DEBUG = 'Y' THEN
9465 localdebug('arp_det_dist_pkg.create_split_distribution()-');
9466 END IF;
9467 EXCEPTION
9468 WHEN OTHERS THEN
9469 IF PG_DEBUG = 'Y' THEN
9470 localdebug(' EXCEPTION OTHERS : create_split_distribution :'||SQLERRM);
9471 END IF;
9472 END create_split_distribution;
9473
9474
9475 PROCEDURE set_original_rem_amt_r12
9476 (p_customer_trx IN ra_customer_trx%ROWTYPE,
9477 x_return_status IN OUT NOCOPY VARCHAR2,
9478 x_msg_count IN OUT NOCOPY NUMBER,
9479 x_msg_data IN OUT NOCOPY VARCHAR2,
9480 p_from_llca IN VARCHAR2 DEFAULT 'N')
9481 IS
9482 CURSOR c(p_customer_trx_id IN NUMBER) IS
9483 SELECT SUM(AMOUNT),
9484 SUM(ACCTD_AMOUNT),
9485 customer_trx_line_id
9486 FROM ra_cust_trx_line_gl_dist
9487 WHERE customer_trx_id = p_customer_trx_id
9488 GROUP BY customer_trx_line_id;
9489
9490 l_amt_tab DBMS_SQL.NUMBER_TABLE;
9491 l_acctd_amt_tab DBMS_SQL.NUMBER_TABLE;
9492 l_ctl_tab DBMS_SQL.NUMBER_TABLE;
9493 l_last_fetch BOOLEAN := FALSE;
9494 l_found VARCHAR2(1) := 'N';
9495 l_trx_type VARCHAR2(30);
9496 l_c c%ROWTYPE;
9497 no_a_valid_trx EXCEPTION;
9498
9499 BEGIN
9500 IF PG_DEBUG = 'Y' THEN
9501 localdebug('arp_det_dist_pkg.set_original_rem_amt_r12()+');
9502 localdebug(' p_customer_trx.customer_trx_id:'||p_customer_trx.customer_trx_id);
9503 END IF;
9504 OPEN c(p_customer_trx.customer_trx_id);
9505 LOOP
9506 FETCH c BULK COLLECT INTO l_amt_tab,
9507 l_acctd_amt_tab,
9508 l_ctl_tab
9509 LIMIT g_bulk_fetch_rows;
9510
9511 IF c%NOTFOUND THEN
9512 l_last_fetch := TRUE;
9513 END IF;
9514
9515 IF (l_ctl_tab.COUNT = 0) AND (l_last_fetch) THEN
9516 IF PG_DEBUG = 'Y' THEN
9517 localdebug(' COUNT = 0 and LAST FETCH ');
9518 END IF;
9519 EXIT;
9520 END IF;
9521 l_found := 'Y';
9522
9523 IF PG_DEBUG = 'Y' THEN
9524 localdebug(' Setting the Original and Remaining amounts R12');
9525 END IF;
9526
9527 FORALL i IN l_ctl_tab.FIRST .. l_ctl_tab.LAST
9528 UPDATE ra_customer_trx_lines
9529 SET AMOUNT_DUE_REMAINING = l_amt_tab(i),
9530 ACCTD_AMOUNT_DUE_REMAINING = l_acctd_amt_tab(i),
9531 AMOUNT_DUE_ORIGINAL = l_amt_tab(i),
9532 ACCTD_AMOUNT_DUE_ORIGINAL = l_acctd_amt_tab(i),
9533 CHRG_AMOUNT_REMAINING = 0,
9534 CHRG_ACCTD_AMOUNT_REMAINING = 0,
9535 FRT_ADJ_REMAINING = 0,
9536 FRT_ADJ_ACCTD_REMAINING = 0,
9537 FRT_ED_AMOUNT = 0,
9538 FRT_ED_ACCTD_AMOUNT = 0,
9539 FRT_UNED_AMOUNT = 0,
9540 FRT_UNED_ACCTD_AMOUNT = 0
9541 WHERE customer_trx_line_id = l_ctl_tab(i);
9542 END LOOP;
9543 CLOSE c;
9544
9545 IF l_found = 'N' THEN
9546 RAISE no_a_valid_trx;
9547 END IF;
9548
9549 IF PG_DEBUG = 'Y' THEN
9550 localdebug('Setting transaction.upgrade_method to R12' );
9551 END IF;
9552 UPDATE ra_customer_trx SET upgrade_method = 'R12'
9553 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
9554
9555 IF PG_DEBUG = 'Y' THEN
9556 localdebug('arp_det_dist_pkg.set_original_rem_amt_r12()-');
9557 END IF;
9558
9559 EXCEPTION
9560 WHEN no_a_valid_trx THEN
9561 IF c%ISOPEN THEN CLOSE c; END IF;
9562 IF PG_DEBUG = 'Y' THEN
9563 localdebug('EXCEPTION no_a_valid_trx :'||p_customer_trx.customer_trx_id);
9564 END IF;
9565 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9566 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR' );
9567 FND_MESSAGE.SET_TOKEN( 'TEXT', 'EXCEPTION Not a Valid Trx ID');
9568 FND_MSG_PUB.ADD;
9569 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
9570 p_count => x_msg_count,
9571 p_data => x_msg_data);
9572 WHEN OTHERS THEN
9573 IF c%ISOPEN THEN CLOSE c; END IF;
9574 IF PG_DEBUG = 'Y' THEN
9575 localdebug('EXCEPTION OTHERS in set_original_rem_amt_r12 :'||SQLERRM);
9576 END IF;
9577 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
9578 x_msg_data := 'EXCEPTION OTHERS in set_original_rem_amt_r12 :'||SQLERRM;
9579 END set_original_rem_amt_r12;
9580
9581
9582
9583 PROCEDURE set_original_rem_amt_mfar
9584 (p_customer_trx IN ra_customer_trx%ROWTYPE)
9585 IS
9586 CURSOR cmfar(p_customer_trx_id IN NUMBER) IS
9587 SELECT SUM(NVL(amount_due_remaining,0)) sum_due_rem,
9588 SUM(NVL(amount_due_original,0)) sum_due_orig,
9589 customer_trx_line_id customer_trx_line_id
9590 FROM psa_mf_balances_view
9591 WHERE customer_trx_id = p_customer_trx_id
9592 GROUP BY customer_trx_line_id;
9593 l_rem_amt_tab DBMS_SQL.NUMBER_TABLE;
9594 l_orig_amt_tab DBMS_SQL.NUMBER_TABLE;
9595 l_ctl_tab DBMS_SQL.NUMBER_TABLE;
9596 l_last_fetch BOOLEAN := FALSE;
9597 l_found VARCHAR2(1);
9598 BEGIN
9599 IF PG_DEBUG = 'Y' THEN
9600 localdebug('arp_det_dist_pkg.set_original_rem_amt_mfar()+');
9601 localdebug(' p_customer_trx.customer_trx_id:'||p_customer_trx.customer_trx_id);
9602 END IF;
9603
9604 OPEN cmfar(p_customer_trx.customer_trx_id);
9605 LOOP
9606 FETCH cmfar BULK COLLECT INTO l_rem_amt_tab, --for mfar remaining
9607 l_orig_amt_tab, --for mfar original
9608 l_ctl_tab
9609 LIMIT g_bulk_fetch_rows;
9610
9611 IF cmfar%NOTFOUND THEN
9612 l_last_fetch := TRUE;
9613 END IF;
9614
9615 IF (l_ctl_tab.COUNT = 0) AND (l_last_fetch) THEN
9616 IF PG_DEBUG = 'Y' THEN
9617 localdebug(' COUNT = 0 and LAST FETCH ');
9618 END IF;
9619 EXIT;
9620 END IF;
9621
9622 IF PG_DEBUG = 'Y' THEN
9623 localdebug(' Setting the Original and Remaining amounts MFAR');
9624 END IF;
9625
9626 FORALL i IN l_ctl_tab.FIRST .. l_ctl_tab.LAST
9627 UPDATE ra_customer_trx_lines
9628 SET AMOUNT_DUE_REMAINING = l_rem_amt_tab(i), -- Rem
9629 ACCTD_AMOUNT_DUE_REMAINING = l_rem_amt_tab(i), -- Rem transaction currency = functional
9630 AMOUNT_DUE_ORIGINAL = l_orig_amt_tab(i), -- original
9631 ACCTD_AMOUNT_DUE_ORIGINAL = l_orig_amt_tab(i), -- original
9632 CHRG_AMOUNT_REMAINING = 0,
9633 CHRG_ACCTD_AMOUNT_REMAINING = 0,
9634 FRT_ADJ_REMAINING = 0,
9635 FRT_ADJ_ACCTD_REMAINING = 0,
9636 FRT_ED_AMOUNT = 0,
9637 FRT_ED_ACCTD_AMOUNT = 0,
9638 FRT_UNED_AMOUNT = 0,
9639 FRT_UNED_ACCTD_AMOUNT = 0
9640 WHERE customer_trx_line_id = l_ctl_tab(i);
9641
9642 END LOOP;
9643 CLOSE cmfar;
9644
9645 IF PG_DEBUG = 'Y' THEN
9646 localdebug('arp_det_dist_pkg.set_original_rem_amt_mfar()-');
9647 END IF;
9648 EXCEPTION
9649 WHEN OTHERS THEN
9650 IF cmfar%ISOPEN THEN CLOSE cmfar; END IF;
9651 IF PG_DEBUG = 'Y' THEN
9652 localdebug(' EXCEPTION OTHERS in set_original_rem_amt_mfar :'||SQLERRM);
9653 END IF;
9654 END set_original_rem_amt_mfar;
9655
9656
9657
9658 PROCEDURE re_calcul_rem_amt(p_customer_trx IN ra_customer_trx%ROWTYPE)
9659 IS
9660
9661 /*bug6133206, multiplied APP amounts with '-1' to make them negative,
9662 for calculating the remaining amounts. */
9663
9664 CURSOR cu_rem_amt(p_customer_trx_id IN NUMBER) IS
9665 SELECT b.sum_orig sum_orig
9666 ,b.sum_acctd_orig sum_acctd_orig
9667 ,SUM((DECODE(a.activity_bucket,'ADJ_CHRG',amt
9668 ,'APP_CHRG',DECODE(a.line_type,'LINE',amt,0) * -1,0))) CHRG_ON_REV_LINE
9669 ,SUM((DECODE(a.activity_bucket,'ADJ_CHRG',acctd_amt
9670 ,'APP_CHRG',DECODE(a.line_type,'LINE',acctd_amt,0) * -1,0))) ACCTD_CHRG_ON_REV_LINE
9671 ,SUM((DECODE(a.activity_bucket,'ADJ_FRT',amt
9672 ,'APP_FRT',DECODE(a.line_type,'LINE',amt,0) * -1,0))) FRT_ON_REV_LINE
9673 ,SUM((DECODE(a.activity_bucket,'ADJ_FRT',amt
9674 ,'APP_FRT',DECODE(a.line_type,'LINE',acctd_amt,0) * -1,0))) ACCTD_FRT_ON_REV_LINE
9675 ,SUM((DECODE(a.activity_bucket,'ED_FRT',amt,0))) ED_FRT_REV_LINE
9676 ,SUM((DECODE(a.activity_bucket,'ED_FRT',acctd_amt,0))) ACCTD_ED_FRT_REV_LINE
9677 ,SUM((DECODE(a.activity_bucket,'UNED_FRT',amt,0))) UNED_FRT_REV_LINE
9678 ,SUM((DECODE(a.activity_bucket,'UNED_FRT',acctd_amt,0))) ACCTD_UNED_FRT_REV_LINE
9679 ,SUM((DECODE(a.activity_bucket,'ADJ_LINE',amt
9680 ,'APP_LINE',(amt * -1)
9681 ,'ED_LINE' ,amt
9682 ,'UNED_LINE',amt -- line
9683 ,'ADJ_TAX' ,amt
9684 ,'APP_TAX' ,(amt * -1)
9685 ,'ED_TAX' ,amt
9686 ,'UNED_TAX',amt --tax
9687 ,'APP_FRT' ,(DECODE(a.line_type,'FREIGHT',amt,0) * -1)
9688 ,'APP_CHRG',(DECODE(a.line_type,'CHARGES',amt,0) * -1)
9689 ,0))) REM_TYPE_LINE
9690 ,SUM((DECODE(a.activity_bucket,'ADJ_LINE',acctd_amt
9691 ,'APP_LINE',(acctd_amt * -1)
9692 ,'ED_LINE' ,acctd_amt
9693 ,'UNED_LINE',acctd_amt -- line
9694 ,'ADJ_TAX' ,acctd_amt
9695 ,'APP_TAX' ,(acctd_amt * -1)
9696 ,'ED_TAX' ,acctd_amt
9697 ,'UNED_TAX',acctd_amt --tax
9698 ,'APP_FRT' ,(DECODE(a.line_type,'FREIGHT',acctd_amt,0) * -1)
9699 ,'APP_CHRG',(DECODE(a.line_type,'CHARGES',acctd_amt,0) * -1)
9700 ,0))) ACCTD_REM_TYPE_LINE
9701 ,b.customer_trx_line_id CUSTOMER_TRX_LINE_ID
9702 FROM
9703 (SELECT SUM( NVL(ard.amount_cr,0) - NVL(ard.amount_dr,0) ) amt,
9704 SUM( NVL(ard.acctd_amount_cr,0) - NVL(ard.acctd_amount_dr,0)) acctd_amt,
9705 ard.ref_customer_trx_line_id,
9706 ard.ref_account_class,
9707 ard.activity_bucket,
9708 ctl.line_type
9709 FROM ar_distributions ard,
9710 ra_customer_trx_lines ctl
9711 WHERE ctl.customer_trx_id = p_customer_trx_id
9712 AND ctl.customer_trx_line_id = ard.ref_customer_trx_line_id
9713 GROUP BY
9714 ard.ref_customer_trx_line_id,
9715 ard.ref_account_class,
9716 ard.activity_bucket,
9717 ctl.line_type) a,
9718 (SELECT SUM(AMOUNT) sum_orig,
9719 SUM(ACCTD_AMOUNT) sum_acctd_orig,
9720 customer_trx_line_id
9721 FROM ra_cust_trx_line_gl_dist
9722 WHERE customer_trx_id = p_customer_trx_id
9723 GROUP BY customer_trx_line_id) b
9724 WHERE a.ref_customer_trx_line_id (+) = b.customer_trx_line_id
9725 GROUP BY b.customer_trx_line_id,
9726 b.sum_orig,
9727 b.sum_acctd_orig;
9728
9729 l_sum_orig DBMS_SQL.NUMBER_TABLE;
9730 l_sum_acctd_orig DBMS_SQL.NUMBER_TABLE;
9731 l_CHRG_ON_REV_LINE DBMS_SQL.NUMBER_TABLE;
9732 l_ACCTD_CHRG_ON_REV_LINE DBMS_SQL.NUMBER_TABLE;
9733 l_FRT_ON_REV_LINE DBMS_SQL.NUMBER_TABLE;
9734 l_ACCTD_FRT_ON_REV_LINE DBMS_SQL.NUMBER_TABLE;
9735 l_ED_FRT_REV_LINE DBMS_SQL.NUMBER_TABLE;
9736 l_ACCTD_ED_FRT_REV_LINE DBMS_SQL.NUMBER_TABLE;
9737 l_UNED_FRT_REV_LINE DBMS_SQL.NUMBER_TABLE;
9738 l_ACCTD_UNED_FRT_REV_LINE DBMS_SQL.NUMBER_TABLE;
9739 l_REM_TYPE_LINE DBMS_SQL.VARCHAR2_TABLE;
9740 l_ACCTD_REM_TYPE_LINE DBMS_SQL.NUMBER_TABLE;
9741 l_CUSTOMER_TRX_LINE_ID DBMS_SQL.NUMBER_TABLE;
9742
9743 l_last_fetch BOOLEAN := FALSE;
9744
9745 BEGIN
9746 IF PG_DEBUG = 'Y' THEN
9747 localdebug('arp_det_dist_pkg.re_calcul_rem_amt()+');
9748 localdebug('p_customer_trx_id = ' || p_customer_trx.customer_trx_id);
9749 END IF;
9750 OPEN cu_rem_amt(p_customer_trx.customer_trx_id);
9751 LOOP
9752 FETCH cu_rem_amt BULK COLLECT INTO
9753 l_sum_orig ,
9754 l_sum_acctd_orig ,
9755 l_chrg_on_rev_line ,
9756 l_acctd_chrg_on_rev_line,
9757 l_frt_on_rev_line ,
9758 l_acctd_frt_on_rev_line ,
9759 l_ed_frt_rev_line ,
9760 l_acctd_ed_frt_rev_line ,
9761 l_uned_frt_rev_line ,
9762 l_acctd_uned_frt_rev_line,
9763 l_rem_type_line ,
9764 l_acctd_rem_type_line ,
9765 l_customer_trx_line_id
9766 LIMIT g_bulk_fetch_rows;
9767
9768 IF cu_rem_amt%NOTFOUND THEN
9769 l_last_fetch := TRUE;
9770 END IF;
9771
9772 IF (l_CUSTOMER_TRX_LINE_ID.COUNT = 0) AND (l_last_fetch) THEN
9773 IF PG_DEBUG = 'Y' THEN
9774 localdebug('COUNT = 0 and LAST FETCH ');
9775 END IF;
9776 EXIT;
9777 END IF;
9778
9779 FORALL i IN l_CUSTOMER_TRX_LINE_ID.FIRST .. l_CUSTOMER_TRX_LINE_ID.LAST
9780 UPDATE ra_customer_trx_lines
9781 SET amount_due_original = l_sum_orig(i),
9782 acctd_amount_due_original = l_sum_acctd_orig(i),
9783 AMOUNT_DUE_REMAINING = l_sum_orig(i) + l_REM_TYPE_LINE(i),
9784 ACCTD_AMOUNT_DUE_REMAINING = l_sum_acctd_orig(i) + l_ACCTD_REM_TYPE_LINE(i),
9785 CHRG_AMOUNT_REMAINING = l_chrg_on_rev_line(i),
9786 CHRG_ACCTD_AMOUNT_REMAINING = l_ACCTD_chrg_on_rev_line(i),
9787 FRT_ADJ_REMAINING = l_FRT_ON_REV_LINE(i),
9788 FRT_ADJ_ACCTD_REMAINING = l_ACCTD_FRT_ON_REV_LINE(i),
9789 frt_ed_amount = l_ED_FRT_REV_LINE(i),
9790 frt_ed_acctd_amount = l_ACCTD_ED_FRT_REV_LINE(i),
9791 frt_uned_amount = l_UNED_FRT_REV_LINE(i),
9792 frt_uned_acctd_amount = l_ACCTD_UNED_FRT_REV_LINE(i)
9793 WHERE customer_trx_line_id = l_CUSTOMER_TRX_LINE_ID(i)
9794 AND customer_trx_id = p_customer_trx.customer_trx_id;
9795 END LOOP;
9796 CLOSE cu_rem_amt;
9797 IF PG_DEBUG = 'Y' THEN
9798 localdebug('arp_det_dist_pkg.re_calcul_rem_amt()-');
9799 END IF;
9800 EXCEPTION
9801 WHEN OTHERS THEN
9802 IF PG_DEBUG = 'Y' THEN
9803 localdebug(' EXCEPTION OTHERS re_calcul_rem_amt :'|| SQLERRM);
9804 END IF;
9805 RAISE;
9806 END re_calcul_rem_amt;
9807
9808
9809 /* For AUTOINV call, Overloaded call*/
9810
9811 PROCEDURE set_original_rem_amt_r12(p_request_id IN NUMBER)
9812 AS
9813
9814 -- Get all invoices / debit memos which need balance stamping
9815 --
9816 CURSOR c01 IS
9817 SELECT
9818 SUM(gld.AMOUNT),
9819 SUM(gld.ACCTD_AMOUNT),
9820 gld.customer_trx_line_id,
9821 inv.customer_trx_id
9822 FROM
9823 ra_customer_trx inv,
9824 ra_cust_trx_line_gl_dist gld,
9825 ra_cust_trx_types ctt
9826 WHERE inv.customer_trx_id = gld.customer_trx_id
9827 AND ctt.CUST_TRX_TYPE_ID = inv.CUST_TRX_TYPE_ID
9828 AND inv.request_id = p_request_id
9829 AND ctt.TYPE in ('INV','DM')
9830 GROUP BY gld.customer_trx_line_id,inv.customer_trx_id;
9831
9832 CURSOR c02 IS
9833 SELECT
9834 customer_trx_id
9835 FROM
9836 ra_customer_trx inv,
9837 ra_cust_trx_types ctt
9838 WHERE request_id = P_request_id
9839 AND ctt.CUST_TRX_TYPE_ID = inv.CUST_TRX_TYPE_ID
9840 AND ctt.TYPE in ('INV','DM')
9841 AND EXISTS
9842 (SELECT 1
9843 FROM ar_receivable_applications ar
9844 WHERE ar.applied_customer_trx_id = inv.customer_trx_id
9845 UNION
9846 SELECT 1
9847 FROM ar_adjustments ad
9848 WHERE ad.customer_trx_id = inv.customer_trx_id
9849 );
9850
9851
9852
9853 l_amt_tab DBMS_SQL.NUMBER_TABLE;
9854 l_acctd_amt_tab DBMS_SQL.NUMBER_TABLE;
9855 l_ctl_tab DBMS_SQL.NUMBER_TABLE;
9856 l_ctl_hd_tab DBMS_SQL.NUMBER_TABLE;
9857 l_ctl_app_tab DBMS_SQL.NUMBER_TABLE;
9858 l_customer_trx ra_customer_trx%ROWTYPE;
9859 l_last_fetch BOOLEAN := FALSE;
9860
9861 l_msg RA_INTERFACE_ERRORS.MESSAGE_TEXT%TYPE;
9862 l_return_status VARCHAR2(100);
9863 l_msg_count NUMBER:=0;
9864 l_msg_data VARCHAR2(20000):= NULL;
9865
9866 BEGIN
9867
9868 IF PG_DEBUG = 'Y' THEN
9869 localdebug('arp_det_dist_pkg.set_original_rem_amt_r12() OVERLOAD +');
9870 END IF;
9871
9872
9873 OPEN c01;
9874 LOOP
9875 FETCH c01 BULK COLLECT INTO l_amt_tab,
9876 l_acctd_amt_tab,
9877 l_ctl_tab,
9878 l_ctl_hd_tab
9879 LIMIT g_bulk_fetch_rows;
9880
9881 IF c01%NOTFOUND THEN
9882 l_last_fetch := TRUE;
9883 END IF;
9884
9885 IF (l_ctl_tab.COUNT = 0) AND (l_last_fetch) THEN
9886 IF PG_DEBUG = 'Y' THEN
9887 localdebug(' COUNT = 0 and LAST FETCH ');
9888 END IF;
9889 EXIT;
9890 END IF;
9891
9892
9893 IF PG_DEBUG = 'Y' THEN
9894 localdebug(' Setting the Original R12');
9895 END IF;
9896 /*FORALL*/
9897 FOR i IN l_ctl_tab.FIRST .. l_ctl_tab.LAST
9898 LOOP
9899 BEGIN
9900 UPDATE ra_customer_trx_lines
9901 SET AMOUNT_DUE_REMAINING = l_amt_tab(i),
9902 ACCTD_AMOUNT_DUE_REMAINING = l_acctd_amt_tab(i),
9903 AMOUNT_DUE_ORIGINAL = l_amt_tab(i),
9904 ACCTD_AMOUNT_DUE_ORIGINAL = l_acctd_amt_tab(i),
9905 CHRG_AMOUNT_REMAINING = 0,
9906 CHRG_ACCTD_AMOUNT_REMAINING = 0,
9907 FRT_ADJ_REMAINING = 0,
9908 FRT_ADJ_ACCTD_REMAINING = 0,
9909 FRT_ED_AMOUNT = 0,
9910 FRT_ED_ACCTD_AMOUNT = 0,
9911 FRT_UNED_AMOUNT = 0,
9912 FRT_UNED_ACCTD_AMOUNT = 0
9913 WHERE customer_trx_line_id = l_ctl_tab(i);
9914 EXCEPTION
9915 WHEN OTHERS THEN
9916 IF PG_DEBUG in ('Y', 'C') THEN
9917 arp_standard.debug('Inserting into errors...');
9918 END IF;
9919
9920 IF c01%ISOPEN THEN CLOSE c01; END IF;
9921
9922 l_msg := 'Error while stamping the balance amt'||l_ctl_hd_tab(i);
9923
9924
9925 INSERT INTO ra_interface_errors
9926 (
9927 --org_id,
9928 interface_line_id,
9929 message_text
9930 )
9931 SELECT
9932 --org_id,
9933 customer_trx_line_id,
9934 l_msg
9935 FROM
9936 ra_customer_trx_lines lines
9937 WHERE
9938 lines.customer_trx_id = l_ctl_hd_tab(i);
9939 END;
9940 END LOOP;
9941
9942 END LOOP;
9943 CLOSE c01;
9944
9945
9946 IF PG_DEBUG = 'Y' THEN
9947 localdebug('Setting transaction.upgrade_method to R12' );
9948 END IF;
9949 UPDATE ra_customer_trx inv SET upgrade_method = 'R12'
9950 WHERE request_id = p_request_id
9951 AND EXISTS
9952 ( SELECT 1
9953 FROM ra_cust_trx_types ctt
9954 WHERE ctt.CUST_TRX_TYPE_ID = inv.CUST_TRX_TYPE_ID
9955 AND ctt.TYPE in ('INV','DM'))
9956 AND NOT EXISTS (
9957 SELECT 1
9958 FROM ra_customer_trx_lines l, ra_interface_errors e
9959 WHERE l.customer_trx_id = inv.customer_trx_id
9960 AND l.customer_trx_line_id = e.interface_line_id);
9961
9962 -- Setting the Original and Remaining amounts R12
9963 --
9964 l_last_fetch := FALSE;
9965
9966 OPEN c02;
9967 LOOP
9968 FETCH c02 BULK COLLECT INTO l_ctl_app_tab
9969 LIMIT g_bulk_fetch_rows;
9970
9971 IF c02%NOTFOUND THEN
9972 l_last_fetch := TRUE;
9973 END IF;
9974
9975 IF (l_ctl_app_tab.COUNT = 0) AND (l_last_fetch) THEN
9976 IF PG_DEBUG = 'Y' THEN
9977 localdebug(' COUNT = 0 and LAST FETCH ');
9978 END IF;
9979 EXIT;
9980 END IF;
9981
9982 IF PG_DEBUG = 'Y' THEN
9983 localdebug(' Setting the Original and Remaining amounts R12');
9984 END IF;
9985 FOR i IN l_ctl_app_tab.FIRST .. l_ctl_app_tab.LAST
9986 LOOP
9987 BEGIN
9988 l_customer_trx.customer_trx_id := l_ctl_app_tab(i);
9989 re_calcul_rem_amt(p_customer_trx => l_customer_trx);
9990
9991 EXCEPTION
9992 WHEN OTHERS THEN
9993 IF PG_DEBUG in ('Y', 'C') THEN
9994 arp_standard.debug('Inserting into errors...');
9995 END IF;
9996
9997 IF c02%ISOPEN THEN CLOSE c02; END IF;
9998
9999 l_msg := 'Error while stamping the balance amt'||l_ctl_app_tab(i);
10000
10001
10002 INSERT INTO ra_interface_errors
10003 (
10004 --org_id,
10005 interface_line_id,
10006 message_text
10007 )
10008 SELECT
10009 --org_id,
10010 customer_trx_line_id,
10011 l_msg
10012 FROM
10013 ra_customer_trx_lines lines
10014 WHERE
10015 lines.customer_trx_id = l_ctl_app_tab(i);
10016 END;
10017 END LOOP;
10018
10019 END LOOP;
10020 CLOSE c02;
10021
10022 -- Setting the Original and Remaining amounts R12 END
10023 --
10024
10025 IF PG_DEBUG = 'Y' THEN
10026 localdebug('arp_det_dist_pkg.set_original_rem_amt_r12() OVERLOAD -');
10027 END IF;
10028 EXCEPTION
10029
10030 WHEN OTHERS THEN
10031 IF PG_DEBUG = 'Y' THEN
10032 localdebug(' EXCEPTION OTHERS in set_original_rem_amt_r12 OVERLOAD :'||SQLERRM(SQLCODE));
10033 END IF;
10034 RAISE;
10035 END set_original_rem_amt_r12; -- End of OVERLOAD procedure
10036
10037
10038 PROCEDURE set_original_rem_amt
10039 (p_customer_trx IN ra_customer_trx%ROWTYPE,
10040 p_adj_id IN NUMBER DEFAULT NULL,
10041 p_app_id IN NUMBER DEFAULT NULL,
10042 --{HYUNLB
10043 p_from_llca IN VARCHAR2 DEFAULT 'N')
10044 --}
10045 IS
10046
10047 CURSOR c_verif(p_customer_trx_id IN NUMBER) IS
10048 SELECT trx.upgrade_method,
10049 ctl.amount_due_original,
10050 ctl.amount_due_remaining
10051 FROM ra_customer_trx trx,
10052 ra_customer_trx_lines ctl
10053 WHERE trx.customer_trx_id = p_customer_trx_id
10054 AND ctl.customer_trx_id = trx.customer_trx_id;
10055
10056 l_trx_type VARCHAR2(30);
10057 l_lazy_res VARCHAR2(1) := 'N';
10058 l_mfar_res VARCHAR2(1) := 'N';
10059 l_11i_adj VARCHAR2(1);
10060 l_mfar_adj VARCHAR2(1);
10061 l_11i_app VARCHAR2(1);
10062 l_mfar_app VARCHAR2(1);
10063 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
10064 l_msg_data VARCHAR2(2000);
10065 l_msg_count NUMBER;
10066 --{HYUNBL
10067 l_verif_rec c_verif%ROWTYPE;
10068 --}
10069 no_need_to_set_orig_rem_amt EXCEPTION;
10070 no_a_valid_trx EXCEPTION;
10071 no_llca_allowed EXCEPTION;
10072 excep_set_org_rem_amt_r12 EXCEPTION; --LLCA
10073 BEGIN
10074 IF PG_DEBUG = 'Y' THEN
10075 localdebug('arp_det_dist_pkg.set_original_rem_amt()+');
10076 localdebug(' p_adj_id :'||p_adj_id );
10077 localdebug(' p_app_id :'||p_app_id );
10078 END IF;
10079
10080 OPEN c_verif(p_customer_trx.customer_trx_id);
10081 FETCH c_verif INTO l_verif_rec;
10082 IF c_verif%NOTFOUND THEN -- 1
10083 RAISE no_a_valid_trx;
10084 ELSE --1
10085 IF l_verif_rec.upgrade_method IN ('R12','R12_11IMFAR') THEN --2
10086
10087 IF PG_DEBUG = 'Y' THEN
10088 localdebug('balance on the transaction should have been updated ');
10089 localdebug(' No matter LLCA or not, they should be maintained ');
10090 localdebug(' transaction current upgrade_method :'|| l_verif_rec.upgrade_method);
10091 localdebug(' p_from_llca :'|| p_from_llca);
10092 localdebug('We are showing the balances on the first line to avoid loop');
10093 localdebug(' l_verif_rec.amount_due_original :'||l_verif_rec.amount_due_original);
10094 localdebug(' l_verif_rec.amount_due_remaining :'||l_verif_rec.amount_due_remaining);
10095 END IF;
10096 -- The transaction has been llca applied, hence the balance is up to date
10097 -- NB balance should maintained after the activity
10098 RAISE no_need_to_set_orig_rem_amt;
10099
10100 ELSIF l_verif_rec.upgrade_method = 'R12_NLB' AND p_from_llca = 'Y' THEN --2
10101
10102 IF PG_DEBUG = 'Y' THEN
10103 localdebug('balance on the transaction should not be maintained untill today ');
10104 localdebug(' Need to update it and the transaction will have balance maintained as the user is doing LLCA');
10105 END IF;
10106 --{HYUNLB
10107 -- Update rem amount
10108 re_calcul_rem_amt(p_customer_trx => p_customer_trx);
10109
10110 IF PG_DEBUG = 'Y' THEN
10111 localdebug(' going forward and it should be marked as R12');
10112 END IF;
10113 UPDATE ra_customer_trx
10114 SET upgrade_method = 'R12'
10115 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
10116 --}
10117
10118 ELSIF l_verif_rec.upgrade_method = 'R12_11ICASH' THEN --2
10119
10120 IF p_from_llca = 'Y' THEN
10121 IF PG_DEBUG = 'Y' THEN
10122 localdebug('As p_from_llca = Y and transacation.upgrade_method = R12_11ICASH ');
10123 localdebug('11i legacy transaction none MFAR, no Line Level Cash Application is allowed');
10124 END IF;
10125 RAISE no_llca_allowed;
10126 ELSE
10127 IF PG_DEBUG = 'Y' THEN
10128 localdebug('Transaction level activity on R12_11ICASH transaction balance will not be maintained');
10129 END IF;
10130 END IF;
10131
10132 ELSIF l_verif_rec.upgrade_method = 'R12_MERGE' THEN
10133
10134 IF p_from_llca = 'Y' THEN
10135 IF PG_DEBUG = 'Y' THEN
10136 localdebug('As p_from_llca = Y and transacation.upgrade_method = R12_MERGE ');
10137 localdebug('This transaction is having activities with summarized distributions, '||
10138 ' no Line Level Cash Application is allowed');
10139 END IF;
10140 RAISE no_llca_allowed;
10141 ELSE
10142 IF PG_DEBUG = 'Y' THEN
10143 localdebug('Transaction level activity on R12_MERGE transaction balance will not be maintained');
10144 END IF;
10145 END IF;
10146 ELSE --2
10147 IF PG_DEBUG = 'Y' THEN
10148 localdebug('At this point the transaction upgrade_method is not set');
10149 localdebug(' l_verif_rec.upgrade_method :'||l_verif_rec.upgrade_method );
10150 END IF;
10151
10152 check_legacy_status
10153 (p_trx_id => p_customer_trx.customer_trx_id,
10154 p_adj_id => p_adj_id,
10155 p_app_id => p_app_id,
10156 x_11i_adj => l_11i_adj,
10157 x_mfar_adj => l_mfar_adj,
10158 x_11i_app => l_11i_app,
10159 x_mfar_app => l_mfar_app);
10160
10161 -- Normal R12
10162 IF ((l_11i_adj = 'N') AND (l_mfar_adj = 'N') AND
10163 (l_11i_app = 'N') AND (l_mfar_app = 'N'))
10164 THEN --3
10165 --{HYUNLB
10166 IF p_from_llca = 'Y' THEN
10167
10168 IF PG_DEBUG = 'Y' THEN
10169 localdebug('As user is Line Level activating the trx - p_from_llca:'||p_from_llca);
10170 localdebug('Updating the Line Balance' );
10171 END IF;
10172 --LLCA
10173 --set_original_rem_amt_r12(p_customer_trx => p_customer_trx);
10174 set_original_rem_amt_r12(p_customer_trx => p_customer_trx,
10175 x_return_status => l_return_status,
10176 x_msg_count => l_msg_count,
10177 x_msg_data => l_msg_data,
10178 p_from_llca => 'Y');
10179
10180 IF l_return_status <> fnd_api.g_ret_sts_success THEN
10181 RAISE excep_set_org_rem_amt_r12;
10182 END IF;
10183
10184
10185 /* localdebug('Setting transaction.upgrade_method to R12' );
10186 UPDATE ra_customer_trx SET upgrade_method = 'R12'
10187 WHERE customer_trx_id = p_customer_trx.customer_trx_id; */
10188
10189 ELSE
10190
10191 IF PG_DEBUG = 'Y' THEN
10192 localdebug('This is a direct activity on the transaction - p_from_llca:'||p_from_llca);
10193 localdebug('No balance maintenance and setting transaction.upg_flag to R12_NLB');
10194 END IF;
10195 --{HYUNLB
10196 -- By setting the upg_make to R12_NLB
10197 -- <=> Do not maintain the line balance
10198 -- R12_NLB
10199 UPDATE ra_customer_trx SET upgrade_method = 'R12_NLB'
10200 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
10201 --}
10202 END IF;
10203
10204 -- MFAR legacy R12_11IMFAR
10205 ELSIF ((l_mfar_adj = 'Y') OR (l_mfar_app = 'Y'))
10206 THEN --3
10207 --
10208 -- The starting balance should start from PSA
10209 --
10210 IF PG_DEBUG = 'Y' THEN
10211 localdebug('No matter LLCA or not, this a 11I MFAR transaction, we need to maintained balance');
10212 END IF;
10213 set_original_rem_amt_mfar(p_customer_trx => p_customer_trx);
10214
10215 IF PG_DEBUG = 'Y' THEN
10216 localdebug('Setting the transaction.upgrade_method to R12_11IMFAR');
10217 END IF;
10218 UPDATE ra_customer_trx SET upgrade_method = 'R12_11IMFAR'
10219 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
10220
10221
10222 ELSIF ((l_11i_adj = 'N') AND (l_11i_app = 'Y'))
10223 THEN --3
10224 -- Normal we do not maintain the line level balance
10225 -- In this case the balance on the line are inaccurate
10226 -- Although future adjustment and future application can tied
10227 -- back to original transaction distributions, I mark them to use
10228 -- R12_11ICASH method, because a application in 11i can increase
10229 -- the balance of the lines as AR allow
10230 -- positive credit memo applied to an invoice
10231 -- If we use the R12 method for applications, over applications can happen
10232 -- resulting impossibility to close the transaction
10233 IF p_from_llca = 'Y' THEN
10234 IF PG_DEBUG = 'Y' THEN
10235 localdebug('On this transaction no 11i adjustments has occurs');
10236 localdebug('But some applications in 11i has happened');
10237 localdebug('This is a 11i legacy transaction with 11i activity- LLCA should be allowed');
10238 END IF;
10239 RAISE no_llca_allowed;
10240
10241 ELSE
10242 IF PG_DEBUG = 'Y' THEN
10243 localdebug('On this transaction no 11i adjustments has occurs');
10244 localdebug('But some applications in 11i has happened');
10245 localdebug('No maintenace of the line balances, but we set them as original for cm');
10246 -- set_original_rem_amt_r12(p_customer_trx => p_customer_trx);
10247
10248 localdebug('Setting the transaction.upgrade_method');
10249 END IF;
10250 UPDATE ra_customer_trx SET upgrade_method = 'R12_11ICASH'
10251 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
10252 END IF;
10253 ELSE --3
10254 -- CASH legacy R12_11ICASH
10255 -- (l_11i_adj = 'Y')
10256 -- In this case future applications need to be prorated over
10257 -- existing adjustment distributions without the possibility
10258 -- to tied back to the original distributions only buckets will
10259 -- be identificable
10260
10261
10262 IF p_from_llca = 'Y' THEN
10263 IF PG_DEBUG = 'Y' THEN
10264 localdebug('On this transaction 11i adjustments has occurs');
10265 localdebug('This is a 11i legacy transaction with 11i activity- LLCA should be allowed');
10266 END IF;
10267 RAISE no_llca_allowed;
10268
10269 ELSE
10270 IF PG_DEBUG = 'Y' THEN
10271 localdebug('On this transaction 11i adjustments has occurs');
10272 localdebug('No maintenace of the line balances');
10273
10274 -- set_original_rem_amt_r12(p_customer_trx => p_customer_trx);
10275
10276 localdebug('Setting the transaction.upgrade_method');
10277 END IF;
10278 UPDATE ra_customer_trx SET upgrade_method = 'R12_11ICASH'
10279 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
10280
10281 END IF;
10282
10283 END IF; --3
10284 END IF; --2
10285 END IF; --1
10286 CLOSE c_verif;
10287
10288 IF PG_DEBUG = 'Y' THEN
10289 localdebug('arp_det_dist_pkg.set_original_rem_amt()-');
10290 END IF;
10291 EXCEPTION
10292 WHEN no_need_to_set_orig_rem_amt THEN
10293 IF c_verif%ISOPEN THEN CLOSE c_verif; END IF;
10294 IF PG_DEBUG = 'Y' THEN
10295 localdebug(' No need to set orig rem amount');
10296 localdebug('arp_det_dist_pkg.set_original_rem_amt()-');
10297 END IF;
10298
10299 WHEN no_a_valid_trx THEN
10300 IF c_verif%ISOPEN THEN CLOSE c_verif; END IF;
10301 IF PG_DEBUG = 'Y' THEN
10302 localdebug('EXCEPTION no_a_valid_trx :'||p_customer_trx.customer_trx_id);
10303 END IF;
10304 RAISE;
10305
10306 WHEN no_llca_allowed THEN
10307 IF c_verif%ISOPEN THEN CLOSE c_verif; END IF;
10308 IF PG_DEBUG = 'Y' THEN
10309 localdebug('EXCEPTION NO_llca_allowed customer_trx_id :'||p_customer_trx.customer_trx_id);
10310 END IF;
10311 RAISE;
10312
10313 WHEN excep_set_org_rem_amt_r12 THEN
10314 IF PG_DEBUG = 'Y' THEN
10315 localdebug('EXCEPTION_set_original_rem_amt_r12 error count:'||l_msg_count);
10316 localdebug('last error:'||l_msg_data);
10317 END IF;
10318 RAISE;
10319
10320
10321 WHEN OTHERS THEN
10322 IF c_verif%ISOPEN THEN CLOSE c_verif; END IF;
10323 IF PG_DEBUG = 'Y' THEN
10324 localdebug(' EXCEPTION OTHERS set_original_rem_amt:'||SQLERRM);
10325 END IF;
10326 RAISE;
10327 END set_original_rem_amt;
10328
10329
10330 PROCEDURE insert_ra_ar_gt
10331 ( p_ra_ar_gt IN ra_ar_gt%ROWTYPE,
10332 p_ar_base_dist_amts_gt IN ar_base_dist_amts_gt%ROWTYPE,
10333 p_ra_ar_amounts_gt IN ra_ar_amounts_gt%ROWTYPE
10334 )
10335 IS
10336 l_rows NUMBER;
10337 l_base_rowid ROWID;
10338 BEGIN
10339 INSERT INTO ra_ar_gt
10340 (
10341 GT_ID
10342 ,BASE_CURRENCY
10343 ,TO_CURRENCY
10344 ,FROM_CURRENCY
10345 ,DET_ID
10346 ,LINE_ID
10347 ,REF_CUSTOMER_TRX_ID
10348 ,REF_CUSTOMER_TRX_LINE_ID
10349 ,REF_CUST_TRX_LINE_GL_DIST_ID
10350 ,REF_LINE_ID
10351 ,REF_DET_ID
10352 ,ACCOUNT_CLASS
10353 ,SOURCE_TYPE
10354 ,SOURCE_TABLE
10355 ,SOURCE_ID
10356 ,AMT
10357 ,ACCTD_AMT
10358 ,AMT_DR
10359 ,AMT_CR
10360 ,ACCTD_AMT_DR
10361 ,ACCTD_AMT_CR
10362 ,FROM_ACCTD_AMT_DR
10363 ,FROM_ACCTD_AMT_CR
10364 ,CCID
10365 ,CCID_SECONDARY
10366 ,DIST_AMT
10367 ,DIST_ACCTD_AMT
10368 ,ALLOC_AMT
10369 ,ALLOC_ACCTD_AMT
10370 ,FROM_ALLOC_AMT
10371 ,FROM_ALLOC_ACCTD_AMT
10372 ,tl_alloc_amt
10373 ,tl_alloc_acctd_amt
10374 ,tl_chrg_alloc_amt
10375 ,tl_chrg_alloc_acctd_amt
10376 --
10377 ,tl_frt_alloc_amt
10378 ,tl_frt_alloc_acctd_amt
10379 ,tl_tax_alloc_amt
10380 ,tl_tax_alloc_acctd_amt
10381 --
10382 ,DUE_REM_AMT
10383 ,DUE_REM_ACCTD_AMT
10384 --
10385 ,FRT_REM_AMT
10386 ,FRT_REM_ACCTD_AMT
10387 ,TAX_REM_AMT
10388 ,TAX_REM_ACCTD_AMT
10389 --
10390 ,DUE_ORIG_AMT
10391 ,DUE_ORIG_ACCTD_AMT
10392 --
10393 ,FRT_ORIG_AMT
10394 ,FRT_ORIG_ACCTD_AMT
10395 ,TAX_ORIG_AMT
10396 ,TAX_ORIG_ACCTD_AMT
10397 --
10398 ,CHRG_REM_AMT
10399 ,CHRG_REM_ACCTD_AMT
10400 --
10401 ,FRT_ADJ_REM_AMT
10402 ,FRT_ADJ_REM_ACCTD_AMT
10403 --
10404 ,LINE_TYPE
10405 ,SUM_LINE_REM_AMT
10406 ,SUM_LINE_REM_ACCTD_AMT
10407 --
10408 ,SUM_LINE_FRT_REM_AMT
10409 ,SUM_LINE_FRT_REM_ACCTD_AMT
10410 ,SUM_LINE_TAX_REM_AMT
10411 ,SUM_LINE_TAX_REM_ACCTD_AMT
10412 --
10413 ,SUM_LINE_ORIG_AMT
10414 ,SUM_LINE_ORIG_ACCTD_AMT
10415 --
10416 ,SUM_LINE_FRT_ORIG_AMT
10417 ,SUM_LINE_FRT_ORIG_ACCTD_AMT
10418 ,SUM_LINE_TAX_ORIG_AMT
10419 ,SUM_LINE_TAX_ORIG_ACCTD_AMT
10420 --
10421 ,SUM_LINE_CHRG_REM_AMT
10422 ,SUM_LINE_CHRG_REM_ACCTD_AMT
10423 --
10424 ,TL_ED_ALLOC_AMT
10425 ,TL_ED_ALLOC_ACCTD_AMT
10426 ,TL_ED_CHRG_ALLOC_AMT
10427 ,TL_ED_CHRG_ALLOC_ACCTD_AMT
10428 --
10429 ,TL_ED_FRT_ALLOC_AMT
10430 ,TL_ED_FRT_ALLOC_ACCTD_AMT
10431 ,TL_ED_TAX_ALLOC_AMT
10432 ,TL_ED_TAX_ALLOC_ACCTD_AMT
10433 --
10434 ,TL_UNED_ALLOC_AMT
10435 ,TL_UNED_ALLOC_ACCTD_AMT
10436 ,TL_UNED_CHRG_ALLOC_AMT
10437 ,TL_UNED_CHRG_ALLOC_ACCTD_AMT
10438 --
10439 ,TL_UNED_FRT_ALLOC_AMT
10440 ,TL_UNED_FRT_ALLOC_ACCTD_AMT
10441 ,TL_UNED_TAX_ALLOC_AMT
10442 ,TL_UNED_TAX_ALLOC_ACCTD_AMT
10443 --
10444 ,DIST_ED_AMT
10445 ,DIST_ED_ACCTD_AMT
10446 ,DIST_UNED_AMT
10447 ,DIST_UNED_ACCTD_AMT
10448 ,gp_level
10449 ,group_id
10450
10451 ,source_data_key1
10452 ,source_data_key2
10453 ,source_data_key3
10454 ,source_data_key4
10455 ,source_data_key5
10456
10457 , SET_OF_BOOKS_ID
10458 , SOB_TYPE
10459 , activity_bucket
10460 )
10461 VALUES
10462 (
10463 p_ra_ar_gt.GT_ID --GT_ID
10464 ,p_ra_ar_gt.BASE_CURRENCY --BASE_CURRENCY
10465 ,p_ra_ar_gt.TO_CURRENCY --TO_CURRENCY
10466 ,p_ra_ar_gt.FROM_CURRENCY --FROM_CURRENCY
10467 ,p_ra_ar_gt.DET_ID --DET_ID
10468 ,p_ra_ar_gt.LINE_ID --LINE_ID
10469 ,p_ra_ar_gt.REF_CUSTOMER_TRX_ID --REF_CUSTOMER_TRX_ID
10470 ,p_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID --REF_CUSTOMER_TRX_LINE_ID
10471 ,p_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID --REF_CUST_TRX_LINE_GL_DIST_ID
10472 ,p_ra_ar_gt.REF_LINE_ID --REF_LINE_ID
10473 ,p_ra_ar_gt.REF_DET_ID --REF_DET_ID
10474 ,p_ra_ar_gt.ACCOUNT_CLASS --ACCOUNT_CLASS
10475 ,p_ra_ar_gt.SOURCE_TYPE --SOURCE_TYPE
10476 ,p_ra_ar_gt.SOURCE_TABLE --SOURCE_TABLE
10477 ,p_ra_ar_gt.SOURCE_ID --SOURCE_ID
10478 ,p_ra_ar_gt.AMT --AMT
10479 ,p_ra_ar_gt.ACCTD_AMT --ACCTD_AMT
10480 ,p_ra_ar_gt.AMT_DR --AMT_DR
10481 ,p_ra_ar_gt.AMT_CR --AMT_CR
10482 ,p_ra_ar_gt.ACCTD_AMT_DR --ACCTD_AMT_DR
10483 ,p_ra_ar_gt.ACCTD_AMT_CR --ACCTD_AMT_CR
10484 ,p_ra_ar_gt.FROM_ACCTD_AMT_DR --FROM_ACCTD_AMT_DR
10485 ,p_ra_ar_gt.FROM_ACCTD_AMT_CR --FROM_ACCTD_AMT_CR
10486 ,p_ra_ar_gt.CCID --CCID
10487 ,p_ra_ar_gt.CCID_SECONDARY --CCID_SECONDARY
10488 ,p_ra_ar_gt.DIST_AMT --DIST_AMT
10489 ,p_ra_ar_gt.DIST_ACCTD_AMT --DIST_ACCTD_AMT
10490 ,p_ra_ar_gt.ALLOC_AMT --ALLOC_AMT
10491 ,p_ra_ar_gt.ALLOC_ACCTD_AMT --ALLOC_ACCTD_AMT
10492 ,p_ra_ar_gt.FROM_ALLOC_AMT --FROM_ALLOC_AMT
10493 ,p_ra_ar_gt.FROM_ALLOC_ACCTD_AMT --FROM_ALLOC_ACCTD_AMT
10494 ,p_ra_ar_gt.tl_alloc_amt --TL_ALLOC_AMT
10495 ,p_ra_ar_gt.tl_alloc_acctd_amt --TL_ALLOC_ACCTD_AMT
10496 ,p_ra_ar_gt.tl_chrg_alloc_amt
10497 ,p_ra_ar_gt.tl_chrg_alloc_acctd_amt
10498 --
10499 ,p_ra_ar_gt.tl_frt_alloc_amt --TL_FRT_ALLOC_AMT
10500 ,p_ra_ar_gt.tl_frt_alloc_acctd_amt --TL_FRT_ALLOC_ACCTD_AMT
10501 ,p_ra_ar_gt.tl_tax_alloc_amt
10502 ,p_ra_ar_gt.tl_tax_alloc_acctd_amt
10503 --
10504 ,p_ra_ar_gt.DUE_REM_AMT
10505 ,p_ra_ar_gt.DUE_REM_ACCTD_AMT
10506 --
10507 ,p_ra_ar_gt.FRT_REM_AMT
10508 ,p_ra_ar_gt.FRT_REM_ACCTD_AMT
10509 ,p_ra_ar_gt.TAX_REM_AMT
10510 ,p_ra_ar_gt.TAX_REM_ACCTD_AMT
10511 --
10512 ,p_ra_ar_gt.DUE_ORIG_AMT
10513 ,p_ra_ar_gt.DUE_ORIG_ACCTD_AMT
10514 --
10515 ,p_ra_ar_gt.FRT_ORIG_AMT
10516 ,p_ra_ar_gt.FRT_ORIG_ACCTD_AMT
10517 ,p_ra_ar_gt.TAX_ORIG_AMT
10518 ,p_ra_ar_gt.TAX_ORIG_ACCTD_AMT
10519 --
10520 ,p_ra_ar_gt.CHRG_REM_AMT
10521 ,p_ra_ar_gt.CHRG_REM_ACCTD_AMT
10522 --
10523 ,p_ra_ar_gt.FRT_ADJ_REM_AMT
10524 ,p_ra_ar_gt.FRT_ADJ_REM_ACCTD_AMT
10525 --
10526 ,p_ra_ar_gt.LINE_TYPE
10527 ,p_ra_ar_gt.SUM_LINE_REM_AMT
10528 ,p_ra_ar_gt.SUM_LINE_REM_ACCTD_AMT
10529 --
10530 ,p_ra_ar_gt.SUM_LINE_FRT_REM_AMT
10531 ,p_ra_ar_gt.SUM_LINE_FRT_REM_ACCTD_AMT
10532 ,p_ra_ar_gt.SUM_LINE_TAX_REM_AMT
10533 ,p_ra_ar_gt.SUM_LINE_TAX_REM_ACCTD_AMT
10534 --
10535 ,p_ra_ar_gt.SUM_LINE_ORIG_AMT
10536 ,p_ra_ar_gt.SUM_LINE_ORIG_ACCTD_AMT
10537 --
10538 ,p_ra_ar_gt.SUM_LINE_FRT_ORIG_AMT
10539 ,p_ra_ar_gt.SUM_LINE_FRT_ORIG_ACCTD_AMT
10540 ,p_ra_ar_gt.SUM_LINE_TAX_ORIG_AMT
10541 ,p_ra_ar_gt.SUM_LINE_TAX_ORIG_ACCTD_AMT
10542 --
10543 ,p_ra_ar_gt.SUM_LINE_CHRG_REM_AMT
10544 ,p_ra_ar_gt.SUM_LINE_CHRG_REM_ACCTD_AMT
10545 --
10546 ,p_ra_ar_gt.TL_ED_ALLOC_AMT
10547 ,p_ra_ar_gt.TL_ED_ALLOC_ACCTD_AMT
10548 ,p_ra_ar_gt.TL_ED_CHRG_ALLOC_AMT
10549 ,p_ra_ar_gt.TL_ED_CHRG_ALLOC_ACCTD_AMT
10550 --
10551 ,p_ra_ar_gt.TL_ED_FRT_ALLOC_AMT
10552 ,p_ra_ar_gt.TL_ED_FRT_ALLOC_ACCTD_AMT
10553 ,p_ra_ar_gt.TL_ED_TAX_ALLOC_AMT
10554 ,p_ra_ar_gt.TL_ED_TAX_ALLOC_ACCTD_AMT
10555 --
10556 ,p_ra_ar_gt.TL_UNED_ALLOC_AMT
10557 ,p_ra_ar_gt.TL_UNED_ALLOC_ACCTD_AMT
10558 ,p_ra_ar_gt.TL_UNED_CHRG_ALLOC_AMT
10559 ,p_ra_ar_gt.TL_UNED_CHRG_ALLOC_ACCTD_AMT
10560 --
10561 ,p_ra_ar_gt.TL_UNED_FRT_ALLOC_AMT
10562 ,p_ra_ar_gt.TL_UNED_FRT_ALLOC_ACCTD_AMT
10563 ,p_ra_ar_gt.TL_UNED_TAX_ALLOC_AMT
10564 ,p_ra_ar_gt.TL_UNED_TAX_ALLOC_ACCTD_AMT
10565 --
10566 ,p_ra_ar_gt.DIST_ED_AMT
10567 ,p_ra_ar_gt.DIST_ED_ACCTD_AMT
10568 ,p_ra_ar_gt.DIST_UNED_AMT
10569 ,p_ra_ar_gt.DIST_UNED_ACCTD_AMT
10570 ,p_ra_ar_gt.gp_level
10571 ,p_ra_ar_gt.group_id
10572
10573 ,p_ra_ar_gt.source_data_key1
10574 ,p_ra_ar_gt.source_data_key2
10575 ,p_ra_ar_gt.source_data_key3
10576 ,p_ra_ar_gt.source_data_key4
10577 ,p_ra_ar_gt.source_data_key5
10578
10579 ,p_ra_ar_gt.SET_OF_BOOKS_ID
10580 ,p_ra_ar_gt.SOB_TYPE
10581 ,p_ra_ar_gt.activity_bucket
10582 ) RETURNING ROWID INTO l_base_rowid;
10583
10584 l_rows := sql%rowcount;
10585 g_appln_count := g_appln_count + l_rows;
10586 IF PG_DEBUG = 'Y' THEN
10587 localdebug(' rows inserted = ' || l_rows);
10588 END IF;
10589
10590
10591 INSERT INTO AR_BASE_DIST_AMTS_GT
10592 (
10593 gt_id
10594 ,gp_level
10595 ,ref_customer_trx_id
10596 ,ref_customer_trx_line_id
10597 ,base_dist_amt
10598 ,base_dist_acctd_amt
10599 ,base_ed_dist_amt
10600 ,base_ed_dist_acctd_amt
10601 ,base_uned_dist_amt
10602 ,base_uned_dist_acctd_amt
10603 ,set_of_books_id
10604 ,sob_type
10605 ,source_table
10606 )
10607 VALUES
10608 (
10609 p_ra_ar_gt.gt_id
10610 ,p_ra_ar_gt.gp_level
10611 ,p_ra_ar_gt.ref_customer_trx_id
10612 ,p_ra_ar_gt.ref_customer_trx_line_id
10613 ,p_ar_base_dist_amts_gt.base_dist_amt
10614 ,p_ar_base_dist_amts_gt.base_dist_acctd_amt
10615 ,p_ar_base_dist_amts_gt.base_ed_dist_amt
10616 ,p_ar_base_dist_amts_gt.base_ed_dist_acctd_amt
10617 ,p_ar_base_dist_amts_gt.base_uned_dist_amt
10618 ,p_ar_base_dist_amts_gt.base_uned_dist_acctd_amt
10619 ,p_ra_ar_gt.SET_OF_BOOKS_ID
10620 ,p_ra_ar_gt.SOB_TYPE
10621 ,p_ra_ar_gt.SOURCE_TABLE
10622 );
10623
10624 INSERT INTO RA_AR_AMOUNTS_GT
10625 (
10626 gt_id
10627 ,gp_level
10628 ,base_rec_rowid
10629 ,ref_customer_trx_id
10630 ,ref_customer_trx_line_id
10631
10632 ,base_pro_amt
10633 ,base_pro_acctd_amt
10634 ,BASE_CHRG_PRO_AMT
10635 ,BASE_CHRG_PRO_ACCTD_AMT
10636 --
10637 ,BASE_FRT_PRO_AMT
10638 ,BASE_FRT_PRO_ACCTD_AMT
10639 ,BASE_TAX_PRO_AMT
10640 ,BASE_TAX_PRO_ACCTD_AMT
10641 --
10642 ,elmt_pro_amt
10643 ,elmt_pro_acctd_amt
10644 ,ELMT_CHRG_PRO_AMT
10645 ,ELMT_CHRG_PRO_ACCTD_AMT
10646 --
10647 ,ELMT_FRT_PRO_AMT
10648 ,ELMT_FRT_PRO_ACCTD_AMT
10649 ,ELMT_TAX_PRO_AMT
10650 ,ELMT_TAX_PRO_ACCTD_AMT
10651 --
10652 ,buc_alloc_amt
10653 ,buc_alloc_acctd_amt
10654 ,buc_chrg_alloc_amt
10655 ,buc_chrg_alloc_acctd_amt
10656 --
10657 ,buc_frt_alloc_amt
10658 ,buc_frt_alloc_acctd_amt
10659 ,buc_tax_alloc_amt
10660 ,buc_tax_alloc_acctd_amt
10661
10662 ,BUC_ED_ALLOC_AMT
10663 ,BUC_ED_ALLOC_ACCTD_AMT
10664 ,BUC_ED_CHRG_ALLOC_AMT
10665 ,BUC_ED_CHRG_ALLOC_ACCTD_AMT
10666 --
10667 ,BUC_ED_FRT_ALLOC_AMT
10668 ,BUC_ED_FRT_ALLOC_ACCTD_AMT
10669 ,BUC_ED_TAX_ALLOC_AMT
10670 ,BUC_ED_TAX_ALLOC_ACCTD_AMT
10671 --
10672 ,ELMT_ED_PRO_AMT
10673 ,ELMT_ED_PRO_ACCTD_AMT
10674 ,ELMT_ED_CHRG_PRO_AMT
10675 ,ELMT_ED_CHRG_PRO_ACCTD_AMT
10676 --
10677 ,ELMT_ED_FRT_PRO_AMT
10678 ,ELMT_ED_FRT_PRO_ACCTD_AMT
10679 ,ELMT_ED_TAX_PRO_AMT
10680 ,ELMT_ED_TAX_PRO_ACCTD_AMT
10681 --
10682 ,BASE_ED_PRO_AMT
10683 ,BASE_ED_PRO_ACCTD_AMT
10684 ,BASE_ED_CHRG_PRO_AMT
10685 ,BASE_ED_CHRG_PRO_ACCTD_AMT
10686 --
10687 ,BASE_ED_FRT_PRO_AMT
10688 ,BASE_ED_FRT_PRO_ACCTD_AMT
10689 ,BASE_ED_TAX_PRO_AMT
10690 ,BASE_ED_TAX_PRO_ACCTD_AMT
10691
10692 ,BUC_UNED_ALLOC_AMT
10693 ,BUC_UNED_ALLOC_ACCTD_AMT
10694 ,BUC_UNED_CHRG_ALLOC_AMT
10695 ,BUC_UNED_CHRG_ALLOC_ACCTD_AMT
10696 --
10697 ,BUC_UNED_FRT_ALLOC_AMT
10698 ,BUC_UNED_FRT_ALLOC_ACCTD_AMT
10699 ,BUC_UNED_TAX_ALLOC_AMT
10700 ,BUC_UNED_TAX_ALLOC_ACCTD_AMT
10701 --
10702 ,ELMT_UNED_PRO_AMT
10703 ,ELMT_UNED_PRO_ACCTD_AMT
10704 ,ELMT_UNED_CHRG_PRO_AMT
10705 ,ELMT_UNED_CHRG_PRO_ACCTD_AMT
10706 --
10707 ,ELMT_UNED_FRT_PRO_AMT
10708 ,ELMT_UNED_FRT_PRO_ACCTD_AMT
10709 ,ELMT_UNED_TAX_PRO_AMT
10710 ,ELMT_UNED_TAX_PRO_ACCTD_AMT
10711 --
10712 ,BASE_UNED_PRO_AMT
10713 ,BASE_UNED_PRO_ACCTD_AMT
10714 ,BASE_UNED_CHRG_PRO_AMT
10715 ,BASE_UNED_CHRG_PRO_ACCTD_AMT
10716 --
10717 ,BASE_UNED_FRT_PRO_AMT
10718 ,BASE_UNED_FRT_PRO_ACCTD_AMT
10719 ,BASE_UNED_TAX_PRO_AMT
10720 ,BASE_UNED_TAX_PRO_ACCTD_AMT
10721 )
10722 VALUES
10723 (
10724 p_ra_ar_gt.gt_id
10725 ,p_ra_ar_gt.gp_level
10726 ,l_base_rowid
10727 ,p_ra_ar_gt.ref_customer_trx_id
10728 ,p_ra_ar_gt.ref_customer_trx_line_id
10729
10730 ,p_ra_ar_amounts_gt.base_pro_amt
10731 ,p_ra_ar_amounts_gt.base_pro_acctd_amt
10732 ,p_ra_ar_amounts_gt.BASE_CHRG_PRO_AMT
10733 ,p_ra_ar_amounts_gt.BASE_CHRG_PRO_ACCTD_AMT
10734 --
10735 ,p_ra_ar_amounts_gt.BASE_FRT_PRO_AMT
10736 ,p_ra_ar_amounts_gt.BASE_FRT_PRO_ACCTD_AMT
10737 ,p_ra_ar_amounts_gt.BASE_TAX_PRO_AMT
10738 ,p_ra_ar_amounts_gt.BASE_TAX_PRO_ACCTD_AMT
10739 --
10740 ,p_ra_ar_amounts_gt.elmt_pro_amt
10741 ,p_ra_ar_amounts_gt.elmt_pro_acctd_amt
10742 ,p_ra_ar_amounts_gt.ELMT_CHRG_PRO_AMT
10743 ,p_ra_ar_amounts_gt.ELMT_CHRG_PRO_ACCTD_AMT
10744 --
10745 ,p_ra_ar_amounts_gt.ELMT_FRT_PRO_AMT
10746 ,p_ra_ar_amounts_gt.ELMT_FRT_PRO_ACCTD_AMT
10747 ,p_ra_ar_amounts_gt.ELMT_TAX_PRO_AMT
10748 ,p_ra_ar_amounts_gt.ELMT_TAX_PRO_ACCTD_AMT
10749 --
10750 ,p_ra_ar_amounts_gt.buc_alloc_amt
10751 ,p_ra_ar_amounts_gt.buc_alloc_acctd_amt
10752 ,p_ra_ar_amounts_gt.buc_chrg_alloc_amt
10753 ,p_ra_ar_amounts_gt.buc_chrg_alloc_acctd_amt
10754 --
10755 ,p_ra_ar_amounts_gt.buc_frt_alloc_amt
10756 ,p_ra_ar_amounts_gt.buc_frt_alloc_acctd_amt
10757 ,p_ra_ar_amounts_gt.buc_tax_alloc_amt
10758 ,p_ra_ar_amounts_gt.buc_tax_alloc_acctd_amt
10759
10760 ,p_ra_ar_amounts_gt.BUC_ED_ALLOC_AMT
10761 ,p_ra_ar_amounts_gt.BUC_ED_ALLOC_ACCTD_AMT
10762 ,p_ra_ar_amounts_gt.BUC_ED_CHRG_ALLOC_AMT
10763 ,p_ra_ar_amounts_gt.BUC_ED_CHRG_ALLOC_ACCTD_AMT
10764 --
10765 ,p_ra_ar_amounts_gt.BUC_ED_FRT_ALLOC_AMT
10766 ,p_ra_ar_amounts_gt.BUC_ED_FRT_ALLOC_ACCTD_AMT
10767 ,p_ra_ar_amounts_gt.BUC_ED_TAX_ALLOC_AMT
10768 ,p_ra_ar_amounts_gt.BUC_ED_TAX_ALLOC_ACCTD_AMT
10769 --
10770 ,p_ra_ar_amounts_gt.ELMT_ED_PRO_AMT
10771 ,p_ra_ar_amounts_gt.ELMT_ED_PRO_ACCTD_AMT
10772 ,p_ra_ar_amounts_gt.ELMT_ED_CHRG_PRO_AMT
10773 ,p_ra_ar_amounts_gt.ELMT_ED_CHRG_PRO_ACCTD_AMT
10774 --
10775 ,p_ra_ar_amounts_gt.ELMT_ED_FRT_PRO_AMT
10776 ,p_ra_ar_amounts_gt.ELMT_ED_FRT_PRO_ACCTD_AMT
10777 ,p_ra_ar_amounts_gt.ELMT_ED_TAX_PRO_AMT
10778 ,p_ra_ar_amounts_gt.ELMT_ED_TAX_PRO_ACCTD_AMT
10779 --
10780 ,p_ra_ar_amounts_gt.BASE_ED_PRO_AMT
10781 ,p_ra_ar_amounts_gt.BASE_ED_PRO_ACCTD_AMT
10782 ,p_ra_ar_amounts_gt.BASE_ED_CHRG_PRO_AMT
10783 ,p_ra_ar_amounts_gt.BASE_ED_CHRG_PRO_ACCTD_AMT
10784 --
10785 ,p_ra_ar_amounts_gt.BASE_ED_FRT_PRO_AMT
10786 ,p_ra_ar_amounts_gt.BASE_ED_FRT_PRO_ACCTD_AMT
10787 ,p_ra_ar_amounts_gt.BASE_ED_TAX_PRO_AMT
10788 ,p_ra_ar_amounts_gt.BASE_ED_TAX_PRO_ACCTD_AMT
10789
10790 ,p_ra_ar_amounts_gt.BUC_UNED_ALLOC_AMT
10791 ,p_ra_ar_amounts_gt.BUC_UNED_ALLOC_ACCTD_AMT
10792 ,p_ra_ar_amounts_gt.BUC_UNED_CHRG_ALLOC_AMT
10793 ,p_ra_ar_amounts_gt.BUC_UNED_CHRG_ALLOC_ACCTD_AMT
10794 --
10795 ,p_ra_ar_amounts_gt.BUC_UNED_FRT_ALLOC_AMT
10796 ,p_ra_ar_amounts_gt.BUC_UNED_FRT_ALLOC_ACCTD_AMT
10797 ,p_ra_ar_amounts_gt.BUC_UNED_TAX_ALLOC_AMT
10798 ,p_ra_ar_amounts_gt.BUC_UNED_TAX_ALLOC_ACCTD_AMT
10799 --
10800 ,p_ra_ar_amounts_gt.ELMT_UNED_PRO_AMT
10801 ,p_ra_ar_amounts_gt.ELMT_UNED_PRO_ACCTD_AMT
10802 ,p_ra_ar_amounts_gt.ELMT_UNED_CHRG_PRO_AMT
10803 ,p_ra_ar_amounts_gt.ELMT_UNED_CHRG_PRO_ACCTD_AMT
10804 --
10805 ,p_ra_ar_amounts_gt.ELMT_UNED_FRT_PRO_AMT
10806 ,p_ra_ar_amounts_gt.ELMT_UNED_FRT_PRO_ACCTD_AMT
10807 ,p_ra_ar_amounts_gt.ELMT_UNED_TAX_PRO_AMT
10808 ,p_ra_ar_amounts_gt.ELMT_UNED_TAX_PRO_ACCTD_AMT
10809 --
10810 ,p_ra_ar_amounts_gt.BASE_UNED_PRO_AMT
10811 ,p_ra_ar_amounts_gt.BASE_UNED_PRO_ACCTD_AMT
10812 ,p_ra_ar_amounts_gt.BASE_UNED_CHRG_PRO_AMT
10813 ,p_ra_ar_amounts_gt.BASE_UNED_CHRG_PRO_ACCTD_AMT
10814 --
10815 ,p_ra_ar_amounts_gt.BASE_UNED_FRT_PRO_AMT
10816 ,p_ra_ar_amounts_gt.BASE_UNED_FRT_PRO_ACCTD_AMT
10817 ,p_ra_ar_amounts_gt.BASE_UNED_TAX_PRO_AMT
10818 ,p_ra_ar_amounts_gt.BASE_UNED_TAX_PRO_ACCTD_AMT
10819 );
10820 l_rows := sql%rowcount;
10821 IF PG_DEBUG = 'Y' THEN
10822 localdebug(' rows inserted into AR_BASE_DIST_AMTS_GT = ' || l_rows);
10823 END IF;
10824 END insert_ra_ar_gt;
10825
10826
10827 PROCEDURE adjustment_detemination
10828 (p_customer_trx_id IN NUMBER,
10829 p_gt_id IN VARCHAR2,
10830 p_pay_adj IN VARCHAR2,
10831 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
10832 p_adj_rec IN ar_adjustments%ROWTYPE)
10833 IS
10834 CURSOR get_sum_per_line_type IS
10835 SELECT /*+INDEX (RA_AR_GT ra_ar_n1)*/
10836 MAX(sum_line_rem_amt),
10837 MAX(sum_line_rem_acctd_amt),
10838 MAX(sum_line_orig_amt),
10839 MAX(sum_line_orig_acctd_amt),
10840 MAX(sum_line_chrg_rem_amt),
10841 MAX(sum_line_chrg_rem_acctd_amt),
10842 --
10843 MAX(sum_line_frt_rem_amt),
10844 MAX(sum_line_frt_rem_acctd_amt),
10845 MAX(sum_line_frt_orig_amt),
10846 MAX(sum_line_frt_orig_acctd_amt),
10847 --
10848 MAX(sum_line_tax_rem_amt),
10849 MAX(sum_line_tax_rem_acctd_amt),
10850 MAX(sum_line_tax_orig_amt),
10851 MAX(sum_line_tax_orig_acctd_amt),
10852 --
10853 line_type
10854 FROM ra_ar_gt
10855 WHERE gt_id = p_gt_id
10856 -- AND se_gt_id = g_se_gt_id
10857 AND ref_customer_trx_id = p_customer_trx_id
10858 AND gp_level = 'L' --'D'
10859 GROUP BY line_type;
10860
10861 CURSOR cu_inv_cur IS
10862 SELECT invoice_currency_code,exchange_rate
10863 FROM ra_customer_trx
10864 WHERE customer_trx_id = p_customer_trx_id;
10865 l_inv_currency VARCHAR2(30) := NULL;
10866 l_exchange_rate ra_customer_trx.exchange_rate%type;
10867 l_sum_line_rem_amt DBMS_SQL.NUMBER_TABLE;
10868 l_sum_line_rem_acctd_amt DBMS_SQL.NUMBER_TABLE;
10869 l_sum_line_orig_amt DBMS_SQL.NUMBER_TABLE;
10870 l_sum_line_orig_acctd_amt DBMS_SQL.NUMBER_TABLE;
10871 l_sum_line_chrg_rem_amt DBMS_SQL.NUMBER_TABLE;
10872 l_sum_line_chrg_rem_acctd_amt DBMS_SQL.NUMBER_TABLE;
10873 --
10874 l_sum_line_frt_rem_amt DBMS_SQL.NUMBER_TABLE;
10875 l_sum_line_frt_rem_acctd_amt DBMS_SQL.NUMBER_TABLE;
10876 l_sum_line_frt_orig_amt DBMS_SQL.NUMBER_TABLE;
10877 l_sum_line_frt_orig_acctd_amt DBMS_SQL.NUMBER_TABLE;
10878 --
10879 l_sum_line_tax_rem_amt DBMS_SQL.NUMBER_TABLE;
10880 l_sum_line_tax_rem_acctd_amt DBMS_SQL.NUMBER_TABLE;
10881 l_sum_line_tax_orig_amt DBMS_SQL.NUMBER_TABLE;
10882 l_sum_line_tax_orig_acctd_amt DBMS_SQL.NUMBER_TABLE;
10883 --
10884 l_line_type DBMS_SQL.VARCHAR2_TABLE;
10885 l_ra_ar_gt ra_ar_gt%ROWTYPE;
10886 invoice_has_no_lines EXCEPTION;
10887 not_an_adjustment EXCEPTION;
10888 l_freight_boundary_done VARCHAR2(1) := 'N';
10889 l_line_boundary_done VARCHAR2(1) := 'N';
10890 l_tax_boundary_done VARCHAR2(1) := 'N';
10891 l_chrg_boundary_done VARCHAR2(1) := 'N';
10892 PROCEDURE line_boundary
10893 (p_adj_rec IN ar_adjustments%ROWTYPE,
10894 p_sum_line_orig_amt IN NUMBER,
10895 p_sum_line_rem_amt IN NUMBER,
10896 p_inv_currency IN VARCHAR2,
10897 p_customer_trx_id IN NUMBER,
10898 p_gt_id IN VARCHAR2,
10899 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
10900 P_exchange_rate IN ra_customer_trx.exchange_rate%type)
10901 IS
10902 l_ra_ar_gt ra_ar_gt%ROWTYPE;
10903 l_ar_base_dist_amts_gt ar_base_dist_amts_gt%ROWTYPE;
10904 l_ra_ar_amounts_gt ra_ar_amounts_gt%ROWTYPE;
10905 BEGIN
10906 --Rev line boundary
10907 IF NVL(p_adj_rec.line_adjusted,0) <> 0 AND
10908 NVL(p_sum_line_orig_amt,0) = 0 AND
10909 NVL(p_sum_line_rem_amt,0) = 0
10910 THEN
10911 IF PG_DEBUG = 'Y' THEN
10912 localdebug(' -6 Adjustment Boundary LINE condition met');
10913 END IF;
10914 l_ra_ar_gt.GT_ID := p_gt_id;
10915 l_ra_ar_gt.AMT := p_adj_rec.line_adjusted;
10916 l_ra_ar_gt.ACCTD_AMT := currRound(p_adj_rec.line_adjusted * P_exchange_rate,
10917 p_ae_sys_rec.base_currency);
10918 l_ra_ar_gt.ACCOUNT_CLASS := 'REV';
10919 l_ra_ar_gt.CCID_SECONDARY := NULL; --Normally the auto accounting ccid
10920 l_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID:= -6;
10921 l_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID := -6;
10922 l_ra_ar_gt.REF_CUSTOMER_TRX_ID := p_customer_trx_id;
10923 l_ra_ar_gt.DIST_AMT := p_adj_rec.line_adjusted;
10924 l_ra_ar_gt.DIST_ACCTD_AMT := currRound(p_adj_rec.line_adjusted * P_exchange_rate,
10925 p_ae_sys_rec.base_currency);
10926 l_ra_ar_gt.TO_CURRENCY := p_inv_currency;
10927 l_ra_ar_gt.BASE_CURRENCY := p_ae_sys_rec.base_currency;
10928 l_ra_ar_gt.tl_alloc_amt := p_adj_rec.line_adjusted;
10929 l_ra_ar_gt.tl_alloc_acctd_amt := currRound(p_adj_rec.line_adjusted * P_exchange_rate,
10930 p_ae_sys_rec.base_currency);
10931 l_ra_ar_gt.tl_chrg_alloc_amt := 0;
10932 l_ra_ar_gt.tl_chrg_alloc_acctd_amt := 0;
10933 l_ra_ar_gt.tl_frt_alloc_amt := 0;
10934 l_ra_ar_gt.tl_frt_alloc_acctd_amt := 0;
10935 l_ra_ar_gt.tl_tax_alloc_amt := 0;
10936 l_ra_ar_gt.tl_tax_alloc_acctd_amt := 0;
10937 l_ar_base_dist_amts_gt.base_dist_amt := p_adj_rec.line_adjusted;
10938 l_ar_base_dist_amts_gt.base_dist_acctd_amt := currRound(p_adj_rec.line_adjusted * P_exchange_rate,
10939 p_ae_sys_rec.base_currency);
10940 l_ra_ar_gt.source_type := 'LINE';
10941 l_ra_ar_gt.source_table := 'ADJ';
10942 l_ra_ar_gt.source_id := p_adj_rec.adjustment_id;
10943 l_ra_ar_gt.gp_level := 'D';
10944 l_ra_ar_gt.group_id := '00';
10945 --{HYUBPAGP
10946 l_ra_ar_gt.source_data_key1 := '00';
10947 l_ra_ar_gt.source_data_key2 := '00';
10948 l_ra_ar_gt.source_data_key3 := '00';
10949 l_ra_ar_gt.source_data_key4 := '00';
10950 l_ra_ar_gt.source_data_key5 := '00';
10951 --}
10952 -- l_ra_ar_gt.se_gt_id := g_se_gt_id;
10953 l_ra_ar_gt.set_of_books_id := p_ae_sys_rec.set_of_books_id;
10954 l_ra_ar_gt.sob_type := p_ae_sys_rec.sob_type;
10955 l_ra_ar_gt.activity_bucket := 'ADJ';
10956 insert_ra_ar_gt(p_ra_ar_gt => l_ra_ar_gt,
10957 p_ar_base_dist_amts_gt => l_ar_base_dist_amts_gt,
10958 p_ra_ar_amounts_gt => l_ra_ar_amounts_gt
10959 );
10960 END IF;
10961
10962 --Charge boundary is part of line boundary estimation because frt over revenue line
10963 IF NVL(p_adj_rec.receivables_charges_adjusted,0) <> 0 AND
10964 NVL(p_sum_line_orig_amt,0) = 0 AND
10965 NVL(p_sum_line_rem_amt,0) = 0
10966 THEN
10967 IF PG_DEBUG = 'Y' THEN
10968 localdebug(' -7 Adjustment Boundary CHARGES condition met');
10969 END IF;
10970 l_ra_ar_gt.GT_ID := p_gt_id;
10971 l_ra_ar_gt.AMT := p_adj_rec.receivables_charges_adjusted;
10972 l_ra_ar_gt.ACCTD_AMT := currRound(p_adj_rec.receivables_charges_adjusted * P_exchange_rate,
10973 p_ae_sys_rec.base_currency);
10974 l_ra_ar_gt.ACCOUNT_CLASS := 'REV';
10975 l_ra_ar_gt.CCID_SECONDARY := NULL; --Normally the auto accounting ccid
10976 l_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID:= -7;
10977 l_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID := -7;
10978 l_ra_ar_gt.REF_CUSTOMER_TRX_ID := p_customer_trx_id;
10979 l_ra_ar_gt.DIST_AMT := p_adj_rec.receivables_charges_adjusted;
10980 l_ra_ar_gt.DIST_ACCTD_AMT := currRound(p_adj_rec.receivables_charges_adjusted * P_exchange_rate,
10981 p_ae_sys_rec.base_currency);
10982 l_ra_ar_gt.TO_CURRENCY := p_inv_currency;
10983 l_ra_ar_gt.BASE_CURRENCY := p_ae_sys_rec.base_currency;
10984 l_ra_ar_gt.tl_alloc_amt := 0;
10985 l_ra_ar_gt.tl_alloc_acctd_amt := 0;
10986 l_ra_ar_gt.tl_chrg_alloc_amt := p_adj_rec.receivables_charges_adjusted;
10987 l_ra_ar_gt.tl_chrg_alloc_acctd_amt := currRound(p_adj_rec.receivables_charges_adjusted * P_exchange_rate,
10988 p_ae_sys_rec.base_currency);
10989 l_ra_ar_gt.tl_frt_alloc_amt := 0;
10990 l_ra_ar_gt.tl_frt_alloc_acctd_amt := 0;
10991 l_ra_ar_gt.tl_tax_alloc_amt := 0;
10992 l_ra_ar_gt.tl_tax_alloc_acctd_amt := 0;
10993 l_ar_base_dist_amts_gt.base_dist_amt := p_adj_rec.receivables_charges_adjusted;
10994 l_ar_base_dist_amts_gt.base_dist_acctd_amt := currRound(p_adj_rec.receivables_charges_adjusted * P_exchange_rate,
10995 p_ae_sys_rec.base_currency);
10996 l_ra_ar_gt.source_type := 'CHARGES';
10997 l_ra_ar_gt.source_table := 'ADJ';
10998 l_ra_ar_gt.source_id := p_adj_rec.adjustment_id;
10999 l_ra_ar_gt.gp_level := 'D';
11000 l_ra_ar_gt.group_id := '00';
11001 --{HYUBPAGP
11002 l_ra_ar_gt.source_data_key1 := '00';
11003 l_ra_ar_gt.source_data_key2 := '00';
11004 l_ra_ar_gt.source_data_key3 := '00';
11005 l_ra_ar_gt.source_data_key4 := '00';
11006 l_ra_ar_gt.source_data_key5 := '00';
11007 --}
11008 -- l_ra_ar_gt.se_gt_id := g_se_gt_id;
11009 l_ra_ar_gt.set_of_books_id := p_ae_sys_rec.set_of_books_id;
11010 l_ra_ar_gt.sob_type := p_ae_sys_rec.sob_type;
11011 l_ra_ar_gt.activity_bucket := 'ADJ';
11012 insert_ra_ar_gt(p_ra_ar_gt => l_ra_ar_gt,
11013 p_ar_base_dist_amts_gt => l_ar_base_dist_amts_gt,
11014 p_ra_ar_amounts_gt => l_ra_ar_amounts_gt
11015 );
11016 END IF;
11017
11018 --Frt boundary is part of line boundary estimation because frt over revenue line
11019 IF NVL(p_adj_rec.freight_adjusted,0) <> 0 AND
11020 NVL(p_sum_line_orig_amt,0) = 0 AND
11021 NVL(p_sum_line_rem_amt,0) = 0
11022 THEN
11023 IF PG_DEBUG = 'Y' THEN
11024 localdebug(' -9 Adjustment Boundary FREIGHT condition met');
11025 END IF;
11026 l_ra_ar_gt.GT_ID := p_gt_id;
11027 l_ra_ar_gt.AMT := p_adj_rec.freight_adjusted;
11028 l_ra_ar_gt.ACCTD_AMT := currRound(p_adj_rec.freight_adjusted * P_exchange_rate,
11029 p_ae_sys_rec.base_currency);
11030 l_ra_ar_gt.ACCOUNT_CLASS := 'REV';
11031 l_ra_ar_gt.CCID_SECONDARY := NULL; --Normally the auto accounting ccid
11032 l_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID:= -9;
11033 l_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID := -9;
11034 l_ra_ar_gt.REF_CUSTOMER_TRX_ID := p_customer_trx_id;
11035 l_ra_ar_gt.DIST_AMT := p_adj_rec.freight_adjusted;
11036 l_ra_ar_gt.DIST_ACCTD_AMT := currRound(p_adj_rec.tax_adjusted * P_exchange_rate,
11037 p_ae_sys_rec.base_currency);
11038 l_ra_ar_gt.TO_CURRENCY := p_inv_currency;
11039 l_ra_ar_gt.BASE_CURRENCY := p_ae_sys_rec.base_currency;
11040 l_ra_ar_gt.tl_chrg_alloc_amt := 0;
11041 l_ra_ar_gt.tl_chrg_alloc_acctd_amt := 0;
11042 l_ra_ar_gt.tl_tax_alloc_amt := 0;
11043 l_ra_ar_gt.tl_tax_alloc_acctd_amt := 0;
11044 l_ra_ar_gt.tl_alloc_amt := 0;
11045 l_ra_ar_gt.tl_alloc_acctd_amt := 0;
11046 l_ra_ar_gt.tl_frt_alloc_amt := p_adj_rec.freight_adjusted;
11047 l_ra_ar_gt.tl_frt_alloc_acctd_amt := currRound(p_adj_rec.freight_adjusted * P_exchange_rate,
11048 p_ae_sys_rec.base_currency);
11049 l_ar_base_dist_amts_gt.base_dist_amt := p_adj_rec.freight_adjusted;
11050 l_ar_base_dist_amts_gt.base_dist_acctd_amt := currRound(p_adj_rec.freight_adjusted * P_exchange_rate,
11051 p_ae_sys_rec.base_currency);
11052 l_ra_ar_gt.source_type := 'FREIGHT';
11053 l_ra_ar_gt.source_table := 'ADJ';
11054 l_ra_ar_gt.source_id := p_adj_rec.adjustment_id;
11055 l_ra_ar_gt.gp_level := 'D';
11056 l_ra_ar_gt.group_id := '00';
11057 --{HYUBPAGP
11058 l_ra_ar_gt.source_data_key1 := '00';
11059 l_ra_ar_gt.source_data_key2 := '00';
11060 l_ra_ar_gt.source_data_key3 := '00';
11061 l_ra_ar_gt.source_data_key4 := '00';
11062 l_ra_ar_gt.source_data_key5 := '00';
11063 --}
11064 -- l_ra_ar_gt.se_gt_id := g_se_gt_id;
11065 l_ra_ar_gt.set_of_books_id := p_ae_sys_rec.set_of_books_id;
11066 l_ra_ar_gt.sob_type := p_ae_sys_rec.sob_type;
11067 l_ra_ar_gt.activity_bucket := 'ADJ';
11068 insert_ra_ar_gt(p_ra_ar_gt => l_ra_ar_gt,
11069 p_ar_base_dist_amts_gt => l_ar_base_dist_amts_gt,
11070 p_ra_ar_amounts_gt => l_ra_ar_amounts_gt
11071 );
11072 END IF;
11073 END line_boundary;
11074
11075 PROCEDURE tax_boundary
11076 (p_adj_rec IN ar_adjustments%ROWTYPE,
11077 p_sum_line_tax_orig_amt IN NUMBER,
11078 p_sum_line_tax_rem_amt IN NUMBER,
11079 p_inv_currency IN VARCHAR2,
11080 p_customer_trx_id IN NUMBER,
11081 p_gt_id IN VARCHAR2,
11082 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
11083 P_exchange_rate IN ra_customer_trx.exchange_rate%type)
11084 IS
11085 l_ra_ar_gt ra_ar_gt%ROWTYPE;
11086 l_ar_base_dist_amts_gt ar_base_dist_amts_gt%ROWTYPE;
11087 l_ra_ar_amounts_gt ra_ar_amounts_gt%ROWTYPE;
11088 BEGIN
11089 IF NVL(p_adj_rec.tax_adjusted,0) <> 0 AND
11090 NVL(p_sum_line_tax_orig_amt,0) = 0 AND
11091 NVL(p_sum_line_tax_rem_amt,0) = 0
11092 THEN
11093 IF PG_DEBUG = 'Y' THEN
11094 localdebug(' -8 Adjustment Boundary TAX condition met');
11095 END IF;
11096 l_ra_ar_gt.GT_ID := p_gt_id;
11097 l_ra_ar_gt.AMT := p_adj_rec.tax_adjusted;
11098
11099 /* anjprasa: bug 13375280 - get accounted amount directly from adj record
11100 l_ra_ar_gt.ACCTD_AMT := currRound(p_adj_rec.tax_adjusted * P_exchange_rate,
11101 p_ae_sys_rec.base_currency);*/
11102
11103 l_ra_ar_gt.ACCTD_AMT := p_adj_rec.acctd_amount ;
11104 l_ra_ar_gt.ACCOUNT_CLASS := 'TAX';
11105 l_ra_ar_gt.CCID_SECONDARY := NULL; --Normally the auto accounting ccid
11106 l_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID:= -8;
11107 l_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID := -8;
11108 l_ra_ar_gt.REF_CUSTOMER_TRX_ID := p_customer_trx_id;
11109 l_ra_ar_gt.DIST_AMT := p_adj_rec.tax_adjusted;
11110
11111 /* anjprasa: bug 13375280 - get accounted amount directly from adj record
11112 l_ra_ar_gt.DIST_ACCTD_AMT := currRound(p_adj_rec.tax_adjusted * P_exchange_rate,
11113 p_ae_sys_rec.base_currency);*/
11114 l_ra_ar_gt.DIST_ACCTD_AMT := p_adj_rec.acctd_amount ;
11115 l_ra_ar_gt.TO_CURRENCY := p_inv_currency;
11116 l_ra_ar_gt.BASE_CURRENCY := p_ae_sys_rec.base_currency;
11117 l_ra_ar_gt.tl_chrg_alloc_amt := 0;
11118 l_ra_ar_gt.tl_chrg_alloc_acctd_amt := 0;
11119 l_ra_ar_gt.tl_frt_alloc_amt := 0;
11120 l_ra_ar_gt.tl_frt_alloc_acctd_amt := 0;
11121 l_ra_ar_gt.tl_alloc_amt := 0;
11122 l_ra_ar_gt.tl_alloc_acctd_amt := 0;
11123 l_ra_ar_gt.tl_tax_alloc_amt := p_adj_rec.tax_adjusted;
11124
11125 /* anjprasa: bug 13375280 - get accounted amount directly from adj record
11126 l_ra_ar_gt.tl_tax_alloc_acctd_amt := currRound(p_adj_rec.tax_adjusted * P_exchange_rate,
11127 p_ae_sys_rec.base_currency);*/
11128 l_ra_ar_gt.tl_tax_alloc_acctd_amt := p_adj_rec.acctd_amount ;
11129 l_ar_base_dist_amts_gt.base_dist_amt := p_adj_rec.tax_adjusted;
11130
11131 /* anjprasa: bug 13375280 - get accounted amount directly from adj record
11132 l_ar_base_dist_amts_gt.base_dist_acctd_amt := currRound(p_adj_rec.tax_adjusted * P_exchange_rate,
11133 p_ae_sys_rec.base_currency);*/
11134 l_ar_base_dist_amts_gt.base_dist_acctd_amt := p_adj_rec.acctd_amount ;
11135 l_ra_ar_gt.source_type := 'TAX';
11136 l_ra_ar_gt.source_table := 'ADJ';
11137 l_ra_ar_gt.source_id := p_adj_rec.adjustment_id;
11138 l_ra_ar_gt.gp_level := 'D';
11139 l_ra_ar_gt.group_id := '00';
11140 --{HYUBPAGP
11141 l_ra_ar_gt.source_data_key1 := '00';
11142 l_ra_ar_gt.source_data_key2 := '00';
11143 l_ra_ar_gt.source_data_key3 := '00';
11144 l_ra_ar_gt.source_data_key4 := '00';
11145 l_ra_ar_gt.source_data_key5 := '00';
11146 --}
11147 -- l_ra_ar_gt.se_gt_id := g_se_gt_id;
11148 l_ra_ar_gt.set_of_books_id := p_ae_sys_rec.set_of_books_id;
11149 l_ra_ar_gt.sob_type := p_ae_sys_rec.sob_type;
11150 l_ra_ar_gt.activity_bucket := 'ADJ';
11151 insert_ra_ar_gt(p_ra_ar_gt => l_ra_ar_gt,
11152 p_ar_base_dist_amts_gt => l_ar_base_dist_amts_gt,
11153 p_ra_ar_amounts_gt => l_ra_ar_amounts_gt
11154 );
11155 END IF;
11156 END tax_boundary;
11157 /*
11158 Freight boundary procedure is not usefull at this time because frt adjustment
11159 is over revenue line and not freight lines
11160 Keep this procedure for future
11161
11162 PROCEDURE freight_boundary
11163 (p_adj_rec IN ar_adjustments%ROWTYPE,
11164 p_sum_line_frt_orig_amt IN NUMBER,
11165 p_sum_line_frt_rem_amt IN NUMBER,
11166 p_inv_currency IN VARCHAR2,
11167 p_customer_trx_id IN NUMBER,
11168 p_gt_id IN NUMBER,
11169 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
11170 IS
11171 l_ra_ar_gt ra_ar_gt%ROWTYPE;
11172 BEGIN
11173 IF NVL(p_adj_rec.freight_adjusted,0) <> 0 AND
11174 NVL(p_sum_line_frt_orig_amt,0) = 0 AND
11175 NVL(p_sum_line_frt_rem_amt,0) = 0
11176 THEN
11177 localdebug(' -9 Adjustment Boundary FREIGHT condition met');
11178 l_ra_ar_gt.GT_ID := p_gt_id;
11179 l_ra_ar_gt.AMT := p_adj_rec.freight_adjusted;
11180 l_ra_ar_gt.ACCTD_AMT := currRound(p_adj_rec.freight_adjusted,
11181 p_ae_sys_rec.base_currency);
11182 l_ra_ar_gt.ACCOUNT_CLASS := 'FREIGHT';
11183 l_ra_ar_gt.CCID_SECONDARY := NULL; --Normally the auto accounting ccid
11184 l_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID:= -9;
11185 l_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID := -9;
11186 l_ra_ar_gt.REF_CUSTOMER_TRX_ID := p_customer_trx_id;
11187 l_ra_ar_gt.DIST_AMT := p_adj_rec.freight_adjusted;
11188 l_ra_ar_gt.DIST_ACCTD_AMT := currRound(p_adj_rec.tax_adjusted,
11189 p_ae_sys_rec.base_currency);
11190 l_ra_ar_gt.TO_CURRENCY := p_inv_currency;
11191 l_ra_ar_gt.BASE_CURRENCY := p_ae_sys_rec.base_currency;
11192 l_ra_ar_gt.tl_chrg_alloc_amt := 0;
11193 l_ra_ar_gt.tl_chrg_alloc_acctd_amt := 0;
11194 l_ra_ar_gt.tl_tax_alloc_amt := 0;
11195 l_ra_ar_gt.tl_tax_alloc_acctd_amt := 0;
11196 l_ra_ar_gt.tl_alloc_amt := 0;
11197 l_ra_ar_gt.tl_alloc_acctd_amt := 0;
11198 l_ra_ar_gt.tl_frt_alloc_amt := p_adj_rec.freight_adjusted;
11199 l_ra_ar_gt.tl_frt_alloc_acctd_amt := currRound(p_adj_rec.freight_adjusted,
11200 p_ae_sys_rec.base_currency);
11201 l_ra_ar_gt.base_dist_amt := p_adj_rec.freight_adjusted;
11202 l_ra_ar_gt.base_dist_acctd_amt := currRound(p_adj_rec.freight_adjusted,
11203 p_ae_sys_rec.base_currency);
11204 l_ra_ar_gt.source_type := 'FREIGHT';
11205 l_ra_ar_gt.source_table := 'ADJ';
11206 l_ra_ar_gt.source_id := p_adj_rec.adjustment_id;
11207 l_ra_ar_gt.gp_level := 'D';
11208 l_ra_ar_gt.group_id := '00';
11209 insert_ra_ar_gt(p_ra_ar_gt => l_ra_ar_gt);
11210 END IF;
11211 END freight_boundary;
11212 */
11213 BEGIN
11214 IF PG_DEBUG = 'Y' THEN
11215 localdebug('arp_det_dist_pkg.adjustment_detemination()+');
11216 END IF;
11217
11218 IF p_pay_adj <> 'ADJ' THEN
11219 RAISE not_an_adjustment;
11220 END IF;
11221
11222 OPEN get_sum_per_line_type;
11223 FETCH get_sum_per_line_type BULK COLLECT INTO
11224 l_sum_line_rem_amt ,
11225 l_sum_line_rem_acctd_amt ,
11226 l_sum_line_orig_amt ,
11227 l_sum_line_orig_acctd_amt ,
11228 l_sum_line_chrg_rem_amt ,
11229 l_sum_line_chrg_rem_acctd_amt,
11230 --
11231 l_sum_line_frt_rem_amt ,
11232 l_sum_line_frt_rem_acctd_amt ,
11233 l_sum_line_frt_orig_amt ,
11234 l_sum_line_frt_orig_acctd_amt,
11235 --
11236 l_sum_line_tax_rem_amt ,
11237 l_sum_line_tax_rem_acctd_amt ,
11238 l_sum_line_tax_orig_amt ,
11239 l_sum_line_tax_orig_acctd_amt,
11240 --
11241 l_line_type;
11242 CLOSE get_sum_per_line_type;
11243 /*
11244 OPEN get_sum_per_line_type;
11245 FETCH get_sum_per_line_type BULK COLLECT INTO
11246 l_sum_line_rem_amt ,
11247 l_sum_line_rem_acctd_amt ,
11248 --
11249 l_sum_line_chrg_rem_amt ,
11250 l_sum_line_chrg_rem_acctd_amt,
11251 --
11252 l_sum_line_frt_rem_amt ,
11253 l_sum_line_frt_rem_acctd_amt ,
11254 --
11255 l_sum_line_tax_rem_amt ,
11256 l_sum_line_tax_rem_acctd_amt ,
11257 --
11258 l_line_type;
11259 CLOSE get_sum_per_line_type;
11260 */
11261 IF l_line_type.COUNT = 0 THEN
11262 RAISE invoice_has_no_lines;
11263 END IF;
11264 /*Bug 7698161 Added new parameter in boundary condition for exchange rate
11265 passed value for it in calls for rutines
11266 line_boundary
11267 tax_boundary
11268 Used exchange rate to get accounted amount
11269 */
11270 l_exchange_rate := NULL;
11271 OPEN cu_inv_cur;
11272 FETCH cu_inv_cur INTO l_inv_currency,l_exchange_rate;
11273 CLOSE cu_inv_cur;
11274 l_exchange_rate := nvl(l_exchange_rate,1);
11275
11276 FOR i IN l_line_type.FIRST .. l_line_type.LAST LOOP
11277 IF PG_DEBUG = 'Y' THEN
11278 localdebug(' Current line type :'||l_line_type(i));
11279 END IF;
11280 IF l_line_type(i) IN ('LINE','CB') THEN
11281 line_boundary (p_adj_rec => p_adj_rec,
11282 p_sum_line_orig_amt => l_sum_line_orig_amt(i),
11283 p_sum_line_rem_amt => l_sum_line_rem_amt(i),
11284 p_inv_currency => l_inv_currency,
11285 p_customer_trx_id => p_customer_trx_id,
11286 p_gt_id => p_gt_id,
11287 p_ae_sys_rec => p_ae_sys_rec,
11288 p_exchange_rate => l_exchange_rate);
11289 l_line_boundary_done := 'Y';
11290 l_freight_boundary_done := 'Y';
11291 l_chrg_boundary_done := 'Y';
11292 ELSIF l_line_type(i) = 'TAX' THEN
11293
11294 tax_boundary (p_adj_rec => p_adj_rec,
11295 p_sum_line_tax_orig_amt => l_sum_line_tax_orig_amt(i),
11296 p_sum_line_tax_rem_amt => l_sum_line_tax_rem_amt(i),
11297 p_inv_currency => l_inv_currency,
11298 p_customer_trx_id => p_customer_trx_id,
11299 p_gt_id => p_gt_id,
11300 p_ae_sys_rec => p_ae_sys_rec,
11301 p_exchange_rate => l_exchange_rate);
11302 l_tax_boundary_done := 'Y';
11303
11304 /* Freight adj boundary part on revenue line because frt adj are tied to
11305 Rev lines
11306 ELSIF l_line_type(i) = 'FREIGHT' THEN
11307
11308 freight_boundary(p_adj_rec => p_adj_rec,
11309 p_sum_line_frt_orig_amt => l_sum_line_frt_orig_amt(i),
11310 p_sum_line_frt_rem_amt => l_sum_line_frt_rem_amt(i),
11311 p_inv_currency => l_inv_currency,
11312 p_customer_trx_id => p_customer_trx_id,
11313 p_gt_id => p_gt_id,
11314 p_ae_sys_rec => p_ae_sys_rec);
11315 l_freight_boundary_done := 'Y';
11316 */
11317 END IF;
11318 END LOOP;
11319
11320 IF l_line_boundary_done <> 'Y' THEN
11321 line_boundary (p_adj_rec => p_adj_rec,
11322 p_sum_line_orig_amt => 0,
11323 p_sum_line_rem_amt => 0,
11324 p_inv_currency => l_inv_currency,
11325 p_customer_trx_id => p_customer_trx_id,
11326 p_gt_id => p_gt_id,
11327 p_ae_sys_rec => p_ae_sys_rec,
11328 p_exchange_rate => l_exchange_rate);
11329 l_line_boundary_done := 'Y';
11330 l_freight_boundary_done := 'Y';
11331 l_chrg_boundary_done := 'Y';
11332 END IF;
11333
11334 /*
11335 IF l_freight_boundary_done <> 'Y' THEN
11336 freight_boundary(p_adj_rec => p_adj_rec,
11337 p_sum_line_frt_orig_amt => 0,
11338 p_sum_line_frt_rem_amt => 0,
11339 p_inv_currency => l_inv_currency,
11340 p_customer_trx_id => p_customer_trx_id,
11341 p_gt_id => p_gt_id,
11342 p_ae_sys_rec => p_ae_sys_rec);
11343 l_freight_boundary_done := 'Y';
11344 END IF;
11345 */
11346 IF l_tax_boundary_done <> 'Y' THEN
11347 tax_boundary (p_adj_rec => p_adj_rec,
11348 p_sum_line_tax_orig_amt => 0,
11349 p_sum_line_tax_rem_amt => 0,
11350 p_inv_currency => l_inv_currency,
11351 p_customer_trx_id => p_customer_trx_id,
11352 p_gt_id => p_gt_id,
11353 p_ae_sys_rec => p_ae_sys_rec,
11354 p_exchange_rate => l_exchange_rate);
11355 l_tax_boundary_done := 'Y';
11356 END IF;
11357
11358 IF PG_DEBUG = 'Y' THEN
11359 localdebug('arp_det_dist_pkg.adjustment_detemination()-');
11360 END IF;
11361 EXCEPTION
11362 WHEN not_an_adjustment THEN
11363 IF PG_DEBUG = 'Y' THEN
11364 localdebug(' EXCEPTION not_an_adjustment IN adjustment_detemination:'||'
11365 '|| ' p_customer_trx_id : '||p_customer_trx_id ||'
11366 '|| ' p_pay_adj : '||p_pay_adj);
11367
11368 END IF;
11369 WHEN invoice_has_no_lines THEN
11370 IF PG_DEBUG = 'Y' THEN
11371 localdebug(' EXCEPTION invoice_has_no_lines IN adjustment_detemination:'||'
11372 '|| ' p_customer_trx_id : '||p_customer_trx_id );
11373
11374 END IF;
11375 -- RAISE;
11376 END adjustment_detemination;
11377
11378
11379
11380
11381 PROCEDURE update_group_line
11382 (p_gt_id IN VARCHAR2,
11383 p_customer_trx_id IN NUMBER,
11384 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
11385 IS
11386 CURSOR c_read_for_gline IS
11387 SELECT /*+ leading(B) INDEX(B ra_ar_n1) INDEX(D RA_AR_AMOUNTS_GT_N1)*/
11388 b.group_id groupe,
11389 -- ADJ AND APP
11390 --Base
11391 d.base_pro_amt,
11392 d.base_pro_acctd_amt,
11393 d.base_frt_pro_amt,
11394 d.base_frt_pro_acctd_amt,
11395 d.base_tax_pro_amt,
11396 d.base_tax_pro_acctd_amt,
11397 d.BASE_CHRG_PRO_AMT,
11398 d.BASE_CHRG_PRO_ACCTD_AMT,
11399 --Element
11400 d.elmt_pro_amt,
11401 d.elmt_pro_acctd_amt,
11402 d.elmt_frt_pro_amt,
11403 d.elmt_frt_pro_acctd_amt,
11404 d.elmt_tax_pro_amt,
11405 d.elmt_tax_pro_acctd_amt,
11406 d.ELMT_CHRG_PRO_AMT,
11407 d.ELMT_CHRG_PRO_ACCTD_AMT,
11408 --Amount to be allocated
11409 d.buc_alloc_amt,
11410 d.buc_alloc_acctd_amt,
11411 d.buc_frt_alloc_amt,
11412 d.buc_frt_alloc_acctd_amt,
11413 d.buc_tax_alloc_amt,
11414 d.buc_tax_alloc_acctd_amt,
11415 d.buc_chrg_alloc_amt,
11416 d.buc_chrg_alloc_acctd_amt,
11417 -- ED
11418 --Base
11419 d.base_ed_pro_amt,
11420 d.base_ed_pro_acctd_amt,
11421 d.base_ed_frt_pro_amt,
11422 d.base_ed_frt_pro_acctd_amt,
11423 d.base_ed_tax_pro_amt,
11424 d.base_ed_tax_pro_acctd_amt,
11425 d.BASE_ed_CHRG_PRO_AMT,
11426 d.BASE_ed_CHRG_PRO_ACCTD_AMT,
11427 --Element
11428 d.elmt_ed_pro_amt,
11429 d.elmt_ed_pro_acctd_amt,
11430 d.elmt_ed_frt_pro_amt,
11431 d.elmt_ed_frt_pro_acctd_amt,
11432 d.elmt_ed_tax_pro_amt,
11433 d.elmt_ed_tax_pro_acctd_amt,
11434 d.ELMT_ed_CHRG_PRO_AMT,
11435 d.ELMT_ed_CHRG_PRO_ACCTD_AMT,
11436 --Amount to be allocated
11437 d.buc_ed_alloc_amt,
11438 d.buc_ed_alloc_acctd_amt,
11439 d.buc_ed_frt_alloc_amt,
11440 d.buc_ed_frt_alloc_acctd_amt,
11441 d.buc_ed_tax_alloc_amt,
11442 d.buc_ed_tax_alloc_acctd_amt,
11443 d.buc_ed_chrg_alloc_amt,
11444 d.buc_ed_chrg_alloc_acctd_amt,
11445 -- UNED
11446 --Base
11447 d.base_uned_pro_amt,
11448 d.base_uned_pro_acctd_amt,
11449 d.base_uned_frt_pro_amt,
11450 d.base_uned_frt_pro_acctd_amt,
11451 d.base_uned_tax_pro_amt,
11452 d.base_uned_tax_pro_acctd_amt,
11453 d.BASE_uned_CHRG_PRO_AMT,
11454 d.BASE_uned_CHRG_PRO_ACCTD_AMT,
11455 --Element
11456 d.elmt_uned_pro_amt,
11457 d.elmt_uned_pro_acctd_amt,
11458 d.elmt_uned_frt_pro_amt,
11459 d.elmt_uned_frt_pro_acctd_amt,
11460 d.elmt_uned_tax_pro_amt,
11461 d.elmt_uned_tax_pro_acctd_amt,
11462 d.ELMT_uned_CHRG_PRO_AMT,
11463 d.ELMT_uned_CHRG_PRO_ACCTD_AMT,
11464 --Amount to be allocated
11465 d.buc_uned_alloc_amt,
11466 d.buc_uned_alloc_acctd_amt,
11467 d.buc_uned_frt_alloc_amt,
11468 d.buc_uned_frt_alloc_acctd_amt,
11469 d.buc_uned_tax_alloc_amt,
11470 d.buc_uned_tax_alloc_acctd_amt,
11471 d.buc_uned_chrg_alloc_amt,
11472 d.buc_uned_chrg_alloc_acctd_amt,
11473 ----
11474 --Currencies
11475 b.BASE_CURRENCY ,
11476 b.TO_CURRENCY ,
11477 b.FROM_CURRENCY ,
11478 -- Rowid
11479 b.rowid,
11480 b.line_type
11481 FROM RA_AR_GT b,
11482 RA_AR_AMOUNTS_GT d
11483 WHERE b.gt_id = p_gt_id
11484 AND b.ref_customer_trx_id = p_customer_trx_id
11485 AND b.gp_level = 'GPL'
11486 AND d.gt_id = b.gt_id
11487 AND d.base_rec_rowid = b.rowid
11488 AND b.SET_OF_BOOKS_ID = p_ae_sys_rec.set_of_books_id
11489 AND (b.SOB_TYPE = p_ae_sys_rec.sob_type OR
11490 (b.SOB_TYPE IS NULL AND p_ae_sys_rec.sob_type IS NULL))
11491 ORDER BY b.group_id||'-'||
11492 b.line_type||'-'||
11493 b.ref_customer_trx_line_id;
11494
11495 l_tab pro_res_tbl_type;
11496
11497 l_group_tbl group_tbl_type;
11498 l_group VARCHAR2(60) := 'NOGROUP';
11499
11500 -- ADJ and APP
11501 l_run_amt NUMBER := 0;
11502 l_run_alloc NUMBER := 0;
11503 l_run_acctd_amt NUMBER := 0;
11504 l_run_acctd_alloc NUMBER := 0;
11505 l_alloc NUMBER := 0;
11506 l_acctd_alloc NUMBER := 0;
11507
11508 l_run_chrg_amt NUMBER := 0;
11509 l_run_chrg_alloc NUMBER := 0;
11510 l_run_chrg_acctd_amt NUMBER := 0;
11511 l_run_chrg_acctd_alloc NUMBER := 0;
11512 l_chrg_alloc NUMBER := 0;
11513 l_chrg_acctd_alloc NUMBER := 0;
11514
11515 l_run_frt_amt NUMBER := 0;
11516 l_run_frt_alloc NUMBER := 0;
11517 l_run_frt_acctd_amt NUMBER := 0;
11518 l_run_frt_acctd_alloc NUMBER := 0;
11519 l_frt_alloc NUMBER := 0;
11520 l_frt_acctd_alloc NUMBER := 0;
11521
11522 l_run_tax_amt NUMBER := 0;
11523 l_run_tax_alloc NUMBER := 0;
11524 l_run_tax_acctd_amt NUMBER := 0;
11525 l_run_tax_acctd_alloc NUMBER := 0;
11526 l_tax_alloc NUMBER := 0;
11527 l_tax_acctd_alloc NUMBER := 0;
11528
11529 -- ED
11530 l_run_ed_amt NUMBER := 0;
11531 l_run_ed_alloc NUMBER := 0;
11532 l_run_ed_acctd_amt NUMBER := 0;
11533 l_run_ed_acctd_alloc NUMBER := 0;
11534 l_ed_alloc NUMBER := 0;
11535 l_ed_acctd_alloc NUMBER := 0;
11536
11537 l_run_ed_chrg_amt NUMBER := 0;
11538 l_run_ed_chrg_alloc NUMBER := 0;
11539 l_run_ed_chrg_acctd_amt NUMBER := 0;
11540 l_run_ed_chrg_acctd_alloc NUMBER := 0;
11541 l_ed_chrg_alloc NUMBER := 0;
11542 l_ed_chrg_acctd_alloc NUMBER := 0;
11543
11544 l_run_ed_frt_amt NUMBER := 0;
11545 l_run_ed_frt_alloc NUMBER := 0;
11546 l_run_ed_frt_acctd_amt NUMBER := 0;
11547 l_run_ed_frt_acctd_alloc NUMBER := 0;
11548 l_ed_frt_alloc NUMBER := 0;
11549 l_ed_frt_acctd_alloc NUMBER := 0;
11550
11551 l_run_ed_tax_amt NUMBER := 0;
11552 l_run_ed_tax_alloc NUMBER := 0;
11553 l_run_ed_tax_acctd_amt NUMBER := 0;
11554 l_run_ed_tax_acctd_alloc NUMBER := 0;
11555 l_ed_tax_alloc NUMBER := 0;
11556 l_ed_tax_acctd_alloc NUMBER := 0;
11557
11558 -- UNED
11559 l_run_uned_amt NUMBER := 0;
11560 l_run_uned_alloc NUMBER := 0;
11561 l_run_uned_acctd_amt NUMBER := 0;
11562 l_run_uned_acctd_alloc NUMBER := 0;
11563 l_uned_alloc NUMBER := 0;
11564 l_uned_acctd_alloc NUMBER := 0;
11565
11566 l_run_uned_chrg_amt NUMBER := 0;
11567 l_run_uned_chrg_alloc NUMBER := 0;
11568 l_run_uned_chrg_acctd_amt NUMBER := 0;
11569 l_run_uned_chrg_acctd_alloc NUMBER := 0;
11570 l_uned_chrg_alloc NUMBER := 0;
11571 l_uned_chrg_acctd_alloc NUMBER := 0;
11572
11573 l_run_uned_frt_amt NUMBER := 0;
11574 l_run_uned_frt_alloc NUMBER := 0;
11575 l_run_uned_frt_acctd_amt NUMBER := 0;
11576 l_run_uned_frt_acctd_alloc NUMBER := 0;
11577 l_uned_frt_alloc NUMBER := 0;
11578 l_uned_frt_acctd_alloc NUMBER := 0;
11579
11580 l_run_uned_tax_amt NUMBER := 0;
11581 l_run_uned_tax_alloc NUMBER := 0;
11582 l_run_uned_tax_acctd_amt NUMBER := 0;
11583 l_run_uned_tax_acctd_alloc NUMBER := 0;
11584 l_uned_tax_alloc NUMBER := 0;
11585 l_uned_tax_acctd_alloc NUMBER := 0;
11586
11587 l_exist BOOLEAN;
11588 l_last_fetch BOOLEAN;
11589
11590 BEGIN
11591 IF PG_DEBUG = 'Y' THEN
11592 localdebug('arp_det_dist_pkg.update_group_line()+');
11593 END IF;
11594
11595 OPEN c_read_for_gline;
11596 LOOP
11597 FETCH c_read_for_gline BULK COLLECT INTO
11598 l_tab.GROUPE ,
11599 -- ADJ and APP
11600 -- Base
11601 l_tab.base_pro_amt ,
11602 l_tab.base_pro_acctd_amt ,
11603 l_tab.base_frt_pro_amt ,
11604 l_tab.base_frt_pro_acctd_amt ,
11605 l_tab.base_tax_pro_amt ,
11606 l_tab.base_tax_pro_acctd_amt ,
11607 l_tab.BASE_CHRG_PRO_AMT ,
11608 l_tab.BASE_CHRG_PRO_ACCTD_AMT ,
11609 -- Element numerator
11610 l_tab.elmt_pro_amt ,
11611 l_tab.elmt_pro_acctd_amt ,
11612 l_tab.elmt_frt_pro_amt ,
11613 l_tab.elmt_frt_pro_acctd_amt ,
11614 l_tab.elmt_tax_pro_amt ,
11615 l_tab.elmt_tax_pro_acctd_amt ,
11616 l_tab.ELMT_CHRG_PRO_AMT ,
11617 l_tab.ELMT_CHRG_PRO_ACCTD_AMT ,
11618 -- Amount to be allocated
11619 l_tab.buc_alloc_amt ,
11620 l_tab.buc_alloc_acctd_amt,
11621 l_tab.buc_frt_alloc_amt ,
11622 l_tab.buc_frt_alloc_acctd_amt,
11623 l_tab.buc_tax_alloc_amt ,
11624 l_tab.buc_tax_alloc_acctd_amt,
11625 l_tab.buc_chrg_alloc_amt ,
11626 l_tab.buc_chrg_alloc_acctd_amt,
11627 -- ED
11628 -- Base
11629 l_tab.base_ed_pro_amt ,
11630 l_tab.base_ed_pro_acctd_amt ,
11631 l_tab.base_ed_frt_pro_amt ,
11632 l_tab.base_ed_frt_pro_acctd_amt ,
11633 l_tab.base_ed_tax_pro_amt ,
11634 l_tab.base_ed_tax_pro_acctd_amt ,
11635 l_tab.BASE_ed_CHRG_PRO_AMT ,
11636 l_tab.BASE_ed_CHRG_PRO_ACCTD_AMT ,
11637 -- Element numerator
11638 l_tab.elmt_ed_pro_amt ,
11639 l_tab.elmt_ed_pro_acctd_amt ,
11640 l_tab.elmt_ed_frt_pro_amt ,
11641 l_tab.elmt_ed_frt_pro_acctd_amt ,
11642 l_tab.elmt_ed_tax_pro_amt ,
11643 l_tab.elmt_ed_tax_pro_acctd_amt ,
11644 l_tab.ELMT_ed_CHRG_PRO_AMT ,
11645 l_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT ,
11646 -- Amount to be allocated
11647 l_tab.buc_ed_alloc_amt ,
11648 l_tab.buc_ed_alloc_acctd_amt,
11649 l_tab.buc_ed_frt_alloc_amt ,
11650 l_tab.buc_ed_frt_alloc_acctd_amt,
11651 l_tab.buc_ed_tax_alloc_amt ,
11652 l_tab.buc_ed_tax_alloc_acctd_amt,
11653 l_tab.buc_ed_chrg_alloc_amt ,
11654 l_tab.buc_ed_chrg_alloc_acctd_amt,
11655 -- UNED
11656 -- Base
11657 l_tab.base_uned_pro_amt ,
11658 l_tab.base_uned_pro_acctd_amt ,
11659 l_tab.base_uned_frt_pro_amt ,
11660 l_tab.base_uned_frt_pro_acctd_amt ,
11661 l_tab.base_uned_tax_pro_amt ,
11662 l_tab.base_uned_tax_pro_acctd_amt ,
11663 l_tab.BASE_uned_CHRG_PRO_AMT ,
11664 l_tab.BASE_uned_CHRG_PRO_ACCTD_AMT ,
11665 -- Element numerator
11666 l_tab.elmt_uned_pro_amt ,
11667 l_tab.elmt_uned_pro_acctd_amt ,
11668 l_tab.elmt_uned_frt_pro_amt ,
11669 l_tab.elmt_uned_frt_pro_acctd_amt ,
11670 l_tab.elmt_uned_tax_pro_amt ,
11671 l_tab.elmt_uned_tax_pro_acctd_amt ,
11672 l_tab.ELMT_uned_CHRG_PRO_AMT ,
11673 l_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT ,
11674 -- Amount to be allocated
11675 l_tab.buc_uned_alloc_amt ,
11676 l_tab.buc_uned_alloc_acctd_amt,
11677 l_tab.buc_uned_frt_alloc_amt ,
11678 l_tab.buc_uned_frt_alloc_acctd_amt,
11679 l_tab.buc_uned_tax_alloc_amt ,
11680 l_tab.buc_uned_tax_alloc_acctd_amt,
11681 l_tab.buc_uned_chrg_alloc_amt ,
11682 l_tab.buc_uned_chrg_alloc_acctd_amt,
11683 --
11684 l_tab.BASE_CURRENCY ,
11685 l_tab.TO_CURRENCY ,
11686 l_tab.FROM_CURRENCY ,
11687 --
11688 l_tab.ROWID_ID,
11689 l_tab.line_type LIMIT g_bulk_fetch_rows;
11690
11691 IF c_read_for_gline%NOTFOUND THEN
11692 l_last_fetch := TRUE;
11693 END IF;
11694
11695 IF (l_tab.ROWID_ID.COUNT = 0) AND (l_last_fetch) THEN
11696 IF PG_DEBUG = 'Y' THEN
11697 localdebug('COUNT = 0 and LAST FETCH ');
11698 END IF;
11699 EXIT;
11700 END IF;
11701
11702 plsql_proration( x_tab => l_tab,
11703 x_group_tbl => l_group_tbl,
11704 -- ADJ and APP
11705 x_run_amt => l_run_amt,
11706 x_run_alloc => l_run_alloc,
11707 x_run_acctd_amt => l_run_acctd_amt,
11708 x_run_acctd_alloc => l_run_acctd_alloc,
11709 x_run_frt_amt => l_run_frt_amt,
11710 x_run_frt_alloc => l_run_frt_alloc,
11711 x_run_frt_acctd_amt => l_run_frt_acctd_amt,
11712 x_run_frt_acctd_alloc => l_run_frt_acctd_alloc,
11713 x_run_tax_amt => l_run_tax_amt,
11714 x_run_tax_alloc => l_run_tax_alloc,
11715 x_run_tax_acctd_amt => l_run_tax_acctd_amt,
11716 x_run_tax_acctd_alloc => l_run_tax_acctd_alloc,
11717 x_run_chrg_amt => l_run_chrg_amt,
11718 x_run_chrg_alloc => l_run_chrg_alloc,
11719 x_run_chrg_acctd_amt => l_run_chrg_acctd_amt,
11720 x_run_chrg_acctd_alloc => l_run_chrg_acctd_alloc,
11721 -- ED
11722 x_run_ed_amt => l_run_ed_amt,
11723 x_run_ed_alloc => l_run_ed_alloc,
11724 x_run_ed_acctd_amt => l_run_ed_acctd_amt,
11725 x_run_ed_acctd_alloc => l_run_ed_acctd_alloc,
11726 x_run_ed_frt_amt => l_run_ed_frt_amt,
11727 x_run_ed_frt_alloc => l_run_ed_frt_alloc,
11728 x_run_ed_frt_acctd_amt => l_run_ed_frt_acctd_amt,
11729 x_run_ed_frt_acctd_alloc => l_run_ed_frt_acctd_alloc,
11730 x_run_ed_tax_amt => l_run_ed_tax_amt,
11731 x_run_ed_tax_alloc => l_run_ed_tax_alloc,
11732 x_run_ed_tax_acctd_amt => l_run_ed_tax_acctd_amt,
11733 x_run_ed_tax_acctd_alloc => l_run_ed_tax_acctd_alloc,
11734 x_run_ed_chrg_amt => l_run_ed_chrg_amt,
11735 x_run_ed_chrg_alloc => l_run_ed_chrg_alloc,
11736 x_run_ed_chrg_acctd_amt => l_run_ed_chrg_acctd_amt,
11737 x_run_ed_chrg_acctd_alloc => l_run_ed_chrg_acctd_alloc,
11738 -- UNED
11739 x_run_uned_amt => l_run_uned_amt,
11740 x_run_uned_alloc => l_run_uned_alloc,
11741 x_run_uned_acctd_amt => l_run_uned_acctd_amt,
11742 x_run_uned_acctd_alloc => l_run_uned_acctd_alloc,
11743 x_run_uned_frt_amt => l_run_uned_frt_amt,
11744 x_run_uned_frt_alloc => l_run_uned_frt_alloc,
11745 x_run_uned_frt_acctd_amt => l_run_uned_frt_acctd_amt,
11746 x_run_uned_frt_acctd_alloc => l_run_uned_frt_acctd_alloc,
11747 x_run_uned_tax_amt => l_run_uned_tax_amt,
11748 x_run_uned_tax_alloc => l_run_uned_tax_alloc,
11749 x_run_uned_tax_acctd_amt => l_run_uned_tax_acctd_amt,
11750 x_run_uned_tax_acctd_alloc => l_run_uned_tax_acctd_alloc,
11751 x_run_uned_chrg_amt => l_run_uned_chrg_amt,
11752 x_run_uned_chrg_alloc => l_run_uned_chrg_alloc,
11753 x_run_uned_chrg_acctd_amt => l_run_uned_chrg_acctd_amt,
11754 x_run_uned_chrg_acctd_alloc => l_run_uned_chrg_acctd_alloc);
11755
11756 IF PG_DEBUG = 'Y' THEN
11757 localdebug('update ra_ar_gt trx_line_all ');
11758 END IF;
11759 FORALL i IN l_tab.ROWID_ID.FIRST .. l_tab.ROWID_ID.LAST
11760 UPDATE ra_ar_gt
11761 SET
11762 -- ADJ and APP
11763 tl_alloc_amt = l_tab.tl_alloc_amt(i),
11764 tl_alloc_acctd_amt = l_tab.tl_alloc_acctd_amt(i),
11765 tl_frt_alloc_amt = l_tab.tl_frt_alloc_amt(i),
11766 tl_frt_alloc_acctd_amt = l_tab.tl_frt_alloc_acctd_amt(i),
11767 tl_tax_alloc_amt = l_tab.tl_tax_alloc_amt(i),
11768 tl_tax_alloc_acctd_amt = l_tab.tl_tax_alloc_acctd_amt(i),
11769 tl_chrg_alloc_amt = l_tab.tl_chrg_alloc_amt(i),
11770 tl_chrg_alloc_acctd_amt = l_tab.tl_chrg_alloc_acctd_amt(i),
11771 -- ED
11772 tl_ed_alloc_amt = l_tab.tl_ed_alloc_amt(i),
11773 tl_ed_alloc_acctd_amt = l_tab.tl_ed_alloc_acctd_amt(i),
11774 tl_ed_frt_alloc_amt = l_tab.tl_ed_frt_alloc_amt(i),
11775 tl_ed_frt_alloc_acctd_amt = l_tab.tl_ed_frt_alloc_acctd_amt(i),
11776 tl_ed_tax_alloc_amt = l_tab.tl_ed_tax_alloc_amt(i),
11777 tl_ed_tax_alloc_acctd_amt = l_tab.tl_ed_tax_alloc_acctd_amt(i),
11778 tl_ed_chrg_alloc_amt = l_tab.tl_ed_chrg_alloc_amt(i),
11779 tl_ed_chrg_alloc_acctd_amt = l_tab.tl_ed_chrg_alloc_acctd_amt(i),
11780 -- UNED
11781 tl_uned_alloc_amt = l_tab.tl_uned_alloc_amt(i),
11782 tl_uned_alloc_acctd_amt = l_tab.tl_uned_alloc_acctd_amt(i),
11783 tl_uned_frt_alloc_amt = l_tab.tl_uned_frt_alloc_amt(i),
11784 tl_uned_frt_alloc_acctd_amt = l_tab.tl_uned_frt_alloc_acctd_amt(i),
11785 tl_uned_tax_alloc_amt = l_tab.tl_uned_tax_alloc_amt(i),
11786 tl_uned_tax_alloc_acctd_amt = l_tab.tl_uned_tax_alloc_acctd_amt(i),
11787 tl_uned_chrg_alloc_amt = l_tab.tl_uned_chrg_alloc_amt(i),
11788 tl_uned_chrg_alloc_acctd_amt = l_tab.tl_uned_chrg_alloc_acctd_amt(i)
11789 WHERE rowid = l_tab.ROWID_ID(i);
11790
11791 END LOOP;
11792 CLOSE c_read_for_gline;
11793
11794 IF PG_DEBUG = 'Y' THEN
11795 localdebug('arp_det_dist_pkg.update_group_line()-');
11796 END IF;
11797 END update_group_line;
11798
11799
11800 PROCEDURE get_invoice_line_info_per_grp
11801 (p_gt_id IN VARCHAR2,
11802 p_customer_trx_id IN NUMBER,
11803 -- p_group_id IN VARCHAR2,
11804 --{HYUBPAGP
11805 p_source_data_key1 IN VARCHAR2,
11806 p_source_data_key2 IN VARCHAR2,
11807 p_source_data_key3 IN VARCHAR2,
11808 p_source_data_key4 IN VARCHAR2,
11809 p_source_data_key5 IN VARCHAR2,
11810 --}
11811 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
11812 IS
11813 l_rows NUMBER;
11814 BEGIN
11815 IF PG_DEBUG = 'Y' THEN
11816 localdebug('arp_det_dist_pkg.get_invoice_line_info_per_grp()+');
11817 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
11818 localdebug(' p_source_data_key1 :'||p_source_data_key1);
11819 localdebug(' p_source_data_key2 :'||p_source_data_key2);
11820 localdebug(' p_source_data_key3 :'||p_source_data_key3);
11821 localdebug(' p_source_data_key4 :'||p_source_data_key4);
11822 localdebug(' p_source_data_key5 :'||p_source_data_key5);
11823 localdebug(' p_gt_id :'||p_gt_id);
11824 END IF;
11825
11826 INSERT INTO RA_AR_GT
11827 ( GT_ID ,
11828 BASE_CURRENCY ,
11829 TO_CURRENCY ,
11830 REF_CUSTOMER_TRX_ID ,
11831 REF_CUSTOMER_TRX_LINE_ID ,
11832 --
11833 DUE_ORIG_AMT ,
11834 DUE_ORIG_ACCTD_AMT ,
11835 --{line of type CHRG
11836 CHRG_ORIG_AMT ,
11837 CHRG_ORIG_ACCTD_AMT ,
11838 --}
11839 --
11840 FRT_ORIG_AMT ,
11841 FRT_ORIG_ACCTD_AMT ,
11842 TAX_ORIG_AMT ,
11843 TAX_ORIG_ACCTD_AMT ,
11844 --
11845 DUE_REM_AMT ,
11846 DUE_REM_ACCTD_AMT ,
11847 CHRG_REM_AMT ,
11848 CHRG_REM_ACCTD_AMT ,
11849 --
11850 FRT_REM_AMT ,
11851 FRT_REM_ACCTD_AMT ,
11852 TAX_REM_AMT ,
11853 TAX_REM_ACCTD_AMT ,
11854 --
11855 --{line of type CHRG
11856 CHRG_ADJ_REM_AMT ,
11857 CHRG_ADJ_REM_ACCTD_AMT ,
11858 --}
11859 FRT_ADJ_REM_AMT ,
11860 FRT_ADJ_REM_ACCTD_AMT ,
11861 --
11862 LINE_TYPE ,
11863 group_id ,
11864 --{For Group identification
11865 source_data_key1 ,
11866 source_data_key2 ,
11867 source_data_key3 ,
11868 source_data_key4 ,
11869 source_data_key5 ,
11870 --}
11871 --
11872 SUM_LINE_ORIG_AMT ,
11873 SUM_LINE_ORIG_ACCTD_AMT ,
11874 --{line of type CHRG
11875 SUM_LINE_CHRG_ORIG_AMT ,
11876 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
11877 --}
11878 SUM_LINE_FRT_ORIG_AMT ,
11879 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
11880 SUM_LINE_TAX_ORIG_AMT ,
11881 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
11882 --
11883 SUM_LINE_REM_AMT ,
11884 SUM_LINE_REM_ACCTD_AMT ,
11885 SUM_LINE_CHRG_REM_AMT ,
11886 SUM_LINE_CHRG_REM_ACCTD_AMT,
11887 --
11888 SUM_LINE_FRT_REM_AMT ,
11889 SUM_LINE_FRT_REM_ACCTD_AMT ,
11890 SUM_LINE_TAX_REM_AMT ,
11891 SUM_LINE_TAX_REM_ACCTD_AMT ,
11892 --
11893 gp_level,
11894 --
11895 set_of_books_id,
11896 sob_type
11897 -- se_gt_id
11898 )
11899 SELECT /*+INDEX (ctl ra_customer_trx_lines_gt_n1)*/
11900 p_gt_id , --GT_ID
11901 p_ae_sys_rec.base_currency , --BASE_CURRENCY
11902 trx.invoice_currency_code , --TO_CURRENCY
11903 trx.customer_trx_id , --REF_CUSTOMER_TRX_ID
11904 ctl.customer_trx_line_id , --REF_CUSTOMER_TRX_LINE_ID
11905 -- Orig
11906 DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
11907 'CB' ,ctl.amount_due_original,0), --DUE_ORIG_AMT
11908 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
11909 'CB' ,ctl.acctd_amount_due_original,0), --DUE_ORIG_ACCTD_AMT
11910 --{line of type CHRG
11911 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0), --CHRG_ORIG_AMT
11912 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0), --CHRG_ORIG_ACCTD_AMT
11913 --}
11914 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0), --FRT_ORIG_AMT
11915 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0), --FRT_ORIG_ACCTD_AMT
11916 DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0), --TAX_ORIG_AMT
11917 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0), --TAX_ORIG_ACCTD_AMT
11918 -- Remaining
11919 DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
11920 'CB' ,ctl.amount_due_remaining,0) , --DUE_REM_AMT
11921 DECODE(ctl.line_type,'LINE',acctd_amount_due_remaining,
11922 'CB' ,acctd_amount_due_remaining,0), --DUE_REM_ACCTD_AMT
11923 --{line of type CHRG
11924 -- ctl.chrg_amount_remaining ,
11925 -- ctl.chrg_acctd_amount_remaining,
11926 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_remaining,0) , --CHRG_REM_AMT
11927 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_remaining,0),--CHRG_REM_ACCTD_AMT
11928 --}
11929 --
11930 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_remaining,0) , --FRT_REM_AMT
11931 /*Frt Rem on freight is the
11932 rem amount of the freight calculated
11933 from orig frt - cash application
11934 frt adjustment variations are excluded
11935 they are kept in frt_adj_rem_amt on rev line */
11936 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_remaining,0), --FRT_REM_ACCTD_AMT
11937 DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0) , --TAX_REM_AMT
11938 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0), --TAX_REM_ACCTD_AMT
11939 --
11940 --{line of type CHRG
11941 ctl.chrg_amount_remaining , --chrg_amount_remaining
11942 ctl.chrg_acctd_amount_remaining , --chrg_acctd_amount_remaining
11943 --}
11944 ctl.frt_adj_remaining , --FRT_ADJ_REM_AMT
11945 ctl.frt_adj_acctd_remaining , --FRT_ADJ_REM_ACCTD_AMT
11946 --
11947 ctl.line_type , --LINE_TYPE
11948 -- NVL(ctl.SOURCE_DATA_KEY1,'00'), --GROUP_ID
11949 DECODE(ctl.SOURCE_DATA_KEY1 ||
11950 ctl.SOURCE_DATA_KEY2 ||
11951 ctl.SOURCE_DATA_KEY3 ||
11952 ctl.SOURCE_DATA_KEY4 ||
11953 ctl.SOURCE_DATA_KEY5, NULL, '00',
11954 ctl.SOURCE_DATA_KEY1 ||'-'||
11955 ctl.SOURCE_DATA_KEY2 ||'-'||
11956 ctl.SOURCE_DATA_KEY3 ||'-'||
11957 ctl.SOURCE_DATA_KEY4 ||'-'||
11958 ctl.SOURCE_DATA_KEY5), --GROUP_ID
11959 --{Group identification
11960 NVL(ctl.source_data_key1,'00'),
11961 NVL(ctl.source_data_key2,'00'),
11962 NVL(ctl.source_data_key3,'00'),
11963 NVL(ctl.source_data_key4,'00'),
11964 NVL(ctl.source_data_key5,'00'),
11965 --}
11966 --
11967 SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
11968 'CB' ,ctl.amount_due_original,0))
11969 OVER (PARTITION BY trx.customer_trx_id,
11970 NVL(ctl.SOURCE_DATA_KEY1,'00'),
11971 NVL(ctl.SOURCE_DATA_KEY2,'00'),
11972 NVL(ctl.SOURCE_DATA_KEY3,'00'),
11973 NVL(ctl.SOURCE_DATA_KEY4,'00'),
11974 NVL(ctl.SOURCE_DATA_KEY5,'00'),
11975 ctl.line_type ), --SUM_LINE_ORIG_AMT
11976 SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
11977 'CB' ,ctl.acctd_amount_due_original,0))
11978 OVER (PARTITION BY trx.customer_trx_id,
11979 NVL(ctl.SOURCE_DATA_KEY1,'00'),
11980 NVL(ctl.SOURCE_DATA_KEY2,'00'),
11981 NVL(ctl.SOURCE_DATA_KEY3,'00'),
11982 NVL(ctl.SOURCE_DATA_KEY4,'00'),
11983 NVL(ctl.SOURCE_DATA_KEY5,'00'),
11984 ctl.line_type ), --SUM_LINE_ORIG_ACCTD_AMT
11985 --{line of type CHRG
11986 SUM(DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0))
11987 OVER (PARTITION BY trx.customer_trx_id,
11988 NVL(ctl.SOURCE_DATA_KEY1,'00'),
11989 NVL(ctl.SOURCE_DATA_KEY2,'00'),
11990 NVL(ctl.SOURCE_DATA_KEY3,'00'),
11991 NVL(ctl.SOURCE_DATA_KEY4,'00'),
11992 NVL(ctl.SOURCE_DATA_KEY5,'00'),
11993 ctl.line_type ), --SUM_LINE_CHRG_ORIG_AMT
11994 SUM(DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0))
11995 OVER (PARTITION BY trx.customer_trx_id,
11996 NVL(ctl.SOURCE_DATA_KEY1,'00'),
11997 NVL(ctl.SOURCE_DATA_KEY2,'00'),
11998 NVL(ctl.SOURCE_DATA_KEY3,'00'),
11999 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12000 NVL(ctl.SOURCE_DATA_KEY5,'00'),
12001 ctl.line_type ), --SUM_LINE_CHRG_ORIG_ACCTD_AMT
12002 --}
12003 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0))
12004 OVER (PARTITION BY trx.customer_trx_id,
12005 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12006 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12007 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12008 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12009 NVL(ctl.SOURCE_DATA_KEY5,'00'),
12010 ctl.line_type ), --SUM_LINE_FRT_ORIG_AMT
12011 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0))
12012 OVER (PARTITION BY trx.customer_trx_id,
12013 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12014 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12015 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12016 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12017 NVL(ctl.SOURCE_DATA_KEY5,'00'),
12018 ctl.line_type ), --SUM_LINE_FRT_ORIG_ACCTD_AMT
12019 SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0))
12020 OVER (PARTITION BY trx.customer_trx_id,
12021 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12022 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12023 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12024 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12025 NVL(ctl.SOURCE_DATA_KEY5,'00'),
12026 ctl.line_type ), --SUM_LINE_TAX_ORIG_AMT
12027 SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0))
12028 OVER (PARTITION BY trx.customer_trx_id,
12029 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12030 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12031 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12032 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12033 NVL(ctl.SOURCE_DATA_KEY5,'00'),
12034 ctl.line_type ), --SUM_LINE_TAX_ORIG_ACCTD_AMT
12035 --
12036 SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
12037 'CB' ,ctl.amount_due_remaining,0))
12038 OVER (PARTITION BY trx.customer_trx_id,
12039 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12040 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12041 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12042 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12043 NVL(ctl.SOURCE_DATA_KEY5,'00'),
12044 ctl.line_type ), --SUM_LINE_REM_AMT
12045 SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
12046 'CB' ,ctl.acctd_amount_due_remaining,0))
12047 OVER (PARTITION BY trx.customer_trx_id,
12048 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12049 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12050 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12051 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12052 NVL(ctl.SOURCE_DATA_KEY5,'00'),
12053 ctl.line_type ), --SUM_LINE_REM_ACCTD_AMT
12054 --{line of type CHRG
12055 SUM(DECODE
12056 (ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
12057 'CB' ,NVL(ctl.chrg_amount_remaining,0),
12058 'CHARGES',NVL(ctl.amount_due_remaining,0),
12059 0)) OVER (PARTITION BY trx.customer_trx_id,
12060 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12061 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12062 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12063 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12064 NVL(ctl.SOURCE_DATA_KEY5,'00') ),--SUM_LINE_CHRG_REM_AMT
12065 SUM(DECODE
12066 (ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
12067 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
12068 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
12069 0)) OVER (PARTITION BY trx.customer_trx_id,
12070 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12071 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12072 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12073 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12074 NVL(ctl.SOURCE_DATA_KEY5,'00') ),--SUM_LINE_CHRG_REM_ACCTD_AMT
12075 -- SUM(ctl.chrg_amount_remaining)
12076 -- OVER (PARTITION BY trx.customer_trx_id,
12077 -- NVL(ctl.SOURCE_DATA_KEY1,'00'),
12078 -- NVL(ctl.SOURCE_DATA_KEY2,'00'),
12079 -- NVL(ctl.SOURCE_DATA_KEY3,'00'),
12080 -- NVL(ctl.SOURCE_DATA_KEY4,'00'),
12081 -- NVL(ctl.SOURCE_DATA_KEY5,'00'),
12082 -- ctl.line_type ), --SUM_LINE_CHRG_REM_AMT
12083 -- SUM(ctl.chrg_acctd_amount_remaining)
12084 -- OVER (PARTITION BY trx.customer_trx_id,
12085 -- NVL(ctl.SOURCE_DATA_KEY1,'00'),
12086 -- NVL(ctl.SOURCE_DATA_KEY2,'00'),
12087 -- NVL(ctl.SOURCE_DATA_KEY3,'00'),
12088 -- NVL(ctl.SOURCE_DATA_KEY4,'00'),
12089 -- NVL(ctl.SOURCE_DATA_KEY5,'00'),
12090 -- ctl.line_type ), --SUM_LINE_CHRG_REM_ACCTD_AMT
12091 --}
12092 --
12093 /* This is the sum of freight amount adjusted on the revenue line
12094 + sum of freight amount due remaining on the original freight line
12095 Those 2 amounts combined form the basis for cash receipt apps */
12096 SUM(DECODE
12097 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
12098 'CB' ,NVL(ctl.frt_adj_remaining,0),
12099 'FREIGHT',NVL(ctl.amount_due_remaining,0),
12100 0)) OVER (PARTITION BY trx.customer_trx_id,
12101 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12102 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12103 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12104 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12105 NVL(ctl.SOURCE_DATA_KEY5,'00') ),--SUM_LINE_FRT_REM_AMT
12106 SUM(DECODE
12107 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
12108 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
12109 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
12110 0)) OVER (PARTITION BY trx.customer_trx_id,
12111 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12112 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12113 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12114 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12115 NVL(ctl.SOURCE_DATA_KEY5,'00') ),--SUM_LINE_FRT_REM_ACCTD_AMT
12116 SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0))
12117 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type,
12118 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12119 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12120 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12121 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12122 NVL(ctl.SOURCE_DATA_KEY5,'00')), --SUM_LINE_TAX_REM_AMT
12123 SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0))
12124 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type,
12125 NVL(ctl.SOURCE_DATA_KEY1,'00'),
12126 NVL(ctl.SOURCE_DATA_KEY2,'00'),
12127 NVL(ctl.SOURCE_DATA_KEY3,'00'),
12128 NVL(ctl.SOURCE_DATA_KEY4,'00'),
12129 NVL(ctl.SOURCE_DATA_KEY5,'00')), --SUM_LINE_TAX_REM_ACCTD_AMT
12130 --
12131 'L',
12132 --
12133 p_ae_sys_rec.set_of_books_id,
12134 p_ae_sys_rec.sob_type
12135 -- g_se_gt_id
12136 FROM ra_customer_trx trx,
12137 ra_customer_trx_lines_gt ctl
12138 WHERE trx.customer_trx_id = p_customer_trx_id
12139 AND trx.customer_trx_id = ctl.customer_trx_id
12140 -- AND NVL(ctl.group_id,'00') = p_group_id
12141 --{HYUBPAGP
12142 AND NVL(ctl.source_data_key1,'00') = NVL(p_source_data_key1,'00')
12143 AND NVL(ctl.source_data_key2,'00') = NVL(p_source_data_key2,'00')
12144 AND NVL(ctl.source_data_key3,'00') = NVL(p_source_data_key3,'00')
12145 AND NVL(ctl.source_data_key4,'00') = NVL(p_source_data_key4,'00')
12146 AND NVL(ctl.source_data_key5,'00') = NVL(p_source_data_key5,'00');
12147 --}
12148 l_rows := sql%rowcount;
12149 g_appln_count := g_appln_count + l_rows;
12150 IF PG_DEBUG = 'Y' THEN
12151 localdebug(' rows inserted = ' || l_rows);
12152 localdebug('arp_det_dist_pkg.get_invoice_line_info_per_grp()-');
12153 END IF;
12154 END get_invoice_line_info_per_grp;
12155
12156
12157 PROCEDURE get_invoice_line_info_per_line
12158 (p_gt_id IN VARCHAR2,
12159 p_customer_trx_id IN NUMBER,
12160 p_customer_trx_line_id IN NUMBER,
12161 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
12162 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
12163 IS
12164 l_rows NUMBER;
12165 BEGIN
12166 IF PG_DEBUG = 'Y' THEN
12167 localdebug('arp_det_dist_pkg.get_invoice_line_info_per_line()+');
12168 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
12169 localdebug(' p_customer_trx_line_id :'||p_customer_trx_line_id);
12170 localdebug(' p_gt_id :'||p_gt_id);
12171 END IF;
12172
12173 INSERT INTO RA_AR_GT
12174 ( GT_ID ,
12175 BASE_CURRENCY ,
12176 TO_CURRENCY ,
12177 REF_CUSTOMER_TRX_ID ,
12178 REF_CUSTOMER_TRX_LINE_ID ,
12179 --
12180 DUE_ORIG_AMT ,
12181 DUE_ORIG_ACCTD_AMT ,
12182 --
12183 CHRG_ORIG_AMT ,
12184 CHRG_ORIG_ACCTD_AMT ,
12185 FRT_ORIG_AMT ,
12186 FRT_ORIG_ACCTD_AMT ,
12187 TAX_ORIG_AMT ,
12188 TAX_ORIG_ACCTD_AMT ,
12189 --
12190 DUE_REM_AMT ,
12191 DUE_REM_ACCTD_AMT ,
12192 CHRG_REM_AMT ,
12193 CHRG_REM_ACCTD_AMT ,
12194 --
12195 FRT_REM_AMT ,
12196 FRT_REM_ACCTD_AMT ,
12197 TAX_REM_AMT ,
12198 TAX_REM_ACCTD_AMT ,
12199 --
12200 FRT_ADJ_REM_AMT ,
12201 FRT_ADJ_REM_ACCTD_AMT ,
12202 --
12203 LINE_TYPE ,
12204 group_id ,
12205 --{HYUBPAGP
12206 source_data_key1 ,
12207 source_data_key2 ,
12208 source_data_key3 ,
12209 source_data_key4 ,
12210 source_data_key5 ,
12211 --}
12212 --
12213 SUM_LINE_ORIG_AMT ,
12214 SUM_LINE_ORIG_ACCTD_AMT ,
12215 --{HYUCHRG
12216 SUM_LINE_CHRG_ORIG_AMT ,
12217 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
12218 --}
12219 SUM_LINE_FRT_ORIG_AMT ,
12220 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
12221 SUM_LINE_TAX_ORIG_AMT ,
12222 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
12223 --
12224 SUM_LINE_REM_AMT ,
12225 SUM_LINE_REM_ACCTD_AMT ,
12226 SUM_LINE_CHRG_REM_AMT ,
12227 SUM_LINE_CHRG_REM_ACCTD_AMT,
12228 --
12229 SUM_LINE_FRT_REM_AMT ,
12230 SUM_LINE_FRT_REM_ACCTD_AMT ,
12231 SUM_LINE_TAX_REM_AMT ,
12232 SUM_LINE_TAX_REM_ACCTD_AMT ,
12233 --
12234 gp_level,
12235 --
12236 set_of_books_id,
12237 sob_type,
12238 tax_link_id,
12239 tax_inc_flag)
12240 -- se_gt_id)
12241 SELECT /*+INDEX (ctl ra_customer_trx_lines_gt_n1)*/
12242 p_gt_id , --GT_ID
12243 p_ae_sys_rec.base_currency , --BASE_CURRENCY
12244 trx.invoice_currency_code , --TO_CURRENCY
12245 trx.customer_trx_id , --REF_CUSTOMER_TRX_ID
12246 ctl.customer_trx_line_id , --REF_CUSTOMER_TRX_LINE_ID
12247 -- Orig
12248 DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
12249 'CB' ,ctl.amount_due_original,0), --DUE_ORIG_AMT
12250 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
12251 'CB' ,ctl.acctd_amount_due_original,0), --DUE_ORIG_ACCTD_AMT
12252 --{HYUCHRG
12253 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0), --CHRG_ORIG_AMT
12254 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0), --CHRG_ORIG_ACCTD_AMT
12255 --}
12256 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0), --FRT_ORIG_AMT
12257 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0), --FRT_ORIG_ACCTD_AMT
12258 DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0), --TAX_ORIG_AMT
12259 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0), --TAX_ORIG_ACCTD_AMT
12260 -- Remaining
12261 DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
12262 'CB' ,ctl.amount_due_remaining,0) , --DUE_REM_AMT
12263 /*DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
12264 'CB' ,ctl.acctd_amount_due_remaining,0), --DUE_REM_ACCTD_AMT*/
12265 DECODE(ctl.line_type,'LINE',
12266 DECODE(ctl.amount_due_remaining,0,
12267 ctl.acctd_amount_due_remaining,
12268 DECODE(ctl.acctd_amount_due_remaining,0,
12269 arpcurr.CurrRound( ctl.amount_due_remaining *
12270 nvl(trx.exchange_rate,1)
12271 ,trx.invoice_currency_code),
12272 ctl.acctd_amount_due_remaining)),
12273 'CB' ,ctl.acctd_amount_due_remaining,0), --DUE_REM_ACCTD_AMT
12274 --{HYUCHRG
12275 -- DECODE(ctl.line_type,'LINE',ctl.chrg_amount_remaining,
12276 -- 'CB' ,ctl.chrg_amount_remaining,0),
12277 -- DECODE(ctl.line_type,'LINE',ctl.chrg_acctd_amount_remaining,
12278 -- 'CB' ,ctl.chrg_acctd_amount_remaining,0),
12279 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_remaining,0) , --CHRG_REM_AMT
12280 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_remaining,0), --CHRG_REM_ACCTD_AMT
12281 --}
12282 --
12283 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_remaining,0) , --FRT_REM_AMT
12284 /*Frt Rem on freight is the
12285 rem amount of the freight calculated
12286 from orig frt - cash application
12287 frt adjustment variations are excluded
12288 they are kept in frt_adj_rem_amt on rev line */
12289 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_remaining,0), --FRT_REM_ACCTD_AMT
12290 DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0) , --TAX_REM_AMT
12291 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0), --TAX_REM_ACCTD_AMT
12292 ctl.frt_adj_remaining , --FRT_ADJ_REM_AMT
12293 ctl.frt_adj_acctd_remaining , --FRT_ADJ_REM_ACCTD_AMT
12294 --
12295 ctl.line_type , --LINE_TYPE
12296 DECODE(ctl.SOURCE_DATA_KEY1 ||
12297 ctl.SOURCE_DATA_KEY2 ||
12298 ctl.SOURCE_DATA_KEY3 ||
12299 ctl.SOURCE_DATA_KEY4 ||
12300 ctl.SOURCE_DATA_KEY5, NULL, '00',
12301 ctl.SOURCE_DATA_KEY1 ||'-'||
12302 ctl.SOURCE_DATA_KEY2 ||'-'||
12303 ctl.SOURCE_DATA_KEY3 ||'-'||
12304 ctl.SOURCE_DATA_KEY4 ||'-'||
12305 ctl.SOURCE_DATA_KEY5), --GROUP_ID
12306 -- NVL(ctl.SOURCE_DATA_KEY1,'00'), --GROUP_ID
12307 --{HYUBPAGP
12308 NVL(ctl.source_data_key1,'00'),
12309 NVL(ctl.source_data_key2,'00'),
12310 NVL(ctl.source_data_key3,'00'),
12311 NVL(ctl.source_data_key4,'00'),
12312 NVL(ctl.source_data_key5,'00'),
12313 --}
12314 --
12315 DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
12316 'CB' ,ctl.amount_due_original,0), --SUM_LINE_ORIG_AMT
12317 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
12318 'CB' ,ctl.acctd_amount_due_original,0), --SUM_LINE_ORIG_ACCTD_AMT
12319 --{HYUCHRG
12320 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0), --SUM_LINE_CHRG_ORIG_AMT
12321 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0), --SUM_LINE_CHRG_ORIG_ACCTD_AMT
12322 --}
12323 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0), --SUM_LINE_FRT_ORIG_AMT
12324 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0), --SUM_LINE_FRT_ORIG_ACCTD_AMT
12325
12326 --HYUIssue
12327 -- DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0), --SUM_LINE_TAX_ORIG_AMT
12328
12329 SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0))
12330 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_ORIG_AMT
12331 -- DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0), --SUM_LINE_TAX_ORIG_ACCTD_AMT
12332 SUM(DECODE(ctl.line_type,'TAX',ctl.ACCTD_amount_due_original,0))
12333 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_ORIG_ACCTD_AMT
12334 --}
12335 --
12336 DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
12337 'CB' ,ctl.amount_due_remaining,0), --SUM_LINE_REM_AMT
12338 DECODE(ctl.line_type,'LINE',
12339 DECODE(ctl.amount_due_remaining,0,
12340 ctl.acctd_amount_due_remaining,
12341 DECODE(ctl.acctd_amount_due_remaining,0,
12342 arpcurr.CurrRound( ctl.amount_due_remaining *
12343 nvl(trx.exchange_rate,1)
12344 ,trx.invoice_currency_code),
12345 ctl.acctd_amount_due_remaining)),
12346 'CB' ,ctl.acctd_amount_due_remaining,0), --SUM_LINE_REM_ACCTD_AMT
12347 /*DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
12348 'CB' ,ctl.acctd_amount_due_remaining,0), --SUM_LINE_REM_ACCTD_AMT*/
12349 --{HYUCHRG
12350 -- ctl.chrg_amount_remaining,
12351 -- ctl.chrg_acctd_amount_remaining,
12352 DECODE(ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
12353 'CB' ,NVL(ctl.chrg_amount_remaining,0),
12354 'CHARGES',NVL(ctl.amount_due_remaining,0),
12355 0), --SUM_LINE_CHRG_REM_AMT
12356 DECODE(ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
12357 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
12358 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
12359 0), --SUM_LINE_CHRG_REM_ACCTD_AMT
12360 --}
12361 --
12362 DECODE(ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
12363 'CB' ,NVL(ctl.frt_adj_remaining,0),
12364 'FREIGHT',NVL(ctl.amount_due_remaining,0),
12365 0), --SUM_LINE_FRT_REM_AMT
12366 DECODE(ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
12367 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
12368 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
12369 0), --SUM_LINE_FRT_REM_ACCTD_AMT
12370 --HYUIssue
12371 -- DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0), --SUM_LINE_TAX_REM_AMT
12372 SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0))
12373 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_REM_AMT
12374 -- DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0), --SUM_LINE_TAX_REM_ACCTD_AMT
12375 SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0))
12376 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_REM_ACCTD_AMT
12377 --}
12378 --
12379 'L',
12380 --
12381 p_ae_sys_rec.set_of_books_id,
12382 p_ae_sys_rec.sob_type,
12383 --{Taxable_amount
12384 DECODE(ctl.line_type, 'TAX' ,ctl.link_to_cust_trx_line_id,
12385 'LINE',ctl.customer_trx_line_id,
12386 'CB' ,ctl.customer_trx_line_id,
12387 NULL),
12388 DECODE(ctl.line_type,'LINE','Y',
12389 'CB' ,'Y',
12390 'TAX','Y','N')
12391 -- g_se_gt_id
12392 FROM ra_customer_trx trx,
12393 ( select *
12394 from ra_customer_trx_lines_gt ctl2
12395 where ctl2.customer_trx_id = p_customer_trx_id
12396 and ctl2.customer_trx_line_id = p_customer_trx_line_id
12397 union all
12398 select *
12399 from ra_customer_trx_lines_gt ctl2
12400 where ctl2.customer_trx_id = p_customer_trx_id
12401 and ctl2.LINK_TO_CUST_TRX_LINE_ID = p_customer_trx_line_id
12402 ) ctl
12403 WHERE trx.customer_trx_id = p_customer_trx_id;
12404
12405
12406 l_rows := sql%rowcount;
12407 g_appln_count := g_appln_count + l_rows;
12408 IF PG_DEBUG = 'Y' THEN
12409 localdebug(' rows inserted = ' || l_rows);
12410 localdebug('arp_det_dist_pkg.get_invoice_line_info_per_line()-');
12411 END IF;
12412 END get_invoice_line_info_per_line;
12413
12414 PROCEDURE proration_app_dist_trx
12415 (p_gt_id IN VARCHAR2,
12416 p_app_level IN VARCHAR2,
12417 p_customer_trx_id IN NUMBER,
12418 p_app_rec IN ar_receivable_applications%ROWTYPE,
12419 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
12420 IS
12421 l_adj_rec ar_adjustments%ROWTYPE;
12422 BEGIN
12423 IF PG_DEBUG = 'Y' THEN
12424 localdebug('arp_det_dist_pkg.proration_app_dist_trx()+');
12425 localdebug(' p_gt_id :'||p_gt_id );
12426 localdebug(' application type :'||p_app_rec.application_type );
12427 localdebug(' receivable_application_id:'||p_app_rec.receivable_application_id );
12428 localdebug(' set of books id :'||p_ae_sys_rec.set_of_books_id );
12429 localdebug(' sob type :'||p_ae_sys_rec.sob_type );
12430 END IF;
12431
12432 get_inv_dist
12433 (p_pay_adj => 'APP',
12434 p_customer_trx_id => p_customer_trx_id,
12435 p_gt_id => p_gt_id,
12436 p_adj_rec => l_adj_rec,
12437 p_app_rec => p_app_rec,
12438 p_ae_sys_rec => p_ae_sys_rec);
12439
12440
12441 update_dist(p_customer_trx_id => p_customer_trx_id,
12442 p_gt_id => p_gt_id,
12443 p_ae_sys_rec => p_ae_sys_rec);
12444
12445 create_split_distribution
12446 (p_pay_adj => 'APP',
12447 p_customer_trx_id => p_customer_trx_id,
12448 p_gt_id => p_gt_id,
12449 p_app_level => p_app_level,
12450 p_ae_sys_rec => p_ae_sys_rec);
12451
12452 IF PG_DEBUG = 'Y' THEN
12453 localdebug('arp_det_dist_pkg.proration_app_dist_trx()-');
12454 END IF;
12455
12456 END proration_app_dist_trx;
12457
12458
12459 PROCEDURE proration_adj_dist_trx
12460 (p_gt_id IN VARCHAR2,
12461 p_app_level IN VARCHAR2,
12462 p_customer_trx_id IN NUMBER,
12463 p_adj_rec IN ar_adjustments%ROWTYPE,
12464 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
12465 IS
12466 l_app_rec ar_receivable_applications%ROWTYPE;
12467 BEGIN
12468 IF PG_DEBUG = 'Y' THEN
12469 localdebug('arp_det_dist_pkg.proration_adj_dist_trx()+');
12470 localdebug(' p_gt_id :'||p_gt_id );
12471 localdebug(' adj type :'||p_adj_rec.adjustment_type );
12472 localdebug(' adjustments_id :'||p_adj_rec.adjustment_id );
12473 localdebug(' set of books id :'||p_ae_sys_rec.set_of_books_id );
12474 localdebug(' sob type :'||p_ae_sys_rec.sob_type );
12475 END IF;
12476
12477 get_inv_dist
12478 (p_pay_adj => 'ADJ',
12479 p_customer_trx_id => p_customer_trx_id,
12480 p_gt_id => p_gt_id,
12481 p_adj_rec => p_adj_rec,
12482 p_app_rec => l_app_rec,
12483 p_ae_sys_rec => p_ae_sys_rec);
12484
12485 update_dist(p_customer_trx_id => p_customer_trx_id,
12486 p_gt_id => p_gt_id,
12487 p_ae_sys_rec => p_ae_sys_rec);
12488
12489 IF PG_DEBUG = 'Y' THEN
12490 localdebug('adjustment_detemination');
12491 END IF;
12492
12493
12494 adjustment_detemination
12495 (p_customer_trx_id => p_customer_trx_id,
12496 p_gt_id => p_gt_id,
12497 p_pay_adj => 'ADJ',
12498 p_ae_sys_rec => p_ae_sys_rec,
12499 p_adj_rec => p_adj_rec);
12500
12501 IF PG_DEBUG = 'Y' THEN
12502 localdebug('create_split_distribution');
12503 END IF;
12504 create_split_distribution
12505 (p_pay_adj => 'ADJ',
12506 p_customer_trx_id => p_customer_trx_id,
12507 p_gt_id => p_gt_id,
12508 p_app_level => p_app_level,
12509 p_ae_sys_rec => p_ae_sys_rec);
12510
12511 IF PG_DEBUG = 'Y' THEN
12512 localdebug('arp_det_dist_pkg.proration_adj_dist_trx()-');
12513 END IF;
12514
12515 END proration_adj_dist_trx;
12516
12517 /*-------------------------------------------------------------------------+
12518 | Trx_level_cash_apply |
12519 +-------------------------------------------------------------------------+
12520 | 1) get_invoice_line_info |
12521 | 2) prepare_group_for_proration |
12522 | 3) update_group_line |
12523 | 4) prepare_trx_line_proration |
12524 | 5) update_line |
12525 | 6) update_ctl_rem_orig |
12526 | 7) store_gt_id |
12527 +-------------------------------------------------------------------------+
12528 | parameter: |
12529 | p_customer_trx_id transaction id |
12530 | p_app_rec ar receivable application record |
12531 | p_ae_sys_rec ar system parameter |
12532 +-------------------------------------------------------------------------*/
12533 PROCEDURE Trx_level_cash_apply
12534 (p_customer_trx IN ra_customer_trx%ROWTYPE,
12535 p_app_rec IN ar_receivable_applications%ROWTYPE,
12536 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
12537 p_gt_id IN VARCHAR2 DEFAULT NULL)
12538 IS
12539 l_adj_rec ar_adjustments%ROWTYPE;
12540 l_app_rec ar_receivable_applications%ROWTYPE;
12541 l_gt_id VARCHAR2(30);
12542 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
12543 l_msg_data VARCHAR2(2000);
12544 l_msg_count NUMBER;
12545 E11i_trx_no_llca EXCEPTION;
12546 excep_get_gt_sequence EXCEPTION;
12547 summrize_act_no_llca EXCEPTION;
12548 BEGIN
12549 IF PG_DEBUG = 'Y' THEN
12550 localdebug('arp_det_dist_pkg.trx_level_cash_apply()+');
12551 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
12552 END IF;
12553 g_cust_inv_rec := p_customer_trx;
12554
12555 IF p_gt_id IS NULL THEN
12556 --BUG#4414391
12557 get_gt_sequence (x_gt_id => l_gt_id,
12558 x_return_status => l_return_status,
12559 x_msg_count => l_msg_count,
12560 x_msg_data => l_msg_data);
12561 IF l_return_status <> fnd_api.g_ret_sts_success THEN
12562 RAISE excep_get_gt_sequence;
12563 END IF;
12564 --l_gt_id := g_gt_id;
12565 --}
12566 ELSE
12567 l_gt_id := p_gt_id;
12568 END IF;
12569
12570 g_gt_id := l_gt_id;
12571
12572 set_mode_process(p_customer_trx => g_cust_inv_rec,
12573 p_from_llca => 'Y');
12574
12575 IF g_mode_process = 'R12_11ICASH' THEN
12576
12577 -- Process OLTP application on old transactions
12578 -- with adjustments created in 11I
12579 RAISE E11i_trx_no_llca;
12580
12581 ELSIF g_mode_process = 'R12_MERGE' THEN
12582
12583 -- Process OLTP application on transaction with activities
12584 -- having summarized distributions
12585 RAISE summrize_act_no_llca;
12586
12587 ELSE
12588
12589 IF g_mode_process = 'R12_11IMFAR' THEN
12590 l_return_status := FND_API.G_RET_STS_SUCCESS;
12591
12592 ar_upgrade_cash_accrual.COMPARE_RA_REM_AMT
12593 ( p_app_rec => p_app_rec,
12594 x_app_rec => l_app_rec,
12595 p_app_level => 'TRANSACTION',
12596 p_currency => g_cust_inv_rec.invoice_currency_code,
12597 x_return_status => l_return_status,
12598 x_msg_data => l_msg_data,
12599 x_msg_count => l_msg_count);
12600
12601 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
12602 RAISE fnd_api.G_EXC_ERROR;
12603 ELSE
12604 l_app_rec := p_app_rec;
12605 END IF;
12606
12607 END IF;
12608 END IF;
12609 --}
12610
12611 conv_acctd_amt(p_pay_adj => 'APP',
12612 p_adj_rec => l_adj_rec,
12613 p_app_rec => p_app_rec,
12614 p_ae_sys_rec => p_ae_sys_rec);
12615
12616 get_invoice_line_info(p_gt_id => l_gt_id,
12617 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12618 p_ae_sys_rec => p_ae_sys_rec,
12619 p_mode => 'NORMAL');
12620
12621 prepare_group_for_proration(p_gt_id => l_gt_id,
12622 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12623 p_pay_adj => 'APP',
12624 p_adj_rec => l_adj_rec,
12625 p_app_rec => p_app_rec,
12626 p_ae_sys_rec => p_ae_sys_rec);
12627
12628 update_group_line(p_gt_id => l_gt_id,
12629 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12630 p_ae_sys_rec => p_ae_sys_rec);
12631
12632 prepare_trx_line_proration(p_gt_id => l_gt_id,
12633 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12634 p_pay_adj => 'APP',
12635 p_adj_rec => l_adj_rec,
12636 p_app_rec => p_app_rec,
12637 p_ae_sys_rec => p_ae_sys_rec);
12638
12639 update_line(p_gt_id => l_gt_id,
12640 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12641 p_ae_sys_rec => p_ae_sys_rec);
12642
12643
12644 update_ctl_rem_orig(p_gt_id => l_gt_id,
12645 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12646 p_pay_adj => 'APP',
12647 p_ae_sys_rec => p_ae_sys_rec);
12648
12649 proration_app_dist_trx(p_gt_id => l_gt_id,
12650 p_app_level => 'TRANSACTION',
12651 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12652 p_app_rec => p_app_rec,
12653 p_ae_sys_rec => p_ae_sys_rec);
12654
12655 --BUG#3611016 : Store the gt_id only for Primary set of books
12656 -- IF p_ae_sys_rec.sob_type = 'P' THEN
12657 -- store_gt_id(p_initial => FALSE,
12658 -- p_app_level => 'TRANSACTION');
12659 -- END IF;
12660
12661 IF PG_DEBUG = 'Y' THEN
12662 localdebug('arp_det_dist_pkg.trx_level_cash_apply()-');
12663 END IF;
12664 EXCEPTION
12665 WHEN excep_get_gt_sequence THEN
12666 IF PG_DEBUG = 'Y' THEN
12667 localdebug('EXCEPTION_get_gt_sequence IN Trx_level_cash_apply error count:'||l_msg_count);
12668 localdebug('last error:'||l_msg_data);
12669 END IF;
12670 RAISE;
12671 WHEN E11i_trx_no_llca THEN
12672 IF PG_DEBUG = 'Y' THEN
12673 localdebug('legacy transaction no trx level application allowed.');
12674 END IF;
12675 RAISE;
12676 WHEN fnd_api.G_EXC_ERROR THEN
12677 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12678 p_count => l_msg_count,
12679 p_data => l_msg_data);
12680 IF PG_DEBUG = 'Y' THEN
12681 localdebug('fnd_api.G_EXC_ERROR IN Trx_level_cash_apply error count:'||l_msg_count);
12682 localdebug('last error:'||l_msg_data);
12683 END IF;
12684 RAISE;
12685 WHEN OTHERS THEN
12686 IF PG_DEBUG = 'Y' THEN
12687 localdebug('OTHERS IN Trx_level_cash_apply :'||SQLERRM);
12688 END IF;
12689 RAISE;
12690 END Trx_level_cash_apply;
12691
12692 /*-------------------------------------------------------------------------+
12693 | Trx_gp_level_cash_apply |
12694 +-------------------------------------------------------------------------+
12695 | 1) get_invoice_line_info_per_grp |
12696 | 2) prepare_group_for_proration |
12697 | 3) update_group_line |
12698 | 4) prepare_trx_line_proration |
12699 | 5) update_line |
12700 | 6) update_ctl_rem_orig |
12701 | 7) store_group_id |
12702 +-------------------------------------------------------------------------+
12703 | parameter: |
12704 | p_customer_trx_id transaction id |
12705 | p_group_id source_data_key1 |
12706 | p_app_rec ar receivable application record |
12707 | p_ae_sys_rec ar system parameter |
12708 +-------------------------------------------------------------------------*/
12709 PROCEDURE Trx_gp_level_cash_apply
12710 (p_customer_trx IN ra_customer_trx%ROWTYPE,
12711 -- p_group_id IN VARCHAR2,
12712 --{HYUBPAGP
12713 p_source_data_key1 IN VARCHAR2,
12714 p_source_data_key2 IN VARCHAR2,
12715 p_source_data_key3 IN VARCHAR2,
12716 p_source_data_key4 IN VARCHAR2,
12717 p_source_data_key5 IN VARCHAR2,
12718 --}
12719 p_app_rec IN ar_receivable_applications%ROWTYPE,
12720 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
12721 p_gt_id IN VARCHAR2 DEFAULT NULL)
12722 IS
12723 l_adj_rec ar_adjustments%ROWTYPE;
12724 l_app_rec ar_receivable_applications%ROWTYPE;
12725 l_gt_id VARCHAR2(30);
12726 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
12727 l_msg_data VARCHAR2(2000);
12728 l_msg_count NUMBER;
12729 E11i_gp_no_llca EXCEPTION;
12730 excep_get_gt_sequence EXCEPTION;
12731 summrize_act_no_llca EXCEPTION;
12732 BEGIN
12733 IF PG_DEBUG = 'Y' THEN
12734 localdebug('arp_det_dist_pkg.trx_gp_level_cash_apply()+');
12735 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
12736 localdebug(' p_source_data_key1 :'||p_source_data_key1);
12737 localdebug(' p_source_data_key2 :'||p_source_data_key2);
12738 localdebug(' p_source_data_key3 :'||p_source_data_key3);
12739 localdebug(' p_source_data_key4 :'||p_source_data_key4);
12740 localdebug(' p_source_data_key5 :'||p_source_data_key5);
12741 END IF;
12742
12743 g_cust_inv_rec := p_customer_trx;
12744
12745 IF p_gt_id IS NULL THEN
12746 --BUG#4414391
12747 get_gt_sequence (x_gt_id => l_gt_id,
12748 x_return_status => l_return_status,
12749 x_msg_count => l_msg_count,
12750 x_msg_data => l_msg_data);
12751 IF l_return_status <> fnd_api.g_ret_sts_success THEN
12752 RAISE fnd_api.G_EXC_ERROR;
12753 END IF;
12754 --l_gt_id := g_gt_id;
12755 --}
12756 ELSE
12757 l_gt_id := p_gt_id;
12758 END IF;
12759
12760 g_gt_id := l_gt_id;
12761
12762 set_mode_process(p_customer_trx => g_cust_inv_rec,
12763 p_from_llca => 'Y');
12764
12765 IF g_mode_process = 'R12_11ICASH' THEN
12766
12767 -- Process OLTP application on old transactions
12768 -- with adjustments created in 11I
12769 RAISE E11i_gp_no_llca;
12770
12771 ELSIF g_mode_process = 'R12_MERGE' THEN
12772
12773 -- Process OLTP application on transaction with activities
12774 -- having summarized distributions
12775 RAISE summrize_act_no_llca;
12776
12777 ELSE
12778
12779 IF g_mode_process = 'R12_11IMFAR' THEN
12780 l_return_status := FND_API.G_RET_STS_SUCCESS;
12781
12782 ar_upgrade_cash_accrual.COMPARE_RA_REM_AMT
12783 ( p_app_rec => p_app_rec,
12784 x_app_rec => l_app_rec,
12785 p_app_level => 'GROUP',
12786 p_source_data_key1=> p_source_data_key1,
12787 p_source_data_key2=> p_source_data_key2,
12788 p_source_data_key3=> p_source_data_key3,
12789 p_source_data_key4=> p_source_data_key4,
12790 p_source_data_key5=> p_source_data_key5,
12791 p_ctl_id => NULL,
12792 p_currency => g_cust_inv_rec.invoice_currency_code,
12793 x_return_status => l_return_status,
12794 x_msg_data => l_msg_data,
12795 x_msg_count => l_msg_count);
12796
12797 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
12798 RAISE fnd_api.G_EXC_ERROR;
12799 ELSE
12800 l_app_rec := p_app_rec;
12801 END IF;
12802
12803 END IF;
12804 END IF;
12805 --}
12806
12807
12808
12809 conv_acctd_amt(p_pay_adj => 'APP',
12810 p_adj_rec => l_adj_rec,
12811 p_app_rec => l_app_rec,
12812 p_ae_sys_rec => p_ae_sys_rec);
12813
12814 get_invoice_line_info_per_grp(p_gt_id => l_gt_id,
12815 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12816 -- p_group_id => p_group_id,
12817 --{HYUBPAGP
12818 p_source_data_key1 => p_source_data_key1,
12819 p_source_data_key2 => p_source_data_key2,
12820 p_source_data_key3 => p_source_data_key3,
12821 p_source_data_key4 => p_source_data_key4,
12822 p_source_data_key5 => p_source_data_key5,
12823 --}
12824 p_ae_sys_rec => p_ae_sys_rec);
12825
12826 prepare_group_for_proration(p_gt_id => l_gt_id,
12827 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12828 p_pay_adj => 'APP',
12829 p_adj_rec => l_adj_rec,
12830 p_app_rec => l_app_rec,
12831 p_ae_sys_rec => p_ae_sys_rec);
12832
12833 update_group_line(p_gt_id => l_gt_id,
12834 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12835 p_ae_sys_rec => p_ae_sys_rec);
12836
12837 prepare_trx_line_proration(p_gt_id => l_gt_id,
12838 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12839 p_pay_adj => 'APP',
12840 p_adj_rec => l_adj_rec,
12841 p_app_rec => l_app_rec,
12842 p_ae_sys_rec => p_ae_sys_rec);
12843
12844 update_line(p_gt_id => l_gt_id,
12845 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12846 p_ae_sys_rec => p_ae_sys_rec);
12847
12848 update_ctl_rem_orig(p_gt_id => l_gt_id,
12849 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12850 p_pay_adj => 'APP',
12851 p_ae_sys_rec => p_ae_sys_rec,
12852 -- p_group_id => p_group_id,
12853 --{HYUBPAGP
12854 p_source_data_key1 => p_source_data_key1,
12855 p_source_data_key2 => p_source_data_key2,
12856 p_source_data_key3 => p_source_data_key3,
12857 p_source_data_key4 => p_source_data_key4,
12858 p_source_data_key5 => p_source_data_key5);
12859 --}
12860
12861 proration_app_dist_trx(p_gt_id => l_gt_id,
12862 p_app_level => 'GROUP',
12863 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12864 p_app_rec => l_app_rec,
12865 p_ae_sys_rec => p_ae_sys_rec);
12866
12867 --BUG#3611016 : Store the gt_id only for Primary set of books
12868 -- IF p_ae_sys_rec.sob_type = 'P' THEN
12869 -- store_gt_id(p_initial => FALSE,
12870 -- p_app_level => 'GROUP');
12871 -- END IF;
12872
12873 IF PG_DEBUG = 'Y' THEN
12874 localdebug('arp_det_dist_pkg.trx_gp_level_cash_apply()-');
12875 END IF;
12876 EXCEPTION
12877 WHEN excep_get_gt_sequence THEN
12878 IF PG_DEBUG = 'Y' THEN
12879 localdebug('EXCEPTION_get_gt_sequence IN Trx_level_cash_apply error count:'||l_msg_count);
12880 localdebug('last error:'||l_msg_data);
12881 END IF;
12882 RAISE;
12883 WHEN E11i_gp_no_llca THEN
12884 IF PG_DEBUG = 'Y' THEN
12885 localdebug('legacy transaction no group level application allowed.');
12886 END IF;
12887 RAISE;
12888 WHEN fnd_api.G_EXC_ERROR THEN
12889 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12890 p_count => l_msg_count,
12891 p_data => l_msg_data);
12892 IF PG_DEBUG = 'Y' THEN
12893 localdebug('fnd_api.G_EXC_ERROR IN Trx_gp_level_cash_apply error count:'||l_msg_count);
12894 localdebug('last error:'||l_msg_data);
12895 END IF;
12896 RAISE;
12897 WHEN OTHERS THEN
12898 IF PG_DEBUG = 'Y' THEN
12899 localdebug('OTHERS IN Trx_gp_level_cash_apply :'||SQLERRM);
12900 END IF;
12901 RAISE;
12902 END Trx_gp_level_cash_apply;
12903
12904
12905 /*-------------------------------------------------------------------------+
12906 | Trx_line_level_cash_apply |
12907 +-------------------------------------------------------------------------+
12908 | 1) get_invoice_line_info_per_line |
12909 | 2) prepare_group_for_proration |
12910 | 3) update_group_line |
12911 | 4) prepare_trx_line_proration |
12912 | 5) update_line |
12913 | 6) update_ctl_rem_orig |
12914 | 7) store_group_id |
12915 +-------------------------------------------------------------------------+
12916 | parameter: |
12917 | p_customer_trx_id transaction id |
12918 | p_customer_trx_line_id customer_trx_line_id |
12919 | p_app_rec ar receivable application record |
12920 | p_ae_sys_rec ar system parameter |
12921 +-------------------------------------------------------------------------*/
12922 PROCEDURE Trx_line_level_cash_apply
12923 (p_customer_trx IN ra_customer_trx%ROWTYPE,
12924 p_customer_trx_line_id IN VARCHAR2,
12925 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
12926 p_app_rec IN ar_receivable_applications%ROWTYPE,
12927 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
12928 p_gt_id IN VARCHAR2 DEFAULT NULL)
12929 IS
12930 l_adj_rec ar_adjustments%ROWTYPE;
12931 l_app_rec ar_receivable_applications%ROWTYPE;
12932 l_gt_id VARCHAR2(30);
12933 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
12934 l_msg_data VARCHAR2(2000);
12935 l_msg_count NUMBER;
12936 E11i_line_no_llca EXCEPTION;
12937 excep_get_gt_sequence EXCEPTION;
12938 summrize_act_no_llca EXCEPTION;
12939 BEGIN
12940 IF PG_DEBUG = 'Y' THEN
12941 localdebug('arp_det_dist_pkg.trx_line_level_cash_apply()+');
12942 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
12943 localdebug(' p_customer_trx_line_id :'||p_customer_trx_line_id);
12944 END IF;
12945
12946 g_cust_inv_rec := p_customer_trx;
12947
12948 IF p_gt_id IS NULL THEN
12949 --BUG#4414391
12950 get_gt_sequence (x_gt_id => l_gt_id,
12951 x_return_status => l_return_status,
12952 x_msg_count => l_msg_count,
12953 x_msg_data => l_msg_data);
12954 IF l_return_status <> fnd_api.g_ret_sts_success THEN
12955 RAISE excep_get_gt_sequence;
12956 END IF;
12957 --l_gt_id := g_gt_id;
12958 --}
12959 ELSE
12960 l_gt_id := p_gt_id;
12961 END IF;
12962
12963 g_gt_id := l_gt_id;
12964
12965 set_mode_process(p_customer_trx => g_cust_inv_rec,
12966 p_from_llca => 'Y');
12967
12968 IF g_mode_process = 'R12_11ICASH' THEN
12969
12970 -- Process OLTP application on old transactions
12971 -- with adjustments created in 11I
12972 RAISE E11i_line_no_llca;
12973
12974 ELSIF g_mode_process = 'R12_MERGE' THEN
12975
12976 -- Process OLTP application on transaction with activities
12977 -- having summarized distributions
12978 RAISE summrize_act_no_llca;
12979
12980 ELSE
12981
12982 IF g_mode_process = 'R12_11IMFAR' THEN
12983 l_return_status := FND_API.G_RET_STS_SUCCESS;
12984
12985 ar_upgrade_cash_accrual.COMPARE_RA_REM_AMT
12986 ( p_app_rec => p_app_rec,
12987 x_app_rec => l_app_rec,
12988 p_app_level => 'LINE',
12989 p_ctl_id => p_customer_trx_line_id ,
12990 p_currency => g_cust_inv_rec.invoice_currency_code,
12991 x_return_status => l_return_status,
12992 x_msg_data => l_msg_data,
12993 x_msg_count => l_msg_count);
12994
12995 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
12996 RAISE fnd_api.G_EXC_ERROR;
12997 ELSE
12998 l_app_rec := p_app_rec;
12999 END IF;
13000
13001 ELSE
13002 l_app_rec := p_app_rec;
13003
13004 END IF;
13005 END IF;
13006 --}
13007
13008
13009 conv_acctd_amt(p_pay_adj => 'APP',
13010 p_adj_rec => l_adj_rec,
13011 p_app_rec => l_app_rec,
13012 p_ae_sys_rec => p_ae_sys_rec);
13013
13014 get_invoice_line_info_per_line(p_gt_id => l_gt_id,
13015 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13016 p_customer_trx_line_id => p_customer_trx_line_id,
13017 p_log_inv_line => p_log_inv_line,
13018 p_ae_sys_rec => p_ae_sys_rec);
13019
13020 prepare_group_for_proration(p_gt_id => l_gt_id,
13021 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13022 p_pay_adj => 'APP',
13023 p_adj_rec => l_adj_rec,
13024 p_app_rec => l_app_rec,
13025 p_ae_sys_rec => p_ae_sys_rec);
13026
13027 update_group_line(p_gt_id => l_gt_id,
13028 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13029 p_ae_sys_rec => p_ae_sys_rec);
13030
13031 prepare_trx_line_proration(p_gt_id => l_gt_id,
13032 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13033 p_pay_adj => 'APP',
13034 p_adj_rec => l_adj_rec,
13035 p_app_rec => l_app_rec,
13036 p_ae_sys_rec => p_ae_sys_rec);
13037
13038 update_line(p_gt_id => l_gt_id,
13039 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13040 p_ae_sys_rec => p_ae_sys_rec);
13041
13042 update_ctl_rem_orig(p_gt_id => l_gt_id,
13043 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13044 p_pay_adj => 'APP',
13045 p_ae_sys_rec => p_ae_sys_rec,
13046 p_log_inv_line => p_log_inv_line,
13047 p_customer_trx_line_id => p_customer_trx_line_id);
13048
13049 proration_app_dist_trx(p_gt_id => l_gt_id,
13050 p_app_level => 'LINE',
13051 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13052 p_app_rec => l_app_rec,
13053 p_ae_sys_rec => p_ae_sys_rec);
13054
13055 --BUG#3611016 : Store the gt_id only for Primary set of books
13056 -- IF p_ae_sys_rec.sob_type = 'P' THEN
13057 -- store_gt_id(p_initial => FALSE,
13058 -- p_app_level => 'LINE');
13059 -- END IF;
13060
13061 IF PG_DEBUG = 'Y' THEN
13062 localdebug('arp_det_dist_pkg.trx_line_level_cash_apply()-');
13063 END IF;
13064 EXCEPTION
13065 WHEN excep_get_gt_sequence THEN
13066 IF PG_DEBUG = 'Y' THEN
13067 localdebug('EXCEPTION_get_gt_sequence IN Trx_level_cash_apply error count:'||l_msg_count);
13068 localdebug('last error:'||l_msg_data);
13069 END IF;
13070 RAISE;
13071 WHEN E11i_line_no_llca THEN
13072 IF PG_DEBUG = 'Y' THEN
13073 localdebug('legacy transaction no line level application allowed.');
13074 END IF;
13075 RAISE;
13076 WHEN fnd_api.G_EXC_ERROR THEN
13077 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
13078 p_count => l_msg_count,
13079 p_data => l_msg_data);
13080 IF PG_DEBUG = 'Y' THEN
13081 localdebug('fnd_api.G_EXC_ERROR IN Trx_line_level_cash_apply error count:'||l_msg_count);
13082 localdebug('last error:'||l_msg_data);
13083 END IF;
13084 RAISE;
13085 WHEN OTHERS THEN
13086 IF PG_DEBUG = 'Y' THEN
13087 localdebug('OTHERS IN Trx_line_level_cash_apply :'||SQLERRM);
13088 END IF;
13089 RAISE;
13090 END Trx_line_level_cash_apply;
13091
13092
13093 /*------------------------------------------------+
13094 | Procedure copy_trx_lines
13095 +------------------------------------------------
13096 | Purpose cache the transaction lines in memory
13097 | to enhance the performance of the process
13098 +------------------------------------------------
13099 | History
13100 | Created 01-Nov-2004
13101 | Modified 02-Feb-2005 BR Enhancement
13102 +------------------------------------------------*/
13103 PROCEDURE copy_trx_lines
13104 (p_customer_trx_id IN NUMBER,
13105 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
13106 p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%TYPE DEFAULT NULL)
13107 IS
13108 CURSOR cu_line_loaded (p_customer_trx_id IN NUMBER,
13109 p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%TYPE ) IS
13110 SELECT 'x'
13111 FROM ra_customer_trx_lines_gt
13112 WHERE customer_trx_id = p_customer_trx_id
13113 AND customer_trx_line_id = NVL(p_customer_trx_line_id, customer_trx_line_id);
13114 l_exist VARCHAR2(1);
13115
13116 CURSOR c_frt_chrg IS
13117 SELECT MAX(line_type)
13118 FROM ra_customer_trx_lines_gt
13119 WHERE line_type IN ('CHARGES','FREIGHT')
13120 AND customer_trx_id = p_customer_trx_id
13121 GROUP BY line_type;
13122
13123 l_frt_chrg VARCHAR2(30);
13124 l_rows NUMBER;
13125
13126 BEGIN
13127 IF PG_DEBUG = 'Y' THEN
13128 localdebug('arp_det_dist_pkg.copy_trx_lines()+');
13129 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
13130 END IF;
13131 OPEN cu_line_loaded(p_customer_trx_id, p_customer_trx_line_id);
13132 FETCH cu_line_loaded INTO l_exist;
13133
13134 IF cu_line_loaded%NOTFOUND THEN
13135
13136 IF g_mode_process IN ('R12_NLB','R12_MERGE','R12_11ICASH')
13137 THEN
13138
13139 INSERT INTO ra_customer_trx_lines_gt
13140 (customer_trx_line_id,
13141 link_to_cust_trx_line_id,
13142 customer_trx_id ,
13143 set_of_books_id ,
13144 line_type ,
13145 source_data_key1 ,
13146 source_data_key2 ,
13147 source_data_key3 ,
13148 source_data_key4 ,
13149 source_data_key5 ,
13150 amount_due_remaining,
13151 acctd_amount_due_remaining,
13152 amount_due_original ,
13153 acctd_amount_due_original ,
13154 chrg_amount_remaining ,
13155 chrg_acctd_amount_remaining,
13156 frt_adj_remaining ,
13157 frt_adj_acctd_remaining,
13158 group_id ,
13159 --{HYUBRe
13160 br_line_orig_amt ,
13161 br_tax_orig_amt ,
13162 br_frt_orig_amt ,
13163 br_chrg_orig_amt ,
13164 br_line_orig_acctd_amt,
13165 br_tax_orig_acctd_amt,
13166 br_frt_orig_acctd_amt,
13167 br_chrg_orig_acctd_amt,
13168 br_ref_customer_trx_id,
13169 br_adjustment_id,
13170 line_origin
13171 --}
13172 )
13173 SELECT
13174 tl.customer_trx_line_id,
13175 tl.link_to_cust_trx_line_id,
13176 tl.customer_trx_id ,
13177 tl.set_of_books_id ,
13178 tl.line_type ,
13179 '00',
13180 '00',
13181 '00',
13182 '00',
13183 '00',
13184 orl.sum_amt, -- amount_due_remaining
13185 orl.sum_acctd_amt, -- acctd_amount_due_remaining
13186 orl.sum_amt, -- amount_due_original
13187 orl.sum_acctd_amt, -- acctd_amount_due_original
13188 fcrl.chrg_on_rev_line, -- chrg_amount_remaining
13189 fcrl.acctd_chrg_on_rev_line, -- chrg_acctd_amount_remaining
13190 fcrl.frt_on_rev_line, -- frt_adj_remaining
13191 fcrl.acctd_frt_on_rev_line, -- frt_Adj_acctd_remaining
13192 DECODE(tl.source_data_key1 ||
13193 tl.source_data_key2 ||
13194 tl.source_data_key3 ||
13195 tl.source_data_key4 ||
13196 tl.source_data_key5, NULL, '00',
13197 tl.source_data_key1 ||'-'||
13198 tl.source_data_key2 ||'-'||
13199 tl.source_data_key3 ||'-'||
13200 tl.source_data_key4 ||'-'||
13201 tl.source_data_key5),
13202 --{HYU BRe
13203 0 ,
13204 0 ,
13205 0 ,
13206 0 ,
13207 0 ,
13208 0 ,
13209 0 ,
13210 0 ,
13211 '', --tl.br_ref_customer_trx_id,
13212 '', --tl.br_adjustment_id,
13213 '' --DECODE(tl.br_ref_customer_trx_id, NULL, 'CTL', --Regular Trx Line
13214 -- DECODE(typ.type, 'BR','BR_BR_ORIG_ASSIG', --BR assigned to a BR
13215 -- 'BR_TRX_ORIG_ASSIG')--Regular TRX assigned to BR
13216 -- ) -- LINE_ORIGIN
13217 --}
13218 FROM ra_customer_trx_lines tl,
13219 -- ra_customer_trx br,
13220 -- ra_cust_trx_types typ,
13221 -- Amount for original and remaining for all type of lines on reve line
13222 (SELECT SUM(AMOUNT) sum_amt,
13223 SUM(ACCTD_AMOUNT) sum_acctd_amt,
13224 customer_trx_line_id
13225 FROM ra_cust_trx_line_gl_dist
13226 WHERE customer_trx_id = p_customer_trx_id
13227 GROUP BY customer_trx_line_id) orl,
13228 -- Amount for charges and freight on revenue line
13229 (SELECT SUM((DECODE(a.activity_bucket,'ADJ_CHRG',amt,'APP_CHRG',amt,0))) CHRG_ON_REV_LINE
13230 ,SUM((DECODE(a.activity_bucket,'ADJ_CHRG',acctd_amt,'APP_CHRG',acctd_amt,0))) ACCTD_CHRG_ON_REV_LINE
13231 ,SUM((DECODE(a.activity_bucket,'ADJ_FRT' ,amt,'APP_FRT',amt,0))) FRT_ON_REV_LINE
13232 ,SUM((DECODE(a.activity_bucket,'ADJ_FRT' ,acctd_amt,'APP_FRT',acctd_amt,0))) ACCTD_FRT_ON_REV_LINE
13233 ,a.ref_customer_trx_line_id
13234 FROM
13235 (SELECT SUM( NVL(ard.amount_cr,0) - NVL(ard.amount_dr,0) ) amt,
13236 SUM( NVL(ard.acctd_amount_cr,0) - NVL(ard.acctd_amount_dr,0)) acctd_amt,
13237 ard.ref_customer_trx_line_id,
13238 ard.activity_bucket
13239 FROM ar_adjustments adj,
13240 ar_distributions ard,
13241 ra_customer_trx_lines ctl
13242 WHERE ctl.customer_trx_id = p_customer_trx_id
13243 AND ctl.line_type = 'LINE'
13244 AND adj.customer_trx_id = p_customer_trx_id
13245 AND adj.adjustment_id = ard.source_id
13246 AND ard.source_table = 'ADJ'
13247 AND ard.ref_customer_trx_line_id = ctl.customer_trx_line_id
13248 AND ard.activity_bucket IN ('ADJ_CHRG','ADJ_FRT')
13249 GROUP BY ard.ref_customer_trx_line_id,
13250 ard.activity_bucket
13251 UNION ALL
13252 SELECT SUM( NVL(ard.amount_cr,0) - NVL(ard.amount_dr,0) ) amt,
13253 SUM( NVL(ard.acctd_amount_cr,0) - NVL(ard.acctd_amount_dr,0)) acctd_amt,
13254 ard.ref_customer_trx_line_id,
13255 ard.activity_bucket
13256 FROM ar_receivable_applications ra,
13257 ar_distributions ard,
13258 ra_customer_trx_lines ctl
13259 WHERE ctl.customer_trx_id = p_customer_trx_id
13260 AND ctl.line_type = 'LINE'
13261 AND ra.applied_customer_trx_id = p_customer_trx_id
13262 AND ra.receivable_application_id = ard.source_id
13263 AND ard.source_table = 'RA'
13264 AND ard.ref_customer_trx_line_id = ctl.customer_trx_line_id
13265 AND ard.activity_bucket IN ('APP_CHRG','APP_FRT')
13266 GROUP BY ard.ref_customer_trx_line_id,
13267 ard.activity_bucket) a
13268 GROUP BY a.ref_customer_trx_line_id) fcrl
13269 WHERE tl.customer_trx_id = p_customer_trx_id
13270 AND tl.customer_trx_line_id = orl.customer_trx_line_id
13271 AND tl.customer_trx_line_id = fcrl.ref_customer_trx_line_id(+)
13272 AND (tl.customer_trx_line_id = NVL(p_customer_trx_line_id, tl.customer_trx_line_id)
13273 OR tl.link_to_cust_trx_line_id = NVL(p_customer_trx_line_id, tl.customer_trx_line_id));
13274 -- AND tl.br_ref_customer_trx_id = br.customer_trx_id(+)
13275 -- AND br.cust_trx_type_id = typ.cust_trx_type_id(+);
13276
13277 l_rows := sql%rowcount;
13278 localdebug(' rows inserted = ' || l_rows);
13279 ELSE
13280
13281 INSERT INTO ra_customer_trx_lines_gt
13282 (CUSTOMER_TRX_LINE_ID,
13283 LINK_TO_CUST_TRX_LINE_ID,
13284 CUSTOMER_TRX_ID ,
13285 SET_OF_BOOKS_ID ,
13286 LINE_TYPE ,
13287 SOURCE_DATA_KEY1 ,
13288 SOURCE_DATA_KEY2 ,
13289 SOURCE_DATA_KEY3 ,
13290 SOURCE_DATA_KEY4 ,
13291 SOURCE_DATA_KEY5 ,
13292 AMOUNT_DUE_REMAINING,
13293 ACCTD_AMOUNT_DUE_REMAINING ,
13294 AMOUNT_DUE_ORIGINAL ,
13295 ACCTD_AMOUNT_DUE_ORIGINAL ,
13296 CHRG_AMOUNT_REMAINING ,
13297 CHRG_ACCTD_AMOUNT_REMAINING,
13298 FRT_ADJ_REMAINING ,
13299 FRT_ADJ_ACCTD_REMAINING ,
13300 group_id ,
13301 --{HYUBRe
13302 BR_LINE_ORIG_AMT ,
13303 BR_TAX_ORIG_AMT ,
13304 BR_FRT_ORIG_AMT ,
13305 BR_CHRG_ORIG_AMT ,
13306 BR_LINE_ORIG_ACCTD_AMT,
13307 BR_TAX_ORIG_ACCTD_AMT ,
13308 BR_FRT_ORIG_ACCTD_AMT ,
13309 BR_CHRG_ORIG_ACCTD_AMT,
13310 BR_REF_CUSTOMER_TRX_ID,
13311 BR_ADJUSTMENT_ID,
13312 LINE_ORIGIN
13313 --}
13314 )
13315 SELECT
13316 tl.CUSTOMER_TRX_LINE_ID,
13317 tl.LINK_TO_CUST_TRX_LINE_ID,
13318 tl.CUSTOMER_TRX_ID ,
13319 tl.SET_OF_BOOKS_ID ,
13320 tl.LINE_TYPE ,
13321 '00',
13322 '00',
13323 '00',
13324 '00',
13325 '00',
13326 tl.AMOUNT_DUE_REMAINING,
13327 tl.ACCTD_AMOUNT_DUE_REMAINING ,
13328 tl.AMOUNT_DUE_ORIGINAL ,
13329 tl.ACCTD_AMOUNT_DUE_ORIGINAL ,
13330 tl.CHRG_AMOUNT_REMAINING,
13331 tl.CHRG_ACCTD_AMOUNT_REMAINING,
13332 tl.FRT_ADJ_REMAINING,
13333 tl.FRT_ADJ_ACCTD_REMAINING,
13334 DECODE(tl.SOURCE_DATA_KEY1 ||
13335 tl.SOURCE_DATA_KEY2 ||
13336 tl.SOURCE_DATA_KEY3 ||
13337 tl.SOURCE_DATA_KEY4 ||
13338 tl.SOURCE_DATA_KEY5, NULL, '00',
13339 tl.SOURCE_DATA_KEY1 ||'-'||
13340 tl.SOURCE_DATA_KEY2 ||'-'||
13341 tl.SOURCE_DATA_KEY3 ||'-'||
13342 tl.SOURCE_DATA_KEY4 ||'-'||
13343 tl.SOURCE_DATA_KEY5),
13344 --{HYU BRe
13345 0 ,
13346 0 ,
13347 0 ,
13348 0 ,
13349 0 ,
13350 0 ,
13351 0 ,
13352 0 ,
13353 '', --tl.BR_REF_CUSTOMER_TRX_ID,
13354 '', --tl.BR_ADJUSTMENT_ID,
13355 '' --DECODE(tl.BR_REF_CUSTOMER_TRX_ID, NULL, 'CTL', --Regular Trx Line
13356 -- DECODE(typ.type, 'BR','BR_BR_ORIG_ASSIG', --BR assigned to a BR
13357 -- 'BR_TRX_ORIG_ASSIG')--Regular TRX assigned to BR
13358 -- ) -- LINE_ORIGIN
13359 --}
13360 FROM ra_customer_trx_lines tl
13361 -- ra_customer_trx br,
13362 -- ra_cust_trx_types typ
13363 WHERE tl.customer_trx_id = p_customer_trx_id
13364 AND (tl.customer_trx_line_id = NVL(p_customer_trx_line_id, tl.customer_trx_line_id)
13365 OR tl.link_to_cust_trx_line_id = NVL(p_customer_trx_line_id, tl.customer_trx_line_id));
13366 -- AND tl.br_ref_customer_trx_id = br.customer_trx_id(+)
13367 -- AND br.cust_trx_type_id = typ.cust_trx_type_id(+);
13368
13369 l_rows := sql%rowcount;
13370 IF PG_DEBUG = 'Y' THEN
13371 localdebug(' rows inserted = ' || l_rows);
13372 END IF;
13373
13374 END IF;
13375
13376
13377 --{SET the g_trx_line_frt or chrg flags
13378 OPEN c_frt_chrg;
13379 LOOP
13380 FETCH c_frt_chrg INTO l_frt_chrg;
13381 EXIT WHEN c_frt_chrg%NOTFOUND;
13382 IF l_frt_chrg = 'FREIGHT' THEN
13383 g_trx_line_frt := 'Y';
13384 END IF;
13385 IF l_frt_chrg = 'CHARGES' THEN
13386 g_trx_line_chrg := 'Y';
13387 END IF;
13388 END LOOP;
13389 CLOSE c_frt_chrg;
13390 --}
13391
13392
13393 END IF;
13394 CLOSE cu_line_loaded;
13395
13396 IF g_cm_trx_id is not null THEN
13397 localdebug('flow for regular cm');
13398 localdebug(' g_cm_trx_id :'||g_cm_trx_id);
13399 localdebug(' g_cm_upg_mthd :'||g_cm_upg_mthd);
13400 IF g_cm_upg_mthd IN ('R12_NLB','R12_MERGE') THEN
13401 UPDATE ra_customer_trx_lines_gt tl
13402 SET(cm_amt_due_orig, cm_amt_due_rem, cm_acctd_amt_due_orig, cm_acctd_amt_due_rem) =
13403 (SELECT sum(sum_amt),
13404 sum(sum_amt),
13405 sum(sum_acctd_amt),
13406 sum(sum_acctd_amt)
13407 FROM
13408 (SELECT SUM(amount) sum_amt,
13409 SUM(acctd_amount) sum_acctd_amt,
13410 customer_trx_line_id
13411 FROM ra_cust_trx_line_gl_dist
13412 WHERE customer_trx_id = g_cm_trx_id
13413 GROUP BY customer_trx_line_id)
13414 cm_gld,
13415 ra_customer_trx_lines cm_tl
13416 WHERE cm_tl.customer_trx_id = g_cm_trx_id
13417 AND cm_gld.customer_trx_line_id = cm_tl.customer_trx_line_id
13418 AND cm_tl.previous_customer_trx_line_id = tl.customer_trx_line_id)
13419 WHERE customer_trx_id = p_customer_trx_id;
13420 l_rows := sql%rowcount;
13421 IF PG_DEBUG = 'Y' THEN
13422 localdebug(' rows updated = ' || l_rows);
13423 END IF;
13424 ELSE
13425 UPDATE ra_customer_trx_lines_gt tl
13426 SET(cm_amt_due_orig, cm_amt_due_rem, cm_acctd_amt_due_orig, cm_acctd_amt_due_rem) =
13427 (SELECT sum(amount_due_original),
13428 sum(amount_due_remaining),
13429 sum(acctd_amount_due_original),
13430 sum(acctd_amount_due_remaining)
13431 FROM
13432 ra_customer_trx_lines cm_tl
13433 WHERE cm_tl.customer_trx_id = g_cm_trx_id
13434 AND cm_tl.previous_customer_trx_line_id = tl.customer_trx_line_id)
13435 WHERE customer_trx_id = p_customer_trx_id;
13436 l_rows := sql%rowcount;
13437 IF PG_DEBUG = 'Y' THEN
13438 localdebug(' rows updated = ' || l_rows);
13439 END IF;
13440 END IF;
13441 END IF;
13442
13443 IF (PG_DEBUG = 'Y') THEN
13444 display_cust_trx_gt(p_customer_trx_id => p_customer_trx_id);
13445 END IF;
13446 IF PG_DEBUG = 'Y' THEN
13447 localdebug('arp_det_dist_pkg.copy_trx_lines()-');
13448 END IF;
13449 EXCEPTION
13450 WHEN OTHERS THEN
13451 IF PG_DEBUG = 'Y' THEN
13452 localdebug('EXCEPTION OTHERS copy_trx_lines:'||SQLERRM);
13453 END IF;
13454 END copy_trx_lines;
13455
13456
13457
13458 PROCEDURE final_update_inv_ctl_rem_orig
13459 (p_customer_trx IN ra_customer_trx%ROWTYPE)
13460 IS
13461 CURSOR c(p_customer_trx_id IN NUMBER) IS
13462 SELECT /*+INDEX (ctl ra_customer_trx_lines_gt_n1)*/
13463 b.AMOUNT_DUE_REMAINING ,
13464 b.ACCTD_AMOUNT_DUE_REMAINING,
13465 b.AMOUNT_DUE_ORIGINAL ,
13466 b.ACCTD_AMOUNT_DUE_ORIGINAL ,
13467 b.CHRG_AMOUNT_REMAINING ,
13468 b.CHRG_ACCTD_AMOUNT_REMAINING,
13469 b.FRT_ADJ_REMAINING ,
13470 b.FRT_ADJ_ACCTD_REMAINING ,
13471 b.frt_ed_amount,
13472 b.frt_ed_acctd_amount,
13473 b.frt_uned_amount,
13474 b.frt_uned_acctd_amount,
13475 b.customer_trx_line_id
13476 FROM ra_customer_trx_lines_gt b
13477 WHERE b.customer_trx_id = p_customer_trx_id;
13478
13479 l_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
13480 l_acctd_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
13481 l_amt_orig_tab DBMS_SQL.NUMBER_TABLE;
13482 l_acctd_amt_orig_tab DBMS_SQL.NUMBER_TABLE;
13483 l_chrg_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
13484 l_chrg_acctd_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
13485 l_frt_adj_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
13486 l_frt_adj_acctd_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
13487 l_frt_ed_amt_tab DBMS_SQL.NUMBER_TABLE;
13488 l_frt_ed_acctd_amt_tab DBMS_SQL.NUMBER_TABLE;
13489 l_frt_uned_amt_tab DBMS_SQL.NUMBER_TABLE;
13490 l_frt_uned_acctd_amt_tab DBMS_SQL.NUMBER_TABLE;
13491 l_ctl_id_tab DBMS_SQL.NUMBER_TABLE;
13492 l_last_fetch BOOLEAN := FALSE;
13493
13494 /* 12902724 */
13495 l_count number;
13496 l_boundary_flag VARCHAR2(1);
13497 l_status varchar2(10);
13498 l_amt_due_rem_ps number;
13499 l_amt_due_orig_ps number;
13500
13501 BEGIN
13502 IF PG_DEBUG = 'Y' THEN
13503 localdebug('arp_det_dist_pkg.final_update_inv_ctl_rem_orig()+');
13504 END IF;
13505
13506 l_boundary_flag := 'N';
13507
13508 select count(*) into l_count from ar_payment_schedules where customer_trx_id=p_customer_trx.customer_trx_id;
13509
13510 IF l_count = 1 THEN
13511 select status,amount_due_original,amount_due_remaining into l_status,l_amt_due_orig_ps,l_amt_due_rem_ps
13512 from ar_payment_schedules where customer_trx_id=p_customer_trx.customer_trx_id;
13513 if l_status = 'CL' THEN
13514 l_boundary_flag := 'C';
13515 end if;
13516 ELSE
13517 l_boundary_flag := 'N';
13518 END IF;
13519
13520 OPEN c(p_customer_trx.customer_trx_id);
13521 LOOP
13522 FETCH c BULK COLLECT INTO l_amt_rem_tab,
13523 l_acctd_amt_rem_tab,
13524 l_amt_orig_tab,
13525 l_acctd_amt_orig_tab,
13526 l_chrg_amt_rem_tab,
13527 l_chrg_acctd_amt_rem_tab,
13528 l_frt_adj_amt_rem_tab,
13529 l_frt_adj_acctd_amt_rem_tab,
13530 l_frt_ed_amt_tab,
13531 l_frt_ed_acctd_amt_tab,
13532 l_frt_uned_amt_tab,
13533 l_frt_uned_acctd_amt_tab,
13534 l_ctl_id_tab
13535 LIMIT g_bulk_fetch_rows;
13536
13537 IF c%NOTFOUND THEN
13538 l_last_fetch := TRUE;
13539 END IF;
13540
13541 IF (l_ctl_id_tab.COUNT = 0) AND (l_last_fetch) THEN
13542 IF PG_DEBUG = 'Y' THEN
13543 localdebug('COUNT = 0 and LAST FETCH ');
13544 END IF;
13545 EXIT;
13546 END IF;
13547 IF l_boundary_flag = 'N' THEN
13548
13549 FORALL i IN l_ctl_id_tab.FIRST .. l_ctl_id_tab.LAST
13550 UPDATE ra_customer_trx_lines
13551 SET AMOUNT_DUE_REMAINING = l_amt_rem_tab(i),
13552 ACCTD_AMOUNT_DUE_REMAINING = l_acctd_amt_rem_tab(i),
13553 AMOUNT_DUE_ORIGINAL = l_amt_orig_tab(i),
13554 ACCTD_AMOUNT_DUE_ORIGINAL = l_acctd_amt_orig_tab(i),
13555 CHRG_AMOUNT_REMAINING = l_chrg_amt_rem_tab(i),
13556 CHRG_ACCTD_AMOUNT_REMAINING = l_chrg_acctd_amt_rem_tab(i),
13557 FRT_ADJ_REMAINING = l_frt_adj_amt_rem_tab(i),
13558 FRT_ADJ_ACCTD_REMAINING = l_frt_adj_acctd_amt_rem_tab(i),
13559 frt_ed_amount = l_frt_ed_amt_tab(i),
13560 frt_ed_acctd_amount = l_frt_ed_acctd_amt_tab(i),
13561 frt_uned_amount = l_frt_uned_amt_tab(i),
13562 frt_uned_acctd_amount = l_frt_uned_acctd_amt_tab(i)
13563 WHERE customer_trx_line_id = l_ctl_id_tab(i)
13564 AND customer_trx_id = p_customer_trx.customer_trx_id;
13565
13566 ELSE
13567 FORALL i IN l_ctl_id_tab.FIRST .. l_ctl_id_tab.LAST
13568 UPDATE ra_customer_trx_lines
13569 SET AMOUNT_DUE_REMAINING = l_amt_rem_tab(i),
13570 ACCTD_AMOUNT_DUE_REMAINING = decode(l_boundary_flag, 'C',0,l_acctd_amt_rem_tab(i)),
13571 AMOUNT_DUE_ORIGINAL = l_amt_orig_tab(i),
13572 ACCTD_AMOUNT_DUE_ORIGINAL = l_acctd_amt_orig_tab(i),
13573 CHRG_AMOUNT_REMAINING = l_chrg_amt_rem_tab(i),
13574 CHRG_ACCTD_AMOUNT_REMAINING = l_chrg_acctd_amt_rem_tab(i),
13575 FRT_ADJ_REMAINING = l_frt_adj_amt_rem_tab(i),
13576 FRT_ADJ_ACCTD_REMAINING = l_frt_adj_acctd_amt_rem_tab(i),
13577 frt_ed_amount = l_frt_ed_amt_tab(i),
13578 frt_ed_acctd_amount = l_frt_ed_acctd_amt_tab(i),
13579 frt_uned_amount = l_frt_uned_amt_tab(i),
13580 frt_uned_acctd_amount = l_frt_uned_acctd_amt_tab(i)
13581 WHERE customer_trx_line_id = l_ctl_id_tab(i)
13582 AND customer_trx_id = p_customer_trx.customer_trx_id;
13583
13584 END IF;
13585
13586 END LOOP;
13587 CLOSE c;
13588 IF PG_DEBUG = 'Y' THEN
13589 localdebug('arp_det_dist_pkg.final_update_inv_ctl_rem_orig()-');
13590 END IF;
13591 END final_update_inv_ctl_rem_orig;
13592
13593
13594 PROCEDURE create_final_split
13595 (p_customer_trx IN ra_customer_trx%ROWTYPE,
13596 p_app_rec IN ar_receivable_applications%ROWTYPE,
13597 p_adj_rec IN ar_adjustments%ROWTYPE,
13598 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
13599 IS
13600 BEGIN
13601 IF PG_DEBUG = 'Y' THEN
13602 localdebug('arp_det_dist_pkg.create_final_split()+');
13603 -- From distributions
13604 localdebug(' p_app_rec.ACCTD_AMOUNT_APPLIED_FROM :'||p_app_rec.ACCTD_AMOUNT_APPLIED_FROM);
13605 localdebug(' p_app_rec.AMOUNT_APPLIED_FROM :'||p_app_rec.AMOUNT_APPLIED_FROM );
13606 END IF;
13607
13608 update_from_gt
13609 (p_from_amt => p_app_rec.AMOUNT_APPLIED_FROM,
13610 p_from_acctd_amt => p_app_rec.ACCTD_AMOUNT_APPLIED_FROM,
13611 p_ae_sys_rec => p_ae_sys_rec,
13612 p_app_rec => p_app_rec);
13613
13614 IF p_adj_rec.adjustment_id IS NOT NULL THEN
13615
13616 Reconciliation
13617 (p_app_rec => p_app_rec,
13618 p_adj_rec => p_adj_rec,
13619 p_activity_type => 'ADJ');
13620
13621 stamping_adj(p_adj_id => p_adj_rec.adjustment_id);
13622 ELSIF p_app_rec.receivable_application_id IS NOT NULL THEN
13623
13624 Reconciliation
13625 (p_app_rec => p_app_rec,
13626 p_adj_rec => p_adj_rec,
13627 p_activity_type => 'RA');
13628
13629 stamping_ra(p_app_id => p_app_rec.receivable_application_id);
13630 END IF;
13631
13632 -- get_diag_flag;
13633
13634 -- IF g_diag_flag IN ('Y') THEN
13635 IF PG_DEBUG = 'Y' THEN
13636 diag_data;
13637 END IF;
13638 -- END IF;
13639 IF PG_DEBUG = 'Y' THEN
13640 localdebug('arp_det_dist_pkg.create_final_split()-');
13641 END IF;
13642 END create_final_split;
13643
13644 /*-------------------------------------------------------------------------+
13645 | Trx_level_direct_adjust |
13646 +-------------------------------------------------------------------------+
13647 | 1) get_invoice_line_info |
13648 | 2) prepare_group_for_proration |
13649 | 3) update_group_line |
13650 | 4) prepare_trx_line_proration |
13651 | 5) update_line |
13652 | 6) update_ctl_rem_orig |
13653 | 7) store_gt_id |
13654 +-------------------------------------------------------------------------+
13655 | parameter: |
13656 | p_customer_trx_id transaction id
13657 | p_adj_rec ar adjustment record
13658 | p_ae_sys_rec ar system parameter
13659 +-------------------------------------------------------------------------*/
13660 PROCEDURE Trx_level_direct_adjust
13661 (p_customer_trx IN ra_customer_trx%ROWTYPE,
13662 p_adj_rec IN ar_adjustments%ROWTYPE,
13663 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
13664 p_gt_id IN NUMBER DEFAULT NULL)
13665 IS
13666 l_app_rec ar_receivable_applications%ROWTYPE;
13667 l_gt_id NUMBER;
13668 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
13669 l_msg_count NUMBER := 0;
13670 l_msg_data VARCHAR2(2000);
13671 excep_get_gt_sequence EXCEPTION;
13672 BEGIN
13673 IF PG_DEBUG = 'Y' THEN
13674 localdebug('arp_det_dist_pkg.trx_level_direct_adjust()+');
13675 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
13676 END IF;
13677
13678 IF p_gt_id IS NULL THEN
13679 --BUG#4414391
13680 get_gt_sequence (x_gt_id => l_gt_id,
13681 x_return_status => l_return_status,
13682 x_msg_count => l_msg_count,
13683 x_msg_data => l_msg_data);
13684 IF l_return_status <> fnd_api.g_ret_sts_success THEN
13685 RAISE excep_get_gt_sequence;
13686 END IF;
13687 --l_gt_id := g_gt_id;
13688 --}
13689 ELSE
13690 l_gt_id := p_gt_id;
13691 END IF;
13692
13693 g_gt_id := l_gt_id;
13694
13695 --{BUG#4415037
13696 set_interface_flag(p_source_table => 'ADJ');
13697 --}
13698
13699 g_cust_inv_rec := p_customer_trx;
13700
13701 set_mode_process(p_customer_trx => g_cust_inv_rec,
13702 p_from_llca => 'N');
13703
13704 copy_trx_lines(p_customer_trx_id => p_customer_trx.customer_trx_id,
13705 p_ae_sys_rec => p_ae_sys_rec);
13706
13707 conv_acctd_amt(p_pay_adj => 'ADJ',
13708 p_adj_rec => p_adj_rec,
13709 p_app_rec => l_app_rec,
13710 p_ae_sys_rec => p_ae_sys_rec);
13711
13712 get_invoice_line_info(p_gt_id => l_gt_id,
13713 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13714 p_ae_sys_rec => p_ae_sys_rec,
13715 p_mode => 'NORMAL');
13716
13717 prepare_group_for_proration(p_gt_id => l_gt_id,
13718 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13719 p_pay_adj => 'ADJ',
13720 p_adj_rec => p_adj_rec,
13721 p_app_rec => l_app_rec,
13722 p_ae_sys_rec => p_ae_sys_rec);
13723
13724 update_group_line(p_gt_id => l_gt_id,
13725 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13726 p_ae_sys_rec => p_ae_sys_rec);
13727
13728 prepare_trx_line_proration(p_gt_id => l_gt_id,
13729 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13730 p_pay_adj => 'ADJ',
13731 p_adj_rec => p_adj_rec,
13732 p_app_rec => l_app_rec,
13733 p_ae_sys_rec => p_ae_sys_rec);
13734
13735 update_line(p_gt_id => l_gt_id,
13736 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13737 p_ae_sys_rec => p_ae_sys_rec);
13738
13739
13740 update_ctl_rem_orig(p_gt_id => l_gt_id,
13741 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13742 p_pay_adj => 'ADJ',
13743 p_ae_sys_rec => p_ae_sys_rec);
13744
13745 proration_adj_dist_trx(p_gt_id => l_gt_id,
13746 p_app_level => 'TRANSACTION',
13747 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13748 p_adj_rec => p_adj_rec,
13749 p_ae_sys_rec => p_ae_sys_rec);
13750
13751 --HYU
13752 --BUG#3611016 : Store the gt_id only for Primary set of books
13753 -- IF p_ae_sys_rec.sob_type = 'P' THEN
13754 -- store_gt_id(p_initial => FALSE,
13755 -- p_app_level => 'TRANSACTION');
13756 -- END IF;
13757
13758 --
13759 -- For invoice leagcy from 11i Cash basis, we do not maintain the balancing
13760 --
13761 --{HYUNLB
13762 -- IF g_mode_process <> 'R12_11ICASH' THEN
13763 -- final_update_inv_ctl_rem_orig(p_customer_trx => p_customer_trx);
13764 -- END IF;
13765 --}
13766 IF g_mode_process IN ('R12','R12_11IMFAR') THEN
13767 final_update_inv_ctl_rem_orig(p_customer_trx => p_customer_trx);
13768 END IF;
13769
13770
13771 create_final_split(p_customer_trx => p_customer_trx,
13772 p_app_rec => l_app_rec,
13773 p_adj_rec => p_adj_rec,
13774 p_ae_sys_rec => p_ae_sys_rec);
13775
13776 IF g_mode_process IN ('R12_MERGE') THEN
13777 UPDATE ar_adjustments
13778 SET upgrade_method = 'R12_MERGE'
13779 WHERE adjustment_id = p_adj_rec.adjustment_id;
13780 ELSE
13781 UPDATE ar_adjustments
13782 SET upgrade_method = 'R12'
13783 WHERE adjustment_id = p_adj_rec.adjustment_id;
13784 END IF;
13785
13786 IF PG_DEBUG = 'Y' THEN
13787 localdebug('arp_det_dist_pkg.trx_level_direct_adjust()-');
13788 END IF;
13789 EXCEPTION
13790 WHEN excep_get_gt_sequence THEN
13791 IF PG_DEBUG = 'Y' THEN
13792 localdebug('EXCEPTION_get_gt_sequence IN Trx_level_cash_apply error count:'||l_msg_count);
13793 localdebug('last error:'||l_msg_data);
13794 END IF;
13795 RAISE;
13796 WHEN OTHERS THEN
13797 IF PG_DEBUG = 'Y' THEN
13798 localdebug(' EXCEPTION OTHER Trx_level_direct_adjust :'||SQLERRM);
13799 END IF;
13800 -- RAISE;
13801 END Trx_level_direct_adjust;
13802
13803 /*-------------------------------------------------------------------------+
13804 | Trx_level_direct_cash_apply |
13805 +-------------------------------------------------------------------------+
13806 | 1) get_invoice_line_info |
13807 | 2) prepare_group_for_proration |
13808 | 3) update_group_line |
13809 | 4) prepare_trx_line_proration |
13810 | 5) update_line |
13811 | 6) update_ctl_rem_orig |
13812 | 7) store_gt_id |
13813 +-------------------------------------------------------------------------+
13814 | parameter: |
13815 | p_customer_trx_id transaction id |
13816 | p_app_rec ar receivable application record |
13817 | p_ae_sys_rec ar system parameter |
13818 +-------------------------------------------------------------------------*/
13819 PROCEDURE Trx_level_direct_cash_apply
13820 (p_customer_trx IN ra_customer_trx%ROWTYPE,
13821 p_app_rec IN ar_receivable_applications%ROWTYPE,
13822 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
13823 p_gt_id IN NUMBER DEFAULT NULL,
13824 p_inv_cm IN VARCHAR2 DEFAULT 'I')
13825 IS
13826 l_adj_rec ar_adjustments%ROWTYPE;
13827 l_app_rec ar_receivable_applications%ROWTYPE;
13828 l_gt_id NUMBER;
13829 l_out_res VARCHAR2(1);
13830 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
13831 l_msg_count NUMBER := 0;
13832 l_msg_data VARCHAR2(2000);
13833 l_upg_cm VARCHAR2(1);
13834 l_rows NUMBER;
13835 l_adj_exists VARCHAR2(1) := 'Y';
13836 excep_get_gt_sequence EXCEPTION;
13837 BEGIN
13838 IF PG_DEBUG = 'Y' THEN
13839 localdebug('arp_det_dist_pkg.trx_level_direct_cash_apply()+');
13840 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
13841 localdebug(' p_inv_cm :'||p_inv_cm);
13842 END IF;
13843
13844 IF p_gt_id IS NULL THEN
13845 --BUG#4414391
13846 get_gt_sequence (x_gt_id => l_gt_id,
13847 x_return_status => l_return_status,
13848 x_msg_count => l_msg_count,
13849 x_msg_data => l_msg_data);
13850 IF l_return_status <> fnd_api.g_ret_sts_success THEN
13851 RAISE excep_get_gt_sequence;
13852 END IF;
13853 --l_gt_id := g_gt_id;
13854 --}
13855 ELSE
13856 l_gt_id := p_gt_id;
13857 END IF;
13858
13859 g_gt_id := l_gt_id;
13860
13861 --{BUG#4415037
13862 set_interface_flag(p_source_table => 'RA');
13863 --}
13864
13865 g_cust_inv_rec := p_customer_trx;
13866
13867 set_mode_process(p_customer_trx => g_cust_inv_rec,
13868 p_from_llca => 'N');
13869
13870 IF g_mode_process IN ('R12_11ICASH') THEN
13871 Begin
13872 select 'Y'
13873 into l_adj_exists
13874 from ar_adjustments adj
13875 where customer_trx_id = p_customer_trx.customer_trx_id
13876 and nvl(upgrade_method,'11I') <> 'R12' -- non R12 adjustments
13877 and exists (select 'x' -- non detailed distributions
13878 from ar_distributions
13879 where source_id = adj.adjustment_id
13880 and source_table = 'ADJ'
13881 and source_type <> 'REC'
13882 and nvl(ref_customer_trx_line_id,-1) < 0);
13883 Exception
13884 when others then
13885 l_adj_exists := 'N';
13886 End;
13887 END IF;
13888
13889
13890 IF g_mode_process IN ('R12_11ICASH','R12_MERGE') and l_adj_exists = 'Y' THEN
13891
13892 -- Process OLTP application on old transactions
13893 -- with adjustments created in 11I
13894 online_lazy_apply
13895 (p_customer_trx => g_cust_inv_rec,
13896 p_app_rec => p_app_rec,
13897 p_ae_sys_rec => p_ae_sys_rec,
13898 p_gt_id => l_gt_id,
13899 p_inv_cm => p_inv_cm);
13900
13901 ELSE
13902
13903 g_cm_trx_id := null;
13904 IF p_app_rec.application_type = 'CM' AND
13905 p_inv_cm = 'I' THEN
13906 BEGIN
13907 select customer_trx_id, nvl(upgrade_method,'R12_NLB')
13908 into g_cm_trx_id, g_cm_upg_mthd
13909 from ra_customer_trx
13910 where customer_trx_id = p_app_rec.customer_trx_id
13911 and previous_customer_trx_id = p_app_rec.applied_customer_trx_id
13912 and nvl(upgrade_method, 'R12_NLB') in ('R12','R12_NLB','R12_11IMFAR');
13913
13914 localdebug(' g_cm_trx_id :'||g_cm_trx_id);
13915 localdebug(' g_cm_upg_mthd :'||g_cm_upg_mthd);
13916
13917 exec_revrec_if_required
13918 ( p_customer_trx_id => g_cm_trx_id,
13919 p_app_rec => l_app_rec,
13920 p_adj_rec => l_adj_rec);
13921
13922 EXCEPTION
13923 when others then
13924 g_cm_trx_id := null;
13925 END;
13926 END IF;
13927
13928 -- Normal process for applications on transactions
13929 -- without adjustments in 11I
13930 copy_trx_lines(p_customer_trx_id => p_customer_trx.customer_trx_id,
13931 p_ae_sys_rec => p_ae_sys_rec);
13932
13933
13934 -- If the application is from MFAR legacy the bucket of app charge can be wrong versus the
13935 -- remaining amount buckets of the transaction as the changes are prorated over all distributions
13936 IF g_mode_process = 'R12_11IMFAR' AND p_inv_cm = 'I' THEN
13937 l_return_status := FND_API.G_RET_STS_SUCCESS;
13938
13939 ar_upgrade_cash_accrual.COMPARE_RA_REM_AMT
13940 ( p_app_rec => p_app_rec,
13941 x_app_rec => l_app_rec,
13942 p_app_level => 'TRANSACTION',
13943 p_currency => g_cust_inv_rec.invoice_currency_code,
13944 x_return_status => l_return_status,
13945 x_msg_data => l_msg_data,
13946 x_msg_count => l_msg_count);
13947
13948 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
13949 RAISE fnd_api.G_EXC_ERROR;
13950 END IF;
13951
13952 IF PG_DEBUG = 'Y' THEN
13953 localdebug('l_app_rec.RECEIVABLES_CHARGES_APPLIED :' ||l_app_rec.RECEIVABLES_CHARGES_APPLIED);
13954 END IF;
13955
13956 ELSIF g_mode_process IN ('R12','R12_11IMFAR','R12_NLB','R12_11ICASH','R12_MERGE') AND p_inv_cm = 'C' THEN
13957
13958 IF g_mode_process = 'R12_11ICASH' THEN
13959 l_upg_cm := 'Y' ;
13960 ELSE
13961 l_upg_cm := 'N' ;
13962 END IF;
13963
13964 convert_ra_inv_to_cm
13965 ( p_inv_ra_rec => p_app_rec,
13966 p_cm_trx_id => g_cust_inv_rec.customer_trx_id,
13967 x_cm_ra_rec => l_app_rec,
13968 p_mode => 'OLTP',
13969 p_gt_id => l_gt_id,
13970 p_upg_cm => l_upg_cm);
13971
13972 ELSE
13973 l_app_rec := p_app_rec;
13974 END IF;
13975 --}
13976
13977 IF PG_DEBUG = 'Y' THEN
13978 localdebug('l_app_rec.RECEIVABLES_CHARGES_APPLIED :' ||l_app_rec.RECEIVABLES_CHARGES_APPLIED);
13979 END IF;
13980
13981 conv_acctd_amt(p_pay_adj => 'APP',
13982 p_adj_rec => l_adj_rec,
13983 p_app_rec => l_app_rec,
13984 p_ae_sys_rec => p_ae_sys_rec);
13985
13986
13987 IF g_cm_trx_id IS NOT NULL THEN
13988 get_invoice_line_info_cm(p_gt_id => l_gt_id,
13989 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13990 p_ae_sys_rec => p_ae_sys_rec,
13991 p_mode => 'NORMAL');
13992 g_cm_trx_id := null;
13993 ELSE
13994 get_invoice_line_info(p_gt_id => l_gt_id,
13995 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
13996 p_ae_sys_rec => p_ae_sys_rec,
13997 p_mode => 'NORMAL');
13998 END IF;
13999
14000 prepare_group_for_proration(p_gt_id => l_gt_id,
14001 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
14002 p_pay_adj => 'APP',
14003 p_adj_rec => l_adj_rec,
14004 p_app_rec => l_app_rec,
14005 p_ae_sys_rec => p_ae_sys_rec);
14006
14007 update_group_line(p_gt_id => l_gt_id,
14008 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
14009 p_ae_sys_rec => p_ae_sys_rec);
14010
14011 prepare_trx_line_proration(p_gt_id => l_gt_id,
14012 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
14013 p_pay_adj => 'APP',
14014 p_adj_rec => l_adj_rec,
14015 p_app_rec => l_app_rec,
14016 p_ae_sys_rec => p_ae_sys_rec);
14017
14018 update_line(p_gt_id => l_gt_id,
14019 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
14020 p_ae_sys_rec => p_ae_sys_rec);
14021
14022 update_ctl_rem_orig(p_gt_id => l_gt_id,
14023 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
14024 p_pay_adj => 'APP',
14025 p_ae_sys_rec => p_ae_sys_rec);
14026
14027 proration_app_dist_trx(p_gt_id => l_gt_id,
14028 p_app_level => 'TRANSACTION',
14029 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
14030 p_app_rec => l_app_rec,
14031 p_ae_sys_rec => p_ae_sys_rec);
14032
14033 --BUG#3611016 : Store the gt_id only for Primary set of books
14034 -- IF p_ae_sys_rec.sob_type = 'P' THEN
14035 -- store_gt_id(p_initial => FALSE,
14036 -- p_app_level => 'TRANSACTION');
14037 -- END IF;
14038
14039 --HYU
14040 -- delete from ra_ar_st;
14041 -- insert into ra_ar_st select * from ra_ar_gt;
14042
14043 --{HYUNLB
14044 -- final_update_inv_ctl_rem_orig(p_customer_trx => p_customer_trx);
14045 --}
14046
14047
14048 IF g_mode_process IN ('R12','R12_11IMFAR') THEN
14049 final_update_inv_ctl_rem_orig(p_customer_trx => p_customer_trx);
14050 END IF;
14051
14052 END IF;
14053 -- End of difference between applications}
14054
14055 create_final_split(p_customer_trx => p_customer_trx,
14056 p_app_rec => l_app_rec,
14057 p_adj_rec => l_adj_rec,
14058 p_ae_sys_rec => p_ae_sys_rec);
14059
14060
14061 IF PG_DEBUG = 'Y' THEN
14062 localdebug('arp_det_dist_pkg.trx_level_direct_cash_apply()-');
14063 END IF;
14064 EXCEPTION
14065 WHEN excep_get_gt_sequence THEN
14066 IF PG_DEBUG = 'Y' THEN
14067 localdebug('EXCEPTION_get_gt_sequence IN Trx_level_cash_apply error count:'||l_msg_count);
14068 localdebug('last error:'||l_msg_data);
14069 END IF;
14070 RAISE;
14071 WHEN fnd_api.G_EXC_ERROR THEN
14072 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
14073 p_count => l_msg_count,
14074 p_data => l_msg_data);
14075 IF PG_DEBUG = 'Y' THEN
14076 localdebug('fnd_api.G_EXC_ERROR IN Trx_level_direct_cash_apply error count:'||l_msg_count);
14077 localdebug('last error:'||l_msg_data);
14078 END IF;
14079 RAISE;
14080 WHEN OTHERS THEN
14081 IF PG_DEBUG = 'Y' THEN
14082 localdebug('OTHERS IN Trx_level_direct_cash_apply :'||SQLERRM);
14083 END IF;
14084 RAISE;
14085 END Trx_level_direct_cash_apply;
14086
14087
14088 PROCEDURE display_ra_ar_row(p_ra_ar_rec IN ra_ar_gt%ROWTYPE)
14089 IS
14090 BEGIN
14091 IF PG_DEBUG = 'Y' THEN
14092 localdebug( 'display_ra_ar_row +');
14093 localdebug( ' source_data_key5 :'|| p_ra_ar_rec.SOURCE_DATA_KEY5);
14094 localdebug( ' dist_ed_chrg_amt :'|| p_ra_ar_rec.DIST_ED_CHRG_AMT);
14095 localdebug( ' dist_ed_chrg_acctd_amt :'|| p_ra_ar_rec.DIST_ED_CHRG_ACCTD_AMT);
14096 localdebug( ' dist_uned_amt :'|| p_ra_ar_rec.DIST_UNED_AMT);
14097 localdebug( ' dist_uned_acctd_amt :'|| p_ra_ar_rec.DIST_UNED_ACCTD_AMT);
14098 localdebug( ' dist_uned_frt_amt :'|| p_ra_ar_rec.DIST_UNED_FRT_AMT);
14099 localdebug( ' dist_uned_frt_acctd_amt :'|| p_ra_ar_rec.DIST_UNED_FRT_ACCTD_AMT);
14100 localdebug( ' dist_uned_tax_amt :'|| p_ra_ar_rec.DIST_UNED_TAX_AMT);
14101 localdebug( ' dist_uned_tax_acctd_amt :'|| p_ra_ar_rec.DIST_UNED_TAX_ACCTD_AMT);
14102 localdebug( ' dist_uned_chrg_amt :'|| p_ra_ar_rec.DIST_UNED_CHRG_AMT);
14103 localdebug( ' dist_uned_chrg_acctd_amt :'|| p_ra_ar_rec.DIST_UNED_CHRG_ACCTD_AMT);
14104 /* localdebug( ' base_dist_amt :'|| p_ra_ar_rec.BASE_DIST_AMT);
14105 localdebug( ' base_dist_acctd_amt :'|| p_ra_ar_rec.BASE_DIST_ACCTD_AMT);
14106 localdebug( ' base_dist_frt_amt :'|| p_ra_ar_rec.BASE_DIST_FRT_AMT);
14107 localdebug( ' base_dist_frt_acctd_amt :'|| p_ra_ar_rec.BASE_DIST_FRT_ACCTD_AMT);
14108 localdebug( ' base_dist_tax_amt :'|| p_ra_ar_rec.BASE_DIST_TAX_AMT);
14109 localdebug( ' base_dist_tax_acctd_amt :'|| p_ra_ar_rec.BASE_DIST_TAX_ACCTD_AMT);
14110 localdebug( ' base_dist_chrg_amt :'|| p_ra_ar_rec.BASE_DIST_CHRG_AMT);
14111 localdebug( ' base_dist_chrg_acctd_amt :'|| p_ra_ar_rec.BASE_DIST_CHRG_ACCTD_AMT);
14112 localdebug( ' base_ed_dist_amt :'|| p_ra_ar_rec.BASE_ED_DIST_AMT);
14113 localdebug( ' base_ed_dist_acctd_amt :'|| p_ra_ar_rec.BASE_ED_DIST_ACCTD_AMT);
14114 localdebug( ' base_ed_dist_frt_amt :'|| p_ra_ar_rec.BASE_ED_DIST_FRT_AMT);
14115 localdebug( ' base_ed_dist_frt_acctd_amt :'|| p_ra_ar_rec.BASE_ED_DIST_FRT_ACCTD_AMT);
14116 localdebug( ' elmt_ed_frt_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_ED_FRT_PRO_ACCTD_AMT);
14117 localdebug( ' elmt_ed_tax_pro_amt :'|| p_ra_ar_rec.ELMT_ED_TAX_PRO_AMT);
14118 localdebug( ' elmt_ed_tax_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_ED_TAX_PRO_ACCTD_AMT);
14119 localdebug( ' base_ed_pro_amt :'|| p_ra_ar_rec.BASE_ED_PRO_AMT);
14120 localdebug( ' base_ed_pro_acctd_amt :'|| p_ra_ar_rec.BASE_ED_PRO_ACCTD_AMT);
14121 localdebug( ' base_ed_chrg_pro_amt :'|| p_ra_ar_rec.BASE_ED_CHRG_PRO_AMT); */
14122 localdebug( ' tax_rem_acctd_amt :'|| p_ra_ar_rec.TAX_REM_ACCTD_AMT);
14123 localdebug( ' line_type :'|| p_ra_ar_rec.LINE_TYPE);
14124 localdebug( ' sum_line_orig_amt :'|| p_ra_ar_rec.SUM_LINE_ORIG_AMT);
14125 localdebug( ' sum_line_orig_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_ORIG_ACCTD_AMT);
14126 localdebug( ' sum_line_frt_orig_amt :'|| p_ra_ar_rec.SUM_LINE_FRT_ORIG_AMT);
14127 localdebug( ' sum_line_frt_orig_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_FRT_ORIG_ACCTD_AMT);
14128 localdebug( ' sum_line_tax_orig_amt :'|| p_ra_ar_rec.SUM_LINE_TAX_ORIG_AMT);
14129 /* localdebug( ' buc_uned_chrg_alloc_amt :'|| p_ra_ar_rec.BUC_UNED_CHRG_ALLOC_AMT);
14130 localdebug( ' buc_uned_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_UNED_CHRG_ALLOC_ACCTD_AMT);
14131 localdebug( ' buc_uned_frt_alloc_amt :'|| p_ra_ar_rec.BUC_UNED_FRT_ALLOC_AMT);
14132 localdebug( ' buc_uned_frt_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_UNED_FRT_ALLOC_ACCTD_AMT);
14133 localdebug( ' buc_uned_tax_alloc_amt :'|| p_ra_ar_rec.BUC_UNED_TAX_ALLOC_AMT);
14134 localdebug( ' buc_uned_tax_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_UNED_TAX_ALLOC_ACCTD_AMT);
14135 localdebug( ' elmt_uned_pro_amt :'|| p_ra_ar_rec.ELMT_UNED_PRO_AMT);
14136 localdebug( ' elmt_uned_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_UNED_PRO_ACCTD_AMT);
14137 localdebug( ' elmt_uned_chrg_pro_amt :'|| p_ra_ar_rec.ELMT_UNED_CHRG_PRO_AMT);
14138 localdebug( ' elmt_uned_chrg_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_UNED_CHRG_PRO_ACCTD_AMT);
14139 localdebug( ' elmt_uned_frt_pro_amt :'|| p_ra_ar_rec.ELMT_UNED_FRT_PRO_AMT);
14140 localdebug( ' elmt_uned_frt_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_UNED_FRT_PRO_ACCTD_AMT);
14141 localdebug( ' elmt_uned_tax_pro_amt :'|| p_ra_ar_rec.ELMT_UNED_TAX_PRO_AMT);
14142 localdebug( ' base_ed_dist_tax_amt :'|| p_ra_ar_rec.BASE_ED_DIST_TAX_AMT);
14143 localdebug( ' base_ed_dist_tax_acctd_amt :'|| p_ra_ar_rec.BASE_ED_DIST_TAX_ACCTD_AMT);
14144 localdebug( ' base_ed_dist_chrg_amt :'|| p_ra_ar_rec.BASE_ED_DIST_CHRG_AMT);
14145 localdebug( ' base_ed_dist_chrg_acctd_amt :'|| p_ra_ar_rec.BASE_ED_DIST_CHRG_ACCTD_AMT);
14146 localdebug( ' base_uned_dist_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_AMT);
14147 localdebug( ' base_uned_dist_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_ACCTD_AMT);
14148 localdebug( ' base_uned_dist_frt_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_FRT_AMT);
14149 localdebug( ' base_uned_dist_frt_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_FRT_ACCTD_AMT);
14150 localdebug( ' base_uned_dist_tax_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_TAX_AMT);
14151 localdebug( ' base_uned_dist_tax_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_TAX_ACCTD_AMT);
14152 localdebug( ' base_uned_dist_chrg_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_CHRG_AMT);
14153 localdebug( ' base_uned_dist_chrg_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_CHRG_ACCTD_AMT);*/
14154 localdebug( ' gp_level :'|| p_ra_ar_rec.GP_LEVEL);
14155 localdebug( ' from_alloc_acctd_amt :'|| p_ra_ar_rec.FROM_ALLOC_ACCTD_AMT);
14156 localdebug( ' tl_alloc_amt :'|| p_ra_ar_rec.TL_ALLOC_AMT);
14157 localdebug( ' tl_alloc_acctd_amt :'|| p_ra_ar_rec.TL_ALLOC_ACCTD_AMT);
14158 localdebug( ' tl_chrg_alloc_amt :'|| p_ra_ar_rec.TL_CHRG_ALLOC_AMT);
14159 localdebug( ' tl_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.TL_CHRG_ALLOC_ACCTD_AMT);
14160 localdebug( ' tax_rem_amt :'|| p_ra_ar_rec.TAX_REM_AMT);
14161 /* localdebug( ' buc_ed_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_ED_ALLOC_ACCTD_AMT);
14162 localdebug( ' buc_ed_chrg_alloc_amt :'|| p_ra_ar_rec.BUC_ED_CHRG_ALLOC_AMT);
14163 localdebug( ' base_ed_chrg_pro_acctd_amt :'|| p_ra_ar_rec.BASE_ED_CHRG_PRO_ACCTD_AMT);*/
14164 localdebug( ' group_id :'|| p_ra_ar_rec.GROUP_ID);
14165 /* localdebug( ' elmt_uned_tax_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_UNED_TAX_PRO_ACCTD_AMT);
14166 localdebug( ' base_uned_pro_amt :'|| p_ra_ar_rec.BASE_UNED_PRO_AMT);
14167 localdebug( ' base_uned_pro_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_PRO_ACCTD_AMT);
14168 localdebug( ' base_uned_chrg_pro_amt :'|| p_ra_ar_rec.BASE_UNED_CHRG_PRO_AMT);
14169 localdebug( ' base_uned_chrg_pro_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_CHRG_PRO_ACCTD_AMT);
14170 localdebug( ' base_uned_frt_pro_amt :'|| p_ra_ar_rec.BASE_UNED_FRT_PRO_AMT);
14171 localdebug( ' base_uned_frt_pro_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_FRT_PRO_ACCTD_AMT);
14172 localdebug( ' base_uned_tax_pro_amt :'|| p_ra_ar_rec.BASE_UNED_TAX_PRO_AMT);
14173 localdebug( ' base_uned_tax_pro_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_TAX_PRO_ACCTD_AMT);*/
14174 localdebug( ' dist_amt :'|| p_ra_ar_rec.DIST_AMT);
14175 localdebug( ' dist_acctd_amt :'|| p_ra_ar_rec.DIST_ACCTD_AMT);
14176 localdebug( ' dist_frt_amt :'|| p_ra_ar_rec.DIST_FRT_AMT);
14177 localdebug( ' dist_frt_acctd_amt :'|| p_ra_ar_rec.DIST_FRT_ACCTD_AMT);
14178 localdebug( ' dist_tax_amt :'|| p_ra_ar_rec.DIST_TAX_AMT);
14179 localdebug( ' dist_tax_acctd_amt :'|| p_ra_ar_rec.DIST_TAX_ACCTD_AMT);
14180 localdebug( ' dist_chrg_amt :'|| p_ra_ar_rec.DIST_CHRG_AMT);
14181 localdebug( ' dist_chrg_acctd_amt :'|| p_ra_ar_rec.DIST_CHRG_ACCTD_AMT);
14182 localdebug( ' dist_ed_amt :'|| p_ra_ar_rec.DIST_ED_AMT);
14183 localdebug( ' dist_ed_acctd_amt :'|| p_ra_ar_rec.DIST_ED_ACCTD_AMT);
14184 localdebug( ' dist_ed_frt_amt :'|| p_ra_ar_rec.DIST_ED_FRT_AMT);
14185 localdebug( ' dist_ed_frt_acctd_amt :'|| p_ra_ar_rec.DIST_ED_FRT_ACCTD_AMT);
14186 /* localdebug( ' elmt_pro_amt :'|| p_ra_ar_rec.ELMT_PRO_AMT);
14187 localdebug( ' elmt_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_PRO_ACCTD_AMT);
14188 localdebug( ' elmt_chrg_pro_amt :'|| p_ra_ar_rec.ELMT_CHRG_PRO_AMT);
14189 localdebug( ' elmt_chrg_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_CHRG_PRO_ACCTD_AMT);
14190 localdebug( ' elmt_frt_pro_amt :'|| p_ra_ar_rec.ELMT_FRT_PRO_AMT);
14191 localdebug( ' elmt_frt_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_FRT_PRO_ACCTD_AMT);
14192 localdebug( ' elmt_tax_pro_amt :'|| p_ra_ar_rec.ELMT_TAX_PRO_AMT);
14193 localdebug( ' elmt_tax_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_TAX_PRO_ACCTD_AMT);
14194 localdebug( ' buc_alloc_amt :'|| p_ra_ar_rec.BUC_ALLOC_AMT);
14195 localdebug( ' buc_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_ALLOC_ACCTD_AMT);
14196 localdebug( ' buc_chrg_alloc_amt :'|| p_ra_ar_rec.BUC_CHRG_ALLOC_AMT);
14197 localdebug( ' buc_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_CHRG_ALLOC_ACCTD_AMT);
14198 localdebug( ' buc_frt_alloc_amt :'|| p_ra_ar_rec.BUC_FRT_ALLOC_AMT);
14199 localdebug( ' buc_frt_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_FRT_ALLOC_ACCTD_AMT);
14200 localdebug( ' buc_tax_alloc_amt :'|| p_ra_ar_rec.BUC_TAX_ALLOC_AMT);
14201 localdebug( ' buc_tax_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_TAX_ALLOC_ACCTD_AMT);*/
14202 localdebug( ' tl_ed_alloc_amt :'|| p_ra_ar_rec.TL_ED_ALLOC_AMT);
14203 localdebug( ' tl_ed_alloc_acctd_amt :'|| p_ra_ar_rec.TL_ED_ALLOC_ACCTD_AMT);
14204 localdebug( ' tl_ed_chrg_alloc_amt :'|| p_ra_ar_rec.TL_ED_CHRG_ALLOC_AMT);
14205 localdebug( ' tl_ed_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.TL_ED_CHRG_ALLOC_ACCTD_AMT);
14206 localdebug( ' tl_ed_frt_alloc_amt :'|| p_ra_ar_rec.TL_ED_FRT_ALLOC_AMT);
14207 localdebug( ' gt_id :'|| p_ra_ar_rec.GT_ID);
14208 localdebug( ' base_currency :'|| p_ra_ar_rec.BASE_CURRENCY);
14209 localdebug( ' to_currency :'|| p_ra_ar_rec.TO_CURRENCY);
14210 localdebug( ' from_currency :'|| p_ra_ar_rec.FROM_CURRENCY);
14211 localdebug( ' det_id :'|| p_ra_ar_rec.DET_ID);
14212 localdebug( ' line_id :'|| p_ra_ar_rec.LINE_ID);
14213 localdebug( ' ref_customer_trx_id :'|| p_ra_ar_rec.REF_CUSTOMER_TRX_ID);
14214 localdebug( ' ref_customer_trx_line_id :'|| p_ra_ar_rec.REF_CUSTOMER_TRX_LINE_ID);
14215 localdebug( ' ref_cust_trx_line_gl_dist_id :'|| p_ra_ar_rec.REF_CUST_TRX_LINE_GL_DIST_ID);
14216 localdebug( ' ref_line_id :'|| p_ra_ar_rec.REF_LINE_ID);
14217 localdebug( ' ref_det_id :'|| p_ra_ar_rec.REF_DET_ID);
14218 localdebug( ' account_class :'|| p_ra_ar_rec.ACCOUNT_CLASS);
14219 localdebug( ' source_type :'|| p_ra_ar_rec.SOURCE_TYPE);
14220 localdebug( ' source_table :'|| p_ra_ar_rec.SOURCE_TABLE);
14221 localdebug( ' source_id :'|| p_ra_ar_rec.SOURCE_ID);
14222 localdebug( ' amt :'|| p_ra_ar_rec.AMT);
14223 localdebug( ' acctd_amt :'|| p_ra_ar_rec.ACCTD_AMT);
14224 localdebug( ' amt_dr :'|| p_ra_ar_rec.AMT_DR);
14225 localdebug( ' amt_cr :'|| p_ra_ar_rec.AMT_CR);
14226 localdebug( ' acctd_amt_dr :'|| p_ra_ar_rec.ACCTD_AMT_DR);
14227 localdebug( ' acctd_amt_cr :'|| p_ra_ar_rec.ACCTD_AMT_CR);
14228 localdebug( ' from_acctd_amt_dr :'|| p_ra_ar_rec.FROM_ACCTD_AMT_DR);
14229 localdebug( ' from_acctd_amt_cr :'|| p_ra_ar_rec.FROM_ACCTD_AMT_CR);
14230 localdebug( ' ccid :'|| p_ra_ar_rec.CCID);
14231 localdebug( ' ccid_secondary :'|| p_ra_ar_rec.CCID_SECONDARY);
14232 localdebug( ' alloc_amt :'|| p_ra_ar_rec.ALLOC_AMT);
14233 localdebug( ' alloc_acctd_amt :'|| p_ra_ar_rec.ALLOC_ACCTD_AMT);
14234 localdebug( ' from_alloc_amt :'|| p_ra_ar_rec.FROM_ALLOC_AMT);
14235 localdebug( ' sum_gp_line_orig_amt :'|| p_ra_ar_rec.SUM_GP_LINE_ORIG_AMT);
14236 localdebug( ' sum_gp_line_orig_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_ORIG_ACCTD_AMT);
14237 localdebug( ' sum_gp_line_frt_orig_amt :'|| p_ra_ar_rec.SUM_GP_LINE_FRT_ORIG_AMT);
14238 localdebug( ' sum_gp_line_frt_orig_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_FRT_ORIG_ACCTD_AMT);
14239 localdebug( ' sum_gp_line_tax_orig_amt :'|| p_ra_ar_rec.SUM_GP_LINE_TAX_ORIG_AMT);
14240 localdebug( ' tl_frt_alloc_acctd_amt :'|| p_ra_ar_rec.TL_FRT_ALLOC_ACCTD_AMT);
14241 localdebug( ' tl_tax_alloc_amt :'|| p_ra_ar_rec.TL_TAX_ALLOC_AMT);
14242 localdebug( ' tl_tax_alloc_acctd_amt :'|| p_ra_ar_rec.TL_TAX_ALLOC_ACCTD_AMT);
14243 localdebug( ' due_orig_amt :'|| p_ra_ar_rec.DUE_ORIG_AMT);
14244 localdebug( ' due_orig_acctd_amt :'|| p_ra_ar_rec.DUE_ORIG_ACCTD_AMT);
14245 localdebug( ' frt_orig_amt :'|| p_ra_ar_rec.FRT_ORIG_AMT);
14246 localdebug( ' frt_orig_acctd_amt :'|| p_ra_ar_rec.FRT_ORIG_ACCTD_AMT);
14247 localdebug( ' tax_orig_amt :'|| p_ra_ar_rec.TAX_ORIG_AMT);
14248 localdebug( ' tax_orig_acctd_amt :'|| p_ra_ar_rec.TAX_ORIG_ACCTD_AMT);
14249 localdebug( ' due_rem_amt :'|| p_ra_ar_rec.DUE_REM_AMT);
14250 localdebug( ' due_rem_acctd_amt :'|| p_ra_ar_rec.DUE_REM_ACCTD_AMT);
14251 localdebug( ' chrg_rem_amt :'|| p_ra_ar_rec.CHRG_REM_AMT);
14252 localdebug( ' chrg_rem_acctd_amt :'|| p_ra_ar_rec.CHRG_REM_ACCTD_AMT);
14253 localdebug( ' frt_rem_amt :'|| p_ra_ar_rec.FRT_REM_AMT);
14254 localdebug( ' frt_rem_acctd_amt :'|| p_ra_ar_rec.FRT_REM_ACCTD_AMT);
14255 localdebug( ' frt_adj_rem_amt :'|| p_ra_ar_rec.FRT_ADJ_REM_AMT);
14256 localdebug( ' frt_adj_rem_acctd_amt :'|| p_ra_ar_rec.FRT_ADJ_REM_ACCTD_AMT);
14257 localdebug( ' dist_ed_tax_amt :'|| p_ra_ar_rec.DIST_ED_TAX_AMT);
14258 /* localdebug( ' base_ed_frt_pro_amt :'|| p_ra_ar_rec.BASE_ED_FRT_PRO_AMT);
14259 localdebug( ' base_ed_frt_pro_acctd_amt :'|| p_ra_ar_rec.BASE_ED_FRT_PRO_ACCTD_AMT);
14260 localdebug( ' base_ed_tax_pro_amt :'|| p_ra_ar_rec.BASE_ED_TAX_PRO_AMT);
14261 localdebug( ' base_ed_tax_pro_acctd_amt :'|| p_ra_ar_rec.BASE_ED_TAX_PRO_ACCTD_AMT);*/
14262 localdebug( ' tl_uned_alloc_amt :'|| p_ra_ar_rec.TL_UNED_ALLOC_AMT);
14263 localdebug( ' tl_uned_alloc_acctd_amt :'|| p_ra_ar_rec.TL_UNED_ALLOC_ACCTD_AMT);
14264 localdebug( ' tl_uned_chrg_alloc_amt :'|| p_ra_ar_rec.TL_UNED_CHRG_ALLOC_AMT);
14265 localdebug( ' tl_uned_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.TL_UNED_CHRG_ALLOC_ACCTD_AMT);
14266 localdebug( ' tl_uned_frt_alloc_amt :'|| p_ra_ar_rec.TL_UNED_FRT_ALLOC_AMT);
14267 localdebug( ' sum_gp_line_tax_orig_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_TAX_ORIG_ACCTD_AMT);
14268 /* localdebug( ' buc_ed_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_ED_CHRG_ALLOC_ACCTD_AMT);
14269 localdebug( ' buc_ed_frt_alloc_amt :'|| p_ra_ar_rec.BUC_ED_FRT_ALLOC_AMT);
14270 localdebug( ' buc_ed_frt_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_ED_FRT_ALLOC_ACCTD_AMT);
14271 localdebug( ' buc_ed_tax_alloc_amt :'|| p_ra_ar_rec.BUC_ED_TAX_ALLOC_AMT);
14272 localdebug( ' buc_ed_tax_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_ED_TAX_ALLOC_ACCTD_AMT);
14273 localdebug( ' elmt_ed_pro_amt :'|| p_ra_ar_rec.ELMT_ED_PRO_AMT);
14274 localdebug( ' elmt_ed_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_ED_PRO_ACCTD_AMT);
14275 localdebug( ' elmt_ed_chrg_pro_amt :'|| p_ra_ar_rec.ELMT_ED_CHRG_PRO_AMT);
14276 localdebug( ' elmt_ed_chrg_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_ED_CHRG_PRO_ACCTD_AMT);
14277 localdebug( ' elmt_ed_frt_pro_amt :'|| p_ra_ar_rec.ELMT_ED_FRT_PRO_AMT);*/
14278 localdebug( ' sum_line_tax_orig_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_TAX_ORIG_ACCTD_AMT);
14279 localdebug( ' sum_line_rem_amt :'|| p_ra_ar_rec.SUM_LINE_REM_AMT);
14280 localdebug( ' sum_line_rem_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_REM_ACCTD_AMT);
14281 localdebug( ' sum_line_chrg_rem_amt :'|| p_ra_ar_rec.SUM_LINE_CHRG_REM_AMT);
14282 localdebug( ' sum_line_chrg_rem_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_CHRG_REM_ACCTD_AMT);
14283 localdebug( ' sum_line_frt_rem_amt :'|| p_ra_ar_rec.SUM_LINE_FRT_REM_AMT);
14284 localdebug( ' sum_line_frt_rem_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_FRT_REM_ACCTD_AMT);
14285 localdebug( ' sum_line_tax_rem_amt :'|| p_ra_ar_rec.SUM_LINE_TAX_REM_AMT);
14286 localdebug( ' sum_line_tax_rem_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_TAX_REM_ACCTD_AMT);
14287 /* localdebug( ' base_pro_amt :'|| p_ra_ar_rec.BASE_PRO_AMT);
14288 localdebug( ' base_pro_acctd_amt :'|| p_ra_ar_rec.BASE_PRO_ACCTD_AMT);
14289 localdebug( ' base_chrg_pro_amt :'|| p_ra_ar_rec.BASE_CHRG_PRO_AMT);
14290 localdebug( ' base_chrg_pro_acctd_amt :'|| p_ra_ar_rec.BASE_CHRG_PRO_ACCTD_AMT);
14291 localdebug( ' base_frt_pro_amt :'|| p_ra_ar_rec.BASE_FRT_PRO_AMT);
14292 localdebug( ' base_frt_pro_acctd_amt :'|| p_ra_ar_rec.BASE_FRT_PRO_ACCTD_AMT);
14293 localdebug( ' base_tax_pro_amt :'|| p_ra_ar_rec.BASE_TAX_PRO_AMT);
14294 localdebug( ' base_tax_pro_acctd_amt :'|| p_ra_ar_rec.BASE_TAX_PRO_ACCTD_AMT);*/
14295 localdebug( ' dist_ed_tax_acctd_amt :'|| p_ra_ar_rec.DIST_ED_TAX_ACCTD_AMT);
14296 localdebug( ' sum_gp_line_rem_amt :'|| p_ra_ar_rec.SUM_GP_LINE_REM_AMT);
14297 localdebug( ' sum_gp_line_rem_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_REM_ACCTD_AMT);
14298 localdebug( ' sum_gp_line_chrg_rem_amt :'|| p_ra_ar_rec.SUM_GP_LINE_CHRG_REM_AMT);
14299 localdebug( ' sum_gp_line_chrg_rem_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_CHRG_REM_ACCTD_AMT);
14300 localdebug( ' sum_gp_line_frt_rem_amt :'|| p_ra_ar_rec.SUM_GP_LINE_FRT_REM_AMT);
14301 localdebug( ' sum_gp_line_frt_rem_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_FRT_REM_ACCTD_AMT);
14302 localdebug( ' sum_gp_line_tax_rem_amt :'|| p_ra_ar_rec.SUM_GP_LINE_TAX_REM_AMT);
14303 localdebug( ' sum_gp_line_tax_rem_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_TAX_REM_ACCTD_AMT);
14304 localdebug( ' set_of_books_id :'|| p_ra_ar_rec.SET_OF_BOOKS_ID);
14305 localdebug( ' sob_type :'|| p_ra_ar_rec.SOB_TYPE);
14306 localdebug( ' activity_bucket :'|| p_ra_ar_rec.activity_bucket);
14307 localdebug( ' source_data_key1 :'|| p_ra_ar_rec.SOURCE_DATA_KEY1);
14308 localdebug( ' source_data_key2 :'|| p_ra_ar_rec.SOURCE_DATA_KEY2);
14309 localdebug( ' source_data_key3 :'|| p_ra_ar_rec.SOURCE_DATA_KEY3);
14310 localdebug( ' source_data_key4 :'|| p_ra_ar_rec.SOURCE_DATA_KEY4);
14311 localdebug( ' tl_ed_frt_alloc_acctd_amt :'|| p_ra_ar_rec.TL_ED_FRT_ALLOC_ACCTD_AMT);
14312 localdebug( ' tl_ed_tax_alloc_amt :'|| p_ra_ar_rec.TL_ED_TAX_ALLOC_AMT);
14313 localdebug( ' tl_ed_tax_alloc_acctd_amt :'|| p_ra_ar_rec.TL_ED_TAX_ALLOC_ACCTD_AMT);
14314 -- localdebug( ' buc_ed_alloc_amt :'|| p_ra_ar_rec.BUC_ED_ALLOC_AMT);
14315 localdebug( ' tl_uned_frt_alloc_acctd_amt :'|| p_ra_ar_rec.TL_UNED_FRT_ALLOC_ACCTD_AMT);
14316 localdebug( ' tl_uned_tax_alloc_amt :'|| p_ra_ar_rec.TL_UNED_TAX_ALLOC_AMT);
14317 localdebug( ' tl_uned_tax_alloc_acctd_amt :'|| p_ra_ar_rec.TL_UNED_TAX_ALLOC_ACCTD_AMT);
14318 -- localdebug( ' buc_uned_alloc_amt :'|| p_ra_ar_rec.BUC_UNED_ALLOC_AMT);
14319 -- localdebug( ' buc_uned_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_UNED_ALLOC_ACCTD_AMT);
14320 localdebug( ' tl_frt_alloc_amt :'|| p_ra_ar_rec.TL_FRT_ALLOC_AMT);
14321 localdebug( 'arp_det_dist_pkg.display_ra_ar_row()-');
14322 END IF;
14323 END;
14324
14325
14326 PROCEDURE display_ra_ar_gt
14327 (p_code IN VARCHAR2 DEFAULT NULL,
14328 p_gt_id IN VARCHAR2)
14329 IS
14330 CURSOR c1 IS
14331 SELECT * FROM ra_ar_gt
14332 WHERE gt_id = p_gt_id;
14333
14334 CURSOR c2 IS
14335 SELECT * FROM ra_ar_gt
14336 WHERE gp_level = p_code
14337 AND gt_id = p_gt_id;
14338
14339 l_record c1%ROWTYPE;
14340 l_record2 c2%ROWTYPE;
14341 BEGIN
14342 IF (PG_DEBUG = 'Y') THEN
14343 localdebug('arp_det_dist_pkg.display_ra_ar_gt()+');
14344 localdebug(' p_code : '||p_code);
14345 IF p_code IS NULL THEN
14346 OPEN c1;
14347 LOOP
14348 FETCH c1 INTO l_record;
14349 EXIT WHEN c1%NOTFOUND;
14350 display_ra_ar_row(l_record);
14351 END LOOP;
14352 CLOSE c1;
14353 ELSE
14354 OPEN c2;
14355 LOOP
14356 FETCH c2 INTO l_record2;
14357 EXIT WHEN c2%NOTFOUND;
14358 display_ra_ar_row(l_record2);
14359 END LOOP;
14360 CLOSE c2;
14361 END IF;
14362 localdebug('arp_det_dist_pkg.display_ra_ar_gt()-');
14363 END IF;
14364 END;
14365
14366
14367 PROCEDURE display_cust_trx_row
14368 (p_record IN ra_customer_trx_lines_gt%ROWTYPE)
14369 IS
14370 BEGIN
14371 IF PG_DEBUG = 'Y' THEN
14372 localdebug('arp_det_dist_pkg.display_cust_trx_row()+');
14373 localdebug(' CUSTOMER_TRX_LINE_ID :'|| p_record.CUSTOMER_TRX_LINE_ID);
14374 localdebug(' LINK_TO_CUST_TRX_LINE_ID :'|| p_record.LINK_TO_CUST_TRX_LINE_ID);
14375 localdebug(' CUSTOMER_TRX_ID :'|| p_record.CUSTOMER_TRX_ID);
14376 localdebug(' SET_OF_BOOKS_ID :'|| p_record.SET_OF_BOOKS_ID);
14377 localdebug(' LINE_TYPE :'|| p_record.LINE_TYPE);
14378 localdebug(' SOURCE_DATA_KEY1 :'|| p_record.SOURCE_DATA_KEY1);
14379 localdebug(' SOURCE_DATA_KEY2 :'|| p_record.SOURCE_DATA_KEY2);
14380 localdebug(' SOURCE_DATA_KEY3 :'|| p_record.SOURCE_DATA_KEY3);
14381 localdebug(' SOURCE_DATA_KEY4 :'|| p_record.SOURCE_DATA_KEY4);
14382 localdebug(' SOURCE_DATA_KEY5 :'|| p_record.SOURCE_DATA_KEY5);
14383 localdebug(' AMOUNT_DUE_REMAINING :'|| p_record.AMOUNT_DUE_REMAINING);
14384 localdebug(' ACCTD_AMOUNT_DUE_REMAINING :'|| p_record.ACCTD_AMOUNT_DUE_REMAINING);
14385 localdebug(' AMOUNT_DUE_ORIGINAL :'|| p_record.AMOUNT_DUE_ORIGINAL);
14386 localdebug(' ACCTD_AMOUNT_DUE_ORIGINAL :'|| p_record.ACCTD_AMOUNT_DUE_ORIGINAL);
14387 localdebug(' CHRG_AMOUNT_REMAINING :'|| p_record.CHRG_AMOUNT_REMAINING);
14388 localdebug(' CHRG_ACCTD_AMOUNT_REMAINING :'|| p_record.CHRG_ACCTD_AMOUNT_REMAINING);
14389 localdebug(' FRT_ADJ_REMAINING :'|| p_record.FRT_ADJ_REMAINING);
14390 localdebug(' FRT_ADJ_ACCTD_REMAINING :'|| p_record.FRT_ADJ_ACCTD_REMAINING);
14391 localdebug(' FRT_ED_AMOUNT :'|| p_record.FRT_ED_AMOUNT);
14392 localdebug(' FRT_ED_ACCTD_AMOUNT :'|| p_record.FRT_ED_ACCTD_AMOUNT);
14393 localdebug(' FRT_UNED_AMOUNT :'|| p_record.FRT_UNED_AMOUNT);
14394 localdebug(' FRT_UNED_ACCTD_AMOUNT :'|| p_record.FRT_UNED_ACCTD_AMOUNT);
14395 localdebug(' CM_AMT_DUE_REM :'|| p_record.CM_AMT_DUE_REM);
14396 localdebug(' CM_ACCTD_AMT_DUE_REM :'|| p_record.CM_ACCTD_AMT_DUE_REM);
14397 localdebug(' CM_AMT_DUE_ORIG :'|| p_record.CM_AMT_DUE_ORIG);
14398 localdebug(' CM_ACCTD_AMT_DUE_ORIG :'|| p_record.CM_ACCTD_AMT_DUE_ORIG);
14399 localdebug('arp_det_dist_pkg.display_cust_trx_row()-');
14400 END IF;
14401 END;
14402
14403 PROCEDURE display_cust_trx_gt(p_customer_trx_id IN NUMBER)
14404 IS
14405 CURSOR c IS
14406 SELECT *
14407 FROM ra_customer_trx_lines_gt
14408 WHERE customer_trx_id = p_customer_trx_id;
14409 l_record c%ROWTYPE;
14410 BEGIN
14411 IF PG_DEBUG = 'Y' THEN
14412 localdebug('arp_det_dist_pkg.display_cust_trx_gt()+');
14413 END IF;
14414 OPEN c;
14415 LOOP
14416 FETCH c INTO l_record;
14417 EXIT WHEN c%NOTFOUND;
14418 display_cust_trx_row(l_record);
14419 END LOOP;
14420 CLOSE c;
14421 IF PG_DEBUG = 'Y' THEN
14422 localdebug('arp_det_dist_pkg.display_cust_trx_gt()-');
14423 END IF;
14424 END;
14425
14426
14427
14428 --{HYU possible_adj
14429 PROCEDURE get_orig_amt
14430 (p_customer_trx_id IN NUMBER,
14431 x_amt_rem IN OUT NOCOPY g_amt_rem_type) IS
14432 CURSOR c IS
14433 SELECT SUM(NVL(amount_due_original,extended_amount)),
14434 line_type
14435 FROM ra_customer_trx_lines
14436 WHERE customer_trx_id = p_customer_trx_id
14437 GROUP BY line_type;
14438
14439 CURSOR tl_for_rl IS
14440 SELECT customer_trx_line_id
14441 FROM ra_customer_trx_lines
14442 WHERE customer_trx_id = p_customer_trx_id
14443 AND line_type IN ('LINE','CB')
14444 MINUS
14445 SELECT link_to_cust_trx_line_id
14446 FROM ra_customer_trx_lines
14447 WHERE customer_trx_id = p_customer_trx_id
14448 AND line_type = 'TAX';
14449
14450 l_amt NUMBER;
14451 l_type VARCHAR2(30);
14452 l_id NUMBER;
14453 BEGIN
14454 IF PG_DEBUG = 'Y' THEN
14455 localdebug('arp_det_dist_pkg.get_orig_amt()+');
14456 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
14457 END IF;
14458 x_amt_rem.sum_line_amt_orig := 0;
14459 x_amt_rem.sum_tax_amt_orig := 0;
14460 x_amt_rem.sum_frt_amt_orig := 0;
14461 x_amt_rem.tl_for_rl := 'N';
14462 OPEN c;
14463 LOOP
14464 FETCH c INTO l_amt, l_type;
14465 IF PG_DEBUG = 'Y' THEN
14466 localdebug(' l_type:'||l_type);
14467 localdebug(' l_amt :'||l_amt);
14468 END IF;
14469 EXIT WHEN c%NOTFOUND;
14470 IF l_type IN ('LINE','CB') THEN
14471 x_amt_rem.sum_line_amt_orig := l_amt;
14472 ELSIF l_type = 'TAX' THEN
14473 x_amt_rem.sum_tax_amt_orig := l_amt;
14474 ELSIF l_type = 'FREIGHT' THEN
14475 x_amt_rem.sum_frt_amt_orig := l_amt;
14476 END IF;
14477 END LOOP;
14478 CLOSE c;
14479 IF PG_DEBUG = 'Y' THEN
14480 localdebug(' x_amt_rem.sum_line_amt_orig :'||x_amt_rem.sum_line_amt_orig);
14481 localdebug(' x_amt_rem.sum_tax_amt_orig :'||x_amt_rem.sum_tax_amt_orig);
14482 localdebug(' x_amt_rem.sum_frt_amt_orig :'||x_amt_rem.sum_frt_amt_orig);
14483 END IF;
14484 OPEN tl_for_rl;
14485 FETCH tl_for_rl INTO l_id;
14486 IF tl_for_rl%NOTFOUND THEN
14487 x_amt_rem.tl_for_rl := 'Y';
14488 ELSE
14489 x_amt_rem.tl_for_rl := 'N';
14490 END IF;
14491 CLOSE tl_for_rl;
14492 IF PG_DEBUG = 'Y' THEN
14493 localdebug(' x_amt_rem.tl_for_rl :'||x_amt_rem.tl_for_rl);
14494 localdebug('arp_det_dist_pkg.get_orig_amt()-');
14495 END IF;
14496 END;
14497
14498
14499 /*------------------------------------------------------+
14500 | FUNCTION ed_uned_type |
14501 +------------------------------------------------------+
14502 | Parameters: |
14503 | ----------- |
14504 | p_source_exec 'ED' 'UNED' |
14505 | p_app_rec The app record and bucket info. |
14506 | p_bucket 'TAX','LINE','FREIGHT','CHARGES' |
14507 +------------------------------------------------------+
14508 | Return 'Y' in the bucket ED or UNED is concerned |
14509 | 'N' otherwise |
14510 +------------------------------------------------------+
14511 | Created 26-OCT-03 Herve Yu |
14512 +------------------------------------------------------*/
14513 FUNCTION ed_uned_type
14514 ( p_source_exec IN VARCHAR2,
14515 p_app_rec IN ar_receivable_applications%rowtype,
14516 p_bucket IN VARCHAR2)
14517 RETURN VARCHAR2
14518 IS
14519 l_res VARCHAR2(1) := 'N';
14520 BEGIN
14521 IF PG_DEBUG = 'Y' THEN
14522 localdebug('arp_det_dist_pkg.ed_uned_type()+');
14523 localdebug(' p_source_exec :'||p_source_exec);
14524 localdebug(' p_bucket :'||p_bucket);
14525 END IF;
14526 IF p_source_exec = 'ED' THEN
14527 IF p_bucket = 'TAX' AND NVL(p_app_rec.tax_ediscounted,0) <> 0 THEN
14528 l_res := 'Y';
14529 ELSIF p_bucket IN ('LINE','CB') AND NVL(p_app_rec.line_ediscounted,0) <> 0 THEN
14530 l_res := 'Y';
14531 ELSIF p_bucket = 'FREIGHT' AND NVL(p_app_rec.freight_ediscounted,0) <> 0 THEN
14532 l_res := 'Y';
14533 ELSIF p_bucket = 'CHARGES' AND NVL(p_app_rec.charges_ediscounted,0) <> 0 THEN
14534 l_res := 'Y';
14535 END IF;
14536 ELSIF p_source_exec = 'UNED' THEN
14537 IF p_bucket = 'TAX' AND NVL(p_app_rec.tax_uediscounted,0) <> 0 THEN
14538 l_res := 'Y';
14539 ELSIF p_bucket IN ('LINE','CB') AND NVL(p_app_rec.line_uediscounted,0) <> 0 THEN
14540 l_res := 'Y';
14541 ELSIF p_bucket = 'FREIGHT' AND NVL(p_app_rec.freight_uediscounted,0) <> 0 THEN
14542 l_res := 'Y';
14543 ELSIF p_bucket = 'CHARGES' AND NVL(p_app_rec.charges_uediscounted,0) <> 0 THEN
14544 l_res := 'Y';
14545 END IF;
14546 END IF;
14547 IF PG_DEBUG = 'Y' THEN
14548 localdebug(' l_res :'||l_res);
14549 localdebug('arp_det_dist_pkg.ed_uned_type()-');
14550 END IF;
14551 RETURN l_res;
14552 END;
14553
14554 /*------------------------------------------------------+
14555 | FUNCTION tax_adj_type |
14556 +------------------------------------------------------+
14557 | Parameters: |
14558 | ----------- |
14559 | p_adj_rec the adjustment record. |
14560 | p_ae_rule_rec containing accounting acitivity |
14561 | and bucket info. |
14562 | p_amt_rem containing amount kept at invoice |
14563 | lines. |
14564 | p_app_rec the app rec |
14565 | p_source_exec 'ADJ' 'ED' 'UNED' |
14566 +------------------------------------------------------+
14567 | Return the codification for tax adjustment |
14568 | Example of code returned TA_TCSINV_YTL |
14569 | meaning Tax adjustment with Tax Code Source = |
14570 | Invoice and |
14571 | the buckets Rev is <> 0 |
14572 +------------------------------------------------------+
14573 | Created 26-OCT-03 Herve Yu |
14574 +------------------------------------------------------*/
14575 FUNCTION tax_adj_type(p_adj_rec IN ar_adjustments%rowtype,
14576 p_ae_rule_rec IN ae_rule_rec_type,
14577 p_amt_rem IN g_amt_rem_type,
14578 p_app_rec IN ar_receivable_applications%rowtype,
14579 p_source_exec IN VARCHAR2)
14580 RETURN VARCHAR2
14581 IS
14582 l_type VARCHAR2(30);
14583 l_amt NUMBER;
14584 l_res VARCHAR2(30);
14585 BEGIN
14586 IF PG_DEBUG = 'Y' THEN
14587 localdebug('arp_det_dist_pkg.tax_adj_type()+');
14588 localdebug(' p_source_exec:'||p_source_exec);
14589 END IF;
14590 IF p_source_exec = 'ADJ' THEN
14591 IF p_adj_rec.type = 'TAX' AND (nvl(p_adj_rec.amount,0) <> 0) THEN
14592 -- Tax Adjustment
14593 l_res := 'TA';
14594 ELSIF p_adj_rec.type IN ('LINE','CB') AND (nvl(p_adj_rec.tax_adjusted,0) <> 0) THEN
14595 -- Line Adjustment Tax bucket
14596 l_res := 'LATB';
14597 ELSIF p_adj_rec.type = 'CHARGES' AND (nvl(p_adj_rec.tax_adjusted,0) <> 0) THEN
14598 l_res := 'CATB';
14599 ELSIF p_adj_rec.type = 'FREIGHT' AND (nvl(p_adj_rec.tax_adjusted,0) <> 0) THEN
14600 l_res := 'FATB';
14601 ELSE
14602 l_res := 'NOT_CONCERN';
14603 END IF;
14604 ELSIF p_source_exec IN ('ED','UNED') THEN
14605 IF ed_uned_type(p_source_exec,p_app_rec,'TAX') = 'Y' THEN
14606 l_res := 'TA';
14607 END IF;
14608 END IF;
14609 IF l_res IN ('TA','LATB','CATB','FATB') THEN
14610 IF p_ae_rule_rec.tax_code_source1 = 'INVOICE' THEN
14611 l_res := l_res ||'_TCSINV';
14612 IF p_amt_rem.sum_tax_amt_orig = 0 THEN
14613 l_res := l_res||'_NTL';
14614 ELSE
14615 l_res := l_res||'_YTL';
14616 END IF;
14617 ELSIF p_ae_rule_rec.tax_code_source1 = 'ACTIVITY' THEN
14618 l_res := l_res ||'_TCSACT';
14619 IF p_amt_rem.sum_tax_amt_orig = 0 THEN
14620 l_res := l_res||'_NTL';
14621 ELSE
14622 l_res := l_res||'_YTL';
14623 END IF;
14624 ELSIF p_ae_rule_rec.tax_code_source1 = 'NONE' THEN
14625 IF p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE' THEN
14626 l_res := l_res || '_GASROI_TCSN';
14627 IF p_amt_rem.sum_tax_amt_orig = 0 THEN
14628 l_res := l_res||'_NTL';
14629 ELSE
14630 l_res := l_res||'_YTL';
14631 END IF;
14632 ELSIF p_ae_rule_rec.gl_account_source1 = 'ACTIVITY_GL_ACCOUNT' THEN
14633 l_res := l_res||'_GASACT_TCSN';
14634 /****
14635 IF p_amt_rem.sum_tax_amt_orig = 0 THEN
14636 l_res := l_res||'_NTL';
14637 ELSE
14638 l_res := l_res||'_YTL';
14639 END IF;
14640 ****/
14641 ---Commented the above as part of bug# 6844079, the bug has detail description
14642 --- l_res will result in exception when _NTL is assigned
14643 l_res := l_res||'_YTL';
14644
14645 ELSIF p_ae_rule_rec.gl_account_source1 = 'TAX_CODE_ON_INVOICE' THEN
14646 l_res := l_res || '_GASTCI_TCSN';
14647 IF p_amt_rem.sum_line_amt_orig = 0 THEN
14648 l_res := l_res ||'_NRL';
14649 ELSE
14650 l_res := l_res ||'_YRL';
14651 END IF;
14652 IF p_amt_rem.sum_tax_amt_orig = 0 THEN
14653 l_res := l_res||'_NTL';
14654 ELSE
14655 l_res := l_res||'_YTL';
14656 END IF;
14657 END IF;
14658 END IF;
14659 END IF;
14660 IF PG_DEBUG = 'Y' THEN
14661 localdebug(' l_res:'||l_res);
14662 localdebug('arp_det_dist_pkg.tax_adj_type()-');
14663 END IF;
14664 RETURN l_res;
14665 END;
14666
14667
14668
14669 /*------------------------------------------------------+
14670 | FUNCTION line_adj_type |
14671 +------------------------------------------------------+
14672 | Parameters: |
14673 | ----------- |
14674 | p_adj_rec the adjustment record. |
14675 | p_ae_rule_rec containing accounting acitivity |
14676 | and bucket info. |
14677 | p_amt_rem containing amount kept at invoice |
14678 | lines. |
14679 | p_app_rec the app rec |
14680 | p_source_exec 'ADJ' 'ED' 'UNED' |
14681 +------------------------------------------------------+
14682 | Return the codification for line adjustment |
14683 | Example of code returned LA_GASROI_NRL |
14684 | meaning line adjustment with GL account Source |
14685 | Revenue on Invoice and |
14686 | the buckets Rev is <> 0 |
14687 +------------------------------------------------------+
14688 | Created 26-OCT-03 Herve Yu |
14689 +------------------------------------------------------*/
14690 FUNCTION line_adj_type(p_adj_rec IN ar_adjustments%rowtype,
14691 p_ae_rule_rec IN ae_rule_rec_type,
14692 p_amt_rem IN g_amt_rem_type,
14693 p_app_rec IN ar_receivable_applications%rowtype,
14694 p_source_exec IN VARCHAR2)
14695 RETURN VARCHAR2
14696 IS
14697 l_res VARCHAR2(30);
14698 BEGIN
14699 IF PG_DEBUG = 'Y' THEN
14700 localdebug('arp_det_dist_pkg.line_adj_type()+');
14701 localdebug(' p_source_exec:'||p_source_exec);
14702 END IF;
14703 IF p_source_exec = 'ADJ' THEN
14704 IF p_adj_rec.type = 'LINE' AND (nvl(p_adj_rec.amount,0) <> 0) THEN
14705 l_res := 'LA';
14706 ELSE
14707 l_res := 'NOT_CONCERN';
14708 END IF;
14709 ELSIF p_source_exec IN ('ED','UNED') THEN
14710 IF ed_uned_type(p_source_exec,p_app_rec,'LINE') = 'Y' THEN
14711 l_res := 'LA';
14712 END IF;
14713 END IF;
14714 IF l_res IN ('LA') THEN
14715 IF p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE' THEN
14716 l_res := l_res||'_GASROI';
14717 IF p_amt_rem.sum_line_amt_orig = 0 THEN
14718 l_res := l_res||'_NRL';
14719 ELSE
14720 l_res := l_res||'_YRL';
14721 END IF;
14722 ELSIF p_ae_rule_rec.gl_account_source1 = 'ACTIVITY_GL_ACCOUNT' THEN
14723 l_res := l_res ||'_GASACT';
14724 IF p_amt_rem.sum_line_amt_orig = 0 THEN
14725 l_res := l_res||'_NRL';
14726 ELSE
14727 l_res := l_res||'_YRL';
14728 END IF;
14729 ELSIF p_ae_rule_rec.gl_account_source1 = 'TAX_CODE_ON_INVOICE' THEN
14730 l_res := l_res ||'_GASTCI';
14731 IF p_amt_rem.sum_line_amt_orig = 0 THEN
14732 l_res := l_res||'_NRL';
14733 ELSE
14734 l_res := l_res||'_YRL';
14735 IF p_amt_rem.tl_for_rl = 'Y' THEN
14736 l_res := l_res||'_YTR';
14737 ELSE
14738 l_res := l_res||'_NTR';
14739 END IF;
14740 END IF;
14741 END IF;
14742
14743 END IF;
14744 IF PG_DEBUG = 'Y' THEN
14745 localdebug(' l_res:'||l_res);
14746 localdebug('arp_det_dist_pkg.chrg_adj_type()-');
14747 END IF;
14748 RETURN l_res;
14749 END;
14750
14751
14752
14753 /*------------------------------------------------------+
14754 | FUNCTION frt_adj_type |
14755 +------------------------------------------------------+
14756 | Parameters: |
14757 | ----------- |
14758 | p_adj_rec the adjustment record. |
14759 | p_ae_rule_rec containing accounting acitivity |
14760 | and bucket info. |
14761 | p_amt_rem containing amount kept at invoice |
14762 | lines. |
14763 | p_app_rec the app rec |
14764 | p_source_exec 'ADJ' 'ED' 'UNED' |
14765 +------------------------------------------------------+
14766 | Return the codification for freight adjustment |
14767 | Example of code returned FA_GASROI_YRL_YHFL_NLFL |
14768 | meaning freight adjustment with GL account Source |
14769 | Revenue on Invoice and |
14770 | the buckets Rev and Freight at header are <> 0 |
14771 +------------------------------------------------------+
14772 | Created 26-OCT-03 Herve Yu |
14773 +------------------------------------------------------*/
14774 FUNCTION frt_adj_type(p_adj_rec IN ar_adjustments%rowtype,
14775 p_ae_rule_rec IN ae_rule_rec_type,
14776 p_amt_rem IN g_amt_rem_type,
14777 p_app_rec IN ar_receivable_applications%rowtype,
14778 p_source_exec IN VARCHAR2)
14779 RETURN VARCHAR2
14780 IS
14781 l_res VARCHAR2(30);
14782 BEGIN
14783 IF PG_DEBUG = 'Y' THEN
14784 localdebug('arp_det_dist_pkg.frt_adj_type()+');
14785 localdebug(' p_source_exec:'||p_source_exec);
14786 END IF;
14787 IF p_source_exec = 'ADJ' THEN
14788 IF p_adj_rec.type = 'FREIGHT' AND (nvl(p_adj_rec.amount,0) <> 0) THEN
14789 l_res := 'FA';
14790 ELSE
14791 l_res := 'NOT_CONCERN';
14792 END IF;
14793 ELSIF p_source_exec IN ('ED','UNED') THEN
14794 IF ed_uned_type(p_source_exec,p_app_rec,'FREIGHT') = 'Y' THEN
14795 l_res := 'FA';
14796 END IF;
14797 END IF;
14798
14799 IF l_res IN ('FA') THEN
14800 IF p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE' THEN
14801 l_res := l_res || '_GASROI';
14802 IF p_amt_rem.sum_line_frt_amt_orig <> 0 THEN
14803 l_res := l_res||'_NHFL_YLFL';
14804 ELSIF p_amt_rem.sum_head_frt_amt_orig <> 0 THEN
14805 l_res := l_res||'_YHFL_NLFL';
14806 ELSIF p_amt_rem.sum_head_frt_amt_orig = 0 AND p_amt_rem.sum_line_frt_amt_orig = 0 THEN
14807 l_res := l_res||'_NHFL_NLFL';
14808 END IF;
14809 ELSIF p_ae_rule_rec.gl_account_source1 = 'ACTIVITY_GL_ACCOUNT' THEN
14810 l_res := l_res || '_GASACT';
14811 IF p_amt_rem.sum_line_frt_amt_orig <> 0 THEN
14812 l_res := l_res||'_NHFL_YLFL';
14813 ELSIF p_amt_rem.sum_head_frt_amt_orig <> 0 THEN
14814 l_res := l_res||'_YHFL_NLFL';
14815 ELSIF p_amt_rem.sum_head_frt_amt_orig = 0 AND p_amt_rem.sum_line_frt_amt_orig = 0 THEN
14816 l_res := l_res||'_NHFL_NLFL';
14817 END IF;
14818 ELSIF p_ae_rule_rec.gl_account_source1 = 'TAX_CODE_ON_INVOICE' THEN
14819 l_res := l_res || '_GASTCI';
14820 IF p_amt_rem.sum_line_frt_amt_orig <> 0 THEN
14821 l_res := l_res || '_NHFL_YLFL';
14822 IF p_amt_rem.tl_for_fl = 'Y' THEN
14823 l_res := l_res || '_YTF';
14824 ELSE
14825 l_res := l_res|| '_NTF';
14826 END IF;
14827 ELSIF p_amt_rem.sum_head_frt_amt_orig <> 0 THEN
14828 l_res := l_res || '_YHFL_NLFL';
14829 IF p_amt_rem.tl_for_fl = 'Y' THEN
14830 l_res := l_res || '_YTF';
14831 ELSE
14832 l_res := l_res|| '_NTF';
14833 END IF;
14834 ELSIF p_amt_rem.sum_head_frt_amt_orig = 0 AND p_amt_rem.sum_line_frt_amt_orig = 0 THEN
14835 l_res := l_res || '_NHFL_NLFL';
14836 IF p_amt_rem.tl_for_fl = 'Y' THEN
14837 l_res := l_res || '_YTF';
14838 ELSE
14839 l_res := l_res|| '_NTF';
14840 END IF;
14841 END IF;
14842 END IF;
14843 END IF;
14844 IF PG_DEBUG = 'Y' THEN
14845 localdebug(' l_res:'||l_res);
14846 localdebug('arp_det_dist_pkg.frt_adj_type()-');
14847 END IF;
14848 RETURN l_res;
14849 END;
14850
14851 /*------------------------------------------------------+
14852 | FUNCTION chrg_adj_type |
14853 +------------------------------------------------------+
14854 | Parameters: |
14855 | ----------- |
14856 | p_adj_rec the adjustment record. |
14857 | p_ae_rule_rec containing accounting acitivity |
14858 | and bucket info. |
14859 | p_amt_rem containing amount kept at invoice |
14860 | lines. |
14861 | p_app_rec the app rec |
14862 | p_source_exec 'ADJ' 'ED' 'UNED' |
14863 +------------------------------------------------------+
14864 | Return the codification for charge adjustment |
14865 | Example of code returned CA_GASACT_YRL_YHFL_NLFL |
14866 | meaning charge adjustment with GL account Activity |
14867 | the buckets Rev and Freight at header are <> 0 |
14868 +------------------------------------------------------+
14869 | Created 26-OCT-03 Herve Yu |
14870 +------------------------------------------------------*/
14871 FUNCTION chrg_adj_type(p_adj_rec IN ar_adjustments%rowtype,
14872 p_ae_rule_rec IN ae_rule_rec_type,
14873 p_amt_rem IN g_amt_rem_type,
14874 p_app_rec IN ar_receivable_applications%rowtype,
14875 p_source_exec IN VARCHAR2)
14876 RETURN VARCHAR2
14877 IS
14878 l_res VARCHAR2(30);
14879 l_tot_frt_rev NUMBER;
14880 l_tot_frt NUMBER;
14881 BEGIN
14882 IF PG_DEBUG = 'Y' THEN
14883 localdebug('arp_det_dist_pkg.chrg_adj_type()+');
14884 localdebug(' p_source_exec:'||p_source_exec);
14885 END IF;
14886 IF p_source_exec = 'ADJ' THEN
14887 IF p_adj_rec.type = 'CHARGES' AND (nvl(p_adj_rec.amount,0) <> 0) THEN
14888 l_res := 'CA';
14889 ELSE
14890 l_res := 'NOT_CONCERN';
14891 END IF;
14892 ELSIF p_source_exec IN ('ED','UNED') THEN
14893 IF ed_uned_type(p_source_exec,p_app_rec,'CHARGES') = 'Y' THEN
14894 l_res := 'CA';
14895 END IF;
14896 END IF;
14897
14898 IF l_res IN ('CA') THEN
14899 IF p_ae_rule_rec.gl_account_source1 = 'ACTIVITY_GL_ACCOUNT' THEN
14900 l_res := l_res||'_GASACT';
14901 IF p_amt_rem.sum_line_amt_orig <> 0 THEN
14902 l_res := l_res||'_YRL';
14903 ELSIF p_amt_rem.sum_line_amt_orig = 0 THEN
14904 l_res := l_res||'_NRL';
14905 END IF;
14906 IF p_amt_rem.sum_line_frt_amt_orig <> 0 THEN
14907 l_res := l_res||'_NHFL_YLFL';
14908 ELSIF p_amt_rem.sum_head_frt_amt_orig <> 0 THEN
14909 l_res := l_res||'_YHFL_NLFL';
14910 ELSIF p_amt_rem.sum_head_frt_amt_orig = 0
14911 AND p_amt_rem.sum_line_frt_amt_orig = 0 THEN
14912 l_res := l_res||'_NHFL_NLFL';
14913 END IF;
14914 ELSIF p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE' THEN
14915 l_res := l_res||'_GASROI';
14916 ELSIF p_ae_rule_rec.gl_account_source1 = 'TAX_CODE_ON_INVOICE' THEN
14917 l_res := l_res||'_GASTCI';
14918 END IF;
14919 END IF;
14920 IF PG_DEBUG = 'Y' THEN
14921 localdebug(' l_res:'||l_res);
14922 localdebug('arp_det_dist_pkg.chrg_adj_type()-');
14923 END IF;
14924 RETURN l_res;
14925 END;
14926
14927 /*-----------------------------------------------------------+
14928 | PROCEDURE possible_adjust |
14929 | check if a particular adjustment is possible. |
14930 +-----------------------------------------------------------+
14931 | Parameters: |
14932 | ----------- |
14933 | p_adj_rec the adjustment record. |
14934 | p_ae_rule_rec containing accounting acitivity |
14935 | and bucket info. |
14936 | p_amt_rem containing amount kept at invoice |
14937 | lines. |
14938 | x_return_status value according to the possibility |
14939 | of the adjustment |
14940 | FND_API.G_RET_STS_SUCCESS if possible |
14941 | FND_API.G_RET_STS_ERROR if imposssible |
14942 | x_line_adj codification for line adjustment |
14943 | x_tax_adj codification for tax adjustment |
14944 | x_frt_adj codification for freight adjustment |
14945 | x_chrg_adj codification for charge adjustment |
14946 +-----------------------------------------------------------+
14947 | Created 26-OCT-03 Herve Yu |
14948 +-----------------------------------------------------------*/
14949 PROCEDURE possible_adjust(p_adj_rec IN ar_adjustments%rowtype,
14950 p_ae_rule_rec IN ae_rule_rec_type,
14951 p_customer_trx_id IN NUMBER,
14952 x_return_status OUT NOCOPY VARCHAR2,
14953 x_line_adj OUT NOCOPY VARCHAR2,
14954 x_tax_adj OUT NOCOPY VARCHAR2,
14955 x_frt_adj OUT NOCOPY VARCHAR2,
14956 x_chrg_adj OUT NOCOPY VARCHAR2,
14957 p_app_rec IN ar_receivable_applications%rowtype
14958 )
14959 IS
14960 l_source_exec VARCHAR2(30);
14961 l_amt_rem g_amt_rem_type;
14962 l_tax_adj VARCHAR2(100);
14963 l_frt_adj VARCHAR2(100);
14964 l_line_adj VARCHAR2(100);
14965 l_chrg_adj VARCHAR2(100);
14966 BEGIN
14967 IF PG_DEBUG = 'Y' THEN
14968 localdebug('arp_det_dist_pkg.possible_adjust()+');
14969 END IF;
14970
14971 x_return_status := FND_API.G_RET_STS_SUCCESS;
14972
14973 get_orig_amt(p_customer_trx_id => p_customer_trx_id,
14974 x_amt_rem => l_amt_rem);
14975
14976 -- IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
14977 x_tax_adj := tax_adj_type(p_adj_rec => p_adj_rec,
14978 p_ae_rule_rec => p_ae_rule_rec,
14979 p_amt_rem => l_amt_rem,
14980 p_app_rec => p_app_rec,
14981 p_source_exec => 'ADJ');
14982
14983 IF PG_DEBUG = 'Y' THEN
14984 localdebug('x_tax_adj : '||x_tax_adj);
14985 END IF;
14986
14987 x_line_adj := line_adj_type(p_adj_rec => p_adj_rec,
14988 p_ae_rule_rec => p_ae_rule_rec,
14989 p_amt_rem => l_amt_rem,
14990 p_app_rec => p_app_rec,
14991 p_source_exec => 'ADJ');
14992
14993 IF PG_DEBUG = 'Y' THEN
14994 localdebug('x_line_adj : '||x_line_adj);
14995 END IF;
14996
14997 x_frt_adj := frt_adj_type(p_adj_rec => p_adj_rec,
14998 p_ae_rule_rec => p_ae_rule_rec,
14999 p_amt_rem => l_amt_rem,
15000 p_app_rec => p_app_rec,
15001 p_source_exec => 'ADJ');
15002
15003 IF PG_DEBUG = 'Y' THEN
15004 localdebug('x_frt_adj : '||x_frt_adj);
15005 END IF;
15006
15007 x_chrg_adj := chrg_adj_type(p_adj_rec => p_adj_rec,
15008 p_ae_rule_rec => p_ae_rule_rec,
15009 p_amt_rem => l_amt_rem,
15010 p_app_rec => p_app_rec,
15011 p_source_exec => 'ADJ');
15012
15013 IF PG_DEBUG = 'Y' THEN
15014 localdebug('x_chrg_adj : '||x_chrg_adj);
15015 END IF;
15016
15017 -- END IF;
15018
15019 -- The impossible cases
15020 IF x_line_adj IN ('LA_GASROI_NRL',
15021 'LA_GASTCI_YRL_NTR',
15022 'LA_GASTCI_NRL')
15023 THEN
15024 x_return_status := FND_API.G_RET_STS_ERROR;
15025 fnd_message.set_name('AR','AR_'||x_line_adj);
15026 fnd_msg_pub.add;
15027 END IF;
15028
15029 IF x_tax_adj IN ('TA_TCSINV_NTL' ,'TA_GASTCI_TCSN_NTL' ,'TA_GASROI_TCSN_NTL',
15030 'TA_GASACT_TCSN_NTL',
15031 'LATB_TCSINV_NTL','LATB_GASTCI_TCSN_NTL','LATB_GASROI_TCSN_NTL',
15032 'LATB_GASACT_TCSN_NTL',
15033 'CATB_TCSINV_NTL','CATB_GASTCI_TCSN_NTL','CATB_GASROI_TCSN_NTL',
15034 'CATB_GASACT_TCSN_NTL',
15035 'FATB_TCSINV_NTL','FATB_GASTCI_TCSN_NTL','FATB_GASROI_TCSN_NTL',
15036 'FATB_GASACT_TCSN_NTL'
15037 ) THEN
15038 x_return_status := FND_API.G_RET_STS_ERROR;
15039 fnd_message.set_name('AR','AR_'||x_tax_adj);
15040 fnd_msg_pub.add;
15041 END IF;
15042
15043 IF x_frt_adj IN ('FA_GASROI_NHFL_NLFL' , 'FA_GASROI_YHFL_NLFL',
15044 'FA_GASTCI_NHFL_NLFL_NTF', 'FA_GASTCI_NHFL_YLFL_NTF',
15045 'FA_GASTCI_NHFL_NLFL_YTF', 'FA_GASTCI_YHFL_NLFL_NTF') THEN
15046 x_return_status := FND_API.G_RET_STS_ERROR;
15047 fnd_message.set_name('AR','AR_'||x_frt_adj);
15048 fnd_msg_pub.add;
15049 END IF;
15050
15051 -- IF g_chrg_adj IN ('CA_GASROI','CA_GASTCI') THEN --,'CA_GASACT_NRL_NHFL_NLFL') THEN
15052 -- We do not allowarge adjustment on 0 dollars invoice
15053 -- currently the case
15054 -- Invoice with 0 line, 0 tax, 0 Freight
15055 -- If adjusted with a line adjustment + chrg adjustment is breaking at application time
15056 --
15057 -- IF g_chrg_adj IN ('CA_GASROI','CA_GASTCI','CA_GASACT_NRL_NHFL_NLFL') THEN
15058 --HYU reautorise 'CA_GASACT_NRL_NHFL_NLFL'
15059 IF x_chrg_adj IN ('CA_GASROI','CA_GASTCI') THEN
15060 x_return_status := FND_API.G_RET_STS_ERROR;
15061 fnd_message.set_name('AR','AR_'||x_chrg_adj);
15062 fnd_msg_pub.add;
15063 END IF;
15064
15065 IF PG_DEBUG = 'Y' THEN
15066 localdebug(' x_return_status :'||x_return_status);
15067 localdebug('arp_det_dist_pkg.possible_adjust()-');
15068 END IF;
15069 END;
15070
15071
15072 PROCEDURE get_from_currency
15073 (p_app_rec IN ar_receivable_applications%ROWTYPE,
15074 x_from_curr_code OUT NOCOPY VARCHAR2)
15075 IS
15076 CURSOR c_rec_curr(p_cr_id IN NUMBER) IS
15077 SELECT CURRENCY_CODE
15078 FROM ar_cash_receipts_all
15079 WHERE cash_receipt_id = p_cr_id;
15080 no_curr_on_the_cr EXCEPTION;
15081 BEGIN
15082 IF p_app_rec.cash_receipt_id IS NOT NULL THEN
15083 OPEN c_rec_curr(p_app_rec.cash_receipt_id);
15084 FETCH c_rec_curr INTO x_from_curr_code;
15085 IF c_rec_curr%NOTFOUND THEN
15086 RAISE no_curr_on_the_cr;
15087 END IF;
15088 CLOSE c_rec_curr;
15089 ELSIF p_app_rec.customer_trx_id IS NOT NULL THEN
15090 x_from_curr_code := g_cust_inv_rec.invoice_currency_code;
15091 END IF;
15092 EXCEPTION
15093 WHEN no_curr_on_the_cr THEN
15094 IF c_rec_curr%ISOPEN THEN
15095 CLOSE c_rec_curr;
15096 END IF;
15097 IF PG_DEBUG = 'Y' THEN
15098 localdebug(' EXCEPTION no_curr_on_the_cr in get_from_currency cr_id:'||p_app_rec.cash_receipt_id);
15099 END IF;
15100 WHEN OTHERS THEN
15101 IF c_rec_curr%ISOPEN THEN
15102 CLOSE c_rec_curr;
15103 END IF;
15104 IF PG_DEBUG = 'Y' THEN
15105 localdebug(' EXCEPTION OTHERS in get_from_currency cr_id:'||SQLERRM);
15106 END IF;
15107 END;
15108
15109 /*---------------------------------------------------------------------+
15110 | FUNCTION Accting_Proration_Fct |
15111 +---------------------------------------------------------------------+
15112 | This function |
15113 | does the proration and return the value in a row by row manner |
15114 | usefull for function in SQL statement updation |
15115 | |
15116 | Parameter |
15117 | p_temp_amt distribution amount template for proration |
15118 | for example ae_pro_amt(i) |
15119 | p_base_proration base for proration |
15120 | for example sum ae_pro_amt(i) |
15121 | p_alloc_amount The amount for which distribution need to be |
15122 | computed. For example p_app_rec.from_amt_applied
15123 | p_base_currency Base currency code |
15124 | p_trx_currency Trx currency code |
15125 | p_rec_currency Rec currency code |
15126 | p_flag indication of which from distribution to compute
15127 | p_flag = 'FROM_AMT' |
15128 | p_flag = 'FROM_ACCTD_AMT' |
15129 | p_flag = 'FROM_CHRG_AMT' |
15130 | p_flag = 'FROM_CHRG_ACCTD_AMT' |
15131 | History |
15132 | 17-DEC-2003 H. Yu Created |
15133 +---------------------------------------------------------------------*/
15134 FUNCTION Accting_Proration_Fct
15135 (p_temp_amt IN NUMBER,
15136 p_base_proration IN NUMBER,
15137 p_alloc_amount IN NUMBER,
15138 p_base_currency IN VARCHAR2,
15139 p_trx_currency IN VARCHAR2,
15140 p_rec_currency IN VARCHAR2,
15141 p_flag IN VARCHAR2,
15142 p_curr_rnd_flag IN VARCHAR2 DEFAULT 'N')
15143 RETURN NUMBER
15144 IS
15145 l_result NUMBER;
15146 l_process VARCHAR2(1);
15147 l_run_amt NUMBER;
15148 l_run_total NUMBER;
15149 l_currency VARCHAR2(30);
15150 BEGIN
15151 IF PG_DEBUG = 'Y' THEN
15152 localdebug('arp_det_dist_pkg.Accting_Proration_Fct()+');
15153 localdebug(' p_temp_amt : '||p_temp_amt );
15154 localdebug(' p_base_proration : '||p_base_proration);
15155 localdebug(' p_alloc_amount : '||p_alloc_amount );
15156 localdebug(' p_base_currency : '||p_base_currency );
15157 localdebug(' p_trx_currency : '||p_trx_currency );
15158 localdebug(' p_rec_currency : '||p_rec_currency );
15159 localdebug(' p_flag : '||p_flag );
15160 localdebug(' p_curr_rnd_flag : '||p_curr_rnd_flag );
15161 END IF;
15162 l_process := 'Y';
15163 IF p_flag = 'FROM_AMT' THEN
15164 IF p_trx_currency = p_rec_currency THEN
15165 l_process := 'N';
15166 ELSE
15167 g_run_from_amt := g_run_from_amt + p_temp_amt;
15168 l_run_amt := g_run_from_amt;
15169 l_run_total := g_run_from_total;
15170 l_currency := p_rec_currency;
15171 IF PG_DEBUG = 'Y' THEN
15172 localdebug(' g_run_from_amt in '||p_flag||' : '||g_run_from_amt);
15173 localdebug(' g_run_from_total in '||p_flag||' : '||g_run_from_total);
15174 END IF;
15175 END IF;
15176 ELSIF p_flag = 'FROM_ACCTD_AMT' THEN
15177 IF (p_trx_currency = p_base_currency AND
15178 p_rec_currency = p_base_currency)
15179 OR
15180 p_curr_rnd_flag = 'Y' --Bug 13543605
15181 THEN
15182 l_process := 'N';
15183 ELSE
15184 g_run_from_acctd_amt := g_run_from_acctd_amt + p_temp_amt;
15185 l_run_amt := g_run_from_acctd_amt;
15186 l_run_total := g_run_from_acctd_total;
15187 l_currency := p_base_currency;
15188 IF PG_DEBUG = 'Y' THEN
15189 localdebug(' g_run_from_acctd_amt in '||p_flag||' : '||g_run_from_acctd_amt);
15190 localdebug(' g_run_from_acctd_total in '||p_flag||' : '||g_run_from_acctd_total);
15191 END IF;
15192 END IF;
15193 END IF;
15194 IF l_process = 'Y' THEN
15195 IF p_base_proration <> 0 THEN
15196 l_result := CurrRound( l_run_amt
15197 / p_base_proration
15198 * p_alloc_amount,
15199 l_currency)
15200 - l_run_total;
15201 ELSE
15202 l_result := 0;
15203 END IF;
15204 l_run_total := l_run_total + l_result;
15205
15206 IF p_flag = 'FROM_AMT' THEN
15207 g_run_from_total := l_run_total;
15208 ELSIF p_flag = 'FROM_ACCTD_AMT' THEN
15209 g_run_from_acctd_total := l_run_total;
15210 END IF;
15211 ELSE
15212 l_result := p_temp_amt;
15213 END IF;
15214
15215 IF PG_DEBUG = 'Y' THEN
15216 localdebug(' l_result : '|| l_result);
15217 localdebug('arp_det_dist_pkg.Accting_Proration_Fct()-');
15218 END IF;
15219 RETURN l_result;
15220 EXCEPTION
15221 WHEN OTHERS THEN
15222 IF PG_DEBUG = 'Y' THEN
15223 localdebug(' EXCEPTION : Accting_Proration_Fct '||SQLERRM);
15224 END IF;
15225 app_exception.raise_exception;
15226 END;
15227
15228 /*----------------------------------------------------------------------+
15229 | PROCEDURE update_from_gt |
15230 +----------------------------------------------------------------------+
15231 | This procedure |
15232 | does the updation of ar_ae_alloc_rec_gt for distributions in |
15233 | receipt currency and in base currency converted from receipt |
15234 | currency |
15235 | |
15236 | Parameter |
15237 | p_from_amt Amount allocated for line, frt, tax in Receipt |
15238 | currency |
15239 | p_from_acctd_amt Acctd Amount allocated for line, frt, tax in |
15240 | in base currency from the Receipt currency |
15241 | using exchange rate of the receipt |
15242 | History |
15243 | 05-NOV-2004 H. Yu Created |
15244 +----------------------------------------------------------------------*/
15245 PROCEDURE update_from_gt
15246 (p_from_amt IN NUMBER,
15247 p_from_acctd_amt IN NUMBER,
15248 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
15249 p_app_rec IN ar_receivable_applications%ROWTYPE,
15250 p_gt_id IN VARCHAR2 DEFAULT NULL,
15251 p_inv_currency IN VARCHAr2 DEFAULT NULL)
15252 IS
15253 CURSOR cu1(p_gt_id IN NUMBER) IS
15254 SELECT /*+INDEX (AR_LINE_APP_DETAIL_GT AR_LINE_APP_DETAIL_GT_N1)*/
15255 SUM(NVL(amount,0)),
15256 SUM(NVL(acctd_amount,0))
15257 FROM AR_LINE_APP_DETAIL_GT
15258 WHERE gt_id = p_gt_id
15259 AND activity_bucket IN ('APP_LINE','APP_CHRG','APP_TAX','APP_FRT',
15260 'ADJ_LINE','ADJ_TAX','ADJ_CHRG','ADJ_FRT')
15261 AND ( NVL(amount,0) <> 0
15262 OR NVL(acctd_amount,0) <> 0);
15263
15264 l_pro_base NUMBER;
15265 l_pro_acctd_base NUMBER;
15266 l_process VARCHAR2(1);
15267 l_from_curr_code VARCHAR2(30);
15268 --{LLCA CROSS CURRENCY
15269 l_gt_id VARCHAR2(30);
15270 l_inv_currency VARCHAR2(30);
15271 --}
15272 no_from_amount_required EXCEPTION;
15273 /* local variables introduced as part of bug 7343649 - vavenugo*/
15274 l_source_id NUMBER;
15275 l_br_flag VARCHAR2(1) DEFAULT 'N';
15276 l_br_count NUMBER;
15277 l_curr_rnd_flag VARCHAR2(1) DEFAULT 'N';
15278 l_fixed_rate_flag VARCHAR2(1) DEFAULT 'N';
15279 l_app_date DATE;
15280 l_trx_date DATE;
15281 l_trx_exch_rate NUMBER;
15282 l_app_exch_rate NUMBER;
15283 BEGIN
15284 IF PG_DEBUG = 'Y' THEN
15285 localdebug('arp_det_dist_pkg.update_from_gt()+');
15286 END IF;
15287
15288 --{LLCA CROSS CURRENCY
15289 IF p_gt_id IS NULL THEN
15290 l_gt_id := g_gt_id;
15291 ELSE
15292 l_gt_id := p_gt_id;
15293 END IF;
15294
15295 /* Bug 7343649. Populating l_source_id and l_br_flag. -vavenugo */
15296 /*Bug7391957, Added following SELECT statement within a BEGIN..END block */
15297 BEGIN
15298 select distinct source_id
15299 into l_source_id
15300 from ar_line_app_detail_gt
15301 where gt_id = l_gt_id
15302 AND source_table ='RA';
15303
15304 select count(*)
15305 into l_br_count
15306 from ar_receivable_applications_all ra,
15307 ar_payment_schedules_all pay
15308 where ra.receivable_application_id = l_source_id and
15309 ra.applied_payment_schedule_id = pay.payment_schedule_id and
15310 pay.class ='BR';
15311 EXCEPTION
15312 WHEN NO_DATA_FOUND THEN
15313 NULL;
15314 WHEN OTHERS THEN
15315 IF PG_DEBUG = 'Y' THEN
15316 localdebug(' EXCEPTION: update_from_gt :'||SQLERRM);
15317 END IF;
15318 RAISE;
15319 END;
15320
15321 IF l_br_count > 0 THEN
15322 l_br_flag :='Y';
15323 END IF;
15324
15325
15326 IF p_inv_currency IS NULL THEN
15327 l_inv_currency := g_cust_inv_rec.invoice_currency_code;
15328 ELSE
15329 l_inv_currency := p_inv_currency;
15330 END IF;
15331 --}
15332 g_run_from_amt := 0;
15333 g_run_from_total := 0;
15334 g_run_from_acctd_amt := 0;
15335 g_run_from_acctd_total := 0;
15336
15337 IF p_app_rec.receivable_application_id IS NOT NULL THEN
15338 get_from_currency(p_app_rec => p_app_rec,
15339 x_from_curr_code => l_from_curr_code);
15340
15341 IF l_from_curr_code IS NULL AND p_app_rec.customer_trx_id IS NOT NULL THEN
15342 l_from_curr_code := l_inv_currency;
15343 END IF;
15344 IF PG_DEBUG = 'Y' THEN
15345 localdebug(' l_from_curr_code :'||l_from_curr_code);
15346 END IF;
15347 ELSE
15348 -- No from distribution process required as no receivable_application
15349 RAISE no_from_amount_required;
15350 END IF;
15351
15352 /* Bug7343649 - vavenugo */
15353 /* Check if the application involves BR and if so populate the base amounts using the new logic */
15354 IF l_br_flag <> 'Y' THEN
15355
15356 /* Proceed as usual */
15357
15358 OPEN cu1(l_gt_id);
15359 FETCH cu1 INTO l_pro_base,
15360 l_pro_acctd_base;
15361 IF cu1%NOTFOUND THEN
15362 l_process := 'N';
15363 ELSE
15364 l_process := 'Y';
15365 END IF;
15366 CLOSE cu1;
15367
15368 ELSE
15369
15370 /* Use new the logic */
15371
15372 IF l_source_id is null THEN
15373 l_process := 'N';
15374 ELSE
15375 l_process := 'Y';
15376 END IF;
15377
15378
15379 SELECT amount_applied,acctd_amount_applied_to
15380 INTO l_pro_base, l_pro_acctd_base
15381 from ar_receivable_applications_all
15382 where receivable_application_id = l_source_id;
15383
15384 END IF;
15385 /* End bug7343649 - vavenugo */
15386
15387
15388 IF PG_DEBUG = 'Y' THEN
15389 localdebug(' l_process 1 : '|| l_process);
15390 END IF;
15391
15392 IF l_process = 'Y' THEN
15393
15394 IF PG_DEBUG = 'Y' THEN
15395 localdebug(' l_pro_base : '||l_pro_base);
15396 localdebug(' l_pro_acctd_base : '|| l_pro_acctd_base);
15397 localdebug(' p_app_rec.application_type: '||p_app_rec.application_type);
15398 localdebug(' p_app_rec.status : '||p_app_rec.status);
15399 END IF;
15400
15401 -- Bug 13543605
15402 IF p_app_rec.status = 'APP' THEN
15403
15404 BEGIN
15405 SELECT ps.trx_date, NVL(ps.exchange_rate, 1),
15406 ps1.trx_date, NVL(ps1.exchange_rate, 1)
15407 INTO l_app_date, l_app_exch_rate,
15408 l_trx_date, l_trx_exch_rate
15409 FROM ar_payment_schedules ps,
15410 ar_payment_schedules ps1,
15411 ar_receivable_applications ra
15412 WHERE ra.receivable_application_id = p_app_rec.receivable_application_id
15413 and ps.payment_schedule_id = ra.payment_schedule_id
15414 AND ps1.payment_schedule_id = ra.applied_payment_schedule_id;
15415
15416 IF PG_DEBUG = 'Y' THEN
15417 localdebug(' l_app_date : '||l_app_date);
15418 localdebug(' l_app_exch_rate : '||l_app_exch_rate);
15419 localdebug(' l_trx_date : '||l_trx_date);
15420 localdebug(' l_trx_exch_rate : '||l_trx_exch_rate);
15421 END IF;
15422
15423 BEGIN
15424 l_fixed_rate_flag := arpcurr.isfixedrate(l_from_curr_code ,
15425 p_ae_sys_rec.base_currency ,
15426 l_app_date ,
15427 l_inv_currency ,
15428 l_trx_date
15429 );
15430 EXCEPTION
15431 WHEN GL_CURRENCY_API.INVALID_CURRENCY THEN
15432 l_fixed_rate_flag := 'N'; --Posting treats this as null
15433 WHEN OTHERS THEN
15434 RAISE;
15435 END;
15436
15437 IF PG_DEBUG = 'Y' THEN
15438 localdebug(' l_fixed_rate_flag : '||l_fixed_rate_flag);
15439 localdebug(' l_inv_currency : '||l_inv_currency);
15440 localdebug(' l_from_curr_code : '||l_from_curr_code);
15441 END IF;
15442
15443 IF l_fixed_rate_flag = 'N' AND
15444 l_inv_currency = l_from_curr_code AND
15445 l_app_exch_rate = l_trx_exch_rate
15446 THEN
15447 l_fixed_rate_flag := 'Y';
15448 END IF;
15449
15450 IF p_app_rec.acctd_amount_applied_from <> p_app_rec.acctd_amount_applied_to AND
15451 l_fixed_rate_flag = 'Y'
15452 THEN
15453 l_curr_rnd_flag := 'Y';
15454 END IF;
15455
15456 EXCEPTION
15457 WHEN OTHERS THEN
15458 l_curr_rnd_flag := 'N';
15459 END;
15460 END IF;
15461
15462 IF PG_DEBUG = 'Y' THEN
15463 localdebug(' l_curr_rnd_flag : '||l_curr_rnd_flag);
15464 END IF;
15465
15466
15467 UPDATE AR_LINE_APP_DETAIL_GT a
15468 SET(FROM_AMOUNT ,
15469 FROM_ACCTD_AMOUNT ) =
15470 (SELECT DECODE(l_pro_base,0,0,
15471 Accting_Proration_Fct
15472 (AMOUNT,
15473 l_pro_base,
15474 p_from_amt,
15475 p_ae_sys_rec.base_currency,
15476 l_inv_currency,
15477 l_from_curr_code,
15478 'FROM_AMT',
15479 l_curr_rnd_flag)),
15480 DECODE(l_pro_acctd_base,0,0,
15481 Accting_Proration_Fct
15482 (ACCTD_AMOUNT,
15483 l_pro_acctd_base,
15484 p_from_acctd_amt,
15485 p_ae_sys_rec.base_currency,
15486 l_inv_currency,
15487 l_from_curr_code,
15488 'FROM_ACCTD_AMT',
15489 l_curr_rnd_flag))
15490 FROM AR_LINE_APP_DETAIL_GT b
15491 WHERE a.rowid = b.rowid
15492 AND b.gt_id = l_gt_id
15493 AND b.activity_bucket IN
15494 ('APP_LINE','APP_CHRG','APP_TAX','APP_FRT',
15495 'ADJ_LINE','ADJ_TAX','ADJ_CHRG','ADJ_FRT',
15496 'ED_LINE','ED_TAX','ED_CHRG','ED_FRT',
15497 'UNED_LINE','UNED_TAX','UNED_CHRG','UNED_FRT'))
15498 WHERE ( NVL(a.amount,0) <> 0 OR NVL(a.acctd_amount,0) <> 0)
15499 AND a.gt_id = l_gt_id;
15500
15501 END IF;
15502 IF PG_DEBUG = 'Y' THEN
15503 localdebug('arp_det_dist_pkg.update_from_gt()-');
15504 END IF;
15505 EXCEPTION
15506 WHEN no_from_amount_required THEN
15507 IF PG_DEBUG = 'Y' THEN
15508 localdebug(' Handled exception No from distribution process required- probably a adjustment or a CM APP');
15509 END IF;
15510 WHEN OTHERS THEN
15511 IF cu1%ISOPEN THEN CLOSE cu1; END IF;
15512 IF PG_DEBUG = 'Y' THEN
15513 localdebug(' EXCEPTION: update_from_gt :'||SQLERRM);
15514 END IF;
15515 RAISE;
15516 END;
15517
15518
15519
15520 PROCEDURE exec_adj_api_if_required
15521 (p_adj_rec IN ar_adjustments%ROWTYPE,
15522 p_app_rec IN ar_receivable_applications%ROWTYPE,
15523 p_ae_rule_rec IN ae_rule_rec_type,
15524 p_cust_inv_rec IN ra_customer_trx%ROWTYPE)
15525 IS
15526
15527 CURSOR get_group_data_rev IS
15528 SELECT account_class account_class,
15529 SUM(amount) sum_amount,
15530 SUM(acctd_amount) sum_acctd_amount,
15531 COUNT(account_class) count
15532 FROM ra_cust_trx_line_gl_dist
15533 WHERE customer_trx_id = p_cust_inv_rec.customer_trx_id
15534 AND account_class IN ('UNEARN','UNBILL')
15535 GROUP BY account_class;
15536
15537 l_account_class VARCHAR2(30);
15538 l_sum_amount NUMBER;
15539 l_sum_acctd_amount NUMBER;
15540 l_count NUMBER;
15541
15542 l_rev_adj_rec AR_Revenue_Adjustment_PVT.Rev_Adj_Rec_Type;
15543 l_adj_id NUMBER;
15544 l_dist_count NUMBER;
15545 l_adj_number ar_adjustments.adjustment_number%TYPE;
15546 l_ra_dist_tbl AR_Revenue_Adjustment_PVT.RA_Dist_Tbl_Type;
15547
15548 l_return_status VARCHAR2(1);
15549 l_msg_count NUMBER;
15550 l_msg_data VARCHAR2(2000);
15551 l_mesg VARCHAR2(2000) := '';
15552 ram_api_error EXCEPTION;
15553
15554 BEGIN
15555 IF PG_DEBUG = 'Y' THEN
15556 localdebug('arp_det_dist_pkg.exec_adj_api_if_required()+');
15557 localdebug(' p_adj_rec.adjustment_id :' || p_adj_rec.adjustment_id);
15558 localdebug(' p_app_rec.receivable_application_id:' || p_app_rec.receivable_application_id);
15559 localdebug(' p_cust_inv_rec.customer_trx_id :' || p_cust_inv_rec.customer_trx_id);
15560 END IF;
15561
15562 OPEN get_group_data_rev;
15563 FETCH get_group_data_rev INTO l_account_class,
15564 l_sum_amount,
15565 l_sum_acctd_amount,
15566 l_count;
15567
15568 IF get_group_data_rev%NOTFOUND THEN
15569 -- Normal invoice
15570 NULL;
15571 ELSE
15572 IF PG_DEBUG = 'Y' THEN
15573 localdebug(' l_sum_amount :' || l_sum_amount);
15574 localdebug(' l_sum_acctd_amount :' || l_sum_acctd_amount);
15575 END IF;
15576
15577 IF ((l_sum_amount <> 0) OR (l_sum_acctd_amount <> 0)) THEN
15578 --
15579 --condition as to whether the RAM api will require to be called if gl account
15580 --source is revenue on invoice
15581 --
15582 IF (((p_adj_rec.adjustment_id IS NOT NULL)
15583 AND (p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE')
15584 AND (((nvl(p_adj_rec.line_adjusted,0) + nvl(p_adj_rec.freight_adjusted,0) +
15585 nvl(p_adj_rec.receivables_charges_adjusted,0)) <> 0)
15586 OR ((p_ae_rule_rec.tax_code_source1 = 'NONE') AND (nvl(p_adj_rec.tax_adjusted,0) <> 0))
15587 ))
15588 OR
15589 ((p_app_rec.receivable_application_id IS NOT NULL)
15590 AND (((p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE')
15591 AND (((nvl(p_app_rec.line_ediscounted,0) + nvl(p_app_rec.freight_ediscounted,0) +
15592 nvl(p_app_rec.charges_ediscounted,0)) <> 0)
15593 OR ((p_ae_rule_rec.tax_code_source1 = 'NONE') AND (nvl(p_app_rec.tax_ediscounted,0) <> 0))
15594 ))
15595 OR
15596 ((p_ae_rule_rec.gl_account_source2 = 'REVENUE_ON_INVOICE')
15597 AND (((nvl(p_app_rec.line_uediscounted,0) + nvl(p_app_rec.freight_uediscounted,0) +
15598 nvl(p_app_rec.charges_uediscounted,0)) <> 0)
15599 OR ((p_ae_rule_rec.tax_code_source2 = 'NONE') AND (nvl(p_app_rec.tax_uediscounted,0) <> 0))
15600 ))
15601 ))
15602 )
15603 THEN --call revenue adjustment api
15604
15605 /*----------------------------------------------------------------------------+
15606 | Call the revenue adjustment api to derive the revenue distributions on the |
15607 | fly, to allocate the amounts for gl account source = revenue on Invoice. |
15608 +----------------------------------------------------------------------------*/
15609 l_rev_adj_rec.customer_trx_id := p_cust_inv_rec.customer_trx_id;
15610 l_rev_adj_rec.reason_code := 'ACCOUNTING';
15611
15612 IF PG_DEBUG = 'Y' THEN
15613 localdebug(' Calling AR_Revenue_Adjustment_PVT.Earn_Revenue ');
15614 END IF;
15615
15616 AR_Revenue_Adjustment_PVT.Earn_Revenue
15617 ( p_api_version => 2
15618 ,p_init_msg_list => FND_API.G_TRUE
15619 ,p_commit => FND_API.G_FALSE
15620 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
15621 ,x_return_status => l_return_status
15622 ,x_msg_count => l_msg_count
15623 ,x_msg_data => l_msg_data
15624 ,p_rev_adj_rec => l_rev_adj_rec
15625 ,x_adjustment_id => l_adj_id
15626 ,x_adjustment_number => l_adj_number
15627 ,x_dist_count => l_dist_count
15628 ,x_ra_dist_tbl => l_ra_dist_tbl);
15629
15630
15631 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
15632
15633 IF l_msg_count > 1 THEN
15634 fnd_msg_pub.reset;
15635 --get only the first message from the api message stack for forms users
15636 l_mesg := fnd_msg_pub.get(p_encoded=>FND_API.G_FALSE);
15637 ELSE
15638 l_mesg := l_msg_data;
15639 END IF;
15640
15641 localdebug(' l_mesg :' || l_mesg);
15642
15643 --Now set the message token
15644 FND_MESSAGE.SET_NAME('AR', 'GENERIC_MESSAGE');
15645 FND_MESSAGE.SET_TOKEN('GENERIC_TEXT', l_mesg);
15646
15647 RAISE ram_api_error;
15648
15649 END IF; --rev adj gl dist table exists and success from api
15650
15651 END IF;
15652
15653 END IF;
15654
15655 END IF;
15656 IF PG_DEBUG = 'Y' THEN
15657 localdebug('arp_det_dist_pkg.exec_adj_api_if_required()-');
15658 END IF;
15659 EXCEPTION
15660 WHEN ram_api_error THEN
15661 IF PG_DEBUG = 'Y' THEN
15662 localdebug('ram_api_error - exec_adj_api_if_required :'||l_mesg );
15663 END IF;
15664 RAISE;
15665 WHEN OTHERS THEN
15666 IF PG_DEBUG = 'Y' THEN
15667 localdebug('EXCEPTION: exec_adj_api_if_required :'||SQLERRM);
15668 END IF;
15669 RAISE;
15670 END;
15671
15672
15673 PROCEDURE exec_revrec_if_required
15674 ( p_customer_trx_id IN ra_customer_trx.customer_trx_id%TYPE,
15675 p_app_rec IN ar_receivable_applications%ROWTYPE,
15676 p_adj_rec IN ar_adjustments%ROWTYPE)
15677 IS
15678 CURSOR c1 IS
15679 SELECT ctl.customer_trx_id
15680 FROM ra_customer_trx_lines ctl
15681 WHERE ctl.customer_trx_id = p_customer_trx_id
15682 AND ctl.autorule_complete_flag||'' = 'N'
15683 GROUP BY ctl.customer_trx_id;
15684 l_dummy NUMBER;
15685 l_rev_rec_req BOOLEAN;
15686 l_sum_dist NUMBER;
15687 BEGIN
15688 IF PG_DEBUG = 'Y' THEN
15689 localdebug('arp_det_dist_pkg.exec_revrec_if_required()+');
15690 localdebug(' p_customer_trx_id :' || p_customer_trx_id);
15691 localdebug(' p_app_rec.receivable_application_id :' || p_app_rec.receivable_application_id);
15692 localdebug(' p_adj_rec.adjustment_id :' || p_adj_rec.adjustment_id);
15693
15694 localdebug(' Check whether Rev Recognition is to be Run');
15695 END IF;
15696 OPEN c1;
15697 FETCH c1 INTO l_dummy;
15698 IF c1%NOTFOUND THEN
15699 IF PG_DEBUG = 'Y' THEN
15700 localdebug(' No need to run rev rec for trx_id :' || p_customer_trx_id);
15701 END IF;
15702 l_rev_rec_req := FALSE;
15703 ELSE
15704 IF PG_DEBUG = 'Y' THEN
15705 localdebug(' Need to run rev rec for trx_id :' || p_customer_trx_id);
15706 END IF;
15707 l_rev_rec_req := TRUE;
15708 END IF;
15709 CLOSE c1;
15710
15711 IF l_rev_rec_req THEN
15712 IF PG_DEBUG = 'Y' THEN
15713 localdebug(' Executing Rev Rec - calling ARP_AUTO_RULE.create_distributions');
15714 END IF;
15715 l_sum_dist := ARP_AUTO_RULE.create_distributions
15716 ( p_commit => 'N',
15717 p_debug => 'N',
15718 p_trx_id => p_customer_trx_id);
15719 IF PG_DEBUG = 'Y' THEN
15720 localdebug(' Completed running revenue recognition for Transaction');
15721 END IF;
15722 END IF;
15723 IF PG_DEBUG = 'Y' THEN
15724 localdebug( 'arp_det_dist_pkg.exec_revrec_if_required()-');
15725 END IF;
15726 EXCEPTION
15727 WHEN OTHERS THEN
15728 IF PG_DEBUG = 'Y' THEN
15729 localdebug( 'EXCEPTION OTHERS exec_revrec_if_required :'||SQLERRM);
15730 END IF;
15731 RAISE;
15732 END;
15733
15734
15735 PROCEDURE exec_revrec_if_required
15736 (p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_TRUE
15737 ,p_mode IN VARCHAR2 DEFAULT 'TRANSACTION'
15738 ,p_customer_trx_id IN NUMBER DEFAULT NULL
15739 ,p_request_id IN NUMBER DEFAULT NULL
15740 ,x_sum_dist OUT NOCOPY NUMBER
15741 ,x_return_status OUT NOCOPY VARCHAR2
15742 ,x_msg_count OUT NOCOPY NUMBER
15743 ,x_msg_data OUT NOCOPY VARCHAR2)
15744 IS
15745 CURSOR c1(p_customer_trx_id IN NUMBER) IS
15746 SELECT ctl.customer_trx_id
15747 FROM ra_customer_trx_lines ctl
15748 WHERE ctl.customer_trx_id = p_customer_trx_id
15749 AND ctl.autorule_complete_flag||'' = 'N'
15750 GROUP BY ctl.customer_trx_id;
15751
15752 CURSOR c_trx_number(p_customer_trx_id IN NUMBER) IS
15753 SELECT ct.trx_number
15754 FROM ra_customer_trx ct
15755 WHERE ct.customer_trx_id = p_customer_trx_id;
15756
15757 l_message VARCHAR2(2000);
15758 l_trx_number VARCHAR2(20);
15759 l_dummy NUMBER;
15760 l_rev_rec_req BOOLEAN;
15761 wrong_parameter EXCEPTION;
15762 BEGIN
15763 IF PG_DEBUG = 'Y' THEN
15764 localdebug('arp_det_dist_pkg.exec_revrec_if_required()+');
15765 localdebug(' p_mode :' || p_mode);
15766 localdebug(' p_customer_trx_id :' || p_customer_trx_id);
15767 localdebug(' p_request_id :' || p_request_id);
15768 END IF;
15769
15770 x_return_status := FND_API.G_RET_STS_SUCCESS;
15771
15772 IF FND_API.to_Boolean(p_init_msg_list) THEN
15773 FND_MSG_PUB.initialize;
15774 END IF;
15775
15776 IF p_mode <> 'TRANSACTION' THEN
15777 x_msg_data := 'Only transaction mode is supported currently.
15778 ';
15779 x_msg_count := 1;
15780 x_return_status := FND_API.G_RET_STS_ERROR;
15781 END IF;
15782
15783 IF p_mode = 'TRANSACTION' AND p_customer_trx_id IS NULL THEN
15784 x_msg_data := x_msg_data||'The p_customer_trx_id is required, currently it is passed as null.
15785 ';
15786 x_msg_count := 1;
15787 x_return_status := FND_API.G_RET_STS_ERROR;
15788 END IF;
15789
15790 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
15791 RAISE wrong_parameter;
15792 END IF;
15793
15794
15795 IF PG_DEBUG = 'Y' THEN
15796 localdebug(' Check whether Rev Recognition is to be Run');
15797 END IF;
15798 OPEN c1(p_customer_trx_id);
15799 FETCH c1 INTO l_dummy;
15800 IF c1%NOTFOUND THEN
15801 IF PG_DEBUG = 'Y' THEN
15802 localdebug(' No need to run rev rec for trx_id :' || p_customer_trx_id);
15803 END IF;
15804 l_rev_rec_req := FALSE;
15805 ELSE
15806 IF PG_DEBUG = 'Y' THEN
15807 localdebug(' Need to run rev rec for trx_id :' || p_customer_trx_id);
15808 END IF;
15809 l_rev_rec_req := TRUE;
15810 END IF;
15811 CLOSE c1;
15812
15813
15814 IF l_rev_rec_req THEN
15815 IF PG_DEBUG = 'Y' THEN
15816 localdebug(' Executing Rev Rec - calling ARP_AUTO_RULE.create_distributions');
15817 END IF;
15818 x_sum_dist := ARP_AUTO_RULE.create_distributions
15819 ( p_commit => 'N',
15820 p_debug => 'N',
15821 p_trx_id => p_customer_trx_id);
15822 IF x_sum_dist < 0 THEN
15823 OPEN c_trx_number(p_customer_trx_id);
15824 FETCH c_trx_number INTO l_trx_number;
15825 CLOSE c_trx_number;
15826 FND_MESSAGE.SET_NAME( 'AR', 'AR_AUTORULE_ERROR' );
15827 FND_MESSAGE.SET_TOKEN( 'TRX_NUMBER', l_trx_number );
15828 FND_MSG_PUB.ADD;
15829 x_return_status := FND_API.G_RET_STS_ERROR;
15830 END IF;
15831 IF PG_DEBUG = 'Y' THEN
15832 localdebug(' Completed running revenue recognition for Transaction');
15833 END IF;
15834 END IF;
15835
15836 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
15837 RAISE fnd_api.G_EXC_ERROR;
15838 END IF;
15839 IF PG_DEBUG = 'Y' THEN
15840 localdebug( 'arp_det_dist_pkg.exec_revrec_if_required()-');
15841 END IF;
15842 EXCEPTION
15843 WHEN fnd_api.G_EXC_ERROR THEN
15844 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
15845 p_count => x_msg_count,
15846 p_data => x_msg_data);
15847
15848 WHEN wrong_parameter THEN localdebug(x_msg_count);
15849
15850 WHEN OTHERS THEN
15851 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
15852 x_msg_count := NVL(x_msg_count,0) + 1;
15853 x_msg_data :='EXCEPTION OTHERS exec_revrec_if_required :'||SQLERRM ;
15854 IF PG_DEBUG = 'Y' THEN
15855 localdebug(x_msg_data );
15856 END IF;
15857 END;
15858
15859 PROCEDURE update_taxable
15860 (p_gt_id IN VARCHAR2,
15861 p_customer_trx_id IN NUMBER,
15862 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
15863 IS
15864 CURSOR c_read_for_taxable IS
15865 select
15866 GROUPE ,
15867 -- ADJ and APP
15868 -- Base
15869 base_pro_amt ,
15870 base_pro_acctd_amt ,
15871 BASE_FRT_PRO_AMT ,
15872 BASE_FRT_PRO_ACCTD_AMT ,
15873 sum(ELMT_TAX_PRO_AMT) over (partition by groupe) BASE_TAX_PRO_AMT ,
15874 sum(ELMT_TAX_PRO_ACCTD_AMT) over (partition by groupe) BASE_TAX_PRO_ACCTD_AMT ,
15875 BASE_CHRG_PRO_AMT ,
15876 BASE_CHRG_PRO_ACCTD_AMT ,
15877 -- Element numerator
15878 elmt_pro_amt ,
15879 elmt_pro_acctd_amt ,
15880 ELMT_FRT_PRO_AMT ,
15881 ELMT_FRT_PRO_ACCTD_AMT ,
15882 ELMT_TAX_PRO_AMT,
15883 ELMT_TAX_PRO_ACCTD_AMT ,
15884 ELMT_CHRG_PRO_AMT ,
15885 ELMT_CHRG_PRO_ACCTD_AMT ,
15886 -- Amount to be allocated
15887 buc_alloc_amt ,
15888 buc_alloc_acctd_amt,
15889 buc_frt_alloc_amt ,
15890 buc_frt_alloc_acctd_amt,
15891 buc_tax_alloc_amt ,
15892 buc_tax_alloc_acctd_amt,
15893 buc_chrg_alloc_amt ,
15894 buc_chrg_alloc_acctd_amt,
15895 -- ED
15896 -- Base
15897 base_ed_pro_amt ,
15898 base_ed_pro_acctd_amt ,
15899 BASE_ed_FRT_PRO_AMT ,
15900 BASE_ed_FRT_PRO_ACCTD_AMT ,
15901 sum(ELMT_ed_TAX_PRO_AMT) over (partition by groupe) BASE_ed_TAX_PRO_AMT ,
15902 sum(ELMT_ed_TAX_PRO_ACCTD_AMT) over (partition by groupe) BASE_ed_TAX_PRO_ACCTD_AMT ,
15903 BASE_ed_CHRG_PRO_AMT ,
15904 BASE_ed_CHRG_PRO_ACCTD_AMT ,
15905 -- Element numerator
15906 elmt_ed_pro_amt ,
15907 elmt_ed_pro_acctd_amt ,
15908 ELMT_ed_FRT_PRO_AMT ,
15909 ELMT_ed_FRT_PRO_ACCTD_AMT ,
15910 ELMT_ed_TAX_PRO_AMT ,
15911 ELMT_ed_TAX_PRO_ACCTD_AMT ,
15912 ELMT_ed_CHRG_PRO_AMT ,
15913 ELMT_ed_CHRG_PRO_ACCTD_AMT ,
15914 -- Amount to be allocated
15915 buc_ed_alloc_amt ,
15916 buc_ed_alloc_acctd_amt,
15917 buc_ed_frt_alloc_amt ,
15918 buc_ed_frt_alloc_acctd_amt,
15919 buc_ed_tax_alloc_amt ,
15920 buc_ed_tax_alloc_acctd_amt,
15921 buc_ed_chrg_alloc_amt ,
15922 buc_ed_chrg_alloc_acctd_amt,
15923 -- UNED
15924 -- Base
15925 base_uned_pro_amt ,
15926 base_uned_pro_acctd_amt ,
15927 BASE_uned_FRT_PRO_AMT ,
15928 BASE_uned_FRT_PRO_ACCTD_AMT ,
15929 sum(ELMT_uned_TAX_PRO_AMT) over (partition by groupe) BASE_uned_TAX_PRO_AMT ,
15930 sum(ELMT_uned_TAX_PRO_ACCTD_AMT) over (partition by groupe) BASE_uned_TAX_PRO_ACCTD_AMT ,
15931 BASE_uned_CHRG_PRO_AMT ,
15932 BASE_uned_CHRG_PRO_ACCTD_AMT ,
15933 -- Element numerator
15934 elmt_uned_pro_amt ,
15935 elmt_uned_pro_acctd_amt ,
15936 ELMT_uned_FRT_PRO_AMT ,
15937 ELMT_uned_FRT_PRO_ACCTD_AMT ,
15938 ELMT_uned_TAX_PRO_AMT ,
15939 ELMT_uned_TAX_PRO_ACCTD_AMT ,
15940 ELMT_uned_CHRG_PRO_AMT ,
15941 ELMT_uned_CHRG_PRO_ACCTD_AMT ,
15942 -- Amount to be allocated
15943 buc_uned_alloc_amt ,
15944 buc_uned_alloc_acctd_amt,
15945 buc_uned_frt_alloc_amt ,
15946 buc_uned_frt_alloc_acctd_amt,
15947 buc_uned_tax_alloc_amt ,
15948 buc_uned_tax_alloc_acctd_amt,
15949 buc_uned_chrg_alloc_amt ,
15950 buc_uned_chrg_alloc_acctd_amt,
15951 --
15952 BASE_CURRENCY ,
15953 TO_CURRENCY ,
15954 FROM_CURRENCY ,
15955 --
15956 rowid
15957 from (SELECT /*+INDEX (AR_LINE_APP_DETAIL_GT AR_LINE_APP_DETAIL_GT_N1)*/
15958 tax_link_id groupe,
15959 -- ADJ and APP
15960 --Base
15961 0 base_pro_amt, --Base for Revenue distributions
15962 0 base_pro_acctd_amt,
15963 0 BASE_FRT_PRO_AMT, --Base for freight distributions
15964 0 BASE_FRT_PRO_ACCTD_AMT,
15965 0 BASE_CHRG_PRO_AMT, --Base for charge distributions
15966 0 BASE_CHRG_PRO_ACCTD_AMT,
15967 --Element
15968 0 elmt_pro_amt, --Element for Revenue distributions
15969 0 elmt_pro_acctd_amt,
15970 0 ELMT_FRT_PRO_AMT, --Element for freight distributions
15971 0 ELMT_FRT_PRO_ACCTD_AMT,
15972 DECODE(activity_bucket||ref_account_class, 'ADJ_TAXTAX',
15973 DECODE(SUM(DECODE(activity_bucket,'APP_TAX', amount, 'ADJ_TAX', amount, 0))
15974 OVER (PARTITION BY tax_link_id ), 0, 1,
15975 DECODE(activity_bucket,'APP_TAX', amount, 'ADJ_TAX', amount, 0)),
15976 DECODE(activity_bucket,'APP_TAX', amount, 'ADJ_TAX', amount, 0)
15977 ) ELMT_TAX_PRO_AMT, --Element for tax distributions
15978 DECODE(activity_bucket||ref_account_class, 'ADJ_TAXTAX',
15979 DECODE(SUM(DECODE(activity_bucket,'APP_TAX', acctd_amount, 'ADJ_TAX', acctd_amount, 0))
15980 OVER (PARTITION BY tax_link_id ), 0, 1,
15981 DECODE(activity_bucket,'APP_TAX', acctd_amount, 'ADJ_TAX', acctd_amount, 0)),
15982 DECODE(activity_bucket,'APP_TAX', acctd_amount, 'ADJ_TAX', acctd_amount, 0)
15983 ) ELMT_TAX_PRO_ACCTD_AMT,
15984 0 ELMT_CHRG_PRO_AMT, --Element for charge distributions
15985 0 ELMT_CHRG_PRO_ACCTD_AMT,
15986 --Amount to be allocated
15987 0 buc_alloc_amt, --Allocation for Revenue distributions
15988 0 buc_alloc_acctd_amt,
15989 0 buc_frt_alloc_amt, --Allocation for freight distributions
15990 0 buc_frt_alloc_acctd_amt,
15991 SUM(DECODE(activity_bucket,'APP_LINE',amount,
15992 'ADJ_LINE',amount,
15993 'APP_CHRG',amount,
15994 'ADJ_CHRG',amount,
15995 'APP_FRT' ,amount,
15996 'ADJ_FRT' ,amount, 0))
15997 OVER (PARTITION BY tax_link_id ) buc_tax_alloc_amt, -- Allocation for app and adj
15998 -- taxable from the revenue distribution
15999 SUM(DECODE(activity_bucket,'APP_LINE',acctd_amount,
16000 'ADJ_LINE',acctd_amount,
16001 'APP_CHRG',acctd_amount,
16002 'ADJ_CHRG',acctd_amount,
16003 'APP_FRT' ,acctd_amount,
16004 'ADJ_FRT' ,acctd_amount, 0))
16005 OVER (PARTITION BY tax_link_id ) buc_tax_alloc_acctd_amt,
16006 0 buc_chrg_alloc_amt, --Allocation for charge distributions
16007 0 buc_chrg_alloc_acctd_amt,
16008 -- ED
16009 --Base
16010 0 base_ed_pro_amt, --Base ED on Rev
16011 0 base_ed_pro_acctd_amt,
16012 0 BASE_ed_FRT_PRO_AMT, --Base ED on Freight HYUFR
16013 0 BASE_ed_FRT_PRO_ACCTD_AMT,
16014 0 BASE_ed_CHRG_PRO_AMT, --Base ED on Charge
16015 0 BASE_ed_CHRG_PRO_ACCTD_AMT,
16016 --Element
16017 0 elmt_ed_pro_amt, --Element ED on Rev
16018 0 elmt_ed_pro_acctd_amt,
16019 0 ELMT_ed_FRT_PRO_AMT, --Element ED on Freight
16020 0 ELMT_ed_FRT_PRO_ACCTD_AMT,
16021 DECODE(activity_bucket||ref_account_class, 'ED_TAXTAX',
16022 DECODE(SUM(DECODE(activity_bucket,'ED_TAX', amount, 0))
16023 OVER (PARTITION BY tax_link_id ), 0, 1,
16024 DECODE(activity_bucket,'ED_TAX', amount, 0)),
16025 DECODE(activity_bucket,'ED_TAX', amount, 0)
16026 ) ELMT_ed_TAX_PRO_AMT, --Element ED on Tax HYUFRTAX
16027 DECODE(activity_bucket||ref_account_class, 'ED_TAXTAX',
16028 DECODE(SUM(DECODE(activity_bucket,'ED_TAX', acctd_amount, 0))
16029 OVER (PARTITION BY tax_link_id ), 0, 1,
16030 DECODE(activity_bucket,'ED_TAX', acctd_amount, 0)),
16031 DECODE(activity_bucket,'ED_TAX', acctd_amount, 0)
16032 ) ELMT_ed_TAX_PRO_ACCTD_AMT,
16033 0 ELMT_ed_CHRG_PRO_AMT, --Element ED on Charge
16034 0 ELMT_ed_CHRG_PRO_ACCTD_AMT,
16035 --Amount to be allocated
16036 0 buc_ed_alloc_amt, --Allocation ED on Rev
16037 0 buc_ed_alloc_acctd_amt,
16038 0 buc_ed_frt_alloc_amt, --Allocation ED on Freight
16039 0 buc_ed_frt_alloc_acctd_amt,
16040 SUM(DECODE(activity_bucket,'ED_LINE', amount,
16041 'ED_CHRG', amount,
16042 'ED_FRT' , amount,0))
16043 OVER (PARTITION BY tax_link_id ) buc_ed_tax_alloc_amt, --Allocation ED on Tax by the rev ed
16044 SUM(DECODE(activity_bucket,'ED_LINE', acctd_amount,
16045 'ED_CHRG', acctd_amount,
16046 'ED_FRT' , acctd_amount,0))
16047 OVER (PARTITION BY tax_link_id ) buc_ed_tax_alloc_acctd_amt,
16048 0 buc_ed_chrg_alloc_amt,
16049 0 buc_ed_chrg_alloc_acctd_amt,
16050 -- UNED
16051 --Base
16052 0 base_uned_pro_amt,
16053 0 base_uned_pro_acctd_amt,
16054 0 BASE_uned_FRT_PRO_AMT,
16055 0 BASE_uned_FRT_PRO_ACCTD_AMT,
16056 0 BASE_uned_CHRG_PRO_AMT,
16057 0 BASE_uned_CHRG_PRO_ACCTD_AMT,
16058 --Element
16059 0 elmt_uned_pro_amt,
16060 0 elmt_uned_pro_acctd_amt,
16061 0 ELMT_uned_FRT_PRO_AMT,
16062 0 ELMT_uned_FRT_PRO_ACCTD_AMT,
16063 DECODE(activity_bucket||ref_account_class, 'UNED_TAXTAX',
16064 DECODE(SUM(DECODE(activity_bucket,'UNED_TAX', amount, 0))
16065 OVER (PARTITION BY tax_link_id ), 0, 1,
16066 DECODE(activity_bucket,'UNED_TAX', amount, 0)),
16067 DECODE(activity_bucket,'UNED_TAX', amount, 0)
16068 ) ELMT_uned_TAX_PRO_AMT, --Element ED on Tax HYUFRTAX
16069 DECODE(activity_bucket||ref_account_class, 'UNED_TAXTAX',
16070 DECODE(SUM(DECODE(activity_bucket,'UNED_TAX', acctd_amount, 0))
16071 OVER (PARTITION BY tax_link_id ), 0, 1,
16072 DECODE(activity_bucket,'UNED_TAX', acctd_amount, 0)),
16073 DECODE(activity_bucket,'UNED_TAX', acctd_amount, 0)
16074 ) ELMT_uned_TAX_PRO_ACCTD_AMT,
16075 0 ELMT_uned_CHRG_PRO_AMT,
16076 0 ELMT_uned_CHRG_PRO_ACCTD_AMT,
16077 --Amount to be allocated
16078 0 buc_uned_alloc_amt,
16079 0 buc_uned_alloc_acctd_amt,
16080 0 buc_uned_frt_alloc_amt,
16081 0 buc_uned_frt_alloc_acctd_amt,
16082 SUM(DECODE(activity_bucket,'UNED_LINE', amount,
16083 'UNED_CHRG', amount,
16084 'UNED_FRT' , amount,0))
16085 OVER (PARTITION BY tax_link_id ) buc_uned_tax_alloc_amt, --Allocation ED on Tax by the rev ed
16086 SUM(DECODE(activity_bucket,'UNED_LINE', acctd_amount,
16087 'UNED_CHRG', acctd_amount,
16088 'UNED_FRT' , acctd_amount,0))
16089 OVER (PARTITION BY tax_link_id ) buc_uned_tax_alloc_acctd_amt,
16090 0 buc_uned_chrg_alloc_amt,
16091 0 buc_uned_chrg_alloc_acctd_amt,
16092 --Currencies
16093 p_ae_sys_rec.base_currency BASE_CURRENCY ,
16094 g_cust_inv_rec.invoice_currency_code TO_CURRENCY ,
16095 '' FROM_CURRENCY , --Not usefull in this case as taxable is not calculated with from currency
16096 -- Rowid
16097 rowid
16098 FROM AR_LINE_APP_DETAIL_GT
16099 WHERE gt_id = p_gt_id
16100 AND ref_customer_trx_id = p_customer_trx_id
16101 AND tax_link_id IS NOT NULL
16102 AND DECODE(ref_account_class,'REV' ,tax_inc_flag,
16103 'FREIGHT',tax_inc_flag,
16104 'TAX','Y','N') = 'Y');
16105 -- AND se_gt_id = g_se_gt_id
16106 -- ORDER BY line_type||'-'||ref_customer_trx_id||'-'||ref_customer_trx_line_id;
16107
16108 l_tab pro_res_tbl_type;
16109
16110 l_group_tbl group_tbl_type;
16111 l_group VARCHAR2(60) := 'NOGROUP';
16112
16113 -- ADJ and APP
16114 l_run_amt NUMBER := 0;
16115 l_run_alloc NUMBER := 0;
16116 l_run_acctd_amt NUMBER := 0;
16117 l_run_acctd_alloc NUMBER := 0;
16118 l_alloc NUMBER := 0;
16119 l_acctd_alloc NUMBER := 0;
16120
16121 l_run_chrg_amt NUMBER := 0;
16122 l_run_chrg_alloc NUMBER := 0;
16123 l_run_chrg_acctd_amt NUMBER := 0;
16124 l_run_chrg_acctd_alloc NUMBER := 0;
16125 l_chrg_alloc NUMBER := 0;
16126 l_chrg_acctd_alloc NUMBER := 0;
16127
16128 l_run_frt_amt NUMBER := 0;
16129 l_run_frt_alloc NUMBER := 0;
16130 l_run_frt_acctd_amt NUMBER := 0;
16131 l_run_frt_acctd_alloc NUMBER := 0;
16132 l_frt_alloc NUMBER := 0;
16133 l_frt_acctd_alloc NUMBER := 0;
16134
16135 l_run_tax_amt NUMBER := 0;
16136 l_run_tax_alloc NUMBER := 0;
16137 l_run_tax_acctd_amt NUMBER := 0;
16138 l_run_tax_acctd_alloc NUMBER := 0;
16139 l_tax_alloc NUMBER := 0;
16140 l_tax_acctd_alloc NUMBER := 0;
16141
16142 -- ED
16143 l_run_ed_amt NUMBER := 0;
16144 l_run_ed_alloc NUMBER := 0;
16145 l_run_ed_acctd_amt NUMBER := 0;
16146 l_run_ed_acctd_alloc NUMBER := 0;
16147 l_ed_alloc NUMBER := 0;
16148 l_ed_acctd_alloc NUMBER := 0;
16149
16150 l_run_ed_chrg_amt NUMBER := 0;
16151 l_run_ed_chrg_alloc NUMBER := 0;
16152 l_run_ed_chrg_acctd_amt NUMBER := 0;
16153 l_run_ed_chrg_acctd_alloc NUMBER := 0;
16154 l_ed_chrg_alloc NUMBER := 0;
16155 l_ed_chrg_acctd_alloc NUMBER := 0;
16156
16157 l_run_ed_frt_amt NUMBER := 0;
16158 l_run_ed_frt_alloc NUMBER := 0;
16159 l_run_ed_frt_acctd_amt NUMBER := 0;
16160 l_run_ed_frt_acctd_alloc NUMBER := 0;
16161 l_ed_frt_alloc NUMBER := 0;
16162 l_ed_frt_acctd_alloc NUMBER := 0;
16163
16164 l_run_ed_tax_amt NUMBER := 0;
16165 l_run_ed_tax_alloc NUMBER := 0;
16166 l_run_ed_tax_acctd_amt NUMBER := 0;
16167 l_run_ed_tax_acctd_alloc NUMBER := 0;
16168 l_ed_tax_alloc NUMBER := 0;
16169 l_ed_tax_acctd_alloc NUMBER := 0;
16170
16171 -- UNED
16172 l_run_uned_amt NUMBER := 0;
16173 l_run_uned_alloc NUMBER := 0;
16174 l_run_uned_acctd_amt NUMBER := 0;
16175 l_run_uned_acctd_alloc NUMBER := 0;
16176 l_uned_alloc NUMBER := 0;
16177 l_uned_acctd_alloc NUMBER := 0;
16178
16179 l_run_uned_chrg_amt NUMBER := 0;
16180 l_run_uned_chrg_alloc NUMBER := 0;
16181 l_run_uned_chrg_acctd_amt NUMBER := 0;
16182 l_run_uned_chrg_acctd_alloc NUMBER := 0;
16183 l_uned_chrg_alloc NUMBER := 0;
16184 l_uned_chrg_acctd_alloc NUMBER := 0;
16185
16186 l_run_uned_frt_amt NUMBER := 0;
16187 l_run_uned_frt_alloc NUMBER := 0;
16188 l_run_uned_frt_acctd_amt NUMBER := 0;
16189 l_run_uned_frt_acctd_alloc NUMBER := 0;
16190 l_uned_frt_alloc NUMBER := 0;
16191 l_uned_frt_acctd_alloc NUMBER := 0;
16192
16193 l_run_uned_tax_amt NUMBER := 0;
16194 l_run_uned_tax_alloc NUMBER := 0;
16195 l_run_uned_tax_acctd_amt NUMBER := 0;
16196 l_run_uned_tax_acctd_alloc NUMBER := 0;
16197 l_uned_tax_alloc NUMBER := 0;
16198 l_uned_tax_acctd_alloc NUMBER := 0;
16199
16200 l_exist BOOLEAN;
16201 l_last_fetch BOOLEAN;
16202
16203 BEGIN
16204 IF PG_DEBUG = 'Y' THEN
16205 localdebug('arp_det_dist_pkg.update_tax()+');
16206 localdebug(' p_ae_sys_rec.set_of_books_id');
16207 localdebug(' p_ae_sys_rec.sob_type');
16208 END IF;
16209 OPEN c_read_for_taxable;
16210 LOOP
16211 FETCH c_read_for_taxable BULK COLLECT INTO
16212 l_tab.GROUPE ,
16213 -- ADJ and APP
16214 -- Base
16215 l_tab.base_pro_amt ,
16216 l_tab.base_pro_acctd_amt ,
16217 l_tab.BASE_FRT_PRO_AMT ,
16218 l_tab.BASE_FRT_PRO_ACCTD_AMT ,
16219 l_tab.BASE_TAX_PRO_AMT ,
16220 l_tab.BASE_TAX_PRO_ACCTD_AMT ,
16221 l_tab.BASE_CHRG_PRO_AMT ,
16222 l_tab.BASE_CHRG_PRO_ACCTD_AMT ,
16223 -- Element numerator
16224 l_tab.elmt_pro_amt ,
16225 l_tab.elmt_pro_acctd_amt ,
16226 l_tab.ELMT_FRT_PRO_AMT ,
16227 l_tab.ELMT_FRT_PRO_ACCTD_AMT ,
16228 l_tab.ELMT_TAX_PRO_AMT ,
16229 l_tab.ELMT_TAX_PRO_ACCTD_AMT ,
16230 l_tab.ELMT_CHRG_PRO_AMT ,
16231 l_tab.ELMT_CHRG_PRO_ACCTD_AMT ,
16232 -- Amount to be allocated
16233 l_tab.buc_alloc_amt ,
16234 l_tab.buc_alloc_acctd_amt,
16235 l_tab.buc_frt_alloc_amt ,
16236 l_tab.buc_frt_alloc_acctd_amt,
16237 l_tab.buc_tax_alloc_amt ,
16238 l_tab.buc_tax_alloc_acctd_amt,
16239 l_tab.buc_chrg_alloc_amt ,
16240 l_tab.buc_chrg_alloc_acctd_amt,
16241 -- ED
16242 -- Base
16243 l_tab.base_ed_pro_amt ,
16244 l_tab.base_ed_pro_acctd_amt ,
16245 l_tab.BASE_ed_FRT_PRO_AMT ,
16246 l_tab.BASE_ed_FRT_PRO_ACCTD_AMT ,
16247 l_tab.BASE_ed_TAX_PRO_AMT ,
16248 l_tab.BASE_ed_TAX_PRO_ACCTD_AMT ,
16249 l_tab.BASE_ed_CHRG_PRO_AMT ,
16250 l_tab.BASE_ed_CHRG_PRO_ACCTD_AMT ,
16251 -- Element numerator
16252 l_tab.elmt_ed_pro_amt ,
16253 l_tab.elmt_ed_pro_acctd_amt ,
16254 l_tab.ELMT_ed_FRT_PRO_AMT ,
16255 l_tab.ELMT_ed_FRT_PRO_ACCTD_AMT ,
16256 l_tab.ELMT_ed_TAX_PRO_AMT ,
16257 l_tab.ELMT_ed_TAX_PRO_ACCTD_AMT ,
16258 l_tab.ELMT_ed_CHRG_PRO_AMT ,
16259 l_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT ,
16260 -- Amount to be allocated
16261 l_tab.buc_ed_alloc_amt ,
16262 l_tab.buc_ed_alloc_acctd_amt,
16263 l_tab.buc_ed_frt_alloc_amt ,
16264 l_tab.buc_ed_frt_alloc_acctd_amt,
16265 l_tab.buc_ed_tax_alloc_amt ,
16266 l_tab.buc_ed_tax_alloc_acctd_amt,
16267 l_tab.buc_ed_chrg_alloc_amt ,
16268 l_tab.buc_ed_chrg_alloc_acctd_amt,
16269 -- UNED
16270 -- Base
16271 l_tab.base_uned_pro_amt ,
16272 l_tab.base_uned_pro_acctd_amt ,
16273 l_tab.BASE_uned_FRT_PRO_AMT ,
16274 l_tab.BASE_uned_FRT_PRO_ACCTD_AMT ,
16275 l_tab.BASE_uned_TAX_PRO_AMT ,
16276 l_tab.BASE_uned_TAX_PRO_ACCTD_AMT ,
16277 l_tab.BASE_uned_CHRG_PRO_AMT ,
16278 l_tab.BASE_uned_CHRG_PRO_ACCTD_AMT ,
16279 -- Element numerator
16280 l_tab.elmt_uned_pro_amt ,
16281 l_tab.elmt_uned_pro_acctd_amt ,
16282 l_tab.ELMT_uned_FRT_PRO_AMT ,
16283 l_tab.ELMT_uned_FRT_PRO_ACCTD_AMT ,
16284 l_tab.ELMT_uned_TAX_PRO_AMT ,
16285 l_tab.ELMT_uned_TAX_PRO_ACCTD_AMT ,
16286 l_tab.ELMT_uned_CHRG_PRO_AMT ,
16287 l_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT ,
16288 -- Amount to be allocated
16289 l_tab.buc_uned_alloc_amt ,
16290 l_tab.buc_uned_alloc_acctd_amt,
16291 l_tab.buc_uned_frt_alloc_amt ,
16292 l_tab.buc_uned_frt_alloc_acctd_amt,
16293 l_tab.buc_uned_tax_alloc_amt ,
16294 l_tab.buc_uned_tax_alloc_acctd_amt,
16295 l_tab.buc_uned_chrg_alloc_amt ,
16296 l_tab.buc_uned_chrg_alloc_acctd_amt,
16297 --
16298 l_tab.BASE_CURRENCY ,
16299 l_tab.TO_CURRENCY ,
16300 l_tab.FROM_CURRENCY ,
16301 --
16302 l_tab.ROWID_ID LIMIT g_bulk_fetch_rows;
16303
16304 IF c_read_for_taxable%NOTFOUND THEN
16305 l_last_fetch := TRUE;
16306 END IF;
16307
16308 IF (l_tab.ROWID_ID.COUNT = 0) AND (l_last_fetch) THEN
16309 IF PG_DEBUG = 'Y' THEN
16310 localdebug('COUNT = 0 and LAST FETCH ');
16311 END IF;
16312 EXIT;
16313 END IF;
16314
16315 plsql_proration( x_tab => l_tab,
16316 x_group_tbl => l_group_tbl,
16317 -- ADJ and APP
16318 x_run_amt => l_run_amt,
16319 x_run_alloc => l_run_alloc,
16320 x_run_acctd_amt => l_run_acctd_amt,
16321 x_run_acctd_alloc => l_run_acctd_alloc,
16322 x_run_chrg_amt => l_run_chrg_amt,
16323 x_run_chrg_alloc => l_run_chrg_alloc,
16324 x_run_chrg_acctd_amt => l_run_chrg_acctd_amt,
16325 x_run_chrg_acctd_alloc => l_run_chrg_acctd_alloc,
16326 x_run_frt_amt => l_run_frt_amt,
16327 x_run_frt_alloc => l_run_frt_alloc,
16328 x_run_frt_acctd_amt => l_run_frt_acctd_amt,
16329 x_run_frt_acctd_alloc => l_run_frt_acctd_alloc,
16330 x_run_tax_amt => l_run_tax_amt,
16331 x_run_tax_alloc => l_run_tax_alloc,
16332 x_run_tax_acctd_amt => l_run_tax_acctd_amt,
16333 x_run_tax_acctd_alloc => l_run_tax_acctd_alloc,
16334 -- ED
16335 x_run_ed_amt => l_run_ed_amt,
16336 x_run_ed_alloc => l_run_ed_alloc,
16337 x_run_ed_acctd_amt => l_run_ed_acctd_amt,
16338 x_run_ed_acctd_alloc => l_run_ed_acctd_alloc,
16339 x_run_ed_chrg_amt => l_run_ed_chrg_amt,
16340 x_run_ed_chrg_alloc => l_run_ed_chrg_alloc,
16341 x_run_ed_chrg_acctd_amt => l_run_ed_chrg_acctd_amt,
16342 x_run_ed_chrg_acctd_alloc => l_run_ed_chrg_acctd_alloc,
16343 x_run_ed_frt_amt => l_run_ed_frt_amt,
16344 x_run_ed_frt_alloc => l_run_ed_frt_alloc,
16345 x_run_ed_frt_acctd_amt => l_run_ed_frt_acctd_amt,
16346 x_run_ed_frt_acctd_alloc => l_run_ed_frt_acctd_alloc,
16347 x_run_ed_tax_amt => l_run_ed_tax_amt,
16348 x_run_ed_tax_alloc => l_run_ed_tax_alloc,
16349 x_run_ed_tax_acctd_amt => l_run_ed_tax_acctd_amt,
16350 x_run_ed_tax_acctd_alloc => l_run_ed_tax_acctd_alloc,
16351 -- UNED
16352 x_run_uned_amt => l_run_uned_amt,
16353 x_run_uned_alloc => l_run_uned_alloc,
16354 x_run_uned_acctd_amt => l_run_uned_acctd_amt,
16355 x_run_uned_acctd_alloc => l_run_uned_acctd_alloc,
16356 x_run_uned_chrg_amt => l_run_uned_chrg_amt,
16357 x_run_uned_chrg_alloc => l_run_uned_chrg_alloc,
16358 x_run_uned_chrg_acctd_amt => l_run_uned_chrg_acctd_amt,
16359 x_run_uned_chrg_acctd_alloc => l_run_uned_chrg_acctd_alloc,
16360 x_run_uned_frt_amt => l_run_uned_frt_amt,
16361 x_run_uned_frt_alloc => l_run_uned_frt_alloc,
16362 x_run_uned_frt_acctd_amt => l_run_uned_frt_acctd_amt,
16363 x_run_uned_frt_acctd_alloc => l_run_uned_frt_acctd_alloc,
16364 x_run_uned_tax_amt => l_run_uned_tax_amt,
16365 x_run_uned_tax_alloc => l_run_uned_tax_alloc,
16366 x_run_uned_tax_acctd_amt => l_run_uned_tax_acctd_amt,
16367 x_run_uned_tax_acctd_alloc => l_run_uned_tax_acctd_alloc);
16368
16369 FORALL i IN l_tab.ROWID_ID.FIRST .. l_tab.ROWID_ID.LAST
16370 UPDATE AR_LINE_APP_DETAIL_GT
16371 SET taxable_amount = DECODE(activity_bucket, 'APP_TAX', l_tab.tl_tax_alloc_amt(i),
16372 'ADJ_TAX', l_tab.tl_tax_alloc_amt(i),
16373 'ED_TAX', l_tab.tl_ed_tax_alloc_amt(i),
16374 'UNED_TAX', l_tab.tl_uned_tax_alloc_amt(i)),
16375 taxable_acctd_amount = DECODE(activity_bucket, 'APP_TAX', l_tab.tl_tax_alloc_acctd_amt(i),
16376 'ADJ_TAX', l_tab.tl_tax_alloc_acctd_amt(i),
16377 'ED_TAX', l_tab.tl_ed_tax_alloc_acctd_amt(i),
16378 'UNED_TAX', l_tab.tl_uned_tax_alloc_acctd_amt(i))
16379 WHERE rowid = l_tab.ROWID_ID(i);
16380 END LOOP;
16381 CLOSE c_read_for_taxable;
16382
16383 IF PG_DEBUG = 'Y' THEN
16384 localdebug('arp_det_dist_pkg.update_taxable()-');
16385 END IF;
16386 EXCEPTION
16387 WHEN OTHERS THEN
16388 IF PG_DEBUG = 'Y' THEN
16389 localdebug(' EXCEPTION OTHERS update_taxable :'||SQLERRM);
16390 END IF;
16391 END update_taxable;
16392
16393
16394 PROCEDURE update_for_mrc_dist
16395 (p_gt_id IN VARCHAR2,
16396 p_customer_trx_id IN NUMBER,
16397 p_app_rec IN ar_receivable_applications%ROWTYPE,
16398 p_adj_rec IN ar_adjustments%ROWTYPE,
16399 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
16400 IS
16401 CURSOR c_mrc(p_acctd_adj_app_to IN NUMBER,
16402 p_acctd_app_from IN NUMBER,
16403 p_acctd_ed IN NUMBER,
16404 p_acctd_uned IN NUMBER,
16405 p_from_curr_code IN VARCHAR2)
16406 IS
16407 SELECT /*+INDEX (AR_LINE_APP_DETAIL_GT AR_LINE_APP_DETAIL_GT_N1)*/
16408 DECODE(activity_bucket, 'ADJ_LINE', 'ADJ',
16409 'ADJ_TAX' , 'ADJ',
16410 'ADJ_FRT' , 'ADJ',
16411 'ADJ_CHRG', 'ADJ',
16412 'APP_LINE', 'APP',
16413 'APP_TAX' , 'APP',
16414 'APP_FRT' , 'APP',
16415 'APP_CHRG', 'APP',
16416 'ED_LINE' , 'ED',
16417 'ED_TAX' , 'ED',
16418 'ED_FRT' , 'ED',
16419 'UNED_CHRG' , 'UNED',
16420 'UNED_LINE' , 'UNED',
16421 'UNED_TAX' , 'UNED',
16422 'UNED_FRT' , 'UNED',
16423 'UNED_CHRG' , 'UNED') groupe,
16424 /* ADJ and APP */
16425 --BASE
16426 --Base for acctd_amount MRC
16427 0,
16428 SUM(DECODE(activity_bucket,'APP_LINE',amount,
16429 'APP_TAX' ,amount,
16430 'APP_FRT' ,amount,
16431 'APP_CHRG',amount,
16432 'ADJ_LINE',amount,
16433 'ADJ_TAX' ,amount,
16434 'ADJ_FRT' ,amount,
16435 'ADJ_CHRG',amount,0)),
16436 --Base used for MRC
16437 0,
16438 0,
16439 --Base used for MRC from_acctd_amount
16440 0,
16441 SUM(DECODE(activity_bucket,'APP_LINE',amount,
16442 'APP_TAX' ,amount,
16443 'APP_FRT' ,amount,
16444 'APP_CHRG',amount,0)),
16445 --Base not used in MRC
16446 0,
16447 0,
16448 --ELEMENT
16449 --Element for APP/ADJ acctd_amount MRC
16450 0,
16451 DECODE(activity_bucket,'APP_LINE',amount,
16452 'APP_TAX' ,amount,
16453 'APP_FRT' ,amount,
16454 'APP_CHRG',amount,
16455 'ADJ_LINE',amount,
16456 'ADJ_TAX' ,amount,
16457 'ADJ_FRT' ,amount,
16458 'ADJ_CHRG',amount,0),
16459 --Element not used in MRC
16460 0,
16461 0,
16462 --Element used for MRC from_acctd_amount
16463 0,
16464 DECODE(activity_bucket,'APP_LINE',amount,
16465 'APP_TAX' ,amount,
16466 'APP_FRT' ,amount,
16467 'APP_CHRG',amount,0),
16468 --Element not used
16469 0,
16470 0,
16471 --AMOUNT TO ALLOCATED
16472 --bucket MRC allocated the acctd_amount
16473 0,
16474 p_acctd_adj_app_to,
16475 --bucket not used
16476 0,
16477 0,
16478 --bucket used allocated the from_acctd_amount
16479 0,
16480 p_acctd_app_from,
16481 --bucket not used MRC
16482 0,
16483 0,
16484 /* ED */
16485 --BASE
16486 --Base for acctd_amount MRC
16487 0,
16488 SUM(DECODE(activity_bucket,'ED_LINE',amount,
16489 'ED_TAX' ,amount,
16490 'ED_FRT' ,amount,
16491 'ED_CHRG',amount,0)),
16492 --Base not used
16493 0,
16494 0,
16495 --Base for from_acctd_amount - Not applicable for ED
16496 0,
16497 0,
16498 --Base not used
16499 0,
16500 0,
16501 --ELEMENT
16502 --Element for acctd_amount
16503 0,
16504 DECODE(activity_bucket,'ED_LINE',amount,
16505 'ED_TAX' ,amount,
16506 'ED_FRT' ,amount,
16507 'ED_CHRG',amount,0),
16508 --Element not used
16509 0,
16510 0,
16511 --Element used for from_acctd_amount - Not applicable for discount
16512 0,
16513 0,
16514 --Element not used
16515 0,
16516 0,
16517 --AMOUNT TO BE ALLOCATED
16518 --bucket for acctd_amount MRC
16519 0,
16520 p_acctd_ed,
16521 --bucket not used
16522 0,
16523 0,
16524 --bucket not used - Note:from_acctd_amount not applicable for discount
16525 0,
16526 0,
16527 --bucket not used
16528 0,
16529 0,
16530 /* UNED */
16531 --BASE
16532 --Base for acctd_amount MRC
16533 0,
16534 SUM(DECODE(activity_bucket,'UNED_LINE',amount,
16535 'UNED_TAX' ,amount,
16536 'UNED_FRT' ,amount,
16537 'UNED_CHRG',amount,0)),
16538 --Base not used
16539 0,
16540 0,
16541 --Base not used
16542 0,
16543 0,
16544 --Base not used
16545 0,
16546 0,
16547 --ELEMENT
16548 --Element for acctd_amount MRC
16549 0,
16550 DECODE(activity_bucket,'UNED_LINE',amount,
16551 'UNED_TAX' ,amount,
16552 'UNED_FRT' ,amount,
16553 'UNED_CHRG',amount,0),
16554 --Element not used
16555 0,
16556 0,
16557 --Element not used
16558 0,
16559 0,
16560 --Element not used
16561 0,
16562 0,
16563 --AMOUNT TO BE ALLOCATED
16564 --Bucket for acctd_amount
16565 0,
16566 p_acctd_uned,
16567 --Bucket not used
16568 0,
16569 0,
16570 --Bucket not used
16571 0,
16572 0,
16573 --Bucket not used
16574 0,
16575 0,
16576 --Currencies
16577 p_ae_sys_rec.base_currency BASE_CURRENCY ,
16578 g_cust_inv_rec.invoice_currency_code TO_CURRENCY ,
16579 --HYU
16580 p_from_curr_code FROM_CURRENCY,
16581 -- Rowid
16582 rowid
16583 FROM AR_LINE_APP_DETAIL_GT
16584 WHERE gt_id = p_gt_id
16585 AND ref_customer_trx_id = p_customer_trx_id
16586 ORDER BY DECODE(activity_bucket, 'ADJ_LINE', 'ADJ',
16587 'ADJ_TAX' , 'ADJ',
16588 'ADJ_FRT' , 'ADJ',
16589 'ADJ_CHRG', 'ADJ',
16590 'APP_LINE', 'APP',
16591 'APP_TAX' , 'APP',
16592 'APP_FRT' , 'APP',
16593 'APP_CHRG', 'APP',
16594 'ED_LINE' , 'ED',
16595 'ED_TAX' , 'ED',
16596 'ED_FRT' , 'ED',
16597 'UNED_CHRG' , 'UNED',
16598 'UNED_LINE' , 'UNED',
16599 'UNED_TAX' , 'UNED',
16600 'UNED_FRT' , 'UNED',
16601 'UNED_CHRG' , 'UNED');
16602
16603 l_tab pro_res_tbl_type;
16604
16605 l_group_tbl group_tbl_type;
16606 l_group VARCHAR2(900) := 'NOGROUP';
16607
16608 -- ADJ and APP
16609 l_run_amt NUMBER := 0;
16610 l_run_alloc NUMBER := 0;
16611 l_run_acctd_amt NUMBER := 0;
16612 l_run_acctd_alloc NUMBER := 0;
16613 l_alloc NUMBER := 0;
16614 l_acctd_alloc NUMBER := 0;
16615
16616 l_run_chrg_amt NUMBER := 0;
16617 l_run_chrg_alloc NUMBER := 0;
16618 l_run_chrg_acctd_amt NUMBER := 0;
16619 l_run_chrg_acctd_alloc NUMBER := 0;
16620 l_chrg_alloc NUMBER := 0;
16621 l_chrg_acctd_alloc NUMBER := 0;
16622
16623 l_run_frt_amt NUMBER := 0;
16624 l_run_frt_alloc NUMBER := 0;
16625 l_run_frt_acctd_amt NUMBER := 0;
16626 l_run_frt_acctd_alloc NUMBER := 0;
16627 l_frt_alloc NUMBER := 0;
16628 l_frt_acctd_alloc NUMBER := 0;
16629
16630 l_run_tax_amt NUMBER := 0;
16631 l_run_tax_alloc NUMBER := 0;
16632 l_run_tax_acctd_amt NUMBER := 0;
16633 l_run_tax_acctd_alloc NUMBER := 0;
16634 l_tax_alloc NUMBER := 0;
16635 l_tax_acctd_alloc NUMBER := 0;
16636
16637
16638 -- ED
16639 l_run_ed_amt NUMBER := 0;
16640 l_run_ed_alloc NUMBER := 0;
16641 l_run_ed_acctd_amt NUMBER := 0;
16642 l_run_ed_acctd_alloc NUMBER := 0;
16643 l_ed_alloc NUMBER := 0;
16644 l_ed_acctd_alloc NUMBER := 0;
16645
16646 l_run_ed_chrg_amt NUMBER := 0;
16647 l_run_ed_chrg_alloc NUMBER := 0;
16648 l_run_ed_chrg_acctd_amt NUMBER := 0;
16649 l_run_ed_chrg_acctd_alloc NUMBER := 0;
16650 l_ed_chrg_alloc NUMBER := 0;
16651 l_ed_chrg_acctd_alloc NUMBER := 0;
16652
16653 l_run_ed_frt_amt NUMBER := 0;
16654 l_run_ed_frt_alloc NUMBER := 0;
16655 l_run_ed_frt_acctd_amt NUMBER := 0;
16656 l_run_ed_frt_acctd_alloc NUMBER := 0;
16657 l_ed_frt_alloc NUMBER := 0;
16658 l_ed_frt_acctd_alloc NUMBER := 0;
16659
16660 l_run_ed_tax_amt NUMBER := 0;
16661 l_run_ed_tax_alloc NUMBER := 0;
16662 l_run_ed_tax_acctd_amt NUMBER := 0;
16663 l_run_ed_tax_acctd_alloc NUMBER := 0;
16664 l_ed_tax_alloc NUMBER := 0;
16665 l_ed_tax_acctd_alloc NUMBER := 0;
16666
16667 -- UNED
16668 l_run_uned_amt NUMBER := 0;
16669 l_run_uned_alloc NUMBER := 0;
16670 l_run_uned_acctd_amt NUMBER := 0;
16671 l_run_uned_acctd_alloc NUMBER := 0;
16672 l_uned_alloc NUMBER := 0;
16673 l_uned_acctd_alloc NUMBER := 0;
16674
16675 l_run_uned_chrg_amt NUMBER := 0;
16676 l_run_uned_chrg_alloc NUMBER := 0;
16677 l_run_uned_chrg_acctd_amt NUMBER := 0;
16678 l_run_uned_chrg_acctd_alloc NUMBER := 0;
16679 l_uned_chrg_alloc NUMBER := 0;
16680 l_uned_chrg_acctd_alloc NUMBER := 0;
16681
16682 l_run_uned_frt_amt NUMBER := 0;
16683 l_run_uned_frt_alloc NUMBER := 0;
16684 l_run_uned_frt_acctd_amt NUMBER := 0;
16685 l_run_uned_frt_acctd_alloc NUMBER := 0;
16686 l_uned_frt_alloc NUMBER := 0;
16687 l_uned_frt_acctd_alloc NUMBER := 0;
16688
16689 l_run_uned_tax_amt NUMBER := 0;
16690 l_run_uned_tax_alloc NUMBER := 0;
16691 l_run_uned_tax_acctd_amt NUMBER := 0;
16692 l_run_uned_tax_acctd_alloc NUMBER := 0;
16693 l_uned_tax_alloc NUMBER := 0;
16694 l_uned_tax_acctd_alloc NUMBER := 0;
16695
16696 l_exist BOOLEAN;
16697 l_last_fetch BOOLEAN;
16698
16699 l_acctd_adj_app_to NUMBER;
16700 l_acctd_app_from NUMBER;
16701 l_acctd_ed NUMBER;
16702 l_acctd_uned NUMBER;
16703 l_from_curr_code VARCHAR2(30);
16704
16705 BEGIN
16706 IF PG_DEBUG = 'Y' THEN
16707 localdebug('arp_det_dist_pkg.update_mrc_for_dist()+');
16708 END IF;
16709
16710 IF p_app_rec.receivable_application_id IS NOT NULL THEN
16711 l_acctd_adj_app_to:= NVL(p_app_rec.acctd_amount_applied_to,0) * -1;
16712 l_acctd_app_from := NVL(p_app_rec.acctd_amount_applied_from,0) * -1;
16713 l_acctd_ed := NVL(p_app_rec.acctd_earned_discount_taken,0) * -1;
16714 l_acctd_uned := NVL(p_app_rec.acctd_unearned_discount_taken,0) * -1;
16715 ELSIF p_adj_rec.adjustment_id IS NOT NULL THEN
16716 l_acctd_adj_app_to:= NVL(p_adj_rec.acctd_amount,0);
16717 l_acctd_app_from := 0;
16718 l_acctd_ed := 0;
16719 l_acctd_uned := 0;
16720 END IF;
16721
16722 IF p_app_rec.receivable_application_id IS NOT NULL THEN
16723 get_from_currency(p_app_rec => p_app_rec,
16724 x_from_curr_code => l_from_curr_code);
16725
16726 IF PG_DEBUG = 'Y' THEN
16727 localdebug(' l_from_curr_code :'||l_from_curr_code);
16728 END IF;
16729 END IF;
16730
16731 IF l_from_curr_code IS NULL THEN
16732 l_from_curr_code := p_ae_sys_rec.base_currency;
16733 END IF;
16734
16735 OPEN c_mrc(p_acctd_adj_app_to =>l_acctd_adj_app_to,
16736 p_acctd_app_from =>l_acctd_app_from ,
16737 p_acctd_ed =>l_acctd_ed ,
16738 p_acctd_uned =>l_acctd_uned ,
16739 p_from_curr_code =>l_from_curr_code);
16740 LOOP
16741 FETCH c_mrc BULK COLLECT INTO
16742 l_tab.GROUPE ,
16743 -- ADJ and APP
16744 -- Base
16745 l_tab.base_pro_amt ,
16746 l_tab.base_pro_acctd_amt ,
16747 l_tab.BASE_FRT_PRO_AMT ,
16748 l_tab.BASE_FRT_PRO_ACCTD_AMT ,
16749 l_tab.BASE_tax_PRO_AMT ,
16750 l_tab.BASE_tax_PRO_ACCTD_AMT ,
16751 l_tab.BASE_CHRG_PRO_AMT ,
16752 l_tab.BASE_CHRG_PRO_ACCTD_AMT ,
16753 -- Element numerator
16754 l_tab.elmt_pro_amt ,
16755 l_tab.elmt_pro_acctd_amt ,
16756 l_tab.ELMT_FRT_PRO_AMT ,
16757 l_tab.ELMT_FRT_PRO_ACCTD_AMT ,
16758 l_tab.ELMT_tax_PRO_AMT ,
16759 l_tab.ELMT_tax_PRO_ACCTD_AMT ,
16760 l_tab.ELMT_CHRG_PRO_AMT ,
16761 l_tab.ELMT_CHRG_PRO_ACCTD_AMT ,
16762 -- Amount to be allocated
16763 l_tab.buc_alloc_amt ,
16764 l_tab.buc_alloc_acctd_amt,
16765 l_tab.buc_frt_alloc_amt ,
16766 l_tab.buc_frt_alloc_acctd_amt,
16767 l_tab.buc_tax_alloc_amt ,
16768 l_tab.buc_tax_alloc_acctd_amt,
16769 l_tab.buc_chrg_alloc_amt ,
16770 l_tab.buc_chrg_alloc_acctd_amt,
16771 -- ED
16772 -- Base
16773 l_tab.base_ed_pro_amt ,
16774 l_tab.base_ed_pro_acctd_amt ,
16775 l_tab.BASE_ed_FRT_PRO_AMT ,
16776 l_tab.BASE_ed_FRT_PRO_ACCTD_AMT ,
16777 l_tab.BASE_ed_tax_PRO_AMT ,
16778 l_tab.BASE_ed_tax_PRO_ACCTD_AMT ,
16779 l_tab.BASE_ed_CHRG_PRO_AMT ,
16780 l_tab.BASE_ed_CHRG_PRO_ACCTD_AMT ,
16781 -- Element numerator
16782 l_tab.elmt_ed_pro_amt ,
16783 l_tab.elmt_ed_pro_acctd_amt ,
16784 l_tab.ELMT_ed_FRT_PRO_AMT ,
16785 l_tab.ELMT_ed_FRT_PRO_ACCTD_AMT ,
16786 l_tab.ELMT_ed_tax_PRO_AMT ,
16787 l_tab.ELMT_ed_tax_PRO_ACCTD_AMT ,
16788 l_tab.ELMT_ed_CHRG_PRO_AMT ,
16789 l_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT ,
16790 -- Amount to be allocated
16791 l_tab.buc_ed_alloc_amt ,
16792 l_tab.buc_ed_alloc_acctd_amt,
16793 l_tab.buc_ed_frt_alloc_amt ,
16794 l_tab.buc_ed_frt_alloc_acctd_amt,
16795 l_tab.buc_ed_tax_alloc_amt ,
16796 l_tab.buc_ed_tax_alloc_acctd_amt,
16797 l_tab.buc_ed_chrg_alloc_amt ,
16798 l_tab.buc_ed_chrg_alloc_acctd_amt,
16799 -- UNED
16800 -- Base
16801 l_tab.base_uned_pro_amt ,
16802 l_tab.base_uned_pro_acctd_amt ,
16803 l_tab.BASE_uned_FRT_PRO_AMT ,
16804 l_tab.BASE_uned_FRT_PRO_ACCTD_AMT ,
16805 l_tab.BASE_uned_tax_PRO_AMT ,
16806 l_tab.BASE_uned_tax_PRO_ACCTD_AMT ,
16807 l_tab.BASE_uned_CHRG_PRO_AMT ,
16808 l_tab.BASE_uned_CHRG_PRO_ACCTD_AMT ,
16809 -- Element numerator
16810 l_tab.elmt_uned_pro_amt ,
16811 l_tab.elmt_uned_pro_acctd_amt ,
16812 l_tab.ELMT_uned_FRT_PRO_AMT ,
16813 l_tab.ELMT_uned_FRT_PRO_ACCTD_AMT ,
16814 l_tab.ELMT_uned_tax_PRO_AMT ,
16815 l_tab.ELMT_uned_tax_PRO_ACCTD_AMT ,
16816 l_tab.ELMT_uned_CHRG_PRO_AMT ,
16817 l_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT ,
16818 -- Amount to be allocated
16819 l_tab.buc_uned_alloc_amt ,
16820 l_tab.buc_uned_alloc_acctd_amt,
16821 l_tab.buc_uned_frt_alloc_amt ,
16822 l_tab.buc_uned_frt_alloc_acctd_amt,
16823 l_tab.buc_uned_tax_alloc_amt ,
16824 l_tab.buc_uned_tax_alloc_acctd_amt,
16825 l_tab.buc_uned_chrg_alloc_amt ,
16826 l_tab.buc_uned_chrg_alloc_acctd_amt,
16827 --
16828 l_tab.BASE_CURRENCY ,
16829 l_tab.TO_CURRENCY ,
16830 l_tab.FROM_CURRENCY ,
16831 --
16832 l_tab.ROWID_ID LIMIT g_bulk_fetch_rows;
16833
16834 IF c_mrc%NOTFOUND THEN
16835 l_last_fetch := TRUE;
16836 END IF;
16837
16838 IF (l_tab.ROWID_ID.COUNT = 0) AND (l_last_fetch) THEN
16839 IF PG_DEBUG = 'Y' THEN
16840 localdebug('COUNT = 0 and LAST FETCH ');
16841 END IF;
16842 EXIT;
16843 END IF;
16844
16845 plsql_proration( x_tab => l_tab,
16846 x_group_tbl => l_group_tbl,
16847 -- ADJ and APP
16848 x_run_amt => l_run_amt,
16849 x_run_alloc => l_run_alloc,
16850 x_run_acctd_amt => l_run_acctd_amt,
16851 x_run_acctd_alloc => l_run_acctd_alloc,
16852 x_run_chrg_amt => l_run_chrg_amt,
16853 x_run_chrg_alloc => l_run_chrg_alloc,
16854 x_run_chrg_acctd_amt => l_run_chrg_acctd_amt,
16855 x_run_chrg_acctd_alloc => l_run_chrg_acctd_alloc,
16856 x_run_frt_amt => l_run_frt_amt,
16857 x_run_frt_alloc => l_run_frt_alloc,
16858 x_run_frt_acctd_amt => l_run_frt_acctd_amt,
16859 x_run_frt_acctd_alloc => l_run_frt_acctd_alloc,
16860 x_run_tax_amt => l_run_tax_amt,
16861 x_run_tax_alloc => l_run_tax_alloc,
16862 x_run_tax_acctd_amt => l_run_tax_acctd_amt,
16863 x_run_tax_acctd_alloc => l_run_tax_acctd_alloc,
16864 -- ED
16865 x_run_ed_amt => l_run_ed_amt,
16866 x_run_ed_alloc => l_run_ed_alloc,
16867 x_run_ed_acctd_amt => l_run_ed_acctd_amt,
16868 x_run_ed_acctd_alloc => l_run_ed_acctd_alloc,
16869 x_run_ed_chrg_amt => l_run_ed_chrg_amt,
16870 x_run_ed_chrg_alloc => l_run_ed_chrg_alloc,
16871 x_run_ed_chrg_acctd_amt => l_run_ed_chrg_acctd_amt,
16872 x_run_ed_chrg_acctd_alloc => l_run_ed_chrg_acctd_alloc,
16873 x_run_ed_frt_amt => l_run_ed_frt_amt,
16874 x_run_ed_frt_alloc => l_run_ed_frt_alloc,
16875 x_run_ed_frt_acctd_amt => l_run_ed_frt_acctd_amt,
16876 x_run_ed_frt_acctd_alloc => l_run_ed_frt_acctd_alloc,
16877 x_run_ed_tax_amt => l_run_ed_tax_amt,
16878 x_run_ed_tax_alloc => l_run_ed_tax_alloc,
16879 x_run_ed_tax_acctd_amt => l_run_ed_tax_acctd_amt,
16880 x_run_ed_tax_acctd_alloc => l_run_ed_tax_acctd_alloc,
16881 -- UNED
16882 x_run_uned_amt => l_run_uned_amt,
16883 x_run_uned_alloc => l_run_uned_alloc,
16884 x_run_uned_acctd_amt => l_run_uned_acctd_amt,
16885 x_run_uned_acctd_alloc => l_run_uned_acctd_alloc,
16886 x_run_uned_chrg_amt => l_run_uned_chrg_amt,
16887 x_run_uned_chrg_alloc => l_run_uned_chrg_alloc,
16888 x_run_uned_chrg_acctd_amt => l_run_uned_chrg_acctd_amt,
16889 x_run_uned_chrg_acctd_alloc => l_run_uned_chrg_acctd_alloc,
16890 x_run_uned_frt_amt => l_run_uned_frt_amt,
16891 x_run_uned_frt_alloc => l_run_uned_frt_alloc,
16892 x_run_uned_frt_acctd_amt => l_run_uned_frt_acctd_amt,
16893 x_run_uned_frt_acctd_alloc => l_run_uned_frt_acctd_alloc,
16894 x_run_uned_tax_amt => l_run_uned_tax_amt,
16895 x_run_uned_tax_alloc => l_run_uned_tax_alloc,
16896 x_run_uned_tax_acctd_amt => l_run_uned_tax_acctd_amt,
16897 x_run_uned_tax_acctd_alloc => l_run_uned_tax_acctd_alloc
16898 );
16899
16900 IF PG_DEBUG = 'Y' THEN
16901 localdebug(' update AR_LINE_APP_DETAIL_GT RSOB:'||p_ae_sys_rec.set_of_books_id);
16902 END IF;
16903 FORALL i IN l_tab.ROWID_ID.FIRST .. l_tab.ROWID_ID.LAST
16904 UPDATE AR_LINE_APP_DETAIL_GT a
16905 SET ACCTD_AMOUNT = DECODE(a.activity_bucket, 'APP_LINE', l_tab.tl_alloc_acctd_amt(i),
16906 'APP_TAX' , l_tab.tl_alloc_acctd_amt(i),
16907 'APP_FRT' , l_tab.tl_alloc_acctd_amt(i),
16908 'APP_CHRG', l_tab.tl_alloc_acctd_amt(i),
16909 'ADJ_LINE', l_tab.tl_alloc_acctd_amt(i),
16910 'ADJ_TAX' , l_tab.tl_alloc_acctd_amt(i),
16911 'ADJ_FRT' , l_tab.tl_alloc_acctd_amt(i),
16912 'ADJ_CHRG', l_tab.tl_alloc_acctd_amt(i),
16913 'ED_LINE', l_tab.tl_ed_alloc_acctd_amt(i),
16914 'ED_TAX' , l_tab.tl_ed_alloc_acctd_amt(i),
16915 'ED_FRT' , l_tab.tl_ed_alloc_acctd_amt(i),
16916 'ED_CHRG', l_tab.tl_ed_alloc_acctd_amt(i),
16917 'UNED_LINE', l_tab.tl_uned_alloc_acctd_amt(i),
16918 'UNED_TAX' , l_tab.tl_uned_alloc_acctd_amt(i),
16919 'UNED_FRT' , l_tab.tl_uned_alloc_acctd_amt(i),
16920 'UNED_CHRG', l_tab.tl_uned_alloc_acctd_amt(i)),
16921 FROM_ACCTD_AMOUNT= DECODE(a.activity_bucket, 'APP_LINE', l_tab.tl_tax_alloc_acctd_amt(i),
16922 'APP_TAX' , l_tab.tl_tax_alloc_acctd_amt(i),
16923 'APP_FRT' , l_tab.tl_tax_alloc_acctd_amt(i),
16924 'APP_CHRG', l_tab.tl_tax_alloc_acctd_amt(i),
16925 'ADJ_LINE', l_tab.tl_tax_alloc_acctd_amt(i),
16926 'ADJ_TAX' , l_tab.tl_tax_alloc_acctd_amt(i),
16927 'ADJ_FRT' , l_tab.tl_tax_alloc_acctd_amt(i),
16928 'ADJ_CHRG', l_tab.tl_tax_alloc_acctd_amt(i),
16929 'ED_LINE', l_tab.tl_ed_tax_alloc_acctd_amt(i),
16930 'ED_TAX' , l_tab.tl_ed_tax_alloc_acctd_amt(i),
16931 'ED_FRT' , l_tab.tl_ed_tax_alloc_acctd_amt(i),
16932 'ED_CHRG', l_tab.tl_ed_tax_alloc_acctd_amt(i),
16933 'UNED_LINE', l_tab.tl_uned_tax_alloc_acctd_amt(i),
16934 'UNED_TAX' , l_tab.tl_uned_tax_alloc_acctd_amt(i),
16935 'UNED_FRT' , l_tab.tl_uned_tax_alloc_acctd_amt(i),
16936 'UNED_CHRG', l_tab.tl_uned_tax_alloc_acctd_amt(i)),
16937 ledger_id = p_ae_sys_rec.set_of_books_id
16938 WHERE rowid = l_tab.ROWID_ID(i);
16939 IF PG_DEBUG = 'Y' THEN
16940 localdebug(' update iAR_LINE_APP_DETAIL_GT ');
16941 END IF;
16942
16943 END LOOP;
16944 CLOSE c_mrc;
16945 IF PG_DEBUG = 'Y' THEN
16946 localdebug('arp_det_dist_pkg.update_for_mrc_dist()-');
16947 END IF;
16948 END update_for_mrc_dist;
16949
16950
16951 --{For Cash Accrual Lazy update at posting
16952 --
16953 --Function to return next value to use as line_id
16954 --
16955 FUNCTION next_val(p_num IN NUMBER)
16956 RETURN NUMBER
16957 IS
16958 CURSOR c IS
16959 SELECT ar_cash_basis_distributions_s.NEXTVAL
16960 FROM DUAL;
16961 l_num NUMBER;
16962 BEGIN
16963 OPEN c;
16964 FETCH c INTO l_num;
16965 CLOSE c;
16966 RETURN (p_num + l_num);
16967 END;
16968
16969
16970
16971 PROCEDURE insert_ard_gt
16972 (p_gt_id IN VARCHAR2,
16973 x_exec_status OUT NOCOPY VARCHAR2)
16974 IS
16975 CURSOR c1 IS
16976 SELECT MAX(line_id)
16977 FROM ar_distributions_all;
16978 g_num NUMBER;
16979 l_rows NUMBER;
16980 BEGIN
16981 OPEN c1;
16982 FETCH c1 INTO g_num;
16983 IF c1%NOTFOUND THEN
16984 g_num := 0;
16985 END IF;
16986 CLOSE c1;
16987
16988 --UPDATE AR_LINE_APP_DETAIL_GT a SET
16989 --(a.DET_ID ) =
16990 --(SELECT next_val(g_num)
16991 -- FROM AR_LINE_APP_DETAIL_GT b
16992 -- WHERE a.rowid = b.rowid
16993 -- AND a.gt_id = p_gt_id);
16994 --IF SQL%FOUND THEN
16995 -- x_exec_status := 'Y';
16996 --
16997 -- Keep audit data in ar_cash_basis_distributions
16998 --
16999 -- Note the index unique index 'AR_CASH_BASIS_DISTRIBUTIONS_U2' built on the columns
17000 --RECEIVABLE_APPLICATION_ID
17001 --SOURCE
17002 --SOURCE_ID
17003 --TYPE
17004 --POSTING_CONTROL_ID
17005 --need to be dropped. Because the combination is no longer unique
17006 -- source_id --> adj_id 123
17007 -- type --> line for the adjustment is revenue on invoice and there are 2 rev line on the inv line 1 and line 2
17008 -- source --> ADJ
17009 -- For the potion od the adj on line 1 (123, LINE, ADJ)
17010 -- For the potion od the adj on line 2 (123, LINE, ADJ) the same. Therefore not unique
17011 -- Need investigate on perf. part of the code
17012
17013 INSERT INTO ar_cash_basis_dists_all
17014 ( CASH_BASIS_DISTRIBUTION_ID
17015 , CREATED_BY
17016 , CREATION_DATE
17017 , LAST_UPDATE_DATE
17018 , LAST_UPDATED_BY
17019 , LAST_UPDATE_LOGIN
17020 , PROGRAM_APPLICATION_ID
17021 , PROGRAM_ID
17022 , PROGRAM_UPDATE_DATE
17023 , RECEIVABLE_APPLICATION_ID
17024 , SOURCE
17025 , SOURCE_ID
17026 , TYPE
17027 , PAYMENT_SCHEDULE_ID
17028 , GL_DATE
17029 , CURRENCY_CODE
17030 , AMOUNT
17031 , ACCTD_AMOUNT
17032 , CODE_COMBINATION_ID
17033 , POSTING_CONTROL_ID
17034 , GL_POSTED_DATE
17035 , RECEIVABLE_APPLICATION_ID_CASH
17036 , ORG_ID
17037 , activity_bucket
17038 , ref_account_class
17039 , ref_customer_trx_id
17040 , ref_customer_trx_line_id
17041 , ref_cust_trx_line_gl_dist_id
17042 , ref_line_id
17043 -- BUG#4396273 removed the not approved columns
17044 , FROM_AMOUNT
17045 , FROM_ACCTD_AMOUNT
17046 , LEDGER_ID
17047 , BASE_CURRENCY
17048 )
17049 SELECT
17050 AR_CASH_BASIS_DISTRIBUTIONS_S.NEXTVAL -- cash_basis_distribution_id
17051 , lad.CREATED_BY -- created_by
17052 , lad.CREATION_DATE -- creation_date
17053 , lad.LAST_UPDATE_DATE -- last_update_date
17054 , lad.LAST_UPDATED_BY -- last_updated_by
17055 , lad.LAST_UPDATE_LOGIN -- last_update_login
17056 , 222 -- PROGRAM_APPLICATION_ID
17057 , 77777 -- PROGRAM_ID (batch upgrade cash basis at posting)
17058 , SYSDATE -- PROGRAM_UPDATE_DATE
17059 , lad.SOURCE_ID -- RECEIVABLE_APPLICATION_ID
17060 , 'RA' --SOURCE (ADJ or INV)
17061 , lad.SOURCE_ID --SOURCE_ID (used to be adj_id or ctlgd_id in 11i
17062 --for now line_id will be fix with adj_id
17063 , DECODE(lad.activity_bucket,'ED_LINE','LINE',
17064 'ED_TAX', 'TAX',
17065 'ED_CHRG','CHARGES',
17066 'ED_FRT' ,'FREIGHT',
17067 'UNED_LINE','LINE',
17068 'UNED_TAX','TAX',
17069 'UNED_CHRG','CHARGES',
17070 'UNED_FRT','FREIGHT',
17071 'ADJ_LINE','LINE',
17072 'ADJ_TAX','TAX',
17073 'ADJ_CHRG','CHARGES',
17074 'ADJ_FRT','FREIGHT',
17075 'APP_LINE','LINE',
17076 'APP_TAX','TAX',
17077 'APP_CHRG','CHARGES',
17078 'APP_FRT','FREIGHT') -- TYPE (LINE TAX FREIGHT CHARGES)
17079 , sch.payment_schedule_id -- PAYMENT_SCHEDULE_ID
17080 , sch.gl_date -- GL_DATE
17081 , lad.TO_CURRENCY -- CURRENCY_CODE
17082 , DECODE(lad.activity_bucket,'ED_LINE',lad.amount,
17083 'ED_TAX', lad.amount,
17084 'ED_CHRG',lad.amount,
17085 'ED_FRT' ,lad.amount,
17086 'UNED_LINE',lad.amount,
17087 'UNED_TAX',lad.amount,
17088 'UNED_CHRG',lad.amount,
17089 'UNED_FRT',lad.amount,
17090 'ADJ_LINE',lad.amount,
17091 'ADJ_TAX',lad.amount,
17092 'ADJ_CHRG',lad.amount,
17093 'ADJ_FRT',lad.amount,
17094 -1*lad.amount) --AMOUNT
17095 , DECODE(lad.activity_bucket,'ED_LINE',lad.acctd_amount,
17096 'ED_TAX', lad.acctd_amount,
17097 'ED_CHRG',lad.acctd_amount,
17098 'ED_FRT' ,lad.acctd_amount,
17099 'UNED_LINE',lad.acctd_amount,
17100 'UNED_TAX',lad.acctd_amount,
17101 'UNED_CHRG',lad.acctd_amount,
17102 'UNED_FRT',lad.acctd_amount,
17103 'ADJ_LINE',lad.acctd_amount,
17104 'ADJ_TAX',lad.acctd_amount,
17105 'ADJ_CHRG',lad.acctd_amount,
17106 'ADJ_FRT',lad.acctd_amount,
17107 -1* lad.acctd_amount) --ACCTD_AMOUNT
17108 , lad.CCID -- CODE_COMBINATION_ID
17109 , -9999 -- POSTING_CONTROL_ID -- We do maintain the posting control id in cash basis dists
17110 -- to verify if the posting has occured check app pst ctl id
17111 , SYSDATE -- GL_POSTED_DATE ( need to be reflag at the end by extract)
17112 , lad.SOURCE_ID -- RECEIVABLE_APPLICATION_ID_CASH
17113 , sch.ORG_ID -- org_id
17114 , lad.activity_bucket
17115 , lad.ref_account_class
17116 , lad.ref_customer_trx_id
17117 , lad.ref_customer_trx_line_id
17118 , lad.ref_cust_trx_line_gl_dist_id
17119 , lad.ref_line_id
17120 /* BUG#4396273 remove not approved columns*/
17121 --HYU Add the From column bach Attention schema changes
17122 , SIGN(DECODE(lad.activity_bucket,'ED_LINE',lad.acctd_amount,
17123 'ED_TAX', lad.acctd_amount,
17124 'ED_CHRG',lad.acctd_amount,
17125 'ED_FRT' ,lad.acctd_amount,
17126 'UNED_LINE',lad.acctd_amount,
17127 'UNED_TAX',lad.acctd_amount,
17128 'UNED_CHRG',lad.acctd_amount,
17129 'UNED_FRT',lad.acctd_amount,
17130 'ADJ_LINE',lad.acctd_amount,
17131 'ADJ_TAX',lad.acctd_amount,
17132 'ADJ_CHRG',lad.acctd_amount,
17133 'ADJ_FRT',lad.acctd_amount,
17134 -1* lad.acctd_amount)) * ABS(lad.from_amount) --FROM_AMOUNT
17135 , SIGN(DECODE(lad.activity_bucket,'ED_LINE',lad.acctd_amount,
17136 'ED_TAX', lad.acctd_amount,
17137 'ED_CHRG',lad.acctd_amount,
17138 'ED_FRT' ,lad.acctd_amount,
17139 'UNED_LINE',lad.acctd_amount,
17140 'UNED_TAX',lad.acctd_amount,
17141 'UNED_CHRG',lad.acctd_amount,
17142 'UNED_FRT',lad.acctd_amount,
17143 'ADJ_LINE',lad.acctd_amount,
17144 'ADJ_TAX',lad.acctd_amount,
17145 'ADJ_CHRG',lad.acctd_amount,
17146 'ADJ_FRT',lad.acctd_amount,
17147 -1* lad.acctd_amount)) * ABS(lad.from_acctd_amount) --FROM_ACCTD_AMOUNT
17148 , lad.ledger_id --LEDGER_ID
17149 , lad.base_currency --BASE_CURRENCY
17150 FROM AR_LINE_APP_DETAIL_GT lad,
17151 ar_payment_schedules_all sch
17152 WHERE lad.ref_customer_trx_id = sch.customer_trx_id
17153 AND lad.gt_id = p_gt_id;
17154 l_rows := sql%rowcount;
17155 IF PG_DEBUG = 'Y' THEN
17156 localdebug(' rows inserted = ' || l_rows);
17157 END IF;
17158 END;
17159
17160 --{Lazy upgrade at posting
17161 -- Modification, this is procedure will be called in downtime
17162 PROCEDURE prepare_for_ra
17163 ( p_gt_id IN NUMBER,
17164 p_app_rec IN ar_receivable_applications%ROWTYPE,
17165 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
17166 p_inv_cm IN VARCHAR2 DEFAULT 'I',
17167 p_cash_mfar IN VARCHAR2 DEFAULT 'CASH')
17168 IS
17169 CURSOR cu_trx(p_trx_id IN NUMBER) IS
17170 SELECT * FROM ra_customer_trx_all
17171 WHERE customer_trx_id = p_trx_id;
17172 l_trx_rec ra_customer_trx_all%ROWTYPE;
17173 l_exec_status VARCHAR2(10) := 'N';
17174 l_adj_rec ar_adjustments%ROWTYPE;
17175 l_app_rec ar_receivable_applications%ROWTYPE;
17176 next_app EXCEPTION;
17177 BEGIN
17178 --
17179 PG_DEBUG := 'N';
17180
17181 g_upgrade_mode := 'Y';
17182 g_currency_code := p_ae_sys_rec.base_currency;
17183 g_org_id := p_app_rec.org_id;
17184
17185 IF p_ae_sys_rec.sob_type = 'P' THEN
17186
17187 IF p_inv_cm = 'C' THEN
17188 OPEN cu_trx(p_trx_id => p_app_rec.customer_trx_id);
17189 ELSE
17190 OPEN cu_trx(p_trx_id => p_app_rec.applied_customer_trx_id);
17191 END IF;
17192 FETCH cu_trx INTO l_trx_rec;
17193 IF cu_trx%FOUND THEN
17194 g_cust_inv_rec.remittance_bank_account_id := l_trx_rec.remittance_bank_account_id;
17195 g_cust_inv_rec.override_remit_account_flag := l_trx_rec.override_remit_account_flag;
17196 g_cust_inv_rec.special_instructions := l_trx_rec.special_instructions;
17197 g_cust_inv_rec.remittance_batch_id := l_trx_rec.remittance_batch_id;
17198 g_cust_inv_rec.prepayment_flag := l_trx_rec.prepayment_flag;
17199 g_cust_inv_rec.ct_reference := l_trx_rec.ct_reference;
17200 g_cust_inv_rec.contract_id := l_trx_rec.contract_id;
17201 g_cust_inv_rec.bill_template_id := l_trx_rec.bill_template_id;
17202 g_cust_inv_rec.reversed_cash_receipt_id := l_trx_rec.reversed_cash_receipt_id;
17203 g_cust_inv_rec.interface_header_attribute7 := l_trx_rec.interface_header_attribute7;
17204 g_cust_inv_rec.interface_header_attribute8 := l_trx_rec.interface_header_attribute8;
17205 g_cust_inv_rec.interface_header_context := l_trx_rec.interface_header_context;
17206 g_cust_inv_rec.default_ussgl_trx_code_context := l_trx_rec.default_ussgl_trx_code_context;
17207 g_cust_inv_rec.drawee_bank_account_id := l_trx_rec.drawee_bank_account_id;
17208 g_cust_inv_rec.default_ussgl_transaction_code := l_trx_rec.default_ussgl_transaction_code;
17209 g_cust_inv_rec.recurred_from_trx_number := l_trx_rec.recurred_from_trx_number;
17210 g_cust_inv_rec.status_trx := l_trx_rec.status_trx;
17211 g_cust_inv_rec.doc_sequence_id := l_trx_rec.doc_sequence_id;
17212 g_cust_inv_rec.doc_sequence_value := l_trx_rec.doc_sequence_value;
17213 g_cust_inv_rec.paying_customer_id := l_trx_rec.paying_customer_id;
17214 g_cust_inv_rec.paying_site_use_id := l_trx_rec.paying_site_use_id;
17215 g_cust_inv_rec.related_batch_source_id := l_trx_rec.related_batch_source_id;
17216 g_cust_inv_rec.default_tax_exempt_flag := l_trx_rec.default_tax_exempt_flag;
17217 g_cust_inv_rec.created_from := l_trx_rec.created_from;
17218 g_cust_inv_rec.org_id := l_trx_rec.org_id;
17219 g_cust_inv_rec.request_id := l_trx_rec.request_id;
17220 g_cust_inv_rec.program_application_id := l_trx_rec.program_application_id;
17221 g_cust_inv_rec.program_id := l_trx_rec.program_id;
17222 g_cust_inv_rec.program_update_date := l_trx_rec.program_update_date;
17223 g_cust_inv_rec.finance_charges := l_trx_rec.finance_charges;
17224 g_cust_inv_rec.complete_flag := l_trx_rec.complete_flag;
17225 g_cust_inv_rec.posting_control_id := l_trx_rec.posting_control_id;
17226 g_cust_inv_rec.bill_to_address_id := l_trx_rec.bill_to_address_id;
17227 g_cust_inv_rec.ra_post_loop_number := l_trx_rec.ra_post_loop_number;
17228 g_cust_inv_rec.ship_to_address_id := l_trx_rec.ship_to_address_id;
17229 g_cust_inv_rec.credit_method_for_rules := l_trx_rec.credit_method_for_rules;
17230 g_cust_inv_rec.credit_method_for_installments := l_trx_rec.credit_method_for_installments;
17231 g_cust_inv_rec.receipt_method_id := l_trx_rec.receipt_method_id;
17232 g_cust_inv_rec.related_customer_trx_id := l_trx_rec.related_customer_trx_id;
17233 g_cust_inv_rec.invoicing_rule_id := l_trx_rec.invoicing_rule_id;
17234 g_cust_inv_rec.ship_via := l_trx_rec.ship_via;
17235 g_cust_inv_rec.ship_date_actual := l_trx_rec.ship_date_actual;
17236 g_cust_inv_rec.waybill_number := l_trx_rec.waybill_number;
17237 g_cust_inv_rec.fob_point := l_trx_rec.fob_point;
17238 g_cust_inv_rec.customer_bank_account_id := l_trx_rec.customer_bank_account_id;
17239 g_cust_inv_rec.printing_option := l_trx_rec.printing_option;
17240 g_cust_inv_rec.printing_count := l_trx_rec.printing_count;
17241 g_cust_inv_rec.printing_pending := l_trx_rec.printing_pending;
17242 g_cust_inv_rec.purchase_order := l_trx_rec.purchase_order;
17243 g_cust_inv_rec.purchase_order_revision := l_trx_rec.purchase_order_revision;
17244 g_cust_inv_rec.purchase_order_date := l_trx_rec.purchase_order_date;
17245 g_cust_inv_rec.customer_reference := l_trx_rec.customer_reference;
17246 g_cust_inv_rec.customer_reference_date := l_trx_rec.customer_reference_date;
17247 g_cust_inv_rec.comments := l_trx_rec.comments;
17248 g_cust_inv_rec.internal_notes := l_trx_rec.internal_notes;
17249 g_cust_inv_rec.exchange_rate_type := l_trx_rec.exchange_rate_type;
17250 g_cust_inv_rec.exchange_date := l_trx_rec.exchange_date;
17251 g_cust_inv_rec.exchange_rate := l_trx_rec.exchange_rate;
17252 g_cust_inv_rec.territory_id := l_trx_rec.territory_id;
17253 g_cust_inv_rec.invoice_currency_code := l_trx_rec.invoice_currency_code;
17254 g_cust_inv_rec.initial_customer_trx_id := l_trx_rec.initial_customer_trx_id;
17255 g_cust_inv_rec.agreement_id := l_trx_rec.agreement_id;
17256 g_cust_inv_rec.end_date_commitment := l_trx_rec.end_date_commitment;
17257 g_cust_inv_rec.start_date_commitment := l_trx_rec.start_date_commitment;
17258 g_cust_inv_rec.last_printed_sequence_num := l_trx_rec.last_printed_sequence_num;
17259 g_cust_inv_rec.attribute_category := l_trx_rec.attribute_category;
17260 g_cust_inv_rec.orig_system_batch_name := l_trx_rec.orig_system_batch_name;
17261 g_cust_inv_rec.customer_trx_id := l_trx_rec.customer_trx_id;
17262 g_cust_inv_rec.trx_number := l_trx_rec.trx_number;
17263 g_cust_inv_rec.cust_trx_type_id := l_trx_rec.cust_trx_type_id;
17264 g_cust_inv_rec.trx_date := l_trx_rec.trx_date;
17265 g_cust_inv_rec.set_of_books_id := l_trx_rec.set_of_books_id;
17266 g_cust_inv_rec.bill_to_contact_id := l_trx_rec.bill_to_contact_id;
17267 g_cust_inv_rec.batch_id := l_trx_rec.batch_id;
17268 g_cust_inv_rec.batch_source_id := l_trx_rec.batch_source_id;
17269 g_cust_inv_rec.reason_code := l_trx_rec.reason_code;
17270 g_cust_inv_rec.sold_to_customer_id := l_trx_rec.sold_to_customer_id;
17271 g_cust_inv_rec.sold_to_contact_id := l_trx_rec.sold_to_contact_id;
17272 g_cust_inv_rec.sold_to_site_use_id := l_trx_rec.sold_to_site_use_id;
17273 g_cust_inv_rec.bill_to_customer_id := l_trx_rec.bill_to_customer_id;
17274 g_cust_inv_rec.bill_to_site_use_id := l_trx_rec.bill_to_site_use_id;
17275 g_cust_inv_rec.ship_to_customer_id := l_trx_rec.ship_to_customer_id;
17276 g_cust_inv_rec.ship_to_contact_id := l_trx_rec.ship_to_contact_id;
17277 g_cust_inv_rec.ship_to_site_use_id := l_trx_rec.ship_to_site_use_id;
17278 g_cust_inv_rec.shipment_id := l_trx_rec.shipment_id;
17279 g_cust_inv_rec.remit_to_address_id := l_trx_rec.remit_to_address_id;
17280 g_cust_inv_rec.term_id := l_trx_rec.term_id;
17281 g_cust_inv_rec.term_due_date := l_trx_rec.term_due_date;
17282 g_cust_inv_rec.previous_customer_trx_id := l_trx_rec.previous_customer_trx_id;
17283 g_cust_inv_rec.primary_salesrep_id := l_trx_rec.primary_salesrep_id;
17284 g_cust_inv_rec.printing_original_date := l_trx_rec.printing_original_date;
17285 g_cust_inv_rec.printing_last_printed := l_trx_rec.printing_last_printed;
17286 g_cust_inv_rec.payment_server_order_num := l_trx_rec.payment_server_order_num;
17287 g_cust_inv_rec.approval_code := l_trx_rec.approval_code;
17288 g_cust_inv_rec.address_verification_code := l_trx_rec.address_verification_code;
17289 g_cust_inv_rec.old_trx_number := l_trx_rec.old_trx_number;
17290 g_cust_inv_rec.br_amount := l_trx_rec.br_amount;
17291 g_cust_inv_rec.br_unpaid_flag := l_trx_rec.br_unpaid_flag;
17292 g_cust_inv_rec.br_on_hold_flag := l_trx_rec.br_on_hold_flag;
17293 g_cust_inv_rec.drawee_id := l_trx_rec.drawee_id;
17294 g_cust_inv_rec.drawee_contact_id := l_trx_rec.drawee_contact_id;
17295 g_cust_inv_rec.drawee_site_use_id := l_trx_rec.drawee_site_use_id;
17296 ELSE
17297 RAISE next_app;
17298 END IF;
17299
17300 IF cu_trx%ISOPEN THEN
17301 CLOSE cu_trx;
17302 END IF;
17303
17304 IF p_inv_cm = 'C' THEN
17305 convert_ra_inv_to_cm
17306 ( p_inv_ra_rec => p_app_rec,
17307 p_cm_trx_id => g_cust_inv_rec.customer_trx_id,
17308 x_cm_ra_rec => l_app_rec,
17309 p_mode => 'BATCH',
17310 p_gt_id => p_gt_id);
17311 ELSE
17312 l_app_rec := p_app_rec;
17313 END IF;
17314
17315 conv_acctd_amt_upg(p_pay_adj => 'APP',
17316 p_adj_rec => l_adj_rec,
17317 p_app_rec => l_app_rec,
17318 p_ae_sys_rec => p_ae_sys_rec);
17319
17320 IF g_line_ed <> 0 OR
17321 g_acctd_line_ed <> 0 OR
17322 g_chrg_ed <> 0 OR
17323 g_acctd_chrg_ed <> 0 OR
17324 g_frt_ed <> 0 OR
17325 g_acctd_frt_ed <> 0 OR
17326 g_tax_ed <> 0 OR
17327 g_acctd_tax_ed <> 0
17328 THEN
17329 g_ed_req := 'Y';
17330 ELSE
17331 g_ed_req := 'N';
17332 END IF;
17333
17334
17335 IF g_line_uned <> 0 OR
17336 g_acctd_line_uned <> 0 OR
17337 g_chrg_uned <> 0 OR
17338 g_acctd_chrg_uned <> 0 OR
17339 g_frt_uned <> 0 OR
17340 g_acctd_frt_uned <> 0 OR
17341 g_tax_uned <> 0 OR
17342 g_acctd_tax_uned <> 0
17343 THEN
17344 g_uned_req := 'Y';
17345 ELSE
17346 g_uned_req := 'N';
17347 END IF;
17348
17349 IF p_cash_mfar = 'CASH' THEN
17350
17351 IF PG_DEBUG = 'Y' THEN
17352 localdebug('p_gt_id:'||p_gt_id);
17353 END IF;
17354
17355 UPDATE RA_AR_GT SET
17356 tl_alloc_amt = DECODE(account_class,'REV' ,g_line_applied,
17357 'INVOICE' ,g_line_applied,0)
17358 , tl_alloc_acctd_amt = DECODE(account_class,'REV' ,g_acctd_line_applied,
17359 'INVOICE' ,g_acctd_line_applied,0)
17360 , tl_chrg_alloc_amt = DECODE(account_class,'CHARGES' ,g_chrg_applied,
17361 'INVOICE' ,g_chrg_applied,0)
17362 , tl_chrg_alloc_acctd_amt = DECODE(account_class,'CHARGES' ,g_acctd_chrg_applied,
17363 'INVOICE' ,g_acctd_chrg_applied,0)
17364 , tl_frt_alloc_amt = DECODE(account_class,'FREIGHT' ,g_frt_applied,
17365 'INVOICE' ,g_frt_applied,0)
17366 , tl_frt_alloc_acctd_amt = DECODE(account_class,'FREIGHT' ,g_acctd_frt_applied,
17367 'INVOICE' ,g_acctd_frt_applied,0)
17368 , tl_tax_alloc_amt = DECODE(account_class,'TAX' ,g_tax_applied,
17369 'INVOICE' ,g_tax_applied,0)
17370 , tl_tax_alloc_acctd_amt = DECODE(account_class,'TAX' ,g_acctd_tax_applied,
17371 'INVOICE' ,g_acctd_tax_applied,0)
17372 --
17373 , tl_ed_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_line_ed,0),0)
17374 , tl_ed_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_acctd_line_ed,0),0)
17375 , tl_ed_chrg_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_chrg_ed,0),0)
17376 , tl_ed_chrg_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_acctd_chrg_ed,0),0)
17377 , tl_ed_frt_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_frt_ed,0),0)
17378 , tl_ed_frt_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_acctd_frt_ed,0),0)
17379 , tl_ed_tax_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_tax_ed,0),0)
17380 , tl_ed_tax_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_acctd_tax_ed,0),0)
17381 --
17382 , tl_uned_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_line_uned,0),0)
17383 , tl_uned_alloc_acctd_amt= DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_acctd_line_uned,0),0)
17384 , tl_uned_chrg_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_chrg_uned,0),0)
17385 , tl_uned_chrg_alloc_acctd_amt= DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_acctd_chrg_uned,0),0)
17386 , tl_uned_frt_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_frt_uned,0),0)
17387 , tl_uned_frt_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_acctd_frt_uned,0),0)
17388 , tl_uned_tax_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_tax_uned,0),0)
17389 , tl_uned_tax_alloc_acctd_amt =DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_acctd_tax_uned,0),0)
17390 --
17391 , gt_id = p_gt_id
17392 , source_id = p_app_rec.receivable_application_id
17393 , source_table ='RA'
17394 , base_currency = p_ae_sys_rec.base_currency
17395 WHERE ref_customer_trx_id = g_cust_inv_rec.customer_trx_id;
17396
17397 UPDATE ar_base_dist_amts_gt
17398 set gt_id = p_gt_id
17399 , source_id = p_app_rec.receivable_application_id
17400 , source_table ='RA'
17401 WHERE ref_customer_trx_id = g_cust_inv_rec.customer_trx_id;
17402
17403
17404 ELSIF p_cash_mfar = 'MFAR' THEN
17405
17406 UPDATE RA_AR_GT SET
17407 tl_alloc_amt = DECODE(account_class,'REV' ,g_line_applied,0)
17408 ,tl_alloc_acctd_amt = DECODE(account_class,'REV' ,g_acctd_line_applied,0)
17409 ,tl_chrg_alloc_amt = g_chrg_applied
17410 ,tl_chrg_alloc_acctd_amt = g_acctd_chrg_applied
17411 ,tl_frt_alloc_amt = DECODE(account_class,'FREIGHT' ,g_frt_applied,0)
17412 ,tl_frt_alloc_acctd_amt = DECODE(account_class,'FREIGHT' ,g_acctd_frt_applied,0)
17413 ,tl_tax_alloc_amt = DECODE(account_class,'TAX' ,g_tax_applied,0)
17414 ,tl_tax_alloc_acctd_amt = DECODE(account_class,'TAX' ,g_acctd_tax_applied,0)
17415 --
17416 ,tl_ed_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_line_ed,0),0)
17417 ,tl_ed_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_acctd_line_ed,0),0)
17418 ,tl_ed_chrg_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_chrg_ed,0),0)
17419 ,tl_ed_chrg_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_acctd_chrg_ed,0),0)
17420 ,tl_ed_frt_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_frt_ed,0),0)
17421 ,tl_ed_frt_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_acctd_frt_ed,0),0)
17422 ,tl_ed_tax_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_tax_ed,0),0)
17423 ,tl_ed_tax_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_acctd_tax_ed,0),0)
17424 --
17425 ,tl_uned_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_line_uned,0),0)
17426 ,tl_uned_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_acctd_line_uned,0),0)
17427 ,tl_uned_chrg_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_chrg_uned,0),0)
17428 ,tl_uned_chrg_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_acctd_chrg_uned,0),0)
17429 ,tl_uned_frt_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_frt_uned,0),0)
17430 ,tl_uned_frt_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_acctd_frt_uned,0),0)
17431 ,tl_uned_tax_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_tax_uned,0),0)
17432 ,tl_uned_tax_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_acctd_tax_uned,0),0)
17433 --
17434 ,gt_id = p_gt_id
17435 ,source_id = p_app_rec.receivable_application_id
17436 ,source_table = 'RA'
17437 ,base_currency = p_ae_sys_rec.base_currency
17438 WHERE ref_customer_trx_id = g_cust_inv_rec.customer_trx_id;
17439
17440 UPDATE ar_base_dist_amts_gt
17441 set gt_id = p_gt_id
17442 , source_id = p_app_rec.receivable_application_id
17443 , source_table ='RA'
17444 WHERE ref_customer_trx_id = g_cust_inv_rec.customer_trx_id;
17445
17446 END IF;
17447
17448 -- delete from ra_ar;
17449 -- insert into ra_ar select * from ra_ar_gt;
17450
17451
17452 --g_se_gt_id := USERENV('SESSIONID');
17453
17454 update_dist
17455 (p_gt_id => p_gt_id,
17456 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
17457 p_ae_sys_rec => p_ae_sys_rec);
17458
17459 create_split_distribution
17460 (p_pay_adj => 'APP',
17461 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
17462 p_gt_id => p_gt_id,
17463 p_app_level => 'RL',
17464 p_ae_sys_rec => p_ae_sys_rec);
17465
17466 update_from_gt
17467 (p_from_amt => p_app_rec.amount_applied_from,
17468 p_from_acctd_amt => p_app_rec.acctd_amount_applied_from,
17469 p_ae_sys_rec => p_ae_sys_rec,
17470 p_app_rec => l_app_rec,
17471 p_gt_id => p_gt_id);
17472
17473
17474 insert_ard_gt(p_gt_id => p_gt_id,
17475 x_exec_status =>l_exec_status );
17476
17477 --IF l_exec_status = 'Y' THEN
17478 -- UPDATE ar_receivable_applications_all
17479 -- SET upgrade_method = 'R12_11ICASH_POST'
17480 -- WHERE receivable_application_id = p_app_rec.receivable_application_id;
17481 --END IF;
17482
17483
17484 END IF;
17485
17486 EXCEPTION
17487 WHEN next_app THEN NULL;
17488 END;
17489
17490 -- OLTP legacy transaction with 11I adjustments
17491
17492 PROCEDURE check_legacy_status
17493 (p_trx_id IN NUMBER,
17494 p_adj_id IN NUMBER DEFAULT NULL,
17495 p_app_id IN NUMBER DEFAULT NULL,
17496 x_11i_adj OUT NOCOPY VARCHAR2,
17497 x_mfar_adj OUT NOCOPY VARCHAR2,
17498 x_11i_app OUT NOCOPY VARCHAR2,
17499 x_mfar_app OUT NOCOPY VARCHAR2)
17500 IS
17501 CURSOR c IS
17502 SELECT tt.psa_trx_type_id psa_tt_id,
17503 (SELECT adjustment_id
17504 FROM ar_adjustments adj
17505 WHERE customer_trx_id = trx.customer_trx_id
17506 AND upgrade_method = '11I'
17507 AND rownum = 1) c11iadj,
17508 (SELECT adjustment_id
17509 FROM ar_adjustments adj
17510 WHERE customer_trx_id = trx.customer_trx_id
17511 AND upgrade_method = '11IMFAR'
17512 AND rownum = 1) mfadj,
17513 (SELECT app.receivable_application_id
17514 FROM ar_receivable_applications app
17515 WHERE app.applied_customer_trx_id = trx.customer_trx_id
17516 AND NVL(app.upgrade_method,'NULL') IN ('11I_MFAR_UPG','NULL')
17517 AND NVL(p_app_id,-9) <> app.receivable_application_id -- excluded the current app record
17518 AND rownum = 1) app11i,
17519 (SELECT receivable_application_id
17520 FROM ar_receivable_applications app
17521 WHERE app.customer_trx_id = trx.customer_trx_id
17522 AND NVL(app.upgrade_method,'NULL') IN ('11I_MFAR_UPG','NULL')
17523 AND NVL(p_app_id,-9) <> app.receivable_application_id -- excluded the current app record
17524 AND rownum = 1) cmapp11i
17525 FROM ra_customer_trx trx,
17526 psa_trx_types_all tt
17527 WHERE trx.customer_trx_id = p_trx_id
17528 AND trx.cust_trx_type_id = tt.psa_trx_type_id(+);
17529
17530 l_record c%ROWTYPE;
17531
17532 BEGIN
17533 IF PG_DEBUG = 'Y' THEN
17534 localdebug('arp_det_dist_pkg.check_legacy_status()+');
17535 END IF;
17536
17537 OPEN c;
17538 FETCH c INTO l_record;
17539 IF c%NOTFOUND THEN
17540 x_11i_adj := 'N';
17541 x_mfar_adj := 'N';
17542 x_11i_app := 'N';
17543 x_mfar_app := 'N';
17544 ELSE
17545 -- c11iadj and mfadj can never be 'Y' at the same time
17546 IF l_record.c11iadj IS NOT NULL THEN
17547 x_11i_adj := 'Y';
17548 ELSE
17549 x_11i_adj := 'N';
17550 END IF;
17551 IF l_record.mfadj IS NOT NULL THEN
17552 x_mfar_adj := 'Y';
17553 ELSE
17554 x_mfar_adj := 'N';
17555 END IF;
17556
17557 IF l_record.app11i IS NOT NULL OR l_record.cmapp11i IS NOT NULL THEN
17558 -- application does exist
17559 IF l_record.psa_tt_id IS NOT NULL THEN
17560 -- the app are mfar in 11i
17561 x_11i_app := 'N';
17562 x_mfar_app := 'Y';
17563 ELSE
17564 -- the app are accrual in 11i
17565 x_11i_app := 'Y';
17566 x_mfar_app := 'N';
17567 END IF;
17568 ELSE
17569 -- no application on this trx
17570 x_11i_app := 'N';
17571 x_mfar_app := 'N';
17572 END IF;
17573 END IF;
17574 CLOSE c;
17575 IF PG_DEBUG = 'Y' THEN
17576 localdebug(' 11i adj existence :'||x_11i_adj);
17577 localdebug(' 11i mfar adj existence:'||x_mfar_adj);
17578 localdebug(' 11i app existence :'||x_11i_app);
17579 localdebug(' 11i mfar app existence:'||x_mfar_app);
17580 localdebug('arp_det_dist_pkg.check_legacy_status()-');
17581 END IF;
17582 EXCEPTION
17583 WHEN OTHERS THEN
17584 IF PG_DEBUG = 'Y' THEN
17585 localdebug(' EXCEPTION OTHERS check_legacy_status :'||SQLERRM);
17586 END IF;
17587 END check_legacy_status;
17588
17589
17590
17591
17592 PROCEDURE check_lazy_apply_req
17593 (p_trx_id IN NUMBER,
17594 x_out_res OUT NOCOPY VARCHAR2)
17595 IS
17596 CURSOR c11I IS
17597 SELECT 'Y'
17598 FROM ar_adjustments adj
17599 WHERE adj.customer_trx_id = p_trx_id
17600 AND adj.status = 'A'
17601 AND adj.postable = 'Y'
17602 AND adj.upgrade_method IN ('11I','11IMFAR') ;
17603
17604 BEGIN
17605 IF PG_DEBUG = 'Y' THEN
17606 localdebug('arp_det_dist_pkg.check_lazy_apply_req()+');
17607 END IF;
17608 OPEN c11I;
17609 FETCH c11I INTO x_out_res;
17610 IF c11I%NOTFOUND THEN
17611 x_out_res := 'N';
17612 END IF;
17613 CLOSE c11I;
17614 IF PG_DEBUG = 'Y' THEN
17615 localdebug(' x_out_res : '|| x_out_res);
17616 localdebug('arp_det_dist_pkg.check_lazy_apply_req()-');
17617 END IF;
17618 END;
17619
17620
17621
17622 PROCEDURE check_mf_trx
17623 ( p_cust_trx_type_id IN NUMBER,
17624 x_out_res OUT NOCOPY VARCHAR2)
17625 IS
17626 CURSOR c1 IS
17627 SELECT 'Y'
17628 FROM psa_trx_types_all
17629 WHERE psa_trx_type_id = p_cust_trx_type_id;
17630 is_mf_trx VARCHAR2(1);
17631 BEGIN
17632 OPEN c1;
17633 FETCH c1 INTO is_mf_trx;
17634 IF c1%NOTFOUND THEN
17635 is_mf_trx := 'N';
17636 ELSE
17637 is_mf_trx := 'Y';
17638 END IF;
17639 CLOSE c1;
17640 x_out_res := is_mf_trx;
17641 END;
17642
17643
17644 PROCEDURE online_lazy_apply
17645 (p_customer_trx IN ra_customer_trx%ROWTYPE,
17646 p_app_rec IN ar_receivable_applications%ROWTYPE,
17647 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
17648 p_gt_id IN NUMBER,
17649 --Add the p_inv_cm flag
17650 p_inv_cm IN VARCHAR2 DEFAULT 'I')
17651 IS
17652 l_adj_rec ar_adjustments%ROWTYPE;
17653 l_app_rec ar_receivable_applications%ROWTYPE;
17654 BEGIN
17655 IF PG_DEBUG = 'Y' THEN
17656 localdebug('arp_det_dist_pkg.Online_lazy_apply()+');
17657 localdebug(' p_app_rec.applied_customer_trx_id : '||p_app_rec.applied_customer_trx_id);
17658 localdebug(' p_gt_id : '||p_gt_id);
17659 END IF;
17660
17661 ar_upgrade_cash_accrual.get_direct_inv_dist
17662 (p_mode => 'OLTP',
17663 p_trx_id => p_app_rec.applied_customer_trx_id,
17664 p_gt_id => p_gt_id);
17665
17666 ar_upgrade_cash_accrual.get_direct_adj_dist
17667 (p_mode => 'OLTP',
17668 p_trx_id => p_app_rec.applied_customer_trx_id,
17669 p_gt_id => p_gt_id);
17670
17671 ar_upgrade_cash_accrual.get_direct_inv_adj_dist
17672 (p_mode => 'OLTP',
17673 p_trx_id => p_app_rec.applied_customer_trx_id,
17674 p_gt_id => p_gt_id);
17675
17676 ar_upgrade_cash_accrual.update_base
17677 (p_gt_id => p_gt_id);
17678
17679 -- g_se_gt_id := USERENV('SESSIONID');
17680
17681 g_cust_inv_rec := p_customer_trx;
17682
17683 IF p_inv_cm = 'C' THEN
17684 convert_ra_inv_to_cm
17685 (p_inv_ra_rec => p_app_rec ,
17686 p_cm_trx_id => g_cust_inv_rec.customer_trx_id,
17687 x_cm_ra_rec => l_app_rec,
17688 p_mode => 'OLTP',
17689 p_gt_id => p_gt_id);
17690 ELSE
17691 l_app_rec := p_app_rec;
17692 END IF;
17693
17694 conv_acctd_amt(p_pay_adj => 'APP',
17695 p_adj_rec => l_adj_rec,
17696 p_app_rec => l_app_rec,
17697 p_ae_sys_rec => p_ae_sys_rec);
17698
17699
17700 IF g_line_ed <> 0 OR
17701 g_acctd_line_ed <> 0 OR
17702 g_chrg_ed <> 0 OR
17703 g_acctd_chrg_ed <> 0 OR
17704 g_frt_ed <> 0 OR
17705 g_acctd_frt_ed <> 0 OR
17706 g_tax_ed <> 0 OR
17707 g_acctd_tax_ed <> 0
17708 THEN
17709 g_ed_req := 'Y';
17710 ELSE
17711 g_ed_req := 'N';
17712 END IF;
17713
17714
17715 IF g_line_uned <> 0 OR
17716 g_acctd_line_uned <> 0 OR
17717 g_chrg_uned <> 0 OR
17718 g_acctd_chrg_uned <> 0 OR
17719 g_frt_uned <> 0 OR
17720 g_acctd_frt_uned <> 0 OR
17721 g_tax_uned <> 0 OR
17722 g_acctd_tax_uned <> 0
17723 THEN
17724 g_uned_req := 'Y';
17725 ELSE
17726 g_uned_req := 'N';
17727 END IF;
17728
17729
17730 UPDATE RA_AR_GT a SET
17731 ( tl_alloc_amt ,
17732 tl_alloc_acctd_amt ,
17733 tl_chrg_alloc_amt ,
17734 tl_chrg_alloc_acctd_amt,
17735 tl_frt_alloc_amt ,
17736 tl_frt_alloc_acctd_amt,
17737 tl_tax_alloc_amt ,
17738 tl_tax_alloc_acctd_amt,
17739 --
17740 tl_ed_alloc_amt ,
17741 tl_ed_alloc_acctd_amt ,
17742 tl_ed_chrg_alloc_amt ,
17743 tl_ed_chrg_alloc_acctd_amt,
17744 tl_ed_frt_alloc_amt ,
17745 tl_ed_frt_alloc_acctd_amt,
17746 tl_ed_tax_alloc_amt ,
17747 tl_ed_tax_alloc_acctd_amt,
17748 --
17749 tl_uned_alloc_amt ,
17750 tl_uned_alloc_acctd_amt ,
17751 tl_uned_chrg_alloc_amt ,
17752 tl_uned_chrg_alloc_acctd_amt,
17753 tl_uned_frt_alloc_amt ,
17754 tl_uned_frt_alloc_acctd_amt,
17755 tl_uned_tax_alloc_amt ,
17756 tl_uned_tax_alloc_acctd_amt,
17757 --
17758 gt_id,
17759 -- se_gt_id,
17760 source_id,
17761 source_table,
17762 base_currency) =
17763 (SELECT /*+INDEX (b ra_ar_n1)*/
17764 DECODE(account_class,'REV' ,g_line_applied,
17765 'INVOICE' ,g_line_applied,0) -- tl_alloc_amt
17766 , DECODE(account_class,'REV' ,g_acctd_line_applied,
17767 'INVOICE' ,g_acctd_line_applied,0) -- tl_alloc_acctd_amt
17768 , DECODE(account_class,'CHARGES' ,g_chrg_applied,
17769 'INVOICE' ,g_chrg_applied,0) -- tl_chrg_alloc_amt
17770 , DECODE(account_class,'CHARGES' ,g_acctd_chrg_applied,
17771 'INVOICE' ,g_acctd_chrg_applied,0) -- tl_chrg_alloc_acctd_amt
17772 , DECODE(account_class,'FREIGHT' ,g_frt_applied,
17773 'INVOICE' ,g_frt_applied,0) -- tl_frt_alloc_amt
17774 , DECODE(account_class,'FREIGHT' ,g_acctd_frt_applied,
17775 'INVOICE' ,g_acctd_frt_applied,0) -- tl_frt_alloc_acctd_amt
17776 , DECODE(account_class,'TAX' ,g_tax_applied,
17777 'INVOICE' ,g_tax_applied,0) -- tl_tax_alloc_amt
17778 , DECODE(account_class,'TAX' ,g_acctd_tax_applied,
17779 'INVOICE' ,g_acctd_tax_applied,0) -- tl_tax_alloc_acctd_amt
17780 --
17781 , DECODE(account_class,'REV' ,g_line_ed,0) -- tl_ed_alloc_amt
17782 , DECODE(account_class,'REV' ,g_acctd_line_ed,0) -- tl_ed_alloc_acctd_amt
17783 , DECODE(account_class,'CHARGES',g_chrg_ed,0) -- tl_ed_chrg_alloc_amt
17784 , DECODE(account_class,'CHARGES',g_acctd_chrg_ed,0) -- tl_ed_chrg_alloc_acctd_amt
17785 , DECODE(account_class,'FREIGHT',g_frt_ed,0) -- tl_ed_frt_alloc_amt
17786 , DECODE(account_class,'FREIGHT',g_acctd_frt_ed,0) -- tl_ed_frt_alloc_acctd_amt
17787 , DECODE(account_class,'TAX' ,g_tax_ed,0) -- tl_ed_tax_alloc_amt
17788 , DECODE(account_class,'TAX' ,g_acctd_tax_ed,0) -- tl_ed_tax_alloc_acctd_amt
17789
17790 , DECODE(account_class,'REV' ,g_line_uned,0) -- tl_uned_alloc_amt
17791 , DECODE(account_class,'REV' ,g_acctd_line_uned,0) -- tl_uned_alloc_acctd_amt
17792 , DECODE(account_class,'CHARGES',g_chrg_uned,0) -- tl_uned_chrg_alloc_amt
17793 , DECODE(account_class,'CHARGES',g_acctd_chrg_uned,0) -- tl_uned_chrg_alloc_acctd_amt
17794 , DECODE(account_class,'FREIGHT',g_frt_uned,0) -- tl_uned_frt_alloc_amt
17795 , DECODE(account_class,'FREIGHT',g_acctd_frt_uned,0) -- tl_uned_frt_alloc_acctd_amt
17796 , DECODE(account_class,'TAX' ,g_tax_uned,0) -- tl_uned_tax_alloc_amt
17797 , DECODE(account_class,'TAX' ,g_acctd_tax_uned,0) -- tl_uned_tax_alloc_acctd_amt
17798 , p_gt_id
17799 --, USERENV('SESSIONID')
17800 , p_app_rec.receivable_application_id
17801 , 'RA'
17802 , p_ae_sys_rec.base_currency
17803 FROM ra_ar_gt b
17804 WHERE a.rowid = b.rowid
17805 AND a.gt_id = p_gt_id);
17806
17807 -- delete from ra_ar;
17808 -- insert into ra_ar select * from ra_ar_gt;
17809
17810 update_dist
17811 (p_gt_id => p_gt_id,
17812 p_customer_trx_id => l_app_rec.applied_customer_trx_id,
17813 p_ae_sys_rec => p_ae_sys_rec);
17814
17815 create_split_distribution
17816 (p_pay_adj => 'APP',
17817 p_customer_trx_id => l_app_rec.applied_customer_trx_id,
17818 p_gt_id => p_gt_id,
17819 p_app_level => 'RL',
17820 p_ae_sys_rec => p_ae_sys_rec);
17821
17822 --{ For R12_11ICASH maintain from_acctd_amt
17823 update_from_gt
17824 (p_from_amt => l_app_rec.AMOUNT_APPLIED_FROM,
17825 p_from_acctd_amt => l_app_rec.ACCTD_AMOUNT_APPLIED_FROM,
17826 p_ae_sys_rec => p_ae_sys_rec,
17827 p_app_rec => p_app_rec);
17828 --}
17829
17830 --delete from hy_line_application_detail;
17831 --insert into hy_line_application_detail select * from AR_LINE_APP_DETAIL_GT;
17832
17833 IF g_mode_process = 'R12_MERGE' THEN
17834 UPDATE ar_receivable_applications_all
17835 SET upgrade_method = 'R12_MERGE'
17836 WHERE receivable_application_id = l_app_rec.receivable_application_id;
17837 ELSE
17838 UPDATE ar_receivable_applications_all
17839 SET upgrade_method = 'R12_11ICASH'
17840 WHERE receivable_application_id = l_app_rec.receivable_application_id;
17841 END IF;
17842
17843 IF PG_DEBUG = 'Y' THEN
17844 localdebug('arp_det_dist_pkg.Online_lazy_apply()-');
17845 END IF;
17846 EXCEPTION
17847 WHEN OTHERS THEN
17848 localdebug('OTHERS : Online_lazy_apply '||SQLERRM);
17849 RAISE;
17850 END;
17851 --}
17852
17853
17854
17855 /*-----------------------------------------------------------------------------+
17856 | Procedure get_latest_amount_remaining |
17857 +-----------------------------------------------------------------------------+
17858 | Parameter : |
17859 | p_customer_trx_id The invoice ID |
17860 | p_app_level Application Level (TRANSACTION/GROUP/LINE) |
17861 | p_group_id Group_id req when Application level is GROUP |
17862 | p_ctl_id customer_trx_line_id required when the application level |
17863 | is LINE |
17864 | OUT |
17865 | x_line_rem The remaining revenue amount for the level |
17866 | x_tax_rem The remaining tax amount for the level |
17867 | x_freight_rem The remaining freight amount for the level TRANSACTION only|
17868 | x_charges_rem The remaining charges amount for the level TRANSACTION only|
17869 +-----------------------------------------------------------------------------+
17870 | Action : |
17871 | Read the remaining amount on ra_customer_trx_lines_gt |
17872 +-----------------------------------------------------------------------------*/
17873 PROCEDURE get_latest_amount_remaining
17874 (p_customer_trx_id IN NUMBER,
17875 p_app_level IN VARCHAR2 DEFAULT 'TRANSACTION',
17876 p_source_data_key1 IN VARCHAR2 DEFAULT NULL,
17877 p_source_data_key2 IN VARCHAR2 DEFAULT NULL,
17878 p_source_data_key3 IN VARCHAR2 DEFAULT NULL,
17879 p_source_data_key4 IN VARCHAR2 DEFAULT NULL,
17880 p_source_data_key5 IN VARCHAR2 DEFAULT NULL,
17881 p_ctl_id IN NUMBER DEFAULT NULL,
17882 x_line_rem OUT NOCOPY NUMBER,
17883 x_tax_rem OUT NOCOPY NUMBER,
17884 x_freight_rem OUT NOCOPY NUMBER,
17885 x_charges_rem OUT NOCOPY NUMBER,
17886 x_return_status OUT NOCOPY VARCHAR2,
17887 x_msg_data OUT NOCOPY VARCHAR2,
17888 x_msg_count OUT NOCOPY NUMBER)
17889 IS
17890 CURSOR c_trx IS
17891 SELECT /*+INDEX (ra_customer_trx_lines_gt ra_customer_trx_lines_gt_n1)*/
17892 NVL(SUM(DECODE(line_type,'LINE',NVL(AMOUNT_DUE_REMAINING,0))),0) line_rem,
17893 NVL(SUM(DECODE(line_type,'TAX' ,NVL(AMOUNT_DUE_REMAINING,0))),0) tax_rem,
17894 NVL(SUM(DECODE(line_type,'LINE',NVL(CHRG_AMOUNT_REMAINING,0))),0) +
17895 NVL(SUM(DECODE(line_type,'CHARGES',NVL(AMOUNT_DUE_REMAINING,0))),0) chrg_rem,
17896 NVL(SUM(DECODE(line_type,'LINE',NVL(FRT_ADJ_REMAINING,0))),0) +
17897 NVL(SUM(DECODE(line_type,'FREIGHT',NVL(AMOUNT_DUE_REMAINING,0))),0) frt_rem
17898 FROM ra_customer_trx_lines_gt
17899 WHERE CUSTOMER_TRX_ID = p_customer_trx_id;
17900
17901 CURSOR c_line IS
17902 SELECT /*+INDEX (ra_customer_trx_lines_gt ra_customer_trx_lines_gt_n1)*/
17903 NVL(SUM(DECODE(line_type,'LINE',NVL(AMOUNT_DUE_REMAINING,0))),0) line_rem,
17904 NVL(SUM(DECODE(line_type,'TAX' ,NVL(AMOUNT_DUE_REMAINING,0))),0) tax_rem,
17905 NVL(SUM(DECODE(line_type,'LINE',NVL(CHRG_AMOUNT_REMAINING,0))),0) +
17906 NVL(SUM(DECODE(line_type,'CHARGES',NVL(AMOUNT_DUE_REMAINING,0))),0) chrg_rem,
17907 NVL(SUM(DECODE(line_type,'LINE',NVL(FRT_ADJ_REMAINING,0))),0) +
17908 NVL(SUM(DECODE(line_type,'FREIGHT',NVL(AMOUNT_DUE_REMAINING,0))),0) frt_rem
17909 FROM ra_customer_trx_lines_gt
17910 WHERE CUSTOMER_TRX_ID = p_customer_trx_id
17911 AND DECODE(line_type,'LINE',customer_trx_line_id, LINK_TO_CUST_TRX_LINE_ID) = p_ctl_id;
17912
17913 CURSOR c_gp IS
17914 SELECT /*+INDEX (ra_customer_trx_lines_gt ra_customer_trx_lines_gt_n1)*/
17915 NVL(SUM(DECODE(line_type,'LINE',NVL(AMOUNT_DUE_REMAINING,0))),0) line_rem,
17916 NVL(SUM(DECODE(line_type,'TAX' ,NVL(AMOUNT_DUE_REMAINING,0))),0) tax_rem,
17917 NVL(SUM(DECODE(line_type,'LINE',NVL(CHRG_AMOUNT_REMAINING,0))),0) +
17918 NVL(SUM(DECODE(line_type,'CHARGES',NVL(AMOUNT_DUE_REMAINING,0))),0) chrg_rem,
17919 NVL(SUM(DECODE(line_type,'LINE',NVL(FRT_ADJ_REMAINING,0))),0) +
17920 NVL(SUM(DECODE(line_type,'FREIGHT',NVL(AMOUNT_DUE_REMAINING,0))),0) frt_rem
17921 FROM ra_customer_trx_lines_gt
17922 WHERE CUSTOMER_TRX_ID = p_customer_trx_id
17923 AND source_data_key1 = p_source_data_key1
17924 AND source_data_key2 = p_source_data_key2
17925 AND source_data_key3 = p_source_data_key3
17926 AND source_data_key4 = p_source_data_key4
17927 AND source_data_key5 = p_source_data_key5;
17928 BEGIN
17929 IF PG_DEBUG = 'Y' THEN
17930 localdebug('arp_det_dist_pkg.get_latest_amount_remaining()+');
17931 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
17932 localdebug(' p_app_level :'||p_app_level);
17933 localdebug(' p_source_data_key1:'||p_source_data_key1);
17934 localdebug(' p_source_data_key2:'||p_source_data_key2);
17935 localdebug(' p_source_data_key3:'||p_source_data_key3);
17936 localdebug(' p_source_data_key4:'||p_source_data_key4);
17937 localdebug(' p_source_data_key5:'||p_source_data_key5);
17938 localdebug(' p_ctl_id :'||p_ctl_id);
17939 END IF;
17940 IF p_app_level = 'TRANSACTION' THEN
17941 OPEN c_trx;
17942 FETCH c_trx INTO x_line_rem, x_tax_rem, x_charges_rem, x_freight_rem;
17943 CLOSE c_trx;
17944 ELSIF p_app_level = 'GROUP' THEN
17945 OPEN c_gp;
17946 FETCH c_gp INTO x_line_rem, x_tax_rem, x_charges_rem, x_freight_rem;
17947 CLOSE c_gp;
17948 ELSIF p_app_level = 'LINE' THEN
17949 OPEN c_line;
17950 FETCH c_line INTO x_line_rem, x_tax_rem, x_charges_rem, x_freight_rem;
17951 CLOSE c_line;
17952 END IF;
17953
17954
17955 IF PG_DEBUG = 'Y' THEN
17956 localdebug(' x_line_rem :'||x_line_rem);
17957 localdebug(' x_tax_rem :'||x_tax_rem);
17958 localdebug(' x_freight_rem :'||x_freight_rem);
17959 localdebug(' x_charges_rem :'||x_charges_rem);
17960 localdebug('arp_det_dist_pkg.get_latest_amount_remaining()-');
17961 END IF;
17962 EXCEPTION
17963 WHEN NO_DATA_FOUND THEN
17964 IF PG_DEBUG = 'Y' THEN
17965 localdebug('EXCEPTION NO_DATA_FOUND get_latest_amount_remaining:'||SQLERRM);
17966 END IF;
17967 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR' );
17968 FND_MESSAGE.SET_TOKEN( 'TEXT', 'get_latest_amount_remaining NO_DATA_FOUND
17969 p_customer_trx_id :'||p_customer_trx_id||'
17970 p_app_level :'||p_app_level||'
17971 p_ctl_id :'||p_ctl_id||'
17972 p_source_data_key1:'||p_source_data_key1||'
17973 p_source_data_key2:'||p_source_data_key2||'
17974 p_source_data_key3:'||p_source_data_key3||'
17975 p_source_data_key4:'||p_source_data_key4||'
17976 p_source_data_key5:'||p_source_data_key5);
17977 FND_MSG_PUB.ADD;
17978 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
17979 p_count => x_msg_count,
17980 p_data => x_msg_data);
17981 x_return_status := FND_API.G_RET_STS_SUCCESS;
17982 WHEN OTHERS THEN
17983 IF PG_DEBUG = 'Y' THEN
17984 localdebug('EXCEPTION OTHERS get_latest_amount_remaining:'||SQLERRM);
17985 END IF;
17986 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR' );
17987 FND_MESSAGE.SET_TOKEN( 'TEXT', 'arp_process_det_pkg.get_latest_amount_remaining-'||SQLERRM );
17988 FND_MSG_PUB.ADD;
17989 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
17990 p_count => x_msg_count,
17991 p_data => x_msg_data);
17992 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
17993
17994 END get_latest_amount_remaining;
17995
17996
17997
17998 PROCEDURE convert_ra_inv_to_cm
17999 ( p_inv_ra_rec IN ar_receivable_applications%ROWTYPE,
18000 p_cm_trx_id IN NUMBER,
18001 x_cm_ra_rec IN OUT NOCOPY ar_receivable_applications%ROWTYPE,
18002 p_mode IN VARCHAR2 DEFAULT 'OLTP',
18003 p_gt_id IN VARCHAR2 DEFAULT NULL,
18004 p_from_llca IN VARCHAR2 DEFAULT 'N',
18005 p_upg_cm IN VARCHAR2 DEFAULT 'N')
18006 IS
18007 CURSOR cu_trx_balance(p_customer_trx_id IN NUMBER)
18008 IS
18009 SELECT a.Line_balance line_balance,
18010 a.Tax_Balance tax_balance,
18011 b.Frt_adj + b.Frt_ed + b.Frt_uned + b.Frt_app freight_balance,
18012 d.chrg_adj + d.chrg_app charges_balance,
18013 c.invoice_currency_code invoice_currency_code
18014 FROM
18015 (SELECT SUM(DECODE(line_type,'LINE',amount_due_remaining,0)) Line_Balance
18016 ,SUM(DECODE(line_type,'TAX',amount_due_remaining,0)) Tax_Balance
18017 ,customer_trx_id
18018 FROM ra_customer_trx_lines
18019 GROUP BY customer_trx_id) a,
18020 (SELECT SUM(DECODE(line_type,'LINE', frt_adj_remaining, 0)) Frt_adj,
18021 SUM(DECODE(line_type,'LINE', frt_ed_amount, 0)) Frt_ed,
18022 SUM(DECODE(line_type,'LINE', frt_uned_amount, 0)) Frt_uned,
18023 SUM(DECODE(line_type,'FREIGHT',amount_due_remaining, 0)) Frt_app,
18024 customer_trx_id
18025 FROM ra_customer_trx_lines
18026 GROUP BY customer_trx_id) b,
18027 (SELECT SUM(DECODE(line_type,'LINE', chrg_amount_remaining, 0)) chrg_adj,
18028 SUM(DECODE(line_type,'CHARGES',amount_due_remaining, 0)) chrg_app,
18029 customer_trx_id
18030 FROM ra_customer_trx_lines
18031 GROUP BY customer_trx_id) d,
18032 ar_payment_schedules c
18033 WHERE b.customer_trx_id = a.customer_trx_id
18034 AND a.customer_trx_id = c.customer_trx_id
18035 AND a.customer_trx_id = d.customer_trx_id
18036 AND c.customer_trx_id = p_customer_trx_id;
18037
18038
18039 CURSOR cu_cm_balance(p_customer_trx_id IN NUMBER, p_gt_id IN VARCHAR2)
18040 IS
18041 SELECT /*+INDEX (a ra_ar_n1) INDEX(ar_base_dist_amts_gt b)*/
18042 b.base_dist_amt line_balance,
18043 b.base_dist_tax_amt tax_balance,
18044 b.base_dist_frt_amt freight_balance,
18045 b.base_dist_chrg_amt charges_balance,
18046 a.to_currency invoice_currency_code
18047 FROM ra_ar_gt a,ar_base_dist_amts_gt b
18048 WHERE a.ref_customer_trx_id = p_customer_trx_id
18049 AND b.gt_id = a.gt_id
18050 AND b.gp_level = 'D'
18051 AND a.ref_customer_trx_id = b.ref_customer_trx_id
18052 AND a.ref_customer_trx_line_id = b.ref_customer_trx_line_id;
18053
18054
18055 CURSOR cu_trx_balance_nlb(p_customer_trx_id IN NUMBER)
18056 IS
18057 SELECT SUM(DECODE(a.line_type, 'LINE', sum_orig,0)) line_balance,
18058 SUM(DECODE(a.line_type, 'TAX' , sum_orig,0)) tax_balance,
18059 SUM(DECODE(a.line_type, 'FREIGHT' , sum_orig,0)) freight_balance,
18060 SUM(DECODE(a.line_type, 'CHARGES' , sum_orig,0)) charges_balance,
18061 a.invoice_currency_code invoice_currency_code
18062 FROM
18063 (SELECT SUM(ctlgd.AMOUNT) sum_orig,
18064 SUM(ctlgd.ACCTD_AMOUNT) sum_acctd_orig,
18065 ctl.line_type line_type,
18066 ctx.invoice_currency_code invoice_currency_code
18067 FROM ra_customer_trx ctx,
18068 ra_customer_trx_lines ctl,
18069 ra_cust_trx_line_gl_dist ctlgd
18070 WHERE ctx.customer_trx_id = p_customer_trx_id
18071 AND ctx.customer_trx_id = ctl.customer_trx_id
18072 AND ctl.customer_trx_line_id = ctlgd.customer_trx_line_id
18073 GROUP BY ctx.invoice_currency_code,
18074 ctl.line_type) a
18075 GROUP BY a.invoice_currency_code;
18076
18077
18078 -- l_rem_record cu_trx_balance%ROWTYPE;
18079 l_rem_line_balance NUMBER;
18080 l_rem_tax_balance NUMBER;
18081 l_rem_freight_balance NUMBER;
18082 l_rem_charges_balance NUMBER;
18083 l_rem_invoice_currency_code VARCHAR2(30);
18084 --
18085
18086 l_cm_ra_rec ar_receivable_applications%ROWTYPE;
18087 l_line_applied NUMBER;
18088 l_tax_applied NUMBER;
18089 l_freight_applied NUMBER;
18090 l_charges_applied NUMBER;
18091 l_base NUMBER;
18092 l_run_amt NUMBER;
18093 l_run_total NUMBER;
18094 l_inv_rec ra_customer_trx%ROWTYPE;
18095 no_rem_for_trx EXCEPTION;
18096 no_amount_remaining EXCEPTION;
18097 no_rem_for_trx_upg EXCEPTION;
18098
18099 BEGIN
18100 IF PG_DEBUG = 'Y' THEN
18101 localdebug('arp_det_dist_pkg.convert_ra_inv_to_cm()+');
18102 localdebug(' p_cm_trx_id :' || p_cm_trx_id);
18103 localdebug(' p_mode :' || p_mode);
18104 localdebug(' p_inv_ra_rec.amount_applied :' || p_inv_ra_rec.amount_applied);
18105 localdebug(' p_inv_ra_rec.amount_applied_from :' || p_inv_ra_rec.amount_applied_from);
18106 localdebug(' p_inv_ra_rec.acctd_amount_applied_to :' || p_inv_ra_rec.acctd_amount_applied_to);
18107 localdebug(' p_inv_ra_rec.acctd_amount_applied_from:' || p_inv_ra_rec.acctd_amount_applied_from);
18108 localdebug(' p_inv_ra_rec.line_applied :' || p_inv_ra_rec.line_applied);
18109 localdebug(' p_inv_ra_rec.tax_applied :' || p_inv_ra_rec.tax_applied);
18110 localdebug(' p_inv_ra_rec.freight_applied :' || p_inv_ra_rec.freight_applied);
18111 localdebug(' p_inv_ra_rec.receivables_charges_applied:' || p_inv_ra_rec.receivables_charges_applied);
18112 localdebug(' p_from_llca :' || p_from_llca);
18113 localdebug(' p_gt_id :' || p_gt_id);
18114 END IF;
18115
18116 x_cm_ra_rec := p_inv_ra_rec;
18117
18118 l_inv_rec.customer_trx_id := p_cm_trx_id;
18119
18120
18121 IF p_mode = 'OLTP' THEN
18122
18123 arp_det_dist_pkg.set_original_rem_amt
18124 (p_customer_trx => l_inv_rec,
18125 p_app_id => p_inv_ra_rec.receivable_application_id,
18126 --{HYUNLB
18127 p_from_llca => p_from_llca);
18128 --}
18129
18130 set_mode_process(p_customer_trx => l_inv_rec);
18131
18132 --{HYUNLB
18133 IF ( g_mode_process IN('R12_NLB','R12_MERGE') OR
18134 ( g_mode_process IN('R12_11ICASH') AND p_upg_cm = 'Y' )
18135 ) THEN
18136 IF PG_DEBUG = 'Y' THEN
18137 localdebug('opening cu_trx_balance_nlb');
18138 END IF;
18139
18140 OPEN cu_trx_balance_nlb(p_cm_trx_id);
18141 FETCH cu_trx_balance_nlb INTO -- l_rem_record;
18142 l_rem_line_balance ,
18143 l_rem_tax_balance ,
18144 l_rem_freight_balance,
18145 l_rem_charges_balance,
18146 l_rem_invoice_currency_code;
18147
18148 IF cu_trx_balance_nlb%NOTFOUND THEN
18149 RAISE no_rem_for_trx;
18150 END IF;
18151 CLOSE cu_trx_balance_nlb;
18152 IF PG_DEBUG = 'Y' THEN
18153 localdebug('closing cu_trx_balance_nlb');
18154 END IF;
18155 --}
18156 ELSIF g_mode_process IN ('R12','R12_11IMFAR') THEN
18157 IF PG_DEBUG = 'Y' THEN
18158 localdebug('opening cu_trx_balance');
18159 END IF;
18160
18161 OPEN cu_trx_balance(p_cm_trx_id);
18162 FETCH cu_trx_balance INTO -- l_rem_record;
18163 l_rem_line_balance ,
18164 l_rem_tax_balance ,
18165 l_rem_freight_balance,
18166 l_rem_charges_balance,
18167 l_rem_invoice_currency_code;
18168
18169 IF cu_trx_balance%NOTFOUND THEN
18170 RAISE no_rem_for_trx;
18171 END IF;
18172 CLOSE cu_trx_balance;
18173 IF PG_DEBUG = 'Y' THEN
18174 localdebug('closing cu_trx_balance');
18175 END IF;
18176
18177 ELSIF g_mode_process IN ('R12_11ICASH') and p_upg_cm = 'N' THEN
18178
18179 IF PG_DEBUG = 'Y' THEN
18180 localdebug('opening cu_cm_balance');
18181 END IF;
18182
18183 OPEN cu_cm_balance(p_cm_trx_id , p_gt_id) ;
18184 FETCH cu_cm_balance INTO -- l_rem_record;
18185 l_rem_line_balance ,
18186 l_rem_tax_balance ,
18187 l_rem_freight_balance,
18188 l_rem_charges_balance,
18189 l_rem_invoice_currency_code;
18190
18191 IF cu_cm_balance%NOTFOUND THEN
18192 RAISE no_rem_for_trx;
18193 END IF;
18194 CLOSE cu_cm_balance;
18195
18196 IF PG_DEBUG = 'Y' THEN
18197 localdebug('close cu_cm_balance');
18198 END IF;
18199
18200 END IF;
18201
18202 ELSIF p_mode = 'BATCH' THEN
18203
18204 IF PG_DEBUG = 'Y' THEN
18205 localdebug('opening cu_cm_balance for batch mode');
18206 END IF;
18207
18208 OPEN cu_cm_balance(p_cm_trx_id , p_gt_id) ;
18209 FETCH cu_cm_balance INTO -- l_rem_record;
18210 l_rem_line_balance ,
18211 l_rem_tax_balance ,
18212 l_rem_freight_balance,
18213 l_rem_charges_balance,
18214 l_rem_invoice_currency_code;
18215
18216 IF cu_cm_balance%NOTFOUND THEN
18217 RAISE no_rem_for_trx_upg;
18218 END IF;
18219 CLOSE cu_cm_balance;
18220
18221 IF PG_DEBUG = 'Y' THEN
18222 localdebug('close cu_cm_balance batch mode');
18223 END IF;
18224
18225 END IF;
18226
18227
18228 x_cm_ra_rec.amount_applied := p_inv_ra_rec.amount_applied * -1;
18229 x_cm_ra_rec.amount_applied_from := p_inv_ra_rec.amount_applied_from * -1;
18230 x_cm_ra_rec.acctd_amount_applied_to := p_inv_ra_rec.acctd_amount_applied_to * -1;
18231 x_cm_ra_rec.acctd_amount_applied_from := p_inv_ra_rec.acctd_amount_applied_from * -1;
18232 --
18233 l_base := NVL(l_rem_line_balance,0) +
18234 NVL(l_rem_tax_balance,0) +
18235 NVL(l_rem_freight_balance,0) +
18236 NVL(l_rem_charges_balance,0);
18237 --
18238 IF PG_DEBUG = 'Y' THEN
18239 localdebug('p_inv_ra_rec.amount_applied :' || p_inv_ra_rec.amount_applied);
18240 localdebug('p_inv_ra_rec.amount_applied_from :' || p_inv_ra_rec.amount_applied_from);
18241 localdebug('p_inv_ra_rec.acctd_amount_applied_to :' || p_inv_ra_rec.acctd_amount_applied_to);
18242 localdebug('p_inv_ra_rec.acctd_amount_applied_from :' || p_inv_ra_rec.acctd_amount_applied_from);
18243 END IF;
18244
18245 -- Bug14415571
18246 IF l_base = 0 THEN
18247 l_line_applied := p_inv_ra_rec.line_applied;
18248 l_tax_applied := p_inv_ra_rec.tax_applied;
18249 l_freight_applied := p_inv_ra_rec.freight_applied;
18250 l_charges_applied := p_inv_ra_rec.receivables_charges_applied;
18251 -- RAISE no_amount_remaining;
18252 ELSE
18253 --
18254 --
18255 l_run_amt := 0;
18256 l_run_total := 0;
18257
18258 -- line_applied
18259 IF PG_DEBUG = 'Y' THEN
18260 localdebug('LINE_APPLIED:');
18261 localdebug(' l_run_amt :' || l_run_amt);
18262 localdebug(' l_run_total :' || l_run_total);
18263 localdebug(' l_rem_line_balance :' || NVL(l_rem_line_balance,0));
18264 localdebug(' p_inv_ra_rec.amount_applied :' || NVL(p_inv_ra_rec.amount_applied,0));
18265 localdebug(' l_base :' || l_base);
18266 END IF;
18267 l_run_amt := l_run_amt + NVL(l_rem_line_balance,0);
18268 l_line_applied := CurrRound( l_run_amt * NVL(p_inv_ra_rec.amount_applied,0)
18269 / l_base, l_rem_invoice_currency_code ) - l_run_total;
18270 l_run_total := l_run_total + l_line_applied;
18271 IF PG_DEBUG = 'Y' THEN
18272 localdebug(' l_line_applied :' || l_line_applied);
18273
18274
18275
18276 -- tax_applied
18277 localdebug('TAX_APPLIED:');
18278 localdebug(' l_run_amt :' || l_run_amt);
18279 localdebug(' l_run_total :' || l_run_total);
18280 localdebug(' l_rem_tax_balance :' || NVL(l_rem_tax_balance,0));
18281 localdebug(' p_inv_ra_rec.amount_applied :' || NVL(p_inv_ra_rec.amount_applied,0));
18282 localdebug(' l_base :' || l_base);
18283 END IF;
18284
18285 l_run_amt := l_run_amt + NVL(l_rem_tax_balance,0);
18286 l_tax_applied := CurrRound( l_run_amt * NVL(p_inv_ra_rec.amount_applied,0)
18287 / l_base , l_rem_invoice_currency_code ) - l_run_total;
18288 l_run_total := l_run_total + l_tax_applied;
18289 IF PG_DEBUG = 'Y' THEN
18290 localdebug(' l_tax_applied :' || l_tax_applied);
18291
18292
18293
18294 -- freight_applied
18295 localdebug('FREIGHT_APPLIED:');
18296 localdebug(' l_run_amt :' || l_run_amt);
18297 localdebug(' l_run_total :' || l_run_total);
18298 localdebug(' l_rem_freight_balance :' || NVL(l_rem_freight_balance,0));
18299 localdebug(' p_inv_ra_rec.amount_applied :' || NVL(p_inv_ra_rec.amount_applied,0));
18300 localdebug(' l_base :' || l_base);
18301 END IF;
18302
18303 l_run_amt := l_run_amt + NVL(l_rem_freight_balance,0);
18304 l_freight_applied := CurrRound( l_run_amt * NVL(p_inv_ra_rec.amount_applied,0)
18305 / l_base , l_rem_invoice_currency_code ) - l_run_total;
18306 l_run_total := l_run_total + l_freight_applied;
18307 IF PG_DEBUG = 'Y' THEN
18308 localdebug(' l_freight_applied :' || l_freight_applied);
18309
18310
18311
18312 -- Charges_applied
18313 localdebug('CHARGES_APPLIED:');
18314 localdebug(' l_run_amt :' || l_run_amt);
18315 localdebug(' l_run_total :' || l_run_total);
18316 localdebug(' l_rem_charges_balance :' || NVL(l_rem_charges_balance,0));
18317 localdebug(' p_inv_ra_rec.amount_applied :' || NVL(p_inv_ra_rec.amount_applied,0));
18318 localdebug(' l_base :' || l_base);
18319 END IF;
18320 l_run_amt := l_run_amt + NVL(l_rem_charges_balance,0);
18321 l_charges_applied := CurrRound( l_run_amt * NVL(p_inv_ra_rec.amount_applied,0)
18322 / l_base , l_rem_invoice_currency_code ) - l_run_total;
18323 l_run_total := l_run_total + l_charges_applied;
18324 IF PG_DEBUG = 'Y' THEN
18325 localdebug(' l_charges_applied :' || l_charges_applied);
18326 END IF;
18327 END IF; -- Bug14415571
18328 -- Bug14415571
18329 IF PG_DEBUG = 'Y' THEN
18330 localdebug('l_line_applied :' || l_line_applied);
18331 localdebug('l_tax_applied :' || l_tax_applied);
18332 localdebug('l_freight_applied :' || l_freight_applied);
18333 localdebug('l_charges_applied :' || l_charges_applied);
18334 END IF;
18335
18336 x_cm_ra_rec.line_applied := l_line_applied * -1;
18337 x_cm_ra_rec.tax_applied := l_tax_applied * -1;
18338 x_cm_ra_rec.freight_applied := l_freight_applied * -1;
18339 x_cm_ra_rec.receivables_charges_applied := l_charges_applied * -1;
18340
18341 ARP_PROCESS_APPLICATION.g_line_applied := l_line_applied;
18342 ARP_PROCESS_APPLICATION.g_tax_applied := l_tax_applied;
18343 ARP_PROCESS_APPLICATION.g_frt_applied := l_freight_applied;
18344 ARP_PROCESS_APPLICATION.g_chrg_applied := l_charges_applied;
18345
18346 IF PG_DEBUG = 'Y' THEN
18347 localdebug(' x_cm_ra_rec.amount_applied :'||x_cm_ra_rec.amount_applied);
18348 localdebug(' x_cm_ra_rec.amount_applied_from :'||x_cm_ra_rec.amount_applied_from);
18349 localdebug(' x_cm_ra_rec.acctd_amount_applied_to :'||x_cm_ra_rec.acctd_amount_applied_to);
18350 localdebug(' x_cm_ra_rec.acctd_amount_applied_from :'||x_cm_ra_rec.acctd_amount_applied_from);
18351 localdebug(' x_cm_ra_rec.line_applied :'||x_cm_ra_rec.line_applied);
18352 localdebug(' x_cm_ra_rec.tax_applied :'||x_cm_ra_rec.tax_applied);
18353 localdebug(' x_cm_ra_rec.freight_applied :'||x_cm_ra_rec.freight_applied);
18354 localdebug(' x_cm_ra_rec.receivables_charges_applied :'||x_cm_ra_rec.receivables_charges_applied);
18355
18356 localdebug('arp_det_dist_pkg.convert_ra_inv_to_cm()-');
18357 END IF;
18358 EXCEPTION
18359 WHEN no_rem_for_trx_upg THEN
18360 IF PG_DEBUG = 'Y' THEN
18361 localdebug(' EXCEPTION no_rem_for_trx :'|| p_cm_trx_id);
18362 END IF;
18363 IF cu_cm_balance%ISOPEN THEN CLOSE cu_cm_balance; END IF;
18364
18365 WHEN no_rem_for_trx THEN
18366 IF PG_DEBUG = 'Y' THEN
18367 localdebug(' EXCEPTION no_rem_for_trx :'|| p_cm_trx_id);
18368 END IF;
18369 IF cu_trx_balance%ISOPEN THEN CLOSE cu_trx_balance; END IF;
18370 RAISE;
18371 WHEN no_amount_remaining THEN
18372 IF PG_DEBUG = 'Y' THEN
18373 localdebug(' EXCEPTION NO_AMOUNT_REMAINING FOR :'|| p_cm_trx_id);
18374 END IF;
18375 IF cu_trx_balance%ISOPEN THEN CLOSE cu_trx_balance; END IF;
18376 RAISE;
18377 WHEN OTHERS THEN
18378 IF PG_DEBUG = 'Y' THEN
18379 localdebug(' EXCEPTION OTHERS :'|| SQLERRM);
18380 END IF;
18381 IF cu_trx_balance%ISOPEN THEN CLOSE cu_trx_balance; END IF;
18382 RAISE;
18383 END convert_ra_inv_to_cm;
18384
18385 PROCEDURE set_interface_flag
18386 ( p_source_table IN VARCHAR2 DEFAULT NULL,
18387 p_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
18388 p_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
18389 p_freight_flag IN VARCHAR2 DEFAULT 'NORMAL',
18390 p_charges_flag IN VARCHAR2 DEFAULT 'NORMAL',
18391 p_ed_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
18392 p_ed_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
18393 p_uned_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
18394 p_uned_tax_flag IN VARCHAR2 DEFAULT 'NORMAL')
18395 IS
18396 BEGIN
18397 g_source_table := p_source_table;
18398 g_line_flag := p_line_flag;
18399 g_tax_flag := p_tax_flag;
18400 g_freight_flag := p_freight_flag;
18401 g_charges_flag := p_charges_flag;
18402 g_ed_line_flag := p_ed_line_flag;
18403 g_ed_tax_flag := p_ed_tax_flag;
18404 g_uned_line_flag := p_uned_line_flag;
18405 g_uned_tax_flag := p_uned_tax_flag;
18406 END set_interface_flag;
18407
18408 PROCEDURE adjustment_with_interface
18409 (p_customer_trx IN ra_customer_trx%ROWTYPE,
18410 p_adj_rec IN ar_adjustments%ROWTYPE,
18411 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
18412 p_gt_id IN NUMBER,
18413 p_line_flag IN VARCHAR2 DEFAULT 'INTERFACE',
18414 p_tax_flag IN VARCHAR2 DEFAULT 'INTERFACE',
18415 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
18416 x_return_status IN OUT NOCOPY VARCHAR2,
18417 x_msg_count IN OUT NOCOPY NUMBER,
18418 x_msg_data IN OUT NOCOPY VARCHAR2,
18419 p_llca_from_call IN VARCHAR2 DEFAULT NULL,
18420 p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%TYPE DEFAULT NULL)
18421 IS
18422 l_app_rec ar_receivable_applications%ROWTYPE;
18423 BEGIN
18424 IF PG_DEBUG = 'Y' THEN
18425 localdebug('arp_det_dist_pkg.adjustment_with_interface()+');
18426 localdebug(' p_gt_id :'||p_gt_id);
18427 localdebug(' p_adj_rec.amount :'|| p_adj_rec.amount);
18428 localdebug(' p_adj_rec.acctd_amount :'|| p_adj_rec.acctd_amount);
18429 localdebug(' p_customer_trx.invoice_currency_code :'|| p_customer_trx.invoice_currency_code);
18430 localdebug(' p_ae_sys_rec.base_currency :'|| p_ae_sys_rec.base_currency);
18431 localdebug(' p_llca_from_call :'|| p_llca_from_call);
18432 END IF;
18433
18434 x_return_status := fnd_api.g_ret_sts_success;
18435
18436 IF FND_API.to_Boolean(p_init_msg_list) THEN
18437 FND_MSG_PUB.initialize;
18438 END IF;
18439
18440 arp_process_det_pkg.verif_int_adj_line_tax(
18441 p_customer_trx => p_customer_trx,
18442 p_adj_rec => p_adj_rec,
18443 p_ae_sys_rec => p_ae_sys_rec,
18444 p_gt_id => p_gt_id,
18445 p_line_flag => p_line_flag,
18446 p_tax_flag => p_tax_flag,
18447 x_return_status => x_return_status);
18448
18449 IF x_return_status <> fnd_api.g_ret_sts_success THEN
18450 RAISE fnd_api.G_EXC_ERROR;
18451 END IF;
18452
18453 g_gt_id := p_gt_id;
18454
18455 set_interface_flag( p_source_table => 'ADJ',
18456 p_line_flag => p_line_flag,
18457 p_tax_flag => p_tax_flag);
18458
18459 g_cust_inv_rec := p_customer_trx;
18460
18461 set_mode_process(p_customer_trx => g_cust_inv_rec);
18462
18463 -- Added under Line Level Adjustment
18464 IF p_llca_from_call = 'Y' THEN
18465 set_original_rem_amt(
18466 p_customer_trx => g_cust_inv_rec,
18467 p_from_llca => 'Y');
18468 END IF;
18469
18470 copy_trx_lines(p_customer_trx_id => p_customer_trx.customer_trx_id,
18471 p_ae_sys_rec => p_ae_sys_rec,
18472 p_customer_trx_line_id => p_customer_trx_line_id);
18473
18474 conv_acctd_amt(p_pay_adj => 'ADJ',
18475 p_adj_rec => p_adj_rec,
18476 p_app_rec => l_app_rec,
18477 p_ae_sys_rec => p_ae_sys_rec);
18478
18479 get_invoice_line_info(p_gt_id => p_gt_id,
18480 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18481 p_ae_sys_rec => p_ae_sys_rec,
18482 p_mode => 'NORMAL');
18483
18484 prepare_group_for_proration(p_gt_id => p_gt_id,
18485 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18486 p_pay_adj => 'ADJ',
18487 p_adj_rec => p_adj_rec,
18488 p_app_rec => l_app_rec,
18489 p_ae_sys_rec => p_ae_sys_rec);
18490
18491 update_group_line(p_gt_id => p_gt_id,
18492 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18493 p_ae_sys_rec => p_ae_sys_rec);
18494
18495 prepare_trx_line_proration(p_gt_id => p_gt_id,
18496 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18497 p_pay_adj => 'ADJ',
18498 p_adj_rec => p_adj_rec,
18499 p_app_rec => l_app_rec,
18500 p_ae_sys_rec => p_ae_sys_rec);
18501
18502 update_line(p_gt_id => p_gt_id,
18503 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18504 p_ae_sys_rec => p_ae_sys_rec);
18505
18506 update_ctl_rem_orig(p_gt_id => p_gt_id,
18507 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18508 p_pay_adj => 'ADJ',
18509 p_ae_sys_rec => p_ae_sys_rec);
18510
18511 proration_adj_dist_trx(p_gt_id => p_gt_id,
18512 p_app_level => 'TRANSACTION',
18513 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18514 p_adj_rec => p_adj_rec,
18515 p_ae_sys_rec => p_ae_sys_rec);
18516
18517 create_final_split(p_customer_trx => p_customer_trx,
18518 p_app_rec => l_app_rec,
18519 p_adj_rec => p_adj_rec,
18520 p_ae_sys_rec => p_ae_sys_rec);
18521
18522 -- Added under Line Level Adjustment
18523 IF p_llca_from_call = 'Y' THEN
18524 final_update_inv_ctl_rem_orig(p_customer_trx => p_customer_trx);
18525 END IF;
18526
18527 IF g_mode_process IN ('R12_MERGE') THEN
18528 UPDATE ar_adjustments
18529 SET upgrade_method = 'R12_MERGE'
18530 WHERE adjustment_id = p_adj_rec.adjustment_id;
18531 ELSE
18532 UPDATE ar_adjustments
18533 SET upgrade_method = 'R12'
18534 WHERE adjustment_id = p_adj_rec.adjustment_id;
18535 END IF;
18536
18537 IF PG_DEBUG = 'Y' THEN
18538 localdebug('arp_det_dist_pkg.adjustment_with_interface()-');
18539 END IF;
18540 EXCEPTION
18541 WHEN fnd_api.G_EXC_ERROR THEN
18542 FND_MSG_PUB.Count_And_Get(
18543 p_encoded => FND_API.G_FALSE,
18544 p_count => x_msg_count,
18545 p_data => x_msg_data);
18546 IF PG_DEBUG = 'Y' THEN
18547 localdebug('fnd_api.G_EXC_ERROR IN adjustment_with_interface error count:'||x_msg_count);
18548 localdebug('last error:'||x_msg_data);
18549 END IF;
18550 RAISE;
18551 WHEN OTHERS THEN
18552 IF PG_DEBUG = 'Y' THEN
18553 localdebug('OTHERS IN adjustment_with_interface :'||SQLERRM);
18554 END IF;
18555 RAISE;
18556 END;
18557
18558
18559 PROCEDURE application_with_interface
18560 (p_customer_trx IN ra_customer_trx%ROWTYPE,
18561 p_app_rec IN ar_receivable_applications%ROWTYPE,
18562 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
18563 p_gt_id IN NUMBER,
18564 p_line_flag IN VARCHAR2 DEFAULT 'INTERFACE',
18565 p_tax_flag IN VARCHAR2 DEFAULT 'INTERFACE',
18566 p_ed_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
18567 p_ed_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
18568 p_uned_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
18569 p_uned_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
18570 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
18571 x_return_status IN OUT NOCOPY VARCHAR2,
18572 x_msg_count IN OUT NOCOPY NUMBER,
18573 x_msg_data IN OUT NOCOPY VARCHAR2)
18574 IS
18575 l_adj_rec ar_adjustments%ROWTYPE;
18576 BEGIN
18577 IF PG_DEBUG = 'Y' THEN
18578 localdebug('arp_det_dist_pkg.application_with_interface()+');
18579 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
18580 localdebug(' p_gt_id :'||p_gt_id);
18581 END IF;
18582
18583 x_return_status := fnd_api.g_ret_sts_success;
18584
18585 IF FND_API.to_Boolean(p_init_msg_list) THEN
18586 FND_MSG_PUB.initialize;
18587 END IF;
18588
18589 arp_process_det_pkg.verif_int_app_line_tax
18590 (p_customer_trx => p_customer_trx,
18591 p_app_rec => p_app_rec,
18592 p_ae_sys_rec => p_ae_sys_rec,
18593 p_gt_id => p_gt_id,
18594 p_line_flag => p_line_flag,
18595 p_tax_flag => p_tax_flag,
18596 p_ed_line_flag => p_ed_line_flag,
18597 p_ed_tax_flag => p_ed_tax_flag,
18598 p_uned_line_flag => p_uned_line_flag,
18599 p_uned_tax_flag => p_uned_tax_flag,
18600 x_return_status => x_return_status);
18601
18602 IF x_return_status <> fnd_api.g_ret_sts_success THEN
18603 RAISE fnd_api.G_EXC_ERROR;
18604 END IF;
18605
18606 g_gt_id := p_gt_id;
18607
18608 set_interface_flag( p_source_table => 'RA',
18609 p_line_flag => p_line_flag,
18610 p_tax_flag => p_tax_flag,
18611 p_ed_line_flag => p_ed_line_flag,
18612 p_ed_tax_flag => p_ed_tax_flag,
18613 p_uned_line_flag => p_uned_line_flag,
18614 p_uned_tax_flag => p_uned_tax_flag );
18615
18616 g_cust_inv_rec := p_customer_trx;
18617
18618 set_mode_process(p_customer_trx => g_cust_inv_rec);
18619
18620 IF g_mode_process = 'R12_11ICASH' THEN
18621 IF PG_DEBUG = 'Y' THEN
18622 localdebug('application_with_interface is not supported for 11i transaction with activities');
18623 END IF;
18624 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR');
18625 FND_MESSAGE.SET_TOKEN('TEXT','application_with_interface is not supported for 11i transaction with activities customer_trx_id :'||
18626 p_customer_trx.customer_trx_id);
18627 FND_MSG_PUB.ADD;
18628 x_return_status := fnd_api.g_ret_sts_success;
18629 RAISE fnd_api.G_EXC_ERROR;
18630 ELSE
18631
18632 copy_trx_lines(p_customer_trx_id => p_customer_trx.customer_trx_id,
18633 p_ae_sys_rec => p_ae_sys_rec);
18634
18635
18636 IF g_mode_process = 'R12_11IMFAR' THEN
18637
18638 x_return_status := fnd_api.g_ret_sts_success;
18639 IF PG_DEBUG = 'Y' THEN
18640 localdebug('application_with_interface is not supported for 11i MFAR transaction with activities');
18641 END IF;
18642 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR');
18643 FND_MESSAGE.SET_TOKEN('TEXT','application_with_interface is not supported for 11i MFAR transaction with activities customer_trx_id :'||
18644 p_customer_trx.customer_trx_id);
18645 FND_MSG_PUB.ADD;
18646 RAISE fnd_api.G_EXC_ERROR;
18647
18648 END IF;
18649 --}
18650
18651 conv_acctd_amt(p_pay_adj => 'APP',
18652 p_adj_rec => l_adj_rec,
18653 p_app_rec => p_app_rec,
18654 p_ae_sys_rec => p_ae_sys_rec);
18655
18656
18657 get_invoice_line_info(p_gt_id => p_gt_id,
18658 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18659 p_ae_sys_rec => p_ae_sys_rec,
18660 p_mode => 'NORMAL');
18661
18662 prepare_group_for_proration(p_gt_id => p_gt_id,
18663 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18664 p_pay_adj => 'APP',
18665 p_adj_rec => l_adj_rec,
18666 p_app_rec => p_app_rec,
18667 p_ae_sys_rec => p_ae_sys_rec);
18668
18669 update_group_line(p_gt_id => p_gt_id,
18670 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18671 p_ae_sys_rec => p_ae_sys_rec);
18672
18673 prepare_trx_line_proration(p_gt_id => p_gt_id,
18674 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18675 p_pay_adj => 'APP',
18676 p_adj_rec => l_adj_rec,
18677 p_app_rec => p_app_rec,
18678 p_ae_sys_rec => p_ae_sys_rec);
18679
18680 update_line(p_gt_id => p_gt_id,
18681 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18682 p_ae_sys_rec => p_ae_sys_rec);
18683
18684 update_ctl_rem_orig(p_gt_id => p_gt_id,
18685 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18686 p_pay_adj => 'APP',
18687 p_ae_sys_rec => p_ae_sys_rec);
18688
18689 proration_app_dist_trx(p_gt_id => p_gt_id,
18690 p_app_level => 'TRANSACTION',
18691 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
18692 p_app_rec => p_app_rec,
18693 p_ae_sys_rec => p_ae_sys_rec);
18694
18695
18696 END IF;
18697
18698 create_final_split(p_customer_trx => p_customer_trx,
18699 p_app_rec => p_app_rec,
18700 p_adj_rec => l_adj_rec,
18701 p_ae_sys_rec => p_ae_sys_rec);
18702
18703
18704 IF PG_DEBUG = 'Y' THEN
18705 localdebug('arp_det_dist_pkg.application_with_interface()-');
18706 END IF;
18707 EXCEPTION
18708 WHEN fnd_api.G_EXC_ERROR THEN
18709 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
18710 p_count => x_msg_count,
18711 p_data => x_msg_data);
18712 IF PG_DEBUG = 'Y' THEN
18713 localdebug('fnd_api.G_EXC_ERROR IN application_with_interface error count:'||x_msg_count);
18714 localdebug('last error:'||x_msg_data);
18715 END IF;
18716 RAISE;
18717 WHEN OTHERS THEN
18718 IF PG_DEBUG = 'Y' THEN
18719 localdebug('OTHERS IN application_with_interface :'||SQLERRM);
18720 END IF;
18721 RAISE;
18722 END application_with_interface;
18723
18724
18725
18726
18727 PROCEDURE Reconciliation
18728 (p_app_rec IN ar_receivable_applications%ROWTYPE,
18729 p_adj_rec IN ar_adjustments%ROWTYPE,
18730 p_activity_type IN VARCHAR2,
18731 p_gt_id IN VARCHAR2 DEFAULT NULL)
18732 IS
18733 CURSOR cu1(p_gt_id IN NUMBER) IS
18734 SELECT SUM(NVL(amount,0)),
18735 SUM(NVL(acctd_amount,0))
18736 FROM AR_LINE_APP_DETAIL_GT
18737 WHERE gt_id = p_gt_id;
18738 l_sum NUMBER;
18739 l_acctd_sum NUMBER;
18740
18741 CURSOR cu2(p_gt_id IN NUMBER) IS
18742 SELECT SUM(NVL(amount,0)),
18743 SUM(NVL(acctd_amount,0)),
18744 activity_bucket
18745 FROM AR_LINE_APP_DETAIL_GT
18746 WHERE gt_id = p_gt_id
18747 GROUP BY activity_bucket;
18748 l_activity VARCHAR2(30);
18749 l_act_amount NUMBER;
18750 l_acctd_act_amount NUMBER;
18751 l_gt_id NUMBER;
18752
18753 l_adj_amt NUMBER := 0;
18754 l_adj_acctd_amt NUMBER := 0;
18755 l_app_amt NUMBER := 0;
18756 l_app_acctd_amt NUMBER := 0;
18757 l_ed_amt NUMBER := 0;
18758 l_ed_acctd_amt NUMBER := 0;
18759 l_uned_amt NUMBER := 0;
18760 l_uned_acctd_amt NUMBER := 0;
18761
18762
18763 l_amt_tab DBMS_SQL.NUMBER_TABLE;
18764 l_acctd_amt_tab DBMS_SQL.NUMBER_TABLE;
18765 l_activity_tab DBMS_SQL.VARCHAR2_TABLE;
18766
18767 l_check_precision VARCHAR2(1) := 'N';
18768 l_acctd_amt_sum NUMBER;
18769
18770 CURSOR c_ctlgd_valid(p_customer_trx_id IN NUMBER) IS
18771 select sum(gld.AMOUNT) amount,sum(gld.ACCTD_AMOUNT) acctd_amount,
18772 min(nvl(ctl.AUTORULE_COMPLETE_FLAG,'Y')) AUTORULE_COMPLETE_FLAG,
18773 min(ct.invoice_currency_code) inv_currency,
18774 min(sob.currency_code) ledger_currency,
18775 ctl.LINE_TYPE
18776 from ra_customer_trx ct,
18777 ra_customer_trx_lines ctl,
18778 RA_CUST_TRX_LINE_GL_DIST gld,
18779 gl_sets_of_books sob,
18780 ar_system_parameters ars
18781 where ct.customer_trx_id = p_customer_trx_id
18782 and ctl.customer_trx_id = ct.customer_trx_id
18783 and gld.customer_trx_id = ctl.customer_trx_id
18784 and gld.customer_trx_line_id = ctl.customer_trx_line_id
18785 and gld.ACCOUNT_SET_FLAG = 'N'
18786 and ars.org_id = ct.org_id
18787 and ct.SET_OF_BOOKS_ID = sob.SET_OF_BOOKS_ID
18788 group by ctl.LINE_TYPE;
18789
18790 l_check_valid NUMBER DEFAULT 0;
18791 n NUMBER DEFAULT 1;
18792 l_ctlgd_valid_set c_ctlgd_valid%ROWTYPE;
18793
18794 l_line_flag VARCHAR2(1) DEFAULT 'N';
18795 l_tax_flag VARCHAR2(1) DEFAULT 'N';
18796 l_freight_flag VARCHAR2(1) DEFAULT 'N';
18797 l_charges_flag VARCHAR2(1) DEFAULT 'N';
18798
18799 l_customer_trx_id NUMBER;
18800
18801 BEGIN
18802 IF PG_DEBUG = 'Y' THEN
18803 localdebug('arp_det_dist_pkg.reconciliation()+');
18804 END IF;
18805
18806 IF p_activity_type = 'RA' AND p_app_rec.application_type = 'CM' THEN
18807 n :=2;
18808 END IF;
18809
18810 IF p_activity_type = 'ADJ' THEN
18811 l_customer_trx_id := p_adj_rec.customer_trx_id;
18812 ELSIF p_activity_type = 'RA' THEN
18813 l_customer_trx_id := p_app_rec.APPLIED_CUSTOMER_TRX_ID;
18814 END IF;
18815
18816 FOR i IN 1..n LOOP
18817 IF i = 2 THEN
18818 l_customer_trx_id := p_app_rec.customer_trx_id;
18819 END IF;
18820 OPEN c_ctlgd_valid(l_customer_trx_id); -- check 2 for acctd amt 0 and amt non zero
18821 LOOP
18822 FETCH c_ctlgd_valid into l_ctlgd_valid_set;
18823 if l_ctlgd_valid_set.AUTORULE_COMPLETE_FLAG <> 'Y' then
18824 l_check_valid := 1;
18825 end if;
18826
18827 if (l_ctlgd_valid_set.AMOUNT <> 0 AND l_ctlgd_valid_set.ACCTD_AMOUNT = 0) AND
18828 (l_ctlgd_valid_set.inv_currency <> l_ctlgd_valid_set.ledger_currency) THEN
18829 l_check_valid := 2;
18830 end if;
18831
18832
18833 if l_ctlgd_valid_set.line_type = 'LINE' then
18834 l_line_flag := 'Y';
18835 elsif l_ctlgd_valid_set.line_type = 'TAX' then
18836 l_tax_flag := 'Y';
18837 elsif l_ctlgd_valid_set.line_type = 'FREIGHT' then
18838 l_freight_flag := 'Y';
18839 elsif l_ctlgd_valid_set.line_type = 'CHARGES' then
18840 l_charges_flag := 'Y';
18841 end if;
18842
18843 IF c_ctlgd_valid%NOTFOUND THEN
18844 EXIT;
18845 END IF;
18846 END LOOP;
18847 CLOSE c_ctlgd_valid;
18848 END LOOP;
18849
18850 IF ((p_activity_type = 'ADJ')
18851 AND ((nvl(g_line_adj,0) <> 0 AND l_line_flag = 'N') OR
18852 (nvl(g_tax_adj,0) <> 0 AND l_tax_flag = 'N') OR
18853 (nvl(g_frt_adj,0) <> 0 AND l_freight_flag = 'N') OR
18854 (nvl(g_chrg_adj,0) <> 0 AND l_charges_flag = 'N'))) OR
18855 ((p_activity_type = 'RA') AND
18856 ((nvl(g_line_uned,0) + nvl(g_line_ed,0) + nvl(g_line_applied,0) <> 0 AND l_line_flag = 'N') OR
18857 (nvl(g_tax_uned,0) + nvl(g_tax_ed,0) + nvl(g_tax_applied,0) <> 0 AND l_tax_flag = 'N') OR
18858 (nvl(g_frt_uned,0) + nvl(g_frt_ed,0) + nvl(g_frt_applied,0) <> 0 AND l_freight_flag = 'N') OR
18859 (nvl(g_chrg_uned,0) + nvl(g_chrg_ed,0) + nvl(g_chrg_applied,0) <> 0 AND l_charges_flag = 'N'))) THEN
18860 l_check_valid := 3;
18861 END IF;
18862
18863 IF p_gt_id IS NULL THEN
18864 l_gt_id := g_gt_id;
18865 ELSE
18866 l_gt_id := p_gt_id;
18867 END IF;
18868
18869 localdebug(' l_gt_id :'||l_gt_id);
18870
18871 OPEN cu1(l_gt_id);
18872 FETCH cu1 INTO l_sum, l_acctd_sum;
18873 CLOSE cu1;
18874
18875 IF PG_DEBUG = 'Y' THEN
18876 localdebug('Reconciliation gross amount');
18877 END IF;
18878 IF p_activity_type = 'RA' THEN
18879 IF ABS(nvl(l_sum,0)) <> ABS( NVL(p_app_rec.amount_applied,0)
18880 + NVL(p_app_rec.earned_discount_taken,0)
18881 + NVL(p_app_rec.unearned_discount_taken,0) )
18882 THEN
18883 IF PG_DEBUG = 'Y' THEN
18884 localdebug('From the detail gt the amount l_sum :'||l_sum);
18885 localdebug('application record the amount_applied :'||p_app_rec.amount_applied);
18886 localdebug('application record the amount_earned :'||p_app_rec.earned_discount_taken);
18887 localdebug('application record the amount_unearned:'||p_app_rec.unearned_discount_taken);
18888 localdebug('Gross transaction amount do not reconcile');
18889 END IF;
18890 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
18891 ELSIF ABS(nvl(l_acctd_sum,0)) <> ABS(NVL(p_app_rec.acctd_amount_applied_to,0)
18892 + NVL(p_app_rec.ACCTD_UNEARNED_DISCOUNT_TAKEN,0)
18893 + NVL(p_app_rec.ACCTD_EARNED_DISCOUNT_TAKEN,0) ) THEN
18894 IF PG_DEBUG = 'Y' THEN
18895 localdebug('From the detail gt the acctd_amount l_acctd_sum :'||l_acctd_sum);
18896 localdebug('application record the acctd_amount_applied:'||p_app_rec.acctd_amount_applied_to);
18897 localdebug('application record the acctd_amount_earned :'||p_app_rec.ACCTD_EARNED_DISCOUNT_TAKEN);
18898 localdebug('application record the acctd_amount_unearned:'||p_app_rec.ACCTD_UNEARNED_DISCOUNT_TAKEN);
18899 localdebug('Gross transaction acctd amount do not reconcile');
18900 END IF;
18901 l_check_precision := 'Y';
18902 l_acctd_amt_sum := ABS(NVL(p_app_rec.acctd_amount_applied_to,0)
18903 + NVL(p_app_rec.ACCTD_UNEARNED_DISCOUNT_TAKEN,0)
18904 + NVL(p_app_rec.ACCTD_EARNED_DISCOUNT_TAKEN,0));
18905
18906 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
18907 END IF;
18908 ELSIF p_activity_type = 'ADJ' THEN
18909 IF ABS(nvl(l_sum,0)) <> ABS(NVL(p_adj_rec.amount,0)) THEN
18910 IF PG_DEBUG = 'Y' THEN
18911 localdebug('From the detail gt the amount l_sum :'||l_sum);
18912 localdebug('adjustment record the amount:'||p_adj_rec.amount);
18913 localdebug('Gross transaction amount do not reconcile');
18914 END IF;
18915 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
18916 ELSIF ABS(nvl(l_acctd_sum,0)) <> ABS(NVL(p_adj_rec.acctd_amount,0)) THEN
18917 IF PG_DEBUG = 'Y' THEN
18918 localdebug('From the detail gt the acctd_amount l_acctd_sum :'||l_acctd_sum);
18919 localdebug('adjustment record the acctd_amount:'||p_adj_rec.acctd_amount);
18920 localdebug('Gross transaction acctd amount do not reconcile');
18921 END IF;
18922 l_check_precision := 'Y';
18923 l_acctd_amt_sum := ABS(NVL(p_adj_rec.acctd_amount,0));
18924 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
18925 END IF;
18926 END IF;
18927
18928
18929 IF p_activity_type = 'RA' THEN
18930
18931 IF PG_DEBUG = 'Y' THEN
18932 localdebug('Reconciliation per bucket application amount');
18933 END IF;
18934 OPEN cu2(l_gt_id);
18935 FETCH cu2 BULK COLLECT INTO
18936 l_amt_tab ,
18937 l_acctd_amt_tab,
18938 l_activity_tab;
18939 CLOSE cu2;
18940
18941 IF l_activity_tab.COUNT <> 0 THEN
18942
18943 FOR i IN l_activity_tab.FIRST .. l_activity_tab.LAST LOOP
18944 IF l_activity_tab(i) IN ('APP_LINE','APP_TAX','APP_FRT','APP_CHRG') THEN
18945 l_app_amt := l_app_amt + NVL(l_amt_tab(i),0);
18946 l_app_acctd_amt := l_app_acctd_amt + NVL(l_acctd_amt_tab(i),0);
18947 ELSIF l_activity_tab(i) IN ('ED_LINE','ED_FRT','ED_TAX','ED_CHRG') THEN
18948 l_ed_amt := l_ed_amt + NVL(l_amt_tab(i),0);
18949 l_ed_acctd_amt := l_ed_acctd_amt + NVL(l_acctd_amt_tab(i),0);
18950 ELSIF l_activity_tab(i) IN ('UNED_LINE','UNED_FRT','UNED_TAX','UNED_CHRG') THEN
18951 l_uned_amt := l_uned_amt + NVL(l_amt_tab(i),0);
18952 l_uned_acctd_amt := l_uned_acctd_amt + NVL(l_acctd_amt_tab(i),0);
18953 END IF;
18954 END LOOP;
18955
18956 IF ABS(l_app_amt) <> ABS( NVL(p_app_rec.amount_applied,0)) THEN
18957 IF PG_DEBUG = 'Y' THEN
18958 localdebug('From the detail gt the applied amount l_app_amt :'||l_app_amt);
18959 localdebug('application record the amount_applied :'||p_app_rec.amount_applied);
18960 END IF;
18961 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
18962 ELSIF ABS(l_ed_amt) <> ABS( NVL(p_app_rec.earned_discount_taken,0)) THEN
18963 IF PG_DEBUG = 'Y' THEN
18964 localdebug('From the detail gt the ed amount l_ed_amt :'||l_ed_amt);
18965 localdebug('application record the amount_earned :'||p_app_rec.earned_discount_taken);
18966 END IF;
18967 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
18968 ELSIF ABS(l_uned_amt) <> ABS( NVL(p_app_rec.unearned_discount_taken,0)) THEN
18969 IF PG_DEBUG = 'Y' THEN
18970 localdebug('From the detail gt the uned amount l_uned_amt :'||l_uned_amt);
18971 localdebug('application record the amount_unearned:'||p_app_rec.unearned_discount_taken);
18972 END IF;
18973 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
18974 ELSIF ABS(l_app_acctd_amt) <> ABS(NVL(p_app_rec.acctd_amount_applied_to,0)) THEN
18975 IF PG_DEBUG = 'Y' THEN
18976 localdebug('From the detail gt the applied amount l_app_acctd_amt :'||l_app_acctd_amt);
18977 localdebug('application record the acctd_amount_applied :'||p_app_rec.acctd_amount_applied_to);
18978 END IF;
18979 l_check_precision := 'Y';
18980 l_acctd_amt_sum := ABS(NVL(p_app_rec.acctd_amount_applied_to,0));
18981 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
18982 ELSIF ABS(l_ed_acctd_amt) <> ABS( NVL(p_app_rec.acctd_earned_discount_taken,0)) THEN
18983 IF PG_DEBUG = 'Y' THEN
18984 localdebug('From the detail gt the ed amount l_ed_acctd_amt :'||l_ed_acctd_amt);
18985 localdebug('application record the acctd_amount_earned :'||p_app_rec.acctd_earned_discount_taken);
18986 END IF;
18987 l_check_precision := 'Y';
18988 l_acctd_amt_sum := ABS(NVL(p_app_rec.acctd_earned_discount_taken,0));
18989 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
18990 ELSIF ABS(l_uned_acctd_amt) <> ABS( NVL(p_app_rec.acctd_unearned_discount_taken,0)) THEN
18991 IF PG_DEBUG = 'Y' THEN
18992 localdebug('From the detail gt the ed amount l_uned_acctd_amt :'||l_uned_acctd_amt);
18993 localdebug('application record the acctd_amount_unearned :'||p_app_rec.acctd_unearned_discount_taken);
18994 END IF;
18995 l_check_precision := 'Y';
18996 l_acctd_amt_sum := ABS(NVL(p_app_rec.acctd_unearned_discount_taken,0));
18997 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
18998 END IF;
18999
19000 END IF;
19001 END IF;
19002
19003 IF PG_DEBUG = 'Y' THEN
19004 localdebug('arp_det_dist_pkg.reconciliation()-');
19005 END IF;
19006 EXCEPTION
19007 WHEN fnd_api.G_EXC_UNEXPECTED_ERROR THEN
19008 IF l_check_valid = 1 THEN
19009 FND_MESSAGE.SET_NAME( 'AR', 'AR_APP_PARTIAL_REV' );
19010 APP_EXCEPTION.RAISE_EXCEPTION;
19011 ELSIF l_check_valid = 2 THEN
19012 FND_MESSAGE.SET_NAME( 'AR', 'AR_APP_ZERO_ACCTD_AMT' );
19013 APP_EXCEPTION.RAISE_EXCEPTION;
19014 ELSIF l_check_valid = 3 THEN
19015 FND_MESSAGE.SET_NAME( 'AR', 'AR_APP_ZERO_BASIS' );
19016 APP_EXCEPTION.RAISE_EXCEPTION;
19017 END IF;
19018
19019 IF NVL(l_check_precision, 'N') = 'Y' THEN
19020 IF PG_DEBUG = 'Y' THEN
19021 localdebug('Checking for currency precision error');
19022 END IF;
19023
19024 IF ARP_BALANCE_CHECK.CHECK_PRECISION (l_acctd_amt_sum) THEN
19025 FND_MESSAGE.SET_NAME( 'AR', 'AR_APP_CURR_PRECISION' );
19026 APP_EXCEPTION.RAISE_EXCEPTION;
19027 END IF;
19028
19029 RAISE;
19030 END IF;
19031 RAISE;
19032 END;
19033
19034 PROCEDURE verify_stamp_merge_dist_method(p_customer_trx_id IN NUMBER,
19035 x_upg_method IN OUT NOCOPY VARCHAR2) IS
19036 BEGIN
19037 IF PG_DEBUG = 'Y' THEN
19038 localdebug('arp_det_dist_pkg.verify_stamp_merge_dist_method()+');
19039 localdebug('p_customer_trx_id :'||p_customer_trx_id);
19040 localdebug('x_upg_method :'||x_upg_method);
19041 END IF;
19042
19043 IF p_customer_trx_id IS NULL THEN
19044 IF PG_DEBUG = 'Y' THEN
19045 localdebug('p_customer_trx_id is null,returning....');
19046 localdebug('arp_det_dist_pkg.verify_stamp_merge_dist_method()-');
19047 END IF;
19048 RETURN;
19049 END IF;
19050
19051 IF x_upg_method IS NULL THEN
19052 SELECT upgrade_method
19053 INTO x_upg_method
19054 FROM ra_customer_trx
19055 where customer_trx_id = p_customer_trx_id;
19056
19057 IF PG_DEBUG = 'Y' THEN
19058 localdebug('x_upg_method from db :'||x_upg_method);
19059 END IF;
19060 END IF;
19061
19062 IF x_upg_method IS NULL AND
19063 (nvl(arp_standard.sysparm.create_detailed_dist_flag,'Y') = 'N' ) THEN
19064
19065 update ra_customer_trx
19066 set upgrade_method = 'R12_MERGE'
19067 where customer_trx_id = p_customer_trx_id;
19068
19069 x_upg_method := 'R12_MERGE';
19070 END IF;
19071
19072 IF PG_DEBUG = 'Y' THEN
19073 localdebug('x_upg_method '||x_upg_method);
19074 localdebug('arp_det_dist_pkg.verify_stamp_merge_dist_method()-');
19075 END IF;
19076
19077 EXCEPTION
19078 WHEN OTHERS THEN
19079 localdebug('Exception verify_stamp_merge_dist_method '||SQLERRM);
19080 RAISE;
19081 END verify_stamp_merge_dist_method;
19082
19083
19084 PROCEDURE diag_data(p_gt_id IN NUMBER DEFAULT NULL)
19085 IS
19086 l_gt_id NUMBER;
19087 CURSOR c(l_gt_id IN NUMBER) IS
19088 SELECT
19089 FROM_AMOUNT,
19090 FROM_CURRENCY,
19091 GROUP_ID,
19092 GT_ID,
19093 LAST_UPDATED_BY,
19094 LAST_UPDATE_DATE,
19095 LAST_UPDATE_LOGIN,
19096 LEDGER_ID,
19097 LINE_ID,
19098 ORG_ID,
19099 REF_CUSTOMER_TRX_ID,
19100 REF_CUSTOMER_TRX_LINE_ID,
19101 REF_CUST_TRX_LINE_GL_DIST_ID,
19102 REF_DET_ID,
19103 REF_LINE_ID,
19104 SE_GT_ID,
19105 SOURCE_DATA_KEY1,
19106 SOURCE_DATA_KEY2,
19107 SOURCE_DATA_KEY3,
19108 SOURCE_DATA_KEY4,
19109 SOURCE_DATA_KEY5,
19110 SOURCE_ID,
19111 SOURCE_TABLE,
19112 SOURCE_TYPE,
19113 TAXABLE_ACCTD_AMOUNT,
19114 TAXABLE_AMOUNT,
19115 TAX_INC_FLAG,
19116 TAX_LINK_ID,
19117 TO_CURRENCY,
19118 REF_MF_DIST_FLAG,
19119 ACCTD_AMOUNT,
19120 REF_ACCOUNT_CLASS,
19121 AMOUNT,
19122 APP_LEVEL,
19123 BASE_CURRENCY,
19124 ACTIVITY_BUCKET,
19125 CCID,
19126 CCID_SECONDARY,
19127 CREATED_BY,
19128 CREATION_DATE,
19129 DET_ID,
19130 FROM_ACCTD_AMOUNT
19131 FROM AR_LINE_APP_DETAIL_GT
19132 WHERE GT_ID = l_gt_id;
19133
19134 l c%ROWTYPE;
19135 l_text VARCHAR2(4000);
19136
19137 BEGIN
19138 IF p_gt_id IS NULL THEN
19139 l_gt_id := g_gt_id;
19140 ELSE
19141 l_gt_id := p_gt_id;
19142 END IF;
19143 /*
19144 INSERT INTO AR_LINE_APP_DETAIL_TMP
19145 (ACCTD_AMOUNT ,
19146 REF_ACCOUNT_CLASS ,
19147 AMOUNT ,
19148 APP_LEVEL ,
19149 BASE_CURRENCY ,
19150 ACTIVITY_BUCKET ,
19151 CCID ,
19152 CCID_SECONDARY ,
19153 CREATED_BY ,
19154 CREATION_DATE ,
19155 DET_ID ,
19156 FROM_ACCTD_AMOUNT ,
19157 FROM_AMOUNT ,
19158 FROM_CURRENCY ,
19159 GROUP_ID ,
19160 GT_ID ,
19161 LAST_UPDATED_BY ,
19162 LAST_UPDATE_DATE ,
19163 LAST_UPDATE_LOGIN ,
19164 LEDGER_ID ,
19165 LINE_ID ,
19166 ORG_ID ,
19167 REF_CUSTOMER_TRX_ID ,
19168 REF_CUSTOMER_TRX_LINE_ID,
19169 REF_CUST_TRX_LINE_GL_DIST_ID,
19170 REF_DET_ID ,
19171 REF_LINE_ID ,
19172 SE_GT_ID ,
19173 SOURCE_DATA_KEY1 ,
19174 SOURCE_DATA_KEY2 ,
19175 SOURCE_DATA_KEY3 ,
19176 SOURCE_DATA_KEY4 ,
19177 SOURCE_DATA_KEY5 ,
19178 SOURCE_ID ,
19179 SOURCE_TABLE ,
19180 SOURCE_TYPE ,
19181 TAXABLE_ACCTD_AMOUNT ,
19182 TAXABLE_AMOUNT ,
19183 TAX_INC_FLAG ,
19184 TAX_LINK_ID ,
19185 TO_CURRENCY ,
19186 REF_MF_DIST_FLAG )
19187 SELECT
19188 ACCTD_AMOUNT ,
19189 REF_ACCOUNT_CLASS ,
19190 AMOUNT ,
19191 APP_LEVEL ,
19192 BASE_CURRENCY ,
19193 ACTIVITY_BUCKET ,
19194 CCID ,
19195 CCID_SECONDARY ,
19196 CREATED_BY ,
19197 CREATION_DATE ,
19198 DET_ID ,
19199 FROM_ACCTD_AMOUNT ,
19200 FROM_AMOUNT ,
19201 FROM_CURRENCY ,
19202 GROUP_ID ,
19203 GT_ID ,
19204 LAST_UPDATED_BY ,
19205 LAST_UPDATE_DATE ,
19206 LAST_UPDATE_LOGIN ,
19207 LEDGER_ID ,
19208 LINE_ID ,
19209 ORG_ID ,
19210 REF_CUSTOMER_TRX_ID ,
19211 REF_CUSTOMER_TRX_LINE_ID,
19212 REF_CUST_TRX_LINE_GL_DIST_ID,
19213 REF_DET_ID ,
19214 REF_LINE_ID ,
19215 SE_GT_ID ,
19216 SOURCE_DATA_KEY1 ,
19217 SOURCE_DATA_KEY2 ,
19218 SOURCE_DATA_KEY3 ,
19219 SOURCE_DATA_KEY4 ,
19220 SOURCE_DATA_KEY5 ,
19221 SOURCE_ID ,
19222 SOURCE_TABLE ,
19223 SOURCE_TYPE ,
19224 TAXABLE_ACCTD_AMOUNT ,
19225 TAXABLE_AMOUNT ,
19226 TAX_INC_FLAG ,
19227 TAX_LINK_ID ,
19228 TO_CURRENCY ,
19229 REF_MF_DIST_FLAG
19230 FROM AR_LINE_APP_DETAIL_GT
19231 WHERE GT_ID = l_gt_id;
19232
19233 INSERT INTO ra_ar_tmp
19234 (ACCOUNT_CLASS ,
19235 ACCTD_AMT ,
19236 ACCTD_AMT_CR ,
19237 ACCTD_AMT_DR ,
19238 ALLOC_ACCTD_AMT ,
19239 ALLOC_AMT ,
19240 AMT ,
19241 AMT_CR ,
19242 AMT_DR ,
19243 BASE_CHRG_PRO_ACCTD_AMT ,
19244 BASE_CHRG_PRO_AMT ,
19245 BASE_CURRENCY ,
19246 BASE_DIST_ACCTD_AMT ,
19247 BASE_DIST_AMT ,
19248 BASE_DIST_CHRG_ACCTD_AMT ,
19249 BASE_DIST_CHRG_AMT ,
19250 BASE_DIST_FRT_ACCTD_AMT ,
19251 BASE_DIST_FRT_AMT ,
19252 BASE_DIST_TAX_ACCTD_AMT ,
19253 BASE_DIST_TAX_AMT ,
19254 BASE_ED_CHRG_PRO_ACCTD_AMT ,
19255 BASE_ED_CHRG_PRO_AMT ,
19256 BASE_ED_DIST_ACCTD_AMT ,
19257 BASE_ED_DIST_AMT ,
19258 BASE_ED_DIST_CHRG_ACCTD_AMT ,
19259 BASE_ED_DIST_CHRG_AMT ,
19260 BASE_ED_DIST_FRT_ACCTD_AMT ,
19261 BASE_ED_DIST_FRT_AMT ,
19262 BASE_ED_DIST_TAX_ACCTD_AMT ,
19263 BASE_ED_DIST_TAX_AMT ,
19264 BASE_ED_FRT_PRO_ACCTD_AMT ,
19265 BASE_ED_FRT_PRO_AMT ,
19266 BASE_ED_PRO_ACCTD_AMT ,
19267 BASE_ED_PRO_AMT ,
19268 BASE_ED_TAX_PRO_ACCTD_AMT ,
19269 BASE_ED_TAX_PRO_AMT ,
19270 BASE_FRT_PRO_ACCTD_AMT ,
19271 BASE_FRT_PRO_AMT ,
19272 BASE_PRO_ACCTD_AMT ,
19273 BASE_PRO_AMT ,
19274 BASE_TAX_PRO_ACCTD_AMT ,
19275 BASE_TAX_PRO_AMT ,
19276 BASE_UNED_CHRG_PRO_ACCTD_AMT ,
19277 BASE_UNED_CHRG_PRO_AMT ,
19278 BASE_UNED_DIST_ACCTD_AMT ,
19279 BASE_UNED_DIST_AMT ,
19280 BASE_UNED_DIST_CHRG_ACCTD_AMT ,
19281 BASE_UNED_DIST_CHRG_AMT ,
19282 BASE_UNED_DIST_FRT_ACCTD_AMT ,
19283 BASE_UNED_DIST_FRT_AMT ,
19284 BASE_UNED_DIST_TAX_ACCTD_AMT ,
19285 BASE_UNED_DIST_TAX_AMT ,
19286 BASE_UNED_FRT_PRO_ACCTD_AMT ,
19287 BASE_UNED_FRT_PRO_AMT ,
19288 BASE_UNED_PRO_ACCTD_AMT ,
19289 BASE_UNED_PRO_AMT ,
19290 BASE_UNED_TAX_PRO_ACCTD_AMT ,
19291 BASE_UNED_TAX_PRO_AMT ,
19292 ACTIVITY_BUCKET ,
19293 BUC_ALLOC_ACCTD_AMT ,
19294 BUC_ALLOC_AMT ,
19295 BUC_CHRG_ALLOC_ACCTD_AMT ,
19296 BUC_CHRG_ALLOC_AMT ,
19297 BUC_ED_ALLOC_ACCTD_AMT ,
19298 BUC_ED_ALLOC_AMT ,
19299 BUC_ED_CHRG_ALLOC_ACCTD_AMT ,
19300 BUC_ED_CHRG_ALLOC_AMT ,
19301 BUC_ED_FRT_ALLOC_ACCTD_AMT ,
19302 BUC_ED_FRT_ALLOC_AMT ,
19303 BUC_ED_TAX_ALLOC_ACCTD_AMT ,
19304 BUC_ED_TAX_ALLOC_AMT ,
19305 BUC_FRT_ALLOC_ACCTD_AMT ,
19306 BUC_FRT_ALLOC_AMT ,
19307 BUC_TAX_ALLOC_ACCTD_AMT ,
19308 BUC_TAX_ALLOC_AMT ,
19309 BUC_UNED_ALLOC_ACCTD_AMT ,
19310 BUC_UNED_ALLOC_AMT ,
19311 BUC_UNED_CHRG_ALLOC_ACCTD_AMT ,
19312 BUC_UNED_CHRG_ALLOC_AMT ,
19313 BUC_UNED_FRT_ALLOC_ACCTD_AMT ,
19314 BUC_UNED_FRT_ALLOC_AMT ,
19315 BUC_UNED_TAX_ALLOC_ACCTD_AMT ,
19316 BUC_UNED_TAX_ALLOC_AMT ,
19317 CCID ,
19318 CCID_SECONDARY ,
19319 CHRG_REM_ACCTD_AMT ,
19320 CHRG_REM_AMT ,
19321 DET_ID ,
19322 DIST_ACCTD_AMT ,
19323 DIST_AMT ,
19324 DIST_CHRG_ACCTD_AMT ,
19325 DIST_CHRG_AMT ,
19326 DIST_ED_ACCTD_AMT ,
19327 DIST_ED_AMT ,
19328 DIST_ED_CHRG_ACCTD_AMT ,
19329 DIST_ED_CHRG_AMT ,
19330 DIST_ED_FRT_ACCTD_AMT ,
19331 DIST_ED_FRT_AMT ,
19332 DIST_ED_TAX_ACCTD_AMT ,
19333 DIST_ED_TAX_AMT ,
19334 DIST_FRT_ACCTD_AMT ,
19335 DIST_FRT_AMT ,
19336 DIST_TAX_ACCTD_AMT ,
19337 DIST_TAX_AMT ,
19338 DIST_UNED_ACCTD_AMT ,
19339 DIST_UNED_AMT ,
19340 DIST_UNED_CHRG_ACCTD_AMT ,
19341 DIST_UNED_CHRG_AMT ,
19342 DIST_UNED_FRT_ACCTD_AMT ,
19343 DIST_UNED_FRT_AMT ,
19344 DIST_UNED_TAX_ACCTD_AMT ,
19345 DIST_UNED_TAX_AMT ,
19346 DUE_ORIG_ACCTD_AMT ,
19347 DUE_ORIG_AMT ,
19348 DUE_REM_ACCTD_AMT ,
19349 DUE_REM_AMT ,
19350 ELMT_CHRG_PRO_ACCTD_AMT ,
19351 ELMT_CHRG_PRO_AMT ,
19352 ELMT_ED_CHRG_PRO_ACCTD_AMT ,
19353 ELMT_ED_CHRG_PRO_AMT ,
19354 ELMT_ED_FRT_PRO_ACCTD_AMT ,
19355 ELMT_ED_FRT_PRO_AMT ,
19356 ELMT_ED_PRO_ACCTD_AMT ,
19357 ELMT_ED_PRO_AMT ,
19358 ELMT_ED_TAX_PRO_ACCTD_AMT ,
19359 ELMT_ED_TAX_PRO_AMT ,
19360 ELMT_FRT_PRO_ACCTD_AMT ,
19361 ELMT_FRT_PRO_AMT ,
19362 ELMT_PRO_ACCTD_AMT ,
19363 ELMT_PRO_AMT ,
19364 ELMT_TAX_PRO_ACCTD_AMT ,
19365 ELMT_TAX_PRO_AMT ,
19366 ELMT_UNED_CHRG_PRO_ACCTD_AMT ,
19367 ELMT_UNED_CHRG_PRO_AMT ,
19368 ELMT_UNED_FRT_PRO_ACCTD_AMT ,
19369 ELMT_UNED_FRT_PRO_AMT ,
19370 ELMT_UNED_PRO_ACCTD_AMT ,
19371 ELMT_UNED_PRO_AMT ,
19372 ELMT_UNED_TAX_PRO_ACCTD_AMT ,
19373 ELMT_UNED_TAX_PRO_AMT ,
19374 FROM_ACCTD_AMT_CR ,
19375 FROM_ACCTD_AMT_DR ,
19376 FROM_ALLOC_ACCTD_AMT ,
19377 FROM_ALLOC_AMT ,
19378 FROM_CURRENCY ,
19379 FRT_ADJ_REM_ACCTD_AMT ,
19380 FRT_ADJ_REM_AMT ,
19381 FRT_ORIG_ACCTD_AMT ,
19382 FRT_ORIG_AMT ,
19383 FRT_REM_ACCTD_AMT ,
19384 FRT_REM_AMT ,
19385 GP_LEVEL ,
19386 GROUP_ID ,
19387 GT_ID ,
19388 LINE_ID ,
19389 LINE_TYPE ,
19390 REF_CUSTOMER_TRX_ID ,
19391 REF_CUSTOMER_TRX_LINE_ID ,
19392 REF_CUST_TRX_LINE_GL_DIST_ID ,
19393 REF_DET_ID ,
19394 REF_LINE_ID ,
19395 SET_OF_BOOKS_ID ,
19396 SE_GT_ID ,
19397 SOB_TYPE ,
19398 SOURCE_DATA_KEY1 ,
19399 SOURCE_DATA_KEY2 ,
19400 SOURCE_DATA_KEY3 ,
19401 SOURCE_DATA_KEY4 ,
19402 SOURCE_DATA_KEY5 ,
19403 SOURCE_ID ,
19404 SOURCE_TABLE ,
19405 SOURCE_TYPE ,
19406 SUM_GP_LINE_CHRG_REM_ACCTD_AMT ,
19407 SUM_GP_LINE_CHRG_REM_AMT ,
19408 SUM_GP_LINE_FRT_ORIG_ACCTD_AMT ,
19409 SUM_GP_LINE_FRT_ORIG_AMT ,
19410 SUM_GP_LINE_FRT_REM_ACCTD_AMT ,
19411 SUM_GP_LINE_FRT_REM_AMT ,
19412 SUM_GP_LINE_ORIG_ACCTD_AMT ,
19413 SUM_GP_LINE_ORIG_AMT ,
19414 SUM_GP_LINE_REM_ACCTD_AMT ,
19415 SUM_GP_LINE_REM_AMT ,
19416 SUM_GP_LINE_TAX_ORIG_ACCTD_AMT ,
19417 SUM_GP_LINE_TAX_ORIG_AMT ,
19418 SUM_GP_LINE_TAX_REM_ACCTD_AMT ,
19419 SUM_GP_LINE_TAX_REM_AMT ,
19420 SUM_LINE_CHRG_REM_ACCTD_AMT ,
19421 SUM_LINE_CHRG_REM_AMT ,
19422 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
19423 SUM_LINE_FRT_ORIG_AMT ,
19424 SUM_LINE_FRT_REM_ACCTD_AMT ,
19425 SUM_LINE_FRT_REM_AMT ,
19426 SUM_LINE_ORIG_ACCTD_AMT ,
19427 SUM_LINE_ORIG_AMT ,
19428 SUM_LINE_REM_ACCTD_AMT ,
19429 SUM_LINE_REM_AMT ,
19430 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
19431 SUM_LINE_TAX_ORIG_AMT ,
19432 SUM_LINE_TAX_REM_ACCTD_AMT ,
19433 SUM_LINE_TAX_REM_AMT ,
19434 TAX_INC_FLAG ,
19435 TAX_LINK_ID ,
19436 TAX_ORIG_ACCTD_AMT ,
19437 TAX_ORIG_AMT ,
19438 TAX_REM_ACCTD_AMT ,
19439 TAX_REM_AMT ,
19440 TL_ALLOC_ACCTD_AMT ,
19441 TL_ALLOC_AMT ,
19442 TL_CHRG_ALLOC_ACCTD_AMT ,
19443 TL_CHRG_ALLOC_AMT ,
19444 TL_ED_ALLOC_ACCTD_AMT ,
19445 TL_ED_ALLOC_AMT ,
19446 TL_ED_CHRG_ALLOC_ACCTD_AMT ,
19447 TL_ED_CHRG_ALLOC_AMT ,
19448 TL_ED_FRT_ALLOC_ACCTD_AMT ,
19449 TL_ED_FRT_ALLOC_AMT ,
19450 TL_ED_TAX_ALLOC_ACCTD_AMT ,
19451 TL_ED_TAX_ALLOC_AMT ,
19452 TL_FRT_ALLOC_ACCTD_AMT ,
19453 TL_FRT_ALLOC_AMT ,
19454 TL_TAX_ALLOC_ACCTD_AMT ,
19455 TL_TAX_ALLOC_AMT ,
19456 TL_UNED_ALLOC_ACCTD_AMT ,
19457 TL_UNED_ALLOC_AMT ,
19458 TL_UNED_CHRG_ALLOC_ACCTD_AMT ,
19459 TL_UNED_CHRG_ALLOC_AMT ,
19460 TL_UNED_FRT_ALLOC_ACCTD_AMT ,
19461 TL_UNED_FRT_ALLOC_AMT ,
19462 TL_UNED_TAX_ALLOC_ACCTD_AMT ,
19463 TL_UNED_TAX_ALLOC_AMT ,
19464 TO_CURRENCY ,
19465 REF_MF_DIST_FLAG ,
19466 CHRG_ORIG_AMT ,
19467 CHRG_ORIG_ACCTD_AMT ,
19468 CHRG_ADJ_REM_AMT ,
19469 CHRG_ADJ_REM_ACCTD_AMT ,
19470 SUM_LINE_CHRG_ORIG_AMT ,
19471 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
19472 SUM_GP_LINE_CHRG_ORIG_AMT ,
19473 SUM_GP_LINE_CHRG_ORIG_ACCTD_AM ,
19474 INT_LINE_AMOUNT ,
19475 INT_TAX_AMOUNT ,
19476 INT_ED_LINE_AMOUNT ,
19477 INT_ED_TAX_AMOUNT ,
19478 INT_UNED_LINE_AMOUNT ,
19479 INT_UNED_TAX_AMOUNT ,
19480 SUM_INT_LINE_AMOUNT ,
19481 SUM_INT_TAX_AMOUNT ,
19482 SUM_INT_ED_LINE_AMOUNT ,
19483 SUM_INT_ED_TAX_AMOUNT ,
19484 SUM_INT_UNED_LINE_AMOUNT ,
19485 SUM_INT_UNED_TAX_AMOUNT )
19486 SELECT
19487 ACCOUNT_CLASS ,
19488 ACCTD_AMT ,
19489 ACCTD_AMT_CR ,
19490 ACCTD_AMT_DR ,
19491 ALLOC_ACCTD_AMT ,
19492 ALLOC_AMT ,
19493 AMT ,
19494 AMT_CR ,
19495 AMT_DR ,
19496 BASE_CHRG_PRO_ACCTD_AMT ,
19497 BASE_CHRG_PRO_AMT ,
19498 BASE_CURRENCY ,
19499 BASE_DIST_ACCTD_AMT ,
19500 BASE_DIST_AMT ,
19501 BASE_DIST_CHRG_ACCTD_AMT ,
19502 BASE_DIST_CHRG_AMT ,
19503 BASE_DIST_FRT_ACCTD_AMT ,
19504 BASE_DIST_FRT_AMT ,
19505 BASE_DIST_TAX_ACCTD_AMT ,
19506 BASE_DIST_TAX_AMT ,
19507 BASE_ED_CHRG_PRO_ACCTD_AMT ,
19508 BASE_ED_CHRG_PRO_AMT ,
19509 BASE_ED_DIST_ACCTD_AMT ,
19510 BASE_ED_DIST_AMT ,
19511 BASE_ED_DIST_CHRG_ACCTD_AMT ,
19512 BASE_ED_DIST_CHRG_AMT ,
19513 BASE_ED_DIST_FRT_ACCTD_AMT ,
19514 BASE_ED_DIST_FRT_AMT ,
19515 BASE_ED_DIST_TAX_ACCTD_AMT ,
19516 BASE_ED_DIST_TAX_AMT ,
19517 BASE_ED_FRT_PRO_ACCTD_AMT ,
19518 BASE_ED_FRT_PRO_AMT ,
19519 BASE_ED_PRO_ACCTD_AMT ,
19520 BASE_ED_PRO_AMT ,
19521 BASE_ED_TAX_PRO_ACCTD_AMT ,
19522 BASE_ED_TAX_PRO_AMT ,
19523 BASE_FRT_PRO_ACCTD_AMT ,
19524 BASE_FRT_PRO_AMT ,
19525 BASE_PRO_ACCTD_AMT ,
19526 BASE_PRO_AMT ,
19527 BASE_TAX_PRO_ACCTD_AMT ,
19528 BASE_TAX_PRO_AMT ,
19529 BASE_UNED_CHRG_PRO_ACCTD_AMT ,
19530 BASE_UNED_CHRG_PRO_AMT ,
19531 BASE_UNED_DIST_ACCTD_AMT ,
19532 BASE_UNED_DIST_AMT ,
19533 BASE_UNED_DIST_CHRG_ACCTD_AMT ,
19534 BASE_UNED_DIST_CHRG_AMT ,
19535 BASE_UNED_DIST_FRT_ACCTD_AMT ,
19536 BASE_UNED_DIST_FRT_AMT ,
19537 BASE_UNED_DIST_TAX_ACCTD_AMT ,
19538 BASE_UNED_DIST_TAX_AMT ,
19539 BASE_UNED_FRT_PRO_ACCTD_AMT ,
19540 BASE_UNED_FRT_PRO_AMT ,
19541 BASE_UNED_PRO_ACCTD_AMT ,
19542 BASE_UNED_PRO_AMT ,
19543 BASE_UNED_TAX_PRO_ACCTD_AMT ,
19544 BASE_UNED_TAX_PRO_AMT ,
19545 ACTIVITY_BUCKET ,
19546 BUC_ALLOC_ACCTD_AMT ,
19547 BUC_ALLOC_AMT ,
19548 BUC_CHRG_ALLOC_ACCTD_AMT ,
19549 BUC_CHRG_ALLOC_AMT ,
19550 BUC_ED_ALLOC_ACCTD_AMT ,
19551 BUC_ED_ALLOC_AMT ,
19552 BUC_ED_CHRG_ALLOC_ACCTD_AMT ,
19553 BUC_ED_CHRG_ALLOC_AMT ,
19554 BUC_ED_FRT_ALLOC_ACCTD_AMT ,
19555 BUC_ED_FRT_ALLOC_AMT ,
19556 BUC_ED_TAX_ALLOC_ACCTD_AMT ,
19557 BUC_ED_TAX_ALLOC_AMT ,
19558 BUC_FRT_ALLOC_ACCTD_AMT ,
19559 BUC_FRT_ALLOC_AMT ,
19560 BUC_TAX_ALLOC_ACCTD_AMT ,
19561 BUC_TAX_ALLOC_AMT ,
19562 BUC_UNED_ALLOC_ACCTD_AMT ,
19563 BUC_UNED_ALLOC_AMT ,
19564 BUC_UNED_CHRG_ALLOC_ACCTD_AMT ,
19565 BUC_UNED_CHRG_ALLOC_AMT ,
19566 BUC_UNED_FRT_ALLOC_ACCTD_AMT ,
19567 BUC_UNED_FRT_ALLOC_AMT ,
19568 BUC_UNED_TAX_ALLOC_ACCTD_AMT ,
19569 BUC_UNED_TAX_ALLOC_AMT ,
19570 CCID ,
19571 CCID_SECONDARY ,
19572 CHRG_REM_ACCTD_AMT ,
19573 CHRG_REM_AMT ,
19574 DET_ID ,
19575 DIST_ACCTD_AMT ,
19576 DIST_AMT ,
19577 DIST_CHRG_ACCTD_AMT ,
19578 DIST_CHRG_AMT ,
19579 DIST_ED_ACCTD_AMT ,
19580 DIST_ED_AMT ,
19581 DIST_ED_CHRG_ACCTD_AMT ,
19582 DIST_ED_CHRG_AMT ,
19583 DIST_ED_FRT_ACCTD_AMT ,
19584 DIST_ED_FRT_AMT ,
19585 DIST_ED_TAX_ACCTD_AMT ,
19586 DIST_ED_TAX_AMT ,
19587 DIST_FRT_ACCTD_AMT ,
19588 DIST_FRT_AMT ,
19589 DIST_TAX_ACCTD_AMT ,
19590 DIST_TAX_AMT ,
19591 DIST_UNED_ACCTD_AMT ,
19592 DIST_UNED_AMT ,
19593 DIST_UNED_CHRG_ACCTD_AMT ,
19594 DIST_UNED_CHRG_AMT ,
19595 DIST_UNED_FRT_ACCTD_AMT ,
19596 DIST_UNED_FRT_AMT ,
19597 DIST_UNED_TAX_ACCTD_AMT ,
19598 DIST_UNED_TAX_AMT ,
19599 DUE_ORIG_ACCTD_AMT ,
19600 DUE_ORIG_AMT ,
19601 DUE_REM_ACCTD_AMT ,
19602 DUE_REM_AMT ,
19603 ELMT_CHRG_PRO_ACCTD_AMT ,
19604 ELMT_CHRG_PRO_AMT ,
19605 ELMT_ED_CHRG_PRO_ACCTD_AMT ,
19606 ELMT_ED_CHRG_PRO_AMT ,
19607 ELMT_ED_FRT_PRO_ACCTD_AMT ,
19608 ELMT_ED_FRT_PRO_AMT ,
19609 ELMT_ED_PRO_ACCTD_AMT ,
19610 ELMT_ED_PRO_AMT ,
19611 ELMT_ED_TAX_PRO_ACCTD_AMT ,
19612 ELMT_ED_TAX_PRO_AMT ,
19613 ELMT_FRT_PRO_ACCTD_AMT ,
19614 ELMT_FRT_PRO_AMT ,
19615 ELMT_PRO_ACCTD_AMT ,
19616 ELMT_PRO_AMT ,
19617 ELMT_TAX_PRO_ACCTD_AMT ,
19618 ELMT_TAX_PRO_AMT ,
19619 ELMT_UNED_CHRG_PRO_ACCTD_AMT ,
19620 ELMT_UNED_CHRG_PRO_AMT ,
19621 ELMT_UNED_FRT_PRO_ACCTD_AMT ,
19622 ELMT_UNED_FRT_PRO_AMT ,
19623 ELMT_UNED_PRO_ACCTD_AMT ,
19624 ELMT_UNED_PRO_AMT ,
19625 ELMT_UNED_TAX_PRO_ACCTD_AMT ,
19626 ELMT_UNED_TAX_PRO_AMT ,
19627 FROM_ACCTD_AMT_CR ,
19628 FROM_ACCTD_AMT_DR ,
19629 FROM_ALLOC_ACCTD_AMT ,
19630 FROM_ALLOC_AMT ,
19631 FROM_CURRENCY ,
19632 FRT_ADJ_REM_ACCTD_AMT ,
19633 FRT_ADJ_REM_AMT ,
19634 FRT_ORIG_ACCTD_AMT ,
19635 FRT_ORIG_AMT ,
19636 FRT_REM_ACCTD_AMT ,
19637 FRT_REM_AMT ,
19638 GP_LEVEL ,
19639 GROUP_ID ,
19640 GT_ID ,
19641 LINE_ID ,
19642 LINE_TYPE ,
19643 REF_CUSTOMER_TRX_ID ,
19644 REF_CUSTOMER_TRX_LINE_ID ,
19645 REF_CUST_TRX_LINE_GL_DIST_ID ,
19646 REF_DET_ID ,
19647 REF_LINE_ID ,
19648 SET_OF_BOOKS_ID ,
19649 SE_GT_ID ,
19650 SOB_TYPE ,
19651 SOURCE_DATA_KEY1 ,
19652 SOURCE_DATA_KEY2 ,
19653 SOURCE_DATA_KEY3 ,
19654 SOURCE_DATA_KEY4 ,
19655 SOURCE_DATA_KEY5 ,
19656 SOURCE_ID ,
19657 SOURCE_TABLE ,
19658 SOURCE_TYPE ,
19659 SUM_GP_LINE_CHRG_REM_ACCTD_AMT ,
19660 SUM_GP_LINE_CHRG_REM_AMT ,
19661 SUM_GP_LINE_FRT_ORIG_ACCTD_AMT ,
19662 SUM_GP_LINE_FRT_ORIG_AMT ,
19663 SUM_GP_LINE_FRT_REM_ACCTD_AMT ,
19664 SUM_GP_LINE_FRT_REM_AMT ,
19665 SUM_GP_LINE_ORIG_ACCTD_AMT ,
19666 SUM_GP_LINE_ORIG_AMT ,
19667 SUM_GP_LINE_REM_ACCTD_AMT ,
19668 SUM_GP_LINE_REM_AMT ,
19669 SUM_GP_LINE_TAX_ORIG_ACCTD_AMT ,
19670 SUM_GP_LINE_TAX_ORIG_AMT ,
19671 SUM_GP_LINE_TAX_REM_ACCTD_AMT ,
19672 SUM_GP_LINE_TAX_REM_AMT ,
19673 SUM_LINE_CHRG_REM_ACCTD_AMT ,
19674 SUM_LINE_CHRG_REM_AMT ,
19675 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
19676 SUM_LINE_FRT_ORIG_AMT ,
19677 SUM_LINE_FRT_REM_ACCTD_AMT ,
19678 SUM_LINE_FRT_REM_AMT ,
19679 SUM_LINE_ORIG_ACCTD_AMT ,
19680 SUM_LINE_ORIG_AMT ,
19681 SUM_LINE_REM_ACCTD_AMT ,
19682 SUM_LINE_REM_AMT ,
19683 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
19684 SUM_LINE_TAX_ORIG_AMT ,
19685 SUM_LINE_TAX_REM_ACCTD_AMT ,
19686 SUM_LINE_TAX_REM_AMT ,
19687 TAX_INC_FLAG ,
19688 TAX_LINK_ID ,
19689 TAX_ORIG_ACCTD_AMT ,
19690 TAX_ORIG_AMT ,
19691 TAX_REM_ACCTD_AMT ,
19692 TAX_REM_AMT ,
19693 TL_ALLOC_ACCTD_AMT ,
19694 TL_ALLOC_AMT ,
19695 TL_CHRG_ALLOC_ACCTD_AMT ,
19696 TL_CHRG_ALLOC_AMT ,
19697 TL_ED_ALLOC_ACCTD_AMT ,
19698 TL_ED_ALLOC_AMT ,
19699 TL_ED_CHRG_ALLOC_ACCTD_AMT ,
19700 TL_ED_CHRG_ALLOC_AMT ,
19701 TL_ED_FRT_ALLOC_ACCTD_AMT ,
19702 TL_ED_FRT_ALLOC_AMT ,
19703 TL_ED_TAX_ALLOC_ACCTD_AMT ,
19704 TL_ED_TAX_ALLOC_AMT ,
19705 TL_FRT_ALLOC_ACCTD_AMT ,
19706 TL_FRT_ALLOC_AMT ,
19707 TL_TAX_ALLOC_ACCTD_AMT ,
19708 TL_TAX_ALLOC_AMT ,
19709 TL_UNED_ALLOC_ACCTD_AMT ,
19710 TL_UNED_ALLOC_AMT ,
19711 TL_UNED_CHRG_ALLOC_ACCTD_AMT ,
19712 TL_UNED_CHRG_ALLOC_AMT ,
19713 TL_UNED_FRT_ALLOC_ACCTD_AMT ,
19714 TL_UNED_FRT_ALLOC_AMT ,
19715 TL_UNED_TAX_ALLOC_ACCTD_AMT ,
19716 TL_UNED_TAX_ALLOC_AMT ,
19717 TO_CURRENCY ,
19718 REF_MF_DIST_FLAG ,
19719 CHRG_ORIG_AMT ,
19720 CHRG_ORIG_ACCTD_AMT ,
19721 CHRG_ADJ_REM_AMT ,
19722 CHRG_ADJ_REM_ACCTD_AMT ,
19723 SUM_LINE_CHRG_ORIG_AMT ,
19724 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
19725 SUM_GP_LINE_CHRG_ORIG_AMT ,
19726 SUM_GP_LINE_CHRG_ORIG_ACCTD_AM ,
19727 INT_LINE_AMOUNT ,
19728 INT_TAX_AMOUNT ,
19729 INT_ED_LINE_AMOUNT ,
19730 INT_ED_TAX_AMOUNT ,
19731 INT_UNED_LINE_AMOUNT ,
19732 INT_UNED_TAX_AMOUNT ,
19733 SUM_INT_LINE_AMOUNT ,
19734 SUM_INT_TAX_AMOUNT ,
19735 SUM_INT_ED_LINE_AMOUNT ,
19736 SUM_INT_ED_TAX_AMOUNT ,
19737 SUM_INT_UNED_LINE_AMOUNT ,
19738 SUM_INT_UNED_TAX_AMOUNT
19739 FROM ra_ar_gt
19740 WHERE gt_id = l_gt_id;
19741 */
19742
19743 OPEN c(l_gt_id);
19744 LOOP
19745 FETCH c INTO l;
19746 EXIT WHEN c%NOTFOUND;
19747 IF PG_DEBUG = 'Y' THEN
19748 localdebug('<FROM_AMOUNT>'||l.FROM_AMOUNT||'</FROM_AMOUNT>');
19749 localdebug('<FROM_CURRENCY>'||l.FROM_CURRENCY||'</FROM_CURRENCY>');
19750 localdebug('<GROUP_ID>'||l.GROUP_ID||'</GROUP_ID>');
19751 localdebug('<GT_ID>'||l.GT_ID||'</GT_ID>');
19752 localdebug('<LAST_UPDATED_BY>'||l.LAST_UPDATED_BY||'</LAST_UPDATED_BY>');
19753 localdebug('<LAST_UPDATE_DATE>'||l.LAST_UPDATE_DATE||'</LAST_UPDATE_DATE>');
19754 localdebug('<LAST_UPDATE_LOGIN>'||l.LAST_UPDATE_LOGIN||'</LAST_UPDATE_LOGIN>');
19755 localdebug('<LEDGER_ID>'||l.LEDGER_ID||'</LEDGER_ID>');
19756 localdebug('<LINE_ID>'||l.LINE_ID||'</LINE_ID>');
19757 localdebug('<ORG_ID>'||l.ORG_ID||'</ORG_ID>');
19758 localdebug('<REF_CUSTOMER_TRX_ID>'||l.REF_CUSTOMER_TRX_ID||'</REF_CUSTOMER_TRX_ID>');
19759 localdebug('<REF_CUSTOMER_TRX_LINE_ID>'||l.REF_CUSTOMER_TRX_LINE_ID||'</REF_CUSTOMER_TRX_LINE_ID>');
19760 localdebug('<REF_CUST_TRX_LINE_GL_DIST_ID>'||l.REF_CUST_TRX_LINE_GL_DIST_ID||'</REF_CUST_TRX_LINE_GL_DIST_ID>');
19761 localdebug('<REF_DET_ID>'||l.REF_DET_ID||'</REF_DET_ID>');
19762 localdebug('<REF_LINE_ID>'||l.REF_LINE_ID||'</REF_LINE_ID>');
19763 localdebug('<SE_GT_ID>'||l.SE_GT_ID||'</SE_GT_ID>');
19764 localdebug('<SOURCE_DATA_KEY1>'||l.SOURCE_DATA_KEY1||'</SOURCE_DATA_KEY1>');
19765 localdebug('<SOURCE_DATA_KEY2>'||l.SOURCE_DATA_KEY2||'</SOURCE_DATA_KEY2>');
19766 localdebug('<SOURCE_DATA_KEY3>'||l.SOURCE_DATA_KEY3||'</SOURCE_DATA_KEY3>');
19767 localdebug('<SOURCE_DATA_KEY4>'||l.SOURCE_DATA_KEY4||'</SOURCE_DATA_KEY4>');
19768 localdebug('<SOURCE_DATA_KEY5>'||l.SOURCE_DATA_KEY5||'</SOURCE_DATA_KEY5>');
19769 localdebug('<SOURCE_ID>'||l.SOURCE_ID||'</SOURCE_ID>');
19770 localdebug('<SOURCE_TABLE>'||l.SOURCE_TABLE||'</SOURCE_TABLE>');
19771 localdebug('<SOURCE_TYPE>'||l.SOURCE_TYPE||'</SOURCE_TYPE>');
19772 localdebug('<TAXABLE_ACCTD_AMOUNT>'||l.TAXABLE_ACCTD_AMOUNT||'</TAXABLE_ACCTD_AMOUNT>');
19773 localdebug('<TAXABLE_AMOUNT>'||l.TAXABLE_AMOUNT||'</TAXABLE_AMOUNT>');
19774 localdebug('<TAX_INC_FLAG>'||l.TAX_INC_FLAG||'</TAX_INC_FLAG>');
19775 localdebug('<TAX_LINK_ID>'||l.TAX_LINK_ID||'</TAX_LINK_ID>');
19776 localdebug('<TO_CURRENCY>'||l.TO_CURRENCY||'</TO_CURRENCY>');
19777 localdebug('<REF_MF_DIST_FLAG>'||l.REF_MF_DIST_FLAG||'</REF_MF_DIST_FLAG>');
19778 localdebug('<ACCTD_AMOUNT>'||l.ACCTD_AMOUNT||'</ACCTD_AMOUNT>');
19779 localdebug('<REF_ACCOUNT_CLASS>'||l.REF_ACCOUNT_CLASS||'</REF_ACCOUNT_CLASS>');
19780 localdebug('<AMOUNT>'||l.AMOUNT||'</AMOUNT>');
19781 localdebug('<APP_LEVEL>'||l.APP_LEVEL||'</APP_LEVEL>');
19782 localdebug('<BASE_CURRENCY>'||l.BASE_CURRENCY||'</BASE_CURRENCY>');
19783 localdebug('<ACTIVITY_BUCKET>'||l.ACTIVITY_BUCKET||'</ACTIVITY_BUCKET>');
19784 localdebug('<CCID>'||l.CCID||'</CCID>');
19785 localdebug('<CCID_SECONDARY>'||l.CCID_SECONDARY||'</CCID_SECONDARY>');
19786 localdebug('<DET_ID>'||l.DET_ID||'</DET_ID>');
19787 localdebug('<FROM_ACCTD_AMOUNT>'||l.FROM_ACCTD_AMOUNT||'</FROM_ACCTD_AMOUNT>');
19788 END IF;
19789
19790 END LOOP;
19791 CLOSE c;
19792 END;
19793
19794 PROCEDURE get_diag_flag IS
19795 BEGIN
19796 IF g_diag_flag = 'NOT_SET' THEN
19797 g_diag_flag := FND_PROFILE.VALUE('AR_EXTRACT_DIAG');
19798 IF g_diag_flag IS NULL THEN
19799 g_diag_flag := 'N';
19800 END IF;
19801 END IF;
19802 END;
19803
19804 END ARP_DET_DIST_PKG;