DBA Data[Home] [Help]

PACKAGE BODY: APPS.AR_BUS_EVENT_COVER

Source


4 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
1 PACKAGE BODY AR_BUS_EVENT_COVER AS
2 /* $Header: ARBEPKGB.pls 120.17.12010000.3 2009/12/28 21:37:20 mraymond ship $*/
3 
5 
6 FUNCTION isRefreshProgramRunning RETURN BOOLEAN IS
7 CURSOR C1 IS
8 select request_id
9 from AR_CONC_PROCESS_REQUESTS
13 
10 where CONCURRENT_PROGRAM_NAME = 'ARSUMREF';
11 l_request_id  number;
12 BEGIN
14 OPEN C1;
15 
16   FETCH C1 INTO l_request_id;
17 
18   IF C1%NOTFOUND THEN
19    return false;
20   ELSE
21    return true;
22   END IF;
23 
24 CLOSE C1;
25 
26 END isRefreshProgramRunning;
27 
28 PROCEDURE insert_events_hist (p_be_name VARCHAR2,
29                               p_event_key VARCHAR2,
30                               p_ps_id    NUMBER,
31                               p_ctx_id   NUMBER,
32                               p_cr_id    NUMBER,
33                               p_ra_id    NUMBER,
34                               p_adj_id   NUMBER,
35                               p_hist_id  NUMBER,
36                               p_req_id   NUMBER
37                               )
38  IS
39 
40 BEGIN
41 
42    INSERT INTO AR_SUM_REF_EVENT_HIST
43               (business_event_name,
44                event_key,
45                payment_schedule_id,
46                customer_trx_id,
47                cash_receipt_id,
48                receivable_application_id,
49                adjustment_id,
50                history_id,
51                request_id,
52                last_update_date,
53                last_update_by,
54                creation_date,
55                created_by,
56                last_update_login)
57        VALUES (p_be_name,
58                p_event_key,
59                p_ps_id,
60                p_ctx_id,
61                p_cr_id,
62                p_ra_id,
63                p_adj_id,
64                p_hist_id,
65                p_req_id,
66                sysdate,
67                FND_GLOBAL.user_id,
68                sysdate,
69                FND_GLOBAL.user_id,
70                FND_GLOBAL.login_id);
71 
72 END insert_events_hist;
73 
74 PROCEDURE p_insert_trx_sum_hist(p_trx_sum_hist_rec IN AR_TRX_SUMMARY_HIST%rowtype,
75                                 p_history_id OUT NOCOPY NUMBER,
76                                 p_trx_type IN VARCHAR2,
77                                 p_event_type  IN VARCHAR2 DEFAULT NULL)
78 IS
79 l_event_name VARCHAR2(100);
80 l_previous_history_id  NUMBER;
81 l_history_id   NUMBER;
82 CURSOR get_prev_hist_id (p_ps_id IN NUMBER) IS
83 SELECT max(history_id)
84 FROM AR_TRX_SUMMARY_HIST
85 WHERE payment_schedule_id = p_ps_id;
86 
87 BEGIN
88   OPEN get_prev_hist_id (p_trx_sum_hist_rec.payment_schedule_id);
89 
90   FETCH get_prev_hist_id  INTO l_previous_history_id;
91 
92   CLOSE get_prev_hist_id;
93 
94 
95   IF p_trx_type = 'INV'  AND
96      p_event_type = 'INCOMPLETE_TRX' THEN
97 
98      l_event_name := 'oracle.apps.ar.transaction.Invoice.incomplete';
99   ELSIF p_trx_type = 'INV' AND
100      p_event_type = 'MODIFY_TRX'  THEN
101 
102      l_event_name := 'oracle.apps.ar.transaction.Invoice.modify';
103   ELSIF p_trx_type = 'CM' AND
104      p_event_type = 'INCOMPLETE_TRX'  THEN
105 
106      l_event_name := 'oracle.apps.ar.transaction.CreditMemo.incomplete';
107   ELSIF p_trx_type = 'CM' AND
108      p_event_type = 'MODIFY_TRX'  THEN
109 
110      l_event_name := 'oracle.apps.ar.transaction.CreditMemo.modify';
111   ELSIF p_trx_type = 'DM' AND
112      p_event_type = 'INCOMPLETE_TRX'  THEN
113 
114      l_event_name := 'oracle.apps.ar.transaction.DebitMemo.incomplete';
115   ELSIF p_trx_type = 'DM' AND
116      p_event_type = 'MODIFY_TRX'  THEN
117 
118      l_event_name := 'oracle.apps.ar.transaction.DebitMemo.modify';
119   ELSIF p_trx_type = 'DEP' AND
120      p_event_type = 'INCOMPLETE_TRX'  THEN
121 
122      l_event_name := 'oracle.apps.ar.transaction.Deposit.incomplete';
123   ELSIF p_trx_type = 'DEP' AND
124      p_event_type = 'MODIFY_TRX'  THEN
125 
126      l_event_name := 'oracle.apps.ar.transaction.Deposit.modify';
127   ELSIF p_trx_type = 'BR' AND
128      p_event_type = 'INCOMPLETE_TRX'  THEN
129 
130      l_event_name := 'oracle.apps.ar.transaction.BillsReceivables.incomplete';
131   ELSIF p_trx_type = 'BR' AND
132      p_event_type = 'MODIFY_TRX'  THEN
133 
134      l_event_name := 'oracle.apps.ar.transaction.BillsReceivables.modify';
135   ELSIF p_trx_type = 'GUAR' AND
136      p_event_type = 'INCOMPLETE_TRX'  THEN
137 
138      l_event_name := 'oracle.apps.ar.transaction.Guarantee.incomplete';
139   ELSIF p_trx_type = 'GUAR' AND
140      p_event_type = 'MODIFY_TRX'  THEN
141 
142      l_event_name := 'oracle.apps.ar.transaction.Guarantee.modify';
143   ELSIF p_trx_type = 'CB' AND
144      p_event_type = 'MODIFY_TRX'  THEN
145 
146      l_event_name := 'oracle.apps.ar.transaction.ChargeBack.modify';
147   ELSIF p_trx_type = 'PMT' AND
148      p_event_type = 'MODIFY_PMT'  THEN
149 
150      l_event_name := 'oracle.apps.ar.receipts.CashReceipt.modify';
151   ELSIF p_trx_type = 'PMT' AND
152       p_event_type = 'DM_REVERSE_PMT'  THEN
153 
154       l_event_name := 'oracle.apps.ar.receipts.CashReceipt.DebitMemoReverse';
155   ELSIF p_trx_type = 'PMT' AND
156       p_event_type = 'REVERSE_PMT'  THEN
157 
158       l_event_name := 'oracle.apps.ar.receipts.CashReceipt.reverse';
159   ELSIF p_trx_type = 'PMT' AND
160       p_event_type = 'DELETE_PMT'  THEN
161 
162       l_event_name := 'oracle.apps.ar.receipts.CashReceipt.Delete';
163   END IF;
164 
165 
166   SELECT AR_TRX_SUMMARY_HIST_S.nextval
167   INTO l_history_id
168   FROM dual;
169 
170      INSERT INTO AR_TRX_SUMMARY_HIST
171           (history_id,
172            last_update_date,
173            last_updated_by,
177            customer_trx_id,
174            creation_date,
175            created_by,
176            last_update_login,
178            cash_receipt_id,
179            payment_schedule_id,
180            currency_code,
181            previous_history_id,
182            due_date,
183            amount_in_dispute,
184            amount_due_original,
185            amount_due_remaining,
186            amount_adjusted,
187            complete_flag,
188            customer_id,
189            site_use_id,
190            trx_date,
191            installments,
192            event_name)
193        VALUES
194           (l_history_id,
195            sysdate,
196            fnd_global.user_id,
197            sysdate,
198            fnd_global.user_id,
199            fnd_global.login_id,
200            p_trx_sum_hist_rec.customer_trx_id,
201            p_trx_sum_hist_rec.cash_receipt_id,
202            p_trx_sum_hist_rec.payment_schedule_id,
203            p_trx_sum_hist_rec.currency_code,
204            l_previous_history_id,
205            p_trx_sum_hist_rec.due_date,
206            p_trx_sum_hist_rec.amount_in_dispute,
207            p_trx_sum_hist_rec.amount_due_original,
208            p_trx_sum_hist_rec.amount_due_remaining,
209            p_trx_sum_hist_rec.amount_adjusted,
210            p_trx_sum_hist_rec.complete_flag,
211            p_trx_sum_hist_rec.customer_id,
212            p_trx_sum_hist_rec.site_use_id,
213            p_trx_sum_hist_rec.trx_date,
214            p_trx_sum_hist_rec.installments,
215            l_event_name
216           );
217     p_history_id := l_history_id;
218 END;
219 
220 /* 9216062 - set ORG_ID parameter correctly if MOAC is
221    enabled */
222 FUNCTION  get_org_id (p_unique_id IN NUMBER,
223                       p_column_name IN VARCHAR2,
224                       p_trx_type    IN VARCHAR2 DEFAULT 'NOT_REQUIRED')
225 RETURN NUMBER
226 IS
227    l_org_id NUMBER;
228 BEGIN
229 
230    IF p_column_name = 'PAYMENT_SCHEDULE_ID'
231    THEN
232 
233      SELECT org_id
234      INTO   l_org_id
235      FROM   AR_PAYMENT_SCHEDULES_ALL
236      WHERE  payment_schedule_id = p_unique_id;
237 
238    ELSIF p_column_name = 'CUSTOMER_TRX_ID'
239    THEN
240 
241      SELECT org_id
242      INTO   l_org_id
243      FROM   RA_CUSTOMER_TRX_ALL
244      WHERE  customer_trx_id = p_unique_id;
245 
246    ELSIF p_column_name = 'CASH_RECEIPT_ID'
247    THEN
248 
249      SELECT org_id
250      INTO   l_org_id
251      FROM   AR_CASH_RECEIPTS_ALL
252      WHERE  cash_receipt_id = p_unique_id;
253 
254    ELSIF p_column_name = 'RECEIVABLE_APPLICATION_ID'
255    THEN
256 
257      SELECT org_id
258      INTO   l_org_id
259      FROM   AR_RECEIVABLE_APPLICATIONS_ALL
260      WHERE  receivable_application_id = p_unique_id;
261 
262    ELSIF p_column_name = 'ADJUSTMENT_ID'
263    THEN
264 
265      SELECT org_id
266      INTO   l_org_id
267      FROM   AR_ADJUSTMENTS_ALL
268      WHERE  adjustment_id = p_unique_id;
269 
270    ELSIF p_column_name = 'REQUEST_ID'
271    THEN
272 
273      IF p_trx_type = 'INVOICES'
274      THEN
275 
276         SELECT org_id
277         INTO   l_org_id
278         FROM   ra_customer_trx_all
279         WHERE  request_id = p_unique_id
280         AND    rownum = 1;
281 
282      ELSIF p_trx_type = 'RECEIPTS'
283      THEN
284 
285         SELECT org_id
286         INTO   l_org_id
287         FROM   ar_cash_receipts_all
288         WHERE  request_id = p_unique_id
289         AND    rownum = 1;
290 
291      ELSIF p_trx_type = 'ADJUSTMENTS'
292      THEN
293 
294         SELECT org_id
295         INTO   l_org_id
296         FROM   ar_adjustments_all
297         WHERE  request_id = p_unique_id
298         AND    rownum = 1;
299 
300      ELSE
301       /* Not a valid p_trx_type so display a message */
302       arp_debug.debug('EXCEPTION:  Invalid p_trx_type ' || p_trx_type ||
303                ' in call to get_org_id');
304 
305      END IF;
306    ELSE
307       /* Not a valid column_name so display a message in log and do
308          nothing else */
309       arp_debug.debug('EXCEPTION:  Invalid p_column_name ' || p_column_name ||
310               ' in call to get_org_id');
311    END IF;
312 
313    arp_debug.debug('  get_org_id returning ' || l_org_id);
314 
315    RETURN l_org_id;
316 
317 END get_org_id;
318 
319 PROCEDURE Raise_Trx_Creation_Event
320 ( p_doc_type  IN VARCHAR2,
321   p_customer_trx_id  IN  NUMBER,
322   p_prev_cust_old_state IN prev_cust_old_state_tab
323  ) IS
324     l_list                                  WF_PARAMETER_LIST_T;
325     l_param                                 WF_PARAMETER_T;
326     l_key                                   VARCHAR2(240);
327     l_exist                                 VARCHAR2(1);
328     l_event_name                            VARCHAR2(50);
329     l_prev_ps_op_status    NUMBER;
330     l_prev_ps_cl_status    NUMBER;
331 CURSOR cm_prev_ctx (p_ctx_id IN NUMBER) IS
332   select prev_trx_ps.status,
333          prev_trx_ps.payment_schedule_id,
334          prev_trx_ps.amount_applied,
335          prev_trx_ps.class,
336          prev_trx_ps.amount_credited,
337          prev_trx_ps.due_date
338   from ar_payment_schedules prev_trx_ps,
339        ra_customer_trx ctx
340   where ctx.customer_trx_id = p_ctx_id
341    and  ctx.previous_customer_trx_id = prev_trx_ps.customer_trx_id
342         ;
343 
347   l_prev_trx_app_amt  NUMBER;
344   l_prev_trx_op_count NUMBER;
345   l_cm_op_trx_count   NUMBER;
346   l_cm_cl_trx_count   NUMBER;
348   l_past_due_inv_amt  NUMBER;
349   l_past_due_inv_count NUMBER;
350   l_org_id            NUMBER;
351 
352 BEGIN
353   IF  p_doc_type = 'INV'  THEN
354    l_event_name := 'oracle.apps.ar.transaction.Invoice.complete';
355   ELSIF p_doc_type = 'CM'  THEN
356    l_event_name := 'oracle.apps.ar.transaction.CreditMemo.complete';
357   ELSIF p_doc_type = 'DEP'  THEN
358    l_event_name := 'oracle.apps.ar.transaction.Deposit.complete';
359   ELSIF p_doc_type = 'DM'  THEN
360    l_event_name := 'oracle.apps.ar.transaction.DebitMemo.complete';
361   ELSIF p_doc_type = 'CB'   THEN
362    l_event_name := 'oracle.apps.ar.transaction.ChargeBack.create';
363   ELSIF p_doc_type = 'GUAR' THEN
364    l_event_name := 'oracle.apps.ar.transaction.Guarantee.complete';
365   ELSIF p_doc_type = 'BR' THEN
366    l_event_name := 'oracle.apps.ar.transaction.BillsReceivables.complete';
367   END IF;
368 
369         --Get the item key
370    l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name,
371                                         p_customer_trx_id );
372 
373   IF (isRefreshProgramRunning)  THEN
374 
375 
376          insert_events_hist (p_be_name => l_event_name,
377                              p_event_key => l_key,
378                              p_ps_id     => null,
379                               p_ctx_id   => p_customer_trx_id,
380                               p_cr_id    => null,
381                               p_ra_id    => null,
382                               p_adj_id   => null,
383                               p_hist_id  => null,
387      -- initialization of object variables
384                               p_req_id   => null);
385   ELSE
386 
388      l_list := WF_PARAMETER_LIST_T();
389 
390      /* 9216062 - set org based on trx */
391      l_org_id := get_org_id(p_customer_trx_id,
392                             'CUSTOMER_TRX_ID');
393 
394      -- Add Context values to the list
395      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
396                                          p_org_id => l_org_id);
397 
398      -- add more parameters to the parameters list
399      wf_event.AddParameterToList(p_name => 'CUSTOMER_TRX_ID',
400                            p_value => p_customer_trx_id,
401                            p_parameterlist => l_list);
402 
403 
404     IF p_doc_type = 'CM'  THEN
405      l_cm_cl_trx_count := 0;
406      l_cm_op_trx_count := 0;
407      l_prev_trx_app_amt := 0;
408      l_past_due_inv_amt := 0;
409      l_past_due_inv_count := 0;
410 
411      FOR i in cm_prev_ctx(p_customer_trx_id) LOOP
412 
413 
414       --check if the status of this PS has changed.
415       IF p_prev_cust_old_state(i.payment_schedule_id).status = 'OP' AND
416          i.status = 'CL'  THEN
417          l_cm_cl_trx_count := l_cm_cl_trx_count + 1;
418          l_prev_trx_app_amt := l_prev_trx_app_amt + nvl(i.amount_applied,0);
419 
420          IF i.due_date < sysdate and i.class = 'INV' THEN
421           l_past_due_inv_count := l_past_due_inv_count - 1;
422          END IF;
423       ELSIF p_prev_cust_old_state(i.payment_schedule_id).status = 'CL' AND
424          i.status = 'OP'  THEN
425          l_cm_op_trx_count := l_cm_op_trx_count + 1;
426          l_prev_trx_app_amt := l_prev_trx_app_amt - nvl(i.amount_applied,0);
427 
428          IF i.due_date < sysdate and i.class = 'INV' THEN
429           l_past_due_inv_count := l_past_due_inv_count + 1;
430          END IF;
431       END IF;
432 
433       IF i.due_date < sysdate and i.class = 'INV' THEN
434         l_past_due_inv_amt := l_past_due_inv_amt +
435           ( nvl(p_prev_cust_old_state(i.payment_schedule_id).amount_credited,0) -
436                                                  nvl(i.amount_credited,0));
437       END IF;
438 
439      END LOOP;
440 
441 
442      l_prev_trx_op_count := l_cm_op_trx_count - l_cm_cl_trx_count;
443 
444      -- add more parameters to the parameters list
445      wf_event.AddParameterToList(p_name => 'PREV_TRX_OP_COUNT',
446                            p_value => l_prev_trx_op_count,
447                            p_parameterlist => l_list);
448 
449      wf_event.AddParameterToList(p_name => 'PREV_TRX_APP_AMT',
450                            p_value => fnd_number.number_to_canonical(l_prev_trx_app_amt),
451                            p_parameterlist => l_list);
452 
453      wf_event.AddParameterToList(p_name => 'PAST_DUE_INV_AMT',
454                            p_value => fnd_number.number_to_canonical(l_past_due_inv_amt),
455                            p_parameterlist => l_list);
456      wf_event.AddParameterToList(p_name => 'PAST_DUE_INV_COUNT',
457                            p_value => l_past_due_inv_count,
461 
458                            p_parameterlist => l_list);
459 
460     END IF;
462 
463 
464 
465         -- Raise Event
466         AR_CMGT_EVENT_PKG.raise_event(
467             p_event_name        => l_event_name,
468             p_event_key         => l_key,
469             p_parameters        => l_list );
470 
471         l_list.DELETE;
472    END IF;
473 
474 EXCEPTION
475  WHEN others THEN
476   IF PG_DEBUG in ('Y', 'C') THEN
477    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
478   END IF;
479 
480 END Raise_Trx_Creation_Event;
481 
482 PROCEDURE Raise_Trx_Incomplete_Event
483 ( p_doc_type  IN VARCHAR2,
484   p_customer_trx_id  IN  NUMBER,
485   p_ps_id            IN NUMBER,
486   p_history_id      IN NUMBER,
487   p_prev_cust_old_state IN PREV_CUST_OLD_STATE_TAB
488  )  IS
489     l_list                                  WF_PARAMETER_LIST_T;
490     l_param                                 WF_PARAMETER_T;
491     l_key                                   VARCHAR2(240);
492     l_exist                                 VARCHAR2(1);
493     l_event_name                            VARCHAR2(50);
494 
495     l_prev_ps_op_status    NUMBER;
496     l_prev_ps_cl_status    NUMBER;
497     l_org_id               NUMBER;
498 CURSOR cm_prev_ctx (p_ctx_id IN NUMBER) IS
499   select prev_trx_ps.status,
500          prev_trx_ps.payment_schedule_id,
501          prev_trx_ps.amount_applied,
502          prev_trx_ps.class,
503          prev_trx_ps.amount_credited,
504          prev_trx_ps.due_date,
505          ctx.previous_customer_trx_id
506   from ar_payment_schedules prev_trx_ps,
507        ra_customer_trx ctx
508   where ctx.customer_trx_id = p_ctx_id
509    and  ctx.previous_customer_trx_id = prev_trx_ps.customer_trx_id
510         ;
511 
512   l_prev_trx_op_count NUMBER;
513   l_cm_op_trx_count   NUMBER;
514   l_cm_cl_trx_count   NUMBER;
515   l_prev_trx_app_amt  NUMBER;
516   l_past_due_inv_amt  NUMBER;
517   l_past_due_inv_count NUMBER;
518   l_prev_trx_type     VARCHAR2(10);
519   l_prev_ctx_id      NUMBER;
520 BEGIN
521 
522   IF  p_doc_type = 'INV'  THEN
523    l_event_name := 'oracle.apps.ar.transaction.Invoice.incomplete';
524   ELSIF p_doc_type = 'CM'  THEN
525    l_event_name := 'oracle.apps.ar.transaction.CreditMemo.incomplete';
526   ELSIF p_doc_type = 'DEP'  THEN
527    l_event_name := 'oracle.apps.ar.transaction.Deposit.incomplete';
528   ELSIF p_doc_type = 'DM'  THEN
529    l_event_name := 'oracle.apps.ar.transaction.DebitMemo.incomplete';
530   ELSIF p_doc_type = 'GUAR' THEN
531    l_event_name := 'oracle.apps.ar.transaction.Guarantee.incomplete';
532   ELSIF p_doc_type = 'BR' THEN
533    l_event_name := 'oracle.apps.ar.transaction.BillsReceivables.incomplete';
534   END IF;
535 
536         --Get the item key
537    l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name,
538                                          p_customer_trx_id );
539 
540   IF (isRefreshProgramRunning)  THEN
541 
542          insert_events_hist (p_be_name => l_event_name,
543                              p_event_key => l_key,
544                              p_ps_id     => p_ps_id,
545                               p_ctx_id   => p_customer_trx_id,
546                               p_cr_id    => null,
547                               p_ra_id    => null,
548                               p_adj_id   => null,
549                               p_hist_id  => p_history_id,
550                               p_req_id   => null);
551   ELSE
552 
558                             'CUSTOMER_TRX_ID');
553     -- initialization of object variables
554     l_list := WF_PARAMETER_LIST_T();
555 
556      /* 9216062 - set org based on trx */
557      l_org_id := get_org_id(p_customer_trx_id,
559 
560      -- Add Context values to the list
561      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
562                                          p_org_id => l_org_id);
563 
564      -- add more parameters to the parameters list
565      wf_event.AddParameterToList(p_name => 'CUSTOMER_TRX_ID',
566                            p_value => p_customer_trx_id,
567                            p_parameterlist => l_list);
568 
569      wf_event.AddParameterToList(p_name => 'PAYMENT_SCHEDULE_ID',
570                            p_value => p_ps_id,
571                            p_parameterlist => l_list);
572 
573      wf_event.AddParameterToList(p_name => 'HISTORY_ID',
574                            p_value => p_history_id,
575                            p_parameterlist => l_list);
576     IF p_doc_type = 'CM'  THEN
577      l_cm_cl_trx_count := 0;
578      l_cm_op_trx_count := 0;
579      l_prev_trx_app_amt := 0;
580      l_past_due_inv_amt := 0;
581      l_past_due_inv_count := 0;
582 
583      FOR i in cm_prev_ctx(p_customer_trx_id) LOOP
584 
585       l_prev_trx_type := i.class;
586       l_prev_ctx_id  := i.previous_customer_trx_id;
587 
588       --check if the status of this PS has changed.
589       IF p_prev_cust_old_state(i.payment_schedule_id).status = 'OP' AND
590          i.status = 'CL'  THEN
591          l_cm_cl_trx_count := l_cm_cl_trx_count + 1;
592          l_prev_trx_app_amt := l_prev_trx_app_amt + nvl(i.amount_applied,0);
593 
594          IF i.due_date < sysdate and i.class = 'INV' THEN
595           l_past_due_inv_count := l_past_due_inv_count - 1;
596          END IF;
597       ELSIF p_prev_cust_old_state(i.payment_schedule_id).status = 'CL' AND
598          i.status = 'OP'  THEN
599          l_cm_op_trx_count := l_cm_op_trx_count + 1;
600          l_prev_trx_app_amt := l_prev_trx_app_amt - nvl(i.amount_applied,0);
601 
602          IF i.due_date < sysdate and i.class = 'INV' THEN
603           l_past_due_inv_count := l_past_due_inv_count + 1;
604          END IF;
605       END IF;
606 
607       IF i.due_date < sysdate and i.class = 'INV' THEN
608         l_past_due_inv_amt := l_past_due_inv_amt +
609           ( nvl(p_prev_cust_old_state(i.payment_schedule_id).amount_credited,0) -
610                                                  nvl(i.amount_credited,0));
611       END IF;
612 
613      END LOOP;
614 
615 
616      l_prev_trx_op_count := l_cm_op_trx_count - l_cm_cl_trx_count;
617 
618      -- add more parameters to the parameters list
619      wf_event.AddParameterToList(p_name => 'PREV_TRX_OP_COUNT',
620                            p_value => l_prev_trx_op_count,
621                            p_parameterlist => l_list);
622 
623      wf_event.AddParameterToList(p_name => 'PREV_TRX_APP_AMT',
624                            p_value => fnd_number.number_to_canonical(l_prev_trx_app_amt),
625                            p_parameterlist => l_list);
626 
627      wf_event.AddParameterToList(p_name => 'PAST_DUE_INV_AMT',
628                            p_value => fnd_number.number_to_canonical(l_past_due_inv_amt),
629                            p_parameterlist => l_list);
630 
631      wf_event.AddParameterToList(p_name => 'PAST_DUE_INV_COUNT',
632                            p_value => l_past_due_inv_count,
636                            p_value => l_prev_trx_type,
633                            p_parameterlist => l_list);
634 
635      wf_event.AddParameterToList(p_name => 'PREV_TRX_TYPE',
637                            p_parameterlist => l_list);
638 
639      wf_event.AddParameterToList(p_name => 'PREV_TRX_ID',
640                            p_value => l_prev_ctx_id,
641                            p_parameterlist => l_list);
642 
643     END IF;
644 
645 
646         -- Raise Event
647         AR_CMGT_EVENT_PKG.raise_event(
648             p_event_name        => l_event_name,
649             p_event_key         => l_key,
650             p_parameters        => l_list );
651 
652         l_list.DELETE;
653     END IF;
654 
655 EXCEPTION
656  WHEN others THEN
657   IF PG_DEBUG in ('Y', 'C') THEN
658    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
659   END IF;
660 
661 END Raise_Trx_Incomplete_Event;
662 
663 --
664 -- This has to be raised per payment_schedule_id modified
665 --
666 
667 PROCEDURE Raise_Trx_Modify_Event
668 ( p_payment_schedule_id  IN NUMBER,
669   p_doc_type  IN VARCHAR2,
670   p_history_id           IN NUMBER
671  ) IS
672     l_list                                  WF_PARAMETER_LIST_T;
673     l_param                                 WF_PARAMETER_T;
674     l_key                                   VARCHAR2(240);
675     l_exist                                 VARCHAR2(1);
676     l_event_name                            VARCHAR2(50);
677     l_org_id                                NUMBER;
678 BEGIN
679 
680   IF  p_doc_type = 'INV'  THEN
681    l_event_name := 'oracle.apps.ar.transaction.Invoice.modify';
682   ELSIF p_doc_type = 'CM'  THEN
683    l_event_name := 'oracle.apps.ar.transaction.CreditMemo.modify';
684   ELSIF p_doc_type = 'DM'  THEN
685    l_event_name := 'oracle.apps.ar.transaction.DebitMemo.modify';
686   ELSIF p_doc_type = 'DEP'  THEN
687    l_event_name := 'oracle.apps.ar.transaction.Deposit.modify';
688   ELSIF p_doc_type = 'CB'   THEN
689    l_event_name := 'oracle.apps.ar.transaction.ChargeBack.modify';
690   ELSIF p_doc_type = 'GUAR' THEN
691    l_event_name := 'oracle.apps.ar.transaction.Guarantee.modify';
692   END IF;
693 
694     --Get the item key
695      l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name,
696                                           p_payment_schedule_id );
697 
698   IF (isRefreshProgramRunning)  THEN
699 
700          insert_events_hist (p_be_name => l_event_name,
701                              p_event_key => l_key,
702                              p_ps_id     => p_payment_schedule_id,
703                               p_ctx_id   => null,
704                               p_cr_id    => null,
705                               p_ra_id    => null,
706                               p_adj_id   => null,
707                               p_hist_id  => p_history_id,
708                               p_req_id   => null);
709   ELSE
710 
711     -- initialization of object variables
712      l_list := WF_PARAMETER_LIST_T();
713 
714      /* 9216062 - set org based on trx */
715      l_org_id := get_org_id(p_payment_schedule_id,
719      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
716                             'PAYMENT_SCHEDULE_ID');
717 
718      -- Add Context values to the list
720                                          p_org_id => l_org_id);
721 
722      -- add more parameters to the parameters list
723      wf_event.AddParameterToList(p_name => 'PAYMENT_SCHEDULE_ID',
724                            p_value => p_payment_schedule_id,
725                            p_parameterlist => l_list);
726 
727      wf_event.AddParameterToList(p_name => 'HISTORY_ID',
728                            p_value => p_history_id,
729                            p_parameterlist => l_list);
730 
731         -- Raise Event
732         AR_CMGT_EVENT_PKG.raise_event(
733             p_event_name        => l_event_name,
734             p_event_key         => l_key,
735             p_parameters        => l_list );
736 
737         l_list.DELETE;
738    END IF;
739 
740 EXCEPTION
741  WHEN others THEN
742   IF PG_DEBUG in ('Y', 'C') THEN
743    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
744   END IF;
745 
746 END Raise_Trx_Modify_Event;
747 
748 PROCEDURE Raise_Rcpt_Creation_Event
749  ( p_payment_schedule_id  IN  NUMBER
750  ) IS
751     l_list                                  WF_PARAMETER_LIST_T;
752     l_param                                 WF_PARAMETER_T;
753     l_key                                   VARCHAR2(240);
754     l_exist                                 VARCHAR2(1);
758     l_org_id NUMBER;
755     l_event_name                            VARCHAR2(50) := 'oracle.apps.ar.receipts.CashReceipt.create';
756 
757     l_cust_account_id						ar_payment_schedules.customer_id%type;
759 
760     -- bug 3979914.
761     CURSOR getCustomerC IS
762     	SELECT nvl(customer_id, -99) cust_account_id
763     	FROM   ar_payment_schedules
764     	WHERE  payment_schedule_id = p_payment_schedule_id;
765 
766 BEGIN
767  IF PG_DEBUG in ('Y', 'C') THEN
768     arp_util.debug('Raise_Rcpt_Creation_Event (+)');
769  END IF;
770 
771     --Get the item key
772     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name ,
773                                          p_payment_schedule_id);
774   IF (isRefreshProgramRunning)  THEN
775 
776          insert_events_hist (p_be_name => l_event_name,
777                              p_event_key => l_key,
778                              p_ps_id     => p_payment_schedule_id,
779                               p_ctx_id   => null,
780                               p_cr_id    => null,
781                               p_ra_id    => null,
782                               p_adj_id   => null,
783                               p_hist_id  => null,
784                               p_req_id   => null);
785   ELSE
786 
787     -- initialization of object variables
788     l_list := WF_PARAMETER_LIST_T();
789 
790      /* 9216062 - set org based on trx */
791      l_org_id := get_org_id(p_payment_schedule_id,
792                             'PAYMENT_SCHEDULE_ID');
793 
794      -- Add Context values to the list
795      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
796                                          p_org_id => l_org_id);
797 
798      -- Get Customer Id
799      OPEN getCustomerC;
800      	FETCH getCustomerC INTO l_cust_account_id;
801 	 CLOSE getCustomerC;
802 	 -- add more parameters to the parameters list
803      wf_event.AddParameterToList(p_name => 'PAYMENT_SCHEDULE_ID',
804                            p_value => p_payment_schedule_id,
805                            p_parameterlist => l_list);
806 
807 	 wf_event.AddParameterToList(p_name => 'CUST_ACCOUNT_ID',
808                         	p_value => l_cust_account_id,
809                            	p_parameterlist => l_list);
810 
811         -- Raise Event
812         AR_CMGT_EVENT_PKG.raise_event(
813             p_event_name        => l_event_name,
814             p_event_key         => l_key,
815             p_parameters        => l_list );
816 
817         l_list.DELETE;
818    END IF;
819 IF PG_DEBUG in ('Y', 'C') THEN
820    arp_util.debug('Raise_Rcpt_Creation_Event (-)');
821 END IF;
822 
823 EXCEPTION
824  WHEN others THEN
825   IF PG_DEBUG in ('Y', 'C') THEN
826    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
827   END IF;
828 
829 END Raise_Rcpt_Creation_Event;
830 
831 PROCEDURE Raise_Rcpt_Modify_Event
832  ( p_cash_receipt_id  IN  NUMBER,
833    p_payment_schedule_id  IN  NUMBER,
834    p_history_id       IN NUMBER
835  )
836 IS
837     l_list                                  WF_PARAMETER_LIST_T;
838     l_param                                 WF_PARAMETER_T;
839     l_key                                   VARCHAR2(240);
840     l_exist                                 VARCHAR2(1);
841     l_event_name                            VARCHAR2(50)
842                                              := 'oracle.apps.ar.receipts.CashReceipt.modify';
843     l_org_id                                NUMBER;
844 
845 BEGIN
846 
847     --Get the item key
848     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name,
849                                          p_payment_schedule_id );
850 
851   IF (isRefreshProgramRunning)  THEN
852 
853          insert_events_hist (p_be_name => l_event_name,
854                              p_event_key => l_key,
855                              p_ps_id     => p_payment_schedule_id,
856                               p_ctx_id   => null,
857                               p_cr_id    => p_cash_receipt_id,
858                               p_ra_id    => null,
859                               p_adj_id   => null,
860                               p_hist_id  => p_history_id,
861                               p_req_id   => null);
862   ELSE
863 
864     -- initialization of object variables
865     l_list := WF_PARAMETER_LIST_T();
866 
867      /* 9216062 - set org based on trx */
868      l_org_id := get_org_id(p_cash_receipt_id,
869                             'CASH_RECEIPT_ID');
870 
871      -- Add Context values to the list
872      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
873                                          p_org_id => l_org_id);
874 
875      -- add more parameters to the parameters list
876      wf_event.AddParameterToList(p_name => 'PAYMENT_SCHEDULE_ID',
877                            p_value => p_payment_schedule_id,
878                            p_parameterlist => l_list);
879 
880      wf_event.AddParameterToList(p_name => 'CASH_RECEIPT_ID',
881                            p_value => p_cash_receipt_id,
882                            p_parameterlist => l_list);
883 
887 
884      wf_event.AddParameterToList(p_name => 'HISTORY_ID',
885                            p_value => p_history_id,
886                            p_parameterlist => l_list);
888         -- Raise Event
889         AR_CMGT_EVENT_PKG.raise_event(
890             p_event_name        => l_event_name,
891             p_event_key         => l_key,
892             p_parameters        => l_list );
893 
894         l_list.DELETE;
895   END IF;
896 
897 EXCEPTION
898  WHEN others THEN
899   IF PG_DEBUG in ('Y', 'C') THEN
900    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
901   END IF;
902 
903 END Raise_Rcpt_Modify_Event;
904 
905 PROCEDURE Raise_Rcpt_Reverse_Event
906  (p_cash_receipt_id  IN  NUMBER,
907   p_payment_schedule_id  IN  NUMBER,
908   p_history_id       IN NUMBER
909  )
910 IS
911     l_list                                  WF_PARAMETER_LIST_T;
912     l_param                                 WF_PARAMETER_T;
913     l_key                                   VARCHAR2(240);
914     l_exist                                 VARCHAR2(1);
915     l_event_name                            VARCHAR2(50)
916                                              := 'oracle.apps.ar.receipts.CashReceipt.reverse';
917 
918     l_org_id                                NUMBER;
919 BEGIN
920 
921     --Get the item key
922     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name,
923                                          p_payment_schedule_id );
924 
925   IF (isRefreshProgramRunning)  THEN
926 
927          insert_events_hist (p_be_name => l_event_name,
928                              p_event_key => l_key,
929                              p_ps_id     => p_payment_schedule_id,
930                               p_ctx_id   => null,
931                               p_cr_id    => p_cash_receipt_id,
932                               p_ra_id    => null,
933                               p_adj_id   => null,
934                               p_hist_id  => p_history_id,
935                               p_req_id   => null);
936   ELSE
937 
938     -- initialization of object variables
939     l_list := WF_PARAMETER_LIST_T();
940 
941      /* 9216062 - set org based on trx */
942      l_org_id := get_org_id(p_cash_receipt_id,
943                             'CASH_RECEIPT_ID');
944 
945      -- Add Context values to the list
946      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
947                                          p_org_id => l_org_id);
948 
949      -- add more parameters to the parameters list
950      wf_event.AddParameterToList(p_name => 'PAYMENT_SCHEDULE_ID',
951                            p_value => p_payment_schedule_id,
952                            p_parameterlist => l_list);
953 
954      wf_event.AddParameterToList(p_name => 'CASH_RECEIPT_ID',
955                            p_value => p_cash_receipt_id,
956                            p_parameterlist => l_list);
957 
958      wf_event.AddParameterToList(p_name => 'HISTORY_ID',
959                            p_value => p_history_id,
960                            p_parameterlist => l_list);
961 
962         -- Raise Event
963         AR_CMGT_EVENT_PKG.raise_event(
964             p_event_name        => l_event_name,
965             p_event_key         => l_key,
966             p_parameters        => l_list );
967 
968         l_list.DELETE;
969   END IF;
970 
971 EXCEPTION
972  WHEN others THEN
973   IF PG_DEBUG in ('Y', 'C') THEN
974    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
975   END IF;
976 
977 END Raise_Rcpt_Reverse_Event;
978 
979 PROCEDURE Raise_Rcpt_DMReverse_Event
980  (p_cash_receipt_id  IN  NUMBER,
981   p_payment_schedule_id  IN  NUMBER,
982   p_history_id       IN NUMBER
983  )
984 IS
985     l_list                                  WF_PARAMETER_LIST_T;
986     l_param                                 WF_PARAMETER_T;
987     l_key                                   VARCHAR2(240);
988     l_exist                                 VARCHAR2(1);
989     l_event_name                            VARCHAR2(100)
990                                              := 'oracle.apps.ar.receipts.CashReceipt.DebitMemoReverse';
991 
992     l_org_id                                NUMBER;
993 BEGIN
994 
995     --Get the item key
996     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name,
997                                          p_payment_schedule_id );
998 
999   IF (isRefreshProgramRunning)  THEN
1000 
1001          insert_events_hist (p_be_name => l_event_name,
1002                              p_event_key => l_key,
1003                              p_ps_id     => p_payment_schedule_id,
1004                               p_ctx_id   => null,
1005                               p_cr_id    => p_cash_receipt_id,
1006                               p_ra_id    => null,
1007                               p_adj_id   => null,
1008                               p_hist_id  => p_history_id,
1009                               p_req_id   => null);
1010   ELSE
1011 
1012     -- initialization of object variables
1013     l_list := WF_PARAMETER_LIST_T();
1017                             'CASH_RECEIPT_ID');
1014 
1015      /* 9216062 - set org based on trx */
1016      l_org_id := get_org_id(p_cash_receipt_id,
1018 
1019      -- Add Context values to the list
1020      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1021                                          p_org_id => l_org_id);
1022 
1023      -- add more parameters to the parameters list
1024      wf_event.AddParameterToList(p_name => 'PAYMENT_SCHEDULE_ID',
1025                            p_value => p_payment_schedule_id,
1026                            p_parameterlist => l_list);
1027 
1028      wf_event.AddParameterToList(p_name => 'CASH_RECEIPT_ID',
1029                            p_value => p_cash_receipt_id,
1030                            p_parameterlist => l_list);
1031 
1032      wf_event.AddParameterToList(p_name => 'HISTORY_ID',
1033                            p_value => p_history_id,
1034                            p_parameterlist => l_list);
1035 
1036         -- Raise Event
1037         AR_CMGT_EVENT_PKG.raise_event(
1038             p_event_name        => l_event_name,
1039             p_event_key         => l_key,
1040             p_parameters        => l_list );
1041 
1042         l_list.DELETE;
1043    END IF;
1044 
1045 EXCEPTION
1046  WHEN others THEN
1047   IF PG_DEBUG in ('Y', 'C') THEN
1048    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1049   END IF;
1050 
1051 END Raise_Rcpt_DMReverse_Event;
1052 
1053 PROCEDURE Raise_Rcpt_Confirm_Event
1054  ( p_rec_appln_id  IN  NUMBER,
1055    p_cash_receipt_id  IN  NUMBER)
1056 IS
1057 
1058 BEGIN
1059 
1060 null;
1061 END Raise_Rcpt_Confirm_Event;
1062 
1063 PROCEDURE Raise_Rcpt_UnConfirm_Event
1064  ( p_rec_appln_id  IN  NUMBER,
1065    p_cash_receipt_id  IN  NUMBER)
1066 IS
1067 
1068 BEGIN
1069 
1070 null;
1071 END Raise_Rcpt_UnConfirm_Event;
1072 
1073 PROCEDURE Raise_CR_Apply_Event
1074  (p_receivable_application_id  IN NUMBER --pass in the rec_app_id of the APP rec
1075  ) IS
1076     l_list                                  WF_PARAMETER_LIST_T;
1077     l_param                                 WF_PARAMETER_T;
1078     l_key                                   VARCHAR2(240);
1079     l_exist                                 VARCHAR2(1);
1080     l_event_name                            VARCHAR2(50)
1081                                              := 'oracle.apps.ar.applications.CashApp.apply';
1082  CURSOR get_ps_status(ra_id IN NUMBER) IS
1083  select inv_ps.status  trx_ps_status,
1084         rcpt_ps.status rcpt_ps_status,
1085         to_char(inv_ps.due_date , 'J') due_date,
1086         inv_ps.amount_applied
1087  from ar_receivable_applications ra,
1088       ar_payment_schedules inv_ps,
1089       ar_payment_schedules rcpt_ps
1090  where ra.receivable_application_id = ra_id
1091   and  ra.applied_payment_schedule_id = inv_ps.payment_schedule_id
1092   and  ra.payment_schedule_id = rcpt_ps.payment_schedule_id;
1093  l_trx_ps_status   VARCHAR2(10);
1094  l_rcpt_ps_status  VARCHAR2(10);
1095  l_due_date        VARCHAR2(20);
1096  l_trx_amt_applied NUMBER;
1097  l_org_id          NUMBER;
1098 
1099 BEGIN
1100 
1101     --Get the item key
1102     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name,
1103                                          p_receivable_application_id );
1104 
1105   IF (isRefreshProgramRunning)  THEN
1106 
1107          insert_events_hist (p_be_name => l_event_name,
1108                              p_event_key => l_key,
1109                              p_ps_id     => null,
1110                               p_ctx_id   => null,
1111                               p_cr_id    => null,
1112                               p_ra_id    => p_receivable_application_id,
1113                               p_adj_id   => null,
1114                               p_hist_id  => null,
1115                               p_req_id   => null);
1116   ELSE
1117     OPEN get_ps_status(p_receivable_application_id);
1118      FETCH get_ps_status INTO l_trx_ps_status, l_rcpt_ps_status, l_due_date,
1119                                l_trx_amt_applied;
1120     CLOSE get_ps_status;
1121 
1122     -- initialization of object variables
1123     l_list := WF_PARAMETER_LIST_T();
1124 
1125      /* 9216062 - set org based on trx */
1126      l_org_id := get_org_id(p_receivable_application_id,
1130      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1127                             'RECEIVABLE_APPLICATION_ID');
1128 
1129      -- Add Context values to the list
1131                                          p_org_id => l_org_id);
1132 
1133      -- add more parameters to the parameters list
1134      wf_event.AddParameterToList(p_name => 'RECEIVABLE_APPLICATION_ID',
1135                            p_value => p_receivable_application_id,
1136                            p_parameterlist => l_list);
1137      wf_event.AddParameterToList(p_name => 'TRX_PS_STATUS',
1138                            p_value => l_trx_ps_status,
1139                            p_parameterlist => l_list);
1140      wf_event.AddParameterToList(p_name => 'RCPT_PS_STATUS',
1141                            p_value => l_rcpt_ps_status,
1142                            p_parameterlist => l_list);
1143      wf_event.AddParameterToList(p_name => 'TRX_DUE_DATE',
1144                            p_value => l_due_date,
1145                            p_parameterlist => l_list);
1146      wf_event.AddParameterToList(p_name => 'TRX_APP_AMT',
1147                            p_value => fnd_number.number_to_canonical(l_trx_amt_applied),
1148                            p_parameterlist => l_list);
1149 
1150 
1151         -- Raise Event
1152         AR_CMGT_EVENT_PKG.raise_event(
1153             p_event_name        => l_event_name,
1154             p_event_key         => l_key,
1155             p_parameters        => l_list );
1156 
1157         l_list.DELETE;
1158   END IF;
1159 
1160 EXCEPTION
1161  WHEN others THEN
1162   IF PG_DEBUG in ('Y', 'C') THEN
1163    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1164   END IF;
1165 
1166 END Raise_CR_Apply_Event;
1167 
1168 PROCEDURE Raise_CR_UnApply_Event
1169  (p_receivable_application_id  IN NUMBER --pass in the rec_app_id of the APP rec
1170  ) IS
1171     l_list                                  WF_PARAMETER_LIST_T;
1172     l_param                                 WF_PARAMETER_T;
1173     l_key                                   VARCHAR2(240);
1174     l_exist                                 VARCHAR2(1);
1175     l_event_name                            VARCHAR2(50)
1176                                           := 'oracle.apps.ar.applications.CashApp.unapply';
1177  CURSOR get_ps_status(ra_id IN NUMBER) IS
1178  select inv_ps.status  trx_ps_status,
1179         rcpt_ps.status rcpt_ps_status,
1180         to_char(inv_ps.due_date , 'J') due_date,
1181         inv_ps.amount_applied,
1182         ra.amount_applied,
1183         ra.amount_applied_from,
1184         inv_ps.amount_due_remaining,
1185         ra.earned_discount_taken,
1186         ra.unearned_discount_taken
1187  from ar_receivable_applications ra,
1188       ar_payment_schedules inv_ps,
1189       ar_payment_schedules rcpt_ps
1190  where ra.receivable_application_id = ra_id
1191   and  ra.applied_payment_schedule_id = inv_ps.payment_schedule_id
1192   and  ra.payment_schedule_id = rcpt_ps.payment_schedule_id;
1193  l_old_trx_ps_status   VARCHAR2(10);
1194  l_new_trx_ps_status   VARCHAR2(10);
1195  l_old_rcpt_ps_status  VARCHAR2(10);
1196  l_new_rcpt_ps_status  VARCHAR2(10);
1197  l_due_date              VARCHAR2(20);
1198  l_trx_amt_applied       NUMBER;
1199  l_trx_adr               NUMBER;
1200  l_rcpt_adr              NUMBER;
1201  l_amount_applied           NUMBER;
1202  l_amount_applied_from   NUMBER;
1203  l_earned_discount_taken  NUMBER;
1204  l_unearned_discount_taken  NUMBER;
1205  l_tot_amt_applied          NUMBER;
1206  l_org_id                   NUMBER;
1207 BEGIN
1208  IF PG_DEBUG in ('Y', 'C') THEN
1209     arp_standard.debug('Raise_CR_UnApply_Event(+)');
1210  END IF;
1211     --Get the item key
1212     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name,
1213                                          p_receivable_application_id );
1214 
1215   IF (isRefreshProgramRunning)  THEN
1216 
1217          insert_events_hist (p_be_name   => l_event_name,
1218                              p_event_key => l_key,
1219                              p_ps_id     => null,
1220                              p_ctx_id   => null,
1221                              p_cr_id    => null,
1222                              p_ra_id    => p_receivable_application_id,
1223                              p_adj_id   => null,
1224                              p_hist_id  => null,
1225                              p_req_id   => null);
1226   ELSE
1227     OPEN get_ps_status(p_receivable_application_id);
1228      FETCH get_ps_status INTO l_new_trx_ps_status, l_new_rcpt_ps_status, l_due_date,
1229                               l_tot_amt_applied, l_amount_applied, l_amount_applied_from,l_trx_adr,
1230                               l_earned_discount_taken, l_unearned_discount_taken;
1231 
1232 
1233    /* If  the amount applied and the discounts on the application
1234       that is being reversed adds up to the new amount_due_remaining
1235       on the trx payment schedule that means that the trx PS was
1236       closed prior to the application reversal.
1237 
1238      The idea here is to capure the trx PS status prior to the unapply
1239      and pass that to the business event as parameter.
1240    */
1241     IF l_new_trx_ps_status = 'OP' THEN
1242       IF ( nvl(l_trx_adr,0) +
1243              (  nvl(l_amount_applied,0)
1244               + nvl(l_earned_discount_taken,0)
1245               + nvl(l_unearned_discount_taken,0)
1246               )
1247         ) = 0  THEN
1248         l_old_trx_ps_status := 'CL';
1249 
1250       ELSE
1251         l_old_trx_ps_status := 'OP';
1252       END IF;
1253     ELSIF l_new_trx_ps_status = 'CL'  THEN
1254       l_old_trx_ps_status := 'OP';
1255     END IF;
1256 
1257     IF l_new_rcpt_ps_status = 'OP'
1258      THEN
1259        IF( nvl(l_rcpt_adr,0) +
1260               nvl(l_amount_applied_from,l_amount_applied)
1264          l_old_rcpt_ps_status := 'OP';
1261           ) = 0  THEN
1262          l_old_rcpt_ps_status := 'CL';
1263        ELSE
1265        END IF;
1266     ELSIF l_new_rcpt_ps_status = 'CL'  THEN
1267       l_old_rcpt_ps_status := 'OP';
1268     END IF;
1269 
1270     CLOSE get_ps_status;
1271 
1272     -- initialization of object variables
1273     l_list := WF_PARAMETER_LIST_T();
1274 
1275      /* 9216062 - set org based on trx */
1276      l_org_id := get_org_id(p_receivable_application_id,
1277                             'RECEIVABLE_APPLICATION_ID');
1278 
1279      -- Add Context values to the list
1280      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1281                                          p_org_id => l_org_id);
1282 
1283      -- add more parameters to the parameters list
1284      wf_event.AddParameterToList(p_name => 'RECEIVABLE_APPLICATION_ID',
1285                            p_value => p_receivable_application_id,
1286                            p_parameterlist => l_list);
1287      wf_event.AddParameterToList(p_name => 'OLD_TRX_PS_STATUS',
1288                            p_value => l_old_trx_ps_status,
1289                            p_parameterlist => l_list);
1290      wf_event.AddParameterToList(p_name => 'NEW_TRX_PS_STATUS',
1291                            p_value => l_new_trx_ps_status,
1292                            p_parameterlist => l_list);
1293      wf_event.AddParameterToList(p_name => 'OLD_RCPT_PS_STATUS',
1294                            p_value => l_old_rcpt_ps_status,
1295                            p_parameterlist => l_list);
1296      wf_event.AddParameterToList(p_name => 'NEW_RCPT_PS_STATUS',
1297                            p_value => l_new_rcpt_ps_status,
1298                            p_parameterlist => l_list);
1299      wf_event.AddParameterToList(p_name => 'TRX_DUE_DATE',
1300                            p_value => l_due_date,
1301                            p_parameterlist => l_list);
1302      wf_event.AddParameterToList(p_name => 'TRX_APP_AMT',
1303                            p_value =>fnd_number.number_to_canonical(l_tot_amt_applied),
1304                            p_parameterlist => l_list);
1305      wf_event.AddParameterToList(p_name => 'AMT_DUE_REMAINING',
1306                            p_value =>fnd_number.number_to_canonical(l_trx_adr),
1307                            p_parameterlist => l_list);
1308      wf_event.AddParameterToList(p_name => 'OLD_AMT_DUE_REMAINING',
1309                            p_value => fnd_number.number_to_canonical( nvl(l_trx_adr,0) +
1310                                          (  nvl(l_amount_applied,0)
1311                                           + nvl(l_earned_discount_taken,0)
1312                                           + nvl(l_unearned_discount_taken,0)
1313                                           )),
1314                            p_parameterlist => l_list);
1315 
1316 
1317         -- Raise Event
1318         AR_CMGT_EVENT_PKG.raise_event(
1319             p_event_name        => l_event_name,
1320             p_event_key         => l_key,
1321             p_parameters        => l_list );
1322 
1323         l_list.DELETE;
1324   END IF;
1325 
1326    IF PG_DEBUG in ('Y', 'C') THEN
1327       arp_standard.debug('Raise_CR_UnApply_Event(-)');
1328    END IF;
1329 
1330 EXCEPTION
1331  WHEN others THEN
1332   IF PG_DEBUG in ('Y', 'C') THEN
1333    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1334   END IF;
1335 
1336 END Raise_CR_UnApply_Event;
1337 
1338 PROCEDURE Raise_CM_Apply_Event
1339  (p_receivable_application_id  IN NUMBER ,--pass in the rec_app_id of the APP rec
1340   p_app_ps_status   IN VARCHAR2  DEFAULT NULL
1341  ) IS
1342     l_list                                  WF_PARAMETER_LIST_T;
1343     l_param                                 WF_PARAMETER_T;
1344     l_key                                   VARCHAR2(240);
1345     l_exist                                 VARCHAR2(1);
1346     l_event_name                            VARCHAR2(50)
1347                                              := 'oracle.apps.ar.applications.CreditMemoApp.apply';
1348  CURSOR get_ps_status(ra_id IN NUMBER) IS
1349  select inv_ps.status  trx_ps_status,
1350         cm_ps.status cm_ps_status,
1351         to_char(inv_ps.due_date , 'J') due_date,
1352         inv_ps.amount_applied
1353  from ar_receivable_applications ra,
1354       ar_payment_schedules inv_ps,
1355       ar_payment_schedules cm_ps
1356  where ra.receivable_application_id = ra_id
1357   and  ra.applied_payment_schedule_id = inv_ps.payment_schedule_id
1358   and  ra.payment_schedule_id = cm_ps.payment_schedule_id;
1359 
1360  l_trx_ps_status   VARCHAR2(10);
1361  l_cm_ps_status  VARCHAR2(10);
1362  l_due_date        VARCHAR2(20);
1363  l_trx_amt_applied NUMBER;
1364  l_org_id          NUMBER;
1365 BEGIN
1366 
1367     --Get the item key
1368     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name ,
1369                                          p_receivable_application_id);
1370 
1371   IF (isRefreshProgramRunning)  THEN
1372 
1373          insert_events_hist (p_be_name => l_event_name,
1374                              p_event_key => l_key,
1375                              p_ps_id     => null,
1376                               p_ctx_id   => null,
1377                               p_cr_id    => null,
1378                               p_ra_id    => p_receivable_application_id,
1379                               p_adj_id   => null,
1380                               p_hist_id  => null,
1381                               p_req_id   => null);
1382   ELSE
1383 
1384     OPEN get_ps_status(p_receivable_application_id);
1385      FETCH get_ps_status INTO l_trx_ps_status, l_cm_ps_status, l_due_date,
1386                                l_trx_amt_applied;
1387     CLOSE get_ps_status;
1391 
1388 
1389     -- initialization of object variables
1390     l_list := WF_PARAMETER_LIST_T();
1392      /* 9216062 - set org based on trx */
1393      l_org_id := get_org_id(p_receivable_application_id,
1394                             'RECEIVABLE_APPLICATION_ID');
1395 
1396      -- Add Context values to the list
1397      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1398                                          p_org_id => l_org_id);
1399 
1400      -- add more parameters to the parameters list
1401      wf_event.AddParameterToList(p_name => 'RECEIVABLE_APPLICATION_ID',
1402                            p_value => p_receivable_application_id,
1403                            p_parameterlist => l_list);
1404      wf_event.AddParameterToList(p_name => 'TRX_PS_STATUS',
1405                            p_value => l_trx_ps_status,
1406                            p_parameterlist => l_list);
1407      wf_event.AddParameterToList(p_name => 'CM_PS_STATUS',
1408                            p_value => l_cm_ps_status,
1409                            p_parameterlist => l_list);
1410      wf_event.AddParameterToList(p_name => 'TRX_DUE_DATE',
1411                            p_value => l_due_date,
1412                            p_parameterlist => l_list);
1413      wf_event.AddParameterToList(p_name => 'TRX_APP_AMT',
1414                            p_value => fnd_number.number_to_canonical(l_trx_amt_applied),
1415                            p_parameterlist => l_list);
1416 
1417         -- Raise Event
1418         AR_CMGT_EVENT_PKG.raise_event(
1419             p_event_name        => l_event_name,
1420             p_event_key         => l_key,
1421             p_parameters        => l_list );
1422 
1423         l_list.DELETE;
1424   END IF;
1425 
1426 EXCEPTION
1427  WHEN others THEN
1428   IF PG_DEBUG in ('Y', 'C') THEN
1429    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1430   END IF;
1431 
1432 END Raise_CM_Apply_Event;
1433 
1434 PROCEDURE Raise_CM_UnApply_Event
1435  (p_receivable_application_id  IN NUMBER --pass in the rec_app_id of the APP rec
1436  ) IS
1437     l_list                                  WF_PARAMETER_LIST_T;
1438     l_param                                 WF_PARAMETER_T;
1439     l_key                                   VARCHAR2(240);
1440     l_exist                                 VARCHAR2(1);
1441     l_event_name                            VARCHAR2(50)
1442                                              := 'oracle.apps.ar.applications.CreditMemoApp.unapply';
1443  CURSOR get_ps_status(ra_id IN NUMBER) IS
1444  select inv_ps.status  trx_ps_status,
1445         cm_ps.status cm_ps_status,
1446         to_char(inv_ps.due_date , 'J') due_date,
1447         inv_ps.amount_applied
1448  from ar_receivable_applications ra,
1449       ar_payment_schedules inv_ps,
1450       ar_payment_schedules cm_ps
1451  where ra.receivable_application_id = ra_id
1452   and  ra.applied_payment_schedule_id = inv_ps.payment_schedule_id
1453   and  ra.payment_schedule_id = cm_ps.payment_schedule_id;
1454 
1455  l_trx_ps_status   VARCHAR2(10);
1456  l_cm_ps_status  VARCHAR2(10);
1457  l_due_date        VARCHAR2(20);
1458  l_trx_amt_applied NUMBER;
1459  l_org_id          NUMBER;
1460 BEGIN
1461 
1462     --Get the item key
1463     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name ,
1464                                          p_receivable_application_id);
1465 
1466   IF (isRefreshProgramRunning)  THEN
1467 
1468          insert_events_hist (p_be_name => l_event_name,
1469                              p_event_key => l_key,
1470                              p_ps_id     => null,
1471                               p_ctx_id   => null,
1472                               p_cr_id    => null,
1473                               p_ra_id    => p_receivable_application_id,
1474                               p_adj_id   => null,
1475                               p_hist_id  => null,
1476                               p_req_id   => null);
1477   ELSE
1478 
1479     OPEN get_ps_status(p_receivable_application_id);
1480      FETCH get_ps_status INTO l_trx_ps_status, l_cm_ps_status, l_due_date,
1481                                l_trx_amt_applied;
1482     CLOSE get_ps_status;
1483 
1484     -- initialization of object variables
1485     l_list := WF_PARAMETER_LIST_T();
1486 
1487      /* 9216062 - set org based on trx */
1488      l_org_id := get_org_id(p_receivable_application_id,
1489                             'RECEIVABLE_APPLICATION_ID');
1490 
1491      -- Add Context values to the list
1492      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1493                                          p_org_id => l_org_id);
1494 
1495      -- add more parameters to the parameters list
1496      wf_event.AddParameterToList(p_name => 'RECEIVABLE_APPLICATION_ID',
1497                            p_value => p_receivable_application_id,
1498                            p_parameterlist => l_list);
1499      wf_event.AddParameterToList(p_name => 'TRX_PS_STATUS',
1500                            p_value => l_trx_ps_status,
1501                            p_parameterlist => l_list);
1502      wf_event.AddParameterToList(p_name => 'CM_PS_STATUS',
1503                            p_value => l_cm_ps_status,
1504                            p_parameterlist => l_list);
1505      wf_event.AddParameterToList(p_name => 'TRX_DUE_DATE',
1506                            p_value => l_due_date,
1507                            p_parameterlist => l_list);
1508      wf_event.AddParameterToList(p_name => 'TRX_APP_AMT',
1509                            p_value => fnd_number.number_to_canonical(l_trx_amt_applied),
1510                            p_parameterlist => l_list);
1511 
1512         -- Raise Event
1516             p_parameters        => l_list );
1513         AR_CMGT_EVENT_PKG.raise_event(
1514             p_event_name        => l_event_name,
1515             p_event_key         => l_key,
1517 
1518         l_list.DELETE;
1519   END IF;
1520 
1521 EXCEPTION
1522  WHEN others THEN
1523   IF PG_DEBUG in ('Y', 'C') THEN
1524    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1525   END IF;
1526 
1527 END Raise_CM_UnApply_Event;
1528 
1529 PROCEDURE Raise_Adj_Create_Event
1530  (p_adjustment_id  IN NUMBER,
1531   p_app_ps_status  IN VARCHAR2 DEFAULT NULL,
1532   p_adj_status   IN VARCHAR2 DEFAULT NULL)
1533 IS
1534     l_list                                  WF_PARAMETER_LIST_T;
1535     l_param                                 WF_PARAMETER_T;
1536     l_key                                   VARCHAR2(240);
1537     l_exist                                 VARCHAR2(1);
1538     l_event_name                            VARCHAR2(50)
1539                                              := 'oracle.apps.ar.adjustments.Adjustment.create';
1540     l_org_id                                NUMBER;
1541 BEGIN
1542 
1543     --Get the item key
1544     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name ,
1545                                          p_adjustment_id);
1546 
1547   IF (isRefreshProgramRunning)  THEN
1548 
1549          insert_events_hist (p_be_name => l_event_name,
1550                              p_event_key => l_key,
1551                              p_ps_id     => null,
1552                               p_ctx_id   => null,
1553                               p_cr_id    => null,
1554                               p_ra_id    => null,
1555                               p_adj_id   => p_adjustment_id,
1556                               p_hist_id  => null,
1557                               p_req_id   => null);
1558   ELSE
1559 
1560     -- initialization of object variables
1561     l_list := WF_PARAMETER_LIST_T();
1562 
1563      /* 9216062 - set org based on trx */
1564      l_org_id := get_org_id(p_adjustment_id,
1565                             'ADJUSTMENT_ID');
1566 
1567      -- Add Context values to the list
1568      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1569                                          p_org_id => l_org_id);
1570 
1571      -- add more parameters to the parameters list
1572      wf_event.AddParameterToList(p_name => 'ADJUSTMENT_ID',
1573                            p_value => p_adjustment_id,
1574                            p_parameterlist => l_list);
1575      wf_event.AddParameterToList(p_name => 'APPLIED_PS_STATUS',
1576                            p_value => p_app_ps_status,
1577                            p_parameterlist => l_list);
1578 
1579      wf_event.AddParameterToList(p_name => 'ADJ_STATUS',
1580                            p_value => p_adj_status,
1581                            p_parameterlist => l_list);
1582 
1583 
1584         -- Raise Event
1585        AR_CMGT_EVENT_PKG.raise_event(
1586             p_event_name        => l_event_name,
1587             p_event_key         => l_key,
1588             p_parameters        => l_list );
1589 
1590         l_list.DELETE;
1591   END IF;
1592 
1593 EXCEPTION
1594  WHEN others THEN
1595   IF PG_DEBUG in ('Y', 'C') THEN
1596    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1597   END IF;
1598 
1599 END Raise_Adj_Create_Event;
1600 
1601 PROCEDURE Raise_Adj_Approve_Event
1602  (p_adjustment_id IN NUMBER,
1603   p_approval_actn_hist_id IN NUMBER,
1604   p_app_ps_status IN VARCHAR2 DEFAULT NULL)
1605 IS
1606     l_list                                  WF_PARAMETER_LIST_T;
1607     l_param                                 WF_PARAMETER_T;
1608     l_key                                   VARCHAR2(240);
1609     l_exist                                 VARCHAR2(1);
1610     l_event_name                            VARCHAR2(50)
1611                                              := 'oracle.apps.ar.adjustments.Adjustment.approve';
1612     l_org_id                                NUMBER;
1613 BEGIN
1614 
1615     --Get the item key
1616     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name ,
1617                                          p_adjustment_id);
1618   IF (isRefreshProgramRunning)  THEN
1619 
1620          insert_events_hist (p_be_name => l_event_name,
1621                              p_event_key => l_key,
1622                              p_ps_id     => null,
1623                               p_ctx_id   => null,
1624                               p_cr_id    => null,
1625                               p_ra_id    => null,
1626                               p_adj_id   => p_adjustment_id,
1627                               p_hist_id  => p_approval_actn_hist_id,
1628                               p_req_id   => null);
1629   ELSE
1630 
1631     -- initialization of object variables
1632     l_list := WF_PARAMETER_LIST_T();
1633 
1634      /* 9216062 - set org based on trx */
1635      l_org_id := get_org_id(p_adjustment_id,
1636                             'ADJUSTMENT_ID');
1637 
1638      -- Add Context values to the list
1639      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1640                                          p_org_id => l_org_id);
1641 
1642      -- add more parameters to the parameters list
1643      wf_event.AddParameterToList(p_name => 'ADJUSTMENT_ID',
1644                            p_value => p_adjustment_id,
1645                            p_parameterlist => l_list);
1646 
1647      wf_event.AddParameterToList(p_name => 'APPROVAL_ACTN_HIST_ID',
1648                            p_value => p_approval_actn_hist_id,
1649                            p_parameterlist => l_list);
1650      wf_event.AddParameterToList(p_name => 'APPLIED_PS_STATUS',
1651                            p_value => p_app_ps_status,
1655        AR_CMGT_EVENT_PKG.raise_event(
1652                            p_parameterlist => l_list);
1653 
1654         -- Raise Event
1656             p_event_name        => l_event_name,
1657             p_event_key         => l_key,
1658             p_parameters        => l_list );
1659 
1660         l_list.DELETE;
1661   END IF;
1662 
1663 EXCEPTION
1664  WHEN others THEN
1665   IF PG_DEBUG in ('Y', 'C') THEN
1666    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1667   END IF;
1668 
1669 END Raise_Adj_Approve_Event;
1670 
1671 PROCEDURE Raise_AutoInv_Run_Event
1672          ( p_request_id IN   NUMBER)
1673 IS
1674     l_list           WF_PARAMETER_LIST_T;
1675     l_param          WF_PARAMETER_T;
1676     l_key            VARCHAR2(240);
1677     l_exist          VARCHAR2(1);
1678     l_event_name     VARCHAR2(50) := 'oracle.apps.ar.batch.AutoInvoice.run';
1679     l_org_id         NUMBER;
1680 BEGIN
1681 
1682    --Get the item key
1683    l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name ,
1684                                         p_request_id);
1685   IF (isRefreshProgramRunning)  THEN
1686 
1687          insert_events_hist (p_be_name => l_event_name,
1688                              p_event_key => l_key,
1689                              p_ps_id     => null,
1690                               p_ctx_id   => null,
1691                               p_cr_id    => null,
1692                               p_ra_id    => null,
1693                               p_adj_id   => null,
1694                               p_hist_id  => null,
1695                               p_req_id   => p_request_id);
1696   ELSE
1697 
1698     -- initialization of object variables
1699     l_list := WF_PARAMETER_LIST_T();
1700 
1701      /* 9216062 - set org based on trx */
1702      l_org_id := get_org_id(p_request_id,
1703                             'REQUEST_ID',
1704                             'INVOICES');
1705 
1706      -- Add Context values to the list
1707      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1708                                          p_org_id => l_org_id);
1709 
1710      -- add more parameters to the parameters list
1711      wf_event.AddParameterToList(p_name => 'REQUEST_ID',
1712                            p_value => p_request_id,
1713                            p_parameterlist => l_list);
1714 
1715         -- Raise Event
1716         AR_CMGT_EVENT_PKG.raise_event(
1717             p_event_name        => l_event_name,
1718             p_event_key         => l_key,
1719             p_parameters        => l_list );
1720       l_list.DELETE;
1721   END IF;
1722 
1723 EXCEPTION
1724  WHEN others THEN
1725   IF PG_DEBUG in ('Y', 'C') THEN
1726    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1727   END IF;
1728 
1729 END Raise_AutoInv_Run_Event;
1730 
1731 PROCEDURE Raise_AutoRec_Run_Event
1732  ( p_request_id  IN  NUMBER,
1733    p_req_confirmation IN VARCHAR2)
1734 IS
1735     l_list           WF_PARAMETER_LIST_T;
1736     l_param          WF_PARAMETER_T;
1737     l_key            VARCHAR2(240);
1738     l_exist          VARCHAR2(1);
1739     l_event_name     VARCHAR2(50) := 'oracle.apps.ar.batch.AutoReceipts.run';
1740     l_org_id         NUMBER;
1741 BEGIN
1742 
1743  --We raise the bisiness event only in case the confirmation is
1744  --not required for the batch. In this case the PS of the receipt would
1745  --get created and the PS of the invoice would get updated upon the
1746  --Auto Receipt Run with approval.
1747   IF p_req_confirmation = 'Y'  THEN
1748    --Get the item key
1749    l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name,
1750                                         p_request_id );
1751 
1752   IF (isRefreshProgramRunning)  THEN
1753 
1754          insert_events_hist (p_be_name => l_event_name,
1755                              p_event_key=> l_key,
1756                              p_ps_id    => null,
1757                              p_ctx_id   => null,
1758                              p_cr_id    => null,
1759                              p_ra_id    => null,
1760                              p_adj_id   => null,
1761                              p_hist_id  => null,
1762                              p_req_id   => p_request_id);
1763   ELSE
1764 
1765     -- initialization of object variables
1766     l_list := WF_PARAMETER_LIST_T();
1767 
1768      /* 9216062 - set org based on trx */
1769      l_org_id := get_org_id(p_request_id,
1770                             'REQUEST_ID',
1771                             'RECEIPTS');
1772 
1773      -- Add Context values to the list
1774      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1775                                          p_org_id => l_org_id);
1776 
1777      -- add more parameters to the parameters list
1778      wf_event.AddParameterToList(p_name => 'REQUEST_ID',
1779                            p_value => p_request_id,
1780                            p_parameterlist => l_list);
1781 
1782         -- Raise Event
1783         AR_CMGT_EVENT_PKG.raise_event(
1784             p_event_name        => l_event_name,
1785             p_event_key         => l_key,
1786             p_parameters        => l_list );
1787       l_list.DELETE;
1788    END IF;
1789 
1790    END IF;
1791 
1792 EXCEPTION
1793  WHEN others THEN
1794   IF PG_DEBUG in ('Y', 'C') THEN
1795    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1796   END IF;
1797 
1798 END Raise_AutoRec_Run_Event;
1799 
1800 PROCEDURE Raise_PostBatch_Run_Event
1801  ( p_request_id  IN  NUMBER)
1802 IS
1803     l_list           WF_PARAMETER_LIST_T;
1804     l_param          WF_PARAMETER_T;
1805     l_key            VARCHAR2(240);
1809 BEGIN
1806     l_exist          VARCHAR2(1);
1807     l_event_name     VARCHAR2(50) := 'oracle.apps.ar.batch.QuickCash.PostBatch';
1808     l_org_id         NUMBER;
1810 
1811   IF p_request_id is not null  THEN
1812    --Get the item key
1813    l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name ,
1814                                         p_request_id);
1815 
1816   IF (isRefreshProgramRunning)  THEN
1817 
1818          insert_events_hist (p_be_name => l_event_name,
1819                              p_event_key=> l_key,
1820                              p_ps_id    => null,
1821                              p_ctx_id   => null,
1822                              p_cr_id    => null,
1823                              p_ra_id    => null,
1824                              p_adj_id   => null,
1825                              p_hist_id  => null,
1826                              p_req_id   => p_request_id);
1827   ELSE
1828 
1829     -- initialization of object variables
1830     l_list := WF_PARAMETER_LIST_T();
1831 
1832      /* 9216062 - set org based on trx */
1833      l_org_id := get_org_id(p_request_id,
1834                             'REQUEST_ID',
1835                             'RECEIPTS');
1836 
1837      -- Add Context values to the list
1838      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1839                                          p_org_id => l_org_id);
1840 
1841      -- add more parameters to the parameters list
1842      wf_event.AddParameterToList(p_name => 'REQUEST_ID',
1843                            p_value => p_request_id,
1844                            p_parameterlist => l_list);
1845 
1846      -- Raise Event
1847         AR_CMGT_EVENT_PKG.raise_event(
1848             p_event_name        => l_event_name,
1849             p_event_key         => l_key,
1850             p_parameters        => l_list );
1851       l_list.DELETE;
1852    END IF;
1853    END IF;
1854 
1855 EXCEPTION
1856  WHEN others THEN
1857   IF PG_DEBUG in ('Y', 'C') THEN
1858    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1859   END IF;
1860 
1861 END Raise_PostBatch_Run_Event;
1862 
1863 PROCEDURE Raise_AutoAdj_Run_Event
1864  ( p_request_id  IN  NUMBER) IS
1865     l_list           WF_PARAMETER_LIST_T;
1866     l_param          WF_PARAMETER_T;
1867     l_key            VARCHAR2(240);
1868     l_exist          VARCHAR2(1);
1872 
1869     l_event_name     VARCHAR2(50)  := 'oracle.apps.ar.batch.AutoAdjustments.run';
1870     l_org_id         NUMBER;
1871 BEGIN
1873  --
1874  -- We do not need to create a history record in AR_TRX_SUMMARY_HIST for the
1875  -- adjustments done against the transactions because of fllowing reasons:
1876  -- 1) The adjustment history is stored in AR_ADJUSTMENTS table
1877  -- 2) AR Subscription of no other core event would look at the adjustment.
1878 
1879   IF p_request_id is not null  THEN
1880    --Get the item key
1881    l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name ,
1882                                         p_request_id);
1883 
1884   IF (isRefreshProgramRunning)  THEN
1885 
1886          insert_events_hist (p_be_name => l_event_name,
1887                              p_event_key=> l_key,
1888                              p_ps_id    => null,
1889                              p_ctx_id   => null,
1890                              p_cr_id    => null,
1891                              p_ra_id    => null,
1892                              p_adj_id   => null,
1893                              p_hist_id  => null,
1894                              p_req_id   => p_request_id);
1895   ELSE
1896 
1897     -- initialization of object variables
1898     l_list := WF_PARAMETER_LIST_T();
1899 
1900      /* 9216062 - set org based on trx */
1901      l_org_id := get_org_id(p_request_id,
1902                             'REQUEST_ID',
1903                             'ADJUSTMENTS');
1904 
1905      -- Add Context values to the list
1906      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1907                                          p_org_id => l_org_id);
1908 
1909      -- add more parameters to the parameters list
1910      wf_event.AddParameterToList(p_name => 'REQUEST_ID',
1911                            p_value => p_request_id,
1912                            p_parameterlist => l_list);
1913 
1914      -- Raise Event
1915         AR_CMGT_EVENT_PKG.raise_event(
1916             p_event_name        => l_event_name,
1917             p_event_key         => l_key,
1918             p_parameters        => l_list );
1919       l_list.DELETE;
1920 
1921    END IF;
1922    END IF;
1923 
1924 EXCEPTION
1925  WHEN others THEN
1926   IF PG_DEBUG in ('Y', 'C') THEN
1927    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1928   END IF;
1929 
1930 END Raise_AutoAdj_Run_Event;
1931 
1932 PROCEDURE Raise_CopyInv_Run_Event
1933  ( p_request_id  IN  NUMBER) IS
1934     l_list           WF_PARAMETER_LIST_T;
1935     l_param          WF_PARAMETER_T;
1936     l_key            VARCHAR2(240);
1937     l_exist          VARCHAR2(1);
1938     l_event_name     VARCHAR2(50) := 'oracle.apps.ar.batch.CopyInvoices.run';
1939     l_org_id         NUMBER;
1940 BEGIN
1941 
1942   IF p_request_id is not null  THEN
1943    --Get the item key
1944    l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name ,
1945                                         p_request_id);
1946   IF (isRefreshProgramRunning)  THEN
1947 
1948          insert_events_hist (p_be_name  => l_event_name,
1949                              p_event_key=> l_key,
1950                              p_ps_id    => null,
1951                              p_ctx_id   => null,
1952                              p_cr_id    => null,
1953                              p_ra_id    => null,
1954                              p_adj_id   => null,
1955                              p_hist_id  => null,
1956                              p_req_id   => p_request_id);
1957   ELSE
1958 
1959     -- initialization of object variables
1960     l_list := WF_PARAMETER_LIST_T();
1961 
1962      /* 9216062 - set org based on trx */
1963      l_org_id := get_org_id(p_request_id,
1964                             'REQUEST_ID',
1965                             'INVOICES');
1966 
1967      -- Add Context values to the list
1968      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
1969                                          p_org_id => l_org_id);
1970 
1971      -- add more parameters to the parameters list
1972      wf_event.AddParameterToList(p_name => 'REQUEST_ID',
1973                            p_value => p_request_id,
1974                            p_parameterlist => l_list);
1975 
1976      -- Raise Event
1977         AR_CMGT_EVENT_PKG.raise_event(
1978             p_event_name        => l_event_name,
1979             p_event_key         => l_key,
1980             p_parameters        => l_list );
1981       l_list.DELETE;
1982    END IF;
1983 
1984    END IF;
1985 
1986 EXCEPTION
1987  WHEN others THEN
1988   IF PG_DEBUG in ('Y', 'C') THEN
1989    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
1990   END IF;
1991 
1992 END Raise_CopyInv_Run_Event;
1993 
1994 PROCEDURE Raise_Rcpt_Deletion_Event
1995  ( p_payment_schedule_id  IN  NUMBER,
1996    p_receipt_number	  IN  ar_cash_receipts.receipt_number%type,
1997    p_receipt_date	  IN  ar_cash_receipts.receipt_date%type
1998  ) IS
1999     l_list           WF_PARAMETER_LIST_T;
2000     l_param          WF_PARAMETER_T;
2001     l_key            VARCHAR2(240);
2002     l_exist          VARCHAR2(1);
2003     l_event_name     VARCHAR2(50) := 'oracle.apps.ar.receipts.CashReceipt.Delete';
2004     l_org_id         NUMBER;
2005 BEGIN
2006  IF PG_DEBUG in ('Y', 'C') THEN
2007     arp_util.debug('Raise_Rcpt_Deletion_Event (+)');
2008  END IF;
2009     --Get the item key
2010     l_key := AR_CMGT_EVENT_PKG.item_key( l_event_name ,
2011                                          p_payment_schedule_id);
2012   IF (isRefreshProgramRunning)  THEN
2013 
2017                               p_ctx_id   => null,
2014          insert_events_hist (p_be_name => l_event_name,
2015                              p_event_key => l_key,
2016                              p_ps_id     => p_payment_schedule_id,
2018                               p_cr_id    => null,
2019                               p_ra_id    => null,
2020                               p_adj_id   => null,
2021                               p_hist_id  => null,
2022                               p_req_id   => null);
2023   ELSE
2024 
2025     -- initialization of object variables
2026     l_list := WF_PARAMETER_LIST_T();
2027 
2028      /* 9216062 - set org based on trx */
2029      l_org_id := get_org_id(p_payment_schedule_id,
2030                             'PAYMENT_SCHEDULE_ID');
2031 
2032      -- Add Context values to the list
2033      ar_cmgt_event_pkg.AddParamEnvToList(x_list => l_list,
2034                                          p_org_id => l_org_id);
2035 
2036      -- add more parameters to the parameters list
2037      wf_event.AddParameterToList(p_name => 'PAYMENT_SCHEDULE_ID',
2038                            p_value => p_payment_schedule_id,
2042                            p_value => trunc(sysdate),
2039                            p_parameterlist => l_list);
2040 
2041      wf_event.AddParameterToList(p_name => 'DELETION_DATE',
2043                            p_parameterlist => l_list);
2044 
2045      wf_event.AddParameterToList(p_name => 'RECEIPT_NUMBER',
2046                            p_value => p_receipt_number,
2047                            p_parameterlist => l_list);
2048 
2049      wf_event.AddParameterToList(p_name => 'RECEIPT_DATE',
2050                            p_value => p_receipt_date,
2051                            p_parameterlist => l_list);
2052         -- Raise Event
2053         AR_CMGT_EVENT_PKG.raise_event(
2054             p_event_name        => l_event_name,
2055             p_event_key         => l_key,
2056             p_parameters        => l_list );
2057 
2058         l_list.DELETE;
2059   END IF;
2060 IF PG_DEBUG in ('Y', 'C') THEN
2061    arp_util.debug('Raise_Rcpt_Deletion_Event (-)');
2062 END IF;
2063 
2064 EXCEPTION
2065  WHEN others THEN
2066   IF PG_DEBUG in ('Y', 'C') THEN
2067    arp_util.debug('ERR RAISING EVENT: '||l_event_name);
2068   END IF;
2069 
2070 END;
2071 
2072 END AR_BUS_EVENT_COVER; -- Package spec