DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_FE_EO_TERM_OPTIONS_PUB

Source


1 PACKAGE BODY okl_fe_eo_term_options_pub AS
2 /* $Header: OKLPEOTB.pls 120.2 2005/12/23 16:20:05 viselvar noship $ */
3 
4   PROCEDURE get_item_lines(p_api_version   IN            NUMBER
5                           ,p_init_msg_list IN            VARCHAR2    DEFAULT okl_api.g_false
6                           ,x_return_status    OUT NOCOPY VARCHAR2
7                           ,x_msg_count        OUT NOCOPY NUMBER
8                           ,x_msg_data         OUT NOCOPY VARCHAR2
9                           ,p_po_id         IN            NUMBER
10                           ,p_po_version    IN            VARCHAR2
11                           ,x_eto_tbl          OUT NOCOPY okl_eto_tbl) AS
12     l_api_name                   VARCHAR2(40) := 'GET_ITEM_LINES';
13     l_api_version                NUMBER       := 1.0;
14     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
15 
16   BEGIN
17     l_return_status := okl_api.start_activity(p_api_name      =>            l_api_name
18                                              ,p_pkg_name      =>            g_pkg_name
19                                              ,p_init_msg_list =>            p_init_msg_list
20                                              ,l_api_version   =>            l_api_version
21                                              ,p_api_version   =>            p_api_version
22                                              ,p_api_type      =>            '_PUB'
23                                              ,x_return_status =>            l_return_status);
24 
25     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
26       RAISE okl_api.g_exception_unexpected_error;
27     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
28       RAISE okl_api.g_exception_error;
29     END IF;
30 
31     -- Call the get item lines in the pvt
32 
33     okl_fe_eo_term_options_pvt.get_item_lines(l_api_version
34                                              ,p_init_msg_list
35                                              ,l_return_status
36                                              ,x_msg_count
37                                              ,x_msg_data
38                                              ,p_po_id
39                                              ,p_po_version
40                                              ,x_eto_tbl);
41 
42     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
43       RAISE okl_api.g_exception_unexpected_error;
44     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
45       RAISE okl_api.g_exception_error;
46     END IF;
47     okl_api.end_activity(x_msg_count =>                x_msg_count
48                         ,x_msg_data  =>                x_msg_data);
49     x_return_status := l_return_status;
50     EXCEPTION
51       WHEN okl_api.g_exception_error THEN
52         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
53                                                     ,p_pkg_name  =>                g_pkg_name
54                                                     ,p_exc_name  =>                g_exc_name_error
55                                                     ,x_msg_count =>                x_msg_count
56                                                     ,x_msg_data  =>                x_msg_data
57                                                     ,p_api_type  =>                '_PUB');
58       WHEN okl_api.g_exception_unexpected_error THEN
59         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
60                                                     ,p_pkg_name  =>                g_pkg_name
61                                                     ,p_exc_name  =>                g_exc_name_unexp_error
62                                                     ,x_msg_count =>                x_msg_count
63                                                     ,x_msg_data  =>                x_msg_data
64                                                     ,p_api_type  =>                '_PUB');
65       WHEN OTHERS THEN
66         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
67                                                     ,p_pkg_name  =>                g_pkg_name
68                                                     ,p_exc_name  =>                g_exc_name_others
69                                                     ,x_msg_count =>                x_msg_count
70                                                     ,x_msg_data  =>                x_msg_data
71                                                     ,p_api_type  =>                '_PUB');
72   END get_item_lines;
73 
74   PROCEDURE get_eo_term_values(p_api_version   IN            NUMBER
75                               ,p_init_msg_list IN            VARCHAR2    DEFAULT okl_api.g_false
76                               ,x_return_status    OUT NOCOPY VARCHAR2
77                               ,x_msg_count        OUT NOCOPY NUMBER
78                               ,x_msg_data         OUT NOCOPY VARCHAR2
79                               ,p_po_id         IN            NUMBER
80                               ,p_po_version    IN            VARCHAR2
81                               ,x_etv_tbl          OUT NOCOPY okl_etv_tbl) AS
82     l_api_name                   VARCHAR2(40) := 'GET_PURCHASE_OPTION_VALUES';
83     l_api_version                NUMBER       := 1.0;
84     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
85 
86   BEGIN
87     l_return_status := okl_api.start_activity(p_api_name      =>            l_api_name
88                                              ,p_pkg_name      =>            g_pkg_name
89                                              ,p_init_msg_list =>            p_init_msg_list
90                                              ,l_api_version   =>            l_api_version
91                                              ,p_api_version   =>            p_api_version
92                                              ,p_api_type      =>            '_PUB'
93                                              ,x_return_status =>            l_return_status);
94 
95     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
96       RAISE okl_api.g_exception_unexpected_error;
97     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
98       RAISE okl_api.g_exception_error;
99     END IF;
100 
101     -- Call the get item lines in the pvt
102 
103     okl_fe_eo_term_options_pvt.get_eo_term_values(l_api_version
104                                                  ,p_init_msg_list
105                                                  ,l_return_status
106                                                  ,x_msg_count
107                                                  ,x_msg_data
108                                                  ,p_po_id
109                                                  ,p_po_version
110                                                  ,x_etv_tbl);
111 
112     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
113       RAISE okl_api.g_exception_unexpected_error;
114     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
115       RAISE okl_api.g_exception_error;
116     END IF;
117     okl_api.end_activity(x_msg_count =>                x_msg_count
118                         ,x_msg_data  =>                x_msg_data);
119     x_return_status := l_return_status;
120     EXCEPTION
121       WHEN okl_api.g_exception_error THEN
122         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
123                                                     ,p_pkg_name  =>                g_pkg_name
124                                                     ,p_exc_name  =>                g_exc_name_error
125                                                     ,x_msg_count =>                x_msg_count
126                                                     ,x_msg_data  =>                x_msg_data
127                                                     ,p_api_type  =>                '_PUB');
128       WHEN okl_api.g_exception_unexpected_error THEN
129         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
130                                                     ,p_pkg_name  =>                g_pkg_name
131                                                     ,p_exc_name  =>                g_exc_name_unexp_error
132                                                     ,x_msg_count =>                x_msg_count
133                                                     ,x_msg_data  =>                x_msg_data
134                                                     ,p_api_type  =>                '_PUB');
135       WHEN OTHERS THEN
136         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
137                                                     ,p_pkg_name  =>                g_pkg_name
138                                                     ,p_exc_name  =>                g_exc_name_others
139                                                     ,x_msg_count =>                x_msg_count
140                                                     ,x_msg_data  =>                x_msg_data
141                                                     ,p_api_type  =>                '_PUB');
142   END get_eo_term_values;
143 
144   PROCEDURE get_end_of_term_option(p_api_version   IN            NUMBER
145                                   ,p_init_msg_list IN            VARCHAR2     DEFAULT okl_api.g_false
146                                   ,x_return_status    OUT NOCOPY VARCHAR2
147                                   ,x_msg_count        OUT NOCOPY NUMBER
148                                   ,x_msg_data         OUT NOCOPY VARCHAR2
149                                   ,p_po_id         IN            NUMBER
150                                   ,p_po_version    IN            VARCHAR2
151                                   ,x_ethv_rec         OUT NOCOPY okl_ethv_rec
152                                   ,x_eve_rec          OUT NOCOPY okl_eve_rec
153                                   ,x_eto_tbl          OUT NOCOPY okl_eto_tbl
154                                   ,x_etv_tbl          OUT NOCOPY okl_etv_tbl) AS
155     l_api_name                   VARCHAR2(40) := 'GET_PURCHASE_OPTION';
156     l_api_version                NUMBER       := 1.0;
157     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
158 
159   BEGIN
160     l_return_status := okl_api.start_activity(p_api_name      =>            l_api_name
161                                              ,p_pkg_name      =>            g_pkg_name
162                                              ,p_init_msg_list =>            p_init_msg_list
163                                              ,l_api_version   =>            l_api_version
164                                              ,p_api_version   =>            p_api_version
165                                              ,p_api_type      =>            '_PUB'
166                                              ,x_return_status =>            l_return_status);
167 
168     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
169       RAISE okl_api.g_exception_unexpected_error;
170     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
171       RAISE okl_api.g_exception_error;
172     END IF;
173 
174     -- Call the get item lines in the pvt
175 
176     okl_fe_eo_term_options_pvt.get_end_of_term_option(l_api_version
177                                                      ,p_init_msg_list
178                                                      ,l_return_status
179                                                      ,x_msg_count
180                                                      ,x_msg_data
181                                                      ,p_po_id
182                                                      ,p_po_version
183                                                      ,x_ethv_rec
184                                                      ,x_eve_rec
185                                                      ,x_eto_tbl
186                                                      ,x_etv_tbl);
187 
188     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
189       RAISE okl_api.g_exception_unexpected_error;
190     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
191       RAISE okl_api.g_exception_error;
192     END IF;
193     okl_api.end_activity(x_msg_count =>                x_msg_count
194                         ,x_msg_data  =>                x_msg_data);
195     x_return_status := l_return_status;
196     EXCEPTION
197       WHEN okl_api.g_exception_error THEN
198         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
199                                                     ,p_pkg_name  =>                g_pkg_name
200                                                     ,p_exc_name  =>                g_exc_name_error
201                                                     ,x_msg_count =>                x_msg_count
202                                                     ,x_msg_data  =>                x_msg_data
203                                                     ,p_api_type  =>                '_PUB');
204       WHEN okl_api.g_exception_unexpected_error THEN
205         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
206                                                     ,p_pkg_name  =>                g_pkg_name
207                                                     ,p_exc_name  =>                g_exc_name_unexp_error
208                                                     ,x_msg_count =>                x_msg_count
209                                                     ,x_msg_data  =>                x_msg_data
210                                                     ,p_api_type  =>                '_PUB');
211       WHEN OTHERS THEN
212         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
213                                                     ,p_pkg_name  =>                g_pkg_name
214                                                     ,p_exc_name  =>                g_exc_name_others
215                                                     ,x_msg_count =>                x_msg_count
216                                                     ,x_msg_data  =>                x_msg_data
217                                                     ,p_api_type  =>                '_PUB');
218   END get_end_of_term_option;
219 
220   PROCEDURE insert_end_of_term_option(p_api_version   IN            NUMBER
221                                      ,p_init_msg_list IN            VARCHAR2     DEFAULT okl_api.g_false
222                                      ,x_return_status    OUT NOCOPY VARCHAR2
223                                      ,x_msg_count        OUT NOCOPY NUMBER
224                                      ,x_msg_data         OUT NOCOPY VARCHAR2
225                                      ,p_ethv_rec      IN            okl_ethv_rec
226                                      ,p_eve_rec       IN            okl_eve_rec
227                                      ,p_eto_tbl       IN            okl_eto_tbl
228                                      ,p_etv_tbl       IN            okl_etv_tbl
229                                      ,x_ethv_rec         OUT NOCOPY okl_ethv_rec
230                                      ,x_eve_rec          OUT NOCOPY okl_eve_rec
231                                      ,x_eto_tbl          OUT NOCOPY okl_eto_tbl
232                                      ,x_etv_tbl          OUT NOCOPY okl_etv_tbl) AS
233     l_api_name                   VARCHAR2(40) := 'INSERT_PURCHASE_OPTION';
234     l_api_version                NUMBER       := 1.0;
235     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
236 
237   BEGIN
238     l_return_status := okl_api.start_activity(p_api_name      =>            l_api_name
239                                              ,p_pkg_name      =>            g_pkg_name
240                                              ,p_init_msg_list =>            p_init_msg_list
241                                              ,l_api_version   =>            l_api_version
242                                              ,p_api_version   =>            p_api_version
243                                              ,p_api_type      =>            '_PUB'
244                                              ,x_return_status =>            l_return_status);
245 
246     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
247       RAISE okl_api.g_exception_unexpected_error;
248     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
249       RAISE okl_api.g_exception_error;
250     END IF;
251 
252     -- Call the get item lines in the pvt
253 
254     okl_fe_eo_term_options_pvt.insert_end_of_term_option(l_api_version
255                                                         ,p_init_msg_list
256                                                         ,l_return_status
257                                                         ,x_msg_count
258                                                         ,x_msg_data
259                                                         ,p_ethv_rec
260                                                         ,p_eve_rec
261                                                         ,p_eto_tbl
262                                                         ,p_etv_tbl
263                                                         ,x_ethv_rec
264                                                         ,x_eve_rec
265                                                         ,x_eto_tbl
266                                                         ,x_etv_tbl);
267 
268     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
269       RAISE okl_api.g_exception_unexpected_error;
270     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
271       RAISE okl_api.g_exception_error;
272     END IF;
273     okl_api.end_activity(x_msg_count =>                x_msg_count
274                         ,x_msg_data  =>                x_msg_data);
275     x_return_status := l_return_status;
276     EXCEPTION
277       WHEN okl_api.g_exception_error THEN
278         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
279                                                     ,p_pkg_name  =>                g_pkg_name
280                                                     ,p_exc_name  =>                g_exc_name_error
281                                                     ,x_msg_count =>                x_msg_count
282                                                     ,x_msg_data  =>                x_msg_data
283                                                     ,p_api_type  =>                '_PUB');
284       WHEN okl_api.g_exception_unexpected_error THEN
285         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
286                                                     ,p_pkg_name  =>                g_pkg_name
287                                                     ,p_exc_name  =>                g_exc_name_unexp_error
288                                                     ,x_msg_count =>                x_msg_count
289                                                     ,x_msg_data  =>                x_msg_data
290                                                     ,p_api_type  =>                '_PUB');
291       WHEN OTHERS THEN
292         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
293                                                     ,p_pkg_name  =>                g_pkg_name
294                                                     ,p_exc_name  =>                g_exc_name_others
295                                                     ,x_msg_count =>                x_msg_count
299 
296                                                     ,x_msg_data  =>                x_msg_data
297                                                     ,p_api_type  =>                '_PUB');
298   END insert_end_of_term_option;
300   PROCEDURE update_end_of_term_option(p_api_version   IN            NUMBER
301                                      ,p_init_msg_list IN            VARCHAR2    DEFAULT okl_api.g_false
302                                      ,x_return_status    OUT NOCOPY VARCHAR2
303                                      ,x_msg_count        OUT NOCOPY NUMBER
304                                      ,x_msg_data         OUT NOCOPY VARCHAR2
305                                      ,p_eve_rec       IN            okl_eve_rec
306                                      ,p_eto_tbl       IN            okl_eto_tbl
307                                      ,p_etv_tbl       IN            okl_etv_tbl
308                                      ,x_eve_rec          OUT NOCOPY okl_eve_rec
309                                      ,x_eto_tbl          OUT NOCOPY okl_eto_tbl
310                                      ,x_etv_tbl          OUT NOCOPY okl_etv_tbl) AS
311     l_api_name                   VARCHAR2(40) := 'UPDATE_PURCHASE_OPTION';
312     l_api_version                NUMBER       := 1.0;
313     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
314 
315   BEGIN
316     l_return_status := okl_api.start_activity(p_api_name      =>            l_api_name
317                                              ,p_pkg_name      =>            g_pkg_name
318                                              ,p_init_msg_list =>            p_init_msg_list
319                                              ,l_api_version   =>            l_api_version
320                                              ,p_api_version   =>            p_api_version
321                                              ,p_api_type      =>            '_PUB'
322                                              ,x_return_status =>            l_return_status);
323 
324     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
325       RAISE okl_api.g_exception_unexpected_error;
326     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
327       RAISE okl_api.g_exception_error;
328     END IF;
329 
330     -- Call the get item lines in the pvt
331 
332     okl_fe_eo_term_options_pvt.update_end_of_term_option(l_api_version
333                                                         ,p_init_msg_list
334                                                         ,l_return_status
335                                                         ,x_msg_count
336                                                         ,x_msg_data
337                                                         ,p_eve_rec
338                                                         ,p_eto_tbl
339                                                         ,p_etv_tbl
340                                                         ,x_eve_rec
341                                                         ,x_eto_tbl
342                                                         ,x_etv_tbl);
343 
344     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
345       RAISE okl_api.g_exception_unexpected_error;
346     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
347       RAISE okl_api.g_exception_error;
348     END IF;
349     okl_api.end_activity(x_msg_count =>                x_msg_count
350                         ,x_msg_data  =>                x_msg_data);
351     x_return_status := l_return_status;
352     EXCEPTION
353       WHEN okl_api.g_exception_error THEN
354         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
355                                                     ,p_pkg_name  =>                g_pkg_name
356                                                     ,p_exc_name  =>                g_exc_name_error
357                                                     ,x_msg_count =>                x_msg_count
358                                                     ,x_msg_data  =>                x_msg_data
359                                                     ,p_api_type  =>                '_PUB');
360       WHEN okl_api.g_exception_unexpected_error THEN
361         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
362                                                     ,p_pkg_name  =>                g_pkg_name
363                                                     ,p_exc_name  =>                g_exc_name_unexp_error
364                                                     ,x_msg_count =>                x_msg_count
365                                                     ,x_msg_data  =>                x_msg_data
366                                                     ,p_api_type  =>                '_PUB');
367       WHEN OTHERS THEN
368         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
369                                                     ,p_pkg_name  =>                g_pkg_name
370                                                     ,p_exc_name  =>                g_exc_name_others
371                                                     ,x_msg_count =>                x_msg_count
372                                                     ,x_msg_data  =>                x_msg_data
373                                                     ,p_api_type  =>                '_PUB');
374   END update_end_of_term_option;
375 
376   PROCEDURE create_version(p_api_version   IN            NUMBER
377                           ,p_init_msg_list IN            VARCHAR2    DEFAULT okl_api.g_false
378                           ,x_return_status    OUT NOCOPY VARCHAR2
379                           ,x_msg_count        OUT NOCOPY NUMBER
380                           ,x_msg_data         OUT NOCOPY VARCHAR2
381                           ,p_eve_rec       IN            okl_eve_rec
385                           ,x_eto_tbl          OUT NOCOPY okl_eto_tbl
382                           ,p_eto_tbl       IN            okl_eto_tbl
383                           ,p_etv_tbl       IN            okl_etv_tbl
384                           ,x_eve_rec          OUT NOCOPY okl_eve_rec
386                           ,x_etv_tbl          OUT NOCOPY okl_etv_tbl) AS
387     l_api_name                   VARCHAR2(40) := 'CREATE_VERSION';
388     l_api_version                NUMBER       := 1.0;
389     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
390 
391   BEGIN
392     l_return_status := okl_api.start_activity(p_api_name      =>            l_api_name
393                                              ,p_pkg_name      =>            g_pkg_name
394                                              ,p_init_msg_list =>            p_init_msg_list
395                                              ,l_api_version   =>            l_api_version
396                                              ,p_api_version   =>            p_api_version
397                                              ,p_api_type      =>            '_PUB'
398                                              ,x_return_status =>            l_return_status);
399 
400     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
401       RAISE okl_api.g_exception_unexpected_error;
402     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
403       RAISE okl_api.g_exception_error;
404     END IF;
405 
406     -- Call the create version in the pvt
407 
408     okl_fe_eo_term_options_pvt.create_version(l_api_version
409                                              ,p_init_msg_list
410                                              ,l_return_status
411                                              ,x_msg_count
412                                              ,x_msg_data
413                                              ,p_eve_rec
414                                              ,p_eto_tbl
415                                              ,p_etv_tbl
416                                              ,x_eve_rec
417                                              ,x_eto_tbl
418                                              ,x_etv_tbl);
419 
420     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
421       RAISE okl_api.g_exception_unexpected_error;
422     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
423       RAISE okl_api.g_exception_error;
424     END IF;
425     okl_api.end_activity(x_msg_count =>                x_msg_count
426                         ,x_msg_data  =>                x_msg_data);
427     x_return_status := l_return_status;
428     EXCEPTION
429       WHEN okl_api.g_exception_error THEN
430         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
431                                                     ,p_pkg_name  =>                g_pkg_name
432                                                     ,p_exc_name  =>                g_exc_name_error
433                                                     ,x_msg_count =>                x_msg_count
434                                                     ,x_msg_data  =>                x_msg_data
435                                                     ,p_api_type  =>                '_PUB');
436       WHEN okl_api.g_exception_unexpected_error THEN
437         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
438                                                     ,p_pkg_name  =>                g_pkg_name
439                                                     ,p_exc_name  =>                g_exc_name_unexp_error
440                                                     ,x_msg_count =>                x_msg_count
441                                                     ,x_msg_data  =>                x_msg_data
442                                                     ,p_api_type  =>                '_PUB');
443       WHEN OTHERS THEN
444         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
445                                                     ,p_pkg_name  =>                g_pkg_name
446                                                     ,p_exc_name  =>                g_exc_name_others
447                                                     ,x_msg_count =>                x_msg_count
448                                                     ,x_msg_data  =>                x_msg_data
449                                                     ,p_api_type  =>                '_PUB');
450   END create_version;
451 
452   PROCEDURE validate_end_of_term_option(p_api_version   IN            NUMBER
453                                        ,p_init_msg_list IN            VARCHAR2 DEFAULT okl_api.g_false
454                                        ,x_return_status    OUT NOCOPY VARCHAR2
455                                        ,x_msg_count        OUT NOCOPY NUMBER
456                                        ,x_msg_data         OUT NOCOPY VARCHAR2
457                                        ,p_end_of_ver_id IN            NUMBER) AS
458     l_api_name                   VARCHAR2(40) := 'validate_purchase_option';
459     l_api_version                NUMBER       := 1.0;
460     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
461 
462   BEGIN
463     l_return_status := okl_api.start_activity(p_api_name      =>            l_api_name
464                                              ,p_pkg_name      =>            g_pkg_name
465                                              ,p_init_msg_list =>            p_init_msg_list
466                                              ,l_api_version   =>            l_api_version
467                                              ,p_api_version   =>            p_api_version
468                                              ,p_api_type      =>            '_PUB'
469                                              ,x_return_status =>            l_return_status);
473     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
470 
471     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
472       RAISE okl_api.g_exception_unexpected_error;
474       RAISE okl_api.g_exception_error;
475     END IF;
476 
477     -- Call the validate purchase option in the pvt
478 
479     okl_fe_eo_term_options_pvt.validate_end_of_term_option(l_api_version
480                                                           ,p_init_msg_list
481                                                           ,l_return_status
482                                                           ,x_msg_count
483                                                           ,x_msg_data
484                                                           ,p_end_of_ver_id);
485 
486     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
487       RAISE okl_api.g_exception_unexpected_error;
488     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
489       RAISE okl_api.g_exception_error;
490     END IF;
491     okl_api.end_activity(x_msg_count =>                x_msg_count
492                         ,x_msg_data  =>                x_msg_data);
493     x_return_status := l_return_status;
494     EXCEPTION
495       WHEN okl_api.g_exception_error THEN
496         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
497                                                     ,p_pkg_name  =>                g_pkg_name
498                                                     ,p_exc_name  =>                g_exc_name_error
499                                                     ,x_msg_count =>                x_msg_count
500                                                     ,x_msg_data  =>                x_msg_data
501                                                     ,p_api_type  =>                '_PUB');
502       WHEN okl_api.g_exception_unexpected_error THEN
503         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
504                                                     ,p_pkg_name  =>                g_pkg_name
505                                                     ,p_exc_name  =>                g_exc_name_unexp_error
506                                                     ,x_msg_count =>                x_msg_count
507                                                     ,x_msg_data  =>                x_msg_data
508                                                     ,p_api_type  =>                '_PUB');
509       WHEN OTHERS THEN
510         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
511                                                     ,p_pkg_name  =>                g_pkg_name
512                                                     ,p_exc_name  =>                g_exc_name_others
513                                                     ,x_msg_count =>                x_msg_count
514                                                     ,x_msg_data  =>                x_msg_data
515                                                     ,p_api_type  =>                '_PUB');
516   END validate_end_of_term_option;
517 
518   PROCEDURE handle_approval(p_api_version        IN            NUMBER
519                            ,p_init_msg_list      IN            VARCHAR2 DEFAULT okl_api.g_false
520                            ,x_return_status         OUT NOCOPY VARCHAR2
521                            ,x_msg_count             OUT NOCOPY NUMBER
522                            ,x_msg_data              OUT NOCOPY VARCHAR2
523                            ,p_end_of_term_ver_id IN            NUMBER) AS
524     l_api_name                   VARCHAR2(40) := 'handle approval';
525     l_api_version                NUMBER       := 1.0;
526     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
527 
528   BEGIN
529     l_return_status := okl_api.start_activity(p_api_name      =>            l_api_name
530                                              ,p_pkg_name      =>            g_pkg_name
531                                              ,p_init_msg_list =>            p_init_msg_list
532                                              ,l_api_version   =>            l_api_version
533                                              ,p_api_version   =>            p_api_version
534                                              ,p_api_type      =>            '_PUB'
535                                              ,x_return_status =>            l_return_status);
536 
537     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
538       RAISE okl_api.g_exception_unexpected_error;
539     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
540       RAISE okl_api.g_exception_error;
541     END IF;
542 
543     -- Call the validate purchase option in the pvt
544 
545     okl_fe_eo_term_options_pvt.handle_approval(l_api_version
546                                               ,p_init_msg_list
547                                               ,l_return_status
548                                               ,x_msg_count
549                                               ,x_msg_data
550                                               ,p_end_of_term_ver_id);
551 
552     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
553       RAISE okl_api.g_exception_unexpected_error;
554     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
555       RAISE okl_api.g_exception_error;
556     END IF;
557     okl_api.end_activity(x_msg_count =>                x_msg_count
558                         ,x_msg_data  =>                x_msg_data);
559     x_return_status := l_return_status;
560     EXCEPTION
561       WHEN okl_api.g_exception_error THEN
562         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
563                                                     ,p_pkg_name  =>                g_pkg_name
567                                                     ,p_api_type  =>                '_PUB');
564                                                     ,p_exc_name  =>                g_exc_name_error
565                                                     ,x_msg_count =>                x_msg_count
566                                                     ,x_msg_data  =>                x_msg_data
568       WHEN okl_api.g_exception_unexpected_error THEN
569         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
570                                                     ,p_pkg_name  =>                g_pkg_name
571                                                     ,p_exc_name  =>                g_exc_name_unexp_error
572                                                     ,x_msg_count =>                x_msg_count
573                                                     ,x_msg_data  =>                x_msg_data
574                                                     ,p_api_type  =>                '_PUB');
575       WHEN OTHERS THEN
576         x_return_status := okl_api.handle_exceptions(p_api_name  =>                l_api_name
577                                                     ,p_pkg_name  =>                g_pkg_name
578                                                     ,p_exc_name  =>                g_exc_name_others
579                                                     ,x_msg_count =>                x_msg_count
580                                                     ,x_msg_data  =>                x_msg_data
581                                                     ,p_api_type  =>                '_PUB');
582   END handle_approval;
583 
584   PROCEDURE invalid_objects(p_api_version   IN            NUMBER
585                            ,p_init_msg_list IN            VARCHAR2           DEFAULT okl_api.g_false
586                            ,x_return_status    OUT NOCOPY VARCHAR2
587                            ,x_msg_count        OUT NOCOPY NUMBER
588                            ,x_msg_data         OUT NOCOPY VARCHAR2
589                            ,p_version_id    IN            NUMBER
590                            ,x_obj_tbl          OUT NOCOPY invalid_object_tbl) AS
591     l_api_version                NUMBER       := 1.0;
592     l_api_name                   VARCHAR2(40) := 'invalid_objects';
593     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
594 
595   BEGIN
596     l_return_status := okl_api.start_activity(l_api_name
597                                              ,g_pkg_name
598                                              ,p_init_msg_list
599                                              ,l_api_version
600                                              ,p_api_version
601                                              ,'_PVT'
602                                              ,l_return_status);
603 
604     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
605       RAISE okl_api.g_exception_unexpected_error;
606     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
607       RAISE okl_api.g_exception_error;
608     END IF;
609     okl_fe_eo_term_options_pvt.invalid_objects(l_api_version
610                                               ,p_init_msg_list
611                                               ,l_return_status
612                                               ,x_msg_count
613                                               ,x_msg_data
614                                               ,p_version_id
615                                               ,x_obj_tbl);
616 
617     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
618       RAISE okl_api.g_exception_unexpected_error;
619     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
620       RAISE okl_api.g_exception_error;
621     END IF;
622 
623     --end activity
624 
625     okl_api.end_activity(x_msg_count
626                         ,x_msg_data);
627     x_return_status := l_return_status;
628     EXCEPTION
629       WHEN okl_api.g_exception_error THEN
630         x_return_status := okl_api.handle_exceptions(l_api_name
631                                                     ,g_pkg_name
632                                                     ,'OKL_API.G_RET_STS_ERROR'
633                                                     ,x_msg_count
634                                                     ,x_msg_data
635                                                     ,'_Pub');
636       WHEN okl_api.g_exception_unexpected_error THEN
637         x_return_status := okl_api.handle_exceptions(l_api_name
638                                                     ,g_pkg_name
639                                                     ,'OKL_API.G_RET_STS_UNEXP_ERROR'
640                                                     ,x_msg_count
641                                                     ,x_msg_data
642                                                     ,'_Pub');
643       WHEN OTHERS THEN
644         x_return_status := okl_api.handle_exceptions(l_api_name
645                                                     ,g_pkg_name
646                                                     ,'OTHERS'
647                                                     ,x_msg_count
648                                                     ,x_msg_data
649                                                     ,'_Pub');
650   END invalid_objects;
651 
652   -- to calculate the start date of the new version
653 
654   PROCEDURE calc_start_date(p_api_version   IN            NUMBER
655                            ,p_init_msg_list IN            VARCHAR2    DEFAULT okl_api.g_false
656                            ,x_return_status    OUT NOCOPY VARCHAR2
657                            ,x_msg_count        OUT NOCOPY NUMBER
658                            ,x_msg_data         OUT NOCOPY VARCHAR2
662     l_api_name                   VARCHAR2(40) := 'calc_start_date';
659                            ,p_eve_rec       IN            okl_eve_rec
660                            ,x_cal_eff_from     OUT NOCOPY DATE) AS
661     l_api_version                NUMBER       := 1.0;
663     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
664     l_eve_rec                    okl_eve_rec  := p_eve_rec;
665 
666   BEGIN
667     l_return_status := okl_api.start_activity(l_api_name
668                                              ,g_pkg_name
669                                              ,p_init_msg_list
670                                              ,l_api_version
671                                              ,p_api_version
672                                              ,'_PVT'
673                                              ,l_return_status);
674 
675     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
676       RAISE okl_api.g_exception_unexpected_error;
677     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
678       RAISE okl_api.g_exception_error;
679     END IF;
680     okl_fe_eo_term_options_pvt.calculate_start_date(l_api_version
681                                                    ,p_init_msg_list
682                                                    ,l_return_status
683                                                    ,x_msg_count
684                                                    ,x_msg_data
685                                                    ,l_eve_rec
686                                                    ,x_cal_eff_from);
687 
688     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
689       RAISE okl_api.g_exception_unexpected_error;
690     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
691       RAISE okl_api.g_exception_error;
692     END IF;
693 
694     --end activity
695 
696     okl_api.end_activity(x_msg_count
697                         ,x_msg_data);
698     x_return_status := l_return_status;
699     EXCEPTION
700       WHEN okl_api.g_exception_error THEN
701         x_return_status := okl_api.handle_exceptions(l_api_name
702                                                     ,g_pkg_name
703                                                     ,'OKL_API.G_RET_STS_ERROR'
704                                                     ,x_msg_count
705                                                     ,x_msg_data
706                                                     ,'_Pub');
707       WHEN okl_api.g_exception_unexpected_error THEN
708         x_return_status := okl_api.handle_exceptions(l_api_name
709                                                     ,g_pkg_name
710                                                     ,'OKL_API.G_RET_STS_UNEXP_ERROR'
711                                                     ,x_msg_count
712                                                     ,x_msg_data
713                                                     ,'_Pub');
714       WHEN OTHERS THEN
715         x_return_status := okl_api.handle_exceptions(l_api_name
716                                                     ,g_pkg_name
717                                                     ,'OTHERS'
718                                                     ,x_msg_count
719                                                     ,x_msg_data
720                                                     ,'_Pub');
721   END calc_start_date;
722 
723   -- to calculate the t date of the new version
724 
725   PROCEDURE submit_end_of_term(p_api_version        IN            NUMBER
726                               ,p_init_msg_list      IN            VARCHAR2 DEFAULT okl_api.g_false
727                               ,x_return_status         OUT NOCOPY VARCHAR2
728                               ,x_msg_count             OUT NOCOPY NUMBER
729                               ,x_msg_data              OUT NOCOPY VARCHAR2
730                               ,p_end_of_term_ver_id IN            NUMBER) AS
731     l_api_version                NUMBER       := 1.0;
732     l_api_name                   VARCHAR2(40) := 'submit_end_of_term';
733     l_return_status              VARCHAR2(1)  := okl_api.g_ret_sts_success;
734 
735   BEGIN
736     l_return_status := okl_api.start_activity(l_api_name
737                                              ,g_pkg_name
738                                              ,p_init_msg_list
739                                              ,l_api_version
740                                              ,p_api_version
741                                              ,'_Pub'
742                                              ,l_return_status);
743 
744     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
745       RAISE okl_api.g_exception_unexpected_error;
746     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
747       RAISE okl_api.g_exception_error;
748     END IF;
749     okl_fe_eo_term_options_pvt.submit_end_of_term(l_api_version
750                                                  ,p_init_msg_list
751                                                  ,l_return_status
752                                                  ,x_msg_count
753                                                  ,x_msg_data
754                                                  ,p_end_of_term_ver_id);
755 
756     IF (l_return_status = okl_api.g_ret_sts_unexp_error) THEN
757       RAISE okl_api.g_exception_unexpected_error;
758     ELSIF (l_return_status = okl_api.g_ret_sts_error) THEN
759       RAISE okl_api.g_exception_error;
760     END IF;
761 
762     --end activity
763 
764     okl_api.end_activity(x_msg_count
765                         ,x_msg_data);
766     x_return_status := l_return_status;
767     EXCEPTION
768       WHEN okl_api.g_exception_error THEN
769         x_return_status := okl_api.handle_exceptions(l_api_name
770                                                     ,g_pkg_name
771                                                     ,'OKL_API.G_RET_STS_ERROR'
772                                                     ,x_msg_count
773                                                     ,x_msg_data
774                                                     ,'_Pub');
775       WHEN okl_api.g_exception_unexpected_error THEN
776         x_return_status := okl_api.handle_exceptions(l_api_name
777                                                     ,g_pkg_name
778                                                     ,'OKL_API.G_RET_STS_UNEXP_ERROR'
779                                                     ,x_msg_count
780                                                     ,x_msg_data
781                                                     ,'_Pub');
782       WHEN OTHERS THEN
783         x_return_status := okl_api.handle_exceptions(l_api_name
784                                                     ,g_pkg_name
785                                                     ,'OTHERS'
786                                                     ,x_msg_count
787                                                     ,x_msg_data
788                                                     ,'_Pub');
789   END submit_end_of_term;
790 
791 END okl_fe_eo_term_options_pub;