1 PACKAGE BODY okl_sla_processing_pvt AS
2 /* $Header: OKLACHKB.pls 120.0.12010000.3 2008/10/01 23:16:34 rkuttiya ship $ */
3
4 -- No processing for pre-accounting hook..
5 PROCEDURE preaccounting
6 (
7 p_application_id IN NUMBER,
8 p_ledger_id IN INTEGER,
9 p_process_category IN VARCHAR2,
10 p_end_date IN DATE,
11 p_accounting_mode IN VARCHAR2,
12 p_valuation_method IN VARCHAR2,
13 p_security_id_int_1 IN INTEGER,
14 p_security_id_int_2 IN INTEGER,
15 p_security_id_int_3 IN INTEGER,
16 p_security_id_char_1 IN VARCHAR2,
17 p_security_id_char_2 IN VARCHAR2,
18 p_security_id_char_3 IN VARCHAR2,
19 p_report_request_id IN INTEGER
20 )
21 IS
22
23 BEGIN
24
25 NULL;
26
27 END preaccounting;
28
29 -- Update the posted_yn flag based on the event status
30 -- View xla_post_acctg_events_v has events that are successfully accounted
31 -- process_status_code in 'D'(Draft accounting), 'P'(Final accounting).
32 PROCEDURE postprocessing
33 (
34 p_application_id IN NUMBER,
35 p_accounting_mode IN VARCHAR2
36 )
37 IS
38
39 CURSOR events_info_csr IS
40 SELECT event_id, source_id_int_1
41 FROM xla_post_acctg_events_v
42 WHERE application_id = p_application_id;
43
44 TYPE t_event_tbl IS TABLE OF xla_events.event_id%TYPE INDEX BY BINARY_INTEGER;
45 TYPE t_id_tbl IS TABLE OF okl_trx_contracts_all.id%TYPE INDEX BY BINARY_INTEGER;
46 l_event_tbl t_event_tbl;
47 l_tcn_tbl t_id_tbl;
48 l_fetch_size NUMBER := 1000;
49
50 BEGIN
51
52 IF (p_application_id <> 540) THEN
53 RETURN;
54 END IF;
55
56 IF (p_accounting_mode = 'D') THEN
57 RETURN;
58 END IF;
59
60 OPEN events_info_csr;
61
62 LOOP
63
64 FETCH events_info_csr BULK COLLECT INTO l_event_tbl, l_tcn_tbl limit l_fetch_size;
65
66 FORALL i IN 1..l_event_tbl.count
67 UPDATE okl_trx_contracts_all
68 SET tsu_code = 'CANCELED',
69 canceled_date = sysdate,
70 accounting_reversal_yn = 'N'
71 WHERE id = l_tcn_tbl(i)
72 AND exists( SELECT 1
73 FROM okl_trns_acc_dstrs_all
74 WHERE accounting_event_id = l_event_tbl(i)
75 AND gl_reversal_flag = 'Y' );
76
77 IF l_event_tbl.count < l_fetch_size then
78 EXIT;
79 END IF;
80
81 END LOOP;
82
83 CLOSE events_info_csr;
84
85 EXCEPTION
86
87 WHEN OTHERS THEN
88 IF events_info_csr%ISOPEN THEN
89 CLOSE events_info_csr;
90 END IF;
91
92 Okl_Api.SET_MESSAGE(p_app_name => g_app_name,
93 p_msg_name => g_unexpected_error,
94 p_token1 => g_sqlcode_token,
95 p_token1_value => SQLCODE,
96 p_token2 => g_sqlerrm_token,
97 p_token2_value => SQLERRM);
98
99 app_exception.raise_exception();
100
101 END postprocessing;
102
103 -- Lock the distributions belonging to the events that are selected by SLA
104 -- to create journal entries. Update the distributions posted_yn to 'S'.
105 PROCEDURE extract
106 (
107 p_application_id IN NUMBER,
108 p_accounting_mode IN VARCHAR2
109 )
110 IS
111 BEGIN
112
113 NULL;
114
115 END extract;
116
117 -- No processing in postaccounting hook.
118 PROCEDURE postaccounting
119 (
120 p_application_id IN NUMBER,
121 p_ledger_id IN INTEGER,
122 p_process_category IN VARCHAR2,
123 p_end_date IN DATE,
124 p_accounting_mode IN VARCHAR2,
125 p_valuation_method IN VARCHAR2,
126 p_security_id_int_1 IN INTEGER,
127 p_security_id_int_2 IN INTEGER,
128 p_security_id_int_3 IN INTEGER,
129 p_security_id_char_1 IN VARCHAR2,
130 p_security_id_char_2 IN VARCHAR2,
131 p_security_id_char_3 IN VARCHAR2,
132 p_report_request_id IN INTEGER
133 )
134 IS
135
136 BEGIN
137
138 NULL;
139
140 END postaccounting;
141
142 END okl_sla_processing_pvt;