DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_XLA_EVENTS_PVT

Source


1 PACKAGE BODY OKL_XLA_EVENTS_PVT AS
2 /* $Header: OKLRCSEB.pls 120.1.12010000.3 2008/10/03 16:43:24 rkuttiya ship $ */
3 
4 -- Private API to write messages to log. If logging is enabled, then messages
5 -- are logged based on the level.
6 PROCEDURE WRITE_TO_LOG(p_message	IN	VARCHAR2)
7 IS
8 L_DEBUG_ENABLED CONSTANT VARCHAR2(10) := OKL_DEBUG_PUB.CHECK_LOG_ENABLED;
9 BEGIN
10 
11   IF (L_DEBUG_ENABLED='Y' and fnd_log.level_statement >= fnd_log.g_current_runtime_level)
12   THEN
13     fnd_log.string(fnd_log.level_statement,
14                    'okl_xla_events_pvt',
15                    p_message );
16   END IF;
17 
18   IF L_DEBUG_ENABLED = 'Y' then
19      fnd_file.put_line (fnd_file.log,p_message);
20      okl_debug_pub.logmessage(p_message);
21   END IF;
22 
23 END WRITE_TO_LOG;
24 
25 -- Private procedure to return the entity code and event class
26 -- based on the transaction type
27 PROCEDURE get_entity_event_class(p_try_id            IN   NUMBER
28 								,p_action_type       IN   VARCHAR2 DEFAULT NULL
29 								,x_event_type_code   OUT  NOCOPY VARCHAR2
30                                 ,x_entity_type_code  OUT  NOCOPY VARCHAR2
31                                 ,x_event_class_code  OUT  NOCOPY VARCHAR2
32                                 ,x_return_status     OUT  NOCOPY VARCHAR2)
33 IS
34 
35 l_entity_type_code   VARCHAR2(30);
36 l_event_class_code   VARCHAR2(30);
37 
38 l_trx_type_name      VARCHAR2(150);
39 EVENT_CLASS_CODE_EXCP      EXCEPTION;
40 
41 BEGIN
42   SELECT DECODE(tryb.accounting_event_class_code
43                ,'ACCRUAL',                 'TRANSACTIONS'
44                ,'GENERAL_LOSS_PROVISION',  'TRANSACTIONS'
45                ,'SPECIFIC_LOSS_PROVISION', 'TRANSACTIONS'
46                ,'RECEIPT_APPLICATION',     'TRANSACTIONS'
47                ,'PRINCIPAL_ADJUSTMENT',    'TRANSACTIONS'
48                ,'EVERGREEN',               'CONTRACTS'
49                ,'BOOKING',                 'CONTRACTS'
50                ,'REBOOK',                  'CONTRACTS'
51                ,'RE_LEASE',                'CONTRACTS'
52                ,'TERMINATION',             'CONTRACTS'
53                ,'UPFRONT_TAX',             'CONTRACTS'
54                ,'ASSET_DISPOSITION',       'CONTRACTS'
55                ,'SPLIT_ASSET',             'CONTRACTS'
56                ,'INVESTOR',                'INVESTOR_AGREEMENTS'
57                ,'UNKNOWN') entity_type_code,
58          tryb.accounting_event_class_code
59     INTO l_entity_type_code,
60          l_event_class_code
61     FROM okl_trx_types_b tryb
62    WHERE tryb.id = p_try_id;
63 
64    x_entity_type_code := l_entity_type_code;
65    x_event_class_code := l_event_class_code;
66 
67    IF p_action_type = 'CREATE' THEN
68       x_event_type_code :=
69 	    CASE
70 		  WHEN l_event_class_code = 'ACCRUAL'                 THEN 'ACCRUAL_CREATE'
71 		  WHEN l_event_class_code = 'GENERAL_LOSS_PROVISION'  THEN 'GENERAL_LOSS_CREATE'
72 		  WHEN l_event_class_code = 'SPECIFIC_LOSS_PROVISION' THEN 'SPECIFIC_LOSS_CREATE'
73 		  WHEN l_event_class_code = 'RECEIPT_APPLICATION'     THEN 'RECEIPT_APPLICATION_CREATE'
74 		  WHEN l_event_class_code = 'PRINCIPAL_ADJUSTMENT'    THEN 'PRINCIPAL_ADJUSTMENT_CREATE'
75 		  WHEN l_event_class_code = 'EVERGREEN'               THEN 'EVERGREEN_CREATE'
76 		  WHEN l_event_class_code = 'BOOKING'                 THEN 'BOOKING_CREATE'
77 		  WHEN l_event_class_code = 'REBOOK'                  THEN 'REBOOK_CREATE'
78 		  WHEN l_event_class_code = 'RE_LEASE'                THEN 'RE_LEASE_CREATE'
79 		  WHEN l_event_class_code = 'TERMINATION'             THEN 'TERMINATION_CREATE'
80 		  WHEN l_event_class_code = 'UPFRONT_TAX'             THEN 'UPFRONT_TAX_CREATE'
81 		  WHEN l_event_class_code = 'ASSET_DISPOSITION'       THEN 'ASSET_DISPOSITION_CREATE'
82 		  WHEN l_event_class_code = 'SPLIT_ASSET'             THEN 'SPLIT_ASSET_CREATE'
83 		  WHEN l_event_class_code = 'INVESTOR'                THEN 'INVESTOR_CREATE'
84 		  ELSE 'UNKNOWN'
85         END;
86    ELSIF p_action_type = 'REVERSE' THEN
87       x_event_type_code :=
88 	    CASE
89 		  WHEN l_event_class_code = 'ACCRUAL'                 THEN 'ACCRUAL_REVERSE'
90 		  WHEN l_event_class_code = 'BOOKING'                 THEN 'BOOKING_REVERSE'
91 		  WHEN l_event_class_code = 'GENERAL_LOSS_PROVISION'  THEN 'GENERAL_LOSS_REVERSE'
92 		  WHEN l_event_class_code = 'SPECIFIC_LOSS_PROVISION' THEN 'SPECIFIC_LOSS_REVERSE'
93 		  WHEN l_event_class_code = 'UPFRONT_TAX'             THEN 'UPFRONT_TAX_REVERSE'
94 		  ELSE 'UNKNOWN'
95         END;
96    ELSE
97       x_event_type_code := NULL;
98    END IF;
99 
100    IF l_entity_type_code = 'UNKNOWN' OR
101       x_event_type_code  = 'UNKNOWN' THEN
102 
103 	  SELECT name
104 	    INTO l_trx_type_name
105 		FROM okl_trx_types_tl
106        WHERE id  = p_try_id
107 	     AND LANGUAGE = USERENV('LANG');
108 
109       RAISE EVENT_CLASS_CODE_EXCP;
110    END IF;
111 
112    x_return_status := Okl_Api.G_RET_STS_SUCCESS;
113 
114 EXCEPTION
115 WHEN NO_DATA_FOUND THEN
116     Okl_Api.set_message(p_app_name     => g_app_name,
117                         p_msg_name     => 'OKL_AM_NO_TRX_TYPE_FOUND',
118                         p_token1       => 'TRY_NAME',
119                         p_token1_value => p_try_id);
120 
121   x_return_status := Okl_Api.G_RET_STS_ERROR;
122 
123 WHEN EVENT_CLASS_CODE_EXCP THEN
124     Okl_Api.set_message(p_app_name     => g_app_name,
125                         p_msg_name     => 'OKL_INVALID_EVENT_CLASS',
126                         p_token1       => 'TRANSACTION_TYPE',
127                         p_token1_value => l_trx_type_name);
128 
129   x_return_status := Okl_Api.G_RET_STS_ERROR;
130 
131 END get_entity_event_class;
132 
133 -------------------------------------------------------------------------------
134 -- Event creation routines
135 -------------------------------------------------------------------------------
136 -- Public function to raise an accounting event in SLA and return the event id.
137 -- If an error occurs, return status is set to error code and -1 is returned.
138 FUNCTION create_event(
139     p_api_version           IN  NUMBER
140    ,p_init_msg_list         IN  VARCHAR2
141    ,x_return_status         OUT NOCOPY VARCHAR2
142    ,x_msg_count             OUT NOCOPY NUMBER
143    ,x_msg_data              OUT NOCOPY VARCHAR2
144    ,p_tcn_id                IN  NUMBER
145    ,p_gl_date               IN  DATE
146    ,p_action_type           IN  VARCHAR2
147    ,p_representation_code   IN  VARCHAR2
148    ) RETURN INTEGER IS
149 
150  CURSOR get_tcn_csr is
151  SELECT set_of_books_id,
152         legal_entity_id,
153         trunc(date_transaction_occurred) transaction_date,
154         trunc(canceled_date) cancelled_date,
155         trx_number,
156         try_id
157    FROM okl_trx_contracts
158   WHERE id = p_tcn_id;
159 
160  get_tcn_rec               get_tcn_csr%ROWTYPE;
161 
162  l_event_source_info       xla_events_pub_pkg.t_event_source_info;
163  l_security_context        xla_events_pub_pkg.t_security;
164 
165  l_transaction_date        DATE;
166  l_event_id                NUMBER;
167  l_entity_type_code        VARCHAR2(30);
168  l_event_class_code        VARCHAR2(30);
169  l_event_type_code         VARCHAR2(30);
170 
171  l_api_name                VARCHAR2(30) := 'CREATE_EVENT';
172  l_api_version    CONSTANT NUMBER := 1.0;
173  l_sla_api_name            VARCHAR2(30);
174  l_return_status           VARCHAR2(1);
175 
176  l_existing_event_id       NUMBER;
177  l_existing_event_date     DATE;
178 
179  l_msg_count               NUMBER;
180  l_msg_data                VARCHAR2(2000);
181 
182 BEGIN
183 
184    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
185                                              ,G_PKG_NAME
186                                              ,p_init_msg_list
187                                              ,l_api_version
188                                              ,p_api_version
189                                              ,'_PVT'
190                                              ,x_return_status);
191 
192     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
193       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
194     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
195       RAISE Okl_Api.G_EXCEPTION_ERROR;
196     END IF;
197 
198   WRITE_TO_LOG('');
199   WRITE_TO_LOG('Inside the call to CREATE_EVENT');
200 
201   WRITE_TO_LOG('Input Parameters: ');
202   WRITE_TO_LOG('===================================');
203   WRITE_TO_LOG('p_tcn_id              : ' || p_tcn_id);
204   WRITE_TO_LOG('p_gl_date             : ' || p_gl_date);
205   WRITE_TO_LOG('p_action_type         : ' || p_action_type);
206   WRITE_TO_LOG('p_representation_code : ' || p_representation_code);
207 
208   OPEN get_tcn_csr;
209   FETCH get_tcn_csr into get_tcn_rec;
210   CLOSE get_tcn_csr;
211 
212   WRITE_TO_LOG('Contents of GET_TCN_REC:');
213   WRITE_TO_LOG('===================================');
214   WRITE_TO_LOG('get_tcn_rec.try_id          : ' || get_tcn_rec.try_id);
215   WRITE_TO_LOG('get_tcn_rec.legal_entity_id : ' || get_tcn_rec.legal_entity_id);
216   WRITE_TO_LOG('get_tcn_rec.set_of_books_id : ' || get_tcn_rec.set_of_books_id);
217   WRITE_TO_LOG('get_tcn_rec.trx_number      : ' || get_tcn_rec.trx_number);
218   WRITE_TO_LOG('get_tcn_rec.transaction_date: ' || get_tcn_rec.transaction_date);
219   WRITE_TO_LOG('get_tcn_rec.cancelled_date  : ' || get_tcn_rec.cancelled_date);
220 
221   get_entity_event_class(p_try_id              =>    get_tcn_rec.try_id
222 						,p_action_type         =>    p_action_type
223 						,x_event_type_code     =>    l_event_type_code
224                         ,x_entity_type_code    =>    l_entity_type_code
225                         ,x_event_class_code    =>    l_event_class_code
226 						,x_return_status       =>    l_return_status);
227 
228   IF l_return_status = Okl_Api.G_RET_STS_ERROR THEN
229      RAISE Okl_Api.G_EXCEPTION_ERROR;
230   END IF;
231 
232   l_event_source_info.source_application_id := g_application_id;
233   l_event_source_info.application_id        := g_application_id;
234   l_event_source_info.legal_entity_id       := get_tcn_rec.legal_entity_id;
235   l_event_source_info.ledger_id             := get_tcn_rec.set_of_books_id;
236   l_event_source_info.entity_type_code      := l_entity_type_code;
237   l_event_source_info.transaction_number    := get_tcn_rec.trx_number;
238   l_event_source_info.source_id_int_1       := p_tcn_id;
239 
240   l_security_context.security_id_int_1      := mo_global.get_current_org_id();
241 
242   WRITE_TO_LOG('Contents of l_event_source_info :');
243   WRITE_TO_LOG('===================================');
244   WRITE_TO_LOG('l_event_source_info.source_application_id : ' ||
245   l_event_source_info.source_application_id);
246   WRITE_TO_LOG('l_event_source_info.application_id        : ' ||
247   l_event_source_info.application_id);
248   WRITE_TO_LOG('l_event_source_info.legal_entity_id       : ' ||
249   l_event_source_info.legal_entity_id);
250   WRITE_TO_LOG('l_event_source_info.ledger_id             : ' ||
251   l_event_source_info.ledger_id);
252   WRITE_TO_LOG('l_event_source_info.entity_type_code      : ' ||
253   l_event_source_info.entity_type_code);
254   WRITE_TO_LOG('l_event_source_info.transaction_number    : ' ||
255   l_event_source_info.transaction_number);
256   WRITE_TO_LOG('l_event_source_info.source_id_int_1       : ' ||
257   l_event_source_info.source_id_int_1);
258 
259   IF p_action_type       = 'CREATE' THEN
260      l_transaction_date := get_tcn_rec.transaction_date;
261   ELSIF p_action_type    = 'REVERSE' THEN
262      l_transaction_date := get_tcn_rec.cancelled_date;
263   END IF;
264 
265   BEGIN
266     l_sla_api_name := 'CREATE_EVENT';
267     l_event_id :=
268          xla_events_pub_pkg.create_event(p_event_source_info => l_event_source_info
269                                         ,p_event_type_code   => l_event_type_code
270                                         ,p_event_date        => p_gl_date
271                                         ,p_event_status_code => 'U'
272                                         ,p_event_number      => NULL
273                                         ,p_transaction_date  => l_transaction_date
274                                         ,p_reference_info    => NULL
275                                         ,p_valuation_method  => p_representation_code
276                                         ,p_security_context  => l_security_context
277                                         );
278   EXCEPTION
279     WHEN OTHERS THEN
280       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
281                           p_msg_name     => g_unexpected_error,
282                           p_token1       => g_sqlcode_token,
283                           p_token1_value => SQLCODE,
284                           p_token2       => g_sqlerrm_token,
285                           p_token2_value => SQLERRM);
286 
287 	  RAISE Okl_Api.G_EXCEPTION_ERROR;
288   END;
289 
290   WRITE_TO_LOG('');
291   WRITE_TO_LOG('Done with CREATE_EVENT');
292 
293   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
294   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
295 
296   return l_event_id;
297 
298 EXCEPTION
299   WHEN Okl_Api.G_EXCEPTION_ERROR THEN
300      IF get_tcn_csr%ISOPEN THEN
301 	    CLOSE get_tcn_csr;
302      END IF;
303 
304       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
305                                  ,g_pkg_name
306                                  ,'OKL_API.G_RET_STS_ERROR'
307                                  ,x_msg_count
308                                  ,x_msg_data
309                                  ,'_PVT');
310   RETURN -1;
311   WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
312      IF get_tcn_csr%ISOPEN THEN
313 	    CLOSE get_tcn_csr;
314      END IF;
315 
316       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
317                           p_msg_name     => g_unexpected_error,
318                           p_token1       => g_sqlcode_token,
319                           p_token1_value => SQLCODE,
320                           p_token2       => g_sqlerrm_token,
321                           p_token2_value => SQLERRM);
322 
323       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
324                                  ,g_pkg_name
325                                  ,'OKL_API.G_RET_STS_UNEXP_ERROR'
326                                  ,x_msg_count
327                                  ,x_msg_data
328                                  ,'_PVT');
329   RETURN -1;
330 
331   WHEN OTHERS THEN
332      IF get_tcn_csr%ISOPEN THEN
333 	    CLOSE get_tcn_csr;
334      END IF;
335 
336      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
337                                      (l_api_name,
338                                       G_PKG_NAME,
339                                       'OTHERS',
340                                       x_msg_count,
341                                       x_msg_data,
342                                       '_PVT');
343 
344 	 return -1;
345 END create_event;
346 
347 
348 -------------------------------------------------------------------------------
349 -- Event updation routines
350 -------------------------------------------------------------------------------
351 -- API to update event status of one or more matching events within an entity
352 PROCEDURE update_event_status(
353     p_api_version           IN  NUMBER
354    ,p_init_msg_list         IN  VARCHAR2
355    ,x_return_status         OUT NOCOPY VARCHAR2
356    ,x_msg_count             OUT NOCOPY NUMBER
357    ,x_msg_data              OUT NOCOPY VARCHAR2
358    ,p_tcn_id                IN  NUMBER
359    ,p_gl_date               IN  DATE
360    ,p_action_type           IN  VARCHAR2
361    ,p_representation_code   IN  VARCHAR2
362    ,p_event_status_code     IN  VARCHAR2) IS
363 
364  CURSOR get_tcn_csr is
365  SELECT set_of_books_id,
366         legal_entity_id,
367         TRUNC(date_transaction_occurred) transaction_date,
368         TRUNC(canceled_date) cancelled_date,
369         trx_number,
370         try_id
371    FROM okl_trx_contracts
372   WHERE id = p_tcn_id;
373 
374  get_tcn_rec               get_tcn_csr%ROWTYPE;
375 
376  l_event_source_info       xla_events_pub_pkg.t_event_source_info;
377  l_security_context        xla_events_pub_pkg.t_security;
378 
379  l_transaction_date        DATE;
380  l_event_id                NUMBER;
381  l_entity_type_code        VARCHAR2(30);
382  l_event_class_code        VARCHAR2(30);
383  l_event_type_code         VARCHAR2(30);
384 
385  l_api_name                VARCHAR2(30) := 'UPDATE_EVENT_STATUS';
386  l_api_version    CONSTANT NUMBER := 1.0;
387  l_sla_api_name            VARCHAR2(30);
388  l_return_status           VARCHAR2(1);
389 BEGIN
390 
391    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
392                                              ,G_PKG_NAME
393                                              ,p_init_msg_list
394                                              ,l_api_version
395                                              ,p_api_version
396                                              ,'_PVT'
397                                              ,x_return_status);
398 
399     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
400       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
401     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
402       RAISE Okl_Api.G_EXCEPTION_ERROR;
403     END IF;
404 
405   WRITE_TO_LOG('');
406   WRITE_TO_LOG('Inside the call to ' || l_api_name);
407 
408   WRITE_TO_LOG('Input Parameters: ');
409   WRITE_TO_LOG('===================================');
410   WRITE_TO_LOG('p_tcn_id              : ' || p_tcn_id);
411   WRITE_TO_LOG('p_gl_date             : ' || p_gl_date);
412   WRITE_TO_LOG('p_action_type         : ' || p_action_type);
413   WRITE_TO_LOG('p_representation_code : ' || p_representation_code);
414   WRITE_TO_LOG('p_event_status_code   : ' || p_event_status_code);
415 
416   OPEN get_tcn_csr;
417   FETCH get_tcn_csr into get_tcn_rec;
418   CLOSE get_tcn_csr;
419 
420   WRITE_TO_LOG('Contents of GET_TCN_REC:');
421   WRITE_TO_LOG('===================================');
422   WRITE_TO_LOG('get_tcn_rec.try_id          : ' || get_tcn_rec.try_id);
423   WRITE_TO_LOG('get_tcn_rec.legal_entity_id : ' || get_tcn_rec.legal_entity_id);
424   WRITE_TO_LOG('get_tcn_rec.set_of_books_id : ' || get_tcn_rec.set_of_books_id);
425   WRITE_TO_LOG('get_tcn_rec.trx_number      : ' || get_tcn_rec.trx_number);
426   WRITE_TO_LOG('get_tcn_rec.transaction_date: ' || get_tcn_rec.transaction_date);
427   WRITE_TO_LOG('get_tcn_rec.cancelled_date  : ' || get_tcn_rec.cancelled_date);
428 
429   get_entity_event_class(p_try_id              =>    get_tcn_rec.try_id
430 						,p_action_type         =>    p_action_type
431 						,x_event_type_code     =>    l_event_type_code
432                         ,x_entity_type_code    =>    l_entity_type_code
433                         ,x_event_class_code    =>    l_event_class_code
434                         ,x_return_status       =>    l_return_status);
435 
436   IF l_return_status = Okl_Api.G_RET_STS_ERROR THEN
437      RAISE Okl_Api.G_EXCEPTION_ERROR;
438   END IF;
439 
440   l_event_source_info.source_application_id := g_application_id;
441   l_event_source_info.application_id        := g_application_id;
442   l_event_source_info.legal_entity_id       := get_tcn_rec.legal_entity_id;
443   l_event_source_info.ledger_id             := get_tcn_rec.set_of_books_id;
444   l_event_source_info.entity_type_code      := l_entity_type_code;
445   l_event_source_info.transaction_number    := get_tcn_rec.trx_number;
446   l_event_source_info.source_id_int_1       := p_tcn_id;
447 
448   l_security_context.security_id_int_1      := mo_global.get_current_org_id();
449 
450   WRITE_TO_LOG('Contents of l_event_source_info :');
451   WRITE_TO_LOG('===================================');
452   WRITE_TO_LOG('l_event_source_info.source_application_id : ' ||
453   l_event_source_info.source_application_id);
454   WRITE_TO_LOG('l_event_source_info.application_id        : ' ||
455   l_event_source_info.application_id);
456   WRITE_TO_LOG('l_event_source_info.legal_entity_id       : ' ||
457   l_event_source_info.legal_entity_id);
458   WRITE_TO_LOG('l_event_source_info.ledger_id             : ' ||
459   l_event_source_info.ledger_id);
460   WRITE_TO_LOG('l_event_source_info.entity_type_code      : ' ||
461   l_event_source_info.entity_type_code);
462   WRITE_TO_LOG('l_event_source_info.transaction_number    : ' ||
463   l_event_source_info.transaction_number);
464   WRITE_TO_LOG('l_event_source_info.source_id_int_1       : ' ||
465   l_event_source_info.source_id_int_1);
466 
467   IF p_action_type       = 'CREATE' THEN
468      l_transaction_date := get_tcn_rec.transaction_date;
469   ELSIF p_action_type    = 'REVERSE' THEN
470      l_transaction_date := get_tcn_rec.cancelled_date;
471   END IF;
472 
473   BEGIN
474   l_sla_api_name := 'UPDATE_EVENT_STATUS';
475   xla_events_pub_pkg.update_event_status(p_event_source_info => l_event_source_info
476                                         ,p_event_class_code  => l_event_class_code
477                                         ,p_event_type_code   => l_event_type_code
478                                         ,p_event_date        => p_gl_date
479                                         ,p_event_status_code => p_event_status_code
480                                         ,p_valuation_method  => p_representation_code
481                                         ,p_security_context  => l_security_context);
482   EXCEPTION
483     WHEN OTHERS THEN
484       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
485                           p_msg_name     => g_unexpected_error,
486                           p_token1       => g_sqlcode_token,
487                           p_token1_value => SQLCODE,
488                           p_token2       => g_sqlerrm_token,
489                           p_token2_value => SQLERRM);
490 
491 	  RAISE Okl_Api.G_EXCEPTION_ERROR;
492   END;
493 
494   WRITE_TO_LOG('');
495   WRITE_TO_LOG('Done with ' || l_api_name);
496 
497   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
498   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
499 
500 EXCEPTION
501   WHEN Okl_Api.G_EXCEPTION_ERROR THEN
502      IF get_tcn_csr%ISOPEN THEN
503 	    CLOSE get_tcn_csr;
504      END IF;
505 
506       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
507                                  ,g_pkg_name
508                                  ,'OKL_API.G_RET_STS_ERROR'
509                                  ,x_msg_count
510                                  ,x_msg_data
511                                  ,'_PVT');
512 
513   WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
514      IF get_tcn_csr%ISOPEN THEN
515 	    CLOSE get_tcn_csr;
516      END IF;
517 
518       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
519                           p_msg_name     => g_unexpected_error,
520                           p_token1       => g_sqlcode_token,
521                           p_token1_value => SQLCODE,
522                           p_token2       => g_sqlerrm_token,
523                           p_token2_value => SQLERRM);
524 
525       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
526                                  ,g_pkg_name
527                                  ,'OKL_API.G_RET_STS_UNEXP_ERROR'
528                                  ,x_msg_count
529                                  ,x_msg_data
530                                  ,'_PVT');
531 
532   WHEN OTHERS THEN
533      IF get_tcn_csr%ISOPEN THEN
534 	    CLOSE get_tcn_csr;
535      END IF;
536 
537      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
538                                      (l_api_name,
539                                       G_PKG_NAME,
540                                       'OTHERS',
541                                       x_msg_count,
542                                       x_msg_data,
543                                       '_PVT');
544 
545 END update_event_status;
546 
547 -------------------------------------------------------------------------+
548 -- Public API to update the attributes of an event. Based on the parameters
549 -- passed, API calls an appropriate SLA's update event APIs.
550 PROCEDURE update_event(
551     p_api_version           IN  NUMBER
552    ,p_init_msg_list         IN  VARCHAR2
553    ,x_return_status         OUT NOCOPY VARCHAR2
554    ,x_msg_count             OUT NOCOPY NUMBER
555    ,x_msg_data              OUT NOCOPY VARCHAR2
556    ,p_tcn_id                IN  NUMBER
557    ,p_gl_date               IN  DATE
558    ,p_action_type           IN  VARCHAR2
559    ,p_event_id              IN  NUMBER
560    ,p_event_type_code       IN  VARCHAR2
561    ,p_event_status_code     IN  VARCHAR2
562    ,p_event_number          IN  NUMBER
563    ,p_update_ref_info       IN  VARCHAR2
564    ,p_reference_info        IN  xla_events_pub_pkg.t_event_reference_info
565    ,p_representation_code   IN  VARCHAR2) IS
566 
567  CURSOR get_tcn_csr is
568  SELECT set_of_books_id,
569         legal_entity_id,
570         trunc(date_transaction_occurred) transaction_date,
571         trunc(canceled_date) cancelled_date,
572         trx_number,
573         try_id
574    FROM okl_trx_contracts
575   WHERE id = p_tcn_id;
576 
577  get_tcn_rec               get_tcn_csr%ROWTYPE;
578 
579  l_event_source_info       xla_events_pub_pkg.t_event_source_info;
580  l_security_context        xla_events_pub_pkg.t_security;
581 
582  l_transaction_date        DATE;
583  l_event_id                NUMBER;
584  l_entity_type_code        VARCHAR2(30);
585  l_event_class_code        VARCHAR2(30);
586  l_event_type_code         VARCHAR2(30);
587 
588  l_api_name                VARCHAR2(20) := 'UPDATE_EVENT';
589  l_api_version    CONSTANT NUMBER := 1.0;
590  l_return_status           VARCHAR2(1);
591  l_sla_api_name            VARCHAR2(60);
592 
593 BEGIN
594    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
595                                              ,G_PKG_NAME
596                                              ,p_init_msg_list
597                                              ,l_api_version
598                                              ,p_api_version
599                                              ,'_PVT'
600                                              ,x_return_status);
601 
602     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
603       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
604     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
605       RAISE Okl_Api.G_EXCEPTION_ERROR;
606     END IF;
607 
608   WRITE_TO_LOG('');
609   WRITE_TO_LOG('Inside the call to ' || l_api_name);
610 
611   WRITE_TO_LOG('Input Parameters: ');
612   WRITE_TO_LOG('===================================');
613   WRITE_TO_LOG('p_tcn_id              : ' || p_tcn_id);
614   WRITE_TO_LOG('p_gl_date             : ' || p_gl_date);
615   WRITE_TO_LOG('p_action_type         : ' || p_action_type);
616   WRITE_TO_LOG('p_event_id            : ' || p_event_id);
617   WRITE_TO_LOG('p_event_type_code     : ' || p_event_type_code);
618   WRITE_TO_LOG('p_event_status_code   : ' || p_event_status_code);
619   WRITE_TO_LOG('p_event_number        : ' || p_event_number);
620   WRITE_TO_LOG('p_update_ref_info     : ' || p_update_ref_info);
621   WRITE_TO_LOG('p_representation_code : ' || p_representation_code);
622 
623   OPEN get_tcn_csr;
624   FETCH get_tcn_csr into get_tcn_rec;
625   CLOSE get_tcn_csr;
626 
627   WRITE_TO_LOG('Contents of GET_TCN_REC:');
628   WRITE_TO_LOG('===================================');
629   WRITE_TO_LOG('get_tcn_rec.try_id          : ' || get_tcn_rec.try_id);
630   WRITE_TO_LOG('get_tcn_rec.legal_entity_id : ' || get_tcn_rec.legal_entity_id);
631   WRITE_TO_LOG('get_tcn_rec.set_of_books_id : ' || get_tcn_rec.set_of_books_id);
632   WRITE_TO_LOG('get_tcn_rec.trx_number      : ' || get_tcn_rec.trx_number);
633   WRITE_TO_LOG('get_tcn_rec.transaction_date: ' || get_tcn_rec.transaction_date);
634   WRITE_TO_LOG('get_tcn_rec.cancelled_date  : ' || get_tcn_rec.cancelled_date);
635 
636   get_entity_event_class(p_try_id              =>    get_tcn_rec.try_id
637 						,p_action_type         =>    p_action_type
638 						,x_event_type_code     =>    l_event_type_code
639                         ,x_entity_type_code    =>    l_entity_type_code
640                         ,x_event_class_code    =>    l_event_class_code
641                         ,x_return_status       =>    l_return_status);
642 
643   IF l_return_status = Okl_Api.G_RET_STS_ERROR THEN
644      RAISE Okl_Api.G_EXCEPTION_ERROR;
645   END IF;
646 
647   l_event_source_info.source_application_id := g_application_id;
648   l_event_source_info.application_id        := g_application_id;
649   l_event_source_info.legal_entity_id       := get_tcn_rec.legal_entity_id;
650   l_event_source_info.ledger_id             := get_tcn_rec.set_of_books_id;
651   l_event_source_info.entity_type_code      := l_entity_type_code;
652   l_event_source_info.transaction_number    := get_tcn_rec.trx_number;
653   l_event_source_info.source_id_int_1       := p_tcn_id;
654 
655   l_security_context.security_id_int_1      := mo_global.get_current_org_id();
656 
657   WRITE_TO_LOG('Contents of l_event_source_info :');
658   WRITE_TO_LOG('===================================');
659   WRITE_TO_LOG('l_event_source_info.source_application_id : ' ||
660   l_event_source_info.source_application_id);
661   WRITE_TO_LOG('l_event_source_info.application_id        : ' ||
662   l_event_source_info.application_id);
663   WRITE_TO_LOG('l_event_source_info.legal_entity_id       : ' ||
664   l_event_source_info.legal_entity_id);
665   WRITE_TO_LOG('l_event_source_info.ledger_id             : ' ||
666   l_event_source_info.ledger_id);
667   WRITE_TO_LOG('l_event_source_info.entity_type_code      : ' ||
668   l_event_source_info.entity_type_code);
669   WRITE_TO_LOG('l_event_source_info.transaction_number    : ' ||
670   l_event_source_info.transaction_number);
671   WRITE_TO_LOG('l_event_source_info.source_id_int_1       : ' ||
672   l_event_source_info.source_id_int_1);
673 
674   IF p_action_type       = 'CREATE' THEN
675      l_transaction_date := get_tcn_rec.transaction_date;
676   ELSIF p_action_type    = 'REVERSE' THEN
677      l_transaction_date := get_tcn_rec.cancelled_date;
678   END IF;
679 
680   BEGIN
681     IF NVL(p_update_ref_info, 'N') = 'N' AND p_event_number IS NULL THEN
682       l_sla_api_name := 'UPDATE_EVENT';
683      -- update one of event type, event status, event date
684      xla_events_pub_pkg.update_event(p_event_source_info => l_event_source_info
685                                     ,p_event_id          => p_event_id
686                                     ,p_event_type_code   => p_event_type_code
687                                     ,p_event_date        => p_gl_date
688                                     ,p_event_status_code => p_event_status_code
689                                     ,p_valuation_method  => p_representation_code
690                                     ,p_security_context  => l_security_context
691                                     ,p_transaction_date  => l_transaction_date);
692 
693     ELSIF NVL(p_update_ref_info, 'N') = 'N' AND p_event_number IS NOT NULL THEN
694       l_sla_api_name := 'UPDATE_EVENT FOR EVENT NUMBER';
695      -- update one of event type, event status, event date and event number
696      xla_events_pub_pkg.update_event(p_event_source_info => l_event_source_info
697 	                                ,p_event_id          => p_event_id
698 	                                ,p_event_type_code   => p_event_type_code
699 	                                ,p_event_date        => p_gl_date
700 	                                ,p_event_status_code => p_event_status_code
701 	                                ,p_event_number      => p_event_number
702 	                                ,p_valuation_method  => p_representation_code
703 	                                ,p_security_context  => l_security_context
704 	                                ,p_transaction_date  => l_transaction_date);
705 
706     ELSIF NVL(p_update_ref_info, 'N') = 'Y' AND p_event_number IS NULL THEN
707       l_sla_api_name := 'UPDATE_EVENT FOR REF INFO';
708      -- update one of event type, event status, event date and reference info
709      xla_events_pub_pkg.update_event(p_event_source_info => l_event_source_info
710                                     ,p_event_id          => p_event_id
711                                     ,p_event_type_code   => p_event_type_code
712                                     ,p_event_date        => p_gl_date
713                                     ,p_event_status_code => p_event_status_code
714                                     ,p_reference_info    => p_reference_info
715                                     ,p_valuation_method  => p_representation_code
716                                     ,p_security_context  => l_security_context
717                                     ,p_transaction_date  => l_transaction_date);
718 
719     ELSIF NVL(p_update_ref_info, 'N') = 'Y' AND p_event_number IS NOT NULL THEN
720       l_sla_api_name := 'UPDATE_EVENT FOR EVENT NUMBER AND REF INFO';
721      -- update one of event type, event status, event date, reference info and event number
722      xla_events_pub_pkg.update_event(p_event_source_info => l_event_source_info
723                                     ,p_event_id          => p_event_id
724                                     ,p_event_type_code   => p_event_type_code
725                                     ,p_event_date        => p_gl_date
726                                     ,p_event_status_code => p_event_status_code
727                                     ,p_event_number      => p_event_number
728                                     ,p_reference_info    => p_reference_info
729                                     ,p_valuation_method  => p_representation_code
730                                     ,p_security_context  => l_security_context
731                                     ,p_transaction_date  => l_transaction_date);
732 
733     END IF;
734   EXCEPTION
735     WHEN OTHERS THEN
736       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
737                           p_msg_name     => g_unexpected_error,
738                           p_token1       => g_sqlcode_token,
739                           p_token1_value => SQLCODE,
740                           p_token2       => g_sqlerrm_token,
741                           p_token2_value => SQLERRM);
742 
743 	  RAISE Okl_Api.G_EXCEPTION_ERROR;
744   END;
745 
746   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
747   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
748 
749   WRITE_TO_LOG('');
750   WRITE_TO_LOG('Done with ' || l_api_name);
751 
752 EXCEPTION
753   WHEN Okl_Api.G_EXCEPTION_ERROR THEN
754      IF get_tcn_csr%ISOPEN THEN
755 	    CLOSE get_tcn_csr;
756      END IF;
757 
758       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
759                                  ,g_pkg_name
760                                  ,'OKL_API.G_RET_STS_ERROR'
761                                  ,x_msg_count
762                                  ,x_msg_data
763                                  ,'_PVT');
764 
765   WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
766      IF get_tcn_csr%ISOPEN THEN
767 	    CLOSE get_tcn_csr;
768      END IF;
769 
770       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
771                           p_msg_name     => g_unexpected_error,
772                           p_token1       => g_sqlcode_token,
773                           p_token1_value => SQLCODE,
774                           p_token2       => g_sqlerrm_token,
775                           p_token2_value => SQLERRM);
776 
777       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
778                                  ,g_pkg_name
779                                  ,'OKL_API.G_RET_STS_UNEXP_ERROR'
780                                  ,x_msg_count
781                                  ,x_msg_data
782                                  ,'_PVT');
783 
784   WHEN OTHERS THEN
785      IF get_tcn_csr%ISOPEN THEN
786 	    CLOSE get_tcn_csr;
787      END IF;
788 
789      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
790                                      (l_api_name,
791                                       G_PKG_NAME,
792                                       'OTHERS',
793                                       x_msg_count,
794                                       x_msg_data,
795                                       '_PVT');
796 END update_event;
797 
798 -------------------------------------------------------------------------+
799 -- API to update the event date. This is called by Period Sweep Program.
800 -- p_gl_date represents the new event date that is stamped on events.
801 
802 PROCEDURE update_event(
803     p_api_version           IN  NUMBER
804    ,p_init_msg_list         IN  VARCHAR2
805    ,x_return_status         OUT NOCOPY VARCHAR2
806    ,x_msg_count             OUT NOCOPY NUMBER
807    ,x_msg_data              OUT NOCOPY VARCHAR2
808    ,p_tcn_id                IN  NUMBER
809    ,p_event_id              IN  NUMBER
810    ,p_gl_date               IN  DATE) IS
811 
812  CURSOR get_tcn_csr is
813  SELECT set_of_books_id,
814         legal_entity_id,
815         trunc(date_transaction_occurred) transaction_date,
816         trunc(canceled_date) cancelled_date,
817         trx_number,
818         try_id,
819 		representation_code
820    FROM okl_trx_contracts_all
821   WHERE id = p_tcn_id;
822 
823  get_tcn_rec               get_tcn_csr%ROWTYPE;
824 
825  l_event_source_info       xla_events_pub_pkg.t_event_source_info;
826  l_security_context        xla_events_pub_pkg.t_security;
827 
828  l_transaction_date        DATE;
829  l_event_id                NUMBER;
830  l_entity_type_code        VARCHAR2(30);
831  l_event_class_code        VARCHAR2(30);
832  l_event_type_code         VARCHAR2(30);
833 
834  l_api_name                VARCHAR2(20) := 'UPDATE_EVENT';
835  l_api_version    CONSTANT NUMBER := 1.0;
836  l_return_status           VARCHAR2(1);
837  l_sla_api_name            VARCHAR2(60);
838 
839 BEGIN
840    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
841                                              ,G_PKG_NAME
842                                              ,p_init_msg_list
843                                              ,l_api_version
844                                              ,p_api_version
845                                              ,'_PVT'
846                                              ,x_return_status);
847 
848     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
849       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
850     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
851       RAISE Okl_Api.G_EXCEPTION_ERROR;
852     END IF;
853 
854   WRITE_TO_LOG('');
855   WRITE_TO_LOG('Inside the call to ' || l_api_name);
856 
857   WRITE_TO_LOG('Input Parameters: ');
858   WRITE_TO_LOG('===================================');
859   WRITE_TO_LOG('p_tcn_id              : ' || p_tcn_id);
860   WRITE_TO_LOG('p_event_id            : ' || p_event_id);
861   WRITE_TO_LOG('p_gl_date             : ' || p_gl_date);
862 
863   OPEN get_tcn_csr;
864   FETCH get_tcn_csr into get_tcn_rec;
865   CLOSE get_tcn_csr;
866 
867   WRITE_TO_LOG('Contents of GET_TCN_REC:');
868   WRITE_TO_LOG('===================================');
869   WRITE_TO_LOG('get_tcn_rec.try_id          : ' || get_tcn_rec.try_id);
870   WRITE_TO_LOG('get_tcn_rec.legal_entity_id : ' || get_tcn_rec.legal_entity_id);
871   WRITE_TO_LOG('get_tcn_rec.set_of_books_id : ' || get_tcn_rec.set_of_books_id);
872   WRITE_TO_LOG('get_tcn_rec.trx_number      : ' || get_tcn_rec.trx_number);
873   WRITE_TO_LOG('get_tcn_rec.transaction_date: ' || get_tcn_rec.transaction_date);
874   WRITE_TO_LOG('get_tcn_rec.cancelled_date  : ' || get_tcn_rec.cancelled_date);
875   WRITE_TO_LOG('get_tcn_rec.representation_code  : ' || get_tcn_rec.representation_code);
876 
877   get_entity_event_class(p_try_id              =>    get_tcn_rec.try_id
878 						,p_action_type         =>    NULL
879 						,x_event_type_code     =>    l_event_type_code
880                         ,x_entity_type_code    =>    l_entity_type_code
881                         ,x_event_class_code    =>    l_event_class_code
882                         ,x_return_status       =>    l_return_status);
883 
884   IF l_return_status = Okl_Api.G_RET_STS_ERROR THEN
885      RAISE Okl_Api.G_EXCEPTION_ERROR;
886   END IF;
887 
888   l_event_source_info.source_application_id := g_application_id;
889   l_event_source_info.application_id        := g_application_id;
890   l_event_source_info.legal_entity_id       := get_tcn_rec.legal_entity_id;
891   l_event_source_info.ledger_id             := get_tcn_rec.set_of_books_id;
892   l_event_source_info.entity_type_code      := l_entity_type_code;
893   l_event_source_info.transaction_number    := get_tcn_rec.trx_number;
894   l_event_source_info.source_id_int_1       := p_tcn_id;
895 
896   l_security_context.security_id_int_1      := mo_global.get_current_org_id();
897 
898   WRITE_TO_LOG('Contents of l_event_source_info :');
899   WRITE_TO_LOG('===================================');
900   WRITE_TO_LOG('l_event_source_info.source_application_id : ' ||
901   l_event_source_info.source_application_id);
902   WRITE_TO_LOG('l_event_source_info.application_id        : ' ||
903   l_event_source_info.application_id);
904   WRITE_TO_LOG('l_event_source_info.legal_entity_id       : ' ||
905   l_event_source_info.legal_entity_id);
906   WRITE_TO_LOG('l_event_source_info.ledger_id             : ' ||
907   l_event_source_info.ledger_id);
908   WRITE_TO_LOG('l_event_source_info.entity_type_code      : ' ||
909   l_event_source_info.entity_type_code);
910   WRITE_TO_LOG('l_event_source_info.transaction_number    : ' ||
911   l_event_source_info.transaction_number);
912   WRITE_TO_LOG('l_event_source_info.source_id_int_1       : ' ||
913   l_event_source_info.source_id_int_1);
914 
915   BEGIN
916 
917      xla_events_pub_pkg.update_event(p_event_source_info => l_event_source_info
918                                     ,p_event_id          => p_event_id
919                                     ,p_event_date        => p_gl_date
920                                     ,p_valuation_method  => get_tcn_rec.representation_code
921                                     ,p_security_context  => l_security_context);
922 
923   EXCEPTION
924     WHEN OTHERS THEN
925       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
926                           p_msg_name     => g_unexpected_error,
927                           p_token1       => g_sqlcode_token,
928                           p_token1_value => SQLCODE,
929                           p_token2       => g_sqlerrm_token,
930                           p_token2_value => SQLERRM);
931 
932 	  RAISE Okl_Api.G_EXCEPTION_ERROR;
933   END;
934 
935   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
936   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
937 
938   WRITE_TO_LOG('');
939   WRITE_TO_LOG('Done with ' || l_api_name);
940 
941 EXCEPTION
942   WHEN Okl_Api.G_EXCEPTION_ERROR THEN
943      IF get_tcn_csr%ISOPEN THEN
944 	    CLOSE get_tcn_csr;
945      END IF;
946 
947       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
948                                  ,g_pkg_name
949                                  ,'OKL_API.G_RET_STS_ERROR'
950                                  ,x_msg_count
951                                  ,x_msg_data
952                                  ,'_PVT');
953 
954   WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
955      IF get_tcn_csr%ISOPEN THEN
956 	    CLOSE get_tcn_csr;
957      END IF;
958 
959       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
960                           p_msg_name     => g_unexpected_error,
961                           p_token1       => g_sqlcode_token,
962                           p_token1_value => SQLCODE,
963                           p_token2       => g_sqlerrm_token,
964                           p_token2_value => SQLERRM);
965 
966       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
967                                  ,g_pkg_name
968                                  ,'OKL_API.G_RET_STS_UNEXP_ERROR'
969                                  ,x_msg_count
970                                  ,x_msg_data
971                                  ,'_PVT');
972 
973   WHEN OTHERS THEN
974      IF get_tcn_csr%ISOPEN THEN
975 	    CLOSE get_tcn_csr;
976      END IF;
977 
978      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
979                                      (l_api_name,
980                                       G_PKG_NAME,
981                                       'OTHERS',
982                                       x_msg_count,
983                                       x_msg_data,
984                                       '_PVT');
985 END update_event;
986 
987 -------------------------------------------------------------------------+
988 -- API to update the event status in bulk. If p_action_type is null, then
989 -- events for both create and reverse event types are updated.
990 
991 PROCEDURE update_bulk_event_statuses(
992     p_api_version        IN  NUMBER
993    ,p_init_msg_list      IN  VARCHAR2
994    ,x_return_status      OUT NOCOPY VARCHAR2
995    ,x_msg_count          OUT NOCOPY NUMBER
996    ,x_msg_data           OUT NOCOPY VARCHAR2
997    ,p_tcn_tbl            IN  tcn_tbl_type
998    ,p_try_id             IN  NUMBER
999    ,p_ledger_id          IN  NUMBER
1000    ,p_action_type        IN  VARCHAR2
1001    ,p_event_status_code  IN  VARCHAR2) IS
1002 
1003 l_entity_type_code       VARCHAR2(30);
1004 l_event_class_code       VARCHAR2(30);
1005 l_event_type_code        VARCHAR2(100);
1006 
1007  l_api_name                VARCHAR2(30) := 'UPDATE_BULK_EVENT_STATUSES';
1008  l_api_version    CONSTANT NUMBER := 1.0;
1009  l_event_id                NUMBER;
1010  l_sla_api_name            VARCHAR2(30);
1011  l_return_status           VARCHAR2(1);
1012 BEGIN
1013 
1014    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
1015                                              ,G_PKG_NAME
1016                                              ,p_init_msg_list
1017                                              ,l_api_version
1018                                              ,p_api_version
1019                                              ,'_PVT'
1020                                              ,x_return_status);
1021 
1022     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1023       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1024     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
1025       RAISE Okl_Api.G_EXCEPTION_ERROR;
1026     END IF;
1027 
1028   WRITE_TO_LOG('');
1029   WRITE_TO_LOG('Inside the call to ' || l_api_name);
1030 
1031   WRITE_TO_LOG('Input Parameters: ');
1032   WRITE_TO_LOG('===================================');
1033   WRITE_TO_LOG('p_try_id              : ' || p_try_id);
1034   WRITE_TO_LOG('p_ledger_id           : ' || p_ledger_id);
1035   WRITE_TO_LOG('p_action_type         : ' || p_action_type);
1036   WRITE_TO_LOG('p_event_status_code   : ' || p_event_status_code);
1037 
1038   IF p_tcn_tbl.count > 0 THEN
1039     FOR i IN 1..p_tcn_tbl.COUNT LOOP
1040       WRITE_TO_LOG('p_tcn_tbl(' || i || ')            : ' || p_tcn_tbl(i));
1041     END LOOP;
1042   END IF;
1043 
1044   IF p_tcn_tbl.count = 0 THEN
1045      RETURN;
1046   END IF;
1047 
1048   -- if p_action_type is null, then l_event_type_code returned will be null.
1049   get_entity_event_class(p_try_id              =>    p_try_id
1050 						,p_action_type         =>    p_action_type
1051 						,x_event_type_code     =>    l_event_type_code
1052                         ,x_entity_type_code    =>    l_entity_type_code
1053                         ,x_event_class_code    =>    l_event_class_code
1054                         ,x_return_status       =>    l_return_status);
1055 
1056   IF l_return_status = Okl_Api.G_RET_STS_ERROR THEN
1057      RAISE Okl_Api.G_EXCEPTION_ERROR;
1058   END IF;
1059 
1060   FORALL i IN 1..p_tcn_tbl.COUNT
1061   INSERT INTO xla_events_int_gt(
1062 	     application_id,
1063 	     entity_code,
1064 	     ledger_id,
1065 	     event_id,
1066 	     event_status_code)
1067   SELECT g_application_id,
1068 	     l_entity_type_code,
1069 	     p_ledger_id,
1070 	     xe.event_id,
1071 	     p_event_status_code
1072     FROM xla_events xe,
1073          xla_transaction_entities xte
1074    WHERE xe.entity_id = xte.entity_id
1075      AND xte.application_id = g_application_id
1076      AND xte.ledger_id = p_ledger_id
1077      AND xte.source_id_int_1 = p_tcn_tbl(i)
1078      AND xe.application_id = g_application_id
1079      AND xe.event_type_code = NVL(l_event_type_code, xe.event_type_code);
1080 
1081   BEGIN
1082     l_sla_api_name := 'UPDATE_BULK_EVENT_STATUSES';
1083     XLA_EVENTS_PUB_PKG.update_bulk_event_statuses(p_application_id => g_application_id);
1084   EXCEPTION
1085     WHEN OTHERS THEN
1086       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
1087                           p_msg_name     => g_unexpected_error,
1088                           p_token1       => g_sqlcode_token,
1089                           p_token1_value => SQLCODE,
1090                           p_token2       => g_sqlerrm_token,
1091                           p_token2_value => SQLERRM);
1092 
1093 	  RAISE Okl_Api.G_EXCEPTION_ERROR;
1094   END;
1095 
1096   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1097   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
1098 
1099   WRITE_TO_LOG('');
1100   WRITE_TO_LOG('Done with ' || l_api_name);
1101 
1102 EXCEPTION
1103   WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1104       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
1105                                  ,g_pkg_name
1106                                  ,'OKL_API.G_RET_STS_ERROR'
1107                                  ,x_msg_count
1108                                  ,x_msg_data
1109                                  ,'_PVT');
1110 
1111   WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1112       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
1113                           p_msg_name     => g_unexpected_error,
1114                           p_token1       => g_sqlcode_token,
1115                           p_token1_value => SQLCODE,
1116                           p_token2       => g_sqlerrm_token,
1117                           p_token2_value => SQLERRM);
1118 
1119       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
1120                                  ,g_pkg_name
1121                                  ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1122                                  ,x_msg_count
1123                                  ,x_msg_data
1124                                  ,'_PVT');
1125 
1126   WHEN OTHERS THEN
1127      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1128                                      (l_api_name,
1129                                       G_PKG_NAME,
1130                                       'OTHERS',
1131                                       x_msg_count,
1132                                       x_msg_data,
1133                                       '_PVT');
1134 END update_bulk_event_statuses;
1135 
1136 -------------------------------------------------------------------------------
1137 -- Event deletion routines
1138 -------------------------------------------------------------------------------
1139 -- API to delete a single unaccounted event based on event id.
1140 PROCEDURE delete_event(
1141     p_api_version           IN  NUMBER
1142    ,p_init_msg_list         IN  VARCHAR2
1143    ,x_return_status         OUT NOCOPY VARCHAR2
1144    ,x_msg_count             OUT NOCOPY NUMBER
1145    ,x_msg_data              OUT NOCOPY VARCHAR2
1146    ,p_tcn_id                IN  NUMBER
1147    ,p_event_id              IN  NUMBER
1148    ,p_representation_code   IN  VARCHAR2) IS
1149 
1150  CURSOR get_tcn_csr is
1151  SELECT set_of_books_id,
1152         legal_entity_id,
1153         trunc(date_transaction_occurred) transaction_date,
1154         trunc(canceled_date) cancelled_date,
1155         trx_number,
1156         try_id
1157    FROM okl_trx_contracts
1158   WHERE id = p_tcn_id;
1159 
1160  get_tcn_rec               get_tcn_csr%ROWTYPE;
1161 
1162  l_event_source_info       xla_events_pub_pkg.t_event_source_info;
1163  l_security_context        xla_events_pub_pkg.t_security;
1164 
1165  l_transaction_date        DATE;
1166  l_event_id                NUMBER;
1167  l_entity_type_code        VARCHAR2(30);
1168  l_event_class_code        VARCHAR2(30);
1169  l_event_type_code         VARCHAR2(30);
1170 
1171  l_api_name                VARCHAR2(30) := 'DELETE_EVENT';
1172  l_api_version    CONSTANT NUMBER := 1.0;
1173  l_return_status           VARCHAR2(1);
1174 
1175 BEGIN
1176 
1177    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
1178                                              ,G_PKG_NAME
1179                                              ,p_init_msg_list
1180                                              ,l_api_version
1181                                              ,p_api_version
1182                                              ,'_PVT'
1183                                              ,x_return_status);
1184 
1185     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1186       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1187     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
1188       RAISE Okl_Api.G_EXCEPTION_ERROR;
1189     END IF;
1190 
1191   WRITE_TO_LOG('');
1192   WRITE_TO_LOG('Inside the call to ' || l_api_name);
1193 
1194   WRITE_TO_LOG('Input Parameters: ');
1195   WRITE_TO_LOG('===================================');
1196   WRITE_TO_LOG('p_tcn_id              : ' || p_tcn_id);
1197   WRITE_TO_LOG('p_event_id            : ' || p_event_id);
1198   WRITE_TO_LOG('p_representation_code : ' || p_representation_code);
1199 
1200   OPEN get_tcn_csr;
1201   FETCH get_tcn_csr into get_tcn_rec;
1202   CLOSE get_tcn_csr;
1203 
1204   WRITE_TO_LOG('Contents of GET_TCN_REC:');
1205   WRITE_TO_LOG('===================================');
1206   WRITE_TO_LOG('get_tcn_rec.try_id          : ' || get_tcn_rec.try_id);
1207   WRITE_TO_LOG('get_tcn_rec.legal_entity_id : ' || get_tcn_rec.legal_entity_id);
1208   WRITE_TO_LOG('get_tcn_rec.set_of_books_id : ' || get_tcn_rec.set_of_books_id);
1209   WRITE_TO_LOG('get_tcn_rec.trx_number      : ' || get_tcn_rec.trx_number);
1210   WRITE_TO_LOG('get_tcn_rec.transaction_date: ' || get_tcn_rec.transaction_date);
1211   WRITE_TO_LOG('get_tcn_rec.cancelled_date  : ' || get_tcn_rec.cancelled_date);
1212 
1213   get_entity_event_class(p_try_id              =>    get_tcn_rec.try_id
1214 						,p_action_type         =>    NULL
1215 						,x_event_type_code     =>    l_event_type_code
1216                         ,x_entity_type_code    =>    l_entity_type_code
1217                         ,x_event_class_code    =>    l_event_class_code
1218                         ,x_return_status       =>    l_return_status);
1219 
1220   IF l_return_status = Okl_Api.G_RET_STS_ERROR THEN
1221      RAISE Okl_Api.G_EXCEPTION_ERROR;
1222   END IF;
1223 
1224   l_event_source_info.source_application_id := g_application_id;
1225   l_event_source_info.application_id        := g_application_id;
1226   l_event_source_info.legal_entity_id       := get_tcn_rec.legal_entity_id;
1227   l_event_source_info.ledger_id             := get_tcn_rec.set_of_books_id;
1228   l_event_source_info.entity_type_code      := l_entity_type_code;
1229   l_event_source_info.transaction_number    := get_tcn_rec.trx_number;
1230   l_event_source_info.source_id_int_1       := p_tcn_id;
1231 
1232   l_security_context.security_id_int_1         := mo_global.get_current_org_id();
1233 
1234   WRITE_TO_LOG('Contents of l_event_source_info :');
1235   WRITE_TO_LOG('===================================');
1236   WRITE_TO_LOG('l_event_source_info.source_application_id : ' ||
1237   l_event_source_info.source_application_id);
1238   WRITE_TO_LOG('l_event_source_info.application_id        : ' ||
1239   l_event_source_info.application_id);
1240   WRITE_TO_LOG('l_event_source_info.legal_entity_id       : ' ||
1241   l_event_source_info.legal_entity_id);
1242   WRITE_TO_LOG('l_event_source_info.ledger_id             : ' ||
1243   l_event_source_info.ledger_id);
1244   WRITE_TO_LOG('l_event_source_info.entity_type_code      : ' ||
1245   l_event_source_info.entity_type_code);
1246   WRITE_TO_LOG('l_event_source_info.transaction_number    : ' ||
1247   l_event_source_info.transaction_number);
1248   WRITE_TO_LOG('l_event_source_info.source_id_int_1       : ' ||
1249   l_event_source_info.source_id_int_1);
1250 
1251   BEGIN
1252 
1253   xla_events_pub_pkg.delete_event(p_event_source_info => l_event_source_info
1254                                  ,p_event_id          => p_event_id
1255                                  ,p_valuation_method  => p_representation_code
1256                                  ,p_security_context  => l_security_context);
1257   EXCEPTION
1258      WHEN OTHERS THEN
1259       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
1260                           p_msg_name     => g_unexpected_error,
1261                           p_token1       => g_sqlcode_token,
1262                           p_token1_value => SQLCODE,
1263                           p_token2       => g_sqlerrm_token,
1264                           p_token2_value => SQLERRM);
1265 
1266 	  RAISE Okl_Api.G_EXCEPTION_ERROR;
1267   END;
1268 
1269   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1270   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
1271 
1272   WRITE_TO_LOG('');
1273   WRITE_TO_LOG('Done with ' || l_api_name);
1274 
1275 EXCEPTION
1276   WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1277      IF get_tcn_csr%ISOPEN THEN
1278 	    CLOSE get_tcn_csr;
1279      END IF;
1280 
1281       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
1282                                  ,g_pkg_name
1283                                  ,'OKL_API.G_RET_STS_ERROR'
1284                                  ,x_msg_count
1285                                  ,x_msg_data
1286                                  ,'_PVT');
1287 
1288   WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1289      IF get_tcn_csr%ISOPEN THEN
1290 	    CLOSE get_tcn_csr;
1291      END IF;
1292 
1293       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
1294                           p_msg_name     => g_unexpected_error,
1295                           p_token1       => g_sqlcode_token,
1296                           p_token1_value => SQLCODE,
1297                           p_token2       => g_sqlerrm_token,
1298                           p_token2_value => SQLERRM);
1299 
1300       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
1301                                  ,g_pkg_name
1302                                  ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1303                                  ,x_msg_count
1304                                  ,x_msg_data
1305                                  ,'_PVT');
1306 
1307   WHEN OTHERS THEN
1308      IF get_tcn_csr%ISOPEN THEN
1309 	    CLOSE get_tcn_csr;
1310      END IF;
1311 
1312      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1313                                      (l_api_name,
1314                                       G_PKG_NAME,
1315                                       'OTHERS',
1316                                       x_msg_count,
1317                                       x_msg_data,
1318                                       '_PVT');
1319 END delete_event;
1320 
1321 -- API to delete all events for a transaction that meet the criteria. This
1322 -- API deletes events that belong to the given event class, event type, and
1323 -- event date. Returns number of events deleted. Returns -1 if an error occurs.
1324 FUNCTION delete_events(
1325     p_api_version           IN  NUMBER
1326    ,p_init_msg_list         IN  VARCHAR2
1327    ,x_return_status         OUT NOCOPY VARCHAR2
1328    ,x_msg_count             OUT NOCOPY NUMBER
1329    ,x_msg_data              OUT NOCOPY VARCHAR2
1330    ,p_tcn_id                IN  NUMBER
1331    ,p_action_type           IN  VARCHAR2
1332    ,p_gl_date               IN  DATE
1333    ,p_representation_code   IN  VARCHAR2)
1334 RETURN INTEGER IS
1335 
1336  CURSOR get_tcn_csr is
1337  SELECT set_of_books_id,
1338         legal_entity_id,
1339         TRUNC(date_transaction_occurred) transaction_date,
1340         TRUNC(canceled_date) cancelled_date,
1341         trx_number,
1342         try_id
1343    FROM okl_trx_contracts
1344   WHERE id = p_tcn_id;
1345 
1346  get_tcn_rec               get_tcn_csr%ROWTYPE;
1347 
1348  l_event_source_info       xla_events_pub_pkg.t_event_source_info;
1349  l_security_context        xla_events_pub_pkg.t_security;
1350 
1351  l_transaction_date        DATE;
1352  l_event_id                NUMBER;
1353  l_entity_type_code        VARCHAR2(30);
1354  l_event_class_code        VARCHAR2(30);
1355  l_event_type_code         VARCHAR2(30);
1356 
1357  l_api_name                VARCHAR2(30) := 'DELETE_EVENTS';
1358  l_api_version    CONSTANT NUMBER := 1.0;
1359 
1360  l_return_status           VARCHAR2(1);
1361  l_events_deleted          NUMBER;
1362 
1363 BEGIN
1364    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
1365                                              ,G_PKG_NAME
1366                                              ,p_init_msg_list
1367                                              ,l_api_version
1368                                              ,p_api_version
1369                                              ,'_PVT'
1370                                              ,x_return_status);
1371 
1372     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1373       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1374     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
1375       RAISE Okl_Api.G_EXCEPTION_ERROR;
1376     END IF;
1377 
1378   WRITE_TO_LOG('');
1379   WRITE_TO_LOG('Inside the call to ' || l_api_name);
1380 
1381   WRITE_TO_LOG('Input Parameters: ');
1382   WRITE_TO_LOG('===================================');
1383   WRITE_TO_LOG('p_tcn_id              : ' || p_tcn_id);
1384   WRITE_TO_LOG('p_gl_date             : ' || p_gl_date);
1385   WRITE_TO_LOG('p_action_type         : ' || p_action_type);
1386   WRITE_TO_LOG('p_representation_code : ' || p_representation_code);
1387 
1388   OPEN get_tcn_csr;
1389   FETCH get_tcn_csr into get_tcn_rec;
1390   CLOSE get_tcn_csr;
1391 
1392   WRITE_TO_LOG('Contents of GET_TCN_REC:');
1393   WRITE_TO_LOG('===================================');
1394   WRITE_TO_LOG('get_tcn_rec.try_id          : ' || get_tcn_rec.try_id);
1395   WRITE_TO_LOG('get_tcn_rec.legal_entity_id : ' || get_tcn_rec.legal_entity_id);
1396   WRITE_TO_LOG('get_tcn_rec.set_of_books_id : ' || get_tcn_rec.set_of_books_id);
1397   WRITE_TO_LOG('get_tcn_rec.trx_number      : ' || get_tcn_rec.trx_number);
1398   WRITE_TO_LOG('get_tcn_rec.transaction_date: ' || get_tcn_rec.transaction_date);
1399   WRITE_TO_LOG('get_tcn_rec.cancelled_date  : ' || get_tcn_rec.cancelled_date);
1400 
1401   get_entity_event_class(p_try_id              =>    get_tcn_rec.try_id
1402 						,p_action_type         =>    p_action_type
1403 						,x_event_type_code     =>    l_event_type_code
1404                         ,x_entity_type_code    =>    l_entity_type_code
1405                         ,x_event_class_code    =>    l_event_class_code
1406                         ,x_return_status       =>    l_return_status);
1407 
1408   IF l_return_status = Okl_Api.G_RET_STS_ERROR THEN
1409      RAISE Okl_Api.G_EXCEPTION_ERROR;
1410   END IF;
1411 
1412   l_event_source_info.source_application_id := g_application_id;
1413   l_event_source_info.application_id        := g_application_id;
1414   l_event_source_info.legal_entity_id       := get_tcn_rec.legal_entity_id;
1415   l_event_source_info.ledger_id             := get_tcn_rec.set_of_books_id;
1416   l_event_source_info.entity_type_code      := l_entity_type_code;
1417   l_event_source_info.transaction_number    := get_tcn_rec.trx_number;
1418   l_event_source_info.source_id_int_1       := p_tcn_id;
1419 
1420   l_security_context.security_id_int_1      := mo_global.get_current_org_id();
1421 
1422   WRITE_TO_LOG('Contents of l_event_source_info :');
1423   WRITE_TO_LOG('===================================');
1424   WRITE_TO_LOG('l_event_source_info.source_application_id : ' ||
1425   l_event_source_info.source_application_id);
1426   WRITE_TO_LOG('l_event_source_info.application_id        : ' ||
1427   l_event_source_info.application_id);
1428   WRITE_TO_LOG('l_event_source_info.legal_entity_id       : ' ||
1429   l_event_source_info.legal_entity_id);
1430   WRITE_TO_LOG('l_event_source_info.ledger_id             : ' ||
1431   l_event_source_info.ledger_id);
1432   WRITE_TO_LOG('l_event_source_info.entity_type_code      : ' ||
1433   l_event_source_info.entity_type_code);
1434   WRITE_TO_LOG('l_event_source_info.transaction_number    : ' ||
1435   l_event_source_info.transaction_number);
1436   WRITE_TO_LOG('l_event_source_info.source_id_int_1       : ' ||
1437   l_event_source_info.source_id_int_1);
1438 
1439   IF p_action_type       = 'CREATE' THEN
1440      l_transaction_date := get_tcn_rec.transaction_date;
1441   ELSIF p_action_type    = 'REVERSE' THEN
1442      l_transaction_date := get_tcn_rec.cancelled_date;
1443   END IF;
1444 
1445   BEGIN
1446      l_events_deleted :=
1447          xla_events_pub_pkg.delete_events(p_event_source_info => l_event_source_info
1448                                          ,p_event_class_code  => l_event_class_code
1449                                          ,p_event_type_code   => l_event_type_code
1450                                          ,p_event_date        => p_gl_date
1451                                          ,p_valuation_method  => p_representation_code
1452                                          ,p_security_context  => l_security_context);
1453   EXCEPTION
1454     WHEN OTHERS THEN
1455       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
1456                           p_msg_name     => g_unexpected_error,
1457                           p_token1       => g_sqlcode_token,
1458                           p_token1_value => SQLCODE,
1459                           p_token2       => g_sqlerrm_token,
1460                           p_token2_value => SQLERRM);
1461 
1462 	  RAISE Okl_Api.G_EXCEPTION_ERROR;
1463   END;
1464 
1465   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1466   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
1467 
1468   WRITE_TO_LOG('');
1469   WRITE_TO_LOG('Done with ' || l_api_name);
1470 
1471   return l_events_deleted;
1472 
1473 EXCEPTION
1474   WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1475      IF get_tcn_csr%ISOPEN THEN
1476 	    CLOSE get_tcn_csr;
1477      END IF;
1478 
1479       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
1480                                  ,g_pkg_name
1481                                  ,'OKL_API.G_RET_STS_ERROR'
1482                                  ,x_msg_count
1483                                  ,x_msg_data
1484                                  ,'_PVT');
1485   return -1;
1486   WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1487      IF get_tcn_csr%ISOPEN THEN
1488 	    CLOSE get_tcn_csr;
1489      END IF;
1490 
1491       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
1492                           p_msg_name     => g_unexpected_error,
1493                           p_token1       => g_sqlcode_token,
1494                           p_token1_value => SQLCODE,
1495                           p_token2       => g_sqlerrm_token,
1496                           p_token2_value => SQLERRM);
1497 
1498       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
1499                                  ,g_pkg_name
1500                                  ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1501                                  ,x_msg_count
1502                                  ,x_msg_data
1503                                  ,'_PVT');
1504   return -1;
1505   WHEN OTHERS THEN
1506      IF get_tcn_csr%ISOPEN THEN
1507 	    CLOSE get_tcn_csr;
1508      END IF;
1509 
1510      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1511                                      (l_api_name,
1512                                       G_PKG_NAME,
1513                                       'OTHERS',
1514                                       x_msg_count,
1515                                       x_msg_data,
1516                                       '_PVT');
1517 
1518 	 return -1;
1519 END delete_events;
1520 
1521 -------------------------------------------------------------------------------
1522 -- Event information routines
1523 -------------------------------------------------------------------------------
1524 -- API to return the information about an event in a record structure.
1525 FUNCTION get_event_info(
1526     p_api_version           IN  NUMBER
1527    ,p_init_msg_list         IN  VARCHAR2
1528    ,x_return_status         OUT NOCOPY VARCHAR2
1529    ,x_msg_count             OUT NOCOPY NUMBER
1530    ,x_msg_data              OUT NOCOPY VARCHAR2
1531    ,p_tcn_id                IN  NUMBER
1532    ,p_event_id              IN  NUMBER
1533    ,p_representation_code   IN  VARCHAR2)
1534  RETURN xla_events_pub_pkg.t_event_info IS
1535 
1536  CURSOR get_tcn_csr IS
1537  SELECT set_of_books_id,
1538         legal_entity_id,
1539         TRUNC(date_transaction_occurred) transaction_date,
1540         TRUNC(canceled_date) cancelled_date,
1541         trx_number,
1542         try_id
1543    FROM okl_trx_contracts
1544   WHERE id = p_tcn_id;
1545 
1546  get_tcn_rec               get_tcn_csr%ROWTYPE;
1547 
1548  l_event_source_info       xla_events_pub_pkg.t_event_source_info;
1549  l_security_context        xla_events_pub_pkg.t_security;
1550  l_event_info              xla_events_pub_pkg.t_event_info;
1551 
1552  l_entity_type_code        VARCHAR2(30);
1553  l_event_class_code        VARCHAR2(30);
1554  l_event_type_code         VARCHAR2(30);
1555 
1556  l_api_name                VARCHAR2(30) := 'GET_EVENT_INFO';
1557  l_api_version    CONSTANT NUMBER := 1.0;
1558 
1559  l_init_msg_list           VARCHAR2(2000) := OKL_API.G_TRUE;
1560  l_return_status           VARCHAR2(1);
1561  l_msg_count               NUMBER;
1562  l_msg_data                VARCHAR2(2000);
1563 
1564 BEGIN
1565    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
1566                                              ,G_PKG_NAME
1567                                              ,p_init_msg_list
1568                                              ,l_api_version
1569                                              ,p_api_version
1570                                              ,'_PVT'
1571                                              ,x_return_status);
1572 
1573     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1574       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1575     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
1576       RAISE Okl_Api.G_EXCEPTION_ERROR;
1577     END IF;
1578 
1579   WRITE_TO_LOG('');
1580   WRITE_TO_LOG('Inside the call to ' || l_api_name);
1581 
1582   WRITE_TO_LOG('Input Parameters: ');
1583   WRITE_TO_LOG('===================================');
1584   WRITE_TO_LOG('p_tcn_id              : ' || p_tcn_id);
1585   WRITE_TO_LOG('p_event_id            : ' || p_event_id);
1586   WRITE_TO_LOG('p_representation_code : ' || p_representation_code);
1587 
1588   OPEN get_tcn_csr;
1589   FETCH get_tcn_csr into get_tcn_rec;
1590   CLOSE get_tcn_csr;
1591 
1592   WRITE_TO_LOG('Contents of GET_TCN_REC:');
1593   WRITE_TO_LOG('===================================');
1594   WRITE_TO_LOG('get_tcn_rec.try_id          : ' || get_tcn_rec.try_id);
1595   WRITE_TO_LOG('get_tcn_rec.legal_entity_id : ' || get_tcn_rec.legal_entity_id);
1596   WRITE_TO_LOG('get_tcn_rec.set_of_books_id : ' || get_tcn_rec.set_of_books_id);
1597   WRITE_TO_LOG('get_tcn_rec.trx_number      : ' || get_tcn_rec.trx_number);
1598   WRITE_TO_LOG('get_tcn_rec.transaction_date: ' || get_tcn_rec.transaction_date);
1599   WRITE_TO_LOG('get_tcn_rec.cancelled_date  : ' || get_tcn_rec.cancelled_date);
1600 
1601   get_entity_event_class(p_try_id              =>    get_tcn_rec.try_id
1602 						,p_action_type         =>    NULL
1603 						,x_event_type_code     =>    l_event_type_code
1604                         ,x_entity_type_code    =>    l_entity_type_code
1605                         ,x_event_class_code    =>    l_event_class_code
1606                         ,x_return_status       =>    l_return_status);
1607 
1608   IF l_return_status = Okl_Api.G_RET_STS_ERROR THEN
1609      RAISE Okl_Api.G_EXCEPTION_ERROR;
1610   END IF;
1611 
1612   l_event_source_info.source_application_id := g_application_id;
1613   l_event_source_info.application_id        := g_application_id;
1614   l_event_source_info.legal_entity_id       := get_tcn_rec.legal_entity_id;
1615   l_event_source_info.ledger_id             := get_tcn_rec.set_of_books_id;
1616   l_event_source_info.entity_type_code      := l_entity_type_code;
1617   l_event_source_info.transaction_number    := get_tcn_rec.trx_number;
1618   l_event_source_info.source_id_int_1       := p_tcn_id;
1619 
1620   l_security_context.security_id_int_1      := mo_global.get_current_org_id();
1621 
1622   WRITE_TO_LOG('Contents of l_event_source_info :');
1623   WRITE_TO_LOG('===================================');
1624   WRITE_TO_LOG('l_event_source_info.source_application_id : ' ||
1625   l_event_source_info.source_application_id);
1626   WRITE_TO_LOG('l_event_source_info.application_id        : ' ||
1627   l_event_source_info.application_id);
1628   WRITE_TO_LOG('l_event_source_info.legal_entity_id       : ' ||
1629   l_event_source_info.legal_entity_id);
1630   WRITE_TO_LOG('l_event_source_info.ledger_id             : ' ||
1631   l_event_source_info.ledger_id);
1632   WRITE_TO_LOG('l_event_source_info.entity_type_code      : ' ||
1633   l_event_source_info.entity_type_code);
1634   WRITE_TO_LOG('l_event_source_info.transaction_number    : ' ||
1635   l_event_source_info.transaction_number);
1636   WRITE_TO_LOG('l_event_source_info.source_id_int_1       : ' ||
1637   l_event_source_info.source_id_int_1);
1638 
1639   BEGIN
1640     l_event_info :=
1641        xla_events_pub_pkg.get_event_info(p_event_source_info => l_event_source_info
1642                                         ,p_event_id          => p_event_id
1643                                         ,p_valuation_method  => p_representation_code
1644                                         ,p_security_context  => l_security_context);
1645   EXCEPTION
1646     WHEN OTHERS THEN
1647       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
1648                           p_msg_name     => g_unexpected_error,
1649                           p_token1       => g_sqlcode_token,
1650                           p_token1_value => SQLCODE,
1651                           p_token2       => g_sqlerrm_token,
1652                           p_token2_value => SQLERRM);
1653 
1654 	  RAISE Okl_Api.G_EXCEPTION_ERROR;
1655   END;
1656 
1657   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1658   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
1659 
1660   WRITE_TO_LOG('');
1661   WRITE_TO_LOG('Done with ' || l_api_name);
1662 
1663   return l_event_info;
1664 
1665 EXCEPTION
1666   WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1667      IF get_tcn_csr%ISOPEN THEN
1668 	    CLOSE get_tcn_csr;
1669      END IF;
1670 
1671       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
1672                                  ,g_pkg_name
1673                                  ,'OKL_API.G_RET_STS_ERROR'
1674                                  ,x_msg_count
1675                                  ,x_msg_data
1676                                  ,'_PVT');
1677   RETURN NULL;
1678   WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1679      IF get_tcn_csr%ISOPEN THEN
1680 	    CLOSE get_tcn_csr;
1681      END IF;
1682 
1683       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
1684                           p_msg_name     => g_unexpected_error,
1685                           p_token1       => g_sqlcode_token,
1686                           p_token1_value => SQLCODE,
1687                           p_token2       => g_sqlerrm_token,
1688                           p_token2_value => SQLERRM);
1689 
1690       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
1691                                  ,g_pkg_name
1692                                  ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1693                                  ,x_msg_count
1694                                  ,x_msg_data
1695                                  ,'_PVT');
1696   RETURN NULL;
1697   WHEN OTHERS THEN
1698      IF get_tcn_csr%ISOPEN THEN
1699 	    CLOSE get_tcn_csr;
1700      END IF;
1701 
1702      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1703                                      (l_api_name,
1704                                       G_PKG_NAME,
1705                                       'OTHERS',
1706                                       x_msg_count,
1707                                       x_msg_data,
1708                                       '_PVT');
1709 
1710 	 return NULL;
1711 END get_event_info;
1712 
1713 -- API to return information for one or more events within a transaction for
1714 -- a given criteria. An array of records is returned with the event info.
1715 -- If action_type is passed, then the events corresponding to that event_type
1716 -- will be returned.
1717 -- If p_action_type is null, then all events for that event class will be
1718 -- returned.
1719 -- If gl_date is passed, all events for the transaction matching event date will be
1720 -- returned.
1721 FUNCTION get_array_event_info(
1722     p_api_version           IN  NUMBER
1723    ,p_init_msg_list         IN  VARCHAR2
1724    ,x_return_status         OUT NOCOPY VARCHAR2
1725    ,x_msg_count             OUT NOCOPY NUMBER
1726    ,x_msg_data              OUT NOCOPY VARCHAR2
1727    ,p_tcn_id                IN  NUMBER
1728    ,p_action_type           IN  VARCHAR2
1729    ,p_gl_date               IN  DATE
1730    ,p_event_status_code     IN  VARCHAR2
1731    ,p_representation_code   IN  VARCHAR2)
1732 RETURN xla_events_pub_pkg.t_array_event_info IS
1733 
1734  CURSOR get_tcn_csr is
1735  SELECT set_of_books_id,
1736         legal_entity_id,
1737         TRUNC(date_transaction_occurred) transaction_date,
1738         TRUNC(canceled_date) cancelled_date,
1739         trx_number,
1740         try_id
1741    FROM okl_trx_contracts
1742   WHERE id = p_tcn_id;
1743 
1744  get_tcn_rec               get_tcn_csr%ROWTYPE;
1745 
1746  l_event_source_info       xla_events_pub_pkg.t_event_source_info;
1747  l_security_context        xla_events_pub_pkg.t_security;
1748  l_array_event_info        xla_events_pub_pkg.t_array_event_info;
1749  l_array_event_info_null   xla_events_pub_pkg.t_array_event_info;
1750 
1751  l_entity_type_code        VARCHAR2(30);
1752  l_event_class_code        VARCHAR2(30);
1753  l_event_type_code         VARCHAR2(30);
1754 
1755  l_api_name                VARCHAR2(30) := 'GET_ARRAY_EVENT_INFO';
1756  l_api_version    CONSTANT NUMBER := 1.0;
1757 
1758  l_init_msg_list           VARCHAR2(2000) := OKL_API.G_FALSE;
1759  l_return_status           VARCHAR2(1);
1760  l_msg_count               NUMBER;
1761  l_msg_data                VARCHAR2(2000);
1762 
1763 
1764 BEGIN
1765    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
1766                                              ,G_PKG_NAME
1767                                              ,p_init_msg_list
1768                                              ,l_api_version
1769                                              ,p_api_version
1770                                              ,'_PVT'
1771                                              ,x_return_status);
1772 
1773     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1774       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1775     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
1776       RAISE Okl_Api.G_EXCEPTION_ERROR;
1777     END IF;
1778 
1779   l_array_event_info_null := l_array_event_info;
1780 
1781   WRITE_TO_LOG('');
1782   WRITE_TO_LOG('Inside the call to ' || l_api_name);
1783 
1784   WRITE_TO_LOG('Input Parameters: ');
1785   WRITE_TO_LOG('===================================');
1786   WRITE_TO_LOG('p_tcn_id              : ' || p_tcn_id);
1787   WRITE_TO_LOG('p_gl_date             : ' || p_gl_date);
1788   WRITE_TO_LOG('p_action_type         : ' || p_action_type);
1789   WRITE_TO_LOG('p_event_status_code   : ' || p_event_status_code);
1790   WRITE_TO_LOG('p_representation_code : ' || p_representation_code);
1791 
1792   OPEN get_tcn_csr;
1793   FETCH get_tcn_csr into get_tcn_rec;
1794   CLOSE get_tcn_csr;
1795 
1796   WRITE_TO_LOG('Contents of GET_TCN_REC:');
1797   WRITE_TO_LOG('===================================');
1798   WRITE_TO_LOG('get_tcn_rec.try_id          : ' || get_tcn_rec.try_id);
1799   WRITE_TO_LOG('get_tcn_rec.legal_entity_id : ' || get_tcn_rec.legal_entity_id);
1800   WRITE_TO_LOG('get_tcn_rec.set_of_books_id : ' || get_tcn_rec.set_of_books_id);
1801   WRITE_TO_LOG('get_tcn_rec.trx_number      : ' || get_tcn_rec.trx_number);
1802   WRITE_TO_LOG('get_tcn_rec.transaction_date: ' || get_tcn_rec.transaction_date);
1803   WRITE_TO_LOG('get_tcn_rec.cancelled_date  : ' || get_tcn_rec.cancelled_date);
1804 
1805   get_entity_event_class(p_try_id              =>    get_tcn_rec.try_id
1806 						,p_action_type         =>    p_action_type
1807 						,x_event_type_code     =>    l_event_type_code
1808                         ,x_entity_type_code    =>    l_entity_type_code
1809                         ,x_event_class_code    =>    l_event_class_code
1810                         ,x_return_status       =>    l_return_status);
1811 
1812   IF l_return_status = Okl_Api.G_RET_STS_ERROR THEN
1813      RAISE Okl_Api.G_EXCEPTION_ERROR;
1814   END IF;
1815 
1816   l_event_source_info.source_application_id := g_application_id;
1817   l_event_source_info.application_id        := g_application_id;
1818   l_event_source_info.legal_entity_id       := get_tcn_rec.legal_entity_id;
1819   l_event_source_info.ledger_id             := get_tcn_rec.set_of_books_id;
1820   l_event_source_info.entity_type_code      := l_entity_type_code;
1821   l_event_source_info.transaction_number    := get_tcn_rec.trx_number;
1822   l_event_source_info.source_id_int_1       := p_tcn_id;
1823 
1824   l_security_context.security_id_int_1      := mo_global.get_current_org_id();
1825 
1826   WRITE_TO_LOG('Contents of l_event_source_info :');
1827   WRITE_TO_LOG('===================================');
1828   WRITE_TO_LOG('l_event_source_info.source_application_id : ' ||
1829   l_event_source_info.source_application_id);
1830   WRITE_TO_LOG('l_event_source_info.application_id        : ' ||
1831   l_event_source_info.application_id);
1832   WRITE_TO_LOG('l_event_source_info.legal_entity_id       : ' ||
1833   l_event_source_info.legal_entity_id);
1834   WRITE_TO_LOG('l_event_source_info.ledger_id             : ' ||
1835   l_event_source_info.ledger_id);
1836   WRITE_TO_LOG('l_event_source_info.entity_type_code      : ' ||
1837   l_event_source_info.entity_type_code);
1838   WRITE_TO_LOG('l_event_source_info.transaction_number    : ' ||
1839   l_event_source_info.transaction_number);
1840   WRITE_TO_LOG('l_event_source_info.source_id_int_1       : ' ||
1841   l_event_source_info.source_id_int_1);
1842 
1843   BEGIN
1844     l_array_event_info :=
1845      xla_events_pub_pkg.get_array_event_info(p_event_source_info => l_event_source_info
1846                                             ,p_event_class_code  => l_event_class_code
1847                                             ,p_event_type_code   => l_event_type_code
1848                                             ,p_event_date        => p_gl_date
1849                                             ,p_event_status_code => p_event_status_code
1850                                             ,p_valuation_method  => p_representation_code
1851                                             ,p_security_context  => l_security_context);
1852   EXCEPTION
1853     WHEN OTHERS THEN
1854       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
1855                           p_msg_name     => g_unexpected_error,
1856                           p_token1       => g_sqlcode_token,
1857                           p_token1_value => SQLCODE,
1858                           p_token2       => g_sqlerrm_token,
1859                           p_token2_value => SQLERRM);
1860 
1861 	  RAISE Okl_Api.G_EXCEPTION_ERROR;
1862   END;
1863 
1864   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
1865   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
1866 
1867   WRITE_TO_LOG('');
1868   WRITE_TO_LOG('Done with ' || l_api_name);
1869 
1870   RETURN l_array_event_info;
1871 
1872 EXCEPTION
1873   WHEN Okl_Api.G_EXCEPTION_ERROR THEN
1874      IF get_tcn_csr%ISOPEN THEN
1875 	    CLOSE get_tcn_csr;
1876      END IF;
1877 
1878       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
1879                                  ,g_pkg_name
1880                                  ,'OKL_API.G_RET_STS_ERROR'
1881                                  ,x_msg_count
1882                                  ,x_msg_data
1883                                  ,'_PVT');
1884   RETURN l_array_event_info_null;
1885   WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
1886      IF get_tcn_csr%ISOPEN THEN
1887 	    CLOSE get_tcn_csr;
1888      END IF;
1889 
1890       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
1891                           p_msg_name     => g_unexpected_error,
1892                           p_token1       => g_sqlcode_token,
1893                           p_token1_value => SQLCODE,
1894                           p_token2       => g_sqlerrm_token,
1895                           p_token2_value => SQLERRM);
1896 
1897       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
1898                                  ,g_pkg_name
1899                                  ,'OKL_API.G_RET_STS_UNEXP_ERROR'
1900                                  ,x_msg_count
1901                                  ,x_msg_data
1902                                  ,'_PVT');
1903   RETURN l_array_event_info_null;
1904   WHEN OTHERS THEN
1905      IF get_tcn_csr%ISOPEN THEN
1906 	    CLOSE get_tcn_csr;
1907      END IF;
1908 
1909      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
1910                                      (l_api_name,
1911                                       G_PKG_NAME,
1912                                       'OTHERS',
1913                                       x_msg_count,
1914                                       x_msg_data,
1915                                       '_PVT');
1916   RETURN l_array_event_info_null;
1917 END get_array_event_info;
1918 
1919 -- API to provide the status for a given event.
1920 FUNCTION get_event_status(
1921     p_api_version           IN  NUMBER
1922    ,p_init_msg_list         IN  VARCHAR2
1923    ,x_return_status         OUT NOCOPY VARCHAR2
1924    ,x_msg_count             OUT NOCOPY NUMBER
1925    ,x_msg_data              OUT NOCOPY VARCHAR2
1926    ,p_tcn_id                IN  NUMBER
1927    ,p_event_id              IN  NUMBER
1928    ,p_representation_code   IN  VARCHAR2)
1929  RETURN VARCHAR2 IS
1930 
1931  CURSOR get_tcn_csr is
1932  SELECT set_of_books_id,
1933         legal_entity_id,
1934         TRUNC(date_transaction_occurred) transaction_date,
1935         TRUNC(canceled_date) cancelled_date,
1936         trx_number,
1937         try_id
1938    FROM okl_trx_contracts
1939   WHERE id = p_tcn_id;
1940 
1941  get_tcn_rec               get_tcn_csr%ROWTYPE;
1942 
1943  l_event_source_info       xla_events_pub_pkg.t_event_source_info;
1944  l_security_context        xla_events_pub_pkg.t_security;
1945 
1946  l_entity_type_code        VARCHAR2(30);
1947  l_event_class_code        VARCHAR2(30);
1948  l_event_type_code         VARCHAR2(30);
1949  l_event_status_code       VARCHAR2(10);
1950 
1951  l_api_name                VARCHAR2(30) := 'GET_EVENT_STATUS';
1952  l_api_version    CONSTANT NUMBER := 1.0;
1953 
1954  l_init_msg_list           VARCHAR2(2000) := OKL_API.G_FALSE;
1955  l_return_status           VARCHAR2(1);
1956  l_msg_count               NUMBER;
1957  l_msg_data                VARCHAR2(2000);
1958 
1959 
1960 BEGIN
1961    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
1962                                              ,G_PKG_NAME
1963                                              ,p_init_msg_list
1964                                              ,l_api_version
1965                                              ,p_api_version
1966                                              ,'_PVT'
1967                                              ,x_return_status);
1968 
1969     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
1970       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
1971     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
1972       RAISE Okl_Api.G_EXCEPTION_ERROR;
1973     END IF;
1974 
1975   WRITE_TO_LOG('');
1976   WRITE_TO_LOG('Inside the call to ' || l_api_name);
1977 
1978   WRITE_TO_LOG('Input Parameters: ');
1979   WRITE_TO_LOG('===================================');
1980   WRITE_TO_LOG('p_tcn_id              : ' || p_tcn_id);
1981   WRITE_TO_LOG('p_event_id            : ' || p_event_id);
1982   WRITE_TO_LOG('p_representation_code : ' || p_representation_code);
1983 
1984   OPEN get_tcn_csr;
1985   FETCH get_tcn_csr into get_tcn_rec;
1986   CLOSE get_tcn_csr;
1987 
1988   WRITE_TO_LOG('Contents of GET_TCN_REC:');
1989   WRITE_TO_LOG('===================================');
1990   WRITE_TO_LOG('get_tcn_rec.try_id          : ' || get_tcn_rec.try_id);
1991   WRITE_TO_LOG('get_tcn_rec.legal_entity_id : ' || get_tcn_rec.legal_entity_id);
1992   WRITE_TO_LOG('get_tcn_rec.set_of_books_id : ' || get_tcn_rec.set_of_books_id);
1993   WRITE_TO_LOG('get_tcn_rec.trx_number      : ' || get_tcn_rec.trx_number);
1994   WRITE_TO_LOG('get_tcn_rec.transaction_date: ' || get_tcn_rec.transaction_date);
1995   WRITE_TO_LOG('get_tcn_rec.cancelled_date  : ' || get_tcn_rec.cancelled_date);
1996 
1997   get_entity_event_class(p_try_id              =>    get_tcn_rec.try_id
1998 						,p_action_type         =>    NULL
1999 						,x_event_type_code     =>    l_event_type_code
2000                         ,x_entity_type_code    =>    l_entity_type_code
2001                         ,x_event_class_code    =>    l_event_class_code
2002                         ,x_return_status       =>    l_return_status);
2003 
2004   IF l_return_status = Okl_Api.G_RET_STS_ERROR THEN
2005      RAISE Okl_Api.G_EXCEPTION_ERROR;
2006   END IF;
2007 
2008   l_event_source_info.source_application_id := g_application_id;
2009   l_event_source_info.application_id        := g_application_id;
2010   l_event_source_info.legal_entity_id       := get_tcn_rec.legal_entity_id;
2011   l_event_source_info.ledger_id             := get_tcn_rec.set_of_books_id;
2012   l_event_source_info.entity_type_code      := l_entity_type_code;
2013   l_event_source_info.transaction_number    := get_tcn_rec.trx_number;
2014   l_event_source_info.source_id_int_1       := p_tcn_id;
2015 
2016   l_security_context.security_id_int_1      := mo_global.get_current_org_id();
2017 
2018   WRITE_TO_LOG('Contents of l_event_source_info :');
2019   WRITE_TO_LOG('===================================');
2020   WRITE_TO_LOG('l_event_source_info.source_application_id : ' ||
2021   l_event_source_info.source_application_id);
2022   WRITE_TO_LOG('l_event_source_info.application_id        : ' ||
2023   l_event_source_info.application_id);
2024   WRITE_TO_LOG('l_event_source_info.legal_entity_id       : ' ||
2025   l_event_source_info.legal_entity_id);
2026   WRITE_TO_LOG('l_event_source_info.ledger_id             : ' ||
2027   l_event_source_info.ledger_id);
2028   WRITE_TO_LOG('l_event_source_info.entity_type_code      : ' ||
2029   l_event_source_info.entity_type_code);
2030   WRITE_TO_LOG('l_event_source_info.transaction_number    : ' ||
2031   l_event_source_info.transaction_number);
2032   WRITE_TO_LOG('l_event_source_info.source_id_int_1       : ' ||
2033   l_event_source_info.source_id_int_1);
2034 
2035   BEGIN
2036     l_event_status_code :=
2037        xla_events_pub_pkg.get_event_status(p_event_source_info => l_event_source_info
2038                                           ,p_event_id          => p_event_id
2039                                           ,p_valuation_method  => p_representation_code
2040                                           ,p_security_context  => l_security_context);
2041   EXCEPTION
2042     WHEN OTHERS THEN
2043       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
2044                           p_msg_name     => g_unexpected_error,
2045                           p_token1       => g_sqlcode_token,
2046                           p_token1_value => SQLCODE,
2047                           p_token2       => g_sqlerrm_token,
2048                           p_token2_value => SQLERRM);
2049 
2050 	  RAISE Okl_Api.G_EXCEPTION_ERROR;
2051   END;
2052 
2053   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2054   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
2055 
2056   WRITE_TO_LOG('');
2057   WRITE_TO_LOG('Done with ' || l_api_name);
2058 
2059   RETURN l_event_status_code;
2060 
2061 EXCEPTION
2062   WHEN Okl_Api.G_EXCEPTION_ERROR THEN
2063      IF get_tcn_csr%ISOPEN THEN
2064 	    CLOSE get_tcn_csr;
2065      END IF;
2066 
2067       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
2068                                  ,g_pkg_name
2069                                  ,'OKL_API.G_RET_STS_ERROR'
2070                                  ,x_msg_count
2071                                  ,x_msg_data
2072                                  ,'_PVT');
2073   RETURN 'F';
2074   WHEN Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR THEN
2075      IF get_tcn_csr%ISOPEN THEN
2076 	    CLOSE get_tcn_csr;
2077      END IF;
2078 
2079       Okl_Api.SET_MESSAGE(p_app_name     => g_app_name,
2080                           p_msg_name     => g_unexpected_error,
2081                           p_token1       => g_sqlcode_token,
2082                           p_token1_value => SQLCODE,
2083                           p_token2       => g_sqlerrm_token,
2084                           p_token2_value => SQLERRM);
2085 
2086       x_return_status := Okl_Api.HANDLE_EXCEPTIONS(l_api_name
2087                                  ,g_pkg_name
2088                                  ,'OKL_API.G_RET_STS_UNEXP_ERROR'
2089                                  ,x_msg_count
2090                                  ,x_msg_data
2091                                  ,'_PVT');
2092   RETURN 'F';
2093   WHEN OTHERS THEN
2094      IF get_tcn_csr%ISOPEN THEN
2095 	    CLOSE get_tcn_csr;
2096      END IF;
2097 
2098      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
2099                                      (l_api_name,
2100                                       G_PKG_NAME,
2101                                       'OTHERS',
2102                                       x_msg_count,
2103                                       x_msg_data,
2104                                       '_PVT');
2105   RETURN 'F';
2106 END get_event_status;
2107 
2108 -- API to check if an event has been raised for the transaction.
2109 -- If p_action_type is passed, corresponding event for Create or Reverse
2110 -- action will be identified, otherwise existence of event for the transaction
2111 -- is checked and value returned.
2112 PROCEDURE event_exists(p_api_version        IN  NUMBER
2113                       ,p_init_msg_list      IN  VARCHAR2
2114                       ,x_return_status      OUT NOCOPY VARCHAR2
2115                       ,x_msg_count          OUT NOCOPY NUMBER
2116                       ,x_msg_data           OUT NOCOPY VARCHAR2
2117                       ,p_tcn_id             IN  NUMBER
2118                       ,p_action_type        IN  VARCHAR2
2119                       ,x_event_id           OUT NOCOPY NUMBER
2120                       ,x_event_date         OUT NOCOPY DATE)
2121 IS
2122 
2123 TYPE event_ref_csr IS REF CURSOR;
2124 
2125 get_event_csr     event_ref_csr;
2126 
2127 l_api_name                VARCHAR2(30) := 'EVENT_EXISTS';
2128 l_api_version    CONSTANT NUMBER := 1.0;
2129 
2130 BEGIN
2131    x_return_status := Okl_Api.START_ACTIVITY(l_api_name
2132                                              ,G_PKG_NAME
2133                                              ,p_init_msg_list
2134                                              ,l_api_version
2135                                              ,p_api_version
2136                                              ,'_PVT'
2137                                              ,x_return_status);
2138 
2139     IF (x_return_status = Okl_Api.G_RET_STS_UNEXP_ERROR) THEN
2140       RAISE Okl_Api.G_EXCEPTION_UNEXPECTED_ERROR;
2141     ELSIF (x_return_Status = Okl_Api.G_RET_STS_ERROR) THEN
2142       RAISE Okl_Api.G_EXCEPTION_ERROR;
2143     END IF;
2144 
2145   WRITE_TO_LOG('');
2146   WRITE_TO_LOG('Inside the call to ' || l_api_name);
2147 
2148   WRITE_TO_LOG('Input Parameters: ');
2149   WRITE_TO_LOG('===================================');
2150   WRITE_TO_LOG('p_tcn_id              : ' || p_tcn_id);
2151   WRITE_TO_LOG('p_action_type         : ' || p_action_type);
2152 
2153   IF p_action_type = 'CREATE' THEN
2154     OPEN get_event_csr FOR
2155     SELECT accounting_event_id, gl_date
2156       FROM okl_trns_acc_dstrs
2157      WHERE original_dist_id IS NULL
2158        AND source_table = 'OKL_TXL_CNTRCT_LNS'
2159        AND source_id = (SELECT id
2160                           FROM okl_txl_cntrct_lns
2161                          WHERE tcn_id = p_tcn_id
2162                            AND rownum = 1)
2163        AND accounting_event_id is not null
2164        AND rownum = 1;
2165   ELSIF p_action_type = 'REVERSE' THEN
2166     OPEN get_event_csr FOR
2167     SELECT accounting_event_id, gl_date
2168       FROM okl_trns_acc_dstrs
2169      WHERE original_dist_id IS NOT NULL
2170        AND source_table = 'OKL_TXL_CNTRCT_LNS'
2171        AND source_id = (SELECT id
2172                           FROM okl_txl_cntrct_lns
2173                          WHERE tcn_id = p_tcn_id
2174                            AND rownum = 1)
2175        AND accounting_event_id IS NOT NULL
2176        AND rownum = 1;
2177    ELSE
2178     OPEN get_event_csr FOR
2179     SELECT accounting_event_id, gl_date
2180       FROM okl_trns_acc_dstrs
2181      WHERE source_table = 'OKL_TXL_CNTRCT_LNS'
2182        AND source_id = (SELECT id
2183                           FROM okl_txl_cntrct_lns
2184                          WHERE tcn_id = p_tcn_id
2185                            AND rownum = 1)
2186        AND accounting_event_id IS NOT NULL
2187        AND rownum = 1;
2188   END IF;
2189 
2190   IF get_event_csr%ISOPEN THEN
2191     FETCH get_event_csr into x_event_id, x_event_date;
2192     CLOSE get_event_csr;
2193   END IF;
2194 
2195   Okl_Api.END_ACTIVITY(x_msg_count, x_msg_data);
2196   x_return_status := Okl_Api.G_RET_STS_SUCCESS;
2197 
2198   WRITE_TO_LOG('');
2199   WRITE_TO_LOG('Done with ' || l_api_name);
2200 
2201 EXCEPTION
2202   WHEN OTHERS THEN
2203     IF get_event_csr%ISOPEN THEN
2204        CLOSE get_event_csr;
2205     END IF;
2206 
2207      x_return_status := Okl_Api.HANDLE_EXCEPTIONS
2208                                      (l_api_name,
2209                                       G_PKG_NAME,
2210                                       'OTHERS',
2211                                       x_msg_count,
2212                                       x_msg_data,
2213                                       '_PVT');
2214 
2215 END event_exists;
2216 
2217 END OKL_XLA_EVENTS_PVT;