DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_FE_ADJ_MATRIX_PUB

Source


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