DBA Data[Home] [Help]

PACKAGE BODY: APPS.ARP_XLA_EXTRACT_MAIN_PKG

Source


1 PACKAGE BODY arp_xla_extract_main_pkg AS
2 /* $Header: ARPXLEXB.pls 120.189.12020000.7 2012/11/01 02:04:48 samara ship $ */
3 
4 TYPE  t_lock IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
5 l_lock t_lock;
6 
7 l_multi_fund       VARCHAR2(1) DEFAULT 'N';
8 l_max_event_test   NUMBER      DEFAULT 10;
9 
10 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
11 
12  /*--------------------------------------------------------+
13   |  Dummy constants for use in update and lock operations |
14   +--------------------------------------------------------*/
15   AR_TEXT_DUMMY   CONSTANT VARCHAR2(20) := '~~!@#$*&^';
16   AR_FLAG_DUMMY   CONSTANT VARCHAR2(10) := '~';
17   AR_NUMBER_DUMMY CONSTANT NUMBER(15)   := -999999999999999;
18   AR_DATE_DUMMY   CONSTANT DATE         := to_date(1, 'J');
19 
20 -- bug 7197528
21 TYPE glr_ccid_cache_tab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
22 g_glr_ccid_cache_tab  glr_ccid_cache_tab;
23 
24 --bug9076896
25 TYPE cm_app_extract_record IS RECORD (
26 EVENT_ID                                            NUMBER(15)
27 ,MFAR_ADDITIONAL_ENTRY                              VARCHAR2(30)
28 ,LEDGER_ID                                          NUMBER(15)
29 ,BASE_CURRENCY_CODE                                 VARCHAR2(15)
30 ,ORG_ID                                             NUMBER(15)
31 ,LINE_ID                                            NUMBER(15)
32 ,SOURCE_ID                                          NUMBER(15)
33 ,SOURCE_TABLE                                       VARCHAR2(10)
34 ,HEADER_TABLE_ID                                    NUMBER(15)
35 ,POSTING_ENTITY                                     VARCHAR2(20)
36 ,XLA_ENTITY_ID                                      NUMBER(15)
37 
38 ,DIST_CCID                                          NUMBER(15)
39 ,REF_DIST_CCID                                      NUMBER
40 
41 ,FROM_CURRENCY_CODE                                 VARCHAR2(30)
42 ,FROM_EXCHANGE_RATE                                 NUMBER
43 ,FROM_EXCHANGE_RATE_TYPE                            VARCHAR2(30)
44 ,FROM_EXCHANGE_DATE                                 DATE
45 ,CM_AMT_APP_TO_INV_LINE                             NUMBER
46 ,CM_ACCTD_AMT_APP_TO_INV_LINE                       NUMBER
47 
48 ,TO_CURRENCY_CODE                                   VARCHAR2(30)
49 ,EXCHANGE_RATE                                      NUMBER
50 ,EXCHANGE_RATE_TYPE                                 VARCHAR2(30)
51 ,EXCHANGE_DATE                                      DATE
52 ,AMOUNT                                             NUMBER
53 ,ACCTD_AMOUNT                                       NUMBER
54 
55 ,RECEIVABLE_APPLICATION_ID                          NUMBER(15)
56 ,CUSTOMER_TRX_ID                                    NUMBER(15)
57 ,CUSTOMER_TRX_LINE_ID                               NUMBER(15)
58 ,CUST_TRX_LINE_GL_DIST_ID                           NUMBER(15)
59 
60 ,INVENTORY_ITEM_ID                                  NUMBER(15)
61 ,SALES_TAX_ID                                       NUMBER(15)
62 ,SET_OF_BOOKS_ID                                    NUMBER(15)
63 ,BILL_SITE_USE_ID                                   NUMBER(15)
64 ,SOLD_SITE_USE_ID                                   NUMBER(15)
65 ,SHIP_SITE_USE_ID                                   NUMBER(15)
66 ,BILL_CUSTOMER_ID                                   NUMBER(15)
67 ,SOLD_CUSTOMER_ID                                   NUMBER(15)
68 ,SHIP_CUSTOMER_ID                                   NUMBER(15)
69 ,TAX_LINE_ID                                        NUMBER(15)
70 
71 ,SELECT_FLAG                                        VARCHAR2(1)
72 ,LEVEL_FLAG                                         VARCHAR2(1)
73 ,FROM_TO_FLAG                                       VARCHAR2(1)
74 
75 ,EVENT_TYPE_CODE                                    VARCHAR2(30)
76 ,EVENT_CLASS_CODE                                   VARCHAR2(30)
77 ,ENTITY_CODE                                        VARCHAR2(30)
78 
79 ,THIRD_PARTY_ID                                     NUMBER(15)
80 ,THIRD_PARTY_SITE_ID                                NUMBER(15)
81 ,THIRD_PARTY_TYPE                                   VARCHAR2(30)
82 ,SOURCE_TYPE                                        VARCHAR2(30)
83 
84 ,CM_APP_LINE_AMT                                   NUMBER
85 ,CM_APP_LINE_ACCTD_AMT                             NUMBER
86 ,AMOUNT_APPLIED                                    NUMBER
87 ,ACCTD_AMOUNT_APPLIED_FROM                         NUMBER
88 ,FROM_DIST_LINE_ID                                  NUMBER(15)
89 ,LINE_NUMBER                                       NUMBER(15)
90 );
91 TYPE cm_app_extract_record_type IS TABLE OF cm_app_extract_record
92   INDEX BY BINARY_INTEGER;
93 -- end bug9076896
94 
95 -- bug 7458133
96 TYPE crh_mfar_extract_record IS RECORD (
97      EVENT_ID                                            NUMBER(15)
98      ,MFAR_ADDITIONAL_ENTRY                              VARCHAR2(30)
99      ,LEDGER_ID                                          NUMBER(15)
100      ,BASE_CURRENCY_CODE                                 VARCHAR2(15)
101      ,ORG_ID                                             NUMBER(15)
102      ,LINE_ID                                            NUMBER(15)
103      ,SOURCE_ID                                          NUMBER(15)
104      ,SOURCE_TABLE                                       VARCHAR2(10)
105      ,HEADER_TABLE_ID                                    NUMBER(15)
106      ,POSTING_ENTITY                                     VARCHAR2(20)
107      ,XLA_ENTITY_ID                                      NUMBER(15)
108 --
109      ,DIST_CCID                                          NUMBER(15)
110      ,REF_DIST_CCID                                      NUMBER
111      ,REF_CTLGD_CCID                                     NUMBER(15)
112 
113      ,FROM_CURRENCY_CODE                                 VARCHAR2(30)
114      ,FROM_EXCHANGE_RATE                                 NUMBER
115      ,FROM_EXCHANGE_RATE_TYPE                            VARCHAR2(30)
116      ,FROM_EXCHANGE_DATE                                 DATE
117      ,FROM_AMOUNT                                        NUMBER
118      ,FROM_ACCTD_AMOUNT                                  NUMBER
119 --
120      ,TO_CURRENCY_CODE                                   VARCHAR2(30)
121      ,EXCHANGE_RATE                                      NUMBER
122      ,EXCHANGE_RATE_TYPE                                 VARCHAR2(30)
123      ,EXCHANGE_DATE                                      DATE
124      ,AMOUNT                                             NUMBER
125      ,ACCTD_AMOUNT                                       NUMBER
126 --
127      ,RECEIVABLE_APPLICATION_ID                          NUMBER(15)
128      ,CASH_RECEIPT_ID                                    NUMBER(15)
129      ,CUSTOMER_TRX_ID                                    NUMBER(15)
130      ,CUSTOMER_TRX_LINE_ID                               NUMBER(15)
131      ,CUST_TRX_LINE_GL_DIST_ID                           NUMBER(15)
132 --
133      ,INVENTORY_ITEM_ID                                  NUMBER(15)
134      ,SALES_TAX_ID                                       NUMBER(15)
135      ,SET_OF_BOOKS_ID                                    NUMBER(15)
136      ,BILL_SITE_USE_ID                                   NUMBER(15)
137      ,SOLD_SITE_USE_ID                                   NUMBER(15)
138      ,SHIP_SITE_USE_ID                                   NUMBER(15)
139      ,BILL_CUSTOMER_ID                                   NUMBER(15)
140      ,SOLD_CUSTOMER_ID                                   NUMBER(15)
141      ,SHIP_CUSTOMER_ID                                   NUMBER(15)
142      ,TAX_LINE_ID                                        NUMBER(15)
143 --
144      ,SELECT_FLAG                                        VARCHAR2(1)
145      ,LEVEL_FLAG                                         VARCHAR2(1)
146      ,FROM_TO_FLAG                                       VARCHAR2(1)
147      ,CRH_STATUS                                         VARCHAR2(30)
148      ,APP_CRH_STATUS                                     VARCHAR2(30)
149 --
150      ,EVENT_TYPE_CODE                                    VARCHAR2(30)
151      ,EVENT_CLASS_CODE                                   VARCHAR2(30)
152      ,ENTITY_CODE                                        VARCHAR2(30)
153 --
154      ,THIRD_PARTY_ID                                     NUMBER(15)
155      ,THIRD_PARTY_SITE_ID                                NUMBER(15)
156      ,THIRD_PARTY_TYPE                                   VARCHAR2(30)
157      ,SOURCE_TYPE                                        VARCHAR2(30)
158 --
159      ,RECP_AMOUNT                                        NUMBER
160      ,RECP_ACCTD_AMOUNT                                  NUMBER
161      ,CRH_AMOUNT                                         NUMBER
162      ,CRH_ACCTD_AMOUNT                                   NUMBER
163      ,CRH_RECORD_ID                                      NUMBER(15)
164      ,ALLOC_AMOUNT                                       NUMBER
165      ,ALLOC_ACCTD_AMOUNT                                 NUMBER
166      ,MAX_LINE_ID                                        NUMBER(15)
167      ,MFAR_UPG_TRX                                       VARCHAR2(1)
168      ,LINE_NUMBER                                        NUMBER(15)
169      );
170   TYPE crh_mfar_extract_record_type IS TABLE OF crh_mfar_extract_record
171   INDEX BY BINARY_INTEGER;
172 
173 TYPE ar_xla_extract_record IS RECORD (
174       EVENT_ID                                           NUMBER(15)
175       ,LINE_NUMBER                                        NUMBER(15)
176       ,LANGUAGE                                           VARCHAR2(20)
177       ,LEDGER_ID                                          NUMBER(15)
178       ,SOURCE_ID                                          NUMBER(15)
179       ,SOURCE_TABLE                                       VARCHAR2(10)
180       ,SOURCE_TYPE                                        VARCHAR2(30)
181       ,LINE_ID                                            NUMBER(15)
182       ,TAX_CODE_ID                                        NUMBER(15)
183       ,LOCATION_SEGMENT_ID                                NUMBER(15)
184       ,BASE_CURRENCY_CODE                                 VARCHAR2(15)
185       ,EXCHANGE_RATE_TYPE                                 VARCHAR2(30)
186       ,EXCHANGE_RATE                                      NUMBER
187       ,EXCHANGE_DATE                                      DATE
188       ,ACCTD_AMOUNT                                       NUMBER
189       ,TAXABLE_ACCTD_AMOUNT                               NUMBER
190       ,ORG_ID                                             NUMBER(15)
191       ,HEADER_TABLE_ID                                    NUMBER(15)
192       ,POSTING_ENTITY                                     VARCHAR2(20)
193       ,AMOUNT_APPLIED                                     NUMBER
194       ,AMOUNT_APPLIED_FROM                                NUMBER
195       ,ACCTD_AMOUNT_APPLIED_FROM                          NUMBER
196       ,CASH_RECEIPT_ID                                    NUMBER(15)
197       ,CUSTOMER_TRX_ID                                    NUMBER(15)
198       ,CUSTOMER_TRX_LINE_ID                               NUMBER(15)
199       ,CUST_TRX_LINE_GL_DIST_ID                           NUMBER(15)
200       ,CUST_TRX_LINE_SALESREP_ID                          NUMBER(15)
201       ,INVENTORY_ITEM_ID                                  NUMBER(15)
202       ,SALES_TAX_ID                                       NUMBER(15)
203       ,SO_ORGANIZATION_ID                                 NUMBER(15)
204       ,TAX_EXEMPTION_ID                                   NUMBER(15)
205       ,UOM_CODE                                           VARCHAR2(3)
206       ,WAREHOUSE_ID                                       NUMBER(15)
207       ,AGREEMENT_ID                                       NUMBER(15)
208       ,CUSTOMER_BANK_ACCT_ID                              NUMBER(15)
209       ,DRAWEE_BANK_ACCOUNT_ID                             NUMBER(15)
210       ,REMITTANCE_BANK_ACCT_ID                            NUMBER(15)
211       ,DISTRIBUTION_SET_ID                                NUMBER(15)
212       ,PAYMENT_SCHEDULE_ID                                NUMBER(15)
213       ,RECEIPT_METHOD_ID                                  NUMBER(15)
214       ,RECEIVABLES_TRX_ID                                 NUMBER(15)
215       ,ED_ADJ_RECEIVABLES_TRX_ID                          NUMBER(15)
216       ,UNED_RECEIVABLES_TRX_ID                            NUMBER(15)
217       ,SET_OF_BOOKS_ID                                    NUMBER(15)
218       ,SALESREP_ID                                        NUMBER(15)
219       ,BILL_SITE_USE_ID                                   NUMBER(15)
220       ,DRAWEE_SITE_USE_ID                                 NUMBER(15)
221       ,PAYING_SITE_USE_ID                                 NUMBER(15)
222       ,SOLD_SITE_USE_ID                                   NUMBER(15)
223       ,SHIP_SITE_USE_ID                                   NUMBER(15)
224       ,RECEIPT_CUSTOMER_SITE_USE_ID                       NUMBER(15)
225       ,BILL_CUST_ROLE_ID                                  NUMBER(15)
226       ,DRAWEE_CUST_ROLE_ID                                NUMBER(15)
227       ,SHIP_CUST_ROLE_ID                                  NUMBER(15)
228       ,SOLD_CUST_ROLE_ID                                  NUMBER(15)
229       ,BILL_CUSTOMER_ID                                   NUMBER(15)
230       ,DRAWEE_CUSTOMER_ID                                 NUMBER(15)
231       ,PAYING_CUSTOMER_ID                                 NUMBER(15)
232       ,SOLD_CUSTOMER_ID                                   NUMBER(15)
233       ,SHIP_CUSTOMER_ID                                   NUMBER(15)
234       ,REMIT_ADDRESS_ID                                   NUMBER(15)
235       ,RECEIPT_BATCH_ID                                   NUMBER(15)
236       ,RECEIVABLE_APPLICATION_ID                          NUMBER(15)
237       ,CUSTOMER_BANK_BRANCH_ID                            NUMBER(15)
238       ,ISSUER_BANK_BRANCH_ID                              NUMBER(15)
239       ,BATCH_SOURCE_ID                                    NUMBER(15)
240       ,BATCH_ID                                           NUMBER(15)
241       ,TERM_ID                                            NUMBER(15)
242       ,SELECT_FLAG                                        VARCHAR2(1)
243       ,LEVEL_FLAG                                         VARCHAR2(1)
244       ,FROM_TO_FLAG                                       VARCHAR2(1)
245       ,FROM_AMOUNT                                        NUMBER
246       ,AMOUNT                                             NUMBER
247       ,FROM_ACCTD_AMOUNT                                  NUMBER
248       ,EVENT_TYPE_CODE                                    VARCHAR2(30)
249       ,EVENT_CLASS_CODE                                   VARCHAR2(30)
250       ,ENTITY_CODE                                        VARCHAR2(30)
251       ,MFAR_ADDITIONAL_ENTRY                              VARCHAR2(30)
252       ,REF_MF_DIST_FLAG                                   VARCHAR2(1)
253      );
254   TYPE ar_xla_extract_record_type IS TABLE OF ar_xla_extract_record
255   INDEX BY BINARY_INTEGER;
256 
257 
258 TYPE ar_cm_from_record IS RECORD (
259 ENTITY_ID                                          NUMBER(15)
260 ,RECEIVABLE_APPLICATION_ID                          NUMBER(15)
261 ,LINE_ID                                            NUMBER(15)
262 ,SOURCE_TYPE                                        VARCHAR2(30)
263 ,CUSTOMER_TRX_ID                                    NUMBER(15)
264 ,AMOUNT                                             NUMBER
265 ,ACCTD_AMOUNT                                       NUMBER
266 ,AMOUNT_APPLIED_FROM                                NUMBER
267 ,ACCTD_AMOUNT_APPLIED_FROM                          NUMBER
268 ,CODE_COMBINATION_ID                                NUMBER(15)
269 ,EXCHANGE_DATE                                      DATE
270 ,EXCHANGE_RATE                                      NUMBER
271 ,EXCHANGE_RATE_TYPE                                 VARCHAR2(30)
272 ,THIRD_PARTY_ID                                     NUMBER(15)
273 ,THIRD_PARTY_SUB_ID                                 NUMBER(15)
274 ,EVENT_ID                                           NUMBER(15)
275 ,LEDGER_ID                                          NUMBER(15)
276 ,CURRENCY_CODE                                      VARCHAR2(30)
277 ,ORG_ID                                             NUMBER(15)
278 ,BASE_CURRENCY_CODE                                 VARCHAR2(15)
279 );
280 
281 TYPE ar_cm_to_record IS RECORD (
282 ENTITY_ID                                          NUMBER(15)
283 ,RECEIVABLE_APPLICATION_ID                          NUMBER(15)
284 ,LINE_ID                                            NUMBER(15)
285 ,AMOUNT                                             NUMBER
286 ,ACCTD_AMOUNT                                       NUMBER
287 ,FROM_AMOUNT                                        NUMBER
288 ,FROM_ACCTD_AMOUNT                                  NUMBER
289 ,THIRD_PARTY_ID                                     NUMBER(15)
290 ,THIRD_PARTY_SITE_ID                                NUMBER(15)
291 ,THIRD_PARTY_TYPE                                   VARCHAR2(30)
292 ,CURRENCY_CODE                                      VARCHAR2(30)
293 ,EXCHANGE_RATE                                      NUMBER
294 ,EXCHANGE_TYPE                                      VARCHAR2(30)
295 ,EXCHANGE_DATE                                      DATE
296 ,REF_CUSTOMER_TRX_LINE_ID                           NUMBER(15)
297 ,REF_CUST_TRX_LINE_GL_DIST_ID                       NUMBER(15)
298 ,CODE_COMBINATION_ID                                NUMBER(15)
299 ,REF_DIST_CCID                                      NUMBER(15)
300 ,ACTIVITY_BUCKET                                    VARCHAR2(30)
301 ,SOURCE_TYPE                                        VARCHAR2(30)
302 ,SOURCE_TABLE                                       VARCHAR2(30)
303 ,RA_POST_INDICATOR                                  VARCHAR2(30)
304 ,CUSTOMER_TRX_ID                                    NUMBER(15)
305 ,INVENTORY_ITEM_ID                                  NUMBER(15)
306 ,SALES_TAX_ID                                       NUMBER(15)
307 ,TAX_LINE_ID                                        NUMBER(15)
308 ,BILL_TO_CUSTOMER_ID                                NUMBER(15)
309 ,BILL_TO_SITE_USE_ID                                NUMBER(15)
310 ,SOLD_TO_CUSTOMER_ID                                NUMBER(15)
311 ,SOLD_TO_SITE_USE_ID                                NUMBER(15)
312 ,SHIP_TO_CUSTOMER_ID                                NUMBER(15)
313 ,SHIP_TO_SITE_USE_ID                                NUMBER(15)
314 );
315 
316 -- Added for bug 9860123 used for cm amount pro-ration
317    TYPE ar_cm_from_tab IS TABLE OF ar_cm_from_record
318       INDEX BY BINARY_INTEGER;
319    TYPE ar_cm_to_tab IS TABLE OF ar_cm_to_record
320       INDEX BY BINARY_INTEGER;
321 
322 -- 10047351
323 
324 TYPE cmapp_curr_round IS RECORD (
325 EVENT_ID   NUMBER,
326 SOURCE_ID  NUMBER,
327 AMOUNT     NUMBER,
328 ACCTD_AMOUNT NUMBER
329 );
330 
331 TYPE cmapp_curr_round_tab IS TABLE OF cmapp_curr_round
332 INDEX BY BINARY_INTEGER;
333 
334 TYPE cmapp_rec_record IS RECORD (
335 BAL_SEG_VALUE  VARCHAR2(25),
336 AMOUNT         NUMBER,
337 ACCTD_AMOUNT   NUMBER,
338 CUST_TRX_LINE_ID  NUMBER
339 );
340 
341 TYPE cmapp_rec_record_tab IS TABLE OF cmapp_rec_record
342 INDEX BY BINARY_INTEGER;
343 
344 -- 10047351
345 
346 ---------------------------
347 -- Local routine for MFAR
348 ---------------------------
349 PROCEDURE mfar_hook(p_ledger_id IN NUMBER);
350 PROCEDURE mfar_app_dist_cr;
351 PROCEDURE mfar_crh_dist;
352 PROCEDURE mfar_produit_app_by_crh;
353 PROCEDURE mfar_get_ra;
354 PROCEDURE mfar_produit_mcd_by_crh;
355 PROCEDURE mfar_mcd_dist_cr;
356 PROCEDURE mfar_cmapp_from_to;
357 PROCEDURE mfar_cmapp_curr_round;
358 PROCEDURE mfar_rctapp_curr_round;
359 PROCEDURE mfar_cmapp_fetch;
360 
361 
362 -- bug 7458133
363 PROCEDURE mfar_insert_crh_extract(p_crh_mfar_extract_record IN crh_mfar_extract_record_type);
364 PROCEDURE prorate_extract_acctd_amounts(p_extract_record IN ar_xla_extract_record_type);
365 PROCEDURE mfar_cm_app_insert_extract(p_ar_cm_from_rec IN ar_cm_from_tab, p_ar_cm_to_rec IN OUT NOCOPY ar_cm_to_tab);
366 PROCEDURE mfar_cmapp_trx_update(p_cmapp_curr_round IN cmapp_curr_round, p_call VARCHAR2);
367 
368 
369 --------------------------------------------------
370 -- Body of Procedures and functions             --
371 --------------------------------------------------
372 
373 PROCEDURE diag_data;
374 
375 -- Local logging to avoid arp_standard.debug
376 
377 PROCEDURE log(
378    message       IN VARCHAR2,
379    newline       IN BOOLEAN DEFAULT TRUE) IS
380 BEGIN
381   IF NVL(fnd_global.CONC_REQUEST_ID,0) <> 0 THEN
382     IF message = 'NEWLINE' THEN
383       FND_FILE.NEW_LINE(FND_FILE.LOG, 1);
384     ELSIF (newline) THEN
385       FND_FILE.put_line(fnd_file.log,message);
386     ELSE
387       FND_FILE.put(fnd_file.log,message);
388     END IF;
389   END IF;
390 END log;
391 
392 PROCEDURE local_log
393 (procedure_name    IN VARCHAR2,
394  p_msg_text        IN VARCHAR2,
395  p_msg_level       IN NUMBER DEFAULT FND_LOG.LEVEL_STATEMENT)
396 IS
397   l_module     VARCHAR2(255);
398 BEGIN
399   IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
400      l_module := 'ar.xla.plsql.'||procedure_name;
401      FND_LOG.STRING(fnd_log.level_procedure,
402                     l_module,
403                     p_msg_text);
404   END IF;
405   log(p_msg_text);
406 END;
407 
408 
409 PROCEDURE set_from_amt IS
410 CURSOR c IS
411 SELECT  CASE WHEN (NVL(a.amount_cr,0) - NVL(a.amount_dr,0)) < 0 THEN
412             ABS(b.from_amount)        ELSE NULL END
413        ,CASE WHEN (NVL(a.amount_cr,0) - NVL(a.amount_dr,0)) > 0 THEN
414             ABS(b.from_amount)        ELSE NULL END
415        ,CASE WHEN (NVL(a.acctd_amount_cr,0) - NVL(a.acctd_amount_dr,0)) < 0 THEN
416             ABS(b.from_acctd_amount)  ELSE NULL END
417        ,CASE WHEN (NVL(a.acctd_amount_cr,0) - NVL(a.acctd_amount_dr,0)) > 0 THEN
418              ABS(b.from_acctd_amount) ELSE NULL END
419        ,b.activity_bucket
420        ,b.line_id
421   FROM ar_line_app_detail_gt b,
422        ar_distributions_all  a
423  WHERE b.line_id = a.line_id;
424 
425   l_from_amount_dr          DBMS_SQL.NUMBER_TABLE;
426   l_from_amount_cr          DBMS_SQL.NUMBER_TABLE;
427   l_from_acctd_amount_dr    DBMS_SQL.NUMBER_TABLE;
428   l_from_acctd_amount_cr    DBMS_SQL.NUMBER_TABLE;
429   l_activity_bucket         DBMS_SQL.VARCHAR2_TABLE;
430   l_line_id                 DBMS_SQL.NUMBER_TABLE;
431   l_last_fetch              BOOLEAN := FALSE;
432   l_found                   VARCHAR2(1);
433 
434 BEGIN
435 
436   local_log( 'set_from_amt','set_from_amt +');
437   OPEN c;
438   LOOP
439     FETCH c BULK COLLECT INTO l_from_amount_dr,
440                               l_from_amount_cr,
441                               l_from_acctd_amount_dr,
442                               l_from_acctd_amount_cr,
443                               l_activity_bucket,
444                               l_line_id
445                     LIMIT 10000;
446 
447       IF c%NOTFOUND THEN
448          l_last_fetch := TRUE;
449       END IF;
450 
451       IF (l_line_id.COUNT = 0) AND (l_last_fetch) THEN
452         local_log('set_from_amt',' COUNT = 0 and LAST FETCH ');
453         EXIT;
454       END IF;
455 
456       FORALL i IN l_line_id.FIRST .. l_line_id.LAST
457       UPDATE ar_distributions_all a
458          SET a.from_amount_dr         = l_from_amount_dr(i),
459              a.from_amount_cr         = l_from_amount_cr(i),
460              a.from_acctd_amount_dr   = l_from_acctd_amount_dr(i),
461              a.from_acctd_amount_cr   = l_from_acctd_amount_cr(i),
462              a.activity_bucket        = l_activity_bucket(i)
463        WHERE a.line_id                = l_line_id(i);
464 
465    END LOOP;
466    CLOSE c;
467    local_log('set_from_amt','set_from_amt  -');
468 
469 EXCEPTION
470 --  WHEN NO_DATA_FOUND THEN NULL;
471   WHEN OTHERS THEN
472     IF c%ISOPEN THEN CLOSE c; END IF;
473     local_log('set_from_amt','EXCEPTION OTHERS in set_from_amt  :'||SQLERRM);
474 END set_from_amt;
475 
476 
477 PROCEDURE upgrade_11i_r12_post IS
478 
479   CURSOR cu_gt_info IS
480   SELECT taxable_amount,        --amount_applied_from
481          taxable_acctd_amount,  --acctd_amount_applied_from
482          base_currency,         --sob_currency
483          det_id,                --cash_receipt_id
484          group_id,              --customer_trx_id CM
485          gt_id,                 --receivable_application_id used also as gt_id
486          to_currency            --invoice currency
487     FROM ar_line_app_detail_gt
488    GROUP BY
489            (taxable_amount,        --amount_applied_from
490             taxable_acctd_amount,  --acctd_amount_applied_from
491             base_currency,         --sob_currency
492             det_id,                --cash_receipt_id
493             group_id,              --customer_trx_id CM
494             gt_id,                 --receivable_application_id used also as gt_id
495             to_currency);          --invoice currency
496 
497 
498   l_amount_applied_from         NUMBER;
499   l_acctd_amount_applied_from   NUMBER;
500   l_base_currency               VARCHAR2(30);
501   l_cash_receipt_id             NUMBER;
502   l_customer_trx_id             NUMBER;
503   l_receivable_application_id   NUMBER;
504   l_to_currency                 VARCHAR2(30);
505   l_ae_sys_rec                  arp_acct_main.ae_sys_rec_type;
506   l_app_rec                     ar_receivable_applications%ROWTYPE;
507 
508 BEGIN
509   local_log(procedure_name => 'upgrade_11i_r12_post',
510              p_msg_text     => 'Calling upgrade_11i_r12_post +');
511    --Get 11i Applications to upgrade
512 
513   local_log(procedure_name => 'upgrade_11i_r12_post',
514              p_msg_text     => '  Get 11i application to upgrade');
515      INSERT INTO ar_line_app_detail_gt
516       (gt_id,                --receivable_application_id
517        source_data_key1,     --application_type CASH CM
518        det_id,               --cash_receipt_id CASH
519        group_id,             --customer_trx_id CM
520        ref_customer_trx_id,  --applied_customer_trx_id INV
521        line_id,              --line_id
522        amount,
523        acctd_amount,
524        TO_CURRENCY,          --CURRENCY_CODE
525        TAXABLE_AMOUNT,       --from_total_applied
526        TAXABLE_ACCTD_AMOUNT, --from_total_accted_applied
527        base_currency,        --sob_currency
528        activity_bucket,
529        from_amount,
530        from_acctd_amount)
531         SELECT /*+LEADING(eve) USE_NL(eve,app)*/
532 	       app.RECEIVABLE_APPLICATION_ID,
533                app.APPLICATION_TYPE         ,
534                app.CASH_RECEIPT_ID          ,
535                app.CUSTOMER_TRX_ID          ,
536                app.APPLIED_CUSTOMER_TRX_ID  ,
537                dist.LINE_ID                 ,
538                NVL(dist.AMOUNT_CR,0)-NVL(dist.AMOUNT_DR,0),
539                NVL(dist.ACCTD_AMOUNT_CR,0)-NVL(dist.ACCTD_AMOUNT_DR,0),
540                dist.CURRENCY_CODE           ,
541                NVL(app.AMOUNT_APPLIED_FROM  ,app.AMOUNT_APPLIED),
542                app.ACCTD_AMOUNT_APPLIED_FROM,
543                sob.currency_code            ,
544                DECODE(dist.source_type,'EDISC'  ,'ED_LINE'  ,
545                                        'UNEDISC','UNED_LINE',
546                                        'REC'    ,'APP_LINE' , NULL),
547                NVL(dist.AMOUNT_CR,0)-NVL(dist.AMOUNT_DR,0),
548                NVL(dist.ACCTD_AMOUNT_CR,0)-NVL(dist.ACCTD_AMOUNT_DR,0)
549           FROM xla_events_gt                  eve,
550                ar_receivable_applications_all app,
551                ar_distributions_all           dist,
552                gl_ledgers                     sob
553          WHERE eve.application_id         = 222
554            AND eve.entity_code           IN ('RECEIPTS','TRANSACTIONS')
555            AND eve.event_id               = app.event_id
556            AND app.status                IN ('APP','ACTIVITY')
557            AND app.posting_control_id     = -3
558            AND NVL(app.postable,'Y')      ='Y'
559            AND NVL(app.confirmed_flag,'Y')='Y'
560            AND app.upgrade_method        IS NULL
561            AND app.receivable_application_id = dist.source_id
562            AND dist.source_table          = 'RA'
563 -- This is not required the app status should suffice
564 --           AND dist.source_type         IN ('REC','EDISC','UNEDISC','DEFERRED_TAX','TAX','ACTIVITY','SHORT_TERM_DEBT')
565            AND app.set_of_books_id        = sob.ledger_id;
566 
567 
568 
569     IF SQL%ROWCOUNT > 0 THEN
570   local_log(procedure_name => 'upgrade_11i_r12_post',
571              p_msg_text     => '  Number application found :'||SQL%ROWCOUNT);
572 
573      --Calculate from amounts
574 
575      OPEN cu_gt_info;
576      LOOP
577        FETCH cu_gt_info INTO
578          l_amount_applied_from      ,
579          l_acctd_amount_applied_from,
580          l_base_currency            ,
581          l_cash_receipt_id          ,
582          l_customer_trx_id          ,
583          l_receivable_application_id,
584          l_to_currency;
585        EXIT WHEN cu_gt_info%NOTFOUND;
586 
587        l_ae_sys_rec.base_currency := l_base_currency;
588        l_app_rec.receivable_application_id := l_receivable_application_id;
589        l_app_rec.cash_receipt_id  := l_cash_receipt_id;
590        l_app_rec.customer_trx_id  := l_customer_trx_id;
591 
592   local_log(procedure_name => 'upgrade_11i_r12_post',
593              p_msg_text     => '  upgrading application_id :'|| l_receivable_application_id);
594 
595        arp_det_dist_pkg.update_from_gt
596         (p_from_amt       => l_amount_applied_from,
597          p_from_acctd_amt => l_acctd_amount_applied_from,
598          p_ae_sys_rec     => l_ae_sys_rec,
599          p_app_rec        => l_app_rec,
600          p_gt_id          => l_receivable_application_id,
601          p_inv_currency   => l_to_currency);
602 
603       END LOOP;
604       CLOSE cu_gt_info;
605 
606 
607    --Update from amounts in distributions
608   local_log(procedure_name => 'upgrade_11i_r12_post',
609              p_msg_text     => '  Updating distribution from amount');
610 
611   --BUG#5550040
612   set_from_amt;
613 
614    --Update receivable applications
615   local_log(procedure_name => 'upgrade_11i_r12_post',
616              p_msg_text     => '  Set application upgrade_method 11I_R12_POST');
617 
618        UPDATE ar_receivable_applications_all
619           SET upgrade_method = '11I_R12_POST'
620         WHERE receivable_application_id IN
621              (SELECT gt_id
622                 FROM ar_line_app_detail_gt
623                GROUP BY gt_id);
624     END IF;
625 
626   local_log(procedure_name => 'upgrade_11i_r12_post',
627              p_msg_text     => 'End upgrade_11i_r12_post -');
628 
629 EXCEPTION
630 --  WHEN NO_DATA_FOUND THEN NULL;
631   WHEN OTHERS THEN
632   local_log(procedure_name => 'upgrade_11i_r12_post',
633             p_msg_text     => 'EXCEPTION OTHERS upgrade_11i_r12_post :'||SQLERRM);
634   RAISE;
635 END;
636 
637 /*-----------------------------------------------------------------+
638  | Procedure Name : load_line_data_app_from_cr                     |
639  | Description    : Extract the from application line attached to  |
640  |                  a cash receipt event                           |
641  +-----------------------------------------------------------------+
642  | History        :                                                |
643  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
644  +-----------------------------------------------------------------*/
645 PROCEDURE load_line_data_app_from_cr(p_application_id IN NUMBER DEFAULT 222)
646 IS
647 
648 CURSOR inv_conv_rate_zero IS
649  SELECT /*+LEADING(gt) USE_NL(gt,app)*/
650            gt.event_id,                        -- EVENT_ID
651            dist.line_id,                       -- LINE_NUMBER
652            '',                                 -- LANGUAGE
653            sob.set_of_books_id,                -- LEDGER_ID
654            dist.source_id,                     -- SOURCE_ID
655            dist.source_table,                  -- SOURCE_TABLE
656            dist.source_type,
657            dist.line_id,                       -- LINE_ID
658            dist.tax_code_id,                   -- TAX_CODE_ID
659            dist.location_segment_id,           -- LOCATION_SEGMENT_ID
660            sob.currency_code,                  -- BASE_CURRENCY
661            NVL(crh.exchange_rate_type,cr.exchange_rate_type),         -- EXCHANGE_RATE_TYPE
662            NVL(crh.EXCHANGE_RATE,cr.exchange_rate)     ,              -- EXCHANGE_RATE
663            NVL(crh.EXCHANGE_DATE,cr.exchange_date)     ,              -- EXCHANGE_DATE
664 --
665            NVL(dist.acctd_amount_cr,0)
666              - NVL(dist.acctd_amount_dr,0),      -- ACCTD_AMOUNT
667            NVL(dist.taxable_accounted_cr,0)
668              - NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
669            app.org_id,                         -- ORG_ID
670            app.receivable_application_id,      -- HEADER_ID
671            'APP',                              -- POSTING_ENTITY
672            app.amount_applied,
673            app.amount_applied_from,
674            app.acctd_amount_applied_from,
675            cr.cash_receipt_id,                 -- CASH_RECEIPT_ID
676            NULL,                               -- CUSTOMER_TRX_ID
677            NULL,                               -- CUSTOMER_TRX_LINE_ID
678            NULL,                               -- CUST_TRX_LINE_GL_DIST_ID
679            NULL,                               -- CUST_TRX_LINE_SALESREP_ID
680            NULL,                               -- INVENTORY_ITEM_ID
681            NULL,                               -- SALES_TAX_ID
682            osp.master_organization_id,         -- SO_ORGANIZATION_ID
683            NULL,                               -- TAX_EXEMPTION_ID
684            NULL,                               -- UOM_CODE
685            NULL,                               -- WAREHOUSE_ID
686            NULL,                               -- AGREEMENT_ID
687            cr.customer_bank_account_id,        -- CUSTOMER_BANK_ACCT_ID
688            NULL,                               -- DRAWEE_BANK_ACCOUNT_ID
689            cr.remit_bank_acct_use_id,          -- REMITTANCE_BANK_ACCT_ID
690            cr.distribution_set_id,             -- DISTRIBUTION_SET_ID
691            NULL,                               -- PAYMENT_SCHEDULE_ID
692            cr.receipt_method_id,               -- RECEIPT_METHOD_ID
693            cr.receivables_trx_id,              -- RECEIVABLES_TRX_ID
694 --           arp_xla_extract_main_pkg.ed_uned_trx('EDISC',app.org_id),       -- ED_ADJ_RECEIVABLES_TRX_ID
695 --           arp_xla_extract_main_pkg.ed_uned_trx('UNEDISC',app.org_id),     -- UNED_RECEIVABLES_TRX_ID
696 -- ED and UNED activity id should only be available on the to doc in application
697            NULL,       -- ED_ADJ_RECEIVABLES_TRX_ID
698            NULL,     -- UNED_RECEIVABLES_TRX_ID
699            cr.set_of_books_id,                 -- SET_OF_BOOKS_ID
700            NULL,                               -- SALESREP_ID
701            cr.customer_site_use_id,            -- BILL_SITE_USE_ID
702            NULL,                               -- DRAWEE_SITE_USE_ID
703            cr.customer_site_use_id,            -- PAYING_SITE_USE_ID  -- synch with PAYING_CUSTOMER_ID
704            NULL,                               -- SOLD_SITE_USE_ID
705            NULL,                               -- SHIP_SITE_USE_ID
706            cr.customer_site_use_id,            -- RECEIPT_CUSTOMER_SITE_USE_ID
707            NULL,                               -- BILL_CUST_ROLE_ID
708            NULL,                               -- DRAWEE_CUST_ROLE_ID
709            NULL,                               -- SHIP_CUST_ROLE_ID
710            NULL,                               -- SOLD_CUST_ROLE_ID
711            NULL,                               -- BILL_CUSTOMER_ID
712            NULL,                               -- DRAWEE_CUSTOMER_ID
713            cr.pay_from_customer,               -- PAYING_CUSTOMER_ID
714            NULL,                               -- SOLD_CUSTOMER_ID
715            NULL,                               -- SHIP_CUSTOMER_ID
716            NULL,                               -- REMIT_ADDRESS_ID
717            cr.SELECTED_REMITTANCE_BATCH_ID,    -- RECEIPT_BATCH_ID
718            app.receivable_application_id,      -- RECEIVABLE_APPLICATION_ID
719            cr.customer_bank_branch_id,         -- CUSTOMER_BANK_BRANCH_ID
720            cr.issuer_bank_branch_id,           -- ISSUER_BANK_BRANCH_ID
721            NULL,                               -- BATCH_SOURCE_ID
722            NULL,                               -- BATCH_ID
723            NULL,                               -- TERM_ID
724            'Y',                                -- SELECT_FLAG
725            'L',                                -- LEVEL_FLAG
726            'F',                                -- FROM_TO_FLAG
727 --BUG#5201086
728 --           NVL(dist.from_amount_cr,0)
729 --             -NVL(dist.from_amount_dr,0),      -- FROM_AMOUNT,
730         CASE WHEN (app.upgrade_method IS NULL  AND app.status ='APP') THEN
731            CASE WHEN (dist.from_amount_dr IS NOT NULL OR dist.from_amount_cr IS NOT NULL) THEN
732               NVL(dist.from_amount_cr,0)-NVL(dist.from_amount_dr,0)
733            ELSE
734              CASE WHEN (dist.source_type NOT IN ('REC','EDISC','UNEDISC')) THEN
735                 NULL
736              ELSE
737                CASE WHEN (app.earned_discount_taken IS NOT NULL AND
738                     app.earned_discount_taken = NVL(dist.amount_dr,0)-NVL(dist.amount_cr,0) AND
739                     app.acctd_earned_discount_taken = NVL(dist.acctd_amount_dr,0)-NVL(dist.acctd_amount_cr,0)
740                     AND dist.source_type = 'REC') THEN
741                    NULL
742                ELSE
743                  CASE WHEN (trx.invoice_currency_code = cr.currency_code) THEN
744                     NVL(dist.amount_cr,0)-NVL(dist.amount_dr,0)
745                  ELSE
746                    CASE WHEN (app.amount_applied <> 0 AND app.amount_applied_from <> 0) THEN
747                      NVL(app.amount_applied_from / app.amount_applied * dist.amount_cr,0)-
748                      NVL(app.amount_applied_from / app.amount_applied * dist.amount_dr,0)
749                     ELSE  NULL END
750                  END
751                END
752              END
753            END
754         ELSE
755            NVL(dist.from_amount_cr,0)
756              -NVL(dist.from_amount_dr,0)
757         END,                     -- FROM_AMOUNT
758            NVL(dist.amount_cr,0)
759              -NVL(dist.amount_dr,0),           -- AMOUNT
760 --BUG#5201086
761 --           NVL(dist.from_acctd_amount_cr,0)
762 --             -NVL(dist.from_acctd_amount_dr,0), -- FROM_ACCTD_AMOUNT
763         CASE WHEN (app.upgrade_method IS NULL AND app.status ='APP') THEN
764            CASE WHEN (dist.from_acctd_amount_dr IS NOT NULL OR dist.from_acctd_amount_cr IS NOT NULL) THEN
765               NVL(dist.from_acctd_amount_cr,0)-NVL(dist.from_acctd_amount_dr,0)
766            ELSE
767              CASE WHEN (dist.source_type NOT IN ('REC','EDISC','UNEDISC')) THEN
768                 NULL
769              ELSE
770                CASE WHEN (app.earned_discount_taken IS NOT NULL AND
771                     app.earned_discount_taken = NVL(dist.amount_dr,0)-NVL(dist.amount_cr,0) AND
772                     app.acctd_earned_discount_taken = NVL(dist.acctd_amount_dr,0)-NVL(dist.acctd_amount_cr,0)
773                     AND dist.source_type = 'REC') THEN
774                    NULL
775                ELSE
776                  CASE WHEN (trx.invoice_currency_code = sob.currency_code AND
777                             cr.currency_code          = sob.currency_code ) THEN
778                     NVL(dist.acctd_amount_cr,0)-NVL(dist.acctd_amount_dr,0)
779                  ELSE
780                    CASE WHEN (app.acctd_amount_applied_to <> 0 AND app.acctd_amount_applied_from <> 0) THEN
781                    NVL(app.acctd_amount_applied_from / app.acctd_amount_applied_to * dist.acctd_amount_cr,0)-
782                    NVL(app.acctd_amount_applied_from / app.acctd_amount_applied_to * dist.acctd_amount_dr,0)
783                     ELSE  NULL END
784                  END
785                END
786              END
787            END
788         ELSE
789            NVL(dist.from_acctd_amount_cr,0)
790              -NVL(dist.from_acctd_amount_dr,0)
791         END,                     -- FROM_ACCTD_AMOUNT
792          --{BUG#4356088
793           gt.event_type_code
794          ,gt.event_class_code
795          ,gt.entity_code
796          ,'N'                    --MFAR_ADDITIONAL_ENTRY
797          ,nvl(dist.ref_mf_dist_flag,'N')  --REF_MF_DIST_FLAG
798         FROM xla_events_gt                 gt,
799            ar_receivable_applications_all app,
800            ar_distributions_all           dist,
801            gl_sets_of_books               sob,
802            oe_system_parameters_all       osp,
803            ar_cash_receipts_all           cr,
804            --BUG#5201086
805            ar_cash_receipt_history_all    crh,
806            ra_customer_trx_all            trx
807      WHERE gt.event_type_code IN (  'RECP_CREATE'          ,'RECP_UPDATE'      ,
808                                     'RECP_RATE_ADJUST'     ) --,'RECP_REVERSE') uptake XLA transaction reversal
809        AND gt.application_id              = p_application_id
810 	   AND gt.event_id                    = app.event_id
811        AND dist.source_table              = 'RA' -- Don't need this join due to ar_app_dist_upg_v
812        AND dist.source_id                 = app.receivable_application_id
813        AND app.set_of_books_id            = sob.set_of_books_id
814        AND DECODE(app.acctd_amount_applied_to,0,DECODE(app.acctd_amount_applied_from,0,'N','Y'),'N') = 'Y'
815 --
816 -- BUG#5366837
817 -- R12_11ICASH_POST is reserved for Upgraded 11i Cash basis not posted applications
818 -- We are not passing Cash basis at From Line level
819 -- the data for Cash Basis accounting upgraded will be at the To line level only
820 --
821 --       AND NVL(app.upgrade_method,'XX')   NOT IN ('R12_11ICASH_POST')
822 --
823 -- Need to incorporate PSA upgrade
824 --
825        AND DECODE(app.upgrade_method,
826                     'R12_11ICASH_POST','N',
827                     '11I_MFAR_UPG'    ,DECODE(dist.source_table_secondary,'UPMFRAMIAR','Y','N'),
828                     'Y')                  = 'Y'
829        AND app.org_id                     = osp.org_id(+)
830        AND app.cash_receipt_id            = cr.cash_receipt_id
831        AND app.cash_receipt_history_id    = crh.cash_receipt_history_id(+)
832        AND app.applied_customer_trx_id    = trx.customer_trx_id(+)
833        AND dist.source_type               IN ('REC'
834            ,'OTHER ACC','ACC','BANK_CHARGES','ACTIVITY','FACTOR','REMITTANCE',
835             'TAX','DEFERRED_TAX','UNEDISC','EDISC','CURR_ROUND','SHORT_TERM_DEBT',
836             'EXCH_LOSS','EXCH_GAIN','EDISC_NON_REC_TAX','UNEDISC_NON_REC_TAX');
837 
838   l_extract_record  ar_xla_extract_record_type;
839 
840 
841 BEGIN
842    local_log(procedure_name => 'load_line_data_app_from_cr',
843              p_msg_text     => 'arp_xla_extract_main_pkg.load_line_data_app_from_cr()+');
844     -- Insert line level data in Line GT with
845     -- selected_flag = Y
846     -- level_flag    = L
847     -- From_to_flag  = F
848 
849 
850 -- Special case handling for cases where application amount is non-zero
851 -- and invoice conversion rate is almost zero resulting into
852 -- zero accounted amount applications on invoice (Bug 8895061)
853 
854    OPEN inv_conv_rate_zero;
855 
856    LOOP
857    FETCH inv_conv_rate_zero BULK COLLECT INTO l_extract_record LIMIT MAX_ARRAY_SIZE;
858    IF PG_DEBUG in ('Y', 'C') THEN
859 	   arp_standard.debug('inv_conv_rate_zero current fetch count   '|| l_extract_record.count);
860    END IF;
861 
862    IF l_extract_record.count = 0 THEN
863 	  EXIT;
864    END IF;
865 
866 -- Calculate prorated from accounted amounts and insert data into extract
867    prorate_extract_acctd_amounts(l_extract_record);
868 
869    END LOOP;
870 
871    CLOSE inv_conv_rate_zero;
872 -- Bug 8895061 Ends
873 
874 
875     INSERT INTO ar_xla_lines_extract (
876         EVENT_ID
877        ,LINE_NUMBER
878        ,LANGUAGE
879        ,LEDGER_ID
880        ,SOURCE_ID
881        ,SOURCE_TABLE
882        ,LINE_ID
883        ,TAX_CODE_ID
884        ,LOCATION_SEGMENT_ID
885        ,BASE_CURRENCY_CODE
886        ,EXCHANGE_RATE_TYPE
887        ,EXCHANGE_RATE
888        ,EXCHANGE_DATE
889        ,ACCTD_AMOUNT
890        ,TAXABLE_ACCTD_AMOUNT
891        ,ORG_ID
892        ,HEADER_TABLE_ID
893        ,POSTING_ENTITY
894        ,CASH_RECEIPT_ID
895        ,CUSTOMER_TRX_ID
896        ,CUSTOMER_TRX_LINE_ID
897        ,CUST_TRX_LINE_GL_DIST_ID
898        ,CUST_TRX_LINE_SALESREP_ID
899        ,INVENTORY_ITEM_ID
900        ,SALES_TAX_ID
901        ,SO_ORGANIZATION_ID
902        ,TAX_EXEMPTION_ID
903        ,UOM_CODE
904        ,WAREHOUSE_ID
905        ,AGREEMENT_ID
906        ,CUSTOMER_BANK_ACCT_ID
907        ,DRAWEE_BANK_ACCOUNT_ID
908        ,REMITTANCE_BANK_ACCT_ID
909        ,DISTRIBUTION_SET_ID
910        ,PAYMENT_SCHEDULE_ID
911        ,RECEIPT_METHOD_ID
912        ,RECEIVABLES_TRX_ID
913        ,ED_ADJ_RECEIVABLES_TRX_ID
914        ,UNED_RECEIVABLES_TRX_ID
915        ,SET_OF_BOOKS_ID
916        ,SALESREP_ID
917        ,BILL_SITE_USE_ID
918        ,DRAWEE_SITE_USE_ID
919        ,PAYING_SITE_USE_ID
920        ,SOLD_SITE_USE_ID
921        ,SHIP_SITE_USE_ID
922        ,RECEIPT_CUSTOMER_SITE_USE_ID
923        ,BILL_CUST_ROLE_ID
924        ,DRAWEE_CUST_ROLE_ID
925        ,SHIP_CUST_ROLE_ID
926        ,SOLD_CUST_ROLE_ID
927        ,BILL_CUSTOMER_ID
928        ,DRAWEE_CUSTOMER_ID
929        ,PAYING_CUSTOMER_ID
930        ,SOLD_CUSTOMER_ID
931        ,SHIP_CUSTOMER_ID
932        ,REMIT_ADDRESS_ID
933        ,RECEIPT_BATCH_ID
934        ,RECEIVABLE_APPLICATION_ID
935        ,CUSTOMER_BANK_BRANCH_ID
936        ,ISSUER_BANK_BRANCH_ID
937        ,BATCH_SOURCE_ID
938        ,BATCH_ID
939        ,TERM_ID
940        ,SELECT_FLAG
941        ,LEVEL_FLAG
942        ,FROM_TO_FLAG
943        ,CRH_STATUS
944        ,FROM_AMOUNT
945        ,AMOUNT
946        ,FROM_ACCTD_AMOUNT
947        --{BUG#4356088
948        ,event_type_code
949        ,event_class_code
950        ,entity_code
951        --MFAR
952        ,MFAR_ADDITIONAL_ENTRY
953        )
954       -- FROM document type Cash Receipt
955        SELECT /*+LEADING(gt) USE_NL(gt,app)*/
956            gt.event_id,                        -- EVENT_ID
957            dist.line_id,                       -- LINE_NUMBER
958            '',                                 -- LANGUAGE
959            sob.set_of_books_id,                -- LEDGER_ID
960            dist.source_id,                     -- SOURCE_ID
961            dist.source_table,                  -- SOURCE_TABLE
962            dist.line_id,                       -- LINE_ID
963            dist.tax_code_id,                   -- TAX_CODE_ID
964            dist.location_segment_id,           -- LOCATION_SEGMENT_ID
965            sob.currency_code,                  -- BASE_CURRENCY
966            NVL(crh.exchange_rate_type,cr.exchange_rate_type),         -- EXCHANGE_RATE_TYPE
967            NVL(crh.EXCHANGE_RATE,cr.exchange_rate)     ,              -- EXCHANGE_RATE
968            NVL(crh.EXCHANGE_DATE,cr.exchange_date)     ,              -- EXCHANGE_DATE
969 --
970            NVL(dist.acctd_amount_cr,0)
971              - NVL(dist.acctd_amount_dr,0),      -- ACCTD_AMOUNT
972            NVL(dist.taxable_accounted_cr,0)
973              - NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
974            app.org_id,                         -- ORG_ID
975            app.receivable_application_id,      -- HEADER_ID
976            'APP',                              -- POSTING_ENTITY
977            cr.cash_receipt_id,                 -- CASH_RECEIPT_ID
978            NULL,                               -- CUSTOMER_TRX_ID
979            NULL,                               -- CUSTOMER_TRX_LINE_ID
980            NULL,                               -- CUST_TRX_LINE_GL_DIST_ID
981            NULL,                               -- CUST_TRX_LINE_SALESREP_ID
982            NULL,                               -- INVENTORY_ITEM_ID
983            NULL,                               -- SALES_TAX_ID
984            osp.master_organization_id,         -- SO_ORGANIZATION_ID
985            NULL,                               -- TAX_EXEMPTION_ID
986            NULL,                               -- UOM_CODE
987            NULL,                               -- WAREHOUSE_ID
988            NULL,                               -- AGREEMENT_ID
989            cr.customer_bank_account_id,        -- CUSTOMER_BANK_ACCT_ID
990            NULL,                               -- DRAWEE_BANK_ACCOUNT_ID
991            cr.remit_bank_acct_use_id,          -- REMITTANCE_BANK_ACCT_ID
992            cr.distribution_set_id,             -- DISTRIBUTION_SET_ID
993            NULL,                               -- PAYMENT_SCHEDULE_ID
994            cr.receipt_method_id,               -- RECEIPT_METHOD_ID
995            cr.receivables_trx_id,              -- RECEIVABLES_TRX_ID
996 --           arp_xla_extract_main_pkg.ed_uned_trx('EDISC',app.org_id),       -- ED_ADJ_RECEIVABLES_TRX_ID
997 --           arp_xla_extract_main_pkg.ed_uned_trx('UNEDISC',app.org_id),     -- UNED_RECEIVABLES_TRX_ID
998 -- ED and UNED activity id should only be available on the to doc in application
999            NULL,       -- ED_ADJ_RECEIVABLES_TRX_ID
1000            NULL,     -- UNED_RECEIVABLES_TRX_ID
1001            cr.set_of_books_id,                 -- SET_OF_BOOKS_ID
1002            NULL,                               -- SALESREP_ID
1003            cr.customer_site_use_id,            -- BILL_SITE_USE_ID
1004            NULL,                               -- DRAWEE_SITE_USE_ID
1005            cr.customer_site_use_id,            -- PAYING_SITE_USE_ID  -- synch with PAYING_CUSTOMER_ID
1006            NULL,                               -- SOLD_SITE_USE_ID
1007            NULL,                               -- SHIP_SITE_USE_ID
1008            cr.customer_site_use_id,            -- RECEIPT_CUSTOMER_SITE_USE_ID
1009            NULL,                               -- BILL_CUST_ROLE_ID
1010            NULL,                               -- DRAWEE_CUST_ROLE_ID
1011            NULL,                               -- SHIP_CUST_ROLE_ID
1012            NULL,                               -- SOLD_CUST_ROLE_ID
1013            NULL,                               -- BILL_CUSTOMER_ID
1014            NULL,                               -- DRAWEE_CUSTOMER_ID
1015            cr.pay_from_customer,               -- PAYING_CUSTOMER_ID
1016            NULL,                               -- SOLD_CUSTOMER_ID
1017            NULL,                               -- SHIP_CUSTOMER_ID
1018            NULL,                               -- REMIT_ADDRESS_ID
1019            cr.SELECTED_REMITTANCE_BATCH_ID,    -- RECEIPT_BATCH_ID
1020            app.receivable_application_id,      -- RECEIVABLE_APPLICATION_ID
1021            cr.customer_bank_branch_id,         -- CUSTOMER_BANK_BRANCH_ID
1022            cr.issuer_bank_branch_id,           -- ISSUER_BANK_BRANCH_ID
1023            NULL,                               -- BATCH_SOURCE_ID
1024            NULL,                               -- BATCH_ID
1025            NULL,                               -- TERM_ID
1026            'Y',                                -- SELECT_FLAG
1027            'L',                                -- LEVEL_FLAG
1028            'F',                                -- FROM_TO_FLAG
1029            decode(app.status, 'APP', NULL,
1030                               'UNAPP', NULL,
1031                               'UNID', NULL, app.status), -- CRH_STATUS
1032 --BUG#5201086
1033 --           NVL(dist.from_amount_cr,0)
1034 --             -NVL(dist.from_amount_dr,0),      -- FROM_AMOUNT,
1035         CASE WHEN (app.upgrade_method IS NULL  AND app.status ='APP') THEN
1036            CASE WHEN (dist.from_amount_dr IS NOT NULL OR dist.from_amount_cr IS NOT NULL) THEN
1037               NVL(dist.from_amount_cr,0)-NVL(dist.from_amount_dr,0)
1038            ELSE
1039              CASE WHEN (dist.source_type NOT IN ('REC','EDISC','UNEDISC')) THEN
1040                 NULL
1041              ELSE
1042                CASE WHEN (app.earned_discount_taken IS NOT NULL AND
1043                     app.earned_discount_taken = NVL(dist.amount_dr,0)-NVL(dist.amount_cr,0) AND
1044                     app.acctd_earned_discount_taken = NVL(dist.acctd_amount_dr,0)-NVL(dist.acctd_amount_cr,0)
1045                     AND dist.source_type = 'REC') THEN
1046                    NULL
1047                ELSE
1048                  CASE WHEN (trx.invoice_currency_code = cr.currency_code) THEN
1049                     NVL(dist.amount_cr,0)-NVL(dist.amount_dr,0)
1050                  ELSE
1051                    CASE WHEN (app.amount_applied <> 0 AND app.amount_applied_from <> 0) THEN
1052                      NVL(app.amount_applied_from / app.amount_applied * dist.amount_cr,0)-
1053                      NVL(app.amount_applied_from / app.amount_applied * dist.amount_dr,0)
1054                     ELSE  NULL END
1055                  END
1056                END
1057              END
1058            END
1059         ELSE
1060            NVL(dist.from_amount_cr,0)
1061              -NVL(dist.from_amount_dr,0)
1062         END,                     -- FROM_AMOUNT
1063            NVL(dist.amount_cr,0)
1064              -NVL(dist.amount_dr,0),           -- AMOUNT
1065 --BUG#5201086
1066 --           NVL(dist.from_acctd_amount_cr,0)
1067 --             -NVL(dist.from_acctd_amount_dr,0), -- FROM_ACCTD_AMOUNT
1068         CASE WHEN (app.upgrade_method IS NULL AND app.status ='APP') THEN
1069            CASE WHEN (dist.from_acctd_amount_dr IS NOT NULL OR dist.from_acctd_amount_cr IS NOT NULL) THEN
1070               NVL(dist.from_acctd_amount_cr,0)-NVL(dist.from_acctd_amount_dr,0)
1071            ELSE
1072              CASE WHEN (dist.source_type NOT IN ('REC','EDISC','UNEDISC')) THEN
1073                 NULL
1074              ELSE
1075                CASE WHEN (app.earned_discount_taken IS NOT NULL AND
1076                     app.earned_discount_taken = NVL(dist.amount_dr,0)-NVL(dist.amount_cr,0) AND
1077                     app.acctd_earned_discount_taken = NVL(dist.acctd_amount_dr,0)-NVL(dist.acctd_amount_cr,0)
1078                     AND dist.source_type = 'REC') THEN
1079                    NULL
1080                ELSE
1081                  CASE WHEN (trx.invoice_currency_code = sob.currency_code AND
1082                             cr.currency_code          = sob.currency_code ) THEN
1083                     NVL(dist.acctd_amount_cr,0)-NVL(dist.acctd_amount_dr,0)
1084                  ELSE
1085                    CASE WHEN (app.acctd_amount_applied_to <> 0 AND app.acctd_amount_applied_from <> 0) THEN
1086                    NVL(app.acctd_amount_applied_from / app.acctd_amount_applied_to * dist.acctd_amount_cr,0)-
1087                    NVL(app.acctd_amount_applied_from / app.acctd_amount_applied_to * dist.acctd_amount_dr,0)
1088                     ELSE  NULL END
1089                  END
1090                END
1091              END
1092            END
1093         ELSE
1094            NVL(dist.from_acctd_amount_cr,0)
1095              -NVL(dist.from_acctd_amount_dr,0)
1096         END,                     -- FROM_ACCTD_AMOUNT
1097          --{BUG#4356088
1098           gt.event_type_code
1099          ,gt.event_class_code
1100          ,gt.entity_code
1101          ,'N'                    --MFAR_ADDITIONAL_ENTRY
1102         FROM xla_events_gt                 gt,
1103            ar_receivable_applications_all app,
1104            ar_distributions_all           dist,
1105            gl_sets_of_books               sob,
1106            oe_system_parameters_all       osp,
1107            ar_cash_receipts_all           cr,
1108            --BUG#5201086
1109            ar_cash_receipt_history_all    crh,
1110            ra_customer_trx_all            trx
1111      WHERE gt.event_type_code IN (  'RECP_CREATE'          ,'RECP_UPDATE'      ,
1112                                     'RECP_RATE_ADJUST'     ) --,'RECP_REVERSE') uptake XLA transaction reversal
1113        AND gt.application_id              = p_application_id
1114 	   AND gt.event_id                    = app.event_id
1115        AND dist.source_table              = 'RA' -- Don't need this join due to ar_app_dist_upg_v
1116        AND dist.source_id                 = app.receivable_application_id
1117        AND app.set_of_books_id            = sob.set_of_books_id
1118        AND DECODE(app.acctd_amount_applied_to,0,DECODE(app.acctd_amount_applied_from,0,'N','Y'),'N') = 'N'
1119 --
1120 -- BUG#5366837
1121 -- R12_11ICASH_POST is reserved for Upgraded 11i Cash basis not posted applications
1122 -- We are not passing Cash basis at From Line level
1123 -- the data for Cash Basis accounting upgraded will be at the To line level only
1124 --
1125 --       AND NVL(app.upgrade_method,'XX')   NOT IN ('R12_11ICASH_POST')
1126 --
1127 -- Need to incorporate PSA upgrade
1128 --
1129        AND DECODE(app.upgrade_method,
1130                     'R12_11ICASH_POST','N',
1131                     '11I_MFAR_UPG'    ,DECODE(dist.source_table_secondary,'UPMFRAMIAR','Y','N'),
1132                     'Y')                  = 'Y'
1133        AND app.org_id                     = osp.org_id(+)
1134        AND app.cash_receipt_id            = cr.cash_receipt_id
1135        AND app.cash_receipt_history_id    = crh.cash_receipt_history_id(+)
1136        AND app.applied_customer_trx_id    = trx.customer_trx_id(+)
1137        AND dist.source_type               IN ('REC'
1138            ,'OTHER ACC','ACC','BANK_CHARGES','ACTIVITY','FACTOR','REMITTANCE',
1139             'TAX','DEFERRED_TAX','UNEDISC','EDISC','CURR_ROUND','SHORT_TERM_DEBT',
1140             'EXCH_LOSS','EXCH_GAIN','EDISC_NON_REC_TAX','UNEDISC_NON_REC_TAX');
1141 
1142 
1143 --BUG#5366837 From document in cash basis
1144     INSERT INTO ar_xla_lines_extract (
1145         EVENT_ID
1146        ,LINE_NUMBER
1147        ,LANGUAGE
1148        ,LEDGER_ID
1149        ,SOURCE_ID
1150        ,SOURCE_TABLE
1151        ,LINE_ID
1152        ,TAX_CODE_ID
1153        ,LOCATION_SEGMENT_ID
1154        ,BASE_CURRENCY_CODE
1155        ,EXCHANGE_RATE_TYPE
1156        ,EXCHANGE_RATE
1157        ,EXCHANGE_DATE
1158        ,ACCTD_AMOUNT
1159        ,TAXABLE_ACCTD_AMOUNT
1160        ,ORG_ID
1161        ,HEADER_TABLE_ID
1162        ,POSTING_ENTITY
1163        ,CASH_RECEIPT_ID
1164        ,CUSTOMER_TRX_ID
1165        ,CUSTOMER_TRX_LINE_ID
1166        ,CUST_TRX_LINE_GL_DIST_ID
1167        ,CUST_TRX_LINE_SALESREP_ID
1168        ,INVENTORY_ITEM_ID
1169        ,SALES_TAX_ID
1170        ,SO_ORGANIZATION_ID
1171        ,TAX_EXEMPTION_ID
1172        ,UOM_CODE
1173        ,WAREHOUSE_ID
1174        ,AGREEMENT_ID
1175        ,CUSTOMER_BANK_ACCT_ID
1176        ,DRAWEE_BANK_ACCOUNT_ID
1177        ,REMITTANCE_BANK_ACCT_ID
1178        ,DISTRIBUTION_SET_ID
1179        ,PAYMENT_SCHEDULE_ID
1180        ,RECEIPT_METHOD_ID
1181        ,RECEIVABLES_TRX_ID
1182        ,ED_ADJ_RECEIVABLES_TRX_ID
1183        ,UNED_RECEIVABLES_TRX_ID
1184        ,SET_OF_BOOKS_ID
1185        ,SALESREP_ID
1186        ,BILL_SITE_USE_ID
1187        ,DRAWEE_SITE_USE_ID
1188        ,PAYING_SITE_USE_ID
1189        ,SOLD_SITE_USE_ID
1190        ,SHIP_SITE_USE_ID
1191        ,RECEIPT_CUSTOMER_SITE_USE_ID
1192        ,BILL_CUST_ROLE_ID
1193        ,DRAWEE_CUST_ROLE_ID
1194        ,SHIP_CUST_ROLE_ID
1195        ,SOLD_CUST_ROLE_ID
1196        ,BILL_CUSTOMER_ID
1197        ,DRAWEE_CUSTOMER_ID
1198        ,PAYING_CUSTOMER_ID
1199        ,SOLD_CUSTOMER_ID
1200        ,SHIP_CUSTOMER_ID
1201        ,REMIT_ADDRESS_ID
1202        ,RECEIPT_BATCH_ID
1203        ,RECEIVABLE_APPLICATION_ID
1204        ,CUSTOMER_BANK_BRANCH_ID
1205        ,ISSUER_BANK_BRANCH_ID
1206        ,BATCH_SOURCE_ID
1207        ,BATCH_ID
1208        ,TERM_ID
1209        ,SELECT_FLAG
1210        ,LEVEL_FLAG
1211        ,FROM_TO_FLAG
1212        ,FROM_AMOUNT
1213        ,AMOUNT
1214        ,FROM_ACCTD_AMOUNT
1215        ,event_type_code
1216        ,event_class_code
1217        ,entity_code
1218        ,additional_char1
1219        ,MFAR_ADDITIONAL_ENTRY
1220        )
1221        SELECT /*+LEADING(gt) USE_NL(gt,app)*/
1222            gt.event_id                         -- EVENT_ID
1223           ,dist.cash_basis_distribution_id     -- LINE_NUMBER
1224           ,''                                  -- LANGUAGE
1225           ,sob.set_of_books_id                 -- LEDGER_ID
1226           ,dist.receivable_application_id_cash -- SOURCE_ID
1227           ,'RA'                                -- SOURCE_TABLE
1228           ,dist.cash_basis_distribution_id     -- LINE_ID
1229           ,NULL                                -- TAX_CODE_ID
1230           ,NULL                                -- LOCATION_SEGMENT_ID
1231           ,sob.currency_code                   -- BASE_CURRENCY
1232           ,NVL(crh.exchange_rate_type,cr.exchange_rate_type)  -- EXCHANGE_RATE_TYPE
1233           ,NVL(crh.EXCHANGE_RATE,cr.exchange_rate)            -- EXCHANGE_RATE
1234           ,NVL(crh.EXCHANGE_DATE,cr.exchange_date)            -- EXCHANGE_DATE
1235           ,dist.acctd_amount                   -- ACCTD_AMOUNT
1236           ,0                                   -- TAXABLE_ACCTD_AMOUNT
1237           ,app.org_id                          -- ORG_ID
1238           ,app.receivable_application_id       -- HEADER_ID
1239           ,'APP'                               -- POSTING_ENTITY
1240           ,cr.cash_receipt_id                  -- CASH_RECEIPT_ID
1241           ,NULL                                -- CUSTOMER_TRX_ID
1242           ,NULL                                -- CUSTOMER_TRX_LINE_ID
1243           ,NULL                                -- CUST_TRX_LINE_GL_DIST_ID
1244           ,NULL                                -- CUST_TRX_LINE_SALESREP_ID
1245           ,NULL                                -- INVENTORY_ITEM_ID
1246           ,NULL                                -- SALES_TAX_ID
1247           ,osp.master_organization_id          -- SO_ORGANIZATION_ID
1248           ,NULL                                -- TAX_EXEMPTION_ID
1249           ,NULL                                -- UOM_CODE
1250           ,NULL                                -- WAREHOUSE_ID
1251           ,NULL                                -- AGREEMENT_ID
1252           ,cr.customer_bank_account_id         -- CUSTOMER_BANK_ACCT_ID
1253           ,NULL                                -- DRAWEE_BANK_ACCOUNT_ID
1254           ,cr.remit_bank_acct_use_id           -- REMITTANCE_BANK_ACCT_ID
1255           ,cr.distribution_set_id              -- DISTRIBUTION_SET_ID
1256           ,NULL                                -- PAYMENT_SCHEDULE_ID
1257           ,cr.receipt_method_id                -- RECEIPT_METHOD_ID
1258           ,cr.receivables_trx_id               -- RECEIVABLES_TRX_ID
1259           ,NULL                                -- ED_ADJ_RECEIVABLES_TRX_ID
1260           ,NULL                                -- UNED_RECEIVABLES_TRX_ID
1261           ,cr.set_of_books_id                  -- SET_OF_BOOKS_ID
1262           ,NULL                                -- SALESREP_ID
1263           ,cr.customer_site_use_id             -- BILL_SITE_USE_ID
1264           ,NULL                                -- DRAWEE_SITE_USE_ID
1265           ,cr.customer_site_use_id             -- PAYING_SITE_USE_ID  -- synch with PAYING_CUSTOMER_ID
1266           ,NULL                                -- SOLD_SITE_USE_ID
1267           ,NULL                                -- SHIP_SITE_USE_ID
1268           ,cr.customer_site_use_id             -- RECEIPT_CUSTOMER_SITE_USE_ID
1269           ,NULL                                -- BILL_CUST_ROLE_ID
1270           ,NULL                                -- DRAWEE_CUST_ROLE_ID
1271           ,NULL                                -- SHIP_CUST_ROLE_ID
1272           ,NULL                                -- SOLD_CUST_ROLE_ID
1273           ,NULL                                -- BILL_CUSTOMER_ID
1274           ,NULL                                -- DRAWEE_CUSTOMER_ID
1275           ,cr.pay_from_customer                -- PAYING_CUSTOMER_ID
1276           ,NULL                                -- SOLD_CUSTOMER_ID
1277           ,NULL                                -- SHIP_CUSTOMER_ID
1278           ,NULL                                -- REMIT_ADDRESS_ID
1279           ,cr.SELECTED_REMITTANCE_BATCH_ID     -- RECEIPT_BATCH_ID
1280           ,app.receivable_application_id       -- RECEIVABLE_APPLICATION_ID
1281           ,cr.customer_bank_branch_id          -- CUSTOMER_BANK_BRANCH_ID
1282           ,cr.issuer_bank_branch_id            -- ISSUER_BANK_BRANCH_ID
1283           ,NULL                                -- BATCH_SOURCE_ID
1284           ,NULL                                -- BATCH_ID
1285           ,NULL                                -- TERM_ID
1286           ,'Y'                                 -- SELECT_FLAG
1287           ,'L'                                 -- LEVEL_FLAG
1288           ,'F'                                 -- FROM_TO_FLAG
1289           ,dist.from_amount                    -- FROM_AMOUNT
1290           ,dist.amount                         -- AMOUNT
1291           ,dist.from_acctd_amount              -- FROM_ACCTD_AMOUNT
1292           ,gt.event_type_code
1293           ,gt.event_class_code
1294           ,gt.entity_code
1295           ,app.upgrade_method
1296          ,'N'                    --MFAR_ADDITIONAL_ENTRY
1297         FROM xla_events_gt                 gt,
1298            ar_receivable_applications_all app,
1299            ar_cash_basis_dists_all        dist,
1300            gl_sets_of_books               sob,
1301            oe_system_parameters_all       osp,
1302            ar_cash_receipts_all           cr,
1303            ar_cash_receipt_history_all    crh,
1304            ra_customer_trx_all            trx
1305      WHERE gt.event_type_code IN (  'RECP_CREATE'          ,'RECP_UPDATE'      ,
1306                                     'RECP_RATE_ADJUST')  -- Uptake XLA trx reversal     ,'RECP_REVERSE')
1307        AND gt.application_id              = 222
1308        AND gt.event_id                    = app.event_id
1309        AND dist.receivable_application_id = app.receivable_application_id
1310        AND app.set_of_books_id            = sob.set_of_books_id
1311        AND app.upgrade_method             = 'R12_11ICASH_POST'
1312        AND app.org_id                     = osp.org_id(+)
1313        AND app.cash_receipt_id            = cr.cash_receipt_id
1314        AND app.cash_receipt_history_id    = crh.cash_receipt_history_id
1315        AND app.applied_customer_trx_id    = trx.customer_trx_id;
1316 
1317 
1318    local_log(procedure_name => 'load_line_data_app_from_cr',
1319              p_msg_text     => 'arp_xla_extract_main_pkg.load_line_data_app_from_cr ()-');
1320 EXCEPTION
1321 --  WHEN NO_DATA_FOUND THEN NULL;
1322   WHEN OTHERS THEN
1323    local_log(procedure_name => 'load_line_data_app_from_cr',
1324              p_msg_text     =>'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_line_data_app_from_cr '||
1325              arp_global.CRLF ||'Error      :'|| SQLERRM);
1326     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
1327     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
1328          'Procedure :arp_xla_extract_main_pkg.load_line_data_app_from_cr'|| arp_global.CRLF||
1329          'Error     :'||SQLERRM);
1330     FND_MSG_PUB.ADD;
1331   RAISE;
1332 END load_line_data_app_from_cr;
1333 
1334 /*-----------------------------------------------------------------+
1335  | Procedure Name : load_line_data_app_from_cm                     |
1336  | Description    : Extract the from application line attached to  |
1337  |                  a credit memo event                            |
1338  +-----------------------------------------------------------------+
1339  | History        :                                                |
1340  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
1341  +-----------------------------------------------------------------*/
1342 PROCEDURE load_line_data_app_from_cm(p_application_id IN NUMBER DEFAULT 222)
1343 IS
1344 BEGIN
1345    local_log(procedure_name => 'load_line_data_app_from_cm',
1346              p_msg_text     => 'arp_xla_extract_main_pkg.load_line_data_app_from_cm ()+');
1347     -- Insert line level data in Line GT with
1348     -- selected_flag = Y
1349     -- level_flag    = L
1350     -- From_to_flag  = F
1351     INSERT INTO ar_xla_lines_extract (
1352         EVENT_ID
1353        ,LINE_NUMBER
1354        ,LANGUAGE
1355        ,LEDGER_ID
1356        ,SOURCE_ID
1357        ,SOURCE_TABLE
1358        ,LINE_ID
1359        ,TAX_CODE_ID
1360        ,LOCATION_SEGMENT_ID
1361        ,BASE_CURRENCY_CODE
1362        ,EXCHANGE_RATE_TYPE
1363        ,EXCHANGE_RATE
1364        ,EXCHANGE_DATE
1365        ,ACCTD_AMOUNT
1366        ,TAXABLE_ACCTD_AMOUNT
1367        ,ORG_ID
1368        ,HEADER_TABLE_ID
1369        ,POSTING_ENTITY
1370        ,CASH_RECEIPT_ID
1371        ,CUSTOMER_TRX_ID
1372        ,CUSTOMER_TRX_LINE_ID
1373        ,CUST_TRX_LINE_GL_DIST_ID
1374        ,CUST_TRX_LINE_SALESREP_ID
1375        ,INVENTORY_ITEM_ID
1376        ,SALES_TAX_ID
1377        ,SO_ORGANIZATION_ID
1378        ,TAX_EXEMPTION_ID
1379        ,UOM_CODE
1380        ,WAREHOUSE_ID
1381        ,AGREEMENT_ID
1382        ,CUSTOMER_BANK_ACCT_ID
1383        ,DRAWEE_BANK_ACCOUNT_ID
1384        ,REMITTANCE_BANK_ACCT_ID
1385        ,DISTRIBUTION_SET_ID
1386        ,PAYMENT_SCHEDULE_ID
1387        ,RECEIPT_METHOD_ID
1388        ,RECEIVABLES_TRX_ID
1389        ,ED_ADJ_RECEIVABLES_TRX_ID
1390        ,UNED_RECEIVABLES_TRX_ID
1391        ,SET_OF_BOOKS_ID
1392        ,SALESREP_ID
1393        ,BILL_SITE_USE_ID
1394        ,DRAWEE_SITE_USE_ID
1395        ,PAYING_SITE_USE_ID
1396        ,SOLD_SITE_USE_ID
1397        ,SHIP_SITE_USE_ID
1398        ,RECEIPT_CUSTOMER_SITE_USE_ID
1399        ,BILL_CUST_ROLE_ID
1400        ,DRAWEE_CUST_ROLE_ID
1401        ,SHIP_CUST_ROLE_ID
1402        ,SOLD_CUST_ROLE_ID
1403        ,BILL_CUSTOMER_ID
1404        ,DRAWEE_CUSTOMER_ID
1405        ,PAYING_CUSTOMER_ID
1406        ,SOLD_CUSTOMER_ID
1407        ,SHIP_CUSTOMER_ID
1408        ,REMIT_ADDRESS_ID
1409        ,RECEIPT_BATCH_ID
1410        ,RECEIVABLE_APPLICATION_ID
1411        ,CUSTOMER_BANK_BRANCH_ID
1412        ,ISSUER_BANK_BRANCH_ID
1413        ,BATCH_SOURCE_ID
1414        ,BATCH_ID
1415        ,TERM_ID
1416        ,SELECT_FLAG
1417        ,LEVEL_FLAG
1418        ,FROM_TO_FLAG
1419        ,FROM_AMOUNT
1420        ,AMOUNT
1421        ,FROM_ACCTD_AMOUNT
1422        ,event_type_code
1423        ,event_class_code
1424        ,entity_code
1425        ,tax_line_id
1426        ,additional_char1
1427          ,MFAR_ADDITIONAL_ENTRY
1428        ,source_type
1429        ,CM_APP_TO_TRX_LINE_ID
1430        ,BAL_SEG_VALUE
1431        )
1432     -- FROM document type CM
1433       SELECT /*+LEADING(gt) USE_NL(gt,app)*/
1434            gt.event_id,                      -- EVENT_ID
1435            dist.line_id,                     -- LINE_NUMBER
1436            '',                               -- LANGUAGE
1437            sob.set_of_books_id,              -- LEDGER_ID
1438            dist.source_id,                   -- SOURCE_ID
1439            dist.source_table,                -- SOURCE_TABLE
1440            dist.line_id,                     -- LINE_ID
1441            dist.tax_code_id,                 -- TAX_CODE_ID
1442            dist.location_segment_id,         -- LOCATION_SEGMENT_ID
1443            sob.currency_code,                -- BASE_CURRENCY
1444 	   /* bug7311808 -vavenugo*/
1445            NVL(DIST.CURRENCY_CONVERSION_TYPE,trxf.exchange_rate_type),          -- EXCHANGE_RATE_TYPE
1446            NVL(DIST.CURRENCY_CONVERSION_RATE,trxf.exchange_rate),               -- EXCHANGE_RATE
1447            NVL(DIST.CURRENCY_CONVERSION_DATE, nvl(trxf.exchange_date, DECODE(dist.REF_PREV_CUST_TRX_LINE_ID, null, trxf.trx_date,
1448 	                         nvl((select trxt.trx_date from ra_customer_trx_all trxt where trxt.customer_trx_id = trxf.previous_customer_trx_id),trxf.trx_date)))) ,  -- EXCHANGE_DATE
1449            /* End bug7311808 -vavenugo */ /* if REF_PREV_CUST_TRX_LINE_ID is NULL, use CM exchange_date/trx_date. Otherwise use INV exchange_date/trx_date*/
1450            NVL(dist.acctd_amount_cr,0) -
1451                 NVL(dist.acctd_amount_dr,0),      -- ACCTD_AMOUNT
1452            NVL(dist.taxable_accounted_cr,0) -
1453                 NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
1454            app.org_id,                       -- ORG_ID
1455            app.receivable_application_id,    -- HEADER_TABLE_ID
1456            'APP',                            -- POSTING_ENTITY
1457            NULL,                             -- CASH_RECEIPT_ID
1458            trxf.customer_trx_id,             -- CUSTOMER_TRX_ID
1459            tlf.customer_trx_line_id,         -- CUSTOMER_TRX_LINE_ID
1460            gldf.cust_trx_line_gl_dist_id,    -- CUST_TRX_LINE_GL_DIST_ID
1461            gldf.cust_trx_line_salesrep_id,   -- CUST_TRX_LINE_SALESREP_ID
1462            tlf.inventory_item_id,            -- INVENTORY_ITEM_ID
1463            tlf.sales_tax_id,                 -- SALES_TAX_ID
1464            osp.master_organization_id,       -- SO_ORGANIZATION_ID
1465            tlf.tax_exemption_id,             -- TAX_EXEMPTION_ID
1466            tlf.uom_code,                     -- UOM_CODE
1467            tlf.warehouse_id,                 -- WAREHOUSE_ID
1468            trxf.agreement_id,                -- AGREEMENT_ID
1469            trxf.customer_bank_account_id,    -- CUSTOMER_BANK_ACCT_ID
1470            trxf.drawee_bank_account_id,      -- DRAWEE_BANK_ACCOUNT_ID
1471            trxf.remit_bank_acct_use_id,  -- REMITTANCE_BANK_ACCT_ID
1472            NULL,                             -- DISTRIBUTION_SET_ID
1473            psch.payment_schedule_id,         -- PAYMENT_SCHEDULE_ID
1474            trxf.receipt_method_id,           -- RECEIPT_METHOD_ID
1475            NULL,                             -- RECEIVABLES_TRX_ID
1476            NULL,                             -- ED_ADJ_RECEIVABLES_TRX_ID
1477            NULL,                             -- UNED_RECEIVABLES_TRX_ID
1478            trxf.set_of_books_id,             -- SET_OF_BOOKS_ID
1479            trxf.primary_salesrep_id,         -- SALESREP_ID
1480            trxf.bill_to_site_use_id,         -- BILL_SITE_USE_ID
1481            trxf.drawee_site_use_id,          -- DRAWEE_SITE_USE_ID
1482            trxf.paying_site_use_id,          -- PAYING_SITE_USE_ID
1483            trxf.sold_to_site_use_id,         -- SOLD_SITE_USE_ID
1484            trxf.ship_to_site_use_id,         -- SHIP_SITE_USE_ID
1485            NULL,                             -- RECEIPT_CUSTOMER_SITE_USE_ID
1486            trxf.bill_to_contact_id,          -- BILL_CUST_ROLE_ID
1487            trxf.drawee_contact_id,           -- DRAWEE_CUST_ROLE_ID
1488            trxf.ship_to_contact_id,          -- SHIP_CUST_ROLE_ID
1489            trxf.sold_to_contact_id,          -- SOLD_CUST_ROLE_ID
1490            trxf.bill_to_customer_id,         -- BILL_CUSTOMER_ID
1491            trxf.drawee_id,                   -- DRAWEE_CUSTOMER_ID
1492            trxf.paying_customer_id,          -- PAYING_CUSTOMER_ID
1493            trxf.sold_to_customer_id,         -- SOLD_CUSTOMER_ID
1494            trxf.ship_to_customer_id,         -- SHIP_CUSTOMER_ID
1495            trxf.remit_to_address_id,         -- REMIT_ADDRESS_ID
1496            NULL,                             -- RECEIPT_BATCH_ID
1497            NULL,                             -- RECEIVABLE_APPLICATION_ID
1498            NULL,                             -- CUSTOMER_BANK_BRANCH_ID
1499            NULL,                             -- ISSUER_BANK_BRANCH_ID
1500            trxf.batch_source_id,             -- BATCH_SOURCE_ID
1501            trxf.batch_id,                    -- BATCH_ID
1502            trxf.term_id,                     -- TERM_ID
1503            'Y',                              -- SELECT_FLAG
1504            'L',                              -- LEVEL_FLAG
1505            'F',                              -- FROM_TO_FLAG
1506          CASE WHEN (dist.from_amount_cr IS NULL AND dist.from_amount_dr IS NULL) THEN
1507            NVL(dist.amount_cr,0) - NVL(dist.amount_dr,0)
1508          ELSE
1509            NVL(dist.from_amount_cr,0) - NVL(dist.from_amount_dr,0)
1510          END,                                                     -- FROM_AMOUNT
1511            NVL(dist.amount_cr,0) - NVL(dist.amount_dr,0),         -- AMOUNT
1512          CASE WHEN (dist.from_acctd_amount_cr IS NULL AND dist.from_acctd_amount_dr IS NULL) THEN
1513            NVL(dist.acctd_amount_cr,0) - NVL(dist.acctd_amount_dr,0)
1514          ELSE
1515            NVL(dist.from_acctd_amount_cr,0) - NVL(dist.from_acctd_amount_dr,0)
1516          END,                                                     -- FROM_ACCTD_MOUNT
1517            gt.event_type_code,
1518            gt.event_class_code,
1519            gt.entity_code,
1520            tlf.tax_line_id,                      --tax_line_id
1521            app.upgrade_method
1522          ,'N'                    --MFAR_ADDITIONAL_ENTRY
1523          , dist.source_type
1524          , dist.REF_PREV_CUST_TRX_LINE_ID     -- 9860123
1525          , the_segment_value(sob.chart_of_accounts_id, 'GL_BALANCING', dist.ref_dist_ccid)
1526       FROM xla_events_gt                  gt,
1527            ar_receivable_applications_all app,
1528            ar_distributions_all           dist,
1529            gl_sets_of_books               sob,
1530            oe_system_parameters_all       osp,
1531            ra_customer_trx_all            trxf,
1532            ra_customer_trx_lines_all      tlf,
1533            ra_cust_trx_line_gl_dist_all   gldf,
1534            ar_payment_schedules_all       psch
1535      WHERE gt.event_type_code    IN ('CM_CREATE','CM_UPDATE' ) --BUG#3419926
1536        AND gt.application_id     =     p_application_id
1537 	   AND gt.event_id                      = app.event_id
1538        AND dist.source_table                = 'RA'
1539        AND dist.source_id                   = app.receivable_application_id
1540        AND app.set_of_books_id              = sob.set_of_books_id
1541        AND app.org_id                       = osp.org_id(+)
1542        AND app.customer_trx_id              = trxf.customer_trx_id
1543 --
1544 -- R12_11ICASH_POST is reserved for Upgraded 11i Cash basis not posted applications
1545 -- We are not passing Cash basis at From Line level
1546 -- the data for Cash Basis accounting upgraded will be at the To line level only
1547 --
1548 --       AND NVL(app.upgrade_method,'XX')   NOT IN ('R12_11ICASH_POST')
1549 -- Need to incorporate PSA upgrade
1550        AND DECODE(app.upgrade_method,
1551 	                'R12_11ICASH_POST','N',
1552                     '11I_MFAR_UPG'    ,DECODE(dist.source_table_secondary,'UPMFRAMIAR','Y','N'),
1553                      'Y')                   = 'Y'
1554 --       AND trxf.customer_trx_id             = tlf.customer_trx_id
1555 --       AND trxf.customer_trx_id             = gldf.customer_trx_id
1556        AND dist.ref_customer_trx_line_id    = tlf.customer_trx_line_id(+)
1557                           -- ?? application we only want line actually applied
1558        AND dist.ref_cust_trx_line_gl_dist_id = gldf.cust_trx_line_gl_dist_id(+)
1559                           -- ?? application we only want line actually applied
1560        AND trxf.customer_trx_id              = psch.customer_trx_id
1561        AND NVL(psch.terms_sequence_number,1) = 1
1562        AND dist.source_type               in ('REC','DEFERRED_TAX','TAX','CURR_ROUND')    /* Bug 6119725 Start Changes */
1563        AND (((dist.ref_cust_trx_line_gl_dist_id IS NOT NULL AND sign(dist.ref_cust_trx_line_gl_dist_id) = 1)
1564                AND dist.ref_cust_trx_line_gl_dist_id  NOT IN (SELECT cust_trx_line_gl_dist_id
1565                                                        FROM ra_cust_trx_line_gl_dist_all ctlgd
1566                                                        WHERE ctlgd.customer_trx_id =  app.applied_customer_trx_id)) -- Restrict To rows of Invoice
1567          OR  (((dist.ref_cust_trx_line_gl_dist_id IS NULL OR sign(dist.ref_cust_trx_line_gl_dist_id) = -1)
1568               AND ((sign((app.amount_applied+nvl(app.earned_discount_taken,0)+nvl(app.unearned_discount_taken,0)))*-1 = sign(nvl(dist.amount_cr,0) * -1+nvl(dist.amount_dr,0)) AND dist.source_type = 'DEFERRED_TAX' )/* Bug 8269394 Changes */
1569               OR ( sign((app.acctd_amount_applied_from+nvl(app.acctd_earned_discount_taken,0)+nvl(app.acctd_unearned_discount_taken,0)))*-1 = sign(nvl(dist.acctd_amount_dr,0) * -1+nvl(dist.acctd_amount_cr,0)) AND dist.source_type = 'CURR_ROUND')
1570               OR
1571               (( sign((app.amount_applied+nvl(app.earned_discount_taken,0)+nvl(app.unearned_discount_taken,0)))*-1 = sign(nvl(dist.amount_dr,0) * -1+nvl(dist.amount_cr,0)) AND dist.source_type not in ('DEFERRED_TAX','CURR_ROUND'))
1572                /* Bug 8269394 Changes */
1573              AND (((sign((app.amount_applied+nvl(app.earned_discount_taken,0)+nvl(app.unearned_discount_taken,0)))*-1) <> 0)
1574                 OR
1575                   ((sign((app.amount_applied+nvl(app.earned_discount_taken,0)+nvl(app.unearned_discount_taken,0)))*-1 = 0)
1576                     AND dist.amount_cr is not null)))))));
1577 
1578 /* Bug 6119725 End  Changes */
1579 
1580 
1581 
1582 
1583     --BUG#5366837
1584     INSERT INTO ar_xla_lines_extract (
1585         EVENT_ID
1586        ,LINE_NUMBER
1587        ,LANGUAGE
1588        ,LEDGER_ID
1589        ,SOURCE_ID
1590        ,SOURCE_TABLE
1591        ,LINE_ID
1592        ,TAX_CODE_ID
1593        ,LOCATION_SEGMENT_ID
1594        ,BASE_CURRENCY_CODE
1595        ,EXCHANGE_RATE_TYPE
1596        ,EXCHANGE_RATE
1597        ,EXCHANGE_DATE
1598        ,ACCTD_AMOUNT
1599        ,TAXABLE_ACCTD_AMOUNT
1600        ,ORG_ID
1601        ,HEADER_TABLE_ID
1602        ,POSTING_ENTITY
1603        ,CASH_RECEIPT_ID
1604        ,CUSTOMER_TRX_ID
1605        ,CUSTOMER_TRX_LINE_ID
1606        ,CUST_TRX_LINE_GL_DIST_ID
1607        ,CUST_TRX_LINE_SALESREP_ID
1608        ,INVENTORY_ITEM_ID
1609        ,SALES_TAX_ID
1610        ,SO_ORGANIZATION_ID
1611        ,TAX_EXEMPTION_ID
1612        ,UOM_CODE
1613        ,WAREHOUSE_ID
1614        ,AGREEMENT_ID
1615        ,CUSTOMER_BANK_ACCT_ID
1616        ,DRAWEE_BANK_ACCOUNT_ID
1617        ,REMITTANCE_BANK_ACCT_ID
1618        ,DISTRIBUTION_SET_ID
1619        ,PAYMENT_SCHEDULE_ID
1620        ,RECEIPT_METHOD_ID
1621        ,RECEIVABLES_TRX_ID
1622        ,ED_ADJ_RECEIVABLES_TRX_ID
1623        ,UNED_RECEIVABLES_TRX_ID
1624        ,SET_OF_BOOKS_ID
1625        ,SALESREP_ID
1626        ,BILL_SITE_USE_ID
1627        ,DRAWEE_SITE_USE_ID
1628        ,PAYING_SITE_USE_ID
1629        ,SOLD_SITE_USE_ID
1630        ,SHIP_SITE_USE_ID
1631        ,RECEIPT_CUSTOMER_SITE_USE_ID
1632        ,BILL_CUST_ROLE_ID
1633        ,DRAWEE_CUST_ROLE_ID
1634        ,SHIP_CUST_ROLE_ID
1635        ,SOLD_CUST_ROLE_ID
1636        ,BILL_CUSTOMER_ID
1637        ,DRAWEE_CUSTOMER_ID
1638        ,PAYING_CUSTOMER_ID
1639        ,SOLD_CUSTOMER_ID
1640        ,SHIP_CUSTOMER_ID
1641        ,REMIT_ADDRESS_ID
1642        ,RECEIPT_BATCH_ID
1643        ,RECEIVABLE_APPLICATION_ID
1644        ,CUSTOMER_BANK_BRANCH_ID
1645        ,ISSUER_BANK_BRANCH_ID
1646        ,BATCH_SOURCE_ID
1647        ,BATCH_ID
1648        ,TERM_ID
1649        ,SELECT_FLAG
1650        ,LEVEL_FLAG
1651        ,FROM_TO_FLAG
1652        ,FROM_AMOUNT
1653        ,AMOUNT
1654        ,FROM_ACCTD_AMOUNT
1655        ,event_type_code
1656        ,event_class_code
1657        ,entity_code
1658        ,tax_line_id
1659        ,additional_char1
1660         ,MFAR_ADDITIONAL_ENTRY
1661        )
1662       SELECT /*+LEADING(gt) USE_NL(gt,app)*/
1663             gt.event_id                      -- EVENT_ID
1664            ,dist.cash_basis_distribution_id  -- LINE_NUMBER
1665            ,''                               -- LANGUAGE
1666            ,sob.set_of_books_id              -- LEDGER_ID
1667            ,dist.source_id                   -- SOURCE_ID
1668            ,'RA'                             -- SOURCE_TABLE
1669            ,dist.cash_basis_distribution_id  -- LINE_ID
1670            ,NULL                             -- TAX_CODE_ID
1671            ,NULL                             -- LOCATION_SEGMENT_ID
1672            ,sob.currency_code                -- BASE_CURRENCY
1673            ,trxf.exchange_rate_type          -- EXCHANGE_RATE_TYPE
1674            ,trxf.exchange_rate               -- EXCHANGE_RATE
1675            ,trxf.exchange_date               -- EXCHANGE_DATE
1676            ,dist.acctd_amount                -- ACCTD_AMOUNT
1677            ,0                                -- TAXABLE_ACCTD_AMOUNT
1678            ,app.org_id                       -- ORG_ID
1679            ,app.receivable_application_id    -- HEADER_TABLE_ID
1680            ,'APP'                            -- POSTING_ENTITY
1681            ,NULL                             -- CASH_RECEIPT_ID
1682            ,trxf.customer_trx_id             -- CUSTOMER_TRX_ID
1683            ,tlf.customer_trx_line_id         -- CUSTOMER_TRX_LINE_ID
1684            ,gldf.cust_trx_line_gl_dist_id    -- CUST_TRX_LINE_GL_DIST_ID
1685            ,gldf.cust_trx_line_salesrep_id   -- CUST_TRX_LINE_SALESREP_ID
1686            ,tlf.inventory_item_id            -- INVENTORY_ITEM_ID
1687            ,tlf.sales_tax_id                 -- SALES_TAX_ID
1688            ,osp.master_organization_id       -- SO_ORGANIZATION_ID
1689            ,tlf.tax_exemption_id             -- TAX_EXEMPTION_ID
1690            ,tlf.uom_code                     -- UOM_CODE
1691            ,tlf.warehouse_id                 -- WAREHOUSE_ID
1692            ,trxf.agreement_id                -- AGREEMENT_ID
1693            ,trxf.customer_bank_account_id    -- CUSTOMER_BANK_ACCT_ID
1694            ,trxf.drawee_bank_account_id      -- DRAWEE_BANK_ACCOUNT_ID
1695            ,trxf.remit_bank_acct_use_id      -- REMITTANCE_BANK_ACCT_ID
1696            ,NULL                             -- DISTRIBUTION_SET_ID
1697            ,psch.payment_schedule_id         -- PAYMENT_SCHEDULE_ID
1698            ,trxf.receipt_method_id           -- RECEIPT_METHOD_ID
1699            ,NULL                             -- RECEIVABLES_TRX_ID
1700            ,NULL                             -- ED_ADJ_RECEIVABLES_TRX_ID
1701            ,NULL                             -- UNED_RECEIVABLES_TRX_ID
1702            ,trxf.set_of_books_id             -- SET_OF_BOOKS_ID
1703            ,trxf.primary_salesrep_id         -- SALESREP_ID
1704            ,trxf.bill_to_site_use_id         -- BILL_SITE_USE_ID
1705            ,trxf.drawee_site_use_id          -- DRAWEE_SITE_USE_ID
1706            ,trxf.paying_site_use_id          -- PAYING_SITE_USE_ID
1707            ,trxf.sold_to_site_use_id         -- SOLD_SITE_USE_ID
1708            ,trxf.ship_to_site_use_id         -- SHIP_SITE_USE_ID
1709            ,NULL                             -- RECEIPT_CUSTOMER_SITE_USE_ID
1710            ,trxf.bill_to_contact_id          -- BILL_CUST_ROLE_ID
1711            ,trxf.drawee_contact_id           -- DRAWEE_CUST_ROLE_ID
1712            ,trxf.ship_to_contact_id          -- SHIP_CUST_ROLE_ID
1713            ,trxf.sold_to_contact_id          -- SOLD_CUST_ROLE_ID
1714            ,trxf.bill_to_customer_id         -- BILL_CUSTOMER_ID
1715            ,trxf.drawee_id                   -- DRAWEE_CUSTOMER_ID
1716            ,trxf.paying_customer_id          -- PAYING_CUSTOMER_ID
1717            ,trxf.sold_to_customer_id         -- SOLD_CUSTOMER_ID
1718            ,trxf.ship_to_customer_id         -- SHIP_CUSTOMER_ID
1719            ,trxf.remit_to_address_id         -- REMIT_ADDRESS_ID
1720            ,NULL                             -- RECEIPT_BATCH_ID
1721            ,NULL                             -- RECEIVABLE_APPLICATION_ID
1722            ,NULL                             -- CUSTOMER_BANK_BRANCH_ID
1723            ,NULL                             -- ISSUER_BANK_BRANCH_ID
1724            ,trxf.batch_source_id             -- BATCH_SOURCE_ID
1725            ,trxf.batch_id                    -- BATCH_ID
1726            ,trxf.term_id                     -- TERM_ID
1727            ,'Y'                              -- SELECT_FLAG
1728            ,'L'                              -- LEVEL_FLAG
1729            ,'F'                              -- FROM_TO_FLAG
1730            ,dist.from_amount                 -- FROM_AMOUNT
1731            ,dist.amount                      -- AMOUNT
1732            ,dist.from_acctd_amount           -- FROM_ACCTD_MOUNT
1733            ,gt.event_type_code
1734            ,gt.event_class_code
1735            ,gt.entity_code
1736            ,tlf.tax_line_id                  --tax_line_id
1737            ,app.upgrade_method
1738          ,'N'                    --MFAR_ADDITIONAL_ENTRY
1739       FROM xla_events_gt                  gt,
1740            ar_receivable_applications_all app,
1741            ar_cash_basis_dists_all        dist,
1742            gl_sets_of_books               sob,
1743            oe_system_parameters_all       osp,
1744            ra_customer_trx_all            trxf,
1745            ra_customer_trx_lines_all      tlf,
1746            ra_cust_trx_line_gl_dist_all   gldf,
1747            ar_payment_schedules_all       psch
1748      WHERE gt.event_type_code               IN ('CM_CREATE','CM_UPDATE' )
1749        AND gt.application_id                 = 222
1750        AND gt.event_id                       = app.event_id
1751        AND dist.receivable_application_id    = app.receivable_application_id
1752        AND app.set_of_books_id               = sob.set_of_books_id
1753        AND app.org_id                        = osp.org_id(+)
1754        AND app.customer_trx_id               = trxf.customer_trx_id
1755        AND app.upgrade_method                = 'R12_11ICASH_POST'
1756        AND trxf.customer_trx_id              = tlf.customer_trx_id
1757        AND trxf.customer_trx_id              = gldf.customer_trx_id
1758        AND dist.ref_customer_trx_line_id     = tlf.customer_trx_line_id(+)
1759        AND dist.ref_cust_trx_line_gl_dist_id = gldf.cust_trx_line_gl_dist_id(+)
1760        AND trxf.customer_trx_id              = psch.customer_trx_id
1761        AND NVL(psch.terms_sequence_number,1) = 1;
1762 
1763 
1764    local_log(procedure_name => 'load_line_data_app_from_cm',
1765              p_msg_text     => 'arp_xla_extract_main_pkg.load_line_data_app_from_cm ()-');
1766 EXCEPTION
1767 --  WHEN NO_DATA_FOUND THEN NULL;
1768   WHEN OTHERS THEN
1769    local_log(procedure_name => 'load_line_data_app_from_cm',
1770              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_line_data_app_from_cm '||
1771 			                    arp_global.CRLF || 'Error      :'|| SQLERRM);
1772     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
1773     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
1774          'Procedure :arp_xla_extract_main_pkg.load_line_data_app_from_cm'|| arp_global.CRLF||
1775          'Error     :'||SQLERRM);
1776     FND_MSG_PUB.ADD;
1777   RAISE;
1778 END load_line_data_app_from_cm;
1779 
1780 
1781 ---------------------------------
1782 -- Header loading procedures   --
1783 ---------------------------------
1784 /*-----------------------------------------------------------------+
1785  | Procedure Name : Load_header_data_ctlgd                         |
1786  | Description    : Extract header data for transaction events     |
1787  +-----------------------------------------------------------------+
1788  | History        :                                                |
1789  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
1790  +-----------------------------------------------------------------*/
1791 PROCEDURE Load_header_data_ctlgd(p_application_id  IN NUMBER DEFAULT 222)
1792 IS
1793 BEGIN
1794   local_log(procedure_name => 'load_header_data_ctlgd',
1795             p_msg_text     => 'arp_xla_extract_main_pkg.load_header_data_ctlgd ()+');
1796     -----------------------
1797     -- Insert header into ar_xla_lines_extract with
1798     -- selected_flg = 'Y'
1799     -- level_flg    = 'H'
1800     -- We also need to insert the header data into ar_xla_headers_extract
1801     -- because the view AR_LEDGER_EXT_H is a pure header level view but it is
1802     -- used by the transaction event_types posting with the entity CTLGD
1803     -----------------------
1804     -- Insert into Lines GT
1805      INSERT INTO AR_XLA_LINES_EXTRACT(
1806         EVENT_ID
1807        ,SOURCE_ID
1808        ,SOURCE_TABLE
1809        ,LINE_ID
1810        ,TAX_CODE_ID
1811        ,LOCATION_SEGMENT_ID
1812        ,BASE_CURRENCY_CODE
1813        ,EXCHANGE_RATE_TYPE
1814        ,EXCHANGE_RATE
1815        ,EXCHANGE_DATE
1816        ,ACCTD_AMOUNT
1817        ,TAXABLE_ACCTD_AMOUNT
1818        ,ORG_ID
1819        ,HEADER_TABLE_ID
1820        ,POSTING_ENTITY
1821        ,CASH_RECEIPT_ID
1822        ,CUSTOMER_TRX_ID
1823        ,CUSTOMER_TRX_LINE_ID
1824        ,CUST_TRX_LINE_GL_DIST_ID
1825        ,CUST_TRX_LINE_SALESREP_ID
1826        ,INVENTORY_ITEM_ID
1827        ,SALES_TAX_ID
1828        ,SO_ORGANIZATION_ID
1829        ,TAX_EXEMPTION_ID
1830        ,UOM_CODE
1831        ,WAREHOUSE_ID
1832        ,AGREEMENT_ID
1833        ,CUSTOMER_BANK_ACCT_ID
1834        ,DRAWEE_BANK_ACCOUNT_ID
1835        ,REMITTANCE_BANK_ACCT_ID
1836        ,DISTRIBUTION_SET_ID
1837        ,PAYMENT_SCHEDULE_ID
1838        ,RECEIPT_METHOD_ID
1839        ,RECEIVABLES_TRX_ID
1840        ,ED_ADJ_RECEIVABLES_TRX_ID
1841        ,UNED_RECEIVABLES_TRX_ID
1842        ,SET_OF_BOOKS_ID
1843        ,SALESREP_ID
1844        ,BILL_SITE_USE_ID
1845        ,DRAWEE_SITE_USE_ID
1846        ,PAYING_SITE_USE_ID
1847        ,SOLD_SITE_USE_ID
1848        ,SHIP_SITE_USE_ID
1849        ,RECEIPT_CUSTOMER_SITE_USE_ID
1850        ,BILL_CUST_ROLE_ID
1851        ,DRAWEE_CUST_ROLE_ID
1852        ,SHIP_CUST_ROLE_ID
1853        ,SOLD_CUST_ROLE_ID
1854        ,BILL_CUSTOMER_ID
1855        ,DRAWEE_CUSTOMER_ID
1856        ,PAYING_CUSTOMER_ID
1857        ,SOLD_CUSTOMER_ID
1858        ,SHIP_CUSTOMER_ID
1859        ,REMIT_ADDRESS_ID
1860        ,RECEIPT_BATCH_ID
1861        ,RECEIVABLE_APPLICATION_ID
1862        ,CUSTOMER_BANK_BRANCH_ID
1863        ,ISSUER_BANK_BRANCH_ID
1864        ,BATCH_SOURCE_ID
1865        ,BATCH_ID
1866        ,TERM_ID
1867        ,SELECT_FLAG
1868        ,LEVEL_FLAG
1869        ,FROM_TO_FLAG
1870        ,PAIRED_CCID
1871        --{BUG#4356088
1872        ,event_type_code
1873        ,event_class_code
1874        ,entity_code
1875          ,MFAR_ADDITIONAL_ENTRY
1876         )
1877        SELECT /*+ LEADING(gt,trx,ctlgd)  USE_NL(gt,trx,ctlgd)*/
1878           gt.event_id                -- EVENT_ID
1879          ,''                            -- SOURCE_ID
1880          ,''                            -- SOURCE_TABLE
1881          ,''                            -- LINE_ID
1882          ,''                            -- TAX_CODE_ID
1883          ,''                            -- LOCATION_SEGMENT_ID
1884          ,sob.currency_code             -- BASE_CURRENCY_CODE
1885          ,trx.exchange_rate_type        -- EXCHANGE_RATE_TYPE
1886          ,trx.exchange_rate             -- EXCHANGE_RATE
1887          ,DECODE(trx.previous_customer_trx_id, NULL, trx.exchange_date, (select trx_date from ra_customer_trx_all where customer_trx_id = trx.previous_customer_trx_id) )  -- EXCHANGE_DATE
1888          ,''                            -- ACCTD_AMOUNT
1889          ,''                            -- TAXABLE_ACCTD_AMOUNT
1890          ,trx.org_id                    -- ORG_ID
1891          ,''                            -- HEADER_TABLE_ID
1892          ,'CTLGD'                       -- POSTING_ENTITY
1893          ,''                            -- CASH_RECEIPT_ID
1894          ,trx.customer_trx_id           -- CUSTOMER_TRX_ID
1895          ,''                            -- CUSTOMER_TRX_LINE_ID
1896          ,''                            -- CUST_TRX_LINE_GL_DIST_ID
1897          ,''                            -- CUST_TRX_LINE_SALESREP_ID
1898          ,''                            -- INVENTORY_ITEM_ID
1899          ,''                            -- SALES_TAX_ID
1900          ,''                            -- SO_ORGANIZATION_ID
1901          ,''                            -- TAX_EXEMPTION_ID
1902          ,''                            -- UOM_CODE
1903          ,''                            -- WAREHOUSE_ID
1904          ,trx.agreement_id              -- AGREEMENT_ID
1905          ,trx.customer_bank_account_id  -- CUSTOMER_BANK_ACCT_ID
1906          ,trx.drawee_bank_account_id    -- DRAWEE_BANK_ACCOUNT_ID
1907          ,trx.remit_bank_acct_use_id    -- REMITTANCE_BANK_ACCT_ID
1908          ,''                            -- DISTRIBUTION_SET_ID
1909          ,psch.payment_schedule_id      -- PAYMENT_SCHEDULE_ID
1910          ,trx.receipt_method_id         -- RECEIPT_METHOD_ID
1911          ,''                            -- RECEIVABLES_TRX_ID
1912          ,''                            -- ED_ADJ_RECEIVABLES_TRX_ID
1913          ,''                            -- UNED_RECEIVABLES_TRX_ID
1914          ,trx.set_of_books_id           -- SET_OF_BOOKS_ID
1915          ,trx.primary_salesrep_id       -- SALESREP_ID
1916          ,trx.bill_to_site_use_id       -- BILL_SITE_USE_ID
1917          ,trx.drawee_site_use_id        -- DRAWEE_SITE_USE_ID
1918          ,trx.paying_site_use_id        -- PAYING_SITE_USE_ID
1919          ,trx.sold_to_site_use_id       -- SOLD_SITE_USE_ID
1920          ,trx.ship_to_site_use_id       -- SHIP_SITE_USE_ID
1921          ,''                            -- RECEIPT_CUSTOMER_SITE_USE_ID
1922          ,trx.bill_to_contact_id        -- BILL_CUST_ROLE_ID
1923          ,trx.drawee_contact_id         -- DRAWEE_CUST_ROLE_ID
1924          ,trx.ship_to_contact_id        -- SHIP_CUST_ROLE_ID
1925          ,trx.sold_to_contact_id        -- SOLD_CUST_ROLE_ID
1926          ,trx.bill_to_customer_id       -- BILL_CUSTOMER_ID
1927          ,trx.drawee_id                 -- DRAWEE_CUSTOMER_ID
1928          ,trx.paying_customer_id        -- PAYING_CUSTOMER_ID
1929          ,trx.sold_to_customer_id       -- SOLD_CUSTOMER_ID
1930          ,trx.ship_to_customer_id       -- SHIP_CUSTOMER_ID
1931          ,trx.remit_to_address_id       -- REMIT_ADDRESS_ID
1932          ,''                            -- RECEIPT_BATCH_ID
1933          ,''                            -- RECEIVABLE_APPLICATION_ID
1934          ,''                            -- CUSTOMER_BANK_BRANCH_ID
1935          ,''                            -- ISSUER_BANK_BRANCH_ID
1936          ,trx.batch_source_id           -- BATCH_SOURCE_ID
1937          ,trx.batch_id                  -- BATCH_ID
1938          ,trx.term_id                   -- TERM_ID
1939          ,'Y'                           -- SELECT_FLAG
1940          ,'H'                           -- LEVEL_FLAG
1941          ,''                            -- FROM_TO_FLAG
1942          ,ctlgd.code_combination_id     -- paired_ccid
1943          --{BUG#4356088
1944          ,gt.event_type_code
1945          ,gt.event_class_code
1946          ,gt.entity_code
1947          ,'N'                    --MFAR_ADDITIONAL_ENTRY
1948       FROM ra_customer_trx_all            trx,
1949            gl_sets_of_books               sob,
1950            xla_events_gt                  gt,
1951            ar_payment_schedules_all       psch,
1952            ra_cust_trx_line_gl_dist_all   ctlgd
1953      WHERE gt.event_type_code IN ('INV_CREATE'     , 'INV_UPDATE'     ,
1954                                      'CM_CREATE'      , 'CM_UPDATE'      ,
1955                                      'DM_CREATE'      , 'DM_UPDATE'      ,
1956                                      'DEP_CREATE'     , 'DEP_UPDATE' ,
1957                                      'GUAR_CREATE'    , 'GUAR_UPDATE'    ,
1958                                      'CB_CREATE'      ) --BUG#3419926
1959        AND gt.application_id         = p_application_id
1960 	   AND trx.customer_trx_id       = gt.source_id_int_1
1961        AND trx.set_of_books_id       = sob.set_of_books_id
1962        AND trx.customer_trx_id       = ctlgd.customer_trx_id
1963        AND trx.complete_flag         = 'Y'
1964        AND ctlgd.account_class       = 'REC'
1965        AND ctlgd.account_set_flag    = 'N'
1966        AND trx.customer_trx_id       = psch.customer_trx_id(+)
1967        AND NVL(psch.terms_sequence_number,1) = 1;
1968 
1969      /*------------------------------------------------+
1970       | Due to unified accounting sources modal, the   |
1971       | data for header extract are already inserted   |
1972       | in the actract line table. The code in header  |
1973       | insertion is therefore not usefull. Unless it  |
1974       | a denormalised approach for header data for    |
1975       | performance reason. This needs to be evaluated.|
1976       | For now, I commented the header table insertion|
1977       | we might end up with removing the header table.|
1978       +------------------------------------------------*/
1979     /* to be removed at the end of the project*/
1980      -- Load_header_data_ctlgd_h ;
1981   local_log(procedure_name => 'load_header_data_ctlgd',
1982             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_header_data_ctlgd()-');
1983 
1984 EXCEPTION
1985 --  WHEN NO_DATA_FOUND THEN NULL;
1986   WHEN OTHERS THEN
1987   local_log(procedure_name => 'load_header_data_ctlgd',
1988             p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_header_data_ctlgd '||
1989 			                   arp_global.CRLF ||'Error      :'|| SQLERRM);
1990     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
1991     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
1992          'Procedure :arp_xla_extract_main_pkg.load_header_data_ctlgd'|| arp_global.CRLF||
1993          'Error     :'||SQLERRM);
1994     FND_MSG_PUB.ADD;
1995   RAISE;
1996 END Load_header_data_ctlgd;
1997 
1998 ---------------------------
1999 /*-----------------------------------------------------------------+
2000  | Procedure Name : Load_header_data_adj                           |
2001  | Description    : Extract header data for adjustment events      |
2002  +-----------------------------------------------------------------+
2003  | History        :                                                |
2004  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
2005  +-----------------------------------------------------------------*/
2006 PROCEDURE Load_header_data_adj(p_application_id  IN NUMBER DEFAULT 222)
2007 IS
2008 BEGIN
2009   local_log(procedure_name => 'load_header_data_adj',
2010             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_header_data_adj()+');
2011     -- Insert into Lines GT for adjustments because header level
2012     -- shared sources can be used.
2013      INSERT INTO AR_XLA_LINES_EXTRACT(
2014         EVENT_ID
2015        ,SOURCE_ID
2016        ,SOURCE_TABLE
2017        ,LINE_ID
2018        ,TAX_CODE_ID
2019        ,LOCATION_SEGMENT_ID
2020        ,BASE_CURRENCY_CODE
2021        ,EXCHANGE_RATE_TYPE
2022        ,EXCHANGE_RATE
2023        ,EXCHANGE_DATE
2024        ,ACCTD_AMOUNT
2025        ,TAXABLE_ACCTD_AMOUNT
2026        ,ORG_ID
2027        ,HEADER_TABLE_ID
2028        ,POSTING_ENTITY
2029        ,CASH_RECEIPT_ID
2030        ,CUSTOMER_TRX_ID
2031        ,CUSTOMER_TRX_LINE_ID
2032        ,CUST_TRX_LINE_GL_DIST_ID
2033        ,CUST_TRX_LINE_SALESREP_ID
2034        ,INVENTORY_ITEM_ID
2035        ,SALES_TAX_ID
2036        ,SO_ORGANIZATION_ID
2037        ,TAX_EXEMPTION_ID
2038        ,UOM_CODE
2039        ,WAREHOUSE_ID
2040        ,AGREEMENT_ID
2041        ,CUSTOMER_BANK_ACCT_ID
2042        ,DRAWEE_BANK_ACCOUNT_ID
2043        ,REMITTANCE_BANK_ACCT_ID
2044        ,DISTRIBUTION_SET_ID
2045        ,PAYMENT_SCHEDULE_ID
2046        ,RECEIPT_METHOD_ID
2047        ,RECEIVABLES_TRX_ID
2048        ,ED_ADJ_RECEIVABLES_TRX_ID
2049        ,UNED_RECEIVABLES_TRX_ID
2050        ,SET_OF_BOOKS_ID
2051        ,SALESREP_ID
2052        ,BILL_SITE_USE_ID
2053        ,DRAWEE_SITE_USE_ID
2054        ,PAYING_SITE_USE_ID
2055        ,SOLD_SITE_USE_ID
2056        ,SHIP_SITE_USE_ID
2057        ,RECEIPT_CUSTOMER_SITE_USE_ID
2058        ,BILL_CUST_ROLE_ID
2059        ,DRAWEE_CUST_ROLE_ID
2060        ,SHIP_CUST_ROLE_ID
2061        ,SOLD_CUST_ROLE_ID
2062        ,BILL_CUSTOMER_ID
2063        ,DRAWEE_CUSTOMER_ID
2064        ,PAYING_CUSTOMER_ID
2065        ,SOLD_CUSTOMER_ID
2066        ,SHIP_CUSTOMER_ID
2067        ,REMIT_ADDRESS_ID
2068        ,RECEIPT_BATCH_ID
2069        ,RECEIVABLE_APPLICATION_ID
2070        ,CUSTOMER_BANK_BRANCH_ID
2071        ,ISSUER_BANK_BRANCH_ID
2072        ,BATCH_SOURCE_ID
2073        ,BATCH_ID
2074        ,TERM_ID
2075        ,SELECT_FLAG
2076        ,LEVEL_FLAG
2077        ,FROM_TO_FLAG
2078        ,paired_ccid
2079        --{BUG#4356088
2080        ,event_type_code
2081        ,event_class_code
2082        ,entity_code
2083        ,MFAR_ADDITIONAL_ENTRY
2084 	    )
2085        SELECT /*+LEADING(gt) USE_NL(gt, adj)*/
2086           gt.event_id,                        -- EVENT_ID
2087           '',                                 -- SOURCE_ID
2088           '',                                 -- SOURCE_TABLE
2089           '',                                 -- LINE_ID
2090           '',                                 -- TAX_CODE_ID
2091           '',                                 -- LOCATION_SEGMENT_ID
2092           sob.currency_code,                  -- BASE_CURRENCY_CODE
2093           trxf.exchange_rate_type,            -- EXCHANGE_RATE_TYPE
2094           trxf.exchange_rate,                 -- EXCHANGE_RATE
2095           trxf.exchange_date,                 -- EXCHANGE_DATE
2096           '',                                 -- ACCTD_AMOUNT
2097           '',                                 -- TAXABLE_ACCTD_AMOUNT
2098           adj.org_id,                         -- ORG_ID
2099           adj.adjustment_id,                  -- HEADER_TABLE_ID
2100           'ADJ',                              -- POSTING_ENTITY
2101           '',                                 -- CASH_RECEIPT_ID
2102           adj.customer_trx_id,                -- CUSTOMER_TRX_ID
2103           '',                                 -- CUSTOMER_TRX_LINE_ID
2104           '',                                 -- CUST_TRX_LINE_GL_DIST_ID
2105           trxf.primary_salesrep_id,           -- SALESREP_ID
2106           '',                                 -- INVENTORY_ITEM_ID
2107           '',                                 -- SALES_TAX_ID
2108           '',                                 -- SO_ORGANIZATION_ID
2109           '',                                 -- TAX_EXEMPTION_ID
2110           '',                                 -- UOM_CODE
2111           '',                                 -- WAREHOUSE_ID
2112           trxf.agreement_id,                  -- AGREEMENT_ID
2113           trxf.customer_bank_account_id,      -- CUSTOMER_BANK_ACCT_ID
2114           '',                                 -- DRAWEE_BANK_ACCOUNT_ID
2115           trxf.remit_bank_acct_use_id,    -- REMITTANCE_BANK_ACCT_ID
2116           adj.distribution_set_id,            -- DISTRIBUTION_SET_ID
2117           adj.payment_schedule_id,            -- PAYMENT_SCHEDULE_ID
2118           trxf.receipt_method_id,             -- RECEIPT_METHOD_ID
2119           adj.receivables_trx_id,             -- RECEIVABLES_TRX_ID
2120           '',                                 -- ED_ADJ_RECEIVABLES_TRX_ID
2121           '',                                 -- UNED_RECEIVABLES_TRX_ID
2122           adj.set_of_books_id,                -- SET_OF_BOOKS_ID
2123           trxf.primary_salesrep_id,           -- SALESREP_ID
2124           trxf.bill_to_site_use_id,           -- BILL_SITE_USE_ID
2125           trxf.drawee_site_use_id,            -- DRAWEE_SITE_USE_ID
2126           trxf.paying_site_use_id,            -- PAYING_SITE_USE_ID
2127           trxf.sold_to_site_use_id,           -- SOLD_SITE_USE_ID
2128           trxf.ship_to_site_use_id,           -- SHIP_SITE_USE_ID
2129           '',                                 -- RECEIPT_CUSTOMER_SITE_USE_ID
2130           trxf.bill_to_contact_id,            -- BILL_CUST_ROLE_ID
2131           '',                                 -- DRAWEE_CUST_ROLE_ID
2132           trxf.ship_to_contact_id,            -- SHIP_CUST_ROLE_ID
2133           trxf.sold_to_contact_id,            -- SOLD_CUST_ROLE_ID
2134           trxf.bill_to_customer_id,           -- BILL_CUSTOMER_ID
2135           trxf.drawee_id,                     -- DRAWEE_CUSTOMER_ID
2136           trxf.paying_customer_id,            -- PAYING_CUSTOMER_ID
2137           trxf.sold_to_customer_id,           -- SOLD_CUSTOMER_ID
2138           trxf.ship_to_customer_id,           -- SHIP_CUSTOMER_ID
2139           trxf.remit_to_address_id,           -- REMIT_ADDRESS_ID
2140           '',                                 -- RECEIPT_BATCH_ID
2141           '',                                 -- RECEIVABLE_APPLICATION_ID
2142           '',                                 -- CUSTOMER_BANK_BRANCH_ID
2143           '',                                 -- ISSUER_BANK_BRANCH_ID
2144           trxf.batch_source_id,               -- BATCH_SOURCE_ID
2145           trxf.batch_id,                      -- BATCH_ID
2146           trxf.term_id,                       -- TERM_ID
2147           'Y',                                -- select_flag
2148           'H',                                -- level_flag
2149           '',                                 -- FROM_TO_FLAG
2150           ctlgd.code_combination_id           -- paired_ccid
2151          --{BUG#4356088
2152          ,gt.event_type_code
2153          ,gt.event_class_code
2154          ,gt.entity_code
2155          ,'N'                    --MFAR_ADDITIONAL_ENTRY
2156       FROM ar_adjustments_all             adj,
2157            gl_sets_of_books               sob,
2158            xla_events_gt                  gt,
2159            ra_customer_trx_all            trxf,
2160            ra_cust_trx_line_gl_dist_all   ctlgd
2161      WHERE gt.event_type_code             = 'ADJ_CREATE'
2162        AND gt.application_id              = p_application_id
2163 	   AND adj.adjustment_id              = gt.source_id_int_1
2164        AND adj.set_of_books_id            = sob.set_of_books_id
2165        AND adj.customer_trx_id            = trxf.customer_trx_id(+)
2166        AND trxf.customer_trx_id           = ctlgd.customer_trx_id
2167        AND ctlgd.account_set_flag         = 'N'
2168        AND ctlgd.account_class            = 'REC'
2169        UNION ALL
2170       SELECT /*+LEADING(gt) USE_NL(gt, adj)*/
2171          gt.event_id,                        -- EVENT_ID
2172          '',                                 -- SOURCE_ID
2173          '',                                 -- SOURCE_TABLE
2174          '',                                 -- LINE_ID
2175          '',                                 -- TAX_CODE_ID
2176          '',                                 -- LOCATION_SEGMENT_ID
2177          sob.currency_code,                  -- BASE_CURRENCY_CODE
2178          trxf.exchange_rate_type,            -- EXCHANGE_RATE_TYPE
2179          trxf.exchange_rate,                 -- EXCHANGE_RATE
2180          trxf.exchange_date,                 -- EXCHANGE_DATE
2181          '',                                 -- ACCTD_AMOUNT
2182          '',                                 -- TAXABLE_ACCTD_AMOUNT
2183          adj.org_id,                         -- ORG_ID
2184          adj.adjustment_id,                  -- HEADER_TABLE_ID
2185          'ADJ',                              -- POSTING_ENTITY
2186          '',                                 -- CASH_RECEIPT_ID
2187          adj.customer_trx_id,                -- CUSTOMER_TRX_ID
2188          '',                                 -- CUSTOMER_TRX_LINE_ID
2189          '',                                 -- CUST_TRX_LINE_GL_DIST_ID
2190          trxf.primary_salesrep_id,           -- SALESREP_ID
2191          '',                                 -- INVENTORY_ITEM_ID
2192          '',                                 -- SALES_TAX_ID
2193          '',                                 -- SO_ORGANIZATION_ID
2194          '',                                 -- TAX_EXEMPTION_ID
2195          '',                                 -- UOM_CODE
2196          '',                                 -- WAREHOUSE_ID
2197          trxf.agreement_id,                  -- AGREEMENT_ID
2198          trxf.customer_bank_account_id,      -- CUSTOMER_BANK_ACCT_ID
2199          '',                                 -- DRAWEE_BANK_ACCOUNT_ID
2200          trxf.remit_bank_acct_use_id,    -- REMITTANCE_BANK_ACCT_ID
2201          adj.distribution_set_id,            -- DISTRIBUTION_SET_ID
2202          adj.payment_schedule_id,            -- PAYMENT_SCHEDULE_ID
2203          trxf.receipt_method_id,             -- RECEIPT_METHOD_ID
2204          adj.receivables_trx_id,             -- RECEIVABLES_TRX_ID
2205          '',                                 -- ED_ADJ_RECEIVABLES_TRX_ID
2206          '',                                 -- UNED_RECEIVABLES_TRX_ID
2207          adj.set_of_books_id,                -- SET_OF_BOOKS_ID
2208          trxf.primary_salesrep_id,           -- SALESREP_ID
2209          trxf.bill_to_site_use_id,           -- BILL_SITE_USE_ID
2210          trxf.drawee_site_use_id,            -- DRAWEE_SITE_USE_ID
2211          trxf.paying_site_use_id,            -- PAYING_SITE_USE_ID
2212          trxf.sold_to_site_use_id,           -- SOLD_SITE_USE_ID
2213          trxf.ship_to_site_use_id,           -- SHIP_SITE_USE_ID
2214          '',                                 -- RECEIPT_CUSTOMER_SITE_USE_ID
2215          trxf.bill_to_contact_id,            -- BILL_CUST_ROLE_ID
2216          '',                                 -- DRAWEE_CUST_ROLE_ID
2217          trxf.ship_to_contact_id,            -- SHIP_CUST_ROLE_ID
2218          trxf.sold_to_contact_id,            -- SOLD_CUST_ROLE_ID
2219          trxf.bill_to_customer_id,           -- BILL_CUSTOMER_ID
2220          trxf.drawee_id,                     -- DRAWEE_CUSTOMER_ID
2221          trxf.paying_customer_id,            -- PAYING_CUSTOMER_ID
2222          trxf.sold_to_customer_id,           -- SOLD_CUSTOMER_ID
2223          trxf.ship_to_customer_id,           -- SHIP_CUSTOMER_ID
2224          trxf.remit_to_address_id,           -- REMIT_ADDRESS_ID
2225          '',                                 -- RECEIPT_BATCH_ID
2226          '',                                 -- RECEIVABLE_APPLICATION_ID
2227          '',                                 -- CUSTOMER_BANK_BRANCH_ID
2228          '',                                 -- ISSUER_BANK_BRANCH_ID
2229          trxf.batch_source_id,               -- BATCH_SOURCE_ID
2230          trxf.batch_id,                      -- BATCH_ID
2231          trxf.term_id,                       -- TERM_ID
2232          'Y',                                -- select_flag
2233          'H',                                -- level_flag
2234          '',                                 -- FROM_TO_FLAG
2235          ard.code_combination_id           -- paired_ccid
2236         --{BUG#4356088
2237         ,gt.event_type_code
2238         ,gt.event_class_code
2239         ,gt.entity_code
2240         ,'N'                    --MFAR_ADDITIONAL_ENTRY
2241      FROM ar_adjustments_all             adj,
2242           gl_sets_of_books               sob,
2243           xla_events_gt                  gt,
2244           ra_customer_trx_all            trxf,
2245           ar_transaction_history_all     trh,
2246           ar_distributions_all           ard
2247     WHERE gt.event_type_code             = 'ADJ_CREATE'
2248       AND gt.application_id              = p_application_id
2249           AND adj.adjustment_id              = gt.source_id_int_1
2250       AND adj.set_of_books_id            = sob.set_of_books_id
2251       AND adj.customer_trx_id            = trxf.customer_trx_id(+)
2252       AND trxf.customer_trx_id           = trh.customer_trx_id
2253       AND trh.current_accounted_flag     = 'Y'
2254       AND trh.postable_flag              = 'Y'
2255       AND ard.source_table               = 'TH'
2256       AND ard.source_id                  = trh.transaction_history_id
2257       AND ard.source_type                = 'REC'
2258       AND ard.ref_customer_trx_line_id   is null
2259       AND ard.ref_cust_trx_line_gl_dist_id is null;
2260 
2261     -- Load_header_data_adj_h;
2262   local_log(procedure_name => 'load_header_data_adj',
2263             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_header_data_adj()-');
2264 EXCEPTION
2265 --  WHEN NO_DATA_FOUND THEN NULL;
2266   WHEN OTHERS THEN
2267     local_log(procedure_name => 'load_header_data_adj',
2268               p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_header_data_adj '||
2269                               arp_global.CRLF || 'Error      :'|| SQLERRM);
2270     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
2271     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
2272          'Procedure :arp_xla_extract_main_pkg.load_header_data_adj'|| arp_global.CRLF||
2273          'Error     :'||SQLERRM);
2274     FND_MSG_PUB.ADD;
2275   RAISE;
2276 END Load_header_data_adj;
2277 
2278 -----------------------------------------------------------------------
2279 
2280 /*-----------------------------------------------------------------+
2281  | Procedure Name : Load_header_data_crh                           |
2282  | Description    : Extract header data for cash receipt           |
2283  |                  and misc cash receipt events.                  |
2284  +-----------------------------------------------------------------+
2285  | History        :                                                |
2286  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
2287  +-----------------------------------------------------------------*/
2288 PROCEDURE Load_header_data_crh(p_application_id IN NUMBER DEFAULT 222)
2289 IS
2290 BEGIN
2291     local_log(procedure_name => 'load_header_data_crh',
2292               p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_header_data_crh()+');
2293      -- Insert header data to line level
2294      -- Pure Header sources and Shared header sources
2295      INSERT INTO AR_XLA_LINES_EXTRACT(
2296         EVENT_ID
2297        ,SOURCE_ID
2298        ,SOURCE_TABLE
2299        ,LINE_ID
2300        ,TAX_CODE_ID
2301        ,LOCATION_SEGMENT_ID
2302        ,BASE_CURRENCY_CODE
2303        ,EXCHANGE_RATE_TYPE
2304        ,EXCHANGE_RATE
2305        ,EXCHANGE_DATE
2306        ,ACCTD_AMOUNT
2307        ,TAXABLE_ACCTD_AMOUNT
2308        ,ORG_ID
2309        ,HEADER_TABLE_ID
2310        ,POSTING_ENTITY
2311        ,CASH_RECEIPT_ID
2312        ,CUSTOMER_TRX_ID
2313        ,CUSTOMER_TRX_LINE_ID
2314        ,CUST_TRX_LINE_GL_DIST_ID
2315        ,CUST_TRX_LINE_SALESREP_ID
2316        ,INVENTORY_ITEM_ID
2317        ,SALES_TAX_ID
2318        ,SO_ORGANIZATION_ID
2319        ,TAX_EXEMPTION_ID
2320        ,UOM_CODE
2321        ,WAREHOUSE_ID
2322        ,AGREEMENT_ID
2323        ,CUSTOMER_BANK_ACCT_ID
2324        ,DRAWEE_BANK_ACCOUNT_ID
2325        ,REMITTANCE_BANK_ACCT_ID
2326        ,DISTRIBUTION_SET_ID
2327        ,PAYMENT_SCHEDULE_ID
2328        ,RECEIPT_METHOD_ID
2329        ,RECEIVABLES_TRX_ID
2330        ,ED_ADJ_RECEIVABLES_TRX_ID
2331        ,UNED_RECEIVABLES_TRX_ID
2332        ,SET_OF_BOOKS_ID
2333        ,SALESREP_ID
2334        ,BILL_SITE_USE_ID
2335        ,DRAWEE_SITE_USE_ID
2336        ,PAYING_SITE_USE_ID
2337        ,SOLD_SITE_USE_ID
2338        ,SHIP_SITE_USE_ID
2339        ,RECEIPT_CUSTOMER_SITE_USE_ID
2340        ,BILL_CUST_ROLE_ID
2341        ,DRAWEE_CUST_ROLE_ID
2342        ,SHIP_CUST_ROLE_ID
2343        ,SOLD_CUST_ROLE_ID
2344        ,BILL_CUSTOMER_ID
2345        ,DRAWEE_CUSTOMER_ID
2346        ,PAYING_CUSTOMER_ID
2347        ,SOLD_CUSTOMER_ID
2348        ,SHIP_CUSTOMER_ID
2349        ,REMIT_ADDRESS_ID
2350        ,RECEIPT_BATCH_ID
2351        ,RECEIVABLE_APPLICATION_ID
2352        ,CUSTOMER_BANK_BRANCH_ID
2353        ,ISSUER_BANK_BRANCH_ID
2354        ,BATCH_SOURCE_ID
2355        ,BATCH_ID
2356        ,TERM_ID
2357        ,SELECT_FLAG
2358        ,LEVEL_FLAG
2359        ,FROM_TO_FLAG
2360        ,CRH_STATUS
2361        ,CRH_PRV_STATUS
2362        --{BUG#4356088
2363        ,event_type_code
2364        ,event_class_code
2365        ,entity_code
2366        --}
2367        ,reversal_code --Reversal at header should return 'Y' for RECP_REVERSAL
2368        ,MFAR_ADDITIONAL_ENTRY
2369        )
2370        SELECT /*+LEADING(gt) USE_NL(gt,cr)*/
2371           gt.event_id,        --EVENT_ID
2372           '',                 --SOURCE_ID
2373           '',                 --SOURCE_TABLE
2374           '',                 --LINE_ID
2375           '',                 --TAX_CODE_ID
2376           '',                 --LOCATION_SEGMENT_ID
2377           sob.currency_code,    -- BASE_CURRENCY_CODE
2378           cr.exchange_rate_type,-- EXCHANGE_RATE_TYPE
2379           cr.exchange_rate,     -- EXCHANGE_RATE
2380           cr.exchange_date,     -- EXCHANGE_DATE
2381           '',                 --ACCTD_AMOUNT
2382           '',                 --TAXABLE_ACCTD_AMOUNT
2383           cr.org_id,          --ORG_ID
2384           cr.cash_receipt_id, --HEADER_TABLE_ID
2385           'CR',               --POSTING_ENTITY
2386           cr.cash_receipt_id, --CASH_RECEIPT_ID
2387           '',                 --CUSTOMER_TRX_ID
2388           '',                 --CUSTOMER_TRX_LINE_ID
2389           '',                 --CUST_TRX_LINE_GL_DIST_ID
2390           '',                 --CUST_TRX_LINE_SALESREP_ID
2391           '',                 --INVENTORY_ITEM_ID
2392           '',                 --SALES_TAX_ID
2393           '',                 --SO_ORGANIZATION_ID
2394           '',                 --TAX_EXEMPTION_ID
2395           '',                 --UOM_CODE
2396           '',                 --WAREHOUSE_ID
2397           '',                 --AGREEMENT_ID
2398           cr.customer_bank_account_id,        -- CUSTOMER_BANK_ACCT_ID
2399           '',                                 -- DRAWEE_BANK_ACCOUNT_ID
2400           cr.remit_bank_acct_use_id,      -- REMITTANCE_BANK_ACCT_ID
2401           cr.distribution_set_id,             -- DISTRIBUTION_SET_ID
2402           '',                                 -- PAYMENT_SCHEDULE_ID
2403           cr.receipt_method_id,               -- RECEIPT_METHOD_ID
2404           cr.receivables_trx_id,              -- RECEIVABLES_TRX_ID
2405           '',                                 -- ED_ADJ_RECEIVABLES_TRX_ID
2406           '',                                 -- UNED_RECEIVABLES_TRX_ID
2407           cr.set_of_books_id,                 -- SET_OF_BOOKS_ID
2408           '',                                 -- SALESREP_ID
2409           cr.customer_site_use_id,            -- BILL_SITE_USE_ID
2410           '',                                 -- DRAWEE_SITE_USE_ID
2411           cr.customer_site_use_id,            -- PAYING_SITE_USE_ID -- HYU
2412           '',                                 -- SOLD_SITE_USE_ID
2413           '',                                 -- SHIP_SITE_USE_ID
2414           cr.customer_site_use_id,            -- RECEIPT_CUSTOMER_SITE_USE_ID
2415           '',                                 -- BILL_CUST_ROLE_ID
2416           '',                                 -- DRAWEE_CUST_ROLE_ID
2417           '',                                 -- SHIP_CUST_ROLE_ID
2418           '',                                 -- SOLD_CUST_ROLE_ID
2419           '',                                 -- BILL_CUSTOMER_ID
2420           '',                                 -- DRAWEE_CUSTOMER_ID
2421           cr.pay_from_customer,               -- PAYING_CUSTOMER_ID
2422           '',                                 -- SOLD_CUSTOMER_ID
2423           '',                                 -- SHIP_CUSTOMER_ID
2424           '',                                 -- REMIT_ADDRESS_ID
2425           cr.SELECTED_REMITTANCE_BATCH_ID,    -- RECEIPT_BATCH_ID
2426           '',                                 -- RECEIVABLE_APPLICATION_ID
2427           cr.customer_bank_branch_id,         -- CUSTOMER_BANK_BRANCH_ID
2428           cr.issuer_bank_branch_id,           -- ISSUER_BANK_BRANCH_ID
2429           '',                                 -- BATCH_SOURCE_ID
2430           '',                                 -- BATCH_ID
2431           '',                                 -- TERM_ID
2432           'Y',                                -- SELECT_FLAG
2433           'H',                                -- LEVEL_FLAG
2434           '',                                 -- FROM_TO_FLAG
2435 --{BUG5332302
2436           '',                         --  CRH_STATUS
2437           ''                         --  CRH_PRV_STATUS
2438 --}
2439          --{BUG#4356088
2440          ,gt.event_type_code
2441          ,gt.event_class_code
2442          ,gt.entity_code
2443          --}
2444          ,DECODE(gt.event_type_code,'RECP_REVERSE','Y',
2445                                     'MISC_RECP_REVERSE','Y','N') --reversal_code
2446          ,'N'                    --MFAR_ADDITIONAL_ENTRY
2447        FROM xla_events_gt                     gt,
2448            gl_sets_of_books                  sob,
2449            ar_cash_receipts_all              cr
2450      WHERE gt.event_type_code IN (  'RECP_CREATE'          ,'RECP_UPDATE'        ,
2451                                     'RECP_RATE_ADJUST'     ,'RECP_REVERSE'       ,--Header level view reversal stay
2452                                     'MISC_RECP_CREATE'     ,'MISC_RECP_UPDATE'   ,
2453                                     'MISC_RECP_RATE_ADJUST','MISC_RECP_REVERSE'  )--BUG#3419926
2454        AND gt.application_id              = p_application_id
2455 	   AND gt.source_id_int_1             = cr.cash_receipt_id
2456        AND cr.set_of_books_id             = sob.set_of_books_id;
2457 
2458     local_log(procedure_name => 'load_header_data_crh',
2459               p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_header_data_crh()-');
2460 EXCEPTION
2461 --  WHEN NO_DATA_FOUND THEN NULL;
2462   WHEN OTHERS THEN
2463     local_log(procedure_name => 'load_header_data_crh',
2464               p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_header_data_crh '||
2465               arp_global.CRLF ||'Error      :'|| SQLERRM);
2466     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
2467     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
2468          'Procedure :arp_xla_extract_main_pkg.load_header_data_crh'|| arp_global.CRLF||
2469          'Error     :'||SQLERRM);
2470     FND_MSG_PUB.ADD;
2471   RAISE;
2472 END Load_header_data_crh;
2473 
2474 --------------------------------------------------------------------------------
2475 
2476 /*-----------------------------------------------------------------+
2477  | Procedure Name : Load_header_data_th                            |
2478  | Description    : Extract header data for Bill Receivable events |
2479  +-----------------------------------------------------------------+
2480  | History        :                                                |
2481  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
2482  +-----------------------------------------------------------------*/
2483 PROCEDURE Load_header_data_th(p_application_id  IN NUMBER DEFAULT 222)
2484 IS
2485 BEGIN
2486     local_log(procedure_name => 'Load_header_data_th',
2487               p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.Load_header_data_th()+');
2488      INSERT INTO AR_XLA_LINES_EXTRACT(
2489         EVENT_ID
2490        ,SOURCE_ID
2491        ,SOURCE_TABLE
2492        ,LINE_ID
2493        ,TAX_CODE_ID
2494        ,LOCATION_SEGMENT_ID
2495        ,BASE_CURRENCY_CODE
2496        ,EXCHANGE_RATE_TYPE
2497        ,EXCHANGE_RATE
2498        ,EXCHANGE_DATE
2499        ,ACCTD_AMOUNT
2500        ,TAXABLE_ACCTD_AMOUNT
2501        ,ORG_ID
2502        ,HEADER_TABLE_ID
2503        ,POSTING_ENTITY
2504        ,CASH_RECEIPT_ID
2505        ,CUSTOMER_TRX_ID
2506        ,CUSTOMER_TRX_LINE_ID
2507        ,CUST_TRX_LINE_GL_DIST_ID
2508        ,CUST_TRX_LINE_SALESREP_ID
2509        ,INVENTORY_ITEM_ID
2510        ,SALES_TAX_ID
2511        ,SO_ORGANIZATION_ID
2512        ,TAX_EXEMPTION_ID
2513        ,UOM_CODE
2514        ,WAREHOUSE_ID
2515        ,AGREEMENT_ID
2516        ,CUSTOMER_BANK_ACCT_ID
2517        ,DRAWEE_BANK_ACCOUNT_ID
2518        ,REMITTANCE_BANK_ACCT_ID
2519        ,DISTRIBUTION_SET_ID
2520        ,PAYMENT_SCHEDULE_ID
2521        ,RECEIPT_METHOD_ID
2522        ,RECEIVABLES_TRX_ID
2523        ,ED_ADJ_RECEIVABLES_TRX_ID
2524        ,UNED_RECEIVABLES_TRX_ID
2525        ,SET_OF_BOOKS_ID
2526        ,SALESREP_ID
2527        ,BILL_SITE_USE_ID
2528        ,DRAWEE_SITE_USE_ID
2529        ,PAYING_SITE_USE_ID
2530        ,SOLD_SITE_USE_ID
2531        ,SHIP_SITE_USE_ID
2532        ,RECEIPT_CUSTOMER_SITE_USE_ID
2533        ,BILL_CUST_ROLE_ID
2534        ,DRAWEE_CUST_ROLE_ID
2535        ,SHIP_CUST_ROLE_ID
2536        ,SOLD_CUST_ROLE_ID
2537        ,BILL_CUSTOMER_ID
2538        ,DRAWEE_CUSTOMER_ID
2539        ,PAYING_CUSTOMER_ID
2540        ,SOLD_CUSTOMER_ID
2541        ,SHIP_CUSTOMER_ID
2542        ,REMIT_ADDRESS_ID
2543        ,RECEIPT_BATCH_ID
2544        ,RECEIVABLE_APPLICATION_ID
2545        ,CUSTOMER_BANK_BRANCH_ID
2546        ,ISSUER_BANK_BRANCH_ID
2547        ,BATCH_SOURCE_ID
2548        ,BATCH_ID
2549        ,TERM_ID
2550        ,SELECT_FLAG
2551        ,LEVEL_FLAG
2552        ,FROM_TO_FLAG
2553        ,paired_ccid
2554        --{BUG#4356088
2555        ,event_type_code
2556        ,event_class_code
2557        ,entity_code
2558        ,MFAR_ADDITIONAL_ENTRY
2559        )
2560        SELECT /*+LEADING(gt) USE_NL(gt,trx)*/
2561           gt.event_id,             --EVENT_ID
2562           '',                      --SOURCE_ID
2563           '',                      --SOURCE_TABLE
2564           '',                      --LINE_ID
2565           '',                      --TAX_CODE_ID
2566           '',                      --LOCATION_SEGMENT_ID
2567           sob.currency_code,             --   BASE_CURRENCY_CODE
2568           trx.exchange_rate_type,        --   EXCHANGE_RATE_TYPE
2569           trx.exchange_rate,             --   EXCHANGE_RATE
2570           trx.exchange_date,             --   EXCHANGE_DATE
2571           '',                      --ACCTD_AMOUNT
2572           '',                      --TAXABLE_ACCTD_AMOUNT
2573           trx.org_id,                    --   ORG_ID
2574           trx.customer_trx_id,     --HEADER_TABLE_ID
2575           'TH',                    --POSTING_ENTITY
2576           '',                          --   CASH_RECEIPT_ID
2577           trx.customer_trx_id,           --   CUSTOMER_TRX_ID
2578           '',                --CUSTOMER_TRX_LINE_ID
2579           '',                --CUST_TRX_LINE_GL_DIST_ID
2580           '',                --CUST_TRX_LINE_SALESREP_ID
2581           '',                --INVENTORY_ITEM_ID
2582           '',                --SALES_TAX_ID
2583           '',                --SO_ORGANIZATION_ID
2584           '',                --TAX_EXEMPTION_ID
2585           '',                --UOM_CODE
2586           '',                --WAREHOUSE_ID
2587           trx.agreement_id,              --   AGREEMENT_ID
2588           trx.customer_bank_account_id,  --   CUSTOMER_BANK_ACCT_ID
2589           trx.drawee_bank_account_id,    --   DRAWEE_BANK_ACCOUNT_ID
2590           '',                          --   DISTRIBUTION_SET_ID
2591           '',                          --   PAYMENT_SCHEDULE_ID
2592           trx.receipt_method_id,         --   RECEIPT_METHOD_ID
2593           trx.remit_bank_acct_use_id,--   REMITTANCE_BANK_ACCT_ID
2594           '',                          --   RECEIVABLES_TRX_ID
2595           '',                          --   ED_ADJ_RECEIVABLES_TRX_ID
2596           '',                          --   UNED_RECEIVABLES_TRX_ID
2597           trx.set_of_books_id,           --   SET_OF_BOOKS_ID
2598           trx.primary_salesrep_id,       --   SALESREP_ID
2599           trx.bill_to_site_use_id,       --   BILL_SITE_USE_ID
2600           trx.drawee_site_use_id,        --   DRAWEE_SITE_USE_ID
2601           trx.paying_site_use_id,        --   PAYING_SITE_USE_ID
2602           trx.sold_to_site_use_id,       --   SOLD_SITE_USE_ID
2603           trx.ship_to_site_use_id,       --   SHIP_SITE_USE_ID
2604           '',                          --   RECEIPT_CUSTOMER_SITE_USE_ID
2605           trx.bill_to_contact_id,        --   BILL_CUST_ROLE_ID
2606           trx.drawee_contact_id,         --   DRAWEE_CUST_ROLE_ID
2607           trx.ship_to_contact_id,        --   SHIP_CUST_ROLE_ID
2608           trx.sold_to_contact_id,        --   SOLD_CUST_ROLE_ID
2609           trx.bill_to_customer_id,       --   BILL_CUSTOMER_ID
2610           trx.drawee_id,                 --   DRAWEE_CUSTOMER_ID
2611           trx.paying_customer_id,        --   PAYING_CUSTOMER_ID
2612           trx.sold_to_customer_id,       --   SOLD_CUSTOMER_ID
2613           trx.ship_to_customer_id,       --   SHIP_CUSTOMER_ID
2614           trx.remit_to_address_id,       --   REMIT_ADDRESS_ID
2615           '',                          --   RECEIPT_BATCH_ID
2616           '',                          --   RECEIVABLE_APPLICATION_ID
2617           '',                          --   CUSTOMER_BANK_BRANCH_ID
2618           '',                          --   ISSUER_BANK_BRANCH_ID
2619           trx.batch_source_id,           --   BATCH_SOURCE_ID
2620           trx.batch_id,                  --   BATCH_ID
2621           trx.term_id,                   --   TERM_ID
2622           'Y',                           --   SELECT_FLAG
2623           'H',                           --   LEVEL_FLAG
2624           '',                            --   FROM_TO_FLAG
2625           ''                            --BUG#5204032 ard.code_combination_id      -- paired_ccid
2626          --{BUG#4356088
2627          ,gt.event_type_code
2628          ,gt.event_class_code
2629          ,gt.entity_code
2630          ,'N'                    --MFAR_ADDITIONAL_ENTRY
2631          --}
2632       FROM xla_events_gt                     gt,
2633            ra_customer_trx_all               trx,
2634            gl_sets_of_books                  sob
2635      WHERE gt.event_type_code             IN ('BILL_CREATE' ,'BILL_UPDATE' ,'BILL_REVERSE')
2636        AND gt.application_id              = p_application_id
2637        AND gt.source_id_int_1             = trx.customer_trx_id
2638        AND trx.set_of_books_id            = sob.set_of_books_id;
2639 
2640    --  Load_header_data_th_h;
2641    local_log(procedure_name => 'Load_header_data_th',
2642              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.Load_header_data_th()-');
2643 EXCEPTION
2644 --  WHEN NO_DATA_FOUND THEN NULL;
2645   WHEN OTHERS THEN
2646    local_log(procedure_name => 'Load_header_data_th',
2647              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_header_data_th'||
2648              arp_global.CRLF ||'Error      :'|| SQLERRM);
2649     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
2650     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
2651          'Procedure :arp_xla_extract_main_pkg.load_header_data_th'|| arp_global.CRLF||
2652          'Error     :'||SQLERRM);
2653     FND_MSG_PUB.ADD;
2654   RAISE;
2655 END Load_header_data_th;
2656 
2657 
2658 -----------------------------------
2659 -- Line data loading procedures  --
2660 -----------------------------------
2661 
2662 /*-----------------------------------------------------------------+
2663  | Procedure Name : load_line_data_ctlgd                           |
2664  | Description    : Extract line data for transaction events       |
2665  +-----------------------------------------------------------------+
2666  | History        :                                                |
2667  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
2668  +-----------------------------------------------------------------*/
2669 PROCEDURE load_line_data_ctlgd(p_application_id  IN NUMBER DEFAULT 222)
2670 IS
2671 BEGIN
2672    local_log(procedure_name => 'load_line_data_ctlgd',
2673              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_line_data_ctlgd()+');
2674       -- Insert line level data in Line GT with
2675       -- level_flag    = L
2676 
2677       INSERT INTO ar_xla_lines_extract (
2678         EVENT_ID
2679        ,LINE_NUMBER
2680        ,LANGUAGE
2681        ,LEDGER_ID
2682        ,SOURCE_ID
2683        ,SOURCE_TABLE
2684        ,LINE_ID
2685        ,TAX_CODE_ID
2686        ,LOCATION_SEGMENT_ID
2687        ,BASE_CURRENCY_CODE
2688        ,EXCHANGE_RATE_TYPE
2689        ,EXCHANGE_RATE
2690        ,EXCHANGE_DATE
2691        ,ACCTD_AMOUNT
2692        ,TAXABLE_ACCTD_AMOUNT
2693        ,ORG_ID
2694        ,HEADER_TABLE_ID
2695        ,POSTING_ENTITY
2696        ,CASH_RECEIPT_ID
2697        ,CUSTOMER_TRX_ID
2698        ,CUSTOMER_TRX_LINE_ID
2699        ,CUST_TRX_LINE_GL_DIST_ID
2700        ,CUST_TRX_LINE_SALESREP_ID
2701        ,INVENTORY_ITEM_ID
2702        ,SALES_TAX_ID
2703        ,SO_ORGANIZATION_ID
2704        ,TAX_EXEMPTION_ID
2705        ,UOM_CODE
2706        ,WAREHOUSE_ID
2707        ,AGREEMENT_ID
2708        ,CUSTOMER_BANK_ACCT_ID
2709        ,DRAWEE_BANK_ACCOUNT_ID
2710        ,REMITTANCE_BANK_ACCT_ID
2711        ,DISTRIBUTION_SET_ID
2712        ,PAYMENT_SCHEDULE_ID
2713        ,RECEIPT_METHOD_ID
2714        ,RECEIVABLES_TRX_ID
2715        ,ED_ADJ_RECEIVABLES_TRX_ID
2716        ,UNED_RECEIVABLES_TRX_ID
2717        ,SET_OF_BOOKS_ID
2718        ,SALESREP_ID
2719        ,BILL_SITE_USE_ID
2720        ,DRAWEE_SITE_USE_ID
2721        ,PAYING_SITE_USE_ID
2722        ,SOLD_SITE_USE_ID
2723        ,SHIP_SITE_USE_ID
2724        ,RECEIPT_CUSTOMER_SITE_USE_ID
2725        ,BILL_CUST_ROLE_ID
2726        ,DRAWEE_CUST_ROLE_ID
2727        ,SHIP_CUST_ROLE_ID
2728        ,SOLD_CUST_ROLE_ID
2729        ,BILL_CUSTOMER_ID
2730        ,DRAWEE_CUSTOMER_ID
2731        ,PAYING_CUSTOMER_ID
2732        ,SOLD_CUSTOMER_ID
2733        ,SHIP_CUSTOMER_ID
2734        ,REMIT_ADDRESS_ID
2735        ,RECEIPT_BATCH_ID
2736        ,RECEIVABLE_APPLICATION_ID
2737        ,CUSTOMER_BANK_BRANCH_ID
2738        ,ISSUER_BANK_BRANCH_ID
2739        ,BATCH_SOURCE_ID
2740        ,BATCH_ID
2741        ,TERM_ID
2742        ,SELECT_FLAG
2743        ,LEVEL_FLAG
2744        ,FROM_TO_FLAG
2745        ,PAIRED_CCID
2746        ,PAIRE_DIST_ID
2747        --{BUG#4356088
2748        ,event_type_code
2749        ,event_class_code
2750        ,entity_code
2751        --BUG#4645389
2752        ,tax_line_id
2753        --}
2754          ,MFAR_ADDITIONAL_ENTRY
2755        )
2756        SELECT /*+LEADING(gt) USE_NL(gt,gld)*/
2757            gt.event_id,                   -- EVENT_ID
2758            -1 * gld.cust_trx_line_gl_dist_id,    --LINE_NUMBER
2759                                                  -- As in the case application are extracted along with the
2760                                                  -- transaction distributions the line number should be
2761                                                  -- unique without a event. For lines extracted from application
2762                                                  -- the line number is set by using the ard.line_id
2763                                                  -- and transaction by using the ctlgd.cust_trx_line_gl_dist_id
2764                                                  -- to avoid the same id to be extracted with in the same event
2765                                                  -- ids coming from ctlgd will be negative
2766            '',                              --LANGUAGE
2767            sob.set_of_books_id,             --LEDGER_ID
2768            '',                               -- SOURCE_ID
2769            '',                               -- SOURCE_TABLE
2770            '',                               -- LINE_ID
2771            li.vat_tax_id,                    -- TAX_CODE_ID
2772            li.location_segment_id,           -- LOCATION_SEGMENT_ID
2773            sob.currency_code,                -- BASE_CURRENCY
2774            hd.exchange_rate_type,            -- EXCHANGE_RATE_TYPE
2775            hd.exchange_rate,                 -- EXCHANGE_RATE
2776            DECODE(hd.previous_customer_trx_id, NULL, hd.exchange_date, (select trx_date from ra_customer_trx_all where customer_trx_id = hd.previous_customer_trx_id) ),  -- EXCHANGE_DATE
2777            gld.acctd_amount,                 -- ACCTD_AMOUNT
2778            '',                               -- TAXABLE_ACCTD_AMOUNT
2779            gld.org_id,                       -- ORG_ID
2780            gld.customer_trx_id,              -- HEADER_ID
2781            'CTLGD',                          -- POSTING_ENTITY
2782            '',                               -- CASH_RECEIPT_ID
2783            hd.customer_trx_id,               -- CUSTOMER_TRX_ID
2784            li.customer_trx_line_id,          -- CUSTOMER_TRX_LINE_ID
2785            gld.cust_trx_line_gl_dist_id,     -- CUST_TRX_LINE_GL_DIST_ID
2786            gld.cust_trx_line_salesrep_id,    -- CUST_TRX_LINE_SALESREP_ID
2787            li.inventory_item_id,             -- INVENTORY_ITEM_ID
2788            li.sales_tax_id,                  -- SALES_TAX_ID
2789            osp.master_organization_id,       -- SO_ORGANIZATION_ID
2790            li.tax_exemption_id,              -- TAX_EXEMPTION_ID
2791            li.uom_code,                      -- UOM_CODE
2792            li.warehouse_id,                  -- WAREHOUSE_ID
2793            '',                               -- AGREEMENT_ID
2794            '',                               -- CUSTOMER_BANK_ACCT_ID
2795            '',                               -- DRAWEE_BANK_ACCOUNT_ID
2796            '',                               -- REMITTANCE_BANK_ACCT_ID
2797            '',                               -- DISTRIBUTION_SET_ID
2798            '',                               -- PAYMENT_SCHEDULE_ID
2799            '',                               -- RECEIPT_METHOD_ID
2800            '',                               -- RECEIVABLES_TRX_ID
2801            '',                               -- ED_ADJ_RECEIVABLES_TRX_ID
2802            '',                               -- UNED_RECEIVABLES_TRX_ID
2803            '',                               -- SET_OF_BOOKS_ID
2804            '',                               -- SALESREP_ID
2805            '',                               -- BILL_SITE_USE_ID
2806            '',                               -- DRAWEE_SITE_USE_ID
2807            '',                               -- PAYING_SITE_USE_ID
2808            '',                               -- SOLD_SITE_USE_ID
2809            '',                               -- SHIP_SITE_USE_ID
2810            '',                               -- RECEIPT_CUSTOMER_SITE_USE_ID
2811            '',                               -- BILL_CUST_ROLE_ID
2812            '',                               -- DRAWEE_CUST_ROLE_ID
2813            '',                               -- SHIP_CUST_ROLE_ID
2814            '',                               -- SOLD_CUST_ROLE_ID
2815            '',                               -- BILL_CUSTOMER_ID
2816            '',                               -- DRAWEE_CUSTOMER_ID
2817            '',                               -- PAYING_CUSTOMER_ID
2818            '',                               -- SOLD_CUSTOMER_ID
2819            '',                               -- SHIP_CUSTOMER_ID
2820            '',                               -- REMIT_ADDRESS_ID
2821            '',                               -- RECEIPT_BATCH_ID
2822            '',                               -- RECEIVABLE_APPLICATION_ID
2823            '',                               -- CUSTOMER_BANK_BRANCH_ID
2824            '',                               -- ISSUER_BANK_BRANCH_ID
2825            '',                               -- BATCH_SOURCE_ID
2826            '',                               -- BATCH_ID
2827            '',                               -- TERM_ID
2828            'N',                              -- SELECT_FLAG -- This flag set to Y is probably ok
2829                                                             -- but as it is only used for
2830                                                             -- single document with application
2831                                                             -- driving by ctlgd, no shared views
2832                                                             -- should access to it
2833                                                             -- if we set this flag to Y still
2834                                                             -- it should not be a problem as the
2835                                                             -- line number will filter it out for
2836                                                             -- to be a source for a specific line
2837            'L',                              -- LEVEL_FLAG
2838            '' ,                              -- FROM_TO_FLAG
2839            NULL,       -- PAIRED_CCID
2840            NULL        -- PAIRE_DIST_ID
2841          --{BUG#4356088
2842          ,gt.event_type_code
2843          ,gt.event_class_code
2844          ,gt.entity_code
2845          --BUG#4645389
2846          ,li.tax_line_id       --tax_line_id
2847          ,'N'                    --MFAR_ADDITIONAL_ENTRY
2848          --}
2849       FROM xla_events_gt                      gt,
2850            ra_cust_trx_line_gl_dist_all       gld,
2851            ra_customer_trx_lines_all          li,
2852            ra_customer_trx_all                hd,
2853            gl_sets_of_books                   sob,
2854            oe_system_parameters_all           osp
2855      WHERE gt.event_type_code IN ('INV_CREATE'     , 'INV_UPDATE'     ,
2856                                      'CM_CREATE'      , 'CM_UPDATE'      ,
2857                                      'DM_CREATE'      , 'DM_UPDATE'      ,
2858                                      'DEP_CREATE'     , 'DEP_UPDATE' ,
2859                                      'GUAR_CREATE'    , 'GUAR_UPDATE'    ,
2860                                      'CB_CREATE'      ) --BUG#3419926
2861        AND gt.application_id        = p_application_id
2862        AND gld.event_id             = gt.event_id
2863        AND hd.customer_trx_id       = gt.source_id_int_1        --BUG#5517976
2864 	   AND gld.customer_trx_line_id = li.customer_trx_line_id(+)
2865        AND gld.customer_trx_id      = hd.customer_trx_id
2866        AND gld.set_of_books_id      = sob.set_of_books_id
2867        AND gld.org_id               = osp.org_id(+)
2868        AND gld.account_set_flag     = 'N';
2869    local_log(procedure_name => 'load_line_data_ctlgd',
2870              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_line_data_ctlgd()-');
2871 EXCEPTION
2872 --  WHEN NO_DATA_FOUND THEN NULL;
2873   WHEN OTHERS THEN
2874    local_log(procedure_name => 'load_line_data_ctlgd',
2875              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_line_data_ctlgd '||
2876                                arp_global.CRLF ||'Error      :'|| SQLERRM);
2877     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
2878     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
2879          'Procedure :arp_xla_extract_main_pkg.load_line_data_ctlgd'|| arp_global.CRLF||
2880          'Error     :'||SQLERRM);
2881     FND_MSG_PUB.ADD;
2882   RAISE;
2883 END load_line_data_ctlgd;
2884 
2885 ---------------------------------------------------------------------
2886 
2887 /*-----------------------------------------------------------------+
2888  | Procedure Name : load_line_data_adj                             |
2889  | Description    : Extract line data for adjustment events        |
2890  +-----------------------------------------------------------------+
2891  | History        :                                                |
2892  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
2893  +-----------------------------------------------------------------*/
2894 PROCEDURE load_line_data_adj(p_application_id  IN NUMBER DEFAULT 222)
2895 IS
2896 BEGIN
2897    local_log(procedure_name => 'load_line_data_adj',
2898              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_line_data_adj()+');
2899 
2900       -- Insert line level data in Line GT with
2901       -- selected_flag = N
2902       -- level_flag    = L
2903       INSERT INTO ar_xla_lines_extract (
2904         EVENT_ID
2905        ,LINE_NUMBER
2906        ,LANGUAGE
2907        ,LEDGER_ID
2908        ,SOURCE_ID
2909        ,SOURCE_TABLE
2910        ,LINE_ID
2911        ,TAX_CODE_ID
2912        ,LOCATION_SEGMENT_ID
2913        ,BASE_CURRENCY_CODE
2914        ,EXCHANGE_RATE_TYPE
2915        ,EXCHANGE_RATE
2916        ,EXCHANGE_DATE
2917        ,ACCTD_AMOUNT
2918        ,TAXABLE_ACCTD_AMOUNT
2919        ,ORG_ID
2920        ,HEADER_TABLE_ID
2921        ,POSTING_ENTITY
2922        ,CASH_RECEIPT_ID
2923        ,CUSTOMER_TRX_ID
2924        ,CUSTOMER_TRX_LINE_ID
2925        ,CUST_TRX_LINE_GL_DIST_ID
2926        ,CUST_TRX_LINE_SALESREP_ID
2927        ,INVENTORY_ITEM_ID
2928        ,SALES_TAX_ID
2929        ,SO_ORGANIZATION_ID
2930        ,TAX_EXEMPTION_ID
2931        ,UOM_CODE
2932        ,WAREHOUSE_ID
2933        ,AGREEMENT_ID
2934        ,CUSTOMER_BANK_ACCT_ID
2935        ,DRAWEE_BANK_ACCOUNT_ID
2936        ,REMITTANCE_BANK_ACCT_ID
2937        ,DISTRIBUTION_SET_ID
2938        ,PAYMENT_SCHEDULE_ID
2939        ,RECEIPT_METHOD_ID
2940        ,RECEIVABLES_TRX_ID
2941        ,ED_ADJ_RECEIVABLES_TRX_ID
2942        ,UNED_RECEIVABLES_TRX_ID
2943        ,SET_OF_BOOKS_ID
2944        ,SALESREP_ID
2945        ,BILL_SITE_USE_ID
2946        ,DRAWEE_SITE_USE_ID
2947        ,PAYING_SITE_USE_ID
2948        ,SOLD_SITE_USE_ID
2949        ,SHIP_SITE_USE_ID
2950        ,RECEIPT_CUSTOMER_SITE_USE_ID
2951        ,BILL_CUST_ROLE_ID
2952        ,DRAWEE_CUST_ROLE_ID
2953        ,SHIP_CUST_ROLE_ID
2954        ,SOLD_CUST_ROLE_ID
2955        ,BILL_CUSTOMER_ID
2956        ,DRAWEE_CUSTOMER_ID
2957        ,PAYING_CUSTOMER_ID
2958        ,SOLD_CUSTOMER_ID
2959        ,SHIP_CUSTOMER_ID
2960        ,REMIT_ADDRESS_ID
2961        ,RECEIPT_BATCH_ID
2962        ,RECEIVABLE_APPLICATION_ID
2963        ,CUSTOMER_BANK_BRANCH_ID
2964        ,ISSUER_BANK_BRANCH_ID
2965        ,BATCH_SOURCE_ID
2966        ,BATCH_ID
2967        ,TERM_ID
2968        ,SELECT_FLAG
2969        ,LEVEL_FLAG
2970        ,FROM_TO_FLAG
2971        ,AMOUNT
2972        ,PAIRED_CCID
2973        --{BUG#4356088
2974        ,event_type_code
2975        ,event_class_code
2976        ,entity_code
2977        --BUG#4645389
2978        ,tax_line_id
2979          ,MFAR_ADDITIONAL_ENTRY
2980          ,ADDITIONAL_CHAR2
2981        --}
2982        )
2983         SELECT /*+LEADING(gt) USE_NL(gt,adj)*/
2984            gt.event_id,                      -- EVENT_ID
2985            dist.line_id,                     -- LINE_NUMBER
2986            '',                               -- LANGUAGE
2987            sob.set_of_books_id,              -- LEDGER_ID
2988            dist.source_id,                   -- SOURCE_ID
2989            dist.source_table,                -- SOURCE_TABLE
2990            dist.line_id,                     -- LINE_ID
2991            dist.tax_code_id,                 -- TAX_CODE_ID
2992            dist.location_segment_id,         -- LOCATION_SEGMENT_ID
2993            sob.currency_code,                -- BASE_CURRENCY
2994            trxt.exchange_rate_type,          -- EXCHANGE_RATE_TYPE
2995            trxt.exchange_rate,               -- EXCHANGE_RATE
2996            trxt.exchange_date,               -- EXCHANGE_DATE
2997            NVL(dist.acctd_amount_cr,0)-
2998                 NVL(dist.acctd_amount_dr,0), -- ACCTD_AMOUNT
2999            NVL(dist.taxable_accounted_cr,0) -
3000                 NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
3001            adj.org_id,                       -- ORG_ID
3002            adj.adjustment_id,                -- HEADER_ID
3003            'ADJ',                            -- POSTING_ENTITY
3004            adj.associated_cash_receipt_id,   -- CASH_RECEIPT_ID
3005            adj.customer_trx_id,              -- CUSTOMER_TRX_ID
3006            tlt.customer_trx_line_id,         -- CUSTOMER_TRX_LINE_ID
3007            gldt.cust_trx_line_gl_dist_id,    -- CUST_TRX_LINE_GL_DIST_ID
3008            gldt.cust_trx_line_salesrep_id,   -- CUST_TRX_LINE_SALESREP_ID
3009            tlt.inventory_item_id,            -- INVENTORY_ITEM_ID
3010            tlt.sales_tax_id,                 -- SALES_TAX_ID
3011            osp.master_organization_id,       -- SO_ORGANIZATION_ID
3012            tlt.tax_exemption_id,             -- TAX_EXEMPTION_ID
3013            tlt.uom_code,                     -- UOM_CODE
3014            tlt.warehouse_id,                 -- WAREHOUSE_ID
3015            trxt.agreement_id ,               -- AGREEMENT_ID
3016            '',                               -- CUSTOMER_BANK_ACCT_ID
3017            '',                               -- DRAWEE_BANK_ACCOUNT_ID
3018            '',                               -- REMITTANCE_BANK_ACCT_ID
3019            '',                               -- DISTRIBUTION_SET_ID
3020            '',                               -- PAYMENT_SCHEDULE_ID
3021            '',                               -- RECEIPT_METHOD_ID
3022            '',                               -- RECEIVABLES_TRX_ID
3023            '',                               -- ED_ADJ_RECEIVABLES_TRX_ID
3024            '',                               -- UNED_RECEIVABLES_TRX_ID
3025            '',                               -- SET_OF_BOOKS_ID
3026            '',                               -- SALESREP_ID
3027            '',                               -- BILL_SITE_USE_ID
3028            '',                               -- DRAWEE_SITE_USE_ID
3029            '',                               -- PAYING_SITE_USE_ID
3030            '',                               -- SOLD_SITE_USE_ID
3031            '',                               -- SHIP_SITE_USE_ID
3032            '',                               -- RECEIPT_CUSTOMER_SITE_USE_ID
3033            '',                               -- BILL_CUST_ROLE_ID
3034            '',                               -- DRAWEE_CUST_ROLE_ID
3035            '',                               -- SHIP_CUST_ROLE_ID
3036            '',                               -- SOLD_CUST_ROLE_ID
3037            '',                               -- BILL_CUSTOMER_ID
3038            '',                               -- DRAWEE_CUSTOMER_ID
3039            '',                               -- PAYING_CUSTOMER_ID
3040            '',                               -- SOLD_CUSTOMER_ID
3041            '',                               -- SHIP_CUSTOMER_ID
3042            '',                               -- REMIT_ADDRESS_ID
3043            '',                               -- RECEIPT_BATCH_ID
3044            '',                               -- RECEIVABLE_APPLICATION_ID
3045            '',                               -- CUSTOMER_BANK_BRANCH_ID
3046            '',                               -- ISSUER_BANK_BRANCH_ID
3047            '',                               -- BATCH_SOURCE_ID
3048            '',                               -- BATCH_ID
3049            '',                               -- TERM_ID
3050            'N',                              -- SELECT_FLAG
3051            'L',                              -- LEVEL_FLAG
3052            '',                               -- FROM_TO_FLAG
3053            NVL(dist.amount_cr,0)
3054              -NVL(dist.amount_dr,0),         -- AMOUNT
3055            NULL       -- PAIRED_CCID
3056          --{BUG#4356088
3057          ,gt.event_type_code
3058          ,gt.event_class_code
3059          ,gt.entity_code
3060          --BUG#4645389
3061          ,tlt.tax_line_id       --tax_line_id
3062          ,'N'                    --MFAR_ADDITIONAL_ENTRY
3063          ,decode(trxt.upgrade_method,'R12_11ICASH','N','')
3064          --}
3065       FROM xla_events_gt                  gt,
3066            ar_distributions_all           dist,
3067            ar_adjustments_all             adj,
3068            gl_sets_of_books               sob,
3069            ra_customer_trx_all            trxt,
3070            ra_customer_trx_lines_all      tlt,
3071            ra_cust_trx_line_gl_dist_all   gldt,
3072            oe_system_parameters_all       osp
3073      WHERE gt.event_type_code             = 'ADJ_CREATE'
3074        AND gt.application_id              = p_application_id
3075 	   AND adj.event_id                   = gt.event_id
3076        AND adj.customer_trx_id            = trxt.customer_trx_id
3077        AND dist.source_table              = 'ADJ'
3078        AND dist.source_id                 = adj.adjustment_id
3079 --{Pass adj distribution for the REC
3080 --       AND dist.source_type              <> 'REC'
3081 --}
3082 -- Need to add PSA upgrade impact
3083        AND DECODE(adj.upgrade_method,
3084                     '11IMFAR',DECODE(dist.source_table_secondary,'UPMFAJMIAR','Y','N'),
3085                     'Y')                  = 'Y'
3086        AND dist.ref_customer_trx_line_id  = tlt.customer_trx_line_id(+)
3087        AND dist.ref_cust_trx_line_gl_dist_id = gldt.cust_trx_line_gl_dist_id(+)
3088        AND adj.set_of_books_id            = sob.set_of_books_id
3089        AND adj.org_id                     = osp.org_id(+);
3090    local_log(procedure_name => 'load_line_data_adj',
3091              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_line_data_adj()-');
3092 EXCEPTION
3093 --  WHEN NO_DATA_FOUND THEN NULL;
3094   WHEN OTHERS THEN
3095    local_log(procedure_name => 'load_line_data_adj',
3096              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_line_data_adj '||
3097                                arp_global.CRLF ||'Error      :'|| SQLERRM);
3098     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
3099     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
3100          'Procedure :arp_xla_extract_main_pkg.load_line_data_adj'|| arp_global.CRLF||
3101          'Error     :'||SQLERRM);
3102     FND_MSG_PUB.ADD;
3103   RAISE;
3104 END load_line_data_adj;
3105 
3106 --------------------------------------------------------
3107 
3108 
3109 /*-----------------------------------------------------------------+
3110  | Procedure Name : load_line_data_app_to_trx                      |
3111  | Description    : Extract the to application line attached to    |
3112  |                  the applied to transaction event               |
3113  +-----------------------------------------------------------------+
3114  | History        :                                                |
3115  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
3116  +-----------------------------------------------------------------*/
3117 PROCEDURE load_line_data_app_to_trx(p_application_id  IN NUMBER DEFAULT 222)
3118 IS
3119 BEGIN
3120    local_log(procedure_name => 'load_line_data_app_to_trx',
3121              p_msg_text     => 'arp_xla_extract_main_pkg.load_line_data_app_to_trx ()+');
3122     -- Insert line level data in Line GT with
3123     -- selected_flag = Y
3124     -- level_flag    = L
3125     -- from_to_flag  = T
3126     INSERT INTO ar_xla_lines_extract (
3127         EVENT_ID
3128        ,LINE_NUMBER
3129        ,LANGUAGE
3130        ,LEDGER_ID
3131        ,SOURCE_ID
3132        ,SOURCE_TABLE
3133        ,LINE_ID
3134        ,TAX_CODE_ID
3135        ,LOCATION_SEGMENT_ID
3136        ,BASE_CURRENCY_CODE
3137        ,EXCHANGE_RATE_TYPE
3138        ,EXCHANGE_RATE
3139        ,EXCHANGE_DATE
3140        ,ACCTD_AMOUNT
3141        ,TAXABLE_ACCTD_AMOUNT
3142        ,ORG_ID
3143        ,HEADER_TABLE_ID
3144        ,POSTING_ENTITY
3145        ,CASH_RECEIPT_ID
3146        ,CUSTOMER_TRX_ID
3147        ,CUSTOMER_TRX_LINE_ID
3148        ,CUST_TRX_LINE_GL_DIST_ID
3149        ,CUST_TRX_LINE_SALESREP_ID
3150        ,INVENTORY_ITEM_ID
3151        ,SALES_TAX_ID
3152        ,SO_ORGANIZATION_ID
3153        ,TAX_EXEMPTION_ID
3154        ,UOM_CODE
3155        ,WAREHOUSE_ID
3156        ,AGREEMENT_ID
3157        ,CUSTOMER_BANK_ACCT_ID
3158        ,DRAWEE_BANK_ACCOUNT_ID
3159        ,REMITTANCE_BANK_ACCT_ID
3160        ,DISTRIBUTION_SET_ID
3161        ,PAYMENT_SCHEDULE_ID
3162        ,RECEIPT_METHOD_ID
3163        ,RECEIVABLES_TRX_ID
3164        ,ED_ADJ_RECEIVABLES_TRX_ID
3165        ,UNED_RECEIVABLES_TRX_ID
3166        ,SET_OF_BOOKS_ID
3167        ,SALESREP_ID
3168        ,BILL_SITE_USE_ID
3169        ,DRAWEE_SITE_USE_ID
3170        ,PAYING_SITE_USE_ID
3171        ,SOLD_SITE_USE_ID
3172        ,SHIP_SITE_USE_ID
3173        ,RECEIPT_CUSTOMER_SITE_USE_ID
3174        ,BILL_CUST_ROLE_ID
3175        ,DRAWEE_CUST_ROLE_ID
3176        ,SHIP_CUST_ROLE_ID
3177        ,SOLD_CUST_ROLE_ID
3178        ,BILL_CUSTOMER_ID
3179        ,DRAWEE_CUSTOMER_ID
3180        ,PAYING_CUSTOMER_ID
3181        ,SOLD_CUSTOMER_ID
3182        ,SHIP_CUSTOMER_ID
3183        ,REMIT_ADDRESS_ID
3184        ,RECEIPT_BATCH_ID
3185        ,RECEIVABLE_APPLICATION_ID
3186        ,CUSTOMER_BANK_BRANCH_ID
3187        ,ISSUER_BANK_BRANCH_ID
3188        ,BATCH_SOURCE_ID
3189        ,BATCH_ID
3190        ,TERM_ID
3191        ,SELECT_FLAG
3192        ,LEVEL_FLAG
3193        ,FROM_TO_FLAG
3194        ,FROM_AMOUNT
3195        ,AMOUNT
3196        ,FROM_ACCTD_AMOUNT
3197        --{BUG#4356088
3198        ,event_type_code
3199        ,event_class_code
3200        ,entity_code
3201        --BUG#4645389
3202        ,tax_line_id
3203        --BUG#5366837
3204        ,additional_char1
3205          ,MFAR_ADDITIONAL_ENTRY
3206          ,SOURCE_TYPE
3207          ,CM_APP_TO_TRX_LINE_ID
3208          ,BAL_SEG_VALUE
3209          ,ADDITIONAL_CHAR2
3210        )
3211         SELECT /*+LEADING(gt) cardinality(gt,1) USE_NL(gt, app)*/
3212            gt.event_id,                      -- EVENT_ID
3213            dist.line_id,                     -- LINE_NUMBER
3214            '',                               -- LANGUAGE
3215            sob.set_of_books_id,              -- LEDGER_ID
3216            dist.source_id,                   -- SOURCE_ID
3217            dist.source_table,                -- SOURCE_TABLE
3218            dist.line_id,                     -- LINE_ID
3219            dist.tax_code_id,                 -- TAX_CODE_ID
3220            dist.location_segment_id,         -- LOCATION_SEGMENT_ID
3221            sob.currency_code,                -- BASE_CURRENCY
3222            trxt.exchange_rate_type,          -- EXCHANGE_RATE_TYPE
3223            trxt.exchange_rate,               -- EXCHANGE_RATE
3224            -- bug 7535858 Default Exch Date as Trx Date for Base Currency Line for ALC Calculation
3225            decode(trxt.invoice_currency_code,sob.currency_code,
3226                     trxt.trx_date, trxt.exchange_date),         -- EXCHANGE_DATE
3227            -- trxt.exchange_date,               -- EXCHANGE_DATE
3228            NVL(dist.acctd_amount_cr,0) -
3229                 NVL(dist.acctd_amount_dr,0),      -- ACCTD_AMOUNT
3230            NVL(dist.taxable_accounted_cr,0) -
3231                 NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
3232            app.org_id,                       -- ORG_ID
3233            app.receivable_application_id,    -- HEADER_TABLE_ID
3234            'APP',                            -- POSTING_ENTITY
3235            NULL,                             -- CASH_RECEIPT_ID
3236            trxt.customer_trx_id,             -- CUSTOMER_TRX_ID
3237            tlt.customer_trx_line_id,         -- CUSTOMER_TRX_LINE_ID
3238            gldt.cust_trx_line_gl_dist_id,    -- CUST_TRX_LINE_GL_DIST_ID
3239            gldt.cust_trx_line_salesrep_id,   --  CUST_TRX_LINE_SALESREP_ID
3240            tlt.inventory_item_id,            -- INVENTORY_ITEM_ID
3241            tlt.sales_tax_id,                 -- SALES_TAX_ID
3242            osp.master_organization_id,       -- SO_ORGANIZATION_ID
3243            tlt.tax_exemption_id,             -- TAX_EXEMPTION_ID
3244            tlt.uom_code,                     -- UOM_CODE
3245            tlt.warehouse_id,                 -- WAREHOUSE_ID
3246            trxt.agreement_id,                -- AGREEMENT_ID
3247            trxt.customer_bank_account_id,    -- CUSTOMER_BANK_ACCT_ID
3248            trxt.drawee_bank_account_id,      -- DRAWEE_BANK_ACCOUNT_ID
3249            trxt.remit_bank_acct_use_id,  -- REMITTANCE_BANK_ACCT_ID
3250            NULL,                             -- DISTRIBUTION_SET_ID
3251            psch.payment_schedule_id,         -- PAYMENT_SCHEDULE_ID
3252            trxt.receipt_method_id,           -- RECEIPT_METHOD_ID
3253            NULL,                             -- RECEIVABLES_TRX_ID
3254            arp_xla_extract_main_pkg.ed_uned_trx('EDISC',app.org_id),       -- ED_ADJ_RECEIVABLES_TRX_ID
3255            arp_xla_extract_main_pkg.ed_uned_trx('UNEDISC',app.org_id),     -- UNED_RECEIVABLES_TRX_ID
3256            trxt.set_of_books_id,             -- SET_OF_BOOKS_ID
3257            trxt.primary_salesrep_id,         -- SALESREP_ID
3258            trxt.bill_to_site_use_id,         -- BILL_SITE_USE_ID
3259            trxt.drawee_site_use_id,          -- DRAWEE_SITE_USE_ID
3260            trxt.paying_site_use_id,          -- PAYING_SITE_USE_ID
3261            trxt.sold_to_site_use_id,         -- SOLD_SITE_USE_ID
3262            trxt.ship_to_site_use_id,         -- SHIP_SITE_USE_ID
3263            NULL,                             -- RECEIPT_CUSTOMER_SITE_USE_ID
3264            trxt.bill_to_contact_id,          -- BILL_CUST_ROLE_ID
3265            trxt.drawee_contact_id,           -- DRAWEE_CUST_ROLE_ID
3266            trxt.ship_to_contact_id,          -- SHIP_CUST_ROLE_ID
3267            trxt.sold_to_contact_id,          -- SOLD_CUST_ROLE_ID
3268            trxt.bill_to_customer_id,         -- BILL_CUSTOMER_ID
3269            trxt.drawee_id,                   -- DRAWEE_CUSTOMER_ID
3270            trxt.paying_customer_id,          -- PAYING_CUSTOMER_ID
3271            trxt.sold_to_customer_id,         -- SOLD_CUSTOMER_ID
3272            trxt.ship_to_customer_id,         -- SHIP_CUSTOMER_ID
3273            trxt.remit_to_address_id,         -- REMIT_ADDRESS_ID
3274            NULL,                             -- RECEIPT_BATCH_ID
3275            NULL,                             -- RECEIVABLE_APPLICATION_ID
3276            NULL,                             -- CUSTOMER_BANK_BRANCH_ID
3277            NULL,                             -- ISSUER_BANK_BRANCH_ID
3278            trxt.batch_source_id,             -- BATCH_SOURCE_ID
3279            trxt.batch_id,                    -- BATCH_ID
3280            trxt.term_id,                     -- TERM_ID
3281            'Y',                              -- SELECT_FLAG
3282            'L',                              -- LEVEL_FLAG
3283            'T',                              -- FROM_TO_FLAG
3284 --           NVL(dist.from_amount_cr,0)
3285 --             -NVL(dist.from_amount_dr,0),    -- FROM_AMOUNT,
3286         CASE WHEN (app.upgrade_method IS NULL  AND app.status ='APP') THEN
3287            CASE WHEN (dist.from_amount_dr IS NOT NULL OR dist.from_amount_cr IS NOT NULL) THEN
3288               NVL(dist.from_amount_cr,0)-NVL(dist.from_amount_dr,0)
3289            ELSE
3290              CASE WHEN (dist.source_type NOT IN ('REC','EDISC','UNEDISC')) THEN
3291                 NULL
3292              ELSE
3293                CASE WHEN (app.earned_discount_taken IS NOT NULL AND
3294                     app.earned_discount_taken = NVL(dist.amount_dr,0)-NVL(dist.amount_cr,0) AND
3295                     app.acctd_earned_discount_taken = NVL(dist.acctd_amount_dr,0)-NVL(dist.acctd_amount_cr,0)
3296                     AND dist.source_type = 'REC') THEN
3297                    NULL
3298                ELSE
3299                  CASE WHEN (trxt.invoice_currency_code = cr.currency_code) THEN
3300                     NVL(dist.amount_cr,0)-NVL(dist.amount_dr,0)
3301                  ELSE
3302                    CASE WHEN (app.amount_applied <> 0 AND app.amount_applied_from <> 0) THEN
3303                      NVL(app.amount_applied_from / app.amount_applied * dist.amount_cr,0)-
3304                      NVL(app.amount_applied_from / app.amount_applied * dist.amount_dr,0)
3305                     ELSE  NULL END
3306                  END
3307                END
3308              END
3309            END
3310         ELSE
3311            NVL(dist.from_amount_cr,0)
3312              -NVL(dist.from_amount_dr,0)
3313         END,                     -- FROM_AMOUNT
3314            NVL(dist.amount_cr,0) - NVL(dist.amount_dr,0),          -- AMOUNT
3315 --           NVL(dist.from_acctd_amount_cr,0)
3316 --             -NVL(dist.from_acctd_amount_dr,0) -- FROM_ACCTD_AMOUNT
3317         CASE WHEN (app.upgrade_method IS NULL AND app.status ='APP') THEN
3318            CASE WHEN (dist.from_acctd_amount_dr IS NOT NULL OR dist.from_acctd_amount_cr IS NOT NULL) THEN
3319               NVL(dist.from_acctd_amount_cr,0)-NVL(dist.from_acctd_amount_dr,0)
3320            ELSE
3321              CASE WHEN (dist.source_type NOT IN ('REC','EDISC','UNEDISC')) THEN
3322                 NULL
3323              ELSE
3324                CASE WHEN (app.earned_discount_taken IS NOT NULL AND
3325                     app.earned_discount_taken = NVL(dist.amount_dr,0)-NVL(dist.amount_cr,0) AND
3326                     app.acctd_earned_discount_taken = NVL(dist.acctd_amount_dr,0)-NVL(dist.acctd_amount_cr,0)
3327                     AND dist.source_type = 'REC') THEN
3328                    NULL
3329                ELSE
3330                  CASE WHEN (trxt.invoice_currency_code = sob.currency_code AND
3331                             cr.currency_code          = sob.currency_code ) THEN
3332                     NVL(dist.acctd_amount_cr,0)-NVL(dist.acctd_amount_dr,0)
3333                  ELSE
3334                    CASE WHEN (app.acctd_amount_applied_to <> 0 AND app.acctd_amount_applied_from <> 0) THEN
3335                    NVL(app.acctd_amount_applied_from / app.acctd_amount_applied_to * dist.acctd_amount_cr,0)-
3336                    NVL(app.acctd_amount_applied_from / app.acctd_amount_applied_to * dist.acctd_amount_dr,0)
3337                     ELSE  NULL END
3338                  END
3339                END
3340              END
3341            END
3342         ELSE
3343            NVL(dist.from_acctd_amount_cr,0)
3344              -NVL(dist.from_acctd_amount_dr,0)
3345         END,                     -- FROM_ACCTD_AMOUNT
3346          --{BUG#4356088
3347           gt.event_type_code
3348          ,gt.event_class_code
3349          ,gt.entity_code
3350          --BUG#4645389
3351          ,tlt.tax_line_id       --tax_line_id
3352          --BUG5366837
3353          ,app.upgrade_method
3354          ,'N'                    --MFAR_ADDITIONAL_ENTRY
3355          , NULL
3356          , to_number(NULL)
3357          , NULL
3358          ,decode(trxt.upgrade_method,'R12_11ICASH','N','')
3359       FROM xla_events_gt                  gt,
3360            ar_receivable_applications_all app,
3361            ar_distributions_all           dist,
3362            gl_sets_of_books               sob,
3363            oe_system_parameters_all       osp,
3364            ra_customer_trx_all            trxt,
3365            ra_customer_trx_lines_all      tlt,
3366            ra_cust_trx_line_gl_dist_all   gldt,
3367            ar_payment_schedules_all       psch,
3368            ar_cash_receipts_all           cr
3369      WHERE gt.event_type_code IN (  'RECP_CREATE'      ,'RECP_UPDATE'      ,
3370                                     'RECP_RATE_ADJUST' ) -- Uptake XLA reversal, 'RECP_REVERSE')
3371 -- Exclude 'RECP_REVERSE' for no extract at line level is reuired for Reversal
3372        AND gt.application_id                 = p_application_id
3373        AND gt.event_id                       = app.event_id
3374        AND (app.upgrade_method              IN ('R12_NLB','R12', 'R12_11IMFAR', 'R12_11ICASH','11I_R12_POST','R12_MERGE')
3375             OR (app.upgrade_method IS NULL AND app.status = 'APP')  --11i Accrual
3376 			--Need to add PSA upgrade impact
3377 			OR (DECODE(app.upgrade_method,
3378                        '11I_MFAR_UPG'    ,DECODE(dist.source_table_secondary,'UPMFRAMIAR','Y','N'),
3379                         'N')                  = 'Y'))
3380        AND app.set_of_books_id               = sob.set_of_books_id
3381        AND app.org_id                        = osp.org_id(+)
3382        AND app.applied_customer_trx_id       = trxt.customer_trx_id
3383        --5201086
3384        AND app.cash_receipt_id               = cr.cash_receipt_id
3385        AND dist.source_id                    = app.receivable_application_id
3386        AND dist.source_table                 = 'RA'
3387        AND dist.ref_customer_trx_line_id     = tlt.customer_trx_line_id(+)
3388        AND dist.ref_cust_trx_line_gl_dist_id = gldt.cust_trx_line_gl_dist_id(+)
3389        AND trxt.customer_trx_id              = psch.customer_trx_id
3390        AND NVL(psch.terms_sequence_number,1) = 1
3391 --{Pass also the UNAPP UNID ... everything
3392 --       AND dist.source_type                  IN ('REC','EDISC','UNEDISC')
3393 --}
3394 --}
3395 --       AND dist.activity_bucket                       IS NOT NULL
3396     UNION ALL
3397         SELECT /*+LEADING(gt) cardinality(gt,1) USE_NL(gt, app)*/
3398            gt.event_id,                      -- EVENT_ID
3399            dist.line_id,                     -- LINE_NUMBER
3400            '',                               -- LANGUAGE
3401            sob.set_of_books_id,              -- LEDGER_ID
3402            dist.source_id,                   -- SOURCE_ID
3403            dist.source_table,                -- SOURCE_TABLE
3404            dist.line_id,                     -- LINE_ID
3405            dist.tax_code_id,                 -- TAX_CODE_ID
3406            dist.location_segment_id,         -- LOCATION_SEGMENT_ID
3407            sob.currency_code,                -- BASE_CURRENCY
3408            trxt.exchange_rate_type,          -- EXCHANGE_RATE_TYPE
3409            trxt.exchange_rate,               -- EXCHANGE_RATE
3410            -- bug 9483060 Default Exch Date as Trx Date for Base Currency Line for ALC Calculation
3411            decode(trxt.invoice_currency_code,sob.currency_code,
3412                     trxt.trx_date, trxt.exchange_date),  -- EXCHANGE_DATE
3413            NVL(dist.acctd_amount_cr,0) -
3414                 NVL(dist.acctd_amount_dr,0),      -- ACCTD_AMOUNT
3415            NVL(dist.taxable_accounted_cr,0) -
3416                 NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
3417            app.org_id,                       -- ORG_ID
3418            app.receivable_application_id,    -- HEADER_TABLE_ID
3419            'APP',                            -- POSTING_ENTITY
3420            NULL,                             -- CASH_RECEIPT_ID
3421            trxt.customer_trx_id,             -- CUSTOMER_TRX_ID
3422            tlt.customer_trx_line_id,         -- CUSTOMER_TRX_LINE_ID
3423            gldt.cust_trx_line_gl_dist_id,    -- CUST_TRX_LINE_GL_DIST_ID
3424            gldt.cust_trx_line_salesrep_id,   --  CUST_TRX_LINE_SALESREP_ID
3425            tlt.inventory_item_id,            -- INVENTORY_ITEM_ID
3426            tlt.sales_tax_id,                 -- SALES_TAX_ID
3427            osp.master_organization_id,       -- SO_ORGANIZATION_ID
3428            tlt.tax_exemption_id,             -- TAX_EXEMPTION_ID
3429            tlt.uom_code,                     -- UOM_CODE
3430            tlt.warehouse_id,                 -- WAREHOUSE_ID
3431            trxt.agreement_id,                -- AGREEMENT_ID
3432            trxt.customer_bank_account_id,    -- CUSTOMER_BANK_ACCT_ID
3433            trxt.drawee_bank_account_id,      -- DRAWEE_BANK_ACCOUNT_ID
3434            trxt.remit_bank_acct_use_id,  -- REMITTANCE_BANK_ACCT_ID
3435            NULL,                             -- DISTRIBUTION_SET_ID
3436            psch.payment_schedule_id,         -- PAYMENT_SCHEDULE_ID
3437            trxt.receipt_method_id,           -- RECEIPT_METHOD_ID
3438            NULL,                             -- RECEIVABLES_TRX_ID
3439            NULL,                             -- ED_ADJ_RECEIVABLES_TRX_ID
3440            NULL,                             -- UNED_RECEIVABLES_TRX_ID
3441            trxt.set_of_books_id,             -- SET_OF_BOOKS_ID
3442            trxt.primary_salesrep_id,         -- SALESREP_ID
3443            trxt.bill_to_site_use_id,         -- BILL_SITE_USE_ID
3444            trxt.drawee_site_use_id,          -- DRAWEE_SITE_USE_ID
3445            trxt.paying_site_use_id,          -- PAYING_SITE_USE_ID
3446            trxt.sold_to_site_use_id,         -- SOLD_SITE_USE_ID
3447            trxt.ship_to_site_use_id,         -- SHIP_SITE_USE_ID
3448            NULL,                             -- RECEIPT_CUSTOMER_SITE_USE_ID
3449            trxt.bill_to_contact_id,          -- BILL_CUST_ROLE_ID
3450            trxt.drawee_contact_id,           -- DRAWEE_CUST_ROLE_ID
3451            trxt.ship_to_contact_id,          -- SHIP_CUST_ROLE_ID
3452            trxt.sold_to_contact_id,          -- SOLD_CUST_ROLE_ID
3453            trxt.bill_to_customer_id,         -- BILL_CUSTOMER_ID
3454            trxt.drawee_id,                   -- DRAWEE_CUSTOMER_ID
3455            trxt.paying_customer_id,          -- PAYING_CUSTOMER_ID
3456            trxt.sold_to_customer_id,         -- SOLD_CUSTOMER_ID
3457            trxt.ship_to_customer_id,         -- SHIP_CUSTOMER_ID
3458            trxt.remit_to_address_id,         -- REMIT_ADDRESS_ID
3459            NULL,                             -- RECEIPT_BATCH_ID
3460            NULL,                             -- RECEIVABLE_APPLICATION_ID
3461            NULL,                             -- CUSTOMER_BANK_BRANCH_ID
3462            NULL,                             -- ISSUER_BANK_BRANCH_ID
3463            trxt.batch_source_id,             -- BATCH_SOURCE_ID
3464            trxt.batch_id,                    -- BATCH_ID
3465            trxt.term_id,                     -- TERM_ID
3466            'Y',                              -- SELECT_FLAG
3467            'L',                              -- LEVEL_FLAG
3468            'T',                              -- FROM_TO_FLAG
3469 --           NVL(dist.from_amount_cr,0) -NVL(dist.from_amount_dr,0),    -- FROM_AMOUNT,
3470          CASE WHEN (dist.from_amount_cr IS NULL AND dist.from_amount_dr IS NULL) THEN
3471            NVL(dist.amount_cr,0) - NVL(dist.amount_dr,0)
3472          ELSE
3473            NVL(dist.from_amount_cr,0) - NVL(dist.from_amount_dr,0)
3474          END,                                                     -- FROM_AMOUNT
3475            NVL(dist.amount_cr,0) -NVL(dist.amount_dr,0),          -- AMOUNT
3476 --           NVL(dist.from_acctd_amount_cr,0) -NVL(dist.from_acctd_amount_dr,0) -- FROM_ACCTD_AMOUNT
3477          CASE WHEN (dist.from_acctd_amount_cr IS NULL AND dist.from_acctd_amount_dr IS NULL) THEN
3478            NVL(dist.acctd_amount_cr,0) - NVL(dist.acctd_amount_dr,0)
3479          ELSE
3480            NVL(dist.from_acctd_amount_cr,0) - NVL(dist.from_acctd_amount_dr,0)
3481          END,                                                     -- FROM_ACCTD_MOUNT
3482          --{BUG#4356088
3483           gt.event_type_code
3484          ,gt.event_class_code
3485          ,gt.entity_code
3486          --BUG#4645389
3487          ,tlt.tax_line_id       --tax_line_id
3488          --BUG#5366837
3489          ,app.upgrade_method
3490          ,'N'                    --MFAR_ADDITIONAL_ENTRY
3491          , dist.source_type
3492          ,decode(dist.REF_PREV_CUST_TRX_LINE_ID, NULL, to_number(NULL),dist.ref_customer_trx_line_id)     -- 9860123
3493          ,the_segment_value(sob.chart_of_accounts_id, 'GL_BALANCING', dist.ref_dist_ccid)
3494          ,decode(trxt.upgrade_method,'R12_11ICASH','N','')
3495       FROM xla_events_gt                  gt,
3496            ar_receivable_applications_all app,
3497            ar_distributions_all           dist,
3498            gl_sets_of_books               sob,
3499            oe_system_parameters_all       osp,
3500            ra_customer_trx_all            trxt,
3501            ra_customer_trx_lines_all      tlt,
3502            ra_cust_trx_line_gl_dist_all   gldt,
3503            ar_payment_schedules_all       psch
3504      WHERE gt.event_type_code  IN (  'CM_CREATE','CM_UPDATE' )
3505        AND gt.application_id                 = p_application_id
3506        AND gt.event_id                       = app.event_id
3507        AND (app.upgrade_method IN ('R12_NLB','R12', 'R12_11IMFAR', 'R12_11ICASH','11I_R12_POST','R12_MERGE')
3508             OR (app.upgrade_method IS NULL AND app.status = 'APP')
3509             OR (DECODE(app.upgrade_method,
3510                        '11I_MFAR_UPG'    ,DECODE(dist.source_table_secondary,'UPMFRAMIAR','Y','N'),
3511                         'N')                 = 'Y'))
3512        AND dist.source_table                 = 'RA'
3513        AND dist.source_id                    = app.receivable_application_id
3514        AND app.set_of_books_id               = sob.set_of_books_id
3515        AND app.org_id                        = osp.org_id(+)
3516        AND app.applied_customer_trx_id       = trxt.customer_trx_id
3517        AND dist.ref_customer_trx_line_id     = tlt.customer_trx_line_id(+)
3518        AND dist.ref_cust_trx_line_gl_dist_id = gldt.cust_trx_line_gl_dist_id(+)
3519        AND trxt.customer_trx_id              = psch.customer_trx_id
3520        AND NVL(psch.terms_sequence_number,1) = 1
3521 -- {Pass every distributions REC EDISC UNEDISC UNAPP UNID
3522 --       AND dist.source_type                  IN ('REC','EDISC','UNEDISC')
3523 -- }
3524 --       AND dist.activity_bucket                       IS NOT NULL
3525 /* Bug 6119725 Begin Changes */
3526          AND ((( dist.ref_cust_trx_line_gl_dist_id IS NOT NULL  AND sign(dist.ref_cust_trx_line_gl_dist_id) = 1)
3527                         AND dist.ref_cust_trx_line_gl_dist_id IN (SELECT cust_trx_line_gl_dist_id
3528                                                        FROM ra_cust_trx_line_gl_dist_all ctlgd
3529                                                        WHERE ctlgd.customer_trx_id =  app.applied_customer_trx_id)) -- Select only TO rows which belong to Invoice
3530           OR  (((dist.ref_cust_trx_line_gl_dist_id IS NULL OR sign(dist.ref_cust_trx_line_gl_dist_id) = -1)
3531             AND ((sign((app.amount_applied+nvl(app.earned_discount_taken,0)+nvl(app.unearned_discount_taken,0))) = sign(nvl(dist.amount_cr,0) * -1+nvl(dist.amount_dr,0)) AND dist.source_type = 'DEFERRED_TAX' )
3532                 OR (sign((app.acctd_amount_applied_to+nvl(app.acctd_earned_discount_taken,0)+nvl(app.acctd_unearned_discount_taken,0))) = sign(nvl(dist.acctd_amount_dr,0) * -1+nvl(dist.acctd_amount_cr,0)) AND dist.source_type = 'CURR_ROUND')
3533                 OR
3534                ( (sign((app.amount_applied+nvl(app.earned_discount_taken,0)+nvl(app.unearned_discount_taken,0))) = sign(nvl(dist.amount_dr,0) * -1+nvl(dist.amount_cr,0)) AND dist.source_type not in ('DEFERRED_TAX', 'CURR_ROUND'))
3535                 AND (((sign((app.amount_applied+nvl(app.earned_discount_taken,0)+nvl(app.unearned_discount_taken,0)))*-1) <> 0)
3536                    OR
3537                     ((sign((app.amount_applied+nvl(app.earned_discount_taken,0)+nvl(app.unearned_discount_taken,0)))*-1 = 0)
3538                         AND dist.amount_dr is not null)))))))
3539 /* Bug 6119725 End Changes */
3540 
3541 UNION
3542 --HYUCMACT
3543        SELECT /*+LEADING(gt) cardinality(gt,1) USE_NL(gt, app)*/
3544            gt.event_id,                      -- EVENT_ID
3545            dist.line_id,                     -- LINE_NUMBER
3546            '',                               -- LANGUAGE
3547            sob.set_of_books_id,              -- LEDGER_ID
3548            dist.source_id,                   -- SOURCE_ID
3549            dist.source_table,                -- SOURCE_TABLE
3550            dist.line_id,                     -- LINE_ID
3551            dist.tax_code_id,                 -- TAX_CODE_ID
3552            dist.location_segment_id,         -- LOCATION_SEGMENT_ID
3553            sob.currency_code,                -- BASE_CURRENCY
3554            trx.EXCHANGE_RATE_TYPE,               -- EXCHANGE_RATE_TYPE
3555            trx.EXCHANGE_RATE,               -- EXCHANGE_RATE
3556            trx.EXCHANGE_DATE,               -- EXCHANGE_DATE
3557            NVL(dist.acctd_amount_cr,0) -
3558                 NVL(dist.acctd_amount_dr,0),      -- ACCTD_AMOUNT
3559            NVL(dist.taxable_accounted_cr,0) -
3560                 NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
3561            app.org_id,                       -- ORG_ID
3562            app.receivable_application_id,    -- HEADER_TABLE_ID
3563            'APP',                            -- POSTING_ENTITY
3564            NULL,                             -- CASH_RECEIPT_ID
3565            app.customer_trx_id,              -- CUSTOMER_TRX_ID
3566            NULL,         -- CUSTOMER_TRX_LINE_ID
3567            NULL,         -- CUST_TRX_LINE_GL_DIST_ID
3568            NULL,         --  CUST_TRX_LINE_SALESREP_ID
3569            NULL,         -- INVENTORY_ITEM_ID
3570            NULL,         -- SALES_TAX_ID
3571            NULL,         -- SO_ORGANIZATION_ID
3572            NULL,         -- TAX_EXEMPTION_ID
3573            NULL,         -- UOM_CODE
3574            NULL,         -- WAREHOUSE_ID
3575            NULL,         -- AGREEMENT_ID
3576            NULL,         -- CUSTOMER_BANK_ACCT_ID
3577            NULL,         -- DRAWEE_BANK_ACCOUNT_ID
3578            NULL,         -- REMITTANCE_BANK_ACCT_ID
3579            NULL,         -- DISTRIBUTION_SET_ID
3580            NULL,         -- PAYMENT_SCHEDULE_ID
3581            NULL,         -- RECEIPT_METHOD_ID
3582            app.receivables_trx_id,         -- RECEIVABLES_TRX_ID
3583            NULL,         -- ED_ADJ_RECEIVABLES_TRX_ID
3584            NULL,         -- UNED_RECEIVABLES_TRX_ID
3585            app.set_of_books_id,         -- SET_OF_BOOKS_ID
3586            NULL,         -- SALESREP_ID
3587            trx.BILL_TO_SITE_USE_ID,         -- BILL_SITE_USE_ID
3588            NULL,         -- DRAWEE_SITE_USE_ID
3589            NULL,         -- PAYING_SITE_USE_ID
3590            trx.SOLD_TO_SITE_USE_ID,         -- SOLD_SITE_USE_ID
3591            trx.SHIP_TO_SITE_USE_ID,         -- SHIP_SITE_USE_ID
3592            NULL,         -- RECEIPT_CUSTOMER_SITE_USE_ID
3593            NULL,         -- BILL_CUST_ROLE_ID
3594            NULL,         -- DRAWEE_CUST_ROLE_ID
3595            NULL,         -- SHIP_CUST_ROLE_ID
3596            NULL,         -- SOLD_CUST_ROLE_ID
3597            trx.BILL_TO_CUSTOMER_ID,         -- BILL_CUSTOMER_ID
3598            NULL,         -- DRAWEE_CUSTOMER_ID
3599            NULL,         -- PAYING_CUSTOMER_ID
3600            trx.SOLD_TO_CUSTOMER_ID,         -- SOLD_CUSTOMER_ID
3601            trx.SHIP_TO_CUSTOMER_ID,         -- SHIP_CUSTOMER_ID
3602            NULL,         -- REMIT_ADDRESS_ID
3603            NULL,         -- RECEIPT_BATCH_ID
3604            app.receivable_application_id,    -- RECEIVABLE_APPLICATION_ID
3605            NULL,                             -- CUSTOMER_BANK_BRANCH_ID
3606            NULL,                             -- ISSUER_BANK_BRANCH_ID
3607            NULL,                     -- BATCH_SOURCE_ID
3608            NULL,                     -- BATCH_ID
3609            NULL,                     -- TERM_ID
3610            'Y',                              -- SELECT_FLAG
3611            'L',                              -- LEVEL_FLAG
3612            'T',                              -- FROM_TO_FLAG
3613            NVL(dist.amount_cr,0) - NVL(dist.amount_dr,0),  -- FROM_AMOUNT
3614            NVL(dist.amount_cr,0) -NVL(dist.amount_dr,0),             -- AMOUNT
3615            NVL(dist.acctd_amount_cr,0) - NVL(dist.acctd_amount_dr,0), -- FROM_ACCTD_MOUNT
3616           gt.event_type_code
3617          ,gt.event_class_code
3618          ,gt.entity_code
3619          ,NULL       --tax_line_id
3620          --BUG#5366837
3621          ,app.upgrade_method
3622          ,'N'                    --MFAR_ADDITIONAL_ENTRY
3623          , dist.source_type
3624          , to_number(NULL)
3625          , NULL
3626          , NULL
3627       FROM xla_events_gt                  gt,
3628            ar_receivable_applications_all app,
3629            ar_distributions_all           dist,
3630            gl_sets_of_books               sob,
3631            ra_customer_trx_all            trx
3632      WHERE gt.event_type_code  IN (  'CM_CREATE','CM_UPDATE' )
3633        AND gt.application_id                 = p_application_id
3634        AND gt.event_id                       = app.event_id
3635        AND dist.source_table                 = 'RA'
3636        AND dist.source_id                    = app.receivable_application_id
3637        AND app.status                        = 'ACTIVITY'
3638        AND app.set_of_books_id               = sob.set_of_books_id
3639        AND trx.customer_trx_id               = app.customer_trx_id
3640        AND dist.source_type                  = 'ACTIVITY';
3641 
3642 
3643 
3644 --BUG#5366837 Cash Basis
3645     INSERT INTO ar_xla_lines_extract (
3646         EVENT_ID
3647        ,LINE_NUMBER
3648        ,LANGUAGE
3649        ,LEDGER_ID
3650        ,SOURCE_ID
3651        ,SOURCE_TABLE
3652        ,LINE_ID
3653        ,TAX_CODE_ID
3654        ,LOCATION_SEGMENT_ID
3655        ,BASE_CURRENCY_CODE
3656        ,EXCHANGE_RATE_TYPE
3657        ,EXCHANGE_RATE
3658        ,EXCHANGE_DATE
3659        ,ACCTD_AMOUNT
3660        ,TAXABLE_ACCTD_AMOUNT
3661        ,ORG_ID
3662        ,HEADER_TABLE_ID
3663        ,POSTING_ENTITY
3664        ,CASH_RECEIPT_ID
3665        ,CUSTOMER_TRX_ID
3666        ,CUSTOMER_TRX_LINE_ID
3667        ,CUST_TRX_LINE_GL_DIST_ID
3668        ,CUST_TRX_LINE_SALESREP_ID
3669        ,INVENTORY_ITEM_ID
3670        ,SALES_TAX_ID
3671        ,SO_ORGANIZATION_ID
3672        ,TAX_EXEMPTION_ID
3673        ,UOM_CODE
3674        ,WAREHOUSE_ID
3675        ,AGREEMENT_ID
3676        ,CUSTOMER_BANK_ACCT_ID
3677        ,DRAWEE_BANK_ACCOUNT_ID
3678        ,REMITTANCE_BANK_ACCT_ID
3679        ,DISTRIBUTION_SET_ID
3680        ,PAYMENT_SCHEDULE_ID
3681        ,RECEIPT_METHOD_ID
3682        ,RECEIVABLES_TRX_ID
3683        ,ED_ADJ_RECEIVABLES_TRX_ID
3684        ,UNED_RECEIVABLES_TRX_ID
3685        ,SET_OF_BOOKS_ID
3686        ,SALESREP_ID
3687        ,BILL_SITE_USE_ID
3688        ,DRAWEE_SITE_USE_ID
3689        ,PAYING_SITE_USE_ID
3690        ,SOLD_SITE_USE_ID
3691        ,SHIP_SITE_USE_ID
3692        ,RECEIPT_CUSTOMER_SITE_USE_ID
3693        ,BILL_CUST_ROLE_ID
3694        ,DRAWEE_CUST_ROLE_ID
3695        ,SHIP_CUST_ROLE_ID
3696        ,SOLD_CUST_ROLE_ID
3697        ,BILL_CUSTOMER_ID
3698        ,DRAWEE_CUSTOMER_ID
3699        ,PAYING_CUSTOMER_ID
3700        ,SOLD_CUSTOMER_ID
3701        ,SHIP_CUSTOMER_ID
3702        ,REMIT_ADDRESS_ID
3703        ,RECEIPT_BATCH_ID
3704        ,RECEIVABLE_APPLICATION_ID
3705        ,CUSTOMER_BANK_BRANCH_ID
3706        ,ISSUER_BANK_BRANCH_ID
3707        ,BATCH_SOURCE_ID
3708        ,BATCH_ID
3709        ,TERM_ID
3710        ,SELECT_FLAG
3711        ,LEVEL_FLAG
3712        ,FROM_TO_FLAG
3713        ,FROM_AMOUNT
3714        ,AMOUNT
3715        ,FROM_ACCTD_AMOUNT
3716        ,event_type_code
3717        ,event_class_code
3718        ,entity_code
3719        ,tax_line_id
3720        ,ADDITIONAL_CHAR1
3721          ,MFAR_ADDITIONAL_ENTRY
3722        )
3723         SELECT /*+LEADING(gt) USE_NL(gt, app)*/
3724             gt.event_id                      -- EVENT_ID
3725            ,acb.cash_basis_distribution_id   -- LINE_NUMBER
3726            ,''                               -- LANGUAGE
3727            ,sob.set_of_books_id              -- LEDGER_ID
3728            ,app.receivable_application_id    -- SOURCE_ID
3729            ,'RA'                             -- SOURCE_TABLE
3730            ,acb.cash_basis_distribution_id   -- LINE_ID
3731            ,NULL                             -- TAX_CODE_ID
3732            ,NULL                             -- LOCATION_SEGMENT_ID
3733            ,sob.currency_code                -- BASE_CURRENCY
3734            ,trxt.exchange_rate_type          -- EXCHANGE_RATE_TYPE
3735            ,trxt.exchange_rate               -- EXCHANGE_RATE
3736            ,trxt.exchange_date               -- EXCHANGE_DATE
3737            ,acb.acctd_amount                 -- ACCTD_AMOUNT
3738            ,NULL                             -- TAXABLE_ACCTD_AMOUNT
3739            ,app.org_id                       -- ORG_ID
3740            ,app.receivable_application_id    -- HEADER_TABLE_ID
3741            ,'APP'                            -- POSTING_ENTITY
3742            ,NULL                             -- CASH_RECEIPT_ID
3743            ,trxt.customer_trx_id             -- CUSTOMER_TRX_ID
3744            ,tlt.customer_trx_line_id         -- CUSTOMER_TRX_LINE_ID
3745            ,gldt.cust_trx_line_gl_dist_id    -- CUST_TRX_LINE_GL_DIST_ID
3746            ,gldt.cust_trx_line_salesrep_id   --  CUST_TRX_LINE_SALESREP_ID
3747            ,tlt.inventory_item_id            -- INVENTORY_ITEM_ID
3748            ,tlt.sales_tax_id                 -- SALES_TAX_ID
3749            ,osp.master_organization_id       -- SO_ORGANIZATION_ID
3750            ,tlt.tax_exemption_id             -- TAX_EXEMPTION_ID
3751            ,tlt.uom_code                     -- UOM_CODE
3752            ,tlt.warehouse_id                 -- WAREHOUSE_ID
3753            ,trxt.agreement_id                -- AGREEMENT_ID
3754            ,trxt.customer_bank_account_id    -- CUSTOMER_BANK_ACCT_ID
3755            ,trxt.drawee_bank_account_id      -- DRAWEE_BANK_ACCOUNT_ID
3756            ,trxt.remit_bank_acct_use_id  -- REMITTANCE_BANK_ACCT_ID
3757            ,NULL                             -- DISTRIBUTION_SET_ID
3758            ,psch.payment_schedule_id         -- PAYMENT_SCHEDULE_ID
3759            ,trxt.receipt_method_id           -- RECEIPT_METHOD_ID
3760            ,NULL                             -- RECEIVABLES_TRX_ID
3761            ,NULL                             -- ED_ADJ_RECEIVABLES_TRX_ID
3762            ,NULL                             -- UNED_RECEIVABLES_TRX_ID
3763            ,trxt.set_of_books_id             -- SET_OF_BOOKS_ID
3764            ,trxt.primary_salesrep_id         -- SALESREP_ID
3765            ,trxt.bill_to_site_use_id         -- BILL_SITE_USE_ID
3766            ,trxt.drawee_site_use_id          -- DRAWEE_SITE_USE_ID
3767            ,trxt.paying_site_use_id          -- PAYING_SITE_USE_ID
3768            ,trxt.sold_to_site_use_id         -- SOLD_SITE_USE_ID
3769            ,trxt.ship_to_site_use_id         -- SHIP_SITE_USE_ID
3770            ,NULL                             -- RECEIPT_CUSTOMER_SITE_USE_ID
3771            ,trxt.bill_to_contact_id          -- BILL_CUST_ROLE_ID
3772            ,trxt.drawee_contact_id           -- DRAWEE_CUST_ROLE_ID
3773            ,trxt.ship_to_contact_id          -- SHIP_CUST_ROLE_ID
3774            ,trxt.sold_to_contact_id          -- SOLD_CUST_ROLE_ID
3775            ,trxt.bill_to_customer_id         -- BILL_CUSTOMER_ID
3776            ,trxt.drawee_id                   -- DRAWEE_CUSTOMER_ID
3777            ,trxt.paying_customer_id          -- PAYING_CUSTOMER_ID
3778            ,trxt.sold_to_customer_id         -- SOLD_CUSTOMER_ID
3779            ,trxt.ship_to_customer_id         -- SHIP_CUSTOMER_ID
3780            ,trxt.remit_to_address_id         -- REMIT_ADDRESS_ID
3781            ,NULL                             -- RECEIPT_BATCH_ID
3782            ,NULL                             -- RECEIVABLE_APPLICATION_ID
3783            ,NULL                             -- CUSTOMER_BANK_BRANCH_ID
3784            ,NULL                             -- ISSUER_BANK_BRANCH_ID
3785            ,trxt.batch_source_id             -- BATCH_SOURCE_ID
3786            ,trxt.batch_id                    -- BATCH_ID
3787            ,trxt.term_id                     -- TERM_ID
3788            ,'Y'                              -- SELECT_FLAG
3789            ,'L'                              -- LEVEL_FLAG
3790            ,'T'                              -- FROM_TO_FLAG
3791            ,acb.from_amount                  -- FROM_AMOUNT
3792            ,acb.amount                       -- AMOUNT
3793            ,acb.from_acctd_amount            -- FROM_ACCTD_AMOUNT
3794            ,gt.event_type_code
3795            ,gt.event_class_code
3796            ,gt.entity_code
3797            ,tlt.tax_line_id                  --tax_line_id
3798            ,app.upgrade_method
3799          ,'N'                    --MFAR_ADDITIONAL_ENTRY
3800       FROM xla_events_gt                  gt,
3801            ar_receivable_applications_all app,
3802            AR_CASH_BASIS_DISTS_ALL        acb,
3803            gl_sets_of_books               sob,
3804            oe_system_parameters_all       osp,
3805            ra_customer_trx_all            trxt,
3806            ra_customer_trx_lines_all      tlt,
3807            ra_cust_trx_line_gl_dist_all   gldt,
3808            ar_payment_schedules_all       psch,
3809            ar_system_parameters_all        ars
3810      WHERE gt.event_type_code IN (  'RECP_CREATE'      ,'RECP_UPDATE',
3811                                     'RECP_RATE_ADJUST' ) --Uptake XLA Reversal, 'RECP_REVERSE')
3812        AND gt.application_id                 = p_application_id
3813        AND gt.event_id                       = app.event_id
3814        AND app.receivable_application_id     = acb.receivable_application_id
3815        AND app.upgrade_method                = 'R12_11ICASH_POST'
3816        AND acb.receivable_application_id     = app.receivable_application_id
3817        AND app.set_of_books_id               = sob.set_of_books_id
3818        AND app.org_id                        = osp.org_id(+)
3819        AND app.applied_customer_trx_id       = trxt.customer_trx_id
3820        AND acb.REF_CUSTOMER_TRX_LINE_ID      = tlt.customer_trx_line_id(+)
3821        AND acb.ref_cust_trx_line_gl_dist_id  = gldt.cust_trx_line_gl_dist_id(+)
3822        AND trxt.customer_trx_id              = psch.customer_trx_id
3823        AND NVL(psch.terms_sequence_number,1) = 1
3824        AND ars.org_id                        = app.org_id
3825        AND ars.ACCOUNTING_METHOD             = 'CASH'
3826     UNION ALL
3827         SELECT /*+LEADING(gt) USE_NL(gt, app)*/
3828             gt.event_id                      -- EVENT_ID
3829            ,acb.cash_basis_distribution_id   -- LINE_NUMBER
3830            ,''                               -- LANGUAGE
3831            ,sob.set_of_books_id              -- LEDGER_ID
3832            ,app.receivable_application_id    -- SOURCE_ID
3833            ,'RA'                             -- SOURCE_TABLE
3834            ,acb.cash_basis_distribution_id   -- LINE_ID
3835            ,NULL                             -- TAX_CODE_ID
3836            ,NULL                             -- LOCATION_SEGMENT_ID
3837            ,sob.currency_code                -- BASE_CURRENCY
3838            ,trxt.exchange_rate_type          -- EXCHANGE_RATE_TYPE
3839            ,trxt.exchange_rate               -- EXCHANGE_RATE
3840            ,trxt.exchange_date               -- EXCHANGE_DATE
3841            ,acb.acctd_amount                 -- ACCTD_AMOUNT
3842            ,NULL                             -- TAXABLE_ACCTD_AMOUNT
3843            ,app.org_id                       -- ORG_ID
3844            ,app.receivable_application_id    -- HEADER_TABLE_ID
3845            ,'APP'                            -- POSTING_ENTITY
3846            ,NULL                             -- CASH_RECEIPT_ID
3847            ,trxt.customer_trx_id             -- CUSTOMER_TRX_ID
3848            ,tlt.customer_trx_line_id         -- CUSTOMER_TRX_LINE_ID
3849            ,gldt.cust_trx_line_gl_dist_id    -- CUST_TRX_LINE_GL_DIST_ID
3850            ,gldt.cust_trx_line_salesrep_id   --  CUST_TRX_LINE_SALESREP_ID
3851            ,tlt.inventory_item_id            -- INVENTORY_ITEM_ID
3852            ,tlt.sales_tax_id                 -- SALES_TAX_ID
3853            ,osp.master_organization_id       -- SO_ORGANIZATION_ID
3854            ,tlt.tax_exemption_id             -- TAX_EXEMPTION_ID
3855            ,tlt.uom_code                     -- UOM_CODE
3856            ,tlt.warehouse_id                 -- WAREHOUSE_ID
3857            ,trxt.agreement_id                -- AGREEMENT_ID
3858            ,trxt.customer_bank_account_id    -- CUSTOMER_BANK_ACCT_ID
3859            ,trxt.drawee_bank_account_id      -- DRAWEE_BANK_ACCOUNT_ID
3860            ,trxt.remit_bank_acct_use_id      -- REMITTANCE_BANK_ACCT_ID
3861            ,NULL                             -- DISTRIBUTION_SET_ID
3862            ,psch.payment_schedule_id         -- PAYMENT_SCHEDULE_ID
3863            ,trxt.receipt_method_id           -- RECEIPT_METHOD_ID
3864            ,NULL                             -- RECEIVABLES_TRX_ID
3865            ,NULL                             -- ED_ADJ_RECEIVABLES_TRX_ID
3866            ,NULL                             -- UNED_RECEIVABLES_TRX_ID
3867            ,trxt.set_of_books_id             -- SET_OF_BOOKS_ID
3868            ,trxt.primary_salesrep_id         -- SALESREP_ID
3869            ,trxt.bill_to_site_use_id         -- BILL_SITE_USE_ID
3870            ,trxt.drawee_site_use_id          -- DRAWEE_SITE_USE_ID
3871            ,trxt.paying_site_use_id          -- PAYING_SITE_USE_ID
3872            ,trxt.sold_to_site_use_id         -- SOLD_SITE_USE_ID
3873            ,trxt.ship_to_site_use_id         -- SHIP_SITE_USE_ID
3874            ,NULL                             -- RECEIPT_CUSTOMER_SITE_USE_ID
3875            ,trxt.bill_to_contact_id          -- BILL_CUST_ROLE_ID
3876            ,trxt.drawee_contact_id           -- DRAWEE_CUST_ROLE_ID
3877            ,trxt.ship_to_contact_id          -- SHIP_CUST_ROLE_ID
3878            ,trxt.sold_to_contact_id          -- SOLD_CUST_ROLE_ID
3879            ,trxt.bill_to_customer_id         -- BILL_CUSTOMER_ID
3880            ,trxt.drawee_id                   -- DRAWEE_CUSTOMER_ID
3881            ,trxt.paying_customer_id          -- PAYING_CUSTOMER_ID
3882            ,trxt.sold_to_customer_id         -- SOLD_CUSTOMER_ID
3883            ,trxt.ship_to_customer_id         -- SHIP_CUSTOMER_ID
3884            ,trxt.remit_to_address_id         -- REMIT_ADDRESS_ID
3885            ,NULL                             -- RECEIPT_BATCH_ID
3886            ,NULL                             -- RECEIVABLE_APPLICATION_ID
3887            ,NULL                             -- CUSTOMER_BANK_BRANCH_ID
3888            ,NULL                             -- ISSUER_BANK_BRANCH_ID
3889            ,trxt.batch_source_id             -- BATCH_SOURCE_ID
3890            ,trxt.batch_id                    -- BATCH_ID
3891            ,trxt.term_id                     -- TERM_ID
3892            ,'Y'                              -- SELECT_FLAG
3893            ,'L'                              -- LEVEL_FLAG
3894            ,'T'                              -- FROM_TO_FLAG
3895            ,NULL                             -- FROM_AMOUNT,
3896            ,acb.amount                       -- AMOUNT
3897            ,acb.from_acctd_Amount            -- FROM_ACCTD_AMOUNT
3898            ,gt.event_type_code
3899            ,gt.event_class_code
3900            ,gt.entity_code
3901            ,tlt.tax_line_id                  -- tax_line_id
3902            ,app.upgrade_method
3903          ,'N'                    --MFAR_ADDITIONAL_ENTRY
3904       FROM xla_events_gt                  gt,
3905            ar_receivable_applications_all app,
3906            AR_CASH_BASIS_DISTS_ALL        acb,
3907            gl_sets_of_books               sob,
3908            oe_system_parameters_all       osp,
3909            ra_customer_trx_all            trxt,
3910            ra_customer_trx_lines_all      tlt,
3911            ra_cust_trx_line_gl_dist_all   gldt,
3912            ar_payment_schedules_all       psch,
3913            ar_system_parameters_all        ars
3914      WHERE gt.event_type_code IN (  'CM_CREATE'        ,'CM_UPDATE'    )
3915        AND gt.application_id                 = p_application_id
3916        AND gt.event_id                       = app.event_id
3917        AND app.upgrade_method                = 'R12_11ICASH_POST'
3918        AND acb.receivable_application_id     = app.receivable_application_id
3919        AND app.set_of_books_id               = sob.set_of_books_id
3920        AND app.org_id                        = osp.org_id(+)
3921        AND app.applied_customer_trx_id       = trxt.customer_trx_id
3922        AND acb.ref_customer_trx_line_id     = tlt.customer_trx_line_id(+)
3923        AND acb.ref_cust_trx_line_gl_dist_id = gldt.cust_trx_line_gl_dist_id(+)
3924        AND trxt.customer_trx_id              = psch.customer_trx_id
3925        AND NVL(psch.terms_sequence_number,1) = 1
3926        AND ars.org_id                        = app.org_id
3927        AND ars.ACCOUNTING_METHOD             = 'CASH'
3928        AND acb.ref_cust_trx_line_gl_dist_id  NOT IN
3929            (SELECT cust_trx_line_gl_dist_id
3930               FROM ra_cust_trx_line_gl_dist_all
3931              WHERE customer_trx_id =  gt.source_id_int_1); --Excluding the receivable distribution of the CM
3932 
3933 
3934 
3935    local_log(procedure_name => 'load_line_data_app_to_trx',
3936              p_msg_text     => 'arp_xla_extract_main_pkg.load_line_data_app_to_trx ()-');
3937 EXCEPTION
3938 --  WHEN NO_DATA_FOUND THEN NULL;
3939   WHEN OTHERS THEN
3940    local_log(procedure_name => 'load_line_data_app_to_trx',
3941              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_line_data_app_to_trx '||
3942              arp_global.CRLF || 'Error      :'|| SQLERRM);
3943     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
3944     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
3945          'Procedure :arp_xla_extract_main_pkg.load_line_data_app_to_trx'|| arp_global.CRLF||
3946          'Error     :'||SQLERRM);
3947     FND_MSG_PUB.ADD;
3948   RAISE;
3949 END load_line_data_app_to_trx;
3950 
3951 
3952 --This is no longer usefull as we pass the UNID and the UNAPP as well
3953 -- Leave it for now
3954 PROCEDURE load_line_data_app_unid(p_application_id IN NUMBER DEFAULT 222)
3955 IS
3956 BEGIN
3957    local_log(procedure_name => 'load_line_data_app_unid',
3958              p_msg_text     => 'arp_xla_extract_main_pkg.load_line_data_app_unid ()+');
3959     -- Insert line level data in Line GT with
3960     -- selected_flag = Y
3961     -- level_flag    = L
3962     -- from_to_flag  = T
3963     INSERT INTO ar_xla_lines_extract (
3964         EVENT_ID
3965        ,LINE_NUMBER
3966        ,LANGUAGE
3967        ,LEDGER_ID
3968        ,SOURCE_ID
3969        ,SOURCE_TABLE
3970        ,LINE_ID
3971        ,TAX_CODE_ID
3972        ,LOCATION_SEGMENT_ID
3973        ,BASE_CURRENCY_CODE
3974        ,EXCHANGE_RATE_TYPE
3975        ,EXCHANGE_RATE
3976        ,EXCHANGE_DATE
3977        ,ACCTD_AMOUNT
3978        ,TAXABLE_ACCTD_AMOUNT
3979        ,ORG_ID
3980        ,HEADER_TABLE_ID
3981        ,POSTING_ENTITY
3982        ,CASH_RECEIPT_ID
3983        ,CUSTOMER_TRX_ID
3984        ,CUSTOMER_TRX_LINE_ID
3985        ,CUST_TRX_LINE_GL_DIST_ID
3986        ,CUST_TRX_LINE_SALESREP_ID
3987        ,INVENTORY_ITEM_ID
3988        ,SALES_TAX_ID
3989        ,SO_ORGANIZATION_ID
3990        ,TAX_EXEMPTION_ID
3991        ,UOM_CODE
3992        ,WAREHOUSE_ID
3993        ,AGREEMENT_ID
3994        ,CUSTOMER_BANK_ACCT_ID
3995        ,DRAWEE_BANK_ACCOUNT_ID
3996        ,REMITTANCE_BANK_ACCT_ID
3997        ,DISTRIBUTION_SET_ID
3998        ,PAYMENT_SCHEDULE_ID
3999        ,RECEIPT_METHOD_ID
4000        ,RECEIVABLES_TRX_ID
4001        ,ED_ADJ_RECEIVABLES_TRX_ID
4002        ,UNED_RECEIVABLES_TRX_ID
4003        ,SET_OF_BOOKS_ID
4004        ,SALESREP_ID
4005        ,BILL_SITE_USE_ID
4006        ,DRAWEE_SITE_USE_ID
4007        ,PAYING_SITE_USE_ID
4008        ,SOLD_SITE_USE_ID
4009        ,SHIP_SITE_USE_ID
4010        ,RECEIPT_CUSTOMER_SITE_USE_ID
4011        ,BILL_CUST_ROLE_ID
4012        ,DRAWEE_CUST_ROLE_ID
4013        ,SHIP_CUST_ROLE_ID
4014        ,SOLD_CUST_ROLE_ID
4015        ,BILL_CUSTOMER_ID
4016        ,DRAWEE_CUSTOMER_ID
4017        ,PAYING_CUSTOMER_ID
4018        ,SOLD_CUSTOMER_ID
4019        ,SHIP_CUSTOMER_ID
4020        ,REMIT_ADDRESS_ID
4021        ,RECEIPT_BATCH_ID
4022        ,RECEIVABLE_APPLICATION_ID
4023        ,CUSTOMER_BANK_BRANCH_ID
4024        ,ISSUER_BANK_BRANCH_ID
4025        ,BATCH_SOURCE_ID
4026        ,BATCH_ID
4027        ,TERM_ID
4028        ,SELECT_FLAG
4029        ,LEVEL_FLAG
4030        ,FROM_TO_FLAG
4031        ,FROM_AMOUNT
4032        ,AMOUNT
4033        ,FROM_ACCTD_AMOUNT
4034        --{BUG#4356088
4035        ,event_type_code
4036        ,event_class_code
4037        ,entity_code
4038        --}
4039          ,MFAR_ADDITIONAL_ENTRY
4040        )
4041         SELECT /*+LEADING(gt) USE_NL(gt, app)*/
4042            gt.event_id,                      -- EVENT_ID
4043            dist.line_id,                     -- LINE_NUMBER
4044            '',                               -- LANGUAGE
4045            sob.set_of_books_id,              -- LEDGER_ID
4046            dist.source_id,                   -- SOURCE_ID
4047            dist.source_table,                -- SOURCE_TABLE
4048            dist.line_id,                     -- LINE_ID
4049            dist.tax_code_id,                 -- TAX_CODE_ID
4050            dist.location_segment_id,         -- LOCATION_SEGMENT_ID
4051            sob.currency_code,                -- BASE_CURRENCY
4052            NULL,          -- EXCHANGE_RATE_TYPE
4053            NULL,               -- EXCHANGE_RATE
4054            NULL,               -- EXCHANGE_DATE
4055            NVL(dist.acctd_amount_cr,0) -
4056                 NVL(dist.acctd_amount_dr,0),      -- ACCTD_AMOUNT
4057            NVL(dist.taxable_accounted_cr,0) -
4058                 NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
4059            app.org_id,                       -- ORG_ID
4060            app.receivable_application_id,    -- HEADER_TABLE_ID
4061            'APP',                            -- POSTING_ENTITY
4062            NULL,                             -- CASH_RECEIPT_ID
4063            NULL,             -- CUSTOMER_TRX_ID
4064            NULL,         -- CUSTOMER_TRX_LINE_ID
4065            NULL,    -- CUST_TRX_LINE_GL_DIST_ID
4066            NULL,   --  CUST_TRX_LINE_SALESREP_ID
4067            NULL,            -- INVENTORY_ITEM_ID
4068            NULL,                 -- SALES_TAX_ID
4069            NULL,       -- SO_ORGANIZATION_ID
4070            NULL,             -- TAX_EXEMPTION_ID
4071            NULL,                     -- UOM_CODE
4072            NULL,                 -- WAREHOUSE_ID
4073            NULL,                -- AGREEMENT_ID
4074            NULL,    -- CUSTOMER_BANK_ACCT_ID
4075            NULL,      -- DRAWEE_BANK_ACCOUNT_ID
4076            NULL,  -- REMITTANCE_BANK_ACCT_ID
4077            NULL,                             -- DISTRIBUTION_SET_ID
4078            NULL,         -- PAYMENT_SCHEDULE_ID
4079            NULL,           -- RECEIPT_METHOD_ID
4080            NULL,                             -- RECEIVABLES_TRX_ID
4081            NULL,                             -- ED_ADJ_RECEIVABLES_TRX_ID
4082            NULL,                             -- UNED_RECEIVABLES_TRX_ID
4083            NULL,             -- SET_OF_BOOKS_ID
4084            NULL,         -- SALESREP_ID
4085            NULL,         -- BILL_SITE_USE_ID
4086            NULL,          -- DRAWEE_SITE_USE_ID
4087            NULL,          -- PAYING_SITE_USE_ID
4088            NULL,         -- SOLD_SITE_USE_ID
4089            NULL,         -- SHIP_SITE_USE_ID
4090            NULL,                             -- RECEIPT_CUSTOMER_SITE_USE_ID
4091            NULL,          -- BILL_CUST_ROLE_ID
4092            NULL,           -- DRAWEE_CUST_ROLE_ID
4093            NULL,          -- SHIP_CUST_ROLE_ID
4094            NULL,          -- SOLD_CUST_ROLE_ID
4095            NULL,         -- BILL_CUSTOMER_ID
4096            NULL,                   -- DRAWEE_CUSTOMER_ID
4097            NULL,          -- PAYING_CUSTOMER_ID
4098            NULL,         -- SOLD_CUSTOMER_ID
4099            NULL,         -- SHIP_CUSTOMER_ID
4100            NULL,         -- REMIT_ADDRESS_ID
4101            NULL,                             -- RECEIPT_BATCH_ID
4102            NULL,                             -- RECEIVABLE_APPLICATION_ID
4103            NULL,                             -- CUSTOMER_BANK_BRANCH_ID
4104            NULL,                             -- ISSUER_BANK_BRANCH_ID
4105            NULL,             -- BATCH_SOURCE_ID
4106            NULL,                    -- BATCH_ID
4107            NULL,                     -- TERM_ID
4108            'Y',                              -- SELECT_FLAG
4109            'L',                              -- LEVEL_FLAG
4110            'T',                              -- FROM_TO_FLAG
4111            NVL(dist.from_amount_cr,0)
4112              -NVL(dist.from_amount_dr,0),    -- FROM_AMOUNT,
4113            NVL(dist.amount_cr,0)
4114              -NVL(dist.amount_dr,0),          -- AMOUNT
4115            NVL(dist.from_acctd_amount_cr,0)
4116              -NVL(dist.from_acctd_amount_dr,0) -- FROM_ACCTD_AMOUNT
4117          --{BUG#4356088
4118          ,gt.event_type_code
4119          ,gt.event_class_code
4120          ,gt.entity_code
4121          --}
4122          ,'N'                    --MFAR_ADDITIONAL_ENTRY
4123       FROM xla_events_gt                  gt,
4124            ar_receivable_applications_all app,
4125            ar_distributions_all           dist,  --ar_distributions_all dist,
4126            gl_sets_of_books               sob
4127      WHERE gt.event_type_code IN (  'RECP_CREATE'      ,'RECP_UPDATE'      ,
4128                                     'RECP_RATE_ADJUST' ) --Uptake XLA reversal,'RECP_REVERSE')
4129 -- Exclude 'RECP_REVERSE' for no extract at line level is reuired for Reversal
4130        AND gt.application_id                 = p_application_id
4131        AND gt.event_id                       = app.event_id
4132        AND dist.source_table                 = 'RA'
4133        AND dist.source_id                    = app.receivable_application_id
4134        AND app.set_of_books_id               = sob.set_of_books_id
4135        AND dist.source_type                  = 'UNID';
4136 
4137    local_log(procedure_name => 'load_line_data_app_unid',
4138              p_msg_text     => 'arp_xla_extract_main_pkg.load_line_data_app_unid ()-');
4139 
4140 EXCEPTION
4141 --  WHEN NO_DATA_FOUND THEN NULL;
4142   WHEN OTHERS THEN
4143    local_log(procedure_name => 'load_line_data_app_unid',
4144              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_line_data_app_unid '||
4145              arp_global.CRLF || 'Error      :'|| SQLERRM);
4146     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
4147     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
4148          'Procedure :arp_xla_extract_main_pkg.load_line_data_app_to_trx'|| arp_global.CRLF||
4149          'Error     :'||SQLERRM);
4150     FND_MSG_PUB.ADD;
4151   RAISE;
4152 END load_line_data_app_unid;
4153 -------------------------------------------------------------------------------
4154 /*-----------------------------------------------------------------+
4155  | Procedure Name : load_line_data_crh                             |
4156  | Description    : Extract line data for cash receipt and         |
4157  |                  misc cash receipt events                       |
4158  +-----------------------------------------------------------------+
4159  | History        :                                                |
4160  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
4161  +-----------------------------------------------------------------*/
4162 PROCEDURE load_line_data_crh(p_application_id IN NUMBER DEFAULT 222)
4163 IS
4164 BEGIN
4165    local_log(procedure_name => 'load_line_data_crh',
4166              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_line_date_crh ()+');
4167       -- Line data CR in Line GT
4168       -- Selected_flag = N
4169       -- Level_flag    = L
4170    INSERT INTO ar_xla_lines_extract (
4171         EVENT_ID
4172        ,LINE_NUMBER
4173        ,LANGUAGE
4174        ,LEDGER_ID
4175        ,SOURCE_ID
4176        ,SOURCE_TABLE
4177        ,LINE_ID
4178        ,TAX_CODE_ID
4179        ,LOCATION_SEGMENT_ID
4180        ,BASE_CURRENCY_CODE
4181        ,EXCHANGE_RATE_TYPE
4182        ,EXCHANGE_RATE
4183        ,EXCHANGE_DATE
4184        ,ACCTD_AMOUNT
4185        ,TAXABLE_ACCTD_AMOUNT
4186        ,ORG_ID
4187        ,HEADER_TABLE_ID
4188        ,POSTING_ENTITY
4189        ,CASH_RECEIPT_ID
4190        ,CUSTOMER_TRX_ID
4191        ,CUSTOMER_TRX_LINE_ID
4192        ,CUST_TRX_LINE_GL_DIST_ID
4193        ,CUST_TRX_LINE_SALESREP_ID
4194        ,INVENTORY_ITEM_ID
4195        ,SALES_TAX_ID
4196        ,SO_ORGANIZATION_ID
4197        ,TAX_EXEMPTION_ID
4198        ,UOM_CODE
4199        ,WAREHOUSE_ID
4200        ,AGREEMENT_ID
4201        ,CUSTOMER_BANK_ACCT_ID
4202        ,DRAWEE_BANK_ACCOUNT_ID
4203        ,REMITTANCE_BANK_ACCT_ID
4204        ,DISTRIBUTION_SET_ID
4205        ,PAYMENT_SCHEDULE_ID
4206        ,RECEIPT_METHOD_ID
4207        ,RECEIVABLES_TRX_ID
4208        ,ED_ADJ_RECEIVABLES_TRX_ID
4209        ,UNED_RECEIVABLES_TRX_ID
4210        ,SET_OF_BOOKS_ID
4211        ,SALESREP_ID
4212        ,BILL_SITE_USE_ID
4213        ,DRAWEE_SITE_USE_ID
4214        ,PAYING_SITE_USE_ID
4215        ,SOLD_SITE_USE_ID
4216        ,SHIP_SITE_USE_ID
4217        ,RECEIPT_CUSTOMER_SITE_USE_ID
4218        ,BILL_CUST_ROLE_ID
4219        ,DRAWEE_CUST_ROLE_ID
4220        ,SHIP_CUST_ROLE_ID
4221        ,SOLD_CUST_ROLE_ID
4222        ,BILL_CUSTOMER_ID
4223        ,DRAWEE_CUSTOMER_ID
4224        ,PAYING_CUSTOMER_ID
4225        ,SOLD_CUSTOMER_ID
4226        ,SHIP_CUSTOMER_ID
4227        ,REMIT_ADDRESS_ID
4228        ,RECEIPT_BATCH_ID
4229        ,RECEIVABLE_APPLICATION_ID
4230        ,CUSTOMER_BANK_BRANCH_ID
4231        ,ISSUER_BANK_BRANCH_ID
4232        ,BATCH_SOURCE_ID
4233        ,BATCH_ID
4234        ,TERM_ID
4235        ,SELECT_FLAG
4236        ,LEVEL_FLAG
4237        ,FROM_TO_FLAG
4238        ,CRH_STATUS
4239        ,CRH_PRV_STATUS
4240        ,AMOUNT
4241        --{BUG#4356088
4242        ,event_type_code
4243        ,event_class_code
4244        ,entity_code
4245        --}
4246          ,MFAR_ADDITIONAL_ENTRY
4247        )
4248         SELECT /*+LEADING(gt) USE_NL(gt,crh)*/
4249            gt.event_id,                      -- EVENT_ID
4250            dist.line_id,                     -- LINE_NUMBER
4251            '',                               -- LANGUAGE
4252            sob.set_of_books_id,              -- LEDGER_ID
4253            dist.source_id,                   -- SOURCE_ID
4254            dist.source_table,                -- SOURCE_TABLE
4255            dist.line_id,                     -- LINE_ID
4256            dist.tax_code_id,                 -- TAX_CODE_ID
4257            dist.location_segment_id,         -- LOCATION_SEGMENT_ID
4258            sob.currency_code,                -- BASE_CURRENCY
4259   --       crh.exchange_rate_type,            -- EXCHANGE_RATE_TYPE
4260   --       crh.exchange_rate     ,            -- EXCHANGE_RATE
4261   --       crh.exchange_date     ,            -- EXCHANGE_DATE
4262            dist.CURRENCY_CONVERSION_TYPE,            -- EXCHANGE_RATE_TYPE
4263            dist.CURRENCY_CONVERSION_RATE     ,            -- EXCHANGE_RATE
4264            dist.CURRENCY_CONVERSION_DATE     ,            -- EXCHANGE_DATE
4265            NVL(dist.acctd_amount_cr,0)
4266              - NVL(dist.acctd_amount_dr,0) ,      -- ACCTD_AMOUNT
4267            NVL(dist.taxable_accounted_cr,0)
4268              - NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
4269            crh.org_id,                       -- ORG_ID
4270            crh.cash_receipt_history_id,      -- HEADER_TABLE_ID
4271            'CRH',                            -- POSTING_ENTITY
4272            crh.cash_receipt_id,               -- CASH_RECEIPT_ID
4273            NULL,                             -- CUSTOMER_TRX_ID
4274            NULL,                             -- CUSTOMER_TRX_LINE_ID
4275            NULL,                             -- CUST_TRX_LINE_GL_DIST_ID
4276            NULL,                             -- CUST_TRX_LINE_SALESREP_ID
4277            NULL,                             -- INVENTORY_ITEM_ID
4278            NULL,                             -- SALES_TAX_ID
4279            NULL,                             -- SO_ORGANIZATION_ID
4280            NULL,                             -- TAX_EXEMPTION_ID
4281            NULL,                             -- UOM_CODE
4282            NULL,                             -- WAREHOUSE_ID
4283            NULL,                             -- AGREEMENT_ID
4284            NULL,                             -- CUSTOMER_BANK_ACCT_ID
4285            NULL,                             -- DRAWEE_BANK_ACCOUNT_ID
4286            NULL,                             -- REMITTANCE_BANK_ACCT_ID
4287            NULL,                             -- DISTRIBUTION_SET_ID
4288            NULL,                             -- PAYMENT_SCHEDULE_ID
4289            NULL,                             -- RECEIPT_METHOD_ID
4290            NULL,                             -- RECEIVABLES_TRX_ID
4291            NULL,                             -- ED_ADJ_RECEIVABLES_TRX_ID
4292            NULL,                             -- UNED_RECEIVABLES_TRX_ID
4293            sob.set_of_books_id,              -- SET_OF_BOOKS_ID
4294            NULL,                               -- SALESREP_ID
4295            NULL,                               -- BILL_SITE_USE_ID
4296            NULL,                               -- DRAWEE_SITE_USE_ID
4297            NULL,                               -- PAYING_SITE_USE_ID
4298            NULL,                               -- SOLD_SITE_USE_ID
4299            NULL,                               -- SHIP_SITE_USE_ID
4300            NULL,                               -- RECEIPT_CUSTOMER_SITE_USE_ID
4301            NULL,                               -- BILL_CUST_ROLE_ID
4302            NULL,                               -- DRAWEE_CUST_ROLE_ID
4303            NULL,                               -- SHIP_CUST_ROLE_ID
4304            NULL,                               -- SOLD_CUST_ROLE_ID
4305            NULL,                               -- BILL_CUSTOMER_ID
4306            NULL,                               -- DRAWEE_CUSTOMER_ID
4307            NULL,                               -- PAYING_CUSTOMER_ID
4308            NULL,                               -- SOLD_CUSTOMER_ID
4309            NULL,                               -- SHIP_CUSTOMER_ID
4310            NULL,                               -- REMIT_ADDRESS_ID
4311            NULL,                               -- RECEIPT_BATCH_ID
4312            NULL,                               -- RECEIVABLE_APPLICATION_ID
4313            NULL,                               -- CUSTOMER_BANK_BRANCH_ID
4314            NULL,                               -- ISSUER_BANK_BRANCH_ID
4315            NULL,                               -- BATCH_SOURCE_ID
4316            NULL,                               -- BATCH_ID
4317            NULL,                               -- TERM_ID
4318            'N',                              -- SELECT_FLAG
4319            'L',                              -- LEVEL_FLAG
4320            '' ,                               -- FROM_TO_FLAG
4321            crh.status,                        -- CRH_STATUS
4322            pcrh.status,                       -- CRH_PRV_STATUS
4323            NVL(dist.amount_cr,0)
4324              - NVL(dist.amount_dr,0)          -- AMOUNT
4325          --{BUG#4356088
4326          ,gt.event_type_code
4327          ,gt.event_class_code
4328          ,gt.entity_code
4329          ,'N'                    --MFAR_ADDITIONAL_ENTRY
4330          --}
4331       FROM xla_events_gt                  gt,
4332            ar_cash_receipts_all           cr,
4333            ar_cash_receipt_history_all    crh,
4334            ar_distributions_all           dist,
4335            gl_sets_of_books               sob,
4336            ar_cash_receipt_history_all    pcrh
4337      WHERE gt.event_type_code IN (  'RECP_CREATE'          ,'RECP_UPDATE'        ,
4338                                     'MISC_RECP_CREATE'     ,'MISC_RECP_UPDATE'   ,
4339                                     --Uptake XLA Reversal  'RECP_REVERSE'         ,'MISC_RECP_REVERSE'  ,
4340                                     --5201086
4341                                     'RECP_RATE_ADJUST'     ,'MISC_RECP_RATE_ADJUST')
4342        AND gt.application_id                   = p_application_id
4343        AND gt.event_id                         = crh.event_id
4344        AND crh.cash_receipt_id                 = cr.cash_receipt_id
4345        AND dist.source_table                   = 'CRH'
4346        AND dist.source_id                      = crh.cash_receipt_history_id
4347        AND cr.set_of_books_id                  = sob.set_of_books_id
4348        AND crh.prv_stat_cash_receipt_hist_id   = pcrh.cash_receipt_history_id(+);
4349 --RateAdj
4350 --       AND crh.status                          = rateadj.status(+)
4351 --       AND crh.cash_receipt_id                 = rateadj.cash_receipt_id(+);
4352 
4353 
4354 --Extrating REVERSE
4355 -- Needs to return 1 distribution row in case of Cash Receipt life cycle
4356 --       AND DECODE(crh.status,'REVERSED','X',dist.source_type) =
4357 --                                   DECODE(crh.status,'CLEARED','CASH',
4358 --                                          'CONFIRMED','CONFIRMATION',
4359 --                                          'REMITTED','REMITTANCE',
4360 --                                         'REVERSED','Y');
4361 
4362 --{Insertion of UNAPP and UNID
4363 --Note all the UNAPP and UNID are inserted here
4364    INSERT INTO ar_xla_lines_extract (
4365         EVENT_ID
4366        ,LINE_NUMBER
4367        ,LANGUAGE
4368        ,LEDGER_ID
4369        ,SOURCE_ID
4370        ,SOURCE_TABLE
4371        ,LINE_ID
4372        ,TAX_CODE_ID
4373        ,LOCATION_SEGMENT_ID
4374        ,BASE_CURRENCY_CODE
4375        ,EXCHANGE_RATE_TYPE
4376        ,EXCHANGE_RATE
4377        ,EXCHANGE_DATE
4378        ,ACCTD_AMOUNT
4379        ,TAXABLE_ACCTD_AMOUNT
4380        ,ORG_ID
4381        ,HEADER_TABLE_ID
4382        ,POSTING_ENTITY
4383        ,CASH_RECEIPT_ID
4384        ,CUSTOMER_TRX_ID
4385        ,CUSTOMER_TRX_LINE_ID
4386        ,CUST_TRX_LINE_GL_DIST_ID
4387        ,CUST_TRX_LINE_SALESREP_ID
4388        ,INVENTORY_ITEM_ID
4389        ,SALES_TAX_ID
4390        ,SO_ORGANIZATION_ID
4391        ,TAX_EXEMPTION_ID
4392        ,UOM_CODE
4393        ,WAREHOUSE_ID
4394        ,AGREEMENT_ID
4395        ,CUSTOMER_BANK_ACCT_ID
4396        ,DRAWEE_BANK_ACCOUNT_ID
4397        ,REMITTANCE_BANK_ACCT_ID
4398        ,DISTRIBUTION_SET_ID
4399        ,PAYMENT_SCHEDULE_ID
4400        ,RECEIPT_METHOD_ID
4401        ,RECEIVABLES_TRX_ID
4402        ,ED_ADJ_RECEIVABLES_TRX_ID
4403        ,UNED_RECEIVABLES_TRX_ID
4404        ,SET_OF_BOOKS_ID
4405        ,SALESREP_ID
4406        ,BILL_SITE_USE_ID
4407        ,DRAWEE_SITE_USE_ID
4408        ,PAYING_SITE_USE_ID
4409        ,SOLD_SITE_USE_ID
4410        ,SHIP_SITE_USE_ID
4411        ,RECEIPT_CUSTOMER_SITE_USE_ID
4412        ,BILL_CUST_ROLE_ID
4413        ,DRAWEE_CUST_ROLE_ID
4414        ,SHIP_CUST_ROLE_ID
4415        ,SOLD_CUST_ROLE_ID
4416        ,BILL_CUSTOMER_ID
4417        ,DRAWEE_CUSTOMER_ID
4418        ,PAYING_CUSTOMER_ID
4419        ,SOLD_CUSTOMER_ID
4420        ,SHIP_CUSTOMER_ID
4421        ,REMIT_ADDRESS_ID
4422        ,RECEIPT_BATCH_ID
4423        ,RECEIVABLE_APPLICATION_ID
4424        ,CUSTOMER_BANK_BRANCH_ID
4425        ,ISSUER_BANK_BRANCH_ID
4426        ,BATCH_SOURCE_ID
4427        ,BATCH_ID
4428        ,TERM_ID
4429        ,SELECT_FLAG
4430        ,LEVEL_FLAG
4431        ,FROM_TO_FLAG
4432        ,CRH_STATUS
4433        ,CRH_PRV_STATUS
4434        ,AMOUNT
4435        --{BUG#4356088
4436        ,event_type_code
4437        ,event_class_code
4438        ,entity_code
4439        --}
4440          ,MFAR_ADDITIONAL_ENTRY
4441          ,FROM_ACCTD_AMOUNT         --Bug7255483 Added new column for acctd amount
4442        )
4443         SELECT /*+LEADING(gt) cardinality(gt,1) USE_NL(gt,cr)*/
4444            gt.event_id,                      -- EVENT_ID
4445            dist.line_id,                     -- LINE_NUMBER
4446            '',                               -- LANGUAGE
4447            sob.set_of_books_id,              -- LEDGER_ID
4448            dist.source_id,                   -- SOURCE_ID
4449            dist.source_table,                -- SOURCE_TABLE
4450            dist.line_id,                     -- LINE_ID
4451            dist.tax_code_id,                 -- TAX_CODE_ID
4452            dist.location_segment_id,         -- LOCATION_SEGMENT_ID
4453            sob.currency_code,                -- BASE_CURRENCY
4454 --5201086
4455            crh.exchange_rate_type,            -- EXCHANGE_RATE_TYPE
4456            crh.exchange_rate     ,            -- EXCHANGE_RATE
4457            crh.exchange_date     ,            -- EXCHANGE_DATE
4458            NVL(dist.acctd_amount_cr,0)
4459              - NVL(dist.acctd_amount_dr,0),      -- ACCTD_AMOUNT
4460            NVL(dist.taxable_accounted_cr,0)
4461              - NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
4462            cr.org_id,                       -- ORG_ID
4463            app.receivable_application_id,    -- HEADER_TABLE_ID
4464 --{Although the UNAPP and UNID are distributions created from RA the posting entity is CRH
4465 -- but the source_table will be RA
4466            'CRH',                            -- POSTING_ENTITY
4467 --}
4468            cr.cash_receipt_id,               -- CASH_RECEIPT_ID
4469            NULL,                             -- CUSTOMER_TRX_ID
4470            NULL,                             -- CUSTOMER_TRX_LINE_ID
4471            NULL,                             -- CUST_TRX_LINE_GL_DIST_ID
4472            NULL,                             -- CUST_TRX_LINE_SALESREP_ID
4473            NULL,                             -- INVENTORY_ITEM_ID
4474            NULL,                             -- SALES_TAX_ID
4475            NULL,                             -- SO_ORGANIZATION_ID
4476            NULL,                             -- TAX_EXEMPTION_ID
4477            NULL,                             -- UOM_CODE
4478            NULL,                             -- WAREHOUSE_ID
4479            NULL,                             -- AGREEMENT_ID
4480            NULL,                             -- CUSTOMER_BANK_ACCT_ID
4481            NULL,                             -- DRAWEE_BANK_ACCOUNT_ID
4482            NULL,                             -- REMITTANCE_BANK_ACCT_ID
4483            NULL,                             -- DISTRIBUTION_SET_ID
4484            NULL,                             -- PAYMENT_SCHEDULE_ID
4485            NULL,                             -- RECEIPT_METHOD_ID
4486            app.receivables_trx_id,           -- RECEIVABLES_TRX_ID
4487            NULL,                             -- ED_ADJ_RECEIVABLES_TRX_ID
4488            NULL,                             -- UNED_RECEIVABLES_TRX_ID
4489            sob.set_of_books_id,              -- SET_OF_BOOKS_ID
4490            NULL,                               -- SALESREP_ID
4491            NULL,                               -- BILL_SITE_USE_ID
4492            NULL,                               -- DRAWEE_SITE_USE_ID
4493            NULL,                               -- PAYING_SITE_USE_ID
4494            NULL,                               -- SOLD_SITE_USE_ID
4495            NULL,                               -- SHIP_SITE_USE_ID
4496            NULL,                               -- RECEIPT_CUSTOMER_SITE_USE_ID
4497            NULL,                               -- BILL_CUST_ROLE_ID
4498            NULL,                               -- DRAWEE_CUST_ROLE_ID
4499            NULL,                               -- SHIP_CUST_ROLE_ID
4500            NULL,                               -- SOLD_CUST_ROLE_ID
4501            NULL,                               -- BILL_CUSTOMER_ID
4502            NULL,                               -- DRAWEE_CUSTOMER_ID
4503            NULL,                               -- PAYING_CUSTOMER_ID
4504            NULL,                               -- SOLD_CUSTOMER_ID
4505            NULL,                               -- SHIP_CUSTOMER_ID
4506            NULL,                               -- REMIT_ADDRESS_ID
4507            NULL,                               -- RECEIPT_BATCH_ID
4508            app.receivable_application_id,      -- RECEIVABLE_APPLICATION_ID
4509            NULL,                               -- CUSTOMER_BANK_BRANCH_ID
4510            NULL,                               -- ISSUER_BANK_BRANCH_ID
4511            NULL,                               -- BATCH_SOURCE_ID
4512            NULL,                               -- BATCH_ID
4513            NULL,                               -- TERM_ID
4514            'N',                              -- SELECT_FLAG
4515            'L',                              -- LEVEL_FLAG
4516            '' ,                               -- FROM_TO_FLAG
4517            app.status,                        -- CRH_STATUS
4518            '',                               -- CRH_PRV_STATUS
4519            NVL(dist.amount_cr,0)
4520              - NVL(dist.amount_dr,0)           -- AMOUNT
4521          --{BUG#4356088
4522          ,gt.event_type_code
4523          ,gt.event_class_code
4524          ,gt.entity_code
4525          ,'N'                    --MFAR_ADDITIONAL_ENTRY
4526          --}
4527          --Bug7255483 Added value for new column in the view
4528          ,DECODE(NVL(app.receivables_trx_id,0), -16,
4529                  NVL(dist.from_acctd_amount_cr,0) - NVL(dist.from_acctd_amount_dr,0),to_number(NULL))
4530       FROM xla_events_gt                  gt,
4531            ar_cash_receipts_all           cr,
4532            ar_cash_receipt_history_all    crh,
4533            ar_receivable_applications_all app,
4534            ar_distributions_all           dist,
4535            gl_sets_of_books               sob
4536      WHERE gt.event_type_code IN (  'RECP_CREATE'          ,'RECP_UPDATE' ,
4537                                     'RECP_RATE_ADJUST'     ) --Uptake XLA Reversal,'RECP_REVERSE'   )
4538        AND gt.application_id              = p_application_id
4539        AND cr.cash_receipt_id             = gt.source_id_int_1
4540        AND gt.event_id                    = app.event_id
4541        AND app.status                    IN ('UNAPP','UNID',
4542                      --{BUG#4960533
4543                       'OTHER ACC',
4544                       'ACC','BANK_CHARGES','ACTIVITY','SHORT_TERM_DEBT')
4545                      --}
4546        AND dist.source_table              = 'RA'
4547        AND dist.source_id                 = app.receivable_application_id
4548        AND cr.set_of_books_id             = sob.set_of_books_id
4549    --  AND gt.event_id                    = crh.event_id(+)
4550        AND app.event_id                    = crh.event_id(+)
4551        AND app.cash_receipt_history_id     = crh.cash_receipt_history_id (+)
4552        AND crh.status(+)                  NOT IN ('REVERSED');
4553 
4554 
4555 
4556 
4557    local_log(procedure_name => 'load_line_data_crh',
4558              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_line_date_crh ()-');
4559 EXCEPTION
4560 --  WHEN NO_DATA_FOUND THEN NULL;
4561   WHEN OTHERS THEN
4562    local_log(procedure_name => 'load_line_data_crh',
4563              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_line_data_crh '||
4564                                 arp_global.CRLF || 'Error      :'|| SQLERRM);
4565     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
4566     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
4567          'Procedure :arp_xla_extract_main_pkg.load_line_data_crh'|| arp_global.CRLF||
4568          'Error     :'||SQLERRM);
4569     FND_MSG_PUB.ADD;
4570   RAISE;
4571 END load_line_data_crh;
4572 
4573 --------------------------------------------------------
4574 /*-----------------------------------------------------------------+
4575  | Procedure Name : mfar_hook                                      |
4576  | Description    : Extract line data for Cash Receipt events in MF|
4577  +-----------------------------------------------------------------+
4578  | History        :                                                |
4579  +-----------------------------------------------------------------*/
4580 
4581 PROCEDURE mfar_hook(p_ledger_id IN NUMBER)
4582 IS
4583  CURSOR c IS
4584  SELECT NULL
4585    FROM gl_ledgers             gl,
4586         xla_acctg_method_rules mr,
4587         xla_product_rules_tl   pr
4588   WHERE gl.ledger_id = p_ledger_id
4589     AND mr.application_id = 222
4590     AND mr.accounting_method_code = gl.SLA_ACCOUNTING_METHOD_CODE
4591     AND mr.product_rule_code      = pr.product_rule_code
4592     AND mr.product_rule_code      = 'MFAR_ACCRUAL_ACCOUNT'
4593     AND pr.language = USERENV('LANG')
4594     AND SYSDATE BETWEEN mr.start_date_active AND NVL(mr.end_date_active, SYSDATE);
4595   l_res        VARCHAR2(1);
4596   l_execution  VARCHAR2(1) := 'N';
4597 BEGIN
4598   local_log(procedure_name => 'mfar_hook',
4599             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_hook ()+');
4600   IF NVL(FND_PROFILE.value('AR_MFAR_ACTIVATED'), 'N') = 'N' THEN
4601     l_execution := 'N';
4602   ELSE
4603     l_execution := 'Y';
4604   END IF;
4605 
4606   IF l_execution = 'Y' THEN
4607 
4608      -- Get all the CMAPP with curr round and populate cm_app_to_trx_line_id if required
4609      mfar_cmapp_fetch;
4610      -- Get all the applications of receipts being processed
4611      mfar_app_dist_cr;
4612      -- Get all CRH being currently post
4613      mfar_crh_dist;
4614      -- Create the times of additional distributions for CRH
4615      mfar_produit_app_by_crh;
4616      --Create additional_distribution_for_ra
4617      mfar_get_ra;
4618      --Avoid contention between Cash Receipt and MCD
4619      DELETE FROM ar_crh_app_gt;
4620      -- Get all Misc Cash Distributions for the Misc receipts
4621      mfar_mcd_dist_cr;
4622      -- Create the times of addition distribution for MCD
4623      mfar_produit_mcd_by_crh;
4624      -- Calculate and insert prorated MFAR additional entries for On-Account CM Applications
4625      mfar_cmapp_from_to;
4626      -- Calculate the currency rounding accounted amounts at line level for CM Apps
4627      mfar_cmapp_curr_round;
4628      -- Calculate the currency rounding accounted amounts at line level for RCT Apps
4629      mfar_rctapp_curr_round;
4630 
4631   END IF;
4632   local_log(procedure_name => 'mfar_hook',
4633             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_hook ()-');
4634 EXCEPTION
4635 --  WHEN NO_DATA_FOUND THEN NULL;
4636   WHEN OTHERS THEN
4637    local_log(procedure_name => 'mfar_hook',
4638              p_msg_text     => 'EXCEPTION OTHERS in mfar_hook '||
4639                  arp_global.CRLF || 'Error      :'|| SQLERRM);
4640     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
4641     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
4642          'Procedure :arp_xla_extract_main_pkg.mfar_hook'|| arp_global.CRLF||
4643          'Error     :'||SQLERRM);
4644     FND_MSG_PUB.ADD;
4645   RAISE;
4646 END mfar_hook;
4647 
4648 
4649 /*---------------------------------------------------------------------------+
4650  | Procedure Name : mfar_cmapp_fetch
4651  | Description    : Fetch all the foreign currency On-Account CM application
4652  |                  records with CURR_ROUND and EXCH_GAIN_LOSS in ARD and call
4653  |                  the update procedure.
4654  +----------------------------------------------------------------------------+
4655  | History        :
4656  | 10-AUG-2010     Ram Manikandan    Created due to bug#10047351
4657  +---------------------------------------------------------------------------*/
4658 
4659 PROCEDURE mfar_cmapp_fetch
4660 IS
4661 
4662 -- Cursor to fetch the foreign currency on-account CM applications with CURR_ROUND
4663 CURSOR cmapp_curr_round_cur IS
4664 SELECT ext1.event_id, ext1.source_id, ext1.amount, ext1.acctd_amount FROM ar_xla_lines_extract ext1
4665 WHERE ext1.source_type='CURR_ROUND'
4666 AND ext1.source_table = 'RA'
4667 AND ext1.mfar_additional_entry ='N'
4668 AND ext1.event_class_code = 'CREDIT_MEMO'
4669 AND NOT EXISTS
4670 (SELECT 1 FROM ar_xla_lines_extract ext2
4671 WHERE ext2.event_id = ext1.event_id
4672 AND ext2.source_id = ext1.source_id
4673 AND ext2.source_table = 'RA'
4674 AND ext2.source_type = 'REC'
4675 AND ext2.mfar_additional_entry ='N'
4676 AND ext2.event_class_code = 'CREDIT_MEMO'
4677 AND ext2.cm_app_to_trx_line_id IS NOT NULL)
4678 ORDER BY ext1.event_id, ext1.source_id;
4679 
4680 -- Cursor to fetch the foreign currency on-account CM applications with EXCHG_GAIN_LOSS
4681 CURSOR cmapp_exch_rate_cur IS
4682 SELECT DISTINCT ext1.event_id, ext1.source_id,0,0
4683 FROM ar_xla_lines_extract ext1
4684 WHERE ext1.exchange_rate IS NOT NULL
4685 AND ext1.source_table = 'RA'
4686 AND ext1.mfar_additional_entry ='N'
4687 AND ext1.event_class_code = 'CREDIT_MEMO'
4688 AND NOT EXISTS
4689 (SELECT 1 FROM ar_xla_lines_extract ext2
4690 WHERE ext2.event_id = ext1.event_id
4691 AND ext2.source_id = ext1.source_id
4692 AND ext2.source_table = 'RA'
4693 AND ext2.source_type = 'REC'
4694 AND ext2.mfar_additional_entry ='N'
4695 AND ext2.event_class_code = 'CREDIT_MEMO'
4696 AND ext2.cm_app_to_trx_line_id IS NOT NULL
4697 UNION ALL
4698 SELECT 1 FROM ar_xla_lines_extract ext3
4699 WHERE ext3.event_id = ext1.event_id
4700 AND ext3.source_id = ext1.source_id
4701 AND ext3.source_type = 'CURR_ROUND'
4702 AND ext3.source_table = 'RA'
4703 AND ext3.mfar_additional_entry ='N'
4704 AND ext3.event_class_code = 'CREDIT_MEMO')
4705 ORDER BY ext1.event_id, ext1.source_id;
4706 
4707 l_cmapp_curr_round_tab  cmapp_curr_round_tab;
4708 BEGIN
4709 
4710   local_log(procedure_name => 'mfar_cmapp_fetch',
4711                p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_cmapp_fetch ()+');
4712 
4713   OPEN cmapp_curr_round_cur;
4714   LOOP
4715   fetch cmapp_curr_round_cur bulk collect into l_cmapp_curr_round_tab LIMIT MAX_ARRAY_SIZE;
4716   exit when cmapp_curr_round_cur%NOTFOUND;
4717   end loop;
4718   close cmapp_curr_round_cur;
4719 
4720   local_log(procedure_name => 'mfar_cmapp_fetch',
4721                p_msg_text     => 'No. of curr_round rows: '|| l_cmapp_curr_round_tab.count);
4722 
4723   -- If there exists applications with CURR_ROUND, call the mfar_cmapp_trx_update procedure
4724   -- for each source id with CURR_ROUND as a parameter
4725   IF l_cmapp_curr_round_tab.count > 0 THEN
4726 
4727     FOR i in l_cmapp_curr_round_tab.FIRST..l_cmapp_curr_round_tab.LAST
4728     LOOP
4729          mfar_cmapp_trx_update(l_cmapp_curr_round_tab(i), 'CURR_ROUND');
4730     END LOOP;
4731 
4732   END IF;
4733 
4734 
4735   OPEN cmapp_exch_rate_cur;
4736   LOOP
4737   fetch cmapp_exch_rate_cur bulk collect into l_cmapp_curr_round_tab LIMIT MAX_ARRAY_SIZE;
4738   exit when cmapp_exch_rate_cur%NOTFOUND;
4739   end loop;
4740   close cmapp_exch_rate_cur;
4741 
4742   local_log(procedure_name => 'mfar_cmapp_fetch',
4743                p_msg_text     => 'No. of Exchange_rate rows: '|| l_cmapp_curr_round_tab.count);
4744 
4745   -- If there exists applications with EXCH_GAIN_LOSS, call the mfar_cmapp_trx_update procedure
4746   -- for each source id with EXCHG_GAIN_LOSS as a parameter
4747   IF l_cmapp_curr_round_tab.count > 0 THEN
4748 
4749     FOR i in l_cmapp_curr_round_tab.FIRST..l_cmapp_curr_round_tab.LAST
4750     LOOP
4751          mfar_cmapp_trx_update(l_cmapp_curr_round_tab(i), 'EXCHG_GAIN_LOSS');
4752     END LOOP;
4753 
4754   END IF;
4755 
4756   local_log(procedure_name => 'mfar_cmapp_fetch',
4757                p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_cmapp_fetch ()-');
4758   EXCEPTION
4759   --  WHEN NO_DATA_FOUND THEN NULL;
4760     WHEN OTHERS THEN
4761      local_log(procedure_name => 'mfar_cmapp_fetch',
4762                p_msg_text     => 'EXCEPTION OTHERS in mfar_cmapp_fetch '||
4763                    arp_global.CRLF || 'Error      :'|| SQLERRM);
4764       FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
4765       FND_MESSAGE.SET_TOKEN('MESSAGE' ,
4766            'Procedure :arp_xla_extract_main_pkg.mfar_cmapp_fetch'|| arp_global.CRLF||
4767            'Error     :'||SQLERRM);
4768       FND_MSG_PUB.ADD;
4769     RAISE;
4770 
4771 END;
4772 
4773 /*---------------------------------------------------------------------------+
4774  | Procedure Name : mfar_cmapp_trx_update
4775  | Description    : Check if the CM and Invoice are of same funds and ratio.
4776  |                  If p_call is CURR_ROUND, check if the difference in
4777  |                  acctd_amounts is equal to CURR_ROUND else if p_call is
4778  |                  EXCHG_GAIN_LOSS, check if the amounts are equal.
4779  |                  If any of the above conditions fail, return from the
4780  |                  procedure, else update the column cm_app_to_trx_line_id
4781  |                  so that it behaves as a Regular CM from now on.
4782  +----------------------------------------------------------------------------+
4783  | History        :
4784  | 10-AUG-2010     Ram Manikandan    Created due to bug#10047351
4785  +---------------------------------------------------------------------------*/
4786 
4787 PROCEDURE mfar_cmapp_trx_update(p_cmapp_curr_round IN cmapp_curr_round, p_call IN VARCHAR2) IS
4788 
4789 CURSOR cmapp_rec_cur (p_source_id NUMBER, p_from_to_flag VARCHAR2) IS
4790 SELECT bal_seg_value, sum(amount), sum(acctd_amount), min(customer_trx_line_id)
4791 FROM ar_xla_lines_extract
4792 WHERE source_id = p_source_id
4793 AND source_table = 'RA'
4794 AND posting_entity = 'APP'
4795 AND event_class_code = 'CREDIT_MEMO'
4796 AND source_type = 'REC'
4797 AND mfar_additional_entry = 'N'
4798 AND cm_app_to_trx_line_id IS NULL
4799 AND from_to_flag = p_from_to_flag
4800 GROUP BY bal_seg_value
4801 ORDER BY bal_seg_value;
4802 
4803 l_cmapp_rec_record_tab_f cmapp_rec_record_tab;
4804 l_cmapp_rec_record_tab_t cmapp_rec_record_tab;
4805 
4806 local_round    NUMBER;
4807 
4808 BEGIN
4809 
4810   local_log(procedure_name => 'mfar_cmapp_trx_update',
4811                p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_cmapp_trx_update ()+');
4812 
4813   local_round := p_cmapp_curr_round.acctd_amount;
4814 
4815   local_log(procedure_name => 'mfar_cmapp_trx_update',
4816                p_msg_text     => 'Source ID: '||p_cmapp_curr_round.source_id);
4817   local_log(procedure_name => 'mfar_cmapp_trx_update',
4818                p_msg_text     => 'Local Round: '||local_round);
4819 
4820   -- Fetch the FROM and TO set of lines for on-account CMs
4821   OPEN cmapp_rec_cur(p_cmapp_curr_round.source_id, 'F');
4822   LOOP
4823     FETCH cmapp_rec_cur bulk collect into l_cmapp_rec_record_tab_f LIMIT MAX_ARRAY_SIZE;
4824     exit when cmapp_rec_cur%NOTFOUND;
4825   end loop;
4826   close cmapp_rec_cur;
4827 
4828   OPEN cmapp_rec_cur(p_cmapp_curr_round.source_id, 'T');
4829   LOOP
4830     FETCH cmapp_rec_cur bulk collect into l_cmapp_rec_record_tab_t LIMIT MAX_ARRAY_SIZE;
4831     exit when cmapp_rec_cur%NOTFOUND;
4832   end loop;
4833   close cmapp_rec_cur;
4834 
4835   local_log(procedure_name => 'mfar_cmapp_trx_update',
4836                p_msg_text     => 'From count: '||l_cmapp_rec_record_tab_f.count);
4837   local_log(procedure_name => 'mfar_cmapp_trx_update',
4838                p_msg_text     => 'To count: '||l_cmapp_rec_record_tab_t.count);
4839 
4840   -- Check if there are same number of lines in both the records to ensure that there are same funds used
4841   IF l_cmapp_rec_record_tab_f.count = 0
4842       OR l_cmapp_rec_record_tab_t.count = 0
4843       OR l_cmapp_rec_record_tab_f.count <> l_cmapp_rec_record_tab_t.count THEN
4844     RETURN;
4845   END IF;
4846 
4847   FOR i IN l_cmapp_rec_record_tab_f.FIRST..l_cmapp_rec_record_tab_f.LAST
4848   LOOP
4849 
4850     -- Check if the FUNDS are same
4851     IF l_cmapp_rec_record_tab_f(i).bal_seg_value <> l_cmapp_rec_record_tab_t(i).bal_seg_value THEN
4852       RETURN;
4853     END IF;
4854 
4855    IF p_call = 'CURR_ROUND' THEN
4856         -- Check if the difference is equal to CURR_ROUND
4857         IF ABS(l_cmapp_rec_record_tab_f(i).acctd_amount+l_cmapp_rec_record_tab_t(i).acctd_amount) = ABS(local_round) THEN
4858           local_round := 0;
4859         ELSIF ABS(l_cmapp_rec_record_tab_f(i).acctd_amount+l_cmapp_rec_record_tab_t(i).acctd_amount) <> 0 THEN
4860           RETURN;
4861         END IF;
4862    ELSIF  p_call = 'EXCHG_GAIN_LOSS' THEN
4863        -- This is exchange rate case. If amounts are matching fund wise then convert it to Regular CM
4864          IF ABS(l_cmapp_rec_record_tab_f(i).amount+l_cmapp_rec_record_tab_t(i).amount) <> 0 THEN
4865            RETURN;
4866          END IF;
4867    END IF;
4868 
4869   END LOOP;
4870 
4871   -- Update the column cm_app_to_trx_line_id with appropriate value so that the
4872   -- CM accounting happens as for a regular CM from now on.
4873   FOR j in l_cmapp_rec_record_tab_t.FIRST..l_cmapp_rec_record_tab_t.LAST LOOP
4874         UPDATE ar_xla_lines_extract
4875          SET cm_app_to_trx_line_id = l_cmapp_rec_record_tab_t(j).cust_trx_line_id
4876          WHERE source_id = p_cmapp_curr_round.source_id
4877          AND bal_seg_value = l_cmapp_rec_record_tab_t(j).bal_seg_value
4878          AND source_type = 'REC'
4879          AND event_class_code = 'CREDIT_MEMO';
4880   END LOOP;
4881 
4882   local_log(procedure_name => 'mfar_cmapp_trx_update',
4883                p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_cmapp_trx_update ()-');
4884 
4885   EXCEPTION
4886   --  WHEN NO_DATA_FOUND THEN NULL;
4887     WHEN OTHERS THEN
4888      local_log(procedure_name => 'mfar_cmapp_trx_update',
4889                p_msg_text     => 'EXCEPTION OTHERS in mfar_cmapp_trx_update '||
4890                    arp_global.CRLF || 'Error      :'|| SQLERRM);
4891       FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
4892       FND_MESSAGE.SET_TOKEN('MESSAGE' ,
4893            'Procedure :arp_xla_extract_main_pkg.mfar_cmapp_trx_update'|| arp_global.CRLF||
4894            'Error     :'||SQLERRM);
4895       FND_MSG_PUB.ADD;
4896     RAISE;
4897 
4898 END;
4899 
4900 /*---------------------------------------------------------------------------+
4901  | Procedure Name : mfar_cmapp_curr_round
4902  | Description    : Calculates the Line Level Currency Rounding for both
4903  |                  Regular and On-Account Credit Memo Applications for MFAR
4904  |                  Customers.
4905  +----------------------------------------------------------------------------+
4906  | History        :
4907  | 10-AUG-2010     Ram Manikandan    Created due to bug#9860123
4908  | 02-SEP-2010     Ram Manikandan    Modified for bug#10047351
4909  +---------------------------------------------------------------------------*/
4910 
4911 PROCEDURE mfar_cmapp_curr_round
4912 IS
4913 BEGIN
4914 
4915   local_log(procedure_name => 'mfar_reg_cmapp_curr_round',
4916                p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_reg_cmapp_curr_round ()+');
4917 
4918 -- Insert MFAR CURR_ROUND rows for regular Credit Memos
4919 INSERT INTO ar_xla_lines_extract (
4920  EVENT_ID
4921 ,LINE_NUMBER
4922 ,LANGUAGE
4923 ,LEDGER_ID
4924 ,SOURCE_ID
4925 ,SOURCE_TABLE
4926 ,LINE_ID
4927 ,TAX_CODE_ID
4928 ,LOCATION_SEGMENT_ID
4929 ,BASE_CURRENCY_CODE
4930 ,EXCHANGE_RATE_TYPE
4931 ,EXCHANGE_RATE
4932 ,EXCHANGE_DATE
4933 ,ACCTD_AMOUNT
4934 ,TAXABLE_ACCTD_AMOUNT
4935 ,ORG_ID
4936 ,HEADER_TABLE_ID
4937 ,POSTING_ENTITY
4938 ,CASH_RECEIPT_ID
4939 ,CUSTOMER_TRX_ID
4940 ,CUSTOMER_TRX_LINE_ID
4941 ,CUST_TRX_LINE_GL_DIST_ID
4942 ,CUST_TRX_LINE_SALESREP_ID
4943 ,INVENTORY_ITEM_ID
4944 ,SALES_TAX_ID
4945 ,SO_ORGANIZATION_ID
4946 ,TAX_EXEMPTION_ID
4947 ,UOM_CODE
4948 ,WAREHOUSE_ID
4949 ,AGREEMENT_ID
4950 ,CUSTOMER_BANK_ACCT_ID
4951 ,DRAWEE_BANK_ACCOUNT_ID
4952 ,REMITTANCE_BANK_ACCT_ID
4953 ,DISTRIBUTION_SET_ID
4954 ,PAYMENT_SCHEDULE_ID
4955 ,RECEIPT_METHOD_ID
4956 ,RECEIVABLES_TRX_ID
4957 ,ED_ADJ_RECEIVABLES_TRX_ID
4958 ,UNED_RECEIVABLES_TRX_ID
4959 ,SET_OF_BOOKS_ID
4960 ,SALESREP_ID
4961 ,BILL_SITE_USE_ID
4962 ,DRAWEE_SITE_USE_ID
4963 ,PAYING_SITE_USE_ID
4964 ,SOLD_SITE_USE_ID
4965 ,SHIP_SITE_USE_ID
4966 ,RECEIPT_CUSTOMER_SITE_USE_ID
4967 ,BILL_CUST_ROLE_ID
4968 ,DRAWEE_CUST_ROLE_ID
4969 ,SHIP_CUST_ROLE_ID
4970 ,SOLD_CUST_ROLE_ID
4971 ,BILL_CUSTOMER_ID
4972 ,DRAWEE_CUSTOMER_ID
4973 ,PAYING_CUSTOMER_ID
4974 ,SOLD_CUSTOMER_ID
4975 ,SHIP_CUSTOMER_ID
4976 ,REMIT_ADDRESS_ID
4977 ,RECEIPT_BATCH_ID
4978 ,RECEIVABLE_APPLICATION_ID
4979 ,CUSTOMER_BANK_BRANCH_ID
4980 ,ISSUER_BANK_BRANCH_ID
4981 ,BATCH_SOURCE_ID
4982 ,BATCH_ID
4983 ,TERM_ID
4984 ,SELECT_FLAG
4985 ,LEVEL_FLAG
4986 ,FROM_TO_FLAG
4987 ,CRH_STATUS
4988 ,CRH_PRV_STATUS
4989 ,AMOUNT
4990 ,FROM_AMOUNT
4991 ,FROM_ACCTD_AMOUNT
4992 ,PREV_FUND_SEG_REPLACE
4993 ,APP_CRH_STATUS
4994 ,PAIRED_CCID
4995 ,PAIRE_DIST_ID
4996 ,REF_DIST_CCID
4997 ,REF_MF_DIST_FLAG
4998 ,ORIGIN_EXTRACT_TABLE
4999 ,EVENT_TYPE_CODE
5000 ,EVENT_CLASS_CODE
5001 ,ENTITY_CODE
5002 ,REVERSAL_CODE
5003 ,BUSINESS_FLOW_CODE
5004 ,TAX_LINE_ID
5005 ,ADDITIONAL_CHAR1
5006 ,ADDITIONAL_CHAR2
5007 ,ADDITIONAL_CHAR3
5008 ,ADDITIONAL_CHAR4
5009 ,ADDITIONAL_CHAR5
5010 ,CM_APP_TO_TRX_LINE_ID
5011 ,ADDITIONAL_ID2
5012 ,ADDITIONAL_ID3
5013 ,ADDITIONAL_ID4
5014 ,ADDITIONAL_ID5
5015 ,XLA_ENTITY_ID
5016 ,REF_CTLGD_CCID
5017 ,DIST_CCID
5018 ,FROM_EXCHANGE_RATE
5019 ,FROM_EXCHANGE_RATE_TYPE
5020 ,FROM_EXCHANGE_DATE
5021 ,FROM_CURRENCY_CODE
5022 ,TO_CURRENCY_CODE
5023 ,MFAR_ADDITIONAL_ENTRY
5024 ,THIRD_PARTY_ID
5025 ,THIRD_PARTY_SITE_ID
5026 ,THIRD_PARTY_TYPE
5027 ,SOURCE_TYPE )
5028 SELECT l.EVENT_ID
5029 ,-1 * ar_mfar_extract_s.nextval
5030 ,l.LANGUAGE
5031 ,l.LEDGER_ID
5032 ,l.SOURCE_ID
5033 ,l.SOURCE_TABLE
5034 ,l.LINE_ID
5035 ,l.TAX_CODE_ID
5036 ,l.LOCATION_SEGMENT_ID
5037 ,l.BASE_CURRENCY_CODE
5038 ,l.EXCHANGE_RATE_TYPE
5039 ,l.EXCHANGE_RATE
5040 ,l.EXCHANGE_DATE
5041 ,curr.ACCTD_AMT
5042 ,l.TAXABLE_ACCTD_AMOUNT
5043 ,l.ORG_ID
5044 ,l.HEADER_TABLE_ID
5045 ,l.POSTING_ENTITY
5046 ,l.CASH_RECEIPT_ID
5047 ,l.CUSTOMER_TRX_ID
5048 ,l.CUSTOMER_TRX_LINE_ID
5049 ,l.CUST_TRX_LINE_GL_DIST_ID
5050 ,l.CUST_TRX_LINE_SALESREP_ID
5051 ,l.INVENTORY_ITEM_ID
5052 ,l.SALES_TAX_ID
5053 ,l.SO_ORGANIZATION_ID
5054 ,l.TAX_EXEMPTION_ID
5055 ,l.UOM_CODE
5056 ,l.WAREHOUSE_ID
5057 ,l.AGREEMENT_ID
5058 ,l.CUSTOMER_BANK_ACCT_ID
5059 ,l.DRAWEE_BANK_ACCOUNT_ID
5060 ,l.REMITTANCE_BANK_ACCT_ID
5061 ,l.DISTRIBUTION_SET_ID
5062 ,l.PAYMENT_SCHEDULE_ID
5063 ,l.RECEIPT_METHOD_ID
5064 ,l.RECEIVABLES_TRX_ID
5065 ,l.ED_ADJ_RECEIVABLES_TRX_ID
5066 ,l.UNED_RECEIVABLES_TRX_ID
5067 ,l.SET_OF_BOOKS_ID
5068 ,l.SALESREP_ID
5069 ,l.BILL_SITE_USE_ID
5070 ,l.DRAWEE_SITE_USE_ID
5071 ,l.PAYING_SITE_USE_ID
5072 ,l.SOLD_SITE_USE_ID
5073 ,l.SHIP_SITE_USE_ID
5074 ,l.RECEIPT_CUSTOMER_SITE_USE_ID
5075 ,l.BILL_CUST_ROLE_ID
5076 ,l.DRAWEE_CUST_ROLE_ID
5077 ,l.SHIP_CUST_ROLE_ID
5078 ,l.SOLD_CUST_ROLE_ID
5079 ,l.BILL_CUSTOMER_ID
5080 ,l.DRAWEE_CUSTOMER_ID
5081 ,l.PAYING_CUSTOMER_ID
5082 ,l.SOLD_CUSTOMER_ID
5083 ,l.SHIP_CUSTOMER_ID
5084 ,l.REMIT_ADDRESS_ID
5085 ,l.RECEIPT_BATCH_ID
5086 ,l.RECEIVABLE_APPLICATION_ID
5087 ,l.CUSTOMER_BANK_BRANCH_ID
5088 ,l.ISSUER_BANK_BRANCH_ID
5089 ,l.BATCH_SOURCE_ID
5090 ,l.BATCH_ID
5091 ,l.TERM_ID
5092 ,l.SELECT_FLAG
5093 ,l.LEVEL_FLAG
5094 ,l.FROM_TO_FLAG
5095 ,l.CRH_STATUS
5096 ,l.CRH_PRV_STATUS
5097 ,curr.AMOUNT
5098 ,curr.FROM_AMOUNT
5099 ,curr.FROM_ACCTD_AMT
5100 ,l.PREV_FUND_SEG_REPLACE
5101 ,l.APP_CRH_STATUS
5102 ,l.PAIRED_CCID
5103 ,l.PAIRE_DIST_ID
5104 ,l.REF_DIST_CCID
5105 ,l.REF_MF_DIST_FLAG
5106 ,l.ORIGIN_EXTRACT_TABLE
5107 ,l.EVENT_TYPE_CODE
5108 ,l.EVENT_CLASS_CODE
5109 ,l.ENTITY_CODE
5110 ,l.REVERSAL_CODE
5111 ,l.BUSINESS_FLOW_CODE
5112 ,l.TAX_LINE_ID
5113 ,l.ADDITIONAL_CHAR1
5114 ,l.ADDITIONAL_CHAR2
5115 ,l.ADDITIONAL_CHAR3
5116 ,l.ADDITIONAL_CHAR4
5117 ,l.ADDITIONAL_CHAR5
5118 ,l.CM_APP_TO_TRX_LINE_ID
5119 ,l.ADDITIONAL_ID2
5120 ,l.ADDITIONAL_ID3
5121 ,l.ADDITIONAL_ID4
5122 ,l.ADDITIONAL_ID5
5123 ,l.XLA_ENTITY_ID
5124 ,l.REF_CTLGD_CCID
5125 ,ard.code_combination_id
5126 ,l.FROM_EXCHANGE_RATE
5127 ,l.FROM_EXCHANGE_RATE_TYPE
5128 ,l.FROM_EXCHANGE_DATE
5129 ,l.FROM_CURRENCY_CODE
5130 ,l.TO_CURRENCY_CODE
5131 ,'Y'
5132 ,l.THIRD_PARTY_ID
5133 ,l.THIRD_PARTY_SITE_ID
5134 ,l.THIRD_PARTY_TYPE
5135 ,'CURR_ROUND'
5136 FROM AR_XLA_LINES_EXTRACT l,
5137      (SELECT
5138       event_id,
5139       source_id,
5140       CM_APP_TO_TRX_LINE_ID,
5141       sum(-1*ACCTD_AMOUNT) ACCTD_AMT,
5142       sum(-1*FROM_ACCTD_AMOUNT) FROM_ACCTD_AMT,
5143       sum(AMOUNT) AMOUNT,
5144       sum(FROM_AMOUNT) FROM_AMOUNT
5145          FROM ar_xla_lines_extract
5146          WHERE POSTING_ENTITY = 'APP'
5147          AND CUSTOMER_TRX_LINE_ID is not null
5148          AND source_type = 'REC'
5149          AND MFAR_ADDITIONAL_ENTRY = 'N'
5150          GROUP BY event_id, source_id, CM_APP_TO_TRX_LINE_ID
5151          HAVING sum(ACCTD_AMOUNT)  <> 0 AND sum(AMOUNT) = 0
5152          ) curr,
5153         AR_DISTRIBUTIONS_ALL ard
5154 WHERE l.MFAR_ADDITIONAL_ENTRY = 'N'
5155 AND l.FROM_TO_FLAG = 'T'
5156 AND l.LEVEL_FLAG = 'L'
5157 AND l.event_id = curr.event_id
5158 AND l.source_id = curr.source_id
5159 AND l.CUSTOMER_TRX_LINE_ID = curr.CM_APP_TO_TRX_LINE_ID
5160 AND l.source_type = 'REC'
5161 AND l.source_id = ard.source_id
5162 AND ard.source_table = 'RA'
5163 AND ard.source_type = 'CURR_ROUND';
5164 
5165 -- Insert MFAR CURR_ROUND rows for on-account Credit Memos
5166 INSERT INTO ar_xla_lines_extract (
5167  EVENT_ID
5168 ,LINE_NUMBER
5169 ,LANGUAGE
5170 ,LEDGER_ID
5171 ,SOURCE_ID
5172 ,SOURCE_TABLE
5173 ,LINE_ID
5174 ,TAX_CODE_ID
5175 ,LOCATION_SEGMENT_ID
5176 ,BASE_CURRENCY_CODE
5177 ,EXCHANGE_RATE_TYPE
5178 ,EXCHANGE_RATE
5179 ,EXCHANGE_DATE
5180 ,ACCTD_AMOUNT
5181 ,TAXABLE_ACCTD_AMOUNT
5182 ,ORG_ID
5183 ,HEADER_TABLE_ID
5184 ,POSTING_ENTITY
5185 ,CASH_RECEIPT_ID
5186 ,CUSTOMER_TRX_ID
5187 ,CUSTOMER_TRX_LINE_ID
5188 ,CUST_TRX_LINE_GL_DIST_ID
5189 ,CUST_TRX_LINE_SALESREP_ID
5190 ,INVENTORY_ITEM_ID
5191 ,SALES_TAX_ID
5192 ,SO_ORGANIZATION_ID
5193 ,TAX_EXEMPTION_ID
5194 ,UOM_CODE
5195 ,WAREHOUSE_ID
5196 ,AGREEMENT_ID
5197 ,CUSTOMER_BANK_ACCT_ID
5198 ,DRAWEE_BANK_ACCOUNT_ID
5199 ,REMITTANCE_BANK_ACCT_ID
5200 ,DISTRIBUTION_SET_ID
5201 ,PAYMENT_SCHEDULE_ID
5202 ,RECEIPT_METHOD_ID
5203 ,RECEIVABLES_TRX_ID
5204 ,ED_ADJ_RECEIVABLES_TRX_ID
5205 ,UNED_RECEIVABLES_TRX_ID
5206 ,SET_OF_BOOKS_ID
5207 ,SALESREP_ID
5208 ,BILL_SITE_USE_ID
5209 ,DRAWEE_SITE_USE_ID
5210 ,PAYING_SITE_USE_ID
5211 ,SOLD_SITE_USE_ID
5212 ,SHIP_SITE_USE_ID
5213 ,RECEIPT_CUSTOMER_SITE_USE_ID
5214 ,BILL_CUST_ROLE_ID
5215 ,DRAWEE_CUST_ROLE_ID
5216 ,SHIP_CUST_ROLE_ID
5217 ,SOLD_CUST_ROLE_ID
5218 ,BILL_CUSTOMER_ID
5219 ,DRAWEE_CUSTOMER_ID
5220 ,PAYING_CUSTOMER_ID
5221 ,SOLD_CUSTOMER_ID
5222 ,SHIP_CUSTOMER_ID
5223 ,REMIT_ADDRESS_ID
5224 ,RECEIPT_BATCH_ID
5225 ,RECEIVABLE_APPLICATION_ID
5226 ,CUSTOMER_BANK_BRANCH_ID
5227 ,ISSUER_BANK_BRANCH_ID
5228 ,BATCH_SOURCE_ID
5229 ,BATCH_ID
5230 ,TERM_ID
5231 ,SELECT_FLAG
5232 ,LEVEL_FLAG
5233 ,FROM_TO_FLAG
5234 ,CRH_STATUS
5235 ,CRH_PRV_STATUS
5236 ,AMOUNT
5237 ,FROM_AMOUNT
5238 ,FROM_ACCTD_AMOUNT
5239 ,PREV_FUND_SEG_REPLACE
5240 ,APP_CRH_STATUS
5241 ,PAIRED_CCID
5242 ,PAIRE_DIST_ID
5243 ,REF_DIST_CCID
5244 ,REF_MF_DIST_FLAG
5245 ,ORIGIN_EXTRACT_TABLE
5246 ,EVENT_TYPE_CODE
5247 ,EVENT_CLASS_CODE
5248 ,ENTITY_CODE
5249 ,REVERSAL_CODE
5250 ,BUSINESS_FLOW_CODE
5251 ,TAX_LINE_ID
5252 ,ADDITIONAL_CHAR1
5253 ,ADDITIONAL_CHAR2
5254 ,ADDITIONAL_CHAR3
5255 ,ADDITIONAL_CHAR4
5256 ,ADDITIONAL_CHAR5
5257 ,ADDITIONAL_ID1
5258 ,ADDITIONAL_ID2
5259 ,ADDITIONAL_ID3
5260 ,ADDITIONAL_ID4
5261 ,ADDITIONAL_ID5
5262 ,XLA_ENTITY_ID
5263 ,REF_CTLGD_CCID
5264 ,DIST_CCID
5265 ,FROM_EXCHANGE_RATE
5266 ,FROM_EXCHANGE_RATE_TYPE
5267 ,FROM_EXCHANGE_DATE
5268 ,FROM_CURRENCY_CODE
5269 ,TO_CURRENCY_CODE
5270 ,MFAR_ADDITIONAL_ENTRY
5271 ,THIRD_PARTY_ID
5272 ,THIRD_PARTY_SITE_ID
5273 ,THIRD_PARTY_TYPE
5274 ,SOURCE_TYPE )
5275 SELECT l.EVENT_ID
5276 ,-1 * ar_mfar_extract_s.nextval
5277 ,l.LANGUAGE
5278 ,l.LEDGER_ID
5279 ,l.SOURCE_ID
5280 ,l.SOURCE_TABLE
5281 ,l.LINE_ID
5282 ,l.TAX_CODE_ID
5283 ,l.LOCATION_SEGMENT_ID
5284 ,l.BASE_CURRENCY_CODE
5285 ,l.EXCHANGE_RATE_TYPE
5286 ,l.EXCHANGE_RATE
5287 ,l.EXCHANGE_DATE
5288 ,curr.CURR_ROUND_ACCTD_AMT FROM_ACCTD_AMOUNT -- Currency Rounding Amount
5289 ,l.TAXABLE_ACCTD_AMOUNT
5290 ,l.ORG_ID
5291 ,l.HEADER_TABLE_ID
5292 ,l.POSTING_ENTITY
5293 ,l.CASH_RECEIPT_ID
5294 ,l.CUSTOMER_TRX_ID
5295 ,l.CUSTOMER_TRX_LINE_ID
5296 ,l.CUST_TRX_LINE_GL_DIST_ID
5297 ,l.CUST_TRX_LINE_SALESREP_ID
5298 ,l.INVENTORY_ITEM_ID
5299 ,l.SALES_TAX_ID
5300 ,l.SO_ORGANIZATION_ID
5301 ,l.TAX_EXEMPTION_ID
5302 ,l.UOM_CODE
5303 ,l.WAREHOUSE_ID
5304 ,l.AGREEMENT_ID
5305 ,l.CUSTOMER_BANK_ACCT_ID
5306 ,l.DRAWEE_BANK_ACCOUNT_ID
5307 ,l.REMITTANCE_BANK_ACCT_ID
5308 ,l.DISTRIBUTION_SET_ID
5309 ,l.PAYMENT_SCHEDULE_ID
5310 ,l.RECEIPT_METHOD_ID
5311 ,l.RECEIVABLES_TRX_ID
5312 ,l.ED_ADJ_RECEIVABLES_TRX_ID
5313 ,l.UNED_RECEIVABLES_TRX_ID
5314 ,l.SET_OF_BOOKS_ID
5315 ,l.SALESREP_ID
5316 ,l.BILL_SITE_USE_ID
5317 ,l.DRAWEE_SITE_USE_ID
5318 ,l.PAYING_SITE_USE_ID
5319 ,l.SOLD_SITE_USE_ID
5320 ,l.SHIP_SITE_USE_ID
5321 ,l.RECEIPT_CUSTOMER_SITE_USE_ID
5322 ,l.BILL_CUST_ROLE_ID
5323 ,l.DRAWEE_CUST_ROLE_ID
5324 ,l.SHIP_CUST_ROLE_ID
5325 ,l.SOLD_CUST_ROLE_ID
5326 ,l.BILL_CUSTOMER_ID
5327 ,l.DRAWEE_CUSTOMER_ID
5328 ,l.PAYING_CUSTOMER_ID
5329 ,l.SOLD_CUSTOMER_ID
5330 ,l.SHIP_CUSTOMER_ID
5331 ,l.REMIT_ADDRESS_ID
5332 ,l.RECEIPT_BATCH_ID
5333 ,l.RECEIVABLE_APPLICATION_ID
5334 ,l.CUSTOMER_BANK_BRANCH_ID
5335 ,l.ISSUER_BANK_BRANCH_ID
5336 ,l.BATCH_SOURCE_ID
5337 ,l.BATCH_ID
5338 ,l.TERM_ID
5339 ,l.SELECT_FLAG
5340 ,l.LEVEL_FLAG
5341 ,l.FROM_TO_FLAG
5342 ,l.CRH_STATUS
5343 ,l.CRH_PRV_STATUS
5344 ,(NVL(ard.amount_cr,0) - NVL(ard.amount_dr,0)) AMOUNT
5345 ,(NVL(ard.from_amount_cr,0) - NVL(ard.from_amount_dr,0)) FROM_AMOUNT
5346 ,curr.CURR_ROUND_ACCTD_AMT  FROM_ACCTD_AMOUNT -- Currency Rounding Amount
5347 ,l.PREV_FUND_SEG_REPLACE
5348 ,l.APP_CRH_STATUS
5349 ,l.PAIRED_CCID
5350 ,l.PAIRE_DIST_ID
5351 ,l.REF_DIST_CCID
5352 ,l.REF_MF_DIST_FLAG
5353 ,l.ORIGIN_EXTRACT_TABLE
5354 ,l.EVENT_TYPE_CODE
5355 ,l.EVENT_CLASS_CODE
5356 ,l.ENTITY_CODE
5357 ,l.REVERSAL_CODE
5358 ,l.BUSINESS_FLOW_CODE
5359 ,l.TAX_LINE_ID
5360 ,l.ADDITIONAL_CHAR1
5361 ,l.ADDITIONAL_CHAR2
5362 ,l.ADDITIONAL_CHAR3
5363 ,l.ADDITIONAL_CHAR4
5364 ,l.ADDITIONAL_CHAR5
5365 ,l.ADDITIONAL_ID1
5366 ,l.ADDITIONAL_ID2
5367 ,l.ADDITIONAL_ID3
5368 ,l.ADDITIONAL_ID4
5369 ,l.ADDITIONAL_ID5
5370 ,l.XLA_ENTITY_ID
5371 ,l.REF_CTLGD_CCID
5372 ,ard.code_combination_id
5373 ,l.FROM_EXCHANGE_RATE
5374 ,l.FROM_EXCHANGE_RATE_TYPE
5375 ,l.FROM_EXCHANGE_DATE
5376 ,l.FROM_CURRENCY_CODE
5377 ,l.TO_CURRENCY_CODE
5378 ,'Y'
5379 ,l.THIRD_PARTY_ID
5380 ,l.THIRD_PARTY_SITE_ID
5381 ,l.THIRD_PARTY_TYPE
5382 ,ard.source_type
5383 FROM AR_XLA_LINES_EXTRACT l,
5384      AR_DISTRIBUTIONS_ALL ard,
5385      (select event_id,
5386              source_id,
5387                LINE_ID,
5388                sum(-1*ACCTD_AMOUNT) CURR_ROUND_ACCTD_AMT
5389        from ar_xla_lines_extract
5390        where POSTING_ENTITY = 'APP'
5391        AND CUSTOMER_TRX_LINE_ID is not null
5392        AND ((MFAR_ADDITIONAL_ENTRY = 'Y')
5393        OR (MFAR_ADDITIONAL_ENTRY = 'N' AND FROM_TO_FLAG = 'T'))
5394        group by event_id, source_id, LINE_ID
5395        having sum(-1*ACCTD_AMOUNT) <> 0) curr
5396 WHERE l.MFAR_ADDITIONAL_ENTRY = 'N'
5397 AND l.FROM_TO_FLAG = 'T'
5398 AND l.CUSTOMER_TRX_LINE_ID IS NOT NULL
5399 AND l.CM_APP_TO_TRX_LINE_ID IS NULL
5400 AND nvl(l.Source_Type, 'XX') <> 'CURR_ROUND'
5401 AND curr.source_id = ard.source_id
5402 AND ard.source_type = 'CURR_ROUND'
5403 AND ard.source_table = 'RA'
5404 AND l.line_id = curr.line_id
5405 AND l.event_id = curr.event_id
5406 AND l.source_id = curr.source_id;
5407 
5408   local_log(procedure_name => 'mfar_reg_cmapp_curr_round',
5409               p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_reg_cmapp_curr_round ()-');
5410 
5411   EXCEPTION
5412   --  WHEN NO_DATA_FOUND THEN NULL;
5413     WHEN OTHERS THEN
5414      local_log(procedure_name => 'mfar_reg_cmapp_curr_round',
5415                p_msg_text     => 'EXCEPTION OTHERS in mfar_reg_cmapp_curr_round '||
5416                    arp_global.CRLF || 'Error      :'|| SQLERRM);
5417       FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
5418       FND_MESSAGE.SET_TOKEN('MESSAGE' ,
5419            'Procedure :arp_xla_extract_main_pkg.mfar_reg_cmapp_curr_round'|| arp_global.CRLF||
5420            'Error     :'||SQLERRM);
5421       FND_MSG_PUB.ADD;
5422     RAISE;
5423 END;
5424 
5425 /*-------------------------------------------------------------------------------+
5426  | Procedure Name : mfar_cmapp_from_to
5427  | Description    : Fetch the CM REC lines (from side) and the Invoice REC
5428  |                  lines (to side) into separate records and call the procedure
5429  |                  to insert the MFAR additional lines to the extract table.
5430  |                  These cursors fetch rows only for on-account CM applications.
5431  +-------------------------------------------------------------------------------+
5432  | History        :
5433  | 25-JUL-2010     Ram Manikandan    Created due to bug#9860123
5434  | 02-SEP-2010     Ram Manikandan    Created due to bug#10047351
5435  +------------------------------------------------------------------------------*/
5436 
5437 PROCEDURE mfar_cmapp_from_to is
5438 
5439    l_ar_cm_from_tab ar_cm_from_tab;
5440    l_ar_cm_to_tab  ar_cm_to_tab;
5441 
5442   cursor ar_cm_from_cur is
5443   SELECT xla.entity_id                           --entity_id
5444         ,ra.receivable_application_id            --receivable_application_id
5445         ,ard.line_id                             --line_id
5446         ,ard.source_type                         --source_type
5447         ,ra.customer_trx_id                      --customer_trx_id
5448         ,NVL(ard.amount_cr,0)-
5449             NVL(ard.amount_dr,0)                --amount
5450        ,NVL(ard.acctd_amount_cr,0)-
5451            NVL(ard.acctd_amount_dr,0)          --acctd_amount
5452        ,NVL(sign(ra.amount_applied)*ra.amount_applied,0)                      --amount_applied_from
5453        ,NVL(sign(ra.acctd_amount_applied_from)*ra.acctd_amount_applied_from,0)           --acctd_amount_applied_from
5454        ,ard.code_combination_id                 --code_combination_id
5455        ,ard.currency_conversion_date             --exchange_date
5456        ,ard.currency_conversion_rate             --exchange_rate
5457        ,ard.currency_conversion_type             --exchange_type
5458        ,ard.third_party_id                      --third_party_id
5459        ,ard.third_party_sub_id                  --third_party_site_id
5460        ,ra.event_id                             --event_id
5461        ,ra.set_of_books_id                      --ledger_id
5462        ,ard.currency_code                       --currency_code
5463        ,ra.org_id                               --org_id
5464        ,sob.currency_code                       --base currency code
5465  FROM  ar_receivable_applications_all ra
5466       ,ar_distributions_all           ard
5467       ,(SELECT entity_id,
5468                source_id_int_1,
5469                event_id,
5470                ledger_id
5471           FROM xla_events_gt
5472          WHERE application_id  = 222
5473            AND event_type_code IN ('CM_CREATE','CM_UPDATE')
5474          GROUP BY entity_id,
5475                   source_id_int_1,
5476                   event_id,
5477                   ledger_id)    xla
5478       ,gl_sets_of_books sob
5479       ,ar_xla_lines_extract ext                      -- 10047351
5480  WHERE xla.source_id_int_1 = ra.customer_trx_id
5481  AND   xla.event_id = ra.event_id
5482  AND   ra.status = 'APP'
5483  AND   ra.receivable_application_id = ard.source_id
5484  AND   xla.ledger_id = sob.set_of_books_id
5485  AND   ard.source_table = 'RA'
5486  AND   ard.source_type = 'REC'
5487  AND   ard.source_id = ext.source_id
5488  AND   ard.line_id = ext.line_id
5489  AND   ext.event_class_code = 'CREDIT_MEMO'
5490  AND   ext.cm_app_to_trx_line_id IS NULL
5491  AND   ard.source_type NOT IN ('EXCH_GAIN','EXCH_LOSS','EDISC','UNEDISC','EDISC_NON_REC_TAX','UNEDISC_NON_REC_TAX','DEFERRED_TAX','TAX')
5492  AND ( ard.ref_cust_trx_line_gl_dist_id IS NOT NULL
5493                           AND ard.ref_cust_trx_line_gl_dist_id IN (SELECT cust_trx_line_gl_dist_id
5494                                                          FROM ra_cust_trx_line_gl_dist_all ctlgd
5495                                                          WHERE ctlgd.customer_trx_id =  ra.customer_trx_id)) -- Select only FROM rows which belong to Credit Memo
5496 ORDER BY ra.receivable_application_id, ard.line_id;
5497 
5498 
5499   CURSOR ar_cm_to_cur is
5500   SELECT xla.entity_id                           --entity_id
5501         ,ra.receivable_application_id            --receivable_application_id
5502         ,ard.line_id                             --line_id
5503         ,NVL(ard.amount_cr,0)-
5504              NVL(ard.amount_dr,0)                --amount
5505        ,NVL(ard.acctd_amount_cr,0)-
5506            NVL(ard.acctd_amount_dr,0)          --acctd_amount
5507       ,NVL(ard.from_amount_cr,0)-
5508            NVL(ard.from_amount_dr,0)           --from_amount
5509       ,NVL(ard.from_acctd_amount_cr,0)-
5510            NVL(ard.from_acctd_amount_dr,0)     --from_acctd_amount
5511       ,ard.third_party_id                      --third_party_id
5512       ,ard.third_party_sub_id                  --third_party_site_id
5513       ,DECODE(ard.third_party_id,NULL,NULL,'C') --third_party_type
5514       ,ard.currency_code                        -- currency_code
5515       ,ard.currency_conversion_rate             --exchange_rate
5516       ,ard.currency_conversion_type             --exchange_type
5517       ,ard.currency_conversion_date             --exchange_date
5518       ,ard.ref_customer_trx_line_id             --ref_customer_trx_line_id
5519       ,ard.ref_cust_trx_line_gl_dist_id         --ref_cust_trx_line_gl_dist_id
5520       ,ard.code_combination_id                  --code_combination_id
5521       ,ard.ref_dist_ccid                       --ref_dist_ccid
5522       ,ard.activity_bucket                     --activity_bucket
5523       ,ard.source_type                         --source_type
5524       ,ard.source_table                            --source_table
5525       ,DECODE(ra.posting_control_id,-3,'N','Y')   --ra_post_indicator
5526       ,ra.applied_customer_trx_id              --customer_trx_id
5527       ,ctl.inventory_item_id                     --inventory_item_id
5528       ,ctl.sales_tax_id                           --sales_tax_id
5529       ,ctl.tax_line_id                            --tax_line_id
5530       ,ct.bill_to_customer_id                     --bill_to_customer_id
5531       ,ct.bill_to_site_use_id                     --bill_to_site_use_id
5532       ,ct.sold_to_customer_id                     --sold_to_customer_id
5533       ,ct.sold_to_site_use_id                     --sold_to_site_use_id
5534       ,ct.ship_to_customer_id                     --ship_to_customer_id
5535       ,ct.ship_to_site_use_id                     --ship_to_site_use_id
5536 FROM ar_receivable_applications_all ra
5537       ,ar_distributions_all           ard
5538       ,ra_customer_trx_all            ct
5539       ,ra_customer_trx_lines_all      ctl
5540       ,(SELECT entity_id,
5541                source_id_int_1,
5542                event_id
5543           FROM xla_events_gt
5544          WHERE application_id  = 222
5545            AND event_type_code IN ('CM_CREATE','CM_UPDATE')
5546          GROUP BY entity_id,
5547                   source_id_int_1,
5548                   event_id)    xla
5549       ,ar_xla_lines_extract ext                  -- 10047351
5550 WHERE xla.source_id_int_1 = ra.customer_trx_id
5551 AND   xla.event_id = ra.event_id
5552 AND   ra.status = 'APP'
5553 AND   ra.receivable_application_id = ard.source_id
5554 AND   ard.source_table = 'RA'
5555 AND   ard.source_type = 'REC'
5556 AND   ard.source_id = ext.source_id
5557 AND   ard.line_id = ext.line_id
5558 AND   ext.event_class_code = 'CREDIT_MEMO'
5559 AND   ext.cm_app_to_trx_line_id IS NULL
5560 AND   ra.applied_customer_trx_id = ct.customer_trx_id
5561 AND   ct.customer_trx_id = ctl.customer_trx_id
5562 AND   ctl.customer_trx_line_id = ard.ref_customer_trx_line_id
5563 AND ard.source_type NOT IN ('EXCH_GAIN','EXCH_LOSS','EDISC','UNEDISC','EDISC_NON_REC_TAX','UNEDISC_NON_REC_TAX','DEFERRED_TAX','TAX')
5564 AND ( ard.ref_cust_trx_line_gl_dist_id IS NOT NULL
5565                           AND ard.ref_cust_trx_line_gl_dist_id IN (SELECT cust_trx_line_gl_dist_id
5566                                                          FROM ra_cust_trx_line_gl_dist_all ctlgd
5567                                                          WHERE ctlgd.customer_trx_id =  ra.applied_customer_trx_id)) -- Select only TO rows which belong to Invoice
5568 ORDER BY ra.receivable_application_id, (NVL(ard.from_amount_cr,0)-NVL(ard.from_amount_dr,0)); -- Bug 14140214
5569 
5570 begin
5571   local_log(procedure_name => 'mfar_cmapp_from_to',
5572                p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_cmapp_from_to ()+');
5573 
5574   -- Fetch the data of ar_cm_from_cur to the record l_ar_cm_from_tab
5575   open ar_cm_from_cur;
5576   loop
5577     fetch ar_cm_from_cur bulk collect into l_ar_cm_from_tab LIMIT MAX_ARRAY_SIZE;
5578     exit when ar_cm_from_cur%NOTFOUND;
5579   end loop;
5580   close ar_cm_from_cur;
5581   local_log(procedure_name => 'mfar_cmapp_from_to',
5582                p_msg_text     => 'l_ar_cm_from_tab.count:'|| l_ar_cm_from_tab.count);
5583 
5584   -- Fetch the data of ar_cm_to_cur to the record l_ar_cm_to_tab
5585   open ar_cm_to_cur;
5586   loop
5587     fetch ar_cm_to_cur bulk collect into l_ar_cm_to_tab LIMIT MAX_ARRAY_SIZE;
5588     exit when ar_cm_to_cur%NOTFOUND;
5589   end loop;
5590   close ar_cm_to_cur;
5591   local_log(procedure_name => 'mfar_cmapp_from_to',
5592                p_msg_text     => 'l_ar_cm_to_tab.count:'|| l_ar_cm_to_tab.count);
5593 
5594   IF l_ar_cm_from_tab.count > 0 AND l_ar_cm_to_tab.count > 0 THEN
5595       mfar_cm_app_insert_extract(l_ar_cm_from_tab, l_ar_cm_to_tab);
5596   END IF;
5597 
5598    EXCEPTION
5599    WHEN NO_DATA_FOUND THEN NULL;
5600    WHEN OTHERS THEN
5601     local_log(procedure_name => 'mfar_cmapp_from_to',
5602               p_msg_text     => 'EXCEPTION OTHERS in mfar_cmapp_from_to '||
5603                   arp_global.CRLF || 'Error      :'|| SQLERRM);
5604      FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
5605      FND_MESSAGE.SET_TOKEN('MESSAGE' ,
5606           'Procedure :arp_xla_extract_main_pkg.mfar_cmapp_from_to'|| arp_global.CRLF||
5607           'Error     :'||SQLERRM);
5608      FND_MSG_PUB.ADD;
5609    RAISE;
5610 
5611 END mfar_cmapp_from_to;
5612 
5613 /*-------------------------------------------------------------------------------+
5614  | Procedure Name : mfar_cm_app_insert_extract
5615  | Description    : Pro-rates the CM line amounts across the Invoice line amounts
5616  |                  irrespective of the funds they belong to and insert the
5617  |                  MFAR additional lines to the extract table.
5618  +-------------------------------------------------------------------------------+
5619  | History        :
5620  | 25-JUL-2010     Ram Manikandan    Created due to bug#9860123
5621  +------------------------------------------------------------------------------*/
5622 
5623 PROCEDURE mfar_cm_app_insert_extract(p_ar_cm_from_rec IN ar_cm_from_tab, p_ar_cm_to_rec IN OUT NOCOPY ar_cm_to_tab) IS
5624 
5625 -- run time variables for proration
5626   x_run_amt             number := 0;
5627   x_run_alloc_amt       number := 0;
5628   x_alloc_amt           number := 0;
5629   x_base_sum            number := 0;
5630   x_applied_amount      number := 0;
5631   x_base_acctd_sum      number := 0;
5632   x_applied_acctd_amount      number := 0;
5633 
5634   x_run_acctd_amt       number := 0;
5635   x_run_alloc_acctd_amt number := 0;
5636   x_alloc_acctd_amt     number := 0;
5637 
5638   i                     number := 0;
5639   j                     number := 0;
5640   k                     number := 1;
5641   x_app_id              number := 0;
5642   x_sign_value          number := 0;
5643 
5644   l_ar_mfar_extract_s   number;
5645 
5646   -- pl/sql table for ar_xla_lines_extract
5647    TYPE ar_xla_mfar_extract_gt_tab IS TABLE OF ar_xla_lines_extract%ROWTYPE
5648       INDEX BY BINARY_INTEGER;
5649    l_cm_app_mfar_extract_tab ar_xla_mfar_extract_gt_tab;
5650 
5651 BEGIN
5652 
5653   local_log(procedure_name => 'mfar_cm_app_insert_extract',
5654               p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_cm_app_insert_extract()+');
5655 
5656 FOR i in p_ar_cm_from_rec.FIRST..p_ar_cm_from_rec.LAST
5657 LOOP
5658 
5659   x_run_amt       := 0;
5660   x_run_alloc_amt := 0;
5661   x_run_acctd_amt       := 0;
5662   x_run_alloc_acctd_amt := 0;
5663 
5664   if p_ar_cm_from_rec(i).receivable_application_id <> x_app_id then
5665     x_applied_amount := p_ar_cm_from_rec(i).amount_applied_from;
5666     x_applied_acctd_amount := p_ar_cm_from_rec(i).acctd_amount_applied_from;
5667   else
5668     x_applied_amount := abs(x_base_sum);
5669     x_applied_acctd_amount := abs(x_base_acctd_sum);
5670   end if;
5671 
5672   x_base_sum := 0;
5673   x_base_acctd_sum := 0;
5674 
5675   x_app_id := p_ar_cm_from_rec(i).receivable_application_id;
5676 
5677   local_log(procedure_name => 'mfar_cm_app_insert_extract',
5678               p_msg_text     => 'CM Line '||i||' Amount: '||p_ar_cm_from_rec(i).acctd_amount);
5679 
5680   FOR j in p_ar_cm_to_rec.FIRST..p_ar_cm_to_rec.LAST
5681   LOOP
5682 
5683        if p_ar_cm_from_rec(i).entity_id = p_ar_cm_to_rec(j).entity_id
5684           and p_ar_cm_from_rec(i).receivable_application_id = p_ar_cm_to_rec(j).receivable_application_id then
5685 
5686            x_alloc_amt := 0;
5687            x_alloc_acctd_amt := 0;
5688 
5689            IF x_applied_amount <> 0 THEN
5690 
5691                   local_log(procedure_name => 'mfar_cm_app_insert_extract',
5692                               p_msg_text     => 'Invoice Line '||j||' Amount: '||p_ar_cm_to_rec(j).from_acctd_amount);
5693 
5694                  IF p_ar_cm_to_rec(j).from_amount < 0 THEN
5695                    x_sign_value := -1;
5696                  ELSE
5697                    x_sign_value := 1;
5698                  END IF;
5699 
5700                  -- Proration of Amounts
5701                  x_run_amt       := x_run_amt + p_ar_cm_to_rec(j).from_amount;
5702                  x_alloc_amt     := ar_unposted_item_util.currRound((x_run_amt/x_applied_amount)
5703                                           * x_sign_value * p_ar_cm_from_rec(i).amount ,p_ar_cm_from_rec(i).CURRENCY_CODE)
5704                                                - x_run_alloc_amt;
5705                  x_run_alloc_amt := x_run_alloc_amt + x_alloc_amt;
5706                  p_ar_cm_to_rec(j).from_amount := p_ar_cm_to_rec(j).from_amount + x_alloc_amt;
5707                  x_base_sum := x_base_sum + p_ar_cm_to_rec(j).from_amount;
5708 
5709                  -- Proration of Accounted Amounts
5710                  x_run_acctd_amt       := x_run_acctd_amt +  p_ar_cm_to_rec(j).from_acctd_amount;
5711                  x_alloc_acctd_amt     := ar_unposted_item_util.currRound((x_run_acctd_amt/x_applied_acctd_amount)
5712                                                      * x_sign_value * p_ar_cm_from_rec(i).acctd_amount ,p_ar_cm_from_rec(i).CURRENCY_CODE) - x_run_alloc_acctd_amt;
5713                  x_run_alloc_acctd_amt := x_run_alloc_acctd_amt + x_alloc_acctd_amt;
5714                  p_ar_cm_to_rec(j).from_acctd_amount := p_ar_cm_to_rec(j).from_acctd_amount + x_alloc_acctd_amt;
5715                  x_base_acctd_sum := x_base_acctd_sum + p_ar_cm_to_rec(j).from_acctd_amount;
5716 
5717                  local_log(procedure_name => 'mfar_cm_app_insert_extract',
5718                             p_msg_text     => 'Prorated Amount: '||x_alloc_acctd_amt);
5719 
5720            END IF;
5721 
5722             SELECT ar_mfar_extract_s.nextval INTO l_ar_mfar_extract_s
5723  	          FROM dual;
5724 
5725             -- Assign the values to extract table
5726             l_cm_app_mfar_extract_tab(k).EVENT_ID                := p_ar_cm_from_rec(i).EVENT_ID;
5727             l_cm_app_mfar_extract_tab(k).LINE_NUMBER             := -1 * l_ar_mfar_extract_s;
5728             l_cm_app_mfar_extract_tab(k).MFAR_ADDITIONAL_ENTRY   := 'Y';
5729             l_cm_app_mfar_extract_tab(k).LEDGER_ID               := p_ar_cm_from_rec(i).LEDGER_ID;
5730             l_cm_app_mfar_extract_tab(k).BASE_CURRENCY_CODE      := p_ar_cm_from_rec(i).base_currency_code;
5731             l_cm_app_mfar_extract_tab(k).ORG_ID                  := p_ar_cm_from_rec(i).ORG_ID;
5732             l_cm_app_mfar_extract_tab(k).LINE_ID                 := p_ar_cm_to_rec(j).LINE_ID;
5733             l_cm_app_mfar_extract_tab(k).SOURCE_ID               := p_ar_cm_from_rec(i).receivable_application_id;
5734             l_cm_app_mfar_extract_tab(k).SOURCE_TABLE            := 'RA';
5735             l_cm_app_mfar_extract_tab(k).HEADER_TABLE_ID         := p_ar_cm_from_rec(i).receivable_application_id;
5736             l_cm_app_mfar_extract_tab(k).POSTING_ENTITY          := 'APP';
5737             l_cm_app_mfar_extract_tab(k).XLA_ENTITY_ID           := p_ar_cm_to_rec(j).ENTITY_ID;
5738             l_cm_app_mfar_extract_tab(k).DIST_CCID               := p_ar_cm_to_rec(j).code_combination_id;
5739             l_cm_app_mfar_extract_tab(k).REF_DIST_CCID           := p_ar_cm_to_rec(j).ref_dist_ccid;
5740             l_cm_app_mfar_extract_tab(k).FROM_CURRENCY_CODE      := p_ar_cm_from_rec(i).CURRENCY_CODE;
5741             l_cm_app_mfar_extract_tab(k).FROM_EXCHANGE_RATE      := p_ar_cm_from_rec(i).EXCHANGE_RATE;
5742             l_cm_app_mfar_extract_tab(k).FROM_EXCHANGE_RATE_TYPE := p_ar_cm_from_rec(i).EXCHANGE_RATE_TYPE;
5743             l_cm_app_mfar_extract_tab(k).FROM_EXCHANGE_DATE      := p_ar_cm_from_rec(i).EXCHANGE_DATE;
5744             l_cm_app_mfar_extract_tab(k).TO_CURRENCY_CODE        := p_ar_cm_from_rec(i).CURRENCY_CODE;
5745             l_cm_app_mfar_extract_tab(k).EXCHANGE_RATE           := p_ar_cm_from_rec(i).EXCHANGE_RATE;
5746             l_cm_app_mfar_extract_tab(k).EXCHANGE_RATE_TYPE      := p_ar_cm_from_rec(i).EXCHANGE_RATE_TYPE;
5747             l_cm_app_mfar_extract_tab(k).EXCHANGE_DATE           := p_ar_cm_from_rec(i).EXCHANGE_DATE;
5748             l_cm_app_mfar_extract_tab(k).AMOUNT                  := x_alloc_amt;
5749             l_cm_app_mfar_extract_tab(k).ACCTD_AMOUNT            := x_alloc_acctd_amt;
5750             l_cm_app_mfar_extract_tab(k).RECEIVABLE_APPLICATION_ID := p_ar_cm_to_rec(j).RECEIVABLE_APPLICATION_ID;
5751             l_cm_app_mfar_extract_tab(k).CUSTOMER_TRX_ID           := p_ar_cm_from_rec(i).CUSTOMER_TRX_ID;
5752             l_cm_app_mfar_extract_tab(k).CUSTOMER_TRX_LINE_ID      := p_ar_cm_to_rec(j).ref_customer_trx_line_id;
5753             l_cm_app_mfar_extract_tab(k).CUST_TRX_LINE_GL_DIST_ID  := p_ar_cm_to_rec(j).ref_cust_trx_line_gl_dist_id;
5754             l_cm_app_mfar_extract_tab(k).INVENTORY_ITEM_ID         := p_ar_cm_to_rec(j).INVENTORY_ITEM_ID;
5755             l_cm_app_mfar_extract_tab(k).SALES_TAX_ID              := p_ar_cm_to_rec(j).SALES_TAX_ID;
5756             l_cm_app_mfar_extract_tab(k).SET_OF_BOOKS_ID           := p_ar_cm_from_rec(i).ledger_id;
5757             l_cm_app_mfar_extract_tab(k).BILL_SITE_USE_ID          := p_ar_cm_to_rec(j).bill_to_site_use_id;
5758             l_cm_app_mfar_extract_tab(k).SOLD_SITE_USE_ID          := p_ar_cm_to_rec(j).sold_to_site_use_id;
5759             l_cm_app_mfar_extract_tab(k).SHIP_SITE_USE_ID          := p_ar_cm_to_rec(j).ship_to_site_use_id;
5760             l_cm_app_mfar_extract_tab(k).BILL_CUSTOMER_ID          := p_ar_cm_to_rec(j).bill_to_customer_id;
5761             l_cm_app_mfar_extract_tab(k).SOLD_CUSTOMER_ID          := p_ar_cm_to_rec(j).sold_to_customer_id;
5762             l_cm_app_mfar_extract_tab(k).SHIP_CUSTOMER_ID          := p_ar_cm_to_rec(j).ship_to_customer_id;
5763             l_cm_app_mfar_extract_tab(k).TAX_LINE_ID               := p_ar_cm_to_rec(j).tax_line_id;
5764             l_cm_app_mfar_extract_tab(k).SELECT_FLAG               := 'Y';
5765             l_cm_app_mfar_extract_tab(k).LEVEL_FLAG                := 'L';
5766             l_cm_app_mfar_extract_tab(k).FROM_TO_FLAG              := 'F';
5767             l_cm_app_mfar_extract_tab(k).EVENT_CLASS_CODE          := 'CREDIT_MEMO';
5768             l_cm_app_mfar_extract_tab(k).ENTITY_CODE               := 'TRANSACTIONS';
5769             l_cm_app_mfar_extract_tab(k).third_party_id            := p_ar_cm_to_rec(j).third_party_id;
5770             l_cm_app_mfar_extract_tab(k).third_party_site_id       := p_ar_cm_to_rec(j).third_party_site_id;
5771             l_cm_app_mfar_extract_tab(k).third_party_type          := p_ar_cm_to_rec(j).third_party_type;
5772             l_cm_app_mfar_extract_tab(k).source_type               := p_ar_cm_to_rec(j).source_type;
5773             l_cm_app_mfar_extract_tab(k).paire_dist_id             := p_ar_cm_from_rec(i).line_id;
5774 
5775         k := k+1;
5776        end if;
5777 
5778   END LOOP;
5779 
5780 END LOOP;
5781 
5782   FORALL r IN l_cm_app_mfar_extract_tab.first..l_cm_app_mfar_extract_tab.last
5783        INSERT INTO ar_xla_lines_extract VALUES l_cm_app_mfar_extract_tab(r);
5784 
5785   local_log(procedure_name => 'mfar_cm_app_insert_extract',
5786               p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_cm_app_insert_extract()-');
5787 
5788   EXCEPTION
5789     WHEN NO_DATA_FOUND THEN NULL;
5790     WHEN OTHERS THEN
5791      local_log(procedure_name => 'mfar_cm_app_insert_extract',
5792                p_msg_text     => 'EXCEPTION OTHERS in mfar_cm_app_insert_extract '||
5793                    arp_global.CRLF || 'Error      :'|| SQLERRM);
5794       FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
5795       FND_MESSAGE.SET_TOKEN('MESSAGE' ,
5796            'Procedure :arp_xla_extract_main_pkg.mfar_cm_app_insert_extract'|| arp_global.CRLF||
5797            'Error     :'||SQLERRM);
5798       FND_MSG_PUB.ADD;
5799     RAISE;
5800 
5801 
5802 END mfar_cm_app_insert_extract;
5803 
5804 /*-------------------------------------------------------------------------------+
5805  | Procedure Name : mfar_app_dist_cr
5806  | Description    : Fetches all the application distributions for RECP_CREATE,
5807  |                  RECP_UPDATE and RECP_RATE_ADJUST events which are necessary
5808  |                  for the MFAR CRH building and populates the GT
5809  |                  table ar_crh_app_gt.
5810  +-------------------------------------------------------------------------------+
5811  | History        :
5812  | 25-JUL-2010     Anshu Kaushal    Created
5813  +------------------------------------------------------------------------------*/
5814 
5815 PROCEDURE mfar_app_dist_cr IS
5816 BEGIN
5817   local_log(procedure_name => 'mfar_app_dist_cr',
5818             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_app_dist_cr ()+');
5819 --
5820 -- For a RECP_CREATE and RECP_UPDATE events
5821 -- All application distributions are necessary for the MFAR CRH building
5822 --
5823 INSERT INTO ar_crh_app_gt (
5824  entity_id
5825 ,receivable_application_id
5826 ,cash_receipt_history_id
5827 ,cash_receipt_history_status
5828 ,line_id
5829 ,amount
5830 ,acctd_amount
5831 ,from_amount
5832 ,from_acctd_amount
5833 ,third_party_id
5834 ,third_party_site_id
5835 ,third_party_type
5836 ,from_currency_code
5837 ,from_exchange_rate
5838 ,from_exchange_type
5839 ,from_exchange_date
5840 ,to_currency_code
5841 ,to_exchange_rate
5842 ,to_exchange_type
5843 ,to_exchange_date
5844 ,ref_customer_trx_line_id
5845 ,ref_cust_trx_line_gl_dist_id
5846 ,code_combination_id
5847 ,ref_code_combination_id
5848 ,ref_dist_ccid
5849 ,activity_bucket
5850 ,source_type
5851 ,source_table
5852 ,ra_post_indicator
5853 ,crh_post_indicator
5854 ,customer_trx_id
5855 ,inventory_item_id
5856 ,sales_tax_id
5857 ,tax_line_id
5858 ,bill_to_customer_id
5859 ,bill_to_site_use_id
5860 ,sold_to_customer_id
5861 ,sold_to_site_use_id
5862 ,ship_to_customer_id
5863 ,ship_to_site_use_id
5864 ,event_id
5865 ,amount_applied
5866 ,acctd_amount_applied
5867 ,mfar_upg_trx)
5868 SELECT xla.entity_id                           --entity_id
5869       ,ra.receivable_application_id            --receivable_application_id
5870       ,crh.cash_receipt_history_id             --cash_receipt_history_id
5871       ,crh.status                              --cash_receipt_history_status
5872       ,ard.line_id                             --line_id
5873       ,NVL(ard.amount_cr,0)-
5874            NVL(ard.amount_dr,0)                --amount
5875       ,NVL(ard.acctd_amount_cr,0)-
5876            NVL(ard.acctd_amount_dr,0)          --acctd_amount
5877       ,NVL(ard.from_amount_cr,0)-
5878            NVL(ard.from_amount_dr,0)           --from_amount
5879       ,NVL(ard.from_acctd_amount_cr,0)-
5880            NVL(ard.from_acctd_amount_dr,0)     --from_acctd_amount
5881       ,ard.third_party_id                      --third_party_id
5882       ,ard.third_party_sub_id                  --third_party_site_id
5883       ,DECODE(ard.third_party_id,NULL,NULL,'C') --third_party_type
5884       ,cr.currency_code                        --from_currency_code
5885       ,crh.exchange_rate                       --from_exchange_rate
5886       ,crh.exchange_rate_type                  --from_exchange_type
5887       ,crh.exchange_date                       --from_exchange_date
5888       ,ct.invoice_currency_code                --to_currency_code
5889       ,ct.exchange_rate                        --to_exchange_rate
5890       ,ct.exchange_rate_type                   --to_exchange_type
5891       ,ct.exchange_date                        --to_exchange_date
5892       ,ard.ref_customer_trx_line_id            --ref_customer_trx_line_id
5893       ,ard.ref_cust_trx_line_gl_dist_id        --ref_cust_trx_line_gl_dist_id
5894       ,ard.code_combination_id                 --code_combination_id
5895       ,ctlgd.code_combination_id               --ref_code_combination_id
5896       ,ard.ref_dist_ccid                       --ref_dist_ccid
5897       ,ard.activity_bucket                     --activity_bucket
5898       ,ard.source_type                         --source_type
5899       ,source_table                            --source_table
5900       ,DECODE(ra.posting_control_id,-3,'N','Y')   --ra_post_indicator
5901       ,DECODE(crh.posting_control_id,-3,'N','Y')  --crh_post_indicator
5902       ,ra.applied_customer_trx_id              --customer_trx_id
5903       ,ctl.inventory_item_id
5904       ,ctl.sales_tax_id
5905       ,ctl.tax_line_id
5906       ,ct.bill_to_customer_id
5907       ,ct.bill_to_site_use_id
5908       ,ct.sold_to_customer_id
5909       ,ct.sold_to_site_use_id
5910       ,ct.ship_to_customer_id
5911       ,ct.ship_to_site_use_id
5912       ,ra.event_id
5913       ,ra.amount_applied
5914       ,ra.acctd_amount_applied_from
5915       ,decode(ct.upgrade_method,'R12_11ICASH','N','') mfar_upg_trx
5916   FROM ar_cash_receipt_history_all    crh
5917       ,ar_cash_receipts_all           cr
5918       ,ar_receivable_applications_all ra
5919       ,ar_distributions_all           ard
5920       ,ra_customer_trx_all            ct
5921       ,ra_cust_trx_line_gl_dist_all   ctlgd
5922       ,ra_customer_trx_lines_all      ctl
5923       ,(SELECT entity_id,
5924                source_id_int_1
5925           FROM xla_events_gt
5926          WHERE application_id  = 222
5927            AND event_type_code IN ('RECP_CREATE','RECP_UPDATE','RECP_RATE_ADJUST')
5928          GROUP BY entity_id,
5929                   source_id_int_1)    xla
5930  WHERE xla.source_id_int_1              = crh.cash_receipt_id
5931    AND crh.cash_receipt_history_id      = ra.cash_receipt_history_id
5932    AND crh.cash_receipt_id              = cr.cash_receipt_id
5933    AND crh.cash_receipt_id              = ra.cash_receipt_id
5934    AND ra.status                        = 'APP'
5935    AND ra.receivable_application_id     = ard.source_id
5936    -- Add MFAR UPG impacts
5937    AND DECODE(ra.upgrade_method,
5938               '11I_MFAR_UPG',DECODE(ard.source_table_secondary,'UPMFRAMIAR','Y','N'),
5939               'R12_11ICASH' ,'N',
5940               '11I_R12_POST','N',
5941                         'Y')            = 'Y'
5942    AND ra.applied_customer_trx_id       = ct.customer_trx_id
5943    AND ard.source_table                 = 'RA'
5944    AND ard.source_type NOT IN ('EXCH_GAIN','EXCH_LOSS','EDISC','UNEDISC','EDISC_NON_REC_TAX','UNEDISC_NON_REC_TAX','DEFERRED_TAX','TAX', 'CURR_ROUND')
5945    AND decode(ard.source_type,'REC',decode(ard.ref_mf_dist_flag,'D','N','Y'),'Y')='Y'
5946    AND ard.ref_customer_trx_line_id     = ctl.customer_trx_line_id(+)
5947    AND ard.ref_cust_trx_line_gl_dist_id = ctlgd.cust_trx_line_gl_dist_id(+)
5948    ORDER BY ard.line_id;
5949 
5950   local_log(procedure_name => 'mfar_app_dist_cr',
5951             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_app_dist_cr ()-');
5952 EXCEPTION
5953 --  WHEN NO_DATA_FOUND THEN NULL;
5954   WHEN OTHERS THEN
5955    local_log(procedure_name => 'mfar_app_dist_cr',
5956              p_msg_text     => 'EXCEPTION OTHERS in mfar_app_dist_cr '||
5957                  arp_global.CRLF || 'Error      :'|| SQLERRM);
5958     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
5959     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
5960          'Procedure :arp_xla_extract_main_pkg.mfar_app_dist_cr'|| arp_global.CRLF||
5961          'Error     :'||SQLERRM);
5962     FND_MSG_PUB.ADD;
5963   RAISE;
5964 END;
5965 
5966 /*-------------------------------------------------------------------------------+
5967  | Procedure Name : mfar_crh_dist
5968  | Description    : Fetches all the CRH distributions for RECP_CREATE, RECP_UPDATE
5969  |                  MISC_RECP_CREATE, MISC_RECP_UPDATE, RECP_RATE_ADJUST events
5970  |                  which are necessary for MFAR additional distribution building
5971  |                  and populates the GT table ar_crh_gt.
5972  +-------------------------------------------------------------------------------+
5973  | History        :
5974  | 25-JUL-2010     Anshu Kaushal    Created
5975  +------------------------------------------------------------------------------*/
5976 
5977 PROCEDURE mfar_crh_dist IS
5978 BEGIN
5979   local_log(procedure_name => 'mfar_crh_dist',
5980             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_crh_dist ()+');
5981 -- All CRH distribution part of the current posting will serve for the
5982 -- Additional distribution building
5983 INSERT INTO ar_crh_gt (
5984  cash_receipt_id        ,
5985  cash_receipt_history_id,
5986  source_type            ,
5987  posting_control_id     ,
5988  amount                 ,
5989  acctd_amount           ,
5990  code_combination_id    ,
5991  exchange_date          ,
5992  exchange_rate          ,
5993  exchange_rate_type     ,
5994  third_party_id         ,
5995  third_party_sub_id     ,
5996  third_party_flag       ,
5997  event_id               ,
5998  entity_id              ,
5999  ledger_id              ,
6000  base_currency_code     ,
6001  org_id                 ,
6002  status                 ,
6003  crh_line_id            ,
6004  recp_amount            ,
6005  recp_acctd_amount      ,
6006  DIST_LINE_STATUS)
6007 SELECT crh.cash_receipt_id
6008       ,crh.cash_receipt_history_id
6009       ,ard.source_type
6010       ,crh.posting_control_id
6011       ,NVL(ard.amount_cr,0)-NVL(ard.amount_dr,0)
6012       ,NVL(ard.acctd_amount_cr,0)-NVL(ard.acctd_amount_dr,0)
6013       ,ard.code_combination_id
6014       ,crh.exchange_date
6015       ,crh.exchange_rate
6016       ,crh.exchange_rate_type
6017       ,ard.third_party_id
6018       ,ard.third_party_sub_id
6019       ,DECODE(third_party_id,NULL,'N','Y')
6020       ,gt.event_id
6021       ,gt.entity_id
6022       ,cr.set_of_books_id                        -- ledger_id
6023       ,lg.currency_code
6024       ,crh.org_id
6025       ,DECODE(ard.source_type,'CASH'        ,'CLEARED',
6026                               'REMITTANCE'  ,'REMITTED',
6027                               'CONFIRMATION','CONFIRMED'
6028                               ,'BANK_CHARGES','BANK_CHARGES'
6029                               ,'CASH')
6030     --   ,ard.line_id            crh_line_id
6031        ,crh.cash_receipt_history_id            crh_line_id
6032        ,(crh.amount+ nvl(crh.factor_discount_amount,0)) recp_amount
6033        ,(crh.acctd_amount+ nvl(crh.acctd_factor_discount_amount,0)) recp_acctd_amount
6034        ,decode(crh.status , DECODE(ard.source_type,'CASH','CLEARED',
6035 						   'REMITTANCE','REMITTED',
6036 			                           'CONFIRMATION','CONFIRMED',
6037 						   'BANK_CHARGES','CLEARED'
6038                               ,'CASH'), 'ACTUAL','REVERSAL') DIST_LINE_STATUS
6039   FROM xla_events_gt                gt,
6040        ar_cash_receipt_history_all  crh,
6041        ar_cash_receipts_all         cr,
6042        ar_distributions_all         ard,
6043        gl_ledgers                   lg
6044  WHERE gt.application_id  = 222
6045    AND gt.event_type_code IN ('RECP_CREATE','RECP_UPDATE','MISC_RECP_CREATE','MISC_RECP_UPDATE','RECP_RATE_ADJUST')
6046    AND gt.event_id        = crh.event_id
6047    AND crh.postable_flag  = 'Y'
6048    AND crh.cash_receipt_id= cr.cash_receipt_id
6049    AND ard.source_id      = crh.cash_receipt_history_id
6050    AND ard.source_table   = 'CRH'
6051    AND (
6052    (ard.source_type   IN ('CASH','REMITTANCE','CONFIRMATION'))
6053    OR
6054    (ard.source_type ='BANK_CHARGES'
6055     AND crh.factor_discount_amount = ( nvl(ard.amount_dr,0) - nvl(ard.amount_cr,0)))
6056    )
6057    AND cr.set_of_books_id = lg.ledger_id
6058 /*
6059     Whenever user updates the Bank Charges for a posted Receipt, the ar_distributions
6060     table calculates the differential amount and stores the difference
6061     But, for mfar accountin we need to build the detailed distributions with
6062     reversal entries and the new entries.
6063 
6064     The below select builds the detailed distributions for the bank charge changes
6065     when the previous distribution does not involve the change in bank charges
6066 */
6067 UNION ALL
6068 SELECT crh.cash_receipt_id
6069       ,crh.cash_receipt_history_id
6070       ,pairard.source_type
6071       ,crh.posting_control_id
6072       ,decode(pairard.source_type, 'BANK_CHARGES',
6073                    decode(state.status, 'ORG_DIST',
6074                            -1*crh.factor_discount_amount,
6075                            -1*paircrh.factor_discount_amount),
6076                      NVL(pairard.amount_cr,0)-NVL(pairard.amount_dr,0)) amount
6077       ,decode(pairard.source_type, 'BANK_CHARGES',
6078                      decode(state.status, 'ORG_DIST',
6079                             -1*crh.acctd_factor_discount_amount,
6080                             -1*paircrh.acctd_factor_discount_amount),
6081                      NVL(pairard.acctd_amount_cr,0)-NVL(pairard.acctd_amount_dr,0)) acctd_amount
6082       ,pairard.code_combination_id
6083       ,paircrh.exchange_date
6084       ,paircrh.exchange_rate
6085       ,paircrh.exchange_rate_type
6086       ,pairard.third_party_id
6087       ,pairard.third_party_sub_id
6088       ,DECODE(pairard.third_party_id,NULL,'N','Y')
6089       ,gt.event_id
6090       ,gt.entity_id
6091       ,cr.set_of_books_id                        -- ledger_id
6092       ,lg.currency_code
6093       ,paircrh.org_id
6094       ,DECODE(pairard.source_type,'CASH'        ,'CLEARED',
6095                               'REMITTANCE'  ,'REMITTED',
6096                               'CONFIRMATION','CONFIRMED'
6097                               ,'BANK_CHARGES','BANK_CHARGES'
6098                               ,'CASH')
6099        ,decode(state.status, 'ORG_DIST', paircrh.cash_receipt_history_id, -1*paircrh.cash_receipt_history_id) crh_line_id
6100        ,decode(state.status, 'ORG_DIST', (crh.amount+ nvl(crh.factor_discount_amount,0))
6101                            , 'REV_DIST', (paircrh.amount+ nvl(paircrh.factor_discount_amount,0))) recp_amount
6102         ,decode(state.status, 'ORG_DIST',(crh.acctd_amount+ nvl(crh.acctd_factor_discount_amount,0))
6103                             , 'REV_DIST',(paircrh.acctd_amount+ nvl(paircrh.acctd_factor_discount_amount,0))) recp_acctd_amount
6104        , decode(state.status, 'ORG_DIST','ACTUAL','REVERSAL') DIST_LINE_STATUS
6105   FROM xla_events_gt                gt,
6106        ar_cash_receipt_history_all  crh,
6107        ar_cash_receipts_all         cr,
6108        ar_distributions_all         ard,
6109        ar_cash_receipt_history_all  paircrh,
6110        ar_distributions_all         pairard,
6111        gl_ledgers                   lg,
6112        (SELECT 'ORG_DIST'    AS status   FROM DUAL UNION
6113         SELECT 'REV_DIST'    AS status   FROM DUAL)    state
6114  WHERE gt.application_id  = 222
6115    AND gt.event_type_code IN ('RECP_CREATE','RECP_UPDATE','MISC_RECP_CREATE','MISC_RECP_UPDATE','RECP_RATE_ADJUST')
6116    AND gt.event_id        = crh.event_id
6117    AND crh.postable_flag  = 'Y'
6118    AND crh.cash_receipt_id= cr.cash_receipt_id
6119    AND ard.source_id      = crh.cash_receipt_history_id
6120    AND ard.source_table   = 'CRH'
6121    AND ard.source_type  = 'BANK_CHARGES'
6122    AND paircrh.reversal_cash_receipt_hist_id = crh.cash_receipt_history_id
6123    AND paircrh.cash_receipt_history_id = pairard.source_id
6124    AND pairard.source_table = 'CRH'
6125    AND crh.factor_discount_amount <> ( nvl(ard.amount_dr,0) - nvl(ard.amount_cr,0) )
6126    AND cr.set_of_books_id = lg.ledger_id
6127 UNION ALL
6128 /*
6129 
6130 Build CASH and  REMITTANCE Records
6131 when ARD's Bank Charge Record is created as difference amount,
6132 and previous CRH state also exists with a differential Bank Charge Amount
6133 
6134 That means customer has updated the bank charges more than once consecutively
6135 in receipt history.
6136 
6137 */
6138 SELECT crh.cash_receipt_id
6139       ,crh.cash_receipt_history_id
6140       ,decode(paircrh.status, 'CLEARED', 'CASH'
6141                             , 'REMITTED', 'REMITTACE'
6142                             ,'CONFIRMED','CONFIRMATION'
6143                             ,'CASH')
6144       ,crh.posting_control_id
6145       ,decode(state.status, 'ORG_DIST',
6146                            -1*crh.amount,
6147                            -1*paircrh.amount) amount
6148       ,decode(state.status, 'ORG_DIST',
6149                             -1*crh.acctd_amount,
6150                             -1*paircrh.acctd_amount) acctd_amount
6151       ,pairard.code_combination_id
6152       ,paircrh.exchange_date
6153       ,paircrh.exchange_rate
6154       ,paircrh.exchange_rate_type
6155       ,pairard.third_party_id
6156       ,pairard.third_party_sub_id
6157       ,DECODE(pairard.third_party_id,NULL,'N','Y')
6158       ,gt.event_id
6159       ,gt.entity_id
6160       ,cr.set_of_books_id                        -- ledger_id
6161       ,lg.currency_code
6162       ,paircrh.org_id
6163       , paircrh.status
6164        ,decode(state.status, 'ORG_DIST', paircrh.cash_receipt_history_id, -1*paircrh.cash_receipt_history_id) crh_line_id
6165        ,decode(state.status, 'ORG_DIST', (crh.amount+ nvl(crh.factor_discount_amount,0))
6166                            , 'REV_DIST', (paircrh.amount+ nvl(paircrh.factor_discount_amount,0))) recp_amount
6167         ,decode(state.status, 'ORG_DIST',(crh.acctd_amount+ nvl(crh.acctd_factor_discount_amount,0))
6168                             , 'REV_DIST',(paircrh.acctd_amount+ nvl(paircrh.acctd_factor_discount_amount,0))) recp_acctd_amount
6169        , decode(state.status, 'ORG_DIST','ACTUAL','REVERSAL') DIST_LINE_STATUS
6170   FROM xla_events_gt                gt,
6171        ar_cash_receipt_history_all  crh,
6172        ar_cash_receipts_all         cr,
6173        ar_distributions_all         ard,
6174        ar_cash_receipt_history_all  paircrh,
6175        ar_distributions_all         pairard,
6176        gl_ledgers                   lg,
6177        (SELECT 'ORG_DIST'    AS status   FROM DUAL UNION
6178         SELECT 'REV_DIST'    AS status   FROM DUAL)    state
6179  WHERE gt.application_id  = 222
6180    AND gt.event_type_code IN ('RECP_CREATE','RECP_UPDATE','MISC_RECP_CREATE','MISC_RECP_UPDATE','RECP_RATE_ADJUST')
6181    AND gt.event_id        = crh.event_id
6182    AND crh.postable_flag  = 'Y'
6183    AND crh.cash_receipt_id= cr.cash_receipt_id
6184    AND ard.source_id      = crh.cash_receipt_history_id
6185    AND ard.source_table   = 'CRH'
6186    AND ard.source_type  = 'BANK_CHARGES'
6187    AND pairard.source_type  = ard.source_type
6188    AND paircrh.reversal_cash_receipt_hist_id = crh.cash_receipt_history_id
6189    AND paircrh.cash_receipt_history_id = pairard.source_id
6190    AND pairard.source_table = 'CRH'
6191    AND crh.factor_discount_amount <> ( nvl(ard.amount_dr,0) - nvl(ard.amount_cr,0) )
6192    AND paircrh.factor_discount_amount <> ( nvl(pairard.amount_dr,0) - nvl(pairard.amount_cr,0) )
6193    AND cr.set_of_books_id = lg.ledger_id;
6194 
6195   local_log(procedure_name => 'mfar_crh_dist',
6196             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_app_dist_cr ()-');
6197 EXCEPTION
6198 --  WHEN NO_DATA_FOUND THEN NULL;
6199   WHEN OTHERS THEN
6200    local_log(procedure_name => 'mfar_crh_dist',
6201              p_msg_text     => 'EXCEPTION OTHERS in mfar_crh_dist '||
6202                  arp_global.CRLF || 'Error      :'|| SQLERRM);
6203     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
6204     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
6205          'Procedure :arp_xla_extract_main_pkg.mfar_crh_dist'|| arp_global.CRLF||
6206          'Error     :'||SQLERRM);
6207     FND_MSG_PUB.ADD;
6208   RAISE;
6209 END;
6210 
6211 /*-------------------------------------------------------------------------------+
6212  | Procedure Name : mfar_produit_app_by_crh
6213  | Description    : Builds the MFAR distributions for CRH by taking a cross product
6214  |                  of the lines in the Gt tables ar_crh_gt and ar_crh_app_gt.
6215  |                  Calls the procedure to insert into the extract table after
6216  |                  building the CRH MFAR distributions.
6217  +-------------------------------------------------------------------------------+
6218  | History        :
6219  | 25-JUL-2010     Anshu Kaushal    Created
6220  +------------------------------------------------------------------------------*/
6221 
6222 PROCEDURE mfar_produit_app_by_crh  IS
6223 --
6224 -- Build the MFAR distribution for CRH
6225 --
6226 CURSOR mfar_extract_cur IS
6227   SELECT
6228         ordered_crh_by_app.*
6229        ,-1 * ar_mfar_extract_s.nextval            LINE_NUMBER
6230   FROM (SELECT
6231        crh.event_id                              event_id
6232    --   ,-1 * ar_mfar_extract_s.nextval            LINE_NUMBER
6233       ,'Y'                                       MFAR_ADDITIONAL_ENTRY
6234       ,crh.ledger_id                             LEDGER_ID
6235       ,crh.base_currency_code                    BASE_CURRENCY_CODE
6236       ,crh.org_id                                ORG_ID
6237       ,decode(crh.dist_line_status, 'REVERSAL', -1*app.line_id, app.line_id)  LINE_ID
6238       ,app.receivable_application_id             SOURCE_ID
6239       ,'RA'                                      SOURCE_TABLE
6240       ,crh.cash_receipt_id                       HEADER_TABLE_ID
6241       ,'RECEIPT_HISTORY'                         POSTING_ENTITY
6242       ,crh.entity_id                             xla_entity_id
6243       --
6244       ,app.code_combination_id                   DIST_CCID
6245       ,app.ref_dist_ccid                         ref_dist_ccid
6246       ,app.ref_code_combination_id               REF_CTLGD_CCID
6247       --
6248       ,app.from_currency_code                    from_currency_code
6249       ,app.from_exchange_rate                    from_exchange_rate
6250       ,app.from_exchange_type                    FROM_EXCHANGE_RATE_TYPE
6251       ,app.from_exchange_date                    from_exchange_date
6252       ,decode(event_type_code, 'RECP_RATE_ADJUST',-app.from_amount,sign(crh.amount)*app.from_amount) from_amount
6253       ,decode(event_type_code, 'RECP_RATE_ADJUST',-app.from_acctd_amount,sign(crh.acctd_amount)*app.from_acctd_amount) from_acctd_amount
6254       --
6255       ,app.to_currency_code                      to_currency_code
6256       ,app.to_exchange_rate                      exchange_rate
6257       ,app.to_exchange_type                      EXCHANGE_RATE_TYPE
6258       ,app.to_exchange_date                      EXCHANGE_DATE
6259       ,decode(event_type_code, 'RECP_RATE_ADJUST',-app.amount,sign(crh.amount)*app.amount) amount
6260       ,decode(event_type_code, 'RECP_RATE_ADJUST',-app.acctd_amount,sign(crh.acctd_amount)*app.acctd_amount) acctd_amount
6261       --
6262       ,app.receivable_application_id             RECEIVABLE_APPLICATION_ID
6263       ,crh.cash_receipt_id                       CASH_RECEIPT_ID
6264       ,app.customer_trx_id                       CUSTOMER_TRX_ID
6265       ,app.ref_customer_trx_line_id              CUSTOMER_TRX_LINE_ID
6266       ,app.ref_cust_trx_line_gl_dist_id          CUST_TRX_LINE_GL_DIST_ID
6267       --
6268       ,app.inventory_item_id                     INVENTORY_ITEM_ID
6269       ,app.sales_tax_id                          SALES_TAX_ID
6270       ,crh.ledger_id                             SET_OF_BOOKS_ID
6271       ,app.bill_to_site_use_id                   BILL_SITE_USE_ID
6272       ,app.sold_to_site_use_id                   SOLD_SITE_USE_ID
6273       ,app.ship_to_site_use_id                   SHIP_SITE_USE_ID
6274       ,app.bill_to_customer_id                   BILL_CUSTOMER_ID
6275       ,app.sold_to_customer_id                   SOLD_CUSTOMER_ID
6276       ,app.ship_to_customer_id                   SHIP_CUSTOMER_ID
6277       ,app.tax_line_id                           TAX_LINE_ID
6278       --
6279       ,'Y'                                       SELECT_FLAG
6280       ,'L'                                       LEVEL_FLAG
6281       ,'T'                                       FROM_TO_FLAG
6282       ,crh.status                                CRH_STATUS
6283       ,app.cash_receipt_history_status           APP_CRH_STATUS
6284       --
6285       ,gt.event_type_code                        EVENT_TYPE_CODE
6286       ,gt.event_class_code                       EVENT_CLASS_CODE
6287       ,gt.entity_code                            ENTITY_CODE
6288       --
6289       ,app.third_party_id                        third_party_id
6290       ,app.third_party_site_id                   third_party_site_id
6291       ,app.third_party_type                      third_party_type
6292       ,app.source_type                           source_type
6293       ,crh.recp_amount                           recp_amount
6294       ,crh.recp_acctd_amount                     recp_acctd_amount
6295       ,decode(crh.DIST_LINE_STATUS,'REVERSAL', crh.amount, -1*(crh.amount)) crh_amount
6296       ,decode(crh.DIST_LINE_STATUS,'REVERSAL', crh.acctd_amount, -1*(crh.acctd_amount)) crh_acctd_amount
6297       ,crh.crh_line_id                           CRH_RECORD_ID
6298       ,decode(crh.recp_amount, 0 , 0 , decode(crh.source_type, 'BANK_CHARGES',
6299               ar_unposted_item_util.currRound(app.amount_applied-
6300                                        ((decode(crh.DIST_LINE_STATUS,'REVERSAL', crh.recp_amount-crh.amount, crh.recp_amount+crh.amount)/crh.recp_amount)
6301                                        * app.amount_applied)
6302                                        ,app.from_currency_code),
6303               ar_unposted_item_util.currRound((decode(crh.DIST_LINE_STATUS,'REVERSAL', crh.amount, -1*(crh.amount))/crh.recp_amount) * app.amount_applied,app.from_currency_code))) ALLOC_AMOUNT
6304       ,decode(crh.recp_acctd_amount, 0 , 0 , decode(crh.source_type, 'BANK_CHARGES',
6305               ar_unposted_item_util.currRound(app.acctd_amount_applied-
6306                                        ((decode(crh.DIST_LINE_STATUS,'REVERSAL', crh.recp_acctd_amount-crh.acctd_amount, crh.recp_acctd_amount+crh.acctd_amount)/crh.recp_acctd_amount)
6307                                        * app.acctd_amount_applied)
6308                                        ,app.from_currency_code),
6309               ar_unposted_item_util.currRound((decode(crh.DIST_LINE_STATUS,'REVERSAL', crh.acctd_amount, -1*(crh.acctd_amount))/crh.recp_acctd_amount) * app.acctd_amount_applied
6310                                                ,app.from_currency_code))) ALLOC_ACCTD_AMOUNT
6311       ,decode(crh.dist_line_status, 'REVERSAL', -1*app_max_line.max_line_id, app_max_line.max_line_id)
6312       ,app.mfar_upg_trx
6313   FROM ar_crh_gt                                           crh,
6314        ar_crh_app_gt                                       app,
6315        xla_events_gt                                       gt,
6316        (SELECT app1.receivable_application_id receivable_application_id,
6317                MAX(app1.line_id) max_line_id
6318          FROM ar_crh_app_gt app1
6319          GROUP BY app1.receivable_application_id) app_max_line
6320  WHERE crh.entity_id     = app.entity_id
6321    AND app.source_table  = 'RA'
6322    and app.receivable_application_id = app_max_line.receivable_application_id
6323 /* Start fix for Bug 9644866 */
6324    AND decode (crh.cash_receipt_history_id,
6325                                 app.cash_receipt_history_id,
6326                                     decode(app.event_id,
6327                                               crh.event_id, 'Y'
6328                                                            ,'N')
6329                                     ,'Y') = 'Y'
6330 /* End fix for Bug 9644866 */
6331    AND crh.event_id = gt.event_id
6332    AND ((gt.event_type_code <>  'RECP_RATE_ADJUST' AND crh.DIST_LINE_STATUS  = 'ACTUAL'  AND crh.cash_receipt_history_id >= app.cash_receipt_history_id)
6333 	OR
6334 	(gt.event_type_code <>  'RECP_RATE_ADJUST' AND crh.DIST_LINE_STATUS  = 'REVERSAL'  AND crh.cash_receipt_history_id > app.cash_receipt_history_id)
6335 	OR
6336 	(gt.event_type_code =  'RECP_RATE_ADJUST' AND crh.cash_receipt_history_id = app.cash_receipt_history_id)
6337 	)
6338    order by crh.cash_receipt_id, crh.dist_line_status, app.line_id, CRH_RECORD_ID) ordered_crh_by_app;
6339 
6340 -- crh_mfar_extract_record table type local variable
6341   l_crh_mfar_extract_record  crh_mfar_extract_record_type;
6342 
6343 BEGIN
6344   local_log(procedure_name => 'mfar_produit_app_by_crh',
6345             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_produit_app_by_crh ()+');
6346 
6347  OPEN mfar_extract_cur;
6348  LOOP
6349    FETCH mfar_extract_cur BULK COLLECT INTO l_crh_mfar_extract_record LIMIT MAX_ARRAY_SIZE;
6350    IF PG_DEBUG in ('Y', 'C') THEN
6351 	   arp_standard.debug('mfar_produit_app_by_crh current fetch count   '|| l_crh_mfar_extract_record.count);
6352    END IF;
6353 
6354    IF l_crh_mfar_extract_record.count = 0 THEN
6355 	  EXIT;
6356    END IF;
6357 
6358 -- Calculate prorated amounts and insert data into extract
6359    mfar_insert_crh_extract (l_crh_mfar_extract_record);
6360 
6361  END LOOP;
6362 
6363    CLOSE mfar_extract_cur;
6364 
6365 
6366   local_log(procedure_name => 'mfar_produit_app_by_crh',
6367             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_produit_app_by_crh ()-');
6368 EXCEPTION
6369 --  WHEN NO_DATA_FOUND THEN NULL;
6370   WHEN OTHERS THEN
6371    local_log(procedure_name => 'mfar_crh_dist',
6372              p_msg_text     => 'EXCEPTION OTHERS in mfar_produit_app_by_crh '||
6373                  arp_global.CRLF || 'Error      :'|| SQLERRM);
6374     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
6375     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
6376          'Procedure :arp_xla_extract_main_pkg.mfar_produit_app_by_crh'|| arp_global.CRLF||
6377          'Error     :'||SQLERRM);
6378     FND_MSG_PUB.ADD;
6379   RAISE;
6380 END;
6381 
6382 /*-------------------------------------------------------------------------------+
6383  | Procedure Name : mfar_get_ra
6384  | Description    : Builds the MFAR distributions all the application distributions
6385  |                  when the corresponding CRH distributions are already posted
6386  |                  to GL or when the application distributions belong to a different
6387  |                  event than that of their corresponding CRH distributions.
6388  |                  Calls the procedure to insert into the extract after building
6389  |                  the additional distributions.
6390  +-------------------------------------------------------------------------------+
6391  | History        :
6392  | 25-JUL-2010     Anshu Kaushal    Created
6393  +------------------------------------------------------------------------------*/
6394 
6395 PROCEDURE mfar_get_ra IS
6396 
6397 CURSOR mfar_extract_app_cur IS
6398 Select
6399 ordered_crh.*
6400  ,-1 * ar_mfar_extract_s.NEXTVAL   LINE_NUMBER
6401 FROM
6402 (SELECT
6403        gt.event_id                      EVENT_ID
6404      -- ,-1 * ar_mfar_extract_s.NEXTVAL LINE_NUMBER
6405       ,'Y'                              MFAR_ADDITIONAL_ENTRY
6406       ,trx.set_of_books_id              LEDGER_ID
6407       ,lg.currency_code                 BASE_CURRENCY_CODE
6408       ,ra.org_id                        ORG_ID
6409       ,ard.line_id                      LINE_ID
6410       ,ra.receivable_application_id     SOURCE_ID
6411       ,'RA'                             SOURCE_TABLE
6412       ,ra.cash_receipt_id               HEADER_TABLE_ID
6413       ,'APPLICATION'                    POSTING_ENTITY
6414       ,gt.entity_id                     XLA_ENTITY_ID
6415       --
6416       ,ard.code_combination_id          DIST_CCID
6417       ,ard.ref_dist_ccid                REF_DIST_CCID
6418       ,ctlgd.code_Combination_id        REF_CTLGD_CCID
6419       --
6420       ,cr.currency_code                 FROM_CURRENCY_CODE
6421       ,crh.exchange_rate                FROM_EXCHANGE_RATE
6422       ,crh.exchange_rate_type           FROM_EXCHANGE_RATE_TYPE
6423       ,crh.exchange_date                FROM_EXCHANGE_DATE
6424       ,-1 * (NVL(ard.from_amount_cr,0)-NVL(ard.from_amount_dr,0))               FROM_AMOUNT
6425       ,-1 * (NVL(ard.from_acctd_amount_cr,0)-NVL(ard.from_acctd_amount_dr,0))   FROM_ACCTD_AMOUNT
6426       --
6427       ,trx.invoice_currency_code        TO_CURRENCY_CODE
6428       ,trx.exchange_rate                EXCHANGE_RATE
6429       ,trx.exchange_rate_type           EXCHANGE_RATE_TYPE
6430       ,trx.exchange_date                EXCHANGE_DATE
6431       ,-1 * (NVL(ard.amount_cr,0)-NVL(ard.amount_dr,0))                 AMOUNT
6432       ,-1 * (NVL(ard.acctd_amount_cr,0)-NVL(ard.acctd_amount_dr,0))     ACCTD_AMOUNT
6433       --
6434       ,ra.receivable_application_id     RECEIVABLE_APPLICATION_ID
6435       ,ra.cash_receipt_id               CASH_RECEIPT_ID
6436       ,ra.applied_customer_trx_id       CUSTOMER_TRX_ID
6437       ,ard.ref_customer_trx_line_id     CUSTOMER_TRX_LINE_ID
6438       ,ard.ref_cust_trx_line_gl_dist_id    CUST_TRX_LINE_GL_DIST_ID
6439       --
6440       ,ctl.inventory_item_id               INVENTORY_ITEM_ID
6441       ,ctl.sales_tax_id                    SALES_TAX_ID
6442       ,trx.set_of_books_id                 SET_OF_BOOKS_ID
6443       ,trx.bill_to_site_use_id             BILL_SITE_USE_ID
6444       ,trx.sold_to_site_use_id             SOLD_SITE_USE_ID
6445       ,trx.ship_to_site_use_id             SHIP_SITE_USE_ID
6446       ,trx.bill_to_customer_id             BILL_CUSTOMER_ID
6447       ,trx.sold_to_customer_id             SOLD_CUSTOMER_ID
6448       ,trx.ship_to_customer_id             SHIP_CUSTOMER_ID
6449       ,ctl.tax_line_id                     TAX_LINE_ID
6450       --
6451       ,'Y'                                 SELECT_FLAG
6452       ,'L'                                 LEVEL_FLAG
6453       ,'T'                                 FROM_TO_FLAG
6454       ,crhlatest.status                    CRH_STATUS
6455       ,crh.status                          APP_CRH_STATUS
6456       --
6457       ,gt.event_type_code                  EVENT_TYPE_CODE
6458       ,gt.event_class_code                 EVENT_CLASS_CODE
6459       ,gt.entity_code                      ENTITY_CODE
6460       --
6461       ,ard.third_party_id                  third_party_id
6462       ,ard.third_party_sub_id              third_party_site_id
6463       ,DECODE(ard.third_party_id,NULL,NULL,'C')           third_party_type
6464       ,ard.source_type                       source_type
6465       ,abs(crhlatest.amount+ nvl(crhlatest.factor_discount_amount,0)) RECP_AMOUNT
6466       ,abs(crhlatest.acctd_amount+ nvl(crhlatest.acctd_factor_discount_amount,0)) RECP_ACCTD_AMOUNT
6467       ,abs(crhlatest.amount) crh_amount
6468       ,abs(crhlatest.acctd_amount) crh_acctd_amount
6469       ,crhlatest.cash_receipt_history_id          CRH_RECORD_ID
6470       ,decode(crhlatest.amount+ nvl(crhlatest.factor_discount_amount,0),0,0,
6471               ar_unposted_item_util.currRound((abs(crhlatest.amount)/abs(crhlatest.amount+ nvl(crhlatest.factor_discount_amount,0)))*ra.amount_applied,cr.currency_code))  ALLOC_AMOUNT
6472       ,decode(crhlatest.acctd_amount+ nvl(crhlatest.acctd_factor_discount_amount,0),0,0,
6473               ar_unposted_item_util.currRound((abs(crhlatest.acctd_amount)/abs(crhlatest.acctd_amount+ nvl(crhlatest.acctd_factor_discount_amount,0)))*ra.acctd_amount_applied_from,cr.currency_code))  ALLOC_ACCTD_AMOUNT
6474       ,ext.max_line_id                            MAX_LINE_ID
6475       ,decode(trx.upgrade_method,'R12_11ICASH','N','') mfar_upg_trx
6476   FROM xla_events_gt                      gt,
6477        ar_receivable_applications_all     ra,
6478        ar_cash_receipt_history_all        crh,
6479        ar_distributions_all               ard,
6480        ra_customer_trx_all                trx,
6481        ra_cust_trx_line_gl_dist_all       ctlgd,
6482        ra_customer_trx_lines_all          ctl,
6483        ar_cash_receipts_all               cr,
6484        gl_ledgers                         lg,
6485        ar_cash_receipt_history_all        crhlatest,
6486        (SELECT source_id,
6487               MAX(line_id) max_line_id
6488         FROM ar_xla_lines_extract
6489         WHERE source_table='RA'
6490         AND posting_entity='APP'
6491         AND event_class_code='RECEIPT'
6492         AND customer_trx_line_id IS NOT NULL
6493         GROUP BY source_id) ext
6494  WHERE gt.application_id                = 222
6495    AND gt.event_type_code               IN ('RECP_CREATE','RECP_UPDATE')
6496    AND gt.event_id                      = ra.event_id
6497    AND ra.status                        = 'APP'
6498    AND ard.source_id                    = ra.receivable_application_id
6499    AND ard.source_table                 = 'RA'
6500    AND nvl(ard.REF_MF_DIST_FLAG, 'Z')   <> 'U'
6501    AND ard.source_type NOT IN ('EXCH_GAIN','EXCH_LOSS')
6502    AND ra.cash_receipt_history_id       = crh.cash_receipt_history_id
6503    AND ra.cash_receipt_id               = cr.cash_receipt_id
6504    AND trx.set_of_books_id              = lg.ledger_id
6505    AND crh.cash_receipt_id              = cr.cash_receipt_id
6506    AND crh.posting_control_id           <> -3
6507    AND crh.cash_receipt_id              = crhlatest.cash_receipt_id
6508    AND ard.ref_cust_trx_line_gl_dist_id = ctlgd.cust_trx_line_gl_dist_id(+)
6509    AND ard.ref_customer_trx_line_id     = ctl.customer_trx_line_id(+)
6510    AND ra.applied_customer_trx_id      = trx.customer_trx_id
6511    AND ra.receivable_application_id    = ext.source_id
6512    AND crhlatest.cash_receipt_id       = cr.cash_receipt_id
6513    AND crhlatest.cash_receipt_history_id =
6514         ( SELECT MAX(a.cash_receipt_history_id)
6515           FROM ar_cash_receipt_history_all a
6516           WHERE a.cash_receipt_id = cr.cash_receipt_id
6517           AND posting_control_id <> -3)
6518 UNION ALL
6519 SELECT
6520        gt.event_id                      EVENT_ID
6521      -- ,-1 * ar_mfar_extract_s.NEXTVAL LINE_NUMBER
6522       ,'Y'                              MFAR_ADDITIONAL_ENTRY
6523       ,trx.set_of_books_id              LEDGER_ID
6524       ,lg.currency_code                 BASE_CURRENCY_CODE
6525       ,ra.org_id                        ORG_ID
6526       ,ard.line_id                      LINE_ID
6527       ,ra.receivable_application_id     SOURCE_ID
6528       ,'RA'                             SOURCE_TABLE
6529       ,ra.cash_receipt_id               HEADER_TABLE_ID
6530       ,'APPLICATION'                    POSTING_ENTITY
6531       ,gt.entity_id                     XLA_ENTITY_ID
6532       --
6533       ,ard.code_combination_id          DIST_CCID
6534       ,ard.ref_dist_ccid                REF_DIST_CCID
6535       ,ctlgd.code_Combination_id        REF_CTLGD_CCID
6536       --
6537       ,cr.currency_code                 FROM_CURRENCY_CODE
6538       ,crh.exchange_rate                FROM_EXCHANGE_RATE
6539       ,crh.exchange_rate_type           FROM_EXCHANGE_RATE_TYPE
6540       ,crh.exchange_date                FROM_EXCHANGE_DATE
6541       ,-1 * (NVL(ard.from_amount_cr,0)-NVL(ard.from_amount_dr,0))               FROM_AMOUNT
6542       ,-1 * (NVL(ard.from_acctd_amount_cr,0)-NVL(ard.from_acctd_amount_dr,0))   FROM_ACCTD_AMOUNT
6543       --
6544       ,trx.invoice_currency_code        TO_CURRENCY_CODE
6545       ,trx.exchange_rate                EXCHANGE_RATE
6546       ,trx.exchange_rate_type           EXCHANGE_RATE_TYPE
6547       ,trx.exchange_date                EXCHANGE_DATE
6548       ,-1 * (NVL(ard.amount_cr,0)-NVL(ard.amount_dr,0))                 AMOUNT
6549       ,-1 * (NVL(ard.acctd_amount_cr,0)-NVL(ard.acctd_amount_dr,0))     ACCTD_AMOUNT
6550       --
6551       ,ra.receivable_application_id     RECEIVABLE_APPLICATION_ID
6552       ,ra.cash_receipt_id               CASH_RECEIPT_ID
6553       ,ra.applied_customer_trx_id       CUSTOMER_TRX_ID
6554       ,ard.ref_customer_trx_line_id     CUSTOMER_TRX_LINE_ID
6555       ,ard.ref_cust_trx_line_gl_dist_id    CUST_TRX_LINE_GL_DIST_ID
6556       --
6557       ,ctl.inventory_item_id               INVENTORY_ITEM_ID
6558       ,ctl.sales_tax_id                    SALES_TAX_ID
6559       ,trx.set_of_books_id                 SET_OF_BOOKS_ID
6560       ,trx.bill_to_site_use_id             BILL_SITE_USE_ID
6561       ,trx.sold_to_site_use_id             SOLD_SITE_USE_ID
6562       ,trx.ship_to_site_use_id             SHIP_SITE_USE_ID
6563       ,trx.bill_to_customer_id             BILL_CUSTOMER_ID
6564       ,trx.sold_to_customer_id             SOLD_CUSTOMER_ID
6565       ,trx.ship_to_customer_id             SHIP_CUSTOMER_ID
6566       ,ctl.tax_line_id                     TAX_LINE_ID
6567       --
6568       ,'Y'                                 SELECT_FLAG
6569       ,'L'                                 LEVEL_FLAG
6570       ,'T'                                 FROM_TO_FLAG
6571       ,crh.status                    CRH_STATUS
6572       ,crh.status                          APP_CRH_STATUS
6573       --
6574       ,gt.event_type_code                  EVENT_TYPE_CODE
6575       ,gt.event_class_code                 EVENT_CLASS_CODE
6576       ,gt.entity_code                      ENTITY_CODE
6577       --
6578       ,ard.third_party_id                  third_party_id
6579       ,ard.third_party_sub_id              third_party_site_id
6580       ,DECODE(ard.third_party_id,NULL,NULL,'C')           third_party_type
6581       ,ard.source_type                       source_type
6582       ,abs(crh.amount+ nvl(crh.factor_discount_amount,0)) RECP_AMOUNT
6583       ,abs(crh.acctd_amount+ nvl(crh.acctd_factor_discount_amount,0)) RECP_ACCTD_AMOUNT
6584       ,abs(crh.amount) crh_amount
6585       ,abs(crh.acctd_amount) crh_acctd_amount
6586       ,crh.cash_receipt_history_id          CRH_RECORD_ID
6587       ,decode(crh.amount+ nvl(crh.factor_discount_amount,0),0,0,
6588           ar_unposted_item_util.currRound((abs(crh.amount)/abs(crh.amount+ nvl(crh.factor_discount_amount,0)))*ra.amount_applied,cr.currency_code))    ALLOC_AMOUNT
6589       ,decode(crh.acctd_amount+ nvl(crh.acctd_factor_discount_amount,0),0,0,
6590           ar_unposted_item_util.currRound((abs(crh.acctd_amount)/abs(crh.acctd_amount+ nvl(crh.acctd_factor_discount_amount,0)))*ra.acctd_amount_applied_from,cr.currency_code))    ALLOC_ACCTD_AMOUNT
6591       ,ext.max_line_id                            MAX_LINE_ID
6592       ,decode(trx.upgrade_method,'R12_11ICASH','N','') mfar_upg_trx
6593   FROM xla_events_gt                      gt,
6594        ar_receivable_applications_all     ra,
6595        ar_cash_receipt_history_all        crh,
6596        ar_distributions_all               ard,
6597        ra_customer_trx_all                trx,
6598        ra_cust_trx_line_gl_dist_all       ctlgd,
6599        ra_customer_trx_lines_all          ctl,
6600        ar_cash_receipts_all               cr,
6601        gl_ledgers                         lg,
6602        (SELECT source_id,
6603               MAX(line_id) max_line_id
6604         FROM ar_xla_lines_extract
6605         WHERE source_table='RA'
6606         AND posting_entity='APP'
6607         AND event_class_code='RECEIPT'
6608         AND customer_trx_line_id IS NOT NULL
6609         GROUP BY source_id) ext
6610  WHERE gt.application_id                = 222
6611    AND gt.event_type_code               IN ('RECP_CREATE','RECP_UPDATE')
6612    AND gt.event_id                      = ra.event_id
6613    AND ra.status                        = 'APP'
6614    AND ard.source_id                    = ra.receivable_application_id
6615    AND ard.source_table                 = 'RA'
6616    AND ra.receivable_application_id     = ext.source_id
6617    AND nvl(ard.REF_MF_DIST_FLAG, 'Z')   <> 'U'
6618    AND ard.source_type NOT IN ('EXCH_GAIN','EXCH_LOSS')
6619    AND ra.cash_receipt_history_id       = crh.cash_receipt_history_id
6620    AND ra.cash_receipt_id               = cr.cash_receipt_id
6621    AND trx.set_of_books_id              = lg.ledger_id
6622    AND crh.cash_receipt_id              = cr.cash_receipt_id
6623 /* Start fix for Bug 9644866 */
6624    AND crh.posting_control_id           = -3
6625    AND ra.cash_receipt_history_id = crh.cash_receipt_history_id
6626    AND ra.event_id <> crh.event_id
6627 /* End fix for Bug 9644866 */
6628    AND ard.ref_cust_trx_line_gl_dist_id = ctlgd.cust_trx_line_gl_dist_id(+)
6629    AND ard.ref_customer_trx_line_id     = ctl.customer_trx_line_id(+)
6630    AND ra.applied_customer_trx_id      = trx.customer_trx_id
6631 UNION ALL
6632  SELECT
6633        gt.event_id                      EVENT_ID
6634      -- ,-1 * ar_mfar_extract_s.NEXTVAL LINE_NUMBER
6635       ,'Y'                              MFAR_ADDITIONAL_ENTRY
6636       ,trx.set_of_books_id              LEDGER_ID
6637       ,lg.currency_code                 BASE_CURRENCY_CODE
6638       ,ra.org_id                        ORG_ID
6639       ,ard.line_id                      LINE_ID
6640       ,ra.receivable_application_id     SOURCE_ID
6641       ,'RA'                             SOURCE_TABLE
6642       ,ra.cash_receipt_id               HEADER_TABLE_ID
6643       ,'APPLICATION'                    POSTING_ENTITY
6644       ,gt.entity_id                     XLA_ENTITY_ID
6645       --
6646       ,ard.code_combination_id          DIST_CCID
6647       ,ard.ref_dist_ccid                REF_DIST_CCID
6648       ,ctlgd.code_Combination_id        REF_CTLGD_CCID
6649       --
6650       ,cr.currency_code                 FROM_CURRENCY_CODE
6651       ,crh.exchange_rate                FROM_EXCHANGE_RATE
6652       ,crh.exchange_rate_type           FROM_EXCHANGE_RATE_TYPE
6653       ,crh.exchange_date                FROM_EXCHANGE_DATE
6654       ,-1 * (NVL(ard.from_amount_cr,0)-NVL(ard.from_amount_dr,0))               FROM_AMOUNT
6655       ,-1 * (NVL(ard.from_acctd_amount_cr,0)-NVL(ard.from_acctd_amount_dr,0))   FROM_ACCTD_AMOUNT
6656       --
6657       ,trx.invoice_currency_code        TO_CURRENCY_CODE
6658       ,trx.exchange_rate                EXCHANGE_RATE
6659       ,trx.exchange_rate_type           EXCHANGE_RATE_TYPE
6660       ,trx.exchange_date                EXCHANGE_DATE
6661       ,-1 * (NVL(ard.amount_cr,0)-NVL(ard.amount_dr,0))                 AMOUNT
6662       ,-1 * (NVL(ard.acctd_amount_cr,0)-NVL(ard.acctd_amount_dr,0))     ACCTD_AMOUNT
6663       --
6664       ,ra.receivable_application_id     RECEIVABLE_APPLICATION_ID
6665       ,ra.cash_receipt_id               CASH_RECEIPT_ID
6666       ,ra.applied_customer_trx_id       CUSTOMER_TRX_ID
6667       ,ard.ref_customer_trx_line_id     CUSTOMER_TRX_LINE_ID
6668       ,ard.ref_cust_trx_line_gl_dist_id    CUST_TRX_LINE_GL_DIST_ID
6669       --
6670       ,ctl.inventory_item_id               INVENTORY_ITEM_ID
6671       ,ctl.sales_tax_id                    SALES_TAX_ID
6672       ,trx.set_of_books_id                 SET_OF_BOOKS_ID
6673       ,trx.bill_to_site_use_id             BILL_SITE_USE_ID
6674       ,trx.sold_to_site_use_id             SOLD_SITE_USE_ID
6675       ,trx.ship_to_site_use_id             SHIP_SITE_USE_ID
6676       ,trx.bill_to_customer_id             BILL_CUSTOMER_ID
6677       ,trx.sold_to_customer_id             SOLD_CUSTOMER_ID
6678       ,trx.ship_to_customer_id             SHIP_CUSTOMER_ID
6679       ,ctl.tax_line_id                     TAX_LINE_ID
6680       --
6681       ,'Y'                                 SELECT_FLAG
6682       ,'L'                                 LEVEL_FLAG
6683       ,'T'                                 FROM_TO_FLAG
6684       ,'BANK_CHARGES'                    CRH_STATUS
6685       ,crh.status                          APP_CRH_STATUS
6686       --
6687       ,gt.event_type_code                  EVENT_TYPE_CODE
6688       ,gt.event_class_code                 EVENT_CLASS_CODE
6689       ,gt.entity_code                      ENTITY_CODE
6690       --
6691       ,ard.third_party_id                  third_party_id
6692       ,ard.third_party_sub_id              third_party_site_id
6693       ,DECODE(ard.third_party_id,NULL,NULL,'C')           third_party_type
6694       ,ard.source_type                       source_type
6695       ,abs(crhlatest.amount+ nvl(crhlatest.factor_discount_amount,0)) RECP_AMOUNT
6696       ,abs(crhlatest.acctd_amount+ nvl(crhlatest.acctd_factor_discount_amount,0)) RECP_ACCTD_AMOUNT
6697       ,abs(crhlatest.factor_discount_amount) crh_amount
6698       ,abs(crhlatest.acctd_factor_discount_amount) crh_acctd_amount
6699       ,crhlatest.cash_receipt_history_id          CRH_RECORD_ID
6700       ,decode(crhlatest.amount+ nvl(crhlatest.factor_discount_amount,0),0,0,
6701           ar_unposted_item_util.currRound(ra.amount_applied-((abs(crhlatest.amount)/abs(crhlatest.amount+ nvl(crhlatest.factor_discount_amount,0)))*ra.amount_applied),cr.currency_code))    ALLOC_AMOUNT
6702       ,decode(crhlatest.acctd_amount+ nvl(crhlatest.acctd_factor_discount_amount,0),0,0,
6703         ar_unposted_item_util.currRound(ra.acctd_amount_applied_from-((abs(crhlatest.acctd_amount)/abs(crhlatest.acctd_amount+ nvl(crhlatest.acctd_factor_discount_amount,0)))*ra.acctd_amount_applied_from),cr.currency_code))    ALLOC_ACCTD_AMOUNT
6704       ,ext.max_line_id                            MAX_LINE_ID
6705       ,decode(trx.upgrade_method,'R12_11ICASH','N','') mfar_upg_trx
6706   FROM xla_events_gt                      gt,
6707        ar_receivable_applications_all     ra,
6708        ar_cash_receipt_history_all        crh,
6709        ar_distributions_all               ard,
6710        ra_customer_trx_all                trx,
6711        ra_cust_trx_line_gl_dist_all       ctlgd,
6712        ra_customer_trx_lines_all          ctl,
6713        ar_cash_receipts_all               cr,
6714        gl_ledgers                         lg,
6715        ar_cash_receipt_history_all        crhlatest,
6716        (SELECT source_id,
6717               MAX(line_id) max_line_id
6718         FROM ar_xla_lines_extract
6719         WHERE source_table='RA'
6720         AND posting_entity='APP'
6721         AND event_class_code='RECEIPT'
6722         AND customer_trx_line_id IS NOT NULL
6723         GROUP BY source_id) ext
6724  WHERE gt.application_id                = 222
6725    AND gt.event_type_code               IN ('RECP_CREATE','RECP_UPDATE')
6726    AND gt.event_id                      = ra.event_id
6727    AND ra.status                        = 'APP'
6728    AND ard.source_id                    = ra.receivable_application_id
6729    AND ard.source_table                 = 'RA'
6730    AND ra.receivable_application_id     = ext.source_id
6731    AND nvl(ard.REF_MF_DIST_FLAG, 'Z')   <> 'U'
6732    AND ard.source_type NOT IN ('EXCH_GAIN','EXCH_LOSS')
6733    AND ra.cash_receipt_history_id       = crh.cash_receipt_history_id
6734    AND ra.cash_receipt_id               = cr.cash_receipt_id
6735    AND trx.set_of_books_id              = lg.ledger_id
6736    AND crh.cash_receipt_id              = cr.cash_receipt_id
6737    AND crh.posting_control_id           <> -3
6738    AND crh.cash_receipt_id              = crhlatest.cash_receipt_id
6739    AND ard.ref_cust_trx_line_gl_dist_id = ctlgd.cust_trx_line_gl_dist_id(+)
6740    AND ard.ref_customer_trx_line_id     = ctl.customer_trx_line_id(+)
6741    AND ra.applied_customer_trx_id      = trx.customer_trx_id
6742    AND crhlatest.cash_receipt_id       = cr.cash_receipt_id
6743    AND crhlatest.cash_receipt_history_id =
6744      ( SELECT MAX(a.cash_receipt_history_id)
6745          FROM ar_cash_receipt_history_all a
6746         WHERE a.cash_receipt_id = cr.cash_receipt_id
6747           AND a.posting_control_id    <> -3)
6748    AND crhlatest.status = 'CLEARED'
6749    AND NVL(crhlatest.factor_discount_amount,0) <> 0
6750    AND NVL(crhlatest.acctd_factor_discount_amount,0) <> 0
6751 UNION ALL
6752 SELECT
6753        gt.event_id                      EVENT_ID
6754      -- ,-1 * ar_mfar_extract_s.NEXTVAL LINE_NUMBER
6755       ,'Y'                              MFAR_ADDITIONAL_ENTRY
6756       ,trx.set_of_books_id              LEDGER_ID
6757       ,lg.currency_code                 BASE_CURRENCY_CODE
6758       ,ra.org_id                        ORG_ID
6759       ,ard.line_id                      LINE_ID
6760       ,ra.receivable_application_id     SOURCE_ID
6761       ,'RA'                             SOURCE_TABLE
6762       ,ra.cash_receipt_id               HEADER_TABLE_ID
6763       ,'APPLICATION'                    POSTING_ENTITY
6764       ,gt.entity_id                     XLA_ENTITY_ID
6765       --
6766       ,ard.code_combination_id          DIST_CCID
6767       ,ard.ref_dist_ccid                REF_DIST_CCID
6768       ,ctlgd.code_Combination_id        REF_CTLGD_CCID
6769       --
6770       ,cr.currency_code                 FROM_CURRENCY_CODE
6771       ,crh.exchange_rate                FROM_EXCHANGE_RATE
6772       ,crh.exchange_rate_type           FROM_EXCHANGE_RATE_TYPE
6773       ,crh.exchange_date                FROM_EXCHANGE_DATE
6774       ,-1 * (NVL(ard.from_amount_cr,0)-NVL(ard.from_amount_dr,0))               FROM_AMOUNT
6775       ,-1 * (NVL(ard.from_acctd_amount_cr,0)-NVL(ard.from_acctd_amount_dr,0))   FROM_ACCTD_AMOUNT
6776       --
6777       ,trx.invoice_currency_code        TO_CURRENCY_CODE
6778       ,trx.exchange_rate                EXCHANGE_RATE
6779       ,trx.exchange_rate_type           EXCHANGE_RATE_TYPE
6780       ,trx.exchange_date                EXCHANGE_DATE
6781       ,-1 * (NVL(ard.amount_cr,0)-NVL(ard.amount_dr,0))                 AMOUNT
6782       ,-1 * (NVL(ard.acctd_amount_cr,0)-NVL(ard.acctd_amount_dr,0))     ACCTD_AMOUNT
6783       --
6784       ,ra.receivable_application_id     RECEIVABLE_APPLICATION_ID
6785       ,ra.cash_receipt_id               CASH_RECEIPT_ID
6786       ,ra.applied_customer_trx_id       CUSTOMER_TRX_ID
6787       ,ard.ref_customer_trx_line_id     CUSTOMER_TRX_LINE_ID
6788       ,ard.ref_cust_trx_line_gl_dist_id    CUST_TRX_LINE_GL_DIST_ID
6789       --
6790       ,ctl.inventory_item_id               INVENTORY_ITEM_ID
6791       ,ctl.sales_tax_id                    SALES_TAX_ID
6792       ,trx.set_of_books_id                 SET_OF_BOOKS_ID
6793       ,trx.bill_to_site_use_id             BILL_SITE_USE_ID
6794       ,trx.sold_to_site_use_id             SOLD_SITE_USE_ID
6795       ,trx.ship_to_site_use_id             SHIP_SITE_USE_ID
6796       ,trx.bill_to_customer_id             BILL_CUSTOMER_ID
6797       ,trx.sold_to_customer_id             SOLD_CUSTOMER_ID
6798       ,trx.ship_to_customer_id             SHIP_CUSTOMER_ID
6799       ,ctl.tax_line_id                     TAX_LINE_ID
6800       --
6801       ,'Y'                                 SELECT_FLAG
6802       ,'L'                                 LEVEL_FLAG
6803       ,'T'                                 FROM_TO_FLAG
6804       ,'BANK_CHARGES'                      CRH_STATUS
6805       ,crh.status                          APP_CRH_STATUS
6806       --
6807       ,gt.event_type_code                  EVENT_TYPE_CODE
6808       ,gt.event_class_code                 EVENT_CLASS_CODE
6809       ,gt.entity_code                      ENTITY_CODE
6810       --
6811       ,ard.third_party_id                  third_party_id
6812       ,ard.third_party_sub_id              third_party_site_id
6813       ,DECODE(ard.third_party_id,NULL,NULL,'C')           third_party_type
6814       ,ard.source_type                       source_type
6815       ,abs(crh.amount + nvl(crh.factor_discount_amount,0)) RECP_AMOUNT
6816       ,abs(crh.acctd_amount + nvl(crh.acctd_factor_discount_amount,0)) RECP_ACCTD_AMOUNT
6817       ,abs(crhgt.amount) crh_amount
6818       ,abs(crhgt.acctd_amount) crh_acctd_amount
6819       ,crh.cash_receipt_history_id          CRH_RECORD_ID
6820       ,decode(crh.amount+ nvl(crh.factor_discount_amount,0),0,0,
6821          ar_unposted_item_util.currRound(ra.amount_applied-((abs(crh.amount)/abs(crh.amount+ nvl(crh.factor_discount_amount,0)))*ra.amount_applied),cr.currency_code))   ALLOC_AMOUNT
6822       ,decode(crh.acctd_amount+ nvl(crh.acctd_factor_discount_amount,0),0,0,
6823          ar_unposted_item_util.currRound(ra.acctd_amount_applied_from-((abs(crh.acctd_amount)/abs(crh.acctd_amount+ nvl(crh.acctd_factor_discount_amount,0)))*ra.acctd_amount_applied_from),cr.currency_code))   ALLOC_ACCTD_AMOUNT
6824       ,ext.max_line_id                            MAX_LINE_ID
6825       ,decode(trx.upgrade_method,'R12_11ICASH','N','') mfar_upg_trx
6826   FROM xla_events_gt                      gt,
6827        ar_receivable_applications_all     ra,
6828        ar_cash_receipt_history_all        crh,
6829        ar_distributions_all               ard,
6830        ra_customer_trx_all                trx,
6831        ra_cust_trx_line_gl_dist_all       ctlgd,
6832        ra_customer_trx_lines_all          ctl,
6833        ar_cash_receipts_all               cr,
6834        gl_ledgers                         lg,
6835        ar_crh_gt			  crhgt,
6836        (SELECT source_id,
6837               MAX(line_id) max_line_id
6838         FROM ar_xla_lines_extract
6839         WHERE source_table='RA'
6840         AND posting_entity='APP'
6841         AND event_class_code='RECEIPT'
6842         AND customer_trx_line_id IS NOT NULL
6843         GROUP BY source_id) ext
6844  WHERE gt.application_id                = 222
6845    AND gt.event_type_code               IN ('RECP_CREATE','RECP_UPDATE')
6846    AND gt.event_id                      = ra.event_id
6847    AND ra.status                        = 'APP'
6848    AND ard.source_id                    = ra.receivable_application_id
6849    AND ard.source_table                 = 'RA'
6850    AND ra.receivable_application_id     = ext.source_id
6851    AND nvl(ard.REF_MF_DIST_FLAG, 'Z')   <> 'U'
6852    AND ard.source_type NOT IN ('EXCH_GAIN','EXCH_LOSS')
6853    AND ra.cash_receipt_history_id       = crh.cash_receipt_history_id
6854    AND ra.cash_receipt_id               = cr.cash_receipt_id
6855    AND trx.set_of_books_id              = lg.ledger_id
6856    AND crh.cash_receipt_id              = cr.cash_receipt_id
6857    AND crh.posting_control_id           = -3
6858    AND ra.event_id			<> crh.event_id
6859    AND ard.ref_cust_trx_line_gl_dist_id = ctlgd.cust_trx_line_gl_dist_id(+)
6860    AND ard.ref_customer_trx_line_id     = ctl.customer_trx_line_id(+)
6861    AND ra.applied_customer_trx_id	= trx.customer_trx_id
6862    AND crhgt.cash_receipt_id		= crh.cash_receipt_id
6863    AND crhgt.cash_receipt_history_id	= crh.cash_receipt_history_id
6864    AND crhgt.status			= 'BANK_CHARGES'
6865    AND sign(crhgt.CRH_LINE_ID)          <> -1
6866    AND crh.status			= 'CLEARED'
6867    AND NVL(crh.factor_discount_amount,0) <> 0
6868    AND NVL(crh.acctd_factor_discount_amount,0) <> 0
6869    order by CASH_RECEIPT_ID, LINE_ID, CRH_RECORD_ID, CRH_STATUS
6870           ) ordered_crh;
6871 
6872 
6873 -- crh_mfar_extract_record table type local variable
6874   l_crh_mfar_extract_record crh_mfar_extract_record_type;
6875 
6876 
6877 BEGIN
6878   local_log(procedure_name => 'mfar_get_ra',
6879             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_get_ra ()+');
6880 
6881  OPEN mfar_extract_app_cur;
6882  LOOP
6883    FETCH mfar_extract_app_cur BULK COLLECT INTO l_crh_mfar_extract_record LIMIT MAX_ARRAY_SIZE;
6884    IF PG_DEBUG in ('Y', 'C') THEN
6885 	   arp_standard.debug('mfar_produit_app_by_crh current fetch count   '|| l_crh_mfar_extract_record.count);
6886    END IF;
6887 
6888    IF l_crh_mfar_extract_record.count = 0 THEN
6889 	  EXIT;
6890    END IF;
6891 
6892 -- Calculate prorated amounts and insert data into extract
6893   mfar_insert_crh_extract (l_crh_mfar_extract_record);
6894 
6895  END LOOP;
6896 
6897    CLOSE mfar_extract_app_cur;
6898 
6899   local_log(procedure_name => 'mfar_get_ra',
6900             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_get_ra ()-');
6901 EXCEPTION
6902 --  WHEN NO_DATA_FOUND THEN NULL;
6903   WHEN OTHERS THEN
6904    local_log(procedure_name => 'mfar_get_ra',
6905              p_msg_text     => 'EXCEPTION OTHERS in mfar_get_ra '||
6906                  arp_global.CRLF || 'Error      :'|| SQLERRM);
6907     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
6908     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
6909          'Procedure :arp_xla_extract_main_pkg.mfar_get_ra'|| arp_global.CRLF||
6910          'Error     :'||SQLERRM);
6911     FND_MSG_PUB.ADD;
6912   RAISE;
6913 END mfar_get_ra;
6914 
6915 /*-----------------------------------------------------------------+
6916  | Procedure Name : mfar_rctapp_curr_round                         |
6917  | Description    : Create Line Level CURR_ROUND distributions     |
6918  |                  for MFAR Accounting Customers                  |
6919  +-----------------------------------------------------------------+
6920  | History        :                                                |
6921  | 02-AUG-2010     Anshu Kaushal    Created due to bug#9761480     |
6922  +-----------------------------------------------------------------*/
6923 PROCEDURE mfar_rctapp_curr_round
6924 IS
6925 BEGIN
6926    local_log(procedure_name => 'mfar_rctapp_curr_round',
6927              p_msg_text     => 'arp_xla_extract_main_pkg.mfar_rctapp_curr_round ()+');
6928 
6929 INSERT INTO ar_xla_lines_extract (
6930         EVENT_ID
6931        ,LINE_NUMBER
6932        ,LANGUAGE
6933        ,LEDGER_ID
6934        ,SOURCE_ID
6935        ,SOURCE_TABLE
6936        ,LINE_ID
6937        ,TAX_CODE_ID
6938        ,LOCATION_SEGMENT_ID
6939        ,BASE_CURRENCY_CODE
6940        ,EXCHANGE_RATE_TYPE
6941        ,EXCHANGE_RATE
6942        ,EXCHANGE_DATE
6943        ,ACCTD_AMOUNT
6944        ,TAXABLE_ACCTD_AMOUNT
6945        ,ORG_ID
6946        ,HEADER_TABLE_ID
6947        ,POSTING_ENTITY
6948        ,CASH_RECEIPT_ID
6949        ,CUSTOMER_TRX_ID
6950        ,CUSTOMER_TRX_LINE_ID
6951        ,CUST_TRX_LINE_GL_DIST_ID
6952        ,CUST_TRX_LINE_SALESREP_ID
6953        ,INVENTORY_ITEM_ID
6954        ,SALES_TAX_ID
6955        ,SO_ORGANIZATION_ID
6956        ,TAX_EXEMPTION_ID
6957        ,UOM_CODE
6958        ,WAREHOUSE_ID
6959        ,AGREEMENT_ID
6960        ,CUSTOMER_BANK_ACCT_ID
6961        ,DRAWEE_BANK_ACCOUNT_ID
6962        ,REMITTANCE_BANK_ACCT_ID
6963        ,DISTRIBUTION_SET_ID
6964        ,PAYMENT_SCHEDULE_ID
6965        ,RECEIPT_METHOD_ID
6966        ,RECEIVABLES_TRX_ID
6967        ,ED_ADJ_RECEIVABLES_TRX_ID
6968        ,UNED_RECEIVABLES_TRX_ID
6969        ,SET_OF_BOOKS_ID
6970        ,SALESREP_ID
6971        ,BILL_SITE_USE_ID
6972        ,DRAWEE_SITE_USE_ID
6973        ,PAYING_SITE_USE_ID
6974        ,SOLD_SITE_USE_ID
6975        ,SHIP_SITE_USE_ID
6976        ,RECEIPT_CUSTOMER_SITE_USE_ID
6977        ,BILL_CUST_ROLE_ID
6978        ,DRAWEE_CUST_ROLE_ID
6979        ,SHIP_CUST_ROLE_ID
6980        ,SOLD_CUST_ROLE_ID
6981        ,BILL_CUSTOMER_ID
6982        ,DRAWEE_CUSTOMER_ID
6983        ,PAYING_CUSTOMER_ID
6984        ,SOLD_CUSTOMER_ID
6985        ,SHIP_CUSTOMER_ID
6986        ,REMIT_ADDRESS_ID
6987        ,RECEIPT_BATCH_ID
6988        ,RECEIVABLE_APPLICATION_ID
6989        ,CUSTOMER_BANK_BRANCH_ID
6990        ,ISSUER_BANK_BRANCH_ID
6991        ,BATCH_SOURCE_ID
6992        ,BATCH_ID
6993        ,TERM_ID
6994        ,SELECT_FLAG
6995        ,LEVEL_FLAG
6996        ,FROM_TO_FLAG
6997        ,FROM_AMOUNT
6998        ,AMOUNT
6999        ,FROM_ACCTD_AMOUNT
7000        ,CRH_STATUS
7001        ,event_type_code
7002        ,event_class_code
7003        ,entity_code
7004        ,tax_line_id
7005        ,additional_char1
7006        ,FROM_EXCHANGE_RATE
7007        ,FROM_EXCHANGE_RATE_TYPE
7008        ,FROM_EXCHANGE_DATE
7009        ,FROM_CURRENCY_CODE
7010        ,TO_CURRENCY_CODE
7011        ,MFAR_ADDITIONAL_ENTRY
7012        ,SOURCE_TYPE
7013        ,DIST_CCID
7014        ,REF_DIST_CCID
7015        )
7016 SELECT /*+LEADING(gt) USE_NL(gt, app)*/
7017            gt.event_id,                      -- EVENT_ID
7018            -1 * ar_mfar_extract_s.nextval,                     -- LINE_NUMBER
7019            '',                               -- LANGUAGE
7020            sob.set_of_books_id,              -- LEDGER_ID
7021            dist.source_id,                   -- SOURCE_ID
7022            dist.source_table,                -- SOURCE_TABLE
7023            dist.line_id,                     -- LINE_ID
7024            dist.tax_code_id,                 -- TAX_CODE_ID
7025            dist.location_segment_id,         -- LOCATION_SEGMENT_ID
7026            sob.currency_code,                -- BASE_CURRENCY
7027            trxt.exchange_rate_type,          -- EXCHANGE_RATE_TYPE
7028            trxt.exchange_rate,               -- EXCHANGE_RATE
7029            decode(trxt.invoice_currency_code,sob.currency_code,
7030                     trxt.trx_date, trxt.exchange_date),         -- EXCHANGE_DATE
7031            (NVL(dist.acctd_amount_dr,0) -
7032                 NVL(dist.acctd_amount_cr,0)) - ( NVL(dist.from_acctd_amount_dr,0) -
7033                 NVL(dist.from_acctd_amount_cr,0)) ACCTD_AMOUNT
7034            ,NVL(dist.taxable_accounted_dr,0) -
7035                 NVL(dist.taxable_accounted_cr,0), -- TAXABLE_ACCTD_AMOUNT
7036            app.org_id,                       -- ORG_ID
7037            app.receivable_application_id,    -- HEADER_TABLE_ID
7038            'APP_CURR_ROUND',              -- POSTING_ENTITY
7039            NULL,                             -- CASH_RECEIPT_ID
7040            trxt.customer_trx_id,             -- CUSTOMER_TRX_ID
7041            tlt.customer_trx_line_id,         -- CUSTOMER_TRX_LINE_ID
7042            gldt.cust_trx_line_gl_dist_id,    -- CUST_TRX_LINE_GL_DIST_ID
7043            gldt.cust_trx_line_salesrep_id,   --  CUST_TRX_LINE_SALESREP_ID
7044            tlt.inventory_item_id,            -- INVENTORY_ITEM_ID
7045            tlt.sales_tax_id,                 -- SALES_TAX_ID
7046            osp.master_organization_id,       -- SO_ORGANIZATION_ID
7047            tlt.tax_exemption_id,             -- TAX_EXEMPTION_ID
7048            tlt.uom_code,                     -- UOM_CODE
7049            tlt.warehouse_id,                 -- WAREHOUSE_ID
7050            trxt.agreement_id,                -- AGREEMENT_ID
7051            trxt.customer_bank_account_id,    -- CUSTOMER_BANK_ACCT_ID
7052            trxt.drawee_bank_account_id,      -- DRAWEE_BANK_ACCOUNT_ID
7053            trxt.remit_bank_acct_use_id,  -- REMITTANCE_BANK_ACCT_ID
7054            NULL,                             -- DISTRIBUTION_SET_ID
7055            psch.payment_schedule_id,         -- PAYMENT_SCHEDULE_ID
7056            trxt.receipt_method_id,           -- RECEIPT_METHOD_ID
7057            NULL,                             -- RECEIVABLES_TRX_ID
7058            arp_xla_extract_main_pkg.ed_uned_trx('EDISC',app.org_id),       -- ED_ADJ_RECEIVABLES_TRX_ID
7059            arp_xla_extract_main_pkg.ed_uned_trx('UNEDISC',app.org_id),     -- UNED_RECEIVABLES_TRX_ID
7060            trxt.set_of_books_id,             -- SET_OF_BOOKS_ID
7061            trxt.primary_salesrep_id,         -- SALESREP_ID
7062            trxt.bill_to_site_use_id,         -- BILL_SITE_USE_ID
7063            trxt.drawee_site_use_id,          -- DRAWEE_SITE_USE_ID
7064            trxt.paying_site_use_id,          -- PAYING_SITE_USE_ID
7065            trxt.sold_to_site_use_id,         -- SOLD_SITE_USE_ID
7066            trxt.ship_to_site_use_id,         -- SHIP_SITE_USE_ID
7067            NULL,                             -- RECEIPT_CUSTOMER_SITE_USE_ID
7068            trxt.bill_to_contact_id,          -- BILL_CUST_ROLE_ID
7069            trxt.drawee_contact_id,           -- DRAWEE_CUST_ROLE_ID
7070            trxt.ship_to_contact_id,          -- SHIP_CUST_ROLE_ID
7071            trxt.sold_to_contact_id,          -- SOLD_CUST_ROLE_ID
7072            trxt.bill_to_customer_id,         -- BILL_CUSTOMER_ID
7073            trxt.drawee_id,                   -- DRAWEE_CUSTOMER_ID
7074            trxt.paying_customer_id,          -- PAYING_CUSTOMER_ID
7075            trxt.sold_to_customer_id,         -- SOLD_CUSTOMER_ID
7076            trxt.ship_to_customer_id,         -- SHIP_CUSTOMER_ID
7077            trxt.remit_to_address_id,         -- REMIT_ADDRESS_ID
7078            NULL,                             -- RECEIPT_BATCH_ID
7079            NULL,                             -- RECEIVABLE_APPLICATION_ID
7080            NULL,                             -- CUSTOMER_BANK_BRANCH_ID
7081            NULL,                             -- ISSUER_BANK_BRANCH_ID
7082            trxt.batch_source_id,             -- BATCH_SOURCE_ID
7083            trxt.batch_id,                    -- BATCH_ID
7084            trxt.term_id,                     -- TERM_ID
7085            'Y',                              -- SELECT_FLAG
7086            'L',                              -- LEVEL_FLAG
7087            'T',                              -- FROM_TO_FLAG
7088             (NVL(dist.amount_dr,0) - NVL(dist.amount_cr,0))
7089               - (NVL(dist.from_amount_dr,0) - NVL(dist.from_amount_cr,0)) FROM_AMOUNT
7090            ,(NVL(dist.amount_dr,0) - NVL(dist.amount_cr,0))
7091               - (NVL(dist.from_amount_dr,0) - NVL(dist.from_amount_cr,0)) AMOUNT
7092            , (NVL(dist.acctd_amount_dr,0) -
7093                 NVL(dist.acctd_amount_cr,0)) - ( NVL(dist.from_acctd_amount_dr,0) -
7094                 NVL(dist.from_acctd_amount_cr,0)) FROM_ACCTD_AMOUNT
7095 	 ,'CURR_ROUND'
7096          ,gt.event_type_code
7097          ,gt.event_class_code
7098          ,gt.entity_code
7099          ,tlt.tax_line_id
7100          ,app.upgrade_method
7101 	 ,cr.exchange_rate
7102 	 ,cr.exchange_rate_type
7103 	 ,cr.exchange_date
7104 	 ,cr.currency_code
7105 	 ,trxt.invoice_currency_code
7106          ,'Y'                    --MFAR_ADDITIONAL_ENTRY
7107          , 'CURR_ROUND'
7108          , currard.code_combination_id
7109          , dist.ref_dist_ccid
7110       FROM xla_events_gt                  gt,
7111            ar_receivable_applications_all app,
7112            ar_distributions_all           dist,
7113            gl_sets_of_books               sob,
7114            oe_system_parameters_all       osp,
7115            ra_customer_trx_all            trxt,
7116            ra_customer_trx_lines_all      tlt,
7117            ra_cust_trx_line_gl_dist_all   gldt,
7118            ar_payment_schedules_all       psch,
7119            ar_cash_receipts_all           cr,
7120            ar_distributions_all           currard
7121      WHERE gt.event_type_code IN ('RECP_CREATE' ,'RECP_UPDATE', 'RECP_RATE_ADJUST' )
7122        AND gt.application_id                 = 222
7123        AND gt.event_id                       = app.event_id
7124        AND (app.upgrade_method              IN ('R12_NLB','R12', 'R12_11IMFAR', 'R12_11ICASH','11I_R12_POST','R12_MERGE')
7125             OR (app.upgrade_method IS NULL AND app.status = 'APP')
7126        OR (DECODE(app.upgrade_method,
7127                        '11I_MFAR_UPG'    ,DECODE(dist.source_table_secondary,'UPMFRAMIAR','Y','N'),
7128                         'N')                  = 'Y'))
7129        AND app.set_of_books_id               = sob.set_of_books_id
7130        AND app.org_id                        = osp.org_id(+)
7131        AND app.applied_customer_trx_id       = trxt.customer_trx_id
7132        AND app.cash_receipt_id               = cr.cash_receipt_id
7133        AND dist.source_id                    = app.receivable_application_id
7134        AND dist.source_table                 = 'RA'
7135        AND dist.ref_customer_trx_line_id     = tlt.customer_trx_line_id(+)
7136        AND dist.ref_cust_trx_line_gl_dist_id = gldt.cust_trx_line_gl_dist_id(+)
7137        AND trxt.customer_trx_id              = psch.customer_trx_id
7138        AND NVL(psch.terms_sequence_number,1) = 1
7139        AND (NVL(dist.acctd_amount_cr,0) - NVL(dist.acctd_amount_dr,0))
7140 	<> (NVL(dist.from_acctd_amount_cr,0) - NVL(dist.from_acctd_amount_dr,0))
7141        AND dist.source_type = 'REC'
7142        AND dist.source_id = currard.source_id
7143        AND dist.source_table = currard.source_table
7144        AND currard.source_type = 'CURR_ROUND';
7145 
7146 
7147    local_log(procedure_name => 'mfar_rctapp_curr_round',
7148              p_msg_text     => 'arp_xla_extract_main_pkg.mfar_rctapp_curr_round ()-');
7149 
7150 EXCEPTION
7151 --  WHEN NO_DATA_FOUND THEN NULL;
7152   WHEN OTHERS THEN
7153    local_log(procedure_name => 'mfar_rctapp_curr_round',
7154              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.mfar_rctapp_curr_round '||
7155              arp_global.CRLF || 'Error      :'|| SQLERRM);
7156     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
7157     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
7158          'Procedure :arp_xla_extract_main_pkg.mfar_rctapp_curr_round'|| arp_global.CRLF||
7159          'Error     :'||SQLERRM);
7160     FND_MSG_PUB.ADD;
7161   RAISE;
7162 END mfar_rctapp_curr_round;
7163 
7164 
7165 PROCEDURE mfar_mcd_dist_cr IS
7166 BEGIN
7167   local_log(procedure_name => 'mfar_mcd_dist_cr',
7168             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_mcd_dist_cr ()+');
7169 INSERT INTO ar_crh_app_gt (
7170  entity_id
7171 ,receivable_application_id
7172 ,cash_receipt_history_id
7173 ,cash_receipt_history_status
7174 ,line_id
7175 ,amount
7176 ,acctd_amount
7177 ,from_amount
7178 ,from_acctd_amount
7179 ,third_party_id
7180 ,third_party_site_id
7181 ,third_party_type
7182 ,from_currency_code
7183 ,from_exchange_rate
7184 ,from_exchange_type
7185 ,from_exchange_date
7186 ,to_currency_code
7187 ,to_exchange_rate
7188 ,to_exchange_type
7189 ,to_exchange_date
7190 ,ref_customer_trx_line_id
7191 ,ref_cust_trx_line_gl_dist_id
7192 ,code_combination_id
7193 ,ref_code_combination_id
7194 ,ref_dist_ccid
7195 ,activity_bucket
7196 ,source_type
7197 ,source_table
7198 ,ra_post_indicator
7199 ,crh_post_indicator
7200 ,customer_trx_id
7201 ,inventory_item_id
7202 ,sales_tax_id
7203 ,tax_line_id
7204 ,bill_to_customer_id
7205 ,bill_to_site_use_id
7206 ,sold_to_customer_id
7207 ,sold_to_site_use_id
7208 ,ship_to_customer_id
7209 ,ship_to_site_use_id
7210 ,signed_receipt_amount)
7211 SELECT xla.entity_id                           --entity_id
7212       ,mcd.misc_cash_distribution_id           --receivable_application_id
7213       ,NULL                                    --cash_receipt_history_id
7214       ,NULL                                    --cash_receipt_history_status
7215       ,ard.line_id                             --line_id
7216       ,NVL(ard.amount_cr,0)-
7217            NVL(ard.amount_dr,0)                --amount
7218       ,NVL(ard.acctd_amount_cr,0)-
7219            NVL(ard.acctd_amount_dr,0)          --acctd_amount
7220       ,NVL(ard.from_amount_cr,0)-
7221            NVL(ard.from_amount_dr,0)           --from_amount
7222       ,NVL(ard.from_acctd_amount_cr,0)-
7223            NVL(ard.from_acctd_amount_dr,0)     --from_acctd_amount
7224       ,NULL                                    --third_party_id
7225       ,NULL                                    --third_party_site_id
7226       ,NULL                                    --third_party_type
7227       ,cr.currency_code                        --from_currency_code
7228       ,NVL(crh.exchange_rate,cr.exchange_rate) --from_exchange_rate
7229       ,NVL(crh.exchange_rate_type,cr.exchange_rate_type) --from_exchange_type
7230       ,NVL(crh.exchange_date,cr.exchange_date) --from_exchange_date
7231       ,NULL                                    --to_currency_code
7232       ,NULL                                    --to_exchange_rate
7233       ,NULL                                    --to_exchange_type
7234       ,NULL                                    --to_exchange_date
7235       ,NULL                                    --ref_customer_trx_line_id
7236       ,NULL                                    --ref_cust_trx_line_gl_dist_id
7237       ,ard.code_combination_id                 --code_combination_id
7238       ,NULL                                    --ref_code_combination_id
7239       ,ard.ref_dist_ccid                       --ref_dist_ccid
7240       ,ard.activity_bucket                     --activity_bucket
7241       ,ard.source_type                         --source_type
7242       ,ard.source_table                        --source_table
7243       ,NULL                                    --ra_post_indicator
7244       ,NULL                                    --crh_post_indicator
7245       ,NULL                                    --customer_trx_id
7246       ,NULL
7247       ,NULL
7248       ,NULL
7249       ,NULL
7250       ,NULL
7251       ,NULL
7252       ,NULL
7253       ,NULL
7254       ,NULL
7255       ,cr.amount
7256   FROM ar_cash_receipts_all           cr
7257       ,ar_misc_cash_distributions_all mcd
7258       ,ar_cash_receipt_history_all    crh
7259       ,ar_distributions_all           ard
7260       ,(SELECT entity_id,
7261                source_id_int_1
7262           FROM xla_events_gt
7263          WHERE application_id  = 222
7264            AND event_type_code IN ('MISC_RECP_CREATE','MISC_RECP_UPDATE')
7265          GROUP BY entity_id,
7266                   source_id_int_1)    xla
7267  WHERE xla.source_id_int_1              = cr.cash_receipt_id
7268    AND cr.cash_receipt_id               = mcd.cash_receipt_id
7269    AND nvl(mcd.event_id, -1)            <> NVL((select event_id from ar_cash_receipt_history_all crh1 where
7270                                             crh1.cash_receipt_id = cr.cash_receipt_id and
7271                                             crh1.status='REVERSED' and crh1.current_record_flag = 'Y'),0)
7272    AND mcd.cash_receipt_history_id      = crh.cash_receipt_history_id(+)
7273    AND mcd.misc_cash_distribution_id    = ard.source_id
7274    AND ard.source_table                 = 'MCD';
7275   local_log(procedure_name => 'mfar_mcd_dist_cr',
7276             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_mcd_dist_cr ()-');
7277 EXCEPTION
7278 --  WHEN NO_DATA_FOUND THEN NULL;
7279   WHEN OTHERS THEN
7280    local_log(procedure_name => 'mfar_mcd_dist_cr',
7281              p_msg_text     => 'EXCEPTION OTHERS in mfar_mcd_dist_cr '||
7282                  arp_global.CRLF || 'Error      :'|| SQLERRM);
7283     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
7284     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
7285          'Procedure :arp_xla_extract_main_pkg.mfar_mcd_dist_cr'|| arp_global.CRLF||
7286          'Error     :'||SQLERRM);
7287     FND_MSG_PUB.ADD;
7288   RAISE;
7289 END;
7290 
7291 PROCEDURE mfar_produit_mcd_by_crh  IS
7292 BEGIN
7293   local_log(procedure_name => 'mfar_produit_mcd_by_crh',
7294             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_produit_mcd_by_crh ()+');
7295 
7296 INSERT INTO ar_xla_lines_extract
7297 (EVENT_ID
7298 ,LINE_NUMBER
7299 ,MFAR_ADDITIONAL_ENTRY
7300 ,LEDGER_ID
7301 ,BASE_CURRENCY_CODE
7302 ,ORG_ID
7303 ,LINE_ID
7304 ,SOURCE_ID
7305 ,SOURCE_TABLE
7306 ,HEADER_TABLE_ID
7307 ,POSTING_ENTITY
7308 ,XLA_ENTITY_ID
7309 --
7310 ,DIST_CCID
7311 ,REF_DIST_CCID
7312 ,REF_CTLGD_CCID
7313 --
7314 ,FROM_CURRENCY_CODE
7315 ,FROM_EXCHANGE_RATE
7316 ,FROM_EXCHANGE_RATE_TYPE
7317 ,FROM_EXCHANGE_DATE
7318 ,FROM_AMOUNT
7319 ,FROM_ACCTD_AMOUNT
7320 --
7321 ,TO_CURRENCY_CODE
7322 ,EXCHANGE_RATE
7323 ,EXCHANGE_RATE_TYPE
7324 ,EXCHANGE_DATE
7325 ,AMOUNT
7326 ,ACCTD_AMOUNT
7327 --
7328 ,RECEIVABLE_APPLICATION_ID
7329 ,CASH_RECEIPT_ID
7330 ,CUSTOMER_TRX_ID
7331 ,CUSTOMER_TRX_LINE_ID
7332 ,CUST_TRX_LINE_GL_DIST_ID
7333 --
7334 ,INVENTORY_ITEM_ID
7335 ,SALES_TAX_ID
7336 ,SET_OF_BOOKS_ID
7337 ,BILL_SITE_USE_ID
7338 ,SOLD_SITE_USE_ID
7339 ,SHIP_SITE_USE_ID
7340 ,BILL_CUSTOMER_ID
7341 ,SOLD_CUSTOMER_ID
7342 ,SHIP_CUSTOMER_ID
7343 ,TAX_LINE_ID
7344 --
7345 ,SELECT_FLAG
7346 ,LEVEL_FLAG
7347 ,FROM_TO_FLAG
7348 ,CRH_STATUS
7349 ,APP_CRH_STATUS
7350 --
7351 ,EVENT_TYPE_CODE
7352 ,EVENT_CLASS_CODE
7353 ,ENTITY_CODE)
7354 SELECT
7355        crh.event_id                              --event_id
7356       ,-1 * ar_mfar_extract_s.NEXTVAL            --LINE_NUMBER
7357       ,'Y'                                       --MFAR_ADDITIONAL_ENTRY
7358       ,crh.ledger_id                             --LEDGER_ID
7359       ,crh.base_currency_code                    --BASE_CURRENCY_CODE
7360       ,crh.org_id                                --ORG_ID
7361       ,mcd.line_id                               --LINE_ID
7362       ,mcd.receivable_application_id             --SOURCE_ID --This misc_cash_dist_id only
7363       ,'MCD'                                     --SOURCE_TABLE
7364       ,crh.cash_receipt_id                       --HEADER_TABLE_ID
7365       ,'MISC_RECEIPT_HISTORY'                    --POSTING_ENTITY
7366       ,crh.entity_id                             --xla_entity_id
7367       --
7368       ,mcd.code_combination_id                   --DIST_CCID
7369       ,mcd.code_combination_id                   --ref_dist_ccid
7370       ,mcd.code_combination_id                   --REF_CTLGD_CCID
7371       --
7372       ,mcd.from_currency_code                    --from_currency_code
7373       ,mcd.from_exchange_rate                    --from_exchange_rate
7374       ,mcd.from_exchange_type                    --FROM_EXCHANGE_RATE_TYPE
7375       ,mcd.from_exchange_date                    --from_exchange_date
7376       ,SIGN(crh.amount)*mcd.from_amount*SIGN(signed_receipt_amount) --from_amount
7377       ,SIGN(crh.acctd_amount)*mcd.from_acctd_amount*SIGN(signed_receipt_amount)--from_acctd_amount
7378       --
7379       ,mcd.from_currency_code                    --to_currency_code
7380       ,mcd.from_exchange_rate                    --exchange_rate
7381       ,mcd.from_exchange_type                    --EXCHANGE_RATE_TYPE
7382       ,mcd.from_exchange_date                    --EXCHANGE_DATE
7383       ,SIGN(crh.amount)*mcd.amount*SIGN(signed_receipt_amount)               --amount
7384       ,SIGN(crh.acctd_amount)*mcd.acctd_amount*SIGN(signed_receipt_amount)   --acctd_amount
7385       --
7386       ,mcd.receivable_application_id             --RECEIVABLE_APPLICATION_ID --MISC_CASH_DIST_ID
7387       ,crh.cash_receipt_id                       --CASH_RECEIPT_ID
7388       ,NULL                                      --CUSTOMER_TRX_ID
7389       ,NULL                                      --CUSTOMER_TRX_LINE_ID
7390       ,NULL                                      --CUST_TRX_LINE_GL_DIST_ID
7391       --
7392       ,NULL                                      --INVENTORY_ITEM_ID
7393       ,NULL                                      --SALES_TAX_ID
7394       ,crh.ledger_id                             --SET_OF_BOOKS_ID
7395       ,NULL                                      --BILL_SITE_USE_ID
7396       ,NULL                                      --SOLD_SITE_USE_ID
7397       ,NULL                                      --SHIP_SITE_USE_ID
7398       ,NULL                                      --BILL_CUSTOMER_ID
7399       ,NULL                                      --SOLD_CUSTOMER_ID
7400       ,NULL                                      --SHIP_CUSTOMER_ID
7401       ,NULL                                      --TAX_LINE_ID
7402       --
7403       ,'Y'                                       --SELECT_FLAG
7404       ,'L'                                       --LEVEL_FLAG
7405       ,'T'                                       --FROM_TO_FLAG
7406       ,crh.status                                --CRH_STATUS
7407       ,NULL                                      --APP_CRH_STATUS
7408       --
7409       ,gt.event_type_code                        --EVENT_TYPE_CODE
7410       ,gt.event_class_code                       --EVENT_CLASS_CODE
7411       ,gt.entity_code                            --ENTITY_CODE
7412   FROM ar_crh_gt                                           crh,
7413        ar_crh_app_gt                                       mcd,
7414        xla_events_gt                                       gt
7415  WHERE crh.entity_id     = mcd.entity_id
7416    AND mcd.source_table  = 'MCD'
7417    AND crh.event_id      = gt.event_id;
7418   local_log(procedure_name => 'mfar_produit_mcd_by_crh',
7419             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_produit_mcd_by_crh ()-');
7420 EXCEPTION
7421 --  WHEN NO_DATA_FOUND THEN NULL;
7422   WHEN OTHERS THEN
7423    local_log(procedure_name => 'mfar_mcd_dist_cr',
7424              p_msg_text     => 'EXCEPTION OTHERS in mfar_produit_mcd_by_crh '||
7425                  arp_global.CRLF || 'Error      :'|| SQLERRM);
7426     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
7427     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
7428          'Procedure :arp_xla_extract_main_pkg.mfar_produit_mcd_by_crh'|| arp_global.CRLF||
7429          'Error     :'||SQLERRM);
7430     FND_MSG_PUB.ADD;
7431   RAISE;
7432 END;
7433 
7434 
7435 
7436 PROCEDURE load_line_data_crh_mf(p_application_id IN NUMBER DEFAULT 222) IS
7437 BEGIN
7438   NULL;
7439 END;
7440 
7441 --------------------------------------------------------
7442 
7443 /*-----------------------------------------------------------------+
7444  | Procedure Name : Load_line_data_th                              |
7445  | Description    : Extract line data for Bill Receivable events   |
7446  +-----------------------------------------------------------------+
7447  | History        :                                                |
7448  | 23-FEB-2004     Herve Yu    Created due to bug#3419926          |
7449  +-----------------------------------------------------------------*/
7450 PROCEDURE load_line_data_th(P_APPLICATION_ID IN NUMBER DEFAULT 222)
7451 IS
7452 BEGIN
7453    local_log(procedure_name => 'load_line_data_th',
7454              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_line_data_th()+');
7455 
7456     INSERT INTO ar_xla_lines_extract (
7457         EVENT_ID
7458        ,LINE_NUMBER
7459        ,LANGUAGE
7460        ,LEDGER_ID
7461        ,SOURCE_ID
7462        ,SOURCE_TABLE
7463        ,LINE_ID
7464        ,TAX_CODE_ID
7465        ,LOCATION_SEGMENT_ID
7466        ,BASE_CURRENCY_CODE
7467        ,EXCHANGE_RATE_TYPE
7468        ,EXCHANGE_RATE
7469        ,EXCHANGE_DATE
7470        ,ACCTD_AMOUNT
7471        ,TAXABLE_ACCTD_AMOUNT
7472        ,ORG_ID
7473        ,HEADER_TABLE_ID
7474        ,POSTING_ENTITY
7475        ,CASH_RECEIPT_ID
7476        ,CUSTOMER_TRX_ID
7477        ,CUSTOMER_TRX_LINE_ID
7478        ,CUST_TRX_LINE_GL_DIST_ID
7479        ,CUST_TRX_LINE_SALESREP_ID
7480        ,INVENTORY_ITEM_ID
7481        ,SALES_TAX_ID
7482        ,SO_ORGANIZATION_ID
7483        ,TAX_EXEMPTION_ID
7484        ,UOM_CODE
7485        ,WAREHOUSE_ID
7486        ,AGREEMENT_ID
7487        ,CUSTOMER_BANK_ACCT_ID
7488        ,DRAWEE_BANK_ACCOUNT_ID
7489        ,REMITTANCE_BANK_ACCT_ID
7490        ,DISTRIBUTION_SET_ID
7491        ,PAYMENT_SCHEDULE_ID
7492        ,RECEIPT_METHOD_ID
7493        ,RECEIVABLES_TRX_ID
7494        ,ED_ADJ_RECEIVABLES_TRX_ID
7495        ,UNED_RECEIVABLES_TRX_ID
7496        ,SET_OF_BOOKS_ID
7497        ,SALESREP_ID
7498        ,BILL_SITE_USE_ID
7499        ,DRAWEE_SITE_USE_ID
7500        ,PAYING_SITE_USE_ID
7501        ,SOLD_SITE_USE_ID
7502        ,SHIP_SITE_USE_ID
7503        ,RECEIPT_CUSTOMER_SITE_USE_ID
7504        ,BILL_CUST_ROLE_ID
7505        ,DRAWEE_CUST_ROLE_ID
7506        ,SHIP_CUST_ROLE_ID
7507        ,SOLD_CUST_ROLE_ID
7508        ,BILL_CUSTOMER_ID
7509        ,DRAWEE_CUSTOMER_ID
7510        ,PAYING_CUSTOMER_ID
7511        ,SOLD_CUSTOMER_ID
7512        ,SHIP_CUSTOMER_ID
7513        ,REMIT_ADDRESS_ID
7514        ,RECEIPT_BATCH_ID
7515        ,RECEIVABLE_APPLICATION_ID
7516        ,CUSTOMER_BANK_BRANCH_ID
7517        ,ISSUER_BANK_BRANCH_ID
7518        ,BATCH_SOURCE_ID
7519        ,BATCH_ID
7520        ,TERM_ID
7521        ,SELECT_FLAG
7522        ,LEVEL_FLAG
7523        ,FROM_TO_FLAG
7524        ,FROM_AMOUNT
7525        ,AMOUNT
7526        ,FROM_ACCTD_AMOUNT
7527        ,PAIRED_CCID
7528        --{BUG#4356088
7529        ,event_type_code
7530        ,event_class_code
7531        ,entity_code
7532        --BUG#4645389
7533        ,tax_line_id
7534        --}
7535 ,MFAR_ADDITIONAL_ENTRY
7536        )
7537         SELECT /*+LEADING(gt) USE_NL(gt,th)*/
7538            gt.event_id,                      -- EVENT_ID
7539            ar_mfar_extract_s.NEXTVAL,        --LINE_NUMBER
7540            '',                               -- LANGUAGE
7541            sob.set_of_books_id,              -- LEDGER_ID
7542            dist.source_id,                   -- SOURCE_ID
7543            dist.source_table,                -- SOURCE_TABLE
7544            dist.line_id,                     -- LINE_ID
7545            dist.tax_code_id,                 -- TAX_CODE_ID
7546            dist.location_segment_id,         -- LOCATION_SEGMENT_ID
7547            sob.currency_code,                -- BASE_CURRENCY
7548            trx.exchange_rate_type     ,      -- EXCHANGE_RATE_TYPE
7549            trx.exchange_rate     ,           -- EXCHANGE_RATE
7550            trx.exchange_date     ,           -- EXCHANGE_DATE
7551            NVL(dist.acctd_amount_cr,0) -
7552                NVL(dist.acctd_amount_dr,0),      -- ACCTD_AMOUNT
7553            NVL(dist.taxable_accounted_cr,0) -
7554                NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
7555            th.org_id,                        -- ORG_ID
7556            th.transaction_history_id,        -- HEADER_ID
7557            'TH',                             -- POSTING_ENTITY
7558            '',                               -- CASH_RECEIPT_ID
7559            th.customer_trx_id,               -- CUSTOMER_TRX_ID
7560            dist.ref_customer_trx_line_id,    -- CUSTOMER_TRX_LINE_ID
7561            dist.ref_cust_trx_line_gl_dist_id,--CUST_TRX_LINE_GL_DIST_ID
7562            gld.cust_trx_line_salesrep_id,    -- CUST_TRX_LINE_SALESREP_ID
7563            tl.inventory_item_id,             --INVENTORY_ITEM_ID
7564            tl.sales_tax_id,                  --SALES_TAX_ID
7565            osp.master_organization_id,       --SO_ORGANIZATION_ID
7566            tl.tax_exemption_id,              --TAX_EXEMPTION_ID
7567            tl.uom_code,                      --UOM_CODE
7568            tl.warehouse_id,                  --WAREHOUSE_ID
7569            trx.agreement_id,                 --AGREEMENT_ID
7570            trx.customer_bank_account_id,     --CUSTOMER_BANK_ACCT_ID
7571            '',                               --DRAWEE_BANK_ACCOUNT_ID
7572            trx.remit_bank_acct_use_id,   --REMITTANCE_BANK_ACCT_ID
7573            '',                               --DISTRIBUTION_SET_ID
7574            psch.payment_schedule_id,         --PAYMENT_SCHEDULE_ID
7575            '',                               --RECEIPT_METHOD_ID
7576            '',                               --RECEIVABLES_TRX_ID
7577            '',                               --ED_ADJ_RECEIVABLES_TRX_ID
7578            '',                               --UNED_RECEIVABLES_TRX_ID
7579            sob.set_of_books_id,              --SET_OF_BOOKS_ID
7580            trx.primary_salesrep_id,          --SALESREP_ID
7581            trx.bill_to_site_use_id,          --BILL_SITE_USE_ID
7582            trx.drawee_site_use_id,           --DRAWEE_SITE_USE_ID
7583            trx.paying_site_use_id,           --PAYING_SITE_USE_ID
7584            trx.sold_to_site_use_id,          --SOLD_SITE_USE_ID
7585            trx.ship_to_site_use_id,          --SHIP_SITE_USE_ID
7586            '',                               --RECEIPT_CUSTOMER_SITE_USE_ID
7587            trx.bill_to_contact_id,           --BILL_CUST_ROLE_ID
7588            trx.drawee_contact_id,            --DRAWEE_CUST_ROLE_ID
7589            trx.ship_to_contact_id,           --SHIP_CUST_ROLE_ID
7590            trx.sold_to_contact_id,           --SOLD_CUST_ROLE_ID
7591            trx.bill_to_customer_id,          --BILL_CUSTOMER_ID
7592            trx.drawee_id,                    --DRAWEE_CUSTOMER_ID
7593            trx.paying_customer_id,           --PAYING_CUSTOMER_ID
7594            trx.sold_to_customer_id,          --SOLD_CUSTOMER_ID
7595            trx.ship_to_customer_id,          --SHIP_CUSTOMER_ID
7596            '',                               --REMIT_ADDRESS_ID
7597            '',                               --RECEIPT_BATCH_ID
7598            '',                               --RECEIVABLE_APPLICATION_ID
7599            '',                               --CUSTOMER_BANK_BRANCH_ID
7600            '',                               --ISSUER_BANK_BRANCH_ID
7601            trx.batch_source_id,              --BATCH_SOURCE_ID
7602            trx.batch_id,                     --BATCH_ID
7603            trx.term_id,                      --TERM_ID
7604            'N',                              --SELECT_FLAG
7605            'L',                              --LEVEL_FLAG
7606            '',                               --FROM_TO_FLAG
7607            NVL(dist.from_amount_cr,0)
7608              -NVL(dist.from_amount_dr,0),    -- FROM_AMOUNT,
7609            NVL(dist.amount_cr,0)
7610              -NVL(dist.amount_dr,0),         -- AMOUNT
7611            NVL(dist.from_acctd_amount_cr,0)
7612              -NVL(dist.from_acctd_amount_dr,0), -- FROM_ACCTD_AMOUNT
7613            NULL                           -- PAIRED_CCID
7614          --{BUG#4356088
7615          ,gt.event_type_code
7616          ,gt.event_class_code
7617          ,gt.entity_code
7618          --BUG#4645389
7619          ,tl.tax_line_id       --tax_line_id
7620          ,'N'
7621       FROM xla_events_gt                  gt,
7622            ar_transaction_history_all     th,
7623            ra_customer_trx_all            trx,
7624            ra_customer_trx_lines_all      tl,
7625            ra_cust_trx_line_gl_dist_all   gld,
7626            oe_system_parameters_all       osp,
7627            ar_distributions_all           dist,
7628            gl_sets_of_books               sob,
7629            ar_payment_schedules_all       psch
7630      WHERE gt.event_type_code             IN ('BILL_CREATE'  ,
7631                                               'BILL_UPDATE'  ,
7632                                               'BILL_REVERSE'   )
7633        AND gt.application_id              = p_application_id
7634        AND gt.event_id                    = th.event_id
7635        AND dist.source_table              = 'TH'
7636        AND dist.source_id                 = th.transaction_history_id
7637        AND th.customer_trx_id             = trx.customer_trx_id
7638 --       AND trx.customer_trx_id            = tl.customer_trx_id
7639 --       AND trx.customer_trx_id            = gld.customer_trx_id
7640        AND th.org_id                      = osp.org_id(+)
7641        /*Pass double entries accounting*/
7642        --AND (    ( dist.source_type = 'REC' AND dist.source_table_secondary = 'CTL')
7643        --      OR ( dist.source_type <> 'REC'))
7644        AND dist.ref_customer_trx_line_id  = tl.customer_trx_line_id(+)
7645        AND dist.ref_cust_trx_line_gl_dist_id = gld.cust_trx_line_gl_dist_id(+)
7646        AND trx.set_of_books_id            = sob.set_of_books_id
7647        AND trx.customer_trx_id            = psch.customer_trx_id
7648        AND NVL(psch.terms_sequence_number,1) = 1;
7649    local_log(procedure_name => 'load_line_data_th',
7650              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.load_line_data_th()-');
7651 EXCEPTION
7652 --  WHEN NO_DATA_FOUND THEN NULL;
7653   WHEN OTHERS THEN
7654    local_log(procedure_name => 'load_line_data_th',
7655              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_line_data_th '||
7656               arp_global.CRLF ||  'Error      :'|| SQLERRM);
7657     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
7658     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
7659          'Procedure :arp_xla_extract_main_pkg.load_line_data_th'|| arp_global.CRLF||
7660          'Error     :'||SQLERRM);
7661     FND_MSG_PUB.ADD;
7662   RAISE;
7663 END load_line_data_th;
7664 
7665 
7666 PROCEDURE load_line_data_mcd(p_application_id  IN NUMBER DEFAULT 222)
7667 IS
7668 BEGIN
7669    local_log(procedure_name => 'load_line_data_mcd',
7670              p_msg_text     => 'arp_xla_extract_main_pkg.load_line_data_mcd()+');
7671     -- Insert line level data in Line GT with
7672     -- selected_flag = N
7673     -- level_flag    = L
7674     -- From_to_flag  = NULL
7675     INSERT INTO ar_xla_lines_extract (
7676         EVENT_ID
7677        ,LINE_NUMBER
7678        ,LANGUAGE
7679        ,LEDGER_ID
7680        ,SOURCE_ID
7681        ,SOURCE_TABLE
7682        ,LINE_ID
7683        ,TAX_CODE_ID
7684        ,LOCATION_SEGMENT_ID
7685        ,BASE_CURRENCY_CODE
7686        ,EXCHANGE_RATE_TYPE
7687        ,EXCHANGE_RATE
7688        ,EXCHANGE_DATE
7689        ,ACCTD_AMOUNT
7690        ,TAXABLE_ACCTD_AMOUNT
7691        ,ORG_ID
7692        ,HEADER_TABLE_ID
7693        ,POSTING_ENTITY
7694        ,CASH_RECEIPT_ID
7695        ,CUSTOMER_TRX_ID
7696        ,CUSTOMER_TRX_LINE_ID
7697        ,CUST_TRX_LINE_GL_DIST_ID
7698        ,CUST_TRX_LINE_SALESREP_ID
7699        ,INVENTORY_ITEM_ID
7700        ,SALES_TAX_ID
7701        ,SO_ORGANIZATION_ID
7702        ,TAX_EXEMPTION_ID
7703        ,UOM_CODE
7704        ,WAREHOUSE_ID
7705        ,AGREEMENT_ID
7706        ,CUSTOMER_BANK_ACCT_ID
7707        ,DRAWEE_BANK_ACCOUNT_ID
7708        ,REMITTANCE_BANK_ACCT_ID
7709        ,DISTRIBUTION_SET_ID
7710        ,PAYMENT_SCHEDULE_ID
7711        ,RECEIPT_METHOD_ID
7712        ,RECEIVABLES_TRX_ID
7713        ,ED_ADJ_RECEIVABLES_TRX_ID
7714        ,UNED_RECEIVABLES_TRX_ID
7715        ,SET_OF_BOOKS_ID
7716        ,SALESREP_ID
7717        ,BILL_SITE_USE_ID
7718        ,DRAWEE_SITE_USE_ID
7719        ,PAYING_SITE_USE_ID
7720        ,SOLD_SITE_USE_ID
7721        ,SHIP_SITE_USE_ID
7722        ,RECEIPT_CUSTOMER_SITE_USE_ID
7723        ,BILL_CUST_ROLE_ID
7724        ,DRAWEE_CUST_ROLE_ID
7725        ,SHIP_CUST_ROLE_ID
7726        ,SOLD_CUST_ROLE_ID
7727        ,BILL_CUSTOMER_ID
7728        ,DRAWEE_CUSTOMER_ID
7729        ,PAYING_CUSTOMER_ID
7730        ,SOLD_CUSTOMER_ID
7731        ,SHIP_CUSTOMER_ID
7732        ,REMIT_ADDRESS_ID
7733        ,RECEIPT_BATCH_ID
7734        ,RECEIVABLE_APPLICATION_ID
7735        ,CUSTOMER_BANK_BRANCH_ID
7736        ,ISSUER_BANK_BRANCH_ID
7737        ,BATCH_SOURCE_ID
7738        ,BATCH_ID
7739        ,TERM_ID
7740        ,SELECT_FLAG
7741        ,LEVEL_FLAG
7742        ,FROM_TO_FLAG
7743        ,FROM_AMOUNT
7744        ,AMOUNT
7745        ,FROM_ACCTD_AMOUNT
7746        ,reversal_code
7747        ,MFAR_ADDITIONAL_ENTRY
7748        )
7749       -- FROM document type Cash Receipt
7750        SELECT /*+LEADING(gt) USE_NL(gt,mcd)*/
7751            gt.event_id,                        -- EVENT_ID
7752            dist.line_id,                       -- LINE_NUMBER
7753            '',                                 -- LANGUAGE
7754            sob.set_of_books_id,                -- LEDGER_ID
7755            dist.source_id,                     -- SOURCE_ID
7756            dist.source_table,                  -- SOURCE_TABLE
7757            dist.line_id,                       -- LINE_ID
7758            dist.tax_code_id,                   -- TAX_CODE_ID
7759            dist.location_segment_id,           -- LOCATION_SEGMENT_ID
7760            sob.currency_code,                  -- BASE_CURRENCY
7761            NVL(crh.exchange_rate_type,cr.exchange_rate_type), -- EXCHANGE_RATE_TYPE
7762            NVL(crh.exchange_rate,cr.exchange_rate)     ,      -- EXCHANGE_RATE
7763            NVL(crh.exchange_date,cr.exchange_date)     ,      -- EXCHANGE_DATE
7764            NVL(dist.acctd_amount_cr,0)
7765              - NVL(dist.acctd_amount_dr,0),      -- ACCTD_AMOUNT
7766            NVL(dist.taxable_accounted_cr,0)
7767              - NVL(dist.taxable_accounted_dr,0), -- TAXABLE_ACCTD_AMOUNT
7768            mcd.org_id,                         -- ORG_ID
7769            mcd.cash_receipt_id,      -- HEADER_ID
7770            'MCD',                              -- POSTING_ENTITY
7771            cr.cash_receipt_id,                 -- CASH_RECEIPT_ID
7772            NULL,                               -- CUSTOMER_TRX_ID
7773            NULL,                               -- CUSTOMER_TRX_LINE_ID
7774            NULL,                               -- CUST_TRX_LINE_GL_DIST_ID
7775            NULL,                               -- CUST_TRX_LINE_SALESREP_ID
7776            NULL,                               -- INVENTORY_ITEM_ID
7777            NULL,                               -- SALES_TAX_ID
7778            NULL,                               -- SO_ORGANIZATION_ID
7779            NULL,                               -- TAX_EXEMPTION_ID
7780            NULL,                               -- UOM_CODE
7781            NULL,                               -- WAREHOUSE_ID
7782            NULL,                               -- AGREEMENT_ID
7783            cr.customer_bank_account_id,        -- CUSTOMER_BANK_ACCT_ID
7784            NULL,                               -- DRAWEE_BANK_ACCOUNT_ID
7785            cr.remit_bank_acct_use_id,      -- REMITTANCE_BANK_ACCT_ID
7786            cr.distribution_set_id,             -- DISTRIBUTION_SET_ID
7787            NULL,                               -- PAYMENT_SCHEDULE_ID
7788            cr.receipt_method_id,               -- RECEIPT_METHOD_ID
7789            cr.receivables_trx_id,              -- RECEIVABLES_TRX_ID
7790            NULL,                               -- ED_ADJ_RECEIVABLES_TRX_ID
7791            NULL,                               -- UNED_RECEIVABLES_TRX_ID
7792            cr.set_of_books_id,                 -- SET_OF_BOOKS_ID
7793            NULL,                               -- SALESREP_ID
7794            cr.customer_site_use_id,            -- BILL_SITE_USE_ID
7795            NULL,                               -- DRAWEE_SITE_USE_ID
7796            cr.customer_site_use_id,            -- PAYING_SITE_USE_ID  -- synch with PAYING_CUSTOMER_ID
7797            NULL,                               -- SOLD_SITE_USE_ID
7798            NULL,                               -- SHIP_SITE_USE_ID
7799            cr.customer_site_use_id,            -- RECEIPT_CUSTOMER_SITE_USE_ID
7800            NULL,                               -- BILL_CUST_ROLE_ID
7801            NULL,                               -- DRAWEE_CUST_ROLE_ID
7802            NULL,                               -- SHIP_CUST_ROLE_ID
7803            NULL,                               -- SOLD_CUST_ROLE_ID
7804            NULL,                               -- BILL_CUSTOMER_ID
7805            NULL,                               -- DRAWEE_CUSTOMER_ID
7806            cr.pay_from_customer,               -- PAYING_CUSTOMER_ID
7807            NULL,                               -- SOLD_CUSTOMER_ID
7808            NULL,                               -- SHIP_CUSTOMER_ID
7809            NULL,                               -- REMIT_ADDRESS_ID
7810            cr.SELECTED_REMITTANCE_BATCH_ID,    -- RECEIPT_BATCH_ID
7811            NULL,                              -- RECEIVABLE_APPLICATION_ID
7812            cr.customer_bank_branch_id,         -- CUSTOMER_BANK_BRANCH_ID
7813            cr.issuer_bank_branch_id,           -- ISSUER_BANK_BRANCH_ID
7814            NULL,                               -- BATCH_SOURCE_ID
7815            NULL,                               -- BATCH_ID
7816            NULL,                               -- TERM_ID
7817            'N',                                -- SELECT_FLAG
7818            'L',                                -- LEVEL_FLAG
7819            '',                                -- FROM_TO_FLAG
7820            NVL(dist.from_amount_cr,0)
7821              -NVL(dist.from_amount_dr,0),      -- FROM_AMOUNT,
7822            NVL(dist.amount_cr,0)
7823              -NVL(dist.amount_dr,0),           -- AMOUNT
7824            NVL(dist.from_acctd_amount_cr,0)
7825              -NVL(dist.from_acctd_amount_dr,0) -- AMOUNT
7826            ,DECODE(gt.event_type_code,'MISC_RECP_REVERSE' ,'Y','N') --reversal_code
7827            ,'N'
7828         FROM xla_events_gt                  gt,
7829              ar_misc_cash_distributions_all mcd,
7830              ar_distributions_all           dist,
7831              gl_sets_of_books               sob,
7832              ar_cash_receipts_all           cr,
7833              --5201086
7834              ar_cash_receipt_history_all    crh
7835      WHERE gt.event_type_code IN (  'MISC_RECP_CREATE','MISC_RECP_RATE_ADJUST',
7836                                     'MISC_RECP_UPDATE') --Uptake XLA Reversal 'MISC_RECP_REVERSE' )
7837 --'MISC_RECP_REVERSE' REVERSAL only needs header level source
7838        AND gt.event_id                    = mcd.event_id
7839        AND gt.application_id              = p_application_id
7840        AND dist.source_table              = 'MCD'
7841        AND dist.source_id                 = mcd.misc_cash_distribution_id
7842        AND mcd.set_of_books_id            = sob.set_of_books_id
7843        AND mcd.cash_receipt_id            = cr.cash_receipt_id
7844        AND mcd.cash_receipt_history_id    = crh.cash_receipt_history_id(+);
7845 --       AND dist.source_type               = 'MISCCASH';
7846 
7847    local_log(procedure_name => 'load_line_data_mcd',
7848              p_msg_text     => 'arp_xla_extract_main_pkg.load_line_data_mcd()-');
7849 EXCEPTION
7850 --  WHEN NO_DATA_FOUND THEN NULL;
7851   WHEN OTHERS THEN
7852    local_log(procedure_name => 'load_line_data_mcd',
7853              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.load_line_data_mcd '||
7854                 arp_global.CRLF ||  'Error      :'|| SQLERRM);
7855     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
7856     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
7857          'Procedure :arp_xla_extract_main_pkg.load_line_data_mcd'|| arp_global.CRLF||
7858          'Error     :'||SQLERRM);
7859     FND_MSG_PUB.ADD;
7860   RAISE;
7861 END load_line_data_mcd;
7862 
7863 
7864 -------------------------
7865 -- Extraction program  --
7866 -------------------------
7867 /*------------------------------------------------------+
7868  | Procedure name : Extract                             |
7869  +------------------------------------------------------+
7870  | Parameter : accounting mode                          |
7871  |              D for Draft                             |
7872  |              F for final                             |
7873  |                                                      |
7874  | Purpose : Extract the AR accounting lines based      |
7875  |           on xla events passed by XLA_EVENTS_GT      |
7876  |           This routine is launched by XLA accounting |
7877  |           program in extract phase                   |
7878  |                                                      |
7879  | Modification history                                 |
7880  | 23-FEB-2004  H. Yu  bug#3419926 restructuration      |
7881  +------------------------------------------------------*/
7882 --BUG#4387467
7883 PROCEDURE extract(p_application_id     IN NUMBER
7884                  ,p_accounting_mode    IN VARCHAR2)
7885 IS
7886 CURSOR c_sob IS
7887 SELECT set_of_books_id
7888   FROM ar_xla_lines_extract   gt
7889  WHERE posting_entity  in ('CR','CTLGD')
7890    AND select_flag     = 'Y'
7891    AND level_flag      = 'H'
7892    AND set_of_books_id IS NOT NULL
7893    AND event_class_code in ('RECEIPT','MISC_RECEIPT','CREDIT_MEMO');
7894 l_sob_id    NUMBER;
7895 BEGIN
7896    local_log(procedure_name => 'extract',
7897              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.extract()+');
7898    local_log(procedure_name => 'extract',
7899              p_msg_text     => '     p_application_id  :'|| p_application_id );
7900    local_log(procedure_name => 'extract',
7901              p_msg_text     => '     p_accounting_mode :'|| p_accounting_mode);
7902 
7903     upgrade_11i_r12_post;
7904 
7905     -- Posting transaction
7906     load_header_data_ctlgd(p_application_id => p_application_id);
7907     load_line_data_ctlgd(p_application_id => p_application_id);
7908     load_line_data_app_from_cm(p_application_id => p_application_id);
7909 
7910     -- Posting Cash Receipt or Misc cash receipt
7911     Load_header_data_crh(p_application_id => p_application_id);
7912 
7913     Load_line_data_crh(p_application_id => p_application_id);
7914 
7915     -- Posting from Cash Receipt
7916     load_line_data_app_from_cr(p_application_id => p_application_id);
7917 
7918     -- Posting Cash Receipt or Credit Memo
7919     -- Only execute once for both Cash receipt and Credit Memo
7920     -- If executed twice then duplication of data.
7921     load_line_data_app_to_trx(p_application_id => p_application_id);
7922 
7923     -- Mis Cash Receipt Distributions
7924     load_line_data_mcd(p_application_id => p_application_id);
7925 
7926     -- Posting Adjustment
7927     Load_header_data_adj(p_application_id => p_application_id);
7928     Load_line_data_adj(p_application_id => p_application_id);
7929 
7930     -- Posting Bill Receivable
7931     Load_header_data_th(p_application_id => p_application_id);
7932     Load_line_data_th(p_application_id => p_application_id);
7933 
7934     --{Execute MFAR extract if neceessary
7935     OPEN c_sob;
7936     FETCH c_sob INTO l_sob_id;
7937     IF c_sob%NOTFOUND THEN
7938       l_sob_id := -9999;
7939     END IF;
7940     CLOSE c_sob;
7941 
7942      local_log(procedure_name => 'extract',
7943                p_msg_text     => 'l_sob_id: '||l_sob_id);
7944 
7945 
7946     IF l_sob_id <> -9999 THEN
7947       mfar_hook(p_ledger_id => l_sob_id) ;
7948     END IF;
7949     --}
7950 
7951    --{Conditional run for JL callout
7952    IF JL_BR_AR_BANK_ACCT_PKG.check_if_upgrade_occs THEN
7953       local_log(procedure_name => 'extract',
7954                 p_msg_text     => ' JL Callout JL_BR_AR_BANK_ACCT_PKG.load_occurrences_header_data');
7955       JL_BR_AR_BANK_ACCT_PKG.load_occurrences_header_data(p_application_id => p_application_id);
7956    END IF;
7957 
7958    --}
7959 --   IF fnd_profile.value('AR_EXTRACT_DIAG') = 'Y' THEN
7960    IF PG_DEBUG = 'Y' THEN
7961      diag_data;
7962    END IF;
7963 --   END IF;
7964 
7965    local_log(procedure_name => 'extract',
7966              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.extract()-');
7967 EXCEPTION
7968 --  WHEN NO_DATA_FOUND THEN NULL;
7969   WHEN OTHERS THEN
7970    local_log(procedure_name => 'extract',
7971              p_msg_text     => 'EXCEPTION OTHERS in arp_xla_extract_main_pkg.extract '|| arp_global.CRLF ||
7972                                'Error      :'|| SQLERRM);
7973     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
7974     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
7975          'Procedure :arp_xla_extract_main_pkg.extract'|| arp_global.CRLF||
7976          'Error     :'||SQLERRM);
7977     FND_MSG_PUB.ADD;
7978     APP_EXCEPTION.RAISE_EXCEPTION;
7979 END extract;
7980 
7981 --Old extract for testing purposes
7982 PROCEDURE extract(p_accounting_mode IN VARCHAR2) IS
7983 BEGIN
7984  extract(p_application_id  => 222
7985         ,p_accounting_mode => p_accounting_mode);
7986 END;
7987 
7988 -----------------
7989 -- Post processing with XLA no more posting control id
7990 -- In posting Entity, we can either use a dummy id in the column posting
7991 -- control when the posting is successful.
7992 -- As we use the posting control id in AR posting entity to indicate if
7993 -- a document has been posted or not.
7994 -- For now we still use the posting control id sequence to stamp the posted
7995 -- documents, we can think of how to avoid maintaining this id going forward.
7996 -----------------
7997 -- The table in which the posting_control_id is present in AR are:
7998 -- AR_MC_CASH_BASIS_DISTS_ALL     Obsolete unified Accrual and Cash basis accounting
7999 -- AR_CASH_BASIS_DISTS_ALL        Obsolete unified Accrual and Cash basis accounting
8000 -- RA_CUSTOMER_TRX_ALL            Do not post
8001 -- AR_RATE_ADJUSTMENTS_ALL        Do not post
8002 -- AR_CASH_RECEIPT_HISTORY_ALL     A  Those 4 A entities will post together
8003 -- AR_MC_CASH_RECEIPT_HIST         A  (Misc) Cash Receipt
8004 -- AR_MISC_CASH_DISTRIBUTIONS_ALL  A
8005 -- AR_MC_MISC_CASH_DISTS           A
8006 -- RA_CUST_TRX_LINE_GL_DIST_ALL    B  Those 2 B entities will post tpgether
8007 -- RA_MC_TRX_LINE_GL_DIST          B  (Transactions)
8008 -- AR_ADJUSTMENTS_ALL              C  Those 2 C entities will post together
8009 -- AR_MC_ADJUSTMENTS               C  (Adjustments)
8010 -- AR_RECEIVABLE_APPLICATIONS_ALL  D  Those 2 D entities will post together
8011 -- AR_MC_RECEIVABLE_APPS           D  (Applications)
8012 -- AR_TRANSACTION_HISTORY_ALL      E  Those 2 E entities will post together
8013 -- AR_MC_TRANSACTION_HISTORY       E  (Bill Receivables)
8014 --                                    Question are there any side effect
8015 --                                    from BR on TRX ?
8016 ------------------
8017 /*------------------------------------------------------+
8018  | Procedure name : flag_the_posting_id                 |
8019  +------------------------------------------------------+
8020  | Parameter : accounting mode                          |
8021  |              D for Draft                             |
8022  |              F for final                             |
8023  |                                                      |
8024  | Purpose : Stamping the posting control id in AR      |
8025  |           AR posting entities only for Final mode.   |
8026  |           This is used in the post acctg process     |
8027  |                                                      |
8028  | Modification history                                 |
8029  | 23-FEB-2004  H. Yu  Bug#3419926                      |
8030  +------------------------------------------------------*/
8031 --BUG#4387467
8032 PROCEDURE postaccounting
8033   (p_application_id         IN  NUMBER,
8034    p_ledger_id              IN  NUMBER,
8035    p_process_category       IN  VARCHAR2,
8036    p_end_date               IN  DATE,
8037    p_accounting_mode        IN  VARCHAR2,
8038    p_valuation_method       IN  VARCHAR2,
8039    p_security_id_int_1      IN  NUMBER,
8040    p_security_id_int_2      IN  NUMBER,
8041    p_security_id_int_3      IN  NUMBER,
8042    p_security_id_char_1     IN  NUMBER,
8043    p_security_id_char_2     IN  NUMBER,
8044    p_security_id_char_3     IN  NUMBER,
8045    p_report_request_id      IN  NUMBER)
8046 IS
8047 BEGIN
8048   NULL;
8049 END;
8050 
8051 --BUG#4387467
8052 PROCEDURE postprocessing
8053 (p_application_id        IN NUMBER
8054 ,p_accounting_mode       IN VARCHAR2)
8055 IS
8056   l_pst_id     NUMBER;
8057   l_date       DATE;
8058 BEGIN
8059    local_log(procedure_name => 'postprocessing',
8060              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.postprocessing()+');
8061 
8062     IF  p_accounting_mode = 'F' THEN
8063 
8064       SELECT ar_posting_control_s.NEXTVAL
8065         INTO l_pst_id
8066         FROM DUAL;
8067 
8068       SELECT trunc(sysdate) INTO l_date FROM SYS.DUAL;
8069       --
8070       -- CRH
8071       -- GL Posting entiting are
8072       --   AR_CASH_RECEIPT_HISTORY_ALL,
8073       --   AR_MISC_CASH_DISTRIBUTIONS_ALL,
8074       --
8075       UPDATE ar_cash_receipt_history_all
8076          SET posting_control_id = l_pst_id,
8077              gl_posted_date     = l_date,
8078 	     last_updated_by = fnd_global.user_id,
8079 	     last_update_date = sysdate,
8080              last_update_login = fnd_global.user_id
8081        WHERE posting_control_id = -3
8082          AND (cash_receipt_id, event_id) IN
8083            (SELECT /*+ cardinality(EV,1) unnest */ ev.source_id_int_1, ev.event_id
8084 /* added hint as suggest by the perf team thru bug 13702457 */
8085               FROM xla_post_acctg_events_v ev
8086              WHERE ev.application_id    = p_application_id
8087                AND ev.process_status_code = 'P'
8088                AND ev.event_type_code   IN
8089                 ('RECP_CREATE'        ,
8090                  'RECP_UPDATE'        ,
8091                  'RECP_RATE_ADJUST'   ,
8092                  'RECP_REVERSE'       ,
8093                  'MISC_RECP_CREATE'   ,
8094                  'MISC_RECP_UPDATE'   ,
8095                  'MISC_RECP_RATE_ADJUST',
8096                  'MISC_RECP_REVERSE'    ));
8097 
8098       UPDATE AR_MISC_CASH_DISTRIBUTIONS_ALL
8099          SET posting_control_id = l_pst_id,
8100              gl_posted_date     = l_date,
8101 	     last_updated_by = fnd_global.user_id,
8102 	     last_update_date = sysdate,
8103              last_update_login = fnd_global.user_id
8104        WHERE posting_control_id = -3
8105          AND (cash_receipt_id, event_id) IN
8106              (SELECT ev.source_id_int_1, ev.event_id
8107                 FROM xla_post_acctg_events_v ev
8108                WHERE ev.application_id    = p_application_id
8109                  AND ev.process_status_code = 'P'
8110                  AND ev.event_type_code   IN
8111                 ('MISC_RECP_CREATE'   ,
8112                  'MISC_RECP_UPDATE'   ,
8113                  'MISC_RECP_RATE_ADJUST',
8114                  'MISC_RECP_REVERSE'  ));
8115 
8116       --
8117       -- CTLGD
8118       -- GL Posting entiting are
8119       --   RA_CUST_TRX_LINE_GL_DIST_ALL,
8120       --
8121       UPDATE /*+ INDEX(ra_cust_trx_line_gl_dist_all ra_cust_trx_line_gl_dist_n6) */
8122              ra_cust_trx_line_gl_dist_all
8123          SET posting_control_id = l_pst_id,
8124              gl_posted_date     = l_date,
8125 	     last_updated_by = fnd_global.user_id,
8126 	     last_update_date = sysdate,
8127              last_update_login = fnd_global.user_id
8128        WHERE posting_control_id = -3
8129          AND (customer_trx_id, event_id) IN
8130              (SELECT ev.source_id_int_1, ev.event_id
8131                 FROM xla_post_acctg_events_v ev
8132                WHERE ev.application_id    = p_application_id
8133                  AND ev.process_status_code = 'P'
8134                  AND ev.event_type_code   IN
8135                 ('INV_CREATE'     , 'INV_UPDATE'     ,
8136                  'CM_CREATE'      , 'CM_UPDATE'      ,
8137                  'DM_CREATE'      , 'DM_UPDATE'      ,
8138                  'DEP_CREATE'     , 'DEP_UPDATE' ,
8139                  'GUAR_CREATE'    , 'GUAR_UPDATE'    ,
8140                  'CB_CREATE'      ));
8141 
8142       --
8143       -- ADJ
8144       -- GL Posting entiting are
8145       --   AR_ADJUSTMENTS_ALL,
8146       --
8147       UPDATE ar_adjustments_all
8148          SET posting_control_id = l_pst_id,
8149              gl_posted_date     = l_date,
8150 	     last_updated_by = fnd_global.user_id,
8151 	     last_update_date = sysdate,
8152              last_update_login = fnd_global.user_id
8153        WHERE posting_control_id = -3
8154          AND adjustment_id IN
8155              (SELECT ev.source_id_int_1
8156                 FROM xla_post_acctg_events_v ev
8157                WHERE ev.application_id    = p_application_id
8158                  AND ev.process_status_code = 'P'
8159                  AND ev.event_type_code   = 'ADJ_CREATE');
8160 
8161       --
8162       -- APP
8163       -- GL Posting entiting are
8164       --   AR_RECEIVABLE_APPLICATIONS_ALL,
8165       --
8166       UPDATE ar_receivable_applications_all
8167          SET posting_control_id = l_pst_id,
8168              gl_posted_date     = l_date,
8169 	     last_updated_by = fnd_global.user_id,
8170 	     last_update_date = sysdate,
8171              last_update_login = fnd_global.user_id
8172        WHERE posting_control_id = -3
8173          AND event_id IN
8174              (SELECT /*+ LEADING(ev) CARDINALITY(ev,1) */ ev.event_id  -- Added hint for bug 14335425
8175                 FROM xla_post_acctg_events_v ev
8176                WHERE ev.application_id    = p_application_id
8177                  AND ev.process_status_code = 'P'
8178                  AND ev.event_type_code   IN
8179                   ('CM_CREATE'      ,'CM_UPDATE'      ,
8180                    'RECP_CREATE'    ,'RECP_UPDATE'    ,
8181                    'RECP_RATE_ADJUST','RECP_REVERSE'  ,
8182                    'MISC_RECP_RATE_ADJUST','MISC_RECP_REVERSE'  ));
8183 
8184       --
8185       -- TH
8186       -- GL Posting entiting are
8187       --   AR_TRANSACTION_HISTORY_ALL,
8188       --
8189       UPDATE AR_TRANSACTION_HISTORY_ALL
8190          SET posting_control_id = l_pst_id,
8191              gl_posted_date     = l_date,
8192 	     last_updated_by = fnd_global.user_id,
8193 	     last_update_date = sysdate,
8194              last_update_login = fnd_global.user_id
8195        WHERE posting_control_id = -3
8196          AND postable_flag='Y'
8197          AND event_id IN
8198              (SELECT ev.event_id
8199                 FROM xla_post_acctg_events_v ev
8200                WHERE ev.application_id    = p_application_id
8201                  AND ev.process_status_code = 'P'
8202                  AND ev.event_type_code   IN
8203                  ( 'BILL_CREATE'    ,
8204                    'BILL_UPDATE'    ,
8205                    'BILL_REVERSE'   ));
8206 
8207     END IF;
8208    local_log(procedure_name => 'postprocessing',
8209              p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.postprocessing()-');
8210 EXCEPTION
8211 --  WHEN NO_DATA_FOUND THEN NULL;
8212   WHEN OTHERS THEN
8213    local_log(procedure_name => 'postprocessing',
8214              p_msg_text     =>'EXCEPTION OTHERS in arp_xla_extract_main_pkg.postprocessing '|| arp_global.CRLF ||
8215        'Error      :'|| SQLERRM);
8216     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
8217     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
8218          'Procedure :arp_xla_extract_main_pkg.postprocessing '|| arp_global.CRLF||
8219          'Error     :'||SQLERRM);
8220     FND_MSG_PUB.ADD;
8221     APP_EXCEPTION.RAISE_EXCEPTION;
8222 END postprocessing;
8223 
8224 
8225 
8226 PROCEDURE flag_the_posting_id(p_accounting_mode IN VARCHAR2)
8227 IS
8228 BEGIN
8229    local_log(procedure_name => 'flag_the_posting_id',
8230              p_msg_text     =>'arp_xla_extract_main_pkg.flag_the_posting_id()+');
8231 
8232     postprocessing(p_application_id    => 222
8233                   ,p_accounting_mode   => p_accounting_mode);
8234 
8235    local_log(procedure_name => 'flag_the_posting_id',
8236              p_msg_text     =>'ARP_XLA_EXTRACT_MAIN_PKG.flag_the_posting_id()-');
8237 END flag_the_posting_id;
8238 
8239 
8240 /*-----------------------------------------------------------+
8241  | Procedure name : lock_documents_for_xla                   |
8242  +-----------------------------------------------------------+
8243  | Parameter : None                                          |
8244  |                                                           |
8245  | Purpose : Locking the records concerned in a              |
8246  |           particular accounting program process.          |
8247  |                                                           |
8248  | Modification history                                      |
8249  | 23-FEB-2004   H. Yu   Bug#3419926 Redesign of acct events |
8250  +-----------------------------------------------------------*/
8251 PROCEDURE preaccounting
8252 ( p_application_id     IN NUMBER
8253  ,p_ledger_id          IN NUMBER
8254  ,p_process_category   IN VARCHAR2
8255  ,p_end_date           IN DATE
8256  ,p_accounting_mode    IN VARCHAR2
8257  ,p_valuation_method   IN VARCHAR2
8258  ,p_security_id_int_1  IN NUMBER
8259  ,p_security_id_int_2  IN NUMBER
8260  ,p_security_id_int_3  IN NUMBER
8261  ,p_security_id_char_1 IN VARCHAR2
8262  ,p_security_id_char_2 IN VARCHAR2
8263  ,p_security_id_char_3 IN VARCHAR2
8264  ,p_report_request_id  IN NUMBER)
8265 IS
8266 BEGIN
8267    local_log(procedure_name =>'preaccounting',
8268              p_msg_text     =>'arp_xla_extract_main_pkg.preaccounting()+');
8269 
8270    local_log(procedure_name =>'preaccounting',
8271              p_msg_text     =>'  p_application_id    :'||p_application_id);
8272    local_log(procedure_name =>'preaccounting',
8273              p_msg_text     =>'  p_ledger_id         :'||p_ledger_id);
8274    local_log(procedure_name =>'preaccounting',
8275              p_msg_text     =>'  p_process_category  :'||p_process_category);
8276    local_log(procedure_name =>'preaccounting',
8277              p_msg_text     =>'  p_end_date          :'||p_end_date);
8278    local_log(procedure_name =>'preaccounting',
8279              p_msg_text     =>'  p_accounting_mode   :'||p_accounting_mode);
8280    local_log(procedure_name =>'preaccounting',
8281              p_msg_text     =>'  p_valuation_method  :'||p_valuation_method);
8282    local_log(procedure_name =>'preaccounting',
8283              p_msg_text     =>'  p_security_id_int_1 :'||p_security_id_int_1);
8284    local_log(procedure_name =>'preaccounting',
8285              p_msg_text     =>'  p_security_id_int_2 :'||p_security_id_int_2);
8286    local_log(procedure_name =>'preaccounting',
8287              p_msg_text     =>'  p_security_id_int_3 :'||p_security_id_int_3);
8288    local_log(procedure_name =>'preaccounting',
8289              p_msg_text     =>'  p_security_id_char_1:'||p_security_id_char_1);
8290    local_log(procedure_name =>'preaccounting',
8291              p_msg_text     =>'  p_security_id_char_2:'||p_security_id_char_2);
8292    local_log(procedure_name =>'preaccounting',
8293              p_msg_text     =>'  p_security_id_char_3:'||p_security_id_char_3);
8294    local_log(procedure_name =>'preaccounting',
8295              p_msg_text     =>'  p_report_request_id :'||p_report_request_id);
8296 
8297 --{
8298 --BUG#5366837
8299 --No need to run this code anymore as we upgrade unposted cash basis data and upgrade PSA dist to AR for adj - app -crh
8300 --For transaction although not upgraded MFAR AAD will build the correct accounting
8301 --{Unification of Cash Basis Accounting
8302 -- local_log(procedure_name =>'preaccounting',
8303 --           p_msg_text     =>'  call unification of cash basis : ar_upgrade_cash_accrual.create_cash_distributions');
8304 --
8305 --       ar_upgrade_cash_accrual.create_distributions;
8306 --
8307 -- local_log(procedure_name =>'preaccounting',
8308 --           p_msg_text     =>'  locking distribution rows');
8309 --}
8310 
8311        -- CTLGD
8312         SELECT 'lock'
8313           BULK COLLECT INTO l_lock
8314           FROM xla_entity_events_v          eve,
8315                ra_cust_trx_line_gl_dist_all ctlgd
8316          WHERE eve.request_id           = p_report_request_id
8317            AND eve.application_id       = p_application_id
8318            AND eve.entity_code          = 'TRANSACTIONS'
8319            AND eve.event_id             = ctlgd.event_id
8320            AND ctlgd.posting_control_id = -3
8321            AND ctlgd.account_set_flag   = 'N'
8322         FOR UPDATE OF ctlgd.cust_trx_line_gl_dist_id;
8323 
8324         -- ADJ
8325         SELECT 'lock'
8326           BULK COLLECT INTO l_lock
8327           FROM xla_entity_events_v          eve,
8328 		       ar_adjustments_all           adj
8329          WHERE eve.request_id           = p_report_request_id
8330            AND eve.application_id       = p_application_id
8331            AND eve.entity_code          = 'ADJUSTMENTS'
8332            AND eve.event_id             = adj.event_id
8333            AND adj.posting_control_id   = -3
8334            AND NVL(adj.postable,'Y')    = 'Y'
8335         FOR UPDATE OF adjustment_id;
8336 
8337         -- APP
8338         SELECT 'lock'
8339           BULK COLLECT INTO l_lock
8340           FROM xla_entity_events_v            eve,
8341                ar_receivable_applications_all app
8342          WHERE eve.request_id             = p_report_request_id
8343            AND eve.application_id         = p_application_id
8344            AND eve.entity_code           IN ('RECEIPTS','TRANSACTIONS')
8345            AND eve.event_id               = app.event_id
8346            AND app.posting_control_id     = -3
8347            AND NVL(app.postable,'Y')      ='Y'
8348            AND NVL(app.confirmed_flag,'Y')='Y'
8349         FOR UPDATE OF receivable_application_id;
8350 
8351         -- CRH MCD
8352         SELECT 'lock'
8353           BULK COLLECT INTO l_lock
8354           FROM xla_entity_events_v         eve,
8355                ar_cash_receipt_history_all crh
8356          WHERE eve.request_id           = p_report_request_id
8357            AND eve.application_id       = p_application_id
8358            AND eve.entity_code          = 'RECEIPTS'
8359            AND eve.event_id             = crh.event_id
8360            AND crh.posting_control_id   = -3
8361         FOR UPDATE OF crh.cash_receipt_history_id;
8362 
8363         SELECT 'lock'
8364           BULK COLLECT INTO l_lock
8365           FROM xla_entity_events_v            eve,
8366                ar_misc_cash_distributions_all mcd
8367          WHERE eve.request_id           = p_report_request_id
8368            AND eve.application_id       = p_application_id
8369            AND eve.entity_code          = 'RECEIPTS'
8370            AND eve.event_id             = mcd.event_id
8371            AND mcd.posting_control_id   = -3
8372         FOR UPDATE OF misc_cash_distribution_id;
8373 
8374         --TRH
8375         SELECT 'lock'
8376           BULK COLLECT INTO l_lock
8377           FROM xla_entity_events_v            eve,
8378                ar_transaction_history_all     trh
8379          WHERE eve.request_id           = p_report_request_id
8380            AND eve.application_id       = p_application_id
8381            AND eve.entity_code          = 'BILLS_RECEIVABLE'
8382            AND eve.event_id             = trh.event_id
8383            AND trh.postable_flag        = 'Y'
8384            AND trh.posting_control_id   = -3
8385         FOR UPDATE OF trh.transaction_history_id;
8386 
8387    local_log(procedure_name =>'preaccounting',
8388              p_msg_text     =>'arp_xla_extract_main_pkg.preaccounting -');
8389 EXCEPTION
8390 --  WHEN NO_DATA_FOUND THEN NULL;
8391   WHEN OTHERS THEN
8392    local_log(procedure_name =>'preaccounting',
8393              p_msg_text     =>'EXCEPTION OTHERS in arp_xla_extract_main_pkg.lock_documents_for_xla '||
8394              arp_global.CRLF || 'Error      :'|| SQLERRM);
8395     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
8396     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
8397          'Procedure :arp_xla_extract_main_pkg.lock_documents_for_xla'|| arp_global.CRLF||
8398          'Error     :'||SQLERRM);
8399     FND_MSG_PUB.ADD;
8400     APP_EXCEPTION.RAISE_EXCEPTION;
8401 END preaccounting;
8402 
8403 
8404 -- This routine is no longer usefull
8405 -- Keep this routine in order not to break the current code
8406 PROCEDURE lock_documents_for_xla IS
8407 BEGIN
8408   NULL;
8409 END;
8410 
8411 /*------------------------------------------------------+
8412  | Procedure name : locking_status                      |
8413  +------------------------------------------------------+
8414  | Parameter : Workflow rule function subscription      |
8415  |             standard parameters.                     |
8416  |                                                      |
8417  | Purpose : Allow the procedure lock_documents_for_xla |
8418  |           to be called in Workflow 2.6               |
8419  |                                                      |
8420  | Modification history                                 |
8421  +------------------------------------------------------*/
8422 FUNCTION locking_status(p_subscription_guid IN RAW,
8423                         p_event             IN OUT NOCOPY wf_event_t)
8424 RETURN VARCHAR2
8425 IS
8426   l_application_id   NUMBER;
8427 BEGIN
8428   l_application_id  := p_event.GetValueForParameter('APPLICATION_ID');
8429   IF l_application_id = 222 THEN
8430     lock_documents_for_xla;
8431   END IF;
8432   RETURN 'SUCCESS';
8433 EXCEPTION
8434   WHEN OTHERS THEN
8435     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
8436     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
8437 'Procedure:arp_xla_extract_main_pkg.lock_documents_for_xla
8438 Error:'||SQLERRM);
8439     FND_MSG_PUB.ADD;
8440 --    APP_EXCEPTION.RAISE_EXCEPTION;
8441     RETURN 'ERROR';
8442 END locking_status;
8443 
8444 
8445 /*------------------------------------------------------+
8446  | Procedure name : extract_status                      |
8447  +------------------------------------------------------+
8448  | Parameter : Workflow rule function subscription      |
8449  |             standard parameters.                     |
8450  |                                                      |
8451  | Purpose : Allow the procedure extract                |
8452  |           to be called in Workflow 2.6               |
8453  |                                                      |
8454  | Modification history                                 |
8455  +------------------------------------------------------*/
8456 FUNCTION extract_status(p_subscription_guid IN RAW,
8457                         p_event             IN OUT NOCOPY wf_event_t)
8458 RETURN VARCHAR2
8459 IS
8460   l_mode            VARCHAR2(30);
8461   l_application_id  NUMBER;
8462 BEGIN
8463   l_application_id  := p_event.GetValueForParameter('APPLICATION_ID');
8464   IF l_application_id = 222 THEN
8465     l_mode := p_event.GetValueForParameter('ACCOUNTING_MODE');
8466     extract(p_accounting_mode => l_mode);
8467   END IF;
8468   RETURN 'SUCCESS';
8469 EXCEPTION
8470   WHEN OTHERS THEN
8471     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
8472     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
8473 'Procedure:arp_xla_extract_main_pkg.extract
8474 Mode:'||l_mode||'
8475 Error:'||SQLERRM);
8476     FND_MSG_PUB.ADD;
8477 --    APP_EXCEPTION.RAISE_EXCEPTION;
8478     RETURN 'ERROR';
8479 END extract_status;
8480 
8481 
8482 /*------------------------------------------------------+
8483  | Procedure name : posting_ctl_status                  |
8484  +------------------------------------------------------+
8485  | Parameter : Workflow rule function subscription      |
8486  |             standard parameters.                     |
8487  |                                                      |
8488  | Purpose : Allow the procedure flag_the_posting_id    |
8489  |           to be called in Workflow 2.6               |
8490  |                                                      |
8491  | Modification history                                 |
8492  +------------------------------------------------------*/
8493 FUNCTION posting_ctl_status(p_subscription_guid IN RAW,
8494                             p_event             IN OUT NOCOPY wf_event_t)
8495 RETURN VARCHAR2
8496 IS
8497   l_key              VARCHAR2(240) := p_event.GetEventKey();
8498   l_mode             VARCHAR2(30);
8499   l_application_id   NUMBER;
8500   l_mode_exception   EXCEPTION;
8501 BEGIN
8502   l_application_id  := p_event.GetValueForParameter('APPLICATION_ID');
8503   IF l_application_id = 222 THEN
8504     l_mode := p_event.GetValueForParameter('ACCOUNTING_MODE');
8505     IF l_mode NOT IN ('D','F') THEN
8506       RAISE l_mode_exception;
8507     END IF;
8508     flag_the_posting_id(p_accounting_mode => l_mode);
8509   END IF;
8510   RETURN 'SUCCESS';
8511 EXCEPTION
8512   WHEN l_mode_exception THEN
8513     -- As the error message is only useful for debugging and it has
8514     -- no functional impact. For now, the FND_GENERIC_MESSAGE is used
8515     -- We might need to end up seeded messages later.
8516     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
8517     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
8518 'Procedure:arp_xla_extract_main_pkg.posting_ctl_status
8519 Error: accounting is '||l_mode||' - mode should be D (Draft) or F (Final)');
8520     FND_MSG_PUB.ADD;
8521 --    APP_EXCEPTION.RAISE_EXCEPTION;
8522     RETURN 'ERROR';
8523   WHEN OTHERS THEN
8524     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
8525     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
8526 'Procedure:arp_xla_extract_main_pkg.posting_ctl_status
8527 Mode:'||l_mode||'
8528 Error:'||SQLERRM);
8529     FND_MSG_PUB.ADD;
8530     APP_EXCEPTION.RAISE_EXCEPTION;
8531     RETURN 'ERROR';
8532 END posting_ctl_status;
8533 
8534 
8535 --{Get GL segment info
8536 PROCEDURE  get_segment_value
8537 (p_segment_name    IN VARCHAR2,
8538  p_coa_id          IN NUMBER,
8539  p_ccid            IN NUMBER,
8540  x_segment_value   OUT NOCOPY VARCHAR2)
8541 IS
8542  l_c           INTEGER;
8543  l_exec        INTEGER;
8544  l_fetch_row   INTEGER;
8545  l_stmt        VARCHAR2(2000);
8546  l_xla_user    VARCHAR2(30);
8547 BEGIN
8548 --local_log('arp_xla_extract_main_pkg',' get_segment_value +');
8549     l_stmt :=
8550 ' SELECT '||p_segment_name||'
8551   FROM gl_code_combinations
8552  WHERE chart_of_accounts_id = :coa_id
8553    AND code_combination_id  = :ccid ';
8554 --local_log('arp_xla_extract_main_pkg',' l_stmt :'||l_stmt);
8555     l_c  := DBMS_SQL.OPEN_CURSOR;
8556     DBMS_SQL.PARSE(l_c, l_stmt, DBMS_SQL.NATIVE);
8557     DBMS_SQL.BIND_VARIABLE(l_c,':coa_id',p_coa_id);
8558     DBMS_SQL.BIND_VARIABLE(l_c,':ccid',p_ccid);
8559     DBMS_SQL.DEFINE_COLUMN(l_c,1,x_segment_value,30);
8560     l_exec := DBMS_SQL.EXECUTE(l_c);
8561     l_fetch_row := DBMS_SQL.FETCH_ROWS(l_c);
8562     DBMS_SQL.COLUMN_VALUE(l_c, 1, x_segment_value);
8563     DBMS_SQL.CLOSE_CURSOR(l_c);
8564 --local_log('arp_xla_extract_main_pkg',' get_segment_value -');
8565 END;
8566 
8567 /*-------------------------------------------------------------------------------+
8568  | Procedure Name : mfar_insert_crh_extract
8569  | Description    : Pro-rates the CRH entries over the Receipt application
8570  |                  distributions and inserts the MFAR additional entries to the
8571  |                  extract table. The pro-ration happens only when the CRH_STATUS
8572  |                  is in CLEARED or BANK_CHARGES.
8573  +-------------------------------------------------------------------------------+
8574  | History        :
8575  | 25-JUL-2010     Anshu Kaushal    Created
8576  +------------------------------------------------------------------------------*/
8577 
8578 PROCEDURE mfar_insert_crh_extract (p_crh_mfar_extract_record crh_mfar_extract_record_type)
8579 IS
8580 -- run time variables for proration
8581   x_run_amt             number := 0;
8582   x_run_alloc_amt       number := 0;
8583   x_alloc_amt           number := 0;
8584 
8585   x_run_acctd_amt       number := 0;
8586   x_run_alloc_acctd_amt number := 0;
8587   x_alloc_acctd_amt     number := 0;
8588 
8589   x_run_from_amt             number := 0;
8590   x_run_alloc_from_amt       number := 0;
8591   x_alloc_from_amt           number := 0;
8592 
8593   x_run_from_acctd_amt       number := 0;
8594   x_run_alloc_from_acctd_amt number := 0;
8595   x_alloc_from_acctd_amt     number := 0;
8596 
8597   x_cleared_amount           number:= 0;
8598   x_bc_amount                number:= 0;
8599   x_cleared_acctd_amount     number:= 0;
8600   x_bc_acctd_amount         number:= 0;
8601 
8602   x_cleared_from_amount           number:= 0;
8603   x_bc_from_amount                number:= 0;
8604   x_cleared_from_acctd_amount     number:= 0;
8605   x_bc_from_acctd_amount         number:= 0;
8606 
8607   x_diff_amt  number := 0;
8608   x_diff_acctd_amt  number := 0;
8609   x_diff_from_amt  number := 0;
8610   x_diff_from_acctd_amt  number := 0;
8611 
8612   x_max_line_id  number :=0;
8613 
8614   x_CRH_RECORD_ID          number := 0;
8615   x_LINE_ID		             number := 0;
8616   i                        number := 0;
8617 
8618 -- pl/sql table for ar_xla_lines_extract
8619    TYPE ar_xla_mfar_extract_gt_tab IS TABLE OF ar_xla_lines_extract%ROWTYPE
8620       INDEX BY BINARY_INTEGER;
8621    l_mfar_extract_tab ar_xla_mfar_extract_gt_tab;
8622 
8623 
8624 BEGIN
8625 local_log(procedure_name => 'mfar_insert_crh_extract',
8626             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_insert_crh_extract ()+');
8627 
8628   FOR i IN p_crh_mfar_extract_record.FIRST..p_crh_mfar_extract_record.LAST
8629   LOOP
8630 
8631 -- For CRH Sources Cash and Bank Charges, accounted amounts can be lesser than applied amounts.
8632 -- In such cases we need to prorate the Cash and Bank Charge over applied to invoice distributions.
8633 
8634     IF p_crh_mfar_extract_record(i).CRH_STATUS IN ('CLEARED','BANK_CHARGES')
8635         AND p_crh_mfar_extract_record(i).crh_acctd_amount <> p_crh_mfar_extract_record(i).recp_acctd_amount THEN
8636 
8637 -- Reset run time variables for a new CRH Source Line from ARD
8638 
8639     IF (p_crh_mfar_extract_record(i).LINE_ID <> x_LINE_ID OR
8640         p_crh_mfar_extract_record(i).CRH_RECORD_ID <> x_CRH_RECORD_ID)  THEN
8641 
8642  local_log(procedure_name => 'mfar_insert_crh_extract',
8643             p_msg_text     => 'Reset Run Amounts LINE_ID : '||p_crh_mfar_extract_record(i).LINE_ID||', CRH_RECORD_ID : '||p_crh_mfar_extract_record(i).CRH_RECORD_ID);
8644 
8645       x_run_amt       := 0;
8646       x_run_alloc_amt := 0;
8647       x_run_acctd_amt       := 0;
8648       x_run_alloc_acctd_amt := 0;
8649       x_run_from_amt       := 0;
8650       x_run_alloc_from_amt := 0;
8651       x_run_from_acctd_amt       := 0;
8652       x_run_alloc_from_acctd_amt := 0;
8653 
8654       IF p_crh_mfar_extract_record(i).CRH_RECORD_ID <> x_CRH_RECORD_ID THEN
8655           x_cleared_amount := 0;
8656           x_cleared_acctd_amount := 0;
8657           x_cleared_from_amount  := 0;
8658           x_cleared_from_acctd_amount := 0;
8659 
8660           x_bc_amount := 0;
8661           x_bc_acctd_amount := 0;
8662           x_bc_from_amount := 0;
8663           x_bc_from_acctd_amount  := 0;
8664 
8665           x_diff_amt  := 0;
8666           x_diff_acctd_amt := 0;
8667           x_diff_from_amt := 0;
8668           x_diff_from_acctd_amt := 0;
8669 
8670           x_max_line_id := 0;
8671 
8672       END IF;
8673 
8674     END IF;
8675 
8676     x_LINE_ID   := p_crh_mfar_extract_record(i).LINE_ID;
8677     x_CRH_RECORD_ID      := p_crh_mfar_extract_record(i).CRH_RECORD_ID;
8678 
8679     -- Proration of Amounts
8680         x_run_amt       := x_run_amt + p_crh_mfar_extract_record(i).crh_acctd_amount;
8681         x_alloc_amt     := ar_unposted_item_util.currRound((x_run_amt/p_crh_mfar_extract_record(i).recp_acctd_amount)
8682                                  * p_crh_mfar_extract_record(i).amount,p_crh_mfar_extract_record(i).FROM_CURRENCY_CODE)
8683                                       - x_run_alloc_amt;
8684         x_run_alloc_amt := x_run_alloc_amt + x_alloc_amt;
8685 
8686     -- Proration of Accounted Amounts
8687         x_run_acctd_amt       := x_run_acctd_amt + p_crh_mfar_extract_record(i).crh_acctd_amount;
8688         x_alloc_acctd_amt     := ar_unposted_item_util.currRound((x_run_acctd_amt/p_crh_mfar_extract_record(i).recp_acctd_amount)
8689                                             * p_crh_mfar_extract_record(i).acctd_amount,p_crh_mfar_extract_record(i).BASE_CURRENCY_CODE) - x_run_alloc_acctd_amt;
8690         x_run_alloc_acctd_amt := x_run_alloc_acctd_amt + x_alloc_acctd_amt;
8691 
8692     -- Proration of From Amounts
8693         x_run_from_amt       := x_run_from_amt + p_crh_mfar_extract_record(i).crh_acctd_amount;
8694         x_alloc_from_amt     := ar_unposted_item_util.currRound((x_run_from_amt/p_crh_mfar_extract_record(i).recp_acctd_amount)
8695                                  * p_crh_mfar_extract_record(i).from_amount,p_crh_mfar_extract_record(i).FROM_CURRENCY_CODE)
8696                                       - x_run_alloc_from_amt;
8697         x_run_alloc_from_amt := x_run_alloc_from_amt + x_alloc_from_amt;
8698 
8699     -- Proration of From Accounted Amounts
8700         x_run_from_acctd_amt       := x_run_from_acctd_amt + p_crh_mfar_extract_record(i).crh_acctd_amount;
8701         x_alloc_from_acctd_amt     := ar_unposted_item_util.currRound((x_run_from_acctd_amt/p_crh_mfar_extract_record(i).recp_acctd_amount)
8702                                             * p_crh_mfar_extract_record(i).from_acctd_amount,p_crh_mfar_extract_record(i).BASE_CURRENCY_CODE) - x_run_alloc_from_acctd_amt;
8703         x_run_alloc_from_acctd_amt := x_run_alloc_from_acctd_amt + x_alloc_from_acctd_amt;
8704 
8705 
8706     -- Keep a running total of the x_alloc_amount so that it will be used to check the difference at the end
8707     IF p_crh_mfar_extract_record(i).CRH_STATUS = 'CLEARED' THEN
8708         x_cleared_amount := x_cleared_amount + x_alloc_amt;
8709         x_cleared_acctd_amount := x_cleared_acctd_amount + x_alloc_acctd_amt;
8710         x_cleared_from_amount := x_cleared_from_amount + x_alloc_from_amt;
8711         x_cleared_from_acctd_amount := x_cleared_from_acctd_amount + x_alloc_from_acctd_amt;
8712     ELSIF p_crh_mfar_extract_record(i).CRH_STATUS = 'BANK_CHARGES' THEN
8713         x_bc_amount := x_bc_amount + x_alloc_amt;
8714         x_bc_acctd_amount := x_bc_acctd_amount + x_alloc_acctd_amt;
8715         x_bc_from_amount := x_bc_from_amount + x_alloc_from_amt;
8716         x_bc_from_acctd_amount := x_bc_from_acctd_amount + x_alloc_from_acctd_amt;
8717     END IF;
8718 
8719 
8720     -- If it is the line with max_line_id and it is the first line with that max_line_id, store the diff in a variable.
8721     -- If the next line also has the same line id and the different is same as the previous line, then adjust the values in both the lines.
8722     IF p_crh_mfar_extract_record(i).line_id = p_crh_mfar_extract_record(i).max_line_id THEN
8723          IF p_crh_mfar_extract_record(i).CRH_STATUS = 'CLEARED' THEN
8724              IF p_crh_mfar_extract_record(i).line_id = x_max_line_id THEN
8725                 IF x_diff_amt <> 0 AND abs(x_diff_amt) = abs(p_crh_mfar_extract_record(i).alloc_amount + x_cleared_amount) THEN
8726                       x_alloc_amt := x_alloc_amt - (p_crh_mfar_extract_record(i).alloc_amount + x_cleared_amount);
8727                       l_mfar_extract_tab(i-1).AMOUNT  := l_mfar_extract_tab(i-1).AMOUNT + x_diff_amt;
8728                 END IF;
8729                 IF x_diff_acctd_amt <> 0 AND abs(x_diff_acctd_amt) = abs(p_crh_mfar_extract_record(i).alloc_acctd_amount + x_cleared_acctd_amount) THEN
8730                       x_alloc_acctd_amt := x_alloc_acctd_amt - (p_crh_mfar_extract_record(i).alloc_acctd_amount + x_cleared_acctd_amount);
8731                       l_mfar_extract_tab(i-1).ACCTD_AMOUNT  := l_mfar_extract_tab(i-1).ACCTD_AMOUNT + x_diff_acctd_amt;
8732                 END IF;
8733                 IF x_diff_from_amt <> 0 AND abs(x_diff_from_amt) = abs(p_crh_mfar_extract_record(i).alloc_amount + x_cleared_from_amount) THEN
8734                       x_alloc_from_amt := x_alloc_from_amt - (p_crh_mfar_extract_record(i).alloc_amount + x_cleared_from_amount);
8735                       l_mfar_extract_tab(i-1).FROM_AMOUNT  := l_mfar_extract_tab(i-1).FROM_AMOUNT + x_diff_from_amt;
8736                 END IF;
8737                 IF x_diff_from_acctd_amt <> 0 AND abs(x_diff_from_acctd_amt) = abs(p_crh_mfar_extract_record(i).alloc_acctd_amount + x_cleared_from_acctd_amount) THEN
8738                       x_alloc_from_acctd_amt := x_alloc_from_acctd_amt - (p_crh_mfar_extract_record(i).alloc_acctd_amount + x_cleared_from_acctd_amount);
8739                       l_mfar_extract_tab(i-1).FROM_ACCTD_AMOUNT  := l_mfar_extract_tab(i-1).FROM_ACCTD_AMOUNT + x_diff_from_acctd_amt;
8740                 END IF;
8741              ELSE
8742                  x_max_line_id := p_crh_mfar_extract_record(i).line_id;
8743                  x_diff_amt := -1 * (p_crh_mfar_extract_record(i).alloc_amount + x_cleared_amount);
8744                  x_diff_acctd_amt := -1 * (p_crh_mfar_extract_record(i).alloc_acctd_amount + x_cleared_acctd_amount);
8745                  x_diff_from_amt := -1 * (p_crh_mfar_extract_record(i).alloc_amount + x_cleared_from_amount);
8746                  x_diff_from_acctd_amt := -1 * (p_crh_mfar_extract_record(i).alloc_acctd_amount + x_cleared_from_acctd_amount);
8747              END IF;
8748          ELSIF p_crh_mfar_extract_record(i).CRH_STATUS = 'BANK_CHARGES' THEN
8749              IF p_crh_mfar_extract_record(i).line_id = x_max_line_id THEN
8750                 IF x_diff_amt <> 0 AND abs(x_diff_amt) = abs(p_crh_mfar_extract_record(i).alloc_amount + x_bc_amount) THEN
8751                       x_alloc_amt := x_alloc_amt - (p_crh_mfar_extract_record(i).alloc_amount + x_bc_amount);
8752                       l_mfar_extract_tab(i-1).AMOUNT  := l_mfar_extract_tab(i-1).AMOUNT + x_diff_amt;
8753                 END IF;
8754                 IF x_diff_acctd_amt <> 0 AND abs(x_diff_acctd_amt) = abs(p_crh_mfar_extract_record(i).alloc_acctd_amount + x_bc_acctd_amount) THEN
8755                       x_alloc_acctd_amt := x_alloc_acctd_amt - (p_crh_mfar_extract_record(i).alloc_acctd_amount + x_bc_acctd_amount);
8756                       l_mfar_extract_tab(i-1).ACCTD_AMOUNT  := l_mfar_extract_tab(i-1).ACCTD_AMOUNT + x_diff_acctd_amt;
8757                 END IF;
8758                 IF x_diff_from_amt <> 0 AND abs(x_diff_from_amt) = abs(p_crh_mfar_extract_record(i).alloc_amount + x_bc_from_amount) THEN
8759                       x_alloc_from_amt := x_alloc_from_amt - (p_crh_mfar_extract_record(i).alloc_amount + x_bc_from_amount);
8760                       l_mfar_extract_tab(i-1).FROM_AMOUNT  := l_mfar_extract_tab(i-1).FROM_AMOUNT + x_diff_from_amt;
8761                 END IF;
8762                 IF x_diff_from_acctd_amt <> 0 AND abs(x_diff_from_acctd_amt) = abs(p_crh_mfar_extract_record(i).alloc_acctd_amount + x_bc_from_acctd_amount) THEN
8763                       x_alloc_from_acctd_amt := x_alloc_from_acctd_amt - (p_crh_mfar_extract_record(i).alloc_acctd_amount + x_bc_from_acctd_amount);
8764                       l_mfar_extract_tab(i-1).FROM_ACCTD_AMOUNT  := l_mfar_extract_tab(i-1).FROM_ACCTD_AMOUNT + x_diff_from_acctd_amt;
8765                 END IF;
8766              ELSE
8767                  x_max_line_id := p_crh_mfar_extract_record(i).line_id;
8768                  x_diff_amt := -1 * (p_crh_mfar_extract_record(i).alloc_amount + x_bc_amount);
8769                  x_diff_acctd_amt := -1 * (p_crh_mfar_extract_record(i).alloc_acctd_amount + x_bc_acctd_amount);
8770                  x_diff_from_amt := -1 * (p_crh_mfar_extract_record(i).alloc_amount + x_bc_from_amount);
8771                  x_diff_from_acctd_amt := -1 * (p_crh_mfar_extract_record(i).alloc_acctd_amount + x_bc_from_acctd_amount);
8772              END IF;
8773          END IF;
8774     END IF;
8775 
8776 --
8777 local_log(procedure_name => 'mfar_insert_crh_extract',
8778             p_msg_text     => 'crh_status : '||p_crh_mfar_extract_record(i).crh_status);
8779 local_log(procedure_name => 'mfar_insert_crh_extract',
8780             p_msg_text     => 'crh_acctd_amount : '||p_crh_mfar_extract_record(i).crh_acctd_amount);
8781 local_log(procedure_name => 'mfar_insert_crh_extract',
8782             p_msg_text     => 'recp_acctd_amount : '||p_crh_mfar_extract_record(i).recp_acctd_amount);
8783 local_log(procedure_name => 'mfar_insert_crh_extract',
8784             p_msg_text     => 'amount : '||p_crh_mfar_extract_record(i).amount);
8785 local_log(procedure_name => 'mfar_insert_crh_extract',
8786             p_msg_text     => 'acctd_amount : '||p_crh_mfar_extract_record(i).acctd_amount);
8787 local_log(procedure_name => 'mfar_insert_crh_extract',
8788             p_msg_text     => 'from_amount : '||p_crh_mfar_extract_record(i).from_amount);
8789 local_log(procedure_name => 'mfar_insert_crh_extract',
8790             p_msg_text     => 'from_acctd_amount : '||p_crh_mfar_extract_record(i).from_acctd_amount);
8791 
8792 
8793 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_run_amt                  : '||x_run_amt);
8794 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_alloc_amt                : '||x_alloc_amt);
8795 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_run_alloc_amt            : '||x_run_alloc_amt);
8796 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_run_acctd_amt            : '||x_run_acctd_amt);
8797 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_alloc_acctd_amt          : '||x_alloc_acctd_amt);
8798 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_run_alloc_acctd_amt      : '||x_run_alloc_acctd_amt);
8799 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_run_from_amt             : '||x_run_from_amt);
8800 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_alloc_from_amt           : '||x_alloc_from_amt);
8801 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_run_alloc_from_amt       : '||x_run_alloc_from_amt);
8802 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_run_from_acctd_amt       : '||x_run_from_acctd_amt);
8803 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_alloc_from_acctd_amt     : '||x_alloc_from_acctd_amt);
8804 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_run_alloc_from_acctd_amt : '||x_run_alloc_from_acctd_amt);
8805 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_cleared_amount           : '||x_cleared_amount);
8806 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_cleared_acctd_amount     : '||x_cleared_acctd_amount);
8807 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_cleared_from_amount      : '||x_cleared_from_amount);
8808 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_cleared_from_acctd_amount: '||x_cleared_from_acctd_amount);
8809 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_bc_amount                : '||x_bc_amount);
8810 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_bc_acctd_amount          : '||x_bc_acctd_amount);
8811 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_bc_from_amount           : '||x_bc_from_amount);
8812 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_bc_from_acctd_amount     : '||x_bc_from_acctd_amount);
8813 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_diff_amt                 : '||x_diff_amt);
8814 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_diff_acctd_amt           : '||x_diff_acctd_amt);
8815 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_diff_from_amt            : '||x_diff_from_amt);
8816 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_diff_from_acctd_amt      : '||x_diff_from_acctd_amt);
8817 local_log(procedure_name => 'mfar_insert_crh_extract',p_msg_text  => '  x_max_line_id              : '||x_max_line_id);
8818 --
8819   ELSE
8820 -- No calculation when proration is not required
8821     x_alloc_amt             := p_crh_mfar_extract_record(i).amount;
8822     x_alloc_acctd_amt       := p_crh_mfar_extract_record(i).acctd_amount;
8823     x_alloc_from_amt        := p_crh_mfar_extract_record(i).from_amount;
8824     x_alloc_from_acctd_amt  := p_crh_mfar_extract_record(i).from_acctd_amount;
8825   END IF;
8826 
8827 -- Assign the values to extract table
8828     l_mfar_extract_tab(i).EVENT_ID                := p_crh_mfar_extract_record(i).EVENT_ID;
8829     l_mfar_extract_tab(i).LINE_NUMBER             := p_crh_mfar_extract_record(i).LINE_NUMBER;
8830     l_mfar_extract_tab(i).MFAR_ADDITIONAL_ENTRY   := p_crh_mfar_extract_record(i).MFAR_ADDITIONAL_ENTRY;
8831     l_mfar_extract_tab(i).LEDGER_ID               := p_crh_mfar_extract_record(i).LEDGER_ID;
8832     l_mfar_extract_tab(i).BASE_CURRENCY_CODE      := p_crh_mfar_extract_record(i).BASE_CURRENCY_CODE;
8833     l_mfar_extract_tab(i).ORG_ID                  := p_crh_mfar_extract_record(i).ORG_ID;
8834     l_mfar_extract_tab(i).LINE_ID                 := abs(p_crh_mfar_extract_record(i).LINE_ID);
8835     l_mfar_extract_tab(i).SOURCE_ID               := p_crh_mfar_extract_record(i).SOURCE_ID;
8836     l_mfar_extract_tab(i).SOURCE_TABLE            := p_crh_mfar_extract_record(i).SOURCE_TABLE;
8837     l_mfar_extract_tab(i).HEADER_TABLE_ID         := p_crh_mfar_extract_record(i).HEADER_TABLE_ID;
8838     l_mfar_extract_tab(i).POSTING_ENTITY          := p_crh_mfar_extract_record(i).POSTING_ENTITY;
8839     l_mfar_extract_tab(i).XLA_ENTITY_ID           := p_crh_mfar_extract_record(i).XLA_ENTITY_ID;
8840 --
8841     l_mfar_extract_tab(i).DIST_CCID               := p_crh_mfar_extract_record(i).DIST_CCID;
8842     l_mfar_extract_tab(i).REF_DIST_CCID           := p_crh_mfar_extract_record(i).REF_DIST_CCID;
8843     l_mfar_extract_tab(i).REF_CTLGD_CCID          := p_crh_mfar_extract_record(i).REF_CTLGD_CCID;
8844 --
8845     l_mfar_extract_tab(i).FROM_CURRENCY_CODE      := p_crh_mfar_extract_record(i).FROM_CURRENCY_CODE;
8846     l_mfar_extract_tab(i).FROM_EXCHANGE_RATE      := p_crh_mfar_extract_record(i).FROM_EXCHANGE_RATE;
8847     l_mfar_extract_tab(i).FROM_EXCHANGE_RATE_TYPE := p_crh_mfar_extract_record(i).FROM_EXCHANGE_RATE_TYPE;
8848     l_mfar_extract_tab(i).FROM_EXCHANGE_DATE      := p_crh_mfar_extract_record(i).FROM_EXCHANGE_DATE;
8849     l_mfar_extract_tab(i).FROM_AMOUNT             := x_alloc_from_amt;
8850     l_mfar_extract_tab(i).FROM_ACCTD_AMOUNT       := x_alloc_from_acctd_amt;
8851 --
8852     l_mfar_extract_tab(i).TO_CURRENCY_CODE        := p_crh_mfar_extract_record(i).TO_CURRENCY_CODE;
8853     l_mfar_extract_tab(i).EXCHANGE_RATE           := p_crh_mfar_extract_record(i).EXCHANGE_RATE;
8854     l_mfar_extract_tab(i).EXCHANGE_RATE_TYPE      := p_crh_mfar_extract_record(i).EXCHANGE_RATE_TYPE;
8855     l_mfar_extract_tab(i).EXCHANGE_DATE           := p_crh_mfar_extract_record(i).EXCHANGE_DATE;
8856     l_mfar_extract_tab(i).AMOUNT                  := x_alloc_amt;
8857     l_mfar_extract_tab(i).ACCTD_AMOUNT            := x_alloc_acctd_amt;
8858 --
8859     l_mfar_extract_tab(i).RECEIVABLE_APPLICATION_ID := p_crh_mfar_extract_record(i).RECEIVABLE_APPLICATION_ID;
8860     l_mfar_extract_tab(i).CASH_RECEIPT_ID           := p_crh_mfar_extract_record(i).CASH_RECEIPT_ID;
8861     l_mfar_extract_tab(i).CUSTOMER_TRX_ID           := p_crh_mfar_extract_record(i).CUSTOMER_TRX_ID;
8862     l_mfar_extract_tab(i).CUSTOMER_TRX_LINE_ID      := p_crh_mfar_extract_record(i).CUSTOMER_TRX_LINE_ID;
8863     l_mfar_extract_tab(i).CUST_TRX_LINE_GL_DIST_ID  := p_crh_mfar_extract_record(i).CUST_TRX_LINE_GL_DIST_ID;
8864 --
8865     l_mfar_extract_tab(i).INVENTORY_ITEM_ID         := p_crh_mfar_extract_record(i).INVENTORY_ITEM_ID;
8866     l_mfar_extract_tab(i).SALES_TAX_ID              := p_crh_mfar_extract_record(i).SALES_TAX_ID;
8867     l_mfar_extract_tab(i).SET_OF_BOOKS_ID           := p_crh_mfar_extract_record(i).SET_OF_BOOKS_ID;
8868     l_mfar_extract_tab(i).BILL_SITE_USE_ID          := p_crh_mfar_extract_record(i).BILL_SITE_USE_ID;
8869     l_mfar_extract_tab(i).SOLD_SITE_USE_ID          := p_crh_mfar_extract_record(i).SOLD_SITE_USE_ID;
8870     l_mfar_extract_tab(i).SHIP_SITE_USE_ID          := p_crh_mfar_extract_record(i).SHIP_SITE_USE_ID;
8871     l_mfar_extract_tab(i).BILL_CUSTOMER_ID          := p_crh_mfar_extract_record(i).BILL_CUSTOMER_ID;
8872     l_mfar_extract_tab(i).SOLD_CUSTOMER_ID          := p_crh_mfar_extract_record(i).SOLD_CUSTOMER_ID;
8873     l_mfar_extract_tab(i).SHIP_CUSTOMER_ID          := p_crh_mfar_extract_record(i).SHIP_CUSTOMER_ID;
8874     l_mfar_extract_tab(i).TAX_LINE_ID               := p_crh_mfar_extract_record(i).TAX_LINE_ID;
8875 --
8876     l_mfar_extract_tab(i).SELECT_FLAG               := p_crh_mfar_extract_record(i).SELECT_FLAG;
8877     l_mfar_extract_tab(i).LEVEL_FLAG                := p_crh_mfar_extract_record(i).LEVEL_FLAG;
8878     l_mfar_extract_tab(i).FROM_TO_FLAG              := p_crh_mfar_extract_record(i).FROM_TO_FLAG;
8879     l_mfar_extract_tab(i).CRH_STATUS                := p_crh_mfar_extract_record(i).CRH_STATUS;
8880     l_mfar_extract_tab(i).APP_CRH_STATUS            := p_crh_mfar_extract_record(i).APP_CRH_STATUS;
8881 --
8882     l_mfar_extract_tab(i).EVENT_TYPE_CODE           := p_crh_mfar_extract_record(i).EVENT_TYPE_CODE;
8883     l_mfar_extract_tab(i).EVENT_CLASS_CODE          := p_crh_mfar_extract_record(i).EVENT_CLASS_CODE;
8884     l_mfar_extract_tab(i).ENTITY_CODE               := p_crh_mfar_extract_record(i).ENTITY_CODE;
8885 --
8886     l_mfar_extract_tab(i).third_party_id            := p_crh_mfar_extract_record(i).third_party_id;
8887     l_mfar_extract_tab(i).third_party_site_id       := p_crh_mfar_extract_record(i).third_party_site_id;
8888     l_mfar_extract_tab(i).third_party_type          := p_crh_mfar_extract_record(i).third_party_type;
8889     l_mfar_extract_tab(i).source_type               := p_crh_mfar_extract_record(i).source_type;
8890 
8891     l_mfar_extract_tab(i).additional_char2          := p_crh_mfar_extract_record(i).mfar_upg_trx;
8892 
8893    END LOOP;
8894 
8895   FORALL r IN l_mfar_extract_tab.first..l_mfar_extract_tab.last
8896      INSERT INTO ar_xla_lines_extract VALUES l_mfar_extract_tab(r);
8897 
8898 local_log(procedure_name => 'mfar_insert_crh_extract',
8899             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.mfar_insert_crh_extract ()-');
8900 
8901 EXCEPTION
8902 --  WHEN NO_DATA_FOUND THEN NULL;
8903   WHEN OTHERS THEN
8904    local_log(procedure_name => 'mfar_insert_crh_extract',
8905              p_msg_text     => 'EXCEPTION OTHERS in mfar_insert_crh_extract '||
8906                  arp_global.CRLF || 'Error      :'|| SQLERRM);
8907     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
8908     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
8909          'Procedure :arp_xla_extract_main_pkg.mfar_insert_crh_extract'|| arp_global.CRLF||
8910          'Error     :'||SQLERRM);
8911     FND_MSG_PUB.ADD;
8912   RAISE;
8913 
8914 END mfar_insert_crh_extract;
8915 
8916 PROCEDURE prorate_extract_acctd_amounts (p_extract_record ar_xla_extract_record_type)
8917 IS
8918 -- run time variables for proration
8919   x_run_from_acctd_amt       number := 0;
8920   x_run_alloc_from_acctd_amt number := 0;
8921   x_alloc_from_acctd_amt     number := 0;
8922 
8923   x_APP_RECORD_ID         number := 0;
8924 
8925   i                     number := 0;
8926 
8927 -- pl/sql table for ar_xla_lines_extract
8928    TYPE ar_xla_extract_gt_tab IS TABLE OF ar_xla_lines_extract%ROWTYPE
8929       INDEX BY BINARY_INTEGER;
8930    l_extract_tab ar_xla_extract_gt_tab;
8931 
8932 
8933 BEGIN
8934 local_log(procedure_name => 'prorate_extract_acctd_amounts',
8935             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.prorate_extract_acctd_amounts()+');
8936 
8937   FOR i IN p_extract_record.FIRST..p_extract_record.LAST
8938   LOOP
8939 
8940 -- Reset run time variables for a new CRH Source Line from ARD
8941     IF p_extract_record(i).SOURCE_ID <> x_APP_RECORD_ID THEN
8942       x_run_from_acctd_amt       := 0;
8943       x_run_alloc_from_acctd_amt := 0;
8944     END IF;
8945 
8946     x_APP_RECORD_ID   := p_extract_record(i).SOURCE_ID;
8947 
8948 -- Proration of From Accounted Amounts
8949     x_run_from_acctd_amt       := x_run_from_acctd_amt + p_extract_record(i).FROM_AMOUNT;
8950     x_alloc_from_acctd_amt     := ar_unposted_item_util.currRound((x_run_from_acctd_amt/NVL(p_extract_record(i).AMOUNT_APPLIED_FROM,p_extract_record(i).AMOUNT_APPLIED))
8951                                         * p_extract_record(i).ACCTD_AMOUNT_APPLIED_FROM,p_extract_record(i).BASE_CURRENCY_CODE) - x_run_alloc_from_acctd_amt;
8952     x_run_alloc_from_acctd_amt := x_run_alloc_from_acctd_amt + x_alloc_from_acctd_amt;
8953 
8954 -- Assign the values to extract table
8955     l_extract_tab(i).EVENT_ID                := p_extract_record(i).EVENT_ID;
8956     l_extract_tab(i).LINE_NUMBER             := p_extract_record(i).LINE_NUMBER;
8957     l_extract_tab(i).LANGUAGE                := p_extract_record(i).LANGUAGE;
8958     l_extract_tab(i).LEDGER_ID               := p_extract_record(i).LEDGER_ID;
8959     l_extract_tab(i).SOURCE_ID               := p_extract_record(i).SOURCE_ID;
8960     l_extract_tab(i).SOURCE_TABLE            := p_extract_record(i).SOURCE_TABLE;
8961     l_extract_tab(i).LINE_ID                 := p_extract_record(i).LINE_ID;
8962     l_extract_tab(i).TAX_CODE_ID             := p_extract_record(i).TAX_CODE_ID;
8963     l_extract_tab(i).LOCATION_SEGMENT_ID     := p_extract_record(i).LOCATION_SEGMENT_ID;
8964     l_extract_tab(i).BASE_CURRENCY_CODE      := p_extract_record(i).BASE_CURRENCY_CODE;
8965     l_extract_tab(i).EXCHANGE_RATE_TYPE      := p_extract_record(i).EXCHANGE_RATE_TYPE;
8966     l_extract_tab(i).EXCHANGE_RATE           := p_extract_record(i).EXCHANGE_RATE;
8967     l_extract_tab(i).EXCHANGE_DATE           := p_extract_record(i).EXCHANGE_DATE;
8968     l_extract_tab(i).ACCTD_AMOUNT            := p_extract_record(i).ACCTD_AMOUNT;
8969     l_extract_tab(i).TAXABLE_ACCTD_AMOUNT    := p_extract_record(i).TAXABLE_ACCTD_AMOUNT;
8970     l_extract_tab(i).ORG_ID                  := p_extract_record(i).ORG_ID;
8971     l_extract_tab(i).HEADER_TABLE_ID         := p_extract_record(i).HEADER_TABLE_ID;
8972     l_extract_tab(i).POSTING_ENTITY          := p_extract_record(i).POSTING_ENTITY;
8973     l_extract_tab(i).CASH_RECEIPT_ID         := p_extract_record(i).CASH_RECEIPT_ID;
8974     l_extract_tab(i).CUSTOMER_TRX_ID         := p_extract_record(i).CUSTOMER_TRX_ID;
8975 
8976     l_extract_tab(i).CUSTOMER_TRX_LINE_ID             := p_extract_record(i).CUSTOMER_TRX_LINE_ID;
8977     l_extract_tab(i).CUST_TRX_LINE_GL_DIST_ID         := p_extract_record(i).CUST_TRX_LINE_GL_DIST_ID;
8978     l_extract_tab(i).CUST_TRX_LINE_SALESREP_ID        := p_extract_record(i).CUST_TRX_LINE_SALESREP_ID;
8979     l_extract_tab(i).INVENTORY_ITEM_ID                := p_extract_record(i).INVENTORY_ITEM_ID;
8980     l_extract_tab(i).SALES_TAX_ID                     := p_extract_record(i).SALES_TAX_ID;
8981     l_extract_tab(i).SO_ORGANIZATION_ID               := p_extract_record(i).SO_ORGANIZATION_ID;
8982     l_extract_tab(i).TAX_EXEMPTION_ID                 := p_extract_record(i).TAX_EXEMPTION_ID;
8983     l_extract_tab(i).UOM_CODE                         := p_extract_record(i).UOM_CODE;
8984     l_extract_tab(i).WAREHOUSE_ID                     := p_extract_record(i).WAREHOUSE_ID;
8985     l_extract_tab(i).AGREEMENT_ID                     := p_extract_record(i).AGREEMENT_ID;
8986     l_extract_tab(i).CUSTOMER_BANK_ACCT_ID            := p_extract_record(i).CUSTOMER_BANK_ACCT_ID;
8987     l_extract_tab(i).DRAWEE_BANK_ACCOUNT_ID           := p_extract_record(i).DRAWEE_BANK_ACCOUNT_ID;
8988     l_extract_tab(i).REMITTANCE_BANK_ACCT_ID          := p_extract_record(i).REMITTANCE_BANK_ACCT_ID;
8989     l_extract_tab(i).DISTRIBUTION_SET_ID              := p_extract_record(i).DISTRIBUTION_SET_ID;
8990     l_extract_tab(i).PAYMENT_SCHEDULE_ID              := p_extract_record(i).PAYMENT_SCHEDULE_ID;
8991     l_extract_tab(i).RECEIPT_METHOD_ID                := p_extract_record(i).RECEIPT_METHOD_ID;
8992 
8993     l_extract_tab(i).RECEIVABLES_TRX_ID                := p_extract_record(i).RECEIVABLES_TRX_ID;
8994     l_extract_tab(i).ED_ADJ_RECEIVABLES_TRX_ID         := p_extract_record(i).ED_ADJ_RECEIVABLES_TRX_ID;
8995     l_extract_tab(i).UNED_RECEIVABLES_TRX_ID           := p_extract_record(i).UNED_RECEIVABLES_TRX_ID;
8996     l_extract_tab(i).SET_OF_BOOKS_ID                   := p_extract_record(i).SET_OF_BOOKS_ID;
8997     l_extract_tab(i).SALESREP_ID                       := p_extract_record(i).SALESREP_ID;
8998     l_extract_tab(i).BILL_SITE_USE_ID                  := p_extract_record(i).BILL_SITE_USE_ID;
8999     l_extract_tab(i).DRAWEE_SITE_USE_ID                := p_extract_record(i).DRAWEE_SITE_USE_ID;
9000     l_extract_tab(i).PAYING_SITE_USE_ID                := p_extract_record(i).PAYING_SITE_USE_ID;
9001     l_extract_tab(i).SOLD_SITE_USE_ID                  := p_extract_record(i).SOLD_SITE_USE_ID;
9002     l_extract_tab(i).SHIP_SITE_USE_ID                  := p_extract_record(i).SHIP_SITE_USE_ID;
9003     l_extract_tab(i).RECEIPT_CUSTOMER_SITE_USE_ID      := p_extract_record(i).RECEIPT_CUSTOMER_SITE_USE_ID;
9004     l_extract_tab(i).BILL_CUST_ROLE_ID                 := p_extract_record(i).BILL_CUST_ROLE_ID;
9005     l_extract_tab(i).DRAWEE_CUST_ROLE_ID               := p_extract_record(i).DRAWEE_CUST_ROLE_ID;
9006     l_extract_tab(i).SHIP_CUST_ROLE_ID                 := p_extract_record(i).SHIP_CUST_ROLE_ID;
9007     l_extract_tab(i).SOLD_CUST_ROLE_ID                 := p_extract_record(i).SOLD_CUST_ROLE_ID;
9008     l_extract_tab(i).BILL_CUSTOMER_ID                  := p_extract_record(i).BILL_CUSTOMER_ID;
9009 
9010     l_extract_tab(i).DRAWEE_CUSTOMER_ID         := p_extract_record(i).DRAWEE_CUSTOMER_ID;
9011     l_extract_tab(i).PAYING_CUSTOMER_ID         := p_extract_record(i).PAYING_CUSTOMER_ID;
9012     l_extract_tab(i).SOLD_CUSTOMER_ID           := p_extract_record(i).SOLD_CUSTOMER_ID;
9013     l_extract_tab(i).SHIP_CUSTOMER_ID           := p_extract_record(i).SHIP_CUSTOMER_ID;
9014     l_extract_tab(i).REMIT_ADDRESS_ID           := p_extract_record(i).REMIT_ADDRESS_ID;
9015     l_extract_tab(i).RECEIPT_BATCH_ID           := p_extract_record(i).RECEIPT_BATCH_ID;
9016     l_extract_tab(i).RECEIVABLE_APPLICATION_ID  := p_extract_record(i).RECEIVABLE_APPLICATION_ID;
9017     l_extract_tab(i).CUSTOMER_BANK_BRANCH_ID    := p_extract_record(i).CUSTOMER_BANK_BRANCH_ID;
9018     l_extract_tab(i).ISSUER_BANK_BRANCH_ID      := p_extract_record(i).ISSUER_BANK_BRANCH_ID;
9019     l_extract_tab(i).BATCH_SOURCE_ID            := p_extract_record(i).BATCH_SOURCE_ID;
9020     l_extract_tab(i).BATCH_ID                   := p_extract_record(i).BATCH_ID;
9021     l_extract_tab(i).TERM_ID                    := p_extract_record(i).TERM_ID;
9022     l_extract_tab(i).SELECT_FLAG                := p_extract_record(i).SELECT_FLAG;
9023     l_extract_tab(i).LEVEL_FLAG                 := p_extract_record(i).LEVEL_FLAG;
9024     l_extract_tab(i).FROM_TO_FLAG               := p_extract_record(i).FROM_TO_FLAG;
9025     l_extract_tab(i).AMOUNT                     := p_extract_record(i).AMOUNT;
9026     l_extract_tab(i).FROM_AMOUNT                := p_extract_record(i).FROM_AMOUNT;
9027 
9028     IF p_extract_record(i).SOURCE_TYPE = 'REC' AND p_extract_record(i).REF_MF_DIST_FLAG <> 'D' THEN
9029 	l_extract_tab(i).FROM_ACCTD_AMOUNT      := x_alloc_from_acctd_amt;
9030     ELSE
9031 	l_extract_tab(i).FROM_ACCTD_AMOUNT      := p_extract_record(i).FROM_ACCTD_AMOUNT;
9032     END If;
9033 
9034     l_extract_tab(i).EVENT_TYPE_CODE            := p_extract_record(i).EVENT_TYPE_CODE;
9035     l_extract_tab(i).EVENT_CLASS_CODE           := p_extract_record(i).EVENT_CLASS_CODE;
9036     l_extract_tab(i).ENTITY_CODE                := p_extract_record(i).ENTITY_CODE;
9037     l_extract_tab(i).MFAR_ADDITIONAL_ENTRY      := p_extract_record(i).MFAR_ADDITIONAL_ENTRY;
9038 
9039    END LOOP;
9040 
9041   FORALL r IN l_extract_tab.first..l_extract_tab.last
9042      INSERT INTO ar_xla_lines_extract VALUES l_extract_tab(r);
9043 
9044 local_log(procedure_name => 'prorate_extract_acctd_amounts',
9045             p_msg_text     => 'ARP_XLA_EXTRACT_MAIN_PKG.prorate_extract_acctd_amounts ()-');
9046 
9047 EXCEPTION
9048 --  WHEN NO_DATA_FOUND THEN NULL;
9049   WHEN OTHERS THEN
9050    local_log(procedure_name => 'prorate_extract_acctd_amounts',
9051              p_msg_text     => 'EXCEPTION OTHERS in prorate_extract_acctd_amounts '||
9052                  arp_global.CRLF || 'Error      :'|| SQLERRM);
9053     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
9054     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
9055          'Procedure :arp_xla_extract_main_pkg.prorate_extract_acctd_amounts'|| arp_global.CRLF||
9056          'Error     :'||SQLERRM);
9057     FND_MSG_PUB.ADD;
9058   RAISE;
9059 
9060 END prorate_extract_acctd_amounts;
9061 
9062 FUNCTION the_segment_value(p_coa_id     IN NUMBER,
9063                        p_qual_code  IN VARCHAR2,
9064                        p_ccid       IN NUMBER)
9065 RETURN VARCHAR2
9066 IS
9067   l_segment_name     VARCHAR2(30);
9068   l_segment_value    VARCHAR2(25);
9069   l_hash_value       NUMBER;
9070   CURSOR c IS
9071   SELECT application_column_name
9072     FROM FND_SEGMENT_ATTRIBUTE_VALUES
9073    WHERE id_flex_num            = p_coa_id
9074      AND segment_attribute_type = p_qual_code
9075      AND id_flex_code           = 'GL#'
9076      AND attribute_value        = 'Y';
9077 BEGIN
9078 
9079   IF p_coa_id    IS NOT NULL AND
9080      p_qual_code IS NOT NULL AND
9081      p_ccid      IS NOT NULL
9082   THEN
9083 
9084     l_hash_value := DBMS_UTILITY.get_hash_value(
9085                                          'COA:'||p_coa_id||'@*?QUAL:'||p_qual_code||'@*?CCID:'||p_ccid||'@*?END:',
9086                                          1000,
9087                                          32768);
9088 
9089 
9090     IF p_qual_code = 'GL_BALANCING' THEN
9091        IF pg_bal_qual.EXISTS(l_hash_value) THEN
9092          l_segment_value := pg_bal_qual(l_hash_value);
9093        ELSE
9094          OPEN c;
9095            FETCH c INTO l_segment_name;
9096          CLOSE c;
9097          get_segment_value(p_segment_name    => l_segment_name,
9098                            p_coa_id          => p_coa_id,
9099                            p_ccid            => p_ccid,
9100                            x_segment_value   => l_segment_value);
9101          pg_bal_qual(l_hash_value) := l_segment_value;
9102        END IF;
9103     ELSIF p_qual_code = 'GL_ACCOUNT' THEN
9104        IF pg_nat_qual.EXISTS(l_hash_value) THEN
9105          l_segment_value := pg_nat_qual(l_hash_value);
9106        ELSE
9107          OPEN c;
9108            FETCH c INTO l_segment_name;
9109          CLOSE c;
9110          get_segment_value(p_segment_name    => l_segment_name,
9111                            p_coa_id          => p_coa_id,
9112                            p_ccid            => p_ccid,
9113                            x_segment_value   => l_segment_value);
9114          pg_nat_qual(l_hash_value) := l_segment_value;
9115        END IF;
9116     END IF;
9117   END IF;
9118 
9119   return(l_segment_value);
9120 
9121 EXCEPTION
9122  WHEN no_data_found  THEN
9123   return(null);
9124  WHEN OTHERS THEN
9125   raise;
9126 END;
9127 
9128 
9129 FUNCTION ed_uned_trx(p_type IN VARCHAR2, p_org_id IN NUMBER) RETURN NUMBER
9130 IS
9131   l_trx_id           NUMBER;
9132   l_hash_value       NUMBER;
9133   CURSOR c IS
9134   SELECT receivables_trx_id
9135     FROM ar_receivables_trx_all
9136    WHERE org_id  = p_org_id
9137      AND type    = p_type;
9138 BEGIN
9139   IF p_org_id    IS NOT NULL AND
9140      p_type      IS NOT NULL
9141   THEN
9142     l_hash_value := DBMS_UTILITY.get_hash_value(
9143                                          'EDUNED:'||p_type||'@*?:'||p_org_id||'@*?END:',
9144                                          1000,
9145                                          32768);
9146     IF p_type = 'EDISC' THEN
9147        IF pg_ed_trx.EXISTS(l_hash_value) THEN
9148          l_trx_id := pg_ed_trx(l_hash_value);
9149        ELSE
9150          OPEN c;
9151            FETCH c INTO l_trx_id;
9152          CLOSE c;
9153          pg_ed_trx(l_hash_value) := l_trx_id;
9154        END IF;
9155     ELSIF p_type = 'UNEDISC' THEN
9156        IF pg_uned_trx.EXISTS(l_hash_value) THEN
9157          l_trx_id := pg_uned_trx(l_hash_value);
9158        ELSE
9159          OPEN c;
9160            FETCH c INTO l_trx_id;
9161          CLOSE c;
9162          pg_uned_trx(l_hash_value) := l_trx_id;
9163        END IF;
9164     END IF;
9165   END IF;
9166   return(l_trx_id);
9167 EXCEPTION
9168  WHEN no_data_found  THEN
9169   return(null);
9170  WHEN OTHERS THEN
9171   raise;
9172 END;
9173 
9174 
9175 -- bug 7319548
9176 FUNCTION get_glr_ccid (p_ra_id IN NUMBER,p_gain_loss_identifier IN VARCHAR) RETURN NUMBER
9177 IS
9178  l_ccid NUMBER;
9179 BEGIN
9180 
9181   IF ( g_glr_ccid_cache_tab.EXISTS(p_ra_id) = FALSE ) THEN
9182 
9183       select ard.code_combination_id
9184              into l_ccid
9185       from ar_distributions_all ard
9186       where ard.source_table = 'RA'
9187       and ard.source_type = p_gain_loss_identifier
9188       and ard.source_id = p_ra_id;
9189       -- bug 7694448 modified select to fetch ccid based on whether it is gain or loss
9190 
9191       g_glr_ccid_cache_tab(p_ra_id) := l_ccid;
9192 
9193    END IF;
9194 
9195    return g_glr_ccid_cache_tab(p_ra_id);
9196 
9197 EXCEPTION
9198    WHEN NO_DATA_FOUND then return NULL;
9199    WHEN OTHERS THEN
9200    local_log(procedure_name => 'get_glr_ccid',
9201              p_msg_text     =>'EXCEPTION OTHERS in arp_xla_extract_main_pkg.get_glr_ccid '||
9202              arp_global.CRLF ||'Error      :'|| SQLERRM);
9203     FND_MESSAGE.SET_NAME('FND', 'FND_GENERIC_MESSAGE');
9204     FND_MESSAGE.SET_TOKEN('MESSAGE' ,
9205          'Procedure :arp_xla_extract_main_pkg.get_glr_ccid'|| arp_global.CRLF||
9206          'Error     :'||SQLERRM);
9207     FND_MSG_PUB.ADD;
9208   RAISE;
9209 
9210 END get_glr_ccid;
9211 
9212 
9213 
9214 PROCEDURE diag_data
9215 IS
9216 CURSOR c IS
9217  SELECT *
9218    FROM ar_xla_lines_extract;
9219 l_c    c%ROWTYPE;
9220 
9221 
9222 CURSOR c2 IS
9223 SELECT *
9224 FROM xla_events_gt
9225 WHERE application_id = 222;
9226 l      c2%ROWTYPE;
9227 
9228 
9229 l_text   VARCHAR2(4000);
9230 cpt      NUMBER := 0;
9231 BEGIN
9232 --
9233 /*
9234 DELETE FROM ar_xla_event_tmp;
9235 --
9236 DELETE FROM ar_xla_lines_extract_tmp;
9237 --
9238 INSERT INTO ar_xla_event_tmp
9239   (LINE_NUMBER         ,
9240    ENTITY_ID           ,
9241    APPLICATION_ID      ,
9242    LEDGER_ID           ,
9243    LEGAL_ENTITY_ID     ,
9244    ENTITY_CODE         ,
9245    TRANSACTION_NUMBER  ,
9246    SOURCE_ID_INT_1     ,
9247    SOURCE_ID_INT_2     ,
9248    SOURCE_ID_INT_3     ,
9249    SOURCE_ID_INT_4     ,
9250    SOURCE_ID_CHAR_1    ,
9251    SOURCE_ID_CHAR_2    ,
9252    SOURCE_ID_CHAR_3    ,
9253    SOURCE_ID_CHAR_4    ,
9254    EVENT_ID            ,
9255    EVENT_CLASS_CODE    ,
9256    EVENT_TYPE_CODE     ,
9257    EVENT_NUMBER        ,
9258    EVENT_DATE          ,
9259    EVENT_STATUS_CODE   ,
9260    PROCESS_STATUS_CODE ,
9261    EVENT_CREATED_BY    ,
9262    REFERENCE_NUM_1     ,
9263    REFERENCE_NUM_2     ,
9264    REFERENCE_NUM_3     ,
9265    REFERENCE_NUM_4     ,
9266    REFERENCE_CHAR_1    ,
9267    REFERENCE_CHAR_2    ,
9268    REFERENCE_CHAR_3    ,
9269    REFERENCE_CHAR_4    ,
9270    REFERENCE_DATE_1    ,
9271    REFERENCE_DATE_2    ,
9272    REFERENCE_DATE_3    ,
9273    REFERENCE_DATE_4    ,
9274    VALUATION_METHOD    ,
9275    SECURITY_ID_INT_1   ,
9276    SECURITY_ID_INT_2   ,
9277    SECURITY_ID_INT_3   ,
9278    SECURITY_ID_CHAR_1  ,
9279    SECURITY_ID_CHAR_2  ,
9280    SECURITY_ID_CHAR_3  ,
9281    ON_HOLD_FLAG        ,
9282    TRANSACTION_DATE    ,
9283    BUDGETARY_CONTROL_FLAG   )
9284  SELECT
9285    LINE_NUMBER         ,
9286    ENTITY_ID           ,
9287    APPLICATION_ID      ,
9288    LEDGER_ID           ,
9289    LEGAL_ENTITY_ID     ,
9290    ENTITY_CODE         ,
9291    TRANSACTION_NUMBER  ,
9292    SOURCE_ID_INT_1     ,
9293    SOURCE_ID_INT_2     ,
9294    SOURCE_ID_INT_3     ,
9295    SOURCE_ID_INT_4     ,
9296    SOURCE_ID_CHAR_1    ,
9297    SOURCE_ID_CHAR_2    ,
9298    SOURCE_ID_CHAR_3    ,
9299    SOURCE_ID_CHAR_4    ,
9300    EVENT_ID            ,
9301    EVENT_CLASS_CODE    ,
9302    EVENT_TYPE_CODE     ,
9303    EVENT_NUMBER        ,
9304    EVENT_DATE          ,
9305    EVENT_STATUS_CODE   ,
9306    PROCESS_STATUS_CODE ,
9307    EVENT_CREATED_BY    ,
9308    REFERENCE_NUM_1     ,
9309    REFERENCE_NUM_2     ,
9310    REFERENCE_NUM_3     ,
9311    REFERENCE_NUM_4     ,
9312    REFERENCE_CHAR_1    ,
9313    REFERENCE_CHAR_2    ,
9314    REFERENCE_CHAR_3    ,
9315    REFERENCE_CHAR_4    ,
9316    REFERENCE_DATE_1    ,
9317    REFERENCE_DATE_2    ,
9318    REFERENCE_DATE_3    ,
9319    REFERENCE_DATE_4    ,
9320    VALUATION_METHOD    ,
9321    SECURITY_ID_INT_1   ,
9322    SECURITY_ID_INT_2   ,
9323    SECURITY_ID_INT_3   ,
9324    SECURITY_ID_CHAR_1  ,
9325    SECURITY_ID_CHAR_2  ,
9326    SECURITY_ID_CHAR_3  ,
9327    ON_HOLD_FLAG        ,
9328    TRANSACTION_DATE    ,
9329    BUDGETARY_CONTROL_FLAG
9330   FROM xla_events_gt
9331   WHERE application_id = 222;
9332 --
9333 INSERT INTO ar_xla_lines_extract_tmp
9334  ( EVENT_ID                  ,
9335    LINE_NUMBER               ,
9336    LANGUAGE                  ,
9337    LEDGER_ID                 ,
9338    SOURCE_ID                 ,
9339    SOURCE_TABLE              ,
9340    LINE_ID                   ,
9341    TAX_CODE_ID               ,
9342    LOCATION_SEGMENT_ID       ,
9343    BASE_CURRENCY_CODE        ,
9344    EXCHANGE_RATE_TYPE        ,
9345    EXCHANGE_RATE             ,
9346    EXCHANGE_DATE             ,
9347    ACCTD_AMOUNT              ,
9348    TAXABLE_ACCTD_AMOUNT      ,
9349    ORG_ID                    ,
9350    HEADER_TABLE_ID           ,
9351    POSTING_ENTITY            ,
9352    CASH_RECEIPT_ID           ,
9353    CUSTOMER_TRX_ID           ,
9354    CUSTOMER_TRX_LINE_ID      ,
9355    CUST_TRX_LINE_GL_DIST_ID  ,
9356    CUST_TRX_LINE_SALESREP_ID ,
9357    INVENTORY_ITEM_ID         ,
9358    SALES_TAX_ID              ,
9359    SO_ORGANIZATION_ID        ,
9360    TAX_EXEMPTION_ID          ,
9361    UOM_CODE                  ,
9362    WAREHOUSE_ID              ,
9363    AGREEMENT_ID              ,
9364    CUSTOMER_BANK_ACCT_ID     ,
9365    DRAWEE_BANK_ACCOUNT_ID    ,
9366    REMITTANCE_BANK_ACCT_ID   ,
9367    DISTRIBUTION_SET_ID       ,
9368    PAYMENT_SCHEDULE_ID       ,
9369    RECEIPT_METHOD_ID         ,
9370    RECEIVABLES_TRX_ID        ,
9371    ED_ADJ_RECEIVABLES_TRX_ID ,
9372    UNED_RECEIVABLES_TRX_ID   ,
9373    SET_OF_BOOKS_ID           ,
9374    SALESREP_ID               ,
9375    BILL_SITE_USE_ID          ,
9376    DRAWEE_SITE_USE_ID        ,
9377    PAYING_SITE_USE_ID        ,
9378    SOLD_SITE_USE_ID          ,
9379    SHIP_SITE_USE_ID          ,
9380    RECEIPT_CUSTOMER_SITE_USE_ID       ,
9381    BILL_CUST_ROLE_ID         ,
9382    DRAWEE_CUST_ROLE_ID       ,
9383    SHIP_CUST_ROLE_ID         ,
9384    SOLD_CUST_ROLE_ID         ,
9385    BILL_CUSTOMER_ID          ,
9386    DRAWEE_CUSTOMER_ID        ,
9387    PAYING_CUSTOMER_ID        ,
9388    SOLD_CUSTOMER_ID          ,
9389    SHIP_CUSTOMER_ID          ,
9390    REMIT_ADDRESS_ID          ,
9391    RECEIPT_BATCH_ID          ,
9392    RECEIVABLE_APPLICATION_ID ,
9393    CUSTOMER_BANK_BRANCH_ID   ,
9394    ISSUER_BANK_BRANCH_ID     ,
9395    BATCH_SOURCE_ID           ,
9396    BATCH_ID                  ,
9397    TERM_ID                   ,
9398    SELECT_FLAG               ,
9399    LEVEL_FLAG                ,
9400    FROM_TO_FLAG              ,
9401    CRH_STATUS                ,
9402    CRH_PRV_STATUS            ,
9403    AMOUNT                    ,
9404    FROM_AMOUNT               ,
9405    FROM_ACCTD_AMOUNT         ,
9406    PREV_FUND_SEG_REPLACE     ,
9407    APP_CRH_STATUS            ,
9408    PAIRED_CCID               ,
9409    PAIRE_DIST_ID             ,
9410    REF_DIST_CCID             ,
9411    REF_MF_DIST_FLAG          ,
9412    ORIGIN_EXTRACT_TABLE      ,
9413    EVENT_TYPE_CODE           ,
9414    EVENT_CLASS_CODE          ,
9415    ENTITY_CODE               ,
9416    REVERSAL_CODE             ,
9417    BUSINESS_FLOW_CODE        ,
9418    TAX_LINE_ID               ,
9419    ADDITIONAL_CHAR1          ,
9420    ADDITIONAL_CHAR2          ,
9421    ADDITIONAL_CHAR3          ,
9422    ADDITIONAL_CHAR4          ,
9423    ADDITIONAL_CHAR5          ,
9424    ADDITIONAL_ID1            ,
9425    ADDITIONAL_ID2            ,
9426    ADDITIONAL_ID3            ,
9427    ADDITIONAL_ID4            ,
9428    ADDITIONAL_ID5            ,
9429    XLA_ENTITY_ID
9430   ,REF_CTLGD_CCID
9431   ,DIST_CCID
9432   ,FROM_EXCHANGE_RATE
9433   ,FROM_EXCHANGE_RATE_TYPE
9434   ,FROM_EXCHANGE_DATE
9435   ,FROM_CURRENCY_CODE
9436   ,TO_CURRENCY_CODE
9437   ,MFAR_ADDITIONAL_ENTRY
9438   ,third_party_id
9439   ,third_party_site_id
9440   ,third_party_type
9441   ,source_type               )
9442  SELECT
9443    EVENT_ID                  ,
9444    LINE_NUMBER               ,
9445    LANGUAGE                  ,
9446    LEDGER_ID                 ,
9447    SOURCE_ID                 ,
9448    SOURCE_TABLE              ,
9449    LINE_ID                   ,
9450    TAX_CODE_ID               ,
9451    LOCATION_SEGMENT_ID       ,
9452    BASE_CURRENCY_CODE        ,
9453    EXCHANGE_RATE_TYPE        ,
9454    EXCHANGE_RATE             ,
9455    EXCHANGE_DATE             ,
9456    ACCTD_AMOUNT              ,
9457    TAXABLE_ACCTD_AMOUNT      ,
9458    ORG_ID                    ,
9459    HEADER_TABLE_ID           ,
9460    POSTING_ENTITY            ,
9461    CASH_RECEIPT_ID           ,
9462    CUSTOMER_TRX_ID           ,
9463    CUSTOMER_TRX_LINE_ID      ,
9464    CUST_TRX_LINE_GL_DIST_ID  ,
9465    CUST_TRX_LINE_SALESREP_ID ,
9466    INVENTORY_ITEM_ID         ,
9467    SALES_TAX_ID              ,
9468    SO_ORGANIZATION_ID        ,
9469    TAX_EXEMPTION_ID          ,
9470    UOM_CODE                  ,
9471    WAREHOUSE_ID              ,
9472    AGREEMENT_ID              ,
9473    CUSTOMER_BANK_ACCT_ID     ,
9474    DRAWEE_BANK_ACCOUNT_ID    ,
9475    REMITTANCE_BANK_ACCT_ID   ,
9476    DISTRIBUTION_SET_ID       ,
9477    PAYMENT_SCHEDULE_ID       ,
9478    RECEIPT_METHOD_ID         ,
9479    RECEIVABLES_TRX_ID        ,
9480    ED_ADJ_RECEIVABLES_TRX_ID ,
9481    UNED_RECEIVABLES_TRX_ID   ,
9482    SET_OF_BOOKS_ID           ,
9483    SALESREP_ID               ,
9484    BILL_SITE_USE_ID          ,
9485    DRAWEE_SITE_USE_ID        ,
9486    PAYING_SITE_USE_ID        ,
9487    SOLD_SITE_USE_ID          ,
9488    SHIP_SITE_USE_ID          ,
9489    RECEIPT_CUSTOMER_SITE_USE_ID       ,
9490    BILL_CUST_ROLE_ID         ,
9491    DRAWEE_CUST_ROLE_ID       ,
9492    SHIP_CUST_ROLE_ID         ,
9493    SOLD_CUST_ROLE_ID         ,
9494    BILL_CUSTOMER_ID          ,
9495    DRAWEE_CUSTOMER_ID        ,
9496    PAYING_CUSTOMER_ID        ,
9497    SOLD_CUSTOMER_ID          ,
9498    SHIP_CUSTOMER_ID          ,
9499    REMIT_ADDRESS_ID          ,
9500    RECEIPT_BATCH_ID          ,
9501    RECEIVABLE_APPLICATION_ID ,
9502    CUSTOMER_BANK_BRANCH_ID   ,
9503    ISSUER_BANK_BRANCH_ID     ,
9504    BATCH_SOURCE_ID           ,
9505    BATCH_ID                  ,
9506    TERM_ID                   ,
9507    SELECT_FLAG               ,
9508    LEVEL_FLAG                ,
9509    FROM_TO_FLAG              ,
9510    CRH_STATUS                ,
9511    CRH_PRV_STATUS            ,
9512    AMOUNT                    ,
9513    FROM_AMOUNT               ,
9514    FROM_ACCTD_AMOUNT         ,
9515    PREV_FUND_SEG_REPLACE     ,
9516    APP_CRH_STATUS            ,
9517    PAIRED_CCID               ,
9518    PAIRE_DIST_ID             ,
9519    REF_DIST_CCID             ,
9520    REF_MF_DIST_FLAG          ,
9521    ORIGIN_EXTRACT_TABLE      ,
9522    EVENT_TYPE_CODE           ,
9523    EVENT_CLASS_CODE          ,
9524    ENTITY_CODE               ,
9525    REVERSAL_CODE             ,
9526    BUSINESS_FLOW_CODE        ,
9527    TAX_LINE_ID               ,
9528    ADDITIONAL_CHAR1          ,
9529    ADDITIONAL_CHAR2          ,
9530    ADDITIONAL_CHAR3          ,
9531    ADDITIONAL_CHAR4          ,
9532    ADDITIONAL_CHAR5          ,
9533    ADDITIONAL_ID1            ,
9534    ADDITIONAL_ID2            ,
9535    ADDITIONAL_ID3            ,
9536    ADDITIONAL_ID4            ,
9537    ADDITIONAL_ID5
9538   ,XLA_ENTITY_ID
9539   ,REF_CTLGD_CCID
9540   ,DIST_CCID
9541   ,FROM_EXCHANGE_RATE
9542   ,FROM_EXCHANGE_RATE_TYPE
9543   ,FROM_EXCHANGE_DATE
9544   ,FROM_CURRENCY_CODE
9545   ,TO_CURRENCY_CODE
9546   ,MFAR_ADDITIONAL_ENTRY
9547   ,third_party_id
9548   ,third_party_site_id
9549   ,third_party_type
9550   ,source_type
9551 FROM ar_xla_lines_extract;
9552 */
9553 local_log('diag_data','+--------BEGIN READING XLA_EVENTS_GT--------------+');
9554 OPEN c2;
9555 LOOP
9556   FETCH c2 INTO l;
9557   EXIT WHEN c2%NOTFOUND;
9558   cpt := cpt + 1;
9559 local_log('diag_data','|------------------EVENT#'||cpt||'----------------|');
9560 local_log('diag_data','<LINE_NUMBER>'||l.LINE_NUMBER||'</LINE_NUMBER>');
9561 local_log('diag_data','<ENTITY_ID>'||l.ENTITY_ID||'</ENTITY_ID>');
9562 local_log('diag_data','<APPLICATION_ID>'||l.APPLICATION_ID||'</APPLICATION_ID>');
9563 local_log('diag_data','<LEDGER_ID>'||l.LEDGER_ID||'</LEDGER_ID>');
9564 local_log('diag_data','<LEGAL_ENTITY_ID>'||l.LEGAL_ENTITY_ID||'</LEGAL_ENTITY_ID>');
9565 local_log('diag_data','<ENTITY_CODE>'||l.ENTITY_CODE||'</ENTITY_CODE>');
9566 local_log('diag_data','<TRANSACTION_NUMBER>'||l.TRANSACTION_NUMBER||'</TRANSACTION_NUMBER>');
9567 local_log('diag_data','<SOURCE_ID_INT_1>'||l.SOURCE_ID_INT_1||'</SOURCE_ID_INT_1>');
9568 local_log('diag_data','<SOURCE_ID_INT_2>'||l.SOURCE_ID_INT_2||'</SOURCE_ID_INT_2>');
9569 local_log('diag_data','<SOURCE_ID_INT_3>'||l.SOURCE_ID_INT_3||'</SOURCE_ID_INT_3>');
9570 local_log('diag_data','<SOURCE_ID_INT_4>'||l.SOURCE_ID_INT_4||'</SOURCE_ID_INT_4>');
9571 local_log('diag_data','<SOURCE_ID_CHAR_1>'||l.SOURCE_ID_CHAR_1||'</SOURCE_ID_CHAR_1>');
9572 local_log('diag_data','<SOURCE_ID_CHAR_2>'||l.SOURCE_ID_CHAR_2||'</SOURCE_ID_CHAR_2>');
9573 local_log('diag_data','<SOURCE_ID_CHAR_3>'||l.SOURCE_ID_CHAR_3||'</SOURCE_ID_CHAR_3>');
9574 local_log('diag_data','<SOURCE_ID_CHAR_4>'||l.SOURCE_ID_CHAR_4||'</SOURCE_ID_CHAR_4>');
9575 local_log('diag_data','<EVENT_ID>'||l.EVENT_ID||'</EVENT_ID>');
9576 local_log('diag_data','<EVENT_CLASS_CODE>'||l.EVENT_CLASS_CODE||'</EVENT_CLASS_CODE>');
9577 local_log('diag_data','<EVENT_TYPE_CODE>'||l.EVENT_TYPE_CODE||'</EVENT_TYPE_CODE>');
9578 local_log('diag_data','<EVENT_NUMBER>'||l.EVENT_NUMBER||'</EVENT_NUMBER>');
9579 local_log('diag_data','<EVENT_DATE>'||l.EVENT_DATE||'</EVENT_DATE>');
9580 local_log('diag_data','<EVENT_STATUS_CODE>'||l.EVENT_STATUS_CODE||'</EVENT_STATUS_CODE>');
9581 local_log('diag_data','<PROCESS_STATUS_CODE>'||l.PROCESS_STATUS_CODE||'</PROCESS_STATUS_CODE>');
9582 local_log('diag_data','<EVENT_CREATED_BY>'||l.EVENT_CREATED_BY||'</EVENT_CREATED_BY>');
9583 local_log('diag_data','<REFERENCE_NUM_1>'||l.REFERENCE_NUM_1||'</REFERENCE_NUM_1>');
9584 local_log('diag_data','<REFERENCE_NUM_2>'||l.REFERENCE_NUM_2||'</REFERENCE_NUM_2>');
9585 local_log('diag_data','<REFERENCE_NUM_3>'||l.REFERENCE_NUM_3||'</REFERENCE_NUM_3>');
9586 local_log('diag_data','<REFERENCE_NUM_4>'||l.REFERENCE_NUM_4||'</REFERENCE_NUM_4>');
9587 local_log('diag_data','<REFERENCE_CHAR_1>'||l.REFERENCE_CHAR_1||'</REFERENCE_CHAR_1>');
9588 local_log('diag_data','<REFERENCE_CHAR_2>'||l.REFERENCE_CHAR_2||'</REFERENCE_CHAR_2>');
9589 local_log('diag_data','<REFERENCE_CHAR_3>'||l.REFERENCE_CHAR_3||'</REFERENCE_CHAR_3>');
9590 local_log('diag_data','<REFERENCE_CHAR_4>'||l.REFERENCE_CHAR_4||'</REFERENCE_CHAR_4>');
9591 local_log('diag_data','<REFERENCE_DATE_4>'||l.REFERENCE_DATE_4||'</REFERENCE_DATE_4>');
9592 local_log('diag_data','<VALUATION_METHOD>'||l.VALUATION_METHOD||'</VALUATION_METHOD>');
9593 local_log('diag_data','<SECURITY_ID_INT_1>'||l.SECURITY_ID_INT_1||'</SECURITY_ID_INT_1>');
9594 local_log('diag_data','<SECURITY_ID_INT_2>'||l.SECURITY_ID_INT_2||'</SECURITY_ID_INT_2>');
9595 local_log('diag_data','<SECURITY_ID_INT_3>'||l.SECURITY_ID_INT_3||'</SECURITY_ID_INT_3>');
9596 local_log('diag_data','<SECURITY_ID_CHAR_1>'||l.SECURITY_ID_CHAR_1||'</SECURITY_ID_CHAR_1>');
9597 local_log('diag_data','<SECURITY_ID_CHAR_2>'||l.SECURITY_ID_CHAR_2||'</SECURITY_ID_CHAR_2>');
9598 local_log('diag_data','<SECURITY_ID_CHAR_3>'||l.SECURITY_ID_CHAR_3||'</SECURITY_ID_CHAR_3>');
9599 local_log('diag_data','<ON_HOLD_FLAG>'||l.ON_HOLD_FLAG||'</ON_HOLD_FLAG>');
9600 local_log('diag_data','<TRANSACTION_DATE>'||l.TRANSACTION_DATE||'</TRANSACTION_DATE>');
9601 local_log('diag_data','<BUDGETARY_CONTROL_FLAG>'||l.BUDGETARY_CONTROL_FLAG||'</BUDGETARY_CONTROL_FLAG>');
9602 local_log('diag_data','<REFERENCE_DATE_1>'||l.REFERENCE_DATE_1||'</REFERENCE_DATE_1>');
9603 local_log('diag_data','<REFERENCE_DATE_2>'||l.REFERENCE_DATE_2||'</REFERENCE_DATE_2>');
9604 local_log('diag_data','<REFERENCE_DATE_3>'||l.REFERENCE_DATE_3||'</REFERENCE_DATE_3>');
9605 END LOOP;
9606 CLOSE c2;
9607 local_log('diag_data','+--------END READING XLA_EVENTS_GT----------------+');
9608 
9609 
9610 local_log('diag_data','+--------BEGIN READING AR_XLA_LINES_EXTRACT-------+');
9611 cpt := 0;
9612 OPEN c;
9613 LOOP
9614   FETCH c INTO l_c;
9615   EXIT WHEN c%NOTFOUND;
9616 cpt := cpt + 1;
9617 local_log('diag_data','|---------LINE#'||cpt||'--------------------------|');
9618 local_log('diag_data','<BILL_CUSTOMER_ID>'||l_c.BILL_CUSTOMER_ID||'</BILL_CUSTOMER_ID>');
9619 local_log('diag_data','<DRAWEE_CUSTOMER_ID>'||l_c.DRAWEE_CUSTOMER_ID||'</DRAWEE_CUSTOMER_ID>');
9620 local_log('diag_data','<PAYING_CUSTOMER_ID>'||l_c.PAYING_CUSTOMER_ID||'</PAYING_CUSTOMER_ID>');
9621 local_log('diag_data','<SOLD_CUSTOMER_ID>'||l_c.SOLD_CUSTOMER_ID||'</SOLD_CUSTOMER_ID>');
9622 local_log('diag_data','<SHIP_CUSTOMER_ID>'||l_c.SHIP_CUSTOMER_ID||'</SHIP_CUSTOMER_ID>');
9623 local_log('diag_data','<REMIT_ADDRESS_ID>'||l_c.REMIT_ADDRESS_ID||'</REMIT_ADDRESS_ID>');
9624 local_log('diag_data','<RECEIPT_BATCH_ID>'||l_c.RECEIPT_BATCH_ID||'</RECEIPT_BATCH_ID>');
9625 local_log('diag_data','<RECEIVABLE_APPLICATION_ID>'||l_c.RECEIVABLE_APPLICATION_ID||'</RECEIVABLE_APPLICATION_ID>');
9626 local_log('diag_data','<CUSTOMER_BANK_BRANCH_ID>'||l_c.CUSTOMER_BANK_BRANCH_ID||'</CUSTOMER_BANK_BRANCH_ID>');
9627 local_log('diag_data','<ISSUER_BANK_BRANCH_ID>'||l_c.ISSUER_BANK_BRANCH_ID||'</ISSUER_BANK_BRANCH_ID>');
9628 local_log('diag_data','<BATCH_SOURCE_ID>'||l_c.BATCH_SOURCE_ID||'</BATCH_SOURCE_ID>');
9629 local_log('diag_data','<BATCH_ID>'||l_c.BATCH_ID||'</BATCH_ID>');
9630 local_log('diag_data','<TERM_ID>'||l_c.TERM_ID||'</TERM_ID>');
9631 local_log('diag_data','<SELECT_FLAG>'||l_c.SELECT_FLAG||'</SELECT_FLAG>');
9632 local_log('diag_data','<LEVEL_FLAG>'||l_c.LEVEL_FLAG||'</LEVEL_FLAG>');
9633 local_log('diag_data','<FROM_TO_FLAG>'||l_c.FROM_TO_FLAG||'</FROM_TO_FLAG>');
9634 local_log('diag_data','<CRH_STATUS>'||l_c.CRH_STATUS||'</CRH_STATUS>');
9635 local_log('diag_data','<CRH_PRV_STATUS>'||l_c.CRH_PRV_STATUS||'</CRH_PRV_STATUS>');
9636 local_log('diag_data','<AMOUNT>'||l_c.AMOUNT||'</AMOUNT>');
9637 local_log('diag_data','<FROM_AMOUNT>'||l_c.FROM_AMOUNT||'</FROM_AMOUNT>');
9638 local_log('diag_data','<FROM_ACCTD_AMOUNT>'||l_c.FROM_ACCTD_AMOUNT||'</FROM_ACCTD_AMOUNT>');
9639 local_log('diag_data','<PREV_FUND_SEG_REPLACE>'||l_c.PREV_FUND_SEG_REPLACE||'</PREV_FUND_SEG_REPLACE>');
9640 local_log('diag_data','<APP_CRH_STATUS>'||l_c.APP_CRH_STATUS||'</APP_CRH_STATUS>');
9641 local_log('diag_data','<PAIRED_CCID>'||l_c.PAIRED_CCID||'</PAIRED_CCID>');
9642 local_log('diag_data','<PAIRE_DIST_ID>'||l_c.PAIRE_DIST_ID||'</PAIRE_DIST_ID>');
9643 local_log('diag_data','<REF_DIST_CCID>'||l_c.REF_DIST_CCID||'</REF_DIST_CCID>');
9644 local_log('diag_data','<REF_MF_DIST_FLAG>'||l_c.REF_MF_DIST_FLAG||'</REF_MF_DIST_FLAG>');
9645 local_log('diag_data','<ORIGIN_EXTRACT_TABLE>'||l_c.ORIGIN_EXTRACT_TABLE||'</ORIGIN_EXTRACT_TABLE>');
9646 local_log('diag_data','<EVENT_TYPE_CODE>'||l_c.EVENT_TYPE_CODE||'</EVENT_TYPE_CODE>');
9647 local_log('diag_data','<EVENT_CLASS_CODE>'||l_c.EVENT_CLASS_CODE||'</EVENT_CLASS_CODE>');
9648 local_log('diag_data','<ENTITY_CODE>'||l_c.ENTITY_CODE||'</ENTITY_CODE>');
9649 local_log('diag_data','<REVERSAL_CODE>'||l_c.REVERSAL_CODE||'</REVERSAL_CODE>');
9650 local_log('diag_data','<BUSINESS_FLOW_CODE>'||l_c.BUSINESS_FLOW_CODE||'</BUSINESS_FLOW_CODE>');
9651 local_log('diag_data','<TAX_LINE_ID>'||l_c.TAX_LINE_ID||'</TAX_LINE_ID>');
9652 local_log('diag_data','<ADDITIONAL_CHAR1>'||l_c.ADDITIONAL_CHAR1||'</ADDITIONAL_CHAR1>');
9653 local_log('diag_data','<ADDITIONAL_CHAR2>'||l_c.ADDITIONAL_CHAR2||'</ADDITIONAL_CHAR2>');
9654 local_log('diag_data','<ADDITIONAL_CHAR3>'||l_c.ADDITIONAL_CHAR3||'</ADDITIONAL_CHAR3>');
9655 local_log('diag_data','<ADDITIONAL_CHAR4>'||l_c.ADDITIONAL_CHAR4||'</ADDITIONAL_CHAR4>');
9656 local_log('diag_data','<ADDITIONAL_CHAR5>'||l_c.ADDITIONAL_CHAR5||'</ADDITIONAL_CHAR5>');
9657 local_log('diag_data','<ADDITIONAL_ID1>'||l_c.ADDITIONAL_ID1||'</ADDITIONAL_ID1>');
9658 local_log('diag_data','<ADDITIONAL_ID2>'||l_c.ADDITIONAL_ID2||'</ADDITIONAL_ID2>');
9659 local_log('diag_data','<ADDITIONAL_ID3>'||l_c.ADDITIONAL_ID3||'</ADDITIONAL_ID3>');
9660 local_log('diag_data','<ADDITIONAL_ID4>'||l_c.ADDITIONAL_ID4||'</ADDITIONAL_ID4>');
9661 local_log('diag_data','<ADDITIONAL_ID5>'||l_c.ADDITIONAL_ID5||'</ADDITIONAL_ID5>');
9662 local_log('diag_data','<EVENT_ID>'||l_c.EVENT_ID||'</EVENT_ID>');
9663 local_log('diag_data','<LINE_NUMBER>'||l_c.LINE_NUMBER||'</LINE_NUMBER>');
9664 local_log('diag_data','<LANGUAGE>'||l_c.LANGUAGE||'</LANGUAGE>');
9665 local_log('diag_data','<LEDGER_ID>'||l_c.LEDGER_ID||'</LEDGER_ID>');
9666 local_log('diag_data','<SOURCE_ID>'||l_c.SOURCE_ID||'</SOURCE_ID>');
9667 local_log('diag_data','<SOURCE_TABLE>'||l_c.SOURCE_TABLE||'</SOURCE_TABLE>');
9668 local_log('diag_data','<LINE_ID>'||l_c.LINE_ID||'</LINE_ID>');
9669 local_log('diag_data','<TAX_CODE_ID>'||l_c.TAX_CODE_ID||'</TAX_CODE_ID>');
9670 local_log('diag_data','<LOCATION_SEGMENT_ID>'||l_c.LOCATION_SEGMENT_ID||'</LOCATION_SEGMENT_ID>');
9671 local_log('diag_data','<BASE_CURRENCY_CODE>'||l_c.BASE_CURRENCY_CODE||'</BASE_CURRENCY_CODE>');
9672 local_log('diag_data','<EXCHANGE_RATE_TYPE>'||l_c.EXCHANGE_RATE_TYPE||'</EXCHANGE_RATE_TYPE>');
9673 local_log('diag_data','<EXCHANGE_RATE>'||l_c.EXCHANGE_RATE||'</EXCHANGE_RATE>');
9674 local_log('diag_data','<EXCHANGE_DATE>'||l_c.EXCHANGE_DATE||'</EXCHANGE_DATE>');
9675 local_log('diag_data','<ACCTD_AMOUNT>'||l_c.ACCTD_AMOUNT||'</ACCTD_AMOUNT>');
9676 local_log('diag_data','<TAXABLE_ACCTD_AMOUNT>'||l_c.TAXABLE_ACCTD_AMOUNT||'</TAXABLE_ACCTD_AMOUNT>');
9677 local_log('diag_data','<ORG_ID>'||l_c.ORG_ID||'</ORG_ID>');
9678 local_log('diag_data','<HEADER_TABLE_ID>'||l_c.HEADER_TABLE_ID||'</HEADER_TABLE_ID>');
9679 local_log('diag_data','<POSTING_ENTITY>'||l_c.POSTING_ENTITY||'</POSTING_ENTITY>');
9680 local_log('diag_data','<CASH_RECEIPT_ID>'||l_c.CASH_RECEIPT_ID||'</CASH_RECEIPT_ID>');
9681 local_log('diag_data','<CUSTOMER_TRX_ID>'||l_c.CUSTOMER_TRX_ID||'</CUSTOMER_TRX_ID>');
9682 local_log('diag_data','<CUSTOMER_TRX_LINE_ID>'||l_c.CUSTOMER_TRX_LINE_ID||'</CUSTOMER_TRX_LINE_ID>');
9683 local_log('diag_data','<CUST_TRX_LINE_GL_DIST_ID>'||l_c.CUST_TRX_LINE_GL_DIST_ID||'</CUST_TRX_LINE_GL_DIST_ID>');
9684 local_log('diag_data','<CUST_TRX_LINE_SALESREP_ID>'||l_c.CUST_TRX_LINE_SALESREP_ID||'</CUST_TRX_LINE_SALESREP_ID>');
9685 local_log('diag_data','<INVENTORY_ITEM_ID>'||l_c.INVENTORY_ITEM_ID||'</INVENTORY_ITEM_ID>');
9686 local_log('diag_data','<SALES_TAX_ID>'||l_c.SALES_TAX_ID||'</SALES_TAX_ID>');
9687 local_log('diag_data','<SO_ORGANIZATION_ID>'||l_c.SO_ORGANIZATION_ID||'</SO_ORGANIZATION_ID>');
9688 local_log('diag_data','<TAX_EXEMPTION_ID>'||l_c.TAX_EXEMPTION_ID||'</TAX_EXEMPTION_ID>');
9689 local_log('diag_data','<UOM_CODE>'||l_c.UOM_CODE||'</UOM_CODE>');
9690 local_log('diag_data','<WAREHOUSE_ID>'||l_c.WAREHOUSE_ID||'</WAREHOUSE_ID>');
9691 local_log('diag_data','<AGREEMENT_ID>'||l_c.AGREEMENT_ID||'</AGREEMENT_ID>');
9692 local_log('diag_data','<CUSTOMER_BANK_ACCT_ID>'||l_c.CUSTOMER_BANK_ACCT_ID||'</CUSTOMER_BANK_ACCT_ID>');
9693 local_log('diag_data','<DRAWEE_BANK_ACCOUNT_ID>'||l_c.DRAWEE_BANK_ACCOUNT_ID||'</DRAWEE_BANK_ACCOUNT_ID>');
9694 local_log('diag_data','<REMITTANCE_BANK_ACCT_ID>'||l_c.REMITTANCE_BANK_ACCT_ID||'</REMITTANCE_BANK_ACCT_ID>');
9695 local_log('diag_data','<DISTRIBUTION_SET_ID>'||l_c.DISTRIBUTION_SET_ID||'</DISTRIBUTION_SET_ID>');
9696 local_log('diag_data','<PAYMENT_SCHEDULE_ID>'||l_c.PAYMENT_SCHEDULE_ID||'</PAYMENT_SCHEDULE_ID>');
9697 local_log('diag_data','<RECEIPT_METHOD_ID>'||l_c.RECEIPT_METHOD_ID||'</RECEIPT_METHOD_ID>');
9698 local_log('diag_data','<RECEIVABLES_TRX_ID>'||l_c.RECEIVABLES_TRX_ID||'</RECEIVABLES_TRX_ID>');
9699 local_log('diag_data','<ED_ADJ_RECEIVABLES_TRX_ID>'||l_c.ED_ADJ_RECEIVABLES_TRX_ID||'</ED_ADJ_RECEIVABLES_TRX_ID>');
9700 local_log('diag_data','<UNED_RECEIVABLES_TRX_ID>'||l_c.UNED_RECEIVABLES_TRX_ID||'</UNED_RECEIVABLES_TRX_ID>');
9701 local_log('diag_data','<SET_OF_BOOKS_ID>'||l_c.SET_OF_BOOKS_ID||'</SET_OF_BOOKS_ID>');
9702 local_log('diag_data','<SALESREP_ID>'||l_c.SALESREP_ID||'</SALESREP_ID>');
9703 local_log('diag_data','<BILL_SITE_USE_ID>'||l_c.BILL_SITE_USE_ID||'</BILL_SITE_USE_ID>');
9704 local_log('diag_data','<DRAWEE_SITE_USE_ID>'||l_c.DRAWEE_SITE_USE_ID||'</DRAWEE_SITE_USE_ID>');
9705 local_log('diag_data','<PAYING_SITE_USE_ID>'||l_c.PAYING_SITE_USE_ID||'</PAYING_SITE_USE_ID>');
9706 local_log('diag_data','<SOLD_SITE_USE_ID>'||l_c.SOLD_SITE_USE_ID||'</SOLD_SITE_USE_ID>');
9707 local_log('diag_data','<SHIP_SITE_USE_ID>'||l_c.SHIP_SITE_USE_ID||'</SHIP_SITE_USE_ID>');
9708 local_log('diag_data','<RECEIPT_CUSTOMER_SITE_USE_ID>'||l_c.RECEIPT_CUSTOMER_SITE_USE_ID||'</RECEIPT_CUSTOMER_SITE_USE_ID>');
9709 local_log('diag_data','<BILL_CUST_ROLE_ID>'||l_c.BILL_CUST_ROLE_ID||'</BILL_CUST_ROLE_ID>');
9710 local_log('diag_data','<DRAWEE_CUST_ROLE_ID>'||l_c.DRAWEE_CUST_ROLE_ID||'</DRAWEE_CUST_ROLE_ID>');
9711 local_log('diag_data','<SHIP_CUST_ROLE_ID>'||l_c.SHIP_CUST_ROLE_ID||'</SHIP_CUST_ROLE_ID>');
9712 local_log('diag_data','<SOLD_CUST_ROLE_ID>'||l_c.SOLD_CUST_ROLE_ID||'</SOLD_CUST_ROLE_ID>');
9713 END LOOP;
9714 CLOSE c;
9715 local_log('diag_data','+--------END READING AR_XLA_LINES_EXTRACT---------+');
9716 
9717 
9718 END;
9719 
9720 
9721 END arp_xla_extract_main_pkg;