[Home] [Help]
PACKAGE BODY: APPS.ARP_DET_DIST_PKG
Source
1 PACKAGE BODY ARP_DET_DIST_PKG AS
2 /* $Header: ARPDDB.pls 120.57.12010000.36 2009/01/18 08:52:26 naneja 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 g_adj_yn VARCHAR2(1) := 'N';
45
46 PROCEDURE localdebug(p_txt IN VARCHAR2);
47
48 PROCEDURE display_ra_ar_gt
49 (p_code IN VARCHAR2 DEFAULT NULL,
50 p_gt_id IN VARCHAR2);
51
52 PROCEDURE display_cust_trx_gt(p_customer_trx_id IN NUMBER);
53 /*
54 PROCEDURE br_set_original_rem_amt
55 (p_customer_trx_id IN NUMBER);
56 */
57 --}
58
59 g_bulk_fetch_rows NUMBER := 10000;
60 g_ed_req VARCHAR2(1) := 'N';
61 g_uned_req VARCHAR2(1) := 'N';
62 g_gt_id VARCHAR2(30);
63 --{BUG4414391
64 --g_se_gt_id NUMBER := USERENV('SESSIONID');
65 --}
66
67 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
68
69 --{BUG#4414391
70 g_source_table VARCHAR2(30) DEFAULT NULL;
71 g_line_flag VARCHAR2(30) DEFAULT 'NORMAL';
72 g_tax_flag VARCHAR2(30) DEFAULT 'NORMAL';
73 g_freight_flag VARCHAR2(30) DEFAULT 'NORMAL';
74 g_charges_flag VARCHAR2(30) DEFAULT 'NORMAL';
75 g_ed_line_flag VARCHAR2(30) DEFAULT 'NORMAL';
76 g_ed_tax_flag VARCHAR2(30) DEFAULT 'NORMAL';
77 g_uned_line_flag VARCHAR2(30) DEFAULT 'NORMAL';
78 g_uned_tax_flag VARCHAR2(30) DEFAULT 'NORMAL';
79 --}
80
81 l_sob_list gl_ca_utility_pkg.r_sob_list;
82 previous_org_id NUMBER(15);
83 previous_sob_id NUMBER(15);
84 previous_ctx_id NUMBER(15);
85 previous_pk_id_one NUMBER;
86 previous_pk_id_two NUMBER;
87
88 g_line_adj NUMBER := 0;
89 g_tax_adj NUMBER := 0;
90 g_frt_adj NUMBER := 0;
91 g_chrg_adj NUMBER := 0;
92 g_line_applied NUMBER := 0;
93 g_tax_applied NUMBER := 0;
94 g_frt_applied NUMBER := 0;
95 g_chrg_applied NUMBER := 0;
96 g_line_ed NUMBER := 0;
97 g_tax_ed NUMBER := 0;
98 g_frt_ed NUMBER := 0;
99 g_chrg_ed NUMBER := 0;
100 g_line_uned NUMBER := 0;
101 g_tax_uned NUMBER := 0;
102 g_frt_uned NUMBER := 0;
103 g_chrg_uned NUMBER := 0;
104 --
105 g_acctd_line_adj NUMBER := 0;
106 g_acctd_tax_adj NUMBER := 0;
107 g_acctd_frt_adj NUMBER := 0;
108 g_acctd_chrg_adj NUMBER := 0;
109 g_acctd_line_applied NUMBER := 0;
110 g_acctd_tax_applied NUMBER := 0;
111 g_acctd_frt_applied NUMBER := 0;
112 g_acctd_chrg_applied NUMBER := 0;
113 g_acctd_line_ed NUMBER := 0;
114 g_acctd_tax_ed NUMBER := 0;
115 g_acctd_frt_ed NUMBER := 0;
116 g_acctd_chrg_ed NUMBER := 0;
117 g_acctd_line_uned NUMBER := 0;
118 g_acctd_tax_uned NUMBER := 0;
119 g_acctd_frt_uned NUMBER := 0;
120 g_acctd_chrg_uned NUMBER := 0;
121
122 g_cust_inv_rec ra_customer_trx%ROWTYPE;
123
124 --{
125 g_run_from_amt NUMBER;
126 g_run_from_total NUMBER;
127 g_run_from_acctd_amt NUMBER;
128 g_run_from_acctd_total NUMBER;
129 g_current_trx_id NUMBER;
130 --}
131
132 --{CASH and MFAR legacy
133 g_mode_process VARCHAR2(30) := 'R12';
134 --}
135
136 --{HYU upgrade cash basis
137 g_upgrade_mode VARCHAR2(30) := 'N';
138 g_currency_code VARCHAR2(30);
139 g_org_id NUMBER;
140
141
142 --{FRT and CHRG
143 g_trx_line_frt VARCHAR2(1) := 'N';
144 g_trx_line_chrg VARCHAR2(1) := 'N';
145 --}
146
147 --HY Cash Basis Upgrade
148 FUNCTION CurrRound
149 ( p_amount IN NUMBER,
150 p_currency_code IN VARCHAR2 DEFAULT NULL)
151 RETURN NUMBER;
152
153
154 PROCEDURE conv_acctd_amt
155 (p_pay_adj IN VARCHAR2,
156 p_adj_rec IN ar_adjustments%ROWTYPE,
157 p_app_rec IN ar_receivable_applications%ROWTYPE,
158 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
159
160 PROCEDURE conv_acctd_amt_upg
161 (p_pay_adj IN VARCHAR2,
162 p_adj_rec IN ar_adjustments%ROWTYPE,
163 p_app_rec IN ar_receivable_applications%ROWTYPE,
164 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
165
166 PROCEDURE update_taxable
167 (p_gt_id IN VARCHAR2,
168 p_customer_trx_id IN NUMBER,
169 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
170
171
172 PROCEDURE convert_ra_inv_to_cm
173 ( p_inv_ra_rec IN ar_receivable_applications%ROWTYPE,
174 p_cm_trx_id IN NUMBER,
175 x_cm_ra_rec IN OUT NOCOPY ar_receivable_applications%ROWTYPE,
176 p_mode IN VARCHAR2 DEFAULT 'OLTP',
177 p_gt_id IN VARCHAR2 DEFAULT NULL,
178 p_from_llca IN VARCHAR2 DEFAULT 'N',
179 p_upg_cm IN VARCHAR2 DEFAULT 'N');
180
181 /*-------------------------------------------------------------------------+
182 | Routine elementary and data structure |
183 +-------------------------------------------------------------------------*/
184 TYPE gt_record IS RECORD (gt_id NUMBER,
185 app_level VARCHAR2(30),
186 app_rec ar_receivable_applications%ROWTYPE);
187
188 TYPE gt_tab_type IS TABLE of gt_record INDEX BY BINARY_INTEGER;
189 g_gt_tab gt_tab_type;
190 clear_gt_tab gt_tab_type;
191
192 TYPE CHAR_HASH_TABLE IS TABLE OF VARCHAR2(2000) INDEX BY VARCHAR2(2000);
193
194 --
195 -- Structure to keep the input amount and the output amount of the proration
196 --
197 TYPE pro_res_tbl_type IS RECORD
198 ( -- Groupe
199 GROUPE DBMS_SQL.VARCHAR2_TABLE,
200 -- Base
201 -- ADJ and APP
202 base_pro_amt DBMS_SQL.NUMBER_TABLE,
203 base_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
204 BASE_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
205 BASE_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
206 base_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
207 base_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
208 base_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
209 base_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
210 -- ED
211 base_ed_pro_amt DBMS_SQL.NUMBER_TABLE,
212 base_ed_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
213 BASE_ed_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
214 BASE_ed_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
215 base_ed_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
216 base_ed_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
217 base_ed_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
218 base_ed_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
219 -- UNED
220 base_uned_pro_amt DBMS_SQL.NUMBER_TABLE,
221 base_uned_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
222 BASE_uned_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
223 BASE_uned_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
224 base_uned_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
225 base_uned_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
226 base_uned_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
227 base_uned_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
228 -- Element numerator
229 -- ADJ and APP
230 elmt_pro_amt DBMS_SQL.NUMBER_TABLE,
231 elmt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
232 ELMT_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
233 ELMT_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
234 elmt_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
235 elmt_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
236 elmt_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
237 elmt_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
238 -- ED
239 elmt_ed_pro_amt DBMS_SQL.NUMBER_TABLE,
240 elmt_ed_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
241 ELMT_ed_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
242 ELMT_ed_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
243 elmt_ed_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
244 elmt_ed_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
245 elmt_ed_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
246 elmt_ed_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
247 -- UNED
248 elmt_uned_pro_amt DBMS_SQL.NUMBER_TABLE,
249 elmt_uned_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
250 ELMT_uned_CHRG_PRO_AMT DBMS_SQL.NUMBER_TABLE,
251 ELMT_uned_CHRG_PRO_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
252 elmt_uned_frt_pro_amt DBMS_SQL.NUMBER_TABLE,
253 elmt_uned_frt_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
254 elmt_uned_tax_pro_amt DBMS_SQL.NUMBER_TABLE,
255 elmt_uned_tax_pro_acctd_amt DBMS_SQL.NUMBER_TABLE,
256 -- Amount to be allocated -- ADJ and APP
257 buc_alloc_amt DBMS_SQL.NUMBER_TABLE,
258 buc_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
259 buc_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
260 buc_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
261 buc_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
262 buc_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
263 buc_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
264 buc_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
265 -- ED
266 buc_ed_alloc_amt DBMS_SQL.NUMBER_TABLE,
267 buc_ed_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
268 buc_ed_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
269 buc_ed_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
270 buc_ed_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
271 buc_ed_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
272 buc_ed_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
273 buc_ed_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
274 -- UNED
275 buc_uned_alloc_amt DBMS_SQL.NUMBER_TABLE,
276 buc_uned_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
277 buc_uned_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
278 buc_uned_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
279 buc_uned_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
280 buc_uned_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
281 buc_uned_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
282 buc_uned_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
283 -- Currency
284 FROM_CURRENCY DBMS_SQL.VARCHAR2_TABLE,
285 TO_CURRENCY DBMS_SQL.VARCHAR2_TABLE,
286 BASE_CURRENCY DBMS_SQL.VARCHAR2_TABLE,
287 -- Result of the allocation
288 -- ADJ and APP
289 tl_alloc_amt DBMS_SQL.NUMBER_TABLE,
290 tl_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
291 tl_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
292 tl_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
293 tl_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
294 tl_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
295 tl_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
296 tl_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
297 -- ED
298 tl_ed_alloc_amt DBMS_SQL.NUMBER_TABLE,
299 tl_ed_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
300 tl_ed_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
301 tl_ed_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
302 tl_ed_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
303 tl_ed_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
304 tl_ed_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
305 tl_ed_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
306 -- UNED
307 tl_uned_alloc_amt DBMS_SQL.NUMBER_TABLE,
308 tl_uned_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
309 tl_uned_chrg_alloc_amt DBMS_SQL.NUMBER_TABLE,
310 tl_uned_chrg_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
311 tl_uned_frt_alloc_amt DBMS_SQL.NUMBER_TABLE,
312 tl_uned_frt_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
313 tl_uned_tax_alloc_amt DBMS_SQL.NUMBER_TABLE,
314 tl_uned_tax_alloc_acctd_amt DBMS_SQL.NUMBER_TABLE,
315 --
316 ROWID_ID DBMS_SQL.VARCHAR2_TABLE);
317
318 --
319 -- Internal structure for safety on proration
320 --
321 TYPE group_tbl_type IS RECORD
322 ( GROUPE DBMS_SQL.VARCHAR2_TABLE,
323 -- ADJ and APP
324 RUN_ALLOC DBMS_SQL.NUMBER_TABLE,
325 RUN_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
326 RUN_AMT DBMS_SQL.NUMBER_TABLE,
327 RUN_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
328 RUN_CHRG_ALLOC DBMS_SQL.NUMBER_TABLE,
329 RUN_CHRG_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
330 RUN_CHRG_AMT DBMS_SQL.NUMBER_TABLE,
331 RUN_CHRG_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
332 RUN_FRT_ALLOC DBMS_SQL.NUMBER_TABLE,
333 RUN_FRT_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
334 RUN_FRT_AMT DBMS_SQL.NUMBER_TABLE,
335 RUN_FRT_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
336 RUN_TAX_ALLOC DBMS_SQL.NUMBER_TABLE,
337 RUN_TAX_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
338 RUN_TAX_AMT DBMS_SQL.NUMBER_TABLE,
339 RUN_TAX_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
340 -- ED
341 RUN_ED_ALLOC DBMS_SQL.NUMBER_TABLE,
342 RUN_ED_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
343 RUN_ED_AMT DBMS_SQL.NUMBER_TABLE,
344 RUN_ED_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
345 RUN_ED_CHRG_ALLOC DBMS_SQL.NUMBER_TABLE,
346 RUN_ED_CHRG_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
347 RUN_ED_CHRG_AMT DBMS_SQL.NUMBER_TABLE,
348 RUN_ED_CHRG_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
349 RUN_ED_FRT_ALLOC DBMS_SQL.NUMBER_TABLE,
350 RUN_ED_FRT_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
351 RUN_ED_FRT_AMT DBMS_SQL.NUMBER_TABLE,
352 RUN_ED_FRT_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
353 RUN_ED_TAX_ALLOC DBMS_SQL.NUMBER_TABLE,
354 RUN_ED_TAX_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
355 RUN_ED_TAX_AMT DBMS_SQL.NUMBER_TABLE,
356 RUN_ED_TAX_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
357 -- UNED
358 RUN_UNED_ALLOC DBMS_SQL.NUMBER_TABLE,
359 RUN_UNED_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
360 RUN_UNED_AMT DBMS_SQL.NUMBER_TABLE,
361 RUN_UNED_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
362 RUN_UNED_CHRG_ALLOC DBMS_SQL.NUMBER_TABLE,
363 RUN_UNED_CHRG_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
364 RUN_UNED_CHRG_AMT DBMS_SQL.NUMBER_TABLE,
365 RUN_UNED_CHRG_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
366 RUN_UNED_FRT_ALLOC DBMS_SQL.NUMBER_TABLE,
367 RUN_UNED_FRT_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
368 RUN_UNED_FRT_AMT DBMS_SQL.NUMBER_TABLE,
369 RUN_UNED_FRT_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
370 RUN_UNED_TAX_ALLOC DBMS_SQL.NUMBER_TABLE,
371 RUN_UNED_TAX_ACCTD_ALLOC DBMS_SQL.NUMBER_TABLE,
372 RUN_UNED_TAX_AMT DBMS_SQL.NUMBER_TABLE,
373 RUN_UNED_TAX_ACCTD_AMT DBMS_SQL.NUMBER_TABLE,
374 GROUPE_INDEX CHAR_HASH_TABLE);
375
376
377 --HY Cash Basis Upgrade
378 FUNCTION CurrRound
379 ( p_amount IN NUMBER,
380 p_currency_code IN VARCHAR2 DEFAULT NULL)
381 RETURN NUMBER
382 IS
383 l_return NUMBER;
384 BEGIN
385 IF g_upgrade_mode = 'Y' THEN
386 l_return := ar_unposted_item_util.CurrRound(p_amount,g_currency_code);
387 ELSE
388 l_return := ar_unposted_item_util.CurrRound(p_amount,p_currency_code);
389 END IF;
390 RETURN l_return;
391 END;
392
393
394 --BUG#44144391
395 PROCEDURE get_gt_sequence
396 (x_gt_id OUT NOCOPY NUMBER,
397 x_return_status IN OUT NOCOPY VARCHAR2,
398 x_msg_count IN OUT NOCOPY NUMBER,
399 x_msg_data IN OUT NOCOPY VARCHAR2)
400 IS
401 CURSOR c_gt IS
402 SELECT ar_distribution_split_s.NEXTVAL
403 FROM DUAL;
404 no_sequence EXCEPTION;
405 BEGIN
406 IF PG_DEBUG = 'Y' THEN
407 localdebug('arp_det_dist_pkg.get_gt_sequence()+');
408 END IF;
409 OPEN c_gt;
410 FETCH c_gt INTO x_gt_id;
411 IF c_gt%NOTFOUND THEN
412 RAISE no_sequence;
413 END IF;
414 CLOSE c_gt;
415 IF PG_DEBUG = 'Y' THEN
416 localdebug('arp_det_dist_pkg.get_gt_sequence()-');
417 END IF;
418 EXCEPTION
419 WHEN no_sequence THEN
420 IF c_gt%ISOPEN THEN
421 CLOSE c_gt;
422 END IF;
423 IF PG_DEBUG = 'Y' THEN
424 localdebug('EXCEPTION no_sequence in in arp_dte_dist_pkg.get_gt_sequence');
425 END IF;
426 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
427 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR' );
428 FND_MESSAGE.SET_TOKEN( 'TEXT', 'EXCEPTION no_sequence in arp_dte_dist_pkg.get_gt_sequence');
429 FND_MSG_PUB.ADD;
430 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
431 p_count => x_msg_count,
432 p_data => x_msg_data);
433 END get_gt_sequence;
434 --}
435
436
437 PROCEDURE localdebug(p_txt IN VARCHAR2) IS
438 BEGIN
439 IF PG_DEBUG = 'Y' THEN
440 arp_debug.debug(p_txt);
441 END IF;
442 END;
443
444
445 PROCEDURE set_mode_process
446 (p_customer_trx IN ra_customer_trx%ROWTYPE,
447 p_from_llca IN VARCHAR2 DEFAULT 'N' )
448 IS
449 CURSOR cu_trx IS
450 SELECT * FROM ra_customer_trx
451 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
452 l_mark VARCHAR2(30);
453 BEGIN
454 IF PG_DEBUG = 'Y' THEN
455 localdebug('arp_det_dist_pkg.set_mode_process()+');
456 localdebug(' p_customer_trx.customer_trx_id :'||p_customer_trx.customer_trx_id);
457 localdebug(' p_customer_trx.upgrade_method :'||p_customer_trx.upgrade_method);
458 END IF;
459
460 IF p_customer_trx.upgrade_method IS NULL THEN
461 OPEN cu_trx;
462 FETCH cu_trx INTO g_cust_inv_rec;
463 IF cu_trx%NOTFOUND THEN
464 RAISE no_data_found;
465 ELSE
466 l_mark := g_cust_inv_rec.upgrade_method;
467 END IF;
468 CLOSE cu_trx;
469 ELSE
470 l_mark := p_customer_trx.upgrade_method;
471 END IF;
472
473 IF l_mark = 'R12' THEN
474 g_mode_process := 'R12';
475 ELSIF l_mark = 'R12_11IMFAR' THEN
476 g_mode_process := 'R12_11IMFAR';
477 ELSIF l_mark = 'R12_11ICASH' THEN
478 g_mode_process := 'R12_11ICASH';
479 --{
480 ELSIF l_mark = 'R12_NLB' THEN
481 g_mode_process := 'R12_NLB';
482 --}
483 ELSE
484 g_mode_process := 'R12_NLB';
485 END IF;
486 IF PG_DEBUG = 'Y' THEN
487 localdebug(' g_mode_process :'||g_mode_process);
488 localdebug('arp_det_dist_pkg.set_mode_process()-');
489 END IF;
490
491 END;
492 --}
493
494
495 PROCEDURE stamping_ra
496 (p_app_id IN NUMBER)
497 IS
498 BEGIN
499 --
500 -- application on a 11i Mfar transaction with Mfar adjustments
501 --
502 IF g_mode_process = 'R12_11IMFAR' THEN
503
504 UPDATE ar_receivable_applications
505 SET upgrade_method = 'R12_11IMFAR'
506 WHERE receivable_application_id = p_app_id;
507
508 --
509 -- Application on a R12 transaction
510 -- Note all 11i transactions without applications will be stamped as R12
511 --
512 ELSIF g_mode_process IN ('R12','R12_NLB') THEN
513
514 UPDATE ar_receivable_applications
515 SET upgrade_method = 'R12'
516 WHERE receivable_application_id = p_app_id;
517
518 --
519 -- application on a 11i transaction with 11i adjustments (no Mfar)
520 --
521 ELSIF g_mode_process = 'R12_11ICASH' THEN
522
523 UPDATE ar_receivable_applications
524 SET upgrade_method = 'R12_11ICASH'
525 WHERE receivable_application_id = p_app_id;
526
527 END IF;
528 END;
529
530 PROCEDURE stamping_adj
531 (p_adj_id IN NUMBER)
532 IS
533 BEGIN
534
535 -- Adjustment has upgrade_method as
536 -- 11I -- At downtime upgrade
537 -- 11IMFAR -- * At 11I Mfar transaction with Mfar adjustment being applied in R12
538 -- done in set_original_rem_amt procedure
539 -- * At extracted posting time if the adjustment is marked as 11I
540 -- we need to update this flag to retrieve Mfar distributions
541 -- Note this process is needed when application is getting posted
542 -- R12 -- At the end of nornal process
543 IF g_mode_process IN ('R12','R12_NLB','R12_11ICASH','R12_11IMFAR') THEN
544
545 UPDATE ar_adjustments
546 SET upgrade_method = 'R12'
547 WHERE adjustment_id = p_adj_id;
548
549 END IF;
550 END;
551
552
553 --
554 -- Function procedure declaration
555 --
556 /*-----------------------------------------------------------------------+
557 | plsql_proration |
558 +-----------------------------------------------------------------------+
559 | Does the proration based on the input pro_res_tbl_type parameter |
560 | structure |
561 +-----------------------------------------------------------------------+
562 | parameter IN OUT pro_res_tbl_type |
563 +-----------------------------------------------------------------------*/
564 PROCEDURE plsql_proration
565 ( x_tab IN OUT NOCOPY pro_res_tbl_type,
566 x_group_tbl IN OUT NOCOPY group_tbl_type,
567 -- ADJ and APP
568 x_run_amt IN OUT NOCOPY NUMBER,
569 x_run_alloc IN OUT NOCOPY NUMBER,
570 x_run_acctd_amt IN OUT NOCOPY NUMBER,
571 x_run_acctd_alloc IN OUT NOCOPY NUMBER,
572 x_run_chrg_amt IN OUT NOCOPY NUMBER,
573 x_run_chrg_alloc IN OUT NOCOPY NUMBER,
574 x_run_chrg_acctd_amt IN OUT NOCOPY NUMBER,
575 x_run_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
576 x_run_frt_amt IN OUT NOCOPY NUMBER,
577 x_run_frt_alloc IN OUT NOCOPY NUMBER,
578 x_run_frt_acctd_amt IN OUT NOCOPY NUMBER,
579 x_run_frt_acctd_alloc IN OUT NOCOPY NUMBER,
580 x_run_tax_amt IN OUT NOCOPY NUMBER,
581 x_run_tax_alloc IN OUT NOCOPY NUMBER,
582 x_run_tax_acctd_amt IN OUT NOCOPY NUMBER,
583 x_run_tax_acctd_alloc IN OUT NOCOPY NUMBER,
584 -- ED
585 x_run_ed_amt IN OUT NOCOPY NUMBER,
586 x_run_ed_alloc IN OUT NOCOPY NUMBER,
587 x_run_ed_acctd_amt IN OUT NOCOPY NUMBER,
588 x_run_ed_acctd_alloc IN OUT NOCOPY NUMBER,
589 x_run_ed_chrg_amt IN OUT NOCOPY NUMBER,
590 x_run_ed_chrg_alloc IN OUT NOCOPY NUMBER,
591 x_run_ed_chrg_acctd_amt IN OUT NOCOPY NUMBER,
592 x_run_ed_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
593 x_run_ed_frt_amt IN OUT NOCOPY NUMBER,
594 x_run_ed_frt_alloc IN OUT NOCOPY NUMBER,
595 x_run_ed_frt_acctd_amt IN OUT NOCOPY NUMBER,
596 x_run_ed_frt_acctd_alloc IN OUT NOCOPY NUMBER,
597 x_run_ed_tax_amt IN OUT NOCOPY NUMBER,
598 x_run_ed_tax_alloc IN OUT NOCOPY NUMBER,
599 x_run_ed_tax_acctd_amt IN OUT NOCOPY NUMBER,
600 x_run_ed_tax_acctd_alloc IN OUT NOCOPY NUMBER,
601 -- UNED
602 x_run_uned_amt IN OUT NOCOPY NUMBER,
603 x_run_uned_alloc IN OUT NOCOPY NUMBER,
604 x_run_uned_acctd_amt IN OUT NOCOPY NUMBER,
605 x_run_uned_acctd_alloc IN OUT NOCOPY NUMBER,
606 x_run_uned_chrg_amt IN OUT NOCOPY NUMBER,
607 x_run_uned_chrg_alloc IN OUT NOCOPY NUMBER,
608 x_run_uned_chrg_acctd_amt IN OUT NOCOPY NUMBER,
609 x_run_uned_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
610 x_run_uned_frt_amt IN OUT NOCOPY NUMBER,
611 x_run_uned_frt_alloc IN OUT NOCOPY NUMBER,
612 x_run_uned_frt_acctd_amt IN OUT NOCOPY NUMBER,
613 x_run_uned_frt_acctd_alloc IN OUT NOCOPY NUMBER,
614 x_run_uned_tax_amt IN OUT NOCOPY NUMBER,
615 x_run_uned_tax_alloc IN OUT NOCOPY NUMBER,
616 x_run_uned_tax_acctd_amt IN OUT NOCOPY NUMBER,
617 x_run_uned_tax_acctd_alloc IN OUT NOCOPY NUMBER);
618
619 /*-----------------------------------------------------------------------+
620 | update_line |
621 +-----------------------------------------------------------------------+
622 | Read ra_ar_gt for proration info |
623 | Does the proration plsql_proration |
624 | update ra_ar_gt with the result |
625 | for lines of a transaction |
626 +-----------------------------------------------------------------------+
627 | parameter: |
628 | p_customer_trx_id transaction id |
629 | p_gt_id global id |
630 +-----------------------------------------------------------------------*/
631 PROCEDURE update_line
632 (p_gt_id IN VARCHAR2,
633 p_customer_trx_id IN NUMBER,
634 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
635
636 /*-------------------------------------------------------------------------+
637 | get_invoice_line_info |
638 +-------------------------------------------------------------------------+
639 | parameter : |
640 | p_gt_id global temporary id |
641 | p_customer_trx_id transaction id |
642 | p_ae_sys_rec receivable system parameter |
643 | p_mode NORMAL / REMESTIM |
644 +-------------------------------------------------------------------------*/
645 PROCEDURE get_invoice_line_info
646 (p_gt_id IN VARCHAR2,
647 p_customer_trx_id IN NUMBER,
648 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
649 p_mode IN VARCHAR2);
650
651 /*-------------------------------------------------------------------------+
652 | get_invoice_line_info_per_grp |
653 +-------------------------------------------------------------------------+
654 | parameter : |
655 | p_gt_id global temporary id |
656 | p_customer_trx_id transaction id |
657 | p_source_data_key1..5 group identification |
658 | p_ae_sys_rec receivable system parameter |
659 +-------------------------------------------------------------------------*/
660 PROCEDURE get_invoice_line_info_per_grp
661 (p_gt_id IN VARCHAR2,
662 p_customer_trx_id IN NUMBER,
663 -- p_group_id IN VARCHAR2,
664 --{HYUBPAGP
665 p_source_data_key1 IN VARCHAR2,
666 p_source_data_key2 IN VARCHAR2,
667 p_source_data_key3 IN VARCHAR2,
668 p_source_data_key4 IN VARCHAR2,
669 p_source_data_key5 IN VARCHAR2,
670 --}
671 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
672
673 /*-------------------------------------------------------------------------+
674 | get_invoice_line_info_per_line |
675 +-------------------------------------------------------------------------+
676 | parameter : |
677 | p_gt_id global temporary id |
678 | p_customer_trx_id transaction id |
679 | p_customer_trx_line_id customer_trx_line_id |
680 | p_ae_sys_rec receivable system parameter |
681 +-------------------------------------------------------------------------*/
682 PROCEDURE get_invoice_line_info_per_line
683 (p_gt_id IN VARCHAR2,
684 p_customer_trx_id IN NUMBER,
685 p_customer_trx_line_id IN NUMBER,
686 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
687 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
688
689 /*-------------------------------------------------------------------------+
690 | prepare_trx_line_proration |
691 +-------------------------------------------------------------------------+
692 | This procedure determine the base |
693 | the element |
694 | the bucket |
695 | line amounts for prorations |
696 | It uses the bucket returned at the GPL gl_level |
697 | to determine the buckets |
698 +-------------------------------------------------------------------------+
699 | p_pay_adj APP / ADJ |
700 | in case of APP ED/UNED will be |
701 | kicked off. |
702 | p_adj_rec adjustment record |
703 | p_app_rec receivable application record |
704 | p_ae_sys_rec receivable system parameter |
705 +-------------------------------------------------------------------------*/
706 PROCEDURE prepare_trx_line_proration
707 (p_gt_id IN VARCHAR2,
708 p_customer_trx_id IN NUMBER,
709 p_pay_adj IN VARCHAR2,
710 p_adj_rec IN ar_adjustments%ROWTYPE,
711 p_app_rec IN ar_receivable_applications%ROWTYPE,
712 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
713
714 /*-------------------------------------------------------------------------+
715 | prepare_group_for_proration |
716 +-------------------------------------------------------------------------+
717 | This procedure determine the base |
718 | the element |
719 | the bucket |
720 | group of lines proration |
721 | It inserts into ra_ar_gt with gp_level = 'GPL' |
722 +-------------------------------------------------------------------------+
723 | p_pay_adj APP / ADJ |
724 | in case of APP ED/UNED will be |
725 | kicked off. |
726 | p_adj_rec adjustment record |
727 | p_app_rec receivable application record |
728 | p_ae_sys_rec receivable system parameter |
729 +-------------------------------------------------------------------------*/
730 PROCEDURE prepare_group_for_proration
731 (p_gt_id IN VARCHAR2,
732 p_customer_trx_id IN NUMBER,
733 p_pay_adj IN VARCHAR2,
734 p_adj_rec IN ar_adjustments%ROWTYPE,
735 p_app_rec IN ar_receivable_applications%ROWTYPE,
736 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
737
738 /*-------------------------------------------------------------------------+
739 | update_ctl_rem_orig |
740 +-------------------------------------------------------------------------+
741 | Update ra_customer_trx_lines |
742 | remaining and original amount |
743 | base on result in ra_ar_gt |
744 +-------------------------------------------------------------------------+
745 | parameter: |
746 | p_gt_id global id |
747 | p_customer_trx_id transaction id |
748 | p_pay_adj Application or Adjustment |
749 | p_customer_trx_line_id transaction line id |
750 | p_source_data_key1..5 group identification |
751 | p_log_inv_line
752 | p_ae_sys_rec system parameter |
753 +-------------------------------------------------------------------------*/
754 PROCEDURE update_ctl_rem_orig
755 (p_gt_id IN VARCHAR2,
756 p_customer_trx_id IN NUMBER,
757 p_pay_adj IN VARCHAR2,
758 p_customer_trx_line_id IN NUMBER DEFAULT NULL,
759 -- p_group_id IN VARCHAR2 DEFAULT NULL,
760 --{HYUBPAGP
761 p_source_data_key1 IN VARCHAR2 DEFAULT NULL,
762 p_source_data_key2 IN VARCHAR2 DEFAULT NULL,
763 p_source_data_key3 IN VARCHAR2 DEFAULT NULL,
764 p_source_data_key4 IN VARCHAR2 DEFAULT NULL,
765 p_source_data_key5 IN VARCHAR2 DEFAULT NULL,
766 --}
767 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
768 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
769
770
771 /*-------------------------------------------------------------------------+
772 | get_inv_dist |
773 +-------------------------------------------------------------------------+
774 | parameter : |
775 | p_pay_adj APP / ADJ / ED / UNED |
776 | p_gt_id global temporary id |
777 | p_customer_trx_id transaction id |
778 | p_adj_rec adjustment record |
779 | p_app_rec receivable application record |
780 | p_ae_sys_rec receivable system parameter |
781 +-------------------------------------------------------------------------*/
782 PROCEDURE get_inv_dist
783 (p_pay_adj IN VARCHAR2,
784 p_customer_trx_id IN NUMBER,
785 p_gt_id IN VARCHAR2,
786 p_adj_rec IN ar_adjustments%ROWTYPE,
787 p_app_rec IN ar_receivable_applications%ROWTYPE,
788 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
789
790
791 /*-------------------------------------------------------------------------+
792 | update_group_line |
793 +-------------------------------------------------------------------------+
794 | Read ra_ar_gt for proration info |
795 | Does the proration plsql_proration |
796 | update ra_ar_gt with the result |
797 | for group of line of all lines of a invoice |
798 +-------------------------------------------------------------------------+
799 | parameter: |
800 | p_customer_trx_id transaction id |
801 | p_gt_id global id |
802 | p_ae_sys_rec system parameter |
803 +-------------------------------------------------------------------------*/
804 PROCEDURE update_group_line
805 (p_gt_id IN VARCHAR2,
806 p_customer_trx_id IN NUMBER,
807 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
808
809 /*-------------------------------------------------------------------------+
810 | create_split_distribution |
811 +-------------------------------------------------------------------------+
812 | create records in ra_ar_concile |
813 | activity on a trx |
814 +-------------------------------------------------------------------------+
815 | parameters: |
816 | p_pay_adj Application or Adjustment |
817 | p_customer_trx_id transaction id |
818 | p_gt_id global id |
819 | p_app_level TRANSACTION/GROUP/LINE |
820 | p_ae_sys_rec ar syst param |
821 +-------------------------------------------------------------------------*/
822 PROCEDURE create_split_distribution
823 (p_pay_adj IN VARCHAR2,
824 p_customer_trx_id IN NUMBER,
825 p_gt_id IN VARCHAR2,
826 p_app_level IN VARCHAR2,
827 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
828
829 /*-------------------------------------------------------------------------+
830 | adjustment_detemination |
831 +-------------------------------------------------------------------------+
832 | ajustment boundary condition treatment |
833 +-------------------------------------------------------------------------+
834 | parameters: |
835 | p_customer_trx_id transaction id |
836 | p_gt_id global id |
837 | p_pay_adj ADJ/APP/ED/UNED |
838 | p_ae_sys_rec ar syst param |
839 | p_adj_rec adjustment record |
840 +-------------------------------------------------------------------------*/
841 PROCEDURE adjustment_detemination
842 (p_customer_trx_id IN NUMBER,
843 p_gt_id IN VARCHAR2,
844 p_pay_adj IN VARCHAR2,
845 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
846 p_adj_rec IN ar_adjustments%ROWTYPE);
847
848 /*-------------------------------------------------------------------------+
849 | proration_app_dist_trx |
850 +-------------------------------------------------------------------------+
851 | does the proration at distrib level and create the detail distributions |
852 | for application |
853 +-------------------------------------------------------------------------+
854 | parameters: |
855 | p_customer_trx_id transaction id |
856 | p_gt_id global id |
857 | p_app_level LINE/GROUP/TRANSACTION |
858 | p_ae_sys_rec ar syst param |
859 | p_app_rec application record |
860 +-------------------------------------------------------------------------*/
861 PROCEDURE proration_app_dist_trx
862 (p_gt_id IN VARCHAR2,
863 p_app_level IN VARCHAR2,
864 p_customer_trx_id IN NUMBER,
865 p_app_rec IN ar_receivable_applications%ROWTYPE,
866 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
867
868 PROCEDURE proration_adj_dist_trx
869 (p_gt_id IN VARCHAR2,
870 p_app_level IN VARCHAR2,
871 p_customer_trx_id IN NUMBER,
872 p_adj_rec IN ar_adjustments%ROWTYPE,
873 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type);
874
875
876 -------------
877 -- Body of the package
878 -------------
879 /*------------------------------------------+
880 | return_existing_group is used internally |
881 | by plsql_proration to return an existing|
882 | groupe order happens to be wrong |
883 +------------------------------------------*/
884 PROCEDURE return_existing_group
885 (p_groupe IN VARCHAR2,
886 x_group_tbl IN OUT NOCOPY group_tbl_type,
887 x_exist IN OUT NOCOPY BOOLEAN,
888 -- ADJ and APP
889 x_run_amt IN OUT NOCOPY NUMBER,
890 x_run_alloc IN OUT NOCOPY NUMBER,
891 x_run_acctd_amt IN OUT NOCOPY NUMBER,
892 x_run_acctd_alloc IN OUT NOCOPY NUMBER,
893 x_run_chrg_amt IN OUT NOCOPY NUMBER,
894 x_run_chrg_alloc IN OUT NOCOPY NUMBER,
895 x_run_chrg_acctd_amt IN OUT NOCOPY NUMBER,
896 x_run_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
897 x_run_frt_amt IN OUT NOCOPY NUMBER,
898 x_run_frt_alloc IN OUT NOCOPY NUMBER,
899 x_run_frt_acctd_amt IN OUT NOCOPY NUMBER,
900 x_run_frt_acctd_alloc IN OUT NOCOPY NUMBER,
901 x_run_tax_amt IN OUT NOCOPY NUMBER,
902 x_run_tax_alloc IN OUT NOCOPY NUMBER,
903 x_run_tax_acctd_amt IN OUT NOCOPY NUMBER,
904 x_run_tax_acctd_alloc IN OUT NOCOPY NUMBER,
905 -- ED
906 x_run_ed_amt IN OUT NOCOPY NUMBER,
907 x_run_ed_alloc IN OUT NOCOPY NUMBER,
908 x_run_ed_acctd_amt IN OUT NOCOPY NUMBER,
909 x_run_ed_acctd_alloc IN OUT NOCOPY NUMBER,
910 x_run_ed_chrg_amt IN OUT NOCOPY NUMBER,
911 x_run_ed_chrg_alloc IN OUT NOCOPY NUMBER,
912 x_run_ed_chrg_acctd_amt IN OUT NOCOPY NUMBER,
913 x_run_ed_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
914 x_run_ed_frt_amt IN OUT NOCOPY NUMBER,
915 x_run_ed_frt_alloc IN OUT NOCOPY NUMBER,
916 x_run_ed_frt_acctd_amt IN OUT NOCOPY NUMBER,
917 x_run_ed_frt_acctd_alloc IN OUT NOCOPY NUMBER,
918 x_run_ed_tax_amt IN OUT NOCOPY NUMBER,
919 x_run_ed_tax_alloc IN OUT NOCOPY NUMBER,
920 x_run_ed_tax_acctd_amt IN OUT NOCOPY NUMBER,
921 x_run_ed_tax_acctd_alloc IN OUT NOCOPY NUMBER,
922 -- UNED
923 x_run_uned_amt IN OUT NOCOPY NUMBER,
924 x_run_uned_alloc IN OUT NOCOPY NUMBER,
925 x_run_uned_acctd_amt IN OUT NOCOPY NUMBER,
926 x_run_uned_acctd_alloc IN OUT NOCOPY NUMBER,
927 x_run_uned_chrg_amt IN OUT NOCOPY NUMBER,
928 x_run_uned_chrg_alloc IN OUT NOCOPY NUMBER,
929 x_run_uned_chrg_acctd_amt IN OUT NOCOPY NUMBER,
930 x_run_uned_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
931 x_run_uned_frt_amt IN OUT NOCOPY NUMBER,
932 x_run_uned_frt_alloc IN OUT NOCOPY NUMBER,
933 x_run_uned_frt_acctd_amt IN OUT NOCOPY NUMBER,
934 x_run_uned_frt_acctd_alloc IN OUT NOCOPY NUMBER,
935 x_run_uned_tax_amt IN OUT NOCOPY NUMBER,
936 x_run_uned_tax_alloc IN OUT NOCOPY NUMBER,
937 x_run_uned_tax_acctd_amt IN OUT NOCOPY NUMBER,
938 x_run_uned_tax_acctd_alloc IN OUT NOCOPY NUMBER)
939
940 IS
941 i NUMBER(15);
942 BEGIN
943 IF PG_DEBUG = 'Y' THEN
944 localdebug('arp_det_dist_pkg.return_existing_group()+');
945 localdebug(' p_groupe '||p_groupe);
946 END IF;
947 x_exist := FALSE;
948 -- ADJ and APP
949 x_run_amt := 0;
950 x_run_alloc := 0;
951 x_run_acctd_amt := 0;
952 x_run_acctd_alloc := 0;
953 x_run_chrg_amt := 0;
954 x_run_chrg_alloc := 0;
955 x_run_chrg_acctd_amt := 0;
956 x_run_chrg_acctd_alloc := 0;
957 x_run_frt_amt := 0;
958 x_run_frt_alloc := 0;
959 x_run_frt_acctd_amt := 0;
960 x_run_frt_acctd_alloc := 0;
961 x_run_tax_amt := 0;
962 x_run_tax_alloc := 0;
963 x_run_tax_acctd_amt := 0;
964 x_run_tax_acctd_alloc := 0;
965 -- ED
966 x_run_ed_amt := 0;
967 x_run_ed_alloc := 0;
968 x_run_ed_acctd_amt := 0;
969 x_run_ed_acctd_alloc := 0;
970 x_run_ed_chrg_amt := 0;
971 x_run_ed_chrg_alloc := 0;
972 x_run_ed_chrg_acctd_amt := 0;
973 x_run_ed_chrg_acctd_alloc := 0;
974 x_run_ed_frt_amt := 0;
975 x_run_ed_frt_alloc := 0;
976 x_run_ed_frt_acctd_amt := 0;
977 x_run_ed_frt_acctd_alloc := 0;
978 x_run_ed_tax_amt := 0;
979 x_run_ed_tax_alloc := 0;
980 x_run_ed_tax_acctd_amt := 0;
981 x_run_ed_tax_acctd_alloc := 0;
982 -- UNED
983 x_run_uned_amt := 0;
984 x_run_uned_alloc := 0;
985 x_run_uned_acctd_amt := 0;
986 x_run_uned_acctd_alloc := 0;
987 x_run_uned_chrg_amt := 0;
988 x_run_uned_chrg_alloc := 0;
989 x_run_uned_chrg_acctd_amt := 0;
990 x_run_uned_chrg_acctd_alloc := 0;
991 x_run_uned_frt_amt := 0;
992 x_run_uned_frt_alloc := 0;
993 x_run_uned_frt_acctd_amt := 0;
994 x_run_uned_frt_acctd_alloc := 0;
995 x_run_uned_tax_amt := 0;
996 x_run_uned_tax_alloc := 0;
997 x_run_uned_tax_acctd_amt := 0;
998 x_run_uned_tax_acctd_alloc := 0;
999
1000 IF p_groupe <> 'NOGROUP' AND x_group_tbl.GROUPE.COUNT <> 0 THEN
1001 IF x_group_tbl.groupe_index.EXISTS( p_groupe ) THEN
1002
1003 i := x_group_tbl.groupe_index( p_groupe );
1004
1005 IF PG_DEBUG = 'Y' THEN
1006 localdebug('found in cache(hash table) index '||i);
1007 END IF;
1008
1009 x_exist := TRUE;
1010 -- ADJ and APP
1011 x_run_amt := x_group_tbl.run_amt(i);
1012 x_run_alloc := x_group_tbl.run_alloc(i);
1013 x_run_acctd_amt := x_group_tbl.run_acctd_amt(i);
1014 x_run_acctd_alloc := x_group_tbl.run_acctd_alloc(i);
1015 x_run_chrg_amt := x_group_tbl.run_chrg_amt(i);
1016 x_run_chrg_alloc := x_group_tbl.run_chrg_alloc(i);
1017 x_run_chrg_acctd_amt := x_group_tbl.run_chrg_acctd_amt(i);
1018 x_run_chrg_acctd_alloc := x_group_tbl.run_chrg_acctd_alloc(i);
1019 x_run_frt_amt := x_group_tbl.run_frt_amt(i);
1020 x_run_frt_alloc := x_group_tbl.run_frt_alloc(i);
1021 x_run_frt_acctd_amt := x_group_tbl.run_frt_acctd_amt(i);
1022 x_run_frt_acctd_alloc := x_group_tbl.run_frt_acctd_alloc(i);
1023 x_run_tax_amt := x_group_tbl.run_tax_amt(i);
1024 x_run_tax_alloc := x_group_tbl.run_tax_alloc(i);
1025 x_run_tax_acctd_amt := x_group_tbl.run_tax_acctd_amt(i);
1026 x_run_tax_acctd_alloc := x_group_tbl.run_tax_acctd_alloc(i);
1027 -- ED
1028 x_run_ed_amt := x_group_tbl.run_ed_amt(i);
1029 x_run_ed_alloc := x_group_tbl.run_ed_alloc(i);
1030 x_run_ed_acctd_amt := x_group_tbl.run_ed_acctd_amt(i);
1031 x_run_ed_acctd_alloc := x_group_tbl.run_ed_acctd_alloc(i);
1032 x_run_ed_chrg_amt := x_group_tbl.run_ed_chrg_amt(i);
1033 x_run_ed_chrg_alloc := x_group_tbl.run_ed_chrg_alloc(i);
1034 x_run_ed_chrg_acctd_amt := x_group_tbl.run_ed_chrg_acctd_amt(i);
1035 x_run_ed_chrg_acctd_alloc := x_group_tbl.run_ed_chrg_acctd_alloc(i);
1036 x_run_ed_frt_amt := x_group_tbl.run_ed_frt_amt(i);
1037 x_run_ed_frt_alloc := x_group_tbl.run_ed_frt_alloc(i);
1038 x_run_ed_frt_acctd_amt := x_group_tbl.run_ed_frt_acctd_amt(i);
1039 x_run_ed_frt_acctd_alloc := x_group_tbl.run_ed_frt_acctd_alloc(i);
1040 x_run_ed_tax_amt := x_group_tbl.run_ed_tax_amt(i);
1041 x_run_ed_tax_alloc := x_group_tbl.run_ed_tax_alloc(i);
1042 x_run_ed_tax_acctd_amt := x_group_tbl.run_ed_tax_acctd_amt(i);
1043 x_run_ed_tax_acctd_alloc := x_group_tbl.run_ed_tax_acctd_alloc(i);
1044 -- UNED
1045 x_run_uned_amt := x_group_tbl.run_uned_amt(i);
1046 x_run_uned_alloc := x_group_tbl.run_uned_alloc(i);
1047 x_run_uned_acctd_amt := x_group_tbl.run_uned_acctd_amt(i);
1048 x_run_uned_acctd_alloc := x_group_tbl.run_uned_acctd_alloc(i);
1049 x_run_uned_chrg_amt := x_group_tbl.run_uned_chrg_amt(i);
1050 x_run_uned_chrg_alloc := x_group_tbl.run_uned_chrg_alloc(i);
1051 x_run_uned_chrg_acctd_amt := x_group_tbl.run_uned_chrg_acctd_amt(i);
1052 x_run_uned_chrg_acctd_alloc := x_group_tbl.run_uned_chrg_acctd_alloc(i);
1053 x_run_uned_frt_amt := x_group_tbl.run_ed_frt_amt(i);
1054 x_run_uned_frt_alloc := x_group_tbl.run_ed_frt_alloc(i);
1055 x_run_uned_frt_acctd_amt := x_group_tbl.run_ed_frt_acctd_amt(i);
1056 x_run_uned_frt_acctd_alloc := x_group_tbl.run_ed_frt_acctd_alloc(i);
1057 x_run_uned_tax_amt := x_group_tbl.run_ed_tax_amt(i);
1058 x_run_uned_tax_alloc := x_group_tbl.run_ed_tax_alloc(i);
1059 x_run_uned_tax_acctd_amt := x_group_tbl.run_ed_tax_acctd_amt(i);
1060 x_run_uned_tax_acctd_alloc := x_group_tbl.run_ed_tax_acctd_alloc(i);
1061 -- ADJ and APP
1062 IF PG_DEBUG = 'Y' THEN
1063 localdebug(' x_run_amt :'|| x_group_tbl.run_amt(i));
1064 localdebug(' x_run_alloc :'|| x_group_tbl.run_alloc(i));
1065 localdebug(' x_run_acctd_amt :'|| x_group_tbl.run_acctd_amt(i));
1066 localdebug(' x_run_acctd_alloc :'|| x_group_tbl.run_acctd_alloc(i));
1067 localdebug(' x_run_chrg_amt :'|| x_group_tbl.run_chrg_amt(i));
1068 localdebug(' x_run_chrg_alloc :'|| x_group_tbl.run_chrg_alloc(i));
1069 localdebug(' x_run_chrg_acctd_amt :'|| x_group_tbl.run_chrg_acctd_amt(i));
1070 localdebug(' x_run_chrg_acctd_alloc :'|| x_group_tbl.run_chrg_acctd_alloc(i));
1071 localdebug(' x_run_frt_amt :'|| x_group_tbl.run_frt_amt(i));
1072 localdebug(' x_run_frt_alloc :'|| x_group_tbl.run_frt_alloc(i));
1073 localdebug(' x_run_frt_acctd_amt :'|| x_group_tbl.run_frt_acctd_amt(i));
1074 localdebug(' x_run_frt_acctd_alloc :'|| x_group_tbl.run_frt_acctd_alloc(i));
1075 localdebug(' x_run_tax_amt :'|| x_group_tbl.run_tax_amt(i));
1076 localdebug(' x_run_tax_alloc :'|| x_group_tbl.run_tax_alloc(i));
1077 localdebug(' x_run_tax_acctd_amt :'|| x_group_tbl.run_tax_acctd_amt(i));
1078 localdebug(' x_run_tax_acctd_alloc :'|| x_group_tbl.run_tax_acctd_alloc(i));
1079 -- ED
1080 localdebug(' x_run_ed_amt :'|| x_group_tbl.run_ed_amt(i));
1081 localdebug(' x_run_ed_alloc :'|| x_group_tbl.run_ed_alloc(i));
1082 localdebug(' x_run_ed_acctd_amt :'|| x_group_tbl.run_ed_acctd_amt(i));
1083 localdebug(' x_run_ed_acctd_alloc :'|| x_group_tbl.run_ed_acctd_alloc(i));
1084 localdebug(' x_run_ed_chrg_amt :'|| x_group_tbl.run_ed_chrg_amt(i));
1085 localdebug(' x_run_ed_chrg_alloc :'|| x_group_tbl.run_ed_chrg_alloc(i));
1086 localdebug(' x_run_ed_chrg_acctd_amt :'|| x_group_tbl.run_ed_chrg_acctd_amt(i));
1087 localdebug(' x_run_ed_chrg_acctd_alloc :'|| x_group_tbl.run_ed_chrg_acctd_alloc(i));
1088 localdebug(' x_run_ed_frt_amt :'|| x_group_tbl.run_ed_frt_amt(i));
1089 localdebug(' x_run_ed_frt_alloc :'|| x_group_tbl.run_ed_frt_alloc(i));
1090 localdebug(' x_run_ed_frt_acctd_amt :'|| x_group_tbl.run_ed_frt_acctd_amt(i));
1091 localdebug(' x_run_ed_frt_acctd_alloc :'|| x_group_tbl.run_ed_frt_acctd_alloc(i));
1092 localdebug(' x_run_ed_tax_amt :'|| x_group_tbl.run_ed_tax_amt(i));
1093 localdebug(' x_run_ed_tax_alloc :'|| x_group_tbl.run_ed_tax_alloc(i));
1094 localdebug(' x_run_ed_tax_acctd_amt :'|| x_group_tbl.run_ed_tax_acctd_amt(i));
1095 localdebug(' x_run_ed_tax_acctd_alloc :'|| x_group_tbl.run_ed_tax_acctd_alloc(i));
1096 -- UNED
1097 localdebug(' x_run_uned_amt :'|| x_group_tbl.run_uned_amt(i));
1098 localdebug(' x_run_uned_alloc :'|| x_group_tbl.run_uned_alloc(i));
1099 localdebug(' x_run_uned_acctd_amt :'|| x_group_tbl.run_uned_acctd_amt(i));
1100 localdebug(' x_run_uned_acctd_alloc :'|| x_group_tbl.run_uned_acctd_alloc(i));
1101 localdebug(' x_run_uned_chrg_amt :'|| x_group_tbl.run_uned_chrg_amt(i));
1102 localdebug(' x_run_uned_chrg_alloc :'|| x_group_tbl.run_uned_chrg_alloc(i));
1103 localdebug(' x_run_uned_chrg_acctd_amt :'|| x_group_tbl.run_uned_chrg_acctd_amt(i));
1104 localdebug(' x_run_uned_chrg_acctd_alloc :'|| x_group_tbl.run_uned_chrg_acctd_alloc(i));
1105 localdebug(' x_run_uned_frt_amt :'|| x_group_tbl.run_uned_frt_amt(i));
1106 localdebug(' x_run_uned_frt_alloc :'|| x_group_tbl.run_uned_frt_alloc(i));
1107 localdebug(' x_run_uned_frt_acctd_amt :'|| x_group_tbl.run_uned_frt_acctd_amt(i));
1108 localdebug(' x_run_uned_frt_acctd_alloc :'|| x_group_tbl.run_uned_frt_acctd_alloc(i));
1109 localdebug(' x_run_uned_tax_amt :'|| x_group_tbl.run_uned_tax_amt(i));
1110 localdebug(' x_run_uned_tax_alloc :'|| x_group_tbl.run_uned_tax_alloc(i));
1111 localdebug(' x_run_uned_tax_acctd_amt :'|| x_group_tbl.run_uned_tax_acctd_amt(i));
1112 localdebug(' x_run_uned_tax_acctd_alloc :'|| x_group_tbl.run_uned_tax_acctd_alloc(i));
1113 END IF;
1114 END IF;
1115 END IF;
1116 IF PG_DEBUG = 'Y' THEN
1117 localdebug('arp_det_dist_pkg.return_existing_group()-');
1118 END IF;
1119 END return_existing_group;
1120
1121 /*------------------------------------------+
1122 | store_group is used internally |
1123 | by plsql_proration to store an group |
1124 | before moving to another |
1125 +------------------------------------------*/
1126 PROCEDURE store_group
1127 (p_groupe IN VARCHAR2,
1128 -- ADJ and APP
1129 p_run_amt IN NUMBER,
1130 p_run_alloc IN NUMBER,
1131 p_run_acctd_amt IN NUMBER,
1132 p_run_acctd_alloc IN NUMBER,
1133 p_run_chrg_amt IN NUMBER,
1134 p_run_chrg_alloc IN NUMBER,
1135 p_run_chrg_acctd_amt IN NUMBER,
1136 p_run_chrg_acctd_alloc IN NUMBER,
1137 p_run_frt_amt IN NUMBER,
1138 p_run_frt_alloc IN NUMBER,
1139 p_run_frt_acctd_amt IN NUMBER,
1140 p_run_frt_acctd_alloc IN NUMBER,
1141 p_run_tax_amt IN NUMBER,
1142 p_run_tax_alloc IN NUMBER,
1143 p_run_tax_acctd_amt IN NUMBER,
1144 p_run_tax_acctd_alloc IN NUMBER,
1145 -- ED
1146 p_run_ed_amt IN NUMBER,
1147 p_run_ed_alloc IN NUMBER,
1148 p_run_ed_acctd_amt IN NUMBER,
1149 p_run_ed_acctd_alloc IN NUMBER,
1150 p_run_ed_chrg_amt IN NUMBER,
1151 p_run_ed_chrg_alloc IN NUMBER,
1152 p_run_ed_chrg_acctd_amt IN NUMBER,
1153 p_run_ed_chrg_acctd_alloc IN NUMBER,
1154 p_run_ed_frt_amt IN NUMBER,
1155 p_run_ed_frt_alloc IN NUMBER,
1156 p_run_ed_frt_acctd_amt IN NUMBER,
1157 p_run_ed_frt_acctd_alloc IN NUMBER,
1158 p_run_ed_tax_amt IN NUMBER,
1159 p_run_ed_tax_alloc IN NUMBER,
1160 p_run_ed_tax_acctd_amt IN NUMBER,
1161 p_run_ed_tax_acctd_alloc IN NUMBER,
1162 -- UNED
1163 p_run_uned_amt IN NUMBER,
1164 p_run_uned_alloc IN NUMBER,
1165 p_run_uned_acctd_amt IN NUMBER,
1166 p_run_uned_acctd_alloc IN NUMBER,
1167 p_run_uned_chrg_amt IN NUMBER,
1168 p_run_uned_chrg_alloc IN NUMBER,
1169 p_run_uned_chrg_acctd_amt IN NUMBER,
1170 p_run_uned_chrg_acctd_alloc IN NUMBER,
1171 p_run_uned_frt_amt IN NUMBER,
1172 p_run_uned_frt_alloc IN NUMBER,
1173 p_run_uned_frt_acctd_amt IN NUMBER,
1174 p_run_uned_frt_acctd_alloc IN NUMBER,
1175 p_run_uned_tax_amt IN NUMBER,
1176 p_run_uned_tax_alloc IN NUMBER,
1177 p_run_uned_tax_acctd_amt IN NUMBER,
1178 p_run_uned_tax_acctd_alloc IN NUMBER,
1179 --
1180 x_group_tbl IN OUT NOCOPY group_tbl_type)
1181 IS
1182 l_found BOOLEAN := FALSE;
1183 l_cnt NUMBER;
1184 i NUMBER(15);
1185 BEGIN
1186 IF PG_DEBUG = 'Y' THEN
1187 localdebug('arp_det_dist_pkg.store_group()+');
1188 localdebug(' p_groupe :'||p_groupe);
1189 -- ADJ and APP
1190 localdebug(' p_run_amt :'||p_run_amt);
1191 localdebug(' p_run_alloc :'||p_run_alloc);
1192 localdebug(' p_run_acctd_amt :'||p_run_acctd_amt);
1193 localdebug(' p_run_acctd_alloc :'||p_run_acctd_alloc);
1194 localdebug(' p_run_chrg_amt :'||p_run_chrg_amt);
1195 localdebug(' p_run_chrg_alloc :'||p_run_chrg_alloc);
1196 localdebug(' p_run_chrg_acctd_amt :'||p_run_chrg_acctd_amt);
1197 localdebug(' p_run_chrg_acctd_alloc:'||p_run_chrg_acctd_alloc);
1198 localdebug(' p_run_frt_amt :'||p_run_frt_amt);
1199 localdebug(' p_run_frt_alloc :'||p_run_frt_alloc);
1200 localdebug(' p_run_frt_acctd_amt :'||p_run_frt_acctd_amt);
1201 localdebug(' p_run_frt_acctd_alloc:'||p_run_frt_acctd_alloc);
1202 localdebug(' p_run_tax_amt :'||p_run_tax_amt);
1203 localdebug(' p_run_tax_alloc :'||p_run_tax_alloc);
1204 localdebug(' p_run_tax_acctd_amt :'||p_run_tax_acctd_amt);
1205 localdebug(' p_run_tax_acctd_alloc:'||p_run_tax_acctd_alloc);
1206 -- ED
1207 localdebug(' p_run_ed_amt :'||p_run_ed_amt);
1208 localdebug(' p_run_ed_alloc :'||p_run_ed_alloc);
1209 localdebug(' p_run_ed_acctd_amt :'||p_run_ed_acctd_amt);
1210 localdebug(' p_run_ed_acctd_alloc :'||p_run_ed_acctd_alloc);
1211 localdebug(' p_run_ed_chrg_amt :'||p_run_ed_chrg_amt);
1212 localdebug(' p_run_ed_chrg_alloc :'||p_run_ed_chrg_alloc);
1213 localdebug(' p_run_ed_chrg_acctd_amt :'||p_run_ed_chrg_acctd_amt);
1214 localdebug(' p_run_ed_chrg_acctd_alloc:'||p_run_ed_chrg_acctd_alloc);
1215 localdebug(' p_run_ed_frt_amt :'||p_run_ed_frt_amt);
1216 localdebug(' p_run_ed_frt_alloc :'||p_run_ed_frt_alloc);
1217 localdebug(' p_run_ed_frt_acctd_amt :'||p_run_ed_frt_acctd_amt);
1218 localdebug(' p_run_ed_frt_acctd_alloc:'||p_run_ed_frt_acctd_alloc);
1219 localdebug(' p_run_ed_tax_amt :'||p_run_ed_tax_amt);
1220 localdebug(' p_run_ed_tax_alloc :'||p_run_ed_tax_alloc);
1221 localdebug(' p_run_ed_tax_acctd_amt :'||p_run_ed_tax_acctd_amt);
1222 localdebug(' p_run_ed_tax_acctd_alloc:'||p_run_ed_tax_acctd_alloc);
1223 -- UNED
1224 localdebug(' p_run_uned_amt :'||p_run_uned_amt);
1225 localdebug(' p_run_uned_alloc :'||p_run_uned_alloc);
1226 localdebug(' p_run_uned_acctd_amt :'||p_run_uned_acctd_amt);
1227 localdebug(' p_run_uned_acctd_alloc :'||p_run_uned_acctd_alloc);
1228 localdebug(' p_run_uned_chrg_amt :'||p_run_uned_chrg_amt);
1229 localdebug(' p_run_uned_chrg_alloc :'||p_run_uned_chrg_alloc);
1230 localdebug(' p_run_uned_chrg_acctd_amt :'||p_run_uned_chrg_acctd_amt);
1231 localdebug(' p_run_uned_chrg_acctd_alloc:'||p_run_uned_chrg_acctd_alloc);
1232 localdebug(' p_run_uned_frt_amt :'||p_run_uned_frt_amt);
1233 localdebug(' p_run_uned_frt_alloc :'||p_run_uned_frt_alloc);
1234 localdebug(' p_run_uned_frt_acctd_amt :'||p_run_uned_frt_acctd_amt);
1235 localdebug(' p_run_uned_frt_acctd_alloc:'||p_run_uned_frt_acctd_alloc);
1236 localdebug(' p_run_uned_tax_amt :'||p_run_uned_tax_amt);
1237 localdebug(' p_run_uned_tax_alloc :'||p_run_uned_tax_alloc);
1238 localdebug(' p_run_uned_tax_acctd_amt :'||p_run_uned_tax_acctd_amt);
1239 localdebug(' p_run_uned_tax_acctd_alloc:'||p_run_uned_tax_acctd_alloc);
1240 END IF;
1241
1242 IF p_groupe <> 'NOGROUP' THEN
1243 IF x_group_tbl.groupe.COUNT = 0 THEN
1244 x_group_tbl.groupe(1) := p_groupe;
1245 -- ADJ and APP
1246 x_group_tbl.run_amt(1) := p_run_amt;
1247 x_group_tbl.run_alloc(1) := p_run_alloc;
1248 x_group_tbl.run_acctd_amt(1) := p_run_acctd_amt;
1249 x_group_tbl.run_acctd_alloc(1) := p_run_acctd_alloc;
1250 x_group_tbl.run_chrg_amt(1) := p_run_chrg_amt;
1251 x_group_tbl.run_chrg_alloc(1) := p_run_chrg_alloc;
1252 x_group_tbl.run_chrg_acctd_amt(1) := p_run_chrg_acctd_amt;
1253 x_group_tbl.run_chrg_acctd_alloc(1) := p_run_chrg_acctd_alloc;
1254 x_group_tbl.run_frt_amt(1) := p_run_frt_amt;
1255 x_group_tbl.run_frt_alloc(1) := p_run_frt_alloc;
1256 x_group_tbl.run_frt_acctd_amt(1) := p_run_frt_acctd_amt;
1257 x_group_tbl.run_frt_acctd_alloc(1) := p_run_frt_acctd_alloc;
1258 x_group_tbl.run_tax_amt(1) := p_run_tax_amt;
1259 x_group_tbl.run_tax_alloc(1) := p_run_tax_alloc;
1260 x_group_tbl.run_tax_acctd_amt(1) := p_run_tax_acctd_amt;
1261 x_group_tbl.run_tax_acctd_alloc(1) := p_run_tax_acctd_alloc;
1262 -- ED
1263 x_group_tbl.run_ed_amt(1) := p_run_ed_amt;
1264 x_group_tbl.run_ed_alloc(1) := p_run_ed_alloc;
1265 x_group_tbl.run_ed_acctd_amt(1) := p_run_ed_acctd_amt;
1266 x_group_tbl.run_ed_acctd_alloc(1) := p_run_ed_acctd_alloc;
1267 x_group_tbl.run_ed_chrg_amt(1) := p_run_ed_chrg_amt;
1268 x_group_tbl.run_ed_chrg_alloc(1) := p_run_ed_chrg_alloc;
1269 x_group_tbl.run_ed_chrg_acctd_amt(1) := p_run_ed_chrg_acctd_amt;
1270 x_group_tbl.run_ed_chrg_acctd_alloc(1) := p_run_ed_chrg_acctd_alloc;
1271 x_group_tbl.run_ed_frt_amt(1) := p_run_ed_frt_amt;
1272 x_group_tbl.run_ed_frt_alloc(1) := p_run_ed_frt_alloc;
1273 x_group_tbl.run_ed_frt_acctd_amt(1) := p_run_ed_frt_acctd_amt;
1274 x_group_tbl.run_ed_frt_acctd_alloc(1) := p_run_ed_frt_acctd_alloc;
1275 x_group_tbl.run_ed_tax_amt(1) := p_run_ed_tax_amt;
1276 x_group_tbl.run_ed_tax_alloc(1) := p_run_ed_tax_alloc;
1277 x_group_tbl.run_ed_tax_acctd_amt(1) := p_run_ed_tax_acctd_amt;
1278 x_group_tbl.run_ed_tax_acctd_alloc(1) := p_run_ed_tax_acctd_alloc;
1279 -- UNED
1280 x_group_tbl.run_uned_amt(1) := p_run_uned_amt;
1281 x_group_tbl.run_uned_alloc(1) := p_run_uned_alloc;
1282 x_group_tbl.run_uned_acctd_amt(1) := p_run_uned_acctd_amt;
1283 x_group_tbl.run_uned_acctd_alloc(1) := p_run_uned_acctd_alloc;
1284 x_group_tbl.run_uned_chrg_amt(1) := p_run_uned_chrg_amt;
1285 x_group_tbl.run_uned_chrg_alloc(1) := p_run_uned_chrg_alloc;
1286 x_group_tbl.run_uned_chrg_acctd_amt(1) := p_run_uned_chrg_acctd_amt;
1287 x_group_tbl.run_uned_chrg_acctd_alloc(1) := p_run_uned_chrg_acctd_alloc;
1288 x_group_tbl.run_uned_frt_amt(1) := p_run_uned_frt_amt;
1289 x_group_tbl.run_uned_frt_alloc(1) := p_run_uned_frt_alloc;
1290 x_group_tbl.run_uned_frt_acctd_amt(1) := p_run_uned_frt_acctd_amt;
1291 x_group_tbl.run_uned_frt_acctd_alloc(1) := p_run_uned_frt_acctd_alloc;
1292 x_group_tbl.run_uned_tax_amt(1) := p_run_uned_tax_amt;
1293 x_group_tbl.run_uned_tax_alloc(1) := p_run_uned_tax_alloc;
1294 x_group_tbl.run_uned_tax_acctd_amt(1) := p_run_uned_tax_acctd_amt;
1295 x_group_tbl.run_uned_tax_acctd_alloc(1) := p_run_uned_tax_acctd_alloc;
1296 x_group_tbl.groupe_index(p_groupe) := 1;
1297
1298 ELSIF x_group_tbl.groupe_index.EXISTS( p_groupe ) THEN
1299 i := x_group_tbl.groupe_index( p_groupe );
1300 IF PG_DEBUG = 'Y' THEN
1301 localdebug('found in cache(hash table) index '||i);
1302 localdebug('p_groupe '||p_groupe);
1303 END IF;
1304
1305 x_group_tbl.groupe(i) := p_groupe;
1306 -- ADJ and APP
1307 x_group_tbl.run_amt(i) := p_run_amt;
1308 x_group_tbl.run_alloc(i) := p_run_alloc;
1309 x_group_tbl.run_acctd_amt(i) := p_run_acctd_amt;
1310 x_group_tbl.run_acctd_alloc(i) := p_run_acctd_alloc;
1311 x_group_tbl.run_chrg_amt(i) := p_run_chrg_amt;
1312 x_group_tbl.run_chrg_alloc(i) := p_run_chrg_alloc;
1313 x_group_tbl.run_chrg_acctd_amt(i) := p_run_chrg_acctd_amt;
1314 x_group_tbl.run_chrg_acctd_alloc(i) := p_run_chrg_acctd_alloc;
1315 x_group_tbl.run_frt_amt(i) := p_run_frt_amt;
1316 x_group_tbl.run_frt_alloc(i) := p_run_frt_alloc;
1317 x_group_tbl.run_frt_acctd_amt(i) := p_run_frt_acctd_amt;
1318 x_group_tbl.run_frt_acctd_alloc(i) := p_run_frt_acctd_alloc;
1319 x_group_tbl.run_tax_amt(i) := p_run_tax_amt;
1320 x_group_tbl.run_tax_alloc(i) := p_run_tax_alloc;
1321 x_group_tbl.run_tax_acctd_amt(i) := p_run_tax_acctd_amt;
1322 x_group_tbl.run_tax_acctd_alloc(i) := p_run_tax_acctd_alloc;
1323 -- ED
1324 x_group_tbl.run_ed_amt(i) := p_run_ed_amt;
1325 x_group_tbl.run_ed_alloc(i) := p_run_ed_alloc;
1326 x_group_tbl.run_ed_acctd_amt(i) := p_run_ed_acctd_amt;
1327 x_group_tbl.run_ed_acctd_alloc(i) := p_run_ed_acctd_alloc;
1328 x_group_tbl.run_ed_chrg_amt(i) := p_run_ed_chrg_amt;
1329 x_group_tbl.run_ed_chrg_alloc(i) := p_run_ed_chrg_alloc;
1330 x_group_tbl.run_ed_chrg_acctd_amt(i) := p_run_ed_chrg_acctd_amt;
1331 x_group_tbl.run_ed_chrg_acctd_alloc(i) := p_run_ed_chrg_acctd_alloc;
1332 x_group_tbl.run_ed_frt_amt(i) := p_run_ed_frt_amt;
1333 x_group_tbl.run_ed_frt_alloc(i) := p_run_ed_frt_alloc;
1334 x_group_tbl.run_ed_frt_acctd_amt(i) := p_run_ed_frt_acctd_amt;
1335 x_group_tbl.run_ed_frt_acctd_alloc(i) := p_run_ed_frt_acctd_alloc;
1336 x_group_tbl.run_ed_tax_amt(i) := p_run_ed_tax_amt;
1337 x_group_tbl.run_ed_tax_alloc(i) := p_run_ed_tax_alloc;
1338 x_group_tbl.run_ed_tax_acctd_amt(i) := p_run_ed_tax_acctd_amt;
1339 x_group_tbl.run_ed_tax_acctd_alloc(i) := p_run_ed_tax_acctd_alloc;
1340 -- UNED
1341 x_group_tbl.run_uned_amt(i) := p_run_uned_amt;
1342 x_group_tbl.run_uned_alloc(i) := p_run_uned_alloc;
1343 x_group_tbl.run_uned_acctd_amt(i) := p_run_uned_acctd_amt;
1344 x_group_tbl.run_uned_acctd_alloc(i) := p_run_uned_acctd_alloc;
1345 x_group_tbl.run_uned_chrg_amt(i) := p_run_uned_chrg_amt;
1346 x_group_tbl.run_uned_chrg_alloc(i) := p_run_uned_chrg_alloc;
1347 x_group_tbl.run_uned_chrg_acctd_amt(i) := p_run_uned_chrg_acctd_amt;
1348 x_group_tbl.run_uned_chrg_acctd_alloc(i) := p_run_uned_chrg_acctd_alloc;
1349 x_group_tbl.run_uned_frt_amt(i) := p_run_uned_frt_amt;
1350 x_group_tbl.run_uned_frt_alloc(i) := p_run_uned_frt_alloc;
1351 x_group_tbl.run_uned_frt_acctd_amt(i) := p_run_uned_frt_acctd_amt;
1352 x_group_tbl.run_uned_frt_acctd_alloc(i) := p_run_uned_frt_acctd_alloc;
1353 x_group_tbl.run_uned_tax_amt(i) := p_run_uned_tax_amt;
1354 x_group_tbl.run_uned_tax_alloc(i) := p_run_uned_tax_alloc;
1355 x_group_tbl.run_uned_tax_acctd_amt(i) := p_run_uned_tax_acctd_amt;
1356 x_group_tbl.run_uned_tax_acctd_alloc(i) := p_run_uned_tax_acctd_alloc;
1357 ELSE
1358 l_cnt := x_group_tbl.groupe.COUNT;
1359 x_group_tbl.groupe_index( p_groupe ) := l_cnt + 1;
1360
1361 IF PG_DEBUG = 'Y' THEN
1362 localdebug('Added to cache(hash table) index '||l_cnt);
1363 localdebug('p_groupe '||p_groupe);
1364 END IF;
1365
1366 x_group_tbl.groupe(l_cnt+1) := p_groupe;
1367 -- ADJ and APP
1368 x_group_tbl.run_amt(l_cnt+1) := p_run_amt;
1369 x_group_tbl.run_alloc(l_cnt+1) := p_run_alloc;
1370 x_group_tbl.run_acctd_amt(l_cnt+1) := p_run_acctd_amt;
1371 x_group_tbl.run_acctd_alloc(l_cnt+1) := p_run_acctd_alloc;
1372 x_group_tbl.run_chrg_amt(l_cnt+1) := p_run_chrg_amt;
1373 x_group_tbl.run_chrg_alloc(l_cnt+1) := p_run_chrg_alloc;
1374 x_group_tbl.run_chrg_acctd_amt(l_cnt+1) := p_run_chrg_acctd_amt;
1375 x_group_tbl.run_chrg_acctd_alloc(l_cnt+1) := p_run_chrg_acctd_alloc;
1376 x_group_tbl.run_frt_amt(l_cnt+1) := p_run_frt_amt;
1377 x_group_tbl.run_frt_alloc(l_cnt+1) := p_run_frt_alloc;
1378 x_group_tbl.run_frt_acctd_amt(l_cnt+1) := p_run_frt_acctd_amt;
1379 x_group_tbl.run_frt_acctd_alloc(l_cnt+1) := p_run_frt_acctd_alloc;
1380 x_group_tbl.run_tax_amt(l_cnt+1) := p_run_tax_amt;
1381 x_group_tbl.run_tax_alloc(l_cnt+1) := p_run_tax_alloc;
1382 x_group_tbl.run_tax_acctd_amt(l_cnt+1) := p_run_tax_acctd_amt;
1383 x_group_tbl.run_tax_acctd_alloc(l_cnt+1) := p_run_tax_acctd_alloc;
1384 -- ED
1385 x_group_tbl.run_ed_amt(l_cnt+1) := p_run_ed_amt;
1386 x_group_tbl.run_ed_alloc(l_cnt+1) := p_run_ed_alloc;
1387 x_group_tbl.run_ed_acctd_amt(l_cnt+1) := p_run_ed_acctd_amt;
1388 x_group_tbl.run_ed_acctd_alloc(l_cnt+1) := p_run_ed_acctd_alloc;
1389 x_group_tbl.run_ed_chrg_amt(l_cnt+1) := p_run_ed_chrg_amt;
1390 x_group_tbl.run_ed_chrg_alloc(l_cnt+1) := p_run_ed_chrg_alloc;
1391 x_group_tbl.run_ed_chrg_acctd_amt(l_cnt+1) := p_run_ed_chrg_acctd_amt;
1392 x_group_tbl.run_ed_chrg_acctd_alloc(l_cnt+1) := p_run_ed_chrg_acctd_alloc;
1393 x_group_tbl.run_ed_frt_amt(l_cnt+1) := p_run_ed_frt_amt;
1394 x_group_tbl.run_ed_frt_alloc(l_cnt+1) := p_run_ed_frt_alloc;
1395 x_group_tbl.run_ed_frt_acctd_amt(l_cnt+1) := p_run_ed_frt_acctd_amt;
1396 x_group_tbl.run_ed_frt_acctd_alloc(l_cnt+1) := p_run_ed_frt_acctd_alloc;
1397 x_group_tbl.run_ed_tax_amt(l_cnt+1) := p_run_ed_tax_amt;
1398 x_group_tbl.run_ed_tax_alloc(l_cnt+1) := p_run_ed_tax_alloc;
1399 x_group_tbl.run_ed_tax_acctd_amt(l_cnt+1) := p_run_ed_tax_acctd_amt;
1400 x_group_tbl.run_ed_tax_acctd_alloc(l_cnt+1) := p_run_ed_tax_acctd_alloc;
1401 -- UNED
1402 x_group_tbl.run_uned_amt(l_cnt+1) := p_run_uned_amt;
1403 x_group_tbl.run_uned_alloc(l_cnt+1) := p_run_uned_alloc;
1404 x_group_tbl.run_uned_acctd_amt(l_cnt+1) := p_run_uned_acctd_amt;
1405 x_group_tbl.run_uned_acctd_alloc(l_cnt+1) := p_run_uned_acctd_alloc;
1406 x_group_tbl.run_uned_chrg_amt(l_cnt+1) := p_run_uned_chrg_amt;
1407 x_group_tbl.run_uned_chrg_alloc(l_cnt+1) := p_run_uned_chrg_alloc;
1408 x_group_tbl.run_uned_chrg_acctd_amt(l_cnt+1) := p_run_uned_chrg_acctd_amt;
1409 x_group_tbl.run_uned_chrg_acctd_alloc(l_cnt+1) := p_run_uned_chrg_acctd_alloc;
1410 x_group_tbl.run_uned_frt_amt(l_cnt+1) := p_run_uned_frt_amt;
1411 x_group_tbl.run_uned_frt_alloc(l_cnt+1) := p_run_uned_frt_alloc;
1412 x_group_tbl.run_uned_frt_acctd_amt(l_cnt+1) := p_run_uned_frt_acctd_amt;
1413 x_group_tbl.run_uned_frt_acctd_alloc(l_cnt+1) := p_run_uned_frt_acctd_alloc;
1414 x_group_tbl.run_uned_tax_amt(l_cnt+1) := p_run_uned_tax_amt;
1415 x_group_tbl.run_uned_tax_alloc(l_cnt+1) := p_run_uned_tax_alloc;
1416 x_group_tbl.run_uned_tax_acctd_amt(l_cnt+1) := p_run_uned_tax_acctd_amt;
1417 x_group_tbl.run_uned_tax_acctd_alloc(l_cnt+1) := p_run_uned_tax_acctd_alloc;
1418 END IF;
1419 END IF;
1420 IF PG_DEBUG = 'Y' THEN
1421 localdebug('arp_det_dist_pkg.store_group()-');
1422 END IF;
1423 END;
1424
1425
1426 PROCEDURE plsql_proration
1427 ( x_tab IN OUT NOCOPY pro_res_tbl_type,
1428 x_group_tbl IN OUT NOCOPY group_tbl_type,
1429 -- ADJ and APP
1430 x_run_amt IN OUT NOCOPY NUMBER,
1431 x_run_alloc IN OUT NOCOPY NUMBER,
1432 x_run_acctd_amt IN OUT NOCOPY NUMBER,
1433 x_run_acctd_alloc IN OUT NOCOPY NUMBER,
1434 x_run_chrg_amt IN OUT NOCOPY NUMBER,
1435 x_run_chrg_alloc IN OUT NOCOPY NUMBER,
1436 x_run_chrg_acctd_amt IN OUT NOCOPY NUMBER,
1437 x_run_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
1438 x_run_frt_amt IN OUT NOCOPY NUMBER,
1439 x_run_frt_alloc IN OUT NOCOPY NUMBER,
1440 x_run_frt_acctd_amt IN OUT NOCOPY NUMBER,
1441 x_run_frt_acctd_alloc IN OUT NOCOPY NUMBER,
1442 x_run_tax_amt IN OUT NOCOPY NUMBER,
1443 x_run_tax_alloc IN OUT NOCOPY NUMBER,
1444 x_run_tax_acctd_amt IN OUT NOCOPY NUMBER,
1445 x_run_tax_acctd_alloc IN OUT NOCOPY NUMBER,
1446 -- ED
1447 x_run_ed_amt IN OUT NOCOPY NUMBER,
1448 x_run_ed_alloc IN OUT NOCOPY NUMBER,
1449 x_run_ed_acctd_amt IN OUT NOCOPY NUMBER,
1450 x_run_ed_acctd_alloc IN OUT NOCOPY NUMBER,
1451 x_run_ed_chrg_amt IN OUT NOCOPY NUMBER,
1452 x_run_ed_chrg_alloc IN OUT NOCOPY NUMBER,
1453 x_run_ed_chrg_acctd_amt IN OUT NOCOPY NUMBER,
1454 x_run_ed_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
1455 x_run_ed_frt_amt IN OUT NOCOPY NUMBER,
1456 x_run_ed_frt_alloc IN OUT NOCOPY NUMBER,
1457 x_run_ed_frt_acctd_amt IN OUT NOCOPY NUMBER,
1458 x_run_ed_frt_acctd_alloc IN OUT NOCOPY NUMBER,
1459 x_run_ed_tax_amt IN OUT NOCOPY NUMBER,
1460 x_run_ed_tax_alloc IN OUT NOCOPY NUMBER,
1461 x_run_ed_tax_acctd_amt IN OUT NOCOPY NUMBER,
1462 x_run_ed_tax_acctd_alloc IN OUT NOCOPY NUMBER,
1463 -- UNED
1464 x_run_uned_amt IN OUT NOCOPY NUMBER,
1465 x_run_uned_alloc IN OUT NOCOPY NUMBER,
1466 x_run_uned_acctd_amt IN OUT NOCOPY NUMBER,
1467 x_run_uned_acctd_alloc IN OUT NOCOPY NUMBER,
1468 x_run_uned_chrg_amt IN OUT NOCOPY NUMBER,
1469 x_run_uned_chrg_alloc IN OUT NOCOPY NUMBER,
1470 x_run_uned_chrg_acctd_amt IN OUT NOCOPY NUMBER,
1471 x_run_uned_chrg_acctd_alloc IN OUT NOCOPY NUMBER,
1472 x_run_uned_frt_amt IN OUT NOCOPY NUMBER,
1473 x_run_uned_frt_alloc IN OUT NOCOPY NUMBER,
1474 x_run_uned_frt_acctd_amt IN OUT NOCOPY NUMBER,
1475 x_run_uned_frt_acctd_alloc IN OUT NOCOPY NUMBER,
1476 x_run_uned_tax_amt IN OUT NOCOPY NUMBER,
1477 x_run_uned_tax_alloc IN OUT NOCOPY NUMBER,
1478 x_run_uned_tax_acctd_amt IN OUT NOCOPY NUMBER,
1479 x_run_uned_tax_acctd_alloc IN OUT NOCOPY NUMBER)
1480 IS
1481 l_group VARCHAR2(900);
1482 -- ADJ and APP
1483 l_alloc NUMBER := 0;
1484 l_acctd_alloc NUMBER := 0;
1485 l_chrg_alloc NUMBER := 0;
1486 l_chrg_acctd_alloc NUMBER := 0;
1487 l_frt_alloc NUMBER := 0;
1488 l_frt_acctd_alloc NUMBER := 0;
1489 l_tax_alloc NUMBER := 0;
1490 l_tax_acctd_alloc NUMBER := 0;
1491 -- ED
1492 l_ed_alloc NUMBER := 0;
1493 l_ed_acctd_alloc NUMBER := 0;
1494 l_ed_chrg_alloc NUMBER := 0;
1495 l_ed_chrg_acctd_alloc NUMBER := 0;
1496 l_ed_frt_alloc NUMBER := 0;
1497 l_ed_frt_acctd_alloc NUMBER := 0;
1498 l_ed_tax_alloc NUMBER := 0;
1499 l_ed_tax_acctd_alloc NUMBER := 0;
1500 -- UNED
1501 l_uned_alloc NUMBER := 0;
1502 l_uned_acctd_alloc NUMBER := 0;
1503 l_uned_chrg_alloc NUMBER := 0;
1504 l_uned_chrg_acctd_alloc NUMBER := 0;
1505 l_uned_frt_alloc NUMBER := 0;
1506 l_uned_frt_acctd_alloc NUMBER := 0;
1507 l_uned_tax_alloc NUMBER := 0;
1508 l_uned_tax_acctd_alloc NUMBER := 0;
1509
1510 l_exist BOOLEAN;
1511 tbl_pro_res_tbl_empty EXCEPTION;
1512 BEGIN
1513 IF PG_DEBUG = 'Y' THEN
1514 localdebug('arp_det_dist_pkg.plsql_proration()+');
1515 END IF;
1516 IF x_tab.ROWID_ID.COUNT = 0 THEN
1517 RAISE tbl_pro_res_tbl_empty;
1518 END IF;
1519
1520 IF x_group_tbl.GROUPE.COUNT <> 0 THEN
1521 l_group := x_group_tbl.GROUPE.LAST;
1522 ELSE
1523 l_group := 'NOGROUP';
1524 END IF;
1525
1526 FOR i IN x_tab.ROWID_ID.FIRST .. x_tab.ROWID_ID.LAST LOOP
1527 IF PG_DEBUG = 'Y' THEN
1528 localdebug('current indice i:'||i);
1529 END IF;
1530
1531 IF l_group <> x_tab.GROUPE(i) THEN
1532 -- put away the current group value
1533 store_group
1534 (p_groupe => l_group,
1535 -- ADJ and APP
1536 p_run_amt => x_run_amt,
1537 p_run_alloc => x_run_alloc,
1538 p_run_acctd_amt => x_run_acctd_amt,
1539 p_run_acctd_alloc => x_run_acctd_alloc,
1540 p_run_chrg_amt => x_run_chrg_amt,
1541 p_run_chrg_alloc => x_run_chrg_alloc,
1542 p_run_chrg_acctd_amt => x_run_chrg_acctd_amt,
1543 p_run_chrg_acctd_alloc => x_run_chrg_acctd_alloc,
1544 p_run_frt_amt => x_run_frt_amt,
1545 p_run_frt_alloc => x_run_frt_alloc,
1546 p_run_frt_acctd_amt => x_run_frt_acctd_amt,
1547 p_run_frt_acctd_alloc => x_run_frt_acctd_alloc,
1548 p_run_tax_amt => x_run_tax_amt,
1549 p_run_tax_alloc => x_run_tax_alloc,
1550 p_run_tax_acctd_amt => x_run_tax_acctd_amt,
1551 p_run_tax_acctd_alloc => x_run_tax_acctd_alloc,
1552 -- ED
1553 p_run_ed_amt => x_run_ed_amt,
1554 p_run_ed_alloc => x_run_ed_alloc,
1555 p_run_ed_acctd_amt => x_run_ed_acctd_amt,
1556 p_run_ed_acctd_alloc => x_run_ed_acctd_alloc,
1557 p_run_ed_chrg_amt => x_run_ed_chrg_amt,
1558 p_run_ed_chrg_alloc => x_run_ed_chrg_alloc,
1559 p_run_ed_chrg_acctd_amt => x_run_ed_chrg_acctd_amt,
1560 p_run_ed_chrg_acctd_alloc => x_run_ed_chrg_acctd_alloc,
1561 p_run_ed_frt_amt => x_run_ed_frt_amt,
1562 p_run_ed_frt_alloc => x_run_ed_frt_alloc,
1563 p_run_ed_frt_acctd_amt => x_run_ed_frt_acctd_amt,
1564 p_run_ed_frt_acctd_alloc => x_run_ed_frt_acctd_alloc,
1565 p_run_ed_tax_amt => x_run_ed_tax_amt,
1566 p_run_ed_tax_alloc => x_run_ed_tax_alloc,
1567 p_run_ed_tax_acctd_amt => x_run_ed_tax_acctd_amt,
1568 p_run_ed_tax_acctd_alloc => x_run_ed_tax_acctd_alloc,
1569 -- UNED
1570 p_run_uned_amt => x_run_uned_amt,
1571 p_run_uned_alloc => x_run_uned_alloc,
1572 p_run_uned_acctd_amt => x_run_uned_acctd_amt,
1573 p_run_uned_acctd_alloc => x_run_uned_acctd_alloc,
1574 p_run_uned_chrg_amt => x_run_uned_chrg_amt,
1575 p_run_uned_chrg_alloc => x_run_uned_chrg_alloc,
1576 p_run_uned_chrg_acctd_amt => x_run_uned_chrg_acctd_amt,
1577 p_run_uned_chrg_acctd_alloc => x_run_uned_chrg_acctd_alloc,
1578 p_run_uned_frt_amt => x_run_uned_frt_amt,
1579 p_run_uned_frt_alloc => x_run_uned_frt_alloc,
1580 p_run_uned_frt_acctd_amt => x_run_uned_frt_acctd_amt,
1581 p_run_uned_frt_acctd_alloc => x_run_uned_frt_acctd_alloc,
1582 p_run_uned_tax_amt => x_run_uned_tax_amt,
1583 p_run_uned_tax_alloc => x_run_uned_tax_alloc,
1584 p_run_uned_tax_acctd_amt => x_run_uned_tax_acctd_amt,
1585 p_run_uned_tax_acctd_alloc => x_run_uned_tax_acctd_alloc,
1586 --
1587 x_group_tbl => x_group_tbl);
1588 -- Check if the new group already exists in case DB ordering problem
1589 -- to initiate the correct running amount
1590 -- and initiate the running amount
1591 return_existing_group
1592 (p_groupe => x_tab.GROUPE(i),
1593 x_group_tbl => x_group_tbl,
1594 x_exist => l_exist,
1595 -- ADJ and APP
1596 x_run_amt => x_run_amt,
1597 x_run_alloc => x_run_alloc,
1598 x_run_acctd_amt => x_run_acctd_amt,
1599 x_run_acctd_alloc => x_run_acctd_alloc,
1600 x_run_chrg_amt => x_run_chrg_amt,
1601 x_run_chrg_alloc => x_run_chrg_alloc,
1602 x_run_chrg_acctd_amt => x_run_chrg_acctd_amt,
1603 x_run_chrg_acctd_alloc => x_run_chrg_acctd_alloc,
1604 x_run_frt_amt => x_run_frt_amt,
1605 x_run_frt_alloc => x_run_frt_alloc,
1606 x_run_frt_acctd_amt => x_run_frt_acctd_amt,
1607 x_run_frt_acctd_alloc => x_run_frt_acctd_alloc,
1608 x_run_tax_amt => x_run_tax_amt,
1609 x_run_tax_alloc => x_run_tax_alloc,
1610 x_run_tax_acctd_amt => x_run_tax_acctd_amt,
1611 x_run_tax_acctd_alloc => x_run_tax_acctd_alloc,
1612 -- ED
1613 x_run_ed_amt => x_run_ed_amt,
1614 x_run_ed_alloc => x_run_ed_alloc,
1615 x_run_ed_acctd_amt => x_run_ed_acctd_amt,
1616 x_run_ed_acctd_alloc => x_run_ed_acctd_alloc,
1617 x_run_ed_chrg_amt => x_run_ed_chrg_amt,
1618 x_run_ed_chrg_alloc => x_run_ed_chrg_alloc,
1619 x_run_ed_chrg_acctd_amt => x_run_ed_chrg_acctd_amt,
1620 x_run_ed_chrg_acctd_alloc => x_run_ed_chrg_acctd_alloc,
1621 x_run_ed_frt_amt => x_run_ed_frt_amt,
1622 x_run_ed_frt_alloc => x_run_ed_frt_alloc,
1623 x_run_ed_frt_acctd_amt => x_run_ed_frt_acctd_amt,
1624 x_run_ed_frt_acctd_alloc => x_run_ed_frt_acctd_alloc,
1625 x_run_ed_tax_amt => x_run_ed_tax_amt,
1626 x_run_ed_tax_alloc => x_run_ed_tax_alloc,
1627 x_run_ed_tax_acctd_amt => x_run_ed_tax_acctd_amt,
1628 x_run_ed_tax_acctd_alloc => x_run_ed_tax_acctd_alloc,
1629 -- UNED
1630 x_run_uned_amt => x_run_uned_amt,
1631 x_run_uned_alloc => x_run_uned_alloc,
1632 x_run_uned_acctd_amt => x_run_uned_acctd_amt,
1633 x_run_uned_acctd_alloc => x_run_uned_acctd_alloc,
1634 x_run_uned_chrg_amt => x_run_uned_chrg_amt,
1635 x_run_uned_chrg_alloc => x_run_uned_chrg_alloc,
1636 x_run_uned_chrg_acctd_amt => x_run_uned_chrg_acctd_amt,
1637 x_run_uned_chrg_acctd_alloc => x_run_uned_chrg_acctd_alloc,
1638 x_run_uned_frt_amt => x_run_uned_frt_amt,
1639 x_run_uned_frt_alloc => x_run_uned_frt_alloc,
1640 x_run_uned_frt_acctd_amt => x_run_uned_frt_acctd_amt,
1641 x_run_uned_frt_acctd_alloc => x_run_uned_frt_acctd_alloc,
1642 x_run_uned_tax_amt => x_run_uned_tax_amt,
1643 x_run_uned_tax_alloc => x_run_uned_tax_alloc,
1644 x_run_uned_tax_acctd_amt => x_run_uned_tax_acctd_amt,
1645 x_run_uned_tax_acctd_alloc => x_run_uned_tax_acctd_alloc);
1646 -- the current group is the new group
1647 l_group := x_tab.GROUPE(i);
1648 END IF;
1649
1650 /********************************
1651 -- ADJ AND APP
1652 ********************************/
1653 /*-------------------------------------------------+
1654 | Running Rev amount in trx currency |
1655 +-------------------------------------------------*/
1656
1657
1658 IF x_tab.base_pro_amt(i) <> 0 THEN
1659 IF PG_DEBUG = 'Y' THEN
1660 localdebug(' x_run_amt:'||x_run_amt);
1661 localdebug(' x_tab.elmt_pro_amt(i):'||x_tab.elmt_pro_amt(i));
1662 localdebug(' x_tab.buc_alloc_amt(i):'||x_tab.buc_alloc_amt(i));
1663 localdebug(' x_tab.base_pro_amt(i):'||x_tab.base_pro_amt(i));
1664 END IF;
1665 x_run_amt := x_run_amt + x_tab.elmt_pro_amt(i);
1666 l_alloc := CurrRound( x_run_amt
1667 / x_tab.base_pro_amt(i)
1668 * x_tab.buc_alloc_amt(i),
1669 x_tab.to_currency(i))
1670 - x_run_alloc;
1671 -- MAJ proration_res_tbl.res_pro := l_alloc;
1672 x_tab.tl_alloc_amt(i) := l_alloc;
1673 x_run_alloc := x_run_alloc + l_alloc;
1674 IF PG_DEBUG = 'Y' THEN
1675 localdebug(' x_tab.tl_alloc_amt(i):'||x_tab.tl_alloc_amt(i));
1676 localdebug(' x_run_alloc:'||x_run_alloc);
1677 localdebug(' l_alloc:'||l_alloc);
1678 END IF;
1679 ELSE
1680 x_tab.tl_alloc_amt(i) := 0;
1681 END IF;
1682
1683
1684 /*-------------------------------------------------+
1685 | Running Rev amount in base currency |
1686 +-------------------------------------------------*/
1687
1688 IF x_tab.base_pro_acctd_amt(i) <> 0 THEN
1689 IF PG_DEBUG = 'Y' THEN
1690 localdebug(' x_run_acctd_amt:'||x_run_acctd_amt);
1691 localdebug(' x_tab.elmt_pro_acctd_amt(i):'||x_tab.elmt_pro_acctd_amt(i));
1692 localdebug(' x_tab.buc_alloc_acctd_amt(i):'||x_tab.buc_alloc_acctd_amt(i));
1693 localdebug(' x_tab.base_pro_acctd_amt(i):'||x_tab.base_pro_acctd_amt(i));
1694 END IF;
1695 x_run_acctd_amt := x_run_acctd_amt + x_tab.elmt_pro_acctd_amt(i);
1696 l_acctd_alloc := CurrRound( x_run_acctd_amt
1697 / x_tab.base_pro_acctd_amt(i)
1698 * x_tab.buc_alloc_acctd_amt(i),
1699 x_tab.base_currency(i))
1700 - x_run_acctd_alloc;
1701 -- MAJ proration_res_tbl.res_pro := l_alloc;
1702 x_tab.tl_alloc_acctd_amt(i) := l_acctd_alloc;
1703 x_run_acctd_alloc := x_run_acctd_alloc + l_acctd_alloc;
1704 IF PG_DEBUG = 'Y' THEN
1705 localdebug(' x_tab.tl_alloc_acctd_amt(i):'||x_tab.tl_alloc_acctd_amt(i));
1706 localdebug(' x_run_acctd_alloc:'||x_run_acctd_alloc);
1707 localdebug(' l_acctd_alloc:'||l_acctd_alloc);
1708 END IF;
1709 ELSE
1710 x_tab.tl_alloc_acctd_amt(i) := 0;
1711 END IF;
1712
1713 /*-------------------------------------------------+
1714 | Running tax amount in trx currency |
1715 +-------------------------------------------------*/
1716
1717 IF x_tab.BASE_tax_PRO_AMT(i) <> 0 AND x_tab.buc_tax_alloc_amt(i) <> 0 THEN
1718 IF PG_DEBUG = 'Y' THEN
1719 localdebug(' x_run_tax_amt:'||x_run_tax_amt);
1720 localdebug(' x_tab.ELMT_tax_PRO_AMT(i):'||x_tab.ELMT_tax_PRO_AMT(i));
1721 localdebug(' x_tab.buc_tax_alloc_amt(i):'||x_tab.buc_tax_alloc_amt(i));
1722 localdebug(' x_tab.BASE_TAX_PRO_AMT(i):'||x_tab.BASE_tax_PRO_AMT(i));
1723 END IF;
1724 x_run_tax_amt := x_run_tax_amt + x_tab.ELMT_tax_PRO_AMT(i);
1725 l_tax_alloc := CurrRound( x_run_tax_amt
1726 / x_tab.BASE_tax_PRO_AMT(i)
1727 * x_tab.buc_tax_alloc_amt(i),
1728 x_tab.to_currency(i))
1729 - x_run_tax_alloc;
1730 x_tab.tl_tax_alloc_amt(i) := l_tax_alloc;
1731 x_run_tax_alloc := x_run_tax_alloc + l_tax_alloc;
1732 IF PG_DEBUG = 'Y' THEN
1733 localdebug(' x_tab.tl_tax_alloc_amt(i):'||x_tab.tl_tax_alloc_amt(i));
1734 localdebug(' x_run_tax_alloc:'||x_run_tax_alloc);
1735 localdebug(' l_tax_alloc:'||l_tax_alloc);
1736 END IF;
1737 ELSE
1738 x_tab.tl_tax_alloc_amt(i) := 0;
1739 END IF;
1740
1741
1742 /*-------------------------------------------------+
1743 | Running tax acctd amount in trx currency |
1744 +-------------------------------------------------*/
1745 IF x_tab.BASE_tax_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_tax_alloc_acctd_amt(i) <> 0 THEN
1746 IF PG_DEBUG = 'Y' THEN
1747 localdebug(' x_run_tax_amt:'||x_run_tax_amt);
1748 localdebug(' x_tab.ELMT_tax_PRO_acctd_AMT(i):'||x_tab.ELMT_tax_PRO_acctd_AMT(i));
1749 localdebug(' x_tab.buc_tax_alloc_acctd_amt(i):'||x_tab.buc_tax_alloc_acctd_amt(i));
1750 localdebug(' x_tab.BASE_TAX_PRO_acctd_AMT(i):'||x_tab.BASE_tax_PRO_acctd_AMT(i));
1751 END IF;
1752 x_run_tax_acctd_amt := x_run_tax_acctd_amt + x_tab.ELMT_tax_PRO_ACCTD_AMT(i);
1753 l_tax_acctd_alloc := CurrRound( x_run_tax_acctd_amt
1754 / x_tab.BASE_tax_PRO_ACCTD_AMT(i)
1755 * x_tab.buc_tax_alloc_acctd_amt(i),
1756 x_tab.base_currency(i))
1757 - x_run_tax_acctd_alloc;
1758 x_tab.tl_tax_alloc_acctd_amt(i) := l_tax_acctd_alloc;
1759 x_run_tax_acctd_alloc := x_run_tax_acctd_alloc + l_tax_acctd_alloc;
1760 IF PG_DEBUG = 'Y' THEN
1761 localdebug(' x_tab.tl_tax_alloc_acctd_amt(i):'||x_tab.tl_tax_alloc_acctd_amt(i));
1762 localdebug(' x_run_tax_acctd_alloc:'||x_run_tax_acctd_alloc);
1763 localdebug(' l_tax_acctd_alloc:'||l_tax_acctd_alloc);
1764 END IF;
1765 ELSE
1766 x_tab.tl_tax_alloc_acctd_amt(i) := 0;
1767 END IF;
1768
1769
1770 /*-------------------------------------------------+
1771 | Running frt amount in trx currency |
1772 +-------------------------------------------------*/
1773
1774 IF x_tab.BASE_FRT_PRO_AMT(i) <> 0 AND x_tab.buc_frt_alloc_amt(i) <> 0 THEN
1775 IF PG_DEBUG = 'Y' THEN
1776 localdebug(' x_run_frt_amt:'||x_run_frt_amt);
1777 localdebug(' x_tab.ELMT_frt_PRO_AMT(i):'||x_tab.ELMT_frt_PRO_AMT(i));
1778 localdebug(' x_tab.buc_frt_alloc_amt(i):'||x_tab.buc_frt_alloc_amt(i));
1779 localdebug(' x_tab.BASE_FRT_PRO_AMT(i):'||x_tab.BASE_FRT_PRO_AMT(i));
1780 END IF;
1781 x_run_frt_amt := x_run_frt_amt + x_tab.ELMT_FRT_PRO_AMT(i);
1782 l_frt_alloc := CurrRound( x_run_frt_amt
1783 / x_tab.BASE_FRT_PRO_AMT(i)
1784 * x_tab.buc_frt_alloc_amt(i),
1785 x_tab.to_currency(i))
1786 - x_run_frt_alloc;
1787 x_tab.tl_frt_alloc_amt(i) := l_frt_alloc;
1788 x_run_frt_alloc := x_run_frt_alloc + l_frt_alloc;
1789 IF PG_DEBUG = 'Y' THEN
1790 localdebug(' x_tab.tl_frt_alloc_amt(i):'||x_tab.tl_frt_alloc_amt(i));
1791 localdebug(' x_run_frt_alloc:'||x_run_frt_alloc);
1792 localdebug(' l_frt_alloc:'||l_frt_alloc);
1793 END IF;
1794 ELSE
1795 x_tab.tl_frt_alloc_amt(i) := 0;
1796 END IF;
1797
1798
1799 /*-------------------------------------------------+
1800 | Running frt acctd amount in trx currency |
1801 +-------------------------------------------------*/
1802 IF x_tab.BASE_FRT_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_frt_alloc_acctd_amt(i) <> 0 THEN
1803 x_run_frt_acctd_amt := x_run_frt_acctd_amt + x_tab.ELMT_FRT_PRO_ACCTD_AMT(i);
1804 l_frt_acctd_alloc := CurrRound( x_run_frt_acctd_amt
1805 / x_tab.BASE_FRT_PRO_ACCTD_AMT(i)
1806 * x_tab.buc_frt_alloc_acctd_amt(i),
1807 x_tab.base_currency(i))
1808 - x_run_frt_acctd_alloc;
1809 x_tab.tl_frt_alloc_acctd_amt(i) := l_frt_acctd_alloc;
1810 x_run_frt_acctd_alloc := x_run_frt_acctd_alloc + l_frt_acctd_alloc;
1811 ELSE
1812 x_tab.tl_frt_alloc_acctd_amt(i) := 0;
1813 END IF;
1814
1815 /*-------------------------------------------------+
1816 | Running chrg amount in trx currency |
1817 +-------------------------------------------------*/
1818
1819 IF x_tab.BASE_CHRG_PRO_AMT(i) <> 0 AND x_tab.buc_chrg_alloc_amt(i) <> 0 THEN
1820 IF PG_DEBUG = 'Y' THEN
1821 localdebug(' x_run_chrg_amt:'||x_run_chrg_amt);
1822 localdebug(' x_tab.ELMT_CHRG_PRO_AMT(i):'||x_tab.ELMT_CHRG_PRO_AMT(i));
1823 localdebug(' x_tab.buc_chrg_alloc_amt(i):'||x_tab.buc_chrg_alloc_amt(i));
1824 localdebug(' x_tab.BASE_CHRG_PRO_AMT(i):'||x_tab.BASE_CHRG_PRO_AMT(i));
1825 localdebug(' x_tab.to_currency(i):'||x_tab.to_currency(i));
1826 END IF;
1827 x_run_chrg_amt := x_run_chrg_amt + x_tab.ELMT_CHRG_PRO_AMT(i);
1828 l_chrg_alloc := CurrRound( x_run_chrg_amt
1829 / x_tab.BASE_CHRG_PRO_AMT(i)
1830 * x_tab.buc_chrg_alloc_amt(i),
1831 x_tab.to_currency(i))
1832 - x_run_chrg_alloc;
1833 x_tab.tl_chrg_alloc_amt(i) := l_chrg_alloc;
1834 x_run_chrg_alloc := x_run_chrg_alloc + l_chrg_alloc;
1835 IF PG_DEBUG = 'Y' THEN
1836 localdebug(' x_tab.tl_chrg_alloc_amt(i):'||x_tab.tl_chrg_alloc_amt(i));
1837 localdebug(' x_run_chrg_alloc:'||x_run_chrg_alloc);
1838 localdebug(' l_chrg_alloc:'||l_chrg_alloc);
1839 END IF;
1840 ELSE
1841 x_tab.tl_chrg_alloc_amt(i) := 0;
1842 END IF;
1843
1844
1845 /*-------------------------------------------------+
1846 | Running chrg acctd amount in trx currency |
1847 +-------------------------------------------------*/
1848 IF x_tab.BASE_CHRG_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_chrg_alloc_acctd_amt(i) <> 0 THEN
1849 x_run_chrg_acctd_amt := x_run_chrg_acctd_amt + x_tab.ELMT_CHRG_PRO_ACCTD_AMT(i);
1850 l_chrg_acctd_alloc := CurrRound( x_run_chrg_acctd_amt
1851 / x_tab.BASE_CHRG_PRO_ACCTD_AMT(i)
1852 * x_tab.buc_chrg_alloc_acctd_amt(i),
1853 x_tab.base_currency(i))
1854 - x_run_chrg_acctd_alloc;
1855 x_tab.tl_chrg_alloc_acctd_amt(i) := l_chrg_acctd_alloc;
1856 x_run_chrg_acctd_alloc := x_run_chrg_acctd_alloc + l_chrg_acctd_alloc;
1857 ELSE
1858 x_tab.tl_chrg_alloc_acctd_amt(i) := 0;
1859 END IF;
1860
1861
1862 /********************************
1863 -- ED
1864 ********************************/
1865 IF g_ed_req = 'Y' THEN
1866 /*-------------------------------------------------+
1867 | Running Revenue amount in trx currency |
1868 +-------------------------------------------------*/
1869
1870 IF x_tab.base_ed_pro_amt(i) <> 0 THEN
1871 IF PG_DEBUG = 'Y' THEN
1872 localdebug(' x_run_ed_amt:'||x_run_ed_amt);
1873 localdebug(' x_tab.elmt_ed_pro_amt(i):'||x_tab.elmt_ed_pro_amt(i));
1874 localdebug(' x_tab.buc_ed_alloc_amt(i):'||x_tab.buc_ed_alloc_amt(i));
1875 localdebug(' x_tab.base_ed_pro_amt(i):'||x_tab.base_ed_pro_amt(i));
1876 END IF;
1877 x_run_ed_amt := x_run_ed_amt + x_tab.elmt_ed_pro_amt(i);
1878 l_ed_alloc := CurrRound( x_run_ed_amt
1879 / x_tab.base_ed_pro_amt(i)
1880 * x_tab.buc_ed_alloc_amt(i),
1881 x_tab.to_currency(i))
1882 - x_run_ed_alloc;
1883 -- MAJ proration_res_tbl.res_pro := l_alloc;
1884 x_tab.tl_ed_alloc_amt(i) := l_ed_alloc;
1885 x_run_ed_alloc := x_run_ed_alloc + l_ed_alloc;
1886 IF PG_DEBUG = 'Y' THEN
1887 localdebug(' x_tab.tl_ed_alloc_amt(i):'||x_tab.tl_ed_alloc_amt(i));
1888 localdebug(' x_run_ed_alloc:'||x_run_ed_alloc);
1889 localdebug(' l_ed_alloc:'||l_ed_alloc);
1890 END IF;
1891 ELSE
1892 x_tab.tl_ed_alloc_amt(i) := 0;
1893 END IF;
1894
1895
1896 /*-------------------------------------------------+
1897 | Running Revenue amount in base currency |
1898 +-------------------------------------------------*/
1899 IF x_tab.base_ed_pro_acctd_amt(i) <> 0 THEN
1900 x_run_ed_acctd_amt := x_run_ed_acctd_amt + x_tab.elmt_ed_pro_acctd_amt(i);
1901 l_ed_acctd_alloc := CurrRound( x_run_ed_acctd_amt
1902 / x_tab.base_ed_pro_acctd_amt(i)
1903 * x_tab.buc_ed_alloc_acctd_amt(i),
1904 x_tab.base_currency(i))
1905 - x_run_ed_acctd_alloc;
1906 -- MAJ proration_res_tbl.res_pro := l_alloc;
1907 x_tab.tl_ed_alloc_acctd_amt(i) := l_ed_acctd_alloc;
1908 x_run_ed_acctd_alloc := x_run_ed_acctd_alloc + l_ed_acctd_alloc;
1909 ELSE
1910 x_tab.tl_ed_alloc_acctd_amt(i) := 0;
1911 END IF;
1912
1913
1914
1915 /*-------------------------------------------------+
1916 | Running tax amount in trx currency |
1917 +-------------------------------------------------*/
1918
1919 IF x_tab.BASE_ed_tax_PRO_AMT(i) <> 0 AND x_tab.buc_ed_tax_alloc_amt(i) <> 0 THEN
1920 IF PG_DEBUG = 'Y' THEN
1921 localdebug(' x_run_ed_tax_amt:'||x_run_ed_tax_amt);
1922 localdebug(' x_tab.ELMT_ed_tax_PRO_AMT(i):'||x_tab.ELMT_ed_tax_PRO_AMT(i));
1923 localdebug(' x_tab.buc_ed_tax_alloc_amt(i):'||x_tab.buc_ed_tax_alloc_amt(i));
1924 localdebug(' x_tab.BASE_ed_tax_PRO_AMT(i):'||x_tab.BASE_ed_tax_PRO_AMT(i));
1925 END IF;
1926 x_run_ed_tax_amt := x_run_ed_tax_amt + x_tab.ELMT_ed_tax_PRO_AMT(i);
1927 l_ed_tax_alloc := CurrRound( x_run_ed_tax_amt
1928 / x_tab.BASE_ed_tax_PRO_AMT(i)
1929 * x_tab.buc_ed_tax_alloc_amt(i),
1930 x_tab.to_currency(i))
1931 - x_run_ed_tax_alloc;
1932 x_tab.tl_ed_tax_alloc_amt(i) := l_ed_tax_alloc;
1933 x_run_ed_tax_alloc := x_run_ed_tax_alloc + l_ed_tax_alloc;
1934 IF PG_DEBUG = 'Y' THEN
1935 localdebug(' x_tab.tl_ed_tax_alloc_amt(i):'||x_tab.tl_ed_tax_alloc_amt(i));
1936 localdebug(' x_run_ed_tax_alloc:'||x_run_ed_tax_alloc);
1937 localdebug(' l_ed_tax_alloc:'||l_ed_tax_alloc);
1938 END IF;
1939 ELSE
1940 x_tab.tl_ed_tax_alloc_amt(i) := 0;
1941 END IF;
1942
1943
1944 /*-------------------------------------------------+
1945 | Running tax acctd amount in trx currency |
1946 +-------------------------------------------------*/
1947 IF x_tab.BASE_ed_tax_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_ed_tax_alloc_acctd_amt(i) <> 0 THEN
1948 x_run_ed_tax_acctd_amt := x_run_ed_tax_acctd_amt + x_tab.ELMT_ed_tax_PRO_ACCTD_AMT(i);
1949 l_ed_tax_acctd_alloc := CurrRound( x_run_ed_tax_acctd_amt
1950 / x_tab.BASE_ed_tax_PRO_ACCTD_AMT(i)
1951 * x_tab.buc_ed_tax_alloc_acctd_amt(i),
1952 x_tab.base_currency(i))
1953 - x_run_ed_tax_acctd_alloc;
1954 x_tab.tl_ed_tax_alloc_acctd_amt(i) := l_ed_tax_acctd_alloc;
1955 x_run_ed_tax_acctd_alloc := x_run_ed_tax_acctd_alloc + l_ed_tax_acctd_alloc;
1956 ELSE
1957 x_tab.tl_ed_tax_alloc_acctd_amt(i) := 0;
1958 END IF;
1959
1960 /*-------------------------------------------------+
1961 | Running frt amount in trx currency |
1962 +-------------------------------------------------*/
1963
1964 IF x_tab.BASE_ed_FRT_PRO_AMT(i) <> 0 AND x_tab.buc_ed_frt_alloc_amt(i) <> 0 THEN
1965 IF PG_DEBUG = 'Y' THEN
1966 localdebug(' x_run_ed_frt_amt:'||x_run_ed_frt_amt);
1967 localdebug(' x_tab.ELMT_ed_FRT_PRO_AMT(i):'||x_tab.ELMT_ed_FRT_PRO_AMT(i));
1968 localdebug(' x_tab.buc_ed_frt_alloc_amt(i):'||x_tab.buc_ed_frt_alloc_amt(i));
1969 localdebug(' x_tab.BASE_ed_FRT_PRO_AMT(i):'||x_tab.BASE_ed_FRT_PRO_AMT(i));
1970 END IF;
1971 x_run_ed_frt_amt := x_run_ed_frt_amt + x_tab.ELMT_ed_FRT_PRO_AMT(i);
1972 l_ed_frt_alloc := CurrRound( x_run_ed_frt_amt
1973 / x_tab.BASE_ed_frt_PRO_AMT(i)
1974 * x_tab.buc_ed_frt_alloc_amt(i),
1975 x_tab.to_currency(i))
1976 - x_run_ed_frt_alloc;
1977 x_tab.tl_ed_frt_alloc_amt(i) := l_ed_frt_alloc;
1978 x_run_ed_frt_alloc := x_run_ed_frt_alloc + l_ed_frt_alloc;
1979 IF PG_DEBUG = 'Y' THEN
1980 localdebug(' x_tab.tl_ed_frt_alloc_amt(i):'||x_tab.tl_ed_frt_alloc_amt(i));
1981 localdebug(' x_run_ed_frt_alloc:'||x_run_ed_frt_alloc);
1982 localdebug(' l_ed_frt_alloc:'||l_ed_frt_alloc);
1983 END IF;
1984 ELSE
1985 x_tab.tl_ed_frt_alloc_amt(i) := 0;
1986 END IF;
1987
1988
1989 /*-------------------------------------------------+
1990 | Running frt acctd amount in trx currency |
1991 +-------------------------------------------------*/
1992 IF x_tab.BASE_ed_FRT_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_ed_frt_alloc_acctd_amt(i) <> 0 THEN
1993 x_run_ed_frt_acctd_amt := x_run_ed_frt_acctd_amt + x_tab.ELMT_ed_FRT_PRO_ACCTD_AMT(i);
1994 l_ed_frt_acctd_alloc := CurrRound( x_run_ed_frt_acctd_amt
1995 / x_tab.BASE_ed_FRT_PRO_ACCTD_AMT(i)
1996 * x_tab.buc_ed_frt_alloc_acctd_amt(i),
1997 x_tab.base_currency(i))
1998 - x_run_ed_frt_acctd_alloc;
1999 x_tab.tl_ed_frt_alloc_acctd_amt(i) := l_ed_frt_acctd_alloc;
2000 x_run_ed_frt_acctd_alloc := x_run_ed_frt_acctd_alloc + l_ed_frt_acctd_alloc;
2001 ELSE
2002 x_tab.tl_ed_frt_alloc_acctd_amt(i) := 0;
2003 END IF;
2004
2005 /*-------------------------------------------------+
2006 | Running chrg amount in trx currency |
2007 +-------------------------------------------------*/
2008
2009 IF x_tab.BASE_ed_CHRG_PRO_AMT(i) <> 0 AND x_tab.buc_ed_chrg_alloc_amt(i) <> 0 THEN
2010 IF PG_DEBUG = 'Y' THEN
2011 localdebug(' x_run_ed_chrg_amt:'||x_run_ed_chrg_amt);
2012 localdebug(' x_tab.ELMT_ed_CHRG_PRO_AMT(i):'||x_tab.ELMT_ed_CHRG_PRO_AMT(i));
2013 localdebug(' x_tab.buc_ed_chrg_alloc_amt(i):'||x_tab.buc_ed_chrg_alloc_amt(i));
2014 localdebug(' x_tab.BASE_ed_CHRG_PRO_AMT(i):'||x_tab.BASE_ed_CHRG_PRO_AMT(i));
2015 END IF;
2016 x_run_ed_chrg_amt := x_run_ed_chrg_amt + x_tab.ELMT_ed_CHRG_PRO_AMT(i);
2017 l_ed_chrg_alloc := CurrRound( x_run_ed_chrg_amt
2018 / x_tab.BASE_ed_CHRG_PRO_AMT(i)
2019 * x_tab.buc_ed_chrg_alloc_amt(i),
2020 x_tab.to_currency(i))
2021 - x_run_ed_chrg_alloc;
2022 x_tab.tl_ed_chrg_alloc_amt(i) := l_ed_chrg_alloc;
2023 x_run_ed_chrg_alloc := x_run_ed_chrg_alloc + l_ed_chrg_alloc;
2024 IF PG_DEBUG = 'Y' THEN
2025 localdebug(' x_tab.tl_ed_chrg_alloc_amt(i):'||x_tab.tl_ed_chrg_alloc_amt(i));
2026 localdebug(' x_run_ed_chrg_alloc:'||x_run_ed_chrg_alloc);
2027 localdebug(' l_ed_chrg_alloc:'||l_ed_chrg_alloc);
2028 END IF;
2029 ELSE
2030 x_tab.tl_ed_chrg_alloc_amt(i) := 0;
2031 END IF;
2032
2033
2034 /*-------------------------------------------------+
2035 | Running chrg acctd amount in trx currency |
2036 +-------------------------------------------------*/
2037 IF x_tab.BASE_ed_CHRG_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_ed_chrg_alloc_acctd_amt(i) <> 0 THEN
2038 x_run_ed_chrg_acctd_amt := x_run_ed_chrg_acctd_amt + x_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT(i);
2039 l_ed_chrg_acctd_alloc := CurrRound( x_run_ed_chrg_acctd_amt
2040 / x_tab.BASE_ed_CHRG_PRO_ACCTD_AMT(i)
2041 * x_tab.buc_ed_chrg_alloc_acctd_amt(i),
2042 x_tab.base_currency(i))
2043 - x_run_ed_chrg_acctd_alloc;
2044 x_tab.tl_ed_chrg_alloc_acctd_amt(i) := l_ed_chrg_acctd_alloc;
2045 x_run_ed_chrg_acctd_alloc := x_run_ed_chrg_acctd_alloc + l_ed_chrg_acctd_alloc;
2046 ELSE
2047 x_tab.tl_ed_chrg_alloc_acctd_amt(i) := 0;
2048 END IF;
2049
2050 ELSE
2051
2052 x_tab.tl_ed_alloc_amt(i) := 0;
2053 x_tab.tl_ed_alloc_acctd_amt(i) := 0;
2054 x_tab.tl_ed_tax_alloc_amt(i) := 0;
2055 x_tab.tl_ed_tax_alloc_acctd_amt(i) := 0;
2056 x_tab.tl_ed_frt_alloc_amt(i) := 0;
2057 x_tab.tl_ed_frt_alloc_acctd_amt(i) := 0;
2058 x_tab.tl_ed_chrg_alloc_amt(i) := 0;
2059 x_tab.tl_ed_chrg_alloc_acctd_amt(i) := 0;
2060
2061 END IF;
2062
2063 /********************************
2064 -- UNED
2065 ********************************/
2066 IF g_uned_req = 'Y' THEN
2067 /*-------------------------------------------------+
2068 | Running revenue in trx currency |
2069 +-------------------------------------------------*/
2070 IF PG_DEBUG = 'Y' THEN
2071 localdebug(' x_run_uned_amt:'||x_run_uned_amt);
2072 localdebug(' x_tab.elmt_uned_pro_amt(i):'||x_tab.elmt_uned_pro_amt(i));
2073 localdebug(' x_tab.buc_uned_alloc_amt(i):'||x_tab.buc_uned_alloc_amt(i));
2074 localdebug(' x_tab.base_uned_pro_amt(i):'||x_tab.base_uned_pro_amt(i));
2075 END IF;
2076
2077 IF x_tab.base_uned_pro_amt(i) <> 0 THEN
2078 x_run_uned_amt := x_run_uned_amt + x_tab.elmt_uned_pro_amt(i);
2079 l_uned_alloc := CurrRound( x_run_uned_amt
2080 / x_tab.base_uned_pro_amt(i)
2081 * x_tab.buc_uned_alloc_amt(i),
2082 x_tab.to_currency(i))
2083 - x_run_uned_alloc;
2084 -- MAJ proration_res_tbl.res_pro := l_alloc;
2085 x_tab.tl_uned_alloc_amt(i) := l_uned_alloc;
2086 x_run_uned_alloc := x_run_uned_alloc + l_uned_alloc;
2087 ELSE
2088 x_tab.tl_uned_alloc_amt(i) := 0;
2089 END IF;
2090
2091 IF PG_DEBUG = 'Y' THEN
2092 localdebug(' x_tab.tl_uned_alloc_amt(i):'||x_tab.tl_uned_alloc_amt(i));
2093 localdebug(' x_run_uned_alloc:'||x_run_uned_alloc);
2094 localdebug(' l_uned_alloc:'||l_uned_alloc);
2095 END IF;
2096
2097 /*-------------------------------------------------+
2098 | Running revenue in base currency |
2099 +-------------------------------------------------*/
2100 IF x_tab.base_uned_pro_acctd_amt(i) <> 0 THEN
2101 x_run_uned_acctd_amt := x_run_uned_acctd_amt + x_tab.elmt_uned_pro_acctd_amt(i);
2102 l_uned_acctd_alloc := CurrRound( x_run_uned_acctd_amt
2103 / x_tab.base_uned_pro_acctd_amt(i)
2104 * x_tab.buc_uned_alloc_acctd_amt(i),
2105 x_tab.base_currency(i))
2106 - x_run_uned_acctd_alloc;
2107 -- MAJ proration_res_tbl.res_pro := l_alloc;
2108 x_tab.tl_uned_alloc_acctd_amt(i) := l_uned_acctd_alloc;
2109 x_run_uned_acctd_alloc := x_run_uned_acctd_alloc + l_uned_acctd_alloc;
2110 ELSE
2111 x_tab.tl_uned_alloc_acctd_amt(i) := 0;
2112 END IF;
2113
2114
2115
2116 /*-------------------------------------------------+
2117 | Running tax amount in trx currency |
2118 +-------------------------------------------------*/
2119 IF PG_DEBUG = 'Y' THEN
2120 localdebug(' x_run_uned_tax_amt:'||x_run_uned_tax_amt);
2121 localdebug(' x_tab.ELMT_uned_tax_PRO_AMT(i):'||x_tab.ELMT_uned_tax_PRO_AMT(i));
2122 localdebug(' x_tab.buc_uned_tax_alloc_amt(i):'||x_tab.buc_uned_tax_alloc_amt(i));
2123 localdebug(' x_tab.BASE_uned_tax_PRO_AMT(i):'||x_tab.BASE_uned_tax_PRO_AMT(i));
2124 END IF;
2125
2126 IF x_tab.BASE_uned_tax_PRO_AMT(i) <> 0 AND x_tab.buc_uned_tax_alloc_amt(i) <> 0 THEN
2127 x_run_uned_tax_amt := x_run_uned_tax_amt + x_tab.ELMT_uned_tax_PRO_AMT(i);
2128 l_uned_tax_alloc := CurrRound( x_run_uned_tax_amt
2129 / x_tab.BASE_uned_tax_PRO_AMT(i)
2130 * x_tab.buc_uned_tax_alloc_amt(i),
2131 x_tab.to_currency(i))
2132 - x_run_uned_tax_alloc;
2133 x_tab.tl_uned_tax_alloc_amt(i) := l_uned_tax_alloc;
2134 x_run_uned_tax_alloc := x_run_uned_tax_alloc + l_uned_tax_alloc;
2135 ELSE
2136 x_tab.tl_uned_tax_alloc_amt(i) := 0;
2137 END IF;
2138
2139 IF PG_DEBUG = 'Y' THEN
2140 localdebug(' x_tab.tl_uned_tax_alloc_amt(i):'||x_tab.tl_uned_tax_alloc_amt(i));
2141 localdebug(' x_run_uned_tax_alloc:'||x_run_uned_tax_alloc);
2142 localdebug(' l_uned_tax_alloc:'||l_uned_tax_alloc);
2143 END IF;
2144
2145 /*-------------------------------------------------+
2146 | Running tax acctd amount in trx currency |
2147 +-------------------------------------------------*/
2148 IF x_tab.BASE_uned_tax_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_uned_tax_alloc_acctd_amt(i) <> 0 THEN
2149 x_run_uned_tax_acctd_amt := x_run_uned_tax_acctd_amt + x_tab.ELMT_uned_tax_PRO_ACCTD_AMT(i);
2150 l_uned_tax_acctd_alloc := CurrRound( x_run_uned_tax_acctd_amt
2151 / x_tab.BASE_uned_tax_PRO_ACCTD_AMT(i)
2152 * x_tab.buc_uned_tax_alloc_acctd_amt(i),
2153 x_tab.base_currency(i))
2154 - x_run_uned_tax_acctd_alloc;
2155 x_tab.tl_uned_tax_alloc_acctd_amt(i) := l_uned_tax_acctd_alloc;
2156 x_run_uned_tax_acctd_alloc := x_run_uned_tax_acctd_alloc + l_uned_tax_acctd_alloc;
2157 ELSE
2158 x_tab.tl_uned_tax_alloc_acctd_amt(i) := 0;
2159 END IF;
2160
2161
2162 /*-------------------------------------------------+
2163 | Running frt amount in trx currency |
2164 +-------------------------------------------------*/
2165 IF PG_DEBUG = 'Y' THEN
2166 localdebug(' x_run_uned_frt_amt:'||x_run_uned_frt_amt);
2167 localdebug(' x_tab.ELMT_uned_frt_PRO_AMT(i):'||x_tab.ELMT_uned_frt_PRO_AMT(i));
2168 localdebug(' x_tab.buc_uned_frt_alloc_amt(i):'||x_tab.buc_uned_frt_alloc_amt(i));
2169 localdebug(' x_tab.BASE_uned_frt_PRO_AMT(i):'||x_tab.BASE_uned_frt_PRO_AMT(i));
2170 END IF;
2171
2172 IF x_tab.BASE_uned_frt_PRO_AMT(i) <> 0 AND x_tab.buc_uned_frt_alloc_amt(i) <> 0 THEN
2173 x_run_uned_frt_amt := x_run_uned_frt_amt + x_tab.ELMT_uned_frt_PRO_AMT(i);
2174 l_uned_frt_alloc := CurrRound( x_run_uned_frt_amt
2175 / x_tab.BASE_uned_frt_PRO_AMT(i)
2176 * x_tab.buc_uned_frt_alloc_amt(i),
2177 x_tab.to_currency(i))
2178 - x_run_uned_frt_alloc;
2179 x_tab.tl_uned_frt_alloc_amt(i) := l_uned_frt_alloc;
2180 x_run_uned_frt_alloc := x_run_uned_frt_alloc + l_uned_frt_alloc;
2181 ELSE
2182 x_tab.tl_uned_frt_alloc_amt(i) := 0;
2183 END IF;
2184
2185 IF PG_DEBUG = 'Y' THEN
2186 localdebug(' x_tab.tl_uned_frt_alloc_amt(i):'||x_tab.tl_uned_frt_alloc_amt(i));
2187 localdebug(' x_run_uned_frt_alloc:'||x_run_uned_frt_alloc);
2188 localdebug(' l_uned_frt_alloc:'||l_uned_frt_alloc);
2189 END IF;
2190
2191 /*-------------------------------------------------+
2192 | Running frt acctd amount in trx currency |
2193 +-------------------------------------------------*/
2194 IF x_tab.BASE_uned_frt_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_uned_frt_alloc_acctd_amt(i) <> 0 THEN
2195 x_run_uned_frt_acctd_amt := x_run_uned_frt_acctd_amt + x_tab.ELMT_uned_frt_PRO_ACCTD_AMT(i);
2196 l_uned_frt_acctd_alloc := CurrRound( x_run_uned_frt_acctd_amt
2197 / x_tab.BASE_uned_frt_PRO_ACCTD_AMT(i)
2198 * x_tab.buc_uned_frt_alloc_acctd_amt(i),
2199 x_tab.base_currency(i))
2200 - x_run_uned_frt_acctd_alloc;
2201 x_tab.tl_uned_frt_alloc_acctd_amt(i) := l_uned_frt_acctd_alloc;
2202 x_run_uned_frt_acctd_alloc := x_run_uned_frt_acctd_alloc + l_uned_frt_acctd_alloc;
2203 ELSE
2204 x_tab.tl_uned_frt_alloc_acctd_amt(i) := 0;
2205 END IF;
2206
2207 /*-------------------------------------------------+
2208 | Running chrg amount in trx currency |
2209 +-------------------------------------------------*/
2210 IF PG_DEBUG = 'Y' THEN
2211 localdebug(' x_run_uned_chrg_amt:'||x_run_uned_chrg_amt);
2212 localdebug(' x_tab.ELMT_uned_CHRG_PRO_AMT(i):'||x_tab.ELMT_uned_CHRG_PRO_AMT(i));
2213 localdebug(' x_tab.buc_uned_chrg_alloc_amt(i):'||x_tab.buc_uned_chrg_alloc_amt(i));
2214 localdebug(' x_tab.BASE_uned_CHRG_PRO_AMT(i):'||x_tab.BASE_uned_CHRG_PRO_AMT(i));
2215 END IF;
2216
2217 IF x_tab.BASE_uned_CHRG_PRO_AMT(i) <> 0 AND x_tab.buc_uned_chrg_alloc_amt(i) <> 0 THEN
2218 x_run_uned_chrg_amt := x_run_uned_chrg_amt + x_tab.ELMT_uned_CHRG_PRO_AMT(i);
2219 l_uned_chrg_alloc := CurrRound( x_run_uned_chrg_amt
2220 / x_tab.BASE_uned_CHRG_PRO_AMT(i)
2221 * x_tab.buc_uned_chrg_alloc_amt(i),
2222 x_tab.to_currency(i))
2223 - x_run_uned_chrg_alloc;
2224 x_tab.tl_uned_chrg_alloc_amt(i) := l_uned_chrg_alloc;
2225 x_run_uned_chrg_alloc := x_run_uned_chrg_alloc + l_uned_chrg_alloc;
2226 ELSE
2227 x_tab.tl_uned_chrg_alloc_amt(i) := 0;
2228 END IF;
2229
2230 IF PG_DEBUG = 'Y' THEN
2231 localdebug(' x_tab.tl_uned_chrg_alloc_amt(i):'||x_tab.tl_uned_chrg_alloc_amt(i));
2232 localdebug(' x_run_uned_chrg_alloc:'||x_run_uned_chrg_alloc);
2233 localdebug(' l_uned_chrg_alloc:'||l_uned_chrg_alloc);
2234 END IF;
2235
2236 /*-------------------------------------------------+
2237 | Running chrg acctd amount in trx currency |
2238 +-------------------------------------------------*/
2239 IF x_tab.BASE_uned_CHRG_PRO_ACCTD_AMT(i) <> 0 AND x_tab.buc_uned_chrg_alloc_acctd_amt(i) <> 0 THEN
2240 x_run_uned_chrg_acctd_amt := x_run_uned_chrg_acctd_amt + x_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT(i);
2241 l_uned_chrg_acctd_alloc := CurrRound( x_run_uned_chrg_acctd_amt
2242 / x_tab.BASE_uned_CHRG_PRO_ACCTD_AMT(i)
2243 * x_tab.buc_uned_chrg_alloc_acctd_amt(i),
2244 x_tab.base_currency(i))
2245 - x_run_uned_chrg_acctd_alloc;
2246 x_tab.tl_uned_chrg_alloc_acctd_amt(i) := l_uned_chrg_acctd_alloc;
2247 x_run_uned_chrg_acctd_alloc := x_run_uned_chrg_acctd_alloc + l_uned_chrg_acctd_alloc;
2248 ELSE
2249 x_tab.tl_uned_chrg_alloc_acctd_amt(i) := 0;
2250 END IF;
2251 ELSE
2252
2253 x_tab.tl_uned_alloc_amt(i) := 0;
2254 x_tab.tl_uned_alloc_acctd_amt(i) := 0;
2255 x_tab.tl_uned_tax_alloc_amt(i) := 0;
2256 x_tab.tl_uned_tax_alloc_acctd_amt(i) := 0;
2257 x_tab.tl_uned_frt_alloc_amt(i) := 0;
2258 x_tab.tl_uned_frt_alloc_acctd_amt(i) := 0;
2259 x_tab.tl_uned_chrg_alloc_amt(i) := 0;
2260 x_tab.tl_uned_chrg_alloc_acctd_amt(i) := 0;
2261
2262 END IF;
2263
2264 IF i = x_tab.ROWID_ID.LAST THEN
2265 -- Store the last group
2266 store_group
2267 (p_groupe => l_group,
2268 -- ADJ and APP
2269 p_run_amt => x_run_amt,
2270 p_run_alloc => x_run_alloc,
2271 p_run_acctd_amt => x_run_acctd_amt,
2272 p_run_acctd_alloc => x_run_acctd_alloc,
2273 p_run_chrg_amt => x_run_chrg_amt,
2274 p_run_chrg_alloc => x_run_chrg_alloc,
2275 p_run_chrg_acctd_amt => x_run_chrg_acctd_amt,
2276 p_run_chrg_acctd_alloc => x_run_chrg_acctd_alloc,
2277 p_run_frt_amt => x_run_frt_amt,
2278 p_run_frt_alloc => x_run_frt_alloc,
2279 p_run_frt_acctd_amt => x_run_frt_acctd_amt,
2280 p_run_frt_acctd_alloc => x_run_frt_acctd_alloc,
2281 p_run_tax_amt => x_run_tax_amt,
2282 p_run_tax_alloc => x_run_tax_alloc,
2283 p_run_tax_acctd_amt => x_run_tax_acctd_amt,
2284 p_run_tax_acctd_alloc => x_run_tax_acctd_alloc,
2285 -- ED
2286 p_run_ed_amt => x_run_ed_amt,
2287 p_run_ed_alloc => x_run_ed_alloc,
2288 p_run_ed_acctd_amt => x_run_ed_acctd_amt,
2289 p_run_ed_acctd_alloc => x_run_ed_acctd_alloc,
2290 p_run_ed_chrg_amt => x_run_ed_chrg_amt,
2291 p_run_ed_chrg_alloc => x_run_ed_chrg_alloc,
2292 p_run_ed_chrg_acctd_amt => x_run_ed_chrg_acctd_amt,
2293 p_run_ed_chrg_acctd_alloc => x_run_ed_chrg_acctd_alloc,
2294 p_run_ed_frt_amt => x_run_ed_frt_amt,
2295 p_run_ed_frt_alloc => x_run_ed_frt_alloc,
2296 p_run_ed_frt_acctd_amt => x_run_ed_frt_acctd_amt,
2297 p_run_ed_frt_acctd_alloc => x_run_ed_frt_acctd_alloc,
2298 p_run_ed_tax_amt => x_run_ed_tax_amt,
2299 p_run_ed_tax_alloc => x_run_ed_tax_alloc,
2300 p_run_ed_tax_acctd_amt => x_run_ed_tax_acctd_amt,
2301 p_run_ed_tax_acctd_alloc => x_run_ed_tax_acctd_alloc,
2302 -- UNED
2303 p_run_uned_amt => x_run_uned_amt,
2304 p_run_uned_alloc => x_run_uned_alloc,
2305 p_run_uned_acctd_amt => x_run_uned_acctd_amt,
2306 p_run_uned_acctd_alloc => x_run_uned_acctd_alloc,
2307 p_run_uned_chrg_amt => x_run_uned_chrg_amt,
2308 p_run_uned_chrg_alloc => x_run_uned_chrg_alloc,
2309 p_run_uned_chrg_acctd_amt => x_run_uned_chrg_acctd_amt,
2310 p_run_uned_chrg_acctd_alloc => x_run_uned_chrg_acctd_alloc,
2311 p_run_uned_frt_amt => x_run_uned_frt_amt,
2312 p_run_uned_frt_alloc => x_run_uned_frt_alloc,
2313 p_run_uned_frt_acctd_amt => x_run_uned_frt_acctd_amt,
2314 p_run_uned_frt_acctd_alloc => x_run_uned_frt_acctd_alloc,
2315 p_run_uned_tax_amt => x_run_uned_tax_amt,
2316 p_run_uned_tax_alloc => x_run_uned_tax_alloc,
2317 p_run_uned_tax_acctd_amt => x_run_uned_tax_acctd_amt,
2318 p_run_uned_tax_acctd_alloc => x_run_uned_tax_acctd_alloc,
2319 --
2320 x_group_tbl => x_group_tbl);
2321 END IF;
2322
2323 END LOOP;
2324 IF PG_DEBUG = 'Y' THEN
2325 localdebug('arp_det_dist_pkg.plsql_proration()-');
2326 END IF;
2327 EXCEPTION
2328 WHEN tbl_pro_res_tbl_empty THEN
2329 IF PG_DEBUG = 'Y' THEN
2330 localdebug('EXCEPTION tbl_pro_res_tbl_empty in PLSQL_PRORATION '||
2331 ' table containing element over which proration should happen is empty');
2332 END IF;
2333 WHEN OTHERS THEN
2334 IF PG_DEBUG = 'Y' THEN
2335 localdebug('EXCEPTION OTHERS in PLSQL_PRORATION :'|| SQLERRM);
2336 END IF;
2337 RAISE;
2338 END plsql_proration;
2339
2340
2341
2342 PROCEDURE update_line
2343 (p_gt_id IN VARCHAR2,
2344 p_customer_trx_id IN NUMBER,
2345 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
2346 IS
2347 CURSOR c_read_for_line IS
2348 SELECT /*+INDEX (b ra_ar_n1) INDEX(d RA_AR_AMOUNTS_GT_N1)*/
2349 b.group_id||'-'||b.line_type||'-'||
2350 b.ref_customer_trx_id || '-' ||
2351 b.ref_customer_trx_line_id groupe,
2352 -- ADJ AND APP
2353 --Base
2354 d.base_pro_amt,
2355 d.base_pro_acctd_amt,
2356 d.base_frt_pro_amt,
2357 d.base_frt_pro_acctd_amt,
2358 d.base_tax_pro_amt,
2359 d.base_tax_pro_acctd_amt,
2360 d.BASE_CHRG_PRO_AMT,
2361 d.BASE_CHRG_PRO_ACCTD_AMT,
2362 --Element
2363 d.elmt_pro_amt,
2364 d.elmt_pro_acctd_amt,
2365 d.ELMT_FRT_PRO_AMT,
2366 d.ELMT_FRT_PRO_ACCTD_AMT,
2367 d.ELMT_tax_PRO_AMT,
2368 d.ELMT_tax_PRO_ACCTD_AMT,
2369 d.ELMT_CHRG_PRO_AMT,
2370 d.ELMT_CHRG_PRO_ACCTD_AMT,
2371 --Amount to be allocated
2372 d.buc_alloc_amt,
2373 d.buc_alloc_acctd_amt,
2374 d.buc_frt_alloc_amt,
2375 d.buc_frt_alloc_acctd_amt,
2376 d.buc_tax_alloc_amt,
2377 d.buc_tax_alloc_acctd_amt,
2378 d.buc_chrg_alloc_amt,
2379 d.buc_chrg_alloc_acctd_amt,
2380 -- ED
2381 --Base
2382 d.base_ed_pro_amt,
2383 d.base_ed_pro_acctd_amt,
2384 d.BASE_ed_frt_PRO_AMT,
2385 d.BASE_ed_frt_PRO_ACCTD_AMT,
2386 d.BASE_ed_tax_PRO_AMT,
2387 d.BASE_ed_tax_PRO_ACCTD_AMT,
2388 d.BASE_ed_CHRG_PRO_AMT,
2389 d.BASE_ed_CHRG_PRO_ACCTD_AMT,
2390 --Element
2391 d.elmt_ed_pro_amt,
2392 d.elmt_ed_pro_acctd_amt,
2393 d.ELMT_ed_FRT_PRO_AMT,
2394 d.ELMT_ed_FRT_PRO_ACCTD_AMT,
2395 d.ELMT_ed_tax_PRO_AMT,
2396 d.ELMT_ed_tax_PRO_ACCTD_AMT,
2397 d.ELMT_ed_CHRG_PRO_AMT,
2398 d.ELMT_ed_CHRG_PRO_ACCTD_AMT,
2399 --Amount to be allocated
2400 d.buc_ed_alloc_amt,
2401 d.buc_ed_alloc_acctd_amt,
2402 d.buc_ed_frt_alloc_amt,
2403 d.buc_ed_frt_alloc_acctd_amt,
2404 d.buc_ed_tax_alloc_amt,
2405 d.buc_ed_tax_alloc_acctd_amt,
2406 d.buc_ed_chrg_alloc_amt,
2407 d.buc_ed_chrg_alloc_acctd_amt,
2408 -- UNED
2409 --Base
2410 d.base_uned_pro_amt,
2411 d.base_uned_pro_acctd_amt,
2412 d.BASE_uned_FRT_PRO_AMT,
2413 d.BASE_uned_FRT_PRO_ACCTD_AMT,
2414 d.BASE_uned_tax_PRO_AMT,
2415 d.BASE_uned_tax_PRO_ACCTD_AMT,
2416 d.BASE_uned_CHRG_PRO_AMT,
2417 d.BASE_uned_CHRG_PRO_ACCTD_AMT,
2418 --Element
2419 d.elmt_uned_pro_amt,
2420 d.elmt_uned_pro_acctd_amt,
2421 d.ELMT_uned_FRT_PRO_AMT,
2422 d.ELMT_uned_FRT_PRO_ACCTD_AMT,
2423 d.ELMT_uned_tax_PRO_AMT,
2424 d.ELMT_uned_tax_PRO_ACCTD_AMT,
2425 d.ELMT_uned_CHRG_PRO_AMT,
2426 d.ELMT_uned_CHRG_PRO_ACCTD_AMT,
2427 --Amount to be allocated
2428 d.buc_uned_alloc_amt,
2429 d.buc_uned_alloc_acctd_amt,
2430 d.buc_uned_frt_alloc_amt,
2431 d.buc_uned_frt_alloc_acctd_amt,
2432 d.buc_uned_tax_alloc_amt,
2433 d.buc_uned_tax_alloc_acctd_amt,
2434 d.buc_uned_chrg_alloc_amt,
2435 d.buc_uned_chrg_alloc_acctd_amt,
2436 ----
2437 --Currencies
2438 b.BASE_CURRENCY ,
2439 b.TO_CURRENCY ,
2440 b.FROM_CURRENCY ,
2441 -- Rowid
2442 b.rowid
2443 FROM RA_AR_GT b,
2444 RA_AR_AMOUNTS_GT d
2445 WHERE b.gt_id = p_gt_id
2446 AND b.ref_customer_trx_id = p_customer_trx_id
2447 AND b.gp_level = 'L'
2448 AND d.gt_id = b.gt_id
2449 AND d.base_rec_rowid = b.rowid
2450 --Bug#3611016
2451 AND b.SET_OF_BOOKS_ID = p_ae_sys_rec.set_of_books_id
2452 AND (b.SOB_TYPE = p_ae_sys_rec.sob_type OR
2453 (b.SOB_TYPE IS NULL AND p_ae_sys_rec.sob_type IS NULL))
2454 ORDER BY b.group_id||'-'||
2455 b.line_type||'-'||b.ref_customer_trx_id || '-' ||b.ref_customer_trx_line_id;
2456 l_tab pro_res_tbl_type;
2457
2458 l_group_tbl group_tbl_type;
2459 l_group VARCHAR2(900) := 'NOGROUP';
2460
2461 -- ADJ and APP
2462 l_run_amt NUMBER := 0;
2463 l_run_alloc NUMBER := 0;
2464 l_run_acctd_amt NUMBER := 0;
2465 l_run_acctd_alloc NUMBER := 0;
2466 l_alloc NUMBER := 0;
2467 l_acctd_alloc NUMBER := 0;
2468
2469 l_run_chrg_amt NUMBER := 0;
2470 l_run_chrg_alloc NUMBER := 0;
2471 l_run_chrg_acctd_amt NUMBER := 0;
2472 l_run_chrg_acctd_alloc NUMBER := 0;
2473 l_chrg_alloc NUMBER := 0;
2474 l_chrg_acctd_alloc NUMBER := 0;
2475
2476 l_run_frt_amt NUMBER := 0;
2477 l_run_frt_alloc NUMBER := 0;
2478 l_run_frt_acctd_amt NUMBER := 0;
2479 l_run_frt_acctd_alloc NUMBER := 0;
2480 l_frt_alloc NUMBER := 0;
2481 l_frt_acctd_alloc NUMBER := 0;
2482
2483 l_run_tax_amt NUMBER := 0;
2484 l_run_tax_alloc NUMBER := 0;
2485 l_run_tax_acctd_amt NUMBER := 0;
2486 l_run_tax_acctd_alloc NUMBER := 0;
2487 l_tax_alloc NUMBER := 0;
2488 l_tax_acctd_alloc NUMBER := 0;
2489
2490
2491 -- ED
2492 l_run_ed_amt NUMBER := 0;
2493 l_run_ed_alloc NUMBER := 0;
2494 l_run_ed_acctd_amt NUMBER := 0;
2495 l_run_ed_acctd_alloc NUMBER := 0;
2496 l_ed_alloc NUMBER := 0;
2497 l_ed_acctd_alloc NUMBER := 0;
2498
2499 l_run_ed_chrg_amt NUMBER := 0;
2500 l_run_ed_chrg_alloc NUMBER := 0;
2501 l_run_ed_chrg_acctd_amt NUMBER := 0;
2502 l_run_ed_chrg_acctd_alloc NUMBER := 0;
2503 l_ed_chrg_alloc NUMBER := 0;
2504 l_ed_chrg_acctd_alloc NUMBER := 0;
2505
2506 l_run_ed_frt_amt NUMBER := 0;
2507 l_run_ed_frt_alloc NUMBER := 0;
2508 l_run_ed_frt_acctd_amt NUMBER := 0;
2509 l_run_ed_frt_acctd_alloc NUMBER := 0;
2510 l_ed_frt_alloc NUMBER := 0;
2511 l_ed_frt_acctd_alloc NUMBER := 0;
2512
2513 l_run_ed_tax_amt NUMBER := 0;
2514 l_run_ed_tax_alloc NUMBER := 0;
2515 l_run_ed_tax_acctd_amt NUMBER := 0;
2516 l_run_ed_tax_acctd_alloc NUMBER := 0;
2517 l_ed_tax_alloc NUMBER := 0;
2518 l_ed_tax_acctd_alloc NUMBER := 0;
2519
2520 -- UNED
2521 l_run_uned_amt NUMBER := 0;
2522 l_run_uned_alloc NUMBER := 0;
2523 l_run_uned_acctd_amt NUMBER := 0;
2524 l_run_uned_acctd_alloc NUMBER := 0;
2525 l_uned_alloc NUMBER := 0;
2526 l_uned_acctd_alloc NUMBER := 0;
2527
2528 l_run_uned_chrg_amt NUMBER := 0;
2529 l_run_uned_chrg_alloc NUMBER := 0;
2530 l_run_uned_chrg_acctd_amt NUMBER := 0;
2531 l_run_uned_chrg_acctd_alloc NUMBER := 0;
2532 l_uned_chrg_alloc NUMBER := 0;
2533 l_uned_chrg_acctd_alloc NUMBER := 0;
2534
2535 l_run_uned_frt_amt NUMBER := 0;
2536 l_run_uned_frt_alloc NUMBER := 0;
2537 l_run_uned_frt_acctd_amt NUMBER := 0;
2538 l_run_uned_frt_acctd_alloc NUMBER := 0;
2539 l_uned_frt_alloc NUMBER := 0;
2540 l_uned_frt_acctd_alloc NUMBER := 0;
2541
2542 l_run_uned_tax_amt NUMBER := 0;
2543 l_run_uned_tax_alloc NUMBER := 0;
2544 l_run_uned_tax_acctd_amt NUMBER := 0;
2545 l_run_uned_tax_acctd_alloc NUMBER := 0;
2546 l_uned_tax_alloc NUMBER := 0;
2547 l_uned_tax_acctd_alloc NUMBER := 0;
2548
2549 l_exist BOOLEAN;
2550 l_last_fetch BOOLEAN;
2551
2552 BEGIN
2553 IF PG_DEBUG = 'Y' THEN
2554 localdebug('arp_det_dist_pkg.update_line()+');
2555 END IF;
2556
2557 OPEN c_read_for_line;
2558 LOOP
2559 FETCH c_read_for_line BULK COLLECT INTO
2560 l_tab.GROUPE ,
2561 -- ADJ and APP
2562 -- Base
2563 l_tab.base_pro_amt ,
2564 l_tab.base_pro_acctd_amt ,
2565 l_tab.BASE_FRT_PRO_AMT ,
2566 l_tab.BASE_FRT_PRO_ACCTD_AMT ,
2567 l_tab.BASE_tax_PRO_AMT ,
2568 l_tab.BASE_tax_PRO_ACCTD_AMT ,
2569 l_tab.BASE_CHRG_PRO_AMT ,
2570 l_tab.BASE_CHRG_PRO_ACCTD_AMT ,
2571 -- Element numerator
2572 l_tab.elmt_pro_amt ,
2573 l_tab.elmt_pro_acctd_amt ,
2574 l_tab.ELMT_FRT_PRO_AMT ,
2575 l_tab.ELMT_FRT_PRO_ACCTD_AMT ,
2576 l_tab.ELMT_tax_PRO_AMT ,
2577 l_tab.ELMT_tax_PRO_ACCTD_AMT ,
2578 l_tab.ELMT_CHRG_PRO_AMT ,
2579 l_tab.ELMT_CHRG_PRO_ACCTD_AMT ,
2580 -- Amount to be allocated
2581 l_tab.buc_alloc_amt ,
2582 l_tab.buc_alloc_acctd_amt,
2583 l_tab.buc_frt_alloc_amt ,
2584 l_tab.buc_frt_alloc_acctd_amt,
2585 l_tab.buc_tax_alloc_amt ,
2586 l_tab.buc_tax_alloc_acctd_amt,
2587 l_tab.buc_chrg_alloc_amt ,
2588 l_tab.buc_chrg_alloc_acctd_amt,
2589 -- ED
2590 -- Base
2591 l_tab.base_ed_pro_amt ,
2592 l_tab.base_ed_pro_acctd_amt ,
2593 l_tab.BASE_ed_FRT_PRO_AMT ,
2594 l_tab.BASE_ed_FRT_PRO_ACCTD_AMT ,
2595 l_tab.BASE_ed_tax_PRO_AMT ,
2596 l_tab.BASE_ed_tax_PRO_ACCTD_AMT ,
2597 l_tab.BASE_ed_CHRG_PRO_AMT ,
2598 l_tab.BASE_ed_CHRG_PRO_ACCTD_AMT ,
2599 -- Element numerator
2600 l_tab.elmt_ed_pro_amt ,
2601 l_tab.elmt_ed_pro_acctd_amt ,
2602 l_tab.ELMT_ed_FRT_PRO_AMT ,
2603 l_tab.ELMT_ed_FRT_PRO_ACCTD_AMT ,
2604 l_tab.ELMT_ed_tax_PRO_AMT ,
2605 l_tab.ELMT_ed_tax_PRO_ACCTD_AMT ,
2606 l_tab.ELMT_ed_CHRG_PRO_AMT ,
2607 l_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT ,
2608 -- Amount to be allocated
2609 l_tab.buc_ed_alloc_amt ,
2610 l_tab.buc_ed_alloc_acctd_amt,
2611 l_tab.buc_ed_frt_alloc_amt ,
2612 l_tab.buc_ed_frt_alloc_acctd_amt,
2613 l_tab.buc_ed_tax_alloc_amt ,
2614 l_tab.buc_ed_tax_alloc_acctd_amt,
2615 l_tab.buc_ed_chrg_alloc_amt ,
2616 l_tab.buc_ed_chrg_alloc_acctd_amt,
2617 -- UNED
2618 -- Base
2619 l_tab.base_uned_pro_amt ,
2620 l_tab.base_uned_pro_acctd_amt ,
2621 l_tab.BASE_uned_FRT_PRO_AMT ,
2622 l_tab.BASE_uned_FRT_PRO_ACCTD_AMT ,
2623 l_tab.BASE_uned_tax_PRO_AMT ,
2624 l_tab.BASE_uned_tax_PRO_ACCTD_AMT ,
2625 l_tab.BASE_uned_CHRG_PRO_AMT ,
2626 l_tab.BASE_uned_CHRG_PRO_ACCTD_AMT ,
2627 -- Element numerator
2628 l_tab.elmt_uned_pro_amt ,
2629 l_tab.elmt_uned_pro_acctd_amt ,
2630 l_tab.ELMT_uned_FRT_PRO_AMT ,
2631 l_tab.ELMT_uned_FRT_PRO_ACCTD_AMT ,
2632 l_tab.ELMT_uned_tax_PRO_AMT ,
2633 l_tab.ELMT_uned_tax_PRO_ACCTD_AMT ,
2634 l_tab.ELMT_uned_CHRG_PRO_AMT ,
2635 l_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT ,
2636 -- Amount to be allocated
2637 l_tab.buc_uned_alloc_amt ,
2638 l_tab.buc_uned_alloc_acctd_amt,
2639 l_tab.buc_uned_frt_alloc_amt ,
2640 l_tab.buc_uned_frt_alloc_acctd_amt,
2641 l_tab.buc_uned_tax_alloc_amt ,
2642 l_tab.buc_uned_tax_alloc_acctd_amt,
2643 l_tab.buc_uned_chrg_alloc_amt ,
2644 l_tab.buc_uned_chrg_alloc_acctd_amt,
2645 --
2646 l_tab.BASE_CURRENCY ,
2647 l_tab.TO_CURRENCY ,
2648 l_tab.FROM_CURRENCY ,
2649 --
2650 l_tab.ROWID_ID LIMIT g_bulk_fetch_rows;
2651
2652 IF c_read_for_line%NOTFOUND THEN
2653 l_last_fetch := TRUE;
2654 END IF;
2655
2656 IF (l_tab.ROWID_ID.COUNT = 0) AND (l_last_fetch) THEN
2657 IF PG_DEBUG = 'Y' THEN
2658 localdebug('COUNT = 0 and LAST FETCH ');
2659 END IF;
2660 EXIT;
2661 END IF;
2662
2663 plsql_proration( x_tab => l_tab,
2664 x_group_tbl => l_group_tbl,
2665 -- ADJ and APP
2666 x_run_amt => l_run_amt,
2667 x_run_alloc => l_run_alloc,
2668 x_run_acctd_amt => l_run_acctd_amt,
2669 x_run_acctd_alloc => l_run_acctd_alloc,
2670 x_run_chrg_amt => l_run_chrg_amt,
2671 x_run_chrg_alloc => l_run_chrg_alloc,
2672 x_run_chrg_acctd_amt => l_run_chrg_acctd_amt,
2673 x_run_chrg_acctd_alloc => l_run_chrg_acctd_alloc,
2674 x_run_frt_amt => l_run_frt_amt,
2675 x_run_frt_alloc => l_run_frt_alloc,
2676 x_run_frt_acctd_amt => l_run_frt_acctd_amt,
2677 x_run_frt_acctd_alloc => l_run_frt_acctd_alloc,
2678 x_run_tax_amt => l_run_tax_amt,
2679 x_run_tax_alloc => l_run_tax_alloc,
2680 x_run_tax_acctd_amt => l_run_tax_acctd_amt,
2681 x_run_tax_acctd_alloc => l_run_tax_acctd_alloc,
2682 -- ED
2683 x_run_ed_amt => l_run_ed_amt,
2684 x_run_ed_alloc => l_run_ed_alloc,
2685 x_run_ed_acctd_amt => l_run_ed_acctd_amt,
2686 x_run_ed_acctd_alloc => l_run_ed_acctd_alloc,
2687 x_run_ed_chrg_amt => l_run_ed_chrg_amt,
2688 x_run_ed_chrg_alloc => l_run_ed_chrg_alloc,
2689 x_run_ed_chrg_acctd_amt => l_run_ed_chrg_acctd_amt,
2690 x_run_ed_chrg_acctd_alloc => l_run_ed_chrg_acctd_alloc,
2691 x_run_ed_frt_amt => l_run_ed_frt_amt,
2692 x_run_ed_frt_alloc => l_run_ed_frt_alloc,
2693 x_run_ed_frt_acctd_amt => l_run_ed_frt_acctd_amt,
2694 x_run_ed_frt_acctd_alloc => l_run_ed_frt_acctd_alloc,
2695 x_run_ed_tax_amt => l_run_ed_tax_amt,
2696 x_run_ed_tax_alloc => l_run_ed_tax_alloc,
2697 x_run_ed_tax_acctd_amt => l_run_ed_tax_acctd_amt,
2698 x_run_ed_tax_acctd_alloc => l_run_ed_tax_acctd_alloc,
2699 -- UNED
2700 x_run_uned_amt => l_run_uned_amt,
2701 x_run_uned_alloc => l_run_uned_alloc,
2702 x_run_uned_acctd_amt => l_run_uned_acctd_amt,
2703 x_run_uned_acctd_alloc => l_run_uned_acctd_alloc,
2704 x_run_uned_chrg_amt => l_run_uned_chrg_amt,
2705 x_run_uned_chrg_alloc => l_run_uned_chrg_alloc,
2706 x_run_uned_chrg_acctd_amt => l_run_uned_chrg_acctd_amt,
2707 x_run_uned_chrg_acctd_alloc => l_run_uned_chrg_acctd_alloc,
2708 x_run_uned_frt_amt => l_run_uned_frt_amt,
2709 x_run_uned_frt_alloc => l_run_uned_frt_alloc,
2710 x_run_uned_frt_acctd_amt => l_run_uned_frt_acctd_amt,
2711 x_run_uned_frt_acctd_alloc => l_run_uned_frt_acctd_alloc,
2712 x_run_uned_tax_amt => l_run_uned_tax_amt,
2713 x_run_uned_tax_alloc => l_run_uned_tax_alloc,
2714 x_run_uned_tax_acctd_amt => l_run_uned_tax_acctd_amt,
2715 x_run_uned_tax_acctd_alloc => l_run_uned_tax_acctd_alloc
2716 );
2717
2718 IF PG_DEBUG = 'Y' THEN
2719 localdebug(' update ra_ar_gt trx_line_all ');
2720 END IF;
2721 FORALL i IN l_tab.ROWID_ID.FIRST .. l_tab.ROWID_ID.LAST
2722 UPDATE ra_ar_gt
2723 SET
2724 -- ADJ and APP
2725 tl_alloc_amt = l_tab.tl_alloc_amt(i),
2726 tl_alloc_acctd_amt = l_tab.tl_alloc_acctd_amt(i),
2727 tl_chrg_alloc_amt = l_tab.tl_chrg_alloc_amt(i),
2728 tl_chrg_alloc_acctd_amt = l_tab.tl_chrg_alloc_acctd_amt(i),
2729 tl_frt_alloc_amt = l_tab.tl_frt_alloc_amt(i),
2730 tl_frt_alloc_acctd_amt = l_tab.tl_frt_alloc_acctd_amt(i),
2731 tl_tax_alloc_amt = l_tab.tl_tax_alloc_amt(i),
2732 tl_tax_alloc_acctd_amt = l_tab.tl_tax_alloc_acctd_amt(i),
2733 -- ED
2734 tl_ed_alloc_amt = l_tab.tl_ed_alloc_amt(i),
2735 tl_ed_alloc_acctd_amt = l_tab.tl_ed_alloc_acctd_amt(i),
2736 tl_ed_chrg_alloc_amt = l_tab.tl_ed_chrg_alloc_amt(i),
2737 tl_ed_chrg_alloc_acctd_amt = l_tab.tl_ed_chrg_alloc_acctd_amt(i),
2738 tl_ed_frt_alloc_amt = l_tab.tl_ed_frt_alloc_amt(i),
2739 tl_ed_frt_alloc_acctd_amt = l_tab.tl_ed_frt_alloc_acctd_amt(i),
2740 tl_ed_tax_alloc_amt = l_tab.tl_ed_tax_alloc_amt(i),
2741 tl_ed_tax_alloc_acctd_amt = l_tab.tl_ed_tax_alloc_acctd_amt(i),
2742 -- UNED
2743 tl_uned_alloc_amt = l_tab.tl_uned_alloc_amt(i),
2744 tl_uned_alloc_acctd_amt = l_tab.tl_uned_alloc_acctd_amt(i),
2745 tl_uned_chrg_alloc_amt = l_tab.tl_uned_chrg_alloc_amt(i),
2746 tl_uned_chrg_alloc_acctd_amt = l_tab.tl_uned_chrg_alloc_acctd_amt(i),
2747 tl_uned_frt_alloc_amt = l_tab.tl_uned_frt_alloc_amt(i),
2748 tl_uned_frt_alloc_acctd_amt = l_tab.tl_uned_frt_alloc_acctd_amt(i),
2749 tl_uned_tax_alloc_amt = l_tab.tl_uned_tax_alloc_amt(i),
2750 tl_uned_tax_alloc_acctd_amt = l_tab.tl_uned_tax_alloc_acctd_amt(i)
2751 WHERE rowid = l_tab.ROWID_ID(i);
2752 IF PG_DEBUG = 'Y' THEN
2753 localdebug(' update ra_ar_gt trx_line_all ');
2754 END IF;
2755
2756 END LOOP;
2757 CLOSE c_read_for_line;
2758 IF PG_DEBUG = 'Y' THEN
2759 localdebug('arp_det_dist_pkg.update_line()-');
2760 END IF;
2761 END update_line;
2762
2763
2764 PROCEDURE get_invoice_line_info
2765 (p_gt_id IN VARCHAR2,
2766 p_customer_trx_id IN NUMBER,
2767 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
2768 p_mode IN VARCHAR2)
2769 IS
2770
2771 l_rows NUMBER;
2772
2773 BEGIN
2774 IF PG_DEBUG = 'Y' THEN
2775 localdebug('arp_det_dist_pkg.get_invoice_line_info()+');
2776 localdebug(' p_mode :'||p_mode);
2777 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
2778 localdebug(' sob_type :'||p_ae_sys_rec.sob_type);
2779 localdebug(' set_of_books_id :'||p_ae_sys_rec.set_of_books_id);
2780 END IF;
2781
2782 IF PG_DEBUG = 'Y' THEN
2783 localdebug(' for regular transaction');
2784 END IF;
2785 INSERT INTO RA_AR_GT
2786 ( GT_ID ,
2787 BASE_CURRENCY ,
2788 TO_CURRENCY ,
2789 REF_CUSTOMER_TRX_ID ,
2790 REF_CUSTOMER_TRX_LINE_ID ,
2791 --
2792 DUE_ORIG_AMT ,
2793 DUE_ORIG_ACCTD_AMT ,
2794 --{line of type CHRG
2795 CHRG_ORIG_AMT ,
2796 CHRG_ORIG_ACCTD_AMT ,
2797 --}
2798 --
2799 FRT_ORIG_AMT ,
2800 FRT_ORIG_ACCTD_AMT ,
2801 TAX_ORIG_AMT ,
2802 TAX_ORIG_ACCTD_AMT ,
2803 --
2804 DUE_REM_AMT ,
2805 DUE_REM_ACCTD_AMT ,
2806 CHRG_REM_AMT ,
2807 CHRG_REM_ACCTD_AMT ,
2808 --
2809 FRT_REM_AMT ,
2810 FRT_REM_ACCTD_AMT ,
2811 TAX_REM_AMT ,
2812 TAX_REM_ACCTD_AMT ,
2813 --
2814 --{line of type CHRG
2815 CHRG_ADJ_REM_AMT ,
2816 CHRG_ADJ_REM_ACCTD_AMT ,
2817 --}
2818 FRT_ADJ_REM_AMT ,
2819 FRT_ADJ_REM_ACCTD_AMT ,
2820 --
2821 LINE_TYPE ,
2822 group_id ,
2823 --{HYUBPAGP
2824 source_data_key1 ,
2825 source_data_key2 ,
2826 source_data_key3 ,
2827 source_data_key4 ,
2828 source_data_key5 ,
2829 --}
2830 --
2831 SUM_LINE_ORIG_AMT ,
2832 SUM_LINE_ORIG_ACCTD_AMT ,
2833 --{line of type CHRG
2834 SUM_LINE_CHRG_ORIG_AMT ,
2835 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
2836 --}
2837 SUM_LINE_FRT_ORIG_AMT ,
2838 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
2839 SUM_LINE_TAX_ORIG_AMT ,
2840 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
2841 --
2842 SUM_LINE_REM_AMT ,
2843 SUM_LINE_REM_ACCTD_AMT ,
2844 SUM_LINE_CHRG_REM_AMT ,
2845 SUM_LINE_CHRG_REM_ACCTD_AMT,
2846 --
2847 SUM_LINE_FRT_REM_AMT ,
2848 SUM_LINE_FRT_REM_ACCTD_AMT ,
2849 SUM_LINE_TAX_REM_AMT ,
2850 SUM_LINE_TAX_REM_ACCTD_AMT ,
2851 --
2852 gp_level,
2853 --3611016
2854 set_of_books_id,
2855 sob_type,
2856 -- se_gt_id,
2857 tax_link_id,
2858 tax_inc_flag
2859 --{BUG#4415037
2860 ,INT_LINE_AMOUNT
2861 ,INT_TAX_AMOUNT
2862 ,INT_ED_LINE_AMOUNT
2863 ,INT_ED_TAX_AMOUNT
2864 ,INT_UNED_LINE_AMOUNT
2865 ,INT_UNED_TAX_AMOUNT
2866 ,SUM_INT_LINE_AMOUNT
2867 ,SUM_INT_TAX_AMOUNT
2868 ,SUM_INT_ED_LINE_AMOUNT
2869 ,SUM_INT_ED_TAX_AMOUNT
2870 ,SUM_INT_UNED_LINE_AMOUNT
2871 ,SUM_INT_UNED_TAX_AMOUNT
2872 --}
2873 )
2874 SELECT /*+INDEX (ctl ra_customer_trx_lines_gt_n1)*/
2875 p_gt_id , --GT_ID
2876 p_ae_sys_rec.base_currency , --BASE_CURRENCY
2877 trx.invoice_currency_code , --TO_CURRENCY
2878 trx.customer_trx_id , --REF_CUSTOMER_TRX_ID
2879 ctl.customer_trx_line_id , --REF_CUSTOMER_TRX_LINE_ID
2880 -- Orig
2881 DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
2882 'CB' ,ctl.amount_due_original, 0), --DUE_ORIG_AMT
2883 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
2884 'CB' ,ctl.acctd_amount_due_original,0), --DUE_ORIG_ACCTD_AMT
2885 --{line of type CHRG
2886 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0), --CHRG_ORIG_AMT
2887 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0), --CHRG_ORIG_ACCTD_AMT
2888 --}
2889 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0), --FRT_ORIG_AMT
2890 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0), --FRT_ORIG_ACCTD_AMT
2891 DECODE(ctl.line_type,'TAX',ctl.amount_due_original, 0), --TAX_ORIG_AMT
2892 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0), --TAX_ORIG_ACCTD_AMT
2893 -- Remaining
2894 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
2895 'CB' ,ctl.amount_due_remaining,0))
2896 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
2897 THEN
2898 DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
2899 'CB' ,ctl.amount_due_original,0)
2900 ELSE
2901 DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
2902 'CB' ,ctl.amount_due_remaining, 0) END, --DUE_REM_AMT
2903 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
2904 'CB' ,ctl.acctd_amount_due_remaining,0))
2905 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
2906 THEN
2907 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
2908 'CB' ,ctl.acctd_amount_due_original,0)
2909 ELSE
2910 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
2911 'CB' ,ctl.acctd_amount_due_remaining,0) END, --DUE_REM_ACCTD_AMT
2912 --{line of type CHRG
2913 CASE WHEN SUM(DECODE
2914 (ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
2915 'CB' ,NVL(ctl.chrg_amount_remaining,0),
2916 'CHARGES',NVL(ctl.amount_due_remaining,0), /*HYU*/
2917 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
2918 THEN
2919 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0)
2920 ELSE
2921 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_remaining,0) END, --CHRG_REM_AMT
2922 CASE WHEN SUM(DECODE
2923 (ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
2924 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
2925 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
2926 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
2927 THEN
2928 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0)
2929 ELSE
2930 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_remaining,0) END, --CHRG_REM_ACCTD_AMT
2931 -- NVL(ctl.chrg_amount_remaining,0) , --CHRG_REM_AMT
2932 -- NVL(ctl.chrg_acctd_amount_remaining,0), --CHRG_REM_ACCTD_AMT
2933 --}
2934 --
2935 CASE WHEN SUM(DECODE
2936 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
2937 'CB' ,NVL(ctl.frt_adj_remaining,0),
2938 'FREIGHT',NVL(ctl.amount_due_remaining,0), /*HYU*/
2939 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
2940 THEN
2941 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0)
2942 ELSE
2943 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_remaining,0) END, --FRT_REM_AMT
2944 /*Frt Rem on freight is the
2945 rem amount of the freight calculated
2946 from orig frt - cash application
2947 frt adjustment variations are excluded
2948 they are kept in frt_adj_rem_amt on rev line */
2949 CASE WHEN SUM(DECODE
2950 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
2951 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
2952 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
2953 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
2954 THEN
2955 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0)
2956 ELSE
2957 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_remaining,0) END, --FRT_REM_ACCTD_AMT
2958 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0))
2959 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
2960 THEN
2961 DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0)
2962 ELSE
2963 DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0) END, --TAX_REM_AMT
2964 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0))
2965 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
2966 THEN
2967 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0)
2968 ELSE
2969 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0) END, --TAX_REM_ACCTD_AMT
2970 --{line of type CHRG
2971 CASE WHEN SUM(DECODE
2972 (ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
2973 'CB' ,NVL(ctl.chrg_amount_remaining,0),
2974 'CHARGES',NVL(ctl.amount_due_remaining,0), /*HYU*/
2975 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
2976 THEN 0
2977 ELSE
2978 NVL(ctl.chrg_amount_remaining,0) END, --CHRG_ADJ_REM_AMT
2979 CASE WHEN SUM(DECODE
2980 (ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
2981 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
2982 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
2983 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
2984 THEN 0
2985 ELSE
2986 NVL(ctl.chrg_acctd_amount_remaining,0) END, --CHRG_ADJ_REM_ACCTD_AMT
2987 --}
2988 CASE WHEN SUM(DECODE
2989 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
2990 'CB' ,NVL(ctl.frt_adj_remaining,0),
2991 'FREIGHT',NVL(ctl.amount_due_remaining,0), /*HYU*/
2992 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
2993 THEN 0
2994 ELSE
2995 NVL(ctl.frt_adj_remaining,0) END, --FRT_ADJ_REM_AMT
2996 CASE WHEN SUM(DECODE
2997 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
2998 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
2999 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
3000 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3001 THEN 0
3002 ELSE
3003 NVL(ctl.frt_adj_acctd_remaining,0) END, --FRT_ADJ_REM_ACCTD_AMT
3004 --
3005 ctl.line_type , --LINE_TYPE
3006 --{HYU Group Id issue
3007 --{
3008 /*
3009 DECODE(ctl.SOURCE_DATA_KEY1 ||
3010 ctl.SOURCE_DATA_KEY2 ||
3011 ctl.SOURCE_DATA_KEY3 ||
3012 ctl.SOURCE_DATA_KEY4 ||
3013 ctl.SOURCE_DATA_KEY5, NULL, '00',
3014 ctl.SOURCE_DATA_KEY1 ||'-'||
3015 ctl.SOURCE_DATA_KEY2 ||'-'||
3016 ctl.SOURCE_DATA_KEY3 ||'-'||
3017 ctl.SOURCE_DATA_KEY4 ||'-'||
3018 ctl.SOURCE_DATA_KEY5), --GROUP_ID
3019 */
3020 '00-00-00-00-00', --GROUP_ID
3021 --}
3022 --NVL(ctl.SOURCE_DATA_KEY1,'00'), --GROUP_ID
3023 --}
3024 --{HYUBPAGP
3025 --{
3026 /*
3027 NVL(ctl.source_data_key1,'00') ,
3028 NVL(ctl.source_data_key2,'00') ,
3029 NVL(ctl.source_data_key3,'00') ,
3030 NVL(ctl.source_data_key4,'00') ,
3031 NVL(ctl.source_data_key5,'00') ,
3032 */
3033 '00' ,
3034 '00' ,
3035 '00' ,
3036 '00' ,
3037 '00' ,
3038 --}
3039 --}
3040 --
3041 SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
3042 'CB' ,ctl.amount_due_original,0))
3043 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_ORIG_AMT
3044 SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
3045 'CB' ,ctl.acctd_amount_due_original,0))
3046 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_ORIG_ACCTD_AMT
3047 --
3048 --{HYUCHRG
3049 SUM(DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0))
3050 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_CHRG_ORIG_AMT
3051 SUM(DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0))
3052 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_CHRG_ORIG_ACCTD_AMT
3053 --}
3054 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0))
3055 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_FRT_ORIG_AMT
3056 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0))
3057 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_FRT_ORIG_ACCTD_AMT
3058 --
3059 SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0))
3060 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_ORIG_AMT
3061 SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0))
3062 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_ORIG_ACCTD_AMT
3063 --
3064 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
3065 'CB' ,ctl.amount_due_remaining,0))
3066 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3067 THEN SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
3068 'CB' ,ctl.amount_due_original,0))
3069 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3070 ELSE
3071 SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
3072 'CB' ,ctl.amount_due_remaining,0))
3073 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) END, --SUM_LINE_REM_AMT
3074 CASE WHEN SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
3075 'CB' ,ctl.acctd_amount_due_remaining,0))
3076 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3077 THEN SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
3078 'CB' ,ctl.acctd_amount_due_original,0))
3079 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3080 ELSE
3081 SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
3082 'CB' ,ctl.acctd_amount_due_remaining,0))
3083 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) END, --SUM_LINE_REM_ACCTD_AMT
3084
3085 --{HYUCHRG
3086 -- SUM(NVL(ctl.chrg_amount_remaining,0))
3087 -- OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_CHRG_REM_AMT
3088 -- SUM(NVL(ctl.chrg_acctd_amount_remaining,0))
3089 -- OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_CHRG_REM_ACCTD_AMT
3090 CASE WHEN SUM(DECODE
3091 (ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
3092 'CB' ,NVL(ctl.chrg_amount_remaining,0),
3093 'CHARGES',NVL(ctl.amount_due_remaining,0), /*HYU*/
3094 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3095 THEN SUM(DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0))
3096 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3097 ELSE
3098 SUM(DECODE
3099 (ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
3100 'CB' ,NVL(ctl.chrg_amount_remaining,0),
3101 'CHARGES',NVL(ctl.amount_due_remaining,0), /*HYU*/
3102 0)) OVER (PARTITION BY trx.customer_trx_id ) END,--SUM_LINE_CHRG_REM_AMT
3103 CASE WHEN SUM(DECODE
3104 (ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3105 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3106 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
3107 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3108 THEN SUM(DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0))
3109 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3110 ELSE SUM(DECODE
3111 (ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3112 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
3113 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
3114 0)) OVER (PARTITION BY trx.customer_trx_id ) END,--SUM_LINE_CHRG_REM_ACCTD_AMT
3115 --}
3116 --
3117 /*This is the sum of freight amount adjusted on the revenue line
3118 + sum of freight amount due remaining on the original freight line
3119 Those 2 amounts combined form the basis for cash receipt apps */
3120 CASE WHEN SUM(DECODE
3121 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
3122 'CB' ,NVL(ctl.frt_adj_remaining,0),
3123 'FREIGHT',NVL(ctl.amount_due_remaining,0), /*HYU*/
3124 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3125 THEN SUM(DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0))
3126 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3127 ELSE SUM(DECODE
3128 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
3129 'CB' ,NVL(ctl.frt_adj_remaining,0),
3130 'FREIGHT',NVL(ctl.amount_due_remaining,0), /*HYU*/
3131 0)) OVER (PARTITION BY trx.customer_trx_id ) END,--SUM_LINE_FRT_REM_AMT
3132 CASE WHEN SUM(DECODE
3133 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
3134 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
3135 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
3136 0)) OVER (PARTITION BY trx.customer_trx_id ) = 0
3137 THEN SUM(DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0))
3138 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3139 ELSE SUM(DECODE
3140 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
3141 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
3142 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
3143 0)) OVER (PARTITION BY trx.customer_trx_id ) END,--SUM_LINE_FRT_REM_ACCTD_AMT
3144 --
3145 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0))
3146 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3147 THEN SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0))
3148 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3149 ELSE SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0))
3150 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) END, --SUM_LINE_TAX_REM_AMT
3151 CASE WHEN SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0))
3152 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) = 0
3153 THEN SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0))
3154 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type )
3155 ELSE SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0))
3156 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ) END, --SUM_LINE_TAX_REM_ACCTD_AMT
3157 --
3158 'L',
3159 --Bug#3611016
3160 p_ae_sys_rec.set_of_books_id,
3161 p_ae_sys_rec.sob_type,
3162 -- g_se_gt_id,
3163 --{Taxable_amount
3164 DECODE(ctl.line_type, 'TAX' ,ctl.link_to_cust_trx_line_id,
3165 'LINE',ctl.customer_trx_line_id,
3166 'CB' ,ctl.customer_trx_line_id,
3167 NULL),
3168 DECODE(ctl.line_type,'LINE','Y',
3169 'CB' ,'Y',
3170 'TAX','Y','N')
3171 --{BUG#4415037
3172 ,CASE WHEN g_line_flag = 'INTERFACE' THEN it.line_amount ELSE NULL END -- INT_LINE_AMOUNT
3173 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN it.tax_amount ELSE NULL END -- INT_TAX_AMOUNT
3174 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN it.ed_line_amount ELSE NULL END -- INT_ED_LINE_AMOUNT
3175 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN it.ed_tax_amount ELSE NULL END -- INT_ED_TAX_AMOUNT
3176 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN it.uned_line_amount ELSE NULL END -- INT_UNED_LINE_AMOUNT
3177 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN it.uned_tax_amount ELSE NULL END -- INT_UNED_TAX_AMOUNT >> BUG 5736570
3178 ,CASE WHEN g_line_flag = 'INTERFACE' THEN it.sum_line_amount ELSE NULL END -- SUM_INT_LINE_AMOUNT
3179 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN it.sum_tax_amount ELSE NULL END -- SUM_INT_TAX_AMOUNT
3180 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN it.sum_ed_line_amount ELSE NULL END -- SUM_INT_ED_LINE_AMOUNT
3181 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN it.sum_ed_tax_amount ELSE NULL END -- SUM_INT_ED_TAX_AMOUNT
3182 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN it.sum_uned_line_amount ELSE NULL END -- SUM_INT_UNED_LINE_AMOUNT
3183 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN it.sum_uned_tax_amount ELSE NULL END -- SUM_INT_UNED_TAX_AMOUNT
3184 --}
3185 FROM ra_customer_trx trx,
3186 ra_customer_trx_lines_gt ctl,
3187 (SELECT /*+INDEX (ar_line_dist_interface_gt ar_line_dist_interface_gt_n1)*/
3188 gt_id gt_id
3189 ,customer_trx_id customer_trx_id
3190 ,customer_trx_line_id customer_trx_line_id
3191 ,line_type line_type
3192 ,NVL(line_amount,0) line_amount
3193 ,NVL(tax_amount,0) tax_amount
3194 ,NVL(ed_line_amount,0) ed_line_amount
3195 ,NVL(ed_tax_amount,0) ed_tax_amount
3196 ,NVL(uned_line_amount,0) uned_line_amount
3197 ,NVL(uned_tax_amount,0) uned_tax_amount
3198 ,SUM(NVL(line_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id) sum_line_amount
3199 ,SUM(NVL(tax_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id) sum_tax_amount
3200 ,SUM(NVL(ed_line_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id) sum_ed_line_amount
3201 ,SUM(NVL(ed_tax_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id) sum_ed_tax_amount
3202 ,SUM(NVL(uned_line_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id) sum_uned_line_amount
3203 ,SUM(NVL(uned_tax_amount,0)) OVER (PARTITION BY gt_id, customer_trx_id) sum_uned_tax_amount
3204 FROM ar_line_dist_interface_gt
3205 WHERE gt_id = p_gt_id
3206 AND customer_trx_id = p_customer_trx_id ) it
3207 WHERE trx.customer_trx_id = p_customer_trx_id
3208 AND trx.customer_trx_id = ctl.customer_trx_id
3209 AND ctl.customer_trx_line_id = it.customer_trx_line_id (+);
3210
3211 l_rows := sql%rowcount;
3212 IF PG_DEBUG = 'Y' THEN
3213 localdebug(' rows inserted = ' || l_rows);
3214 END IF;
3215
3216 IF PG_DEBUG = 'Y' THEN
3217 display_ra_ar_gt(p_gt_id => p_gt_id);
3218 END IF;
3219
3220 IF PG_DEBUG = 'Y' THEN
3221 localdebug('arp_det_dist_pkg.get_invoice_line_info()-');
3222 END IF;
3223 EXCEPTION
3224 WHEN OTHERS THEN
3225 IF PG_DEBUG = 'Y' THEN
3226 localdebug('EXCEPTION get_invoice_line_info OTHERS :'||SQLERRM);
3227 END IF;
3228 END get_invoice_line_info;
3229
3230
3231 PROCEDURE prepare_group_for_proration
3232 (p_gt_id IN VARCHAR2,
3233 p_customer_trx_id IN NUMBER,
3234 p_pay_adj IN VARCHAR2,
3235 p_adj_rec IN ar_adjustments%ROWTYPE,
3236 p_app_rec IN ar_receivable_applications%ROWTYPE,
3237 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
3238 IS
3239 l_rows NUMBER;
3240 BEGIN
3241 IF PG_DEBUG = 'Y' THEN
3242 localdebug('arp_det_dist_pkg.prepare_group_for_proration()+');
3243 END IF;
3244
3245 IF p_pay_adj = 'APP' THEN
3246 IF(p_app_rec.LINE_EDISCOUNTED IS NOT NULL AND p_app_rec.LINE_EDISCOUNTED <> 0) OR
3247 (p_app_rec.TAX_EDISCOUNTED IS NOT NULL AND p_app_rec.TAX_EDISCOUNTED <> 0) OR
3248 (p_app_rec.FREIGHT_EDISCOUNTED IS NOT NULL AND p_app_rec.FREIGHT_EDISCOUNTED <> 0) OR
3249 (p_app_rec.CHARGES_EDISCOUNTED IS NOT NULL AND p_app_rec.CHARGES_EDISCOUNTED <> 0)
3250 THEN
3251 g_ed_req := 'Y';
3252 ELSE
3253 g_ed_req := 'N';
3254 END IF;
3255 IF(p_app_rec.LINE_UEDISCOUNTED IS NOT NULL AND p_app_rec.LINE_UEDISCOUNTED <> 0) OR
3256 (p_app_rec.TAX_UEDISCOUNTED IS NOT NULL AND p_app_rec.TAX_UEDISCOUNTED <> 0) OR
3257 (p_app_rec.FREIGHT_UEDISCOUNTED IS NOT NULL AND p_app_rec.FREIGHT_UEDISCOUNTED <> 0) OR
3258 (p_app_rec.CHARGES_UEDISCOUNTED IS NOT NULL AND p_app_rec.CHARGES_UEDISCOUNTED <> 0)
3259 THEN
3260 g_uned_req := 'Y';
3261 ELSE
3262 g_uned_req := 'N';
3263 END IF;
3264 END IF;
3265
3266 IF PG_DEBUG = 'Y' THEN
3267 localdebug(' g_ed_req :'||g_ed_req);
3268 localdebug(' g_uned_req :'||g_uned_req);
3269 END IF;
3270 ------------------------------------------------------------------------
3271 -- Create groups
3272 -- The group_id used currently is ra_customer_trx_lines.SOURCE_DATA_KEY1
3273 ------------------------------------------------------------------------
3274 INSERT INTO ra_ar_gt
3275 (gt_id,
3276 gp_level,
3277 group_id,
3278 --{HYUBPAGP
3279 source_data_key1 ,
3280 source_data_key2 ,
3281 source_data_key3 ,
3282 source_data_key4 ,
3283 source_data_key5 ,
3284 --}
3285 ref_customer_trx_id,
3286 from_currency,
3287 to_currency,
3288 base_currency,
3289 line_type,
3290 --
3291 SUM_LINE_ORIG_AMT ,
3292 SUM_LINE_ORIG_ACCTD_AMT ,
3293 --{HYUCHRG
3294 SUM_LINE_CHRG_ORIG_AMT ,
3295 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
3296 --}
3297 SUM_LINE_FRT_ORIG_AMT ,
3298 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
3299 SUM_LINE_TAX_ORIG_AMT ,
3300 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
3301 --
3302 SUM_LINE_REM_AMT ,
3303 SUM_LINE_REM_ACCTD_AMT ,
3304 SUM_LINE_CHRG_REM_AMT ,
3305 SUM_LINE_CHRG_REM_ACCTD_AMT ,
3306 SUM_LINE_FRT_REM_AMT ,
3307 SUM_LINE_FRT_REM_ACCTD_AMT ,
3308 SUM_LINE_TAX_REM_AMT ,
3309 SUM_LINE_TAX_REM_ACCTD_AMT ,
3310 --
3311 SUM_GP_LINE_ORIG_AMT ,
3312 SUM_GP_LINE_ORIG_ACCTD_AMT ,
3313 --{HYUCHRG
3314 SUM_GP_LINE_CHRG_ORIG_AMT,
3315 SUM_GP_LINE_CHRG_ORIG_ACCTD_AM,
3316 --}
3317 SUM_GP_LINE_FRT_ORIG_AMT ,
3318 SUM_GP_LINE_FRT_ORIG_ACCTD_AMT ,
3319 SUM_GP_LINE_TAX_ORIG_AMT ,
3320 SUM_GP_LINE_TAX_ORIG_ACCTD_AMT ,
3321 --
3322 SUM_GP_LINE_REM_AMT ,
3323 SUM_GP_LINE_REM_ACCTD_AMT ,
3324 SUM_GP_LINE_CHRG_REM_AMT ,
3325 SUM_GP_LINE_CHRG_REM_ACCTD_AMT,
3326 SUM_GP_LINE_FRT_REM_AMT ,
3327 SUM_GP_LINE_FRT_REM_ACCTD_AMT,
3328 SUM_GP_LINE_TAX_REM_AMT ,
3329 SUM_GP_LINE_TAX_REM_ACCTD_AMT,
3330 --BUG#3611016
3331 set_of_books_id ,
3332 sob_type,
3333 --{HYUIssue
3334 ref_customer_trx_line_id
3335 --}
3336 -- se_gt_id
3337 --{Taxable amount
3338 -- ,tax_link_id,
3339 -- tax_inc_flag
3340 --}
3341 )
3342 SELECT /*+INDEX (rar ra_ar_n1)*/
3343 p_gt_id --GT_ID
3344 ,'GPL' --GP_LEVEL
3345 ,rar.group_id --GROUP_ID
3346 --{HYUBPAGP
3347 ,rar.source_data_key1
3348 ,rar.source_data_key2
3349 ,rar.source_data_key3
3350 ,rar.source_data_key4
3351 ,rar.source_data_key5
3352 --}
3353 ,rar.ref_customer_trx_id --REF_CUSTOMER_TRX_ID
3354 ,rar.from_currency --FROM_CURRENCY
3355 ,rar.to_currency --TO_CURRENCY
3356 ,rar.base_currency --BASE_CURRENCY
3357 ,rar.line_type --LINE_TYPE
3358 --
3359 ,rar.SUM_LINE_ORIG_AMT --SUM_LINE_ORIG_AMT
3360 ,rar.SUM_LINE_ORIG_ACCTD_AMT --SUM_LINE_ORIG_ACCTD_AMT
3361 --
3362 --{HYUCHRG
3363 ,rar.SUM_LINE_CHRG_ORIG_AMT --SUM_LINE_CHRG_ORIG_AMT
3364 ,rar.SUM_LINE_CHRG_ORIG_ACCTD_AMT --SUM_LINE_CHRG_ORIG_ACCTD_AMT
3365 --}
3366 ,rar.SUM_LINE_FRT_ORIG_AMT --SUM_LINE_FRT_ORIG_AMT
3367 ,rar.SUM_LINE_FRT_ORIG_ACCTD_AMT --SUM_LINE_FRT_ORIG_ACCTD_AMT
3368 --
3369 ,rar.SUM_LINE_TAX_ORIG_AMT --SUM_LINE_TAX_ORIG_AMT
3370 ,rar.SUM_LINE_TAX_ORIG_ACCTD_AMT --SUM_LINE_TAX_ORIG_ACCTD_AMT
3371 --
3372 ,rar.SUM_LINE_REM_AMT
3373 ,rar.SUM_LINE_REM_ACCTD_AMT
3374 --
3375 ,rar.SUM_LINE_CHRG_REM_AMT
3376 ,rar.SUM_LINE_CHRG_REM_ACCTD_AMT
3377 --
3378 ,rar.SUM_LINE_FRT_REM_AMT --SUM_LINE_FRT_REM_AMT
3379 ,rar.SUM_LINE_FRT_REM_ACCTD_AMT --SUM_LINE_FRT_REM_ACCTD_AMT
3380 --
3381 ,rar.SUM_LINE_TAX_REM_AMT
3382 ,rar.SUM_LINE_TAX_REM_ACCTD_AMT
3383 --
3384 ,SUM(rar.DUE_ORIG_AMT) -- SUM_GP_LINE_ORIG_AMT
3385 ,SUM(rar.DUE_ORIG_ACCTD_AMT) -- SUM_GP_LINE_ORIG_ACCTD_AMT
3386 --{HYUCHRG
3387 ,SUM(rar.CHRG_ORIG_AMT) -- SUM_GP_LINE_CHRG_ORIG_AMT
3388 ,SUM(rar.CHRG_ORIG_ACCTD_AMT) -- SUM_GP_LINE_CHRG_ORIG_ACCTD_AM
3389 --}
3390 ,SUM(rar.FRT_ORIG_AMT) -- SUM_GP_LINE_FRT_ORIG_AMT
3391 ,SUM(rar.FRT_ORIG_ACCTD_AMT) -- SUM_GP_LINE_FRT_ORIG_ACCTD_AMT
3392 ,SUM(rar.TAX_ORIG_AMT) -- SUM_GP_LINE_TAX_ORIG_AMT
3393 ,SUM(rar.TAX_ORIG_ACCTD_AMT) -- SUM_GP_LINE_TAX_ORIG_ACCTD_AMT
3394 --
3395 ,SUM(rar.DUE_REM_AMT) -- SUM_GP_LINE_REM_AMT
3396 ,SUM(rar.DUE_REM_ACCTD_AMT) -- SUM_GP_LINE_REM_ACCTD_AMT
3397 --{HYUCHRG
3398 ,sgch.sum_gp_chrg_rem_amt --SUM_GP_LINE_CHRG_REM_AMT HYUCHRG
3399 ,sgch.sum_gp_chrg_rem_acctd_amt --SUM_GP_LINE_CHRG_REM_ACCTD_AMT HYUCHRG
3400 -- ,SUM(rar.CHRG_REM_AMT) -- SUM_GP_LINE_CHRG_REM_AMT
3401 -- ,SUM(rar.CHRG_REM_ACCTD_AMT) -- SUM_GP_LINE_CHRG_REM_ACCTD_AMT
3402 --}
3403 ,sgfr.sum_gp_frt_rem_amt --SUM_GP_LINE_FRT_REM_AMT HYUFR
3404 ,sgfr.sum_gp_frt_rem_acctd_amt --SUM_GP_LINE_FRT_REM_ACCTD_AMT HYUFR
3405 ,SUM(rar.TAX_REM_AMT) -- SUM_GP_LINE_TAX_REM_AMT
3406 ,SUM(rar.TAX_REM_ACCTD_AMT) -- SUM_GP_LINE_TAX_REM_ACCTD_AMT
3407 --Bug#3611016
3408 ,p_ae_sys_rec.set_of_books_id
3409 ,p_ae_sys_rec.sob_type
3410 --{HYUIssue
3411 ,rar.ref_customer_trx_line_id
3412 --}
3413 -- ,g_se_gt_id
3414 --{Taxable Amount
3415 -- ,rar.tax_link_id
3416 -- ,rar.tax_inc_flag
3417 --}
3418 FROM ra_ar_gt rar,
3419 (SELECT /*+INDEX (b ra_ar_n1)*/
3420 SUM(DECODE(b.line_type,'LINE' ,b.FRT_ADJ_REM_AMT,
3421 'CB' ,b.FRT_ADJ_REM_AMT,
3422 'FREIGHT',b.FRT_REM_AMT,
3423 0)) sum_gp_frt_rem_amt
3424 ,SUM(DECODE(b.line_type,'LINE' ,b.FRT_ADJ_REM_ACCTD_AMT,
3425 'CB' ,b.FRT_ADJ_REM_ACCTD_AMT,
3426 'FREIGHT',b.frt_rem_acctd_amt,
3427 0)) sum_gp_frt_rem_acctd_amt
3428 ,b.group_id
3429 --{HYUBPAGP
3430 ,b.source_data_key1
3431 ,b.source_data_key2
3432 ,b.source_data_key3
3433 ,b.source_data_key4
3434 ,b.source_data_key5
3435 --{HYUIssue
3436 ,b.ref_customer_trx_line_id
3437 --}
3438 FROM ra_ar_gt b
3439 WHERE b.ref_customer_trx_id = p_customer_trx_id
3440 AND b.gt_id = p_gt_id
3441 AND b.gp_level = 'L'
3442 AND b.set_of_books_id = p_ae_sys_rec.set_of_books_id
3443 AND (b.sob_type = p_ae_sys_rec.sob_type OR
3444 (b.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
3445 group by b.group_id
3446 --{HYUBPAGP
3447 ,b.source_data_key1
3448 ,b.source_data_key2
3449 ,b.source_data_key3
3450 ,b.source_data_key4
3451 ,b.source_data_key5
3452 --{HYUIssue
3453 ,b.ref_customer_trx_line_id
3454 --}
3455 --}
3456 ) sgfr,
3457 --{HYUCHRG
3458 (SELECT /*+INDEX (b ra_ar_n1)*/
3459 SUM(DECODE(b.line_type,'LINE' ,b.CHRG_ADJ_REM_AMT,
3460 'CB' ,b.CHRG_ADJ_REM_AMT,
3461 'CHARGES',b.CHRG_REM_AMT,
3462 0)) sum_gp_chrg_rem_amt
3463 ,SUM(DECODE(b.line_type,'LINE' ,b.CHRG_ADJ_REM_ACCTD_AMT,
3464 'CB' ,b.CHRG_ADJ_REM_ACCTD_AMT,
3465 'CHARGES',b.chrg_rem_acctd_amt,
3466 0)) sum_gp_chrg_rem_acctd_amt
3467 ,b.group_id
3468 --{HYUBPAGP
3469 ,b.source_data_key1
3470 ,b.source_data_key2
3471 ,b.source_data_key3
3472 ,b.source_data_key4
3473 ,b.source_data_key5
3474 --{HYUIssue
3475 ,b.ref_customer_trx_line_id
3476 --}
3477 --}
3478 FROM ra_ar_gt b
3479 WHERE b.ref_customer_trx_id = p_customer_trx_id
3480 AND b.gt_id = p_gt_id
3481 AND b.gp_level = 'L'
3482 AND b.set_of_books_id = p_ae_sys_rec.set_of_books_id
3483 AND (b.sob_type = p_ae_sys_rec.sob_type OR
3484 (b.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
3485 group by b.group_id
3486 --{HYUBPAGP
3487 ,b.source_data_key1
3488 ,b.source_data_key2
3489 ,b.source_data_key3
3490 ,b.source_data_key4
3491 ,b.source_data_key5
3492 --{HYUIssue
3493 ,b.ref_customer_trx_line_id
3494 --}
3495 --}
3496 ) sgch
3497 --}
3498 WHERE rar.ref_customer_trx_id = p_customer_trx_id
3499 AND rar.gt_id = p_gt_id
3500 AND rar.gp_level = 'L'
3501 AND rar.group_id = sgfr.group_id
3502 --{HYUBPAGP
3503 AND rar.source_data_key1 = sgfr.source_data_key1
3504 AND rar.source_data_key2 = sgfr.source_data_key2
3505 AND rar.source_data_key3 = sgfr.source_data_key3
3506 AND rar.source_data_key4 = sgfr.source_data_key4
3507 AND rar.source_data_key5 = sgfr.source_data_key5
3508 --{HYUIssue
3509 AND rar.ref_customer_trx_line_id = sgfr.ref_customer_trx_line_id
3510 --}
3511 --}
3512 --{HYUCHRG
3513 AND rar.group_id = sgch.group_id
3514 AND rar.source_data_key1 = sgch.source_data_key1
3515 AND rar.source_data_key2 = sgch.source_data_key2
3516 AND rar.source_data_key3 = sgch.source_data_key3
3517 AND rar.source_data_key4 = sgch.source_data_key4
3518 AND rar.source_data_key5 = sgch.source_data_key5
3519 --{HYUIssue
3520 AND rar.ref_customer_trx_line_id = sgch.ref_customer_trx_line_id
3521 --}
3522 --}
3523 --BUG#3611016
3524 AND rar.set_of_books_id = p_ae_sys_rec.set_of_books_id
3525 AND (rar.sob_type = p_ae_sys_rec.sob_type OR
3526 (rar.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
3527 GROUP BY p_gt_id
3528 ,'GPL'
3529 ,rar.group_id
3530 --{HYUBPAGP
3531 ,rar.source_data_key1
3532 ,rar.source_data_key2
3533 ,rar.source_data_key3
3534 ,rar.source_data_key4
3535 ,rar.source_data_key5
3536 --}
3537 ,rar.ref_customer_trx_id
3538 --{HYUIssue
3539 ,rar.ref_customer_trx_line_id
3540 --}
3541 ,rar.from_currency
3542 ,rar.to_currency
3543 ,rar.base_currency
3544 ,rar.line_type
3545 --
3546 ,rar.SUM_LINE_ORIG_AMT
3547 ,rar.SUM_LINE_ORIG_ACCTD_AMT
3548 ,rar.SUM_LINE_CHRG_ORIG_AMT
3549 ,rar.SUM_LINE_CHRG_ORIG_ACCTD_AMT
3550 ,rar.SUM_LINE_FRT_ORIG_AMT
3551 ,rar.SUM_LINE_FRT_ORIG_ACCTD_AMT
3552 ,rar.SUM_LINE_TAX_ORIG_AMT
3553 ,rar.SUM_LINE_TAX_ORIG_ACCTD_AMT
3554 --
3555 ,rar.SUM_LINE_REM_AMT
3556 ,rar.SUM_LINE_REM_ACCTD_AMT
3557 ,rar.SUM_LINE_CHRG_REM_AMT
3558 ,rar.SUM_LINE_CHRG_REM_ACCTD_AMT
3559 ,rar.SUM_LINE_FRT_REM_AMT
3560 ,rar.SUM_LINE_FRT_REM_ACCTD_AMT
3561 ,rar.SUM_LINE_TAX_REM_AMT
3562 ,rar.SUM_LINE_TAX_REM_ACCTD_AMT
3563 --{HYUCHRG
3564 ,sgch.sum_gp_chrg_rem_amt
3565 ,sgch.sum_gp_chrg_rem_acctd_amt
3566 --}
3567 ,sgfr.sum_gp_frt_rem_amt
3568 ,sgfr.sum_gp_frt_rem_acctd_amt
3569 ,p_ae_sys_rec.set_of_books_id
3570 ,p_ae_sys_rec.sob_type;
3571 -- ,g_se_gt_id;
3572 --{Taxble Amount
3573 -- ,rar.tax_link_id
3574 -- ,rar.tax_inc_flag;
3575 --}
3576 l_rows := sql%rowcount;
3577 IF PG_DEBUG = 'Y' THEN
3578 localdebug(' rows inserted = ' || l_rows);
3579 END IF;
3580
3581 IF PG_DEBUG = 'Y' THEN
3582 display_ra_ar_gt(p_code => 'GPL', p_gt_id => p_gt_id);
3583 END IF;
3584
3585 ---------------------------------
3586 -- Determine the bucket for group
3587 ---------------------------------
3588 INSERT INTO RA_AR_AMOUNTS_GT (
3589 gt_id
3590 ,gp_level
3591 ,base_rec_rowid
3592 ,ref_customer_trx_id
3593 ,ref_customer_trx_line_id
3594 ,base_pro_amt
3595 ,base_pro_acctd_amt
3596 ,base_frt_pro_amt
3597 ,base_frt_pro_acctd_amt
3598 ,base_tax_pro_amt
3599 ,base_tax_pro_acctd_amt
3600 ,BASE_CHRG_PRO_AMT
3601 ,BASE_CHRG_PRO_ACCTD_AMT
3602
3603 ,elmt_pro_amt
3604 ,elmt_pro_acctd_amt
3605 ,ELMT_FRT_PRO_AMT
3606 ,ELMT_FRT_PRO_ACCTD_AMT
3607 ,ELMT_TAX_PRO_AMT
3608 ,ELMT_TAX_PRO_ACCTD_AMT
3609 ,ELMT_CHRG_PRO_AMT
3610 ,ELMT_CHRG_PRO_ACCTD_AMT
3611
3612 ,buc_alloc_amt
3613 ,buc_alloc_acctd_amt
3614 ,buc_frt_alloc_amt
3615 ,buc_frt_alloc_acctd_amt
3616 ,buc_tax_alloc_amt
3617 ,buc_tax_alloc_acctd_amt
3618 ,buc_chrg_alloc_amt
3619 ,buc_chrg_alloc_acctd_amt
3620
3621 ,base_ed_pro_amt
3622 ,base_ed_pro_acctd_amt
3623 ,BASE_ed_FRT_PRO_AMT
3624 ,BASE_ed_FRT_PRO_ACCTD_AMT
3625 ,BASE_ed_TAX_PRO_AMT
3626 ,BASE_ed_TAX_PRO_ACCTD_AMT
3627 ,BASE_ed_CHRG_PRO_AMT
3628 ,BASE_ed_CHRG_PRO_ACCTD_AMT
3629
3630 ,elmt_ed_pro_amt
3631 ,elmt_ed_pro_acctd_amt
3632 ,ELMT_ed_FRT_PRO_AMT
3633 ,ELMT_ed_FRT_PRO_ACCTD_AMT
3634 ,ELMT_ed_TAX_PRO_AMT
3635 ,ELMT_ed_TAX_PRO_ACCTD_AMT
3636 ,ELMT_ed_CHRG_PRO_AMT
3637 ,ELMT_ed_CHRG_PRO_ACCTD_AMT
3638
3639 ,buc_ed_alloc_amt
3640 ,buc_ed_alloc_acctd_amt
3641 ,buc_ed_frt_alloc_amt
3642 ,buc_ed_frt_alloc_acctd_amt
3643 ,buc_ed_tax_alloc_amt
3644 ,buc_ed_tax_alloc_acctd_amt
3645 ,buc_ed_chrg_alloc_amt
3646 ,buc_ed_chrg_alloc_acctd_amt
3647
3648 ,base_uned_pro_amt
3649 ,base_uned_pro_acctd_amt
3650 ,BASE_uned_FRT_PRO_AMT
3651 ,BASE_uned_FRT_PRO_ACCTD_AMT
3652 ,BASE_uned_TAX_PRO_AMT
3653 ,BASE_uned_TAX_PRO_ACCTD_AMT
3654 ,BASE_uned_CHRG_PRO_AMT
3655 ,BASE_uned_CHRG_PRO_ACCTD_AMT
3656
3657 ,elmt_uned_pro_amt
3658 ,elmt_uned_pro_acctd_amt
3659 ,ELMT_uned_FRT_PRO_AMT
3660 ,ELMT_uned_FRT_PRO_ACCTD_AMT
3661 ,ELMT_uned_TAX_PRO_AMT
3662 ,ELMT_uned_TAX_PRO_ACCTD_AMT
3663 ,ELMT_uned_CHRG_PRO_AMT
3664 ,ELMT_uned_CHRG_PRO_ACCTD_AMT
3665
3666 ,buc_uned_alloc_amt
3667 ,buc_uned_alloc_acctd_amt
3668 ,buc_uned_frt_alloc_amt
3669 ,buc_uned_frt_alloc_acctd_amt
3670 ,buc_uned_tax_alloc_amt
3671 ,buc_uned_tax_alloc_acctd_amt
3672 ,buc_uned_chrg_alloc_amt
3673 ,buc_uned_chrg_alloc_acctd_amt
3674 )
3675 SELECT /*+INDEX(a ra_ar_n1)*/
3676 a.gt_id,
3677 a.gp_level,
3678 a.rowid,
3679 a.ref_customer_trx_id,
3680 a.ref_customer_trx_line_id,
3681 /**************************
3682 -- ADJ and APP
3683 **************************/
3684 -------
3685 -- BASE
3686 -------
3687 DECODE(p_pay_adj,
3688 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
3689 a.SUM_LINE_ORIG_AMT ,
3690 a.SUM_LINE_REM_AMT),
3691 a.SUM_LINE_REM_AMT),
3692 DECODE(p_pay_adj,
3693 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
3694 a.SUM_LINE_ORIG_ACCTD_AMT,
3695 a.SUM_LINE_REM_ACCTD_AMT),
3696 a.SUM_LINE_REM_ACCTD_AMT),
3697
3698 DECODE(p_pay_adj,
3699 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
3700 a.SUM_LINE_ORIG_AMT ,
3701 a.SUM_LINE_REM_AMT),
3702 a.SUM_LINE_FRT_REM_AMT),
3703 DECODE(p_pay_adj,
3704 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
3705 a.SUM_LINE_ORIG_ACCTD_AMT,
3706 a.SUM_LINE_REM_ACCTD_AMT),
3707 a.SUM_LINE_FRT_REM_ACCTD_AMT),
3708 -- Base Tax
3709 DECODE(p_pay_adj,
3710 'ADJ',DECODE(a.SUM_LINE_TAX_REM_AMT, 0 ,
3711 a.SUM_LINE_TAX_ORIG_AMT ,
3712 a.SUM_LINE_TAX_REM_AMT),
3713 a.SUM_LINE_TAX_REM_AMT),
3714 DECODE(p_pay_adj,
3715 'ADJ',DECODE(a.SUM_LINE_TAX_REM_ACCTD_AMT, 0 ,
3716 a.SUM_LINE_TAX_ORIG_ACCTD_AMT,
3717 a.SUM_LINE_TAX_REM_ACCTD_AMT),
3718 a.SUM_LINE_TAX_REM_ACCTD_AMT),
3719 -- Base Chrg
3720 DECODE(p_pay_adj,
3721 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
3722 a.SUM_LINE_ORIG_AMT ,
3723 a.SUM_LINE_REM_AMT),
3724 a.SUM_LINE_CHRG_REM_AMT),
3725 DECODE(p_pay_adj,
3726 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
3727 a.SUM_LINE_ORIG_ACCTD_AMT ,
3728 a.SUM_LINE_REM_ACCTD_AMT),
3729 a.SUM_LINE_CHRG_REM_ACCTD_AMT),
3730 ----------
3731 -- Element
3732 ----------
3733 -- Elmt Rev
3734 DECODE(p_pay_adj,
3735 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
3736 a.SUM_GP_LINE_ORIG_AMT ,
3737 a.SUM_GP_LINE_REM_AMT),
3738 a.SUM_GP_LINE_REM_AMT),
3739 DECODE(p_pay_adj,
3740 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
3741 a.SUM_GP_LINE_ORIG_ACCTD_AMT ,
3742 a.SUM_GP_LINE_REM_ACCTD_AMT),
3743 a.SUM_GP_LINE_REM_ACCTD_AMT),
3744 -- Elt Frt
3745 DECODE(p_pay_adj,
3746 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
3747 a.SUM_GP_LINE_ORIG_AMT ,
3748 a.SUM_GP_LINE_REM_AMT),
3749 a.SUM_GP_LINE_FRT_REM_AMT),
3750 DECODE(p_pay_adj,
3751 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
3752 a.SUM_GP_LINE_ORIG_ACCTD_AMT ,
3753 a.SUM_GP_LINE_REM_ACCTD_AMT),
3754 a.SUM_GP_LINE_FRT_REM_ACCTD_AMT),
3755 -- Elt Tax
3756 DECODE(p_pay_adj,
3757 'ADJ',DECODE(a.SUM_LINE_TAX_REM_AMT, 0 ,
3758 a.SUM_GP_LINE_TAX_ORIG_AMT ,
3759 a.SUM_GP_LINE_TAX_REM_AMT),
3760 a.SUM_GP_LINE_TAX_REM_AMT),
3761 DECODE(p_pay_adj,
3762 'ADJ',DECODE(a.SUM_LINE_TAX_REM_ACCTD_AMT, 0 ,
3763 a.SUM_GP_LINE_TAX_ORIG_ACCTD_AMT ,
3764 a.SUM_GP_LINE_TAX_REM_ACCTD_AMT),
3765 a.SUM_GP_LINE_TAX_REM_ACCTD_AMT),
3766 -- Elt Chrg
3767 DECODE(p_pay_adj,
3768 'ADJ',DECODE(a.SUM_LINE_REM_AMT, 0 ,
3769 a.SUM_GP_LINE_ORIG_AMT ,
3770 a.SUM_GP_LINE_REM_AMT),
3771 a.sum_gp_line_chrg_rem_amt),
3772 DECODE(p_pay_adj,
3773 'ADJ',DECODE(a.SUM_LINE_REM_ACCTD_AMT, 0 ,
3774 a.SUM_GP_LINE_ORIG_ACCTD_AMT ,
3775 a.SUM_GP_LINE_REM_ACCTD_AMT),
3776 a.sum_gp_line_chrg_rem_acctd_amt),
3777 ---------
3778 -- Bucket
3779 ---------
3780 -- Buc Rev
3781 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
3782 a.line_type,
3783 'N',
3784 'N',
3785 'N'),
3786 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
3787 a.line_type,
3788 'Y',
3789 'N',
3790 'N'),
3791 --Buc Freight
3792 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
3793 a.line_type,
3794 'N',
3795 'N',
3796 'Y'),
3797 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
3798 a.line_type,
3799 'Y',
3800 'N',
3801 'Y'),
3802 -- Buc Tax
3803 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
3804 a.line_type,
3805 'N',
3806 'N',
3807 'N'),
3808 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
3809 a.line_type,
3810 'Y',
3811 'N',
3812 'N'),
3813 -- Buc Chrg
3814 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
3815 a.line_type,
3816 'N',
3817 'Y',
3818 'N'),
3819 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
3820 a.line_type,
3821 'Y',
3822 'Y',
3823 'N'),
3824 /**************************
3825 -- ED
3826 **************************/
3827 a.SUM_LINE_REM_AMT, -- Base ED Rev over Rev line
3828 a.SUM_LINE_REM_ACCTD_AMT,
3829 a.SUM_LINE_FRT_REM_AMT, -- a.SUM_LINE_REM_AMT
3830 a.SUM_LINE_FRT_REM_ACCTD_AMT, -- a.SUM_LINE_REM_ACCTD_AMT
3831 a.SUM_LINE_TAX_REM_AMT,
3832 a.SUM_LINE_TAX_REM_ACCTD_AMT,
3833 a.SUM_LINE_CHRG_REM_AMT,
3834 a.SUM_LINE_CHRG_REM_ACCTD_AMT,
3835 --
3836 a.SUM_GP_LINE_REM_AMT, -- Elmt ED Rev
3837 a.SUM_GP_LINE_REM_ACCTD_AMT,
3838 a.SUM_GP_LINE_FRT_REM_AMT, -- a.SUM_GP_LINE_REM_AMT
3839 a.SUM_GP_LINE_FRT_REM_ACCTD_AMT,
3840 a.SUM_GP_LINE_TAX_REM_AMT,
3841 a.SUM_GP_LINE_TAX_REM_ACCTD_AMT,
3842 a.SUM_GP_LINE_CHRG_REM_AMT,
3843 a.SUM_GP_LINE_CHRG_REM_ACCTD_AMT,
3844
3845 CASE
3846 when g_ed_req = 'Y' then
3847 arp_det_dist_pkg.the_concern_bucket('ED',
3848 a.line_type,
3849 'N',
3850 'N',
3851 'N')
3852 else 0 end,
3853 CASE
3854 when g_ed_req = 'Y' then
3855 arp_det_dist_pkg.the_concern_bucket('ED',
3856 a.line_type,
3857 'Y',
3858 'N',
3859 'N')
3860 else 0 end,
3861 CASE
3862 when g_ed_req = 'Y' then
3863 arp_det_dist_pkg.the_concern_bucket('ED',
3864 a.line_type,
3865 'N',
3866 'N',
3867 'Y')
3868 else 0 end,
3869 CASE
3870 when g_ed_req = 'Y' then
3871 arp_det_dist_pkg.the_concern_bucket('ED',
3872 a.line_type,
3873 'Y',
3874 'N',
3875 'Y')
3876 else 0 end,
3877 CASE
3878 when g_ed_req = 'Y' then
3879 arp_det_dist_pkg.the_concern_bucket('ED',
3880 a.line_type,
3881 'N',
3882 'N',
3883 'N')
3884 else 0 end,
3885 CASE
3886 when g_ed_req = 'Y' then
3887 arp_det_dist_pkg.the_concern_bucket('ED',
3888 a.line_type,
3889 'Y',
3890 'N',
3891 'N')
3892 else 0 end,
3893 CASE
3894 when g_ed_req = 'Y' then
3895 arp_det_dist_pkg.the_concern_bucket('ED',
3896 a.line_type,
3897 'N',
3898 'Y',
3899 'N')
3900 else 0 end,
3901 CASE
3902 when g_ed_req = 'Y' then
3903 arp_det_dist_pkg.the_concern_bucket('ED',
3904 a.line_type,
3905 'Y',
3906 'Y',
3907 'N')
3908 else 0 end,
3909 /**************************
3910 -- UNED
3911 **************************/
3912 a.SUM_LINE_REM_AMT,
3913 a.SUM_LINE_REM_ACCTD_AMT,
3914 a.SUM_LINE_FRT_REM_AMT,
3915 a.SUM_LINE_FRT_REM_ACCTD_AMT,
3916 a.SUM_LINE_TAX_REM_AMT,
3917 a.SUM_LINE_TAX_REM_ACCTD_AMT,
3918 a.SUM_LINE_CHRG_REM_AMT,
3919 a.SUM_LINE_CHRG_REM_ACCTD_AMT,
3920 --
3921 a.SUM_GP_LINE_REM_AMT,
3922 a.SUM_GP_LINE_REM_ACCTD_AMT,
3923 a.SUM_GP_LINE_FRT_REM_AMT,
3924 a.SUM_GP_LINE_FRT_REM_ACCTD_AMT,
3925 a.SUM_GP_LINE_TAX_REM_AMT,
3926 a.SUM_GP_LINE_TAX_REM_ACCTD_AMT,
3927 a.SUM_GP_LINE_CHRG_REM_AMT,
3928 a.SUM_GP_LINE_CHRG_REM_ACCTD_AMT,
3929 --
3930 CASE
3931 when g_uned_req = 'Y' then
3932 arp_det_dist_pkg.the_concern_bucket('UNED',
3933 a.line_type,
3934 'N',
3935 'N',
3936 'N')
3937 else 0 end,
3938 CASE
3939 when g_uned_req = 'Y' then
3940 arp_det_dist_pkg.the_concern_bucket('UNED',
3941 a.line_type,
3942 'Y',
3943 'N',
3944 'N')
3945 else 0 end,
3946 CASE
3947 when g_uned_req = 'Y' then
3948 arp_det_dist_pkg.the_concern_bucket('UNED',
3949 a.line_type,
3950 'N',
3951 'N',
3952 'Y')
3953 else 0 end,
3954 CASE
3955 when g_uned_req = 'Y' then
3956 arp_det_dist_pkg.the_concern_bucket('UNED',
3957 a.line_type,
3958 'Y',
3959 'N',
3960 'Y')
3961 else 0 end,
3962 CASE
3963 when g_uned_req = 'Y' then
3964 arp_det_dist_pkg.the_concern_bucket('UNED',
3965 a.line_type,
3966 'N',
3967 'N',
3968 'N')
3969 else 0 end,
3970 CASE
3971 when g_uned_req = 'Y' then
3972 arp_det_dist_pkg.the_concern_bucket('UNED',
3973 a.line_type,
3974 'Y',
3975 'N',
3976 'N')
3977 else 0 end,
3978 CASE
3979 when g_uned_req = 'Y' then
3980 arp_det_dist_pkg.the_concern_bucket('UNED',
3981 a.line_type,
3982 'N',
3983 'Y',
3984 'N')
3985 else 0 end,
3986 CASE
3987 when g_uned_req = 'Y' then
3988 arp_det_dist_pkg.the_concern_bucket('UNED',
3989 a.line_type,
3990 'Y',
3991 'Y',
3992 'N')
3993 else 0 end
3994 FROM RA_AR_GT a
3995 WHERE a.gt_id = p_gt_id
3996 AND a.ref_customer_trx_id = p_customer_trx_id
3997 AND a.gp_level = 'GPL'
3998 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
3999 AND (a.sob_type = p_ae_sys_rec.sob_type OR
4000 (a.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL));
4001
4002 IF PG_DEBUG = 'Y' THEN
4003 display_ra_ar_gt(p_code => 'GPL',p_gt_id => p_gt_id);
4004 END IF;
4005
4006 IF PG_DEBUG = 'Y' THEN
4007 localdebug('arp_det_dist_pkg.prepare_group_for_proration()-');
4008 END IF;
4009 END prepare_group_for_proration;
4010
4011 PROCEDURE dump_g_amt
4012 IS
4013 BEGIN
4014 IF PG_DEBUG = 'Y' THEN
4015 localdebug('-----------');
4016 localdebug('g_line_adj : '|| g_line_adj);
4017 localdebug('g_tax_adj : '|| g_tax_adj);
4018 localdebug('g_frt_adj : '|| g_frt_adj);
4019 localdebug('g_chrg_adj : '|| g_chrg_adj);
4020 localdebug('g_acctd_line_adj : '|| g_acctd_line_adj);
4021 localdebug('g_acctd_tax_adj : '|| g_acctd_tax_adj);
4022 localdebug('g_acctd_frt_adj : '|| g_acctd_frt_adj);
4023 localdebug('g_acctd_chrg_adj : '|| g_acctd_chrg_adj);
4024
4025 localdebug('-----------');
4026 localdebug('g_line_applied : '|| g_line_applied);
4027 localdebug('g_tax_applied : '|| g_tax_applied);
4028 localdebug('g_frt_applied : '|| g_frt_applied);
4029 localdebug('g_chrg_applied : '|| g_chrg_applied );
4030 localdebug('g_line_ed : '|| g_line_ed);
4031 localdebug('g_tax_ed : '|| g_tax_ed);
4032 localdebug('g_frt_ed : '|| g_frt_ed);
4033 localdebug('g_chrg_ed : '|| g_chrg_ed);
4034 localdebug('g_line_uned : '|| g_line_uned);
4035 localdebug('g_tax_uned : '|| g_tax_uned);
4036 localdebug('g_frt_uned : '|| g_frt_uned);
4037 localdebug('g_chrg_uned : '|| g_chrg_uned);
4038
4039 localdebug('g_acctd_line_applied : '||g_acctd_line_applied);
4040 localdebug('g_acctd_tax_applied : '|| g_acctd_tax_applied);
4041 localdebug('g_acctd_frt_applied : '|| g_acctd_frt_applied);
4042 localdebug('g_acctd_chrg_applied : '|| g_acctd_chrg_applied);
4043 localdebug('g_acctd_line_ed : '|| g_acctd_line_ed);
4044 localdebug('g_acctd_tax_ed : '|| g_acctd_tax_ed);
4045 localdebug('g_acctd_frt_ed : '|| g_acctd_frt_ed);
4046 localdebug('g_acctd_chrg_ed : '|| g_acctd_chrg_ed);
4047 localdebug('g_acctd_line_uned : '|| g_acctd_line_uned);
4048 localdebug('g_acctd_tax_uned : '|| g_acctd_tax_uned);
4049 localdebug('g_acctd_frt_uned : '|| g_acctd_frt_uned);
4050 localdebug('g_acctd_chrg_uned : '|| g_acctd_chrg_uned);
4051 localdebug('-----------');
4052 END IF;
4053 END;
4054
4055 PROCEDURE conv_acctd_amt
4056 (p_pay_adj IN VARCHAR2,
4057 p_adj_rec IN ar_adjustments%ROWTYPE,
4058 p_app_rec IN ar_receivable_applications%ROWTYPE,
4059 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
4060 IS
4061 l_acctd_amt NUMBER;
4062 BEGIN
4063 IF PG_DEBUG = 'Y' THEN
4064 localdebug('arp_det_dist_pkg.conv_acctd_amt()+');
4065 localdebug(' p_pay_adj :'||p_pay_adj);
4066 localdebug(' p_app_rec.AMOUNT_APPLIED :'||p_app_rec.AMOUNT_APPLIED);
4067 localdebug(' p_app_rec.LINE_APPLIED :'||p_app_rec.LINE_APPLIED);
4068 localdebug(' p_app_rec.TAX_APPLIED :'||p_app_rec.TAX_APPLIED);
4069 END IF;
4070
4071 g_line_adj := 0;
4072 g_tax_adj := 0;
4073 g_frt_adj := 0;
4074 g_chrg_adj := 0;
4075 g_line_applied := 0;
4076 g_tax_applied := 0;
4077 g_frt_applied := 0;
4078 g_chrg_applied := 0;
4079 g_line_ed := 0;
4080 g_tax_ed := 0;
4081 g_frt_ed := 0;
4082 g_chrg_ed := 0;
4083 g_line_uned := 0;
4084 g_tax_uned := 0;
4085 g_frt_uned := 0;
4086 g_chrg_uned := 0;
4087
4088
4089 g_acctd_line_adj := 0;
4090 g_acctd_tax_adj := 0;
4091 g_acctd_frt_adj := 0;
4092 g_acctd_chrg_adj := 0;
4093 g_acctd_line_applied := 0;
4094 g_acctd_tax_applied := 0;
4095 g_acctd_frt_applied := 0;
4096 g_acctd_chrg_applied := 0;
4097 g_acctd_line_ed := 0;
4098 g_acctd_tax_ed := 0;
4099 g_acctd_frt_ed := 0;
4100 g_acctd_chrg_ed := 0;
4101 g_acctd_line_uned := 0;
4102 g_acctd_tax_uned := 0;
4103 g_acctd_frt_uned := 0;
4104 g_acctd_chrg_uned := 0;
4105
4106
4107 IF p_pay_adj = 'ADJ' THEN
4108 -- Trx currency
4109 -- HYU Adjustment distribution in the same sign of the header adjustment rem * -1
4110 -- because detail distribution passed for a negative adjustment ends to create
4111 -- debit write-off distributions in ARD. ARALLOCB create the write-off distributions
4112 -- in case of adjustments
4113 g_line_adj := NVL(p_adj_rec.LINE_ADJUSTED,0); -- -1*
4114 g_frt_adj := NVL(p_adj_rec.FREIGHT_ADJUSTED,0); -- -1*
4115 g_tax_adj := NVL(p_adj_rec.TAX_ADJUSTED,0); -- -1*
4116 g_chrg_adj := NVL(p_adj_rec.RECEIVABLES_CHARGES_ADJUSTED ,0); -- -1*
4117 -- Based currency
4118 l_acctd_amt := NVL(p_adj_rec.acctd_amount,0); -- -1*
4119
4120 arp_util.Set_Buckets(
4121 p_header_acctd_amt => l_acctd_amt ,
4122 p_base_currency => p_ae_sys_rec.base_currency ,
4123 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
4124 p_base_precision => p_ae_sys_rec.base_precision ,
4125 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
4126 p_tax_amt => g_tax_adj ,
4127 p_charges_amt => g_chrg_adj ,
4128 p_line_amt => g_line_adj ,
4129 p_freight_amt => g_frt_adj ,
4130 p_tax_acctd_amt => g_acctd_tax_adj ,
4131 p_charges_acctd_amt => g_acctd_chrg_adj ,
4132 p_line_acctd_amt => g_acctd_line_adj ,
4133 p_freight_acctd_amt => g_acctd_frt_adj );
4134
4135 ELSE
4136 -- Distribution sign integration between ARPDDB and ARALLOCB
4137 -- To integrate with ARALLOCB as application distributions are * -1 in ARALLOCB
4138 -- For positive distributions creation, we need to pass a negative distribution
4139 -- => -1 * detail_dist (DR side) --> ARALLOCB (* -1) becomes positive distribution
4140 -- therefore created as Credit side of the accounting. Note ARALLOCB creates
4141 -- Credit REC distributions for Application
4142 g_line_applied := NVL(p_app_rec.LINE_APPLIED,0) * -1;
4143 g_tax_applied := NVL(p_app_rec.TAX_APPLIED,0) * -1;
4144 g_frt_applied := NVL(p_app_rec.FREIGHT_APPLIED,0) * -1;
4145 g_chrg_applied := NVL(p_app_rec.RECEIVABLES_CHARGES_APPLIED,0) * -1;
4146 l_acctd_amt := NVL(p_app_rec.ACCTD_AMOUNT_APPLIED_TO,0) * -1;
4147
4148 IF l_acctd_amt <> 0 THEN
4149
4150 arp_util.Set_Buckets(p_header_acctd_amt => l_acctd_amt ,
4151 p_base_currency => p_ae_sys_rec.base_currency ,
4152 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
4153 p_base_precision => p_ae_sys_rec.base_precision ,
4154 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
4155 p_tax_amt => g_tax_applied ,
4156 p_charges_amt => g_chrg_applied ,
4157 p_line_amt => g_line_applied ,
4158 p_freight_amt => g_frt_applied ,
4159 p_tax_acctd_amt => g_acctd_tax_applied ,
4160 p_charges_acctd_amt => g_acctd_chrg_applied ,
4161 p_line_acctd_amt => g_acctd_line_applied ,
4162 p_freight_acctd_amt => g_acctd_frt_applied );
4163 END IF;
4164
4165 --
4166 -- For ED and UNED discounts they are handled as adjustment distributions
4167 -- ARALLOCB that is ARALLOCB will create the Write-off side
4168 -- The credit REC for ED UNED are created by ARRECACB arp_receipt_main
4169 -- so for a positive ED it is like a negative adjustments, so detail_distributions
4170 -- for ED and UNED from ARPDDB need to be multiplied by -1 to be passed to ARALLOCB
4171 --
4172 g_line_ed := NVL(p_app_rec.LINE_EDISCOUNTED,0) * -1;
4173 g_tax_ed := NVL(p_app_rec.TAX_EDISCOUNTED,0) * -1;
4174 g_frt_ed := NVL(p_app_rec.FREIGHT_EDISCOUNTED,0) * -1;
4175 g_chrg_ed := NVL(p_app_rec.CHARGES_EDISCOUNTED,0) * -1;
4176 l_acctd_amt := NVL(p_app_rec.ACCTD_EARNED_DISCOUNT_TAKEN,0) * -1;
4177
4178 IF l_acctd_amt <> 0 THEN
4179
4180 arp_util.Set_Buckets(
4181 p_header_acctd_amt => l_acctd_amt ,
4182 p_base_currency => p_ae_sys_rec.base_currency ,
4183 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
4184 p_base_precision => p_ae_sys_rec.base_precision ,
4185 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
4186 p_tax_amt => g_tax_ed ,
4187 p_charges_amt => g_chrg_ed ,
4188 p_line_amt => g_line_ed ,
4189 p_freight_amt => g_frt_ed ,
4190 p_tax_acctd_amt => g_acctd_tax_ed ,
4191 p_charges_acctd_amt => g_acctd_chrg_ed ,
4192 p_line_acctd_amt => g_acctd_line_ed ,
4193 p_freight_acctd_amt => g_acctd_frt_ed );
4194 END IF;
4195
4196
4197 g_line_uned := NVL(p_app_rec.LINE_UEDISCOUNTED,0) * -1;
4198 g_tax_uned := NVL(p_app_rec.TAX_UEDISCOUNTED,0) * -1;
4199 g_frt_uned := NVL(p_app_rec.FREIGHT_UEDISCOUNTED,0) * -1;
4200 g_chrg_uned := NVL(p_app_rec.CHARGES_UEDISCOUNTED,0) * -1;
4201 l_acctd_amt := NVL(p_app_rec.ACCTD_UNEARNED_DISCOUNT_TAKEN,0) * -1;
4202
4203 IF l_acctd_amt <> 0 THEN
4204
4205 arp_util.Set_Buckets(
4206 p_header_acctd_amt => l_acctd_amt ,
4207 p_base_currency => p_ae_sys_rec.base_currency ,
4208 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
4209 p_base_precision => p_ae_sys_rec.base_precision ,
4210 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
4211 p_tax_amt => g_tax_uned ,
4212 p_charges_amt => g_chrg_uned ,
4213 p_line_amt => g_line_uned ,
4214 p_freight_amt => g_frt_uned ,
4215 p_tax_acctd_amt => g_acctd_tax_uned ,
4216 p_charges_acctd_amt => g_acctd_chrg_uned ,
4217 p_line_acctd_amt => g_acctd_line_uned ,
4218 p_freight_acctd_amt => g_acctd_frt_uned );
4219 END IF;
4220
4221 END IF;
4222 dump_g_amt;
4223 IF PG_DEBUG = 'Y' THEN
4224 localdebug('arp_det_dist_pkg.conv_acctd_amt()-');
4225 END IF;
4226 END conv_acctd_amt;
4227
4228 --
4229 -- This routine is similar to conv_acctd_amt, the only thing is it removes dependencies on
4230 -- org context so that it is usable in Down time upgrade
4231 --
4232 PROCEDURE conv_acctd_amt_upg
4233 (p_pay_adj IN VARCHAR2,
4234 p_adj_rec IN ar_adjustments%ROWTYPE,
4235 p_app_rec IN ar_receivable_applications%ROWTYPE,
4236 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
4237 IS
4238 l_acctd_amt NUMBER;
4239 BEGIN
4240 g_acctd_line_adj := 0;
4241 g_acctd_tax_adj := 0;
4242 g_acctd_frt_adj := 0;
4243 g_acctd_chrg_adj := 0;
4244 g_acctd_line_applied := 0;
4245 g_acctd_tax_applied := 0;
4246 g_acctd_frt_applied := 0;
4247 g_acctd_chrg_applied := 0;
4248 g_acctd_line_ed := 0;
4249 g_acctd_tax_ed := 0;
4250 g_acctd_frt_ed := 0;
4251 g_acctd_chrg_ed := 0;
4252 g_acctd_line_uned := 0;
4253 g_acctd_tax_uned := 0;
4254 g_acctd_frt_uned := 0;
4255 g_acctd_chrg_uned := 0;
4256
4257
4258 IF p_pay_adj = 'ADJ' THEN
4259 -- Trx currency
4260 -- HYU Adjustment distribution in the same sign of the header adjustment rem * -1
4261 -- because detail distribution passed for a negative adjustment ends to create
4262 -- debit write-off distributions in ARD. ARALLOCB create the write-off distributions
4263 -- in case of adjustments
4264 g_line_adj := NVL(p_adj_rec.LINE_ADJUSTED,0); -- -1*
4265 g_frt_adj := NVL(p_adj_rec.FREIGHT_ADJUSTED,0); -- -1*
4266 g_tax_adj := NVL(p_adj_rec.TAX_ADJUSTED,0); -- -1*
4267 g_chrg_adj := NVL(p_adj_rec.RECEIVABLES_CHARGES_ADJUSTED ,0); -- -1*
4268 -- Based currency
4269 l_acctd_amt := NVL(p_adj_rec.acctd_amount,0); -- -1*
4270
4271 ar_unposted_item_util.Set_Buckets(
4272 p_header_acctd_amt => l_acctd_amt ,
4273 p_base_currency => p_ae_sys_rec.base_currency ,
4274 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
4275 p_base_precision => p_ae_sys_rec.base_precision ,
4276 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
4277 p_tax_amt => g_tax_adj ,
4278 p_charges_amt => g_chrg_adj ,
4279 p_line_amt => g_line_adj ,
4280 p_freight_amt => g_frt_adj ,
4281 p_tax_acctd_amt => g_acctd_tax_adj ,
4282 p_charges_acctd_amt => g_acctd_chrg_adj ,
4283 p_line_acctd_amt => g_acctd_line_adj ,
4284 p_freight_acctd_amt => g_acctd_frt_adj );
4285
4286 ELSE
4287 -- Distribution sign integration between ARPDDB and ARALLOCB
4288 -- To integrate with ARALLOCB as application distributions are * -1 in ARALLOCB
4289 -- For positive distributions creation, we need to pass a negative distribution
4290 -- => -1 * detail_dist (DR side) --> ARALLOCB (* -1) becomes positive distribution
4291 -- therefore created as Credit side of the accounting. Note ARALLOCB creates
4292 -- Credit REC distributions for Application
4293 g_line_applied := NVL(p_app_rec.LINE_APPLIED,0) * -1;
4294 g_tax_applied := NVL(p_app_rec.TAX_APPLIED,0) * -1;
4295 g_frt_applied := NVL(p_app_rec.FREIGHT_APPLIED,0) * -1;
4296 g_chrg_applied := NVL(p_app_rec.RECEIVABLES_CHARGES_APPLIED,0) * -1;
4297 l_acctd_amt := NVL(p_app_rec.ACCTD_AMOUNT_APPLIED_TO,0) * -1;
4298
4299 IF l_acctd_amt <> 0 THEN
4300
4301 ar_unposted_item_util.Set_Buckets(p_header_acctd_amt => l_acctd_amt ,
4302 p_base_currency => p_ae_sys_rec.base_currency ,
4303 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
4304 p_base_precision => p_ae_sys_rec.base_precision ,
4305 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
4306 p_tax_amt => g_tax_applied ,
4307 p_charges_amt => g_chrg_applied ,
4308 p_line_amt => g_line_applied ,
4309 p_freight_amt => g_frt_applied ,
4310 p_tax_acctd_amt => g_acctd_tax_applied ,
4311 p_charges_acctd_amt => g_acctd_chrg_applied ,
4312 p_line_acctd_amt => g_acctd_line_applied ,
4313 p_freight_acctd_amt => g_acctd_frt_applied );
4314 END IF;
4315
4316 --
4317 -- For ED and UNED discounts they are handled as adjustment distributions
4318 -- ARALLOCB that is ARALLOCB will create the Write-off side
4319 -- The credit REC for ED UNED are created by ARRECACB arp_receipt_main
4320 -- so for a positive ED it is like a negative adjustments, so detail_distributions
4321 -- for ED and UNED from ARPDDB need to be multiplied by -1 to be passed to ARALLOCB
4322 --
4323 g_line_ed := NVL(p_app_rec.LINE_EDISCOUNTED,0) * -1;
4324 g_tax_ed := NVL(p_app_rec.TAX_EDISCOUNTED,0) * -1;
4325 g_frt_ed := NVL(p_app_rec.FREIGHT_EDISCOUNTED,0) * -1;
4326 g_chrg_ed := NVL(p_app_rec.CHARGES_EDISCOUNTED,0) * -1;
4327 l_acctd_amt := NVL(p_app_rec.ACCTD_EARNED_DISCOUNT_TAKEN,0) * -1;
4328
4329 IF l_acctd_amt <> 0 THEN
4330
4331 ar_unposted_item_util.Set_Buckets(
4332 p_header_acctd_amt => l_acctd_amt ,
4333 p_base_currency => p_ae_sys_rec.base_currency ,
4334 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
4335 p_base_precision => p_ae_sys_rec.base_precision ,
4336 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
4337 p_tax_amt => g_tax_ed ,
4338 p_charges_amt => g_chrg_ed ,
4339 p_line_amt => g_line_ed ,
4340 p_freight_amt => g_frt_ed ,
4341 p_tax_acctd_amt => g_acctd_tax_ed ,
4342 p_charges_acctd_amt => g_acctd_chrg_ed ,
4343 p_line_acctd_amt => g_acctd_line_ed ,
4344 p_freight_acctd_amt => g_acctd_frt_ed );
4345 END IF;
4346
4347
4348 g_line_uned := NVL(p_app_rec.LINE_UEDISCOUNTED,0) * -1;
4349 g_tax_uned := NVL(p_app_rec.TAX_UEDISCOUNTED,0) * -1;
4350 g_frt_uned := NVL(p_app_rec.FREIGHT_UEDISCOUNTED,0) * -1;
4351 g_chrg_uned := NVL(p_app_rec.CHARGES_UEDISCOUNTED,0) * -1;
4352 l_acctd_amt := NVL(p_app_rec.ACCTD_UNEARNED_DISCOUNT_TAKEN,0) * -1;
4353
4354 IF l_acctd_amt <> 0 THEN
4355
4356 ar_unposted_item_util.Set_Buckets(
4357 p_header_acctd_amt => l_acctd_amt ,
4358 p_base_currency => p_ae_sys_rec.base_currency ,
4359 p_exchange_rate => g_cust_inv_rec.exchange_rate ,
4360 p_base_precision => p_ae_sys_rec.base_precision ,
4361 p_base_min_acc_unit => p_ae_sys_rec.base_min_acc_unit ,
4362 p_tax_amt => g_tax_uned ,
4363 p_charges_amt => g_chrg_uned ,
4364 p_line_amt => g_line_uned ,
4365 p_freight_amt => g_frt_uned ,
4366 p_tax_acctd_amt => g_acctd_tax_uned ,
4367 p_charges_acctd_amt => g_acctd_chrg_uned ,
4368 p_line_acctd_amt => g_acctd_line_uned ,
4369 p_freight_acctd_amt => g_acctd_frt_uned );
4370 END IF;
4371
4372 END IF;
4373 END conv_acctd_amt_upg;
4374
4375
4376
4377 FUNCTION the_concern_bucket
4378 (p_pay_adj IN VARCHAR2,
4379 p_line_type IN VARCHAR2,
4380 p_acctd IN VARCHAR2,
4381 p_chrg_bucket IN VARCHAR2,
4382 p_frt_bucket IN VARCHAR2)
4383 RETURN NUMBER IS
4384 l_res NUMBER;
4385 BEGIN
4386 IF PG_DEBUG = 'Y' THEN
4387 localdebug('arp_det_dist_pkg.the_concern_bucket()+');
4388 localdebug(' p_pay_adj :' ||p_pay_adj);
4389 localdebug(' p_line_type :' ||p_line_type);
4390 localdebug(' p_acctd :' ||p_acctd);
4391 localdebug(' p_chrg_bucket :' ||p_chrg_bucket);
4392 localdebug(' p_frt_bucket :' ||p_frt_bucket);
4393 END IF;
4394 -- LINE over LINE
4395 -- TAX over TAX
4396 -- FREIGHT over LINE FOR ADJ
4397 -- and FREIGHT over LINE frt_adj_rem and over FREIGHT on amt_rem
4398 -- Chrg bucket on LINE for 11i
4399 -- Chrg bucket on LINE+FREIGHT for 11iX
4400 -- ED and UNED Revenue on Revenue line
4401 -- ED and UNED Tax on Tax line
4402 -- ED and UNED Chrg on Rev Line
4403 -- ED and UNED frt on Rev Line
4404
4405
4406 IF PG_DEBUG = 'Y' THEN
4407 localdebug(' For Regular Transaction');
4408 END IF;
4409
4410 IF p_chrg_bucket = 'Y' THEN
4411
4412 IF p_line_type IN ('LINE','CB') THEN
4413 IF p_pay_adj = 'ADJ' THEN
4414 -- Chrg adjusted on Rev Line
4415 IF p_acctd = 'Y' THEN
4416 l_res := g_acctd_chrg_adj; ELSE l_res := g_chrg_adj;
4417 END IF;
4418 ELSIF p_pay_adj = 'APP' THEN
4419 -- Chrg paied on Rev line
4420 IF p_acctd = 'Y' THEN
4421 l_res := g_acctd_chrg_applied; ELSE l_res := g_chrg_applied;
4422 END IF;
4423 ELSIF p_pay_adj = 'ED' THEN
4424 -- ED charge on Rev line
4425 IF p_acctd = 'Y' THEN
4426 l_res := g_acctd_chrg_ed; ELSE l_res := g_chrg_ed;
4427 END IF;
4428 ELSIF p_pay_adj = 'UNED' THEN
4429 --UNED charge on Rev line
4430 IF p_acctd = 'Y' THEN
4431 l_res := g_acctd_chrg_uned; ELSE l_res := g_chrg_uned;
4432 END IF;
4433 END IF;
4434 ELSIF p_line_type IN ('CHARGES') THEN
4435 --{HYUCHRG
4436 IF p_pay_adj = 'APP' THEN
4437 -- Chrg paid on Chrg line
4438 IF p_acctd = 'Y' THEN
4439 l_res := g_acctd_chrg_applied; ELSE l_res := g_chrg_applied;
4440 END IF;
4441 ELSE
4442 l_res := 0;
4443 END IF;
4444 --}
4445
4446 ELSE
4447 -- Not line type LINE not chrg should be returned
4448 l_res := 0;
4449 END IF;
4450
4451 ELSIF p_frt_bucket = 'Y' THEN
4452
4453 IF p_line_type IN ('LINE','CB') THEN
4454 IF p_pay_adj = 'ADJ' THEN
4455 -- Freight adjusted over Rev lines only
4456 IF p_acctd = 'Y' THEN
4457 l_res := g_acctd_frt_adj; ELSE l_res := g_frt_adj;
4458 END IF;
4459 ELSIF p_pay_adj = 'APP' THEN
4460 -- Freight paied over Rev line frt_adj_rem
4461 IF p_acctd = 'Y' THEN
4462 l_res := g_acctd_frt_applied; ELSE l_res := g_frt_applied;
4463 END IF;
4464 ELSIF p_pay_adj = 'ED' THEN
4465 -- ED Frt on Rev line
4466 IF p_acctd = 'Y' THEN
4467 l_res := g_acctd_frt_ed; ELSE l_res := g_frt_ed;
4468 END IF;
4469 ELSIF p_pay_adj = 'UNED' THEN
4470 -- UNED Frt on Rev line
4471 IF p_acctd = 'Y' THEN
4472 l_res := g_acctd_frt_uned; ELSE l_res := g_frt_uned;
4473 END IF;
4474 END IF;
4475 ELSIF p_line_type = 'FREIGHT' THEN
4476 IF p_pay_adj = 'ADJ' THEN
4477 -- Freight adjusted over rev line only
4478 l_res := 0;
4479 ELSIF p_pay_adj = 'APP' THEN
4480 -- Freight paied over freight line remaining amount
4481 IF p_acctd = 'Y' THEN
4482 l_res := g_acctd_frt_applied; ELSE l_res := g_frt_applied;
4483 END IF;
4484 ELSIF p_pay_adj = 'ED' THEN
4485 IF p_acctd = 'Y' THEN
4486 --{ HYUED Frt over Rev line Only
4487 l_res := g_acctd_frt_ed; ELSE l_res := g_frt_ed;
4488 -- l_res := 0; ELSE l_res := 0;
4489 --}
4490 END IF;
4491 ELSIF p_pay_adj = 'UNED' THEN
4492 IF p_acctd = 'Y' THEN
4493 --{ Frt HYUUNED over Rev line Only
4494 l_res := g_acctd_frt_uned; ELSE l_res := g_frt_uned;
4495 -- l_res := 0; ELSE l_res := 0;
4496 END IF;
4497 END IF;
4498 ELSE
4499 -- Not Freight amount affected if the line type is TAX
4500 l_res := 0;
4501 END IF;
4502
4503 ELSIF p_chrg_bucket = 'N' AND p_frt_bucket = 'N' THEN
4504
4505 IF p_line_type IN ('LINE','CB') THEN
4506 IF p_pay_adj = 'ADJ' THEN
4507 -- Rev adjusted over Rev Line
4508 IF p_acctd = 'Y' THEN
4509 l_res := g_acctd_line_adj; ELSE l_res := g_line_adj;
4510 END IF;
4511 ELSIF p_pay_adj = 'APP' THEN
4512 -- Rev paied over Rev Line
4513 IF p_acctd = 'Y' THEN
4514 l_res := g_acctd_line_applied; ELSE l_res := g_line_applied;
4515 END IF;
4516 ELSIF p_pay_adj = 'ED' THEN
4517 -- ED Rev on Rev line
4518 IF p_acctd = 'Y' THEN
4519 l_res := g_acctd_line_ed; ELSE l_res := g_line_ed;
4520 END IF;
4521 ELSIF p_pay_adj = 'UNED' THEN
4522 -- UNED Rev on Rev line
4523 IF p_acctd = 'Y' THEN
4524 l_res := g_acctd_line_uned; ELSE l_res := g_line_uned;
4525 END IF;
4526 END IF;
4527 ELSIF p_line_type = 'TAX' THEN
4528 IF p_pay_adj = 'ADJ' THEN
4529 --Tax adjusted on Tax Line
4530 IF p_acctd = 'Y' THEN
4531 l_res := g_acctd_tax_adj; ELSE l_res := g_tax_adj;
4532 END IF;
4533 ELSIF p_pay_adj = 'APP' THEN
4534 -- Tax applied on Tax line
4535 IF p_acctd = 'Y' THEN
4536 l_res := g_acctd_tax_applied; ELSE l_res := g_tax_applied;
4537 END IF;
4538 ELSIF p_pay_adj = 'ED' THEN
4539 -- ED Tax over Tax line
4540 IF p_acctd = 'Y' THEN
4541 l_res := g_acctd_tax_ed; ELSE l_res := g_tax_ed;
4542 END IF;
4543 ELSIF p_pay_adj = 'UNED' THEN
4544 -- UNED Tax over Tax Line
4545 IF p_acctd = 'Y' THEN
4546 l_res := g_acctd_tax_uned; ELSE l_res := g_tax_uned;
4547 END IF;
4548 END IF;
4549 ELSE
4550 -- No tax amount affected to Rev or Frt line
4551 l_res := 0;
4552 END IF;
4553 END IF;
4554
4555 IF PG_DEBUG = 'Y' THEN
4556 localdebug(' l_res : '|| l_res);
4557 localdebug('arp_det_dist_pkg.the_concern_bucket()-');
4558 END IF;
4559 RETURN l_res;
4560 END the_concern_bucket;
4561
4562
4563
4564 PROCEDURE prepare_trx_line_proration
4565 (p_gt_id IN VARCHAR2,
4566 p_customer_trx_id IN NUMBER,
4567 p_pay_adj IN VARCHAR2,
4568 p_adj_rec IN ar_adjustments%ROWTYPE,
4569 p_app_rec IN ar_receivable_applications%ROWTYPE,
4570 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
4571 IS
4572 BEGIN
4573 IF PG_DEBUG = 'Y' THEN
4574 localdebug('arp_det_dist_pkg.prepare_trx_line_proration()+');
4575 END IF;
4576
4577
4578 -- To executed independently
4579 -- prepare_group_for_proration(p_gt_id => p_gt_id,
4580 -- p_customer_trx_id => p_customer_trx_id);
4581 -- update_group_line(p_gt_id => p_gt_id,
4582 -- p_customer_trx_id => p_customer_trx_id);
4583
4584 --replaced the update with an insert for better performance[Bug 6454022]
4585 INSERT INTO RA_AR_AMOUNTS_GT (
4586 gt_id ,
4587 gp_level,
4588 base_rec_rowid,
4589 ref_customer_trx_id ,
4590 ref_customer_trx_line_id,
4591
4592 -- ADJ and APP
4593 base_pro_amt ,
4594 base_pro_acctd_amt ,
4595 BASE_FRT_PRO_AMT ,
4596 BASE_FRT_PRO_ACCTD_AMT ,
4597 BASE_TAX_PRO_AMT ,
4598 BASE_TAX_PRO_ACCTD_AMT ,
4599 BASE_CHRG_PRO_AMT ,
4600 BASE_CHRG_PRO_ACCTD_AMT ,
4601
4602 elmt_pro_amt ,
4603 elmt_pro_acctd_amt ,
4604 ELMT_FRT_PRO_AMT ,
4605 ELMT_FRT_PRO_ACCTD_AMT ,
4606 ELMT_TAX_PRO_AMT ,
4607 ELMT_TAX_PRO_ACCTD_AMT ,
4608 ELMT_CHRG_PRO_AMT ,
4609 ELMT_CHRG_PRO_ACCTD_AMT ,
4610
4611 buc_alloc_amt ,
4612 buc_alloc_acctd_amt,
4613 buc_frt_alloc_amt ,
4614 buc_frt_alloc_acctd_amt,
4615 buc_tax_alloc_amt ,
4616 buc_tax_alloc_acctd_amt,
4617 buc_chrg_alloc_amt ,
4618 buc_chrg_alloc_acctd_amt,
4619 --D
4620 base_ed_pro_amt ,
4621 base_ed_pro_acctd_amt ,
4622 BASE_ed_FRT_PRO_AMT ,
4623 BASE_ed_FRT_PRO_ACCTD_AMT ,
4624 BASE_ed_TAX_PRO_AMT ,
4625 BASE_ed_TAX_PRO_ACCTD_AMT ,
4626 BASE_ed_CHRG_PRO_AMT ,
4627 BASE_ed_CHRG_PRO_ACCTD_AMT ,
4628
4629 elmt_ed_pro_amt ,
4630 elmt_ed_pro_acctd_amt ,
4631 ELMT_ed_FRT_PRO_AMT ,
4632 ELMT_ed_FRT_PRO_ACCTD_AMT ,
4633 ELMT_ed_TAX_PRO_AMT ,
4634 ELMT_ed_TAX_PRO_ACCTD_AMT ,
4635 ELMT_ed_CHRG_PRO_AMT ,
4636 ELMT_ed_CHRG_PRO_ACCTD_AMT ,
4637
4638 buc_ed_alloc_amt ,
4639 buc_ed_alloc_acctd_amt,
4640 buc_ed_frt_alloc_amt ,
4641 buc_ed_frt_alloc_acctd_amt,
4642 buc_ed_tax_alloc_amt ,
4643 buc_ed_tax_alloc_acctd_amt,
4644 buc_ed_chrg_alloc_amt ,
4645 buc_ed_chrg_alloc_acctd_amt,
4646 --NED
4647 base_uned_pro_amt ,
4648 base_uned_pro_acctd_amt ,
4649 BASE_uned_FRT_PRO_AMT ,
4650 BASE_uned_FRT_PRO_ACCTD_AMT ,
4651 BASE_uned_TAX_PRO_AMT ,
4652 BASE_uned_TAX_PRO_ACCTD_AMT ,
4653 BASE_uned_CHRG_PRO_AMT ,
4654 BASE_uned_CHRG_PRO_ACCTD_AMT ,
4655
4656 elmt_uned_pro_amt ,
4657 elmt_uned_pro_acctd_amt ,
4658 ELMT_uned_FRT_PRO_AMT ,
4659 ELMT_uned_FRT_PRO_ACCTD_AMT ,
4660 ELMT_uned_TAX_PRO_AMT ,
4661 ELMT_uned_TAX_PRO_ACCTD_AMT ,
4662 ELMT_uned_CHRG_PRO_AMT ,
4663 ELMT_uned_CHRG_PRO_ACCTD_AMT ,
4664
4665 buc_uned_alloc_amt ,
4666 buc_uned_alloc_acctd_amt,
4667 buc_uned_frt_alloc_amt ,
4668 buc_uned_frt_alloc_acctd_amt,
4669 buc_uned_tax_alloc_amt ,
4670 buc_uned_tax_alloc_acctd_amt,
4671 buc_uned_chrg_alloc_amt ,
4672 buc_uned_chrg_alloc_acctd_amt
4673 )
4674
4675
4676 SELECT /*+INDEX(c ra_ar_n1) INDEX(b ra_ar_n1) INDEX(d RA_AR_AMOUNTS_GT_N1)*/
4677 c.gt_id
4678 ,b.gp_level
4679 ,b.rowid
4680 ,c.ref_customer_trx_id
4681 ,c.ref_customer_trx_line_id
4682 /**************************
4683 -- ADJ and APP
4684 **************************/
4685 --Base
4686 ,CASE WHEN g_line_flag = 'INTERFACE' THEN b.sum_int_line_amount ELSE d.elmt_pro_amt END
4687 ,CASE WHEN g_line_flag = 'INTERFACE' THEN b.sum_int_line_amount ELSE d.elmt_pro_acctd_amt END
4688 ,d.ELMT_FRT_PRO_AMT
4689 ,d.ELMT_FRT_PRO_ACCTD_AMT
4690 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN b.sum_int_tax_amount ELSE d.ELMT_TAX_PRO_AMT END
4691 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN b.sum_int_tax_amount ELSE d.ELMT_TAX_PRO_ACCTD_AMT END
4692 ,d.ELMT_CHRG_PRO_AMT
4693 ,d.ELMT_CHRG_PRO_ACCTD_AMT
4694 --Elmt
4695 -- For line
4696 ,CASE WHEN g_line_flag = 'INTERFACE' THEN b.int_line_amount
4697 ELSE
4698 DECODE(p_pay_adj,
4699 'ADJ',DECODE(b.SUM_LINE_REM_AMT, 0 ,
4700 b.DUE_ORIG_AMT ,
4701 b.DUE_REM_AMT),
4702 b.DUE_REM_AMT)
4703 END
4704 ,CASE WHEN g_line_flag = 'INTERFACE' THEN b.int_line_amount
4705 ELSE
4706 DECODE(p_pay_adj,
4707 'ADJ',DECODE(b.SUM_LINE_REM_ACCTD_AMT, 0 ,
4708 b.DUE_ORIG_ACCTD_AMT ,
4709 b.DUE_REM_ACCTD_AMT),
4710 b.DUE_REM_ACCTD_AMT)
4711 END
4712 -- For freight
4713 ,DECODE(p_pay_adj,
4714 'ADJ',DECODE(b.SUM_LINE_REM_AMT, 0 ,
4715 b.DUE_ORIG_AMT ,
4716 b.DUE_REM_AMT),
4717 DECODE(b.line_type,'FREIGHT', b.FRT_REM_AMT,
4718 'LINE' , b.frt_adj_rem_amt,
4719 'CB' , b.frt_adj_rem_amt, 0))
4720 ,DECODE(p_pay_adj,
4721 'ADJ',DECODE(b.SUM_LINE_REM_ACCTD_AMT, 0 ,
4722 b.DUE_ORIG_ACCTD_AMT ,
4723 b.DUE_REM_ACCTD_AMT),
4724 DECODE(b.line_type,'FREIGHT', b.FRT_REM_ACCTD_AMT,
4725 'LINE' , b.frt_adj_rem_acctd_amt,
4726 'CB' , b.frt_adj_rem_acctd_amt,0))
4727 -- For tax
4728 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN b.int_tax_amount
4729 ELSE
4730 DECODE(p_pay_adj,
4731 'ADJ',DECODE(b.SUM_LINE_TAX_REM_AMT, 0 ,
4732 b.TAX_ORIG_AMT ,
4733 b.TAX_REM_AMT),
4734 b.TAX_REM_AMT)
4735 END
4736 ,CASE WHEN g_tax_flag = 'INTERFACE' THEN b.int_tax_amount
4737 ELSE
4738 DECODE(p_pay_adj,
4739 'ADJ',DECODE(b.SUM_LINE_TAX_REM_ACCTD_AMT, 0 ,
4740 b.TAX_ORIG_ACCTD_AMT ,
4741 b.TAX_REM_ACCTD_AMT),
4742 b.TAX_REM_ACCTD_AMT)
4743 END
4744 -- For Chrg
4745 ,DECODE(p_pay_adj,
4746 'ADJ',DECODE(b.SUM_LINE_REM_AMT, 0 ,
4747 b.DUE_ORIG_AMT ,
4748 b.DUE_REM_AMT),
4749 DECODE(b.line_type,'CHARGES', b.CHRG_REM_AMT,
4750 'LINE' , b.chrg_adj_rem_amt,
4751 'CB' , b.chrg_adj_rem_amt, 0))
4752 ,DECODE(p_pay_adj,
4753 'ADJ',DECODE(b.SUM_LINE_REM_ACCTD_AMT, 0 ,
4754 b.DUE_ORIG_ACCTD_AMT ,
4755 b.DUE_REM_ACCTD_AMT),
4756 DECODE(b.line_type,'CHARGES', b.CHRG_REM_ACCTD_AMT,
4757 'LINE' , b.chrg_adj_rem_acctd_amt,
4758 'CB' , b.chrg_adj_rem_acctd_amt,0))
4759 --Bucket
4760 ,CASE WHEN g_line_flag = 'NORMAL' THEN c.TL_ALLOC_AMT ELSE
4761 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4762 b.line_type,
4763 'N',
4764 'N',
4765 'N') END
4766 ,CASE WHEN g_line_flag = 'NORMAL' THEN c.TL_ALLOC_ACCTD_AMT ELSE
4767 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4768 b.line_type,
4769 'Y',
4770 'N',
4771 'N') END
4772 ,c.tl_frt_alloc_amt
4773 ,c.tl_frt_alloc_acctd_amt
4774 ,CASE WHEN g_tax_flag = 'NORMAL' THEN c.TL_TAX_ALLOC_AMT ELSE
4775 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4776 b.line_type,
4777 'N',
4778 'N',
4779 'N') END
4780 ,CASE WHEN g_tax_flag = 'NORMAL' THEN c.TL_TAX_ALLOC_ACCTD_AMT ELSE
4781 arp_det_dist_pkg.the_concern_bucket(p_pay_adj,
4782 b.line_type,
4783 'Y',
4784 'N',
4785 'N') END
4786 ,c.TL_CHRG_ALLOC_AMT
4787 ,c.TL_CHRG_ALLOC_ACCTD_AMT
4788 /**************************
4789 -- ED
4790 **************************/
4791 --Base
4792 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN b.sum_int_ed_line_amount ELSE d.elmt_ed_pro_amt END
4793 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN b.sum_int_ed_line_amount ELSE d.elmt_ed_pro_acctd_amt END
4794 ,d.elmt_ed_frt_pro_amt
4795 ,d.elmt_ed_frt_pro_acctd_amt
4796 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN b.sum_int_ed_tax_amount ELSE d.elmt_ed_tax_pro_amt END
4797 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN b.sum_int_ed_tax_amount ELSE d.elmt_ed_tax_pro_acctd_amt END
4798 ,d.ELMT_ed_CHRG_PRO_AMT
4799 ,d.ELMT_ed_CHRG_PRO_ACCTD_AMT
4800 --
4801 --Elmt
4802 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN b.int_ed_line_amount
4803 ELSE
4804 DECODE(b.line_type,'LINE' , b.DUE_REM_AMT,
4805 'CB' , b.due_rem_amt, 0)
4806 END
4807 ,CASE WHEN g_ed_line_flag = 'INTERFACE' THEN b.int_ed_line_amount
4808 ELSE
4809 DECODE(b.line_type,'LINE' , b.DUE_REM_ACCTD_AMT,
4810 'CB' , b.due_rem_acctd_amt,0)
4811 END
4812 ,DECODE(b.line_type,'FREIGHT', b.frt_REM_AMT,
4813 'LINE' , b.frt_adj_rem_amt,
4814 'CB' , b.frt_adj_rem_amt,0)
4815 ,DECODE(b.line_type,'FREIGHT', b.frt_REM_ACCTD_AMT,
4816 'LINE' , b.frt_adj_rem_acctd_amt,
4817 'CB' , b.frt_adj_rem_acctd_amt,0)
4818 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN b.int_ed_tax_amount ELSE b.TAX_REM_AMT END
4819 ,CASE WHEN g_ed_tax_flag = 'INTERFACE' THEN b.int_ed_tax_amount ELSE b.TAX_REM_ACCTD_AMT END
4820 ,DECODE(b.line_type,'CHARGES', b.chrg_REM_AMT,
4821 'LINE' , b.chrg_adj_rem_amt,
4822 'CB' , b.chrg_adj_rem_amt,0)
4823 ,DECODE(b.line_type,'CHARGES', b.chrg_REM_ACCTD_AMT,
4824 'LINE' , b.chrg_adj_rem_acctd_amt,
4825 'CB' , b.chrg_adj_rem_acctd_amt,0)
4826 --Bucket
4827 ,CASE WHEN g_ed_line_flag = 'NORMAL' THEN c.TL_ED_ALLOC_AMT ELSE
4828 CASE when g_ed_req = 'Y' then
4829 arp_det_dist_pkg.the_concern_bucket('ED',
4830 b.line_type,
4831 'N',
4832 'N',
4833 'N')
4834 else 0 end
4835 END
4836 ,CASE WHEN g_ed_line_flag = 'NORMAL' THEN c.TL_ED_ALLOC_ACCTD_AMT ELSE
4837 CASE
4838 when g_ed_req = 'Y' then
4839 arp_det_dist_pkg.the_concern_bucket('ED',
4840 b.line_type,
4841 'Y',
4842 'N',
4843 'N')
4844 else 0 end
4845 END
4846 ,c.TL_ED_FRT_ALLOC_AMT
4847 ,c.TL_ED_FRT_ALLOC_ACCTD_AMT
4848 ,CASE WHEN g_ed_tax_flag = 'NORMAL' THEN c.TL_ED_TAX_ALLOC_AMT ELSE
4849 CASE
4850 when g_ed_req = 'Y' then
4851 arp_det_dist_pkg.the_concern_bucket('ED',
4852 b.line_type,
4853 'N',
4854 'N',
4855 'N')
4856 else 0 end
4857 END
4858 ,CASE WHEN g_ed_tax_flag = 'NORMAL' THEN c.TL_ED_TAX_ALLOC_ACCTD_AMT ELSE
4859 CASE
4860 when g_ed_req = 'Y' then
4861 arp_det_dist_pkg.the_concern_bucket('ED',
4862 b.line_type,
4863 'Y',
4864 'N',
4865 'N')
4866 else 0 end
4867 END
4868 ,c.TL_ED_CHRG_ALLOC_AMT
4869 ,c.TL_ED_CHRG_ALLOC_ACCTD_AMT
4870
4871 /**************************
4872 -- UNED
4873 **************************/
4874 --Base
4875 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN b.sum_int_uned_line_amount ELSE d.elmt_uned_pro_amt END
4876 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN b.sum_int_uned_line_amount ELSE d.elmt_uned_pro_acctd_amt END
4877 ,d.elmt_uned_frt_pro_amt
4878 ,d.elmt_uned_frt_pro_acctd_amt
4879 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN b.sum_int_uned_tax_amount ELSE d.elmt_uned_tax_pro_amt END
4880 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN b.sum_int_uned_tax_amount ELSE d.elmt_uned_tax_pro_acctd_amt END
4881 ,d.ELMT_uned_CHRG_PRO_AMT
4882 ,d.ELMT_uned_CHRG_PRO_ACCTD_AMT
4883 --
4884 -- ,b.DUE_REM_AMT
4885 -- ,b.DUE_REM_ACCTD_AMT
4886 --{BUG#4415037
4887 -- ,DECODE(b.line_type,'LINE' , b.DUE_REM_AMT,
4888 -- 'CB' , b.due_rem_amt,0)
4889 -- ,DECODE(b.line_type,'LINE' , b.DUE_REM_ACCTD_AMT,
4890 -- 'CB' , b.due_rem_acctd_amt,0)
4891 --Elmt
4892 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN b.int_uned_line_amount
4893 ELSE
4894 DECODE(b.line_type,'LINE' , b.DUE_REM_AMT,
4895 'CB' , b.due_rem_amt,0)
4896 END
4897 ,CASE WHEN g_uned_line_flag = 'INTERFACE' THEN b.int_uned_line_amount
4898 ELSE
4899 DECODE(b.line_type,'LINE' , b.DUE_REM_ACCTD_AMT,
4900 'CB' , b.due_rem_acctd_amt,0)
4901 END
4902 ,DECODE(b.line_type,'FREIGHT', b.frt_REM_AMT,
4903 'LINE' , b.frt_adj_rem_amt,
4904 'CB' , b.frt_adj_rem_amt,0)
4905 ,DECODE(b.line_type,'FREIGHT', b.frt_REM_ACCTD_AMT,
4906 'LINE' , b.frt_adj_rem_acctd_amt,
4907 'CB' , b.frt_adj_rem_acctd_amt,0)
4908 -- ,DECODE(b.line_type,'LINE' , b.DUE_REM_AMT,0)
4909 -- ,DECODE(b.line_type,'LINE' , b.DUE_REM_ACCTD_AMT,0)
4910 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN b.int_uned_tax_amount ELSE b.TAX_REM_AMT END
4911 ,CASE WHEN g_uned_tax_flag = 'INTERFACE' THEN b.int_uned_tax_amount ELSE b.TAX_REM_ACCTD_AMT END
4912 ,DECODE(b.line_type,'CHARGES', b.chrg_REM_AMT,
4913 'LINE' , b.chrg_adj_rem_amt,
4914 'CB' , b.chrg_adj_rem_amt,0)
4915 ,DECODE(b.line_type,'CHARGES', b.chrg_REM_ACCTD_AMT,
4916 'LINE' , b.chrg_adj_rem_acctd_amt,
4917 'CB' , b.chrg_adj_rem_acctd_amt,0)
4918 --Bucket
4919 ,CASE WHEN g_uned_line_flag = 'NORMAL' THEN c.TL_UNED_ALLOC_AMT ELSE
4920 CASE
4921 when g_uned_req = 'Y' then
4922 arp_det_dist_pkg.the_concern_bucket('UNED',
4923 b.line_type,
4924 'N',
4925 'N',
4926 'N')
4927 else 0 end
4928 END
4929 ,CASE WHEN g_uned_line_flag = 'NORMAL' THEN c.TL_UNED_ALLOC_ACCTD_AMT ELSE
4930 CASE
4931 when g_uned_req = 'Y' then
4932 arp_det_dist_pkg.the_concern_bucket('UNED',
4933 b.line_type,
4934 'Y',
4935 'N',
4936 'N')
4937 else 0 end
4938 END
4939 ,c.TL_UNED_FRT_ALLOC_AMT
4940 ,c.TL_UNED_FRT_ALLOC_ACCTD_AMT
4941 ,CASE WHEN g_uned_tax_flag = 'NORMAL' THEN c.TL_UNED_TAX_ALLOC_AMT ELSE
4942 CASE
4943 when g_uned_req = 'Y' then
4944 arp_det_dist_pkg.the_concern_bucket('UNED',
4945 b.line_type,
4946 'N',
4947 'N',
4948 'N')
4949 else 0 end
4950 END
4951 ,CASE WHEN g_uned_tax_flag = 'NORMAL' THEN c.TL_UNED_TAX_ALLOC_ACCTD_AMT ELSE
4952 CASE
4953 when g_uned_req = 'Y' then
4954 arp_det_dist_pkg.the_concern_bucket('UNED',
4955 b.line_type,
4956 'Y',
4957 'N',
4958 'N')
4959 else 0 end
4960 END
4961 ,c.TL_UNED_CHRG_ALLOC_AMT
4962 ,c.TL_UNED_CHRG_ALLOC_ACCTD_AMT
4963 FROM RA_AR_GT b,
4964 RA_AR_GT c,
4965 RA_AR_AMOUNTS_GT d
4966 WHERE b.gt_id = p_gt_id
4967 -- AND b.se_gt_id = g_se_gt_id
4968 AND b.ref_customer_trx_id = p_customer_trx_id
4969 AND b.gp_level = 'L'
4970 --Bug#3611016
4971 AND b.set_of_books_id = p_ae_sys_rec.set_of_books_id
4972 AND (b.sob_type = p_ae_sys_rec.sob_type OR
4973 (b.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
4974 AND c.gt_id = p_gt_id
4975 AND c.gp_level = 'GPL'
4976 AND c.ref_customer_trx_id = p_customer_trx_id
4977 --Bug#3611016
4978 AND c.set_of_books_id = p_ae_sys_rec.set_of_books_id
4979 AND (c.sob_type = p_ae_sys_rec.sob_type OR
4980 (c.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
4981 AND c.gt_id = d.gt_id
4982 AND c.rowid = d.base_rec_rowid
4983 -- AND c.group_id = b.group_id
4984 --{HYUBPAGP
4985 AND c.source_data_key1 = b.source_data_key1
4986 AND c.source_data_key2 = b.source_data_key2
4987 AND c.source_data_key3 = b.source_data_key3
4988 AND c.source_data_key4 = b.source_data_key4
4989 AND c.source_data_key5 = b.source_data_key5
4990 --}
4991 AND c.line_type = b.line_type
4992 --{HYUIssue
4993 AND c.ref_customer_trx_line_id = b.ref_customer_trx_line_id;
4994 --}
4995
4996 IF PG_DEBUG = 'Y' THEN
4997 display_ra_ar_gt(p_code => 'L', p_gt_id => p_gt_id);
4998 END IF;
4999
5000 IF PG_DEBUG = 'Y' THEN
5001 localdebug('arp_det_dist_pkg.prepare_trx_line_proration()-');
5002 END IF;
5003 EXCEPTION
5004 WHEN OTHERS THEN
5005 IF PG_DEBUG = 'Y' THEN
5006 localdebug('EXCEPTION OTHERS prepare_trx_line_proration:'||SQLERRM);
5007 END IF;
5008 END prepare_trx_line_proration;
5009
5010
5011
5012 PROCEDURE update_ctl_rem_orig
5013 (p_gt_id IN VARCHAR2,
5014 p_customer_trx_id IN NUMBER,
5015 p_pay_adj IN VARCHAR2,
5016 p_customer_trx_line_id IN NUMBER DEFAULT NULL,
5017 --{HYUBPAGP
5018 p_source_data_key1 IN VARCHAR2 DEFAULT NULL,
5019 p_source_data_key2 IN VARCHAR2 DEFAULT NULL,
5020 p_source_data_key3 IN VARCHAR2 DEFAULT NULL,
5021 p_source_data_key4 IN VARCHAR2 DEFAULT NULL,
5022 p_source_data_key5 IN VARCHAR2 DEFAULT NULL,
5023 --}
5024 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
5025 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
5026 IS
5027 BEGIN
5028 IF PG_DEBUG = 'Y' THEN
5029 localdebug('arp_det_dist_pkg.update_ctl_rem_orig()+');
5030 localdebug(' p_customer_trx_line_id:'||p_customer_trx_line_id);
5031 localdebug(' p_source_data_key1 :'||p_source_data_key1);
5032 localdebug(' p_source_data_key2 :'||p_source_data_key2);
5033 localdebug(' p_source_data_key3 :'||p_source_data_key3);
5034 localdebug(' p_source_data_key4 :'||p_source_data_key4);
5035 localdebug(' p_source_data_key5 :'||p_source_data_key5);
5036 localdebug(' Update rem amount in ra_customer_trx_lines_gt for regular transaction');
5037 END IF;
5038 IF p_customer_trx_line_id IS NOT NULL THEN
5039 IF p_log_inv_line = 'N' THEN
5040
5041 UPDATE /*+ index(A RA_CUSTOMER_TRX_LINES_GT_N1)*/ ra_customer_trx_lines_gt a
5042 SET (a.AMOUNT_DUE_REMAINING ,
5043 a.ACCTD_AMOUNT_DUE_REMAINING ,
5044 a.AMOUNT_DUE_ORIGINAL ,
5045 a.ACCTD_AMOUNT_DUE_ORIGINAL ,
5046 a.CHRG_AMOUNT_REMAINING ,
5047 a.CHRG_ACCTD_AMOUNT_REMAINING ,
5048 a.FRT_ADJ_REMAINING ,
5049 a.FRT_ADJ_ACCTD_REMAINING ,
5050 a.frt_ed_amount,
5051 a.frt_ed_acctd_amount,
5052 a.frt_uned_amount,
5053 a.frt_uned_acctd_amount) =
5054 (SELECT /*+INDEX (b ra_ar_n1)*/
5055 DECODE(a.line_type, 'LINE',
5056 NVL(a.AMOUNT_DUE_REMAINING,0)
5057 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
5058 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
5059 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
5060 'CB',
5061 NVL(a.AMOUNT_DUE_REMAINING,0)
5062 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
5063 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
5064 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
5065 'TAX',
5066 NVL(a.AMOUNT_DUE_REMAINING,0)
5067 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_amt,0),NVL(b.tl_tax_alloc_amt,0))
5068 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_amt,0),NVL(b.tl_ed_tax_alloc_amt,0))
5069 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_amt,0),NVL(b.tl_uned_tax_alloc_amt,0)),
5070 'FREIGHT',
5071 NVL(a.AMOUNT_DUE_REMAINING,0)
5072 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_amt,0)),
5073 'CHARGES',
5074 NVL(a.AMOUNT_DUE_REMAINING,0)
5075 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_amt,0)),
5076 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_amt,0))
5077 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_amt,0)),
5078 0) -- AMOUNT_DUE_REMAINING
5079 ,DECODE(a.line_type, 'LINE',
5080 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5081 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
5082 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
5083 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
5084 'CB',
5085 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5086 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
5087 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
5088 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
5089 'TAX',
5090 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5091 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_acctd_amt,0),NVL(b.tl_tax_alloc_acctd_amt,0))
5092 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_acctd_amt,0),NVL(b.tl_ed_tax_alloc_acctd_amt,0))
5093 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_acctd_amt,0),NVL(b.tl_uned_tax_alloc_acctd_amt,0)),
5094 'FREIGHT',
5095 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5096 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_acctd_amt,0)),
5097 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0))
5098 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)),
5099 --{HYUCHRG
5100 'CHARGES',
5101 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5102 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_acctd_amt,0)),
5103 0) -- ACCTD_AMOUNT_DUE_REMAINING
5104 --}
5105 ,DECODE(a.line_type, 'LINE', NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
5106 'CB' , NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
5107 'FREIGHT', NVL(a.AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_AMT),
5108 'CHARGES', NVL(a.AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_AMT),
5109 'TAX', NVL(a.AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_AMT),
5110 0) -- AMOUNT_DUE_ORIGINAL
5111 ,DECODE(a.line_type, 'LINE', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
5112 'CB' , NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
5113 'FREIGHT', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_ACCTD_AMT),
5114 'CHARGES', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_ACCTD_AMT),
5115 'TAX', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_ACCTD_AMT),
5116 0) -- ACCTD_AMOUNT_DUE_ORIGINAL
5117 --{HYUCHRG
5118 -- ,NVL(a.CHRG_AMOUNT_REMAINING,0)
5119 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),NVL(b.tl_chrg_alloc_amt,0))
5120 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_amt,0),NVL(b.tl_ed_chrg_alloc_amt,0))
5121 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_amt,0),NVL(b.tl_uned_chrg_alloc_amt,0))
5122 -- -- CHRG_AMOUNT_REMAINING
5123 -- ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
5124 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),NVL(b.tl_chrg_alloc_acctd_amt,0))
5125 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_acctd_amt,0),NVL(b.tl_ed_chrg_alloc_acctd_amt,0))
5126 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_acctd_amt,0),NVL(b.tl_uned_chrg_alloc_acctd_amt,0))
5127 -- -- CHRG_ACCTD_AMOUNT_REMAINING
5128 ,NVL(a.CHRG_AMOUNT_REMAINING,0)
5129 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),
5130 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_amt,0),
5131 'CB' ,NVL(b.tl_chrg_alloc_amt,0),0))
5132 -- CHRG_AMOUNT_REMAINING
5133 ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
5134 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),
5135 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_acctd_amt,0),
5136 'CB' ,NVL(b.tl_chrg_alloc_acctd_amt,0),0))
5137 -- CHRG_ACCTD_AMOUNT_REMAINING
5138 --}
5139 ,NVL(a.FRT_ADJ_REMAINING,0)
5140 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_amt,0),
5141 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_amt,0),
5142 'CB' ,NVL(b.tl_frt_alloc_amt,0),0))
5143 -- FRT_ADJ_REMAINING
5144 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_amt,0),
5145 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_amt,0),0))
5146 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_amt,0),
5147 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_amt,0),0))
5148 ,NVL(a.FRT_ADJ_ACCTD_REMAINING,0)
5149 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_acctd_amt,0),
5150 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_acctd_amt,0),
5151 'CB' ,NVL(b.tl_frt_alloc_acctd_amt,0),0))
5152 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0),
5153 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0)))
5154 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0),
5155 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)))
5156 -- FRT_ADJ_ACCTD_REMAINING
5157 ,NVL(a.frt_ed_amount,0)
5158 + DECODE(p_pay_adj,'ADJ',0,
5159 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_amt,0),
5160 'CB' ,NVL(b.tl_ed_frt_alloc_amt,0), 0))
5161 ,NVL(a.frt_ed_acctd_amount,0)
5162 + DECODE(p_pay_adj,'ADJ',0,
5163 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_acctd_amt,0),
5164 'CB' ,NVL(b.tl_ed_frt_alloc_acctd_amt,0),0))
5165 ,NVL(a.frt_uned_amount,0)
5166 + DECODE(p_pay_adj,'ADJ',0,
5167 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_amt,0),
5168 'CB' ,NVL(b.tl_uned_frt_alloc_amt,0),0))
5169 ,NVL(a.frt_uned_acctd_amount,0)
5170 + DECODE(p_pay_adj,'ADJ',0,
5171 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_acctd_amt,0),
5172 'CB' ,NVL(b.tl_uned_frt_alloc_acctd_amt,0),0))
5173 FROM RA_AR_GT b
5174 WHERE b.gt_id = p_gt_id
5175 -- AND b.se_gt_id = g_se_gt_id
5176 AND a.customer_trx_id = b.ref_customer_trx_id
5177 AND a.customer_trx_line_id = b.ref_customer_trx_line_id
5178 -- AND a.group_id = b.group_id
5179 --{HYUBPAGP
5180 AND NVL(a.source_data_key1,'00') = b.source_data_key1
5181 AND NVL(a.source_data_key2,'00') = b.source_data_key2
5182 AND NVL(a.source_data_key3,'00') = b.source_data_key3
5183 AND NVL(a.source_data_key4,'00') = b.source_data_key4
5184 AND NVL(a.source_data_key5,'00') = b.source_data_key5
5185 --}
5186 --Bug#3611016
5187 AND (b.sob_type = 'P' OR b.sob_type IS NULL)
5188 AND b.set_of_books_id = a.set_of_books_id
5189 AND b.gp_level = 'L')
5190 WHERE a.customer_trx_id = p_customer_trx_id
5191 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
5192 AND p_customer_trx_line_id = a.customer_trx_line_id
5193 -- AND DECODE( p_group_id, NULL, '-99', p_group_id)
5194 -- = DECODE(p_group_id, NULL, '-99', a.group_id)
5195 --{HYUBPAGP
5196 AND DECODE( p_source_data_key1, NULL, '-99', p_source_data_key1)
5197 = DECODE(p_source_data_key1, NULL, '-99', a.source_data_key1)
5198 AND DECODE( p_source_data_key2, NULL, '-99', p_source_data_key2)
5199 = DECODE(p_source_data_key2, NULL, '-99', a.source_data_key2)
5200 AND DECODE( p_source_data_key3, NULL, '-99', p_source_data_key3)
5201 = DECODE(p_source_data_key3, NULL, '-99', a.source_data_key3)
5202 AND DECODE( p_source_data_key4, NULL, '-99', p_source_data_key4)
5203 = DECODE(p_source_data_key4, NULL, '-99', a.source_data_key4)
5204 AND DECODE( p_source_data_key5, NULL, '-99', p_source_data_key5)
5205 = DECODE(p_source_data_key5, NULL, '-99', a.source_data_key5)
5206 --}
5207 AND a.line_type IN ('LINE','FREIGHT','TAX','CB','CHARGES');
5208
5209 ELSE
5210 UPDATE /*+ index(A RA_CUSTOMER_TRX_LINES_GT_N1)*/ ra_customer_trx_lines_gt a
5211 SET (a.AMOUNT_DUE_REMAINING ,
5212 a.ACCTD_AMOUNT_DUE_REMAINING ,
5213 a.AMOUNT_DUE_ORIGINAL ,
5214 a.ACCTD_AMOUNT_DUE_ORIGINAL ,
5215 a.CHRG_AMOUNT_REMAINING ,
5216 a.CHRG_ACCTD_AMOUNT_REMAINING ,
5217 a.FRT_ADJ_REMAINING ,
5218 a.FRT_ADJ_ACCTD_REMAINING ,
5219 a.frt_ed_amount,
5220 a.frt_ed_acctd_amount,
5221 a.frt_uned_amount,
5222 a.frt_uned_acctd_amount) =
5223 (SELECT /*+INDEX (b ra_ar_n1)*/
5224 DECODE(a.line_type, 'LINE',
5225 NVL(a.AMOUNT_DUE_REMAINING,0)
5226 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
5227 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
5228 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
5229 'CB',
5230 NVL(a.AMOUNT_DUE_REMAINING,0)
5231 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
5232 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
5233 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
5234 'TAX',
5235 NVL(a.AMOUNT_DUE_REMAINING,0)
5236 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_amt,0),NVL(b.tl_tax_alloc_amt,0))
5237 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_amt,0),NVL(b.tl_ed_tax_alloc_amt,0))
5238 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_amt,0),NVL(b.tl_uned_tax_alloc_amt,0)),
5239 'FREIGHT',
5240 NVL(a.AMOUNT_DUE_REMAINING,0)
5241 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_amt,0)),
5242 'CHARGES',
5243 NVL(a.AMOUNT_DUE_REMAINING,0)
5244 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_amt,0)),
5245 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_amt,0))
5246 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_amt,0)),
5247 0) -- AMOUNT_DUE_REMAINING
5248 ,DECODE(a.line_type, 'LINE',
5249 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5250 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
5251 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
5252 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
5253 'CB',
5254 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5255 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
5256 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
5257 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
5258 'TAX',
5259 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5260 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_acctd_amt,0),NVL(b.tl_tax_alloc_acctd_amt,0))
5261 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_acctd_amt,0),NVL(b.tl_ed_tax_alloc_acctd_amt,0))
5262 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_acctd_amt,0),NVL(b.tl_uned_tax_alloc_acctd_amt,0)),
5263 'FREIGHT',
5264 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5265 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_acctd_amt,0)),
5266 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0))
5267 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)),
5268 --{HYUCHRG
5269 'CHARGES',
5270 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5271 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_acctd_amt,0)),
5272 0) -- ACCTD_AMOUNT_DUE_REMAINING
5273 --}
5274 ,DECODE(a.line_type, 'LINE', NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
5275 'CB' , NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
5276 'FREIGHT', NVL(a.AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_AMT),
5277 'CHARGES', NVL(a.AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_AMT),
5278 'TAX', NVL(a.AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_AMT),
5279 0) -- AMOUNT_DUE_ORIGINAL
5280 ,DECODE(a.line_type, 'LINE', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
5281 'CB' , NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
5282 'FREIGHT', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_ACCTD_AMT),
5283 'CHARGES', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_ACCTD_AMT),
5284 'TAX', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_ACCTD_AMT),
5285 0) -- ACCTD_AMOUNT_DUE_ORIGINAL
5286 --{HYUCHRG
5287 -- ,NVL(a.CHRG_AMOUNT_REMAINING,0)
5288 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),NVL(b.tl_chrg_alloc_amt,0))
5289 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_amt,0),NVL(b.tl_ed_chrg_alloc_amt,0))
5290 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_amt,0),NVL(b.tl_uned_chrg_alloc_amt,0))
5291 -- -- CHRG_AMOUNT_REMAINING
5292 -- ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
5293 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),NVL(b.tl_chrg_alloc_acctd_amt,0))
5294 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_acctd_amt,0),NVL(b.tl_ed_chrg_alloc_acctd_amt,0))
5295 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_acctd_amt,0),NVL(b.tl_uned_chrg_alloc_acctd_amt,0))
5296 -- -- CHRG_ACCTD_AMOUNT_REMAINING
5297 ,NVL(a.CHRG_AMOUNT_REMAINING,0)
5298 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),
5299 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_amt,0),
5300 'CB' ,NVL(b.tl_chrg_alloc_amt,0),0))
5301 -- CHRG_AMOUNT_REMAINING
5302 ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
5303 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),
5304 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_acctd_amt,0),
5305 'CB' ,NVL(b.tl_chrg_alloc_acctd_amt,0),0))
5306 -- CHRG_ACCTD_AMOUNT_REMAINING
5307 --}
5308 ,NVL(a.FRT_ADJ_REMAINING,0)
5309 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_amt,0),
5310 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_amt,0),
5311 'CB' ,NVL(b.tl_frt_alloc_amt,0),0))
5312 -- FRT_ADJ_REMAINING
5313 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_amt,0),
5314 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_amt,0),0))
5315 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_amt,0),
5316 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_amt,0),0))
5317 ,NVL(a.FRT_ADJ_ACCTD_REMAINING,0)
5318 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_acctd_amt,0),
5319 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_acctd_amt,0),
5320 'CB' ,NVL(b.tl_frt_alloc_acctd_amt,0),0))
5321 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0),
5322 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0)))
5323 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0),
5324 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)))
5325 -- FRT_ADJ_ACCTD_REMAINING
5326 ,NVL(a.frt_ed_amount,0)
5327 + DECODE(p_pay_adj,'ADJ',0,
5328 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_amt,0),
5329 'CB' ,NVL(b.tl_ed_frt_alloc_amt,0), 0))
5330 ,NVL(a.frt_ed_acctd_amount,0)
5331 + DECODE(p_pay_adj,'ADJ',0,
5332 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_acctd_amt,0),
5333 'CB' ,NVL(b.tl_ed_frt_alloc_acctd_amt,0),0))
5334 ,NVL(a.frt_uned_amount,0)
5335 + DECODE(p_pay_adj,'ADJ',0,
5336 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_amt,0),
5337 'CB' ,NVL(b.tl_uned_frt_alloc_amt,0),0))
5338 ,NVL(a.frt_uned_acctd_amount,0)
5339 + DECODE(p_pay_adj,'ADJ',0,
5340 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_acctd_amt,0),
5341 'CB' ,NVL(b.tl_uned_frt_alloc_acctd_amt,0),0))
5342 FROM RA_AR_GT b
5343 WHERE b.gt_id = p_gt_id
5344 -- AND b.se_gt_id = g_se_gt_id
5345 AND a.customer_trx_id = b.ref_customer_trx_id
5346 AND a.customer_trx_line_id = b.ref_customer_trx_line_id
5347 -- AND a.group_id = b.group_id
5348 --{HYUBPAGP
5349 AND NVL(a.source_data_key1,'00') = b.source_data_key1
5350 AND NVL(a.source_data_key2,'00') = b.source_data_key2
5351 AND NVL(a.source_data_key3,'00') = b.source_data_key3
5352 AND NVL(a.source_data_key4,'00') = b.source_data_key4
5353 AND NVL(a.source_data_key5,'00') = b.source_data_key5
5354 --}
5355 --Bug#3611016
5356 AND (b.sob_type = 'P' OR b.sob_type IS NULL)
5357 AND b.set_of_books_id = a.set_of_books_id
5358 AND b.gp_level = 'L')
5359 WHERE a.customer_trx_id = p_customer_trx_id
5360 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
5361 AND p_customer_trx_line_id = a.customer_trx_line_id
5362 -- AND DECODE( p_group_id, NULL, '-99', p_group_id)
5363 -- = DECODE(p_group_id, NULL, '-99', a.group_id)
5364 --{HYUBPAGP
5365 AND DECODE( p_source_data_key1, NULL, '-99', p_source_data_key1)
5366 = DECODE(p_source_data_key1, NULL, '-99', a.source_data_key1)
5367 AND DECODE( p_source_data_key2, NULL, '-99', p_source_data_key2)
5368 = DECODE(p_source_data_key2, NULL, '-99', a.source_data_key2)
5369 AND DECODE( p_source_data_key3, NULL, '-99', p_source_data_key3)
5370 = DECODE(p_source_data_key3, NULL, '-99', a.source_data_key3)
5371 AND DECODE( p_source_data_key4, NULL, '-99', p_source_data_key4)
5372 = DECODE(p_source_data_key4, NULL, '-99', a.source_data_key4)
5373 AND DECODE( p_source_data_key5, NULL, '-99', p_source_data_key5)
5374 = DECODE(p_source_data_key5, NULL, '-99', a.source_data_key5)
5375 --}
5376 AND a.line_type IN ('LINE','CB');
5377
5378 UPDATE /*+ index(A RA_CUSTOMER_TRX_LINES_GT_N2)*/ ra_customer_trx_lines_gt a
5379 SET (a.AMOUNT_DUE_REMAINING ,
5380 a.ACCTD_AMOUNT_DUE_REMAINING ,
5381 a.AMOUNT_DUE_ORIGINAL ,
5382 a.ACCTD_AMOUNT_DUE_ORIGINAL ,
5383 a.CHRG_AMOUNT_REMAINING ,
5384 a.CHRG_ACCTD_AMOUNT_REMAINING ,
5385 a.FRT_ADJ_REMAINING ,
5386 a.FRT_ADJ_ACCTD_REMAINING ,
5387 a.frt_ed_amount,
5388 a.frt_ed_acctd_amount,
5389 a.frt_uned_amount,
5390 a.frt_uned_acctd_amount) =
5391 (SELECT /*+INDEX (b ra_ar_n1)*/
5392 DECODE(a.line_type, 'LINE',
5393 NVL(a.AMOUNT_DUE_REMAINING,0)
5394 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
5395 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
5396 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
5397 'CB',
5398 NVL(a.AMOUNT_DUE_REMAINING,0)
5399 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
5400 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
5401 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
5402 'TAX',
5403 NVL(a.AMOUNT_DUE_REMAINING,0)
5404 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_amt,0),NVL(b.tl_tax_alloc_amt,0))
5405 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_amt,0),NVL(b.tl_ed_tax_alloc_amt,0))
5406 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_amt,0),NVL(b.tl_uned_tax_alloc_amt,0)),
5407 'FREIGHT',
5408 NVL(a.AMOUNT_DUE_REMAINING,0)
5409 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_amt,0)),
5410 'CHARGES',
5411 NVL(a.AMOUNT_DUE_REMAINING,0)
5412 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_amt,0)),
5413 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_amt,0))
5414 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_amt,0)),
5415 0) -- AMOUNT_DUE_REMAINING
5416 ,DECODE(a.line_type, 'LINE',
5417 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5418 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
5419 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
5420 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
5421 'CB',
5422 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5423 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
5424 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
5425 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
5426 'TAX',
5427 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5428 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_acctd_amt,0),NVL(b.tl_tax_alloc_acctd_amt,0))
5429 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_acctd_amt,0),NVL(b.tl_ed_tax_alloc_acctd_amt,0))
5430 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_acctd_amt,0),NVL(b.tl_uned_tax_alloc_acctd_amt,0)),
5431 'FREIGHT',
5432 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5433 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_acctd_amt,0)),
5434 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0))
5435 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)),
5436 --{HYUCHRG
5437 'CHARGES',
5438 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5439 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_acctd_amt,0)),
5440 0) -- ACCTD_AMOUNT_DUE_REMAINING
5441 --}
5442 ,DECODE(a.line_type, 'LINE', NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
5443 'CB' , NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
5444 'FREIGHT', NVL(a.AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_AMT),
5445 'CHARGES', NVL(a.AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_AMT),
5446 'TAX', NVL(a.AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_AMT),
5447 0) -- AMOUNT_DUE_ORIGINAL
5448 ,DECODE(a.line_type, 'LINE', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
5449 'CB' , NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
5450 'FREIGHT', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_ACCTD_AMT),
5451 'CHARGES', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_ACCTD_AMT),
5452 'TAX', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_ACCTD_AMT),
5453 0) -- ACCTD_AMOUNT_DUE_ORIGINAL
5454 --{HYUCHRG
5455 -- ,NVL(a.CHRG_AMOUNT_REMAINING,0)
5456 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),NVL(b.tl_chrg_alloc_amt,0))
5457 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_amt,0),NVL(b.tl_ed_chrg_alloc_amt,0))
5458 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_amt,0),NVL(b.tl_uned_chrg_alloc_amt,0))
5459 -- -- CHRG_AMOUNT_REMAINING
5460 -- ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
5461 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),NVL(b.tl_chrg_alloc_acctd_amt,0))
5462 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_acctd_amt,0),NVL(b.tl_ed_chrg_alloc_acctd_amt,0))
5463 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_acctd_amt,0),NVL(b.tl_uned_chrg_alloc_acctd_amt,0))
5464 -- -- CHRG_ACCTD_AMOUNT_REMAINING
5465 ,NVL(a.CHRG_AMOUNT_REMAINING,0)
5466 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),
5467 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_amt,0),
5468 'CB' ,NVL(b.tl_chrg_alloc_amt,0),0))
5469 -- CHRG_AMOUNT_REMAINING
5470 ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
5471 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),
5472 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_acctd_amt,0),
5473 'CB' ,NVL(b.tl_chrg_alloc_acctd_amt,0),0))
5474 -- CHRG_ACCTD_AMOUNT_REMAINING
5475 --}
5476 ,NVL(a.FRT_ADJ_REMAINING,0)
5477 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_amt,0),
5478 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_amt,0),
5479 'CB' ,NVL(b.tl_frt_alloc_amt,0),0))
5480 -- FRT_ADJ_REMAINING
5481 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_amt,0),
5482 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_amt,0),0))
5483 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_amt,0),
5484 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_amt,0),0))
5485 ,NVL(a.FRT_ADJ_ACCTD_REMAINING,0)
5486 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_acctd_amt,0),
5487 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_acctd_amt,0),
5488 'CB' ,NVL(b.tl_frt_alloc_acctd_amt,0),0))
5489 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0),
5490 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0)))
5491 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0),
5492 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)))
5493 -- FRT_ADJ_ACCTD_REMAINING
5494 ,NVL(a.frt_ed_amount,0)
5495 + DECODE(p_pay_adj,'ADJ',0,
5496 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_amt,0),
5497 'CB' ,NVL(b.tl_ed_frt_alloc_amt,0), 0))
5498 ,NVL(a.frt_ed_acctd_amount,0)
5499 + DECODE(p_pay_adj,'ADJ',0,
5500 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_acctd_amt,0),
5501 'CB' ,NVL(b.tl_ed_frt_alloc_acctd_amt,0),0))
5502 ,NVL(a.frt_uned_amount,0)
5503 + DECODE(p_pay_adj,'ADJ',0,
5504 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_amt,0),
5505 'CB' ,NVL(b.tl_uned_frt_alloc_amt,0),0))
5506 ,NVL(a.frt_uned_acctd_amount,0)
5507 + DECODE(p_pay_adj,'ADJ',0,
5508 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_acctd_amt,0),
5509 'CB' ,NVL(b.tl_uned_frt_alloc_acctd_amt,0),0))
5510 FROM RA_AR_GT b
5511 WHERE b.gt_id = p_gt_id
5512 -- AND b.se_gt_id = g_se_gt_id
5513 AND a.customer_trx_id = b.ref_customer_trx_id
5514 AND a.customer_trx_line_id = b.ref_customer_trx_line_id
5515 -- AND a.group_id = b.group_id
5516 --{HYUBPAGP
5517 AND NVL(a.source_data_key1,'00') = b.source_data_key1
5518 AND NVL(a.source_data_key2,'00') = b.source_data_key2
5519 AND NVL(a.source_data_key3,'00') = b.source_data_key3
5520 AND NVL(a.source_data_key4,'00') = b.source_data_key4
5521 AND NVL(a.source_data_key5,'00') = b.source_data_key5
5522 --}
5523 --Bug#3611016
5524 AND (b.sob_type = 'P' OR b.sob_type IS NULL)
5525 AND b.set_of_books_id = a.set_of_books_id
5526 AND b.gp_level = 'L')
5527 WHERE a.customer_trx_id = p_customer_trx_id
5528 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
5529 AND p_customer_trx_line_id = a.LINK_TO_CUST_TRX_LINE_ID
5530 -- AND DECODE( p_group_id, NULL, '-99', p_group_id)
5531 -- = DECODE(p_group_id, NULL, '-99', a.group_id)
5532 --{HYUBPAGP
5533 AND DECODE( p_source_data_key1, NULL, '-99', p_source_data_key1)
5534 = DECODE(p_source_data_key1, NULL, '-99', a.source_data_key1)
5535 AND DECODE( p_source_data_key2, NULL, '-99', p_source_data_key2)
5536 = DECODE(p_source_data_key2, NULL, '-99', a.source_data_key2)
5537 AND DECODE( p_source_data_key3, NULL, '-99', p_source_data_key3)
5538 = DECODE(p_source_data_key3, NULL, '-99', a.source_data_key3)
5539 AND DECODE( p_source_data_key4, NULL, '-99', p_source_data_key4)
5540 = DECODE(p_source_data_key4, NULL, '-99', a.source_data_key4)
5541 AND DECODE( p_source_data_key5, NULL, '-99', p_source_data_key5)
5542 = DECODE(p_source_data_key5, NULL, '-99', a.source_data_key5)
5543 --}
5544 AND a.line_type IN ('FREIGHT','TAX','CHARGES');
5545 END IF; -- End of p_log_inv_line check
5546 ELSE
5547 UPDATE /*+ index(A RA_CUSTOMER_TRX_LINES_GT_N1)*/ ra_customer_trx_lines_gt a
5548 SET (a.AMOUNT_DUE_REMAINING ,
5549 a.ACCTD_AMOUNT_DUE_REMAINING ,
5550 a.AMOUNT_DUE_ORIGINAL ,
5551 a.ACCTD_AMOUNT_DUE_ORIGINAL ,
5552 a.CHRG_AMOUNT_REMAINING ,
5553 a.CHRG_ACCTD_AMOUNT_REMAINING ,
5554 a.FRT_ADJ_REMAINING ,
5555 a.FRT_ADJ_ACCTD_REMAINING ,
5556 a.frt_ed_amount,
5557 a.frt_ed_acctd_amount,
5558 a.frt_uned_amount,
5559 a.frt_uned_acctd_amount) =
5560 (SELECT /*+INDEX (b ra_ar_n1)*/
5561 DECODE(a.line_type, 'LINE',
5562 NVL(a.AMOUNT_DUE_REMAINING,0)
5563 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
5564 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
5565 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
5566 'CB',
5567 NVL(a.AMOUNT_DUE_REMAINING,0)
5568 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_amt,0),NVL(b.tl_alloc_amt,0))
5569 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_amt,0),NVL(b.tl_ed_alloc_amt,0))
5570 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_amt,0),NVL(b.tl_uned_alloc_amt,0)),
5571 'TAX',
5572 NVL(a.AMOUNT_DUE_REMAINING,0)
5573 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_amt,0),NVL(b.tl_tax_alloc_amt,0))
5574 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_amt,0),NVL(b.tl_ed_tax_alloc_amt,0))
5575 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_amt,0),NVL(b.tl_uned_tax_alloc_amt,0)),
5576 'FREIGHT',
5577 NVL(a.AMOUNT_DUE_REMAINING,0)
5578 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_amt,0)),
5579 'CHARGES',
5580 NVL(a.AMOUNT_DUE_REMAINING,0)
5581 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_amt,0)),
5582 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_amt,0))
5583 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_amt,0)),
5584 0) -- AMOUNT_DUE_REMAINING
5585 ,DECODE(a.line_type, 'LINE',
5586 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5587 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
5588 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
5589 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
5590 'CB',
5591 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5592 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_alloc_acctd_amt,0),NVL(b.tl_alloc_acctd_amt,0))
5593 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_alloc_acctd_amt,0),NVL(b.tl_ed_alloc_acctd_amt,0))
5594 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_alloc_acctd_amt,0),NVL(b.tl_uned_alloc_acctd_amt,0)),
5595 'TAX',
5596 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5597 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_tax_alloc_acctd_amt,0),NVL(b.tl_tax_alloc_acctd_amt,0))
5598 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_tax_alloc_acctd_amt,0),NVL(b.tl_ed_tax_alloc_acctd_amt,0))
5599 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_tax_alloc_acctd_amt,0),NVL(b.tl_uned_tax_alloc_acctd_amt,0)),
5600 'FREIGHT',
5601 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5602 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_frt_alloc_acctd_amt,0)),
5603 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0))
5604 -- + DECODE(p_pay_adj,'ADJ',0,-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)),
5605 --{HYUCHRG
5606 'CHARGES',
5607 NVL(a.ACCTD_AMOUNT_DUE_REMAINING,0)
5608 + DECODE(p_pay_adj,'ADJ',0,NVL(b.tl_chrg_alloc_acctd_amt,0)),
5609 0) -- ACCTD_AMOUNT_DUE_REMAINING
5610 --}
5611 ,DECODE(a.line_type, 'LINE', NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
5612 'CB' , NVL(a.AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_AMT),
5613 'FREIGHT', NVL(a.AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_AMT),
5614 'CHARGES', NVL(a.AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_AMT),
5615 'TAX', NVL(a.AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_AMT),
5616 0) -- AMOUNT_DUE_ORIGINAL
5617 ,DECODE(a.line_type, 'LINE', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
5618 'CB' , NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.DUE_ORIG_ACCTD_AMT),
5619 'FREIGHT', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.FRT_ORIG_ACCTD_AMT),
5620 'CHARGES', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.CHRG_ORIG_ACCTD_AMT),
5621 'TAX', NVL(a.ACCTD_AMOUNT_DUE_ORIGINAL,b.TAX_ORIG_ACCTD_AMT),
5622 0) -- ACCTD_AMOUNT_DUE_ORIGINAL
5623 --{HYUCHRG
5624 -- ,NVL(a.CHRG_AMOUNT_REMAINING,0)
5625 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),NVL(b.tl_chrg_alloc_amt,0))
5626 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_amt,0),NVL(b.tl_ed_chrg_alloc_amt,0))
5627 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_amt,0),NVL(b.tl_uned_chrg_alloc_amt,0))
5628 -- -- CHRG_AMOUNT_REMAINING
5629 -- ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
5630 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),NVL(b.tl_chrg_alloc_acctd_amt,0))
5631 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_ed_chrg_alloc_acctd_amt,0),NVL(b.tl_ed_chrg_alloc_acctd_amt,0))
5632 -- + DECODE(p_pay_adj,'ADJ',NVL(b.tl_uned_chrg_alloc_acctd_amt,0),NVL(b.tl_uned_chrg_alloc_acctd_amt,0))
5633 -- -- CHRG_ACCTD_AMOUNT_REMAINING
5634 ,NVL(a.CHRG_AMOUNT_REMAINING,0)
5635 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_amt,0),
5636 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_amt,0),
5637 'CB' ,NVL(b.tl_chrg_alloc_amt,0),0))
5638 -- CHRG_AMOUNT_REMAINING
5639 ,NVL(a.CHRG_ACCTD_AMOUNT_REMAINING,0)
5640 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_chrg_alloc_acctd_amt,0),
5641 DECODE(b.line_type,'LINE',NVL(b.tl_chrg_alloc_acctd_amt,0),
5642 'CB' ,NVL(b.tl_chrg_alloc_acctd_amt,0),0))
5643 -- CHRG_ACCTD_AMOUNT_REMAINING
5644 --}
5645 ,NVL(a.FRT_ADJ_REMAINING,0)
5646 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_amt,0),
5647 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_amt,0),
5648 'CB' ,NVL(b.tl_frt_alloc_amt,0),0))
5649 -- FRT_ADJ_REMAINING
5650 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_amt,0),
5651 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_amt,0),0))
5652 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_amt,0),
5653 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_amt,0),0))
5654 ,NVL(a.FRT_ADJ_ACCTD_REMAINING,0)
5655 + DECODE(p_pay_adj,'ADJ',NVL(b.tl_frt_alloc_acctd_amt,0),
5656 DECODE(b.line_type,'LINE',NVL(b.tl_frt_alloc_acctd_amt,0),
5657 'CB' ,NVL(b.tl_frt_alloc_acctd_amt,0),0))
5658 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0),
5659 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_ed_frt_alloc_acctd_amt,0)))
5660 -- + DECODE(p_pay_adj,'ADJ',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0),
5661 -- DECODE(b.line_type,'LINE',-1*NVL(b.tl_uned_frt_alloc_acctd_amt,0)))
5662 -- FRT_ADJ_ACCTD_REMAINING
5663 ,NVL(a.frt_ed_amount,0)
5664 + DECODE(p_pay_adj,'ADJ',0,
5665 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_amt,0),
5666 'CB' ,NVL(b.tl_ed_frt_alloc_amt,0), 0))
5667 ,NVL(a.frt_ed_acctd_amount,0)
5668 + DECODE(p_pay_adj,'ADJ',0,
5669 DECODE(b.line_type,'LINE',NVL(b.tl_ed_frt_alloc_acctd_amt,0),
5670 'CB' ,NVL(b.tl_ed_frt_alloc_acctd_amt,0),0))
5671 ,NVL(a.frt_uned_amount,0)
5672 + DECODE(p_pay_adj,'ADJ',0,
5673 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_amt,0),
5674 'CB' ,NVL(b.tl_uned_frt_alloc_amt,0),0))
5675 ,NVL(a.frt_uned_acctd_amount,0)
5676 + DECODE(p_pay_adj,'ADJ',0,
5677 DECODE(b.line_type,'LINE',NVL(b.tl_uned_frt_alloc_acctd_amt,0),
5678 'CB' ,NVL(b.tl_uned_frt_alloc_acctd_amt,0),0))
5679 FROM RA_AR_GT b
5680 WHERE b.gt_id = p_gt_id
5681 -- AND b.se_gt_id = g_se_gt_id
5682 AND a.customer_trx_id = b.ref_customer_trx_id
5683 AND a.customer_trx_line_id = b.ref_customer_trx_line_id
5684 -- AND a.group_id = b.group_id
5685 --{HYUBPAGP
5686 AND NVL(a.source_data_key1,'00') = b.source_data_key1
5687 AND NVL(a.source_data_key2,'00') = b.source_data_key2
5688 AND NVL(a.source_data_key3,'00') = b.source_data_key3
5689 AND NVL(a.source_data_key4,'00') = b.source_data_key4
5690 AND NVL(a.source_data_key5,'00') = b.source_data_key5
5691 --}
5692 --Bug#3611016
5693 AND (b.sob_type = 'P' OR b.sob_type IS NULL)
5694 AND b.set_of_books_id = a.set_of_books_id
5695 AND b.gp_level = 'L')
5696 WHERE a.customer_trx_id = p_customer_trx_id
5697 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
5698 -- AND DECODE( p_customer_trx_line_id, NULL, -99, p_customer_trx_line_id)
5699 -- = DECODE(p_customer_trx_line_id, NULL, -99,
5700 -- DECODE(p_log_inv_line, 'N', a.customer_trx_line_id,
5701 -- DECODE(a.line_type,'LINE', a.customer_trx_line_id,
5702 -- 'CB' , a.customer_trx_line_id,
5703 -- a.LINK_TO_CUST_TRX_LINE_ID)))
5704 -- AND DECODE( p_group_id, NULL, '-99', p_group_id)
5705 -- = DECODE(p_group_id, NULL, '-99', a.group_id)
5706 --{HYUBPAGP
5707 AND DECODE( p_source_data_key1, NULL, '-99', p_source_data_key1)
5708 = DECODE(p_source_data_key1, NULL, '-99', a.source_data_key1)
5709 AND DECODE( p_source_data_key2, NULL, '-99', p_source_data_key2)
5710 = DECODE(p_source_data_key2, NULL, '-99', a.source_data_key2)
5711 AND DECODE( p_source_data_key3, NULL, '-99', p_source_data_key3)
5712 = DECODE(p_source_data_key3, NULL, '-99', a.source_data_key3)
5713 AND DECODE( p_source_data_key4, NULL, '-99', p_source_data_key4)
5714 = DECODE(p_source_data_key4, NULL, '-99', a.source_data_key4)
5715 AND DECODE( p_source_data_key5, NULL, '-99', p_source_data_key5)
5716 = DECODE(p_source_data_key5, NULL, '-99', a.source_data_key5)
5717 --}
5718 AND a.line_type IN ('LINE','FREIGHT','TAX','CB','CHARGES');
5719 END IF; -- End of p_customer_trx_line_id check
5720
5721 IF PG_DEBUG = 'Y' THEN
5722 localdebug('arp_det_dist_pkg.update_ctl_rem_orig()-');
5723 END IF;
5724 EXCEPTION
5725 WHEN OTHERS THEN
5726 IF PG_DEBUG = 'Y' THEN
5727 localdebug('update_ctl_rem_orig EXCEPTION OTHERS :'||SQLERRM);
5728 END IF;
5729 END update_ctl_rem_orig;
5730
5731
5732
5733 PROCEDURE get_inv_dist
5734 (p_pay_adj IN VARCHAR2,
5735 p_customer_trx_id IN NUMBER,
5736 p_gt_id IN VARCHAR2,
5737 p_adj_rec IN ar_adjustments%ROWTYPE,
5738 p_app_rec IN ar_receivable_applications%ROWTYPE,
5739 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
5740 IS
5741
5742 l_rows NUMBER;
5743 BEGIN
5744 IF PG_DEBUG = 'Y' THEN
5745 localdebug('arp_det_dist_pkg.get_inv_dist()+');
5746 localdebug(' p_ae_sys_rec.set_of_books_id :'||p_ae_sys_rec.set_of_books_id);
5747 localdebug(' p_ae_sys_rec.sob_type :'||p_ae_sys_rec.sob_type);
5748 END IF;
5749
5750 INSERT INTO RA_AR_GT
5751 ( GT_ID ,
5752 AMT ,
5753 ACCTD_AMT ,
5754 ACCOUNT_CLASS ,
5755 CCID_SECONDARY ,
5756 REF_CUST_TRX_LINE_GL_DIST_ID,
5757 REF_CUSTOMER_TRX_LINE_ID ,
5758 REF_CUSTOMER_TRX_ID ,
5759 TO_CURRENCY ,
5760 BASE_CURRENCY ,
5761 -- ADJ and APP Elmt
5762 DIST_AMT, --HYUD LINE
5763 DIST_ACCTD_AMT, --HYUD LINE
5764 DIST_CHRG_AMT, --HYUD CHRG
5765 DIST_CHRG_ACCTD_AMT, --HYUD CHRG
5766 DIST_FRT_AMT, --HYUD FRT
5767 DIST_FRT_ACCTD_AMT, --HYUD FRT
5768 DIST_TAX_AMT, --HYUD TAX
5769 DIST_TAX_ACCTD_AMT, --HYUD TAX
5770 -- Buc
5771 tl_alloc_amt ,
5772 tl_alloc_acctd_amt ,
5773 tl_chrg_alloc_amt ,
5774 tl_chrg_alloc_acctd_amt,
5775 tl_frt_alloc_amt ,
5776 tl_frt_alloc_acctd_amt,
5777 tl_tax_alloc_amt ,
5778 tl_tax_alloc_acctd_amt,
5779 -- ED Elmt
5780 DIST_ed_AMT,
5781 DIST_ed_ACCTD_AMT,
5782 DIST_ed_chrg_AMT,
5783 DIST_ed_chrg_ACCTD_AMT,
5784 DIST_ed_frt_AMT ,
5785 DIST_ed_frt_ACCTD_AMT,
5786 DIST_ed_tax_AMT ,
5787 DIST_ed_tax_ACCTD_AMT,
5788 --
5789 tl_ed_alloc_amt ,
5790 tl_ed_alloc_acctd_amt ,
5791 tl_ed_chrg_alloc_amt ,
5792 tl_ed_chrg_alloc_acctd_amt,
5793 tl_ed_frt_alloc_amt ,
5794 tl_ed_frt_alloc_acctd_amt,
5795 tl_ed_tax_alloc_amt ,
5796 tl_ed_tax_alloc_acctd_amt,
5797 --
5798 -- UNED
5799 DIST_uned_AMT ,
5800 DIST_uned_ACCTD_AMT ,
5801 DIST_uned_chrg_AMT,
5802 DIST_uned_chrg_ACCTD_AMT,
5803 DIST_uned_frt_AMT ,
5804 DIST_uned_frt_ACCTD_AMT,
5805 DIST_uned_tax_AMT ,
5806 DIST_uned_tax_ACCTD_AMT,
5807 --
5808 tl_uned_alloc_amt ,
5809 tl_uned_alloc_acctd_amt ,
5810 tl_uned_chrg_alloc_amt ,
5811 tl_uned_chrg_alloc_acctd_amt,
5812 tl_uned_frt_alloc_amt ,
5813 tl_uned_frt_alloc_acctd_amt,
5814 tl_uned_tax_alloc_amt ,
5815 tl_uned_tax_alloc_acctd_amt,
5816 --
5817 source_type ,
5818 source_table ,
5819 source_id ,
5820 line_type,
5821 --
5822 group_id,
5823 source_data_key1 ,
5824 source_data_key2 ,
5825 source_data_key3 ,
5826 source_data_key4 ,
5827 source_data_key5 ,
5828 gp_level,
5829 --
5830 set_of_books_id,
5831 sob_type,
5832 tax_link_id,
5833 tax_inc_flag
5834 )
5835 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)*/
5836 p_gt_id,
5837 ctlgd.amount,
5838 ctlgd.acctd_amount,
5839 ctlgd.account_class,
5840 -- The ccid_secondary is used to populate ar_line_apps_det.ccid
5841 -- which in turn served as ref_dist_ccid for cash basis accounting
5842 -- therefor only used at payment, hence should hit the collected ccid
5843 DECODE(ctlgd.account_class,'TAX',
5844 DECODE(ctlgd.collected_tax_ccid,NULL,
5845 ctlgd.code_combination_id,
5846 ctlgd.collected_tax_ccid),
5847 ctlgd.code_combination_id),
5848 ctlgd.cust_trx_line_gl_dist_id,
5849 ctlgd.customer_trx_line_id,
5850 ctlgd.customer_trx_id,
5851 rar.to_currency,
5852 rar.base_currency,
5853 -- ADJ and APP
5854 DECODE(rar.line_type,'LINE',ctlgd.amount,
5855 'CB' ,ctlgd.amount,0), --For Line DIST_AMT
5856 DECODE(rar.line_type,'LINE',ctlgd.acctd_amount,
5857 'CB' ,ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
5858 DECODE(p_pay_adj,'APP',
5859 DECODE(rar.line_type,'CHARGES',ctlgd.amount,0),
5860 DECODE(rar.line_type,'LINE',ctlgd.amount,
5861 'CB' ,ctlgd.amount,0)), --For Chrg DIST_CHRG_AMT
5862 DECODE(p_pay_adj,'APP',
5863 DECODE(rar.line_type,'CHARGES',ctlgd.amount,0),
5864 DECODE(rar.line_type,'LINE',ctlgd.acctd_amount,
5865 'CB' ,ctlgd.acctd_amount,0)),-- DIST_CHRG_ACCTD_AMT
5866 DECODE(p_pay_adj,'APP',
5867 DECODE(rar.line_type,'FREIGHT',ctlgd.amount,0),
5868 DECODE(rar.line_type,'LINE',ctlgd.amount,
5869 'CB' ,ctlgd.amount,0)),--For Frt DIST_FRT_AMT
5870 DECODE(p_pay_adj,'APP',
5871 DECODE(rar.line_type,'FREIGHT',ctlgd.amount,0),
5872 DECODE(rar.line_type,'LINE',ctlgd.acctd_amount,
5873 'CB' ,ctlgd.acctd_amount,0)),-- DIST_FRT_AMT
5874 DECODE(rar.line_type,'TAX',ctlgd.amount,0), --For Tax DIST_AMT
5875 DECODE(rar.line_type,'TAX',ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
5876 --
5877 tl_alloc_amt ,
5878 tl_alloc_acctd_amt ,
5879 tl_chrg_alloc_amt ,
5880 tl_chrg_alloc_acctd_amt,
5881 tl_frt_alloc_amt,
5882 tl_frt_alloc_acctd_amt,
5883 tl_tax_alloc_amt ,
5884 tl_tax_alloc_acctd_amt,
5885 --
5886 -- ED
5887 DECODE(rar.line_type,'LINE',ctlgd.amount,
5888 'CB' ,ctlgd.amount,0), --For Line DIST_AMT
5889 DECODE(rar.line_type,'LINE',ctlgd.acctd_amount,
5890 'CB' ,ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
5891 DECODE(p_pay_adj,'APP',
5892 DECODE(rar.line_type,'CHARGES',ctlgd.amount,0),
5893 0), --For Chrg DIST_CHRG_AMT
5894 DECODE(p_pay_adj,'APP',
5895 DECODE(rar.line_type,'CHARGES',ctlgd.acctd_amount,0),
5896 0), -- DIST_CHRG_ACCTD_AMT
5897 DECODE(p_pay_adj,'APP',
5898 DECODE(rar.line_type,'FREIGHT',ctlgd.amount,0),
5899 0), --For Frt DIST_FRT_AMT
5900 DECODE(p_pay_adj,'APP',
5901 DECODE(rar.line_type,'FREIGHT',ctlgd.acctd_amount,0),
5902 0), -- DIST_FRT_ACCTD_AMT
5903
5904 DECODE(rar.line_type,'TAX',ctlgd.amount,0), --For Tax DIST_AMT
5905 DECODE(rar.line_type,'TAX',ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
5906 tl_ed_alloc_amt ,
5907 tl_ed_alloc_acctd_amt ,
5908 tl_ed_chrg_alloc_amt ,
5909 tl_ed_chrg_alloc_acctd_amt,
5910
5911 tl_ed_frt_alloc_amt ,
5912 tl_ed_frt_alloc_acctd_amt,
5913 tl_ed_tax_alloc_amt ,
5914 tl_ed_tax_alloc_acctd_amt,
5915 --
5916 -- UNED
5917 DECODE(rar.line_type,'LINE',ctlgd.amount,
5918 'CB' ,ctlgd.amount,0), --For Line DIST_AMT
5919 DECODE(rar.line_type,'LINE',ctlgd.acctd_amount,
5920 'CB' ,ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
5921
5922 DECODE(p_pay_adj,'APP',
5923 DECODE(rar.line_type,'CHARGES',ctlgd.amount,0),
5924 0), --For Charges DIST_CHRG_AMT
5925 DECODE(p_pay_adj,'APP',
5926 DECODE(rar.line_type,'CHARGES',ctlgd.acctd_amount,0),
5927 0), -- DIST_CHRG_ACCTD_AMT
5928 --{ Uned Frt Element
5929 DECODE(p_pay_adj,'APP',
5930 DECODE(rar.line_type,'FREIGHT',ctlgd.amount,0),
5931 0), --For Frt DIST_FRT_AMT
5932 DECODE(p_pay_adj,'APP',
5933 DECODE(rar.line_type,'FREIGHT',ctlgd.acctd_amount,0),
5934 0), -- DIST_FRT_ACCTD_AMT
5935 --}
5936 DECODE(rar.line_type,'TAX',ctlgd.amount,0), --For Tax DIST_AMT
5937 DECODE(rar.line_type,'TAX',ctlgd.acctd_amount,0), -- DIST_ACCTD_AMT
5938 -- Buc
5939 tl_uned_alloc_amt ,
5940 tl_uned_alloc_acctd_amt ,
5941 tl_uned_chrg_alloc_amt ,
5942 tl_uned_chrg_alloc_acctd_amt,
5943 tl_uned_frt_alloc_amt ,
5944 tl_uned_frt_alloc_acctd_amt,
5945 tl_uned_tax_alloc_amt ,
5946 tl_uned_tax_alloc_acctd_amt,
5947 DECODE(p_pay_adj,'ADJ',p_adj_rec.TYPE,p_app_rec.APPLICATION_TYPE),
5948 DECODE(p_pay_adj,'ADJ','ADJ','RA'),
5949 DECODE(p_pay_adj,'ADJ',p_adj_rec.adjustment_id, p_app_rec.receivable_application_id),
5950 rar.line_type,
5951 --
5952 rar.group_id,
5953 rar.source_data_key1 ,
5954 rar.source_data_key2 ,
5955 rar.source_data_key3 ,
5956 rar.source_data_key4 ,
5957 rar.source_data_key5 ,
5958 'D',
5959 --BUG#3611016
5960 p_ae_sys_rec.set_of_books_id,
5961 p_ae_sys_rec.sob_type,
5962 rar.tax_link_id,
5963 rar.tax_inc_flag
5964 FROM ra_ar_gt rar,
5965 ra_cust_trx_line_gl_dist ctlgd
5966 WHERE rar.gt_id = p_gt_id
5967 AND rar.ref_customer_trx_id = p_customer_trx_id
5968 AND rar.gp_level = 'L'
5969 AND rar.ref_customer_trx_id = ctlgd.customer_trx_id
5970 AND rar.ref_customer_trx_line_id = ctlgd.customer_trx_line_id(+)
5971 --{HYU revrec adj api restriction
5972 AND ctlgd.account_set_flag = 'N';
5973 --{HYUTREATUNEARNUNBILLED
5974 -- AND ctlgd.account_class NOT IN ('UNEARN','UNBILL');
5975
5976 l_rows := sql%rowcount;
5977 IF PG_DEBUG = 'Y' THEN
5978 localdebug(' rows inserted = ' || l_rows);
5979 localdebug(' -->Distributions gotten from transaction ');
5980 END IF;
5981
5982
5983 /* Commented this portion of de code out for no adjustment will use LLCA in 11i,
5984 and unification of cash basis and accrual basis accounting is not required in 11i
5985 the is portion of the code is necessary in 11iX for unification of cash basis and accrual
5986 Without commenting out this piece of code the mechanism will not break
5987 because not adjustment will be created with detail distributions in 11i
5988 For performance reason, we might need to comment out this piece in 11i
5989 */
5990
5991 IF p_pay_adj <> 'ADJ' THEN
5992
5993 -- Need to insert adjustment distributions for cash basis representation
5994 -- Use for R12 and R12_11IMFAR, but not for R12_11ICASH (online_lazy_upg)
5995 -- As online_lazy_upg never goes here no need to add a if condition, add it for safety
5996
5997 IF PG_DEBUG = 'Y' THEN
5998 localdebug('Get_inv_dist: Insert Adjustoment distributions');
5999 localdebug(' g_mode_process:'||g_mode_process);
6000 END IF;
6001
6002 IF g_mode_process <> 'R12_11ICASH' THEN
6003
6004 IF PG_DEBUG = 'Y' THEN
6005 localdebug(' Normal R12 distributions');
6006 END IF;
6007
6008 -- Adj Distribution R12
6009 INSERT INTO RA_AR_GT
6010 ( GT_ID ,
6011 AMT ,
6012 ACCTD_AMT ,
6013 ACCOUNT_CLASS ,
6014 CCID_SECONDARY ,
6015 REF_CUST_TRX_LINE_GL_DIST_ID,
6016 REF_CUSTOMER_TRX_LINE_ID ,
6017 REF_CUSTOMER_TRX_ID ,
6018 TO_CURRENCY ,
6019 BASE_CURRENCY ,
6020 -- ADJ and APP Elmt
6021 DIST_AMT, --HYUD LINE
6022 DIST_ACCTD_AMT, --HYUD LINE
6023 DIST_CHRG_AMT, --HYUD CHRG
6024 DIST_CHRG_ACCTD_AMT, --HYUD CHRG
6025 DIST_FRT_AMT, --HYUD FRT
6026 DIST_FRT_ACCTD_AMT, --HYUD FRT
6027 DIST_TAX_AMT, --HYUD TAX
6028 DIST_TAX_ACCTD_AMT, --HYUD TAX
6029 --
6030 tl_alloc_amt ,
6031 tl_alloc_acctd_amt ,
6032 tl_chrg_alloc_amt ,
6033 tl_chrg_alloc_acctd_amt,
6034 tl_frt_alloc_amt ,
6035 tl_frt_alloc_acctd_amt,
6036 tl_tax_alloc_amt ,
6037 tl_tax_alloc_acctd_amt,
6038 -- ED Elmt
6039 DIST_ed_AMT,
6040 DIST_ed_ACCTD_AMT,
6041 DIST_ed_chrg_AMT,
6042 DIST_ed_chrg_ACCTD_AMT,
6043 DIST_ed_frt_AMT ,
6044 DIST_ed_frt_ACCTD_AMT,
6045 DIST_ed_tax_AMT ,
6046 DIST_ed_tax_ACCTD_AMT,
6047 --
6048 tl_ed_alloc_amt ,
6049 tl_ed_alloc_acctd_amt ,
6050 tl_ed_chrg_alloc_amt ,
6051 tl_ed_chrg_alloc_acctd_amt,
6052 tl_ed_frt_alloc_amt ,
6053 tl_ed_frt_alloc_acctd_amt,
6054 tl_ed_tax_alloc_amt ,
6055 tl_ed_tax_alloc_acctd_amt,
6056 --
6057 -- UNED
6058 DIST_uned_AMT ,
6059 DIST_uned_ACCTD_AMT ,
6060 DIST_uned_chrg_AMT,
6061 DIST_uned_chrg_ACCTD_AMT,
6062 DIST_uned_frt_AMT ,
6063 DIST_uned_frt_ACCTD_AMT,
6064 DIST_uned_tax_AMT ,
6065 DIST_uned_tax_ACCTD_AMT,
6066 --
6067 tl_uned_alloc_amt ,
6068 tl_uned_alloc_acctd_amt ,
6069 tl_uned_chrg_alloc_amt ,
6070 tl_uned_chrg_alloc_acctd_amt,
6071 tl_uned_frt_alloc_amt ,
6072 tl_uned_frt_alloc_acctd_amt,
6073 tl_uned_tax_alloc_amt ,
6074 tl_uned_tax_alloc_acctd_amt,
6075 --
6076 source_type ,
6077 source_table ,
6078 source_id ,
6079 ref_line_id ,
6080 line_type ,
6081 --
6082 group_id,
6083 source_data_key1 ,
6084 source_data_key2 ,
6085 source_data_key3 ,
6086 source_data_key4 ,
6087 source_data_key5 ,
6088 gp_level,
6089 --
6090 set_of_books_id,
6091 sob_type,
6092 tax_link_id,
6093 tax_inc_flag
6094 )
6095 SELECT /*+INDEX (rar ra_ar_n1)*/
6096 p_gt_id, --gt_id
6097 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0), --amt
6098 --HYU A negative adj distrib increase the inv rec therefore the rem on trx line
6099 -- For ARPDDB and ARALLOCB integration detail distribution from ARPDDB needs
6100 -- to be created in the same sign of the parent adjustment <=>
6101 -- ADJ -100 will create a set of det_dist for the Write-off account with a total
6102 -- of -100 ending decrease the line balance, no need to multply by -1 removing it
6103 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0), --acctd_amt Rem * -1
6104 rrc.ref_account_class, --account_class
6105 rrc.code_combination_id, --ccid_secondary
6106
6107 NVL(rrc.ref_cust_trx_line_gl_dist_id,
6108 DECODE(rrc.ref_account_class,'REV',
6109 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, --Boundary line : -6
6110 'ADJ_FRT' ,-9, --Boundary frt : -9 frt adjustment over Rev line
6111 -7), --Boundary charge:-7
6112 'UNEARN',
6113 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, --Boundary line : -6
6114 'ADJ_FRT' ,-9, --Boundary frt : -9 frt adjustment over Rev line
6115 -7), --Boundary charge:-7
6116 'UNBILL',
6117 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, --Boundary line : -6
6118 'ADJ_FRT' ,-9, --Boundary frt : -9 frt adjustment over Rev line
6119 -7), --Boundary charge:-7
6120
6121 'TAX', -8, -- Boundary tax
6122 'FREIGHT',-9)), -- Boundary freight : This should not happens as not adjustment
6123 -- will be tied to freight line
6124 NVL(rrc.ref_customer_trx_line_id,
6125 DECODE(rrc.ref_account_class,'REV',
6126 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, -- Boundary line:-6
6127 'ADJ_FRT' ,-9, -- Boundary freight:-6
6128 -7), -- Boundary charge:-7
6129 'UNEARN',
6130 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, -- Boundary line:-6
6131 'ADJ_FRT' ,-9, -- Boundary freight:-6
6132 -7), -- Boundary charge:-7
6133 'UNBILL',
6134 DECODE(rrc.activity_bucket,'ADJ_LINE' ,-6, -- Boundary line:-6
6135 'ADJ_FRT' ,-9, -- Boundary freight:-6
6136 -7), -- Boundary charge:-7
6137 'TAX', -8, -- Boundary tax
6138 'FREIGHT',-9)), -- Boundary freight : This should not happens as not adjustment
6139 -- will be tied to freight line
6140 rar.ref_customer_trx_id,
6141 rar.to_currency,
6142 rar.base_currency,
6143 -- ADJ and APP -- HYU "A reprendre ici"
6144 DECODE(rrc.ref_account_class,'REV',
6145 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
6146 'ADJ_CHRG',0,
6147 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6148 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6149 + rar.DUE_ORIG_AMT = 0 THEN
6150 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
6151 'UNEARN',
6152 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
6153 'ADJ_CHRG',0,
6154 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6155 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6156 + rar.DUE_ORIG_AMT = 0 THEN
6157 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
6158 'UNBILL',
6159 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
6160 'ADJ_CHRG',0,
6161 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6162 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6163 + rar.DUE_ORIG_AMT = 0 THEN
6164 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
6165 0), -- DIST_AMT
6166 DECODE(rrc.ref_account_class,'REV',
6167 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
6168 'ADJ_CHRG',0,
6169 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6170 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6171 + rar.DUE_ORIG_ACCTD_AMT = 0 THEN
6172 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
6173 'UNEARN',
6174 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
6175 'ADJ_CHRG',0,
6176 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6177 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6178 + rar.DUE_ORIG_ACCTD_AMT = 0 THEN
6179 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
6180 'UNBILL',
6181 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
6182 'ADJ_CHRG',0,
6183 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6184 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6185 + rar.DUE_ORIG_ACCTD_AMT = 0 THEN
6186 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
6187 0), -- DIST_ACCTD_AMT
6188 DECODE(rrc.ref_account_class,'REV',
6189 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6190 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6191 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6192 + rar.CHRG_ORIG_AMT = 0 THEN
6193 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6194 0 ),
6195 'UNEARN',
6196 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6197 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6198 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6199 + rar.CHRG_ORIG_AMT = 0 THEN
6200 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6201 0 ),
6202 'UNBILL',
6203 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6204 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6205 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6206 + rar.CHRG_ORIG_AMT = 0 THEN
6207 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6208 0 ),
6209 0), -- DIST_CHRG_AMT
6210 DECODE(rrc.ref_account_class,'REV',
6211 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6212 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6213 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6214 + rar.CHRG_ORIG_ACCTD_AMT = 0 THEN
6215 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6216 0 ),
6217 'UNEARN',
6218 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6219 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6220 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6221 + rar.CHRG_ORIG_ACCTD_AMT = 0 THEN
6222 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6223 0 ),
6224 'UNBILL',
6225 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6226 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6227 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6228 + rar.CHRG_ORIG_ACCTD_AMT = 0 THEN
6229 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6230 0 ),
6231 0), -- DIST_CHRG_ACCTD_AMT
6232 DECODE(rrc.ref_account_class,'REV',
6233 DECODE(rrc.activity_bucket,'ADJ_FRT',
6234 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6235 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6236 + rar.FRT_ORIG_AMT = 0 THEN
6237 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6238 0 ),
6239 'UNEARN',
6240 DECODE(rrc.activity_bucket,'ADJ_FRT',
6241 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6242 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6243 + rar.FRT_ORIG_AMT = 0 THEN
6244 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6245 0 ),
6246 DECODE(rrc.activity_bucket,'ADJ_FRT',
6247 'UNBILL',
6248 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6249 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6250 + rar.FRT_ORIG_AMT = 0 THEN
6251 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6252 0 ),
6253 0), -- DIST_FRT_AMT
6254 DECODE(rrc.ref_account_class,'REV',
6255 DECODE(rrc.activity_bucket,'ADJ_FRT',
6256 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6257 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6258 + rar.FRT_ORIG_ACCTD_AMT = 0 THEN
6259 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6260 0 ),
6261 'UNEARN',
6262 DECODE(rrc.activity_bucket,'ADJ_FRT',
6263 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6264 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6265 + rar.FRT_ORIG_ACCTD_AMT = 0 THEN
6266 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6267 0 ),
6268 'UNBILL',
6269 DECODE(rrc.activity_bucket,'ADJ_FRT',
6270 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6271 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6272 + rar.FRT_ORIG_ACCTD_AMT = 0 THEN
6273 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6274 0 ),
6275 0), -- DIST_FRT_ACCTD_AMT
6276 DECODE(rrc.ref_account_class,'TAX',
6277 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6278 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6279 + rar.TAX_ORIG_AMT = 0 THEN
6280 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,0), -- DIST_TAX_AMT
6281 DECODE(rrc.ref_account_class,'TAX',
6282 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6283 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6284 + rar.TAX_ORIG_ACCTD_AMT = 0 THEN
6285 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,0), -- DIST_TAX_ACCTD_AMT
6286 --
6287 rar.tl_alloc_amt ,
6288 rar.tl_alloc_acctd_amt ,
6289 rar.tl_chrg_alloc_amt ,
6290 rar.tl_chrg_alloc_acctd_amt,
6291 rar.tl_frt_alloc_amt ,
6292 rar.tl_frt_alloc_acctd_amt ,
6293 rar.tl_tax_alloc_amt ,
6294 rar.tl_tax_alloc_acctd_amt ,
6295 -- Elemt Rev
6296 DECODE(rrc.ref_account_class,'REV',
6297 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
6298 'ADJ_CHRG',0,
6299 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6300 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6301 + rar.DUE_ORIG_AMT = 0 THEN
6302 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
6303 'UNEARN',
6304 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
6305 'ADJ_CHRG',0,
6306 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6307 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6308 + rar.DUE_ORIG_AMT = 0 THEN
6309 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
6310 'UNBILL',
6311 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
6312 'ADJ_CHRG',0,
6313 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6314 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6315 + rar.DUE_ORIG_AMT = 0 THEN
6316 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
6317 0) , -- DIST_ED_AMT Rem * -1
6318 DECODE(rrc.ref_account_class,'REV',
6319 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
6320 'ADJ_CHRG',0,
6321 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6322 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6323 + rar.DUE_ORIG_ACCTD_AMT = 0 THEN
6324 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
6325 'UNEARN',
6326 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
6327 'ADJ_CHRG',0,
6328 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6329 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6330 + rar.DUE_ORIG_ACCTD_AMT = 0 THEN
6331 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
6332 'UNBILL',
6333 DECODE(rrc.activity_bucket,'ADJ_FRT' ,0,
6334 'ADJ_CHRG',0,
6335 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6336 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6337 + rar.DUE_ORIG_ACCTD_AMT = 0 THEN
6338 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
6339
6340 0), -- DIST_ED_ACCTD_AMT Rem * -1
6341 -- Elemt Chrg
6342 DECODE(rrc.ref_account_class,'REV',
6343 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6344 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6345 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6346 + rar.CHRG_ORIG_AMT = 0 THEN
6347 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6348 0 ),
6349 'UNEARN',
6350 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6351 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6352 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6353 + rar.CHRG_ORIG_AMT = 0 THEN
6354 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6355 0 ),
6356 'UNBILL',
6357 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6358 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6359 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6360 + rar.CHRG_ORIG_AMT = 0 THEN
6361 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6362 0 ),
6363 0), -- DIST_ED_CHRG_AMT Rem * -1
6364 DECODE(rrc.ref_account_class,'REV',
6365 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6366 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6367 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6368 + rar.CHRG_ORIG_ACCTD_AMT = 0 THEN
6369 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6370 0 ),
6371 'UNEARN',
6372 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6373 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6374 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6375 + rar.CHRG_ORIG_ACCTD_AMT = 0 THEN
6376 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6377 0 ),
6378 'UNBILL',
6379 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6380 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6381 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6382 + rar.CHRG_ORIG_ACCTD_AMT = 0 THEN
6383 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6384 0 ),
6385 0), -- DIST_ED_CHRG_ACCTD_AMT Rem * -1
6386 -- Elemt Frt
6387 DECODE(rrc.ref_account_class,'REV',
6388 DECODE(rrc.activity_bucket,'ADJ_FRT',
6389 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6390 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6391 + rar.FRT_ORIG_AMT = 0 THEN
6392 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6393 0 ),
6394 'UNEARN',
6395 DECODE(rrc.activity_bucket,'ADJ_FRT',
6396 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6397 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6398 + rar.FRT_ORIG_AMT = 0 THEN
6399 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6400 0 ),
6401 'UNBILL',
6402 DECODE(rrc.activity_bucket,'ADJ_FRT',
6403 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6404 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6405 + rar.FRT_ORIG_AMT = 0 THEN
6406 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6407 0 ),
6408 0), -- DIST_ED_FRT_AMT Rem * -1
6409 DECODE(rrc.ref_account_class,'REV',
6410 DECODE(rrc.activity_bucket,'ADJ_FRT',
6411 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6412 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6413 + rar.FRT_ORIG_ACCTD_AMT = 0 THEN
6414 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6415 0 ),
6416 'UNEARN',
6417 DECODE(rrc.activity_bucket,'ADJ_FRT',
6418 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6419 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6420 + rar.FRT_ORIG_ACCTD_AMT = 0 THEN
6421 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6422 0 ),
6423 'UNBILL',
6424 DECODE(rrc.activity_bucket,'ADJ_FRT',
6425 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6426 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6427 + rar.FRT_ORIG_ACCTD_AMT = 0 THEN
6428 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6429 0 ),
6430 0), -- DIST_ED_FRT_ACCTD_AMT Rem * -1
6431 -- Elemt Tax
6432 DECODE(rrc.ref_account_class,'TAX',
6433 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6434 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6435 + rar.TAX_ORIG_AMT = 0 THEN
6436 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,0), -- DIST_ED_TAX_AMT Rem * -1
6437 DECODE(rrc.ref_account_class,'TAX',
6438 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6439 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6440 + rar.TAX_ORIG_ACCTD_AMT = 0 THEN
6441 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,0), -- DIST_ED_TAX_ACCTD_AMT Rem * -1
6442 --Bucket
6443 -- Buc Rev
6444 rar.tl_ed_alloc_amt ,
6445 rar.tl_ed_alloc_acctd_amt ,
6446 --Buc Chrg
6447 rar.tl_ed_chrg_alloc_amt ,
6448 rar.tl_ed_chrg_alloc_acctd_amt,
6449 --Buc Frt
6450 rar.tl_ed_frt_alloc_amt ,
6451 rar.tl_ed_frt_alloc_acctd_amt ,
6452 --Buc Tax
6453 rar.tl_ed_tax_alloc_amt ,
6454 rar.tl_ed_tax_alloc_acctd_amt ,
6455 --
6456 -- UNED
6457 -- Rev Elemt
6458 DECODE(rrc.ref_account_class,'REV',
6459 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
6460 'ADJ_CHRG',0,
6461 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6462 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6463 + rar.DUE_ORIG_AMT = 0 THEN
6464 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
6465 'UNEARN',
6466 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
6467 'ADJ_CHRG',0,
6468 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6469 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6470 + rar.DUE_ORIG_AMT = 0 THEN
6471 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
6472 'UNBILL',
6473 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
6474 'ADJ_CHRG',0,
6475 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6476 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6477 + rar.DUE_ORIG_AMT = 0 THEN
6478 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END),
6479 0), -- DIST_UNED_AMT Rem * -1
6480 DECODE(rrc.ref_account_class,'REV',
6481 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
6482 'ADJ_CHRG',0,
6483 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6484 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6485 + rar.DUE_ORIG_ACCTD_AMT = 0 THEN
6486 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
6487 'UNEARN',
6488 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
6489 'ADJ_CHRG',0,
6490 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6491 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6492 + rar.DUE_ORIG_ACCTD_AMT = 0 THEN
6493 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
6494 'UNBILL',
6495 DECODE(rrc.activity_bucket,'ADJ_FRT',0,
6496 'ADJ_CHRG',0,
6497 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6498 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6499 + rar.DUE_ORIG_ACCTD_AMT = 0 THEN
6500 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END),
6501 0), -- DIST_UNED_ACCTD_AMT Rem * -1
6502 -- Chrg Elemt
6503 DECODE(rrc.ref_account_class,'REV',
6504 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6505 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6506 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6507 + rar.CHRG_ORIG_AMT = 0 THEN
6508 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6509 0 ),
6510 'UNEARN',
6511 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6512 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6513 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6514 + rar.CHRG_ORIG_AMT = 0 THEN
6515 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6516 0 ),
6517 'UNBILL',
6518 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6519 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6520 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6521 + rar.CHRG_ORIG_AMT = 0 THEN
6522 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6523 0 ),
6524 0), -- DIST_UNED_CHRG_AMT Rem * -1
6525 DECODE(rrc.ref_account_class,'REV',
6526 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6527 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6528 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6529 + rar.CHRG_ORIG_ACCTD_AMT = 0 THEN
6530 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6531 0 ),
6532 'UNEARN',
6533 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6534 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6535 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6536 + rar.CHRG_ORIG_ACCTD_AMT = 0 THEN
6537 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6538 0 ),
6539 'UNBILL',
6540 DECODE(rrc.activity_bucket,'ADJ_CHRG',
6541 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6542 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6543 + rar.CHRG_ORIG_ACCTD_AMT = 0 THEN
6544 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6545 0 ),
6546 0), -- DIST_UNED_CHRG_ACCTD_AMT Rem * -1
6547 -- Frt Elemt
6548 DECODE(rrc.ref_account_class,'REV',
6549 DECODE(rrc.activity_bucket,'ADJ_FRT',
6550 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6551 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6552 + rar.FRT_ORIG_AMT = 0 THEN
6553 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6554 0 ),
6555 'UNEARN',
6556 DECODE(rrc.activity_bucket,'ADJ_FRT',
6557 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6558 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6559 + rar.FRT_ORIG_AMT = 0 THEN
6560 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6561 0 ),
6562 'UNBILL',
6563 DECODE(rrc.activity_bucket,'ADJ_FRT',
6564 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6565 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6566 + rar.FRT_ORIG_AMT = 0 THEN
6567 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,
6568 0 ),
6569 0), -- DIST_UNED_FRT_AMT Rem * -1
6570 DECODE(rrc.ref_account_class,'REV',
6571 DECODE(rrc.activity_bucket,'ADJ_FRT',
6572 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6573 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6574 + rar.FRT_ORIG_ACCTD_AMT = 0 THEN
6575 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6576 0 ),
6577 'UNEARN',
6578 DECODE(rrc.activity_bucket,'ADJ_FRT',
6579 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6580 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6581 + rar.FRT_ORIG_ACCTD_AMT = 0 THEN
6582 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6583 0 ),
6584 'UNBILL',
6585 DECODE(rrc.activity_bucket,'ADJ_FRT',
6586 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6587 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6588 + rar.FRT_ORIG_ACCTD_AMT = 0 THEN
6589 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,
6590 0 ),
6591 0), -- DIST_UNED_FRT_ACCTD_AMT Rem * -1
6592 -- Tax Elemt
6593 DECODE(rrc.ref_account_class,'TAX',
6594 CASE WHEN SUM(NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0))
6595 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6596 + rar.TAX_ORIG_AMT = 0 THEN
6597 0 ELSE NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0) END,0), -- DIST_UNED_TAX_AMT Rem * -1
6598 DECODE(rrc.ref_account_class,'TAX',
6599 CASE WHEN SUM(NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0))
6600 OVER (PARTITION BY rar.ref_customer_trx_line_id)
6601 + rar.TAX_ORIG_ACCTD_AMT = 0 THEN
6602 0 ELSE NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0) END,0), -- DIST_UNED_TAX_ACCTD_AMT Rem * -1
6603 --Bucket
6604 -- Rev
6605 rar.tl_uned_alloc_amt ,
6606 rar.tl_uned_alloc_acctd_amt ,
6607 --Chrg
6608 rar.tl_uned_chrg_alloc_amt ,
6609 rar.tl_uned_chrg_alloc_acctd_amt,
6610 --Frt
6611 rar.tl_uned_frt_alloc_amt ,
6612 rar.tl_uned_frt_alloc_acctd_amt ,
6613 --Tax
6614 rar.tl_uned_tax_alloc_amt ,
6615 rar.tl_uned_tax_alloc_acctd_amt ,
6616 --
6617 p_app_rec.APPLICATION_TYPE,
6618 'RA',
6619 p_app_rec.receivable_application_id,
6620 rrc.line_id,
6621 rar.line_type,
6622 --
6623 rar.group_id,
6624 rar.source_data_key1 ,
6625 rar.source_data_key2 ,
6626 rar.source_data_key3 ,
6627 rar.source_data_key4 ,
6628 rar.source_data_key5 ,
6629 'D',
6630 --BUG#3611016
6631 p_ae_sys_rec.set_of_books_id,
6632 p_ae_sys_rec.sob_type,
6633 rrc.tax_link_id, -- tax_link_id
6634 DECODE(rrc.ref_account_class,'TAX','Y',
6635 --'REV',DECODE(NVL(adj.tax_adjusted,0),0, 'N','Y'),
6636 'REV','Y', -- BUG 7597090
6637 'N') -- tax_inc_flag
6638 FROM ra_ar_gt rar,
6639 ar_distributions rrc,
6640 ar_adjustments adj
6641 WHERE rar.gt_id = p_gt_id
6642 AND rar.ref_customer_trx_id = p_customer_trx_id
6643 AND rar.gp_level = 'L'
6644 AND adj.customer_trx_id = p_customer_trx_id
6645 AND rrc.source_table = 'ADJ'
6646 AND rrc.source_id = adj.adjustment_id
6647 AND rar.ref_customer_trx_line_id = rrc.ref_customer_trx_line_id
6648 AND rar.ref_cust_trx_line_gl_dist_id IS NULL
6649 AND (adj.upgrade_method = 'R12' OR adj.upgrade_method IS NULL);
6650 -- exclude the FREIGHT from REV line
6651 -- AND rrc.source_type <> 'FREIGHT'; /*FREIGHT adjustment is included in REV*/
6652
6653 l_rows := sql%rowcount;
6654 IF PG_DEBUG = 'Y' THEN
6655 localdebug(' rows inserted = ' || l_rows);
6656
6657 --{Boundary distributions
6658 localdebug(' Boundary R12 distributions');
6659 END IF;
6660
6661 INSERT INTO RA_AR_GT
6662 ( GT_ID ,
6663 AMT ,
6664 ACCTD_AMT ,
6665 ACCOUNT_CLASS ,
6666 CCID_SECONDARY ,
6667 REF_CUST_TRX_LINE_GL_DIST_ID,
6668 REF_CUSTOMER_TRX_LINE_ID ,
6669 REF_CUSTOMER_TRX_ID ,
6670 TO_CURRENCY ,
6671 BASE_CURRENCY ,
6672 -- ADJ and APP Elmt
6673 DIST_AMT, --HYUD LINE
6674 DIST_ACCTD_AMT, --HYUD LINE
6675 DIST_CHRG_AMT, --HYUD CHRG
6676 DIST_CHRG_ACCTD_AMT, --HYUD CHRG
6677 DIST_FRT_AMT, --HYUD FRT
6678 DIST_FRT_ACCTD_AMT, --HYUD FRT
6679 DIST_TAX_AMT, --HYUD TAX
6680 DIST_TAX_ACCTD_AMT, --HYUD TAX
6681 --
6682 tl_alloc_amt ,
6683 tl_alloc_acctd_amt ,
6684 tl_chrg_alloc_amt ,
6685 tl_chrg_alloc_acctd_amt,
6686 tl_frt_alloc_amt ,
6687 tl_frt_alloc_acctd_amt,
6688 tl_tax_alloc_amt ,
6689 tl_tax_alloc_acctd_amt,
6690 -- ED Elmt
6691 DIST_ed_AMT,
6692 DIST_ed_ACCTD_AMT,
6693 DIST_ed_chrg_AMT,
6694 DIST_ed_chrg_ACCTD_AMT,
6695 DIST_ed_frt_AMT ,
6696 DIST_ed_frt_ACCTD_AMT,
6697 DIST_ed_tax_AMT ,
6698 DIST_ed_tax_ACCTD_AMT,
6699 --
6700 tl_ed_alloc_amt ,
6701 tl_ed_alloc_acctd_amt ,
6702 tl_ed_chrg_alloc_amt ,
6703 tl_ed_chrg_alloc_acctd_amt,
6704 tl_ed_frt_alloc_amt ,
6705 tl_ed_frt_alloc_acctd_amt,
6706 tl_ed_tax_alloc_amt ,
6707 tl_ed_tax_alloc_acctd_amt,
6708 --
6709 -- UNED
6710 DIST_uned_AMT ,
6711 DIST_uned_ACCTD_AMT ,
6712 DIST_uned_chrg_AMT,
6713 DIST_uned_chrg_ACCTD_AMT,
6714 DIST_uned_frt_AMT ,
6715 DIST_uned_frt_ACCTD_AMT,
6716 DIST_uned_tax_AMT ,
6717 DIST_uned_tax_ACCTD_AMT,
6718 --
6719 tl_uned_alloc_amt ,
6720 tl_uned_alloc_acctd_amt ,
6721 tl_uned_chrg_alloc_amt ,
6722 tl_uned_chrg_alloc_acctd_amt,
6723 tl_uned_frt_alloc_amt ,
6724 tl_uned_frt_alloc_acctd_amt,
6725 tl_uned_tax_alloc_amt ,
6726 tl_uned_tax_alloc_acctd_amt,
6727 --
6728 source_type ,
6729 source_table ,
6730 source_id ,
6731 ref_line_id ,
6732 line_type ,
6733 --
6734 group_id,
6735 source_data_key1 ,
6736 source_data_key2 ,
6737 source_data_key3 ,
6738 source_data_key4 ,
6739 source_data_key5 ,
6740 gp_level,
6741 --
6742 set_of_books_id,
6743 sob_type,
6744 tax_link_id,
6745 tax_inc_flag
6746 )
6747 SELECT p_gt_id, --gt_id
6748 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0), --amt Rem * -1
6749 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0), --acctd_amt Rem * -1
6750 rrc.ref_account_class, --account_class
6751 rrc.code_combination_id, --ccid_secondary
6752 rrc.ref_cust_trx_line_gl_dist_id, -- (-6 line, -7 chrg, -8 tax, -9 frt)
6753 rrc.ref_customer_trx_line_id,
6754 p_customer_trx_id,
6755 trx.invoice_currency_code,
6756 arp_global.functional_currency,
6757 -- APP
6758 -- Elemt Rev
6759 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
6760 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_AMT Rem * -1
6761 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
6762 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_ACCTD_AMT Rem * -1
6763 --Elemt Chrg
6764 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
6765 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_CHRG_AMT Rem * -1
6766 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
6767 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_CHRG_ACCTD_AMT Rem * -1
6768 --Elemt Frt
6769 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
6770 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_FRT_AMT Rem * -1
6771 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
6772 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_FRT_ACCTD_AMT Rem * -1
6773 --Elemt Tax
6774 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
6775 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_TAX_AMT Rem * -1
6776 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
6777 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_TAX_ACCTD_AMT Rem * -1
6778 --Bucket
6779 --Rev
6780 g_line_applied ,
6781 g_acctd_line_applied ,
6782 --Chrg
6783 g_chrg_applied ,
6784 g_acctd_chrg_applied ,
6785 --Frt
6786 g_frt_applied ,
6787 g_acctd_frt_applied ,
6788 --Tax
6789 g_tax_applied ,
6790 g_acctd_tax_applied ,
6791 --
6792 -- ED
6793 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
6794 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_ED_AMT Rem * -1
6795 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
6796 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_ED_ACCTD_AMT Rem * -1
6797 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
6798 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_ED_CHRG_AMT Rem * -1
6799 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
6800 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_ED_CHRG_ACCTD_AMT Rem * -1
6801 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
6802 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_ED_FRT_AMT Rem * -1
6803 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
6804 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_ED_FRT_ACCTD_AMT Rem * -1
6805 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
6806 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_ED_TAX_AMT Rem * -1
6807 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
6808 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_ED_TAX_ACCTD_AMT Rem * -1
6809 --
6810 g_line_ed ,
6811 g_acctd_line_ed ,
6812 g_chrg_ed ,
6813 g_acctd_chrg_ed ,
6814 g_frt_ed ,
6815 g_acctd_frt_ed ,
6816 g_tax_ed ,
6817 g_acctd_tax_ed ,
6818 --
6819 -- UNED
6820 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
6821 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_UNED_AMT Rem * -1
6822 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,
6823 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_UNED_ACCTD_AMT Rem * -1
6824 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
6825 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_UNED_CHRG_AMT Rem * -1
6826 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-7,
6827 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_UNED_CHRG_ACCTD_AMT Rem * -1
6828 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
6829 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_UNED_FRT_AMT Rem * -1
6830 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-9,
6831 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_UNED_FRT_ACCTD_AMT Rem * -1
6832 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
6833 NVL(rrc.AMOUNT_CR,0) - NVL(rrc.AMOUNT_DR,0),0), -- DIST_UNED_TAX_AMT Rem * -1
6834 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-8,
6835 NVL(rrc.ACCTD_AMOUNT_CR,0) - NVL(rrc.ACCTD_AMOUNT_DR,0),0), -- DIST_UNED_TAX_ACCTD_AMT Rem * -1
6836 --
6837 g_line_uned ,
6838 g_acctd_line_uned ,
6839 g_chrg_uned ,
6840 g_acctd_chrg_uned ,
6841 g_frt_uned ,
6842 g_acctd_frt_uned ,
6843 g_tax_uned ,
6844 g_acctd_tax_uned ,
6845 --
6846 p_app_rec.APPLICATION_TYPE,
6847 'RA',
6848 p_app_rec.receivable_application_id,
6849 rrc.line_id,
6850 DECODE(rrc.ref_cust_trx_line_gl_dist_id,-6,'LINE',
6851 -7,'LINE',
6852 -9,'LINE',
6853 -8,'TAX' ),
6854 --
6855 g.group_id,
6856 g.source_data_key1 ,
6857 g.source_data_key2 ,
6858 g.source_data_key3 ,
6859 g.source_data_key4 ,
6860 g.source_data_key5 ,
6861 'D',
6862 p_ae_sys_rec.set_of_books_id,
6863 p_ae_sys_rec.sob_type,
6864 rrc.tax_link_id, -- tax_link_id
6865 'N' -- tax_inc_flag
6866 FROM ar_distributions rrc,
6867 (SELECT /*+INDEX (ra_ar_gt ra_ar_n1)*/
6868 MAX(group_id) group_id,
6869 --{HYUBPAGP
6870 MAX(source_data_key1) source_data_key1,
6871 MAX(source_data_key2) source_data_key2,
6872 MAX(source_data_key3) source_data_key3,
6873 MAX(source_data_key4) source_data_key4,
6874 MAX(source_data_key5) source_data_key5
6875 --}
6876 FROM ra_ar_gt
6877 WHERE gt_id = p_gt_id
6878 AND ref_customer_trx_id = p_customer_trx_id
6879 AND gp_level = 'L') g,
6880 ar_adjustments adj,
6881 ra_customer_trx trx
6882 --{Line Charge and Freight boundary
6883 -- Insert freight dist or the charge dist only in the no CHARGES or FREIGHT line exist
6884 -- As by default the boundary on those 2 lines exist only if there are no REV line on the invoice
6885 -- But in the case the CHARGES or FREIGHT exist and we are not maintaining the balance on lines
6886 -- The issue will be the amount applied in FRT or CHRG will get prorated on the initial
6887 -- Freight line and charge line as there is no remaining on REV line for FRT and CHRG 100% of the amount
6888 -- will be on the FRT and CHRG line, if we insert the boundary line here, the amount will be double accounted
6889 --}
6890 WHERE adj.customer_trx_id = p_customer_trx_id
6891 AND adj.adjustment_id = rrc.source_id
6892 AND rrc.source_table = 'ADJ'
6893 AND ((rrc.ref_customer_trx_line_id = -6) OR --Line
6894 (rrc.ref_customer_trx_line_id = -8) OR --Tax
6895 (rrc.ref_customer_trx_line_id = -7 AND g_trx_line_chrg = 'N') OR --Charges
6896 (rrc.ref_customer_trx_line_id = -9 AND g_trx_line_frt = 'N')) --Freight
6897 AND (adj.upgrade_method = 'R12' OR adj.upgrade_method IS NULL)
6898 AND adj.customer_trx_id = trx.customer_trx_id;
6899
6900 l_rows := sql%rowcount;
6901 IF PG_DEBUG = 'Y' THEN
6902 localdebug(' rows inserted = ' || l_rows);
6903 localdebug(' -->Distribution gotten from adjustment R12 ');
6904 END IF;
6905
6906
6907 --{Get the dist from MFAR if required
6908 IF g_mode_process = 'R12_11IMFAR' THEN
6909 IF PG_DEBUG = 'Y' THEN
6910 localdebug(' Mfar 11I legacy to R12 distributions');
6911 END IF;
6912 INSERT INTO RA_AR_GT
6913 ( GT_ID ,
6914 AMT ,
6915 ACCTD_AMT ,
6916 ACCOUNT_CLASS ,
6917 CCID_SECONDARY ,
6918 REF_CUST_TRX_LINE_GL_DIST_ID,
6919 REF_CUSTOMER_TRX_LINE_ID ,
6920 REF_CUSTOMER_TRX_ID ,
6921 TO_CURRENCY ,
6922 BASE_CURRENCY ,
6923 -- ADJ and APP Elmt
6924 DIST_AMT, --HYUD LINE
6925 DIST_ACCTD_AMT, --HYUD LINE
6926 DIST_CHRG_AMT, --HYUD CHRG
6927 DIST_CHRG_ACCTD_AMT, --HYUD CHRG
6928 DIST_FRT_AMT, --HYUD FRT
6929 DIST_FRT_ACCTD_AMT, --HYUD FRT
6930 DIST_TAX_AMT, --HYUD TAX
6931 DIST_TAX_ACCTD_AMT, --HYUD TAX
6932 --
6933 tl_alloc_amt ,
6934 tl_alloc_acctd_amt ,
6935 tl_chrg_alloc_amt ,
6936 tl_chrg_alloc_acctd_amt,
6937 tl_frt_alloc_amt ,
6938 tl_frt_alloc_acctd_amt,
6939 tl_tax_alloc_amt ,
6940 tl_tax_alloc_acctd_amt,
6941 -- ED Elmt
6942 DIST_ed_AMT,
6943 DIST_ed_ACCTD_AMT,
6944 DIST_ed_chrg_AMT,
6945 DIST_ed_chrg_ACCTD_AMT,
6946 DIST_ed_frt_AMT ,
6947 DIST_ed_frt_ACCTD_AMT,
6948 DIST_ed_tax_AMT ,
6949 DIST_ed_tax_ACCTD_AMT,
6950 --
6951 tl_ed_alloc_amt ,
6952 tl_ed_alloc_acctd_amt ,
6953 tl_ed_chrg_alloc_amt ,
6954 tl_ed_chrg_alloc_acctd_amt,
6955 tl_ed_frt_alloc_amt ,
6956 tl_ed_frt_alloc_acctd_amt,
6957 tl_ed_tax_alloc_amt ,
6958 tl_ed_tax_alloc_acctd_amt,
6959 -- UNED
6960 DIST_uned_AMT ,
6961 DIST_uned_ACCTD_AMT ,
6962 DIST_uned_chrg_AMT,
6963 DIST_uned_chrg_ACCTD_AMT,
6964 DIST_uned_frt_AMT ,
6965 DIST_uned_frt_ACCTD_AMT,
6966 DIST_uned_tax_AMT ,
6967 DIST_uned_tax_ACCTD_AMT,
6968 --
6969 tl_uned_alloc_amt ,
6970 tl_uned_alloc_acctd_amt ,
6971 tl_uned_chrg_alloc_amt ,
6972 tl_uned_chrg_alloc_acctd_amt,
6973 tl_uned_frt_alloc_amt ,
6974 tl_uned_frt_alloc_acctd_amt,
6975 tl_uned_tax_alloc_amt ,
6976 tl_uned_tax_alloc_acctd_amt,
6977 --
6978 source_type ,
6979 source_table ,
6980 source_id ,
6981 ref_line_id ,
6982 line_type ,
6983 --
6984 group_id,
6985 source_data_key1 ,
6986 source_data_key2 ,
6987 source_data_key3 ,
6988 source_data_key4 ,
6989 source_data_key5 ,
6990 gp_level,
6991 set_of_books_id,
6992 sob_type,
6993 tax_link_id,
6994 tax_inc_flag,
6995 ref_mf_dist_flag
6996 )
6997 SELECT /*+INDEX (rar ra_ar_n1)*/
6998 p_gt_id, --gt_id
6999 NVL(rrc.AMOUNT,0), --amt in the sign of cor adj dist
7000 NVL(rrc.AMOUNT,0), --acctd_amt is iden amt because in mfar world base and trx currency are the same
7001 ctlgd.account_class, --account_class
7002 rrc.mf_adjustment_ccid, --ccid_secondary
7003 rrc.cust_trx_line_gl_dist_id, --ref_cust_trx_line_gl_dist_id no boundary can exist
7004 ctlgd.customer_trx_line_id, -- ref_customer_trx_line_id no boundary can exist
7005 rar.ref_customer_trx_id,
7006 rar.to_currency,
7007 rar.base_currency,
7008 -- ADJ and APP
7009 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_AMT
7010 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_ACCTD_AMT
7011 0, -- DIST_CHRG_AMT charges in psa are prorate on other lines
7012 -- need revisit at charge line introduced in AR
7013 0, -- DIST_CHRG_ACCTD_AMT
7014 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_FRT_AMT
7015 -- frt adjusted in psa are over frt line
7016 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_FRT_ACCTD_AMT
7017 -- frt adjusted in psa are over frt line
7018 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_TAX_AMT
7019 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_TAX_ACCTD_AMT
7020 --
7021 rar.tl_alloc_amt ,
7022 rar.tl_alloc_acctd_amt ,
7023 rar.tl_chrg_alloc_amt ,
7024 rar.tl_chrg_alloc_acctd_amt,
7025 rar.tl_frt_alloc_amt ,
7026 rar.tl_frt_alloc_acctd_amt ,
7027 rar.tl_tax_alloc_amt ,
7028 rar.tl_tax_alloc_acctd_amt ,
7029 -- ED
7030 -- Elemt Rev
7031 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_ED_AMT
7032 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_ED_ACCTD_AMT
7033 -- Elemt Chrg
7034 0, -- DIST_ED_CHRG_AMT
7035 0, -- DIST_ED_CHRG_ACCTD_AMT
7036 -- Elemt Frt
7037 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_ED_FRT_AMT
7038 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_ED_FRT_ACCTD_AMT
7039 -- Elemt Tax
7040 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_ED_TAX_AMT
7041 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_ED_TAX_ACCTD_AMT
7042 --Bucket
7043 -- Buc Rev
7044 rar.tl_ed_alloc_amt ,
7045 rar.tl_ed_alloc_acctd_amt ,
7046 --Buc Chrg
7047 rar.tl_ed_chrg_alloc_amt ,
7048 rar.tl_ed_chrg_alloc_acctd_amt,
7049 --Buc Frt
7050 rar.tl_ed_frt_alloc_amt ,
7051 rar.tl_ed_frt_alloc_acctd_amt ,
7052 --Buc Tax
7053 rar.tl_ed_tax_alloc_amt ,
7054 rar.tl_ed_tax_alloc_acctd_amt ,
7055 --
7056 -- UNED
7057 -- Rev Elemt
7058 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_AMT
7059 DECODE(ctlgd.account_class,'REV',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_ACCTD_AMT
7060 -- Chrg Elemt
7061 0, -- DIST_UNED_CHRG_AMT
7062 0, -- DIST_UNED_CHRG_ACCTD_AMT
7063 -- Frt Elemt
7064 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_FRT_AMT
7065 DECODE(ctlgd.account_class,'FREIGHT',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_FRT_ACCTD_AMT
7066 -- Tax Elemt
7067 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_TAX_AMT
7068 DECODE(ctlgd.account_class,'TAX',NVL(rrc.AMOUNT,0),0), -- DIST_UNED_TAX_ACCTD_AMT
7069 --Bucket
7070 -- Rev
7071 rar.tl_uned_alloc_amt ,
7072 rar.tl_uned_alloc_acctd_amt ,
7073 --Chrg
7074 rar.tl_uned_chrg_alloc_amt ,
7075 rar.tl_uned_chrg_alloc_acctd_amt,
7076 --Frt
7077 rar.tl_uned_frt_alloc_amt ,
7078 rar.tl_uned_frt_alloc_acctd_amt ,
7079 --Tax
7080 rar.tl_uned_tax_alloc_amt ,
7081 rar.tl_uned_tax_alloc_acctd_amt ,
7082 --
7083 p_app_rec.APPLICATION_TYPE,
7084 'RA',
7085 p_app_rec.receivable_application_id,
7086 -12345, --ref_line_id -12345 at the insertion time need to interpret the ref_psa_dist_flag
7087 rar.line_type,
7088 --
7089 rar.group_id,
7090 rar.source_data_key1 ,
7091 rar.source_data_key2 ,
7092 rar.source_data_key3 ,
7093 rar.source_data_key4 ,
7094 rar.source_data_key5 ,
7095 'D',
7096 --BUG#3611016
7097 p_ae_sys_rec.set_of_books_id,
7098 p_ae_sys_rec.sob_type,
7099 -- g_se_gt_id,
7100 DECODE(ctl.line_type,'TAX',ctl.link_to_cust_trx_line_id,
7101 'LINE',ctl.customer_trx_line_id,
7102 NULL), -- tax_link_id
7103 DECODE(ctl.line_type,'TAX','Y',
7104 'REV',DECODE(NVL(adj.tax_adjusted,0),0, 'N','Y'),
7105 'N'), -- tax_inc_flag
7106 'Y' -- ref_mf_dist_flag
7107 FROM ra_ar_gt rar,
7108 psa_mf_adj_dist_all rrc,
7109 ra_cust_trx_line_gl_dist ctlgd,
7110 ra_customer_trx_lines ctl,
7111 ar_adjustments adj
7112 WHERE rar.gt_id = p_gt_id
7113 AND rar.ref_customer_trx_id = p_customer_trx_id
7114 AND rar.gp_level = 'L'
7115 AND rar.ref_customer_trx_line_id = ctl.customer_trx_line_id
7116 AND rar.ref_customer_trx_line_id = ctlgd.customer_trx_line_id
7117 AND rar.ref_cust_trx_line_gl_dist_id IS NULL
7118 AND ctlgd.cust_trx_line_gl_dist_id = rrc.cust_trx_line_gl_dist_id
7119 AND rrc.adjustment_id = adj.adjustment_id
7120 AND adj.upgrade_method = '11IMFAR'; -- For adjustment the marks are R12 - 11I (cash) - 11IMFAR (Mfar)
7121
7122 l_rows := sql%rowcount;
7123 IF PG_DEBUG = 'Y' THEN
7124 localdebug(' rows inserted = ' || l_rows);
7125 localdebug(' -->Distribution gotten from adjustment 11IMFAR ');
7126 END IF;
7127
7128 END IF;
7129
7130 END IF; -- g_mode_process <> 'R12_11iCASH'
7131 END IF;
7132
7133 --Populate base distribution amounts
7134 INSERT INTO AR_BASE_DIST_AMTS_GT
7135 ( gt_id
7136 ,gp_level
7137 ,ref_customer_trx_id
7138 ,ref_customer_trx_line_id
7139 ,base_dist_amt
7140 ,base_dist_acctd_amt
7141 ,base_dist_chrg_amt
7142 ,base_dist_chrg_acctd_amt
7143 ,base_dist_frt_amt
7144 ,base_dist_frt_acctd_amt
7145 ,base_dist_tax_amt
7146 ,base_dist_tax_acctd_amt
7147 ,base_ed_dist_amt
7148 ,base_ed_dist_acctd_amt
7149 ,base_ed_dist_chrg_amt
7150 ,base_ed_dist_chrg_acctd_amt
7151 ,base_ed_dist_frt_amt
7152 ,base_ed_dist_frt_acctd_amt
7153 ,base_ed_dist_tax_amt
7154 ,base_ed_dist_tax_acctd_amt
7155 ,base_uned_dist_amt
7156 ,base_uned_dist_acctd_amt
7157 ,base_uned_dist_chrg_amt
7158 ,base_uned_dist_chrg_acctd_amt
7159 ,base_uned_dist_frt_amt
7160 ,base_uned_dist_frt_acctd_amt
7161 ,base_uned_dist_tax_amt
7162 ,base_uned_dist_tax_acctd_amt
7163 ,set_of_books_id
7164 ,sob_type)
7165 SELECT /*+INDEX (b ra_ar_n1)*/
7166 p_gt_id
7167 ,b.gp_level
7168 ,b.ref_customer_trx_id
7169 ,b.ref_customer_trx_line_id
7170 -- ADJ and APP
7171 ,SUM(b.dist_amt) base_dist_amt
7172 ,SUM(b.dist_acctd_amt) base_dist_acctd_amt
7173 ,SUM(b.dist_chrg_amt) base_dist_chrg_amt
7174 ,SUM(b.dist_chrg_acctd_amt) base_dist_chrg_acctd_amt
7175 ,SUM(b.dist_frt_amt) base_dist_frt_amt
7176 ,SUM(b.dist_frt_acctd_amt) base_dist_frt_acctd_amt
7177 ,SUM(b.dist_tax_amt) base_dist_tax_amt
7178 ,SUM(b.dist_tax_acctd_amt) base_dist_tax_acctd_amt
7179 -- ED
7180 ,SUM(b.dist_ed_amt) base_ed_dist_amt
7181 ,SUM(b.dist_ed_acctd_amt) base_ed_dist_acctd_amt
7182 ,SUM(b.dist_ed_chrg_amt) base_ed_dist_chrg_amt
7183 ,SUM(b.dist_ed_chrg_acctd_amt) base_ed_dist_chrg_acctd_amt
7184 ,SUM(b.dist_ed_frt_amt) base_ed_dist_frt_amt
7185 ,SUM(b.dist_ed_frt_acctd_amt) base_ed_dist_frt_acctd_amt
7186 ,SUM(b.dist_ed_tax_amt) base_ed_dist_tax_amt
7187 ,SUM(b.dist_ed_tax_acctd_amt) base_ed_dist_tax_acctd_amt
7188 -- UNED
7189 ,SUM(b.dist_uned_amt) base_uned_dist_amt
7190 ,SUM(b.dist_uned_acctd_amt) base_uned_dist_acctd_amt
7191 ,SUM(b.dist_uned_chrg_amt) base_uned_dist_chrg_amt
7192 ,SUM(b.dist_uned_chrg_acctd_amt) base_uned_dist_chrg_acctd_amt
7193 ,SUM(b.dist_uned_frt_amt) base_uned_dist_frt_amt
7194 ,SUM(b.dist_uned_frt_acctd_amt) base_uned_dist_frt_acctd_amt
7195 ,SUM(b.dist_uned_tax_amt) base_uned_dist_tax_amt
7196 ,SUM(b.dist_uned_tax_acctd_amt) base_uned_dist_tax_acctd_amt
7197 ,set_of_books_id
7198 ,sob_type
7199 FROM ra_ar_gt b
7200 WHERE b.gt_id = p_gt_id
7201 AND b.gp_level = 'D'
7202 AND b.set_of_books_id = p_ae_sys_rec.set_of_books_id
7203 AND (b.sob_type = p_ae_sys_rec.sob_type OR
7204 (b.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
7205 AND b.ref_cust_trx_line_gl_dist_id IS NOT NULL
7206 GROUP BY b.ref_customer_trx_id,
7207 b.ref_customer_trx_line_id,
7208 b.gp_level,
7209 b.sob_type,b.set_of_books_id;
7210
7211 --
7212
7213 l_rows := sql%rowcount;
7214 IF PG_DEBUG = 'Y' THEN
7215 localdebug(' rows inserted(ar_base_dist_amts_gt) = ' || l_rows);
7216
7217 localdebug('arp_det_dist_pkg.get_inv_dist()-');
7218 END IF;
7219 END get_inv_dist;
7220
7221
7222 PROCEDURE update_dist
7223 (p_gt_id IN VARCHAR2,
7224 p_customer_trx_id IN NUMBER,
7225 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
7226 IS
7227 l_rows NUMBER;
7228
7229 CURSOR c_read_for_line IS
7230 SELECT /*+ leading (A) index(A ra_ar_n1) INDEX(B ar_base_dist_amts_gt_n1)*/
7231 line_type||'-'||a.ref_customer_trx_id||'-'||a.ref_customer_trx_line_id groupe,
7232 -- ADJ and APP
7233 --Base
7234 b.BASE_dist_AMT, --Base for Revenue distributions
7235 b.BASE_dist_ACCTD_AMT,
7236 b.BASE_dist_frt_AMT, --Base for freight distributions HYUFR
7237 b.BASE_dist_frt_ACCTD_AMT,
7238 b.BASE_dist_tax_AMT, --Base for tax distributions HYUFRTAX
7239 b.BASE_dist_tax_ACCTD_AMT,
7240 b.BASE_dist_chrg_AMT, --Base for charge distributions
7241 b.BASE_dist_chrg_ACCTD_AMT,
7242 --Element
7243 DIST_AMT, --Element for Revenue distributions
7244 DIST_ACCTD_AMT,
7245 DIST_frt_AMT, --Element for freight distributions
7246 DIST_frt_ACCTD_AMT,
7247 DIST_tax_AMT, --Element for tax distributions
7248 DIST_tax_ACCTD_AMT,
7249 DIST_chrg_AMT, --Element for charge distributions
7250 DIST_chrg_ACCTD_AMT,
7251 --Amount to be allocated
7252 tl_alloc_amt, --Allocation for Revenue distributions
7253 tl_alloc_acctd_amt,
7254 tl_frt_alloc_amt, --Allocation for freight distributions
7255 tl_frt_alloc_acctd_amt,
7256 tl_tax_alloc_amt, --Allocation for tax ditsributions
7257 tl_tax_alloc_acctd_amt,
7258 tl_chrg_alloc_amt, --Allocation for charge distributions
7259 tl_chrg_alloc_acctd_amt,
7260 -- ED
7261 --Base
7262 b.BASE_ed_dist_AMT, --Base ED on Rev
7263 b.BASE_ed_dist_ACCTD_AMT,
7264 b.BASE_ed_dist_frt_AMT, --Base ED on Freight HYUFR
7265 b.BASE_ed_dist_frt_ACCTD_AMT,
7266 b.BASE_ed_dist_tax_AMT, --Base ED on Tax HYUFRTAX
7267 b.BASE_ed_dist_tax_ACCTD_AMT,
7268 b.BASE_ed_dist_chrg_AMT, --Base ED on Charge
7269 b.BASE_ed_dist_chrg_ACCTD_AMT,
7270 --Element
7271 DIST_ed_AMT, --Element ED on Rev
7272 DIST_ed_ACCTD_AMT,
7273 DIST_ed_frt_AMT, --Element ED on Freight HYUFR
7274 DIST_ed_frt_ACCTD_AMT,
7275 DIST_ed_tax_AMT, --Element ED on Tax HYUFRTAX
7276 DIST_ed_tax_ACCTD_AMT,
7277 DIST_ed_chrg_AMT, --Element ED on Charge
7278 DIST_ed_chrg_ACCTD_AMT,
7279 --Amount to be allocated
7280 tl_ed_alloc_amt, --Allocation ED on Rev
7281 tl_ed_alloc_acctd_amt,
7282 tl_ed_frt_alloc_amt, --Allocation ED on Freight HYUFR
7283 tl_ed_frt_alloc_acctd_amt,
7284 tl_ed_tax_alloc_amt, --Allocation ED on Tax HYUFRTAX
7285 tl_ed_tax_alloc_acctd_amt,
7286 tl_ed_chrg_alloc_amt,
7287 tl_ed_chrg_alloc_acctd_amt,
7288 -- UNED
7289 --Base
7290 b.BASE_uned_dist_AMT,
7291 b.BASE_uned_dist_ACCTD_AMT,
7292 b.BASE_uned_dist_frt_AMT,
7293 b.BASE_uned_dist_frt_ACCTD_AMT,
7294 b.BASE_uned_dist_tax_AMT,
7295 b.BASE_uned_dist_tax_ACCTD_AMT,
7296 b.BASE_uned_dist_chrg_AMT,
7297 b.BASE_uned_dist_chrg_ACCTD_AMT,
7298 --Element
7299 DIST_uned_AMT,
7300 DIST_uned_ACCTD_AMT,
7301 DIST_uned_frt_AMT,
7302 DIST_uned_frt_ACCTD_AMT,
7303 DIST_uned_tax_AMT,
7304 DIST_uned_tax_ACCTD_AMT,
7305 DIST_uned_chrg_AMT,
7306 DIST_uned_chrg_ACCTD_AMT,
7307 --Amount to be allocated
7308 tl_uned_alloc_amt,
7309 tl_uned_alloc_acctd_amt,
7310 tl_uned_frt_alloc_amt,
7311 tl_uned_frt_alloc_acctd_amt,
7312 tl_uned_tax_alloc_amt,
7313 tl_uned_tax_alloc_acctd_amt,
7314 tl_uned_chrg_alloc_amt,
7315 tl_uned_chrg_alloc_acctd_amt,
7316 --Currencies
7317 NVL(BASE_CURRENCY, p_ae_sys_rec.base_currency) ,
7318 TO_CURRENCY ,
7319 FROM_CURRENCY ,
7320 -- Rowid
7321 a.rowid
7322 FROM RA_AR_GT a,AR_BASE_DIST_AMTS_GT b--[bug 6454022]
7323 WHERE a.gt_id = p_gt_id
7324 -- AND se_gt_id = g_se_gt_id
7325 AND a.ref_customer_trx_id = p_customer_trx_id
7326 AND a.ref_cust_trx_line_gl_dist_id IS NOT NULL
7327 AND a.gp_level = 'D'
7328 --BUG#3611016
7329 AND a.set_of_books_id = p_ae_sys_rec.set_of_books_id
7330 AND (a.sob_type = p_ae_sys_rec.sob_type OR (
7331 a.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
7332 AND b.gt_id = a.gt_id
7333 AND b.gp_level = 'D'
7334 AND a.ref_customer_trx_id = b.ref_customer_trx_id
7335 AND a.ref_customer_trx_line_id = b.ref_customer_trx_line_id
7336 AND b.set_of_books_id = p_ae_sys_rec.set_of_books_id
7337 AND (b.sob_type = p_ae_sys_rec.sob_type OR (
7338 b.sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
7339 AND nvl( a.source_type,'#$%') = DECODE(b.source_type,null
7340 ,nvl(a.source_type,'#$%')
7341 ,b.source_type)
7342 ORDER BY a.line_type||'-'||a.ref_customer_trx_id||'-'||a.ref_customer_trx_line_id||'-'||a.account_class;
7343
7344 l_tab pro_res_tbl_type;
7345
7346 l_group_tbl group_tbl_type;
7347 l_group VARCHAR2(60) := 'NOGROUP';
7348
7349 -- ADJ and APP
7350 l_run_amt NUMBER := 0;
7351 l_run_alloc NUMBER := 0;
7352 l_run_acctd_amt NUMBER := 0;
7353 l_run_acctd_alloc NUMBER := 0;
7354 l_alloc NUMBER := 0;
7355 l_acctd_alloc NUMBER := 0;
7356
7357 l_run_chrg_amt NUMBER := 0;
7358 l_run_chrg_alloc NUMBER := 0;
7359 l_run_chrg_acctd_amt NUMBER := 0;
7360 l_run_chrg_acctd_alloc NUMBER := 0;
7361 l_chrg_alloc NUMBER := 0;
7362 l_chrg_acctd_alloc NUMBER := 0;
7363
7364 l_run_frt_amt NUMBER := 0;
7365 l_run_frt_alloc NUMBER := 0;
7366 l_run_frt_acctd_amt NUMBER := 0;
7367 l_run_frt_acctd_alloc NUMBER := 0;
7368 l_frt_alloc NUMBER := 0;
7369 l_frt_acctd_alloc NUMBER := 0;
7370
7371 l_run_tax_amt NUMBER := 0;
7372 l_run_tax_alloc NUMBER := 0;
7373 l_run_tax_acctd_amt NUMBER := 0;
7374 l_run_tax_acctd_alloc NUMBER := 0;
7375 l_tax_alloc NUMBER := 0;
7376 l_tax_acctd_alloc NUMBER := 0;
7377
7378 -- ED
7379 l_run_ed_amt NUMBER := 0;
7380 l_run_ed_alloc NUMBER := 0;
7381 l_run_ed_acctd_amt NUMBER := 0;
7382 l_run_ed_acctd_alloc NUMBER := 0;
7383 l_ed_alloc NUMBER := 0;
7384 l_ed_acctd_alloc NUMBER := 0;
7385
7386 l_run_ed_chrg_amt NUMBER := 0;
7387 l_run_ed_chrg_alloc NUMBER := 0;
7388 l_run_ed_chrg_acctd_amt NUMBER := 0;
7389 l_run_ed_chrg_acctd_alloc NUMBER := 0;
7390 l_ed_chrg_alloc NUMBER := 0;
7391 l_ed_chrg_acctd_alloc NUMBER := 0;
7392
7393 l_run_ed_frt_amt NUMBER := 0;
7394 l_run_ed_frt_alloc NUMBER := 0;
7395 l_run_ed_frt_acctd_amt NUMBER := 0;
7396 l_run_ed_frt_acctd_alloc NUMBER := 0;
7397 l_ed_frt_alloc NUMBER := 0;
7398 l_ed_frt_acctd_alloc NUMBER := 0;
7399
7400 l_run_ed_tax_amt NUMBER := 0;
7401 l_run_ed_tax_alloc NUMBER := 0;
7402 l_run_ed_tax_acctd_amt NUMBER := 0;
7403 l_run_ed_tax_acctd_alloc NUMBER := 0;
7404 l_ed_tax_alloc NUMBER := 0;
7405 l_ed_tax_acctd_alloc NUMBER := 0;
7406
7407 -- UNED
7408 l_run_uned_amt NUMBER := 0;
7409 l_run_uned_alloc NUMBER := 0;
7410 l_run_uned_acctd_amt NUMBER := 0;
7411 l_run_uned_acctd_alloc NUMBER := 0;
7412 l_uned_alloc NUMBER := 0;
7413 l_uned_acctd_alloc NUMBER := 0;
7414
7415 l_run_uned_chrg_amt NUMBER := 0;
7416 l_run_uned_chrg_alloc NUMBER := 0;
7417 l_run_uned_chrg_acctd_amt NUMBER := 0;
7418 l_run_uned_chrg_acctd_alloc NUMBER := 0;
7419 l_uned_chrg_alloc NUMBER := 0;
7420 l_uned_chrg_acctd_alloc NUMBER := 0;
7421
7422 l_run_uned_frt_amt NUMBER := 0;
7423 l_run_uned_frt_alloc NUMBER := 0;
7424 l_run_uned_frt_acctd_amt NUMBER := 0;
7425 l_run_uned_frt_acctd_alloc NUMBER := 0;
7426 l_uned_frt_alloc NUMBER := 0;
7427 l_uned_frt_acctd_alloc NUMBER := 0;
7428
7429 l_run_uned_tax_amt NUMBER := 0;
7430 l_run_uned_tax_alloc NUMBER := 0;
7431 l_run_uned_tax_acctd_amt NUMBER := 0;
7432 l_run_uned_tax_acctd_alloc NUMBER := 0;
7433 l_uned_tax_alloc NUMBER := 0;
7434 l_uned_tax_acctd_alloc NUMBER := 0;
7435
7436 l_exist BOOLEAN;
7437 l_last_fetch BOOLEAN;
7438
7439 BEGIN
7440 IF PG_DEBUG = 'Y' THEN
7441 localdebug('arp_det_dist_pkg.update_dist()+');
7442 localdebug(' p_ae_sys_rec.set_of_books_id :'|| p_ae_sys_rec.set_of_books_id);
7443 localdebug(' p_ae_sys_rec.sob_type :'|| p_ae_sys_rec.sob_type);
7444 END IF;
7445 OPEN c_read_for_line;
7446 LOOP
7447 FETCH c_read_for_line BULK COLLECT INTO
7448 l_tab.GROUPE ,
7449 -- ADJ and APP
7450 -- Base
7451 l_tab.base_pro_amt ,
7452 l_tab.base_pro_acctd_amt ,
7453 l_tab.BASE_FRT_PRO_AMT ,
7454 l_tab.BASE_FRT_PRO_ACCTD_AMT ,
7455 l_tab.BASE_TAX_PRO_AMT ,
7456 l_tab.BASE_TAX_PRO_ACCTD_AMT ,
7457 l_tab.BASE_CHRG_PRO_AMT ,
7458 l_tab.BASE_CHRG_PRO_ACCTD_AMT ,
7459 -- Element numerator
7460 l_tab.elmt_pro_amt ,
7461 l_tab.elmt_pro_acctd_amt ,
7462 l_tab.ELMT_FRT_PRO_AMT ,
7463 l_tab.ELMT_FRT_PRO_ACCTD_AMT ,
7464 l_tab.ELMT_TAX_PRO_AMT ,
7465 l_tab.ELMT_TAX_PRO_ACCTD_AMT ,
7466 l_tab.ELMT_CHRG_PRO_AMT ,
7467 l_tab.ELMT_CHRG_PRO_ACCTD_AMT ,
7468 -- Amount to be allocated
7469 l_tab.buc_alloc_amt ,
7470 l_tab.buc_alloc_acctd_amt,
7471 l_tab.buc_frt_alloc_amt ,
7472 l_tab.buc_frt_alloc_acctd_amt,
7473 l_tab.buc_tax_alloc_amt ,
7474 l_tab.buc_tax_alloc_acctd_amt,
7475 l_tab.buc_chrg_alloc_amt ,
7476 l_tab.buc_chrg_alloc_acctd_amt,
7477 -- ED
7478 -- Base
7479 l_tab.base_ed_pro_amt ,
7480 l_tab.base_ed_pro_acctd_amt ,
7481 l_tab.BASE_ed_FRT_PRO_AMT ,
7482 l_tab.BASE_ed_FRT_PRO_ACCTD_AMT ,
7483 l_tab.BASE_ed_TAX_PRO_AMT ,
7484 l_tab.BASE_ed_TAX_PRO_ACCTD_AMT ,
7485 l_tab.BASE_ed_CHRG_PRO_AMT ,
7486 l_tab.BASE_ed_CHRG_PRO_ACCTD_AMT ,
7487 -- Element numerator
7488 l_tab.elmt_ed_pro_amt ,
7489 l_tab.elmt_ed_pro_acctd_amt ,
7490 l_tab.ELMT_ed_FRT_PRO_AMT ,
7491 l_tab.ELMT_ed_FRT_PRO_ACCTD_AMT ,
7492 l_tab.ELMT_ed_TAX_PRO_AMT ,
7493 l_tab.ELMT_ed_TAX_PRO_ACCTD_AMT ,
7494 l_tab.ELMT_ed_CHRG_PRO_AMT ,
7495 l_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT ,
7496 -- Amount to be allocated
7497 l_tab.buc_ed_alloc_amt ,
7498 l_tab.buc_ed_alloc_acctd_amt,
7499 l_tab.buc_ed_frt_alloc_amt ,
7500 l_tab.buc_ed_frt_alloc_acctd_amt,
7501 l_tab.buc_ed_tax_alloc_amt ,
7502 l_tab.buc_ed_tax_alloc_acctd_amt,
7503 l_tab.buc_ed_chrg_alloc_amt ,
7504 l_tab.buc_ed_chrg_alloc_acctd_amt,
7505 -- UNED
7506 -- Base
7507 l_tab.base_uned_pro_amt ,
7508 l_tab.base_uned_pro_acctd_amt ,
7509 l_tab.BASE_uned_FRT_PRO_AMT ,
7510 l_tab.BASE_uned_FRT_PRO_ACCTD_AMT ,
7511 l_tab.BASE_uned_TAX_PRO_AMT ,
7512 l_tab.BASE_uned_TAX_PRO_ACCTD_AMT ,
7513 l_tab.BASE_uned_CHRG_PRO_AMT ,
7514 l_tab.BASE_uned_CHRG_PRO_ACCTD_AMT ,
7515 -- Element numerator
7516 l_tab.elmt_uned_pro_amt ,
7517 l_tab.elmt_uned_pro_acctd_amt ,
7518 l_tab.ELMT_uned_FRT_PRO_AMT ,
7519 l_tab.ELMT_uned_FRT_PRO_ACCTD_AMT ,
7520 l_tab.ELMT_uned_TAX_PRO_AMT ,
7521 l_tab.ELMT_uned_TAX_PRO_ACCTD_AMT ,
7522 l_tab.ELMT_uned_CHRG_PRO_AMT ,
7523 l_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT ,
7524 -- Amount to be allocated
7525 l_tab.buc_uned_alloc_amt ,
7526 l_tab.buc_uned_alloc_acctd_amt,
7527 l_tab.buc_uned_frt_alloc_amt ,
7528 l_tab.buc_uned_frt_alloc_acctd_amt,
7529 l_tab.buc_uned_tax_alloc_amt ,
7530 l_tab.buc_uned_tax_alloc_acctd_amt,
7531 l_tab.buc_uned_chrg_alloc_amt ,
7532 l_tab.buc_uned_chrg_alloc_acctd_amt,
7533 --
7534 l_tab.BASE_CURRENCY ,
7535 l_tab.TO_CURRENCY ,
7536 l_tab.FROM_CURRENCY ,
7537 --
7538 l_tab.ROWID_ID LIMIT g_bulk_fetch_rows;
7539
7540 IF c_read_for_line%NOTFOUND THEN
7541 l_last_fetch := TRUE;
7542 END IF;
7543
7544 IF (l_tab.ROWID_ID.COUNT = 0) AND (l_last_fetch) THEN
7545 IF PG_DEBUG = 'Y' THEN
7546 localdebug('COUNT = 0 and LAST FETCH ');
7547 END IF;
7548 EXIT;
7549 END IF;
7550
7551 plsql_proration( x_tab => l_tab,
7552 x_group_tbl => l_group_tbl,
7553 -- ADJ and APP
7554 x_run_amt => l_run_amt,
7555 x_run_alloc => l_run_alloc,
7556 x_run_acctd_amt => l_run_acctd_amt,
7557 x_run_acctd_alloc => l_run_acctd_alloc,
7558 x_run_chrg_amt => l_run_chrg_amt,
7559 x_run_chrg_alloc => l_run_chrg_alloc,
7560 x_run_chrg_acctd_amt => l_run_chrg_acctd_amt,
7561 x_run_chrg_acctd_alloc => l_run_chrg_acctd_alloc,
7562 x_run_frt_amt => l_run_frt_amt,
7563 x_run_frt_alloc => l_run_frt_alloc,
7564 x_run_frt_acctd_amt => l_run_frt_acctd_amt,
7565 x_run_frt_acctd_alloc => l_run_frt_acctd_alloc,
7566 x_run_tax_amt => l_run_tax_amt,
7567 x_run_tax_alloc => l_run_tax_alloc,
7568 x_run_tax_acctd_amt => l_run_tax_acctd_amt,
7569 x_run_tax_acctd_alloc => l_run_tax_acctd_alloc,
7570 -- ED
7571 x_run_ed_amt => l_run_ed_amt,
7572 x_run_ed_alloc => l_run_ed_alloc,
7573 x_run_ed_acctd_amt => l_run_ed_acctd_amt,
7574 x_run_ed_acctd_alloc => l_run_ed_acctd_alloc,
7575 x_run_ed_chrg_amt => l_run_ed_chrg_amt,
7576 x_run_ed_chrg_alloc => l_run_ed_chrg_alloc,
7577 x_run_ed_chrg_acctd_amt => l_run_ed_chrg_acctd_amt,
7578 x_run_ed_chrg_acctd_alloc => l_run_ed_chrg_acctd_alloc,
7579 x_run_ed_frt_amt => l_run_ed_frt_amt,
7580 x_run_ed_frt_alloc => l_run_ed_frt_alloc,
7581 x_run_ed_frt_acctd_amt => l_run_ed_frt_acctd_amt,
7582 x_run_ed_frt_acctd_alloc => l_run_ed_frt_acctd_alloc,
7583 x_run_ed_tax_amt => l_run_ed_tax_amt,
7584 x_run_ed_tax_alloc => l_run_ed_tax_alloc,
7585 x_run_ed_tax_acctd_amt => l_run_ed_tax_acctd_amt,
7586 x_run_ed_tax_acctd_alloc => l_run_ed_tax_acctd_alloc,
7587 -- UNED
7588 x_run_uned_amt => l_run_uned_amt,
7589 x_run_uned_alloc => l_run_uned_alloc,
7590 x_run_uned_acctd_amt => l_run_uned_acctd_amt,
7591 x_run_uned_acctd_alloc => l_run_uned_acctd_alloc,
7592 x_run_uned_chrg_amt => l_run_uned_chrg_amt,
7593 x_run_uned_chrg_alloc => l_run_uned_chrg_alloc,
7594 x_run_uned_chrg_acctd_amt => l_run_uned_chrg_acctd_amt,
7595 x_run_uned_chrg_acctd_alloc => l_run_uned_chrg_acctd_alloc,
7596 x_run_uned_frt_amt => l_run_uned_frt_amt,
7597 x_run_uned_frt_alloc => l_run_uned_frt_alloc,
7598 x_run_uned_frt_acctd_amt => l_run_uned_frt_acctd_amt,
7599 x_run_uned_frt_acctd_alloc => l_run_uned_frt_acctd_alloc,
7600 x_run_uned_tax_amt => l_run_uned_tax_amt,
7601 x_run_uned_tax_alloc => l_run_uned_tax_alloc,
7602 x_run_uned_tax_acctd_amt => l_run_uned_tax_acctd_amt,
7603 x_run_uned_tax_acctd_alloc => l_run_uned_tax_acctd_alloc);
7604
7605 FORALL i IN l_tab.ROWID_ID.FIRST .. l_tab.ROWID_ID.LAST
7606 UPDATE ra_ar_gt
7607 SET
7608 -- ADJ and APP
7609 tl_alloc_amt = l_tab.tl_alloc_amt(i),
7610 tl_alloc_acctd_amt = l_tab.tl_alloc_acctd_amt(i),
7611 tl_chrg_alloc_amt = l_tab.tl_chrg_alloc_amt(i),
7612 tl_chrg_alloc_acctd_amt = l_tab.tl_chrg_alloc_acctd_amt(i),
7613 tl_frt_alloc_amt = l_tab.tl_frt_alloc_amt(i),
7614 tl_frt_alloc_acctd_amt = l_tab.tl_frt_alloc_acctd_amt(i),
7615 tl_tax_alloc_amt = l_tab.tl_tax_alloc_amt(i),
7616 tl_tax_alloc_acctd_amt = l_tab.tl_tax_alloc_acctd_amt(i),
7617 -- ED
7618 tl_ed_alloc_amt = l_tab.tl_ed_alloc_amt(i),
7619 tl_ed_alloc_acctd_amt = l_tab.tl_ed_alloc_acctd_amt(i),
7620 tl_ed_chrg_alloc_amt = l_tab.tl_ed_chrg_alloc_amt(i),
7621 tl_ed_chrg_alloc_acctd_amt = l_tab.tl_ed_chrg_alloc_acctd_amt(i),
7622 tl_ed_frt_alloc_amt = l_tab.tl_ed_frt_alloc_amt(i),
7623 tl_ed_frt_alloc_acctd_amt = l_tab.tl_ed_frt_alloc_acctd_amt(i),
7624 tl_ed_tax_alloc_amt = l_tab.tl_ed_tax_alloc_amt(i),
7625 tl_ed_tax_alloc_acctd_amt = l_tab.tl_ed_tax_alloc_acctd_amt(i),
7626 -- UNED
7627 tl_uned_alloc_amt = l_tab.tl_uned_alloc_amt(i),
7628 tl_uned_alloc_acctd_amt = l_tab.tl_uned_alloc_acctd_amt(i),
7629 tl_uned_chrg_alloc_amt = l_tab.tl_uned_chrg_alloc_amt(i),
7630 tl_uned_chrg_alloc_acctd_amt = l_tab.tl_uned_chrg_alloc_acctd_amt(i),
7631 tl_uned_frt_alloc_amt = l_tab.tl_uned_frt_alloc_amt(i),
7632 tl_uned_frt_alloc_acctd_amt = l_tab.tl_uned_frt_alloc_acctd_amt(i),
7633 tl_uned_tax_alloc_amt = l_tab.tl_uned_tax_alloc_amt(i),
7634 tl_uned_tax_alloc_acctd_amt = l_tab.tl_uned_tax_alloc_acctd_amt(i)
7635 WHERE rowid = l_tab.ROWID_ID(i);
7636
7637 l_rows := sql%rowcount;
7638 IF PG_DEBUG = 'Y' THEN
7639 localdebug(' rows updated = ' || l_rows);
7640 END IF;
7641
7642 END LOOP;
7643 CLOSE c_read_for_line;
7644
7645 IF PG_DEBUG = 'Y' THEN
7646 localdebug('arp_det_dist_pkg.update_dist()-');
7647 END IF;
7648 EXCEPTION
7649 WHEN OTHERS THEN
7650 IF PG_DEBUG = 'Y' THEN
7651 localdebug(' EXCEPTION OTHERS update_dist :'||SQLERRM);
7652 END IF;
7653 END update_dist;
7654
7655 PROCEDURE create_split_distribution
7656 (p_pay_adj IN VARCHAR2,
7657 p_customer_trx_id IN NUMBER,
7658 p_gt_id IN VARCHAR2,
7659 p_app_level IN VARCHAR2,
7660 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
7661 IS
7662 l_amt NUMBER;
7663 l_ind VARCHAR2(10);
7664 l_org_id NUMBER;
7665 l_rows NUMBER;
7666 BEGIN
7667 IF PG_DEBUG = 'Y' THEN
7668 localdebug('arp_det_dist_pkg.create_split_distribution()+');
7669 localdebug(' p_pay_adj :'||p_pay_adj);
7670 localdebug(' p_customer_trx_id:'||p_customer_trx_id);
7671 localdebug(' p_app_level :'||p_app_level);
7672 localdebug(' p_ae_sys_rec.set_of_books_id :'||p_ae_sys_rec.set_of_books_id);
7673 localdebug(' p_ae_sys_rec.sob_type :'||p_ae_sys_rec.sob_type);
7674 localdebug(' p_gt_id :'||p_gt_id);
7675 END IF;
7676
7677 --Monoparsing
7678 IF g_upgrade_mode = 'Y' THEN
7679 INSERT INTO AR_LINE_APP_DETAIL_GT
7680 ( DET_ID
7681 ,APP_LEVEL
7682 ,GROUP_ID
7683 ,source_data_key1
7684 ,source_data_key2
7685 ,source_data_key3
7686 ,source_data_key4
7687 ,source_data_key5
7688 ,REF_CUSTOMER_TRX_ID
7689 ,REF_CUSTOMER_TRX_LINE_ID
7690 ,REF_CUST_TRX_LINE_GL_DIST_ID
7691 ,REF_LINE_ID
7692 ,REF_DET_ID
7693 ,SOURCE_TYPE
7694 ,SOURCE_TABLE
7695 ,SOURCE_ID
7696 ,AMOUNT
7697 ,ACCTD_AMOUNT
7698 ,CCID
7699 ,BASE_CURRENCY
7700 ,FROM_CURRENCY
7701 ,TO_CURRENCY
7702 ,ref_account_class
7703 ,activity_bucket
7704 ,CREATION_DATE
7705 ,CREATED_BY
7706 ,LAST_UPDATED_BY
7707 ,LAST_UPDATE_DATE
7708 ,LAST_UPDATE_LOGIN
7709 ,gt_id
7710 ,tax_link_id
7711 ,tax_inc_flag
7712 , ledger_id
7713 , ref_mf_dist_flag
7714 , org_id
7715 )
7716 SELECT /*+INDEX (A ra_ar_n1)*/
7717 NULL --ra_ar_s.NEXTVAL,
7718 ,p_app_level
7719 ,group_id
7720 ,source_data_key1
7721 ,source_data_key2
7722 ,source_data_key3
7723 ,source_data_key4
7724 ,source_data_key5
7725 ,REF_CUSTOMER_TRX_ID
7726 ,DECODE(b.act,'RAADJLINE' , DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-6,REF_CUSTOMER_TRX_LINE_ID),
7727 'RAADJFREIGHT', DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-9,REF_CUSTOMER_TRX_LINE_ID),
7728 'RAADJTAX' , DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-8,REF_CUSTOMER_TRX_LINE_ID),
7729 'RAADJCHARGES', DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-7,REF_CUSTOMER_TRX_LINE_ID),
7730 REF_CUSTOMER_TRX_LINE_ID)
7731 ,REF_CUST_TRX_LINE_GL_DIST_ID
7732 ,REF_LINE_ID
7733 ,REF_DET_ID
7734 ,source_type
7735 ,source_table
7736 ,source_id
7737 ,DECODE(b.act,'RAADJLINE' , tl_alloc_amt,
7738 'RAADJFREIGHT', tl_frt_alloc_amt,
7739 'RAADJTAX' , tl_tax_alloc_amt,
7740 'RAADJCHARGES', tl_chrg_alloc_amt,
7741 'EDLINE' , tl_ed_alloc_amt,
7742 'EDFREIGHT' , tl_ed_frt_alloc_amt,
7743 'EDTAX' , tl_ed_tax_alloc_amt,
7744 'EDCHARGES' , tl_ed_chrg_alloc_amt,
7745 'UNEDLINE' , tl_uned_alloc_amt,
7746 'UNEDFREIGHT' , tl_uned_frt_alloc_amt,
7747 'UNEDTAX' , tl_uned_tax_alloc_amt,
7748 'UNEDCHARGES' , tl_uned_chrg_alloc_amt)
7749 --acctd_alloc
7750 ,DECODE(b.act,'RAADJLINE' , tl_alloc_acctd_amt,
7751 'RAADJFREIGHT', tl_frt_alloc_acctd_amt,
7752 'RAADJTAX' , tl_tax_alloc_acctd_amt,
7753 'RAADJCHARGES', tl_chrg_alloc_acctd_amt,
7754 'EDLINE' , tl_ed_alloc_acctd_amt,
7755 'EDFREIGHT' , tl_ed_frt_alloc_acctd_amt,
7756 'EDTAX' , tl_ed_tax_alloc_acctd_amt,
7757 'EDCHARGES' , tl_ed_chrg_alloc_acctd_amt,
7758 'UNEDLINE' , tl_uned_alloc_acctd_amt,
7759 'UNEDFREIGHT' , tl_uned_frt_alloc_acctd_amt,
7760 'UNEDTAX' , tl_uned_tax_alloc_acctd_amt,
7761 'UNEDCHARGES' , tl_uned_chrg_alloc_acctd_amt)
7762 ,CCID_SECONDARY
7763 ,BASE_CURRENCY
7764 ,FROM_CURRENCY
7765 ,TO_CURRENCY
7766 --Account_class
7767 ,DECODE(b.act,
7768 'RAADJLINE' , DECODE(ACCOUNT_CLASS, 'INVOICE','REV',ACCOUNT_CLASS),
7769 'RAADJFREIGHT', DECODE(ACCOUNT_CLASS, 'INVOICE','FREIGHT',ACCOUNT_CLASS),
7770 'RAADJTAX' , DECODE(ACCOUNT_CLASS, 'INVOICE','TAX',ACCOUNT_CLASS),
7771 'RAADJCHARGES', DECODE(ACCOUNT_CLASS, 'INVOICE','CHARGES',ACCOUNT_CLASS),
7772 ACCOUNT_CLASS)
7773 --Activity Bucket
7774 ,DECODE(b.act,
7775 'RAADJLINE' , DECODE(p_pay_adj,'APP','APP_LINE','ADJ','ADJ_LINE',''),
7776 'RAADJFREIGHT', DECODE(p_pay_adj,'APP','APP_FRT','ADJ','ADJ_FRT',''),
7777 'RAADJTAX' , DECODE(p_pay_adj,'APP','APP_TAX','ADJ','ADJ_TAX',''),
7778 'RAADJCHARGES', DECODE(p_pay_adj,'APP','APP_CHRG','ADJ','ADJ_CHRG',''),
7779 'EDLINE' , 'ED_LINE',
7780 'EDFREIGHT' , 'ED_FRT',
7781 'EDTAX' , 'ED_TAX',
7782 'EDCHARGES' , 'ED_CHRG',
7783 'UNEDLINE' , 'UNED_LINE',
7784 'UNEDFREIGHT' , 'UNED_FRT',
7785 'UNEDTAX' , 'UNED_TAX',
7786 'UNEDCHARGES' , 'UNED_CHRG')
7787 ,SYSDATE
7788 ,1
7789 ,1
7790 ,SYSDATE
7791 ,1
7792 ,gt_id
7793 ,tax_link_id
7794 ,tax_inc_flag
7795 , p_ae_sys_rec.set_of_books_id
7796 , ref_mf_dist_flag
7797 , g_org_id
7798 FROM RA_AR_GT a,
7799 (SELECT DECODE(ROWNUM,1, 'RAADJLINE',
7800 2,'RAADJFREIGHT',
7801 3,'RAADJTAX',
7802 4,'RAADJCHARGES',
7803 5,'EDLINE',
7804 6,'EDFREIGHT',
7805 7,'EDTAX',
7806 8,'EDCHARGES',
7807 9,'UNEDLINE',
7808 10,'UNEDFREIGHT',
7809 11,'UNEDTAX',
7810 12,'UNEDCHARGES',NULL) act
7811 FROM DUAL CONNECT BY ROWNUM < 13 ) b
7812 WHERE REF_CUSTOMER_TRX_ID = p_customer_trx_id
7813 AND gt_id = p_gt_id
7814 AND REF_CUST_TRX_LINE_GL_DIST_ID IS NOT NULL
7815 AND gp_level = 'D'
7816 AND set_of_books_id = p_ae_sys_rec.set_of_books_id
7817 AND (sob_type = p_ae_sys_rec.sob_type OR
7818 (sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
7819 AND (( NVL(DECODE(b.act,
7820 'RAADJLINE' , tl_alloc_amt,
7821 'RAADJFREIGHT', tl_frt_alloc_amt,
7822 'RAADJTAX' , tl_tax_alloc_amt,
7823 'RAADJCHARGES', tl_chrg_alloc_amt,
7824 'EDLINE' , tl_ed_alloc_amt,
7825 'EDFREIGHT' , tl_ed_frt_alloc_amt,
7826 'EDTAX' , tl_ed_tax_alloc_amt,
7827 'EDCHARGES' , tl_ed_chrg_alloc_amt,
7828 'UNEDLINE' , tl_uned_alloc_amt,
7829 'UNEDFREIGHT' , tl_uned_frt_alloc_amt,
7830 'UNEDTAX' , tl_uned_tax_alloc_amt,
7831 'UNEDCHARGES' , tl_uned_chrg_alloc_amt),0)<> 0)
7832 OR
7833 ( NVL(DECODE(p_pay_adj,'ADJ', DECODE(b.act,'RAADJTAX',tl_tax_alloc_amt),
7834 'APP', DECODE(b.act,'EDTAX',tl_ed_tax_alloc_amt,
7835 'UNEDTAX',tl_uned_tax_alloc_amt)),1)=0)
7836 OR
7837 ( NVL(DECODE(b.act,
7838 'RAADJLINE' , tl_alloc_acctd_amt,
7839 'RAADJFREIGHT', tl_frt_alloc_acctd_amt,
7840 'RAADJTAX' , tl_tax_alloc_acctd_amt,
7841 'RAADJCHARGES', tl_chrg_alloc_acctd_amt,
7842 'EDLINE' , tl_ed_alloc_acctd_amt,
7843 'EDFREIGHT' , tl_ed_frt_alloc_acctd_amt,
7844 'EDTAX' , tl_ed_tax_alloc_acctd_amt,
7845 'EDCHARGES' , tl_ed_chrg_alloc_acctd_amt,
7846 'UNEDLINE' , tl_uned_alloc_acctd_amt,
7847 'UNEDFREIGHT' , tl_uned_frt_alloc_acctd_amt,
7848 'UNEDTAX' , tl_uned_tax_alloc_acctd_amt,
7849 'UNEDCHARGES' , tl_uned_chrg_alloc_acctd_amt),0)<>0)
7850 OR
7851 ( NVL(DECODE(p_pay_adj,'ADJ', DECODE(b.act,'RAADJTAX',tl_alloc_acctd_amt),
7852 'APP', DECODE(b.act,'EDTAX',tl_ed_tax_alloc_acctd_amt,
7853 'UNEDTAX',tl_uned_tax_alloc_acctd_amt)),1)=0));
7854
7855 -- l_rows := sql%rowcount;
7856 -- localdebug(' rows inserted = ' || l_rows);
7857 ELSE
7858 INSERT INTO AR_LINE_APP_DETAIL_GT
7859 ( DET_ID ,
7860 APP_LEVEL ,
7861 GROUP_ID ,
7862 source_data_key1 ,
7863 source_data_key2 ,
7864 source_data_key3 ,
7865 source_data_key4 ,
7866 source_data_key5 ,
7867 REF_CUSTOMER_TRX_ID ,
7868 REF_CUSTOMER_TRX_LINE_ID ,
7869 REF_CUST_TRX_LINE_GL_DIST_ID ,
7870 REF_LINE_ID ,
7871 REF_DET_ID ,
7872 SOURCE_TYPE ,
7873 SOURCE_TABLE ,
7874 SOURCE_ID ,
7875 AMOUNT ,
7876 ACCTD_AMOUNT ,
7877 CCID ,
7878 BASE_CURRENCY ,
7879 FROM_CURRENCY ,
7880 TO_CURRENCY ,
7881 ref_account_class ,
7882 activity_bucket ,
7883 CREATION_DATE ,
7884 CREATED_BY ,
7885 LAST_UPDATED_BY ,
7886 LAST_UPDATE_DATE ,
7887 LAST_UPDATE_LOGIN ,
7888 gt_id ,
7889 tax_link_id,
7890 tax_inc_flag,
7891 ledger_id,
7892 ref_mf_dist_flag,
7893 org_id
7894 )
7895 SELECT /*+INDEX (A RA_ar_n1)*/
7896 NULL, --ra_ar_s.NEXTVAL,
7897 p_app_level ,
7898 group_id ,
7899 source_data_key1 ,
7900 source_data_key2 ,
7901 source_data_key3 ,
7902 source_data_key4 ,
7903 source_data_key5 ,
7904 REF_CUSTOMER_TRX_ID ,
7905 DECODE(b.act,'RAADJLINE' , DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-6,REF_CUSTOMER_TRX_LINE_ID),
7906 'RAADJFREIGHT', DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-9,REF_CUSTOMER_TRX_LINE_ID),
7907 'RAADJTAX' , DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-8,REF_CUSTOMER_TRX_LINE_ID),
7908 'RAADJCHARGES', DECODE(REF_CUSTOMER_TRX_LINE_ID,-10,-7,REF_CUSTOMER_TRX_LINE_ID),
7909 REF_CUSTOMER_TRX_LINE_ID),
7910 REF_CUST_TRX_LINE_GL_DIST_ID,
7911 REF_LINE_ID ,
7912 REF_DET_ID ,
7913 source_type ,
7914 source_table ,
7915 source_id ,
7916 DECODE(b.act,'RAADJLINE' , tl_alloc_amt,
7917 'RAADJFREIGHT', tl_frt_alloc_amt,
7918 'RAADJTAX' , tl_tax_alloc_amt,
7919 'RAADJCHARGES', tl_chrg_alloc_amt,
7920 'EDLINE' , tl_ed_alloc_amt,
7921 'EDFREIGHT' , tl_ed_frt_alloc_amt,
7922 'EDTAX' , tl_ed_tax_alloc_amt,
7923 'EDCHARGES' , tl_ed_chrg_alloc_amt,
7924 'UNEDLINE' , tl_uned_alloc_amt,
7925 'UNEDFREIGHT' , tl_uned_frt_alloc_amt,
7926 'UNEDTAX' , tl_uned_tax_alloc_amt,
7927 'UNEDCHARGES' , tl_uned_chrg_alloc_amt),
7928 --acctd_alloc
7929 DECODE(b.act,'RAADJLINE' , tl_alloc_acctd_amt,
7930 'RAADJFREIGHT', tl_frt_alloc_acctd_amt,
7931 'RAADJTAX' , tl_tax_alloc_acctd_amt,
7932 'RAADJCHARGES', tl_chrg_alloc_acctd_amt,
7933 'EDLINE' , tl_ed_alloc_acctd_amt,
7934 'EDFREIGHT' , tl_ed_frt_alloc_acctd_amt,
7935 'EDTAX' , tl_ed_tax_alloc_acctd_amt,
7936 'EDCHARGES' , tl_ed_chrg_alloc_acctd_amt,
7937 'UNEDLINE' , tl_uned_alloc_acctd_amt,
7938 'UNEDFREIGHT' , tl_uned_frt_alloc_acctd_amt,
7939 'UNEDTAX' , tl_uned_tax_alloc_acctd_amt,
7940 'UNEDCHARGES' , tl_uned_chrg_alloc_acctd_amt),
7941 CCID_SECONDARY,
7942 BASE_CURRENCY,
7943 FROM_CURRENCY,
7944 TO_CURRENCY,
7945 --Account_class
7946 DECODE(b.act,
7947 'RAADJLINE' , DECODE(ACCOUNT_CLASS, 'INVOICE','REV',ACCOUNT_CLASS),
7948 'RAADJFREIGHT', DECODE(ACCOUNT_CLASS, 'INVOICE','FREIGHT',ACCOUNT_CLASS),
7949 'RAADJTAX' , DECODE(ACCOUNT_CLASS, 'INVOICE','TAX',ACCOUNT_CLASS),
7950 'RAADJCHARGES', DECODE(ACCOUNT_CLASS, 'INVOICE','CHARGES',ACCOUNT_CLASS),
7951 ACCOUNT_CLASS),
7952 --Activity Bucket
7953 DECODE(b.act,
7954 'RAADJLINE' , DECODE(p_pay_adj,'APP','APP_LINE','ADJ','ADJ_LINE',''),
7955 'RAADJFREIGHT', DECODE(p_pay_adj,'APP','APP_FRT','ADJ','ADJ_FRT',''),
7956 'RAADJTAX' , DECODE(p_pay_adj,'APP','APP_TAX','ADJ','ADJ_TAX',''),
7957 'RAADJCHARGES', DECODE(p_pay_adj,'APP','APP_CHRG','ADJ','ADJ_CHRG',''),
7958 'EDLINE' , 'ED_LINE',
7959 'EDFREIGHT' , 'ED_FRT',
7960 'EDTAX' , 'ED_TAX',
7961 'EDCHARGES' , 'ED_CHRG',
7962 'UNEDLINE' , 'UNED_LINE',
7963 'UNEDFREIGHT' , 'UNED_FRT',
7964 'UNEDTAX' , 'UNED_TAX',
7965 'UNEDCHARGES' , 'UNED_CHRG'),
7966 SYSDATE,
7967 arp_standard.profile.user_id,
7968 arp_standard.profile.user_id,
7969 SYSDATE,
7970 arp_standard.profile.last_update_login,
7971 gt_id,
7972 tax_link_id,
7973 tax_inc_flag,
7974 p_ae_sys_rec.set_of_books_id,
7975 ref_mf_dist_flag,
7976 arp_standard.sysparm.org_id
7977 FROM RA_AR_GT a,
7978 (SELECT DECODE(ROWNUM,1, 'RAADJLINE',
7979 2,'RAADJFREIGHT',
7980 3,'RAADJTAX',
7981 4,'RAADJCHARGES',
7982 5,'EDLINE',
7983 6,'EDFREIGHT',
7984 7,'EDTAX',
7985 8,'EDCHARGES',
7986 9,'UNEDLINE',
7987 10,'UNEDFREIGHT',
7988 11,'UNEDTAX',
7989 12,'UNEDCHARGES',NULL) act
7990 FROM DUAL CONNECT BY ROWNUM < 13 ) b
7991 WHERE REF_CUSTOMER_TRX_ID = p_customer_trx_id
7992 AND gt_id = p_gt_id
7993 AND REF_CUST_TRX_LINE_GL_DIST_ID IS NOT NULL
7994 AND gp_level = 'D'
7995 AND set_of_books_id = p_ae_sys_rec.set_of_books_id
7996 AND (sob_type = p_ae_sys_rec.sob_type OR
7997 (sob_type IS NULL AND p_ae_sys_rec.sob_type IS NULL))
7998 AND (( NVL(DECODE(b.act,
7999 'RAADJLINE' , tl_alloc_amt,
8000 'RAADJFREIGHT', tl_frt_alloc_amt,
8001 'RAADJTAX' , tl_tax_alloc_amt,
8002 'RAADJCHARGES', tl_chrg_alloc_amt,
8003 'EDLINE' , tl_ed_alloc_amt,
8004 'EDFREIGHT' , tl_ed_frt_alloc_amt,
8005 'EDTAX' , tl_ed_tax_alloc_amt,
8006 'EDCHARGES' , tl_ed_chrg_alloc_amt,
8007 'UNEDLINE' , tl_uned_alloc_amt,
8008 'UNEDFREIGHT' , tl_uned_frt_alloc_amt,
8009 'UNEDTAX' , tl_uned_tax_alloc_amt,
8010 'UNEDCHARGES' , tl_uned_chrg_alloc_amt),0)<> 0)
8011 OR
8012 ( NVL(DECODE(p_pay_adj,'ADJ', DECODE(b.act,'RAADJTAX',tl_tax_alloc_amt),
8013 'APP', DECODE(b.act,'EDTAX',tl_ed_tax_alloc_amt,
8014 'UNEDTAX',tl_uned_tax_alloc_amt)),1)=0)
8015 OR
8016 ( NVL(DECODE(b.act,
8017 'RAADJLINE' , tl_alloc_acctd_amt,
8018 'RAADJFREIGHT', tl_frt_alloc_acctd_amt,
8019 'RAADJTAX' , tl_tax_alloc_acctd_amt,
8020 'RAADJCHARGES', tl_chrg_alloc_acctd_amt,
8021 'EDLINE' , tl_ed_alloc_acctd_amt,
8022 'EDFREIGHT' , tl_ed_frt_alloc_acctd_amt,
8023 'EDTAX' , tl_ed_tax_alloc_acctd_amt,
8024 'EDCHARGES' , tl_ed_chrg_alloc_acctd_amt,
8025 'UNEDLINE' , tl_uned_alloc_acctd_amt,
8026 'UNEDFREIGHT' , tl_uned_frt_alloc_acctd_amt,
8027 'UNEDTAX' , tl_uned_tax_alloc_acctd_amt,
8028 'UNEDCHARGES' , tl_uned_chrg_alloc_acctd_amt),0)<>0)
8029 OR
8030 ( NVL(DECODE(p_pay_adj,'ADJ', DECODE(b.act,'RAADJTAX',tl_alloc_acctd_amt),
8031 'APP', DECODE(b.act,'EDTAX',tl_ed_tax_alloc_acctd_amt,
8032 'UNEDTAX',tl_uned_tax_alloc_acctd_amt)),1)=0));
8033
8034 l_rows := sql%rowcount;
8035 IF PG_DEBUG = 'Y' THEN
8036 localdebug(' rows inserted = ' || l_rows);
8037 END IF;
8038 END IF;
8039
8040 --{Taxable_amount
8041 update_taxable
8042 (p_gt_id => p_gt_id,
8043 p_customer_trx_id => p_customer_trx_id,
8044 p_ae_sys_rec => p_ae_sys_rec);
8045 --}
8046
8047 IF PG_DEBUG = 'Y' THEN
8048 localdebug('arp_det_dist_pkg.create_split_distribution()-');
8049 END IF;
8050 EXCEPTION
8051 WHEN OTHERS THEN
8052 IF PG_DEBUG = 'Y' THEN
8053 localdebug(' EXCEPTION OTHERS : create_split_distribution :'||SQLERRM);
8054 END IF;
8055 END create_split_distribution;
8056
8057
8058 PROCEDURE set_original_rem_amt_r12
8059 (p_customer_trx IN ra_customer_trx%ROWTYPE,
8060 x_return_status IN OUT NOCOPY VARCHAR2,
8061 x_msg_count IN OUT NOCOPY NUMBER,
8062 x_msg_data IN OUT NOCOPY VARCHAR2,
8063 p_from_llca IN VARCHAR2 DEFAULT 'N')
8064 IS
8065 CURSOR c(p_customer_trx_id IN NUMBER) IS
8066 SELECT SUM(AMOUNT),
8067 SUM(ACCTD_AMOUNT),
8068 customer_trx_line_id
8069 FROM ra_cust_trx_line_gl_dist
8070 WHERE customer_trx_id = p_customer_trx_id
8071 GROUP BY customer_trx_line_id;
8072
8073 l_amt_tab DBMS_SQL.NUMBER_TABLE;
8074 l_acctd_amt_tab DBMS_SQL.NUMBER_TABLE;
8075 l_ctl_tab DBMS_SQL.NUMBER_TABLE;
8076 l_last_fetch BOOLEAN := FALSE;
8077 l_found VARCHAR2(1) := 'N';
8078 l_trx_type VARCHAR2(30);
8079 l_c c%ROWTYPE;
8080 no_a_valid_trx EXCEPTION;
8081
8082 BEGIN
8083 IF PG_DEBUG = 'Y' THEN
8084 localdebug('arp_det_dist_pkg.set_original_rem_amt_r12()+');
8085 localdebug(' p_customer_trx.customer_trx_id:'||p_customer_trx.customer_trx_id);
8086 END IF;
8087 OPEN c(p_customer_trx.customer_trx_id);
8088 LOOP
8089 FETCH c BULK COLLECT INTO l_amt_tab,
8090 l_acctd_amt_tab,
8091 l_ctl_tab
8092 LIMIT g_bulk_fetch_rows;
8093
8094 IF c%NOTFOUND THEN
8095 l_last_fetch := TRUE;
8096 END IF;
8097
8098 IF (l_ctl_tab.COUNT = 0) AND (l_last_fetch) THEN
8099 IF PG_DEBUG = 'Y' THEN
8100 localdebug(' COUNT = 0 and LAST FETCH ');
8101 END IF;
8102 EXIT;
8103 END IF;
8104 l_found := 'Y';
8105
8106 IF PG_DEBUG = 'Y' THEN
8107 localdebug(' Setting the Original and Remaining amounts R12');
8108 END IF;
8109
8110 FORALL i IN l_ctl_tab.FIRST .. l_ctl_tab.LAST
8111 UPDATE ra_customer_trx_lines
8112 SET AMOUNT_DUE_REMAINING = l_amt_tab(i),
8113 ACCTD_AMOUNT_DUE_REMAINING = l_acctd_amt_tab(i),
8114 AMOUNT_DUE_ORIGINAL = l_amt_tab(i),
8115 ACCTD_AMOUNT_DUE_ORIGINAL = l_acctd_amt_tab(i),
8116 CHRG_AMOUNT_REMAINING = 0,
8117 CHRG_ACCTD_AMOUNT_REMAINING = 0,
8118 FRT_ADJ_REMAINING = 0,
8119 FRT_ADJ_ACCTD_REMAINING = 0,
8120 FRT_ED_AMOUNT = 0,
8121 FRT_ED_ACCTD_AMOUNT = 0,
8122 FRT_UNED_AMOUNT = 0,
8123 FRT_UNED_ACCTD_AMOUNT = 0
8124 WHERE customer_trx_line_id = l_ctl_tab(i);
8125 END LOOP;
8126 CLOSE c;
8127
8128 IF l_found = 'N' THEN
8129 RAISE no_a_valid_trx;
8130 END IF;
8131
8132 IF PG_DEBUG = 'Y' THEN
8133 localdebug('Setting transaction.upgrade_method to R12' );
8134 END IF;
8135 UPDATE ra_customer_trx SET upgrade_method = 'R12'
8136 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
8137
8138 IF PG_DEBUG = 'Y' THEN
8139 localdebug('arp_det_dist_pkg.set_original_rem_amt_r12()-');
8140 END IF;
8141
8142 EXCEPTION
8143 WHEN no_a_valid_trx THEN
8144 IF c%ISOPEN THEN CLOSE c; END IF;
8145 IF PG_DEBUG = 'Y' THEN
8146 localdebug('EXCEPTION no_a_valid_trx :'||p_customer_trx.customer_trx_id);
8147 END IF;
8148 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
8149 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR' );
8150 FND_MESSAGE.SET_TOKEN( 'TEXT', 'EXCEPTION Not a Valid Trx ID');
8151 FND_MSG_PUB.ADD;
8152 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
8153 p_count => x_msg_count,
8154 p_data => x_msg_data);
8155 WHEN OTHERS THEN
8156 IF c%ISOPEN THEN CLOSE c; END IF;
8157 IF PG_DEBUG = 'Y' THEN
8158 localdebug('EXCEPTION OTHERS in set_original_rem_amt_r12 :'||SQLERRM);
8159 END IF;
8160 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
8161 x_msg_data := 'EXCEPTION OTHERS in set_original_rem_amt_r12 :'||SQLERRM;
8162 END set_original_rem_amt_r12;
8163
8164
8165
8166 PROCEDURE set_original_rem_amt_mfar
8167 (p_customer_trx IN ra_customer_trx%ROWTYPE)
8168 IS
8169 CURSOR cmfar(p_customer_trx_id IN NUMBER) IS
8170 SELECT SUM(NVL(amount_due_remaining,0)) sum_due_rem,
8171 SUM(NVL(amount_due_original,0)) sum_due_orig,
8172 customer_trx_line_id customer_trx_line_id
8173 FROM psa_mf_balances_view
8174 WHERE customer_trx_id = p_customer_trx_id
8175 GROUP BY customer_trx_line_id;
8176 l_rem_amt_tab DBMS_SQL.NUMBER_TABLE;
8177 l_orig_amt_tab DBMS_SQL.NUMBER_TABLE;
8178 l_ctl_tab DBMS_SQL.NUMBER_TABLE;
8179 l_last_fetch BOOLEAN := FALSE;
8180 l_found VARCHAR2(1);
8181 BEGIN
8182 IF PG_DEBUG = 'Y' THEN
8183 localdebug('arp_det_dist_pkg.set_original_rem_amt_mfar()+');
8184 localdebug(' p_customer_trx.customer_trx_id:'||p_customer_trx.customer_trx_id);
8185 END IF;
8186
8187 OPEN cmfar(p_customer_trx.customer_trx_id);
8188 LOOP
8189 FETCH cmfar BULK COLLECT INTO l_rem_amt_tab, --for mfar remaining
8190 l_orig_amt_tab, --for mfar original
8191 l_ctl_tab
8192 LIMIT g_bulk_fetch_rows;
8193
8194 IF cmfar%NOTFOUND THEN
8195 l_last_fetch := TRUE;
8196 END IF;
8197
8198 IF (l_ctl_tab.COUNT = 0) AND (l_last_fetch) THEN
8199 IF PG_DEBUG = 'Y' THEN
8200 localdebug(' COUNT = 0 and LAST FETCH ');
8201 END IF;
8202 EXIT;
8203 END IF;
8204
8205 IF PG_DEBUG = 'Y' THEN
8206 localdebug(' Setting the Original and Remaining amounts MFAR');
8207 END IF;
8208
8209 FORALL i IN l_ctl_tab.FIRST .. l_ctl_tab.LAST
8210 UPDATE ra_customer_trx_lines
8211 SET AMOUNT_DUE_REMAINING = l_rem_amt_tab(i), -- Rem
8212 ACCTD_AMOUNT_DUE_REMAINING = l_rem_amt_tab(i), -- Rem transaction currency = functional
8213 AMOUNT_DUE_ORIGINAL = l_orig_amt_tab(i), -- original
8214 ACCTD_AMOUNT_DUE_ORIGINAL = l_orig_amt_tab(i), -- original
8215 CHRG_AMOUNT_REMAINING = 0,
8216 CHRG_ACCTD_AMOUNT_REMAINING = 0,
8217 FRT_ADJ_REMAINING = 0,
8218 FRT_ADJ_ACCTD_REMAINING = 0,
8219 FRT_ED_AMOUNT = 0,
8220 FRT_ED_ACCTD_AMOUNT = 0,
8221 FRT_UNED_AMOUNT = 0,
8222 FRT_UNED_ACCTD_AMOUNT = 0
8223 WHERE customer_trx_line_id = l_ctl_tab(i);
8224
8225 END LOOP;
8226 CLOSE cmfar;
8227
8228 IF PG_DEBUG = 'Y' THEN
8229 localdebug('arp_det_dist_pkg.set_original_rem_amt_mfar()-');
8230 END IF;
8231 EXCEPTION
8232 WHEN OTHERS THEN
8233 IF cmfar%ISOPEN THEN CLOSE cmfar; END IF;
8234 IF PG_DEBUG = 'Y' THEN
8235 localdebug(' EXCEPTION OTHERS in set_original_rem_amt_mfar :'||SQLERRM);
8236 END IF;
8237 END set_original_rem_amt_mfar;
8238
8239
8240
8241 PROCEDURE re_calcul_rem_amt(p_customer_trx IN ra_customer_trx%ROWTYPE)
8242 IS
8243
8244 /*bug6133206, multiplied APP amounts with '-1' to make them negative,
8245 for calculating the remaining amounts. */
8246
8247 CURSOR cu_rem_amt(p_customer_trx_id IN NUMBER) IS
8248 SELECT b.sum_orig sum_orig
8249 ,b.sum_acctd_orig sum_acctd_orig
8250 ,SUM((DECODE(a.activity_bucket,'ADJ_CHRG',amt
8251 ,'APP_CHRG',DECODE(a.line_type,'LINE',amt,0) * -1,0))) CHRG_ON_REV_LINE
8252 ,SUM((DECODE(a.activity_bucket,'ADJ_CHRG',acctd_amt
8253 ,'APP_CHRG',DECODE(a.line_type,'LINE',acctd_amt,0) * -1,0))) ACCTD_CHRG_ON_REV_LINE
8254 ,SUM((DECODE(a.activity_bucket,'ADJ_FRT',amt
8255 ,'APP_FRT',DECODE(a.line_type,'LINE',amt,0) * -1,0))) FRT_ON_REV_LINE
8256 ,SUM((DECODE(a.activity_bucket,'ADJ_FRT',amt
8257 ,'APP_FRT',DECODE(a.line_type,'LINE',acctd_amt,0) * -1,0))) ACCTD_FRT_ON_REV_LINE
8258 ,SUM((DECODE(a.activity_bucket,'ED_FRT',amt,0))) ED_FRT_REV_LINE
8259 ,SUM((DECODE(a.activity_bucket,'ED_FRT',acctd_amt,0))) ACCTD_ED_FRT_REV_LINE
8260 ,SUM((DECODE(a.activity_bucket,'UNED_FRT',amt,0))) UNED_FRT_REV_LINE
8261 ,SUM((DECODE(a.activity_bucket,'UNED_FRT',acctd_amt,0))) ACCTD_UNED_FRT_REV_LINE
8262 ,SUM((DECODE(a.activity_bucket,'ADJ_LINE',amt
8263 ,'APP_LINE',(amt * -1)
8264 ,'ED_LINE' ,amt
8265 ,'UNED_LINE',amt -- line
8266 ,'ADJ_TAX' ,amt
8267 ,'APP_TAX' ,(amt * -1)
8268 ,'ED_TAX' ,amt
8269 ,'UNED_TAX',amt --tax
8270 ,'APP_FRT' ,(DECODE(a.line_type,'FREIGHT',amt,0) * -1)
8271 ,'APP_CHRG',(DECODE(a.line_type,'CHARGES',amt,0) * -1)
8272 ,0))) REM_TYPE_LINE
8273 ,SUM((DECODE(a.activity_bucket,'ADJ_LINE',acctd_amt
8274 ,'APP_LINE',(acctd_amt * -1)
8275 ,'ED_LINE' ,acctd_amt
8276 ,'UNED_LINE',acctd_amt -- line
8277 ,'ADJ_TAX' ,acctd_amt
8278 ,'APP_TAX' ,(acctd_amt * -1)
8279 ,'ED_TAX' ,acctd_amt
8280 ,'UNED_TAX',acctd_amt --tax
8281 ,'APP_FRT' ,(DECODE(a.line_type,'FREIGHT',acctd_amt,0) * -1)
8282 ,'APP_CHRG',(DECODE(a.line_type,'CHARGES',acctd_amt,0) * -1)
8283 ,0))) ACCTD_REM_TYPE_LINE
8284 ,a.ref_customer_trx_line_id CUSTOMER_TRX_LINE_ID
8285 FROM
8286 (SELECT SUM( NVL(ard.amount_cr,0) - NVL(ard.amount_dr,0) ) amt,
8287 SUM( NVL(ard.acctd_amount_cr,0) - NVL(ard.acctd_amount_dr,0)) acctd_amt,
8288 ard.ref_customer_trx_line_id,
8289 ard.ref_account_class,
8290 ard.activity_bucket,
8291 ctl.line_type
8292 FROM ar_distributions ard,
8293 ra_customer_trx_lines ctl
8294 WHERE ctl.customer_trx_id = p_customer_trx_id
8295 AND ctl.customer_trx_line_id = ard.ref_customer_trx_line_id
8296 GROUP BY
8297 ard.ref_customer_trx_line_id,
8298 ard.ref_account_class,
8299 ard.activity_bucket,
8300 ctl.line_type) a,
8301 (SELECT SUM(AMOUNT) sum_orig,
8302 SUM(ACCTD_AMOUNT) sum_acctd_orig,
8303 customer_trx_line_id
8304 FROM ra_cust_trx_line_gl_dist
8305 WHERE customer_trx_id = p_customer_trx_id
8306 GROUP BY customer_trx_line_id) b
8307 WHERE a.ref_customer_trx_line_id = b.customer_trx_line_id
8308 GROUP BY a.ref_customer_trx_line_id,
8309 b.sum_orig,
8310 b.sum_acctd_orig;
8311
8312 l_sum_orig DBMS_SQL.NUMBER_TABLE;
8313 l_sum_acctd_orig DBMS_SQL.NUMBER_TABLE;
8314 l_CHRG_ON_REV_LINE DBMS_SQL.NUMBER_TABLE;
8315 l_ACCTD_CHRG_ON_REV_LINE DBMS_SQL.NUMBER_TABLE;
8316 l_FRT_ON_REV_LINE DBMS_SQL.NUMBER_TABLE;
8317 l_ACCTD_FRT_ON_REV_LINE DBMS_SQL.NUMBER_TABLE;
8318 l_ED_FRT_REV_LINE DBMS_SQL.NUMBER_TABLE;
8319 l_ACCTD_ED_FRT_REV_LINE DBMS_SQL.NUMBER_TABLE;
8320 l_UNED_FRT_REV_LINE DBMS_SQL.NUMBER_TABLE;
8321 l_ACCTD_UNED_FRT_REV_LINE DBMS_SQL.NUMBER_TABLE;
8322 l_REM_TYPE_LINE DBMS_SQL.VARCHAR2_TABLE;
8323 l_ACCTD_REM_TYPE_LINE DBMS_SQL.NUMBER_TABLE;
8324 l_CUSTOMER_TRX_LINE_ID DBMS_SQL.NUMBER_TABLE;
8325
8326 l_last_fetch BOOLEAN := FALSE;
8327
8328 BEGIN
8329 IF PG_DEBUG = 'Y' THEN
8330 localdebug('arp_det_dist_pkg.re_calcul_rem_amt()+');
8331 localdebug('p_customer_trx_id = ' || p_customer_trx.customer_trx_id);
8332 END IF;
8333 OPEN cu_rem_amt(p_customer_trx.customer_trx_id);
8334 LOOP
8335 FETCH cu_rem_amt BULK COLLECT INTO
8336 l_sum_orig ,
8337 l_sum_acctd_orig ,
8338 l_chrg_on_rev_line ,
8339 l_acctd_chrg_on_rev_line,
8340 l_frt_on_rev_line ,
8341 l_acctd_frt_on_rev_line ,
8342 l_ed_frt_rev_line ,
8343 l_acctd_ed_frt_rev_line ,
8344 l_uned_frt_rev_line ,
8345 l_acctd_uned_frt_rev_line,
8346 l_rem_type_line ,
8347 l_acctd_rem_type_line ,
8348 l_customer_trx_line_id
8349 LIMIT g_bulk_fetch_rows;
8350
8351 IF cu_rem_amt%NOTFOUND THEN
8352 l_last_fetch := TRUE;
8353 END IF;
8354
8355 IF (l_CUSTOMER_TRX_LINE_ID.COUNT = 0) AND (l_last_fetch) THEN
8356 IF PG_DEBUG = 'Y' THEN
8357 localdebug('COUNT = 0 and LAST FETCH ');
8358 END IF;
8359 EXIT;
8360 END IF;
8361
8362 FORALL i IN l_CUSTOMER_TRX_LINE_ID.FIRST .. l_CUSTOMER_TRX_LINE_ID.LAST
8363 UPDATE ra_customer_trx_lines
8364 SET amount_due_original = l_sum_orig(i),
8365 acctd_amount_due_original = l_sum_acctd_orig(i),
8366 AMOUNT_DUE_REMAINING = l_sum_orig(i) + l_REM_TYPE_LINE(i),
8367 ACCTD_AMOUNT_DUE_REMAINING = l_sum_acctd_orig(i) + l_ACCTD_REM_TYPE_LINE(i),
8368 CHRG_AMOUNT_REMAINING = l_chrg_on_rev_line(i),
8369 CHRG_ACCTD_AMOUNT_REMAINING = l_ACCTD_chrg_on_rev_line(i),
8370 FRT_ADJ_REMAINING = l_FRT_ON_REV_LINE(i),
8371 FRT_ADJ_ACCTD_REMAINING = l_ACCTD_FRT_ON_REV_LINE(i),
8372 frt_ed_amount = l_ED_FRT_REV_LINE(i),
8373 frt_ed_acctd_amount = l_ACCTD_ED_FRT_REV_LINE(i),
8374 frt_uned_amount = l_UNED_FRT_REV_LINE(i),
8375 frt_uned_acctd_amount = l_ACCTD_UNED_FRT_REV_LINE(i)
8376 WHERE customer_trx_line_id = l_CUSTOMER_TRX_LINE_ID(i)
8377 AND customer_trx_id = p_customer_trx.customer_trx_id;
8378 END LOOP;
8379 CLOSE cu_rem_amt;
8380 IF PG_DEBUG = 'Y' THEN
8381 localdebug('arp_det_dist_pkg.re_calcul_rem_amt()-');
8382 END IF;
8383 EXCEPTION
8384 WHEN OTHERS THEN
8385 IF PG_DEBUG = 'Y' THEN
8386 localdebug(' EXCEPTION OTHERS re_calcul_rem_amt :'|| SQLERRM);
8387 END IF;
8388 RAISE;
8389 END re_calcul_rem_amt;
8390
8391
8392 /* For AUTOINV call, Overloaded call*/
8393
8394 PROCEDURE set_original_rem_amt_r12(p_request_id IN NUMBER)
8395 AS
8396
8397 -- Get all invoices / debit memos which need balance stamping
8398 --
8399 CURSOR c01 IS
8400 SELECT
8401 SUM(gld.AMOUNT),
8402 SUM(gld.ACCTD_AMOUNT),
8403 gld.customer_trx_line_id,
8404 inv.customer_trx_id
8405 FROM
8406 ra_customer_trx inv,
8407 ra_cust_trx_line_gl_dist gld,
8408 ra_cust_trx_types ctt
8409 WHERE inv.customer_trx_id = gld.customer_trx_id
8410 AND ctt.CUST_TRX_TYPE_ID = inv.CUST_TRX_TYPE_ID
8411 AND inv.request_id = p_request_id
8412 AND ctt.TYPE in ('INV','DM')
8413 GROUP BY gld.customer_trx_line_id,inv.customer_trx_id;
8414
8415 CURSOR c02 IS
8416 SELECT
8417 customer_trx_id
8418 FROM
8419 ra_customer_trx inv,
8420 ra_cust_trx_types ctt
8421 WHERE request_id = P_request_id
8422 AND ctt.CUST_TRX_TYPE_ID = inv.CUST_TRX_TYPE_ID
8423 AND ctt.TYPE in ('INV','DM')
8424 AND EXISTS
8425 (SELECT 1
8426 FROM ar_receivable_applications ar
8427 WHERE ar.applied_customer_trx_id = inv.customer_trx_id
8428 UNION
8429 SELECT 1
8430 FROM ar_adjustments ad
8431 WHERE ad.customer_trx_id = inv.customer_trx_id
8432 );
8433
8434
8435
8436 l_amt_tab DBMS_SQL.NUMBER_TABLE;
8437 l_acctd_amt_tab DBMS_SQL.NUMBER_TABLE;
8438 l_ctl_tab DBMS_SQL.NUMBER_TABLE;
8439 l_ctl_hd_tab DBMS_SQL.NUMBER_TABLE;
8440 l_ctl_app_tab DBMS_SQL.NUMBER_TABLE;
8441 l_customer_trx ra_customer_trx%ROWTYPE;
8442 l_last_fetch BOOLEAN := FALSE;
8443
8444 l_msg RA_INTERFACE_ERRORS.MESSAGE_TEXT%TYPE;
8445 l_return_status VARCHAR2(100);
8446 l_msg_count NUMBER:=0;
8447 l_msg_data VARCHAR2(20000):= NULL;
8448
8449 BEGIN
8450
8451 IF PG_DEBUG = 'Y' THEN
8452 localdebug('arp_det_dist_pkg.set_original_rem_amt_r12() OVERLOAD +');
8453 END IF;
8454
8455
8456 OPEN c01;
8457 LOOP
8458 FETCH c01 BULK COLLECT INTO l_amt_tab,
8459 l_acctd_amt_tab,
8460 l_ctl_tab,
8461 l_ctl_hd_tab
8462 LIMIT g_bulk_fetch_rows;
8463
8464 IF c01%NOTFOUND THEN
8465 l_last_fetch := TRUE;
8466 END IF;
8467
8468 IF (l_ctl_tab.COUNT = 0) AND (l_last_fetch) THEN
8469 IF PG_DEBUG = 'Y' THEN
8470 localdebug(' COUNT = 0 and LAST FETCH ');
8471 END IF;
8472 EXIT;
8473 END IF;
8474
8475
8476 IF PG_DEBUG = 'Y' THEN
8477 localdebug(' Setting the Original R12');
8478 END IF;
8479 /*FORALL*/
8480 FOR i IN l_ctl_tab.FIRST .. l_ctl_tab.LAST
8481 LOOP
8482 BEGIN
8483 UPDATE ra_customer_trx_lines
8484 SET AMOUNT_DUE_REMAINING = l_amt_tab(i),
8485 ACCTD_AMOUNT_DUE_REMAINING = l_acctd_amt_tab(i),
8486 AMOUNT_DUE_ORIGINAL = l_amt_tab(i),
8487 ACCTD_AMOUNT_DUE_ORIGINAL = l_acctd_amt_tab(i),
8488 CHRG_AMOUNT_REMAINING = 0,
8489 CHRG_ACCTD_AMOUNT_REMAINING = 0,
8490 FRT_ADJ_REMAINING = 0,
8491 FRT_ADJ_ACCTD_REMAINING = 0,
8492 FRT_ED_AMOUNT = 0,
8493 FRT_ED_ACCTD_AMOUNT = 0,
8494 FRT_UNED_AMOUNT = 0,
8495 FRT_UNED_ACCTD_AMOUNT = 0
8496 WHERE customer_trx_line_id = l_ctl_tab(i);
8497 EXCEPTION
8498 WHEN OTHERS THEN
8499 IF PG_DEBUG in ('Y', 'C') THEN
8500 arp_standard.debug('Inserting into errors...');
8501 END IF;
8502
8503 IF c01%ISOPEN THEN CLOSE c01; END IF;
8504
8505 l_msg := 'Error while stamping the balance amt'||l_ctl_hd_tab(i);
8506
8507
8508 INSERT INTO ra_interface_errors
8509 (
8510 --org_id,
8511 interface_line_id,
8512 message_text
8513 )
8514 SELECT
8515 --org_id,
8516 customer_trx_line_id,
8517 l_msg
8518 FROM
8519 ra_customer_trx_lines lines
8520 WHERE
8521 lines.customer_trx_id = l_ctl_hd_tab(i);
8522 END;
8523 END LOOP;
8524
8525 END LOOP;
8526 CLOSE c01;
8527
8528
8529 IF PG_DEBUG = 'Y' THEN
8530 localdebug('Setting transaction.upgrade_method to R12' );
8531 END IF;
8532 UPDATE ra_customer_trx inv SET upgrade_method = 'R12'
8533 WHERE request_id = p_request_id
8534 AND EXISTS
8535 ( SELECT 1
8536 FROM ra_cust_trx_types ctt
8537 WHERE ctt.CUST_TRX_TYPE_ID = inv.CUST_TRX_TYPE_ID
8538 AND ctt.TYPE in ('INV','DM'))
8539 AND NOT EXISTS (
8540 SELECT 1
8541 FROM ra_customer_trx_lines l, ra_interface_errors e
8542 WHERE l.customer_trx_id = inv.customer_trx_id
8543 AND l.customer_trx_line_id = e.interface_line_id);
8544
8545 -- Setting the Original and Remaining amounts R12
8546 --
8547 l_last_fetch := FALSE;
8548
8549 OPEN c02;
8550 LOOP
8551 FETCH c02 BULK COLLECT INTO l_ctl_app_tab
8552 LIMIT g_bulk_fetch_rows;
8553
8554 IF c02%NOTFOUND THEN
8555 l_last_fetch := TRUE;
8556 END IF;
8557
8558 IF (l_ctl_app_tab.COUNT = 0) AND (l_last_fetch) THEN
8559 IF PG_DEBUG = 'Y' THEN
8560 localdebug(' COUNT = 0 and LAST FETCH ');
8561 END IF;
8562 EXIT;
8563 END IF;
8564
8565 IF PG_DEBUG = 'Y' THEN
8566 localdebug(' Setting the Original and Remaining amounts R12');
8567 END IF;
8568 FOR i IN l_ctl_app_tab.FIRST .. l_ctl_app_tab.LAST
8569 LOOP
8570 BEGIN
8571 l_customer_trx.customer_trx_id := l_ctl_app_tab(i);
8572 re_calcul_rem_amt(p_customer_trx => l_customer_trx);
8573
8574 EXCEPTION
8575 WHEN OTHERS THEN
8576 IF PG_DEBUG in ('Y', 'C') THEN
8577 arp_standard.debug('Inserting into errors...');
8578 END IF;
8579
8580 IF c02%ISOPEN THEN CLOSE c02; END IF;
8581
8582 l_msg := 'Error while stamping the balance amt'||l_ctl_app_tab(i);
8583
8584
8585 INSERT INTO ra_interface_errors
8586 (
8587 --org_id,
8588 interface_line_id,
8589 message_text
8590 )
8591 SELECT
8592 --org_id,
8593 customer_trx_line_id,
8594 l_msg
8595 FROM
8596 ra_customer_trx_lines lines
8597 WHERE
8598 lines.customer_trx_id = l_ctl_app_tab(i);
8599 END;
8600 END LOOP;
8601
8602 END LOOP;
8603 CLOSE c02;
8604
8605 -- Setting the Original and Remaining amounts R12 END
8606 --
8607
8608 IF PG_DEBUG = 'Y' THEN
8609 localdebug('arp_det_dist_pkg.set_original_rem_amt_r12() OVERLOAD -');
8610 END IF;
8611 EXCEPTION
8612
8613 WHEN OTHERS THEN
8614 IF PG_DEBUG = 'Y' THEN
8615 localdebug(' EXCEPTION OTHERS in set_original_rem_amt_r12 OVERLOAD :'||SQLERRM(SQLCODE));
8616 END IF;
8617 RAISE;
8618 END set_original_rem_amt_r12; -- End of OVERLOAD procedure
8619
8620
8621 PROCEDURE set_original_rem_amt
8622 (p_customer_trx IN ra_customer_trx%ROWTYPE,
8623 p_adj_id IN NUMBER DEFAULT NULL,
8624 p_app_id IN NUMBER DEFAULT NULL,
8625 --{HYUNLB
8626 p_from_llca IN VARCHAR2 DEFAULT 'N')
8627 --}
8628 IS
8629
8630 CURSOR c_verif(p_customer_trx_id IN NUMBER) IS
8631 SELECT trx.upgrade_method,
8632 ctl.amount_due_original,
8633 ctl.amount_due_remaining
8634 FROM ra_customer_trx trx,
8635 ra_customer_trx_lines ctl
8636 WHERE trx.customer_trx_id = p_customer_trx_id
8637 AND ctl.customer_trx_id = trx.customer_trx_id;
8638
8639 l_trx_type VARCHAR2(30);
8640 l_lazy_res VARCHAR2(1) := 'N';
8641 l_mfar_res VARCHAR2(1) := 'N';
8642 l_11i_adj VARCHAR2(1);
8643 l_mfar_adj VARCHAR2(1);
8644 l_11i_app VARCHAR2(1);
8645 l_mfar_app VARCHAR2(1);
8646 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
8647 l_msg_data VARCHAR2(2000);
8648 l_msg_count NUMBER;
8649 --{HYUNBL
8650 l_verif_rec c_verif%ROWTYPE;
8651 --}
8652 no_need_to_set_orig_rem_amt EXCEPTION;
8653 no_a_valid_trx EXCEPTION;
8654 no_llca_allowed EXCEPTION;
8655 excep_set_org_rem_amt_r12 EXCEPTION; --LLCA
8656 BEGIN
8657 IF PG_DEBUG = 'Y' THEN
8658 localdebug('arp_det_dist_pkg.set_original_rem_amt()+');
8659 localdebug(' p_adj_id :'||p_adj_id );
8660 localdebug(' p_app_id :'||p_app_id );
8661 END IF;
8662
8663 OPEN c_verif(p_customer_trx.customer_trx_id);
8664 FETCH c_verif INTO l_verif_rec;
8665 IF c_verif%NOTFOUND THEN -- 1
8666 RAISE no_a_valid_trx;
8667 ELSE --1
8668 IF l_verif_rec.upgrade_method IN ('R12','R12_11IMFAR') THEN --2
8669
8670 IF PG_DEBUG = 'Y' THEN
8671 localdebug('balance on the transaction should have been updated ');
8672 localdebug(' No matter LLCA or not, they should be maintained ');
8673 localdebug(' transaction current upgrade_method :'|| l_verif_rec.upgrade_method);
8674 localdebug(' p_from_llca :'|| p_from_llca);
8675 localdebug('We are showing the balances on the first line to avoid loop');
8676 localdebug(' l_verif_rec.amount_due_original :'||l_verif_rec.amount_due_original);
8677 localdebug(' l_verif_rec.amount_due_remaining :'||l_verif_rec.amount_due_remaining);
8678 END IF;
8679 -- The transaction has been llca applied, hence the balance is up to date
8680 -- NB balance should maintained after the activity
8681 RAISE no_need_to_set_orig_rem_amt;
8682
8683 ELSIF l_verif_rec.upgrade_method = 'R12_NLB' AND p_from_llca = 'Y' THEN --2
8684
8685 IF PG_DEBUG = 'Y' THEN
8686 localdebug('balance on the transaction should not be maintained untill today ');
8687 localdebug(' Need to update it and the transaction will have balance maintained as the user is doing LLCA');
8688 END IF;
8689 --{HYUNLB
8690 -- Update rem amount
8691 re_calcul_rem_amt(p_customer_trx => p_customer_trx);
8692
8693 IF PG_DEBUG = 'Y' THEN
8694 localdebug(' going forward and it should be marked as R12');
8695 END IF;
8696 UPDATE ra_customer_trx
8697 SET upgrade_method = 'R12'
8698 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
8699 --}
8700
8701 ELSIF l_verif_rec.upgrade_method = 'R12_11ICASH' THEN --2
8702
8703 IF p_from_llca = 'Y' THEN
8704 IF PG_DEBUG = 'Y' THEN
8705 localdebug('As p_from_llca = Y and transacation.upgrade_method = R12_11ICASH ');
8706 localdebug('11i legacy transaction none MFAR, no Line Level Cash Application is allowed');
8707 END IF;
8708 RAISE no_llca_allowed;
8709 ELSE
8710 IF PG_DEBUG = 'Y' THEN
8711 localdebug('Transaction level activity on R12_11ICASH transaction balance will not be maintained');
8712 END IF;
8713 END IF;
8714
8715 ELSE --2
8716 IF PG_DEBUG = 'Y' THEN
8717 localdebug('At this point the transaction upgrade_method is not set');
8718 localdebug(' l_verif_rec.upgrade_method :'||l_verif_rec.upgrade_method );
8719 END IF;
8720
8721 check_legacy_status
8722 (p_trx_id => p_customer_trx.customer_trx_id,
8723 p_adj_id => p_adj_id,
8724 p_app_id => p_app_id,
8725 x_11i_adj => l_11i_adj,
8726 x_mfar_adj => l_mfar_adj,
8727 x_11i_app => l_11i_app,
8728 x_mfar_app => l_mfar_app);
8729
8730 -- Normal R12
8731 IF ((l_11i_adj = 'N') AND (l_mfar_adj = 'N') AND
8732 (l_11i_app = 'N') AND (l_mfar_app = 'N'))
8733 THEN --3
8734 --{HYUNLB
8735 IF p_from_llca = 'Y' THEN
8736
8737 IF PG_DEBUG = 'Y' THEN
8738 localdebug('As user is Line Level activating the trx - p_from_llca:'||p_from_llca);
8739 localdebug('Updating the Line Balance' );
8740 END IF;
8741 --LLCA
8742 --set_original_rem_amt_r12(p_customer_trx => p_customer_trx);
8743 set_original_rem_amt_r12(p_customer_trx => p_customer_trx,
8744 x_return_status => l_return_status,
8745 x_msg_count => l_msg_count,
8746 x_msg_data => l_msg_data,
8747 p_from_llca => 'Y');
8748
8749 IF l_return_status <> fnd_api.g_ret_sts_success THEN
8750 RAISE excep_set_org_rem_amt_r12;
8751 END IF;
8752
8753
8754 /* localdebug('Setting transaction.upgrade_method to R12' );
8755 UPDATE ra_customer_trx SET upgrade_method = 'R12'
8756 WHERE customer_trx_id = p_customer_trx.customer_trx_id; */
8757
8758 ELSE
8759
8760 IF PG_DEBUG = 'Y' THEN
8761 localdebug('This is a direct activity on the transaction - p_from_llca:'||p_from_llca);
8762 localdebug('No balance maintenance and setting transaction.upg_flag to R12_NLB');
8763 END IF;
8764 --{HYUNLB
8765 -- By setting the upg_make to R12_NLB
8766 -- <=> Do not maintain the line balance
8767 -- R12_NLB
8768 UPDATE ra_customer_trx SET upgrade_method = 'R12_NLB'
8769 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
8770 --}
8771 END IF;
8772
8773 -- MFAR legacy R12_11IMFAR
8774 ELSIF ((l_mfar_adj = 'Y') OR (l_mfar_app = 'Y'))
8775 THEN --3
8776 --
8777 -- The starting balance should start from PSA
8778 --
8779 IF PG_DEBUG = 'Y' THEN
8780 localdebug('No matter LLCA or not, this a 11I MFAR transaction, we need to maintained balance');
8781 END IF;
8782 set_original_rem_amt_mfar(p_customer_trx => p_customer_trx);
8783
8784 IF PG_DEBUG = 'Y' THEN
8785 localdebug('Setting the transaction.upgrade_method to R12_11IMFAR');
8786 END IF;
8787 UPDATE ra_customer_trx SET upgrade_method = 'R12_11IMFAR'
8788 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
8789
8790
8791 ELSIF ((l_11i_adj = 'N') AND (l_11i_app = 'Y'))
8792 THEN --3
8793 -- Normal we do not maintain the line level balance
8794 -- In this case the balance on the line are inaccurate
8795 -- Although future adjustment and future application can tied
8796 -- back to original transaction distributions, I mark them to use
8797 -- R12_11ICASH method, because a application in 11i can increase
8798 -- the balance of the lines as AR allow
8799 -- positive credit memo applied to an invoice
8800 -- If we use the R12 method for applications, over applications can happen
8801 -- resulting impossibility to close the transaction
8802 IF p_from_llca = 'Y' THEN
8803 IF PG_DEBUG = 'Y' THEN
8804 localdebug('On this transaction no 11i adjustments has occurs');
8805 localdebug('But some applications in 11i has happened');
8806 localdebug('This is a 11i legacy transaction with 11i activity- LLCA should be allowed');
8807 END IF;
8808 RAISE no_llca_allowed;
8809
8810 ELSE
8811 IF PG_DEBUG = 'Y' THEN
8812 localdebug('On this transaction no 11i adjustments has occurs');
8813 localdebug('But some applications in 11i has happened');
8814 localdebug('No maintenace of the line balances, but we set them as original for cm');
8815 -- set_original_rem_amt_r12(p_customer_trx => p_customer_trx);
8816
8817 --g_adj_yn := 'N';
8818 localdebug('Setting the transaction.upgrade_method');
8819 END IF;
8820 UPDATE ra_customer_trx SET upgrade_method = 'R12_11ICASH'
8821 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
8822 END IF;
8823 ELSE --3
8824 -- CASH legacy R12_11ICASH
8825 -- (l_11i_adj = 'Y')
8826 -- In this case future applications need to be prorated over
8827 -- existing adjustment distributions without the possibility
8828 -- to tied back to the original distributions only buckets will
8829 -- be identificable
8830
8831 --g_adj_yn := 'N';
8832
8833 IF p_from_llca = 'Y' THEN
8834 IF PG_DEBUG = 'Y' THEN
8835 localdebug('On this transaction 11i adjustments has occurs');
8836 localdebug('This is a 11i legacy transaction with 11i activity- LLCA should be allowed');
8837 END IF;
8838 RAISE no_llca_allowed;
8839
8840 ELSE
8841 IF PG_DEBUG = 'Y' THEN
8842 localdebug('On this transaction 11i adjustments has occurs');
8843 localdebug('No maintenace of the line balances');
8844
8845 -- set_original_rem_amt_r12(p_customer_trx => p_customer_trx);
8846
8847 localdebug('Setting the transaction.upgrade_method');
8848 END IF;
8849 UPDATE ra_customer_trx SET upgrade_method = 'R12_11ICASH'
8850 WHERE customer_trx_id = p_customer_trx.customer_trx_id;
8851
8852 END IF;
8853
8854 END IF; --3
8855 END IF; --2
8856 END IF; --1
8857 CLOSE c_verif;
8858
8859 IF PG_DEBUG = 'Y' THEN
8860 localdebug('arp_det_dist_pkg.set_original_rem_amt()-');
8861 END IF;
8862 EXCEPTION
8863 WHEN no_need_to_set_orig_rem_amt THEN
8864 IF c_verif%ISOPEN THEN CLOSE c_verif; END IF;
8865 IF PG_DEBUG = 'Y' THEN
8866 localdebug(' No need to set orig rem amount');
8867 localdebug('arp_det_dist_pkg.set_original_rem_amt()-');
8868 END IF;
8869
8870 WHEN no_a_valid_trx THEN
8871 IF c_verif%ISOPEN THEN CLOSE c_verif; END IF;
8872 IF PG_DEBUG = 'Y' THEN
8873 localdebug('EXCEPTION no_a_valid_trx :'||p_customer_trx.customer_trx_id);
8874 END IF;
8875 RAISE;
8876
8877 WHEN no_llca_allowed THEN
8878 IF c_verif%ISOPEN THEN CLOSE c_verif; END IF;
8879 IF PG_DEBUG = 'Y' THEN
8880 localdebug('EXCEPTION NO_llca_allowed customer_trx_id :'||p_customer_trx.customer_trx_id);
8881 END IF;
8882 RAISE;
8883
8884 WHEN excep_set_org_rem_amt_r12 THEN
8885 IF PG_DEBUG = 'Y' THEN
8886 localdebug('EXCEPTION_set_original_rem_amt_r12 error count:'||l_msg_count);
8887 localdebug('last error:'||l_msg_data);
8888 END IF;
8889 RAISE;
8890
8891
8892 WHEN OTHERS THEN
8893 IF c_verif%ISOPEN THEN CLOSE c_verif; END IF;
8894 IF PG_DEBUG = 'Y' THEN
8895 localdebug(' EXCEPTION OTHERS set_original_rem_amt:'||SQLERRM);
8896 END IF;
8897 RAISE;
8898 END set_original_rem_amt;
8899
8900
8901 PROCEDURE insert_ra_ar_gt
8902 ( p_ra_ar_gt IN ra_ar_gt%ROWTYPE,
8903 p_ar_base_dist_amts_gt IN ar_base_dist_amts_gt%ROWTYPE,
8904 p_ra_ar_amounts_gt IN ra_ar_amounts_gt%ROWTYPE
8905 )
8906 IS
8907 l_rows NUMBER;
8908 l_base_rowid ROWID;
8909 BEGIN
8910 INSERT INTO ra_ar_gt
8911 (
8912 GT_ID
8913 ,BASE_CURRENCY
8914 ,TO_CURRENCY
8915 ,FROM_CURRENCY
8916 ,DET_ID
8917 ,LINE_ID
8918 ,REF_CUSTOMER_TRX_ID
8919 ,REF_CUSTOMER_TRX_LINE_ID
8920 ,REF_CUST_TRX_LINE_GL_DIST_ID
8921 ,REF_LINE_ID
8922 ,REF_DET_ID
8923 ,ACCOUNT_CLASS
8924 ,SOURCE_TYPE
8925 ,SOURCE_TABLE
8926 ,SOURCE_ID
8927 ,AMT
8928 ,ACCTD_AMT
8929 ,AMT_DR
8930 ,AMT_CR
8931 ,ACCTD_AMT_DR
8932 ,ACCTD_AMT_CR
8933 ,FROM_ACCTD_AMT_DR
8934 ,FROM_ACCTD_AMT_CR
8935 ,CCID
8936 ,CCID_SECONDARY
8937 ,DIST_AMT
8938 ,DIST_ACCTD_AMT
8939 ,ALLOC_AMT
8940 ,ALLOC_ACCTD_AMT
8941 ,FROM_ALLOC_AMT
8942 ,FROM_ALLOC_ACCTD_AMT
8943 ,tl_alloc_amt
8944 ,tl_alloc_acctd_amt
8945 ,tl_chrg_alloc_amt
8946 ,tl_chrg_alloc_acctd_amt
8947 --
8948 ,tl_frt_alloc_amt
8949 ,tl_frt_alloc_acctd_amt
8950 ,tl_tax_alloc_amt
8951 ,tl_tax_alloc_acctd_amt
8952 --
8953 ,DUE_REM_AMT
8954 ,DUE_REM_ACCTD_AMT
8955 --
8956 ,FRT_REM_AMT
8957 ,FRT_REM_ACCTD_AMT
8958 ,TAX_REM_AMT
8959 ,TAX_REM_ACCTD_AMT
8960 --
8961 ,DUE_ORIG_AMT
8962 ,DUE_ORIG_ACCTD_AMT
8963 --
8964 ,FRT_ORIG_AMT
8965 ,FRT_ORIG_ACCTD_AMT
8966 ,TAX_ORIG_AMT
8967 ,TAX_ORIG_ACCTD_AMT
8968 --
8969 ,CHRG_REM_AMT
8970 ,CHRG_REM_ACCTD_AMT
8971 --
8972 ,FRT_ADJ_REM_AMT
8973 ,FRT_ADJ_REM_ACCTD_AMT
8974 --
8975 ,LINE_TYPE
8976 ,SUM_LINE_REM_AMT
8977 ,SUM_LINE_REM_ACCTD_AMT
8978 --
8979 ,SUM_LINE_FRT_REM_AMT
8980 ,SUM_LINE_FRT_REM_ACCTD_AMT
8981 ,SUM_LINE_TAX_REM_AMT
8982 ,SUM_LINE_TAX_REM_ACCTD_AMT
8983 --
8984 ,SUM_LINE_ORIG_AMT
8985 ,SUM_LINE_ORIG_ACCTD_AMT
8986 --
8987 ,SUM_LINE_FRT_ORIG_AMT
8988 ,SUM_LINE_FRT_ORIG_ACCTD_AMT
8989 ,SUM_LINE_TAX_ORIG_AMT
8990 ,SUM_LINE_TAX_ORIG_ACCTD_AMT
8991 --
8992 ,SUM_LINE_CHRG_REM_AMT
8993 ,SUM_LINE_CHRG_REM_ACCTD_AMT
8994 --
8995 ,TL_ED_ALLOC_AMT
8996 ,TL_ED_ALLOC_ACCTD_AMT
8997 ,TL_ED_CHRG_ALLOC_AMT
8998 ,TL_ED_CHRG_ALLOC_ACCTD_AMT
8999 --
9000 ,TL_ED_FRT_ALLOC_AMT
9001 ,TL_ED_FRT_ALLOC_ACCTD_AMT
9002 ,TL_ED_TAX_ALLOC_AMT
9003 ,TL_ED_TAX_ALLOC_ACCTD_AMT
9004 --
9005 ,TL_UNED_ALLOC_AMT
9006 ,TL_UNED_ALLOC_ACCTD_AMT
9007 ,TL_UNED_CHRG_ALLOC_AMT
9008 ,TL_UNED_CHRG_ALLOC_ACCTD_AMT
9009 --
9010 ,TL_UNED_FRT_ALLOC_AMT
9011 ,TL_UNED_FRT_ALLOC_ACCTD_AMT
9012 ,TL_UNED_TAX_ALLOC_AMT
9013 ,TL_UNED_TAX_ALLOC_ACCTD_AMT
9014 --
9015 ,DIST_ED_AMT
9016 ,DIST_ED_ACCTD_AMT
9017 ,DIST_UNED_AMT
9018 ,DIST_UNED_ACCTD_AMT
9019 ,gp_level
9020 ,group_id
9021
9022 ,source_data_key1
9023 ,source_data_key2
9024 ,source_data_key3
9025 ,source_data_key4
9026 ,source_data_key5
9027
9028 , SET_OF_BOOKS_ID
9029 , SOB_TYPE
9030 , activity_bucket
9031 )
9032 VALUES
9033 (
9034 p_ra_ar_gt.GT_ID --GT_ID
9035 ,p_ra_ar_gt.BASE_CURRENCY --BASE_CURRENCY
9036 ,p_ra_ar_gt.TO_CURRENCY --TO_CURRENCY
9037 ,p_ra_ar_gt.FROM_CURRENCY --FROM_CURRENCY
9038 ,p_ra_ar_gt.DET_ID --DET_ID
9039 ,p_ra_ar_gt.LINE_ID --LINE_ID
9040 ,p_ra_ar_gt.REF_CUSTOMER_TRX_ID --REF_CUSTOMER_TRX_ID
9041 ,p_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID --REF_CUSTOMER_TRX_LINE_ID
9042 ,p_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID --REF_CUST_TRX_LINE_GL_DIST_ID
9043 ,p_ra_ar_gt.REF_LINE_ID --REF_LINE_ID
9044 ,p_ra_ar_gt.REF_DET_ID --REF_DET_ID
9045 ,p_ra_ar_gt.ACCOUNT_CLASS --ACCOUNT_CLASS
9046 ,p_ra_ar_gt.SOURCE_TYPE --SOURCE_TYPE
9047 ,p_ra_ar_gt.SOURCE_TABLE --SOURCE_TABLE
9048 ,p_ra_ar_gt.SOURCE_ID --SOURCE_ID
9049 ,p_ra_ar_gt.AMT --AMT
9050 ,p_ra_ar_gt.ACCTD_AMT --ACCTD_AMT
9051 ,p_ra_ar_gt.AMT_DR --AMT_DR
9052 ,p_ra_ar_gt.AMT_CR --AMT_CR
9053 ,p_ra_ar_gt.ACCTD_AMT_DR --ACCTD_AMT_DR
9054 ,p_ra_ar_gt.ACCTD_AMT_CR --ACCTD_AMT_CR
9055 ,p_ra_ar_gt.FROM_ACCTD_AMT_DR --FROM_ACCTD_AMT_DR
9056 ,p_ra_ar_gt.FROM_ACCTD_AMT_CR --FROM_ACCTD_AMT_CR
9057 ,p_ra_ar_gt.CCID --CCID
9058 ,p_ra_ar_gt.CCID_SECONDARY --CCID_SECONDARY
9059 ,p_ra_ar_gt.DIST_AMT --DIST_AMT
9060 ,p_ra_ar_gt.DIST_ACCTD_AMT --DIST_ACCTD_AMT
9061 ,p_ra_ar_gt.ALLOC_AMT --ALLOC_AMT
9062 ,p_ra_ar_gt.ALLOC_ACCTD_AMT --ALLOC_ACCTD_AMT
9063 ,p_ra_ar_gt.FROM_ALLOC_AMT --FROM_ALLOC_AMT
9064 ,p_ra_ar_gt.FROM_ALLOC_ACCTD_AMT --FROM_ALLOC_ACCTD_AMT
9065 ,p_ra_ar_gt.tl_alloc_amt --TL_ALLOC_AMT
9066 ,p_ra_ar_gt.tl_alloc_acctd_amt --TL_ALLOC_ACCTD_AMT
9067 ,p_ra_ar_gt.tl_chrg_alloc_amt
9068 ,p_ra_ar_gt.tl_chrg_alloc_acctd_amt
9069 --
9070 ,p_ra_ar_gt.tl_frt_alloc_amt --TL_FRT_ALLOC_AMT
9071 ,p_ra_ar_gt.tl_frt_alloc_acctd_amt --TL_FRT_ALLOC_ACCTD_AMT
9072 ,p_ra_ar_gt.tl_tax_alloc_amt
9073 ,p_ra_ar_gt.tl_tax_alloc_acctd_amt
9074 --
9075 ,p_ra_ar_gt.DUE_REM_AMT
9076 ,p_ra_ar_gt.DUE_REM_ACCTD_AMT
9077 --
9078 ,p_ra_ar_gt.FRT_REM_AMT
9079 ,p_ra_ar_gt.FRT_REM_ACCTD_AMT
9080 ,p_ra_ar_gt.TAX_REM_AMT
9081 ,p_ra_ar_gt.TAX_REM_ACCTD_AMT
9082 --
9083 ,p_ra_ar_gt.DUE_ORIG_AMT
9084 ,p_ra_ar_gt.DUE_ORIG_ACCTD_AMT
9085 --
9086 ,p_ra_ar_gt.FRT_ORIG_AMT
9087 ,p_ra_ar_gt.FRT_ORIG_ACCTD_AMT
9088 ,p_ra_ar_gt.TAX_ORIG_AMT
9089 ,p_ra_ar_gt.TAX_ORIG_ACCTD_AMT
9090 --
9091 ,p_ra_ar_gt.CHRG_REM_AMT
9092 ,p_ra_ar_gt.CHRG_REM_ACCTD_AMT
9093 --
9094 ,p_ra_ar_gt.FRT_ADJ_REM_AMT
9095 ,p_ra_ar_gt.FRT_ADJ_REM_ACCTD_AMT
9096 --
9097 ,p_ra_ar_gt.LINE_TYPE
9098 ,p_ra_ar_gt.SUM_LINE_REM_AMT
9099 ,p_ra_ar_gt.SUM_LINE_REM_ACCTD_AMT
9100 --
9101 ,p_ra_ar_gt.SUM_LINE_FRT_REM_AMT
9102 ,p_ra_ar_gt.SUM_LINE_FRT_REM_ACCTD_AMT
9103 ,p_ra_ar_gt.SUM_LINE_TAX_REM_AMT
9104 ,p_ra_ar_gt.SUM_LINE_TAX_REM_ACCTD_AMT
9105 --
9106 ,p_ra_ar_gt.SUM_LINE_ORIG_AMT
9107 ,p_ra_ar_gt.SUM_LINE_ORIG_ACCTD_AMT
9108 --
9109 ,p_ra_ar_gt.SUM_LINE_FRT_ORIG_AMT
9110 ,p_ra_ar_gt.SUM_LINE_FRT_ORIG_ACCTD_AMT
9111 ,p_ra_ar_gt.SUM_LINE_TAX_ORIG_AMT
9112 ,p_ra_ar_gt.SUM_LINE_TAX_ORIG_ACCTD_AMT
9113 --
9114 ,p_ra_ar_gt.SUM_LINE_CHRG_REM_AMT
9115 ,p_ra_ar_gt.SUM_LINE_CHRG_REM_ACCTD_AMT
9116 --
9117 ,p_ra_ar_gt.TL_ED_ALLOC_AMT
9118 ,p_ra_ar_gt.TL_ED_ALLOC_ACCTD_AMT
9119 ,p_ra_ar_gt.TL_ED_CHRG_ALLOC_AMT
9120 ,p_ra_ar_gt.TL_ED_CHRG_ALLOC_ACCTD_AMT
9121 --
9122 ,p_ra_ar_gt.TL_ED_FRT_ALLOC_AMT
9123 ,p_ra_ar_gt.TL_ED_FRT_ALLOC_ACCTD_AMT
9124 ,p_ra_ar_gt.TL_ED_TAX_ALLOC_AMT
9125 ,p_ra_ar_gt.TL_ED_TAX_ALLOC_ACCTD_AMT
9126 --
9127 ,p_ra_ar_gt.TL_UNED_ALLOC_AMT
9128 ,p_ra_ar_gt.TL_UNED_ALLOC_ACCTD_AMT
9129 ,p_ra_ar_gt.TL_UNED_CHRG_ALLOC_AMT
9130 ,p_ra_ar_gt.TL_UNED_CHRG_ALLOC_ACCTD_AMT
9131 --
9132 ,p_ra_ar_gt.TL_UNED_FRT_ALLOC_AMT
9133 ,p_ra_ar_gt.TL_UNED_FRT_ALLOC_ACCTD_AMT
9134 ,p_ra_ar_gt.TL_UNED_TAX_ALLOC_AMT
9135 ,p_ra_ar_gt.TL_UNED_TAX_ALLOC_ACCTD_AMT
9136 --
9137 ,p_ra_ar_gt.DIST_ED_AMT
9138 ,p_ra_ar_gt.DIST_ED_ACCTD_AMT
9139 ,p_ra_ar_gt.DIST_UNED_AMT
9140 ,p_ra_ar_gt.DIST_UNED_ACCTD_AMT
9141 ,p_ra_ar_gt.gp_level
9142 ,p_ra_ar_gt.group_id
9143
9144 ,p_ra_ar_gt.source_data_key1
9145 ,p_ra_ar_gt.source_data_key2
9146 ,p_ra_ar_gt.source_data_key3
9147 ,p_ra_ar_gt.source_data_key4
9148 ,p_ra_ar_gt.source_data_key5
9149
9150 ,p_ra_ar_gt.SET_OF_BOOKS_ID
9151 ,p_ra_ar_gt.SOB_TYPE
9152 ,p_ra_ar_gt.activity_bucket
9153 ) RETURNING ROWID INTO l_base_rowid;
9154
9155 l_rows := sql%rowcount;
9156 IF PG_DEBUG = 'Y' THEN
9157 localdebug(' rows inserted = ' || l_rows);
9158 END IF;
9159
9160
9161 INSERT INTO AR_BASE_DIST_AMTS_GT
9162 (
9163 gt_id
9164 ,gp_level
9165 ,ref_customer_trx_id
9166 ,ref_customer_trx_line_id
9167 ,base_dist_amt
9168 ,base_dist_acctd_amt
9169 ,base_ed_dist_amt
9170 ,base_ed_dist_acctd_amt
9171 ,base_uned_dist_amt
9172 ,base_uned_dist_acctd_amt
9173 ,set_of_books_id
9174 ,sob_type
9175 ,source_table
9176 )
9177 VALUES
9178 (
9179 p_ra_ar_gt.gt_id
9180 ,p_ra_ar_gt.gp_level
9181 ,p_ra_ar_gt.ref_customer_trx_id
9182 ,p_ra_ar_gt.ref_customer_trx_line_id
9183 ,p_ar_base_dist_amts_gt.base_dist_amt
9184 ,p_ar_base_dist_amts_gt.base_dist_acctd_amt
9185 ,p_ar_base_dist_amts_gt.base_ed_dist_amt
9186 ,p_ar_base_dist_amts_gt.base_ed_dist_acctd_amt
9187 ,p_ar_base_dist_amts_gt.base_uned_dist_amt
9188 ,p_ar_base_dist_amts_gt.base_uned_dist_acctd_amt
9189 ,p_ra_ar_gt.SET_OF_BOOKS_ID
9190 ,p_ra_ar_gt.SOB_TYPE
9191 ,p_ra_ar_gt.SOURCE_TABLE
9192 );
9193
9194 INSERT INTO RA_AR_AMOUNTS_GT
9195 (
9196 gt_id
9197 ,gp_level
9198 ,base_rec_rowid
9199 ,ref_customer_trx_id
9200 ,ref_customer_trx_line_id
9201
9202 ,base_pro_amt
9203 ,base_pro_acctd_amt
9204 ,BASE_CHRG_PRO_AMT
9205 ,BASE_CHRG_PRO_ACCTD_AMT
9206 --
9207 ,BASE_FRT_PRO_AMT
9208 ,BASE_FRT_PRO_ACCTD_AMT
9209 ,BASE_TAX_PRO_AMT
9210 ,BASE_TAX_PRO_ACCTD_AMT
9211 --
9212 ,elmt_pro_amt
9213 ,elmt_pro_acctd_amt
9214 ,ELMT_CHRG_PRO_AMT
9215 ,ELMT_CHRG_PRO_ACCTD_AMT
9216 --
9217 ,ELMT_FRT_PRO_AMT
9218 ,ELMT_FRT_PRO_ACCTD_AMT
9219 ,ELMT_TAX_PRO_AMT
9220 ,ELMT_TAX_PRO_ACCTD_AMT
9221 --
9222 ,buc_alloc_amt
9223 ,buc_alloc_acctd_amt
9224 ,buc_chrg_alloc_amt
9225 ,buc_chrg_alloc_acctd_amt
9226 --
9227 ,buc_frt_alloc_amt
9228 ,buc_frt_alloc_acctd_amt
9229 ,buc_tax_alloc_amt
9230 ,buc_tax_alloc_acctd_amt
9231
9232 ,BUC_ED_ALLOC_AMT
9233 ,BUC_ED_ALLOC_ACCTD_AMT
9234 ,BUC_ED_CHRG_ALLOC_AMT
9235 ,BUC_ED_CHRG_ALLOC_ACCTD_AMT
9236 --
9237 ,BUC_ED_FRT_ALLOC_AMT
9238 ,BUC_ED_FRT_ALLOC_ACCTD_AMT
9239 ,BUC_ED_TAX_ALLOC_AMT
9240 ,BUC_ED_TAX_ALLOC_ACCTD_AMT
9241 --
9242 ,ELMT_ED_PRO_AMT
9243 ,ELMT_ED_PRO_ACCTD_AMT
9244 ,ELMT_ED_CHRG_PRO_AMT
9245 ,ELMT_ED_CHRG_PRO_ACCTD_AMT
9246 --
9247 ,ELMT_ED_FRT_PRO_AMT
9248 ,ELMT_ED_FRT_PRO_ACCTD_AMT
9249 ,ELMT_ED_TAX_PRO_AMT
9250 ,ELMT_ED_TAX_PRO_ACCTD_AMT
9251 --
9252 ,BASE_ED_PRO_AMT
9253 ,BASE_ED_PRO_ACCTD_AMT
9254 ,BASE_ED_CHRG_PRO_AMT
9255 ,BASE_ED_CHRG_PRO_ACCTD_AMT
9256 --
9257 ,BASE_ED_FRT_PRO_AMT
9258 ,BASE_ED_FRT_PRO_ACCTD_AMT
9259 ,BASE_ED_TAX_PRO_AMT
9260 ,BASE_ED_TAX_PRO_ACCTD_AMT
9261
9262 ,BUC_UNED_ALLOC_AMT
9263 ,BUC_UNED_ALLOC_ACCTD_AMT
9264 ,BUC_UNED_CHRG_ALLOC_AMT
9265 ,BUC_UNED_CHRG_ALLOC_ACCTD_AMT
9266 --
9267 ,BUC_UNED_FRT_ALLOC_AMT
9268 ,BUC_UNED_FRT_ALLOC_ACCTD_AMT
9269 ,BUC_UNED_TAX_ALLOC_AMT
9270 ,BUC_UNED_TAX_ALLOC_ACCTD_AMT
9271 --
9272 ,ELMT_UNED_PRO_AMT
9273 ,ELMT_UNED_PRO_ACCTD_AMT
9274 ,ELMT_UNED_CHRG_PRO_AMT
9275 ,ELMT_UNED_CHRG_PRO_ACCTD_AMT
9276 --
9277 ,ELMT_UNED_FRT_PRO_AMT
9278 ,ELMT_UNED_FRT_PRO_ACCTD_AMT
9279 ,ELMT_UNED_TAX_PRO_AMT
9280 ,ELMT_UNED_TAX_PRO_ACCTD_AMT
9281 --
9282 ,BASE_UNED_PRO_AMT
9283 ,BASE_UNED_PRO_ACCTD_AMT
9284 ,BASE_UNED_CHRG_PRO_AMT
9285 ,BASE_UNED_CHRG_PRO_ACCTD_AMT
9286 --
9287 ,BASE_UNED_FRT_PRO_AMT
9288 ,BASE_UNED_FRT_PRO_ACCTD_AMT
9289 ,BASE_UNED_TAX_PRO_AMT
9290 ,BASE_UNED_TAX_PRO_ACCTD_AMT
9291 )
9292 VALUES
9293 (
9294 p_ra_ar_gt.gt_id
9295 ,p_ra_ar_gt.gp_level
9296 ,l_base_rowid
9297 ,p_ra_ar_gt.ref_customer_trx_id
9298 ,p_ra_ar_gt.ref_customer_trx_line_id
9299
9300 ,p_ra_ar_amounts_gt.base_pro_amt
9301 ,p_ra_ar_amounts_gt.base_pro_acctd_amt
9302 ,p_ra_ar_amounts_gt.BASE_CHRG_PRO_AMT
9303 ,p_ra_ar_amounts_gt.BASE_CHRG_PRO_ACCTD_AMT
9304 --
9305 ,p_ra_ar_amounts_gt.BASE_FRT_PRO_AMT
9306 ,p_ra_ar_amounts_gt.BASE_FRT_PRO_ACCTD_AMT
9307 ,p_ra_ar_amounts_gt.BASE_TAX_PRO_AMT
9308 ,p_ra_ar_amounts_gt.BASE_TAX_PRO_ACCTD_AMT
9309 --
9310 ,p_ra_ar_amounts_gt.elmt_pro_amt
9311 ,p_ra_ar_amounts_gt.elmt_pro_acctd_amt
9312 ,p_ra_ar_amounts_gt.ELMT_CHRG_PRO_AMT
9313 ,p_ra_ar_amounts_gt.ELMT_CHRG_PRO_ACCTD_AMT
9314 --
9315 ,p_ra_ar_amounts_gt.ELMT_FRT_PRO_AMT
9316 ,p_ra_ar_amounts_gt.ELMT_FRT_PRO_ACCTD_AMT
9317 ,p_ra_ar_amounts_gt.ELMT_TAX_PRO_AMT
9318 ,p_ra_ar_amounts_gt.ELMT_TAX_PRO_ACCTD_AMT
9319 --
9320 ,p_ra_ar_amounts_gt.buc_alloc_amt
9321 ,p_ra_ar_amounts_gt.buc_alloc_acctd_amt
9322 ,p_ra_ar_amounts_gt.buc_chrg_alloc_amt
9323 ,p_ra_ar_amounts_gt.buc_chrg_alloc_acctd_amt
9324 --
9325 ,p_ra_ar_amounts_gt.buc_frt_alloc_amt
9326 ,p_ra_ar_amounts_gt.buc_frt_alloc_acctd_amt
9327 ,p_ra_ar_amounts_gt.buc_tax_alloc_amt
9328 ,p_ra_ar_amounts_gt.buc_tax_alloc_acctd_amt
9329
9330 ,p_ra_ar_amounts_gt.BUC_ED_ALLOC_AMT
9331 ,p_ra_ar_amounts_gt.BUC_ED_ALLOC_ACCTD_AMT
9332 ,p_ra_ar_amounts_gt.BUC_ED_CHRG_ALLOC_AMT
9333 ,p_ra_ar_amounts_gt.BUC_ED_CHRG_ALLOC_ACCTD_AMT
9334 --
9335 ,p_ra_ar_amounts_gt.BUC_ED_FRT_ALLOC_AMT
9336 ,p_ra_ar_amounts_gt.BUC_ED_FRT_ALLOC_ACCTD_AMT
9337 ,p_ra_ar_amounts_gt.BUC_ED_TAX_ALLOC_AMT
9338 ,p_ra_ar_amounts_gt.BUC_ED_TAX_ALLOC_ACCTD_AMT
9339 --
9340 ,p_ra_ar_amounts_gt.ELMT_ED_PRO_AMT
9341 ,p_ra_ar_amounts_gt.ELMT_ED_PRO_ACCTD_AMT
9342 ,p_ra_ar_amounts_gt.ELMT_ED_CHRG_PRO_AMT
9343 ,p_ra_ar_amounts_gt.ELMT_ED_CHRG_PRO_ACCTD_AMT
9344 --
9345 ,p_ra_ar_amounts_gt.ELMT_ED_FRT_PRO_AMT
9346 ,p_ra_ar_amounts_gt.ELMT_ED_FRT_PRO_ACCTD_AMT
9347 ,p_ra_ar_amounts_gt.ELMT_ED_TAX_PRO_AMT
9348 ,p_ra_ar_amounts_gt.ELMT_ED_TAX_PRO_ACCTD_AMT
9349 --
9350 ,p_ra_ar_amounts_gt.BASE_ED_PRO_AMT
9351 ,p_ra_ar_amounts_gt.BASE_ED_PRO_ACCTD_AMT
9352 ,p_ra_ar_amounts_gt.BASE_ED_CHRG_PRO_AMT
9353 ,p_ra_ar_amounts_gt.BASE_ED_CHRG_PRO_ACCTD_AMT
9354 --
9355 ,p_ra_ar_amounts_gt.BASE_ED_FRT_PRO_AMT
9356 ,p_ra_ar_amounts_gt.BASE_ED_FRT_PRO_ACCTD_AMT
9357 ,p_ra_ar_amounts_gt.BASE_ED_TAX_PRO_AMT
9358 ,p_ra_ar_amounts_gt.BASE_ED_TAX_PRO_ACCTD_AMT
9359
9360 ,p_ra_ar_amounts_gt.BUC_UNED_ALLOC_AMT
9361 ,p_ra_ar_amounts_gt.BUC_UNED_ALLOC_ACCTD_AMT
9362 ,p_ra_ar_amounts_gt.BUC_UNED_CHRG_ALLOC_AMT
9363 ,p_ra_ar_amounts_gt.BUC_UNED_CHRG_ALLOC_ACCTD_AMT
9364 --
9365 ,p_ra_ar_amounts_gt.BUC_UNED_FRT_ALLOC_AMT
9366 ,p_ra_ar_amounts_gt.BUC_UNED_FRT_ALLOC_ACCTD_AMT
9367 ,p_ra_ar_amounts_gt.BUC_UNED_TAX_ALLOC_AMT
9368 ,p_ra_ar_amounts_gt.BUC_UNED_TAX_ALLOC_ACCTD_AMT
9369 --
9370 ,p_ra_ar_amounts_gt.ELMT_UNED_PRO_AMT
9371 ,p_ra_ar_amounts_gt.ELMT_UNED_PRO_ACCTD_AMT
9372 ,p_ra_ar_amounts_gt.ELMT_UNED_CHRG_PRO_AMT
9373 ,p_ra_ar_amounts_gt.ELMT_UNED_CHRG_PRO_ACCTD_AMT
9374 --
9375 ,p_ra_ar_amounts_gt.ELMT_UNED_FRT_PRO_AMT
9376 ,p_ra_ar_amounts_gt.ELMT_UNED_FRT_PRO_ACCTD_AMT
9377 ,p_ra_ar_amounts_gt.ELMT_UNED_TAX_PRO_AMT
9378 ,p_ra_ar_amounts_gt.ELMT_UNED_TAX_PRO_ACCTD_AMT
9379 --
9380 ,p_ra_ar_amounts_gt.BASE_UNED_PRO_AMT
9381 ,p_ra_ar_amounts_gt.BASE_UNED_PRO_ACCTD_AMT
9382 ,p_ra_ar_amounts_gt.BASE_UNED_CHRG_PRO_AMT
9383 ,p_ra_ar_amounts_gt.BASE_UNED_CHRG_PRO_ACCTD_AMT
9384 --
9385 ,p_ra_ar_amounts_gt.BASE_UNED_FRT_PRO_AMT
9386 ,p_ra_ar_amounts_gt.BASE_UNED_FRT_PRO_ACCTD_AMT
9387 ,p_ra_ar_amounts_gt.BASE_UNED_TAX_PRO_AMT
9388 ,p_ra_ar_amounts_gt.BASE_UNED_TAX_PRO_ACCTD_AMT
9389 );
9390 l_rows := sql%rowcount;
9391 IF PG_DEBUG = 'Y' THEN
9392 localdebug(' rows inserted into AR_BASE_DIST_AMTS_GT = ' || l_rows);
9393 END IF;
9394 END insert_ra_ar_gt;
9395
9396
9397 PROCEDURE adjustment_detemination
9398 (p_customer_trx_id IN NUMBER,
9399 p_gt_id IN VARCHAR2,
9400 p_pay_adj IN VARCHAR2,
9401 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
9402 p_adj_rec IN ar_adjustments%ROWTYPE)
9403 IS
9404 CURSOR get_sum_per_line_type IS
9405 SELECT /*+INDEX (RA_AR_GT ra_ar_n1)*/
9406 MAX(sum_line_rem_amt),
9407 MAX(sum_line_rem_acctd_amt),
9408 MAX(sum_line_orig_amt),
9409 MAX(sum_line_orig_acctd_amt),
9410 MAX(sum_line_chrg_rem_amt),
9411 MAX(sum_line_chrg_rem_acctd_amt),
9412 --
9413 MAX(sum_line_frt_rem_amt),
9414 MAX(sum_line_frt_rem_acctd_amt),
9415 MAX(sum_line_frt_orig_amt),
9416 MAX(sum_line_frt_orig_acctd_amt),
9417 --
9418 MAX(sum_line_tax_rem_amt),
9419 MAX(sum_line_tax_rem_acctd_amt),
9420 MAX(sum_line_tax_orig_amt),
9421 MAX(sum_line_tax_orig_acctd_amt),
9422 --
9423 line_type
9424 FROM ra_ar_gt
9425 WHERE gt_id = p_gt_id
9426 -- AND se_gt_id = g_se_gt_id
9427 AND ref_customer_trx_id = p_customer_trx_id
9428 AND gp_level = 'L' --'D'
9429 GROUP BY line_type;
9430
9431 CURSOR cu_inv_cur IS
9432 SELECT invoice_currency_code,exchange_rate
9433 FROM ra_customer_trx
9434 WHERE customer_trx_id = p_customer_trx_id;
9435 l_inv_currency VARCHAR2(30) := NULL;
9436 l_exchange_rate ra_customer_trx.exchange_rate%type;
9437 l_sum_line_rem_amt DBMS_SQL.NUMBER_TABLE;
9438 l_sum_line_rem_acctd_amt DBMS_SQL.NUMBER_TABLE;
9439 l_sum_line_orig_amt DBMS_SQL.NUMBER_TABLE;
9440 l_sum_line_orig_acctd_amt DBMS_SQL.NUMBER_TABLE;
9441 l_sum_line_chrg_rem_amt DBMS_SQL.NUMBER_TABLE;
9442 l_sum_line_chrg_rem_acctd_amt DBMS_SQL.NUMBER_TABLE;
9443 --
9444 l_sum_line_frt_rem_amt DBMS_SQL.NUMBER_TABLE;
9445 l_sum_line_frt_rem_acctd_amt DBMS_SQL.NUMBER_TABLE;
9446 l_sum_line_frt_orig_amt DBMS_SQL.NUMBER_TABLE;
9447 l_sum_line_frt_orig_acctd_amt DBMS_SQL.NUMBER_TABLE;
9448 --
9449 l_sum_line_tax_rem_amt DBMS_SQL.NUMBER_TABLE;
9450 l_sum_line_tax_rem_acctd_amt DBMS_SQL.NUMBER_TABLE;
9451 l_sum_line_tax_orig_amt DBMS_SQL.NUMBER_TABLE;
9452 l_sum_line_tax_orig_acctd_amt DBMS_SQL.NUMBER_TABLE;
9453 --
9454 l_line_type DBMS_SQL.VARCHAR2_TABLE;
9455 l_ra_ar_gt ra_ar_gt%ROWTYPE;
9456 invoice_has_no_lines EXCEPTION;
9457 not_an_adjustment EXCEPTION;
9458 l_freight_boundary_done VARCHAR2(1) := 'N';
9459 l_line_boundary_done VARCHAR2(1) := 'N';
9460 l_tax_boundary_done VARCHAR2(1) := 'N';
9461 l_chrg_boundary_done VARCHAR2(1) := 'N';
9462 PROCEDURE line_boundary
9463 (p_adj_rec IN ar_adjustments%ROWTYPE,
9464 p_sum_line_orig_amt IN NUMBER,
9465 p_sum_line_rem_amt IN NUMBER,
9466 p_inv_currency IN VARCHAR2,
9467 p_customer_trx_id IN NUMBER,
9468 p_gt_id IN VARCHAR2,
9469 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
9470 P_exchange_rate IN ra_customer_trx.exchange_rate%type)
9471 IS
9472 l_ra_ar_gt ra_ar_gt%ROWTYPE;
9473 l_ar_base_dist_amts_gt ar_base_dist_amts_gt%ROWTYPE;
9474 l_ra_ar_amounts_gt ra_ar_amounts_gt%ROWTYPE;
9475 BEGIN
9476 --Rev line boundary
9477 IF NVL(p_adj_rec.line_adjusted,0) <> 0 AND
9478 NVL(p_sum_line_orig_amt,0) = 0 AND
9479 NVL(p_sum_line_rem_amt,0) = 0
9480 THEN
9481 IF PG_DEBUG = 'Y' THEN
9482 localdebug(' -6 Adjustment Boundary LINE condition met');
9483 END IF;
9484 l_ra_ar_gt.GT_ID := p_gt_id;
9485 l_ra_ar_gt.AMT := p_adj_rec.line_adjusted;
9486 l_ra_ar_gt.ACCTD_AMT := currRound(p_adj_rec.line_adjusted * P_exchange_rate,
9487 p_ae_sys_rec.base_currency);
9488 l_ra_ar_gt.ACCOUNT_CLASS := 'REV';
9489 l_ra_ar_gt.CCID_SECONDARY := NULL; --Normally the auto accounting ccid
9490 l_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID:= -6;
9491 l_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID := -6;
9492 l_ra_ar_gt.REF_CUSTOMER_TRX_ID := p_customer_trx_id;
9493 l_ra_ar_gt.DIST_AMT := p_adj_rec.line_adjusted;
9494 l_ra_ar_gt.DIST_ACCTD_AMT := currRound(p_adj_rec.line_adjusted * P_exchange_rate,
9495 p_ae_sys_rec.base_currency);
9496 l_ra_ar_gt.TO_CURRENCY := p_inv_currency;
9497 l_ra_ar_gt.BASE_CURRENCY := p_ae_sys_rec.base_currency;
9498 l_ra_ar_gt.tl_alloc_amt := p_adj_rec.line_adjusted;
9499 l_ra_ar_gt.tl_alloc_acctd_amt := currRound(p_adj_rec.line_adjusted * P_exchange_rate,
9500 p_ae_sys_rec.base_currency);
9501 l_ra_ar_gt.tl_chrg_alloc_amt := 0;
9502 l_ra_ar_gt.tl_chrg_alloc_acctd_amt := 0;
9503 l_ra_ar_gt.tl_frt_alloc_amt := 0;
9504 l_ra_ar_gt.tl_frt_alloc_acctd_amt := 0;
9505 l_ra_ar_gt.tl_tax_alloc_amt := 0;
9506 l_ra_ar_gt.tl_tax_alloc_acctd_amt := 0;
9507 l_ar_base_dist_amts_gt.base_dist_amt := p_adj_rec.line_adjusted;
9508 l_ar_base_dist_amts_gt.base_dist_acctd_amt := currRound(p_adj_rec.line_adjusted * P_exchange_rate,
9509 p_ae_sys_rec.base_currency);
9510 l_ra_ar_gt.source_type := 'LINE';
9511 l_ra_ar_gt.source_table := 'ADJ';
9512 l_ra_ar_gt.source_id := p_adj_rec.adjustment_id;
9513 l_ra_ar_gt.gp_level := 'D';
9514 l_ra_ar_gt.group_id := '00';
9515 --{HYUBPAGP
9516 l_ra_ar_gt.source_data_key1 := '00';
9517 l_ra_ar_gt.source_data_key2 := '00';
9518 l_ra_ar_gt.source_data_key3 := '00';
9519 l_ra_ar_gt.source_data_key4 := '00';
9520 l_ra_ar_gt.source_data_key5 := '00';
9521 --}
9522 -- l_ra_ar_gt.se_gt_id := g_se_gt_id;
9523 l_ra_ar_gt.set_of_books_id := p_ae_sys_rec.set_of_books_id;
9524 l_ra_ar_gt.sob_type := p_ae_sys_rec.sob_type;
9525 l_ra_ar_gt.activity_bucket := 'ADJ';
9526 insert_ra_ar_gt(p_ra_ar_gt => l_ra_ar_gt,
9527 p_ar_base_dist_amts_gt => l_ar_base_dist_amts_gt,
9528 p_ra_ar_amounts_gt => l_ra_ar_amounts_gt
9529 );
9530 END IF;
9531
9532 --Charge boundary is part of line boundary estimation because frt over revenue line
9533 IF NVL(p_adj_rec.receivables_charges_adjusted,0) <> 0 AND
9534 NVL(p_sum_line_orig_amt,0) = 0 AND
9535 NVL(p_sum_line_rem_amt,0) = 0
9536 THEN
9537 IF PG_DEBUG = 'Y' THEN
9538 localdebug(' -7 Adjustment Boundary CHARGES condition met');
9539 END IF;
9540 l_ra_ar_gt.GT_ID := p_gt_id;
9541 l_ra_ar_gt.AMT := p_adj_rec.receivables_charges_adjusted;
9542 l_ra_ar_gt.ACCTD_AMT := currRound(p_adj_rec.receivables_charges_adjusted * P_exchange_rate,
9543 p_ae_sys_rec.base_currency);
9544 l_ra_ar_gt.ACCOUNT_CLASS := 'REV';
9545 l_ra_ar_gt.CCID_SECONDARY := NULL; --Normally the auto accounting ccid
9546 l_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID:= -7;
9547 l_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID := -7;
9548 l_ra_ar_gt.REF_CUSTOMER_TRX_ID := p_customer_trx_id;
9549 l_ra_ar_gt.DIST_AMT := p_adj_rec.receivables_charges_adjusted;
9550 l_ra_ar_gt.DIST_ACCTD_AMT := currRound(p_adj_rec.receivables_charges_adjusted * P_exchange_rate,
9551 p_ae_sys_rec.base_currency);
9552 l_ra_ar_gt.TO_CURRENCY := p_inv_currency;
9553 l_ra_ar_gt.BASE_CURRENCY := p_ae_sys_rec.base_currency;
9554 l_ra_ar_gt.tl_alloc_amt := 0;
9555 l_ra_ar_gt.tl_alloc_acctd_amt := 0;
9556 l_ra_ar_gt.tl_chrg_alloc_amt := p_adj_rec.receivables_charges_adjusted;
9557 l_ra_ar_gt.tl_chrg_alloc_acctd_amt := currRound(p_adj_rec.receivables_charges_adjusted * P_exchange_rate,
9558 p_ae_sys_rec.base_currency);
9559 l_ra_ar_gt.tl_frt_alloc_amt := 0;
9560 l_ra_ar_gt.tl_frt_alloc_acctd_amt := 0;
9561 l_ra_ar_gt.tl_tax_alloc_amt := 0;
9562 l_ra_ar_gt.tl_tax_alloc_acctd_amt := 0;
9563 l_ar_base_dist_amts_gt.base_dist_amt := p_adj_rec.receivables_charges_adjusted;
9564 l_ar_base_dist_amts_gt.base_dist_acctd_amt := currRound(p_adj_rec.receivables_charges_adjusted * P_exchange_rate,
9565 p_ae_sys_rec.base_currency);
9566 l_ra_ar_gt.source_type := 'CHARGES';
9567 l_ra_ar_gt.source_table := 'ADJ';
9568 l_ra_ar_gt.source_id := p_adj_rec.adjustment_id;
9569 l_ra_ar_gt.gp_level := 'D';
9570 l_ra_ar_gt.group_id := '00';
9571 --{HYUBPAGP
9572 l_ra_ar_gt.source_data_key1 := '00';
9573 l_ra_ar_gt.source_data_key2 := '00';
9574 l_ra_ar_gt.source_data_key3 := '00';
9575 l_ra_ar_gt.source_data_key4 := '00';
9576 l_ra_ar_gt.source_data_key5 := '00';
9577 --}
9578 -- l_ra_ar_gt.se_gt_id := g_se_gt_id;
9579 l_ra_ar_gt.set_of_books_id := p_ae_sys_rec.set_of_books_id;
9580 l_ra_ar_gt.sob_type := p_ae_sys_rec.sob_type;
9581 l_ra_ar_gt.activity_bucket := 'ADJ';
9582 insert_ra_ar_gt(p_ra_ar_gt => l_ra_ar_gt,
9583 p_ar_base_dist_amts_gt => l_ar_base_dist_amts_gt,
9584 p_ra_ar_amounts_gt => l_ra_ar_amounts_gt
9585 );
9586 END IF;
9587
9588 --Frt boundary is part of line boundary estimation because frt over revenue line
9589 IF NVL(p_adj_rec.freight_adjusted,0) <> 0 AND
9590 NVL(p_sum_line_orig_amt,0) = 0 AND
9591 NVL(p_sum_line_rem_amt,0) = 0
9592 THEN
9593 IF PG_DEBUG = 'Y' THEN
9594 localdebug(' -9 Adjustment Boundary FREIGHT condition met');
9595 END IF;
9596 l_ra_ar_gt.GT_ID := p_gt_id;
9597 l_ra_ar_gt.AMT := p_adj_rec.freight_adjusted;
9598 l_ra_ar_gt.ACCTD_AMT := currRound(p_adj_rec.freight_adjusted * P_exchange_rate,
9599 p_ae_sys_rec.base_currency);
9600 l_ra_ar_gt.ACCOUNT_CLASS := 'REV';
9601 l_ra_ar_gt.CCID_SECONDARY := NULL; --Normally the auto accounting ccid
9602 l_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID:= -9;
9603 l_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID := -9;
9604 l_ra_ar_gt.REF_CUSTOMER_TRX_ID := p_customer_trx_id;
9605 l_ra_ar_gt.DIST_AMT := p_adj_rec.freight_adjusted;
9606 l_ra_ar_gt.DIST_ACCTD_AMT := currRound(p_adj_rec.tax_adjusted * P_exchange_rate,
9607 p_ae_sys_rec.base_currency);
9608 l_ra_ar_gt.TO_CURRENCY := p_inv_currency;
9609 l_ra_ar_gt.BASE_CURRENCY := p_ae_sys_rec.base_currency;
9610 l_ra_ar_gt.tl_chrg_alloc_amt := 0;
9611 l_ra_ar_gt.tl_chrg_alloc_acctd_amt := 0;
9612 l_ra_ar_gt.tl_tax_alloc_amt := 0;
9613 l_ra_ar_gt.tl_tax_alloc_acctd_amt := 0;
9614 l_ra_ar_gt.tl_alloc_amt := 0;
9615 l_ra_ar_gt.tl_alloc_acctd_amt := 0;
9616 l_ra_ar_gt.tl_frt_alloc_amt := p_adj_rec.freight_adjusted;
9617 l_ra_ar_gt.tl_frt_alloc_acctd_amt := currRound(p_adj_rec.freight_adjusted * P_exchange_rate,
9618 p_ae_sys_rec.base_currency);
9619 l_ar_base_dist_amts_gt.base_dist_amt := p_adj_rec.freight_adjusted;
9620 l_ar_base_dist_amts_gt.base_dist_acctd_amt := currRound(p_adj_rec.freight_adjusted * P_exchange_rate,
9621 p_ae_sys_rec.base_currency);
9622 l_ra_ar_gt.source_type := 'FREIGHT';
9623 l_ra_ar_gt.source_table := 'ADJ';
9624 l_ra_ar_gt.source_id := p_adj_rec.adjustment_id;
9625 l_ra_ar_gt.gp_level := 'D';
9626 l_ra_ar_gt.group_id := '00';
9627 --{HYUBPAGP
9628 l_ra_ar_gt.source_data_key1 := '00';
9629 l_ra_ar_gt.source_data_key2 := '00';
9630 l_ra_ar_gt.source_data_key3 := '00';
9631 l_ra_ar_gt.source_data_key4 := '00';
9632 l_ra_ar_gt.source_data_key5 := '00';
9633 --}
9634 -- l_ra_ar_gt.se_gt_id := g_se_gt_id;
9635 l_ra_ar_gt.set_of_books_id := p_ae_sys_rec.set_of_books_id;
9636 l_ra_ar_gt.sob_type := p_ae_sys_rec.sob_type;
9637 l_ra_ar_gt.activity_bucket := 'ADJ';
9638 insert_ra_ar_gt(p_ra_ar_gt => l_ra_ar_gt,
9639 p_ar_base_dist_amts_gt => l_ar_base_dist_amts_gt,
9640 p_ra_ar_amounts_gt => l_ra_ar_amounts_gt
9641 );
9642 END IF;
9643 END line_boundary;
9644
9645 PROCEDURE tax_boundary
9646 (p_adj_rec IN ar_adjustments%ROWTYPE,
9647 p_sum_line_tax_orig_amt IN NUMBER,
9648 p_sum_line_tax_rem_amt IN NUMBER,
9649 p_inv_currency IN VARCHAR2,
9650 p_customer_trx_id IN NUMBER,
9651 p_gt_id IN VARCHAR2,
9652 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
9653 P_exchange_rate IN ra_customer_trx.exchange_rate%type)
9654 IS
9655 l_ra_ar_gt ra_ar_gt%ROWTYPE;
9656 l_ar_base_dist_amts_gt ar_base_dist_amts_gt%ROWTYPE;
9657 l_ra_ar_amounts_gt ra_ar_amounts_gt%ROWTYPE;
9658 BEGIN
9659 IF NVL(p_adj_rec.tax_adjusted,0) <> 0 AND
9660 NVL(p_sum_line_tax_orig_amt,0) = 0 AND
9661 NVL(p_sum_line_tax_rem_amt,0) = 0
9662 THEN
9663 IF PG_DEBUG = 'Y' THEN
9664 localdebug(' -8 Adjustment Boundary TAX condition met');
9665 END IF;
9666 l_ra_ar_gt.GT_ID := p_gt_id;
9667 l_ra_ar_gt.AMT := p_adj_rec.tax_adjusted;
9668 l_ra_ar_gt.ACCTD_AMT := currRound(p_adj_rec.tax_adjusted * P_exchange_rate,
9669 p_ae_sys_rec.base_currency);
9670 l_ra_ar_gt.ACCOUNT_CLASS := 'TAX';
9671 l_ra_ar_gt.CCID_SECONDARY := NULL; --Normally the auto accounting ccid
9672 l_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID:= -8;
9673 l_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID := -8;
9674 l_ra_ar_gt.REF_CUSTOMER_TRX_ID := p_customer_trx_id;
9675 l_ra_ar_gt.DIST_AMT := p_adj_rec.tax_adjusted;
9676 l_ra_ar_gt.DIST_ACCTD_AMT := currRound(p_adj_rec.tax_adjusted * P_exchange_rate,
9677 p_ae_sys_rec.base_currency);
9678 l_ra_ar_gt.TO_CURRENCY := p_inv_currency;
9679 l_ra_ar_gt.BASE_CURRENCY := p_ae_sys_rec.base_currency;
9680 l_ra_ar_gt.tl_chrg_alloc_amt := 0;
9681 l_ra_ar_gt.tl_chrg_alloc_acctd_amt := 0;
9682 l_ra_ar_gt.tl_frt_alloc_amt := 0;
9683 l_ra_ar_gt.tl_frt_alloc_acctd_amt := 0;
9684 l_ra_ar_gt.tl_alloc_amt := 0;
9685 l_ra_ar_gt.tl_alloc_acctd_amt := 0;
9686 l_ra_ar_gt.tl_tax_alloc_amt := p_adj_rec.tax_adjusted;
9687 l_ra_ar_gt.tl_tax_alloc_acctd_amt := currRound(p_adj_rec.tax_adjusted * P_exchange_rate,
9688 p_ae_sys_rec.base_currency);
9689 l_ar_base_dist_amts_gt.base_dist_amt := p_adj_rec.tax_adjusted;
9690 l_ar_base_dist_amts_gt.base_dist_acctd_amt := currRound(p_adj_rec.tax_adjusted * P_exchange_rate,
9691 p_ae_sys_rec.base_currency);
9692 l_ra_ar_gt.source_type := 'TAX';
9693 l_ra_ar_gt.source_table := 'ADJ';
9694 l_ra_ar_gt.source_id := p_adj_rec.adjustment_id;
9695 l_ra_ar_gt.gp_level := 'D';
9696 l_ra_ar_gt.group_id := '00';
9697 --{HYUBPAGP
9698 l_ra_ar_gt.source_data_key1 := '00';
9699 l_ra_ar_gt.source_data_key2 := '00';
9700 l_ra_ar_gt.source_data_key3 := '00';
9701 l_ra_ar_gt.source_data_key4 := '00';
9702 l_ra_ar_gt.source_data_key5 := '00';
9703 --}
9704 -- l_ra_ar_gt.se_gt_id := g_se_gt_id;
9705 l_ra_ar_gt.set_of_books_id := p_ae_sys_rec.set_of_books_id;
9706 l_ra_ar_gt.sob_type := p_ae_sys_rec.sob_type;
9707 l_ra_ar_gt.activity_bucket := 'ADJ';
9708 insert_ra_ar_gt(p_ra_ar_gt => l_ra_ar_gt,
9709 p_ar_base_dist_amts_gt => l_ar_base_dist_amts_gt,
9710 p_ra_ar_amounts_gt => l_ra_ar_amounts_gt
9711 );
9712 END IF;
9713 END tax_boundary;
9714 /*
9715 Freight boundary procedure is not usefull at this time because frt adjustment
9716 is over revenue line and not freight lines
9717 Keep this procedure for future
9718
9719 PROCEDURE freight_boundary
9720 (p_adj_rec IN ar_adjustments%ROWTYPE,
9721 p_sum_line_frt_orig_amt IN NUMBER,
9722 p_sum_line_frt_rem_amt IN NUMBER,
9723 p_inv_currency IN VARCHAR2,
9724 p_customer_trx_id IN NUMBER,
9725 p_gt_id IN NUMBER,
9726 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
9727 IS
9728 l_ra_ar_gt ra_ar_gt%ROWTYPE;
9729 BEGIN
9730 IF NVL(p_adj_rec.freight_adjusted,0) <> 0 AND
9731 NVL(p_sum_line_frt_orig_amt,0) = 0 AND
9732 NVL(p_sum_line_frt_rem_amt,0) = 0
9733 THEN
9734 localdebug(' -9 Adjustment Boundary FREIGHT condition met');
9735 l_ra_ar_gt.GT_ID := p_gt_id;
9736 l_ra_ar_gt.AMT := p_adj_rec.freight_adjusted;
9737 l_ra_ar_gt.ACCTD_AMT := currRound(p_adj_rec.freight_adjusted,
9738 p_ae_sys_rec.base_currency);
9739 l_ra_ar_gt.ACCOUNT_CLASS := 'FREIGHT';
9740 l_ra_ar_gt.CCID_SECONDARY := NULL; --Normally the auto accounting ccid
9741 l_ra_ar_gt.REF_CUST_TRX_LINE_GL_DIST_ID:= -9;
9742 l_ra_ar_gt.REF_CUSTOMER_TRX_LINE_ID := -9;
9743 l_ra_ar_gt.REF_CUSTOMER_TRX_ID := p_customer_trx_id;
9744 l_ra_ar_gt.DIST_AMT := p_adj_rec.freight_adjusted;
9745 l_ra_ar_gt.DIST_ACCTD_AMT := currRound(p_adj_rec.tax_adjusted,
9746 p_ae_sys_rec.base_currency);
9747 l_ra_ar_gt.TO_CURRENCY := p_inv_currency;
9748 l_ra_ar_gt.BASE_CURRENCY := p_ae_sys_rec.base_currency;
9749 l_ra_ar_gt.tl_chrg_alloc_amt := 0;
9750 l_ra_ar_gt.tl_chrg_alloc_acctd_amt := 0;
9751 l_ra_ar_gt.tl_tax_alloc_amt := 0;
9752 l_ra_ar_gt.tl_tax_alloc_acctd_amt := 0;
9753 l_ra_ar_gt.tl_alloc_amt := 0;
9754 l_ra_ar_gt.tl_alloc_acctd_amt := 0;
9755 l_ra_ar_gt.tl_frt_alloc_amt := p_adj_rec.freight_adjusted;
9756 l_ra_ar_gt.tl_frt_alloc_acctd_amt := currRound(p_adj_rec.freight_adjusted,
9757 p_ae_sys_rec.base_currency);
9758 l_ra_ar_gt.base_dist_amt := p_adj_rec.freight_adjusted;
9759 l_ra_ar_gt.base_dist_acctd_amt := currRound(p_adj_rec.freight_adjusted,
9760 p_ae_sys_rec.base_currency);
9761 l_ra_ar_gt.source_type := 'FREIGHT';
9762 l_ra_ar_gt.source_table := 'ADJ';
9763 l_ra_ar_gt.source_id := p_adj_rec.adjustment_id;
9764 l_ra_ar_gt.gp_level := 'D';
9765 l_ra_ar_gt.group_id := '00';
9766 insert_ra_ar_gt(p_ra_ar_gt => l_ra_ar_gt);
9767 END IF;
9768 END freight_boundary;
9769 */
9770 BEGIN
9771 IF PG_DEBUG = 'Y' THEN
9772 localdebug('arp_det_dist_pkg.adjustment_detemination()+');
9773 END IF;
9774
9775 IF p_pay_adj <> 'ADJ' THEN
9776 RAISE not_an_adjustment;
9777 END IF;
9778
9779 OPEN get_sum_per_line_type;
9780 FETCH get_sum_per_line_type BULK COLLECT INTO
9781 l_sum_line_rem_amt ,
9782 l_sum_line_rem_acctd_amt ,
9783 l_sum_line_orig_amt ,
9784 l_sum_line_orig_acctd_amt ,
9785 l_sum_line_chrg_rem_amt ,
9786 l_sum_line_chrg_rem_acctd_amt,
9787 --
9788 l_sum_line_frt_rem_amt ,
9789 l_sum_line_frt_rem_acctd_amt ,
9790 l_sum_line_frt_orig_amt ,
9791 l_sum_line_frt_orig_acctd_amt,
9792 --
9793 l_sum_line_tax_rem_amt ,
9794 l_sum_line_tax_rem_acctd_amt ,
9795 l_sum_line_tax_orig_amt ,
9796 l_sum_line_tax_orig_acctd_amt,
9797 --
9798 l_line_type;
9799 CLOSE get_sum_per_line_type;
9800 /*
9801 OPEN get_sum_per_line_type;
9802 FETCH get_sum_per_line_type BULK COLLECT INTO
9803 l_sum_line_rem_amt ,
9804 l_sum_line_rem_acctd_amt ,
9805 --
9806 l_sum_line_chrg_rem_amt ,
9807 l_sum_line_chrg_rem_acctd_amt,
9808 --
9809 l_sum_line_frt_rem_amt ,
9810 l_sum_line_frt_rem_acctd_amt ,
9811 --
9812 l_sum_line_tax_rem_amt ,
9813 l_sum_line_tax_rem_acctd_amt ,
9814 --
9815 l_line_type;
9816 CLOSE get_sum_per_line_type;
9817 */
9818 IF l_line_type.COUNT = 0 THEN
9819 RAISE invoice_has_no_lines;
9820 END IF;
9821 /*Bug 7698161 Added new parameter in boundary condition for exchange rate
9822 passed value for it in calls for rutines
9823 line_boundary
9824 tax_boundary
9825 Used exchange rate to get accounted amount
9826 */
9827 l_exchange_rate := NULL;
9828 OPEN cu_inv_cur;
9829 FETCH cu_inv_cur INTO l_inv_currency,l_exchange_rate;
9830 CLOSE cu_inv_cur;
9831 l_exchange_rate := nvl(l_exchange_rate,1);
9832
9833 FOR i IN l_line_type.FIRST .. l_line_type.LAST LOOP
9834 IF PG_DEBUG = 'Y' THEN
9835 localdebug(' Current line type :'||l_line_type(i));
9836 END IF;
9837 IF l_line_type(i) IN ('LINE','CB') THEN
9838 line_boundary (p_adj_rec => p_adj_rec,
9839 p_sum_line_orig_amt => l_sum_line_orig_amt(i),
9840 p_sum_line_rem_amt => l_sum_line_rem_amt(i),
9841 p_inv_currency => l_inv_currency,
9842 p_customer_trx_id => p_customer_trx_id,
9843 p_gt_id => p_gt_id,
9844 p_ae_sys_rec => p_ae_sys_rec,
9845 p_exchange_rate => l_exchange_rate);
9846 l_line_boundary_done := 'Y';
9847 l_freight_boundary_done := 'Y';
9848 l_chrg_boundary_done := 'Y';
9849 ELSIF l_line_type(i) = 'TAX' THEN
9850
9851 tax_boundary (p_adj_rec => p_adj_rec,
9852 p_sum_line_tax_orig_amt => l_sum_line_tax_orig_amt(i),
9853 p_sum_line_tax_rem_amt => l_sum_line_tax_rem_amt(i),
9854 p_inv_currency => l_inv_currency,
9855 p_customer_trx_id => p_customer_trx_id,
9856 p_gt_id => p_gt_id,
9857 p_ae_sys_rec => p_ae_sys_rec,
9858 p_exchange_rate => l_exchange_rate);
9859 l_tax_boundary_done := 'Y';
9860
9861 /* Freight adj boundary part on revenue line because frt adj are tied to
9862 Rev lines
9863 ELSIF l_line_type(i) = 'FREIGHT' THEN
9864
9865 freight_boundary(p_adj_rec => p_adj_rec,
9866 p_sum_line_frt_orig_amt => l_sum_line_frt_orig_amt(i),
9867 p_sum_line_frt_rem_amt => l_sum_line_frt_rem_amt(i),
9868 p_inv_currency => l_inv_currency,
9869 p_customer_trx_id => p_customer_trx_id,
9870 p_gt_id => p_gt_id,
9871 p_ae_sys_rec => p_ae_sys_rec);
9872 l_freight_boundary_done := 'Y';
9873 */
9874 END IF;
9875 END LOOP;
9876
9877 IF l_line_boundary_done <> 'Y' THEN
9878 line_boundary (p_adj_rec => p_adj_rec,
9879 p_sum_line_orig_amt => 0,
9880 p_sum_line_rem_amt => 0,
9881 p_inv_currency => l_inv_currency,
9882 p_customer_trx_id => p_customer_trx_id,
9883 p_gt_id => p_gt_id,
9884 p_ae_sys_rec => p_ae_sys_rec,
9885 p_exchange_rate => l_exchange_rate);
9886 l_line_boundary_done := 'Y';
9887 l_freight_boundary_done := 'Y';
9888 l_chrg_boundary_done := 'Y';
9889 END IF;
9890
9891 /*
9892 IF l_freight_boundary_done <> 'Y' THEN
9893 freight_boundary(p_adj_rec => p_adj_rec,
9894 p_sum_line_frt_orig_amt => 0,
9895 p_sum_line_frt_rem_amt => 0,
9896 p_inv_currency => l_inv_currency,
9897 p_customer_trx_id => p_customer_trx_id,
9898 p_gt_id => p_gt_id,
9899 p_ae_sys_rec => p_ae_sys_rec);
9900 l_freight_boundary_done := 'Y';
9901 END IF;
9902 */
9903 IF l_tax_boundary_done <> 'Y' THEN
9904 tax_boundary (p_adj_rec => p_adj_rec,
9905 p_sum_line_tax_orig_amt => 0,
9906 p_sum_line_tax_rem_amt => 0,
9907 p_inv_currency => l_inv_currency,
9908 p_customer_trx_id => p_customer_trx_id,
9909 p_gt_id => p_gt_id,
9910 p_ae_sys_rec => p_ae_sys_rec,
9911 p_exchange_rate => l_exchange_rate);
9912 l_tax_boundary_done := 'Y';
9913 END IF;
9914
9915 IF PG_DEBUG = 'Y' THEN
9916 localdebug('arp_det_dist_pkg.adjustment_detemination()-');
9917 END IF;
9918 EXCEPTION
9919 WHEN not_an_adjustment THEN
9920 IF PG_DEBUG = 'Y' THEN
9921 localdebug(' EXCEPTION not_an_adjustment IN adjustment_detemination:'||'
9922 '|| ' p_customer_trx_id : '||p_customer_trx_id ||'
9923 '|| ' p_pay_adj : '||p_pay_adj);
9924
9925 END IF;
9926 WHEN invoice_has_no_lines THEN
9927 IF PG_DEBUG = 'Y' THEN
9928 localdebug(' EXCEPTION invoice_has_no_lines IN adjustment_detemination:'||'
9929 '|| ' p_customer_trx_id : '||p_customer_trx_id );
9930
9931 END IF;
9932 -- RAISE;
9933 END adjustment_detemination;
9934
9935
9936
9937
9938 PROCEDURE update_group_line
9939 (p_gt_id IN VARCHAR2,
9940 p_customer_trx_id IN NUMBER,
9941 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
9942 IS
9943 CURSOR c_read_for_gline IS
9944 SELECT /*+ leading(B) INDEX(B ra_ar_n1) INDEX(D RA_AR_AMOUNTS_GT_N1)*/
9945 b.group_id groupe,
9946 -- ADJ AND APP
9947 --Base
9948 d.base_pro_amt,
9949 d.base_pro_acctd_amt,
9950 d.base_frt_pro_amt,
9951 d.base_frt_pro_acctd_amt,
9952 d.base_tax_pro_amt,
9953 d.base_tax_pro_acctd_amt,
9954 d.BASE_CHRG_PRO_AMT,
9955 d.BASE_CHRG_PRO_ACCTD_AMT,
9956 --Element
9957 d.elmt_pro_amt,
9958 d.elmt_pro_acctd_amt,
9959 d.elmt_frt_pro_amt,
9960 d.elmt_frt_pro_acctd_amt,
9961 d.elmt_tax_pro_amt,
9962 d.elmt_tax_pro_acctd_amt,
9963 d.ELMT_CHRG_PRO_AMT,
9964 d.ELMT_CHRG_PRO_ACCTD_AMT,
9965 --Amount to be allocated
9966 d.buc_alloc_amt,
9967 d.buc_alloc_acctd_amt,
9968 d.buc_frt_alloc_amt,
9969 d.buc_frt_alloc_acctd_amt,
9970 d.buc_tax_alloc_amt,
9971 d.buc_tax_alloc_acctd_amt,
9972 d.buc_chrg_alloc_amt,
9973 d.buc_chrg_alloc_acctd_amt,
9974 -- ED
9975 --Base
9976 d.base_ed_pro_amt,
9977 d.base_ed_pro_acctd_amt,
9978 d.base_ed_frt_pro_amt,
9979 d.base_ed_frt_pro_acctd_amt,
9980 d.base_ed_tax_pro_amt,
9981 d.base_ed_tax_pro_acctd_amt,
9982 d.BASE_ed_CHRG_PRO_AMT,
9983 d.BASE_ed_CHRG_PRO_ACCTD_AMT,
9984 --Element
9985 d.elmt_ed_pro_amt,
9986 d.elmt_ed_pro_acctd_amt,
9987 d.elmt_ed_frt_pro_amt,
9988 d.elmt_ed_frt_pro_acctd_amt,
9989 d.elmt_ed_tax_pro_amt,
9990 d.elmt_ed_tax_pro_acctd_amt,
9991 d.ELMT_ed_CHRG_PRO_AMT,
9992 d.ELMT_ed_CHRG_PRO_ACCTD_AMT,
9993 --Amount to be allocated
9994 d.buc_ed_alloc_amt,
9995 d.buc_ed_alloc_acctd_amt,
9996 d.buc_ed_frt_alloc_amt,
9997 d.buc_ed_frt_alloc_acctd_amt,
9998 d.buc_ed_tax_alloc_amt,
9999 d.buc_ed_tax_alloc_acctd_amt,
10000 d.buc_ed_chrg_alloc_amt,
10001 d.buc_ed_chrg_alloc_acctd_amt,
10002 -- UNED
10003 --Base
10004 d.base_uned_pro_amt,
10005 d.base_uned_pro_acctd_amt,
10006 d.base_uned_frt_pro_amt,
10007 d.base_uned_frt_pro_acctd_amt,
10008 d.base_uned_tax_pro_amt,
10009 d.base_uned_tax_pro_acctd_amt,
10010 d.BASE_uned_CHRG_PRO_AMT,
10011 d.BASE_uned_CHRG_PRO_ACCTD_AMT,
10012 --Element
10013 d.elmt_uned_pro_amt,
10014 d.elmt_uned_pro_acctd_amt,
10015 d.elmt_uned_frt_pro_amt,
10016 d.elmt_uned_frt_pro_acctd_amt,
10017 d.elmt_uned_tax_pro_amt,
10018 d.elmt_uned_tax_pro_acctd_amt,
10019 d.ELMT_uned_CHRG_PRO_AMT,
10020 d.ELMT_uned_CHRG_PRO_ACCTD_AMT,
10021 --Amount to be allocated
10022 d.buc_uned_alloc_amt,
10023 d.buc_uned_alloc_acctd_amt,
10024 d.buc_uned_frt_alloc_amt,
10025 d.buc_uned_frt_alloc_acctd_amt,
10026 d.buc_uned_tax_alloc_amt,
10027 d.buc_uned_tax_alloc_acctd_amt,
10028 d.buc_uned_chrg_alloc_amt,
10029 d.buc_uned_chrg_alloc_acctd_amt,
10030 ----
10031 --Currencies
10032 b.BASE_CURRENCY ,
10033 b.TO_CURRENCY ,
10034 b.FROM_CURRENCY ,
10035 -- Rowid
10036 b.rowid
10037 FROM RA_AR_GT b,
10038 RA_AR_AMOUNTS_GT d
10039 WHERE b.gt_id = p_gt_id
10040 AND b.ref_customer_trx_id = p_customer_trx_id
10041 AND b.gp_level = 'GPL'
10042 AND d.gt_id = b.gt_id
10043 AND d.base_rec_rowid = b.rowid
10044 AND b.SET_OF_BOOKS_ID = p_ae_sys_rec.set_of_books_id
10045 AND (b.SOB_TYPE = p_ae_sys_rec.sob_type OR
10046 (b.SOB_TYPE IS NULL AND p_ae_sys_rec.sob_type IS NULL))
10047 ORDER BY b.group_id||'-'||
10048 b.line_type||'-'||
10049 b.ref_customer_trx_line_id;
10050
10051 l_tab pro_res_tbl_type;
10052
10053 l_group_tbl group_tbl_type;
10054 l_group VARCHAR2(60) := 'NOGROUP';
10055
10056 -- ADJ and APP
10057 l_run_amt NUMBER := 0;
10058 l_run_alloc NUMBER := 0;
10059 l_run_acctd_amt NUMBER := 0;
10060 l_run_acctd_alloc NUMBER := 0;
10061 l_alloc NUMBER := 0;
10062 l_acctd_alloc NUMBER := 0;
10063
10064 l_run_chrg_amt NUMBER := 0;
10065 l_run_chrg_alloc NUMBER := 0;
10066 l_run_chrg_acctd_amt NUMBER := 0;
10067 l_run_chrg_acctd_alloc NUMBER := 0;
10068 l_chrg_alloc NUMBER := 0;
10069 l_chrg_acctd_alloc NUMBER := 0;
10070
10071 l_run_frt_amt NUMBER := 0;
10072 l_run_frt_alloc NUMBER := 0;
10073 l_run_frt_acctd_amt NUMBER := 0;
10074 l_run_frt_acctd_alloc NUMBER := 0;
10075 l_frt_alloc NUMBER := 0;
10076 l_frt_acctd_alloc NUMBER := 0;
10077
10078 l_run_tax_amt NUMBER := 0;
10079 l_run_tax_alloc NUMBER := 0;
10080 l_run_tax_acctd_amt NUMBER := 0;
10081 l_run_tax_acctd_alloc NUMBER := 0;
10082 l_tax_alloc NUMBER := 0;
10083 l_tax_acctd_alloc NUMBER := 0;
10084
10085 -- ED
10086 l_run_ed_amt NUMBER := 0;
10087 l_run_ed_alloc NUMBER := 0;
10088 l_run_ed_acctd_amt NUMBER := 0;
10089 l_run_ed_acctd_alloc NUMBER := 0;
10090 l_ed_alloc NUMBER := 0;
10091 l_ed_acctd_alloc NUMBER := 0;
10092
10093 l_run_ed_chrg_amt NUMBER := 0;
10094 l_run_ed_chrg_alloc NUMBER := 0;
10095 l_run_ed_chrg_acctd_amt NUMBER := 0;
10096 l_run_ed_chrg_acctd_alloc NUMBER := 0;
10097 l_ed_chrg_alloc NUMBER := 0;
10098 l_ed_chrg_acctd_alloc NUMBER := 0;
10099
10100 l_run_ed_frt_amt NUMBER := 0;
10101 l_run_ed_frt_alloc NUMBER := 0;
10102 l_run_ed_frt_acctd_amt NUMBER := 0;
10103 l_run_ed_frt_acctd_alloc NUMBER := 0;
10104 l_ed_frt_alloc NUMBER := 0;
10105 l_ed_frt_acctd_alloc NUMBER := 0;
10106
10107 l_run_ed_tax_amt NUMBER := 0;
10108 l_run_ed_tax_alloc NUMBER := 0;
10109 l_run_ed_tax_acctd_amt NUMBER := 0;
10110 l_run_ed_tax_acctd_alloc NUMBER := 0;
10111 l_ed_tax_alloc NUMBER := 0;
10112 l_ed_tax_acctd_alloc NUMBER := 0;
10113
10114 -- UNED
10115 l_run_uned_amt NUMBER := 0;
10116 l_run_uned_alloc NUMBER := 0;
10117 l_run_uned_acctd_amt NUMBER := 0;
10118 l_run_uned_acctd_alloc NUMBER := 0;
10119 l_uned_alloc NUMBER := 0;
10120 l_uned_acctd_alloc NUMBER := 0;
10121
10122 l_run_uned_chrg_amt NUMBER := 0;
10123 l_run_uned_chrg_alloc NUMBER := 0;
10124 l_run_uned_chrg_acctd_amt NUMBER := 0;
10125 l_run_uned_chrg_acctd_alloc NUMBER := 0;
10126 l_uned_chrg_alloc NUMBER := 0;
10127 l_uned_chrg_acctd_alloc NUMBER := 0;
10128
10129 l_run_uned_frt_amt NUMBER := 0;
10130 l_run_uned_frt_alloc NUMBER := 0;
10131 l_run_uned_frt_acctd_amt NUMBER := 0;
10132 l_run_uned_frt_acctd_alloc NUMBER := 0;
10133 l_uned_frt_alloc NUMBER := 0;
10134 l_uned_frt_acctd_alloc NUMBER := 0;
10135
10136 l_run_uned_tax_amt NUMBER := 0;
10137 l_run_uned_tax_alloc NUMBER := 0;
10138 l_run_uned_tax_acctd_amt NUMBER := 0;
10139 l_run_uned_tax_acctd_alloc NUMBER := 0;
10140 l_uned_tax_alloc NUMBER := 0;
10141 l_uned_tax_acctd_alloc NUMBER := 0;
10142
10143 l_exist BOOLEAN;
10144 l_last_fetch BOOLEAN;
10145
10146 BEGIN
10147 IF PG_DEBUG = 'Y' THEN
10148 localdebug('arp_det_dist_pkg.update_group_line()+');
10149 END IF;
10150
10151 OPEN c_read_for_gline;
10152 LOOP
10153 FETCH c_read_for_gline BULK COLLECT INTO
10154 l_tab.GROUPE ,
10155 -- ADJ and APP
10156 -- Base
10157 l_tab.base_pro_amt ,
10158 l_tab.base_pro_acctd_amt ,
10159 l_tab.base_frt_pro_amt ,
10160 l_tab.base_frt_pro_acctd_amt ,
10161 l_tab.base_tax_pro_amt ,
10162 l_tab.base_tax_pro_acctd_amt ,
10163 l_tab.BASE_CHRG_PRO_AMT ,
10164 l_tab.BASE_CHRG_PRO_ACCTD_AMT ,
10165 -- Element numerator
10166 l_tab.elmt_pro_amt ,
10167 l_tab.elmt_pro_acctd_amt ,
10168 l_tab.elmt_frt_pro_amt ,
10169 l_tab.elmt_frt_pro_acctd_amt ,
10170 l_tab.elmt_tax_pro_amt ,
10171 l_tab.elmt_tax_pro_acctd_amt ,
10172 l_tab.ELMT_CHRG_PRO_AMT ,
10173 l_tab.ELMT_CHRG_PRO_ACCTD_AMT ,
10174 -- Amount to be allocated
10175 l_tab.buc_alloc_amt ,
10176 l_tab.buc_alloc_acctd_amt,
10177 l_tab.buc_frt_alloc_amt ,
10178 l_tab.buc_frt_alloc_acctd_amt,
10179 l_tab.buc_tax_alloc_amt ,
10180 l_tab.buc_tax_alloc_acctd_amt,
10181 l_tab.buc_chrg_alloc_amt ,
10182 l_tab.buc_chrg_alloc_acctd_amt,
10183 -- ED
10184 -- Base
10185 l_tab.base_ed_pro_amt ,
10186 l_tab.base_ed_pro_acctd_amt ,
10187 l_tab.base_ed_frt_pro_amt ,
10188 l_tab.base_ed_frt_pro_acctd_amt ,
10189 l_tab.base_ed_tax_pro_amt ,
10190 l_tab.base_ed_tax_pro_acctd_amt ,
10191 l_tab.BASE_ed_CHRG_PRO_AMT ,
10192 l_tab.BASE_ed_CHRG_PRO_ACCTD_AMT ,
10193 -- Element numerator
10194 l_tab.elmt_ed_pro_amt ,
10195 l_tab.elmt_ed_pro_acctd_amt ,
10196 l_tab.elmt_ed_frt_pro_amt ,
10197 l_tab.elmt_ed_frt_pro_acctd_amt ,
10198 l_tab.elmt_ed_tax_pro_amt ,
10199 l_tab.elmt_ed_tax_pro_acctd_amt ,
10200 l_tab.ELMT_ed_CHRG_PRO_AMT ,
10201 l_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT ,
10202 -- Amount to be allocated
10203 l_tab.buc_ed_alloc_amt ,
10204 l_tab.buc_ed_alloc_acctd_amt,
10205 l_tab.buc_ed_frt_alloc_amt ,
10206 l_tab.buc_ed_frt_alloc_acctd_amt,
10207 l_tab.buc_ed_tax_alloc_amt ,
10208 l_tab.buc_ed_tax_alloc_acctd_amt,
10209 l_tab.buc_ed_chrg_alloc_amt ,
10210 l_tab.buc_ed_chrg_alloc_acctd_amt,
10211 -- UNED
10212 -- Base
10213 l_tab.base_uned_pro_amt ,
10214 l_tab.base_uned_pro_acctd_amt ,
10215 l_tab.base_uned_frt_pro_amt ,
10216 l_tab.base_uned_frt_pro_acctd_amt ,
10217 l_tab.base_uned_tax_pro_amt ,
10218 l_tab.base_uned_tax_pro_acctd_amt ,
10219 l_tab.BASE_uned_CHRG_PRO_AMT ,
10220 l_tab.BASE_uned_CHRG_PRO_ACCTD_AMT ,
10221 -- Element numerator
10222 l_tab.elmt_uned_pro_amt ,
10223 l_tab.elmt_uned_pro_acctd_amt ,
10224 l_tab.elmt_uned_frt_pro_amt ,
10225 l_tab.elmt_uned_frt_pro_acctd_amt ,
10226 l_tab.elmt_uned_tax_pro_amt ,
10227 l_tab.elmt_uned_tax_pro_acctd_amt ,
10228 l_tab.ELMT_uned_CHRG_PRO_AMT ,
10229 l_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT ,
10230 -- Amount to be allocated
10231 l_tab.buc_uned_alloc_amt ,
10232 l_tab.buc_uned_alloc_acctd_amt,
10233 l_tab.buc_uned_frt_alloc_amt ,
10234 l_tab.buc_uned_frt_alloc_acctd_amt,
10235 l_tab.buc_uned_tax_alloc_amt ,
10236 l_tab.buc_uned_tax_alloc_acctd_amt,
10237 l_tab.buc_uned_chrg_alloc_amt ,
10238 l_tab.buc_uned_chrg_alloc_acctd_amt,
10239 --
10240 l_tab.BASE_CURRENCY ,
10241 l_tab.TO_CURRENCY ,
10242 l_tab.FROM_CURRENCY ,
10243 --
10244 l_tab.ROWID_ID LIMIT g_bulk_fetch_rows;
10245
10246 IF c_read_for_gline%NOTFOUND THEN
10247 l_last_fetch := TRUE;
10248 END IF;
10249
10250 IF (l_tab.ROWID_ID.COUNT = 0) AND (l_last_fetch) THEN
10251 IF PG_DEBUG = 'Y' THEN
10252 localdebug('COUNT = 0 and LAST FETCH ');
10253 END IF;
10254 EXIT;
10255 END IF;
10256
10257 plsql_proration( x_tab => l_tab,
10258 x_group_tbl => l_group_tbl,
10259 -- ADJ and APP
10260 x_run_amt => l_run_amt,
10261 x_run_alloc => l_run_alloc,
10262 x_run_acctd_amt => l_run_acctd_amt,
10263 x_run_acctd_alloc => l_run_acctd_alloc,
10264 x_run_frt_amt => l_run_frt_amt,
10265 x_run_frt_alloc => l_run_frt_alloc,
10266 x_run_frt_acctd_amt => l_run_frt_acctd_amt,
10267 x_run_frt_acctd_alloc => l_run_frt_acctd_alloc,
10268 x_run_tax_amt => l_run_tax_amt,
10269 x_run_tax_alloc => l_run_tax_alloc,
10270 x_run_tax_acctd_amt => l_run_tax_acctd_amt,
10271 x_run_tax_acctd_alloc => l_run_tax_acctd_alloc,
10272 x_run_chrg_amt => l_run_chrg_amt,
10273 x_run_chrg_alloc => l_run_chrg_alloc,
10274 x_run_chrg_acctd_amt => l_run_chrg_acctd_amt,
10275 x_run_chrg_acctd_alloc => l_run_chrg_acctd_alloc,
10276 -- ED
10277 x_run_ed_amt => l_run_ed_amt,
10278 x_run_ed_alloc => l_run_ed_alloc,
10279 x_run_ed_acctd_amt => l_run_ed_acctd_amt,
10280 x_run_ed_acctd_alloc => l_run_ed_acctd_alloc,
10281 x_run_ed_frt_amt => l_run_ed_frt_amt,
10282 x_run_ed_frt_alloc => l_run_ed_frt_alloc,
10283 x_run_ed_frt_acctd_amt => l_run_ed_frt_acctd_amt,
10284 x_run_ed_frt_acctd_alloc => l_run_ed_frt_acctd_alloc,
10285 x_run_ed_tax_amt => l_run_ed_tax_amt,
10286 x_run_ed_tax_alloc => l_run_ed_tax_alloc,
10287 x_run_ed_tax_acctd_amt => l_run_ed_tax_acctd_amt,
10288 x_run_ed_tax_acctd_alloc => l_run_ed_tax_acctd_alloc,
10289 x_run_ed_chrg_amt => l_run_ed_chrg_amt,
10290 x_run_ed_chrg_alloc => l_run_ed_chrg_alloc,
10291 x_run_ed_chrg_acctd_amt => l_run_ed_chrg_acctd_amt,
10292 x_run_ed_chrg_acctd_alloc => l_run_ed_chrg_acctd_alloc,
10293 -- UNED
10294 x_run_uned_amt => l_run_uned_amt,
10295 x_run_uned_alloc => l_run_uned_alloc,
10296 x_run_uned_acctd_amt => l_run_uned_acctd_amt,
10297 x_run_uned_acctd_alloc => l_run_uned_acctd_alloc,
10298 x_run_uned_frt_amt => l_run_uned_frt_amt,
10299 x_run_uned_frt_alloc => l_run_uned_frt_alloc,
10300 x_run_uned_frt_acctd_amt => l_run_uned_frt_acctd_amt,
10301 x_run_uned_frt_acctd_alloc => l_run_uned_frt_acctd_alloc,
10302 x_run_uned_tax_amt => l_run_uned_tax_amt,
10303 x_run_uned_tax_alloc => l_run_uned_tax_alloc,
10304 x_run_uned_tax_acctd_amt => l_run_uned_tax_acctd_amt,
10305 x_run_uned_tax_acctd_alloc => l_run_uned_tax_acctd_alloc,
10306 x_run_uned_chrg_amt => l_run_uned_chrg_amt,
10307 x_run_uned_chrg_alloc => l_run_uned_chrg_alloc,
10308 x_run_uned_chrg_acctd_amt => l_run_uned_chrg_acctd_amt,
10309 x_run_uned_chrg_acctd_alloc => l_run_uned_chrg_acctd_alloc);
10310
10311 IF PG_DEBUG = 'Y' THEN
10312 localdebug('update ra_ar_gt trx_line_all ');
10313 END IF;
10314 FORALL i IN l_tab.ROWID_ID.FIRST .. l_tab.ROWID_ID.LAST
10315 UPDATE ra_ar_gt
10316 SET
10317 -- ADJ and APP
10318 tl_alloc_amt = l_tab.tl_alloc_amt(i),
10319 tl_alloc_acctd_amt = l_tab.tl_alloc_acctd_amt(i),
10320 tl_frt_alloc_amt = l_tab.tl_frt_alloc_amt(i),
10321 tl_frt_alloc_acctd_amt = l_tab.tl_frt_alloc_acctd_amt(i),
10322 tl_tax_alloc_amt = l_tab.tl_tax_alloc_amt(i),
10323 tl_tax_alloc_acctd_amt = l_tab.tl_tax_alloc_acctd_amt(i),
10324 tl_chrg_alloc_amt = l_tab.tl_chrg_alloc_amt(i),
10325 tl_chrg_alloc_acctd_amt = l_tab.tl_chrg_alloc_acctd_amt(i),
10326 -- ED
10327 tl_ed_alloc_amt = l_tab.tl_ed_alloc_amt(i),
10328 tl_ed_alloc_acctd_amt = l_tab.tl_ed_alloc_acctd_amt(i),
10329 tl_ed_frt_alloc_amt = l_tab.tl_ed_frt_alloc_amt(i),
10330 tl_ed_frt_alloc_acctd_amt = l_tab.tl_ed_frt_alloc_acctd_amt(i),
10331 tl_ed_tax_alloc_amt = l_tab.tl_ed_tax_alloc_amt(i),
10332 tl_ed_tax_alloc_acctd_amt = l_tab.tl_ed_tax_alloc_acctd_amt(i),
10333 tl_ed_chrg_alloc_amt = l_tab.tl_ed_chrg_alloc_amt(i),
10334 tl_ed_chrg_alloc_acctd_amt = l_tab.tl_ed_chrg_alloc_acctd_amt(i),
10335 -- UNED
10336 tl_uned_alloc_amt = l_tab.tl_uned_alloc_amt(i),
10337 tl_uned_alloc_acctd_amt = l_tab.tl_uned_alloc_acctd_amt(i),
10338 tl_uned_frt_alloc_amt = l_tab.tl_uned_frt_alloc_amt(i),
10339 tl_uned_frt_alloc_acctd_amt = l_tab.tl_uned_frt_alloc_acctd_amt(i),
10340 tl_uned_tax_alloc_amt = l_tab.tl_uned_tax_alloc_amt(i),
10341 tl_uned_tax_alloc_acctd_amt = l_tab.tl_uned_tax_alloc_acctd_amt(i),
10342 tl_uned_chrg_alloc_amt = l_tab.tl_uned_chrg_alloc_amt(i),
10343 tl_uned_chrg_alloc_acctd_amt = l_tab.tl_uned_chrg_alloc_acctd_amt(i)
10344 WHERE rowid = l_tab.ROWID_ID(i);
10345
10346 END LOOP;
10347 CLOSE c_read_for_gline;
10348
10349 IF PG_DEBUG = 'Y' THEN
10350 localdebug('arp_det_dist_pkg.update_group_line()-');
10351 END IF;
10352 END update_group_line;
10353
10354
10355 PROCEDURE get_invoice_line_info_per_grp
10356 (p_gt_id IN VARCHAR2,
10357 p_customer_trx_id IN NUMBER,
10358 -- p_group_id IN VARCHAR2,
10359 --{HYUBPAGP
10360 p_source_data_key1 IN VARCHAR2,
10361 p_source_data_key2 IN VARCHAR2,
10362 p_source_data_key3 IN VARCHAR2,
10363 p_source_data_key4 IN VARCHAR2,
10364 p_source_data_key5 IN VARCHAR2,
10365 --}
10366 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
10367 IS
10368 l_rows NUMBER;
10369 BEGIN
10370 IF PG_DEBUG = 'Y' THEN
10371 localdebug('arp_det_dist_pkg.get_invoice_line_info_per_grp()+');
10372 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
10373 localdebug(' p_source_data_key1 :'||p_source_data_key1);
10374 localdebug(' p_source_data_key2 :'||p_source_data_key2);
10375 localdebug(' p_source_data_key3 :'||p_source_data_key3);
10376 localdebug(' p_source_data_key4 :'||p_source_data_key4);
10377 localdebug(' p_source_data_key5 :'||p_source_data_key5);
10378 localdebug(' p_gt_id :'||p_gt_id);
10379 END IF;
10380
10381 INSERT INTO RA_AR_GT
10382 ( GT_ID ,
10383 BASE_CURRENCY ,
10384 TO_CURRENCY ,
10385 REF_CUSTOMER_TRX_ID ,
10386 REF_CUSTOMER_TRX_LINE_ID ,
10387 --
10388 DUE_ORIG_AMT ,
10389 DUE_ORIG_ACCTD_AMT ,
10390 --{line of type CHRG
10391 CHRG_ORIG_AMT ,
10392 CHRG_ORIG_ACCTD_AMT ,
10393 --}
10394 --
10395 FRT_ORIG_AMT ,
10396 FRT_ORIG_ACCTD_AMT ,
10397 TAX_ORIG_AMT ,
10398 TAX_ORIG_ACCTD_AMT ,
10399 --
10400 DUE_REM_AMT ,
10401 DUE_REM_ACCTD_AMT ,
10402 CHRG_REM_AMT ,
10403 CHRG_REM_ACCTD_AMT ,
10404 --
10405 FRT_REM_AMT ,
10406 FRT_REM_ACCTD_AMT ,
10407 TAX_REM_AMT ,
10408 TAX_REM_ACCTD_AMT ,
10409 --
10410 --{line of type CHRG
10411 CHRG_ADJ_REM_AMT ,
10412 CHRG_ADJ_REM_ACCTD_AMT ,
10413 --}
10414 FRT_ADJ_REM_AMT ,
10415 FRT_ADJ_REM_ACCTD_AMT ,
10416 --
10417 LINE_TYPE ,
10418 group_id ,
10419 --{For Group identification
10420 source_data_key1 ,
10421 source_data_key2 ,
10422 source_data_key3 ,
10423 source_data_key4 ,
10424 source_data_key5 ,
10425 --}
10426 --
10427 SUM_LINE_ORIG_AMT ,
10428 SUM_LINE_ORIG_ACCTD_AMT ,
10429 --{line of type CHRG
10430 SUM_LINE_CHRG_ORIG_AMT ,
10431 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
10432 --}
10433 SUM_LINE_FRT_ORIG_AMT ,
10434 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
10435 SUM_LINE_TAX_ORIG_AMT ,
10436 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
10437 --
10438 SUM_LINE_REM_AMT ,
10439 SUM_LINE_REM_ACCTD_AMT ,
10440 SUM_LINE_CHRG_REM_AMT ,
10441 SUM_LINE_CHRG_REM_ACCTD_AMT,
10442 --
10443 SUM_LINE_FRT_REM_AMT ,
10444 SUM_LINE_FRT_REM_ACCTD_AMT ,
10445 SUM_LINE_TAX_REM_AMT ,
10446 SUM_LINE_TAX_REM_ACCTD_AMT ,
10447 --
10448 gp_level,
10449 --
10450 set_of_books_id,
10451 sob_type
10452 -- se_gt_id
10453 )
10454 SELECT /*+INDEX (ctl ra_customer_trx_lines_gt_n1)*/
10455 p_gt_id , --GT_ID
10456 p_ae_sys_rec.base_currency , --BASE_CURRENCY
10457 trx.invoice_currency_code , --TO_CURRENCY
10458 trx.customer_trx_id , --REF_CUSTOMER_TRX_ID
10459 ctl.customer_trx_line_id , --REF_CUSTOMER_TRX_LINE_ID
10460 -- Orig
10461 DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
10462 'CB' ,ctl.amount_due_original,0), --DUE_ORIG_AMT
10463 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
10464 'CB' ,ctl.acctd_amount_due_original,0), --DUE_ORIG_ACCTD_AMT
10465 --{line of type CHRG
10466 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0), --CHRG_ORIG_AMT
10467 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0), --CHRG_ORIG_ACCTD_AMT
10468 --}
10469 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0), --FRT_ORIG_AMT
10470 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0), --FRT_ORIG_ACCTD_AMT
10471 DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0), --TAX_ORIG_AMT
10472 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0), --TAX_ORIG_ACCTD_AMT
10473 -- Remaining
10474 DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
10475 'CB' ,ctl.amount_due_remaining,0) , --DUE_REM_AMT
10476 DECODE(ctl.line_type,'LINE',acctd_amount_due_remaining,
10477 'CB' ,acctd_amount_due_remaining,0), --DUE_REM_ACCTD_AMT
10478 --{line of type CHRG
10479 -- ctl.chrg_amount_remaining ,
10480 -- ctl.chrg_acctd_amount_remaining,
10481 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_remaining,0) , --CHRG_REM_AMT
10482 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_remaining,0),--CHRG_REM_ACCTD_AMT
10483 --}
10484 --
10485 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_remaining,0) , --FRT_REM_AMT
10486 /*Frt Rem on freight is the
10487 rem amount of the freight calculated
10488 from orig frt - cash application
10489 frt adjustment variations are excluded
10490 they are kept in frt_adj_rem_amt on rev line */
10491 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_remaining,0), --FRT_REM_ACCTD_AMT
10492 DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0) , --TAX_REM_AMT
10493 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0), --TAX_REM_ACCTD_AMT
10494 --
10495 --{line of type CHRG
10496 ctl.chrg_amount_remaining , --chrg_amount_remaining
10497 ctl.chrg_acctd_amount_remaining , --chrg_acctd_amount_remaining
10498 --}
10499 ctl.frt_adj_remaining , --FRT_ADJ_REM_AMT
10500 ctl.frt_adj_acctd_remaining , --FRT_ADJ_REM_ACCTD_AMT
10501 --
10502 ctl.line_type , --LINE_TYPE
10503 -- NVL(ctl.SOURCE_DATA_KEY1,'00'), --GROUP_ID
10504 DECODE(ctl.SOURCE_DATA_KEY1 ||
10505 ctl.SOURCE_DATA_KEY2 ||
10506 ctl.SOURCE_DATA_KEY3 ||
10507 ctl.SOURCE_DATA_KEY4 ||
10508 ctl.SOURCE_DATA_KEY5, NULL, '00',
10509 ctl.SOURCE_DATA_KEY1 ||'-'||
10510 ctl.SOURCE_DATA_KEY2 ||'-'||
10511 ctl.SOURCE_DATA_KEY3 ||'-'||
10512 ctl.SOURCE_DATA_KEY4 ||'-'||
10513 ctl.SOURCE_DATA_KEY5), --GROUP_ID
10514 --{Group identification
10515 NVL(ctl.source_data_key1,'00'),
10516 NVL(ctl.source_data_key2,'00'),
10517 NVL(ctl.source_data_key3,'00'),
10518 NVL(ctl.source_data_key4,'00'),
10519 NVL(ctl.source_data_key5,'00'),
10520 --}
10521 --
10522 SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
10523 'CB' ,ctl.amount_due_original,0))
10524 OVER (PARTITION BY trx.customer_trx_id,
10525 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10526 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10527 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10528 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10529 NVL(ctl.SOURCE_DATA_KEY5,'00'),
10530 ctl.line_type ), --SUM_LINE_ORIG_AMT
10531 SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
10532 'CB' ,ctl.acctd_amount_due_original,0))
10533 OVER (PARTITION BY trx.customer_trx_id,
10534 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10535 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10536 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10537 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10538 NVL(ctl.SOURCE_DATA_KEY5,'00'),
10539 ctl.line_type ), --SUM_LINE_ORIG_ACCTD_AMT
10540 --{line of type CHRG
10541 SUM(DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0))
10542 OVER (PARTITION BY trx.customer_trx_id,
10543 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10544 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10545 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10546 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10547 NVL(ctl.SOURCE_DATA_KEY5,'00'),
10548 ctl.line_type ), --SUM_LINE_CHRG_ORIG_AMT
10549 SUM(DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0))
10550 OVER (PARTITION BY trx.customer_trx_id,
10551 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10552 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10553 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10554 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10555 NVL(ctl.SOURCE_DATA_KEY5,'00'),
10556 ctl.line_type ), --SUM_LINE_CHRG_ORIG_ACCTD_AMT
10557 --}
10558 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0))
10559 OVER (PARTITION BY trx.customer_trx_id,
10560 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10561 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10562 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10563 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10564 NVL(ctl.SOURCE_DATA_KEY5,'00'),
10565 ctl.line_type ), --SUM_LINE_FRT_ORIG_AMT
10566 SUM(DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0))
10567 OVER (PARTITION BY trx.customer_trx_id,
10568 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10569 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10570 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10571 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10572 NVL(ctl.SOURCE_DATA_KEY5,'00'),
10573 ctl.line_type ), --SUM_LINE_FRT_ORIG_ACCTD_AMT
10574 SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0))
10575 OVER (PARTITION BY trx.customer_trx_id,
10576 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10577 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10578 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10579 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10580 NVL(ctl.SOURCE_DATA_KEY5,'00'),
10581 ctl.line_type ), --SUM_LINE_TAX_ORIG_AMT
10582 SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0))
10583 OVER (PARTITION BY trx.customer_trx_id,
10584 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10585 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10586 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10587 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10588 NVL(ctl.SOURCE_DATA_KEY5,'00'),
10589 ctl.line_type ), --SUM_LINE_TAX_ORIG_ACCTD_AMT
10590 --
10591 SUM(DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
10592 'CB' ,ctl.amount_due_remaining,0))
10593 OVER (PARTITION BY trx.customer_trx_id,
10594 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10595 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10596 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10597 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10598 NVL(ctl.SOURCE_DATA_KEY5,'00'),
10599 ctl.line_type ), --SUM_LINE_REM_AMT
10600 SUM(DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
10601 'CB' ,ctl.acctd_amount_due_remaining,0))
10602 OVER (PARTITION BY trx.customer_trx_id,
10603 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10604 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10605 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10606 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10607 NVL(ctl.SOURCE_DATA_KEY5,'00'),
10608 ctl.line_type ), --SUM_LINE_REM_ACCTD_AMT
10609 --{line of type CHRG
10610 SUM(DECODE
10611 (ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
10612 'CB' ,NVL(ctl.chrg_amount_remaining,0),
10613 'CHARGES',NVL(ctl.amount_due_remaining,0),
10614 0)) OVER (PARTITION BY trx.customer_trx_id,
10615 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10616 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10617 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10618 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10619 NVL(ctl.SOURCE_DATA_KEY5,'00') ),--SUM_LINE_CHRG_REM_AMT
10620 SUM(DECODE
10621 (ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
10622 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
10623 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
10624 0)) OVER (PARTITION BY trx.customer_trx_id,
10625 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10626 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10627 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10628 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10629 NVL(ctl.SOURCE_DATA_KEY5,'00') ),--SUM_LINE_CHRG_REM_ACCTD_AMT
10630 -- SUM(ctl.chrg_amount_remaining)
10631 -- OVER (PARTITION BY trx.customer_trx_id,
10632 -- NVL(ctl.SOURCE_DATA_KEY1,'00'),
10633 -- NVL(ctl.SOURCE_DATA_KEY2,'00'),
10634 -- NVL(ctl.SOURCE_DATA_KEY3,'00'),
10635 -- NVL(ctl.SOURCE_DATA_KEY4,'00'),
10636 -- NVL(ctl.SOURCE_DATA_KEY5,'00'),
10637 -- ctl.line_type ), --SUM_LINE_CHRG_REM_AMT
10638 -- SUM(ctl.chrg_acctd_amount_remaining)
10639 -- OVER (PARTITION BY trx.customer_trx_id,
10640 -- NVL(ctl.SOURCE_DATA_KEY1,'00'),
10641 -- NVL(ctl.SOURCE_DATA_KEY2,'00'),
10642 -- NVL(ctl.SOURCE_DATA_KEY3,'00'),
10643 -- NVL(ctl.SOURCE_DATA_KEY4,'00'),
10644 -- NVL(ctl.SOURCE_DATA_KEY5,'00'),
10645 -- ctl.line_type ), --SUM_LINE_CHRG_REM_ACCTD_AMT
10646 --}
10647 --
10648 /* This is the sum of freight amount adjusted on the revenue line
10649 + sum of freight amount due remaining on the original freight line
10650 Those 2 amounts combined form the basis for cash receipt apps */
10651 SUM(DECODE
10652 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
10653 'CB' ,NVL(ctl.frt_adj_remaining,0),
10654 'FREIGHT',NVL(ctl.amount_due_remaining,0),
10655 0)) OVER (PARTITION BY trx.customer_trx_id,
10656 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10657 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10658 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10659 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10660 NVL(ctl.SOURCE_DATA_KEY5,'00') ),--SUM_LINE_FRT_REM_AMT
10661 SUM(DECODE
10662 (ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
10663 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
10664 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
10665 0)) OVER (PARTITION BY trx.customer_trx_id,
10666 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10667 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10668 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10669 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10670 NVL(ctl.SOURCE_DATA_KEY5,'00') ),--SUM_LINE_FRT_REM_ACCTD_AMT
10671 SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0))
10672 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type,
10673 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10674 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10675 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10676 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10677 NVL(ctl.SOURCE_DATA_KEY5,'00')), --SUM_LINE_TAX_REM_AMT
10678 SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0))
10679 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type,
10680 NVL(ctl.SOURCE_DATA_KEY1,'00'),
10681 NVL(ctl.SOURCE_DATA_KEY2,'00'),
10682 NVL(ctl.SOURCE_DATA_KEY3,'00'),
10683 NVL(ctl.SOURCE_DATA_KEY4,'00'),
10684 NVL(ctl.SOURCE_DATA_KEY5,'00')), --SUM_LINE_TAX_REM_ACCTD_AMT
10685 --
10686 'L',
10687 --
10688 p_ae_sys_rec.set_of_books_id,
10689 p_ae_sys_rec.sob_type
10690 -- g_se_gt_id
10691 FROM ra_customer_trx trx,
10692 ra_customer_trx_lines_gt ctl
10693 WHERE trx.customer_trx_id = p_customer_trx_id
10694 AND trx.customer_trx_id = ctl.customer_trx_id
10695 -- AND NVL(ctl.group_id,'00') = p_group_id
10696 --{HYUBPAGP
10697 AND NVL(ctl.source_data_key1,'00') = NVL(p_source_data_key1,'00')
10698 AND NVL(ctl.source_data_key2,'00') = NVL(p_source_data_key2,'00')
10699 AND NVL(ctl.source_data_key3,'00') = NVL(p_source_data_key3,'00')
10700 AND NVL(ctl.source_data_key4,'00') = NVL(p_source_data_key4,'00')
10701 AND NVL(ctl.source_data_key5,'00') = NVL(p_source_data_key5,'00');
10702 --}
10703 l_rows := sql%rowcount;
10704 IF PG_DEBUG = 'Y' THEN
10705 localdebug(' rows inserted = ' || l_rows);
10706 localdebug('arp_det_dist_pkg.get_invoice_line_info_per_grp()-');
10707 END IF;
10708 END get_invoice_line_info_per_grp;
10709
10710
10711 PROCEDURE get_invoice_line_info_per_line
10712 (p_gt_id IN VARCHAR2,
10713 p_customer_trx_id IN NUMBER,
10714 p_customer_trx_line_id IN NUMBER,
10715 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
10716 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
10717 IS
10718 l_rows NUMBER;
10719 BEGIN
10720 IF PG_DEBUG = 'Y' THEN
10721 localdebug('arp_det_dist_pkg.get_invoice_line_info_per_line()+');
10722 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
10723 localdebug(' p_customer_trx_line_id :'||p_customer_trx_line_id);
10724 localdebug(' p_gt_id :'||p_gt_id);
10725 END IF;
10726
10727 INSERT INTO RA_AR_GT
10728 ( GT_ID ,
10729 BASE_CURRENCY ,
10730 TO_CURRENCY ,
10731 REF_CUSTOMER_TRX_ID ,
10732 REF_CUSTOMER_TRX_LINE_ID ,
10733 --
10734 DUE_ORIG_AMT ,
10735 DUE_ORIG_ACCTD_AMT ,
10736 --
10737 CHRG_ORIG_AMT ,
10738 CHRG_ORIG_ACCTD_AMT ,
10739 FRT_ORIG_AMT ,
10740 FRT_ORIG_ACCTD_AMT ,
10741 TAX_ORIG_AMT ,
10742 TAX_ORIG_ACCTD_AMT ,
10743 --
10744 DUE_REM_AMT ,
10745 DUE_REM_ACCTD_AMT ,
10746 CHRG_REM_AMT ,
10747 CHRG_REM_ACCTD_AMT ,
10748 --
10749 FRT_REM_AMT ,
10750 FRT_REM_ACCTD_AMT ,
10751 TAX_REM_AMT ,
10752 TAX_REM_ACCTD_AMT ,
10753 --
10754 FRT_ADJ_REM_AMT ,
10755 FRT_ADJ_REM_ACCTD_AMT ,
10756 --
10757 LINE_TYPE ,
10758 group_id ,
10759 --{HYUBPAGP
10760 source_data_key1 ,
10761 source_data_key2 ,
10762 source_data_key3 ,
10763 source_data_key4 ,
10764 source_data_key5 ,
10765 --}
10766 --
10767 SUM_LINE_ORIG_AMT ,
10768 SUM_LINE_ORIG_ACCTD_AMT ,
10769 --{HYUCHRG
10770 SUM_LINE_CHRG_ORIG_AMT ,
10771 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
10772 --}
10773 SUM_LINE_FRT_ORIG_AMT ,
10774 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
10775 SUM_LINE_TAX_ORIG_AMT ,
10776 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
10777 --
10778 SUM_LINE_REM_AMT ,
10779 SUM_LINE_REM_ACCTD_AMT ,
10780 SUM_LINE_CHRG_REM_AMT ,
10781 SUM_LINE_CHRG_REM_ACCTD_AMT,
10782 --
10783 SUM_LINE_FRT_REM_AMT ,
10784 SUM_LINE_FRT_REM_ACCTD_AMT ,
10785 SUM_LINE_TAX_REM_AMT ,
10786 SUM_LINE_TAX_REM_ACCTD_AMT ,
10787 --
10788 gp_level,
10789 --
10790 set_of_books_id,
10791 sob_type)
10792 -- se_gt_id)
10793 SELECT /*+INDEX (ctl ra_customer_trx_lines_gt_n1)*/
10794 p_gt_id , --GT_ID
10795 p_ae_sys_rec.base_currency , --BASE_CURRENCY
10796 trx.invoice_currency_code , --TO_CURRENCY
10797 trx.customer_trx_id , --REF_CUSTOMER_TRX_ID
10798 ctl.customer_trx_line_id , --REF_CUSTOMER_TRX_LINE_ID
10799 -- Orig
10800 DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
10801 'CB' ,ctl.amount_due_original,0), --DUE_ORIG_AMT
10802 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
10803 'CB' ,ctl.acctd_amount_due_original,0), --DUE_ORIG_ACCTD_AMT
10804 --{HYUCHRG
10805 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0), --CHRG_ORIG_AMT
10806 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0), --CHRG_ORIG_ACCTD_AMT
10807 --}
10808 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0), --FRT_ORIG_AMT
10809 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0), --FRT_ORIG_ACCTD_AMT
10810 DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0), --TAX_ORIG_AMT
10811 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0), --TAX_ORIG_ACCTD_AMT
10812 -- Remaining
10813 DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
10814 'CB' ,ctl.amount_due_remaining,0) , --DUE_REM_AMT
10815 /*DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
10816 'CB' ,ctl.acctd_amount_due_remaining,0), --DUE_REM_ACCTD_AMT*/
10817 DECODE(ctl.line_type,'LINE',
10818 DECODE(ctl.amount_due_remaining,0,
10819 ctl.acctd_amount_due_remaining,
10820 DECODE(ctl.acctd_amount_due_remaining,0,
10821 arpcurr.CurrRound( ctl.amount_due_remaining *
10822 nvl(trx.exchange_rate,1)
10823 ,trx.invoice_currency_code),
10824 ctl.acctd_amount_due_remaining)),
10825 'CB' ,ctl.acctd_amount_due_remaining,0), --DUE_REM_ACCTD_AMT
10826 --{HYUCHRG
10827 -- DECODE(ctl.line_type,'LINE',ctl.chrg_amount_remaining,
10828 -- 'CB' ,ctl.chrg_amount_remaining,0),
10829 -- DECODE(ctl.line_type,'LINE',ctl.chrg_acctd_amount_remaining,
10830 -- 'CB' ,ctl.chrg_acctd_amount_remaining,0),
10831 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_remaining,0) , --CHRG_REM_AMT
10832 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_remaining,0), --CHRG_REM_ACCTD_AMT
10833 --}
10834 --
10835 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_remaining,0) , --FRT_REM_AMT
10836 /*Frt Rem on freight is the
10837 rem amount of the freight calculated
10838 from orig frt - cash application
10839 frt adjustment variations are excluded
10840 they are kept in frt_adj_rem_amt on rev line */
10841 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_remaining,0), --FRT_REM_ACCTD_AMT
10842 DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0) , --TAX_REM_AMT
10843 DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0), --TAX_REM_ACCTD_AMT
10844 ctl.frt_adj_remaining , --FRT_ADJ_REM_AMT
10845 ctl.frt_adj_acctd_remaining , --FRT_ADJ_REM_ACCTD_AMT
10846 --
10847 ctl.line_type , --LINE_TYPE
10848 DECODE(ctl.SOURCE_DATA_KEY1 ||
10849 ctl.SOURCE_DATA_KEY2 ||
10850 ctl.SOURCE_DATA_KEY3 ||
10851 ctl.SOURCE_DATA_KEY4 ||
10852 ctl.SOURCE_DATA_KEY5, NULL, '00',
10853 ctl.SOURCE_DATA_KEY1 ||'-'||
10854 ctl.SOURCE_DATA_KEY2 ||'-'||
10855 ctl.SOURCE_DATA_KEY3 ||'-'||
10856 ctl.SOURCE_DATA_KEY4 ||'-'||
10857 ctl.SOURCE_DATA_KEY5), --GROUP_ID
10858 -- NVL(ctl.SOURCE_DATA_KEY1,'00'), --GROUP_ID
10859 --{HYUBPAGP
10860 NVL(ctl.source_data_key1,'00'),
10861 NVL(ctl.source_data_key2,'00'),
10862 NVL(ctl.source_data_key3,'00'),
10863 NVL(ctl.source_data_key4,'00'),
10864 NVL(ctl.source_data_key5,'00'),
10865 --}
10866 --
10867 DECODE(ctl.line_type,'LINE',ctl.amount_due_original,
10868 'CB' ,ctl.amount_due_original,0), --SUM_LINE_ORIG_AMT
10869 DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_original,
10870 'CB' ,ctl.acctd_amount_due_original,0), --SUM_LINE_ORIG_ACCTD_AMT
10871 --{HYUCHRG
10872 DECODE(ctl.line_type,'CHARGES',ctl.amount_due_original,0), --SUM_LINE_CHRG_ORIG_AMT
10873 DECODE(ctl.line_type,'CHARGES',ctl.acctd_amount_due_original,0), --SUM_LINE_CHRG_ORIG_ACCTD_AMT
10874 --}
10875 DECODE(ctl.line_type,'FREIGHT',ctl.amount_due_original,0), --SUM_LINE_FRT_ORIG_AMT
10876 DECODE(ctl.line_type,'FREIGHT',ctl.acctd_amount_due_original,0), --SUM_LINE_FRT_ORIG_ACCTD_AMT
10877
10878 --HYUIssue
10879 -- DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0), --SUM_LINE_TAX_ORIG_AMT
10880
10881 SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_original,0))
10882 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_ORIG_AMT
10883 -- DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_original,0), --SUM_LINE_TAX_ORIG_ACCTD_AMT
10884 SUM(DECODE(ctl.line_type,'TAX',ctl.ACCTD_amount_due_original,0))
10885 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_ORIG_ACCTD_AMT
10886 --}
10887 --
10888 DECODE(ctl.line_type,'LINE',ctl.amount_due_remaining,
10889 'CB' ,ctl.amount_due_remaining,0), --SUM_LINE_REM_AMT
10890 DECODE(ctl.line_type,'LINE',
10891 DECODE(ctl.amount_due_remaining,0,
10892 ctl.acctd_amount_due_remaining,
10893 DECODE(ctl.acctd_amount_due_remaining,0,
10894 arpcurr.CurrRound( ctl.amount_due_remaining *
10895 nvl(trx.exchange_rate,1)
10896 ,trx.invoice_currency_code),
10897 ctl.acctd_amount_due_remaining)),
10898 'CB' ,ctl.acctd_amount_due_remaining,0), --SUM_LINE_REM_ACCTD_AMT
10899 /*DECODE(ctl.line_type,'LINE',ctl.acctd_amount_due_remaining,
10900 'CB' ,ctl.acctd_amount_due_remaining,0), --SUM_LINE_REM_ACCTD_AMT*/
10901 --{HYUCHRG
10902 -- ctl.chrg_amount_remaining,
10903 -- ctl.chrg_acctd_amount_remaining,
10904 DECODE(ctl.line_type,'LINE' ,NVL(ctl.chrg_amount_remaining,0),
10905 'CB' ,NVL(ctl.chrg_amount_remaining,0),
10906 'CHARGES',NVL(ctl.amount_due_remaining,0),
10907 0), --SUM_LINE_CHRG_REM_AMT
10908 DECODE(ctl.line_type,'LINE' ,NVL(ctl.chrg_acctd_amount_remaining,0),
10909 'CB' ,NVL(ctl.chrg_acctd_amount_remaining,0),
10910 'CHARGES',NVL(ctl.acctd_amount_due_remaining,0),
10911 0), --SUM_LINE_CHRG_REM_ACCTD_AMT
10912 --}
10913 --
10914 DECODE(ctl.line_type,'LINE' ,NVL(ctl.frt_adj_remaining,0),
10915 'CB' ,NVL(ctl.frt_adj_remaining,0),
10916 'FREIGHT',NVL(ctl.amount_due_remaining,0),
10917 0), --SUM_LINE_FRT_REM_AMT
10918 DECODE(ctl.line_type,'LINE' ,NVL(ctl.frt_adj_acctd_remaining,0),
10919 'CB' ,NVL(ctl.frt_adj_acctd_remaining,0),
10920 'FREIGHT',NVL(ctl.acctd_amount_due_remaining,0),
10921 0), --SUM_LINE_FRT_REM_ACCTD_AMT
10922 --HYUIssue
10923 -- DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0), --SUM_LINE_TAX_REM_AMT
10924 SUM(DECODE(ctl.line_type,'TAX',ctl.amount_due_remaining,0))
10925 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_REM_AMT
10926 -- DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0), --SUM_LINE_TAX_REM_ACCTD_AMT
10927 SUM(DECODE(ctl.line_type,'TAX',ctl.acctd_amount_due_remaining,0))
10928 OVER (PARTITION BY trx.customer_trx_id,ctl.line_type ), --SUM_LINE_TAX_REM_ACCTD_AMT
10929 --}
10930 --
10931 'L',
10932 --
10933 p_ae_sys_rec.set_of_books_id,
10934 p_ae_sys_rec.sob_type
10935 -- g_se_gt_id
10936 FROM ra_customer_trx trx,
10937 ( select *
10938 from ra_customer_trx_lines_gt ctl2
10939 where ctl2.customer_trx_id = p_customer_trx_id
10940 and ctl2.customer_trx_line_id = p_customer_trx_line_id
10941 union all
10942 select *
10943 from ra_customer_trx_lines_gt ctl2
10944 where ctl2.customer_trx_id = p_customer_trx_id
10945 and ctl2.LINK_TO_CUST_TRX_LINE_ID = p_customer_trx_line_id
10946 ) ctl
10947 WHERE trx.customer_trx_id = p_customer_trx_id;
10948
10949
10950 l_rows := sql%rowcount;
10951 IF PG_DEBUG = 'Y' THEN
10952 localdebug(' rows inserted = ' || l_rows);
10953 localdebug('arp_det_dist_pkg.get_invoice_line_info_per_line()-');
10954 END IF;
10955 END get_invoice_line_info_per_line;
10956
10957 PROCEDURE proration_app_dist_trx
10958 (p_gt_id IN VARCHAR2,
10959 p_app_level IN VARCHAR2,
10960 p_customer_trx_id IN NUMBER,
10961 p_app_rec IN ar_receivable_applications%ROWTYPE,
10962 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
10963 IS
10964 l_adj_rec ar_adjustments%ROWTYPE;
10965 BEGIN
10966 IF PG_DEBUG = 'Y' THEN
10967 localdebug('arp_det_dist_pkg.proration_app_dist_trx()+');
10968 localdebug(' p_gt_id :'||p_gt_id );
10969 localdebug(' application type :'||p_app_rec.application_type );
10970 localdebug(' receivable_application_id:'||p_app_rec.receivable_application_id );
10971 localdebug(' set of books id :'||p_ae_sys_rec.set_of_books_id );
10972 localdebug(' sob type :'||p_ae_sys_rec.sob_type );
10973 END IF;
10974
10975 get_inv_dist
10976 (p_pay_adj => 'APP',
10977 p_customer_trx_id => p_customer_trx_id,
10978 p_gt_id => p_gt_id,
10979 p_adj_rec => l_adj_rec,
10980 p_app_rec => p_app_rec,
10981 p_ae_sys_rec => p_ae_sys_rec);
10982
10983
10984 update_dist(p_customer_trx_id => p_customer_trx_id,
10985 p_gt_id => p_gt_id,
10986 p_ae_sys_rec => p_ae_sys_rec);
10987
10988 create_split_distribution
10989 (p_pay_adj => 'APP',
10990 p_customer_trx_id => p_customer_trx_id,
10991 p_gt_id => p_gt_id,
10992 p_app_level => p_app_level,
10993 p_ae_sys_rec => p_ae_sys_rec);
10994
10995 IF PG_DEBUG = 'Y' THEN
10996 localdebug('arp_det_dist_pkg.proration_app_dist_trx()-');
10997 END IF;
10998
10999 END proration_app_dist_trx;
11000
11001
11002 PROCEDURE proration_adj_dist_trx
11003 (p_gt_id IN VARCHAR2,
11004 p_app_level IN VARCHAR2,
11005 p_customer_trx_id IN NUMBER,
11006 p_adj_rec IN ar_adjustments%ROWTYPE,
11007 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
11008 IS
11009 l_app_rec ar_receivable_applications%ROWTYPE;
11010 BEGIN
11011 IF PG_DEBUG = 'Y' THEN
11012 localdebug('arp_det_dist_pkg.proration_adj_dist_trx()+');
11013 localdebug(' p_gt_id :'||p_gt_id );
11014 localdebug(' adj type :'||p_adj_rec.adjustment_type );
11015 localdebug(' adjustments_id :'||p_adj_rec.adjustment_id );
11016 localdebug(' set of books id :'||p_ae_sys_rec.set_of_books_id );
11017 localdebug(' sob type :'||p_ae_sys_rec.sob_type );
11018 END IF;
11019
11020 get_inv_dist
11021 (p_pay_adj => 'ADJ',
11022 p_customer_trx_id => p_customer_trx_id,
11023 p_gt_id => p_gt_id,
11024 p_adj_rec => p_adj_rec,
11025 p_app_rec => l_app_rec,
11026 p_ae_sys_rec => p_ae_sys_rec);
11027
11028 update_dist(p_customer_trx_id => p_customer_trx_id,
11029 p_gt_id => p_gt_id,
11030 p_ae_sys_rec => p_ae_sys_rec);
11031
11032 IF PG_DEBUG = 'Y' THEN
11033 localdebug('adjustment_detemination');
11034 END IF;
11035
11036
11037 adjustment_detemination
11038 (p_customer_trx_id => p_customer_trx_id,
11039 p_gt_id => p_gt_id,
11040 p_pay_adj => 'ADJ',
11041 p_ae_sys_rec => p_ae_sys_rec,
11042 p_adj_rec => p_adj_rec);
11043
11044 IF PG_DEBUG = 'Y' THEN
11045 localdebug('create_split_distribution');
11046 END IF;
11047 create_split_distribution
11048 (p_pay_adj => 'ADJ',
11049 p_customer_trx_id => p_customer_trx_id,
11050 p_gt_id => p_gt_id,
11051 p_app_level => p_app_level,
11052 p_ae_sys_rec => p_ae_sys_rec);
11053
11054 IF PG_DEBUG = 'Y' THEN
11055 localdebug('arp_det_dist_pkg.proration_adj_dist_trx()-');
11056 END IF;
11057
11058 END proration_adj_dist_trx;
11059
11060 /*-------------------------------------------------------------------------+
11061 | Trx_level_cash_apply |
11062 +-------------------------------------------------------------------------+
11063 | 1) get_invoice_line_info |
11064 | 2) prepare_group_for_proration |
11065 | 3) update_group_line |
11066 | 4) prepare_trx_line_proration |
11067 | 5) update_line |
11068 | 6) update_ctl_rem_orig |
11069 | 7) store_gt_id |
11070 +-------------------------------------------------------------------------+
11071 | parameter: |
11072 | p_customer_trx_id transaction id |
11073 | p_app_rec ar receivable application record |
11074 | p_ae_sys_rec ar system parameter |
11075 +-------------------------------------------------------------------------*/
11076 PROCEDURE Trx_level_cash_apply
11077 (p_customer_trx IN ra_customer_trx%ROWTYPE,
11078 p_app_rec IN ar_receivable_applications%ROWTYPE,
11079 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
11080 p_gt_id IN VARCHAR2 DEFAULT NULL)
11081 IS
11082 l_adj_rec ar_adjustments%ROWTYPE;
11083 l_app_rec ar_receivable_applications%ROWTYPE;
11084 l_gt_id VARCHAR2(30);
11085 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
11086 l_msg_data VARCHAR2(2000);
11087 l_msg_count NUMBER;
11088 E11i_trx_no_llca EXCEPTION;
11089 excep_get_gt_sequence EXCEPTION;
11090 BEGIN
11091 IF PG_DEBUG = 'Y' THEN
11092 localdebug('arp_det_dist_pkg.trx_level_cash_apply()+');
11093 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
11094 END IF;
11095 g_cust_inv_rec := p_customer_trx;
11096
11097 IF p_gt_id IS NULL THEN
11098 --BUG#4414391
11099 get_gt_sequence (x_gt_id => l_gt_id,
11100 x_return_status => l_return_status,
11101 x_msg_count => l_msg_count,
11102 x_msg_data => l_msg_data);
11103 IF l_return_status <> fnd_api.g_ret_sts_success THEN
11104 RAISE excep_get_gt_sequence;
11105 END IF;
11106 --l_gt_id := g_gt_id;
11107 --}
11108 ELSE
11109 l_gt_id := p_gt_id;
11110 END IF;
11111
11112 g_gt_id := l_gt_id;
11113
11114 set_mode_process(p_customer_trx => g_cust_inv_rec,
11115 p_from_llca => 'Y');
11116
11117 IF g_mode_process = 'R12_11ICASH' THEN
11118
11119 -- Process OLTP application on old transactions
11120 -- with adjustments created in 11I
11121 RAISE E11i_trx_no_llca;
11122
11123 ELSE
11124
11125 IF g_mode_process = 'R12_11IMFAR' THEN
11126 l_return_status := FND_API.G_RET_STS_SUCCESS;
11127
11128 ar_upgrade_cash_accrual.COMPARE_RA_REM_AMT
11129 ( p_app_rec => p_app_rec,
11130 x_app_rec => l_app_rec,
11131 p_app_level => 'TRANSACTION',
11132 p_currency => g_cust_inv_rec.invoice_currency_code,
11133 x_return_status => l_return_status,
11134 x_msg_data => l_msg_data,
11135 x_msg_count => l_msg_count);
11136
11137 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11138 RAISE fnd_api.G_EXC_ERROR;
11139 ELSE
11140 l_app_rec := p_app_rec;
11141 END IF;
11142
11143 END IF;
11144 END IF;
11145 --}
11146
11147 conv_acctd_amt(p_pay_adj => 'APP',
11148 p_adj_rec => l_adj_rec,
11149 p_app_rec => p_app_rec,
11150 p_ae_sys_rec => p_ae_sys_rec);
11151
11152 get_invoice_line_info(p_gt_id => l_gt_id,
11153 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11154 p_ae_sys_rec => p_ae_sys_rec,
11155 p_mode => 'NORMAL');
11156
11157 prepare_group_for_proration(p_gt_id => l_gt_id,
11158 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11159 p_pay_adj => 'APP',
11160 p_adj_rec => l_adj_rec,
11161 p_app_rec => p_app_rec,
11162 p_ae_sys_rec => p_ae_sys_rec);
11163
11164 update_group_line(p_gt_id => l_gt_id,
11165 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11166 p_ae_sys_rec => p_ae_sys_rec);
11167
11168 prepare_trx_line_proration(p_gt_id => l_gt_id,
11169 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11170 p_pay_adj => 'APP',
11171 p_adj_rec => l_adj_rec,
11172 p_app_rec => p_app_rec,
11173 p_ae_sys_rec => p_ae_sys_rec);
11174
11175 update_line(p_gt_id => l_gt_id,
11176 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11177 p_ae_sys_rec => p_ae_sys_rec);
11178
11179
11180 update_ctl_rem_orig(p_gt_id => l_gt_id,
11181 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11182 p_pay_adj => 'APP',
11183 p_ae_sys_rec => p_ae_sys_rec);
11184
11185 proration_app_dist_trx(p_gt_id => l_gt_id,
11186 p_app_level => 'TRANSACTION',
11187 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11188 p_app_rec => p_app_rec,
11189 p_ae_sys_rec => p_ae_sys_rec);
11190
11191 --BUG#3611016 : Store the gt_id only for Primary set of books
11192 -- IF p_ae_sys_rec.sob_type = 'P' THEN
11193 -- store_gt_id(p_initial => FALSE,
11194 -- p_app_level => 'TRANSACTION');
11195 -- END IF;
11196
11197 IF PG_DEBUG = 'Y' THEN
11198 localdebug('arp_det_dist_pkg.trx_level_cash_apply()-');
11199 END IF;
11200 EXCEPTION
11201 WHEN excep_get_gt_sequence THEN
11202 IF PG_DEBUG = 'Y' THEN
11203 localdebug('EXCEPTION_get_gt_sequence IN Trx_level_cash_apply error count:'||l_msg_count);
11204 localdebug('last error:'||l_msg_data);
11205 END IF;
11206 RAISE;
11207 WHEN E11i_trx_no_llca THEN
11208 IF PG_DEBUG = 'Y' THEN
11209 localdebug('legacy transaction no trx level application allowed.');
11210 END IF;
11211 RAISE;
11212 WHEN fnd_api.G_EXC_ERROR THEN
11213 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11214 p_count => l_msg_count,
11215 p_data => l_msg_data);
11216 IF PG_DEBUG = 'Y' THEN
11217 localdebug('fnd_api.G_EXC_ERROR IN Trx_level_cash_apply error count:'||l_msg_count);
11218 localdebug('last error:'||l_msg_data);
11219 END IF;
11220 RAISE;
11221 WHEN OTHERS THEN
11222 IF PG_DEBUG = 'Y' THEN
11223 localdebug('OTHERS IN Trx_level_cash_apply :'||SQLERRM);
11224 END IF;
11225 RAISE;
11226 END Trx_level_cash_apply;
11227
11228 /*-------------------------------------------------------------------------+
11229 | Trx_gp_level_cash_apply |
11230 +-------------------------------------------------------------------------+
11231 | 1) get_invoice_line_info_per_grp |
11232 | 2) prepare_group_for_proration |
11233 | 3) update_group_line |
11234 | 4) prepare_trx_line_proration |
11235 | 5) update_line |
11236 | 6) update_ctl_rem_orig |
11237 | 7) store_group_id |
11238 +-------------------------------------------------------------------------+
11239 | parameter: |
11240 | p_customer_trx_id transaction id |
11241 | p_group_id source_data_key1 |
11242 | p_app_rec ar receivable application record |
11243 | p_ae_sys_rec ar system parameter |
11244 +-------------------------------------------------------------------------*/
11245 PROCEDURE Trx_gp_level_cash_apply
11246 (p_customer_trx IN ra_customer_trx%ROWTYPE,
11247 -- p_group_id IN VARCHAR2,
11248 --{HYUBPAGP
11249 p_source_data_key1 IN VARCHAR2,
11250 p_source_data_key2 IN VARCHAR2,
11251 p_source_data_key3 IN VARCHAR2,
11252 p_source_data_key4 IN VARCHAR2,
11253 p_source_data_key5 IN VARCHAR2,
11254 --}
11255 p_app_rec IN ar_receivable_applications%ROWTYPE,
11256 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
11257 p_gt_id IN VARCHAR2 DEFAULT NULL)
11258 IS
11259 l_adj_rec ar_adjustments%ROWTYPE;
11260 l_app_rec ar_receivable_applications%ROWTYPE;
11261 l_gt_id VARCHAR2(30);
11262 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
11263 l_msg_data VARCHAR2(2000);
11264 l_msg_count NUMBER;
11265 E11i_gp_no_llca EXCEPTION;
11266 excep_get_gt_sequence EXCEPTION;
11267 BEGIN
11268 IF PG_DEBUG = 'Y' THEN
11269 localdebug('arp_det_dist_pkg.trx_gp_level_cash_apply()+');
11270 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
11271 localdebug(' p_source_data_key1 :'||p_source_data_key1);
11272 localdebug(' p_source_data_key2 :'||p_source_data_key2);
11273 localdebug(' p_source_data_key3 :'||p_source_data_key3);
11274 localdebug(' p_source_data_key4 :'||p_source_data_key4);
11275 localdebug(' p_source_data_key5 :'||p_source_data_key5);
11276 END IF;
11277
11278 g_cust_inv_rec := p_customer_trx;
11279
11280 IF p_gt_id IS NULL THEN
11281 --BUG#4414391
11282 get_gt_sequence (x_gt_id => l_gt_id,
11283 x_return_status => l_return_status,
11284 x_msg_count => l_msg_count,
11285 x_msg_data => l_msg_data);
11286 IF l_return_status <> fnd_api.g_ret_sts_success THEN
11287 RAISE fnd_api.G_EXC_ERROR;
11288 END IF;
11289 --l_gt_id := g_gt_id;
11290 --}
11291 ELSE
11292 l_gt_id := p_gt_id;
11293 END IF;
11294
11295 g_gt_id := l_gt_id;
11296
11297 set_mode_process(p_customer_trx => g_cust_inv_rec,
11298 p_from_llca => 'Y');
11299
11300 IF g_mode_process = 'R12_11ICASH' THEN
11301
11302 -- Process OLTP application on old transactions
11303 -- with adjustments created in 11I
11304 RAISE E11i_gp_no_llca;
11305
11306 ELSE
11307
11308 IF g_mode_process = 'R12_11IMFAR' THEN
11309 l_return_status := FND_API.G_RET_STS_SUCCESS;
11310
11311 ar_upgrade_cash_accrual.COMPARE_RA_REM_AMT
11312 ( p_app_rec => p_app_rec,
11313 x_app_rec => l_app_rec,
11314 p_app_level => 'GROUP',
11315 p_source_data_key1=> p_source_data_key1,
11316 p_source_data_key2=> p_source_data_key2,
11317 p_source_data_key3=> p_source_data_key3,
11318 p_source_data_key4=> p_source_data_key4,
11319 p_source_data_key5=> p_source_data_key5,
11320 p_ctl_id => NULL,
11321 p_currency => g_cust_inv_rec.invoice_currency_code,
11322 x_return_status => l_return_status,
11323 x_msg_data => l_msg_data,
11324 x_msg_count => l_msg_count);
11325
11326 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11327 RAISE fnd_api.G_EXC_ERROR;
11328 ELSE
11329 l_app_rec := p_app_rec;
11330 END IF;
11331
11332 END IF;
11333 END IF;
11334 --}
11335
11336
11337
11338 conv_acctd_amt(p_pay_adj => 'APP',
11339 p_adj_rec => l_adj_rec,
11340 p_app_rec => l_app_rec,
11341 p_ae_sys_rec => p_ae_sys_rec);
11342
11343 get_invoice_line_info_per_grp(p_gt_id => l_gt_id,
11344 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11345 -- p_group_id => p_group_id,
11346 --{HYUBPAGP
11347 p_source_data_key1 => p_source_data_key1,
11348 p_source_data_key2 => p_source_data_key2,
11349 p_source_data_key3 => p_source_data_key3,
11350 p_source_data_key4 => p_source_data_key4,
11351 p_source_data_key5 => p_source_data_key5,
11352 --}
11353 p_ae_sys_rec => p_ae_sys_rec);
11354
11355 prepare_group_for_proration(p_gt_id => l_gt_id,
11356 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11357 p_pay_adj => 'APP',
11358 p_adj_rec => l_adj_rec,
11359 p_app_rec => l_app_rec,
11360 p_ae_sys_rec => p_ae_sys_rec);
11361
11362 update_group_line(p_gt_id => l_gt_id,
11363 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11364 p_ae_sys_rec => p_ae_sys_rec);
11365
11366 prepare_trx_line_proration(p_gt_id => l_gt_id,
11367 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11368 p_pay_adj => 'APP',
11369 p_adj_rec => l_adj_rec,
11370 p_app_rec => l_app_rec,
11371 p_ae_sys_rec => p_ae_sys_rec);
11372
11373 update_line(p_gt_id => l_gt_id,
11374 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11375 p_ae_sys_rec => p_ae_sys_rec);
11376
11377 update_ctl_rem_orig(p_gt_id => l_gt_id,
11378 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11379 p_pay_adj => 'APP',
11380 p_ae_sys_rec => p_ae_sys_rec,
11381 -- p_group_id => p_group_id,
11382 --{HYUBPAGP
11383 p_source_data_key1 => p_source_data_key1,
11384 p_source_data_key2 => p_source_data_key2,
11385 p_source_data_key3 => p_source_data_key3,
11386 p_source_data_key4 => p_source_data_key4,
11387 p_source_data_key5 => p_source_data_key5);
11388 --}
11389
11390 proration_app_dist_trx(p_gt_id => l_gt_id,
11391 p_app_level => 'GROUP',
11392 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11393 p_app_rec => l_app_rec,
11394 p_ae_sys_rec => p_ae_sys_rec);
11395
11396 --BUG#3611016 : Store the gt_id only for Primary set of books
11397 -- IF p_ae_sys_rec.sob_type = 'P' THEN
11398 -- store_gt_id(p_initial => FALSE,
11399 -- p_app_level => 'GROUP');
11400 -- END IF;
11401
11402 IF PG_DEBUG = 'Y' THEN
11403 localdebug('arp_det_dist_pkg.trx_gp_level_cash_apply()-');
11404 END IF;
11405 EXCEPTION
11406 WHEN excep_get_gt_sequence THEN
11407 IF PG_DEBUG = 'Y' THEN
11408 localdebug('EXCEPTION_get_gt_sequence IN Trx_level_cash_apply error count:'||l_msg_count);
11409 localdebug('last error:'||l_msg_data);
11410 END IF;
11411 RAISE;
11412 WHEN E11i_gp_no_llca THEN
11413 IF PG_DEBUG = 'Y' THEN
11414 localdebug('legacy transaction no group level application allowed.');
11415 END IF;
11416 RAISE;
11417 WHEN fnd_api.G_EXC_ERROR THEN
11418 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11419 p_count => l_msg_count,
11420 p_data => l_msg_data);
11421 IF PG_DEBUG = 'Y' THEN
11422 localdebug('fnd_api.G_EXC_ERROR IN Trx_gp_level_cash_apply error count:'||l_msg_count);
11423 localdebug('last error:'||l_msg_data);
11424 END IF;
11425 RAISE;
11426 WHEN OTHERS THEN
11427 IF PG_DEBUG = 'Y' THEN
11428 localdebug('OTHERS IN Trx_gp_level_cash_apply :'||SQLERRM);
11429 END IF;
11430 RAISE;
11431 END Trx_gp_level_cash_apply;
11432
11433
11434 /*-------------------------------------------------------------------------+
11435 | Trx_line_level_cash_apply |
11436 +-------------------------------------------------------------------------+
11437 | 1) get_invoice_line_info_per_line |
11438 | 2) prepare_group_for_proration |
11439 | 3) update_group_line |
11440 | 4) prepare_trx_line_proration |
11441 | 5) update_line |
11442 | 6) update_ctl_rem_orig |
11443 | 7) store_group_id |
11444 +-------------------------------------------------------------------------+
11445 | parameter: |
11446 | p_customer_trx_id transaction id |
11447 | p_customer_trx_line_id customer_trx_line_id |
11448 | p_app_rec ar receivable application record |
11449 | p_ae_sys_rec ar system parameter |
11450 +-------------------------------------------------------------------------*/
11451 PROCEDURE Trx_line_level_cash_apply
11452 (p_customer_trx IN ra_customer_trx%ROWTYPE,
11453 p_customer_trx_line_id IN VARCHAR2,
11454 p_log_inv_line IN VARCHAR2 DEFAULT 'N',
11455 p_app_rec IN ar_receivable_applications%ROWTYPE,
11456 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
11457 p_gt_id IN VARCHAR2 DEFAULT NULL)
11458 IS
11459 l_adj_rec ar_adjustments%ROWTYPE;
11460 l_app_rec ar_receivable_applications%ROWTYPE;
11461 l_gt_id VARCHAR2(30);
11462 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
11463 l_msg_data VARCHAR2(2000);
11464 l_msg_count NUMBER;
11465 E11i_line_no_llca EXCEPTION;
11466 excep_get_gt_sequence EXCEPTION;
11467 BEGIN
11468 IF PG_DEBUG = 'Y' THEN
11469 localdebug('arp_det_dist_pkg.trx_line_level_cash_apply()+');
11470 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
11471 localdebug(' p_customer_trx_line_id :'||p_customer_trx_line_id);
11472 END IF;
11473
11474 g_cust_inv_rec := p_customer_trx;
11475
11476 IF p_gt_id IS NULL THEN
11477 --BUG#4414391
11478 get_gt_sequence (x_gt_id => l_gt_id,
11479 x_return_status => l_return_status,
11480 x_msg_count => l_msg_count,
11481 x_msg_data => l_msg_data);
11482 IF l_return_status <> fnd_api.g_ret_sts_success THEN
11483 RAISE excep_get_gt_sequence;
11484 END IF;
11485 --l_gt_id := g_gt_id;
11486 --}
11487 ELSE
11488 l_gt_id := p_gt_id;
11489 END IF;
11490
11491 g_gt_id := l_gt_id;
11492
11493 set_mode_process(p_customer_trx => g_cust_inv_rec,
11494 p_from_llca => 'Y');
11495
11496 IF g_mode_process = 'R12_11ICASH' THEN
11497
11498 -- Process OLTP application on old transactions
11499 -- with adjustments created in 11I
11500 RAISE E11i_line_no_llca;
11501
11502 ELSE
11503
11504 IF g_mode_process = 'R12_11IMFAR' THEN
11505 l_return_status := FND_API.G_RET_STS_SUCCESS;
11506
11507 ar_upgrade_cash_accrual.COMPARE_RA_REM_AMT
11508 ( p_app_rec => p_app_rec,
11509 x_app_rec => l_app_rec,
11510 p_app_level => 'LINE',
11511 p_ctl_id => p_customer_trx_line_id ,
11512 p_currency => g_cust_inv_rec.invoice_currency_code,
11513 x_return_status => l_return_status,
11514 x_msg_data => l_msg_data,
11515 x_msg_count => l_msg_count);
11516
11517 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
11518 RAISE fnd_api.G_EXC_ERROR;
11519 ELSE
11520 l_app_rec := p_app_rec;
11521 END IF;
11522
11523 ELSE
11524 l_app_rec := p_app_rec;
11525
11526 END IF;
11527 END IF;
11528 --}
11529
11530
11531 conv_acctd_amt(p_pay_adj => 'APP',
11532 p_adj_rec => l_adj_rec,
11533 p_app_rec => l_app_rec,
11534 p_ae_sys_rec => p_ae_sys_rec);
11535
11536 get_invoice_line_info_per_line(p_gt_id => l_gt_id,
11537 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11538 p_customer_trx_line_id => p_customer_trx_line_id,
11539 p_log_inv_line => p_log_inv_line,
11540 p_ae_sys_rec => p_ae_sys_rec);
11541
11542 prepare_group_for_proration(p_gt_id => l_gt_id,
11543 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11544 p_pay_adj => 'APP',
11545 p_adj_rec => l_adj_rec,
11546 p_app_rec => l_app_rec,
11547 p_ae_sys_rec => p_ae_sys_rec);
11548
11549 update_group_line(p_gt_id => l_gt_id,
11550 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11551 p_ae_sys_rec => p_ae_sys_rec);
11552
11553 prepare_trx_line_proration(p_gt_id => l_gt_id,
11554 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11555 p_pay_adj => 'APP',
11556 p_adj_rec => l_adj_rec,
11557 p_app_rec => l_app_rec,
11558 p_ae_sys_rec => p_ae_sys_rec);
11559
11560 update_line(p_gt_id => l_gt_id,
11561 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11562 p_ae_sys_rec => p_ae_sys_rec);
11563
11564 update_ctl_rem_orig(p_gt_id => l_gt_id,
11565 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11566 p_pay_adj => 'APP',
11567 p_ae_sys_rec => p_ae_sys_rec,
11568 p_log_inv_line => p_log_inv_line,
11569 p_customer_trx_line_id => p_customer_trx_line_id);
11570
11571 proration_app_dist_trx(p_gt_id => l_gt_id,
11572 p_app_level => 'LINE',
11573 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
11574 p_app_rec => l_app_rec,
11575 p_ae_sys_rec => p_ae_sys_rec);
11576
11577 --BUG#3611016 : Store the gt_id only for Primary set of books
11578 -- IF p_ae_sys_rec.sob_type = 'P' THEN
11579 -- store_gt_id(p_initial => FALSE,
11580 -- p_app_level => 'LINE');
11581 -- END IF;
11582
11583 IF PG_DEBUG = 'Y' THEN
11584 localdebug('arp_det_dist_pkg.trx_line_level_cash_apply()-');
11585 END IF;
11586 EXCEPTION
11587 WHEN excep_get_gt_sequence THEN
11588 IF PG_DEBUG = 'Y' THEN
11589 localdebug('EXCEPTION_get_gt_sequence IN Trx_level_cash_apply error count:'||l_msg_count);
11590 localdebug('last error:'||l_msg_data);
11591 END IF;
11592 RAISE;
11593 WHEN E11i_line_no_llca THEN
11594 IF PG_DEBUG = 'Y' THEN
11595 localdebug('legacy transaction no line level application allowed.');
11596 END IF;
11597 RAISE;
11598 WHEN fnd_api.G_EXC_ERROR THEN
11599 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
11600 p_count => l_msg_count,
11601 p_data => l_msg_data);
11602 IF PG_DEBUG = 'Y' THEN
11603 localdebug('fnd_api.G_EXC_ERROR IN Trx_line_level_cash_apply error count:'||l_msg_count);
11604 localdebug('last error:'||l_msg_data);
11605 END IF;
11606 RAISE;
11607 WHEN OTHERS THEN
11608 IF PG_DEBUG = 'Y' THEN
11609 localdebug('OTHERS IN Trx_line_level_cash_apply :'||SQLERRM);
11610 END IF;
11611 RAISE;
11612 END Trx_line_level_cash_apply;
11613
11614
11615 /*------------------------------------------------+
11616 | Procedure copy_trx_lines
11617 +------------------------------------------------
11618 | Purpose cache the transaction lines in memory
11619 | to enhance the performance of the process
11620 +------------------------------------------------
11621 | History
11622 | Created 01-Nov-2004
11623 | Modified 02-Feb-2005 BR Enhancement
11624 +------------------------------------------------*/
11625 PROCEDURE copy_trx_lines
11626 (p_customer_trx_id IN NUMBER,
11627 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
11628 p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%TYPE DEFAULT NULL)
11629 IS
11630 CURSOR cu_line_loaded (p_customer_trx_id IN NUMBER,
11631 p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%TYPE ) IS
11632 SELECT 'x'
11633 FROM ra_customer_trx_lines_gt
11634 WHERE customer_trx_id = p_customer_trx_id
11635 AND customer_trx_line_id = NVL(p_customer_trx_line_id, customer_trx_line_id);
11636 l_exist VARCHAR2(1);
11637
11638 CURSOR c_frt_chrg IS
11639 SELECT MAX(line_type)
11640 FROM ra_customer_trx_lines_gt
11641 WHERE line_type IN ('CHARGES','FREIGHT')
11642 AND customer_trx_id = p_customer_trx_id
11643 GROUP BY line_type;
11644
11645 l_frt_chrg VARCHAR2(30);
11646 l_rows NUMBER;
11647
11648 BEGIN
11649 IF PG_DEBUG = 'Y' THEN
11650 localdebug('arp_det_dist_pkg.copy_trx_lines()+');
11651 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
11652 END IF;
11653 OPEN cu_line_loaded(p_customer_trx_id, p_customer_trx_line_id);
11654 FETCH cu_line_loaded INTO l_exist;
11655
11656 IF cu_line_loaded%NOTFOUND THEN
11657
11658 IF ( g_mode_process IN ('R12_NLB')
11659 OR (g_source_table = 'ADJ' AND g_mode_process IN ('R12_11ICASH'))
11660 OR (g_source_table = 'RA' AND g_mode_process IN ('R12_11ICASH') AND
11661 (g_adj_yn = 'N'))
11662 )
11663 THEN
11664
11665 IF PG_DEBUG = 'Y' THEN
11666 localdebug(' g_source_table = :'||g_source_table);
11667 localdebug(' g_mode_process = :'||g_mode_process);
11668 localdebug(' g_adj_yn = :'||g_adj_yn );
11669 END IF;
11670
11671 INSERT INTO ra_customer_trx_lines_gt
11672 (customer_trx_line_id,
11673 link_to_cust_trx_line_id,
11674 customer_trx_id ,
11675 set_of_books_id ,
11676 line_type ,
11677 source_data_key1 ,
11678 source_data_key2 ,
11679 source_data_key3 ,
11680 source_data_key4 ,
11681 source_data_key5 ,
11682 amount_due_remaining,
11683 acctd_amount_due_remaining,
11684 amount_due_original ,
11685 acctd_amount_due_original ,
11686 chrg_amount_remaining ,
11687 chrg_acctd_amount_remaining,
11688 frt_adj_remaining ,
11689 frt_adj_acctd_remaining,
11690 group_id ,
11691 --{HYUBRe
11692 br_line_orig_amt ,
11693 br_tax_orig_amt ,
11694 br_frt_orig_amt ,
11695 br_chrg_orig_amt ,
11696 br_line_orig_acctd_amt,
11697 br_tax_orig_acctd_amt,
11698 br_frt_orig_acctd_amt,
11699 br_chrg_orig_acctd_amt,
11700 br_ref_customer_trx_id,
11701 br_adjustment_id,
11702 line_origin
11703 --}
11704 )
11705 SELECT
11706 tl.customer_trx_line_id,
11707 tl.link_to_cust_trx_line_id,
11708 tl.customer_trx_id ,
11709 tl.set_of_books_id ,
11710 tl.line_type ,
11711 '00',
11712 '00',
11713 '00',
11714 '00',
11715 '00',
11716 orl.sum_amt, -- amount_due_remaining
11717 orl.sum_acctd_amt, -- acctd_amount_due_remaining
11718 orl.sum_amt, -- amount_due_original
11719 orl.sum_acctd_amt, -- acctd_amount_due_original
11720 fcrl.chrg_on_rev_line, -- chrg_amount_remaining
11721 fcrl.acctd_chrg_on_rev_line, -- chrg_acctd_amount_remaining
11722 fcrl.frt_on_rev_line, -- frt_adj_remaining
11723 fcrl.acctd_frt_on_rev_line, -- frt_Adj_acctd_remaining
11724 DECODE(tl.source_data_key1 ||
11725 tl.source_data_key2 ||
11726 tl.source_data_key3 ||
11727 tl.source_data_key4 ||
11728 tl.source_data_key5, NULL, '00',
11729 tl.source_data_key1 ||'-'||
11730 tl.source_data_key2 ||'-'||
11731 tl.source_data_key3 ||'-'||
11732 tl.source_data_key4 ||'-'||
11733 tl.source_data_key5),
11734 --{HYU BRe
11735 0 ,
11736 0 ,
11737 0 ,
11738 0 ,
11739 0 ,
11740 0 ,
11741 0 ,
11742 0 ,
11743 '', --tl.br_ref_customer_trx_id,
11744 '', --tl.br_adjustment_id,
11745 '' --DECODE(tl.br_ref_customer_trx_id, NULL, 'CTL', --Regular Trx Line
11746 -- DECODE(typ.type, 'BR','BR_BR_ORIG_ASSIG', --BR assigned to a BR
11747 -- 'BR_TRX_ORIG_ASSIG')--Regular TRX assigned to BR
11748 -- ) -- LINE_ORIGIN
11749 --}
11750 FROM ra_customer_trx_lines tl,
11751 -- ra_customer_trx br,
11752 -- ra_cust_trx_types typ,
11753 -- Amount for original and remaining for all type of lines on reve line
11754 (SELECT SUM(AMOUNT) sum_amt,
11755 SUM(ACCTD_AMOUNT) sum_acctd_amt,
11756 customer_trx_line_id
11757 FROM ra_cust_trx_line_gl_dist
11758 WHERE customer_trx_id = p_customer_trx_id
11759 GROUP BY customer_trx_line_id) orl,
11760 -- Amount for charges and freight on revenue line
11761 (SELECT SUM((DECODE(a.activity_bucket,'ADJ_CHRG',amt,0))) CHRG_ON_REV_LINE
11762 ,SUM((DECODE(a.activity_bucket,'ADJ_CHRG',acctd_amt,0))) ACCTD_CHRG_ON_REV_LINE
11763 ,SUM((DECODE(a.activity_bucket,'ADJ_FRT' ,amt,0))) FRT_ON_REV_LINE
11764 ,SUM((DECODE(a.activity_bucket,'ADJ_FRT' ,amt,0))) ACCTD_FRT_ON_REV_LINE
11765 ,a.ref_customer_trx_line_id
11766 FROM
11767 (SELECT SUM( NVL(ard.amount_cr,0) - NVL(ard.amount_dr,0) ) amt,
11768 SUM( NVL(ard.acctd_amount_cr,0) - NVL(ard.acctd_amount_dr,0)) acctd_amt,
11769 ard.ref_customer_trx_line_id,
11770 ard.activity_bucket
11771 FROM ar_adjustments adj,
11772 ar_distributions ard,
11773 ra_customer_trx_lines ctl
11774 WHERE ctl.customer_trx_id = p_customer_trx_id
11775 AND ctl.line_type = 'LINE'
11776 AND adj.customer_trx_id = p_customer_trx_id
11777 AND adj.adjustment_id = ard.source_id
11778 AND ard.source_table = 'ADJ'
11779 AND ard.ref_customer_trx_line_id = ctl.customer_trx_line_id
11780 AND ard.activity_bucket IN ('ADJ_CHRG','ADJ_FRT')
11781 GROUP BY ard.ref_customer_trx_line_id,
11782 ard.activity_bucket) a
11783 GROUP BY a.ref_customer_trx_line_id) fcrl
11784 WHERE tl.customer_trx_id = p_customer_trx_id
11785 AND tl.customer_trx_line_id = orl.customer_trx_line_id
11786 AND tl.customer_trx_line_id = fcrl.ref_customer_trx_line_id(+)
11787 AND (tl.customer_trx_line_id = NVL(p_customer_trx_line_id, tl.customer_trx_line_id)
11788 OR tl.link_to_cust_trx_line_id = NVL(p_customer_trx_line_id, tl.customer_trx_line_id));
11789 -- AND tl.br_ref_customer_trx_id = br.customer_trx_id(+)
11790 -- AND br.cust_trx_type_id = typ.cust_trx_type_id(+);
11791
11792 l_rows := sql%rowcount;
11793 localdebug(' rows inserted = ' || l_rows);
11794 ELSE
11795
11796 INSERT INTO ra_customer_trx_lines_gt
11797 (CUSTOMER_TRX_LINE_ID,
11798 LINK_TO_CUST_TRX_LINE_ID,
11799 CUSTOMER_TRX_ID ,
11800 SET_OF_BOOKS_ID ,
11801 LINE_TYPE ,
11802 SOURCE_DATA_KEY1 ,
11803 SOURCE_DATA_KEY2 ,
11804 SOURCE_DATA_KEY3 ,
11805 SOURCE_DATA_KEY4 ,
11806 SOURCE_DATA_KEY5 ,
11807 AMOUNT_DUE_REMAINING,
11808 ACCTD_AMOUNT_DUE_REMAINING ,
11809 AMOUNT_DUE_ORIGINAL ,
11810 ACCTD_AMOUNT_DUE_ORIGINAL ,
11811 CHRG_AMOUNT_REMAINING ,
11812 CHRG_ACCTD_AMOUNT_REMAINING,
11813 FRT_ADJ_REMAINING ,
11814 FRT_ADJ_ACCTD_REMAINING ,
11815 group_id ,
11816 --{HYUBRe
11817 BR_LINE_ORIG_AMT ,
11818 BR_TAX_ORIG_AMT ,
11819 BR_FRT_ORIG_AMT ,
11820 BR_CHRG_ORIG_AMT ,
11821 BR_LINE_ORIG_ACCTD_AMT,
11822 BR_TAX_ORIG_ACCTD_AMT ,
11823 BR_FRT_ORIG_ACCTD_AMT ,
11824 BR_CHRG_ORIG_ACCTD_AMT,
11825 BR_REF_CUSTOMER_TRX_ID,
11826 BR_ADJUSTMENT_ID,
11827 LINE_ORIGIN
11828 --}
11829 )
11830 SELECT
11831 tl.CUSTOMER_TRX_LINE_ID,
11832 tl.LINK_TO_CUST_TRX_LINE_ID,
11833 tl.CUSTOMER_TRX_ID ,
11834 tl.SET_OF_BOOKS_ID ,
11835 tl.LINE_TYPE ,
11836 '00',
11837 '00',
11838 '00',
11839 '00',
11840 '00',
11841 tl.AMOUNT_DUE_REMAINING,
11842 tl.ACCTD_AMOUNT_DUE_REMAINING ,
11843 tl.AMOUNT_DUE_ORIGINAL ,
11844 tl.ACCTD_AMOUNT_DUE_ORIGINAL ,
11845 tl.CHRG_AMOUNT_REMAINING,
11846 tl.CHRG_ACCTD_AMOUNT_REMAINING,
11847 tl.FRT_ADJ_REMAINING,
11848 tl.FRT_ADJ_ACCTD_REMAINING,
11849 DECODE(tl.SOURCE_DATA_KEY1 ||
11850 tl.SOURCE_DATA_KEY2 ||
11851 tl.SOURCE_DATA_KEY3 ||
11852 tl.SOURCE_DATA_KEY4 ||
11853 tl.SOURCE_DATA_KEY5, NULL, '00',
11854 tl.SOURCE_DATA_KEY1 ||'-'||
11855 tl.SOURCE_DATA_KEY2 ||'-'||
11856 tl.SOURCE_DATA_KEY3 ||'-'||
11857 tl.SOURCE_DATA_KEY4 ||'-'||
11858 tl.SOURCE_DATA_KEY5),
11859 --{HYU BRe
11860 0 ,
11861 0 ,
11862 0 ,
11863 0 ,
11864 0 ,
11865 0 ,
11866 0 ,
11867 0 ,
11868 '', --tl.BR_REF_CUSTOMER_TRX_ID,
11869 '', --tl.BR_ADJUSTMENT_ID,
11870 '' --DECODE(tl.BR_REF_CUSTOMER_TRX_ID, NULL, 'CTL', --Regular Trx Line
11871 -- DECODE(typ.type, 'BR','BR_BR_ORIG_ASSIG', --BR assigned to a BR
11872 -- 'BR_TRX_ORIG_ASSIG')--Regular TRX assigned to BR
11873 -- ) -- LINE_ORIGIN
11874 --}
11875 FROM ra_customer_trx_lines tl
11876 -- ra_customer_trx br,
11877 -- ra_cust_trx_types typ
11878 WHERE tl.customer_trx_id = p_customer_trx_id
11879 AND (tl.customer_trx_line_id = NVL(p_customer_trx_line_id, tl.customer_trx_line_id)
11880 OR tl.link_to_cust_trx_line_id = NVL(p_customer_trx_line_id, tl.customer_trx_line_id));
11881 -- AND tl.br_ref_customer_trx_id = br.customer_trx_id(+)
11882 -- AND br.cust_trx_type_id = typ.cust_trx_type_id(+);
11883
11884 l_rows := sql%rowcount;
11885 IF PG_DEBUG = 'Y' THEN
11886 localdebug(' rows inserted = ' || l_rows);
11887 END IF;
11888
11889 END IF;
11890
11891
11892 --{SET the g_trx_line_frt or chrg flags
11893 OPEN c_frt_chrg;
11894 LOOP
11895 FETCH c_frt_chrg INTO l_frt_chrg;
11896 EXIT WHEN c_frt_chrg%NOTFOUND;
11897 IF l_frt_chrg = 'FREIGHT' THEN
11898 g_trx_line_frt := 'Y';
11899 END IF;
11900 IF l_frt_chrg = 'CHARGES' THEN
11901 g_trx_line_chrg := 'Y';
11902 END IF;
11903 END LOOP;
11904 CLOSE c_frt_chrg;
11905 --}
11906
11907
11908 END IF;
11909 CLOSE cu_line_loaded;
11910 IF (PG_DEBUG = 'Y') THEN
11911 display_cust_trx_gt(p_customer_trx_id => p_customer_trx_id);
11912 END IF;
11913 IF PG_DEBUG = 'Y' THEN
11914 localdebug('arp_det_dist_pkg.copy_trx_lines()-');
11915 END IF;
11916 EXCEPTION
11917 WHEN OTHERS THEN
11918 IF PG_DEBUG = 'Y' THEN
11919 localdebug('EXCEPTION OTHERS copy_trx_lines:'||SQLERRM);
11920 END IF;
11921 END copy_trx_lines;
11922
11923
11924
11925 PROCEDURE final_update_inv_ctl_rem_orig
11926 (p_customer_trx IN ra_customer_trx%ROWTYPE)
11927 IS
11928 CURSOR c(p_customer_trx_id IN NUMBER) IS
11929 SELECT /*+INDEX (ctl ra_customer_trx_lines_gt_n1)*/
11930 b.AMOUNT_DUE_REMAINING ,
11931 b.ACCTD_AMOUNT_DUE_REMAINING,
11932 b.AMOUNT_DUE_ORIGINAL ,
11933 b.ACCTD_AMOUNT_DUE_ORIGINAL ,
11934 b.CHRG_AMOUNT_REMAINING ,
11935 b.CHRG_ACCTD_AMOUNT_REMAINING,
11936 b.FRT_ADJ_REMAINING ,
11937 b.FRT_ADJ_ACCTD_REMAINING ,
11938 b.frt_ed_amount,
11939 b.frt_ed_acctd_amount,
11940 b.frt_uned_amount,
11941 b.frt_uned_acctd_amount,
11942 b.customer_trx_line_id
11943 FROM ra_customer_trx_lines_gt b
11944 WHERE b.customer_trx_id = p_customer_trx_id;
11945
11946 l_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
11947 l_acctd_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
11948 l_amt_orig_tab DBMS_SQL.NUMBER_TABLE;
11949 l_acctd_amt_orig_tab DBMS_SQL.NUMBER_TABLE;
11950 l_chrg_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
11951 l_chrg_acctd_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
11952 l_frt_adj_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
11953 l_frt_adj_acctd_amt_rem_tab DBMS_SQL.NUMBER_TABLE;
11954 l_frt_ed_amt_tab DBMS_SQL.NUMBER_TABLE;
11955 l_frt_ed_acctd_amt_tab DBMS_SQL.NUMBER_TABLE;
11956 l_frt_uned_amt_tab DBMS_SQL.NUMBER_TABLE;
11957 l_frt_uned_acctd_amt_tab DBMS_SQL.NUMBER_TABLE;
11958 l_ctl_id_tab DBMS_SQL.NUMBER_TABLE;
11959 l_last_fetch BOOLEAN := FALSE;
11960 BEGIN
11961 IF PG_DEBUG = 'Y' THEN
11962 localdebug('arp_det_dist_pkg.final_update_inv_ctl_rem_orig()+');
11963 END IF;
11964
11965 OPEN c(p_customer_trx.customer_trx_id);
11966 LOOP
11967 FETCH c BULK COLLECT INTO l_amt_rem_tab,
11968 l_acctd_amt_rem_tab,
11969 l_amt_orig_tab,
11970 l_acctd_amt_orig_tab,
11971 l_chrg_amt_rem_tab,
11972 l_chrg_acctd_amt_rem_tab,
11973 l_frt_adj_amt_rem_tab,
11974 l_frt_adj_acctd_amt_rem_tab,
11975 l_frt_ed_amt_tab,
11976 l_frt_ed_acctd_amt_tab,
11977 l_frt_uned_amt_tab,
11978 l_frt_uned_acctd_amt_tab,
11979 l_ctl_id_tab
11980 LIMIT g_bulk_fetch_rows;
11981
11982 IF c%NOTFOUND THEN
11983 l_last_fetch := TRUE;
11984 END IF;
11985
11986 IF (l_ctl_id_tab.COUNT = 0) AND (l_last_fetch) THEN
11987 IF PG_DEBUG = 'Y' THEN
11988 localdebug('COUNT = 0 and LAST FETCH ');
11989 END IF;
11990 EXIT;
11991 END IF;
11992
11993 FORALL i IN l_ctl_id_tab.FIRST .. l_ctl_id_tab.LAST
11994 UPDATE ra_customer_trx_lines
11995 SET AMOUNT_DUE_REMAINING = l_amt_rem_tab(i),
11996 ACCTD_AMOUNT_DUE_REMAINING = l_acctd_amt_rem_tab(i),
11997 AMOUNT_DUE_ORIGINAL = l_amt_orig_tab(i),
11998 ACCTD_AMOUNT_DUE_ORIGINAL = l_acctd_amt_orig_tab(i),
11999 CHRG_AMOUNT_REMAINING = l_chrg_amt_rem_tab(i),
12000 CHRG_ACCTD_AMOUNT_REMAINING = l_chrg_acctd_amt_rem_tab(i),
12001 FRT_ADJ_REMAINING = l_frt_adj_amt_rem_tab(i),
12002 FRT_ADJ_ACCTD_REMAINING = l_frt_adj_acctd_amt_rem_tab(i),
12003 frt_ed_amount = l_frt_ed_amt_tab(i),
12004 frt_ed_acctd_amount = l_frt_ed_acctd_amt_tab(i),
12005 frt_uned_amount = l_frt_uned_amt_tab(i),
12006 frt_uned_acctd_amount = l_frt_uned_acctd_amt_tab(i)
12007 WHERE customer_trx_line_id = l_ctl_id_tab(i)
12008 AND customer_trx_id = p_customer_trx.customer_trx_id;
12009 END LOOP;
12010 CLOSE c;
12011 IF PG_DEBUG = 'Y' THEN
12012 localdebug('arp_det_dist_pkg.final_update_inv_ctl_rem_orig()-');
12013 END IF;
12014 END final_update_inv_ctl_rem_orig;
12015
12016
12017 PROCEDURE create_final_split
12018 (p_customer_trx IN ra_customer_trx%ROWTYPE,
12019 p_app_rec IN ar_receivable_applications%ROWTYPE,
12020 p_adj_rec IN ar_adjustments%ROWTYPE,
12021 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
12022 IS
12023 BEGIN
12024 IF PG_DEBUG = 'Y' THEN
12025 localdebug('arp_det_dist_pkg.create_final_split()+');
12026 -- From distributions
12027 localdebug(' p_app_rec.ACCTD_AMOUNT_APPLIED_FROM :'||p_app_rec.ACCTD_AMOUNT_APPLIED_FROM);
12028 localdebug(' p_app_rec.AMOUNT_APPLIED_FROM :'||p_app_rec.AMOUNT_APPLIED_FROM );
12029 END IF;
12030
12031 update_from_gt
12032 (p_from_amt => p_app_rec.AMOUNT_APPLIED_FROM,
12033 p_from_acctd_amt => p_app_rec.ACCTD_AMOUNT_APPLIED_FROM,
12034 p_ae_sys_rec => p_ae_sys_rec,
12035 p_app_rec => p_app_rec);
12036
12037 IF p_adj_rec.adjustment_id IS NOT NULL THEN
12038
12039 Reconciliation
12040 (p_app_rec => p_app_rec,
12041 p_adj_rec => p_adj_rec,
12042 p_activity_type => 'ADJ');
12043
12044 stamping_adj(p_adj_id => p_adj_rec.adjustment_id);
12045 ELSIF p_app_rec.receivable_application_id IS NOT NULL THEN
12046
12047 Reconciliation
12048 (p_app_rec => p_app_rec,
12049 p_adj_rec => p_adj_rec,
12050 p_activity_type => 'RA');
12051
12052 stamping_ra(p_app_id => p_app_rec.receivable_application_id);
12053 END IF;
12054
12055 -- get_diag_flag;
12056
12057 -- IF g_diag_flag IN ('Y') THEN
12058 IF PG_DEBUG = 'Y' THEN
12059 diag_data;
12060 END IF;
12061 -- END IF;
12062 IF PG_DEBUG = 'Y' THEN
12063 localdebug('arp_det_dist_pkg.create_final_split()-');
12064 END IF;
12065 END create_final_split;
12066
12067 /*-------------------------------------------------------------------------+
12068 | Trx_level_direct_adjust |
12069 +-------------------------------------------------------------------------+
12070 | 1) get_invoice_line_info |
12071 | 2) prepare_group_for_proration |
12072 | 3) update_group_line |
12073 | 4) prepare_trx_line_proration |
12074 | 5) update_line |
12075 | 6) update_ctl_rem_orig |
12076 | 7) store_gt_id |
12077 +-------------------------------------------------------------------------+
12078 | parameter: |
12079 | p_customer_trx_id transaction id
12080 | p_adj_rec ar adjustment record
12081 | p_ae_sys_rec ar system parameter
12082 +-------------------------------------------------------------------------*/
12083 PROCEDURE Trx_level_direct_adjust
12084 (p_customer_trx IN ra_customer_trx%ROWTYPE,
12085 p_adj_rec IN ar_adjustments%ROWTYPE,
12086 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
12087 p_gt_id IN NUMBER DEFAULT NULL)
12088 IS
12089 l_app_rec ar_receivable_applications%ROWTYPE;
12090 l_gt_id NUMBER;
12091 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
12092 l_msg_count NUMBER := 0;
12093 l_msg_data VARCHAR2(2000);
12094 excep_get_gt_sequence EXCEPTION;
12095 BEGIN
12096 IF PG_DEBUG = 'Y' THEN
12097 localdebug('arp_det_dist_pkg.trx_level_direct_adjust()+');
12098 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
12099 END IF;
12100
12101 IF p_gt_id IS NULL THEN
12102 --BUG#4414391
12103 get_gt_sequence (x_gt_id => l_gt_id,
12104 x_return_status => l_return_status,
12105 x_msg_count => l_msg_count,
12106 x_msg_data => l_msg_data);
12107 IF l_return_status <> fnd_api.g_ret_sts_success THEN
12108 RAISE excep_get_gt_sequence;
12109 END IF;
12110 --l_gt_id := g_gt_id;
12111 --}
12112 ELSE
12113 l_gt_id := p_gt_id;
12114 END IF;
12115
12116 g_gt_id := l_gt_id;
12117
12118 --{BUG#4415037
12119 set_interface_flag(p_source_table => 'ADJ');
12120 --}
12121
12122 g_cust_inv_rec := p_customer_trx;
12123
12124 set_mode_process(p_customer_trx => g_cust_inv_rec,
12125 p_from_llca => 'N');
12126
12127 copy_trx_lines(p_customer_trx_id => p_customer_trx.customer_trx_id,
12128 p_ae_sys_rec => p_ae_sys_rec);
12129
12130 conv_acctd_amt(p_pay_adj => 'ADJ',
12131 p_adj_rec => p_adj_rec,
12132 p_app_rec => l_app_rec,
12133 p_ae_sys_rec => p_ae_sys_rec);
12134
12135 get_invoice_line_info(p_gt_id => l_gt_id,
12136 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12137 p_ae_sys_rec => p_ae_sys_rec,
12138 p_mode => 'NORMAL');
12139
12140 prepare_group_for_proration(p_gt_id => l_gt_id,
12141 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12142 p_pay_adj => 'ADJ',
12143 p_adj_rec => p_adj_rec,
12144 p_app_rec => l_app_rec,
12145 p_ae_sys_rec => p_ae_sys_rec);
12146
12147 update_group_line(p_gt_id => l_gt_id,
12148 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12149 p_ae_sys_rec => p_ae_sys_rec);
12150
12151 prepare_trx_line_proration(p_gt_id => l_gt_id,
12152 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12153 p_pay_adj => 'ADJ',
12154 p_adj_rec => p_adj_rec,
12155 p_app_rec => l_app_rec,
12156 p_ae_sys_rec => p_ae_sys_rec);
12157
12158 update_line(p_gt_id => l_gt_id,
12159 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12160 p_ae_sys_rec => p_ae_sys_rec);
12161
12162
12163 update_ctl_rem_orig(p_gt_id => l_gt_id,
12164 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12165 p_pay_adj => 'ADJ',
12166 p_ae_sys_rec => p_ae_sys_rec);
12167
12168 proration_adj_dist_trx(p_gt_id => l_gt_id,
12169 p_app_level => 'TRANSACTION',
12170 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12171 p_adj_rec => p_adj_rec,
12172 p_ae_sys_rec => p_ae_sys_rec);
12173
12174 --HYU
12175 --BUG#3611016 : Store the gt_id only for Primary set of books
12176 -- IF p_ae_sys_rec.sob_type = 'P' THEN
12177 -- store_gt_id(p_initial => FALSE,
12178 -- p_app_level => 'TRANSACTION');
12179 -- END IF;
12180
12181 --
12182 -- For invoice leagcy from 11i Cash basis, we do not maintain the balancing
12183 --
12184 --{HYUNLB
12185 -- IF g_mode_process <> 'R12_11ICASH' THEN
12186 -- final_update_inv_ctl_rem_orig(p_customer_trx => p_customer_trx);
12187 -- END IF;
12188 --}
12189 IF g_mode_process = 'R12' THEN
12190 final_update_inv_ctl_rem_orig(p_customer_trx => p_customer_trx);
12191 END IF;
12192
12193
12194 create_final_split(p_customer_trx => p_customer_trx,
12195 p_app_rec => l_app_rec,
12196 p_adj_rec => p_adj_rec,
12197 p_ae_sys_rec => p_ae_sys_rec);
12198
12199 UPDATE ar_adjustments SET upgrade_method = 'R12'
12200 WHERE adjustment_id = p_adj_rec.adjustment_id;
12201
12202 IF PG_DEBUG = 'Y' THEN
12203 localdebug('arp_det_dist_pkg.trx_level_direct_adjust()-');
12204 END IF;
12205 EXCEPTION
12206 WHEN excep_get_gt_sequence THEN
12207 IF PG_DEBUG = 'Y' THEN
12208 localdebug('EXCEPTION_get_gt_sequence IN Trx_level_cash_apply error count:'||l_msg_count);
12209 localdebug('last error:'||l_msg_data);
12210 END IF;
12211 RAISE;
12212 WHEN OTHERS THEN
12213 IF PG_DEBUG = 'Y' THEN
12214 localdebug(' EXCEPTION OTHER Trx_level_direct_adjust :'||SQLERRM);
12215 END IF;
12216 -- RAISE;
12217 END Trx_level_direct_adjust;
12218
12219 /*-------------------------------------------------------------------------+
12220 | Trx_level_direct_cash_apply |
12221 +-------------------------------------------------------------------------+
12222 | 1) get_invoice_line_info |
12223 | 2) prepare_group_for_proration |
12224 | 3) update_group_line |
12225 | 4) prepare_trx_line_proration |
12226 | 5) update_line |
12227 | 6) update_ctl_rem_orig |
12228 | 7) store_gt_id |
12229 +-------------------------------------------------------------------------+
12230 | parameter: |
12231 | p_customer_trx_id transaction id |
12232 | p_app_rec ar receivable application record |
12233 | p_ae_sys_rec ar system parameter |
12234 +-------------------------------------------------------------------------*/
12235 PROCEDURE Trx_level_direct_cash_apply
12236 (p_customer_trx IN ra_customer_trx%ROWTYPE,
12237 p_app_rec IN ar_receivable_applications%ROWTYPE,
12238 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
12239 p_gt_id IN NUMBER DEFAULT NULL,
12240 p_inv_cm IN VARCHAR2 DEFAULT 'I')
12241 IS
12242 l_adj_rec ar_adjustments%ROWTYPE;
12243 l_app_rec ar_receivable_applications%ROWTYPE;
12244 l_gt_id NUMBER;
12245 l_out_res VARCHAR2(1);
12246 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
12247 l_msg_count NUMBER := 0;
12248 l_msg_data VARCHAR2(2000);
12249 l_upg_cm VARCHAR2(1);
12250 excep_get_gt_sequence EXCEPTION;
12251 BEGIN
12252 IF PG_DEBUG = 'Y' THEN
12253 localdebug('arp_det_dist_pkg.trx_level_direct_cash_apply()+');
12254 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
12255 localdebug(' p_inv_cm :'||p_inv_cm);
12256 END IF;
12257
12258 IF p_gt_id IS NULL THEN
12259 --BUG#4414391
12260 get_gt_sequence (x_gt_id => l_gt_id,
12261 x_return_status => l_return_status,
12262 x_msg_count => l_msg_count,
12263 x_msg_data => l_msg_data);
12264 IF l_return_status <> fnd_api.g_ret_sts_success THEN
12265 RAISE excep_get_gt_sequence;
12266 END IF;
12267 --l_gt_id := g_gt_id;
12268 --}
12269 ELSE
12270 l_gt_id := p_gt_id;
12271 END IF;
12272
12273 g_gt_id := l_gt_id;
12274
12275 --{BUG#4415037
12276 set_interface_flag(p_source_table => 'RA');
12277 --}
12278
12279 g_cust_inv_rec := p_customer_trx;
12280
12281 set_mode_process(p_customer_trx => g_cust_inv_rec,
12282 p_from_llca => 'N');
12283
12284 IF g_mode_process = 'R12_11ICASH' and g_adj_yn = 'Y' THEN
12285
12286 -- Process OLTP application on old transactions
12287 -- with adjustments created in 11I
12288 online_lazy_apply
12289 (p_customer_trx => g_cust_inv_rec,
12290 p_app_rec => p_app_rec,
12291 p_ae_sys_rec => p_ae_sys_rec,
12292 p_gt_id => l_gt_id,
12293 p_inv_cm => p_inv_cm);
12294
12295 ELSE
12296
12297 -- Normal process for applications on transactions
12298 -- without adjustments in 11I
12299 copy_trx_lines(p_customer_trx_id => p_customer_trx.customer_trx_id,
12300 p_ae_sys_rec => p_ae_sys_rec);
12301
12302
12303 -- If the application is from MFAR legacy the bucket of app charge can be wrong versus the
12304 -- remaining amount buckets of the transaction as the changes are prorated over all distributions
12305 IF g_mode_process = 'R12_11IMFAR' AND p_inv_cm = 'I' THEN
12306 l_return_status := FND_API.G_RET_STS_SUCCESS;
12307
12308 ar_upgrade_cash_accrual.COMPARE_RA_REM_AMT
12309 ( p_app_rec => p_app_rec,
12310 x_app_rec => l_app_rec,
12311 p_app_level => 'TRANSACTION',
12312 p_currency => g_cust_inv_rec.invoice_currency_code,
12313 x_return_status => l_return_status,
12314 x_msg_data => l_msg_data,
12315 x_msg_count => l_msg_count);
12316
12317 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
12318 RAISE fnd_api.G_EXC_ERROR;
12319 END IF;
12320
12321 IF PG_DEBUG = 'Y' THEN
12322 localdebug('l_app_rec.RECEIVABLES_CHARGES_APPLIED :' ||l_app_rec.RECEIVABLES_CHARGES_APPLIED);
12323 END IF;
12324
12325 ELSIF g_mode_process IN ('R12','R12_11IMFAR','R12_NLB','R12_11ICASH') AND p_inv_cm = 'C' THEN
12326
12327 IF g_mode_process = 'R12_11ICASH' THEN
12328 l_upg_cm := 'Y' ;
12329 ELSE
12330 l_upg_cm := 'N' ;
12331 END IF;
12332
12333 convert_ra_inv_to_cm
12334 ( p_inv_ra_rec => p_app_rec,
12335 p_cm_trx_id => g_cust_inv_rec.customer_trx_id,
12336 x_cm_ra_rec => l_app_rec,
12337 p_mode => 'OLTP',
12338 p_gt_id => l_gt_id,
12339 p_upg_cm => l_upg_cm);
12340
12341 ELSE
12342 l_app_rec := p_app_rec;
12343 END IF;
12344 --}
12345
12346 IF PG_DEBUG = 'Y' THEN
12347 localdebug('l_app_rec.RECEIVABLES_CHARGES_APPLIED :' ||l_app_rec.RECEIVABLES_CHARGES_APPLIED);
12348 END IF;
12349
12350 conv_acctd_amt(p_pay_adj => 'APP',
12351 p_adj_rec => l_adj_rec,
12352 p_app_rec => l_app_rec,
12353 p_ae_sys_rec => p_ae_sys_rec);
12354
12355
12356 get_invoice_line_info(p_gt_id => l_gt_id,
12357 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12358 p_ae_sys_rec => p_ae_sys_rec,
12359 p_mode => 'NORMAL');
12360
12361 prepare_group_for_proration(p_gt_id => l_gt_id,
12362 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12363 p_pay_adj => 'APP',
12364 p_adj_rec => l_adj_rec,
12365 p_app_rec => l_app_rec,
12366 p_ae_sys_rec => p_ae_sys_rec);
12367
12368 update_group_line(p_gt_id => l_gt_id,
12369 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12370 p_ae_sys_rec => p_ae_sys_rec);
12371
12372 prepare_trx_line_proration(p_gt_id => l_gt_id,
12373 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12374 p_pay_adj => 'APP',
12375 p_adj_rec => l_adj_rec,
12376 p_app_rec => l_app_rec,
12377 p_ae_sys_rec => p_ae_sys_rec);
12378
12379 update_line(p_gt_id => l_gt_id,
12380 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12381 p_ae_sys_rec => p_ae_sys_rec);
12382
12383 update_ctl_rem_orig(p_gt_id => l_gt_id,
12384 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12385 p_pay_adj => 'APP',
12386 p_ae_sys_rec => p_ae_sys_rec);
12387
12388 proration_app_dist_trx(p_gt_id => l_gt_id,
12389 p_app_level => 'TRANSACTION',
12390 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
12391 p_app_rec => l_app_rec,
12392 p_ae_sys_rec => p_ae_sys_rec);
12393
12394 --BUG#3611016 : Store the gt_id only for Primary set of books
12395 -- IF p_ae_sys_rec.sob_type = 'P' THEN
12396 -- store_gt_id(p_initial => FALSE,
12397 -- p_app_level => 'TRANSACTION');
12398 -- END IF;
12399
12400 --HYU
12401 -- delete from ra_ar_st;
12402 -- insert into ra_ar_st select * from ra_ar_gt;
12403
12404 --{HYUNLB
12405 -- final_update_inv_ctl_rem_orig(p_customer_trx => p_customer_trx);
12406 --}
12407
12408 IF g_mode_process = 'R12' THEN
12409 final_update_inv_ctl_rem_orig(p_customer_trx => p_customer_trx);
12410 END IF;
12411
12412 END IF;
12413 -- End of difference between applications}
12414
12415 create_final_split(p_customer_trx => p_customer_trx,
12416 p_app_rec => l_app_rec,
12417 p_adj_rec => l_adj_rec,
12418 p_ae_sys_rec => p_ae_sys_rec);
12419
12420
12421 IF PG_DEBUG = 'Y' THEN
12422 localdebug('arp_det_dist_pkg.trx_level_direct_cash_apply()-');
12423 END IF;
12424 EXCEPTION
12425 WHEN excep_get_gt_sequence THEN
12426 IF PG_DEBUG = 'Y' THEN
12427 localdebug('EXCEPTION_get_gt_sequence IN Trx_level_cash_apply error count:'||l_msg_count);
12428 localdebug('last error:'||l_msg_data);
12429 END IF;
12430 RAISE;
12431 WHEN fnd_api.G_EXC_ERROR THEN
12432 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
12433 p_count => l_msg_count,
12434 p_data => l_msg_data);
12435 IF PG_DEBUG = 'Y' THEN
12436 localdebug('fnd_api.G_EXC_ERROR IN Trx_level_direct_cash_apply error count:'||l_msg_count);
12437 localdebug('last error:'||l_msg_data);
12438 END IF;
12439 RAISE;
12440 WHEN OTHERS THEN
12441 IF PG_DEBUG = 'Y' THEN
12442 localdebug('OTHERS IN Trx_level_direct_cash_apply :'||SQLERRM);
12443 END IF;
12444 RAISE;
12445 END Trx_level_direct_cash_apply;
12446
12447
12448 PROCEDURE display_ra_ar_row(p_ra_ar_rec IN ra_ar_gt%ROWTYPE)
12449 IS
12450 BEGIN
12451 IF PG_DEBUG = 'Y' THEN
12452 localdebug( 'display_ra_ar_row +');
12453 localdebug( ' source_data_key5 :'|| p_ra_ar_rec.SOURCE_DATA_KEY5);
12454 localdebug( ' dist_ed_chrg_amt :'|| p_ra_ar_rec.DIST_ED_CHRG_AMT);
12455 localdebug( ' dist_ed_chrg_acctd_amt :'|| p_ra_ar_rec.DIST_ED_CHRG_ACCTD_AMT);
12456 localdebug( ' dist_uned_amt :'|| p_ra_ar_rec.DIST_UNED_AMT);
12457 localdebug( ' dist_uned_acctd_amt :'|| p_ra_ar_rec.DIST_UNED_ACCTD_AMT);
12458 localdebug( ' dist_uned_frt_amt :'|| p_ra_ar_rec.DIST_UNED_FRT_AMT);
12459 localdebug( ' dist_uned_frt_acctd_amt :'|| p_ra_ar_rec.DIST_UNED_FRT_ACCTD_AMT);
12460 localdebug( ' dist_uned_tax_amt :'|| p_ra_ar_rec.DIST_UNED_TAX_AMT);
12461 localdebug( ' dist_uned_tax_acctd_amt :'|| p_ra_ar_rec.DIST_UNED_TAX_ACCTD_AMT);
12462 localdebug( ' dist_uned_chrg_amt :'|| p_ra_ar_rec.DIST_UNED_CHRG_AMT);
12463 localdebug( ' dist_uned_chrg_acctd_amt :'|| p_ra_ar_rec.DIST_UNED_CHRG_ACCTD_AMT);
12464 /* localdebug( ' base_dist_amt :'|| p_ra_ar_rec.BASE_DIST_AMT);
12465 localdebug( ' base_dist_acctd_amt :'|| p_ra_ar_rec.BASE_DIST_ACCTD_AMT);
12466 localdebug( ' base_dist_frt_amt :'|| p_ra_ar_rec.BASE_DIST_FRT_AMT);
12467 localdebug( ' base_dist_frt_acctd_amt :'|| p_ra_ar_rec.BASE_DIST_FRT_ACCTD_AMT);
12468 localdebug( ' base_dist_tax_amt :'|| p_ra_ar_rec.BASE_DIST_TAX_AMT);
12469 localdebug( ' base_dist_tax_acctd_amt :'|| p_ra_ar_rec.BASE_DIST_TAX_ACCTD_AMT);
12470 localdebug( ' base_dist_chrg_amt :'|| p_ra_ar_rec.BASE_DIST_CHRG_AMT);
12471 localdebug( ' base_dist_chrg_acctd_amt :'|| p_ra_ar_rec.BASE_DIST_CHRG_ACCTD_AMT);
12472 localdebug( ' base_ed_dist_amt :'|| p_ra_ar_rec.BASE_ED_DIST_AMT);
12473 localdebug( ' base_ed_dist_acctd_amt :'|| p_ra_ar_rec.BASE_ED_DIST_ACCTD_AMT);
12474 localdebug( ' base_ed_dist_frt_amt :'|| p_ra_ar_rec.BASE_ED_DIST_FRT_AMT);
12475 localdebug( ' base_ed_dist_frt_acctd_amt :'|| p_ra_ar_rec.BASE_ED_DIST_FRT_ACCTD_AMT);
12476 localdebug( ' elmt_ed_frt_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_ED_FRT_PRO_ACCTD_AMT);
12477 localdebug( ' elmt_ed_tax_pro_amt :'|| p_ra_ar_rec.ELMT_ED_TAX_PRO_AMT);
12478 localdebug( ' elmt_ed_tax_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_ED_TAX_PRO_ACCTD_AMT);
12479 localdebug( ' base_ed_pro_amt :'|| p_ra_ar_rec.BASE_ED_PRO_AMT);
12480 localdebug( ' base_ed_pro_acctd_amt :'|| p_ra_ar_rec.BASE_ED_PRO_ACCTD_AMT);
12481 localdebug( ' base_ed_chrg_pro_amt :'|| p_ra_ar_rec.BASE_ED_CHRG_PRO_AMT); */
12482 localdebug( ' tax_rem_acctd_amt :'|| p_ra_ar_rec.TAX_REM_ACCTD_AMT);
12483 localdebug( ' line_type :'|| p_ra_ar_rec.LINE_TYPE);
12484 localdebug( ' sum_line_orig_amt :'|| p_ra_ar_rec.SUM_LINE_ORIG_AMT);
12485 localdebug( ' sum_line_orig_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_ORIG_ACCTD_AMT);
12486 localdebug( ' sum_line_frt_orig_amt :'|| p_ra_ar_rec.SUM_LINE_FRT_ORIG_AMT);
12487 localdebug( ' sum_line_frt_orig_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_FRT_ORIG_ACCTD_AMT);
12488 localdebug( ' sum_line_tax_orig_amt :'|| p_ra_ar_rec.SUM_LINE_TAX_ORIG_AMT);
12489 /* localdebug( ' buc_uned_chrg_alloc_amt :'|| p_ra_ar_rec.BUC_UNED_CHRG_ALLOC_AMT);
12490 localdebug( ' buc_uned_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_UNED_CHRG_ALLOC_ACCTD_AMT);
12491 localdebug( ' buc_uned_frt_alloc_amt :'|| p_ra_ar_rec.BUC_UNED_FRT_ALLOC_AMT);
12492 localdebug( ' buc_uned_frt_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_UNED_FRT_ALLOC_ACCTD_AMT);
12493 localdebug( ' buc_uned_tax_alloc_amt :'|| p_ra_ar_rec.BUC_UNED_TAX_ALLOC_AMT);
12494 localdebug( ' buc_uned_tax_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_UNED_TAX_ALLOC_ACCTD_AMT);
12495 localdebug( ' elmt_uned_pro_amt :'|| p_ra_ar_rec.ELMT_UNED_PRO_AMT);
12496 localdebug( ' elmt_uned_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_UNED_PRO_ACCTD_AMT);
12497 localdebug( ' elmt_uned_chrg_pro_amt :'|| p_ra_ar_rec.ELMT_UNED_CHRG_PRO_AMT);
12498 localdebug( ' elmt_uned_chrg_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_UNED_CHRG_PRO_ACCTD_AMT);
12499 localdebug( ' elmt_uned_frt_pro_amt :'|| p_ra_ar_rec.ELMT_UNED_FRT_PRO_AMT);
12500 localdebug( ' elmt_uned_frt_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_UNED_FRT_PRO_ACCTD_AMT);
12501 localdebug( ' elmt_uned_tax_pro_amt :'|| p_ra_ar_rec.ELMT_UNED_TAX_PRO_AMT);
12502 localdebug( ' base_ed_dist_tax_amt :'|| p_ra_ar_rec.BASE_ED_DIST_TAX_AMT);
12503 localdebug( ' base_ed_dist_tax_acctd_amt :'|| p_ra_ar_rec.BASE_ED_DIST_TAX_ACCTD_AMT);
12504 localdebug( ' base_ed_dist_chrg_amt :'|| p_ra_ar_rec.BASE_ED_DIST_CHRG_AMT);
12505 localdebug( ' base_ed_dist_chrg_acctd_amt :'|| p_ra_ar_rec.BASE_ED_DIST_CHRG_ACCTD_AMT);
12506 localdebug( ' base_uned_dist_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_AMT);
12507 localdebug( ' base_uned_dist_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_ACCTD_AMT);
12508 localdebug( ' base_uned_dist_frt_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_FRT_AMT);
12509 localdebug( ' base_uned_dist_frt_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_FRT_ACCTD_AMT);
12510 localdebug( ' base_uned_dist_tax_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_TAX_AMT);
12511 localdebug( ' base_uned_dist_tax_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_TAX_ACCTD_AMT);
12512 localdebug( ' base_uned_dist_chrg_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_CHRG_AMT);
12513 localdebug( ' base_uned_dist_chrg_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_DIST_CHRG_ACCTD_AMT);*/
12514 localdebug( ' gp_level :'|| p_ra_ar_rec.GP_LEVEL);
12515 localdebug( ' from_alloc_acctd_amt :'|| p_ra_ar_rec.FROM_ALLOC_ACCTD_AMT);
12516 localdebug( ' tl_alloc_amt :'|| p_ra_ar_rec.TL_ALLOC_AMT);
12517 localdebug( ' tl_alloc_acctd_amt :'|| p_ra_ar_rec.TL_ALLOC_ACCTD_AMT);
12518 localdebug( ' tl_chrg_alloc_amt :'|| p_ra_ar_rec.TL_CHRG_ALLOC_AMT);
12519 localdebug( ' tl_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.TL_CHRG_ALLOC_ACCTD_AMT);
12520 localdebug( ' tax_rem_amt :'|| p_ra_ar_rec.TAX_REM_AMT);
12521 /* localdebug( ' buc_ed_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_ED_ALLOC_ACCTD_AMT);
12522 localdebug( ' buc_ed_chrg_alloc_amt :'|| p_ra_ar_rec.BUC_ED_CHRG_ALLOC_AMT);
12523 localdebug( ' base_ed_chrg_pro_acctd_amt :'|| p_ra_ar_rec.BASE_ED_CHRG_PRO_ACCTD_AMT);*/
12524 localdebug( ' group_id :'|| p_ra_ar_rec.GROUP_ID);
12525 /* localdebug( ' elmt_uned_tax_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_UNED_TAX_PRO_ACCTD_AMT);
12526 localdebug( ' base_uned_pro_amt :'|| p_ra_ar_rec.BASE_UNED_PRO_AMT);
12527 localdebug( ' base_uned_pro_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_PRO_ACCTD_AMT);
12528 localdebug( ' base_uned_chrg_pro_amt :'|| p_ra_ar_rec.BASE_UNED_CHRG_PRO_AMT);
12529 localdebug( ' base_uned_chrg_pro_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_CHRG_PRO_ACCTD_AMT);
12530 localdebug( ' base_uned_frt_pro_amt :'|| p_ra_ar_rec.BASE_UNED_FRT_PRO_AMT);
12531 localdebug( ' base_uned_frt_pro_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_FRT_PRO_ACCTD_AMT);
12532 localdebug( ' base_uned_tax_pro_amt :'|| p_ra_ar_rec.BASE_UNED_TAX_PRO_AMT);
12533 localdebug( ' base_uned_tax_pro_acctd_amt :'|| p_ra_ar_rec.BASE_UNED_TAX_PRO_ACCTD_AMT);*/
12534 localdebug( ' dist_amt :'|| p_ra_ar_rec.DIST_AMT);
12535 localdebug( ' dist_acctd_amt :'|| p_ra_ar_rec.DIST_ACCTD_AMT);
12536 localdebug( ' dist_frt_amt :'|| p_ra_ar_rec.DIST_FRT_AMT);
12537 localdebug( ' dist_frt_acctd_amt :'|| p_ra_ar_rec.DIST_FRT_ACCTD_AMT);
12538 localdebug( ' dist_tax_amt :'|| p_ra_ar_rec.DIST_TAX_AMT);
12539 localdebug( ' dist_tax_acctd_amt :'|| p_ra_ar_rec.DIST_TAX_ACCTD_AMT);
12540 localdebug( ' dist_chrg_amt :'|| p_ra_ar_rec.DIST_CHRG_AMT);
12541 localdebug( ' dist_chrg_acctd_amt :'|| p_ra_ar_rec.DIST_CHRG_ACCTD_AMT);
12542 localdebug( ' dist_ed_amt :'|| p_ra_ar_rec.DIST_ED_AMT);
12543 localdebug( ' dist_ed_acctd_amt :'|| p_ra_ar_rec.DIST_ED_ACCTD_AMT);
12544 localdebug( ' dist_ed_frt_amt :'|| p_ra_ar_rec.DIST_ED_FRT_AMT);
12545 localdebug( ' dist_ed_frt_acctd_amt :'|| p_ra_ar_rec.DIST_ED_FRT_ACCTD_AMT);
12546 /* localdebug( ' elmt_pro_amt :'|| p_ra_ar_rec.ELMT_PRO_AMT);
12547 localdebug( ' elmt_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_PRO_ACCTD_AMT);
12548 localdebug( ' elmt_chrg_pro_amt :'|| p_ra_ar_rec.ELMT_CHRG_PRO_AMT);
12549 localdebug( ' elmt_chrg_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_CHRG_PRO_ACCTD_AMT);
12550 localdebug( ' elmt_frt_pro_amt :'|| p_ra_ar_rec.ELMT_FRT_PRO_AMT);
12551 localdebug( ' elmt_frt_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_FRT_PRO_ACCTD_AMT);
12552 localdebug( ' elmt_tax_pro_amt :'|| p_ra_ar_rec.ELMT_TAX_PRO_AMT);
12553 localdebug( ' elmt_tax_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_TAX_PRO_ACCTD_AMT);
12554 localdebug( ' buc_alloc_amt :'|| p_ra_ar_rec.BUC_ALLOC_AMT);
12555 localdebug( ' buc_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_ALLOC_ACCTD_AMT);
12556 localdebug( ' buc_chrg_alloc_amt :'|| p_ra_ar_rec.BUC_CHRG_ALLOC_AMT);
12557 localdebug( ' buc_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_CHRG_ALLOC_ACCTD_AMT);
12558 localdebug( ' buc_frt_alloc_amt :'|| p_ra_ar_rec.BUC_FRT_ALLOC_AMT);
12559 localdebug( ' buc_frt_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_FRT_ALLOC_ACCTD_AMT);
12560 localdebug( ' buc_tax_alloc_amt :'|| p_ra_ar_rec.BUC_TAX_ALLOC_AMT);
12561 localdebug( ' buc_tax_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_TAX_ALLOC_ACCTD_AMT);*/
12562 localdebug( ' tl_ed_alloc_amt :'|| p_ra_ar_rec.TL_ED_ALLOC_AMT);
12563 localdebug( ' tl_ed_alloc_acctd_amt :'|| p_ra_ar_rec.TL_ED_ALLOC_ACCTD_AMT);
12564 localdebug( ' tl_ed_chrg_alloc_amt :'|| p_ra_ar_rec.TL_ED_CHRG_ALLOC_AMT);
12565 localdebug( ' tl_ed_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.TL_ED_CHRG_ALLOC_ACCTD_AMT);
12566 localdebug( ' tl_ed_frt_alloc_amt :'|| p_ra_ar_rec.TL_ED_FRT_ALLOC_AMT);
12567 localdebug( ' gt_id :'|| p_ra_ar_rec.GT_ID);
12568 localdebug( ' base_currency :'|| p_ra_ar_rec.BASE_CURRENCY);
12569 localdebug( ' to_currency :'|| p_ra_ar_rec.TO_CURRENCY);
12570 localdebug( ' from_currency :'|| p_ra_ar_rec.FROM_CURRENCY);
12571 localdebug( ' det_id :'|| p_ra_ar_rec.DET_ID);
12572 localdebug( ' line_id :'|| p_ra_ar_rec.LINE_ID);
12573 localdebug( ' ref_customer_trx_id :'|| p_ra_ar_rec.REF_CUSTOMER_TRX_ID);
12574 localdebug( ' ref_customer_trx_line_id :'|| p_ra_ar_rec.REF_CUSTOMER_TRX_LINE_ID);
12575 localdebug( ' ref_cust_trx_line_gl_dist_id :'|| p_ra_ar_rec.REF_CUST_TRX_LINE_GL_DIST_ID);
12576 localdebug( ' ref_line_id :'|| p_ra_ar_rec.REF_LINE_ID);
12577 localdebug( ' ref_det_id :'|| p_ra_ar_rec.REF_DET_ID);
12578 localdebug( ' account_class :'|| p_ra_ar_rec.ACCOUNT_CLASS);
12579 localdebug( ' source_type :'|| p_ra_ar_rec.SOURCE_TYPE);
12580 localdebug( ' source_table :'|| p_ra_ar_rec.SOURCE_TABLE);
12581 localdebug( ' source_id :'|| p_ra_ar_rec.SOURCE_ID);
12582 localdebug( ' amt :'|| p_ra_ar_rec.AMT);
12583 localdebug( ' acctd_amt :'|| p_ra_ar_rec.ACCTD_AMT);
12584 localdebug( ' amt_dr :'|| p_ra_ar_rec.AMT_DR);
12585 localdebug( ' amt_cr :'|| p_ra_ar_rec.AMT_CR);
12586 localdebug( ' acctd_amt_dr :'|| p_ra_ar_rec.ACCTD_AMT_DR);
12587 localdebug( ' acctd_amt_cr :'|| p_ra_ar_rec.ACCTD_AMT_CR);
12588 localdebug( ' from_acctd_amt_dr :'|| p_ra_ar_rec.FROM_ACCTD_AMT_DR);
12589 localdebug( ' from_acctd_amt_cr :'|| p_ra_ar_rec.FROM_ACCTD_AMT_CR);
12590 localdebug( ' ccid :'|| p_ra_ar_rec.CCID);
12591 localdebug( ' ccid_secondary :'|| p_ra_ar_rec.CCID_SECONDARY);
12592 localdebug( ' alloc_amt :'|| p_ra_ar_rec.ALLOC_AMT);
12593 localdebug( ' alloc_acctd_amt :'|| p_ra_ar_rec.ALLOC_ACCTD_AMT);
12594 localdebug( ' from_alloc_amt :'|| p_ra_ar_rec.FROM_ALLOC_AMT);
12595 localdebug( ' sum_gp_line_orig_amt :'|| p_ra_ar_rec.SUM_GP_LINE_ORIG_AMT);
12596 localdebug( ' sum_gp_line_orig_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_ORIG_ACCTD_AMT);
12597 localdebug( ' sum_gp_line_frt_orig_amt :'|| p_ra_ar_rec.SUM_GP_LINE_FRT_ORIG_AMT);
12598 localdebug( ' sum_gp_line_frt_orig_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_FRT_ORIG_ACCTD_AMT);
12599 localdebug( ' sum_gp_line_tax_orig_amt :'|| p_ra_ar_rec.SUM_GP_LINE_TAX_ORIG_AMT);
12600 localdebug( ' tl_frt_alloc_acctd_amt :'|| p_ra_ar_rec.TL_FRT_ALLOC_ACCTD_AMT);
12601 localdebug( ' tl_tax_alloc_amt :'|| p_ra_ar_rec.TL_TAX_ALLOC_AMT);
12602 localdebug( ' tl_tax_alloc_acctd_amt :'|| p_ra_ar_rec.TL_TAX_ALLOC_ACCTD_AMT);
12603 localdebug( ' due_orig_amt :'|| p_ra_ar_rec.DUE_ORIG_AMT);
12604 localdebug( ' due_orig_acctd_amt :'|| p_ra_ar_rec.DUE_ORIG_ACCTD_AMT);
12605 localdebug( ' frt_orig_amt :'|| p_ra_ar_rec.FRT_ORIG_AMT);
12606 localdebug( ' frt_orig_acctd_amt :'|| p_ra_ar_rec.FRT_ORIG_ACCTD_AMT);
12607 localdebug( ' tax_orig_amt :'|| p_ra_ar_rec.TAX_ORIG_AMT);
12608 localdebug( ' tax_orig_acctd_amt :'|| p_ra_ar_rec.TAX_ORIG_ACCTD_AMT);
12609 localdebug( ' due_rem_amt :'|| p_ra_ar_rec.DUE_REM_AMT);
12610 localdebug( ' due_rem_acctd_amt :'|| p_ra_ar_rec.DUE_REM_ACCTD_AMT);
12611 localdebug( ' chrg_rem_amt :'|| p_ra_ar_rec.CHRG_REM_AMT);
12612 localdebug( ' chrg_rem_acctd_amt :'|| p_ra_ar_rec.CHRG_REM_ACCTD_AMT);
12613 localdebug( ' frt_rem_amt :'|| p_ra_ar_rec.FRT_REM_AMT);
12614 localdebug( ' frt_rem_acctd_amt :'|| p_ra_ar_rec.FRT_REM_ACCTD_AMT);
12615 localdebug( ' frt_adj_rem_amt :'|| p_ra_ar_rec.FRT_ADJ_REM_AMT);
12616 localdebug( ' frt_adj_rem_acctd_amt :'|| p_ra_ar_rec.FRT_ADJ_REM_ACCTD_AMT);
12617 localdebug( ' dist_ed_tax_amt :'|| p_ra_ar_rec.DIST_ED_TAX_AMT);
12618 /* localdebug( ' base_ed_frt_pro_amt :'|| p_ra_ar_rec.BASE_ED_FRT_PRO_AMT);
12619 localdebug( ' base_ed_frt_pro_acctd_amt :'|| p_ra_ar_rec.BASE_ED_FRT_PRO_ACCTD_AMT);
12620 localdebug( ' base_ed_tax_pro_amt :'|| p_ra_ar_rec.BASE_ED_TAX_PRO_AMT);
12621 localdebug( ' base_ed_tax_pro_acctd_amt :'|| p_ra_ar_rec.BASE_ED_TAX_PRO_ACCTD_AMT);*/
12622 localdebug( ' tl_uned_alloc_amt :'|| p_ra_ar_rec.TL_UNED_ALLOC_AMT);
12623 localdebug( ' tl_uned_alloc_acctd_amt :'|| p_ra_ar_rec.TL_UNED_ALLOC_ACCTD_AMT);
12624 localdebug( ' tl_uned_chrg_alloc_amt :'|| p_ra_ar_rec.TL_UNED_CHRG_ALLOC_AMT);
12625 localdebug( ' tl_uned_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.TL_UNED_CHRG_ALLOC_ACCTD_AMT);
12626 localdebug( ' tl_uned_frt_alloc_amt :'|| p_ra_ar_rec.TL_UNED_FRT_ALLOC_AMT);
12627 localdebug( ' sum_gp_line_tax_orig_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_TAX_ORIG_ACCTD_AMT);
12628 /* localdebug( ' buc_ed_chrg_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_ED_CHRG_ALLOC_ACCTD_AMT);
12629 localdebug( ' buc_ed_frt_alloc_amt :'|| p_ra_ar_rec.BUC_ED_FRT_ALLOC_AMT);
12630 localdebug( ' buc_ed_frt_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_ED_FRT_ALLOC_ACCTD_AMT);
12631 localdebug( ' buc_ed_tax_alloc_amt :'|| p_ra_ar_rec.BUC_ED_TAX_ALLOC_AMT);
12632 localdebug( ' buc_ed_tax_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_ED_TAX_ALLOC_ACCTD_AMT);
12633 localdebug( ' elmt_ed_pro_amt :'|| p_ra_ar_rec.ELMT_ED_PRO_AMT);
12634 localdebug( ' elmt_ed_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_ED_PRO_ACCTD_AMT);
12635 localdebug( ' elmt_ed_chrg_pro_amt :'|| p_ra_ar_rec.ELMT_ED_CHRG_PRO_AMT);
12636 localdebug( ' elmt_ed_chrg_pro_acctd_amt :'|| p_ra_ar_rec.ELMT_ED_CHRG_PRO_ACCTD_AMT);
12637 localdebug( ' elmt_ed_frt_pro_amt :'|| p_ra_ar_rec.ELMT_ED_FRT_PRO_AMT);*/
12638 localdebug( ' sum_line_tax_orig_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_TAX_ORIG_ACCTD_AMT);
12639 localdebug( ' sum_line_rem_amt :'|| p_ra_ar_rec.SUM_LINE_REM_AMT);
12640 localdebug( ' sum_line_rem_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_REM_ACCTD_AMT);
12641 localdebug( ' sum_line_chrg_rem_amt :'|| p_ra_ar_rec.SUM_LINE_CHRG_REM_AMT);
12642 localdebug( ' sum_line_chrg_rem_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_CHRG_REM_ACCTD_AMT);
12643 localdebug( ' sum_line_frt_rem_amt :'|| p_ra_ar_rec.SUM_LINE_FRT_REM_AMT);
12644 localdebug( ' sum_line_frt_rem_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_FRT_REM_ACCTD_AMT);
12645 localdebug( ' sum_line_tax_rem_amt :'|| p_ra_ar_rec.SUM_LINE_TAX_REM_AMT);
12646 localdebug( ' sum_line_tax_rem_acctd_amt :'|| p_ra_ar_rec.SUM_LINE_TAX_REM_ACCTD_AMT);
12647 /* localdebug( ' base_pro_amt :'|| p_ra_ar_rec.BASE_PRO_AMT);
12648 localdebug( ' base_pro_acctd_amt :'|| p_ra_ar_rec.BASE_PRO_ACCTD_AMT);
12649 localdebug( ' base_chrg_pro_amt :'|| p_ra_ar_rec.BASE_CHRG_PRO_AMT);
12650 localdebug( ' base_chrg_pro_acctd_amt :'|| p_ra_ar_rec.BASE_CHRG_PRO_ACCTD_AMT);
12651 localdebug( ' base_frt_pro_amt :'|| p_ra_ar_rec.BASE_FRT_PRO_AMT);
12652 localdebug( ' base_frt_pro_acctd_amt :'|| p_ra_ar_rec.BASE_FRT_PRO_ACCTD_AMT);
12653 localdebug( ' base_tax_pro_amt :'|| p_ra_ar_rec.BASE_TAX_PRO_AMT);
12654 localdebug( ' base_tax_pro_acctd_amt :'|| p_ra_ar_rec.BASE_TAX_PRO_ACCTD_AMT);*/
12655 localdebug( ' dist_ed_tax_acctd_amt :'|| p_ra_ar_rec.DIST_ED_TAX_ACCTD_AMT);
12656 localdebug( ' sum_gp_line_rem_amt :'|| p_ra_ar_rec.SUM_GP_LINE_REM_AMT);
12657 localdebug( ' sum_gp_line_rem_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_REM_ACCTD_AMT);
12658 localdebug( ' sum_gp_line_chrg_rem_amt :'|| p_ra_ar_rec.SUM_GP_LINE_CHRG_REM_AMT);
12659 localdebug( ' sum_gp_line_chrg_rem_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_CHRG_REM_ACCTD_AMT);
12660 localdebug( ' sum_gp_line_frt_rem_amt :'|| p_ra_ar_rec.SUM_GP_LINE_FRT_REM_AMT);
12661 localdebug( ' sum_gp_line_frt_rem_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_FRT_REM_ACCTD_AMT);
12662 localdebug( ' sum_gp_line_tax_rem_amt :'|| p_ra_ar_rec.SUM_GP_LINE_TAX_REM_AMT);
12663 localdebug( ' sum_gp_line_tax_rem_acctd_amt :'|| p_ra_ar_rec.SUM_GP_LINE_TAX_REM_ACCTD_AMT);
12664 localdebug( ' set_of_books_id :'|| p_ra_ar_rec.SET_OF_BOOKS_ID);
12665 localdebug( ' sob_type :'|| p_ra_ar_rec.SOB_TYPE);
12666 localdebug( ' activity_bucket :'|| p_ra_ar_rec.activity_bucket);
12667 localdebug( ' source_data_key1 :'|| p_ra_ar_rec.SOURCE_DATA_KEY1);
12668 localdebug( ' source_data_key2 :'|| p_ra_ar_rec.SOURCE_DATA_KEY2);
12669 localdebug( ' source_data_key3 :'|| p_ra_ar_rec.SOURCE_DATA_KEY3);
12670 localdebug( ' source_data_key4 :'|| p_ra_ar_rec.SOURCE_DATA_KEY4);
12671 localdebug( ' tl_ed_frt_alloc_acctd_amt :'|| p_ra_ar_rec.TL_ED_FRT_ALLOC_ACCTD_AMT);
12672 localdebug( ' tl_ed_tax_alloc_amt :'|| p_ra_ar_rec.TL_ED_TAX_ALLOC_AMT);
12673 localdebug( ' tl_ed_tax_alloc_acctd_amt :'|| p_ra_ar_rec.TL_ED_TAX_ALLOC_ACCTD_AMT);
12674 -- localdebug( ' buc_ed_alloc_amt :'|| p_ra_ar_rec.BUC_ED_ALLOC_AMT);
12675 localdebug( ' tl_uned_frt_alloc_acctd_amt :'|| p_ra_ar_rec.TL_UNED_FRT_ALLOC_ACCTD_AMT);
12676 localdebug( ' tl_uned_tax_alloc_amt :'|| p_ra_ar_rec.TL_UNED_TAX_ALLOC_AMT);
12677 localdebug( ' tl_uned_tax_alloc_acctd_amt :'|| p_ra_ar_rec.TL_UNED_TAX_ALLOC_ACCTD_AMT);
12678 -- localdebug( ' buc_uned_alloc_amt :'|| p_ra_ar_rec.BUC_UNED_ALLOC_AMT);
12679 -- localdebug( ' buc_uned_alloc_acctd_amt :'|| p_ra_ar_rec.BUC_UNED_ALLOC_ACCTD_AMT);
12680 localdebug( ' tl_frt_alloc_amt :'|| p_ra_ar_rec.TL_FRT_ALLOC_AMT);
12681 localdebug( 'arp_det_dist_pkg.display_ra_ar_row()-');
12682 END IF;
12683 END;
12684
12685
12686 PROCEDURE display_ra_ar_gt
12687 (p_code IN VARCHAR2 DEFAULT NULL,
12688 p_gt_id IN VARCHAR2)
12689 IS
12690 CURSOR c1 IS
12691 SELECT * FROM ra_ar_gt
12692 WHERE gt_id = p_gt_id;
12693
12694 CURSOR c2 IS
12695 SELECT * FROM ra_ar_gt
12696 WHERE gp_level = p_code
12697 AND gt_id = p_gt_id;
12698
12699 l_record c1%ROWTYPE;
12700 l_record2 c2%ROWTYPE;
12701 BEGIN
12702 IF (PG_DEBUG = 'Y') THEN
12703 localdebug('arp_det_dist_pkg.display_ra_ar_gt()+');
12704 localdebug(' p_code : '||p_code);
12705 IF p_code IS NULL THEN
12706 OPEN c1;
12707 LOOP
12708 FETCH c1 INTO l_record;
12709 EXIT WHEN c1%NOTFOUND;
12710 display_ra_ar_row(l_record);
12711 END LOOP;
12712 CLOSE c1;
12713 ELSE
12714 OPEN c2;
12715 LOOP
12716 FETCH c2 INTO l_record2;
12717 EXIT WHEN c2%NOTFOUND;
12718 display_ra_ar_row(l_record2);
12719 END LOOP;
12720 CLOSE c2;
12721 END IF;
12722 localdebug('arp_det_dist_pkg.display_ra_ar_gt()-');
12723 END IF;
12724 END;
12725
12726
12727 PROCEDURE display_cust_trx_row
12728 (p_record IN ra_customer_trx_lines_gt%ROWTYPE)
12729 IS
12730 BEGIN
12731 IF PG_DEBUG = 'Y' THEN
12732 localdebug('arp_det_dist_pkg.display_cust_trx_row()+');
12733 localdebug(' CUSTOMER_TRX_LINE_ID :'|| p_record.CUSTOMER_TRX_LINE_ID);
12734 localdebug(' LINK_TO_CUST_TRX_LINE_ID :'|| p_record.LINK_TO_CUST_TRX_LINE_ID);
12735 localdebug(' CUSTOMER_TRX_ID :'|| p_record.CUSTOMER_TRX_ID);
12736 localdebug(' SET_OF_BOOKS_ID :'|| p_record.SET_OF_BOOKS_ID);
12737 localdebug(' LINE_TYPE :'|| p_record.LINE_TYPE);
12738 localdebug(' SOURCE_DATA_KEY1 :'|| p_record.SOURCE_DATA_KEY1);
12739 localdebug(' SOURCE_DATA_KEY2 :'|| p_record.SOURCE_DATA_KEY2);
12740 localdebug(' SOURCE_DATA_KEY3 :'|| p_record.SOURCE_DATA_KEY3);
12741 localdebug(' SOURCE_DATA_KEY4 :'|| p_record.SOURCE_DATA_KEY4);
12742 localdebug(' SOURCE_DATA_KEY5 :'|| p_record.SOURCE_DATA_KEY5);
12743 localdebug(' AMOUNT_DUE_REMAINING :'|| p_record.AMOUNT_DUE_REMAINING);
12744 localdebug(' ACCTD_AMOUNT_DUE_REMAINING :'|| p_record.ACCTD_AMOUNT_DUE_REMAINING);
12745 localdebug(' AMOUNT_DUE_ORIGINAL :'|| p_record.AMOUNT_DUE_ORIGINAL);
12746 localdebug(' ACCTD_AMOUNT_DUE_ORIGINAL :'|| p_record.ACCTD_AMOUNT_DUE_ORIGINAL);
12747 localdebug(' CHRG_AMOUNT_REMAINING :'|| p_record.CHRG_AMOUNT_REMAINING);
12748 localdebug(' CHRG_ACCTD_AMOUNT_REMAINING :'|| p_record.CHRG_ACCTD_AMOUNT_REMAINING);
12749 localdebug(' FRT_ADJ_REMAINING :'|| p_record.FRT_ADJ_REMAINING);
12750 localdebug(' FRT_ADJ_ACCTD_REMAINING :'|| p_record.FRT_ADJ_ACCTD_REMAINING);
12751 localdebug(' FRT_ED_AMOUNT :'|| p_record.FRT_ED_AMOUNT);
12752 localdebug(' FRT_ED_ACCTD_AMOUNT :'|| p_record.FRT_ED_ACCTD_AMOUNT);
12753 localdebug(' FRT_UNED_AMOUNT :'|| p_record.FRT_UNED_AMOUNT);
12754 localdebug(' FRT_UNED_ACCTD_AMOUNT :'|| p_record.FRT_UNED_ACCTD_AMOUNT);
12755 localdebug('arp_det_dist_pkg.display_cust_trx_row()-');
12756 END IF;
12757 END;
12758
12759 PROCEDURE display_cust_trx_gt(p_customer_trx_id IN NUMBER)
12760 IS
12761 CURSOR c IS
12762 SELECT *
12763 FROM ra_customer_trx_lines_gt
12764 WHERE customer_trx_id = p_customer_trx_id;
12765 l_record c%ROWTYPE;
12766 BEGIN
12767 IF PG_DEBUG = 'Y' THEN
12768 localdebug('arp_det_dist_pkg.display_cust_trx_gt()+');
12769 END IF;
12770 OPEN c;
12771 LOOP
12772 FETCH c INTO l_record;
12773 EXIT WHEN c%NOTFOUND;
12774 display_cust_trx_row(l_record);
12775 END LOOP;
12776 CLOSE c;
12777 IF PG_DEBUG = 'Y' THEN
12778 localdebug('arp_det_dist_pkg.display_cust_trx_gt()-');
12779 END IF;
12780 END;
12781
12782
12783
12784 --{HYU possible_adj
12785 PROCEDURE get_orig_amt
12786 (p_customer_trx_id IN NUMBER,
12787 x_amt_rem IN OUT NOCOPY g_amt_rem_type) IS
12788 CURSOR c IS
12789 SELECT SUM(NVL(amount_due_original,extended_amount)),
12790 line_type
12791 FROM ra_customer_trx_lines
12792 WHERE customer_trx_id = p_customer_trx_id
12793 GROUP BY line_type;
12794
12795 CURSOR tl_for_rl IS
12796 SELECT customer_trx_line_id
12797 FROM ra_customer_trx_lines
12798 WHERE customer_trx_id = p_customer_trx_id
12799 AND line_type IN ('LINE','CB')
12800 MINUS
12801 SELECT link_to_cust_trx_line_id
12802 FROM ra_customer_trx_lines
12803 WHERE customer_trx_id = p_customer_trx_id
12804 AND line_type = 'TAX';
12805
12806 l_amt NUMBER;
12807 l_type VARCHAR2(30);
12808 l_id NUMBER;
12809 BEGIN
12810 IF PG_DEBUG = 'Y' THEN
12811 localdebug('arp_det_dist_pkg.get_orig_amt()+');
12812 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
12813 END IF;
12814 x_amt_rem.sum_line_amt_orig := 0;
12815 x_amt_rem.sum_tax_amt_orig := 0;
12816 x_amt_rem.sum_frt_amt_orig := 0;
12817 x_amt_rem.tl_for_rl := 'N';
12818 OPEN c;
12819 LOOP
12820 FETCH c INTO l_amt, l_type;
12821 IF PG_DEBUG = 'Y' THEN
12822 localdebug(' l_type:'||l_type);
12823 localdebug(' l_amt :'||l_amt);
12824 END IF;
12825 EXIT WHEN c%NOTFOUND;
12826 IF l_type IN ('LINE','CB') THEN
12827 x_amt_rem.sum_line_amt_orig := l_amt;
12828 ELSIF l_type = 'TAX' THEN
12829 x_amt_rem.sum_tax_amt_orig := l_amt;
12830 ELSIF l_type = 'FREIGHT' THEN
12831 x_amt_rem.sum_frt_amt_orig := l_amt;
12832 END IF;
12833 END LOOP;
12834 CLOSE c;
12835 IF PG_DEBUG = 'Y' THEN
12836 localdebug(' x_amt_rem.sum_line_amt_orig :'||x_amt_rem.sum_line_amt_orig);
12837 localdebug(' x_amt_rem.sum_tax_amt_orig :'||x_amt_rem.sum_tax_amt_orig);
12838 localdebug(' x_amt_rem.sum_frt_amt_orig :'||x_amt_rem.sum_frt_amt_orig);
12839 END IF;
12840 OPEN tl_for_rl;
12841 FETCH tl_for_rl INTO l_id;
12842 IF tl_for_rl%NOTFOUND THEN
12843 x_amt_rem.tl_for_rl := 'Y';
12844 ELSE
12845 x_amt_rem.tl_for_rl := 'N';
12846 END IF;
12847 CLOSE tl_for_rl;
12848 IF PG_DEBUG = 'Y' THEN
12849 localdebug(' x_amt_rem.tl_for_rl :'||x_amt_rem.tl_for_rl);
12850 localdebug('arp_det_dist_pkg.get_orig_amt()-');
12851 END IF;
12852 END;
12853
12854
12855 /*------------------------------------------------------+
12856 | FUNCTION ed_uned_type |
12857 +------------------------------------------------------+
12858 | Parameters: |
12859 | ----------- |
12860 | p_source_exec 'ED' 'UNED' |
12861 | p_app_rec The app record and bucket info. |
12862 | p_bucket 'TAX','LINE','FREIGHT','CHARGES' |
12863 +------------------------------------------------------+
12864 | Return 'Y' in the bucket ED or UNED is concerned |
12865 | 'N' otherwise |
12866 +------------------------------------------------------+
12867 | Created 26-OCT-03 Herve Yu |
12868 +------------------------------------------------------*/
12869 FUNCTION ed_uned_type
12870 ( p_source_exec IN VARCHAR2,
12871 p_app_rec IN ar_receivable_applications%rowtype,
12872 p_bucket IN VARCHAR2)
12873 RETURN VARCHAR2
12874 IS
12875 l_res VARCHAR2(1) := 'N';
12876 BEGIN
12877 IF PG_DEBUG = 'Y' THEN
12878 localdebug('arp_det_dist_pkg.ed_uned_type()+');
12879 localdebug(' p_source_exec :'||p_source_exec);
12880 localdebug(' p_bucket :'||p_bucket);
12881 END IF;
12882 IF p_source_exec = 'ED' THEN
12883 IF p_bucket = 'TAX' AND NVL(p_app_rec.tax_ediscounted,0) <> 0 THEN
12884 l_res := 'Y';
12885 ELSIF p_bucket IN ('LINE','CB') AND NVL(p_app_rec.line_ediscounted,0) <> 0 THEN
12886 l_res := 'Y';
12887 ELSIF p_bucket = 'FREIGHT' AND NVL(p_app_rec.freight_ediscounted,0) <> 0 THEN
12888 l_res := 'Y';
12889 ELSIF p_bucket = 'CHARGES' AND NVL(p_app_rec.charges_ediscounted,0) <> 0 THEN
12890 l_res := 'Y';
12891 END IF;
12892 ELSIF p_source_exec = 'UNED' THEN
12893 IF p_bucket = 'TAX' AND NVL(p_app_rec.tax_uediscounted,0) <> 0 THEN
12894 l_res := 'Y';
12895 ELSIF p_bucket IN ('LINE','CB') AND NVL(p_app_rec.line_uediscounted,0) <> 0 THEN
12896 l_res := 'Y';
12897 ELSIF p_bucket = 'FREIGHT' AND NVL(p_app_rec.freight_uediscounted,0) <> 0 THEN
12898 l_res := 'Y';
12899 ELSIF p_bucket = 'CHARGES' AND NVL(p_app_rec.charges_uediscounted,0) <> 0 THEN
12900 l_res := 'Y';
12901 END IF;
12902 END IF;
12903 IF PG_DEBUG = 'Y' THEN
12904 localdebug(' l_res :'||l_res);
12905 localdebug('arp_det_dist_pkg.ed_uned_type()-');
12906 END IF;
12907 RETURN l_res;
12908 END;
12909
12910 /*------------------------------------------------------+
12911 | FUNCTION tax_adj_type |
12912 +------------------------------------------------------+
12913 | Parameters: |
12914 | ----------- |
12915 | p_adj_rec the adjustment record. |
12916 | p_ae_rule_rec containing accounting acitivity |
12917 | and bucket info. |
12918 | p_amt_rem containing amount kept at invoice |
12919 | lines. |
12920 | p_app_rec the app rec |
12921 | p_source_exec 'ADJ' 'ED' 'UNED' |
12922 +------------------------------------------------------+
12923 | Return the codification for tax adjustment |
12924 | Example of code returned TA_TCSINV_YTL |
12925 | meaning Tax adjustment with Tax Code Source = |
12926 | Invoice and |
12927 | the buckets Rev is <> 0 |
12928 +------------------------------------------------------+
12929 | Created 26-OCT-03 Herve Yu |
12930 +------------------------------------------------------*/
12931 FUNCTION tax_adj_type(p_adj_rec IN ar_adjustments%rowtype,
12932 p_ae_rule_rec IN ae_rule_rec_type,
12933 p_amt_rem IN g_amt_rem_type,
12934 p_app_rec IN ar_receivable_applications%rowtype,
12935 p_source_exec IN VARCHAR2)
12936 RETURN VARCHAR2
12937 IS
12938 l_type VARCHAR2(30);
12939 l_amt NUMBER;
12940 l_res VARCHAR2(30);
12941 BEGIN
12942 IF PG_DEBUG = 'Y' THEN
12943 localdebug('arp_det_dist_pkg.tax_adj_type()+');
12944 localdebug(' p_source_exec:'||p_source_exec);
12945 END IF;
12946 IF p_source_exec = 'ADJ' THEN
12947 IF p_adj_rec.type = 'TAX' AND (nvl(p_adj_rec.amount,0) <> 0) THEN
12948 -- Tax Adjustment
12949 l_res := 'TA';
12950 ELSIF p_adj_rec.type IN ('LINE','CB') AND (nvl(p_adj_rec.tax_adjusted,0) <> 0) THEN
12951 -- Line Adjustment Tax bucket
12952 l_res := 'LATB';
12953 ELSIF p_adj_rec.type = 'CHARGES' AND (nvl(p_adj_rec.tax_adjusted,0) <> 0) THEN
12954 l_res := 'CATB';
12955 ELSIF p_adj_rec.type = 'FREIGHT' AND (nvl(p_adj_rec.tax_adjusted,0) <> 0) THEN
12956 l_res := 'FATB';
12957 ELSE
12958 l_res := 'NOT_CONCERN';
12959 END IF;
12960 ELSIF p_source_exec IN ('ED','UNED') THEN
12961 IF ed_uned_type(p_source_exec,p_app_rec,'TAX') = 'Y' THEN
12962 l_res := 'TA';
12963 END IF;
12964 END IF;
12965 IF l_res IN ('TA','LATB','CATB','FATB') THEN
12966 IF p_ae_rule_rec.tax_code_source1 = 'INVOICE' THEN
12967 l_res := l_res ||'_TCSINV';
12968 IF p_amt_rem.sum_tax_amt_orig = 0 THEN
12969 l_res := l_res||'_NTL';
12970 ELSE
12971 l_res := l_res||'_YTL';
12972 END IF;
12973 ELSIF p_ae_rule_rec.tax_code_source1 = 'ACTIVITY' THEN
12974 l_res := l_res ||'_TCSACT';
12975 IF p_amt_rem.sum_tax_amt_orig = 0 THEN
12976 l_res := l_res||'_NTL';
12977 ELSE
12978 l_res := l_res||'_YTL';
12979 END IF;
12980 ELSIF p_ae_rule_rec.tax_code_source1 = 'NONE' THEN
12981 IF p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE' THEN
12982 l_res := l_res || '_GASROI_TCSN';
12983 IF p_amt_rem.sum_tax_amt_orig = 0 THEN
12984 l_res := l_res||'_NTL';
12985 ELSE
12986 l_res := l_res||'_YTL';
12987 END IF;
12988 ELSIF p_ae_rule_rec.gl_account_source1 = 'ACTIVITY_GL_ACCOUNT' THEN
12989 l_res := l_res||'_GASACT_TCSN';
12990 /****
12991 IF p_amt_rem.sum_tax_amt_orig = 0 THEN
12992 l_res := l_res||'_NTL';
12993 ELSE
12994 l_res := l_res||'_YTL';
12995 END IF;
12996 ****/
12997 ---Commented the above as part of bug# 6844079, the bug has detail description
12998 --- l_res will result in exception when _NTL is assigned
12999 l_res := l_res||'_YTL';
13000
13001 ELSIF p_ae_rule_rec.gl_account_source1 = 'TAX_CODE_ON_INVOICE' THEN
13002 l_res := l_res || '_GASTCI_TCSN';
13003 IF p_amt_rem.sum_line_amt_orig = 0 THEN
13004 l_res := l_res ||'_NRL';
13005 ELSE
13006 l_res := l_res ||'_YRL';
13007 END IF;
13008 IF p_amt_rem.sum_tax_amt_orig = 0 THEN
13009 l_res := l_res||'_NTL';
13010 ELSE
13011 l_res := l_res||'_YTL';
13012 END IF;
13013 END IF;
13014 END IF;
13015 END IF;
13016 IF PG_DEBUG = 'Y' THEN
13017 localdebug(' l_res:'||l_res);
13018 localdebug('arp_det_dist_pkg.tax_adj_type()-');
13019 END IF;
13020 RETURN l_res;
13021 END;
13022
13023
13024
13025 /*------------------------------------------------------+
13026 | FUNCTION line_adj_type |
13027 +------------------------------------------------------+
13028 | Parameters: |
13029 | ----------- |
13030 | p_adj_rec the adjustment record. |
13031 | p_ae_rule_rec containing accounting acitivity |
13032 | and bucket info. |
13033 | p_amt_rem containing amount kept at invoice |
13034 | lines. |
13035 | p_app_rec the app rec |
13036 | p_source_exec 'ADJ' 'ED' 'UNED' |
13037 +------------------------------------------------------+
13038 | Return the codification for line adjustment |
13039 | Example of code returned LA_GASROI_NRL |
13040 | meaning line adjustment with GL account Source |
13041 | Revenue on Invoice and |
13042 | the buckets Rev is <> 0 |
13043 +------------------------------------------------------+
13044 | Created 26-OCT-03 Herve Yu |
13045 +------------------------------------------------------*/
13046 FUNCTION line_adj_type(p_adj_rec IN ar_adjustments%rowtype,
13047 p_ae_rule_rec IN ae_rule_rec_type,
13048 p_amt_rem IN g_amt_rem_type,
13049 p_app_rec IN ar_receivable_applications%rowtype,
13050 p_source_exec IN VARCHAR2)
13051 RETURN VARCHAR2
13052 IS
13053 l_res VARCHAR2(30);
13054 BEGIN
13055 IF PG_DEBUG = 'Y' THEN
13056 localdebug('arp_det_dist_pkg.line_adj_type()+');
13057 localdebug(' p_source_exec:'||p_source_exec);
13058 END IF;
13059 IF p_source_exec = 'ADJ' THEN
13060 IF p_adj_rec.type = 'LINE' AND (nvl(p_adj_rec.amount,0) <> 0) THEN
13061 l_res := 'LA';
13062 ELSE
13063 l_res := 'NOT_CONCERN';
13064 END IF;
13065 ELSIF p_source_exec IN ('ED','UNED') THEN
13066 IF ed_uned_type(p_source_exec,p_app_rec,'LINE') = 'Y' THEN
13067 l_res := 'LA';
13068 END IF;
13069 END IF;
13070 IF l_res IN ('LA') THEN
13071 IF p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE' THEN
13072 l_res := l_res||'_GASROI';
13073 IF p_amt_rem.sum_line_amt_orig = 0 THEN
13074 l_res := l_res||'_NRL';
13075 ELSE
13076 l_res := l_res||'_YRL';
13077 END IF;
13078 ELSIF p_ae_rule_rec.gl_account_source1 = 'ACTIVITY_GL_ACCOUNT' THEN
13079 l_res := l_res ||'_GASACT';
13080 IF p_amt_rem.sum_line_amt_orig = 0 THEN
13081 l_res := l_res||'_NRL';
13082 ELSE
13083 l_res := l_res||'_YRL';
13084 END IF;
13085 ELSIF p_ae_rule_rec.gl_account_source1 = 'TAX_CODE_ON_INVOICE' THEN
13086 l_res := l_res ||'_GASTCI';
13087 IF p_amt_rem.sum_line_amt_orig = 0 THEN
13088 l_res := l_res||'_NRL';
13089 ELSE
13090 l_res := l_res||'_YRL';
13091 IF p_amt_rem.tl_for_rl = 'Y' THEN
13092 l_res := l_res||'_YTR';
13093 ELSE
13094 l_res := l_res||'_NTR';
13095 END IF;
13096 END IF;
13097 END IF;
13098
13099 END IF;
13100 IF PG_DEBUG = 'Y' THEN
13101 localdebug(' l_res:'||l_res);
13102 localdebug('arp_det_dist_pkg.chrg_adj_type()-');
13103 END IF;
13104 RETURN l_res;
13105 END;
13106
13107
13108
13109 /*------------------------------------------------------+
13110 | FUNCTION frt_adj_type |
13111 +------------------------------------------------------+
13112 | Parameters: |
13113 | ----------- |
13114 | p_adj_rec the adjustment record. |
13115 | p_ae_rule_rec containing accounting acitivity |
13116 | and bucket info. |
13117 | p_amt_rem containing amount kept at invoice |
13118 | lines. |
13119 | p_app_rec the app rec |
13120 | p_source_exec 'ADJ' 'ED' 'UNED' |
13121 +------------------------------------------------------+
13122 | Return the codification for freight adjustment |
13123 | Example of code returned FA_GASROI_YRL_YHFL_NLFL |
13124 | meaning freight adjustment with GL account Source |
13125 | Revenue on Invoice and |
13126 | the buckets Rev and Freight at header are <> 0 |
13127 +------------------------------------------------------+
13128 | Created 26-OCT-03 Herve Yu |
13129 +------------------------------------------------------*/
13130 FUNCTION frt_adj_type(p_adj_rec IN ar_adjustments%rowtype,
13131 p_ae_rule_rec IN ae_rule_rec_type,
13132 p_amt_rem IN g_amt_rem_type,
13133 p_app_rec IN ar_receivable_applications%rowtype,
13134 p_source_exec IN VARCHAR2)
13135 RETURN VARCHAR2
13136 IS
13137 l_res VARCHAR2(30);
13138 BEGIN
13139 IF PG_DEBUG = 'Y' THEN
13140 localdebug('arp_det_dist_pkg.frt_adj_type()+');
13141 localdebug(' p_source_exec:'||p_source_exec);
13142 END IF;
13143 IF p_source_exec = 'ADJ' THEN
13144 IF p_adj_rec.type = 'FREIGHT' AND (nvl(p_adj_rec.amount,0) <> 0) THEN
13145 l_res := 'FA';
13146 ELSE
13147 l_res := 'NOT_CONCERN';
13148 END IF;
13149 ELSIF p_source_exec IN ('ED','UNED') THEN
13150 IF ed_uned_type(p_source_exec,p_app_rec,'FREIGHT') = 'Y' THEN
13151 l_res := 'FA';
13152 END IF;
13153 END IF;
13154
13155 IF l_res IN ('FA') THEN
13156 IF p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE' THEN
13157 l_res := l_res || '_GASROI';
13158 IF p_amt_rem.sum_line_frt_amt_orig <> 0 THEN
13159 l_res := l_res||'_NHFL_YLFL';
13160 ELSIF p_amt_rem.sum_head_frt_amt_orig <> 0 THEN
13161 l_res := l_res||'_YHFL_NLFL';
13162 ELSIF p_amt_rem.sum_head_frt_amt_orig = 0 AND p_amt_rem.sum_line_frt_amt_orig = 0 THEN
13163 l_res := l_res||'_NHFL_NLFL';
13164 END IF;
13165 ELSIF p_ae_rule_rec.gl_account_source1 = 'ACTIVITY_GL_ACCOUNT' THEN
13166 l_res := l_res || '_GASACT';
13167 IF p_amt_rem.sum_line_frt_amt_orig <> 0 THEN
13168 l_res := l_res||'_NHFL_YLFL';
13169 ELSIF p_amt_rem.sum_head_frt_amt_orig <> 0 THEN
13170 l_res := l_res||'_YHFL_NLFL';
13171 ELSIF p_amt_rem.sum_head_frt_amt_orig = 0 AND p_amt_rem.sum_line_frt_amt_orig = 0 THEN
13172 l_res := l_res||'_NHFL_NLFL';
13173 END IF;
13174 ELSIF p_ae_rule_rec.gl_account_source1 = 'TAX_CODE_ON_INVOICE' THEN
13175 l_res := l_res || '_GASTCI';
13176 IF p_amt_rem.sum_line_frt_amt_orig <> 0 THEN
13177 l_res := l_res || '_NHFL_YLFL';
13178 IF p_amt_rem.tl_for_fl = 'Y' THEN
13179 l_res := l_res || '_YTF';
13180 ELSE
13181 l_res := l_res|| '_NTF';
13182 END IF;
13183 ELSIF p_amt_rem.sum_head_frt_amt_orig <> 0 THEN
13184 l_res := l_res || '_YHFL_NLFL';
13185 IF p_amt_rem.tl_for_fl = 'Y' THEN
13186 l_res := l_res || '_YTF';
13187 ELSE
13188 l_res := l_res|| '_NTF';
13189 END IF;
13190 ELSIF p_amt_rem.sum_head_frt_amt_orig = 0 AND p_amt_rem.sum_line_frt_amt_orig = 0 THEN
13191 l_res := l_res || '_NHFL_NLFL';
13192 IF p_amt_rem.tl_for_fl = 'Y' THEN
13193 l_res := l_res || '_YTF';
13194 ELSE
13195 l_res := l_res|| '_NTF';
13196 END IF;
13197 END IF;
13198 END IF;
13199 END IF;
13200 IF PG_DEBUG = 'Y' THEN
13201 localdebug(' l_res:'||l_res);
13202 localdebug('arp_det_dist_pkg.frt_adj_type()-');
13203 END IF;
13204 RETURN l_res;
13205 END;
13206
13207 /*------------------------------------------------------+
13208 | FUNCTION chrg_adj_type |
13209 +------------------------------------------------------+
13210 | Parameters: |
13211 | ----------- |
13212 | p_adj_rec the adjustment record. |
13213 | p_ae_rule_rec containing accounting acitivity |
13214 | and bucket info. |
13215 | p_amt_rem containing amount kept at invoice |
13216 | lines. |
13217 | p_app_rec the app rec |
13218 | p_source_exec 'ADJ' 'ED' 'UNED' |
13219 +------------------------------------------------------+
13220 | Return the codification for charge adjustment |
13221 | Example of code returned CA_GASACT_YRL_YHFL_NLFL |
13222 | meaning charge adjustment with GL account Activity |
13223 | the buckets Rev and Freight at header are <> 0 |
13224 +------------------------------------------------------+
13225 | Created 26-OCT-03 Herve Yu |
13226 +------------------------------------------------------*/
13227 FUNCTION chrg_adj_type(p_adj_rec IN ar_adjustments%rowtype,
13228 p_ae_rule_rec IN ae_rule_rec_type,
13229 p_amt_rem IN g_amt_rem_type,
13230 p_app_rec IN ar_receivable_applications%rowtype,
13231 p_source_exec IN VARCHAR2)
13232 RETURN VARCHAR2
13233 IS
13234 l_res VARCHAR2(30);
13235 l_tot_frt_rev NUMBER;
13236 l_tot_frt NUMBER;
13237 BEGIN
13238 IF PG_DEBUG = 'Y' THEN
13239 localdebug('arp_det_dist_pkg.chrg_adj_type()+');
13240 localdebug(' p_source_exec:'||p_source_exec);
13241 END IF;
13242 IF p_source_exec = 'ADJ' THEN
13243 IF p_adj_rec.type = 'CHARGES' AND (nvl(p_adj_rec.amount,0) <> 0) THEN
13244 l_res := 'CA';
13245 ELSE
13246 l_res := 'NOT_CONCERN';
13247 END IF;
13248 ELSIF p_source_exec IN ('ED','UNED') THEN
13249 IF ed_uned_type(p_source_exec,p_app_rec,'CHARGES') = 'Y' THEN
13250 l_res := 'CA';
13251 END IF;
13252 END IF;
13253
13254 IF l_res IN ('CA') THEN
13255 IF p_ae_rule_rec.gl_account_source1 = 'ACTIVITY_GL_ACCOUNT' THEN
13256 l_res := l_res||'_GASACT';
13257 IF p_amt_rem.sum_line_amt_orig <> 0 THEN
13258 l_res := l_res||'_YRL';
13259 ELSIF p_amt_rem.sum_line_amt_orig = 0 THEN
13260 l_res := l_res||'_NRL';
13261 END IF;
13262 IF p_amt_rem.sum_line_frt_amt_orig <> 0 THEN
13263 l_res := l_res||'_NHFL_YLFL';
13264 ELSIF p_amt_rem.sum_head_frt_amt_orig <> 0 THEN
13265 l_res := l_res||'_YHFL_NLFL';
13266 ELSIF p_amt_rem.sum_head_frt_amt_orig = 0
13267 AND p_amt_rem.sum_line_frt_amt_orig = 0 THEN
13268 l_res := l_res||'_NHFL_NLFL';
13269 END IF;
13270 ELSIF p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE' THEN
13271 l_res := l_res||'_GASROI';
13272 ELSIF p_ae_rule_rec.gl_account_source1 = 'TAX_CODE_ON_INVOICE' THEN
13273 l_res := l_res||'_GASTCI';
13274 END IF;
13275 END IF;
13276 IF PG_DEBUG = 'Y' THEN
13277 localdebug(' l_res:'||l_res);
13278 localdebug('arp_det_dist_pkg.chrg_adj_type()-');
13279 END IF;
13280 RETURN l_res;
13281 END;
13282
13283 /*-----------------------------------------------------------+
13284 | PROCEDURE possible_adjust |
13285 | check if a particular adjustment is possible. |
13286 +-----------------------------------------------------------+
13287 | Parameters: |
13288 | ----------- |
13289 | p_adj_rec the adjustment record. |
13290 | p_ae_rule_rec containing accounting acitivity |
13291 | and bucket info. |
13292 | p_amt_rem containing amount kept at invoice |
13293 | lines. |
13294 | x_return_status value according to the possibility |
13295 | of the adjustment |
13296 | FND_API.G_RET_STS_SUCCESS if possible |
13297 | FND_API.G_RET_STS_ERROR if imposssible |
13298 | x_line_adj codification for line adjustment |
13299 | x_tax_adj codification for tax adjustment |
13300 | x_frt_adj codification for freight adjustment |
13301 | x_chrg_adj codification for charge adjustment |
13302 +-----------------------------------------------------------+
13303 | Created 26-OCT-03 Herve Yu |
13304 +-----------------------------------------------------------*/
13305 PROCEDURE possible_adjust(p_adj_rec IN ar_adjustments%rowtype,
13306 p_ae_rule_rec IN ae_rule_rec_type,
13307 p_customer_trx_id IN NUMBER,
13308 x_return_status OUT NOCOPY VARCHAR2,
13309 x_line_adj OUT NOCOPY VARCHAR2,
13310 x_tax_adj OUT NOCOPY VARCHAR2,
13311 x_frt_adj OUT NOCOPY VARCHAR2,
13312 x_chrg_adj OUT NOCOPY VARCHAR2,
13313 p_app_rec IN ar_receivable_applications%rowtype
13314 )
13315 IS
13316 l_source_exec VARCHAR2(30);
13317 l_amt_rem g_amt_rem_type;
13318 l_tax_adj VARCHAR2(100);
13319 l_frt_adj VARCHAR2(100);
13320 l_line_adj VARCHAR2(100);
13321 l_chrg_adj VARCHAR2(100);
13322 BEGIN
13323 IF PG_DEBUG = 'Y' THEN
13324 localdebug('arp_det_dist_pkg.possible_adjust()+');
13325 END IF;
13326
13327 x_return_status := FND_API.G_RET_STS_SUCCESS;
13328
13329 get_orig_amt(p_customer_trx_id => p_customer_trx_id,
13330 x_amt_rem => l_amt_rem);
13331
13332 -- IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
13333 x_tax_adj := tax_adj_type(p_adj_rec => p_adj_rec,
13334 p_ae_rule_rec => p_ae_rule_rec,
13335 p_amt_rem => l_amt_rem,
13336 p_app_rec => p_app_rec,
13337 p_source_exec => 'ADJ');
13338
13339 IF PG_DEBUG = 'Y' THEN
13340 localdebug('x_tax_adj : '||x_tax_adj);
13341 END IF;
13342
13343 x_line_adj := line_adj_type(p_adj_rec => p_adj_rec,
13344 p_ae_rule_rec => p_ae_rule_rec,
13345 p_amt_rem => l_amt_rem,
13346 p_app_rec => p_app_rec,
13347 p_source_exec => 'ADJ');
13348
13349 IF PG_DEBUG = 'Y' THEN
13350 localdebug('x_line_adj : '||x_line_adj);
13351 END IF;
13352
13353 x_frt_adj := frt_adj_type(p_adj_rec => p_adj_rec,
13354 p_ae_rule_rec => p_ae_rule_rec,
13355 p_amt_rem => l_amt_rem,
13356 p_app_rec => p_app_rec,
13357 p_source_exec => 'ADJ');
13358
13359 IF PG_DEBUG = 'Y' THEN
13360 localdebug('x_frt_adj : '||x_frt_adj);
13361 END IF;
13362
13363 x_chrg_adj := chrg_adj_type(p_adj_rec => p_adj_rec,
13364 p_ae_rule_rec => p_ae_rule_rec,
13365 p_amt_rem => l_amt_rem,
13366 p_app_rec => p_app_rec,
13367 p_source_exec => 'ADJ');
13368
13369 IF PG_DEBUG = 'Y' THEN
13370 localdebug('x_chrg_adj : '||x_chrg_adj);
13371 END IF;
13372
13373 -- END IF;
13374
13375 -- The impossible cases
13376 IF x_line_adj IN ('LA_GASROI_NRL',
13377 'LA_GASTCI_YRL_NTR',
13378 'LA_GASTCI_NRL')
13379 THEN
13380 x_return_status := FND_API.G_RET_STS_ERROR;
13381 fnd_message.set_name('AR','AR_'||x_line_adj);
13382 fnd_msg_pub.add;
13383 END IF;
13384
13385 IF x_tax_adj IN ('TA_TCSINV_NTL' ,'TA_GASTCI_TCSN_NTL' ,'TA_GASROI_TCSN_NTL',
13386 'TA_GASACT_TCSN_NTL',
13387 'LATB_TCSINV_NTL','LATB_GASTCI_TCSN_NTL','LATB_GASROI_TCSN_NTL',
13388 'LATB_GASACT_TCSN_NTL',
13389 'CATB_TCSINV_NTL','CATB_GASTCI_TCSN_NTL','CATB_GASROI_TCSN_NTL',
13390 'CATB_GASACT_TCSN_NTL',
13391 'FATB_TCSINV_NTL','FATB_GASTCI_TCSN_NTL','FATB_GASROI_TCSN_NTL',
13392 'FATB_GASACT_TCSN_NTL'
13393 ) THEN
13394 x_return_status := FND_API.G_RET_STS_ERROR;
13395 fnd_message.set_name('AR','AR_'||x_tax_adj);
13396 fnd_msg_pub.add;
13397 END IF;
13398
13399 IF x_frt_adj IN ('FA_GASROI_NHFL_NLFL' , 'FA_GASROI_YHFL_NLFL',
13400 'FA_GASTCI_NHFL_NLFL_NTF', 'FA_GASTCI_NHFL_YLFL_NTF',
13401 'FA_GASTCI_NHFL_NLFL_YTF', 'FA_GASTCI_YHFL_NLFL_NTF') THEN
13402 x_return_status := FND_API.G_RET_STS_ERROR;
13403 fnd_message.set_name('AR','AR_'||x_frt_adj);
13404 fnd_msg_pub.add;
13405 END IF;
13406
13407 -- IF g_chrg_adj IN ('CA_GASROI','CA_GASTCI') THEN --,'CA_GASACT_NRL_NHFL_NLFL') THEN
13408 -- We do not allowarge adjustment on 0 dollars invoice
13409 -- currently the case
13410 -- Invoice with 0 line, 0 tax, 0 Freight
13411 -- If adjusted with a line adjustment + chrg adjustment is breaking at application time
13412 --
13413 -- IF g_chrg_adj IN ('CA_GASROI','CA_GASTCI','CA_GASACT_NRL_NHFL_NLFL') THEN
13414 --HYU reautorise 'CA_GASACT_NRL_NHFL_NLFL'
13415 IF x_chrg_adj IN ('CA_GASROI','CA_GASTCI') THEN
13416 x_return_status := FND_API.G_RET_STS_ERROR;
13417 fnd_message.set_name('AR','AR_'||x_chrg_adj);
13418 fnd_msg_pub.add;
13419 END IF;
13420
13421 IF PG_DEBUG = 'Y' THEN
13422 localdebug(' x_return_status :'||x_return_status);
13423 localdebug('arp_det_dist_pkg.possible_adjust()-');
13424 END IF;
13425 END;
13426
13427
13428 PROCEDURE get_from_currency
13429 (p_app_rec IN ar_receivable_applications%ROWTYPE,
13430 x_from_curr_code OUT NOCOPY VARCHAR2)
13431 IS
13432 CURSOR c_rec_curr(p_cr_id IN NUMBER) IS
13433 SELECT CURRENCY_CODE
13434 FROM ar_cash_receipts_all
13435 WHERE cash_receipt_id = p_cr_id;
13436 no_curr_on_the_cr EXCEPTION;
13437 BEGIN
13438 IF p_app_rec.cash_receipt_id IS NOT NULL THEN
13439 OPEN c_rec_curr(p_app_rec.cash_receipt_id);
13440 FETCH c_rec_curr INTO x_from_curr_code;
13441 IF c_rec_curr%NOTFOUND THEN
13442 RAISE no_curr_on_the_cr;
13443 END IF;
13444 CLOSE c_rec_curr;
13445 ELSIF p_app_rec.customer_trx_id IS NOT NULL THEN
13446 x_from_curr_code := g_cust_inv_rec.invoice_currency_code;
13447 END IF;
13448 EXCEPTION
13449 WHEN no_curr_on_the_cr THEN
13450 IF c_rec_curr%ISOPEN THEN
13451 CLOSE c_rec_curr;
13452 END IF;
13453 IF PG_DEBUG = 'Y' THEN
13454 localdebug(' EXCEPTION no_curr_on_the_cr in get_from_currency cr_id:'||p_app_rec.cash_receipt_id);
13455 END IF;
13456 WHEN OTHERS THEN
13457 IF c_rec_curr%ISOPEN THEN
13458 CLOSE c_rec_curr;
13459 END IF;
13460 IF PG_DEBUG = 'Y' THEN
13461 localdebug(' EXCEPTION OTHERS in get_from_currency cr_id:'||SQLERRM);
13462 END IF;
13463 END;
13464
13465 /*---------------------------------------------------------------------+
13466 | FUNCTION Accting_Proration_Fct |
13467 +---------------------------------------------------------------------+
13468 | This function |
13469 | does the proration and return the value in a row by row manner |
13470 | usefull for function in SQL statement updation |
13471 | |
13472 | Parameter |
13473 | p_temp_amt distribution amount template for proration |
13474 | for example ae_pro_amt(i) |
13475 | p_base_proration base for proration |
13476 | for example sum ae_pro_amt(i) |
13477 | p_alloc_amount The amount for which distribution need to be |
13478 | computed. For example p_app_rec.from_amt_applied
13479 | p_base_currency Base currency code |
13480 | p_trx_currency Trx currency code |
13481 | p_rec_currency Rec currency code |
13482 | p_flag indication of which from distribution to compute
13483 | p_flag = 'FROM_AMT' |
13484 | p_flag = 'FROM_ACCTD_AMT' |
13485 | p_flag = 'FROM_CHRG_AMT' |
13486 | p_flag = 'FROM_CHRG_ACCTD_AMT' |
13487 | History |
13488 | 17-DEC-2003 H. Yu Created |
13489 +---------------------------------------------------------------------*/
13490 FUNCTION Accting_Proration_Fct
13491 (p_temp_amt IN NUMBER,
13492 p_base_proration IN NUMBER,
13493 p_alloc_amount IN NUMBER,
13494 p_base_currency IN VARCHAR2,
13495 p_trx_currency IN VARCHAR2,
13496 p_rec_currency IN VARCHAR2,
13497 p_flag IN VARCHAR2)
13498 RETURN NUMBER
13499 IS
13500 l_result NUMBER;
13501 l_process VARCHAR2(1);
13502 l_run_amt NUMBER;
13503 l_run_total NUMBER;
13504 l_currency VARCHAR2(30);
13505 BEGIN
13506 IF PG_DEBUG = 'Y' THEN
13507 localdebug('arp_det_dist_pkg.Accting_Proration_Fct()+');
13508 localdebug(' p_temp_amt : '||p_temp_amt );
13509 localdebug(' p_base_proration : '||p_base_proration);
13510 localdebug(' p_alloc_amount : '||p_alloc_amount );
13511 localdebug(' p_base_currency : '||p_base_currency );
13512 localdebug(' p_trx_currency : '||p_trx_currency );
13513 localdebug(' p_rec_currency : '||p_rec_currency );
13514 localdebug(' p_flag : '||p_flag );
13515 END IF;
13516 l_process := 'Y';
13517 IF p_flag = 'FROM_AMT' THEN
13518 IF p_trx_currency = p_rec_currency THEN
13519 l_process := 'N';
13520 ELSE
13521 g_run_from_amt := g_run_from_amt + p_temp_amt;
13522 l_run_amt := g_run_from_amt;
13523 l_run_total := g_run_from_total;
13524 l_currency := p_rec_currency;
13525 IF PG_DEBUG = 'Y' THEN
13526 localdebug(' g_run_from_amt in '||p_flag||' : '||g_run_from_amt);
13527 localdebug(' g_run_from_total in '||p_flag||' : '||g_run_from_total);
13528 END IF;
13529 END IF;
13530 ELSIF p_flag = 'FROM_ACCTD_AMT' THEN
13531 IF p_trx_currency = p_base_currency AND
13532 p_rec_currency = p_base_currency
13533 THEN
13534 l_process := 'N';
13535 ELSE
13536 g_run_from_acctd_amt := g_run_from_acctd_amt + p_temp_amt;
13537 l_run_amt := g_run_from_acctd_amt;
13538 l_run_total := g_run_from_acctd_total;
13539 l_currency := p_base_currency;
13540 IF PG_DEBUG = 'Y' THEN
13541 localdebug(' g_run_from_acctd_amt in '||p_flag||' : '||g_run_from_acctd_amt);
13542 localdebug(' g_run_from_acctd_total in '||p_flag||' : '||g_run_from_acctd_total);
13543 END IF;
13544 END IF;
13545 END IF;
13546 IF l_process = 'Y' THEN
13547 IF p_base_proration <> 0 THEN
13548 l_result := CurrRound( l_run_amt
13549 / p_base_proration
13550 * p_alloc_amount,
13551 l_currency)
13552 - l_run_total;
13553 ELSE
13554 l_result := 0;
13555 END IF;
13556 l_run_total := l_run_total + l_result;
13557
13558 IF p_flag = 'FROM_AMT' THEN
13559 g_run_from_total := l_run_total;
13560 ELSIF p_flag = 'FROM_ACCTD_AMT' THEN
13561 g_run_from_acctd_total := l_run_total;
13562 END IF;
13563 ELSE
13564 l_result := p_temp_amt;
13565 END IF;
13566
13567 IF PG_DEBUG = 'Y' THEN
13568 localdebug(' l_result : '|| l_result);
13569 localdebug('arp_det_dist_pkg.Accting_Proration_Fct()-');
13570 END IF;
13571 RETURN l_result;
13572 EXCEPTION
13573 WHEN OTHERS THEN
13574 IF PG_DEBUG = 'Y' THEN
13575 localdebug(' EXCEPTION : Accting_Proration_Fct '||SQLERRM);
13576 END IF;
13577 app_exception.raise_exception;
13578 END;
13579
13580 /*----------------------------------------------------------------------+
13581 | PROCEDURE update_from_gt |
13582 +----------------------------------------------------------------------+
13583 | This procedure |
13584 | does the updation of ar_ae_alloc_rec_gt for distributions in |
13585 | receipt currency and in base currency converted from receipt |
13586 | currency |
13587 | |
13588 | Parameter |
13589 | p_from_amt Amount allocated for line, frt, tax in Receipt |
13590 | currency |
13591 | p_from_acctd_amt Acctd Amount allocated for line, frt, tax in |
13592 | in base currency from the Receipt currency |
13593 | using exchange rate of the receipt |
13594 | History |
13595 | 05-NOV-2004 H. Yu Created |
13596 +----------------------------------------------------------------------*/
13597 PROCEDURE update_from_gt
13598 (p_from_amt IN NUMBER,
13599 p_from_acctd_amt IN NUMBER,
13600 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
13601 p_app_rec IN ar_receivable_applications%ROWTYPE,
13602 p_gt_id IN VARCHAR2 DEFAULT NULL,
13603 p_inv_currency IN VARCHAr2 DEFAULT NULL)
13604 IS
13605 CURSOR cu1(p_gt_id IN NUMBER) IS
13606 SELECT /*+INDEX (AR_LINE_APP_DETAIL_GT AR_LINE_APP_DETAIL_GT_N1)*/
13607 SUM(NVL(amount,0)),
13608 SUM(NVL(acctd_amount,0))
13609 FROM AR_LINE_APP_DETAIL_GT
13610 WHERE gt_id = p_gt_id
13611 AND activity_bucket IN ('APP_LINE','APP_CHRG','APP_TAX','APP_FRT',
13612 'ADJ_LINE','ADJ_TAX','ADJ_CHRG','ADJ_FRT')
13613 AND ( NVL(amount,0) <> 0
13614 OR NVL(acctd_amount,0) <> 0);
13615
13616 l_pro_base NUMBER;
13617 l_pro_acctd_base NUMBER;
13618 l_process VARCHAR2(1);
13619 l_from_curr_code VARCHAR2(30);
13620 --{LLCA CROSS CURRENCY
13621 l_gt_id VARCHAR2(30);
13622 l_inv_currency VARCHAR2(30);
13623 --}
13624 no_from_amount_required EXCEPTION;
13625 /* local variables introduced as part of bug 7343649 - vavenugo*/
13626 l_source_id NUMBER;
13627 l_br_flag VARCHAR2(1) DEFAULT 'N';
13628 l_br_count NUMBER;
13629 BEGIN
13630 IF PG_DEBUG = 'Y' THEN
13631 localdebug('arp_det_dist_pkg.update_from_gt()+');
13632 END IF;
13633
13634 --{LLCA CROSS CURRENCY
13635 IF p_gt_id IS NULL THEN
13636 l_gt_id := g_gt_id;
13637 ELSE
13638 l_gt_id := p_gt_id;
13639 END IF;
13640
13641 /* Bug 7343649. Populating l_source_id and l_br_flag. -vavenugo */
13642 /*Bug7391957, Added following SELECT statement within a BEGIN..END block */
13643 BEGIN
13644 select distinct source_id
13645 into l_source_id
13646 from ar_line_app_detail_gt
13647 where gt_id = l_gt_id
13648 AND source_table ='RA';
13649
13650 select count(*)
13651 into l_br_count
13652 from ar_receivable_applications_all ra,
13653 ar_payment_schedules_all pay
13654 where ra.receivable_application_id = l_source_id and
13655 ra.applied_payment_schedule_id = pay.payment_schedule_id and
13656 pay.class ='BR';
13657 EXCEPTION
13658 WHEN NO_DATA_FOUND THEN
13659 NULL;
13660 WHEN OTHERS THEN
13661 IF PG_DEBUG = 'Y' THEN
13662 localdebug(' EXCEPTION: update_from_gt :'||SQLERRM);
13663 END IF;
13664 RAISE;
13665 END;
13666
13667 IF l_br_count > 0 THEN
13668 l_br_flag :='Y';
13669 END IF;
13670
13671
13672 IF p_inv_currency IS NULL THEN
13673 l_inv_currency := g_cust_inv_rec.invoice_currency_code;
13674 ELSE
13675 l_inv_currency := p_inv_currency;
13676 END IF;
13677 --}
13678 g_run_from_amt := 0;
13679 g_run_from_total := 0;
13680 g_run_from_acctd_amt := 0;
13681 g_run_from_acctd_total := 0;
13682
13683 IF p_app_rec.receivable_application_id IS NOT NULL THEN
13684 get_from_currency(p_app_rec => p_app_rec,
13685 x_from_curr_code => l_from_curr_code);
13686
13687 IF l_from_curr_code IS NULL AND p_app_rec.customer_trx_id IS NOT NULL THEN
13688 l_from_curr_code := l_inv_currency;
13689 END IF;
13690 IF PG_DEBUG = 'Y' THEN
13691 localdebug(' l_from_curr_code :'||l_from_curr_code);
13692 END IF;
13693 ELSE
13694 -- No from distribution process required as no receivable_application
13695 RAISE no_from_amount_required;
13696 END IF;
13697
13698 /* Bug7343649 - vavenugo */
13699 /* Check if the application involves BR and if so populate the base amounts using the new logic */
13700 IF l_br_flag <> 'Y' THEN
13701
13702 /* Proceed as usual */
13703
13704 OPEN cu1(l_gt_id);
13705 FETCH cu1 INTO l_pro_base,
13706 l_pro_acctd_base;
13707 IF cu1%NOTFOUND THEN
13708 l_process := 'N';
13709 ELSE
13710 l_process := 'Y';
13711 END IF;
13712 CLOSE cu1;
13713
13714 ELSE
13715
13716 /* Use new the logic */
13717
13718 IF l_source_id is null THEN
13719 l_process := 'N';
13720 ELSE
13721 l_process := 'Y';
13722 END IF;
13723
13724
13725 SELECT amount_applied,acctd_amount_applied_to
13726 INTO l_pro_base, l_pro_acctd_base
13727 from ar_receivable_applications_all
13728 where receivable_application_id = l_source_id;
13729
13730 END IF;
13731 /* End bug7343649 - vavenugo */
13732
13733
13734 IF PG_DEBUG = 'Y' THEN
13735 localdebug(' l_process 1 : '|| l_process);
13736 END IF;
13737
13738 IF l_process = 'Y' THEN
13739
13740 IF PG_DEBUG = 'Y' THEN
13741 localdebug(' l_pro_base : '||l_pro_base);
13742 localdebug(' l_pro_acctd_base : '|| l_pro_acctd_base);
13743 END IF;
13744
13745
13746 UPDATE AR_LINE_APP_DETAIL_GT a
13747 SET(FROM_AMOUNT ,
13748 FROM_ACCTD_AMOUNT ) =
13749 (SELECT DECODE(l_pro_base,0,0,
13750 Accting_Proration_Fct
13751 (AMOUNT,
13752 l_pro_base,
13753 p_from_amt,
13754 p_ae_sys_rec.base_currency,
13755 l_inv_currency,
13756 l_from_curr_code,
13757 'FROM_AMT')),
13758 --{ Use the same base from FROM_ACCTD_AMT as FROM_AMT
13759 -- to avoid round issue
13760 -- DECODE(l_pro_acctd_base,0,0,
13761 -- Accting_Proration_Fct
13762 -- (ACCTD_AMOUNT,
13763 -- l_pro_acctd_base,
13764 -- p_from_acctd_amt,
13765 -- p_ae_sys_rec.base_currency,
13766 -- g_cust_inv_rec.invoice_currency_code,
13767 -- l_from_curr_code,
13768 -- 'FROM_ACCTD_AMT'))
13769 DECODE(l_pro_acctd_base,0,0,
13770 Accting_Proration_Fct
13771 (AMOUNT,
13772 l_pro_base,
13773 p_from_acctd_amt,
13774 p_ae_sys_rec.base_currency,
13775 l_inv_currency,
13776 l_from_curr_code,
13777 'FROM_ACCTD_AMT'))
13778 FROM AR_LINE_APP_DETAIL_GT b
13779 WHERE a.rowid = b.rowid
13780 AND b.gt_id = l_gt_id
13781 AND b.activity_bucket IN
13782 ('APP_LINE','APP_CHRG','APP_TAX','APP_FRT',
13783 'ADJ_LINE','ADJ_TAX','ADJ_CHRG','ADJ_FRT',
13784 'ED_LINE','ED_TAX','ED_CHRG','ED_FRT',
13785 'UNED_LINE','UNED_TAX','UNED_CHRG','UNED_FRT'))
13786 WHERE ( NVL(a.amount,0) <> 0 OR NVL(a.acctd_amount,0) <> 0)
13787 AND a.gt_id = l_gt_id;
13788
13789 END IF;
13790 IF PG_DEBUG = 'Y' THEN
13791 localdebug('arp_det_dist_pkg.update_from_gt()-');
13792 END IF;
13793 EXCEPTION
13794 WHEN no_from_amount_required THEN
13795 IF PG_DEBUG = 'Y' THEN
13796 localdebug(' Handled exception No from distribution process required- probably a adjustment or a CM APP');
13797 END IF;
13798 WHEN OTHERS THEN
13799 IF cu1%ISOPEN THEN CLOSE cu1; END IF;
13800 IF PG_DEBUG = 'Y' THEN
13801 localdebug(' EXCEPTION: update_from_gt :'||SQLERRM);
13802 END IF;
13803 RAISE;
13804 END;
13805
13806
13807
13808 PROCEDURE exec_adj_api_if_required
13809 (p_adj_rec IN ar_adjustments%ROWTYPE,
13810 p_app_rec IN ar_receivable_applications%ROWTYPE,
13811 p_ae_rule_rec IN ae_rule_rec_type,
13812 p_cust_inv_rec IN ra_customer_trx%ROWTYPE)
13813 IS
13814
13815 CURSOR get_group_data_rev IS
13816 SELECT account_class account_class,
13817 SUM(amount) sum_amount,
13818 SUM(acctd_amount) sum_acctd_amount,
13819 COUNT(account_class) count
13820 FROM ra_cust_trx_line_gl_dist
13821 WHERE customer_trx_id = p_cust_inv_rec.customer_trx_id
13822 AND account_class IN ('UNEARN','UNBILL')
13823 GROUP BY account_class;
13824
13825 l_account_class VARCHAR2(30);
13826 l_sum_amount NUMBER;
13827 l_sum_acctd_amount NUMBER;
13828 l_count NUMBER;
13829
13830 l_rev_adj_rec AR_Revenue_Adjustment_PVT.Rev_Adj_Rec_Type;
13831 l_adj_id NUMBER;
13832 l_dist_count NUMBER;
13833 l_adj_number ar_adjustments.adjustment_number%TYPE;
13834 l_ra_dist_tbl AR_Revenue_Adjustment_PVT.RA_Dist_Tbl_Type;
13835
13836 l_return_status VARCHAR2(1);
13837 l_msg_count NUMBER;
13838 l_msg_data VARCHAR2(2000);
13839 l_mesg VARCHAR2(2000) := '';
13840 ram_api_error EXCEPTION;
13841
13842 BEGIN
13843 IF PG_DEBUG = 'Y' THEN
13844 localdebug('arp_det_dist_pkg.exec_adj_api_if_required()+');
13845 localdebug(' p_adj_rec.adjustment_id :' || p_adj_rec.adjustment_id);
13846 localdebug(' p_app_rec.receivable_application_id:' || p_app_rec.receivable_application_id);
13847 localdebug(' p_cust_inv_rec.customer_trx_id :' || p_cust_inv_rec.customer_trx_id);
13848 END IF;
13849
13850 OPEN get_group_data_rev;
13851 FETCH get_group_data_rev INTO l_account_class,
13852 l_sum_amount,
13853 l_sum_acctd_amount,
13854 l_count;
13855
13856 IF get_group_data_rev%NOTFOUND THEN
13857 -- Normal invoice
13858 NULL;
13859 ELSE
13860 IF PG_DEBUG = 'Y' THEN
13861 localdebug(' l_sum_amount :' || l_sum_amount);
13862 localdebug(' l_sum_acctd_amount :' || l_sum_acctd_amount);
13863 END IF;
13864
13865 IF ((l_sum_amount <> 0) OR (l_sum_acctd_amount <> 0)) THEN
13866 --
13867 --condition as to whether the RAM api will require to be called if gl account
13868 --source is revenue on invoice
13869 --
13870 IF (((p_adj_rec.adjustment_id IS NOT NULL)
13871 AND (p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE')
13872 AND (((nvl(p_adj_rec.line_adjusted,0) + nvl(p_adj_rec.freight_adjusted,0) +
13873 nvl(p_adj_rec.receivables_charges_adjusted,0)) <> 0)
13874 OR ((p_ae_rule_rec.tax_code_source1 = 'NONE') AND (nvl(p_adj_rec.tax_adjusted,0) <> 0))
13875 ))
13876 OR
13877 ((p_app_rec.receivable_application_id IS NOT NULL)
13878 AND (((p_ae_rule_rec.gl_account_source1 = 'REVENUE_ON_INVOICE')
13879 AND (((nvl(p_app_rec.line_ediscounted,0) + nvl(p_app_rec.freight_ediscounted,0) +
13880 nvl(p_app_rec.charges_ediscounted,0)) <> 0)
13881 OR ((p_ae_rule_rec.tax_code_source1 = 'NONE') AND (nvl(p_app_rec.tax_ediscounted,0) <> 0))
13882 ))
13883 OR
13884 ((p_ae_rule_rec.gl_account_source2 = 'REVENUE_ON_INVOICE')
13885 AND (((nvl(p_app_rec.line_uediscounted,0) + nvl(p_app_rec.freight_uediscounted,0) +
13886 nvl(p_app_rec.charges_uediscounted,0)) <> 0)
13887 OR ((p_ae_rule_rec.tax_code_source2 = 'NONE') AND (nvl(p_app_rec.tax_uediscounted,0) <> 0))
13888 ))
13889 ))
13890 )
13891 THEN --call revenue adjustment api
13892
13893 /*----------------------------------------------------------------------------+
13894 | Call the revenue adjustment api to derive the revenue distributions on the |
13895 | fly, to allocate the amounts for gl account source = revenue on Invoice. |
13896 +----------------------------------------------------------------------------*/
13897 l_rev_adj_rec.customer_trx_id := p_cust_inv_rec.customer_trx_id;
13898 l_rev_adj_rec.reason_code := 'ACCOUNTING';
13899
13900 IF PG_DEBUG = 'Y' THEN
13901 localdebug(' Calling AR_Revenue_Adjustment_PVT.Earn_Revenue ');
13902 END IF;
13903
13904 AR_Revenue_Adjustment_PVT.Earn_Revenue
13905 ( p_api_version => 2
13906 ,p_init_msg_list => FND_API.G_TRUE
13907 ,p_commit => FND_API.G_FALSE
13908 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
13909 ,x_return_status => l_return_status
13910 ,x_msg_count => l_msg_count
13911 ,x_msg_data => l_msg_data
13912 ,p_rev_adj_rec => l_rev_adj_rec
13913 ,x_adjustment_id => l_adj_id
13914 ,x_adjustment_number => l_adj_number
13915 ,x_dist_count => l_dist_count
13916 ,x_ra_dist_tbl => l_ra_dist_tbl);
13917
13918
13919 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
13920
13921 IF l_msg_count > 1 THEN
13922 fnd_msg_pub.reset;
13923 --get only the first message from the api message stack for forms users
13924 l_mesg := fnd_msg_pub.get(p_encoded=>FND_API.G_FALSE);
13925 ELSE
13926 l_mesg := l_msg_data;
13927 END IF;
13928
13929 localdebug(' l_mesg :' || l_mesg);
13930
13931 --Now set the message token
13932 FND_MESSAGE.SET_NAME('AR', 'GENERIC_MESSAGE');
13933 FND_MESSAGE.SET_TOKEN('GENERIC_TEXT', l_mesg);
13934
13935 RAISE ram_api_error;
13936
13937 END IF; --rev adj gl dist table exists and success from api
13938
13939 END IF;
13940
13941 END IF;
13942
13943 END IF;
13944 IF PG_DEBUG = 'Y' THEN
13945 localdebug('arp_det_dist_pkg.exec_adj_api_if_required()-');
13946 END IF;
13947 EXCEPTION
13948 WHEN ram_api_error THEN
13949 IF PG_DEBUG = 'Y' THEN
13950 localdebug('ram_api_error - exec_adj_api_if_required :'||l_mesg );
13951 END IF;
13952 RAISE;
13953 WHEN OTHERS THEN
13954 IF PG_DEBUG = 'Y' THEN
13955 localdebug('EXCEPTION: exec_adj_api_if_required :'||SQLERRM);
13956 END IF;
13957 RAISE;
13958 END;
13959
13960
13961 PROCEDURE exec_revrec_if_required
13962 ( p_customer_trx_id IN ra_customer_trx.customer_trx_id%TYPE,
13963 p_app_rec IN ar_receivable_applications%ROWTYPE,
13964 p_adj_rec IN ar_adjustments%ROWTYPE)
13965 IS
13966 CURSOR c1 IS
13967 SELECT ctl.customer_trx_id
13968 FROM ra_customer_trx_lines ctl
13969 WHERE ctl.customer_trx_id = p_customer_trx_id
13970 AND ctl.autorule_complete_flag||'' = 'N'
13971 GROUP BY ctl.customer_trx_id;
13972 l_dummy NUMBER;
13973 l_rev_rec_req BOOLEAN;
13974 l_sum_dist NUMBER;
13975 BEGIN
13976 IF PG_DEBUG = 'Y' THEN
13977 localdebug('arp_det_dist_pkg.exec_revrec_if_required()+');
13978 localdebug(' p_customer_trx_id :' || p_customer_trx_id);
13979 localdebug(' p_app_rec.receivable_application_id :' || p_app_rec.receivable_application_id);
13980 localdebug(' p_adj_rec.adjustment_id :' || p_adj_rec.adjustment_id);
13981
13982 localdebug(' Check whether Rev Recognition is to be Run');
13983 END IF;
13984 OPEN c1;
13985 FETCH c1 INTO l_dummy;
13986 IF c1%NOTFOUND THEN
13987 IF PG_DEBUG = 'Y' THEN
13988 localdebug(' No need to run rev rec for trx_id :' || p_customer_trx_id);
13989 END IF;
13990 l_rev_rec_req := FALSE;
13991 ELSE
13992 IF PG_DEBUG = 'Y' THEN
13993 localdebug(' Need to run rev rec for trx_id :' || p_customer_trx_id);
13994 END IF;
13995 l_rev_rec_req := TRUE;
13996 END IF;
13997 CLOSE c1;
13998
13999 IF l_rev_rec_req THEN
14000 IF PG_DEBUG = 'Y' THEN
14001 localdebug(' Executing Rev Rec - calling ARP_AUTO_RULE.create_distributions');
14002 END IF;
14003 l_sum_dist := ARP_AUTO_RULE.create_distributions
14004 ( p_commit => 'N',
14005 p_debug => 'N',
14006 p_trx_id => p_customer_trx_id);
14007 IF PG_DEBUG = 'Y' THEN
14008 localdebug(' Completed running revenue recognition for Transaction');
14009 END IF;
14010 END IF;
14011 IF PG_DEBUG = 'Y' THEN
14012 localdebug( 'arp_det_dist_pkg.exec_revrec_if_required()-');
14013 END IF;
14014 EXCEPTION
14015 WHEN OTHERS THEN
14016 IF PG_DEBUG = 'Y' THEN
14017 localdebug( 'EXCEPTION OTHERS exec_revrec_if_required :'||SQLERRM);
14018 END IF;
14019 RAISE;
14020 END;
14021
14022
14023 PROCEDURE exec_revrec_if_required
14024 (p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_TRUE
14025 ,p_mode IN VARCHAR2 DEFAULT 'TRANSACTION'
14026 ,p_customer_trx_id IN NUMBER DEFAULT NULL
14027 ,p_request_id IN NUMBER DEFAULT NULL
14028 ,x_sum_dist OUT NOCOPY NUMBER
14029 ,x_return_status OUT NOCOPY VARCHAR2
14030 ,x_msg_count OUT NOCOPY NUMBER
14031 ,x_msg_data OUT NOCOPY VARCHAR2)
14032 IS
14033 CURSOR c1(p_customer_trx_id IN NUMBER) IS
14034 SELECT ctl.customer_trx_id
14035 FROM ra_customer_trx_lines ctl
14036 WHERE ctl.customer_trx_id = p_customer_trx_id
14037 AND ctl.autorule_complete_flag||'' = 'N'
14038 GROUP BY ctl.customer_trx_id;
14039
14040 CURSOR c_trx_number(p_customer_trx_id IN NUMBER) IS
14041 SELECT ct.trx_number
14042 FROM ra_customer_trx ct
14043 WHERE ct.customer_trx_id = p_customer_trx_id;
14044
14045 l_message VARCHAR2(2000);
14046 l_trx_number VARCHAR2(20);
14047 l_dummy NUMBER;
14048 l_rev_rec_req BOOLEAN;
14049 wrong_parameter EXCEPTION;
14050 BEGIN
14051 IF PG_DEBUG = 'Y' THEN
14052 localdebug('arp_det_dist_pkg.exec_revrec_if_required()+');
14053 localdebug(' p_mode :' || p_mode);
14054 localdebug(' p_customer_trx_id :' || p_customer_trx_id);
14055 localdebug(' p_request_id :' || p_request_id);
14056 END IF;
14057
14058 x_return_status := FND_API.G_RET_STS_SUCCESS;
14059
14060 IF FND_API.to_Boolean(p_init_msg_list) THEN
14061 FND_MSG_PUB.initialize;
14062 END IF;
14063
14064 IF p_mode <> 'TRANSACTION' THEN
14065 x_msg_data := 'Only transaction mode is supported currently.
14066 ';
14067 x_msg_count := 1;
14068 x_return_status := FND_API.G_RET_STS_ERROR;
14069 END IF;
14070
14071 IF p_mode = 'TRANSACTION' AND p_customer_trx_id IS NULL THEN
14072 x_msg_data := x_msg_data||'The p_customer_trx_id is required, currently it is passed as null.
14073 ';
14074 x_msg_count := 1;
14075 x_return_status := FND_API.G_RET_STS_ERROR;
14076 END IF;
14077
14078 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
14079 RAISE wrong_parameter;
14080 END IF;
14081
14082
14083 IF PG_DEBUG = 'Y' THEN
14084 localdebug(' Check whether Rev Recognition is to be Run');
14085 END IF;
14086 OPEN c1(p_customer_trx_id);
14087 FETCH c1 INTO l_dummy;
14088 IF c1%NOTFOUND THEN
14089 IF PG_DEBUG = 'Y' THEN
14090 localdebug(' No need to run rev rec for trx_id :' || p_customer_trx_id);
14091 END IF;
14092 l_rev_rec_req := FALSE;
14093 ELSE
14094 IF PG_DEBUG = 'Y' THEN
14095 localdebug(' Need to run rev rec for trx_id :' || p_customer_trx_id);
14096 END IF;
14097 l_rev_rec_req := TRUE;
14098 END IF;
14099 CLOSE c1;
14100
14101
14102 IF l_rev_rec_req THEN
14103 IF PG_DEBUG = 'Y' THEN
14104 localdebug(' Executing Rev Rec - calling ARP_AUTO_RULE.create_distributions');
14105 END IF;
14106 x_sum_dist := ARP_AUTO_RULE.create_distributions
14107 ( p_commit => 'N',
14108 p_debug => 'N',
14109 p_trx_id => p_customer_trx_id);
14110 IF x_sum_dist < 0 THEN
14111 OPEN c_trx_number(p_customer_trx_id);
14112 FETCH c_trx_number INTO l_trx_number;
14113 CLOSE c_trx_number;
14114 FND_MESSAGE.SET_NAME( 'AR', 'AR_AUTORULE_ERROR' );
14115 FND_MESSAGE.SET_TOKEN( 'TRX_NUMBER', l_trx_number );
14116 FND_MSG_PUB.ADD;
14117 x_return_status := FND_API.G_RET_STS_ERROR;
14118 END IF;
14119 IF PG_DEBUG = 'Y' THEN
14120 localdebug(' Completed running revenue recognition for Transaction');
14121 END IF;
14122 END IF;
14123
14124 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
14125 RAISE fnd_api.G_EXC_ERROR;
14126 END IF;
14127 IF PG_DEBUG = 'Y' THEN
14128 localdebug( 'arp_det_dist_pkg.exec_revrec_if_required()-');
14129 END IF;
14130 EXCEPTION
14131 WHEN fnd_api.G_EXC_ERROR THEN
14132 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
14133 p_count => x_msg_count,
14134 p_data => x_msg_data);
14135
14136 WHEN wrong_parameter THEN localdebug(x_msg_count);
14137
14138 WHEN OTHERS THEN
14139 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
14140 x_msg_count := NVL(x_msg_count,0) + 1;
14141 x_msg_data :='EXCEPTION OTHERS exec_revrec_if_required :'||SQLERRM ;
14142 IF PG_DEBUG = 'Y' THEN
14143 localdebug(x_msg_data );
14144 END IF;
14145 END;
14146
14147 PROCEDURE update_taxable
14148 (p_gt_id IN VARCHAR2,
14149 p_customer_trx_id IN NUMBER,
14150 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
14151 IS
14152 CURSOR c_read_for_taxable IS
14153 select
14154 GROUPE ,
14155 -- ADJ and APP
14156 -- Base
14157 base_pro_amt ,
14158 base_pro_acctd_amt ,
14159 BASE_FRT_PRO_AMT ,
14160 BASE_FRT_PRO_ACCTD_AMT ,
14161 sum(ELMT_TAX_PRO_AMT) over (partition by groupe) BASE_TAX_PRO_AMT ,
14162 sum(ELMT_TAX_PRO_ACCTD_AMT) over (partition by groupe) BASE_TAX_PRO_ACCTD_AMT ,
14163 BASE_CHRG_PRO_AMT ,
14164 BASE_CHRG_PRO_ACCTD_AMT ,
14165 -- Element numerator
14166 elmt_pro_amt ,
14167 elmt_pro_acctd_amt ,
14168 ELMT_FRT_PRO_AMT ,
14169 ELMT_FRT_PRO_ACCTD_AMT ,
14170 ELMT_TAX_PRO_AMT,
14171 ELMT_TAX_PRO_ACCTD_AMT ,
14172 ELMT_CHRG_PRO_AMT ,
14173 ELMT_CHRG_PRO_ACCTD_AMT ,
14174 -- Amount to be allocated
14175 buc_alloc_amt ,
14176 buc_alloc_acctd_amt,
14177 buc_frt_alloc_amt ,
14178 buc_frt_alloc_acctd_amt,
14179 buc_tax_alloc_amt ,
14180 buc_tax_alloc_acctd_amt,
14181 buc_chrg_alloc_amt ,
14182 buc_chrg_alloc_acctd_amt,
14183 -- ED
14184 -- Base
14185 base_ed_pro_amt ,
14186 base_ed_pro_acctd_amt ,
14187 BASE_ed_FRT_PRO_AMT ,
14188 BASE_ed_FRT_PRO_ACCTD_AMT ,
14189 sum(ELMT_ed_TAX_PRO_AMT) over (partition by groupe) BASE_ed_TAX_PRO_AMT ,
14190 sum(ELMT_ed_TAX_PRO_ACCTD_AMT) over (partition by groupe) BASE_ed_TAX_PRO_ACCTD_AMT ,
14191 BASE_ed_CHRG_PRO_AMT ,
14192 BASE_ed_CHRG_PRO_ACCTD_AMT ,
14193 -- Element numerator
14194 elmt_ed_pro_amt ,
14195 elmt_ed_pro_acctd_amt ,
14196 ELMT_ed_FRT_PRO_AMT ,
14197 ELMT_ed_FRT_PRO_ACCTD_AMT ,
14198 ELMT_ed_TAX_PRO_AMT ,
14199 ELMT_ed_TAX_PRO_ACCTD_AMT ,
14200 ELMT_ed_CHRG_PRO_AMT ,
14201 ELMT_ed_CHRG_PRO_ACCTD_AMT ,
14202 -- Amount to be allocated
14203 buc_ed_alloc_amt ,
14204 buc_ed_alloc_acctd_amt,
14205 buc_ed_frt_alloc_amt ,
14206 buc_ed_frt_alloc_acctd_amt,
14207 buc_ed_tax_alloc_amt ,
14208 buc_ed_tax_alloc_acctd_amt,
14209 buc_ed_chrg_alloc_amt ,
14210 buc_ed_chrg_alloc_acctd_amt,
14211 -- UNED
14212 -- Base
14213 base_uned_pro_amt ,
14214 base_uned_pro_acctd_amt ,
14215 BASE_uned_FRT_PRO_AMT ,
14216 BASE_uned_FRT_PRO_ACCTD_AMT ,
14217 sum(ELMT_uned_TAX_PRO_AMT) over (partition by groupe) BASE_uned_TAX_PRO_AMT ,
14218 sum(ELMT_uned_TAX_PRO_ACCTD_AMT) over (partition by groupe) BASE_uned_TAX_PRO_ACCTD_AMT ,
14219 BASE_uned_CHRG_PRO_AMT ,
14220 BASE_uned_CHRG_PRO_ACCTD_AMT ,
14221 -- Element numerator
14222 elmt_uned_pro_amt ,
14223 elmt_uned_pro_acctd_amt ,
14224 ELMT_uned_FRT_PRO_AMT ,
14225 ELMT_uned_FRT_PRO_ACCTD_AMT ,
14226 ELMT_uned_TAX_PRO_AMT ,
14227 ELMT_uned_TAX_PRO_ACCTD_AMT ,
14228 ELMT_uned_CHRG_PRO_AMT ,
14229 ELMT_uned_CHRG_PRO_ACCTD_AMT ,
14230 -- Amount to be allocated
14231 buc_uned_alloc_amt ,
14232 buc_uned_alloc_acctd_amt,
14233 buc_uned_frt_alloc_amt ,
14234 buc_uned_frt_alloc_acctd_amt,
14235 buc_uned_tax_alloc_amt ,
14236 buc_uned_tax_alloc_acctd_amt,
14237 buc_uned_chrg_alloc_amt ,
14238 buc_uned_chrg_alloc_acctd_amt,
14239 --
14240 BASE_CURRENCY ,
14241 TO_CURRENCY ,
14242 FROM_CURRENCY ,
14243 --
14244 rowid
14245 from (SELECT /*+INDEX (AR_LINE_APP_DETAIL_GT AR_LINE_APP_DETAIL_GT_N1)*/
14246 tax_link_id groupe,
14247 -- ADJ and APP
14248 --Base
14249 0 base_pro_amt, --Base for Revenue distributions
14250 0 base_pro_acctd_amt,
14251 0 BASE_FRT_PRO_AMT, --Base for freight distributions
14252 0 BASE_FRT_PRO_ACCTD_AMT,
14253 0 BASE_CHRG_PRO_AMT, --Base for charge distributions
14254 0 BASE_CHRG_PRO_ACCTD_AMT,
14255 --Element
14256 0 elmt_pro_amt, --Element for Revenue distributions
14257 0 elmt_pro_acctd_amt,
14258 0 ELMT_FRT_PRO_AMT, --Element for freight distributions
14259 0 ELMT_FRT_PRO_ACCTD_AMT,
14260 DECODE(activity_bucket||ref_account_class, 'ADJ_TAXTAX',
14261 DECODE(SUM(DECODE(activity_bucket,'APP_TAX', amount, 'ADJ_TAX', amount, 0))
14262 OVER (PARTITION BY tax_link_id ), 0, 1,
14263 DECODE(activity_bucket,'APP_TAX', amount, 'ADJ_TAX', amount, 0)),
14264 DECODE(activity_bucket,'APP_TAX', amount, 'ADJ_TAX', amount, 0)
14265 ) ELMT_TAX_PRO_AMT, --Element for tax distributions
14266 DECODE(activity_bucket||ref_account_class, 'ADJ_TAXTAX',
14267 DECODE(SUM(DECODE(activity_bucket,'APP_TAX', acctd_amount, 'ADJ_TAX', acctd_amount, 0))
14268 OVER (PARTITION BY tax_link_id ), 0, 1,
14269 DECODE(activity_bucket,'APP_TAX', acctd_amount, 'ADJ_TAX', acctd_amount, 0)),
14270 DECODE(activity_bucket,'APP_TAX', acctd_amount, 'ADJ_TAX', acctd_amount, 0)
14271 ) ELMT_TAX_PRO_ACCTD_AMT,
14272 0 ELMT_CHRG_PRO_AMT, --Element for charge distributions
14273 0 ELMT_CHRG_PRO_ACCTD_AMT,
14274 --Amount to be allocated
14275 0 buc_alloc_amt, --Allocation for Revenue distributions
14276 0 buc_alloc_acctd_amt,
14277 0 buc_frt_alloc_amt, --Allocation for freight distributions
14278 0 buc_frt_alloc_acctd_amt,
14279 SUM(DECODE(activity_bucket,'APP_LINE',amount,
14280 'ADJ_LINE',amount,
14281 'APP_CHRG',amount,
14282 'ADJ_CHRG',amount,
14283 'APP_FRT' ,amount,
14284 'ADJ_FRT' ,amount, 0))
14285 OVER (PARTITION BY tax_link_id ) buc_tax_alloc_amt, -- Allocation for app and adj
14286 -- taxable from the revenue distribution
14287 SUM(DECODE(activity_bucket,'APP_LINE',acctd_amount,
14288 'ADJ_LINE',acctd_amount,
14289 'APP_CHRG',acctd_amount,
14290 'ADJ_CHRG',acctd_amount,
14291 'APP_FRT' ,acctd_amount,
14292 'ADJ_FRT' ,acctd_amount, 0))
14293 OVER (PARTITION BY tax_link_id ) buc_tax_alloc_acctd_amt,
14294 0 buc_chrg_alloc_amt, --Allocation for charge distributions
14295 0 buc_chrg_alloc_acctd_amt,
14296 -- ED
14297 --Base
14298 0 base_ed_pro_amt, --Base ED on Rev
14299 0 base_ed_pro_acctd_amt,
14300 0 BASE_ed_FRT_PRO_AMT, --Base ED on Freight HYUFR
14301 0 BASE_ed_FRT_PRO_ACCTD_AMT,
14302 0 BASE_ed_CHRG_PRO_AMT, --Base ED on Charge
14303 0 BASE_ed_CHRG_PRO_ACCTD_AMT,
14304 --Element
14305 0 elmt_ed_pro_amt, --Element ED on Rev
14306 0 elmt_ed_pro_acctd_amt,
14307 0 ELMT_ed_FRT_PRO_AMT, --Element ED on Freight
14308 0 ELMT_ed_FRT_PRO_ACCTD_AMT,
14309 DECODE(activity_bucket||ref_account_class, 'ED_TAXTAX',
14310 DECODE(SUM(DECODE(activity_bucket,'ED_TAX', amount, 0))
14311 OVER (PARTITION BY tax_link_id ), 0, 1,
14312 DECODE(activity_bucket,'ED_TAX', amount, 0)),
14313 DECODE(activity_bucket,'ED_TAX', amount, 0)
14314 ) ELMT_ed_TAX_PRO_AMT, --Element ED on Tax HYUFRTAX
14315 DECODE(activity_bucket||ref_account_class, 'ED_TAXTAX',
14316 DECODE(SUM(DECODE(activity_bucket,'ED_TAX', acctd_amount, 0))
14317 OVER (PARTITION BY tax_link_id ), 0, 1,
14318 DECODE(activity_bucket,'ED_TAX', acctd_amount, 0)),
14319 DECODE(activity_bucket,'ED_TAX', acctd_amount, 0)
14320 ) ELMT_ed_TAX_PRO_ACCTD_AMT,
14321 0 ELMT_ed_CHRG_PRO_AMT, --Element ED on Charge
14322 0 ELMT_ed_CHRG_PRO_ACCTD_AMT,
14323 --Amount to be allocated
14324 0 buc_ed_alloc_amt, --Allocation ED on Rev
14325 0 buc_ed_alloc_acctd_amt,
14326 0 buc_ed_frt_alloc_amt, --Allocation ED on Freight
14327 0 buc_ed_frt_alloc_acctd_amt,
14328 SUM(DECODE(activity_bucket,'ED_LINE', amount,
14329 'ED_CHRG', amount,
14330 'ED_FRT' , amount,0))
14331 OVER (PARTITION BY tax_link_id ) buc_ed_tax_alloc_amt, --Allocation ED on Tax by the rev ed
14332 SUM(DECODE(activity_bucket,'ED_LINE', acctd_amount,
14333 'ED_CHRG', acctd_amount,
14334 'ED_FRT' , acctd_amount,0))
14335 OVER (PARTITION BY tax_link_id ) buc_ed_tax_alloc_acctd_amt,
14336 0 buc_ed_chrg_alloc_amt,
14337 0 buc_ed_chrg_alloc_acctd_amt,
14338 -- UNED
14339 --Base
14340 0 base_uned_pro_amt,
14341 0 base_uned_pro_acctd_amt,
14342 0 BASE_uned_FRT_PRO_AMT,
14343 0 BASE_uned_FRT_PRO_ACCTD_AMT,
14344 0 BASE_uned_CHRG_PRO_AMT,
14345 0 BASE_uned_CHRG_PRO_ACCTD_AMT,
14346 --Element
14347 0 elmt_uned_pro_amt,
14348 0 elmt_uned_pro_acctd_amt,
14349 0 ELMT_uned_FRT_PRO_AMT,
14350 0 ELMT_uned_FRT_PRO_ACCTD_AMT,
14351 DECODE(activity_bucket||ref_account_class, 'UNED_TAXTAX',
14352 DECODE(SUM(DECODE(activity_bucket,'UNED_TAX', amount, 0))
14353 OVER (PARTITION BY tax_link_id ), 0, 1,
14354 DECODE(activity_bucket,'UNED_TAX', amount, 0)),
14355 DECODE(activity_bucket,'UNED_TAX', amount, 0)
14356 ) ELMT_uned_TAX_PRO_AMT, --Element ED on Tax HYUFRTAX
14357 DECODE(activity_bucket||ref_account_class, 'UNED_TAXTAX',
14358 DECODE(SUM(DECODE(activity_bucket,'UNED_TAX', acctd_amount, 0))
14359 OVER (PARTITION BY tax_link_id ), 0, 1,
14360 DECODE(activity_bucket,'UNED_TAX', acctd_amount, 0)),
14361 DECODE(activity_bucket,'UNED_TAX', acctd_amount, 0)
14362 ) ELMT_uned_TAX_PRO_ACCTD_AMT,
14363 0 ELMT_uned_CHRG_PRO_AMT,
14364 0 ELMT_uned_CHRG_PRO_ACCTD_AMT,
14365 --Amount to be allocated
14366 0 buc_uned_alloc_amt,
14367 0 buc_uned_alloc_acctd_amt,
14368 0 buc_uned_frt_alloc_amt,
14369 0 buc_uned_frt_alloc_acctd_amt,
14370 SUM(DECODE(activity_bucket,'UNED_LINE', amount,
14371 'UNED_CHRG', amount,
14372 'UNED_FRT' , amount,0))
14373 OVER (PARTITION BY tax_link_id ) buc_uned_tax_alloc_amt, --Allocation ED on Tax by the rev ed
14374 SUM(DECODE(activity_bucket,'UNED_LINE', acctd_amount,
14375 'UNED_CHRG', acctd_amount,
14376 'UNED_FRT' , acctd_amount,0))
14377 OVER (PARTITION BY tax_link_id ) buc_uned_tax_alloc_acctd_amt,
14378 0 buc_uned_chrg_alloc_amt,
14379 0 buc_uned_chrg_alloc_acctd_amt,
14380 --Currencies
14381 p_ae_sys_rec.base_currency BASE_CURRENCY ,
14382 g_cust_inv_rec.invoice_currency_code TO_CURRENCY ,
14383 '' FROM_CURRENCY , --Not usefull in this case as taxable is not calculated with from currency
14384 -- Rowid
14385 rowid
14386 FROM AR_LINE_APP_DETAIL_GT
14387 WHERE gt_id = p_gt_id
14388 AND ref_customer_trx_id = p_customer_trx_id
14389 AND tax_link_id IS NOT NULL
14390 AND DECODE(ref_account_class,'REV' ,tax_inc_flag,
14391 'FREIGHT',tax_inc_flag,
14392 'TAX','Y','N') = 'Y');
14393 -- AND se_gt_id = g_se_gt_id
14394 -- ORDER BY line_type||'-'||ref_customer_trx_id||'-'||ref_customer_trx_line_id;
14395
14396 l_tab pro_res_tbl_type;
14397
14398 l_group_tbl group_tbl_type;
14399 l_group VARCHAR2(60) := 'NOGROUP';
14400
14401 -- ADJ and APP
14402 l_run_amt NUMBER := 0;
14403 l_run_alloc NUMBER := 0;
14404 l_run_acctd_amt NUMBER := 0;
14405 l_run_acctd_alloc NUMBER := 0;
14406 l_alloc NUMBER := 0;
14407 l_acctd_alloc NUMBER := 0;
14408
14409 l_run_chrg_amt NUMBER := 0;
14410 l_run_chrg_alloc NUMBER := 0;
14411 l_run_chrg_acctd_amt NUMBER := 0;
14412 l_run_chrg_acctd_alloc NUMBER := 0;
14413 l_chrg_alloc NUMBER := 0;
14414 l_chrg_acctd_alloc NUMBER := 0;
14415
14416 l_run_frt_amt NUMBER := 0;
14417 l_run_frt_alloc NUMBER := 0;
14418 l_run_frt_acctd_amt NUMBER := 0;
14419 l_run_frt_acctd_alloc NUMBER := 0;
14420 l_frt_alloc NUMBER := 0;
14421 l_frt_acctd_alloc NUMBER := 0;
14422
14423 l_run_tax_amt NUMBER := 0;
14424 l_run_tax_alloc NUMBER := 0;
14425 l_run_tax_acctd_amt NUMBER := 0;
14426 l_run_tax_acctd_alloc NUMBER := 0;
14427 l_tax_alloc NUMBER := 0;
14428 l_tax_acctd_alloc NUMBER := 0;
14429
14430 -- ED
14431 l_run_ed_amt NUMBER := 0;
14432 l_run_ed_alloc NUMBER := 0;
14433 l_run_ed_acctd_amt NUMBER := 0;
14434 l_run_ed_acctd_alloc NUMBER := 0;
14435 l_ed_alloc NUMBER := 0;
14436 l_ed_acctd_alloc NUMBER := 0;
14437
14438 l_run_ed_chrg_amt NUMBER := 0;
14439 l_run_ed_chrg_alloc NUMBER := 0;
14440 l_run_ed_chrg_acctd_amt NUMBER := 0;
14441 l_run_ed_chrg_acctd_alloc NUMBER := 0;
14442 l_ed_chrg_alloc NUMBER := 0;
14443 l_ed_chrg_acctd_alloc NUMBER := 0;
14444
14445 l_run_ed_frt_amt NUMBER := 0;
14446 l_run_ed_frt_alloc NUMBER := 0;
14447 l_run_ed_frt_acctd_amt NUMBER := 0;
14448 l_run_ed_frt_acctd_alloc NUMBER := 0;
14449 l_ed_frt_alloc NUMBER := 0;
14450 l_ed_frt_acctd_alloc NUMBER := 0;
14451
14452 l_run_ed_tax_amt NUMBER := 0;
14453 l_run_ed_tax_alloc NUMBER := 0;
14454 l_run_ed_tax_acctd_amt NUMBER := 0;
14455 l_run_ed_tax_acctd_alloc NUMBER := 0;
14456 l_ed_tax_alloc NUMBER := 0;
14457 l_ed_tax_acctd_alloc NUMBER := 0;
14458
14459 -- UNED
14460 l_run_uned_amt NUMBER := 0;
14461 l_run_uned_alloc NUMBER := 0;
14462 l_run_uned_acctd_amt NUMBER := 0;
14463 l_run_uned_acctd_alloc NUMBER := 0;
14464 l_uned_alloc NUMBER := 0;
14465 l_uned_acctd_alloc NUMBER := 0;
14466
14467 l_run_uned_chrg_amt NUMBER := 0;
14468 l_run_uned_chrg_alloc NUMBER := 0;
14469 l_run_uned_chrg_acctd_amt NUMBER := 0;
14470 l_run_uned_chrg_acctd_alloc NUMBER := 0;
14471 l_uned_chrg_alloc NUMBER := 0;
14472 l_uned_chrg_acctd_alloc NUMBER := 0;
14473
14474 l_run_uned_frt_amt NUMBER := 0;
14475 l_run_uned_frt_alloc NUMBER := 0;
14476 l_run_uned_frt_acctd_amt NUMBER := 0;
14477 l_run_uned_frt_acctd_alloc NUMBER := 0;
14478 l_uned_frt_alloc NUMBER := 0;
14479 l_uned_frt_acctd_alloc NUMBER := 0;
14480
14481 l_run_uned_tax_amt NUMBER := 0;
14482 l_run_uned_tax_alloc NUMBER := 0;
14483 l_run_uned_tax_acctd_amt NUMBER := 0;
14484 l_run_uned_tax_acctd_alloc NUMBER := 0;
14485 l_uned_tax_alloc NUMBER := 0;
14486 l_uned_tax_acctd_alloc NUMBER := 0;
14487
14488 l_exist BOOLEAN;
14489 l_last_fetch BOOLEAN;
14490
14491 BEGIN
14492 IF PG_DEBUG = 'Y' THEN
14493 localdebug('arp_det_dist_pkg.update_tax()+');
14494 localdebug(' p_ae_sys_rec.set_of_books_id');
14495 localdebug(' p_ae_sys_rec.sob_type');
14496 END IF;
14497 OPEN c_read_for_taxable;
14498 LOOP
14499 FETCH c_read_for_taxable BULK COLLECT INTO
14500 l_tab.GROUPE ,
14501 -- ADJ and APP
14502 -- Base
14503 l_tab.base_pro_amt ,
14504 l_tab.base_pro_acctd_amt ,
14505 l_tab.BASE_FRT_PRO_AMT ,
14506 l_tab.BASE_FRT_PRO_ACCTD_AMT ,
14507 l_tab.BASE_TAX_PRO_AMT ,
14508 l_tab.BASE_TAX_PRO_ACCTD_AMT ,
14509 l_tab.BASE_CHRG_PRO_AMT ,
14510 l_tab.BASE_CHRG_PRO_ACCTD_AMT ,
14511 -- Element numerator
14512 l_tab.elmt_pro_amt ,
14513 l_tab.elmt_pro_acctd_amt ,
14514 l_tab.ELMT_FRT_PRO_AMT ,
14515 l_tab.ELMT_FRT_PRO_ACCTD_AMT ,
14516 l_tab.ELMT_TAX_PRO_AMT ,
14517 l_tab.ELMT_TAX_PRO_ACCTD_AMT ,
14518 l_tab.ELMT_CHRG_PRO_AMT ,
14519 l_tab.ELMT_CHRG_PRO_ACCTD_AMT ,
14520 -- Amount to be allocated
14521 l_tab.buc_alloc_amt ,
14522 l_tab.buc_alloc_acctd_amt,
14523 l_tab.buc_frt_alloc_amt ,
14524 l_tab.buc_frt_alloc_acctd_amt,
14525 l_tab.buc_tax_alloc_amt ,
14526 l_tab.buc_tax_alloc_acctd_amt,
14527 l_tab.buc_chrg_alloc_amt ,
14528 l_tab.buc_chrg_alloc_acctd_amt,
14529 -- ED
14530 -- Base
14531 l_tab.base_ed_pro_amt ,
14532 l_tab.base_ed_pro_acctd_amt ,
14533 l_tab.BASE_ed_FRT_PRO_AMT ,
14534 l_tab.BASE_ed_FRT_PRO_ACCTD_AMT ,
14535 l_tab.BASE_ed_TAX_PRO_AMT ,
14536 l_tab.BASE_ed_TAX_PRO_ACCTD_AMT ,
14537 l_tab.BASE_ed_CHRG_PRO_AMT ,
14538 l_tab.BASE_ed_CHRG_PRO_ACCTD_AMT ,
14539 -- Element numerator
14540 l_tab.elmt_ed_pro_amt ,
14541 l_tab.elmt_ed_pro_acctd_amt ,
14542 l_tab.ELMT_ed_FRT_PRO_AMT ,
14543 l_tab.ELMT_ed_FRT_PRO_ACCTD_AMT ,
14544 l_tab.ELMT_ed_TAX_PRO_AMT ,
14545 l_tab.ELMT_ed_TAX_PRO_ACCTD_AMT ,
14546 l_tab.ELMT_ed_CHRG_PRO_AMT ,
14547 l_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT ,
14548 -- Amount to be allocated
14549 l_tab.buc_ed_alloc_amt ,
14550 l_tab.buc_ed_alloc_acctd_amt,
14551 l_tab.buc_ed_frt_alloc_amt ,
14552 l_tab.buc_ed_frt_alloc_acctd_amt,
14553 l_tab.buc_ed_tax_alloc_amt ,
14554 l_tab.buc_ed_tax_alloc_acctd_amt,
14555 l_tab.buc_ed_chrg_alloc_amt ,
14556 l_tab.buc_ed_chrg_alloc_acctd_amt,
14557 -- UNED
14558 -- Base
14559 l_tab.base_uned_pro_amt ,
14560 l_tab.base_uned_pro_acctd_amt ,
14561 l_tab.BASE_uned_FRT_PRO_AMT ,
14562 l_tab.BASE_uned_FRT_PRO_ACCTD_AMT ,
14563 l_tab.BASE_uned_TAX_PRO_AMT ,
14564 l_tab.BASE_uned_TAX_PRO_ACCTD_AMT ,
14565 l_tab.BASE_uned_CHRG_PRO_AMT ,
14566 l_tab.BASE_uned_CHRG_PRO_ACCTD_AMT ,
14567 -- Element numerator
14568 l_tab.elmt_uned_pro_amt ,
14569 l_tab.elmt_uned_pro_acctd_amt ,
14570 l_tab.ELMT_uned_FRT_PRO_AMT ,
14571 l_tab.ELMT_uned_FRT_PRO_ACCTD_AMT ,
14572 l_tab.ELMT_uned_TAX_PRO_AMT ,
14573 l_tab.ELMT_uned_TAX_PRO_ACCTD_AMT ,
14574 l_tab.ELMT_uned_CHRG_PRO_AMT ,
14575 l_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT ,
14576 -- Amount to be allocated
14577 l_tab.buc_uned_alloc_amt ,
14578 l_tab.buc_uned_alloc_acctd_amt,
14579 l_tab.buc_uned_frt_alloc_amt ,
14580 l_tab.buc_uned_frt_alloc_acctd_amt,
14581 l_tab.buc_uned_tax_alloc_amt ,
14582 l_tab.buc_uned_tax_alloc_acctd_amt,
14583 l_tab.buc_uned_chrg_alloc_amt ,
14584 l_tab.buc_uned_chrg_alloc_acctd_amt,
14585 --
14586 l_tab.BASE_CURRENCY ,
14587 l_tab.TO_CURRENCY ,
14588 l_tab.FROM_CURRENCY ,
14589 --
14590 l_tab.ROWID_ID LIMIT g_bulk_fetch_rows;
14591
14592 IF c_read_for_taxable%NOTFOUND THEN
14593 l_last_fetch := TRUE;
14594 END IF;
14595
14596 IF (l_tab.ROWID_ID.COUNT = 0) AND (l_last_fetch) THEN
14597 IF PG_DEBUG = 'Y' THEN
14598 localdebug('COUNT = 0 and LAST FETCH ');
14599 END IF;
14600 EXIT;
14601 END IF;
14602
14603 plsql_proration( x_tab => l_tab,
14604 x_group_tbl => l_group_tbl,
14605 -- ADJ and APP
14606 x_run_amt => l_run_amt,
14607 x_run_alloc => l_run_alloc,
14608 x_run_acctd_amt => l_run_acctd_amt,
14609 x_run_acctd_alloc => l_run_acctd_alloc,
14610 x_run_chrg_amt => l_run_chrg_amt,
14611 x_run_chrg_alloc => l_run_chrg_alloc,
14612 x_run_chrg_acctd_amt => l_run_chrg_acctd_amt,
14613 x_run_chrg_acctd_alloc => l_run_chrg_acctd_alloc,
14614 x_run_frt_amt => l_run_frt_amt,
14615 x_run_frt_alloc => l_run_frt_alloc,
14616 x_run_frt_acctd_amt => l_run_frt_acctd_amt,
14617 x_run_frt_acctd_alloc => l_run_frt_acctd_alloc,
14618 x_run_tax_amt => l_run_tax_amt,
14619 x_run_tax_alloc => l_run_tax_alloc,
14620 x_run_tax_acctd_amt => l_run_tax_acctd_amt,
14621 x_run_tax_acctd_alloc => l_run_tax_acctd_alloc,
14622 -- ED
14623 x_run_ed_amt => l_run_ed_amt,
14624 x_run_ed_alloc => l_run_ed_alloc,
14625 x_run_ed_acctd_amt => l_run_ed_acctd_amt,
14626 x_run_ed_acctd_alloc => l_run_ed_acctd_alloc,
14627 x_run_ed_chrg_amt => l_run_ed_chrg_amt,
14628 x_run_ed_chrg_alloc => l_run_ed_chrg_alloc,
14629 x_run_ed_chrg_acctd_amt => l_run_ed_chrg_acctd_amt,
14630 x_run_ed_chrg_acctd_alloc => l_run_ed_chrg_acctd_alloc,
14631 x_run_ed_frt_amt => l_run_ed_frt_amt,
14632 x_run_ed_frt_alloc => l_run_ed_frt_alloc,
14633 x_run_ed_frt_acctd_amt => l_run_ed_frt_acctd_amt,
14634 x_run_ed_frt_acctd_alloc => l_run_ed_frt_acctd_alloc,
14635 x_run_ed_tax_amt => l_run_ed_tax_amt,
14636 x_run_ed_tax_alloc => l_run_ed_tax_alloc,
14637 x_run_ed_tax_acctd_amt => l_run_ed_tax_acctd_amt,
14638 x_run_ed_tax_acctd_alloc => l_run_ed_tax_acctd_alloc,
14639 -- UNED
14640 x_run_uned_amt => l_run_uned_amt,
14641 x_run_uned_alloc => l_run_uned_alloc,
14642 x_run_uned_acctd_amt => l_run_uned_acctd_amt,
14643 x_run_uned_acctd_alloc => l_run_uned_acctd_alloc,
14644 x_run_uned_chrg_amt => l_run_uned_chrg_amt,
14645 x_run_uned_chrg_alloc => l_run_uned_chrg_alloc,
14646 x_run_uned_chrg_acctd_amt => l_run_uned_chrg_acctd_amt,
14647 x_run_uned_chrg_acctd_alloc => l_run_uned_chrg_acctd_alloc,
14648 x_run_uned_frt_amt => l_run_uned_frt_amt,
14649 x_run_uned_frt_alloc => l_run_uned_frt_alloc,
14650 x_run_uned_frt_acctd_amt => l_run_uned_frt_acctd_amt,
14651 x_run_uned_frt_acctd_alloc => l_run_uned_frt_acctd_alloc,
14652 x_run_uned_tax_amt => l_run_uned_tax_amt,
14653 x_run_uned_tax_alloc => l_run_uned_tax_alloc,
14654 x_run_uned_tax_acctd_amt => l_run_uned_tax_acctd_amt,
14655 x_run_uned_tax_acctd_alloc => l_run_uned_tax_acctd_alloc);
14656
14657 FORALL i IN l_tab.ROWID_ID.FIRST .. l_tab.ROWID_ID.LAST
14658 UPDATE AR_LINE_APP_DETAIL_GT
14659 SET taxable_amount = DECODE(activity_bucket, 'APP_TAX', l_tab.tl_tax_alloc_amt(i),
14660 'ADJ_TAX', l_tab.tl_tax_alloc_amt(i),
14661 'ED_TAX', l_tab.tl_ed_tax_alloc_amt(i),
14662 'UNED_TAX', l_tab.tl_uned_tax_alloc_amt(i)),
14663 taxable_acctd_amount = DECODE(activity_bucket, 'APP_TAX', l_tab.tl_tax_alloc_acctd_amt(i),
14664 'ADJ_TAX', l_tab.tl_tax_alloc_acctd_amt(i),
14665 'ED_TAX', l_tab.tl_ed_tax_alloc_acctd_amt(i),
14666 'UNED_TAX', l_tab.tl_uned_tax_alloc_acctd_amt(i))
14667 WHERE rowid = l_tab.ROWID_ID(i);
14668 END LOOP;
14669 CLOSE c_read_for_taxable;
14670
14671 IF PG_DEBUG = 'Y' THEN
14672 localdebug('arp_det_dist_pkg.update_taxable()-');
14673 END IF;
14674 EXCEPTION
14675 WHEN OTHERS THEN
14676 IF PG_DEBUG = 'Y' THEN
14677 localdebug(' EXCEPTION OTHERS update_taxable :'||SQLERRM);
14678 END IF;
14679 END update_taxable;
14680
14681
14682 PROCEDURE update_for_mrc_dist
14683 (p_gt_id IN VARCHAR2,
14684 p_customer_trx_id IN NUMBER,
14685 p_app_rec IN ar_receivable_applications%ROWTYPE,
14686 p_adj_rec IN ar_adjustments%ROWTYPE,
14687 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type)
14688 IS
14689 CURSOR c_mrc(p_acctd_adj_app_to IN NUMBER,
14690 p_acctd_app_from IN NUMBER,
14691 p_acctd_ed IN NUMBER,
14692 p_acctd_uned IN NUMBER,
14693 p_from_curr_code IN VARCHAR2)
14694 IS
14695 SELECT /*+INDEX (AR_LINE_APP_DETAIL_GT AR_LINE_APP_DETAIL_GT_N1)*/
14696 DECODE(activity_bucket, 'ADJ_LINE', 'ADJ',
14697 'ADJ_TAX' , 'ADJ',
14698 'ADJ_FRT' , 'ADJ',
14699 'ADJ_CHRG', 'ADJ',
14700 'APP_LINE', 'APP',
14701 'APP_TAX' , 'APP',
14702 'APP_FRT' , 'APP',
14703 'APP_CHRG', 'APP',
14704 'ED_LINE' , 'ED',
14705 'ED_TAX' , 'ED',
14706 'ED_FRT' , 'ED',
14707 'UNED_CHRG' , 'UNED',
14708 'UNED_LINE' , 'UNED',
14709 'UNED_TAX' , 'UNED',
14710 'UNED_FRT' , 'UNED',
14711 'UNED_CHRG' , 'UNED') groupe,
14712 /* ADJ and APP */
14713 --BASE
14714 --Base for acctd_amount MRC
14715 0,
14716 SUM(DECODE(activity_bucket,'APP_LINE',amount,
14717 'APP_TAX' ,amount,
14718 'APP_FRT' ,amount,
14719 'APP_CHRG',amount,
14720 'ADJ_LINE',amount,
14721 'ADJ_TAX' ,amount,
14722 'ADJ_FRT' ,amount,
14723 'ADJ_CHRG',amount,0)),
14724 --Base used for MRC
14725 0,
14726 0,
14727 --Base used for MRC from_acctd_amount
14728 0,
14729 SUM(DECODE(activity_bucket,'APP_LINE',amount,
14730 'APP_TAX' ,amount,
14731 'APP_FRT' ,amount,
14732 'APP_CHRG',amount,0)),
14733 --Base not used in MRC
14734 0,
14735 0,
14736 --ELEMENT
14737 --Element for APP/ADJ acctd_amount MRC
14738 0,
14739 DECODE(activity_bucket,'APP_LINE',amount,
14740 'APP_TAX' ,amount,
14741 'APP_FRT' ,amount,
14742 'APP_CHRG',amount,
14743 'ADJ_LINE',amount,
14744 'ADJ_TAX' ,amount,
14745 'ADJ_FRT' ,amount,
14746 'ADJ_CHRG',amount,0),
14747 --Element not used in MRC
14748 0,
14749 0,
14750 --Element used for MRC from_acctd_amount
14751 0,
14752 DECODE(activity_bucket,'APP_LINE',amount,
14753 'APP_TAX' ,amount,
14754 'APP_FRT' ,amount,
14755 'APP_CHRG',amount,0),
14756 --Element not used
14757 0,
14758 0,
14759 --AMOUNT TO ALLOCATED
14760 --bucket MRC allocated the acctd_amount
14761 0,
14762 p_acctd_adj_app_to,
14763 --bucket not used
14764 0,
14765 0,
14766 --bucket used allocated the from_acctd_amount
14767 0,
14768 p_acctd_app_from,
14769 --bucket not used MRC
14770 0,
14771 0,
14772 /* ED */
14773 --BASE
14774 --Base for acctd_amount MRC
14775 0,
14776 SUM(DECODE(activity_bucket,'ED_LINE',amount,
14777 'ED_TAX' ,amount,
14778 'ED_FRT' ,amount,
14779 'ED_CHRG',amount,0)),
14780 --Base not used
14781 0,
14782 0,
14783 --Base for from_acctd_amount - Not applicable for ED
14784 0,
14785 0,
14786 --Base not used
14787 0,
14788 0,
14789 --ELEMENT
14790 --Element for acctd_amount
14791 0,
14792 DECODE(activity_bucket,'ED_LINE',amount,
14793 'ED_TAX' ,amount,
14794 'ED_FRT' ,amount,
14795 'ED_CHRG',amount,0),
14796 --Element not used
14797 0,
14798 0,
14799 --Element used for from_acctd_amount - Not applicable for discount
14800 0,
14801 0,
14802 --Element not used
14803 0,
14804 0,
14805 --AMOUNT TO BE ALLOCATED
14806 --bucket for acctd_amount MRC
14807 0,
14808 p_acctd_ed,
14809 --bucket not used
14810 0,
14811 0,
14812 --bucket not used - Note:from_acctd_amount not applicable for discount
14813 0,
14814 0,
14815 --bucket not used
14816 0,
14817 0,
14818 /* UNED */
14819 --BASE
14820 --Base for acctd_amount MRC
14821 0,
14822 SUM(DECODE(activity_bucket,'UNED_LINE',amount,
14823 'UNED_TAX' ,amount,
14824 'UNED_FRT' ,amount,
14825 'UNED_CHRG',amount,0)),
14826 --Base not used
14827 0,
14828 0,
14829 --Base not used
14830 0,
14831 0,
14832 --Base not used
14833 0,
14834 0,
14835 --ELEMENT
14836 --Element for acctd_amount MRC
14837 0,
14838 DECODE(activity_bucket,'UNED_LINE',amount,
14839 'UNED_TAX' ,amount,
14840 'UNED_FRT' ,amount,
14841 'UNED_CHRG',amount,0),
14842 --Element not used
14843 0,
14844 0,
14845 --Element not used
14846 0,
14847 0,
14848 --Element not used
14849 0,
14850 0,
14851 --AMOUNT TO BE ALLOCATED
14852 --Bucket for acctd_amount
14853 0,
14854 p_acctd_uned,
14855 --Bucket not used
14856 0,
14857 0,
14858 --Bucket not used
14859 0,
14860 0,
14861 --Bucket not used
14862 0,
14863 0,
14864 --Currencies
14865 p_ae_sys_rec.base_currency BASE_CURRENCY ,
14866 g_cust_inv_rec.invoice_currency_code TO_CURRENCY ,
14867 --HYU
14868 p_from_curr_code FROM_CURRENCY,
14869 -- Rowid
14870 rowid
14871 FROM AR_LINE_APP_DETAIL_GT
14872 WHERE gt_id = p_gt_id
14873 AND ref_customer_trx_id = p_customer_trx_id
14874 ORDER BY DECODE(activity_bucket, 'ADJ_LINE', 'ADJ',
14875 'ADJ_TAX' , 'ADJ',
14876 'ADJ_FRT' , 'ADJ',
14877 'ADJ_CHRG', 'ADJ',
14878 'APP_LINE', 'APP',
14879 'APP_TAX' , 'APP',
14880 'APP_FRT' , 'APP',
14881 'APP_CHRG', 'APP',
14882 'ED_LINE' , 'ED',
14883 'ED_TAX' , 'ED',
14884 'ED_FRT' , 'ED',
14885 'UNED_CHRG' , 'UNED',
14886 'UNED_LINE' , 'UNED',
14887 'UNED_TAX' , 'UNED',
14888 'UNED_FRT' , 'UNED',
14889 'UNED_CHRG' , 'UNED');
14890
14891 l_tab pro_res_tbl_type;
14892
14893 l_group_tbl group_tbl_type;
14894 l_group VARCHAR2(900) := 'NOGROUP';
14895
14896 -- ADJ and APP
14897 l_run_amt NUMBER := 0;
14898 l_run_alloc NUMBER := 0;
14899 l_run_acctd_amt NUMBER := 0;
14900 l_run_acctd_alloc NUMBER := 0;
14901 l_alloc NUMBER := 0;
14902 l_acctd_alloc NUMBER := 0;
14903
14904 l_run_chrg_amt NUMBER := 0;
14905 l_run_chrg_alloc NUMBER := 0;
14906 l_run_chrg_acctd_amt NUMBER := 0;
14907 l_run_chrg_acctd_alloc NUMBER := 0;
14908 l_chrg_alloc NUMBER := 0;
14909 l_chrg_acctd_alloc NUMBER := 0;
14910
14911 l_run_frt_amt NUMBER := 0;
14912 l_run_frt_alloc NUMBER := 0;
14913 l_run_frt_acctd_amt NUMBER := 0;
14914 l_run_frt_acctd_alloc NUMBER := 0;
14915 l_frt_alloc NUMBER := 0;
14916 l_frt_acctd_alloc NUMBER := 0;
14917
14918 l_run_tax_amt NUMBER := 0;
14919 l_run_tax_alloc NUMBER := 0;
14920 l_run_tax_acctd_amt NUMBER := 0;
14921 l_run_tax_acctd_alloc NUMBER := 0;
14922 l_tax_alloc NUMBER := 0;
14923 l_tax_acctd_alloc NUMBER := 0;
14924
14925
14926 -- ED
14927 l_run_ed_amt NUMBER := 0;
14928 l_run_ed_alloc NUMBER := 0;
14929 l_run_ed_acctd_amt NUMBER := 0;
14930 l_run_ed_acctd_alloc NUMBER := 0;
14931 l_ed_alloc NUMBER := 0;
14932 l_ed_acctd_alloc NUMBER := 0;
14933
14934 l_run_ed_chrg_amt NUMBER := 0;
14935 l_run_ed_chrg_alloc NUMBER := 0;
14936 l_run_ed_chrg_acctd_amt NUMBER := 0;
14937 l_run_ed_chrg_acctd_alloc NUMBER := 0;
14938 l_ed_chrg_alloc NUMBER := 0;
14939 l_ed_chrg_acctd_alloc NUMBER := 0;
14940
14941 l_run_ed_frt_amt NUMBER := 0;
14942 l_run_ed_frt_alloc NUMBER := 0;
14943 l_run_ed_frt_acctd_amt NUMBER := 0;
14944 l_run_ed_frt_acctd_alloc NUMBER := 0;
14945 l_ed_frt_alloc NUMBER := 0;
14946 l_ed_frt_acctd_alloc NUMBER := 0;
14947
14948 l_run_ed_tax_amt NUMBER := 0;
14949 l_run_ed_tax_alloc NUMBER := 0;
14950 l_run_ed_tax_acctd_amt NUMBER := 0;
14951 l_run_ed_tax_acctd_alloc NUMBER := 0;
14952 l_ed_tax_alloc NUMBER := 0;
14953 l_ed_tax_acctd_alloc NUMBER := 0;
14954
14955 -- UNED
14956 l_run_uned_amt NUMBER := 0;
14957 l_run_uned_alloc NUMBER := 0;
14958 l_run_uned_acctd_amt NUMBER := 0;
14959 l_run_uned_acctd_alloc NUMBER := 0;
14960 l_uned_alloc NUMBER := 0;
14961 l_uned_acctd_alloc NUMBER := 0;
14962
14963 l_run_uned_chrg_amt NUMBER := 0;
14964 l_run_uned_chrg_alloc NUMBER := 0;
14965 l_run_uned_chrg_acctd_amt NUMBER := 0;
14966 l_run_uned_chrg_acctd_alloc NUMBER := 0;
14967 l_uned_chrg_alloc NUMBER := 0;
14968 l_uned_chrg_acctd_alloc NUMBER := 0;
14969
14970 l_run_uned_frt_amt NUMBER := 0;
14971 l_run_uned_frt_alloc NUMBER := 0;
14972 l_run_uned_frt_acctd_amt NUMBER := 0;
14973 l_run_uned_frt_acctd_alloc NUMBER := 0;
14974 l_uned_frt_alloc NUMBER := 0;
14975 l_uned_frt_acctd_alloc NUMBER := 0;
14976
14977 l_run_uned_tax_amt NUMBER := 0;
14978 l_run_uned_tax_alloc NUMBER := 0;
14979 l_run_uned_tax_acctd_amt NUMBER := 0;
14980 l_run_uned_tax_acctd_alloc NUMBER := 0;
14981 l_uned_tax_alloc NUMBER := 0;
14982 l_uned_tax_acctd_alloc NUMBER := 0;
14983
14984 l_exist BOOLEAN;
14985 l_last_fetch BOOLEAN;
14986
14987 l_acctd_adj_app_to NUMBER;
14988 l_acctd_app_from NUMBER;
14989 l_acctd_ed NUMBER;
14990 l_acctd_uned NUMBER;
14991 l_from_curr_code VARCHAR2(30);
14992
14993 BEGIN
14994 IF PG_DEBUG = 'Y' THEN
14995 localdebug('arp_det_dist_pkg.update_mrc_for_dist()+');
14996 END IF;
14997
14998 IF p_app_rec.receivable_application_id IS NOT NULL THEN
14999 l_acctd_adj_app_to:= NVL(p_app_rec.acctd_amount_applied_to,0) * -1;
15000 l_acctd_app_from := NVL(p_app_rec.acctd_amount_applied_from,0) * -1;
15001 l_acctd_ed := NVL(p_app_rec.acctd_earned_discount_taken,0) * -1;
15002 l_acctd_uned := NVL(p_app_rec.acctd_unearned_discount_taken,0) * -1;
15003 ELSIF p_adj_rec.adjustment_id IS NOT NULL THEN
15004 l_acctd_adj_app_to:= NVL(p_adj_rec.acctd_amount,0);
15005 l_acctd_app_from := 0;
15006 l_acctd_ed := 0;
15007 l_acctd_uned := 0;
15008 END IF;
15009
15010 IF p_app_rec.receivable_application_id IS NOT NULL THEN
15011 get_from_currency(p_app_rec => p_app_rec,
15012 x_from_curr_code => l_from_curr_code);
15013
15014 IF PG_DEBUG = 'Y' THEN
15015 localdebug(' l_from_curr_code :'||l_from_curr_code);
15016 END IF;
15017 END IF;
15018
15019 IF l_from_curr_code IS NULL THEN
15020 l_from_curr_code := p_ae_sys_rec.base_currency;
15021 END IF;
15022
15023 OPEN c_mrc(p_acctd_adj_app_to =>l_acctd_adj_app_to,
15024 p_acctd_app_from =>l_acctd_app_from ,
15025 p_acctd_ed =>l_acctd_ed ,
15026 p_acctd_uned =>l_acctd_uned ,
15027 p_from_curr_code =>l_from_curr_code);
15028 LOOP
15029 FETCH c_mrc BULK COLLECT INTO
15030 l_tab.GROUPE ,
15031 -- ADJ and APP
15032 -- Base
15033 l_tab.base_pro_amt ,
15034 l_tab.base_pro_acctd_amt ,
15035 l_tab.BASE_FRT_PRO_AMT ,
15036 l_tab.BASE_FRT_PRO_ACCTD_AMT ,
15037 l_tab.BASE_tax_PRO_AMT ,
15038 l_tab.BASE_tax_PRO_ACCTD_AMT ,
15039 l_tab.BASE_CHRG_PRO_AMT ,
15040 l_tab.BASE_CHRG_PRO_ACCTD_AMT ,
15041 -- Element numerator
15042 l_tab.elmt_pro_amt ,
15043 l_tab.elmt_pro_acctd_amt ,
15044 l_tab.ELMT_FRT_PRO_AMT ,
15045 l_tab.ELMT_FRT_PRO_ACCTD_AMT ,
15046 l_tab.ELMT_tax_PRO_AMT ,
15047 l_tab.ELMT_tax_PRO_ACCTD_AMT ,
15048 l_tab.ELMT_CHRG_PRO_AMT ,
15049 l_tab.ELMT_CHRG_PRO_ACCTD_AMT ,
15050 -- Amount to be allocated
15051 l_tab.buc_alloc_amt ,
15052 l_tab.buc_alloc_acctd_amt,
15053 l_tab.buc_frt_alloc_amt ,
15054 l_tab.buc_frt_alloc_acctd_amt,
15055 l_tab.buc_tax_alloc_amt ,
15056 l_tab.buc_tax_alloc_acctd_amt,
15057 l_tab.buc_chrg_alloc_amt ,
15058 l_tab.buc_chrg_alloc_acctd_amt,
15059 -- ED
15060 -- Base
15061 l_tab.base_ed_pro_amt ,
15062 l_tab.base_ed_pro_acctd_amt ,
15063 l_tab.BASE_ed_FRT_PRO_AMT ,
15064 l_tab.BASE_ed_FRT_PRO_ACCTD_AMT ,
15065 l_tab.BASE_ed_tax_PRO_AMT ,
15066 l_tab.BASE_ed_tax_PRO_ACCTD_AMT ,
15067 l_tab.BASE_ed_CHRG_PRO_AMT ,
15068 l_tab.BASE_ed_CHRG_PRO_ACCTD_AMT ,
15069 -- Element numerator
15070 l_tab.elmt_ed_pro_amt ,
15071 l_tab.elmt_ed_pro_acctd_amt ,
15072 l_tab.ELMT_ed_FRT_PRO_AMT ,
15073 l_tab.ELMT_ed_FRT_PRO_ACCTD_AMT ,
15074 l_tab.ELMT_ed_tax_PRO_AMT ,
15075 l_tab.ELMT_ed_tax_PRO_ACCTD_AMT ,
15076 l_tab.ELMT_ed_CHRG_PRO_AMT ,
15077 l_tab.ELMT_ed_CHRG_PRO_ACCTD_AMT ,
15078 -- Amount to be allocated
15079 l_tab.buc_ed_alloc_amt ,
15080 l_tab.buc_ed_alloc_acctd_amt,
15081 l_tab.buc_ed_frt_alloc_amt ,
15082 l_tab.buc_ed_frt_alloc_acctd_amt,
15083 l_tab.buc_ed_tax_alloc_amt ,
15084 l_tab.buc_ed_tax_alloc_acctd_amt,
15085 l_tab.buc_ed_chrg_alloc_amt ,
15086 l_tab.buc_ed_chrg_alloc_acctd_amt,
15087 -- UNED
15088 -- Base
15089 l_tab.base_uned_pro_amt ,
15090 l_tab.base_uned_pro_acctd_amt ,
15091 l_tab.BASE_uned_FRT_PRO_AMT ,
15092 l_tab.BASE_uned_FRT_PRO_ACCTD_AMT ,
15093 l_tab.BASE_uned_tax_PRO_AMT ,
15094 l_tab.BASE_uned_tax_PRO_ACCTD_AMT ,
15095 l_tab.BASE_uned_CHRG_PRO_AMT ,
15096 l_tab.BASE_uned_CHRG_PRO_ACCTD_AMT ,
15097 -- Element numerator
15098 l_tab.elmt_uned_pro_amt ,
15099 l_tab.elmt_uned_pro_acctd_amt ,
15100 l_tab.ELMT_uned_FRT_PRO_AMT ,
15101 l_tab.ELMT_uned_FRT_PRO_ACCTD_AMT ,
15102 l_tab.ELMT_uned_tax_PRO_AMT ,
15103 l_tab.ELMT_uned_tax_PRO_ACCTD_AMT ,
15104 l_tab.ELMT_uned_CHRG_PRO_AMT ,
15105 l_tab.ELMT_uned_CHRG_PRO_ACCTD_AMT ,
15106 -- Amount to be allocated
15107 l_tab.buc_uned_alloc_amt ,
15108 l_tab.buc_uned_alloc_acctd_amt,
15109 l_tab.buc_uned_frt_alloc_amt ,
15110 l_tab.buc_uned_frt_alloc_acctd_amt,
15111 l_tab.buc_uned_tax_alloc_amt ,
15112 l_tab.buc_uned_tax_alloc_acctd_amt,
15113 l_tab.buc_uned_chrg_alloc_amt ,
15114 l_tab.buc_uned_chrg_alloc_acctd_amt,
15115 --
15116 l_tab.BASE_CURRENCY ,
15117 l_tab.TO_CURRENCY ,
15118 l_tab.FROM_CURRENCY ,
15119 --
15120 l_tab.ROWID_ID LIMIT g_bulk_fetch_rows;
15121
15122 IF c_mrc%NOTFOUND THEN
15123 l_last_fetch := TRUE;
15124 END IF;
15125
15126 IF (l_tab.ROWID_ID.COUNT = 0) AND (l_last_fetch) THEN
15127 IF PG_DEBUG = 'Y' THEN
15128 localdebug('COUNT = 0 and LAST FETCH ');
15129 END IF;
15130 EXIT;
15131 END IF;
15132
15133 plsql_proration( x_tab => l_tab,
15134 x_group_tbl => l_group_tbl,
15135 -- ADJ and APP
15136 x_run_amt => l_run_amt,
15137 x_run_alloc => l_run_alloc,
15138 x_run_acctd_amt => l_run_acctd_amt,
15139 x_run_acctd_alloc => l_run_acctd_alloc,
15140 x_run_chrg_amt => l_run_chrg_amt,
15141 x_run_chrg_alloc => l_run_chrg_alloc,
15142 x_run_chrg_acctd_amt => l_run_chrg_acctd_amt,
15143 x_run_chrg_acctd_alloc => l_run_chrg_acctd_alloc,
15144 x_run_frt_amt => l_run_frt_amt,
15145 x_run_frt_alloc => l_run_frt_alloc,
15146 x_run_frt_acctd_amt => l_run_frt_acctd_amt,
15147 x_run_frt_acctd_alloc => l_run_frt_acctd_alloc,
15148 x_run_tax_amt => l_run_tax_amt,
15149 x_run_tax_alloc => l_run_tax_alloc,
15150 x_run_tax_acctd_amt => l_run_tax_acctd_amt,
15151 x_run_tax_acctd_alloc => l_run_tax_acctd_alloc,
15152 -- ED
15153 x_run_ed_amt => l_run_ed_amt,
15154 x_run_ed_alloc => l_run_ed_alloc,
15155 x_run_ed_acctd_amt => l_run_ed_acctd_amt,
15156 x_run_ed_acctd_alloc => l_run_ed_acctd_alloc,
15157 x_run_ed_chrg_amt => l_run_ed_chrg_amt,
15158 x_run_ed_chrg_alloc => l_run_ed_chrg_alloc,
15159 x_run_ed_chrg_acctd_amt => l_run_ed_chrg_acctd_amt,
15160 x_run_ed_chrg_acctd_alloc => l_run_ed_chrg_acctd_alloc,
15161 x_run_ed_frt_amt => l_run_ed_frt_amt,
15162 x_run_ed_frt_alloc => l_run_ed_frt_alloc,
15163 x_run_ed_frt_acctd_amt => l_run_ed_frt_acctd_amt,
15164 x_run_ed_frt_acctd_alloc => l_run_ed_frt_acctd_alloc,
15165 x_run_ed_tax_amt => l_run_ed_tax_amt,
15166 x_run_ed_tax_alloc => l_run_ed_tax_alloc,
15167 x_run_ed_tax_acctd_amt => l_run_ed_tax_acctd_amt,
15168 x_run_ed_tax_acctd_alloc => l_run_ed_tax_acctd_alloc,
15169 -- UNED
15170 x_run_uned_amt => l_run_uned_amt,
15171 x_run_uned_alloc => l_run_uned_alloc,
15172 x_run_uned_acctd_amt => l_run_uned_acctd_amt,
15173 x_run_uned_acctd_alloc => l_run_uned_acctd_alloc,
15174 x_run_uned_chrg_amt => l_run_uned_chrg_amt,
15175 x_run_uned_chrg_alloc => l_run_uned_chrg_alloc,
15176 x_run_uned_chrg_acctd_amt => l_run_uned_chrg_acctd_amt,
15177 x_run_uned_chrg_acctd_alloc => l_run_uned_chrg_acctd_alloc,
15178 x_run_uned_frt_amt => l_run_uned_frt_amt,
15179 x_run_uned_frt_alloc => l_run_uned_frt_alloc,
15180 x_run_uned_frt_acctd_amt => l_run_uned_frt_acctd_amt,
15181 x_run_uned_frt_acctd_alloc => l_run_uned_frt_acctd_alloc,
15182 x_run_uned_tax_amt => l_run_uned_tax_amt,
15183 x_run_uned_tax_alloc => l_run_uned_tax_alloc,
15184 x_run_uned_tax_acctd_amt => l_run_uned_tax_acctd_amt,
15185 x_run_uned_tax_acctd_alloc => l_run_uned_tax_acctd_alloc
15186 );
15187
15188 IF PG_DEBUG = 'Y' THEN
15189 localdebug(' update AR_LINE_APP_DETAIL_GT RSOB:'||p_ae_sys_rec.set_of_books_id);
15190 END IF;
15191 FORALL i IN l_tab.ROWID_ID.FIRST .. l_tab.ROWID_ID.LAST
15192 UPDATE AR_LINE_APP_DETAIL_GT a
15193 SET ACCTD_AMOUNT = DECODE(a.activity_bucket, 'APP_LINE', l_tab.tl_alloc_acctd_amt(i),
15194 'APP_TAX' , l_tab.tl_alloc_acctd_amt(i),
15195 'APP_FRT' , l_tab.tl_alloc_acctd_amt(i),
15196 'APP_CHRG', l_tab.tl_alloc_acctd_amt(i),
15197 'ADJ_LINE', l_tab.tl_alloc_acctd_amt(i),
15198 'ADJ_TAX' , l_tab.tl_alloc_acctd_amt(i),
15199 'ADJ_FRT' , l_tab.tl_alloc_acctd_amt(i),
15200 'ADJ_CHRG', l_tab.tl_alloc_acctd_amt(i),
15201 'ED_LINE', l_tab.tl_ed_alloc_acctd_amt(i),
15202 'ED_TAX' , l_tab.tl_ed_alloc_acctd_amt(i),
15203 'ED_FRT' , l_tab.tl_ed_alloc_acctd_amt(i),
15204 'ED_CHRG', l_tab.tl_ed_alloc_acctd_amt(i),
15205 'UNED_LINE', l_tab.tl_uned_alloc_acctd_amt(i),
15206 'UNED_TAX' , l_tab.tl_uned_alloc_acctd_amt(i),
15207 'UNED_FRT' , l_tab.tl_uned_alloc_acctd_amt(i),
15208 'UNED_CHRG', l_tab.tl_uned_alloc_acctd_amt(i)),
15209 FROM_ACCTD_AMOUNT= DECODE(a.activity_bucket, 'APP_LINE', l_tab.tl_tax_alloc_acctd_amt(i),
15210 'APP_TAX' , l_tab.tl_tax_alloc_acctd_amt(i),
15211 'APP_FRT' , l_tab.tl_tax_alloc_acctd_amt(i),
15212 'APP_CHRG', l_tab.tl_tax_alloc_acctd_amt(i),
15213 'ADJ_LINE', l_tab.tl_tax_alloc_acctd_amt(i),
15214 'ADJ_TAX' , l_tab.tl_tax_alloc_acctd_amt(i),
15215 'ADJ_FRT' , l_tab.tl_tax_alloc_acctd_amt(i),
15216 'ADJ_CHRG', l_tab.tl_tax_alloc_acctd_amt(i),
15217 'ED_LINE', l_tab.tl_ed_tax_alloc_acctd_amt(i),
15218 'ED_TAX' , l_tab.tl_ed_tax_alloc_acctd_amt(i),
15219 'ED_FRT' , l_tab.tl_ed_tax_alloc_acctd_amt(i),
15220 'ED_CHRG', l_tab.tl_ed_tax_alloc_acctd_amt(i),
15221 'UNED_LINE', l_tab.tl_uned_tax_alloc_acctd_amt(i),
15222 'UNED_TAX' , l_tab.tl_uned_tax_alloc_acctd_amt(i),
15223 'UNED_FRT' , l_tab.tl_uned_tax_alloc_acctd_amt(i),
15224 'UNED_CHRG', l_tab.tl_uned_tax_alloc_acctd_amt(i)),
15225 ledger_id = p_ae_sys_rec.set_of_books_id
15226 WHERE rowid = l_tab.ROWID_ID(i);
15227 IF PG_DEBUG = 'Y' THEN
15228 localdebug(' update iAR_LINE_APP_DETAIL_GT ');
15229 END IF;
15230
15231 END LOOP;
15232 CLOSE c_mrc;
15233 IF PG_DEBUG = 'Y' THEN
15234 localdebug('arp_det_dist_pkg.update_for_mrc_dist()-');
15235 END IF;
15236 END update_for_mrc_dist;
15237
15238
15239 --{For Cash Accrual Lazy update at posting
15240 --
15241 --Function to return next value to use as line_id
15242 --
15243 FUNCTION next_val(p_num IN NUMBER)
15244 RETURN NUMBER
15245 IS
15246 CURSOR c IS
15247 SELECT ar_cash_basis_distributions_s.NEXTVAL
15248 FROM DUAL;
15249 l_num NUMBER;
15250 BEGIN
15251 OPEN c;
15252 FETCH c INTO l_num;
15253 CLOSE c;
15254 RETURN (p_num + l_num);
15255 END;
15256
15257
15258
15259 PROCEDURE insert_ard_gt
15260 (p_gt_id IN VARCHAR2,
15261 x_exec_status OUT NOCOPY VARCHAR2)
15262 IS
15263 CURSOR c1 IS
15264 SELECT MAX(line_id)
15265 FROM ar_distributions_all;
15266 g_num NUMBER;
15267 l_rows NUMBER;
15268 BEGIN
15269 OPEN c1;
15270 FETCH c1 INTO g_num;
15271 IF c1%NOTFOUND THEN
15272 g_num := 0;
15273 END IF;
15274 CLOSE c1;
15275
15276 --UPDATE AR_LINE_APP_DETAIL_GT a SET
15277 --(a.DET_ID ) =
15278 --(SELECT next_val(g_num)
15279 -- FROM AR_LINE_APP_DETAIL_GT b
15280 -- WHERE a.rowid = b.rowid
15281 -- AND a.gt_id = p_gt_id);
15282 --IF SQL%FOUND THEN
15283 -- x_exec_status := 'Y';
15284 --
15285 -- Keep audit data in ar_cash_basis_distributions
15286 --
15287 -- Note the index unique index 'AR_CASH_BASIS_DISTRIBUTIONS_U2' built on the columns
15288 --RECEIVABLE_APPLICATION_ID
15289 --SOURCE
15290 --SOURCE_ID
15291 --TYPE
15292 --POSTING_CONTROL_ID
15293 --need to be dropped. Because the combination is no longer unique
15294 -- source_id --> adj_id 123
15295 -- type --> line for the adjustment is revenue on invoice and there are 2 rev line on the inv line 1 and line 2
15296 -- source --> ADJ
15297 -- For the potion od the adj on line 1 (123, LINE, ADJ)
15298 -- For the potion od the adj on line 2 (123, LINE, ADJ) the same. Therefore not unique
15299 -- Need investigate on perf. part of the code
15300
15301 INSERT INTO ar_cash_basis_dists_all
15302 ( CASH_BASIS_DISTRIBUTION_ID
15303 , CREATED_BY
15304 , CREATION_DATE
15305 , LAST_UPDATE_DATE
15306 , LAST_UPDATED_BY
15307 , LAST_UPDATE_LOGIN
15308 , PROGRAM_APPLICATION_ID
15309 , PROGRAM_ID
15310 , PROGRAM_UPDATE_DATE
15311 , RECEIVABLE_APPLICATION_ID
15312 , SOURCE
15313 , SOURCE_ID
15314 , TYPE
15315 , PAYMENT_SCHEDULE_ID
15316 , GL_DATE
15317 , CURRENCY_CODE
15318 , AMOUNT
15319 , ACCTD_AMOUNT
15320 , CODE_COMBINATION_ID
15321 , POSTING_CONTROL_ID
15322 , GL_POSTED_DATE
15323 , RECEIVABLE_APPLICATION_ID_CASH
15324 , ORG_ID
15325 , activity_bucket
15326 , ref_account_class
15327 , ref_customer_trx_id
15328 , ref_customer_trx_line_id
15329 , ref_cust_trx_line_gl_dist_id
15330 , ref_line_id
15331 -- BUG#4396273 removed the not approved columns
15332 , FROM_AMOUNT
15333 , FROM_ACCTD_AMOUNT
15334 , LEDGER_ID
15335 , BASE_CURRENCY
15336 )
15337 SELECT
15338 ar_distributions_s.NEXTVAL -- cash_basis_distribution_id
15339 , lad.CREATED_BY -- created_by
15340 , lad.CREATION_DATE -- creation_date
15341 , lad.LAST_UPDATE_DATE -- last_update_date
15342 , lad.LAST_UPDATED_BY -- last_updated_by
15343 , lad.LAST_UPDATE_LOGIN -- last_update_login
15344 , 222 -- PROGRAM_APPLICATION_ID
15345 , 77777 -- PROGRAM_ID (batch upgrade cash basis at posting)
15346 , SYSDATE -- PROGRAM_UPDATE_DATE
15347 , lad.SOURCE_ID -- RECEIVABLE_APPLICATION_ID
15348 , 'RA' --SOURCE (ADJ or INV)
15349 , lad.SOURCE_ID --SOURCE_ID (used to be adj_id or ctlgd_id in 11i
15350 --for now line_id will be fix with adj_id
15351 , DECODE(lad.activity_bucket,'ED_LINE','LINE',
15352 'ED_TAX', 'TAX',
15353 'ED_CHRG','CHARGES',
15354 'ED_FRT' ,'FREIGHT',
15355 'UNED_LINE','LINE',
15356 'UNED_TAX','TAX',
15357 'UNED_CHRG','CHARGES',
15358 'UNED_FRT','FREIGHT',
15359 'ADJ_LINE','LINE',
15360 'ADJ_TAX','TAX',
15361 'ADJ_CHRG','CHARGES',
15362 'ADJ_FRT','FREIGHT',
15363 'APP_LINE','LINE',
15364 'APP_TAX','TAX',
15365 'APP_CHRG','CHARGES',
15366 'APP_FRT','FREIGHT') -- TYPE (LINE TAX FREIGHT CHARGES)
15367 , sch.payment_schedule_id -- PAYMENT_SCHEDULE_ID
15368 , sch.gl_date -- GL_DATE
15369 , lad.TO_CURRENCY -- CURRENCY_CODE
15370 , DECODE(lad.activity_bucket,'ED_LINE',lad.amount,
15371 'ED_TAX', lad.amount,
15372 'ED_CHRG',lad.amount,
15373 'ED_FRT' ,lad.amount,
15374 'UNED_LINE',lad.amount,
15375 'UNED_TAX',lad.amount,
15376 'UNED_CHRG',lad.amount,
15377 'UNED_FRT',lad.amount,
15378 'ADJ_LINE',lad.amount,
15379 'ADJ_TAX',lad.amount,
15380 'ADJ_CHRG',lad.amount,
15381 'ADJ_FRT',lad.amount,
15382 -1*lad.amount) --AMOUNT
15383 , DECODE(lad.activity_bucket,'ED_LINE',lad.acctd_amount,
15384 'ED_TAX', lad.acctd_amount,
15385 'ED_CHRG',lad.acctd_amount,
15386 'ED_FRT' ,lad.acctd_amount,
15387 'UNED_LINE',lad.acctd_amount,
15388 'UNED_TAX',lad.acctd_amount,
15389 'UNED_CHRG',lad.acctd_amount,
15390 'UNED_FRT',lad.acctd_amount,
15391 'ADJ_LINE',lad.acctd_amount,
15392 'ADJ_TAX',lad.acctd_amount,
15393 'ADJ_CHRG',lad.acctd_amount,
15394 'ADJ_FRT',lad.acctd_amount,
15395 -1* lad.acctd_amount) --ACCTD_AMOUNT
15396 , lad.CCID -- CODE_COMBINATION_ID
15397 , -9999 -- POSTING_CONTROL_ID -- We do maintain the posting control id in cash basis dists
15398 -- to verify if the posting has occured check app pst ctl id
15399 , SYSDATE -- GL_POSTED_DATE ( need to be reflag at the end by extract)
15400 , lad.SOURCE_ID -- RECEIVABLE_APPLICATION_ID_CASH
15401 , sch.ORG_ID -- org_id
15402 , lad.activity_bucket
15403 , lad.ref_account_class
15404 , lad.ref_customer_trx_id
15405 , lad.ref_customer_trx_line_id
15406 , lad.ref_cust_trx_line_gl_dist_id
15407 , lad.ref_line_id
15408 /* BUG#4396273 remove not approved columns*/
15409 --HYU Add the From column bach Attention schema changes
15410 , SIGN(DECODE(lad.activity_bucket,'ED_LINE',lad.acctd_amount,
15411 'ED_TAX', lad.acctd_amount,
15412 'ED_CHRG',lad.acctd_amount,
15413 'ED_FRT' ,lad.acctd_amount,
15414 'UNED_LINE',lad.acctd_amount,
15415 'UNED_TAX',lad.acctd_amount,
15416 'UNED_CHRG',lad.acctd_amount,
15417 'UNED_FRT',lad.acctd_amount,
15418 'ADJ_LINE',lad.acctd_amount,
15419 'ADJ_TAX',lad.acctd_amount,
15420 'ADJ_CHRG',lad.acctd_amount,
15421 'ADJ_FRT',lad.acctd_amount,
15422 -1* lad.acctd_amount)) * ABS(lad.from_amount) --FROM_AMOUNT
15423 , SIGN(DECODE(lad.activity_bucket,'ED_LINE',lad.acctd_amount,
15424 'ED_TAX', lad.acctd_amount,
15425 'ED_CHRG',lad.acctd_amount,
15426 'ED_FRT' ,lad.acctd_amount,
15427 'UNED_LINE',lad.acctd_amount,
15428 'UNED_TAX',lad.acctd_amount,
15429 'UNED_CHRG',lad.acctd_amount,
15430 'UNED_FRT',lad.acctd_amount,
15431 'ADJ_LINE',lad.acctd_amount,
15432 'ADJ_TAX',lad.acctd_amount,
15433 'ADJ_CHRG',lad.acctd_amount,
15434 'ADJ_FRT',lad.acctd_amount,
15435 -1* lad.acctd_amount)) * ABS(lad.from_acctd_amount) --FROM_ACCTD_AMOUNT
15436 , lad.ledger_id --LEDGER_ID
15437 , lad.base_currency --BASE_CURRENCY
15438 FROM AR_LINE_APP_DETAIL_GT lad,
15439 ar_payment_schedules_all sch
15440 WHERE lad.ref_customer_trx_id = sch.customer_trx_id
15441 AND lad.gt_id = p_gt_id;
15442 l_rows := sql%rowcount;
15443 IF PG_DEBUG = 'Y' THEN
15444 localdebug(' rows inserted = ' || l_rows);
15445 END IF;
15446 END;
15447
15448 --{Lazy upgrade at posting
15449 -- Modification, this is procedure will be called in downtime
15450 PROCEDURE prepare_for_ra
15451 ( p_gt_id IN NUMBER,
15452 p_app_rec IN ar_receivable_applications%ROWTYPE,
15453 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
15454 p_inv_cm IN VARCHAR2 DEFAULT 'I',
15455 p_cash_mfar IN VARCHAR2 DEFAULT 'CASH')
15456 IS
15457 CURSOR cu_trx(p_trx_id IN NUMBER) IS
15458 SELECT * FROM ra_customer_trx_all
15459 WHERE customer_trx_id = p_trx_id;
15460 l_trx_rec ra_customer_trx_all%ROWTYPE;
15461 l_exec_status VARCHAR2(10) := 'N';
15462 l_adj_rec ar_adjustments%ROWTYPE;
15463 l_app_rec ar_receivable_applications%ROWTYPE;
15464 next_app EXCEPTION;
15465 BEGIN
15466 --
15467 PG_DEBUG := 'N';
15468
15469 g_upgrade_mode := 'Y';
15470 g_currency_code := p_ae_sys_rec.base_currency;
15471 g_org_id := p_app_rec.org_id;
15472
15473 IF p_ae_sys_rec.sob_type = 'P' THEN
15474
15475 IF p_inv_cm = 'C' THEN
15476 OPEN cu_trx(p_trx_id => p_app_rec.customer_trx_id);
15477 ELSE
15478 OPEN cu_trx(p_trx_id => p_app_rec.applied_customer_trx_id);
15479 END IF;
15480 FETCH cu_trx INTO l_trx_rec;
15481 IF cu_trx%FOUND THEN
15482 g_cust_inv_rec.remittance_bank_account_id := l_trx_rec.remittance_bank_account_id;
15483 g_cust_inv_rec.override_remit_account_flag := l_trx_rec.override_remit_account_flag;
15484 g_cust_inv_rec.special_instructions := l_trx_rec.special_instructions;
15485 g_cust_inv_rec.remittance_batch_id := l_trx_rec.remittance_batch_id;
15486 g_cust_inv_rec.prepayment_flag := l_trx_rec.prepayment_flag;
15487 g_cust_inv_rec.ct_reference := l_trx_rec.ct_reference;
15488 g_cust_inv_rec.contract_id := l_trx_rec.contract_id;
15489 g_cust_inv_rec.bill_template_id := l_trx_rec.bill_template_id;
15490 g_cust_inv_rec.reversed_cash_receipt_id := l_trx_rec.reversed_cash_receipt_id;
15491 g_cust_inv_rec.interface_header_attribute7 := l_trx_rec.interface_header_attribute7;
15492 g_cust_inv_rec.interface_header_attribute8 := l_trx_rec.interface_header_attribute8;
15493 g_cust_inv_rec.interface_header_context := l_trx_rec.interface_header_context;
15494 g_cust_inv_rec.default_ussgl_trx_code_context := l_trx_rec.default_ussgl_trx_code_context;
15495 g_cust_inv_rec.drawee_bank_account_id := l_trx_rec.drawee_bank_account_id;
15496 g_cust_inv_rec.default_ussgl_transaction_code := l_trx_rec.default_ussgl_transaction_code;
15497 g_cust_inv_rec.recurred_from_trx_number := l_trx_rec.recurred_from_trx_number;
15498 g_cust_inv_rec.status_trx := l_trx_rec.status_trx;
15499 g_cust_inv_rec.doc_sequence_id := l_trx_rec.doc_sequence_id;
15500 g_cust_inv_rec.doc_sequence_value := l_trx_rec.doc_sequence_value;
15501 g_cust_inv_rec.paying_customer_id := l_trx_rec.paying_customer_id;
15502 g_cust_inv_rec.paying_site_use_id := l_trx_rec.paying_site_use_id;
15503 g_cust_inv_rec.related_batch_source_id := l_trx_rec.related_batch_source_id;
15504 g_cust_inv_rec.default_tax_exempt_flag := l_trx_rec.default_tax_exempt_flag;
15505 g_cust_inv_rec.created_from := l_trx_rec.created_from;
15506 g_cust_inv_rec.org_id := l_trx_rec.org_id;
15507 g_cust_inv_rec.request_id := l_trx_rec.request_id;
15508 g_cust_inv_rec.program_application_id := l_trx_rec.program_application_id;
15509 g_cust_inv_rec.program_id := l_trx_rec.program_id;
15510 g_cust_inv_rec.program_update_date := l_trx_rec.program_update_date;
15511 g_cust_inv_rec.finance_charges := l_trx_rec.finance_charges;
15512 g_cust_inv_rec.complete_flag := l_trx_rec.complete_flag;
15513 g_cust_inv_rec.posting_control_id := l_trx_rec.posting_control_id;
15514 g_cust_inv_rec.bill_to_address_id := l_trx_rec.bill_to_address_id;
15515 g_cust_inv_rec.ra_post_loop_number := l_trx_rec.ra_post_loop_number;
15516 g_cust_inv_rec.ship_to_address_id := l_trx_rec.ship_to_address_id;
15517 g_cust_inv_rec.credit_method_for_rules := l_trx_rec.credit_method_for_rules;
15518 g_cust_inv_rec.credit_method_for_installments := l_trx_rec.credit_method_for_installments;
15519 g_cust_inv_rec.receipt_method_id := l_trx_rec.receipt_method_id;
15520 g_cust_inv_rec.related_customer_trx_id := l_trx_rec.related_customer_trx_id;
15521 g_cust_inv_rec.invoicing_rule_id := l_trx_rec.invoicing_rule_id;
15522 g_cust_inv_rec.ship_via := l_trx_rec.ship_via;
15523 g_cust_inv_rec.ship_date_actual := l_trx_rec.ship_date_actual;
15524 g_cust_inv_rec.waybill_number := l_trx_rec.waybill_number;
15525 g_cust_inv_rec.fob_point := l_trx_rec.fob_point;
15526 g_cust_inv_rec.customer_bank_account_id := l_trx_rec.customer_bank_account_id;
15527 g_cust_inv_rec.printing_option := l_trx_rec.printing_option;
15528 g_cust_inv_rec.printing_count := l_trx_rec.printing_count;
15529 g_cust_inv_rec.printing_pending := l_trx_rec.printing_pending;
15530 g_cust_inv_rec.purchase_order := l_trx_rec.purchase_order;
15531 g_cust_inv_rec.purchase_order_revision := l_trx_rec.purchase_order_revision;
15532 g_cust_inv_rec.purchase_order_date := l_trx_rec.purchase_order_date;
15533 g_cust_inv_rec.customer_reference := l_trx_rec.customer_reference;
15534 g_cust_inv_rec.customer_reference_date := l_trx_rec.customer_reference_date;
15535 g_cust_inv_rec.comments := l_trx_rec.comments;
15536 g_cust_inv_rec.internal_notes := l_trx_rec.internal_notes;
15537 g_cust_inv_rec.exchange_rate_type := l_trx_rec.exchange_rate_type;
15538 g_cust_inv_rec.exchange_date := l_trx_rec.exchange_date;
15539 g_cust_inv_rec.exchange_rate := l_trx_rec.exchange_rate;
15540 g_cust_inv_rec.territory_id := l_trx_rec.territory_id;
15541 g_cust_inv_rec.invoice_currency_code := l_trx_rec.invoice_currency_code;
15542 g_cust_inv_rec.initial_customer_trx_id := l_trx_rec.initial_customer_trx_id;
15543 g_cust_inv_rec.agreement_id := l_trx_rec.agreement_id;
15544 g_cust_inv_rec.end_date_commitment := l_trx_rec.end_date_commitment;
15545 g_cust_inv_rec.start_date_commitment := l_trx_rec.start_date_commitment;
15546 g_cust_inv_rec.last_printed_sequence_num := l_trx_rec.last_printed_sequence_num;
15547 g_cust_inv_rec.attribute_category := l_trx_rec.attribute_category;
15548 g_cust_inv_rec.orig_system_batch_name := l_trx_rec.orig_system_batch_name;
15549 g_cust_inv_rec.customer_trx_id := l_trx_rec.customer_trx_id;
15550 g_cust_inv_rec.trx_number := l_trx_rec.trx_number;
15551 g_cust_inv_rec.cust_trx_type_id := l_trx_rec.cust_trx_type_id;
15552 g_cust_inv_rec.trx_date := l_trx_rec.trx_date;
15553 g_cust_inv_rec.set_of_books_id := l_trx_rec.set_of_books_id;
15554 g_cust_inv_rec.bill_to_contact_id := l_trx_rec.bill_to_contact_id;
15555 g_cust_inv_rec.batch_id := l_trx_rec.batch_id;
15556 g_cust_inv_rec.batch_source_id := l_trx_rec.batch_source_id;
15557 g_cust_inv_rec.reason_code := l_trx_rec.reason_code;
15558 g_cust_inv_rec.sold_to_customer_id := l_trx_rec.sold_to_customer_id;
15559 g_cust_inv_rec.sold_to_contact_id := l_trx_rec.sold_to_contact_id;
15560 g_cust_inv_rec.sold_to_site_use_id := l_trx_rec.sold_to_site_use_id;
15561 g_cust_inv_rec.bill_to_customer_id := l_trx_rec.bill_to_customer_id;
15562 g_cust_inv_rec.bill_to_site_use_id := l_trx_rec.bill_to_site_use_id;
15563 g_cust_inv_rec.ship_to_customer_id := l_trx_rec.ship_to_customer_id;
15564 g_cust_inv_rec.ship_to_contact_id := l_trx_rec.ship_to_contact_id;
15565 g_cust_inv_rec.ship_to_site_use_id := l_trx_rec.ship_to_site_use_id;
15566 g_cust_inv_rec.shipment_id := l_trx_rec.shipment_id;
15567 g_cust_inv_rec.remit_to_address_id := l_trx_rec.remit_to_address_id;
15568 g_cust_inv_rec.term_id := l_trx_rec.term_id;
15569 g_cust_inv_rec.term_due_date := l_trx_rec.term_due_date;
15570 g_cust_inv_rec.previous_customer_trx_id := l_trx_rec.previous_customer_trx_id;
15571 g_cust_inv_rec.primary_salesrep_id := l_trx_rec.primary_salesrep_id;
15572 g_cust_inv_rec.printing_original_date := l_trx_rec.printing_original_date;
15573 g_cust_inv_rec.printing_last_printed := l_trx_rec.printing_last_printed;
15574 g_cust_inv_rec.payment_server_order_num := l_trx_rec.payment_server_order_num;
15575 g_cust_inv_rec.approval_code := l_trx_rec.approval_code;
15576 g_cust_inv_rec.address_verification_code := l_trx_rec.address_verification_code;
15577 g_cust_inv_rec.old_trx_number := l_trx_rec.old_trx_number;
15578 g_cust_inv_rec.br_amount := l_trx_rec.br_amount;
15579 g_cust_inv_rec.br_unpaid_flag := l_trx_rec.br_unpaid_flag;
15580 g_cust_inv_rec.br_on_hold_flag := l_trx_rec.br_on_hold_flag;
15581 g_cust_inv_rec.drawee_id := l_trx_rec.drawee_id;
15582 g_cust_inv_rec.drawee_contact_id := l_trx_rec.drawee_contact_id;
15583 g_cust_inv_rec.drawee_site_use_id := l_trx_rec.drawee_site_use_id;
15584 ELSE
15585 RAISE next_app;
15586 END IF;
15587
15588 IF cu_trx%ISOPEN THEN
15589 CLOSE cu_trx;
15590 END IF;
15591
15592 IF p_inv_cm = 'C' THEN
15593 convert_ra_inv_to_cm
15594 ( p_inv_ra_rec => p_app_rec,
15595 p_cm_trx_id => g_cust_inv_rec.customer_trx_id,
15596 x_cm_ra_rec => l_app_rec,
15597 p_mode => 'BATCH',
15598 p_gt_id => p_gt_id);
15599 ELSE
15600 l_app_rec := p_app_rec;
15601 END IF;
15602
15603 conv_acctd_amt_upg(p_pay_adj => 'APP',
15604 p_adj_rec => l_adj_rec,
15605 p_app_rec => l_app_rec,
15606 p_ae_sys_rec => p_ae_sys_rec);
15607
15608 IF g_line_ed <> 0 OR
15609 g_acctd_line_ed <> 0 OR
15610 g_chrg_ed <> 0 OR
15611 g_acctd_chrg_ed <> 0 OR
15612 g_frt_ed <> 0 OR
15613 g_acctd_frt_ed <> 0 OR
15614 g_tax_ed <> 0 OR
15615 g_acctd_tax_ed <> 0
15616 THEN
15617 g_ed_req := 'Y';
15618 ELSE
15619 g_ed_req := 'N';
15620 END IF;
15621
15622
15623 IF g_line_uned <> 0 OR
15624 g_acctd_line_uned <> 0 OR
15625 g_chrg_uned <> 0 OR
15626 g_acctd_chrg_uned <> 0 OR
15627 g_frt_uned <> 0 OR
15628 g_acctd_frt_uned <> 0 OR
15629 g_tax_uned <> 0 OR
15630 g_acctd_tax_uned <> 0
15631 THEN
15632 g_uned_req := 'Y';
15633 ELSE
15634 g_uned_req := 'N';
15635 END IF;
15636
15637 IF p_cash_mfar = 'CASH' THEN
15638
15639 IF PG_DEBUG = 'Y' THEN
15640 localdebug('p_gt_id:'||p_gt_id);
15641 END IF;
15642
15643 UPDATE RA_AR_GT SET
15644 tl_alloc_amt = DECODE(account_class,'REV' ,g_line_applied,
15645 'INVOICE' ,g_line_applied,0)
15646 , tl_alloc_acctd_amt = DECODE(account_class,'REV' ,g_acctd_line_applied,
15647 'INVOICE' ,g_acctd_line_applied,0)
15648 , tl_chrg_alloc_amt = DECODE(account_class,'CHARGES' ,g_chrg_applied,
15649 'INVOICE' ,g_chrg_applied,0)
15650 , tl_chrg_alloc_acctd_amt = DECODE(account_class,'CHARGES' ,g_acctd_chrg_applied,
15651 'INVOICE' ,g_acctd_chrg_applied,0)
15652 , tl_frt_alloc_amt = DECODE(account_class,'FREIGHT' ,g_frt_applied,
15653 'INVOICE' ,g_frt_applied,0)
15654 , tl_frt_alloc_acctd_amt = DECODE(account_class,'FREIGHT' ,g_acctd_frt_applied,
15655 'INVOICE' ,g_acctd_frt_applied,0)
15656 , tl_tax_alloc_amt = DECODE(account_class,'TAX' ,g_tax_applied,
15657 'INVOICE' ,g_tax_applied,0)
15658 , tl_tax_alloc_acctd_amt = DECODE(account_class,'TAX' ,g_acctd_tax_applied,
15659 'INVOICE' ,g_acctd_tax_applied,0)
15660 --
15661 , tl_ed_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_line_ed,0),0)
15662 , tl_ed_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_acctd_line_ed,0),0)
15663 , tl_ed_chrg_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_chrg_ed,0),0)
15664 , tl_ed_chrg_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_acctd_chrg_ed,0),0)
15665 , tl_ed_frt_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_frt_ed,0),0)
15666 , tl_ed_frt_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_acctd_frt_ed,0),0)
15667 , tl_ed_tax_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_tax_ed,0),0)
15668 , tl_ed_tax_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_acctd_tax_ed,0),0)
15669 --
15670 , tl_uned_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_line_uned,0),0)
15671 , tl_uned_alloc_acctd_amt= DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_acctd_line_uned,0),0)
15672 , tl_uned_chrg_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_chrg_uned,0),0)
15673 , tl_uned_chrg_alloc_acctd_amt= DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_acctd_chrg_uned,0),0)
15674 , tl_uned_frt_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_frt_uned,0),0)
15675 , tl_uned_frt_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_acctd_frt_uned,0),0)
15676 , tl_uned_tax_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_tax_uned,0),0)
15677 , tl_uned_tax_alloc_acctd_amt =DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_acctd_tax_uned,0),0)
15678 --
15679 , gt_id = p_gt_id
15680 , source_id = p_app_rec.receivable_application_id
15681 , source_table ='RA'
15682 , base_currency = p_ae_sys_rec.base_currency
15683 WHERE ref_customer_trx_id = g_cust_inv_rec.customer_trx_id;
15684
15685 UPDATE ar_base_dist_amts_gt
15686 set gt_id = p_gt_id
15687 , source_id = p_app_rec.receivable_application_id
15688 , source_table ='RA'
15689 WHERE ref_customer_trx_id = g_cust_inv_rec.customer_trx_id;
15690
15691
15692 ELSIF p_cash_mfar = 'MFAR' THEN
15693
15694 UPDATE RA_AR_GT SET
15695 tl_alloc_amt = DECODE(account_class,'REV' ,g_line_applied,0)
15696 ,tl_alloc_acctd_amt = DECODE(account_class,'REV' ,g_acctd_line_applied,0)
15697 ,tl_chrg_alloc_amt = g_chrg_applied
15698 ,tl_chrg_alloc_acctd_amt = g_acctd_chrg_applied
15699 ,tl_frt_alloc_amt = DECODE(account_class,'FREIGHT' ,g_frt_applied,0)
15700 ,tl_frt_alloc_acctd_amt = DECODE(account_class,'FREIGHT' ,g_acctd_frt_applied,0)
15701 ,tl_tax_alloc_amt = DECODE(account_class,'TAX' ,g_tax_applied,0)
15702 ,tl_tax_alloc_acctd_amt = DECODE(account_class,'TAX' ,g_acctd_tax_applied,0)
15703 --
15704 ,tl_ed_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_line_ed,0),0)
15705 ,tl_ed_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_acctd_line_ed,0),0)
15706 ,tl_ed_chrg_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_chrg_ed,0),0)
15707 ,tl_ed_chrg_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_acctd_chrg_ed,0),0)
15708 ,tl_ed_frt_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_frt_ed,0),0)
15709 ,tl_ed_frt_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_acctd_frt_ed,0),0)
15710 ,tl_ed_tax_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_tax_ed,0),0)
15711 ,tl_ed_tax_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_acctd_tax_ed,0),0)
15712 --
15713 ,tl_uned_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_line_uned,0),0)
15714 ,tl_uned_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_acctd_line_uned,0),0)
15715 ,tl_uned_chrg_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_chrg_uned,0),0)
15716 ,tl_uned_chrg_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_acctd_chrg_uned,0),0)
15717 ,tl_uned_frt_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_frt_uned,0),0)
15718 ,tl_uned_frt_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_acctd_frt_uned,0),0)
15719 ,tl_uned_tax_alloc_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_tax_uned,0),0)
15720 ,tl_uned_tax_alloc_acctd_amt = DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_acctd_tax_uned,0),0)
15721 --
15722 ,gt_id = p_gt_id
15723 ,source_id = p_app_rec.receivable_application_id
15724 ,source_table = 'RA'
15725 ,base_currency = p_ae_sys_rec.base_currency
15726 WHERE ref_customer_trx_id = g_cust_inv_rec.customer_trx_id;
15727
15728 UPDATE ar_base_dist_amts_gt
15729 set gt_id = p_gt_id
15730 , source_id = p_app_rec.receivable_application_id
15731 , source_table ='RA'
15732 WHERE ref_customer_trx_id = g_cust_inv_rec.customer_trx_id;
15733
15734 END IF;
15735
15736 -- delete from ra_ar;
15737 -- insert into ra_ar select * from ra_ar_gt;
15738
15739
15740 --g_se_gt_id := USERENV('SESSIONID');
15741
15742 update_dist
15743 (p_gt_id => p_gt_id,
15744 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
15745 p_ae_sys_rec => p_ae_sys_rec);
15746
15747 create_split_distribution
15748 (p_pay_adj => 'APP',
15749 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
15750 p_gt_id => p_gt_id,
15751 p_app_level => 'RL',
15752 p_ae_sys_rec => p_ae_sys_rec);
15753
15754 update_from_gt
15755 (p_from_amt => p_app_rec.amount_applied_from,
15756 p_from_acctd_amt => p_app_rec.acctd_amount_applied_from,
15757 p_ae_sys_rec => p_ae_sys_rec,
15758 p_app_rec => l_app_rec,
15759 p_gt_id => p_gt_id);
15760
15761
15762 insert_ard_gt(p_gt_id => p_gt_id,
15763 x_exec_status =>l_exec_status );
15764
15765 --IF l_exec_status = 'Y' THEN
15766 -- UPDATE ar_receivable_applications_all
15767 -- SET upgrade_method = 'R12_11ICASH_POST'
15768 -- WHERE receivable_application_id = p_app_rec.receivable_application_id;
15769 --END IF;
15770
15771
15772 END IF;
15773
15774 EXCEPTION
15775 WHEN next_app THEN NULL;
15776 END;
15777
15778 -- OLTP legacy transaction with 11I adjustments
15779
15780 PROCEDURE check_legacy_status
15781 (p_trx_id IN NUMBER,
15782 p_adj_id IN NUMBER DEFAULT NULL,
15783 p_app_id IN NUMBER DEFAULT NULL,
15784 x_11i_adj OUT NOCOPY VARCHAR2,
15785 x_mfar_adj OUT NOCOPY VARCHAR2,
15786 x_11i_app OUT NOCOPY VARCHAR2,
15787 x_mfar_app OUT NOCOPY VARCHAR2)
15788 IS
15789 CURSOR c IS
15790 SELECT tt.psa_trx_type_id psa_tt_id,
15791 (SELECT adjustment_id
15792 FROM ar_adjustments adj
15793 WHERE customer_trx_id = trx.customer_trx_id
15794 AND upgrade_method = '11I'
15795 AND rownum = 1) c11iadj,
15796 (SELECT adjustment_id
15797 FROM ar_adjustments adj
15798 WHERE customer_trx_id = trx.customer_trx_id
15799 AND upgrade_method = '11IMFAR'
15800 AND rownum = 1) mfadj,
15801 (SELECT app.receivable_application_id
15802 FROM ar_receivable_applications app
15803 WHERE app.applied_customer_trx_id = trx.customer_trx_id
15804 AND app.upgrade_method IS NULL
15805 AND NVL(p_app_id,-9) <> app.receivable_application_id -- excluded the current app record
15806 AND rownum = 1) app11i,
15807 (SELECT receivable_application_id
15808 FROM ar_receivable_applications app
15809 WHERE app.customer_trx_id = trx.customer_trx_id
15810 AND app.upgrade_method IS NULL
15811 AND NVL(p_app_id,-9) <> app.receivable_application_id -- excluded the current app record
15812 AND rownum = 1) cmapp11i
15813 FROM ra_customer_trx trx,
15814 psa_trx_types_all tt
15815 WHERE trx.customer_trx_id = p_trx_id
15816 AND trx.cust_trx_type_id = tt.psa_trx_type_id(+);
15817
15818 l_record c%ROWTYPE;
15819
15820 BEGIN
15821 IF PG_DEBUG = 'Y' THEN
15822 localdebug('arp_det_dist_pkg.check_legacy_status()+');
15823 END IF;
15824
15825 OPEN c;
15826 FETCH c INTO l_record;
15827 IF c%NOTFOUND THEN
15828 x_11i_adj := 'N';
15829 x_mfar_adj := 'N';
15830 x_11i_app := 'N';
15831 x_mfar_app := 'N';
15832 ELSE
15833 -- c11iadj and mfadj can never be 'Y' at the same time
15834 IF l_record.c11iadj IS NOT NULL THEN
15835 x_11i_adj := 'Y';
15836 ELSE
15837 x_11i_adj := 'N';
15838 END IF;
15839 IF l_record.mfadj IS NOT NULL THEN
15840 x_mfar_adj := 'Y';
15841 ELSE
15842 x_mfar_adj := 'N';
15843 END IF;
15844
15845 IF l_record.app11i IS NOT NULL OR l_record.cmapp11i IS NOT NULL THEN
15846 -- application does exist
15847 IF l_record.psa_tt_id IS NOT NULL THEN
15848 -- the app are mfar in 11i
15849 x_11i_app := 'N';
15850 x_mfar_app := 'Y';
15851 ELSE
15852 -- the app are accrual in 11i
15853 x_11i_app := 'Y';
15854 x_mfar_app := 'N';
15855 END IF;
15856 ELSE
15857 -- no application on this trx
15858 x_11i_app := 'N';
15859 x_mfar_app := 'N';
15860 END IF;
15861 END IF;
15862 CLOSE c;
15863 IF PG_DEBUG = 'Y' THEN
15864 localdebug(' 11i adj existence :'||x_11i_adj);
15865 localdebug(' 11i mfar adj existence:'||x_mfar_adj);
15866 localdebug(' 11i app existence :'||x_11i_app);
15867 localdebug(' 11i mfar app existence:'||x_mfar_app);
15868 localdebug('arp_det_dist_pkg.check_legacy_status()-');
15869 END IF;
15870 EXCEPTION
15871 WHEN OTHERS THEN
15872 IF PG_DEBUG = 'Y' THEN
15873 localdebug(' EXCEPTION OTHERS check_legacy_status :'||SQLERRM);
15874 END IF;
15875 END check_legacy_status;
15876
15877
15878
15879
15880 PROCEDURE check_lazy_apply_req
15881 (p_trx_id IN NUMBER,
15882 x_out_res OUT NOCOPY VARCHAR2)
15883 IS
15884 CURSOR c11I IS
15885 SELECT 'Y'
15886 FROM ar_adjustments adj
15887 WHERE adj.customer_trx_id = p_trx_id
15888 AND adj.status = 'A'
15889 AND adj.postable = 'Y'
15890 AND adj.upgrade_method IN ('11I','11IMFAR') ;
15891
15892 BEGIN
15893 IF PG_DEBUG = 'Y' THEN
15894 localdebug('arp_det_dist_pkg.check_lazy_apply_req()+');
15895 END IF;
15896 OPEN c11I;
15897 FETCH c11I INTO x_out_res;
15898 IF c11I%NOTFOUND THEN
15899 x_out_res := 'N';
15900 END IF;
15901 CLOSE c11I;
15902 IF PG_DEBUG = 'Y' THEN
15903 localdebug(' x_out_res : '|| x_out_res);
15904 localdebug('arp_det_dist_pkg.check_lazy_apply_req()-');
15905 END IF;
15906 END;
15907
15908
15909
15910 PROCEDURE check_mf_trx
15911 ( p_cust_trx_type_id IN NUMBER,
15912 x_out_res OUT NOCOPY VARCHAR2)
15913 IS
15914 CURSOR c1 IS
15915 SELECT 'Y'
15916 FROM psa_trx_types_all
15917 WHERE psa_trx_type_id = p_cust_trx_type_id;
15918 is_mf_trx VARCHAR2(1);
15919 BEGIN
15920 OPEN c1;
15921 FETCH c1 INTO is_mf_trx;
15922 IF c1%NOTFOUND THEN
15923 is_mf_trx := 'N';
15924 ELSE
15925 is_mf_trx := 'Y';
15926 END IF;
15927 CLOSE c1;
15928 x_out_res := is_mf_trx;
15929 END;
15930
15931
15932 PROCEDURE online_lazy_apply
15933 (p_customer_trx IN ra_customer_trx%ROWTYPE,
15934 p_app_rec IN ar_receivable_applications%ROWTYPE,
15935 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
15936 p_gt_id IN NUMBER,
15937 --Add the p_inv_cm flag
15938 p_inv_cm IN VARCHAR2 DEFAULT 'I')
15939 IS
15940 l_adj_rec ar_adjustments%ROWTYPE;
15941 l_app_rec ar_receivable_applications%ROWTYPE;
15942 BEGIN
15943 IF PG_DEBUG = 'Y' THEN
15944 localdebug('arp_det_dist_pkg.Online_lazy_apply()+');
15945 localdebug(' p_app_rec.applied_customer_trx_id : '||p_app_rec.applied_customer_trx_id);
15946 localdebug(' p_gt_id : '||p_gt_id);
15947 END IF;
15948
15949 ar_upgrade_cash_accrual.get_direct_inv_dist
15950 (p_mode => 'OLTP',
15951 p_trx_id => p_app_rec.applied_customer_trx_id,
15952 p_gt_id => p_gt_id);
15953
15954 ar_upgrade_cash_accrual.get_direct_adj_dist
15955 (p_mode => 'OLTP',
15956 p_trx_id => p_app_rec.applied_customer_trx_id,
15957 p_gt_id => p_gt_id);
15958
15959 ar_upgrade_cash_accrual.get_direct_inv_adj_dist
15960 (p_mode => 'OLTP',
15961 p_trx_id => p_app_rec.applied_customer_trx_id,
15962 p_gt_id => p_gt_id);
15963
15964 ar_upgrade_cash_accrual.update_base
15965 (p_gt_id => p_gt_id);
15966
15967 -- g_se_gt_id := USERENV('SESSIONID');
15968
15969 g_cust_inv_rec := p_customer_trx;
15970
15971 IF p_inv_cm = 'C' THEN
15972 convert_ra_inv_to_cm
15973 (p_inv_ra_rec => p_app_rec ,
15974 p_cm_trx_id => g_cust_inv_rec.customer_trx_id,
15975 x_cm_ra_rec => l_app_rec,
15976 p_mode => 'OLTP',
15977 p_gt_id => p_gt_id);
15978 ELSE
15979 l_app_rec := p_app_rec;
15980 END IF;
15981
15982 conv_acctd_amt(p_pay_adj => 'APP',
15983 p_adj_rec => l_adj_rec,
15984 p_app_rec => l_app_rec,
15985 p_ae_sys_rec => p_ae_sys_rec);
15986
15987
15988 IF g_line_ed <> 0 OR
15989 g_acctd_line_ed <> 0 OR
15990 g_chrg_ed <> 0 OR
15991 g_acctd_chrg_ed <> 0 OR
15992 g_frt_ed <> 0 OR
15993 g_acctd_frt_ed <> 0 OR
15994 g_tax_ed <> 0 OR
15995 g_acctd_tax_ed <> 0
15996 THEN
15997 g_ed_req := 'Y';
15998 ELSE
15999 g_ed_req := 'N';
16000 END IF;
16001
16002
16003 IF g_line_uned <> 0 OR
16004 g_acctd_line_uned <> 0 OR
16005 g_chrg_uned <> 0 OR
16006 g_acctd_chrg_uned <> 0 OR
16007 g_frt_uned <> 0 OR
16008 g_acctd_frt_uned <> 0 OR
16009 g_tax_uned <> 0 OR
16010 g_acctd_tax_uned <> 0
16011 THEN
16012 g_uned_req := 'Y';
16013 ELSE
16014 g_uned_req := 'N';
16015 END IF;
16016
16017
16018 UPDATE RA_AR_GT a SET
16019 ( tl_alloc_amt ,
16020 tl_alloc_acctd_amt ,
16021 tl_chrg_alloc_amt ,
16022 tl_chrg_alloc_acctd_amt,
16023 tl_frt_alloc_amt ,
16024 tl_frt_alloc_acctd_amt,
16025 tl_tax_alloc_amt ,
16026 tl_tax_alloc_acctd_amt,
16027 --
16028 tl_ed_alloc_amt ,
16029 tl_ed_alloc_acctd_amt ,
16030 tl_ed_chrg_alloc_amt ,
16031 tl_ed_chrg_alloc_acctd_amt,
16032 tl_ed_frt_alloc_amt ,
16033 tl_ed_frt_alloc_acctd_amt,
16034 tl_ed_tax_alloc_amt ,
16035 tl_ed_tax_alloc_acctd_amt,
16036 --
16037 tl_uned_alloc_amt ,
16038 tl_uned_alloc_acctd_amt ,
16039 tl_uned_chrg_alloc_amt ,
16040 tl_uned_chrg_alloc_acctd_amt,
16041 tl_uned_frt_alloc_amt ,
16042 tl_uned_frt_alloc_acctd_amt,
16043 tl_uned_tax_alloc_amt ,
16044 tl_uned_tax_alloc_acctd_amt,
16045 --
16046 gt_id,
16047 -- se_gt_id,
16048 source_id,
16049 source_table,
16050 base_currency) =
16051 (SELECT /*+INDEX (b ra_ar_n1)*/
16052 DECODE(account_class,'REV' ,g_line_applied,
16053 'INVOICE' ,g_line_applied,0) -- tl_alloc_amt
16054 , DECODE(account_class,'REV' ,g_acctd_line_applied,
16055 'INVOICE' ,g_acctd_line_applied,0) -- tl_alloc_acctd_amt
16056 , DECODE(account_class,'CHARGES' ,g_chrg_applied,
16057 'INVOICE' ,g_chrg_applied,0) -- tl_chrg_alloc_amt
16058 , DECODE(account_class,'CHARGES' ,g_acctd_chrg_applied,
16059 'INVOICE' ,g_acctd_chrg_applied,0) -- tl_chrg_alloc_acctd_amt
16060 , DECODE(account_class,'FREIGHT' ,g_frt_applied,
16061 'INVOICE' ,g_frt_applied,0) -- tl_frt_alloc_amt
16062 , DECODE(account_class,'FREIGHT' ,g_acctd_frt_applied,
16063 'INVOICE' ,g_acctd_frt_applied,0) -- tl_frt_alloc_acctd_amt
16064 , DECODE(account_class,'TAX' ,g_tax_applied,
16065 'INVOICE' ,g_tax_applied,0) -- tl_tax_alloc_amt
16066 , DECODE(account_class,'TAX' ,g_acctd_tax_applied,
16067 'INVOICE' ,g_acctd_tax_applied,0) -- tl_tax_alloc_acctd_amt
16068 --
16069 , DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_line_ed,0),0) -- tl_ed_alloc_amt
16070 , DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_acctd_line_ed,0),0) -- tl_ed_alloc_acctd_amt
16071 , DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_chrg_ed,0),0) -- tl_ed_chrg_alloc_amt
16072 , DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_acctd_chrg_ed,0),0) -- tl_ed_chrg_alloc_acctd_amt
16073 , DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_frt_ed,0),0) -- tl_ed_frt_alloc_amt
16074 , DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_acctd_frt_ed,0),0) -- tl_ed_frt_alloc_acctd_amt
16075 , DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_tax_ed,0),0) -- tl_ed_tax_alloc_amt
16076 , DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_acctd_tax_ed,0),0) -- tl_ed_tax_alloc_acctd_amt
16077 --
16078 , DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_line_uned,0),0) -- tl_uned_alloc_amt
16079 , DECODE(source_type,NULL,DECODE(account_class,'REV' ,g_acctd_line_uned,0),0) -- tl_uned_alloc_acctd_amt
16080 , DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_chrg_uned,0),0) -- tl_uned_chrg_alloc_amt
16081 , DECODE(source_type,NULL,DECODE(account_class,'CHARGES',g_acctd_chrg_uned,0),0) -- tl_uned_chrg_alloc_acctd_amt
16082 , DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_frt_uned,0),0) -- tl_uned_frt_alloc_amt
16083 , DECODE(source_type,NULL,DECODE(account_class,'FREIGHT',g_acctd_frt_uned,0),0) -- tl_uned_frt_alloc_acctd_amt
16084 , DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_tax_uned,0),0) -- tl_uned_tax_alloc_amt
16085 , DECODE(source_type,NULL,DECODE(account_class,'TAX' ,g_acctd_tax_uned,0),0) -- tl_uned_tax_alloc_acctd_amt
16086 , p_gt_id
16087 --, USERENV('SESSIONID')
16088 , p_app_rec.receivable_application_id
16089 , 'RA'
16090 , p_ae_sys_rec.base_currency
16091 FROM ra_ar_gt b
16092 WHERE a.rowid = b.rowid
16093 AND a.gt_id = p_gt_id);
16094
16095 -- delete from ra_ar;
16096 -- insert into ra_ar select * from ra_ar_gt;
16097
16098 update_dist
16099 (p_gt_id => p_gt_id,
16100 p_customer_trx_id => l_app_rec.applied_customer_trx_id,
16101 p_ae_sys_rec => p_ae_sys_rec);
16102
16103 create_split_distribution
16104 (p_pay_adj => 'APP',
16105 p_customer_trx_id => l_app_rec.applied_customer_trx_id,
16106 p_gt_id => p_gt_id,
16107 p_app_level => 'RL',
16108 p_ae_sys_rec => p_ae_sys_rec);
16109
16110 --{ For R12_11ICASH maintain from_acctd_amt
16111 update_from_gt
16112 (p_from_amt => l_app_rec.AMOUNT_APPLIED_FROM,
16113 p_from_acctd_amt => l_app_rec.ACCTD_AMOUNT_APPLIED_FROM,
16114 p_ae_sys_rec => p_ae_sys_rec,
16115 p_app_rec => p_app_rec);
16116 --}
16117
16118 --delete from hy_line_application_detail;
16119 --insert into hy_line_application_detail select * from AR_LINE_APP_DETAIL_GT;
16120
16121
16122 UPDATE ar_receivable_applications_all
16123 SET upgrade_method = 'R12_11ICASH'
16124 WHERE receivable_application_id = l_app_rec.receivable_application_id;
16125
16126 IF PG_DEBUG = 'Y' THEN
16127 localdebug('arp_det_dist_pkg.Online_lazy_apply()-');
16128 END IF;
16129 EXCEPTION
16130 WHEN OTHERS THEN
16131 localdebug('OTHERS : Online_lazy_apply '||SQLERRM);
16132 RAISE;
16133 END;
16134 --}
16135
16136
16137
16138 /*-----------------------------------------------------------------------------+
16139 | Procedure get_latest_amount_remaining |
16140 +-----------------------------------------------------------------------------+
16141 | Parameter : |
16142 | p_customer_trx_id The invoice ID |
16143 | p_app_level Application Level (TRANSACTION/GROUP/LINE) |
16144 | p_group_id Group_id req when Application level is GROUP |
16145 | p_ctl_id customer_trx_line_id required when the application level |
16146 | is LINE |
16147 | OUT |
16148 | x_line_rem The remaining revenue amount for the level |
16149 | x_tax_rem The remaining tax amount for the level |
16150 | x_freight_rem The remaining freight amount for the level TRANSACTION only|
16151 | x_charges_rem The remaining charges amount for the level TRANSACTION only|
16152 +-----------------------------------------------------------------------------+
16153 | Action : |
16154 | Read the remaining amount on ra_customer_trx_lines_gt |
16155 +-----------------------------------------------------------------------------*/
16156 PROCEDURE get_latest_amount_remaining
16157 (p_customer_trx_id IN NUMBER,
16158 p_app_level IN VARCHAR2 DEFAULT 'TRANSACTION',
16159 p_source_data_key1 IN VARCHAR2 DEFAULT NULL,
16160 p_source_data_key2 IN VARCHAR2 DEFAULT NULL,
16161 p_source_data_key3 IN VARCHAR2 DEFAULT NULL,
16162 p_source_data_key4 IN VARCHAR2 DEFAULT NULL,
16163 p_source_data_key5 IN VARCHAR2 DEFAULT NULL,
16164 p_ctl_id IN NUMBER DEFAULT NULL,
16165 x_line_rem OUT NOCOPY NUMBER,
16166 x_tax_rem OUT NOCOPY NUMBER,
16167 x_freight_rem OUT NOCOPY NUMBER,
16168 x_charges_rem OUT NOCOPY NUMBER,
16169 x_return_status OUT NOCOPY VARCHAR2,
16170 x_msg_data OUT NOCOPY VARCHAR2,
16171 x_msg_count OUT NOCOPY NUMBER)
16172 IS
16173 CURSOR c_trx IS
16174 SELECT /*+INDEX (ra_customer_trx_lines_gt ra_customer_trx_lines_gt_n1)*/
16175 SUM(DECODE(line_type,'LINE',NVL(AMOUNT_DUE_REMAINING,0))) line_rem,
16176 SUM(DECODE(line_type,'TAX' ,NVL(AMOUNT_DUE_REMAINING,0))) tax_rem,
16177 SUM(DECODE(line_type,'LINE',NVL(CHRG_AMOUNT_REMAINING,0))) +
16178 SUM(DECODE(line_type,'CHARGES',NVL(AMOUNT_DUE_REMAINING,0))) chrg_rem,
16179 SUM(DECODE(line_type,'LINE',NVL(FRT_ADJ_REMAINING,0))) +
16180 SUM(DECODE(line_type,'FREIGHT',NVL(AMOUNT_DUE_REMAINING,0))) frt_rem
16181 FROM ra_customer_trx_lines_gt
16182 WHERE CUSTOMER_TRX_ID = p_customer_trx_id;
16183
16184 CURSOR c_line IS
16185 SELECT /*+INDEX (ra_customer_trx_lines_gt ra_customer_trx_lines_gt_n1)*/
16186 SUM(DECODE(line_type,'LINE',NVL(AMOUNT_DUE_REMAINING,0))) line_rem,
16187 SUM(DECODE(line_type,'TAX' ,NVL(AMOUNT_DUE_REMAINING,0))) tax_rem,
16188 SUM(DECODE(line_type,'LINE',NVL(CHRG_AMOUNT_REMAINING,0))) +
16189 SUM(DECODE(line_type,'CHARGES',NVL(AMOUNT_DUE_REMAINING,0))) chrg_rem,
16190 SUM(DECODE(line_type,'LINE',NVL(FRT_ADJ_REMAINING,0))) +
16191 SUM(DECODE(line_type,'FREIGHT',NVL(AMOUNT_DUE_REMAINING,0))) frt_rem
16192 FROM ra_customer_trx_lines_gt
16193 WHERE CUSTOMER_TRX_ID = p_customer_trx_id
16194 AND DECODE(line_type,'LINE',customer_trx_line_id, LINK_TO_CUST_TRX_LINE_ID) = p_ctl_id;
16195
16196 CURSOR c_gp IS
16197 SELECT /*+INDEX (ra_customer_trx_lines_gt ra_customer_trx_lines_gt_n1)*/
16198 SUM(DECODE(line_type,'LINE',NVL(AMOUNT_DUE_REMAINING,0))) line_rem,
16199 SUM(DECODE(line_type,'TAX' ,NVL(AMOUNT_DUE_REMAINING,0))) tax_rem,
16200 SUM(DECODE(line_type,'LINE',NVL(CHRG_AMOUNT_REMAINING,0))) +
16201 SUM(DECODE(line_type,'CHARGES',NVL(AMOUNT_DUE_REMAINING,0))) chrg_rem,
16202 SUM(DECODE(line_type,'LINE',NVL(FRT_ADJ_REMAINING,0))) +
16203 SUM(DECODE(line_type,'FREIGHT',NVL(AMOUNT_DUE_REMAINING,0))) frt_rem
16204 FROM ra_customer_trx_lines_gt
16205 WHERE CUSTOMER_TRX_ID = p_customer_trx_id
16206 AND source_data_key1 = p_source_data_key1
16207 AND source_data_key2 = p_source_data_key2
16208 AND source_data_key3 = p_source_data_key3
16209 AND source_data_key4 = p_source_data_key4
16210 AND source_data_key5 = p_source_data_key5;
16211 BEGIN
16212 IF PG_DEBUG = 'Y' THEN
16213 localdebug('arp_det_dist_pkg.get_latest_amount_remaining()+');
16214 localdebug(' p_customer_trx_id :'||p_customer_trx_id);
16215 localdebug(' p_app_level :'||p_app_level);
16216 localdebug(' p_source_data_key1:'||p_source_data_key1);
16217 localdebug(' p_source_data_key2:'||p_source_data_key2);
16218 localdebug(' p_source_data_key3:'||p_source_data_key3);
16219 localdebug(' p_source_data_key4:'||p_source_data_key4);
16220 localdebug(' p_source_data_key5:'||p_source_data_key5);
16221 localdebug(' p_ctl_id :'||p_ctl_id);
16222 END IF;
16223 IF p_app_level = 'TRANSACTION' THEN
16224 OPEN c_trx;
16225 FETCH c_trx INTO x_line_rem, x_tax_rem, x_charges_rem, x_freight_rem;
16226 CLOSE c_trx;
16227 ELSIF p_app_level = 'GROUP' THEN
16228 OPEN c_gp;
16229 FETCH c_gp INTO x_line_rem, x_tax_rem, x_charges_rem, x_freight_rem;
16230 CLOSE c_gp;
16231 ELSIF p_app_level = 'LINE' THEN
16232 OPEN c_line;
16233 FETCH c_line INTO x_line_rem, x_tax_rem, x_charges_rem, x_freight_rem;
16234 CLOSE c_line;
16235 END IF;
16236 IF PG_DEBUG = 'Y' THEN
16237 localdebug(' x_line_rem :'||x_line_rem);
16238 localdebug(' x_tax_rem :'||x_tax_rem);
16239 localdebug(' x_freight_rem :'||x_freight_rem);
16240 localdebug(' x_charges_rem :'||x_charges_rem);
16241 localdebug('arp_det_dist_pkg.get_latest_amount_remaining()-');
16242 END IF;
16243 EXCEPTION
16244 WHEN NO_DATA_FOUND THEN
16245 IF PG_DEBUG = 'Y' THEN
16246 localdebug('EXCEPTION NO_DATA_FOUND get_latest_amount_remaining:'||SQLERRM);
16247 END IF;
16248 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR' );
16249 FND_MESSAGE.SET_TOKEN( 'TEXT', 'get_latest_amount_remaining NO_DATA_FOUND
16250 p_customer_trx_id :'||p_customer_trx_id||'
16251 p_app_level :'||p_app_level||'
16252 p_ctl_id :'||p_ctl_id||'
16253 p_source_data_key1:'||p_source_data_key1||'
16254 p_source_data_key2:'||p_source_data_key2||'
16255 p_source_data_key3:'||p_source_data_key3||'
16256 p_source_data_key4:'||p_source_data_key4||'
16257 p_source_data_key5:'||p_source_data_key5);
16258 FND_MSG_PUB.ADD;
16259 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
16260 p_count => x_msg_count,
16261 p_data => x_msg_data);
16262 x_return_status := FND_API.G_RET_STS_SUCCESS;
16263 WHEN OTHERS THEN
16264 IF PG_DEBUG = 'Y' THEN
16265 localdebug('EXCEPTION OTHERS get_latest_amount_remaining:'||SQLERRM);
16266 END IF;
16267 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR' );
16268 FND_MESSAGE.SET_TOKEN( 'TEXT', 'arp_process_det_pkg.get_latest_amount_remaining-'||SQLERRM );
16269 FND_MSG_PUB.ADD;
16270 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
16271 p_count => x_msg_count,
16272 p_data => x_msg_data);
16273 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
16274
16275 END get_latest_amount_remaining;
16276
16277
16278
16279 PROCEDURE convert_ra_inv_to_cm
16280 ( p_inv_ra_rec IN ar_receivable_applications%ROWTYPE,
16281 p_cm_trx_id IN NUMBER,
16282 x_cm_ra_rec IN OUT NOCOPY ar_receivable_applications%ROWTYPE,
16283 p_mode IN VARCHAR2 DEFAULT 'OLTP',
16284 p_gt_id IN VARCHAR2 DEFAULT NULL,
16285 p_from_llca IN VARCHAR2 DEFAULT 'N',
16286 p_upg_cm IN VARCHAR2 DEFAULT 'N')
16287 IS
16288 CURSOR cu_trx_balance(p_customer_trx_id IN NUMBER)
16289 IS
16290 SELECT a.Line_balance line_balance,
16291 a.Tax_Balance tax_balance,
16292 b.Frt_adj + b.Frt_ed + b.Frt_uned + b.Frt_app freight_balance,
16293 d.chrg_adj + d.chrg_app charges_balance,
16294 c.invoice_currency_code invoice_currency_code
16295 FROM
16296 (SELECT SUM(DECODE(line_type,'LINE',amount_due_remaining,0)) Line_Balance
16297 ,SUM(DECODE(line_type,'TAX',amount_due_remaining,0)) Tax_Balance
16298 ,customer_trx_id
16299 FROM ra_customer_trx_lines
16300 GROUP BY customer_trx_id) a,
16301 (SELECT SUM(DECODE(line_type,'LINE', frt_adj_remaining, 0)) Frt_adj,
16302 SUM(DECODE(line_type,'LINE', frt_ed_amount, 0)) Frt_ed,
16303 SUM(DECODE(line_type,'LINE', frt_uned_amount, 0)) Frt_uned,
16304 SUM(DECODE(line_type,'FREIGHT',amount_due_remaining, 0)) Frt_app,
16305 customer_trx_id
16306 FROM ra_customer_trx_lines
16307 GROUP BY customer_trx_id) b,
16308 (SELECT SUM(DECODE(line_type,'LINE', chrg_amount_remaining, 0)) chrg_adj,
16309 SUM(DECODE(line_type,'CHARGES',amount_due_remaining, 0)) chrg_app,
16310 customer_trx_id
16311 FROM ra_customer_trx_lines
16312 GROUP BY customer_trx_id) d,
16313 ar_payment_schedules c
16314 WHERE b.customer_trx_id = a.customer_trx_id
16315 AND a.customer_trx_id = c.customer_trx_id
16316 AND a.customer_trx_id = d.customer_trx_id
16317 AND c.customer_trx_id = p_customer_trx_id;
16318
16319
16320 CURSOR cu_cm_balance(p_customer_trx_id IN NUMBER, p_gt_id IN VARCHAR2)
16321 IS
16322 SELECT /*+INDEX (a ra_ar_n1) INDEX(ar_base_dist_amts_gt b)*/
16323 b.base_dist_amt line_balance,
16324 b.base_dist_tax_amt tax_balance,
16325 b.base_dist_frt_amt freight_balance,
16326 b.base_dist_chrg_amt charges_balance,
16327 a.to_currency invoice_currency_code
16328 FROM ra_ar_gt a,ar_base_dist_amts_gt b
16329 WHERE a.ref_customer_trx_id = p_customer_trx_id
16330 AND b.gt_id = a.gt_id
16331 AND b.gp_level = 'D'
16332 AND a.ref_customer_trx_id = b.ref_customer_trx_id
16333 AND a.ref_customer_trx_line_id = b.ref_customer_trx_line_id;
16334
16335
16336 CURSOR cu_trx_balance_nlb(p_customer_trx_id IN NUMBER)
16337 IS
16338 SELECT SUM(DECODE(a.line_type, 'LINE', sum_orig,0)) line_balance,
16339 SUM(DECODE(a.line_type, 'TAX' , sum_orig,0)) tax_balance,
16340 SUM(DECODE(a.line_type, 'FREIGHT' , sum_orig,0)) freight_balance,
16341 SUM(DECODE(a.line_type, 'CHARGES' , sum_orig,0)) charges_balance,
16342 a.invoice_currency_code invoice_currency_code
16343 FROM
16344 (SELECT SUM(ctlgd.AMOUNT) sum_orig,
16345 SUM(ctlgd.ACCTD_AMOUNT) sum_acctd_orig,
16346 ctl.line_type line_type,
16347 ctx.invoice_currency_code invoice_currency_code
16348 FROM ra_customer_trx ctx,
16349 ra_customer_trx_lines ctl,
16350 ra_cust_trx_line_gl_dist ctlgd
16351 WHERE ctx.customer_trx_id = p_customer_trx_id
16352 AND ctx.customer_trx_id = ctl.customer_trx_id
16353 AND ctl.customer_trx_line_id = ctlgd.customer_trx_line_id
16354 GROUP BY ctx.invoice_currency_code,
16355 ctl.line_type) a
16356 GROUP BY a.invoice_currency_code;
16357
16358
16359 -- l_rem_record cu_trx_balance%ROWTYPE;
16360 l_rem_line_balance NUMBER;
16361 l_rem_tax_balance NUMBER;
16362 l_rem_freight_balance NUMBER;
16363 l_rem_charges_balance NUMBER;
16364 l_rem_invoice_currency_code VARCHAR2(30);
16365 --
16366
16367 l_cm_ra_rec ar_receivable_applications%ROWTYPE;
16368 l_line_applied NUMBER;
16369 l_tax_applied NUMBER;
16370 l_freight_applied NUMBER;
16371 l_charges_applied NUMBER;
16372 l_base NUMBER;
16373 l_run_amt NUMBER;
16374 l_run_total NUMBER;
16375 l_inv_rec ra_customer_trx%ROWTYPE;
16376 no_rem_for_trx EXCEPTION;
16377 no_amount_remaining EXCEPTION;
16378 no_rem_for_trx_upg EXCEPTION;
16379
16380 BEGIN
16381 IF PG_DEBUG = 'Y' THEN
16382 localdebug('arp_det_dist_pkg.convert_ra_inv_to_cm()+');
16383 localdebug(' p_cm_trx_id :' || p_cm_trx_id);
16384 localdebug(' p_mode :' || p_mode);
16385 localdebug(' p_inv_ra_rec.amount_applied :' || p_inv_ra_rec.amount_applied);
16386 localdebug(' p_inv_ra_rec.amount_applied_from :' || p_inv_ra_rec.amount_applied_from);
16387 localdebug(' p_inv_ra_rec.acctd_amount_applied_to :' || p_inv_ra_rec.acctd_amount_applied_to);
16388 localdebug(' p_inv_ra_rec.acctd_amount_applied_from:' || p_inv_ra_rec.acctd_amount_applied_from);
16389 localdebug(' p_inv_ra_rec.line_applied :' || p_inv_ra_rec.line_applied);
16390 localdebug(' p_inv_ra_rec.tax_applied :' || p_inv_ra_rec.tax_applied);
16391 localdebug(' p_inv_ra_rec.freight_applied :' || p_inv_ra_rec.freight_applied);
16392 localdebug(' p_inv_ra_rec.receivables_charges_applied:' || p_inv_ra_rec.receivables_charges_applied);
16393 localdebug(' p_from_llca :' || p_from_llca);
16394 localdebug(' p_gt_id :' || p_gt_id);
16395 END IF;
16396
16397 x_cm_ra_rec := p_inv_ra_rec;
16398
16399 l_inv_rec.customer_trx_id := p_cm_trx_id;
16400
16401
16402 IF p_mode = 'OLTP' THEN
16403
16404 arp_det_dist_pkg.set_original_rem_amt
16405 (p_customer_trx => l_inv_rec,
16406 p_app_id => p_inv_ra_rec.receivable_application_id,
16407 --{HYUNLB
16408 p_from_llca => p_from_llca);
16409 --}
16410
16411 set_mode_process(p_customer_trx => l_inv_rec);
16412
16413 --{HYUNLB
16414 IF ( g_mode_process IN('R12_NLB') OR
16415 ( g_mode_process IN('R12_11ICASH') AND p_upg_cm = 'Y' )
16416 ) THEN
16417 IF PG_DEBUG = 'Y' THEN
16418 localdebug('opening cu_trx_balance_nlb');
16419 END IF;
16420
16421 OPEN cu_trx_balance_nlb(p_cm_trx_id);
16422 FETCH cu_trx_balance_nlb INTO -- l_rem_record;
16423 l_rem_line_balance ,
16424 l_rem_tax_balance ,
16425 l_rem_freight_balance,
16426 l_rem_charges_balance,
16427 l_rem_invoice_currency_code;
16428
16429 IF cu_trx_balance_nlb%NOTFOUND THEN
16430 RAISE no_rem_for_trx;
16431 END IF;
16432 CLOSE cu_trx_balance_nlb;
16433 IF PG_DEBUG = 'Y' THEN
16434 localdebug('closing cu_trx_balance_nlb');
16435 END IF;
16436 --}
16437 ELSIF g_mode_process IN ('R12','R12_11IMFAR') THEN
16438 IF PG_DEBUG = 'Y' THEN
16439 localdebug('opening cu_trx_balance');
16440 END IF;
16441
16442 OPEN cu_trx_balance(p_cm_trx_id);
16443 FETCH cu_trx_balance INTO -- l_rem_record;
16444 l_rem_line_balance ,
16445 l_rem_tax_balance ,
16446 l_rem_freight_balance,
16447 l_rem_charges_balance,
16448 l_rem_invoice_currency_code;
16449
16450 IF cu_trx_balance%NOTFOUND THEN
16451 RAISE no_rem_for_trx;
16452 END IF;
16453 CLOSE cu_trx_balance;
16454 IF PG_DEBUG = 'Y' THEN
16455 localdebug('closing cu_trx_balance');
16456 END IF;
16457
16458 ELSIF g_mode_process IN ('R12_11ICASH') and p_upg_cm = 'N' THEN
16459
16460 IF PG_DEBUG = 'Y' THEN
16461 localdebug('opening cu_cm_balance');
16462 END IF;
16463
16464 OPEN cu_cm_balance(p_cm_trx_id , p_gt_id) ;
16465 FETCH cu_cm_balance INTO -- l_rem_record;
16466 l_rem_line_balance ,
16467 l_rem_tax_balance ,
16468 l_rem_freight_balance,
16469 l_rem_charges_balance,
16470 l_rem_invoice_currency_code;
16471
16472 IF cu_cm_balance%NOTFOUND THEN
16473 RAISE no_rem_for_trx;
16474 END IF;
16475 CLOSE cu_cm_balance;
16476
16477 IF PG_DEBUG = 'Y' THEN
16478 localdebug('close cu_cm_balance');
16479 END IF;
16480
16481 END IF;
16482
16483 ELSIF p_mode = 'BATCH' THEN
16484
16485 IF PG_DEBUG = 'Y' THEN
16486 localdebug('opening cu_cm_balance for batch mode');
16487 END IF;
16488
16489 OPEN cu_cm_balance(p_cm_trx_id , p_gt_id) ;
16490 FETCH cu_cm_balance INTO -- l_rem_record;
16491 l_rem_line_balance ,
16492 l_rem_tax_balance ,
16493 l_rem_freight_balance,
16494 l_rem_charges_balance,
16495 l_rem_invoice_currency_code;
16496
16497 IF cu_cm_balance%NOTFOUND THEN
16498 RAISE no_rem_for_trx_upg;
16499 END IF;
16500 CLOSE cu_cm_balance;
16501
16502 IF PG_DEBUG = 'Y' THEN
16503 localdebug('close cu_cm_balance batch mode');
16504 END IF;
16505
16506 END IF;
16507
16508
16509 x_cm_ra_rec.amount_applied := p_inv_ra_rec.amount_applied * -1;
16510 x_cm_ra_rec.amount_applied_from := p_inv_ra_rec.amount_applied_from * -1;
16511 x_cm_ra_rec.acctd_amount_applied_to := p_inv_ra_rec.acctd_amount_applied_to * -1;
16512 x_cm_ra_rec.acctd_amount_applied_from := p_inv_ra_rec.acctd_amount_applied_from * -1;
16513 --
16514 l_base := NVL(l_rem_line_balance,0) +
16515 NVL(l_rem_tax_balance,0) +
16516 NVL(l_rem_freight_balance,0) +
16517 NVL(l_rem_charges_balance,0);
16518 --
16519 IF l_base = 0 THEN
16520 RAISE no_amount_remaining;
16521 END IF;
16522 --
16523 --
16524 l_run_amt := 0;
16525 l_run_total := 0;
16526
16527 -- line_applied
16528 IF PG_DEBUG = 'Y' THEN
16529 localdebug('LINE_APPLIED:');
16530 localdebug(' l_run_amt :' || l_run_amt);
16531 localdebug(' l_run_total :' || l_run_total);
16532 localdebug(' l_rem_line_balance :' || NVL(l_rem_line_balance,0));
16533 localdebug(' p_inv_ra_rec.amount_applied :' || NVL(p_inv_ra_rec.amount_applied,0));
16534 localdebug(' l_base :' || l_base);
16535 END IF;
16536 l_run_amt := l_run_amt + NVL(l_rem_line_balance,0);
16537 l_line_applied := CurrRound( l_run_amt * NVL(p_inv_ra_rec.amount_applied,0)
16538 / l_base, l_rem_invoice_currency_code ) - l_run_total;
16539 l_run_total := l_run_total + l_line_applied;
16540 IF PG_DEBUG = 'Y' THEN
16541 localdebug(' l_line_applied :' || l_line_applied);
16542
16543
16544
16545 -- tax_applied
16546 localdebug('TAX_APPLIED:');
16547 localdebug(' l_run_amt :' || l_run_amt);
16548 localdebug(' l_run_total :' || l_run_total);
16549 localdebug(' l_rem_tax_balance :' || NVL(l_rem_tax_balance,0));
16550 localdebug(' p_inv_ra_rec.amount_applied :' || NVL(p_inv_ra_rec.amount_applied,0));
16551 localdebug(' l_base :' || l_base);
16552 END IF;
16553
16554 l_run_amt := l_run_amt + NVL(l_rem_tax_balance,0);
16555 l_tax_applied := CurrRound( l_run_amt * NVL(p_inv_ra_rec.amount_applied,0)
16556 / l_base , l_rem_invoice_currency_code ) - l_run_total;
16557 l_run_total := l_run_total + l_tax_applied;
16558 IF PG_DEBUG = 'Y' THEN
16559 localdebug(' l_tax_applied :' || l_tax_applied);
16560
16561
16562
16563 -- freight_applied
16564 localdebug('FREIGHT_APPLIED:');
16565 localdebug(' l_run_amt :' || l_run_amt);
16566 localdebug(' l_run_total :' || l_run_total);
16567 localdebug(' l_rem_freight_balance :' || NVL(l_rem_freight_balance,0));
16568 localdebug(' p_inv_ra_rec.amount_applied :' || NVL(p_inv_ra_rec.amount_applied,0));
16569 localdebug(' l_base :' || l_base);
16570 END IF;
16571
16572 l_run_amt := l_run_amt + NVL(l_rem_freight_balance,0);
16573 l_freight_applied := CurrRound( l_run_amt * NVL(p_inv_ra_rec.amount_applied,0)
16574 / l_base , l_rem_invoice_currency_code ) - l_run_total;
16575 l_run_total := l_run_total + l_freight_applied;
16576 IF PG_DEBUG = 'Y' THEN
16577 localdebug(' l_freight_applied :' || l_freight_applied);
16578
16579
16580
16581 -- Charges_applied
16582 localdebug('CHARGES_APPLIED:');
16583 localdebug(' l_run_amt :' || l_run_amt);
16584 localdebug(' l_run_total :' || l_run_total);
16585 localdebug(' l_rem_charges_balance :' || NVL(l_rem_charges_balance,0));
16586 localdebug(' p_inv_ra_rec.amount_applied :' || NVL(p_inv_ra_rec.amount_applied,0));
16587 localdebug(' l_base :' || l_base);
16588 END IF;
16589 l_run_amt := l_run_amt + NVL(l_rem_charges_balance,0);
16590 l_charges_applied := CurrRound( l_run_amt * NVL(p_inv_ra_rec.amount_applied,0)
16591 / l_base , l_rem_invoice_currency_code ) - l_run_total;
16592 l_run_total := l_run_total + l_charges_applied;
16593 IF PG_DEBUG = 'Y' THEN
16594 localdebug(' l_charges_applied :' || l_charges_applied);
16595 END IF;
16596
16597
16598 x_cm_ra_rec.line_applied := l_line_applied * -1;
16599 x_cm_ra_rec.tax_applied := l_tax_applied * -1;
16600 x_cm_ra_rec.freight_applied := l_freight_applied * -1;
16601 x_cm_ra_rec.receivables_charges_applied := l_charges_applied * -1;
16602
16603 IF PG_DEBUG = 'Y' THEN
16604 localdebug(' x_cm_ra_rec.amount_applied :'||x_cm_ra_rec.amount_applied);
16605 localdebug(' x_cm_ra_rec.amount_applied_from :'||x_cm_ra_rec.amount_applied_from);
16606 localdebug(' x_cm_ra_rec.acctd_amount_applied_to :'||x_cm_ra_rec.acctd_amount_applied_to);
16607 localdebug(' x_cm_ra_rec.acctd_amount_applied_from :'||x_cm_ra_rec.acctd_amount_applied_from);
16608 localdebug(' x_cm_ra_rec.line_applied :'||x_cm_ra_rec.line_applied);
16609 localdebug(' x_cm_ra_rec.tax_applied :'||x_cm_ra_rec.tax_applied);
16610 localdebug(' x_cm_ra_rec.freight_applied :'||x_cm_ra_rec.freight_applied);
16611 localdebug(' x_cm_ra_rec.receivables_charges_applied :'||x_cm_ra_rec.receivables_charges_applied);
16612
16613 localdebug('arp_det_dist_pkg.convert_ra_inv_to_cm()-');
16614 END IF;
16615 EXCEPTION
16616 WHEN no_rem_for_trx_upg THEN
16617 IF PG_DEBUG = 'Y' THEN
16618 localdebug(' EXCEPTION no_rem_for_trx :'|| p_cm_trx_id);
16619 END IF;
16620 IF cu_cm_balance%ISOPEN THEN CLOSE cu_cm_balance; END IF;
16621
16622 WHEN no_rem_for_trx THEN
16623 IF PG_DEBUG = 'Y' THEN
16624 localdebug(' EXCEPTION no_rem_for_trx :'|| p_cm_trx_id);
16625 END IF;
16626 IF cu_trx_balance%ISOPEN THEN CLOSE cu_trx_balance; END IF;
16627 RAISE;
16628 WHEN no_amount_remaining THEN
16629 IF PG_DEBUG = 'Y' THEN
16630 localdebug(' EXCEPTION NO_AMOUNT_REMAINING FOR :'|| p_cm_trx_id);
16631 END IF;
16632 IF cu_trx_balance%ISOPEN THEN CLOSE cu_trx_balance; END IF;
16633 RAISE;
16634 WHEN OTHERS THEN
16635 IF PG_DEBUG = 'Y' THEN
16636 localdebug(' EXCEPTION OTHERS :'|| SQLERRM);
16637 END IF;
16638 IF cu_trx_balance%ISOPEN THEN CLOSE cu_trx_balance; END IF;
16639 RAISE;
16640 END convert_ra_inv_to_cm;
16641
16642 PROCEDURE set_interface_flag
16643 ( p_source_table IN VARCHAR2 DEFAULT NULL,
16644 p_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
16645 p_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
16646 p_freight_flag IN VARCHAR2 DEFAULT 'NORMAL',
16647 p_charges_flag IN VARCHAR2 DEFAULT 'NORMAL',
16648 p_ed_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
16649 p_ed_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
16650 p_uned_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
16651 p_uned_tax_flag IN VARCHAR2 DEFAULT 'NORMAL')
16652 IS
16653 BEGIN
16654 g_source_table := p_source_table;
16655 g_line_flag := p_line_flag;
16656 g_tax_flag := p_tax_flag;
16657 g_freight_flag := p_freight_flag;
16658 g_charges_flag := p_charges_flag;
16659 g_ed_line_flag := p_ed_line_flag;
16660 g_ed_tax_flag := p_ed_tax_flag;
16661 g_uned_line_flag := p_uned_line_flag;
16662 g_uned_tax_flag := p_uned_tax_flag;
16663 END set_interface_flag;
16664
16665 PROCEDURE adjustment_with_interface
16666 (p_customer_trx IN ra_customer_trx%ROWTYPE,
16667 p_adj_rec IN ar_adjustments%ROWTYPE,
16668 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
16669 p_gt_id IN NUMBER,
16670 p_line_flag IN VARCHAR2 DEFAULT 'INTERFACE',
16671 p_tax_flag IN VARCHAR2 DEFAULT 'INTERFACE',
16672 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
16673 x_return_status IN OUT NOCOPY VARCHAR2,
16674 x_msg_count IN OUT NOCOPY NUMBER,
16675 x_msg_data IN OUT NOCOPY VARCHAR2,
16676 p_llca_from_call IN VARCHAR2 DEFAULT NULL,
16677 p_customer_trx_line_id IN ra_customer_trx_lines.customer_trx_line_id%TYPE DEFAULT NULL)
16678 IS
16679 l_app_rec ar_receivable_applications%ROWTYPE;
16680 BEGIN
16681 IF PG_DEBUG = 'Y' THEN
16682 localdebug('arp_det_dist_pkg.adjustment_with_interface()+');
16683 localdebug(' p_gt_id :'||p_gt_id);
16684 localdebug(' p_adj_rec.amount :'|| p_adj_rec.amount);
16685 localdebug(' p_adj_rec.acctd_amount :'|| p_adj_rec.acctd_amount);
16686 localdebug(' p_customer_trx.invoice_currency_code :'|| p_customer_trx.invoice_currency_code);
16687 localdebug(' p_ae_sys_rec.base_currency :'|| p_ae_sys_rec.base_currency);
16688 localdebug(' p_llca_from_call :'|| p_llca_from_call);
16689 END IF;
16690
16691 x_return_status := fnd_api.g_ret_sts_success;
16692
16693 IF FND_API.to_Boolean(p_init_msg_list) THEN
16694 FND_MSG_PUB.initialize;
16695 END IF;
16696
16697 arp_process_det_pkg.verif_int_adj_line_tax(
16698 p_customer_trx => p_customer_trx,
16699 p_adj_rec => p_adj_rec,
16700 p_ae_sys_rec => p_ae_sys_rec,
16701 p_gt_id => p_gt_id,
16702 p_line_flag => p_line_flag,
16703 p_tax_flag => p_tax_flag,
16704 x_return_status => x_return_status);
16705
16706 IF x_return_status <> fnd_api.g_ret_sts_success THEN
16707 RAISE fnd_api.G_EXC_ERROR;
16708 END IF;
16709
16710 g_gt_id := p_gt_id;
16711
16712 set_interface_flag( p_source_table => 'ADJ',
16713 p_line_flag => p_line_flag,
16714 p_tax_flag => p_tax_flag);
16715
16716 g_cust_inv_rec := p_customer_trx;
16717
16718 set_mode_process(p_customer_trx => g_cust_inv_rec);
16719
16720 -- Added under Line Level Adjustment
16721 IF p_llca_from_call = 'Y' THEN
16722 set_original_rem_amt(
16723 p_customer_trx => g_cust_inv_rec,
16724 p_from_llca => 'Y');
16725 END IF;
16726
16727 copy_trx_lines(p_customer_trx_id => p_customer_trx.customer_trx_id,
16728 p_ae_sys_rec => p_ae_sys_rec,
16729 p_customer_trx_line_id => p_customer_trx_line_id);
16730
16731 conv_acctd_amt(p_pay_adj => 'ADJ',
16732 p_adj_rec => p_adj_rec,
16733 p_app_rec => l_app_rec,
16734 p_ae_sys_rec => p_ae_sys_rec);
16735
16736 get_invoice_line_info(p_gt_id => p_gt_id,
16737 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16738 p_ae_sys_rec => p_ae_sys_rec,
16739 p_mode => 'NORMAL');
16740
16741 prepare_group_for_proration(p_gt_id => p_gt_id,
16742 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16743 p_pay_adj => 'ADJ',
16744 p_adj_rec => p_adj_rec,
16745 p_app_rec => l_app_rec,
16746 p_ae_sys_rec => p_ae_sys_rec);
16747
16748 update_group_line(p_gt_id => p_gt_id,
16749 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16750 p_ae_sys_rec => p_ae_sys_rec);
16751
16752 prepare_trx_line_proration(p_gt_id => p_gt_id,
16753 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16754 p_pay_adj => 'ADJ',
16755 p_adj_rec => p_adj_rec,
16756 p_app_rec => l_app_rec,
16757 p_ae_sys_rec => p_ae_sys_rec);
16758
16759 update_line(p_gt_id => p_gt_id,
16760 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16761 p_ae_sys_rec => p_ae_sys_rec);
16762
16763 update_ctl_rem_orig(p_gt_id => p_gt_id,
16764 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16765 p_pay_adj => 'ADJ',
16766 p_ae_sys_rec => p_ae_sys_rec);
16767
16768 proration_adj_dist_trx(p_gt_id => p_gt_id,
16769 p_app_level => 'TRANSACTION',
16770 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16771 p_adj_rec => p_adj_rec,
16772 p_ae_sys_rec => p_ae_sys_rec);
16773
16774 create_final_split(p_customer_trx => p_customer_trx,
16775 p_app_rec => l_app_rec,
16776 p_adj_rec => p_adj_rec,
16777 p_ae_sys_rec => p_ae_sys_rec);
16778
16779 -- Added under Line Level Adjustment
16780 IF p_llca_from_call = 'Y' THEN
16781 final_update_inv_ctl_rem_orig(p_customer_trx => p_customer_trx);
16782 END IF;
16783
16784 UPDATE ar_adjustments SET upgrade_method = 'R12'
16785 WHERE adjustment_id = p_adj_rec.adjustment_id;
16786
16787 IF PG_DEBUG = 'Y' THEN
16788 localdebug('arp_det_dist_pkg.adjustment_with_interface()-');
16789 END IF;
16790 EXCEPTION
16791 WHEN fnd_api.G_EXC_ERROR THEN
16792 FND_MSG_PUB.Count_And_Get(
16793 p_encoded => FND_API.G_FALSE,
16794 p_count => x_msg_count,
16795 p_data => x_msg_data);
16796 IF PG_DEBUG = 'Y' THEN
16797 localdebug('fnd_api.G_EXC_ERROR IN adjustment_with_interface error count:'||x_msg_count);
16798 localdebug('last error:'||x_msg_data);
16799 END IF;
16800 RAISE;
16801 WHEN OTHERS THEN
16802 IF PG_DEBUG = 'Y' THEN
16803 localdebug('OTHERS IN adjustment_with_interface :'||SQLERRM);
16804 END IF;
16805 RAISE;
16806 END;
16807
16808
16809 PROCEDURE application_with_interface
16810 (p_customer_trx IN ra_customer_trx%ROWTYPE,
16811 p_app_rec IN ar_receivable_applications%ROWTYPE,
16812 p_ae_sys_rec IN arp_acct_main.ae_sys_rec_type,
16813 p_gt_id IN NUMBER,
16814 p_line_flag IN VARCHAR2 DEFAULT 'INTERFACE',
16815 p_tax_flag IN VARCHAR2 DEFAULT 'INTERFACE',
16816 p_ed_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
16817 p_ed_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
16818 p_uned_line_flag IN VARCHAR2 DEFAULT 'NORMAL',
16819 p_uned_tax_flag IN VARCHAR2 DEFAULT 'NORMAL',
16820 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
16821 x_return_status IN OUT NOCOPY VARCHAR2,
16822 x_msg_count IN OUT NOCOPY NUMBER,
16823 x_msg_data IN OUT NOCOPY VARCHAR2)
16824 IS
16825 l_adj_rec ar_adjustments%ROWTYPE;
16826 BEGIN
16827 IF PG_DEBUG = 'Y' THEN
16828 localdebug('arp_det_dist_pkg.application_with_interface()+');
16829 localdebug(' p_customer_trx_id :'||p_customer_trx.customer_trx_id);
16830 localdebug(' p_gt_id :'||p_gt_id);
16831 END IF;
16832
16833 x_return_status := fnd_api.g_ret_sts_success;
16834
16835 IF FND_API.to_Boolean(p_init_msg_list) THEN
16836 FND_MSG_PUB.initialize;
16837 END IF;
16838
16839 arp_process_det_pkg.verif_int_app_line_tax
16840 (p_customer_trx => p_customer_trx,
16841 p_app_rec => p_app_rec,
16842 p_ae_sys_rec => p_ae_sys_rec,
16843 p_gt_id => p_gt_id,
16844 p_line_flag => p_line_flag,
16845 p_tax_flag => p_tax_flag,
16846 p_ed_line_flag => p_ed_line_flag,
16847 p_ed_tax_flag => p_ed_tax_flag,
16848 p_uned_line_flag => p_uned_line_flag,
16849 p_uned_tax_flag => p_uned_tax_flag,
16850 x_return_status => x_return_status);
16851
16852 IF x_return_status <> fnd_api.g_ret_sts_success THEN
16853 RAISE fnd_api.G_EXC_ERROR;
16854 END IF;
16855
16856 g_gt_id := p_gt_id;
16857
16858 set_interface_flag( p_source_table => 'RA',
16859 p_line_flag => p_line_flag,
16860 p_tax_flag => p_tax_flag,
16861 p_ed_line_flag => p_ed_line_flag,
16862 p_ed_tax_flag => p_ed_tax_flag,
16863 p_uned_line_flag => p_uned_line_flag,
16864 p_uned_tax_flag => p_uned_tax_flag );
16865
16866 g_cust_inv_rec := p_customer_trx;
16867
16868 set_mode_process(p_customer_trx => g_cust_inv_rec);
16869
16870 IF g_mode_process = 'R12_11ICASH' THEN
16871 IF PG_DEBUG = 'Y' THEN
16872 localdebug('application_with_interface is not supported for 11i transaction with activities');
16873 END IF;
16874 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR');
16875 FND_MESSAGE.SET_TOKEN('TEXT','application_with_interface is not supported for 11i transaction with activities customer_trx_id :'||
16876 p_customer_trx.customer_trx_id);
16877 FND_MSG_PUB.ADD;
16878 x_return_status := fnd_api.g_ret_sts_success;
16879 RAISE fnd_api.G_EXC_ERROR;
16880 ELSE
16881
16882 copy_trx_lines(p_customer_trx_id => p_customer_trx.customer_trx_id,
16883 p_ae_sys_rec => p_ae_sys_rec);
16884
16885
16886 IF g_mode_process = 'R12_11IMFAR' THEN
16887
16888 x_return_status := fnd_api.g_ret_sts_success;
16889 IF PG_DEBUG = 'Y' THEN
16890 localdebug('application_with_interface is not supported for 11i MFAR transaction with activities');
16891 END IF;
16892 FND_MESSAGE.SET_NAME( 'AR', 'AR_CUST_API_ERROR');
16893 FND_MESSAGE.SET_TOKEN('TEXT','application_with_interface is not supported for 11i MFAR transaction with activities customer_trx_id :'||
16894 p_customer_trx.customer_trx_id);
16895 FND_MSG_PUB.ADD;
16896 RAISE fnd_api.G_EXC_ERROR;
16897
16898 END IF;
16899 --}
16900
16901 conv_acctd_amt(p_pay_adj => 'APP',
16902 p_adj_rec => l_adj_rec,
16903 p_app_rec => p_app_rec,
16904 p_ae_sys_rec => p_ae_sys_rec);
16905
16906
16907 get_invoice_line_info(p_gt_id => p_gt_id,
16908 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16909 p_ae_sys_rec => p_ae_sys_rec,
16910 p_mode => 'NORMAL');
16911
16912 prepare_group_for_proration(p_gt_id => p_gt_id,
16913 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16914 p_pay_adj => 'APP',
16915 p_adj_rec => l_adj_rec,
16916 p_app_rec => p_app_rec,
16917 p_ae_sys_rec => p_ae_sys_rec);
16918
16919 update_group_line(p_gt_id => p_gt_id,
16920 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16921 p_ae_sys_rec => p_ae_sys_rec);
16922
16923 prepare_trx_line_proration(p_gt_id => p_gt_id,
16924 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16925 p_pay_adj => 'APP',
16926 p_adj_rec => l_adj_rec,
16927 p_app_rec => p_app_rec,
16928 p_ae_sys_rec => p_ae_sys_rec);
16929
16930 update_line(p_gt_id => p_gt_id,
16931 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16932 p_ae_sys_rec => p_ae_sys_rec);
16933
16934 update_ctl_rem_orig(p_gt_id => p_gt_id,
16935 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16936 p_pay_adj => 'APP',
16937 p_ae_sys_rec => p_ae_sys_rec);
16938
16939 proration_app_dist_trx(p_gt_id => p_gt_id,
16940 p_app_level => 'TRANSACTION',
16941 p_customer_trx_id => g_cust_inv_rec.customer_trx_id,
16942 p_app_rec => p_app_rec,
16943 p_ae_sys_rec => p_ae_sys_rec);
16944
16945
16946 END IF;
16947
16948 create_final_split(p_customer_trx => p_customer_trx,
16949 p_app_rec => p_app_rec,
16950 p_adj_rec => l_adj_rec,
16951 p_ae_sys_rec => p_ae_sys_rec);
16952
16953
16954 IF PG_DEBUG = 'Y' THEN
16955 localdebug('arp_det_dist_pkg.application_with_interface()-');
16956 END IF;
16957 EXCEPTION
16958 WHEN fnd_api.G_EXC_ERROR THEN
16959 FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
16960 p_count => x_msg_count,
16961 p_data => x_msg_data);
16962 IF PG_DEBUG = 'Y' THEN
16963 localdebug('fnd_api.G_EXC_ERROR IN application_with_interface error count:'||x_msg_count);
16964 localdebug('last error:'||x_msg_data);
16965 END IF;
16966 RAISE;
16967 WHEN OTHERS THEN
16968 IF PG_DEBUG = 'Y' THEN
16969 localdebug('OTHERS IN application_with_interface :'||SQLERRM);
16970 END IF;
16971 RAISE;
16972 END application_with_interface;
16973
16974
16975
16976
16977 PROCEDURE Reconciliation
16978 (p_app_rec IN ar_receivable_applications%ROWTYPE,
16979 p_adj_rec IN ar_adjustments%ROWTYPE,
16980 p_activity_type IN VARCHAR2,
16981 p_gt_id IN VARCHAR2 DEFAULT NULL)
16982 IS
16983 CURSOR cu1(p_gt_id IN NUMBER) IS
16984 SELECT SUM(NVL(amount,0)),
16985 SUM(NVL(acctd_amount,0))
16986 FROM AR_LINE_APP_DETAIL_GT
16987 WHERE gt_id = p_gt_id;
16988 l_sum NUMBER;
16989 l_acctd_sum NUMBER;
16990
16991 CURSOR cu2(p_gt_id IN NUMBER) IS
16992 SELECT SUM(NVL(amount,0)),
16993 SUM(NVL(acctd_amount,0)),
16994 activity_bucket
16995 FROM AR_LINE_APP_DETAIL_GT
16996 WHERE gt_id = p_gt_id
16997 GROUP BY activity_bucket;
16998 l_activity VARCHAR2(30);
16999 l_act_amount NUMBER;
17000 l_acctd_act_amount NUMBER;
17001 l_gt_id NUMBER;
17002
17003 l_adj_amt NUMBER := 0;
17004 l_adj_acctd_amt NUMBER := 0;
17005 l_app_amt NUMBER := 0;
17006 l_app_acctd_amt NUMBER := 0;
17007 l_ed_amt NUMBER := 0;
17008 l_ed_acctd_amt NUMBER := 0;
17009 l_uned_amt NUMBER := 0;
17010 l_uned_acctd_amt NUMBER := 0;
17011
17012
17013 l_amt_tab DBMS_SQL.NUMBER_TABLE;
17014 l_acctd_amt_tab DBMS_SQL.NUMBER_TABLE;
17015 l_activity_tab DBMS_SQL.VARCHAR2_TABLE;
17016 BEGIN
17017 IF PG_DEBUG = 'Y' THEN
17018 localdebug('arp_det_dist_pkg.reconciliation()+');
17019 END IF;
17020
17021 IF p_gt_id IS NULL THEN
17022 l_gt_id := g_gt_id;
17023 ELSE
17024 l_gt_id := p_gt_id;
17025 END IF;
17026
17027 localdebug(' l_gt_id :'||l_gt_id);
17028
17029 OPEN cu1(l_gt_id);
17030 FETCH cu1 INTO l_sum, l_acctd_sum;
17031 CLOSE cu1;
17032
17033 IF PG_DEBUG = 'Y' THEN
17034 localdebug('Reconciliation gross amount');
17035 END IF;
17036 IF p_activity_type = 'RA' THEN
17037 IF ABS(nvl(l_sum,0)) <> ABS( NVL(p_app_rec.amount_applied,0)
17038 + NVL(p_app_rec.earned_discount_taken,0)
17039 + NVL(p_app_rec.unearned_discount_taken,0) )
17040 THEN
17041 IF PG_DEBUG = 'Y' THEN
17042 localdebug('From the detail gt the amount l_sum :'||l_sum);
17043 localdebug('application record the amount_applied :'||p_app_rec.amount_applied);
17044 localdebug('application record the amount_earned :'||p_app_rec.earned_discount_taken);
17045 localdebug('application record the amount_unearned:'||p_app_rec.unearned_discount_taken);
17046 localdebug('Gross transaction amount do not reconcile');
17047 END IF;
17048 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
17049 ELSIF ABS(nvl(l_acctd_sum,0)) <> ABS(NVL(p_app_rec.acctd_amount_applied_to,0)
17050 + NVL(p_app_rec.ACCTD_UNEARNED_DISCOUNT_TAKEN,0)
17051 + NVL(p_app_rec.ACCTD_EARNED_DISCOUNT_TAKEN,0) ) THEN
17052 IF PG_DEBUG = 'Y' THEN
17053 localdebug('From the detail gt the acctd_amount l_acctd_sum :'||l_acctd_sum);
17054 localdebug('application record the acctd_amount_applied:'||p_app_rec.acctd_amount_applied_to);
17055 localdebug('application record the acctd_amount_earned :'||p_app_rec.ACCTD_EARNED_DISCOUNT_TAKEN);
17056 localdebug('application record the acctd_amount_unearned:'||p_app_rec.ACCTD_UNEARNED_DISCOUNT_TAKEN);
17057 localdebug('Gross transaction acctd amount do not reconcile');
17058 END IF;
17059 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
17060 END IF;
17061 ELSIF p_activity_type = 'ADJ' THEN
17062 IF ABS(nvl(l_sum,0)) <> ABS(NVL(p_adj_rec.amount,0)) THEN
17063 IF PG_DEBUG = 'Y' THEN
17064 localdebug('From the detail gt the amount l_sum :'||l_sum);
17065 localdebug('adjustment record the amount:'||p_adj_rec.amount);
17066 localdebug('Gross transaction amount do not reconcile');
17067 END IF;
17068 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
17069 ELSIF ABS(nvl(l_acctd_sum,0)) <> ABS(NVL(p_adj_rec.acctd_amount,0)) THEN
17070 IF PG_DEBUG = 'Y' THEN
17071 localdebug('From the detail gt the acctd_amount l_acctd_sum :'||l_acctd_sum);
17072 localdebug('adjustment record the acctd_amount:'||p_adj_rec.acctd_amount);
17073 localdebug('Gross transaction acctd amount do not reconcile');
17074 END IF;
17075 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
17076 END IF;
17077 END IF;
17078
17079
17080 IF p_activity_type = 'RA' THEN
17081
17082 IF PG_DEBUG = 'Y' THEN
17083 localdebug('Reconciliation per bucket application amount');
17084 END IF;
17085 OPEN cu2(l_gt_id);
17086 FETCH cu2 BULK COLLECT INTO
17087 l_amt_tab ,
17088 l_acctd_amt_tab,
17089 l_activity_tab;
17090 CLOSE cu2;
17091
17092 IF l_activity_tab.COUNT <> 0 THEN
17093
17094 FOR i IN l_activity_tab.FIRST .. l_activity_tab.LAST LOOP
17095 IF l_activity_tab(i) IN ('APP_LINE','APP_TAX','APP_FRT','APP_CHRG') THEN
17096 l_app_amt := l_app_amt + NVL(l_amt_tab(i),0);
17097 l_app_acctd_amt := l_app_acctd_amt + NVL(l_acctd_amt_tab(i),0);
17098 ELSIF l_activity_tab(i) IN ('ED_LINE','ED_FRT','ED_TAX','ED_CHRG') THEN
17099 l_ed_amt := l_ed_amt + NVL(l_amt_tab(i),0);
17100 l_ed_acctd_amt := l_ed_acctd_amt + NVL(l_acctd_amt_tab(i),0);
17101 ELSIF l_activity_tab(i) IN ('UNED_LINE','UNED_FRT','UNED_TAX','UNED_CHRG') THEN
17102 l_uned_amt := l_uned_amt + NVL(l_amt_tab(i),0);
17103 l_uned_acctd_amt := l_uned_acctd_amt + NVL(l_acctd_amt_tab(i),0);
17104 END IF;
17105 END LOOP;
17106
17107 IF ABS(l_app_amt) <> ABS( NVL(p_app_rec.amount_applied,0)) THEN
17108 IF PG_DEBUG = 'Y' THEN
17109 localdebug('From the detail gt the applied amount l_app_amt :'||l_app_amt);
17110 localdebug('application record the amount_applied :'||p_app_rec.amount_applied);
17111 END IF;
17112 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
17113 ELSIF ABS(l_ed_amt) <> ABS( NVL(p_app_rec.earned_discount_taken,0)) THEN
17114 IF PG_DEBUG = 'Y' THEN
17115 localdebug('From the detail gt the ed amount l_ed_amt :'||l_ed_amt);
17116 localdebug('application record the amount_earned :'||p_app_rec.earned_discount_taken);
17117 END IF;
17118 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
17119 ELSIF ABS(l_uned_amt) <> ABS( NVL(p_app_rec.unearned_discount_taken,0)) THEN
17120 IF PG_DEBUG = 'Y' THEN
17121 localdebug('From the detail gt the uned amount l_uned_amt :'||l_uned_amt);
17122 localdebug('application record the amount_unearned:'||p_app_rec.unearned_discount_taken);
17123 END IF;
17124 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
17125 ELSIF ABS(l_app_acctd_amt) <> ABS(NVL(p_app_rec.acctd_amount_applied_to,0)) THEN
17126 IF PG_DEBUG = 'Y' THEN
17127 localdebug('From the detail gt the applied amount l_app_acctd_amt :'||l_app_acctd_amt);
17128 localdebug('application record the acctd_amount_applied :'||p_app_rec.acctd_amount_applied_to);
17129 END IF;
17130 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
17131 ELSIF ABS(l_ed_acctd_amt) <> ABS( NVL(p_app_rec.acctd_earned_discount_taken,0)) THEN
17132 IF PG_DEBUG = 'Y' THEN
17133 localdebug('From the detail gt the ed amount l_ed_acctd_amt :'||l_ed_acctd_amt);
17134 localdebug('application record the acctd_amount_earned :'||p_app_rec.acctd_earned_discount_taken);
17135 END IF;
17136 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
17137 ELSIF ABS(l_uned_acctd_amt) <> ABS( NVL(p_app_rec.acctd_unearned_discount_taken,0)) THEN
17138 IF PG_DEBUG = 'Y' THEN
17139 localdebug('From the detail gt the ed amount l_uned_acctd_amt :'||l_uned_acctd_amt);
17140 localdebug('application record the acctd_amount_unearned :'||p_app_rec.acctd_unearned_discount_taken);
17141 END IF;
17142 RAISE fnd_api.G_EXC_UNEXPECTED_ERROR;
17143 END IF;
17144
17145 END IF;
17146 END IF;
17147
17148 IF PG_DEBUG = 'Y' THEN
17149 localdebug('arp_det_dist_pkg.reconciliation()-');
17150 END IF;
17151 EXCEPTION
17152 WHEN fnd_api.G_EXC_UNEXPECTED_ERROR THEN
17153 RAISE;
17154 END;
17155
17156
17157
17158 PROCEDURE diag_data(p_gt_id IN NUMBER DEFAULT NULL)
17159 IS
17160 l_gt_id NUMBER;
17161 CURSOR c(l_gt_id IN NUMBER) IS
17162 SELECT
17163 FROM_AMOUNT,
17164 FROM_CURRENCY,
17165 GROUP_ID,
17166 GT_ID,
17167 LAST_UPDATED_BY,
17168 LAST_UPDATE_DATE,
17169 LAST_UPDATE_LOGIN,
17170 LEDGER_ID,
17171 LINE_ID,
17172 ORG_ID,
17173 REF_CUSTOMER_TRX_ID,
17174 REF_CUSTOMER_TRX_LINE_ID,
17175 REF_CUST_TRX_LINE_GL_DIST_ID,
17176 REF_DET_ID,
17177 REF_LINE_ID,
17178 SE_GT_ID,
17179 SOURCE_DATA_KEY1,
17180 SOURCE_DATA_KEY2,
17181 SOURCE_DATA_KEY3,
17182 SOURCE_DATA_KEY4,
17183 SOURCE_DATA_KEY5,
17184 SOURCE_ID,
17185 SOURCE_TABLE,
17186 SOURCE_TYPE,
17187 TAXABLE_ACCTD_AMOUNT,
17188 TAXABLE_AMOUNT,
17189 TAX_INC_FLAG,
17190 TAX_LINK_ID,
17191 TO_CURRENCY,
17192 REF_MF_DIST_FLAG,
17193 ACCTD_AMOUNT,
17194 REF_ACCOUNT_CLASS,
17195 AMOUNT,
17196 APP_LEVEL,
17197 BASE_CURRENCY,
17198 ACTIVITY_BUCKET,
17199 CCID,
17200 CCID_SECONDARY,
17201 CREATED_BY,
17202 CREATION_DATE,
17203 DET_ID,
17204 FROM_ACCTD_AMOUNT
17205 FROM AR_LINE_APP_DETAIL_GT
17206 WHERE GT_ID = l_gt_id;
17207
17208 l c%ROWTYPE;
17209 l_text VARCHAR2(4000);
17210
17211 BEGIN
17212 IF p_gt_id IS NULL THEN
17213 l_gt_id := g_gt_id;
17214 ELSE
17215 l_gt_id := p_gt_id;
17216 END IF;
17217 /*
17218 INSERT INTO AR_LINE_APP_DETAIL_TMP
17219 (ACCTD_AMOUNT ,
17220 REF_ACCOUNT_CLASS ,
17221 AMOUNT ,
17222 APP_LEVEL ,
17223 BASE_CURRENCY ,
17224 ACTIVITY_BUCKET ,
17225 CCID ,
17226 CCID_SECONDARY ,
17227 CREATED_BY ,
17228 CREATION_DATE ,
17229 DET_ID ,
17230 FROM_ACCTD_AMOUNT ,
17231 FROM_AMOUNT ,
17232 FROM_CURRENCY ,
17233 GROUP_ID ,
17234 GT_ID ,
17235 LAST_UPDATED_BY ,
17236 LAST_UPDATE_DATE ,
17237 LAST_UPDATE_LOGIN ,
17238 LEDGER_ID ,
17239 LINE_ID ,
17240 ORG_ID ,
17241 REF_CUSTOMER_TRX_ID ,
17242 REF_CUSTOMER_TRX_LINE_ID,
17243 REF_CUST_TRX_LINE_GL_DIST_ID,
17244 REF_DET_ID ,
17245 REF_LINE_ID ,
17246 SE_GT_ID ,
17247 SOURCE_DATA_KEY1 ,
17248 SOURCE_DATA_KEY2 ,
17249 SOURCE_DATA_KEY3 ,
17250 SOURCE_DATA_KEY4 ,
17251 SOURCE_DATA_KEY5 ,
17252 SOURCE_ID ,
17253 SOURCE_TABLE ,
17254 SOURCE_TYPE ,
17255 TAXABLE_ACCTD_AMOUNT ,
17256 TAXABLE_AMOUNT ,
17257 TAX_INC_FLAG ,
17258 TAX_LINK_ID ,
17259 TO_CURRENCY ,
17260 REF_MF_DIST_FLAG )
17261 SELECT
17262 ACCTD_AMOUNT ,
17263 REF_ACCOUNT_CLASS ,
17264 AMOUNT ,
17265 APP_LEVEL ,
17266 BASE_CURRENCY ,
17267 ACTIVITY_BUCKET ,
17268 CCID ,
17269 CCID_SECONDARY ,
17270 CREATED_BY ,
17271 CREATION_DATE ,
17272 DET_ID ,
17273 FROM_ACCTD_AMOUNT ,
17274 FROM_AMOUNT ,
17275 FROM_CURRENCY ,
17276 GROUP_ID ,
17277 GT_ID ,
17278 LAST_UPDATED_BY ,
17279 LAST_UPDATE_DATE ,
17280 LAST_UPDATE_LOGIN ,
17281 LEDGER_ID ,
17282 LINE_ID ,
17283 ORG_ID ,
17284 REF_CUSTOMER_TRX_ID ,
17285 REF_CUSTOMER_TRX_LINE_ID,
17286 REF_CUST_TRX_LINE_GL_DIST_ID,
17287 REF_DET_ID ,
17288 REF_LINE_ID ,
17289 SE_GT_ID ,
17290 SOURCE_DATA_KEY1 ,
17291 SOURCE_DATA_KEY2 ,
17292 SOURCE_DATA_KEY3 ,
17293 SOURCE_DATA_KEY4 ,
17294 SOURCE_DATA_KEY5 ,
17295 SOURCE_ID ,
17296 SOURCE_TABLE ,
17297 SOURCE_TYPE ,
17298 TAXABLE_ACCTD_AMOUNT ,
17299 TAXABLE_AMOUNT ,
17300 TAX_INC_FLAG ,
17301 TAX_LINK_ID ,
17302 TO_CURRENCY ,
17303 REF_MF_DIST_FLAG
17304 FROM AR_LINE_APP_DETAIL_GT
17305 WHERE GT_ID = l_gt_id;
17306
17307 INSERT INTO ra_ar_tmp
17308 (ACCOUNT_CLASS ,
17309 ACCTD_AMT ,
17310 ACCTD_AMT_CR ,
17311 ACCTD_AMT_DR ,
17312 ALLOC_ACCTD_AMT ,
17313 ALLOC_AMT ,
17314 AMT ,
17315 AMT_CR ,
17316 AMT_DR ,
17317 BASE_CHRG_PRO_ACCTD_AMT ,
17318 BASE_CHRG_PRO_AMT ,
17319 BASE_CURRENCY ,
17320 BASE_DIST_ACCTD_AMT ,
17321 BASE_DIST_AMT ,
17322 BASE_DIST_CHRG_ACCTD_AMT ,
17323 BASE_DIST_CHRG_AMT ,
17324 BASE_DIST_FRT_ACCTD_AMT ,
17325 BASE_DIST_FRT_AMT ,
17326 BASE_DIST_TAX_ACCTD_AMT ,
17327 BASE_DIST_TAX_AMT ,
17328 BASE_ED_CHRG_PRO_ACCTD_AMT ,
17329 BASE_ED_CHRG_PRO_AMT ,
17330 BASE_ED_DIST_ACCTD_AMT ,
17331 BASE_ED_DIST_AMT ,
17332 BASE_ED_DIST_CHRG_ACCTD_AMT ,
17333 BASE_ED_DIST_CHRG_AMT ,
17334 BASE_ED_DIST_FRT_ACCTD_AMT ,
17335 BASE_ED_DIST_FRT_AMT ,
17336 BASE_ED_DIST_TAX_ACCTD_AMT ,
17337 BASE_ED_DIST_TAX_AMT ,
17338 BASE_ED_FRT_PRO_ACCTD_AMT ,
17339 BASE_ED_FRT_PRO_AMT ,
17340 BASE_ED_PRO_ACCTD_AMT ,
17341 BASE_ED_PRO_AMT ,
17342 BASE_ED_TAX_PRO_ACCTD_AMT ,
17343 BASE_ED_TAX_PRO_AMT ,
17344 BASE_FRT_PRO_ACCTD_AMT ,
17345 BASE_FRT_PRO_AMT ,
17346 BASE_PRO_ACCTD_AMT ,
17347 BASE_PRO_AMT ,
17348 BASE_TAX_PRO_ACCTD_AMT ,
17349 BASE_TAX_PRO_AMT ,
17350 BASE_UNED_CHRG_PRO_ACCTD_AMT ,
17351 BASE_UNED_CHRG_PRO_AMT ,
17352 BASE_UNED_DIST_ACCTD_AMT ,
17353 BASE_UNED_DIST_AMT ,
17354 BASE_UNED_DIST_CHRG_ACCTD_AMT ,
17355 BASE_UNED_DIST_CHRG_AMT ,
17356 BASE_UNED_DIST_FRT_ACCTD_AMT ,
17357 BASE_UNED_DIST_FRT_AMT ,
17358 BASE_UNED_DIST_TAX_ACCTD_AMT ,
17359 BASE_UNED_DIST_TAX_AMT ,
17360 BASE_UNED_FRT_PRO_ACCTD_AMT ,
17361 BASE_UNED_FRT_PRO_AMT ,
17362 BASE_UNED_PRO_ACCTD_AMT ,
17363 BASE_UNED_PRO_AMT ,
17364 BASE_UNED_TAX_PRO_ACCTD_AMT ,
17365 BASE_UNED_TAX_PRO_AMT ,
17366 ACTIVITY_BUCKET ,
17367 BUC_ALLOC_ACCTD_AMT ,
17368 BUC_ALLOC_AMT ,
17369 BUC_CHRG_ALLOC_ACCTD_AMT ,
17370 BUC_CHRG_ALLOC_AMT ,
17371 BUC_ED_ALLOC_ACCTD_AMT ,
17372 BUC_ED_ALLOC_AMT ,
17373 BUC_ED_CHRG_ALLOC_ACCTD_AMT ,
17374 BUC_ED_CHRG_ALLOC_AMT ,
17375 BUC_ED_FRT_ALLOC_ACCTD_AMT ,
17376 BUC_ED_FRT_ALLOC_AMT ,
17377 BUC_ED_TAX_ALLOC_ACCTD_AMT ,
17378 BUC_ED_TAX_ALLOC_AMT ,
17379 BUC_FRT_ALLOC_ACCTD_AMT ,
17380 BUC_FRT_ALLOC_AMT ,
17381 BUC_TAX_ALLOC_ACCTD_AMT ,
17382 BUC_TAX_ALLOC_AMT ,
17383 BUC_UNED_ALLOC_ACCTD_AMT ,
17384 BUC_UNED_ALLOC_AMT ,
17385 BUC_UNED_CHRG_ALLOC_ACCTD_AMT ,
17386 BUC_UNED_CHRG_ALLOC_AMT ,
17387 BUC_UNED_FRT_ALLOC_ACCTD_AMT ,
17388 BUC_UNED_FRT_ALLOC_AMT ,
17389 BUC_UNED_TAX_ALLOC_ACCTD_AMT ,
17390 BUC_UNED_TAX_ALLOC_AMT ,
17391 CCID ,
17392 CCID_SECONDARY ,
17393 CHRG_REM_ACCTD_AMT ,
17394 CHRG_REM_AMT ,
17395 DET_ID ,
17396 DIST_ACCTD_AMT ,
17397 DIST_AMT ,
17398 DIST_CHRG_ACCTD_AMT ,
17399 DIST_CHRG_AMT ,
17400 DIST_ED_ACCTD_AMT ,
17401 DIST_ED_AMT ,
17402 DIST_ED_CHRG_ACCTD_AMT ,
17403 DIST_ED_CHRG_AMT ,
17404 DIST_ED_FRT_ACCTD_AMT ,
17405 DIST_ED_FRT_AMT ,
17406 DIST_ED_TAX_ACCTD_AMT ,
17407 DIST_ED_TAX_AMT ,
17408 DIST_FRT_ACCTD_AMT ,
17409 DIST_FRT_AMT ,
17410 DIST_TAX_ACCTD_AMT ,
17411 DIST_TAX_AMT ,
17412 DIST_UNED_ACCTD_AMT ,
17413 DIST_UNED_AMT ,
17414 DIST_UNED_CHRG_ACCTD_AMT ,
17415 DIST_UNED_CHRG_AMT ,
17416 DIST_UNED_FRT_ACCTD_AMT ,
17417 DIST_UNED_FRT_AMT ,
17418 DIST_UNED_TAX_ACCTD_AMT ,
17419 DIST_UNED_TAX_AMT ,
17420 DUE_ORIG_ACCTD_AMT ,
17421 DUE_ORIG_AMT ,
17422 DUE_REM_ACCTD_AMT ,
17423 DUE_REM_AMT ,
17424 ELMT_CHRG_PRO_ACCTD_AMT ,
17425 ELMT_CHRG_PRO_AMT ,
17426 ELMT_ED_CHRG_PRO_ACCTD_AMT ,
17427 ELMT_ED_CHRG_PRO_AMT ,
17428 ELMT_ED_FRT_PRO_ACCTD_AMT ,
17429 ELMT_ED_FRT_PRO_AMT ,
17430 ELMT_ED_PRO_ACCTD_AMT ,
17431 ELMT_ED_PRO_AMT ,
17432 ELMT_ED_TAX_PRO_ACCTD_AMT ,
17433 ELMT_ED_TAX_PRO_AMT ,
17434 ELMT_FRT_PRO_ACCTD_AMT ,
17435 ELMT_FRT_PRO_AMT ,
17436 ELMT_PRO_ACCTD_AMT ,
17437 ELMT_PRO_AMT ,
17438 ELMT_TAX_PRO_ACCTD_AMT ,
17439 ELMT_TAX_PRO_AMT ,
17440 ELMT_UNED_CHRG_PRO_ACCTD_AMT ,
17441 ELMT_UNED_CHRG_PRO_AMT ,
17442 ELMT_UNED_FRT_PRO_ACCTD_AMT ,
17443 ELMT_UNED_FRT_PRO_AMT ,
17444 ELMT_UNED_PRO_ACCTD_AMT ,
17445 ELMT_UNED_PRO_AMT ,
17446 ELMT_UNED_TAX_PRO_ACCTD_AMT ,
17447 ELMT_UNED_TAX_PRO_AMT ,
17448 FROM_ACCTD_AMT_CR ,
17449 FROM_ACCTD_AMT_DR ,
17450 FROM_ALLOC_ACCTD_AMT ,
17451 FROM_ALLOC_AMT ,
17452 FROM_CURRENCY ,
17453 FRT_ADJ_REM_ACCTD_AMT ,
17454 FRT_ADJ_REM_AMT ,
17455 FRT_ORIG_ACCTD_AMT ,
17456 FRT_ORIG_AMT ,
17457 FRT_REM_ACCTD_AMT ,
17458 FRT_REM_AMT ,
17459 GP_LEVEL ,
17460 GROUP_ID ,
17461 GT_ID ,
17462 LINE_ID ,
17463 LINE_TYPE ,
17464 REF_CUSTOMER_TRX_ID ,
17465 REF_CUSTOMER_TRX_LINE_ID ,
17466 REF_CUST_TRX_LINE_GL_DIST_ID ,
17467 REF_DET_ID ,
17468 REF_LINE_ID ,
17469 SET_OF_BOOKS_ID ,
17470 SE_GT_ID ,
17471 SOB_TYPE ,
17472 SOURCE_DATA_KEY1 ,
17473 SOURCE_DATA_KEY2 ,
17474 SOURCE_DATA_KEY3 ,
17475 SOURCE_DATA_KEY4 ,
17476 SOURCE_DATA_KEY5 ,
17477 SOURCE_ID ,
17478 SOURCE_TABLE ,
17479 SOURCE_TYPE ,
17480 SUM_GP_LINE_CHRG_REM_ACCTD_AMT ,
17481 SUM_GP_LINE_CHRG_REM_AMT ,
17482 SUM_GP_LINE_FRT_ORIG_ACCTD_AMT ,
17483 SUM_GP_LINE_FRT_ORIG_AMT ,
17484 SUM_GP_LINE_FRT_REM_ACCTD_AMT ,
17485 SUM_GP_LINE_FRT_REM_AMT ,
17486 SUM_GP_LINE_ORIG_ACCTD_AMT ,
17487 SUM_GP_LINE_ORIG_AMT ,
17488 SUM_GP_LINE_REM_ACCTD_AMT ,
17489 SUM_GP_LINE_REM_AMT ,
17490 SUM_GP_LINE_TAX_ORIG_ACCTD_AMT ,
17491 SUM_GP_LINE_TAX_ORIG_AMT ,
17492 SUM_GP_LINE_TAX_REM_ACCTD_AMT ,
17493 SUM_GP_LINE_TAX_REM_AMT ,
17494 SUM_LINE_CHRG_REM_ACCTD_AMT ,
17495 SUM_LINE_CHRG_REM_AMT ,
17496 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
17497 SUM_LINE_FRT_ORIG_AMT ,
17498 SUM_LINE_FRT_REM_ACCTD_AMT ,
17499 SUM_LINE_FRT_REM_AMT ,
17500 SUM_LINE_ORIG_ACCTD_AMT ,
17501 SUM_LINE_ORIG_AMT ,
17502 SUM_LINE_REM_ACCTD_AMT ,
17503 SUM_LINE_REM_AMT ,
17504 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
17505 SUM_LINE_TAX_ORIG_AMT ,
17506 SUM_LINE_TAX_REM_ACCTD_AMT ,
17507 SUM_LINE_TAX_REM_AMT ,
17508 TAX_INC_FLAG ,
17509 TAX_LINK_ID ,
17510 TAX_ORIG_ACCTD_AMT ,
17511 TAX_ORIG_AMT ,
17512 TAX_REM_ACCTD_AMT ,
17513 TAX_REM_AMT ,
17514 TL_ALLOC_ACCTD_AMT ,
17515 TL_ALLOC_AMT ,
17516 TL_CHRG_ALLOC_ACCTD_AMT ,
17517 TL_CHRG_ALLOC_AMT ,
17518 TL_ED_ALLOC_ACCTD_AMT ,
17519 TL_ED_ALLOC_AMT ,
17520 TL_ED_CHRG_ALLOC_ACCTD_AMT ,
17521 TL_ED_CHRG_ALLOC_AMT ,
17522 TL_ED_FRT_ALLOC_ACCTD_AMT ,
17523 TL_ED_FRT_ALLOC_AMT ,
17524 TL_ED_TAX_ALLOC_ACCTD_AMT ,
17525 TL_ED_TAX_ALLOC_AMT ,
17526 TL_FRT_ALLOC_ACCTD_AMT ,
17527 TL_FRT_ALLOC_AMT ,
17528 TL_TAX_ALLOC_ACCTD_AMT ,
17529 TL_TAX_ALLOC_AMT ,
17530 TL_UNED_ALLOC_ACCTD_AMT ,
17531 TL_UNED_ALLOC_AMT ,
17532 TL_UNED_CHRG_ALLOC_ACCTD_AMT ,
17533 TL_UNED_CHRG_ALLOC_AMT ,
17534 TL_UNED_FRT_ALLOC_ACCTD_AMT ,
17535 TL_UNED_FRT_ALLOC_AMT ,
17536 TL_UNED_TAX_ALLOC_ACCTD_AMT ,
17537 TL_UNED_TAX_ALLOC_AMT ,
17538 TO_CURRENCY ,
17539 REF_MF_DIST_FLAG ,
17540 CHRG_ORIG_AMT ,
17541 CHRG_ORIG_ACCTD_AMT ,
17542 CHRG_ADJ_REM_AMT ,
17543 CHRG_ADJ_REM_ACCTD_AMT ,
17544 SUM_LINE_CHRG_ORIG_AMT ,
17545 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
17546 SUM_GP_LINE_CHRG_ORIG_AMT ,
17547 SUM_GP_LINE_CHRG_ORIG_ACCTD_AM ,
17548 INT_LINE_AMOUNT ,
17549 INT_TAX_AMOUNT ,
17550 INT_ED_LINE_AMOUNT ,
17551 INT_ED_TAX_AMOUNT ,
17552 INT_UNED_LINE_AMOUNT ,
17553 INT_UNED_TAX_AMOUNT ,
17554 SUM_INT_LINE_AMOUNT ,
17555 SUM_INT_TAX_AMOUNT ,
17556 SUM_INT_ED_LINE_AMOUNT ,
17557 SUM_INT_ED_TAX_AMOUNT ,
17558 SUM_INT_UNED_LINE_AMOUNT ,
17559 SUM_INT_UNED_TAX_AMOUNT )
17560 SELECT
17561 ACCOUNT_CLASS ,
17562 ACCTD_AMT ,
17563 ACCTD_AMT_CR ,
17564 ACCTD_AMT_DR ,
17565 ALLOC_ACCTD_AMT ,
17566 ALLOC_AMT ,
17567 AMT ,
17568 AMT_CR ,
17569 AMT_DR ,
17570 BASE_CHRG_PRO_ACCTD_AMT ,
17571 BASE_CHRG_PRO_AMT ,
17572 BASE_CURRENCY ,
17573 BASE_DIST_ACCTD_AMT ,
17574 BASE_DIST_AMT ,
17575 BASE_DIST_CHRG_ACCTD_AMT ,
17576 BASE_DIST_CHRG_AMT ,
17577 BASE_DIST_FRT_ACCTD_AMT ,
17578 BASE_DIST_FRT_AMT ,
17579 BASE_DIST_TAX_ACCTD_AMT ,
17580 BASE_DIST_TAX_AMT ,
17581 BASE_ED_CHRG_PRO_ACCTD_AMT ,
17582 BASE_ED_CHRG_PRO_AMT ,
17583 BASE_ED_DIST_ACCTD_AMT ,
17584 BASE_ED_DIST_AMT ,
17585 BASE_ED_DIST_CHRG_ACCTD_AMT ,
17586 BASE_ED_DIST_CHRG_AMT ,
17587 BASE_ED_DIST_FRT_ACCTD_AMT ,
17588 BASE_ED_DIST_FRT_AMT ,
17589 BASE_ED_DIST_TAX_ACCTD_AMT ,
17590 BASE_ED_DIST_TAX_AMT ,
17591 BASE_ED_FRT_PRO_ACCTD_AMT ,
17592 BASE_ED_FRT_PRO_AMT ,
17593 BASE_ED_PRO_ACCTD_AMT ,
17594 BASE_ED_PRO_AMT ,
17595 BASE_ED_TAX_PRO_ACCTD_AMT ,
17596 BASE_ED_TAX_PRO_AMT ,
17597 BASE_FRT_PRO_ACCTD_AMT ,
17598 BASE_FRT_PRO_AMT ,
17599 BASE_PRO_ACCTD_AMT ,
17600 BASE_PRO_AMT ,
17601 BASE_TAX_PRO_ACCTD_AMT ,
17602 BASE_TAX_PRO_AMT ,
17603 BASE_UNED_CHRG_PRO_ACCTD_AMT ,
17604 BASE_UNED_CHRG_PRO_AMT ,
17605 BASE_UNED_DIST_ACCTD_AMT ,
17606 BASE_UNED_DIST_AMT ,
17607 BASE_UNED_DIST_CHRG_ACCTD_AMT ,
17608 BASE_UNED_DIST_CHRG_AMT ,
17609 BASE_UNED_DIST_FRT_ACCTD_AMT ,
17610 BASE_UNED_DIST_FRT_AMT ,
17611 BASE_UNED_DIST_TAX_ACCTD_AMT ,
17612 BASE_UNED_DIST_TAX_AMT ,
17613 BASE_UNED_FRT_PRO_ACCTD_AMT ,
17614 BASE_UNED_FRT_PRO_AMT ,
17615 BASE_UNED_PRO_ACCTD_AMT ,
17616 BASE_UNED_PRO_AMT ,
17617 BASE_UNED_TAX_PRO_ACCTD_AMT ,
17618 BASE_UNED_TAX_PRO_AMT ,
17619 ACTIVITY_BUCKET ,
17620 BUC_ALLOC_ACCTD_AMT ,
17621 BUC_ALLOC_AMT ,
17622 BUC_CHRG_ALLOC_ACCTD_AMT ,
17623 BUC_CHRG_ALLOC_AMT ,
17624 BUC_ED_ALLOC_ACCTD_AMT ,
17625 BUC_ED_ALLOC_AMT ,
17626 BUC_ED_CHRG_ALLOC_ACCTD_AMT ,
17627 BUC_ED_CHRG_ALLOC_AMT ,
17628 BUC_ED_FRT_ALLOC_ACCTD_AMT ,
17629 BUC_ED_FRT_ALLOC_AMT ,
17630 BUC_ED_TAX_ALLOC_ACCTD_AMT ,
17631 BUC_ED_TAX_ALLOC_AMT ,
17632 BUC_FRT_ALLOC_ACCTD_AMT ,
17633 BUC_FRT_ALLOC_AMT ,
17634 BUC_TAX_ALLOC_ACCTD_AMT ,
17635 BUC_TAX_ALLOC_AMT ,
17636 BUC_UNED_ALLOC_ACCTD_AMT ,
17637 BUC_UNED_ALLOC_AMT ,
17638 BUC_UNED_CHRG_ALLOC_ACCTD_AMT ,
17639 BUC_UNED_CHRG_ALLOC_AMT ,
17640 BUC_UNED_FRT_ALLOC_ACCTD_AMT ,
17641 BUC_UNED_FRT_ALLOC_AMT ,
17642 BUC_UNED_TAX_ALLOC_ACCTD_AMT ,
17643 BUC_UNED_TAX_ALLOC_AMT ,
17644 CCID ,
17645 CCID_SECONDARY ,
17646 CHRG_REM_ACCTD_AMT ,
17647 CHRG_REM_AMT ,
17648 DET_ID ,
17649 DIST_ACCTD_AMT ,
17650 DIST_AMT ,
17651 DIST_CHRG_ACCTD_AMT ,
17652 DIST_CHRG_AMT ,
17653 DIST_ED_ACCTD_AMT ,
17654 DIST_ED_AMT ,
17655 DIST_ED_CHRG_ACCTD_AMT ,
17656 DIST_ED_CHRG_AMT ,
17657 DIST_ED_FRT_ACCTD_AMT ,
17658 DIST_ED_FRT_AMT ,
17659 DIST_ED_TAX_ACCTD_AMT ,
17660 DIST_ED_TAX_AMT ,
17661 DIST_FRT_ACCTD_AMT ,
17662 DIST_FRT_AMT ,
17663 DIST_TAX_ACCTD_AMT ,
17664 DIST_TAX_AMT ,
17665 DIST_UNED_ACCTD_AMT ,
17666 DIST_UNED_AMT ,
17667 DIST_UNED_CHRG_ACCTD_AMT ,
17668 DIST_UNED_CHRG_AMT ,
17669 DIST_UNED_FRT_ACCTD_AMT ,
17670 DIST_UNED_FRT_AMT ,
17671 DIST_UNED_TAX_ACCTD_AMT ,
17672 DIST_UNED_TAX_AMT ,
17673 DUE_ORIG_ACCTD_AMT ,
17674 DUE_ORIG_AMT ,
17675 DUE_REM_ACCTD_AMT ,
17676 DUE_REM_AMT ,
17677 ELMT_CHRG_PRO_ACCTD_AMT ,
17678 ELMT_CHRG_PRO_AMT ,
17679 ELMT_ED_CHRG_PRO_ACCTD_AMT ,
17680 ELMT_ED_CHRG_PRO_AMT ,
17681 ELMT_ED_FRT_PRO_ACCTD_AMT ,
17682 ELMT_ED_FRT_PRO_AMT ,
17683 ELMT_ED_PRO_ACCTD_AMT ,
17684 ELMT_ED_PRO_AMT ,
17685 ELMT_ED_TAX_PRO_ACCTD_AMT ,
17686 ELMT_ED_TAX_PRO_AMT ,
17687 ELMT_FRT_PRO_ACCTD_AMT ,
17688 ELMT_FRT_PRO_AMT ,
17689 ELMT_PRO_ACCTD_AMT ,
17690 ELMT_PRO_AMT ,
17691 ELMT_TAX_PRO_ACCTD_AMT ,
17692 ELMT_TAX_PRO_AMT ,
17693 ELMT_UNED_CHRG_PRO_ACCTD_AMT ,
17694 ELMT_UNED_CHRG_PRO_AMT ,
17695 ELMT_UNED_FRT_PRO_ACCTD_AMT ,
17696 ELMT_UNED_FRT_PRO_AMT ,
17697 ELMT_UNED_PRO_ACCTD_AMT ,
17698 ELMT_UNED_PRO_AMT ,
17699 ELMT_UNED_TAX_PRO_ACCTD_AMT ,
17700 ELMT_UNED_TAX_PRO_AMT ,
17701 FROM_ACCTD_AMT_CR ,
17702 FROM_ACCTD_AMT_DR ,
17703 FROM_ALLOC_ACCTD_AMT ,
17704 FROM_ALLOC_AMT ,
17705 FROM_CURRENCY ,
17706 FRT_ADJ_REM_ACCTD_AMT ,
17707 FRT_ADJ_REM_AMT ,
17708 FRT_ORIG_ACCTD_AMT ,
17709 FRT_ORIG_AMT ,
17710 FRT_REM_ACCTD_AMT ,
17711 FRT_REM_AMT ,
17712 GP_LEVEL ,
17713 GROUP_ID ,
17714 GT_ID ,
17715 LINE_ID ,
17716 LINE_TYPE ,
17717 REF_CUSTOMER_TRX_ID ,
17718 REF_CUSTOMER_TRX_LINE_ID ,
17719 REF_CUST_TRX_LINE_GL_DIST_ID ,
17720 REF_DET_ID ,
17721 REF_LINE_ID ,
17722 SET_OF_BOOKS_ID ,
17723 SE_GT_ID ,
17724 SOB_TYPE ,
17725 SOURCE_DATA_KEY1 ,
17726 SOURCE_DATA_KEY2 ,
17727 SOURCE_DATA_KEY3 ,
17728 SOURCE_DATA_KEY4 ,
17729 SOURCE_DATA_KEY5 ,
17730 SOURCE_ID ,
17731 SOURCE_TABLE ,
17732 SOURCE_TYPE ,
17733 SUM_GP_LINE_CHRG_REM_ACCTD_AMT ,
17734 SUM_GP_LINE_CHRG_REM_AMT ,
17735 SUM_GP_LINE_FRT_ORIG_ACCTD_AMT ,
17736 SUM_GP_LINE_FRT_ORIG_AMT ,
17737 SUM_GP_LINE_FRT_REM_ACCTD_AMT ,
17738 SUM_GP_LINE_FRT_REM_AMT ,
17739 SUM_GP_LINE_ORIG_ACCTD_AMT ,
17740 SUM_GP_LINE_ORIG_AMT ,
17741 SUM_GP_LINE_REM_ACCTD_AMT ,
17742 SUM_GP_LINE_REM_AMT ,
17743 SUM_GP_LINE_TAX_ORIG_ACCTD_AMT ,
17744 SUM_GP_LINE_TAX_ORIG_AMT ,
17745 SUM_GP_LINE_TAX_REM_ACCTD_AMT ,
17746 SUM_GP_LINE_TAX_REM_AMT ,
17747 SUM_LINE_CHRG_REM_ACCTD_AMT ,
17748 SUM_LINE_CHRG_REM_AMT ,
17749 SUM_LINE_FRT_ORIG_ACCTD_AMT ,
17750 SUM_LINE_FRT_ORIG_AMT ,
17751 SUM_LINE_FRT_REM_ACCTD_AMT ,
17752 SUM_LINE_FRT_REM_AMT ,
17753 SUM_LINE_ORIG_ACCTD_AMT ,
17754 SUM_LINE_ORIG_AMT ,
17755 SUM_LINE_REM_ACCTD_AMT ,
17756 SUM_LINE_REM_AMT ,
17757 SUM_LINE_TAX_ORIG_ACCTD_AMT ,
17758 SUM_LINE_TAX_ORIG_AMT ,
17759 SUM_LINE_TAX_REM_ACCTD_AMT ,
17760 SUM_LINE_TAX_REM_AMT ,
17761 TAX_INC_FLAG ,
17762 TAX_LINK_ID ,
17763 TAX_ORIG_ACCTD_AMT ,
17764 TAX_ORIG_AMT ,
17765 TAX_REM_ACCTD_AMT ,
17766 TAX_REM_AMT ,
17767 TL_ALLOC_ACCTD_AMT ,
17768 TL_ALLOC_AMT ,
17769 TL_CHRG_ALLOC_ACCTD_AMT ,
17770 TL_CHRG_ALLOC_AMT ,
17771 TL_ED_ALLOC_ACCTD_AMT ,
17772 TL_ED_ALLOC_AMT ,
17773 TL_ED_CHRG_ALLOC_ACCTD_AMT ,
17774 TL_ED_CHRG_ALLOC_AMT ,
17775 TL_ED_FRT_ALLOC_ACCTD_AMT ,
17776 TL_ED_FRT_ALLOC_AMT ,
17777 TL_ED_TAX_ALLOC_ACCTD_AMT ,
17778 TL_ED_TAX_ALLOC_AMT ,
17779 TL_FRT_ALLOC_ACCTD_AMT ,
17780 TL_FRT_ALLOC_AMT ,
17781 TL_TAX_ALLOC_ACCTD_AMT ,
17782 TL_TAX_ALLOC_AMT ,
17783 TL_UNED_ALLOC_ACCTD_AMT ,
17784 TL_UNED_ALLOC_AMT ,
17785 TL_UNED_CHRG_ALLOC_ACCTD_AMT ,
17786 TL_UNED_CHRG_ALLOC_AMT ,
17787 TL_UNED_FRT_ALLOC_ACCTD_AMT ,
17788 TL_UNED_FRT_ALLOC_AMT ,
17789 TL_UNED_TAX_ALLOC_ACCTD_AMT ,
17790 TL_UNED_TAX_ALLOC_AMT ,
17791 TO_CURRENCY ,
17792 REF_MF_DIST_FLAG ,
17793 CHRG_ORIG_AMT ,
17794 CHRG_ORIG_ACCTD_AMT ,
17795 CHRG_ADJ_REM_AMT ,
17796 CHRG_ADJ_REM_ACCTD_AMT ,
17797 SUM_LINE_CHRG_ORIG_AMT ,
17798 SUM_LINE_CHRG_ORIG_ACCTD_AMT ,
17799 SUM_GP_LINE_CHRG_ORIG_AMT ,
17800 SUM_GP_LINE_CHRG_ORIG_ACCTD_AM ,
17801 INT_LINE_AMOUNT ,
17802 INT_TAX_AMOUNT ,
17803 INT_ED_LINE_AMOUNT ,
17804 INT_ED_TAX_AMOUNT ,
17805 INT_UNED_LINE_AMOUNT ,
17806 INT_UNED_TAX_AMOUNT ,
17807 SUM_INT_LINE_AMOUNT ,
17808 SUM_INT_TAX_AMOUNT ,
17809 SUM_INT_ED_LINE_AMOUNT ,
17810 SUM_INT_ED_TAX_AMOUNT ,
17811 SUM_INT_UNED_LINE_AMOUNT ,
17812 SUM_INT_UNED_TAX_AMOUNT
17813 FROM ra_ar_gt
17814 WHERE gt_id = l_gt_id;
17815 */
17816
17817 OPEN c(l_gt_id);
17818 LOOP
17819 FETCH c INTO l;
17820 EXIT WHEN c%NOTFOUND;
17821 IF PG_DEBUG = 'Y' THEN
17822 localdebug('<FROM_AMOUNT>'||l.FROM_AMOUNT||'</FROM_AMOUNT>');
17823 localdebug('<FROM_CURRENCY>'||l.FROM_CURRENCY||'</FROM_CURRENCY>');
17824 localdebug('<GROUP_ID>'||l.GROUP_ID||'</GROUP_ID>');
17825 localdebug('<GT_ID>'||l.GT_ID||'</GT_ID>');
17826 localdebug('<LAST_UPDATED_BY>'||l.LAST_UPDATED_BY||'</LAST_UPDATED_BY>');
17827 localdebug('<LAST_UPDATE_DATE>'||l.LAST_UPDATE_DATE||'</LAST_UPDATE_DATE>');
17828 localdebug('<LAST_UPDATE_LOGIN>'||l.LAST_UPDATE_LOGIN||'</LAST_UPDATE_LOGIN>');
17829 localdebug('<LEDGER_ID>'||l.LEDGER_ID||'</LEDGER_ID>');
17830 localdebug('<LINE_ID>'||l.LINE_ID||'</LINE_ID>');
17831 localdebug('<ORG_ID>'||l.ORG_ID||'</ORG_ID>');
17832 localdebug('<REF_CUSTOMER_TRX_ID>'||l.REF_CUSTOMER_TRX_ID||'</REF_CUSTOMER_TRX_ID>');
17833 localdebug('<REF_CUSTOMER_TRX_LINE_ID>'||l.REF_CUSTOMER_TRX_LINE_ID||'</REF_CUSTOMER_TRX_LINE_ID>');
17834 localdebug('<REF_CUST_TRX_LINE_GL_DIST_ID>'||l.REF_CUST_TRX_LINE_GL_DIST_ID||'</REF_CUST_TRX_LINE_GL_DIST_ID>');
17835 localdebug('<REF_DET_ID>'||l.REF_DET_ID||'</REF_DET_ID>');
17836 localdebug('<REF_LINE_ID>'||l.REF_LINE_ID||'</REF_LINE_ID>');
17837 localdebug('<SE_GT_ID>'||l.SE_GT_ID||'</SE_GT_ID>');
17838 localdebug('<SOURCE_DATA_KEY1>'||l.SOURCE_DATA_KEY1||'</SOURCE_DATA_KEY1>');
17839 localdebug('<SOURCE_DATA_KEY2>'||l.SOURCE_DATA_KEY2||'</SOURCE_DATA_KEY2>');
17840 localdebug('<SOURCE_DATA_KEY3>'||l.SOURCE_DATA_KEY3||'</SOURCE_DATA_KEY3>');
17841 localdebug('<SOURCE_DATA_KEY4>'||l.SOURCE_DATA_KEY4||'</SOURCE_DATA_KEY4>');
17842 localdebug('<SOURCE_DATA_KEY5>'||l.SOURCE_DATA_KEY5||'</SOURCE_DATA_KEY5>');
17843 localdebug('<SOURCE_ID>'||l.SOURCE_ID||'</SOURCE_ID>');
17844 localdebug('<SOURCE_TABLE>'||l.SOURCE_TABLE||'</SOURCE_TABLE>');
17845 localdebug('<SOURCE_TYPE>'||l.SOURCE_TYPE||'</SOURCE_TYPE>');
17846 localdebug('<TAXABLE_ACCTD_AMOUNT>'||l.TAXABLE_ACCTD_AMOUNT||'</TAXABLE_ACCTD_AMOUNT>');
17847 localdebug('<TAXABLE_AMOUNT>'||l.TAXABLE_AMOUNT||'</TAXABLE_AMOUNT>');
17848 localdebug('<TAX_INC_FLAG>'||l.TAX_INC_FLAG||'</TAX_INC_FLAG>');
17849 localdebug('<TAX_LINK_ID>'||l.TAX_LINK_ID||'</TAX_LINK_ID>');
17850 localdebug('<TO_CURRENCY>'||l.TO_CURRENCY||'</TO_CURRENCY>');
17851 localdebug('<REF_MF_DIST_FLAG>'||l.REF_MF_DIST_FLAG||'</REF_MF_DIST_FLAG>');
17852 localdebug('<ACCTD_AMOUNT>'||l.ACCTD_AMOUNT||'</ACCTD_AMOUNT>');
17853 localdebug('<REF_ACCOUNT_CLASS>'||l.REF_ACCOUNT_CLASS||'</REF_ACCOUNT_CLASS>');
17854 localdebug('<AMOUNT>'||l.AMOUNT||'</AMOUNT>');
17855 localdebug('<APP_LEVEL>'||l.APP_LEVEL||'</APP_LEVEL>');
17856 localdebug('<BASE_CURRENCY>'||l.BASE_CURRENCY||'</BASE_CURRENCY>');
17857 localdebug('<ACTIVITY_BUCKET>'||l.ACTIVITY_BUCKET||'</ACTIVITY_BUCKET>');
17858 localdebug('<CCID>'||l.CCID||'</CCID>');
17859 localdebug('<CCID_SECONDARY>'||l.CCID_SECONDARY||'</CCID_SECONDARY>');
17860 localdebug('<DET_ID>'||l.DET_ID||'</DET_ID>');
17861 localdebug('<FROM_ACCTD_AMOUNT>'||l.FROM_ACCTD_AMOUNT||'</FROM_ACCTD_AMOUNT>');
17862 END IF;
17863
17864 END LOOP;
17865 CLOSE c;
17866 END;
17867
17868 PROCEDURE get_diag_flag IS
17869 BEGIN
17870 IF g_diag_flag = 'NOT_SET' THEN
17871 g_diag_flag := FND_PROFILE.VALUE('AR_EXTRACT_DIAG');
17872 IF g_diag_flag IS NULL THEN
17873 g_diag_flag := 'N';
17874 END IF;
17875 END IF;
17876 END;
17877
17878 END ARP_DET_DIST_PKG;