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