DBA Data[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;