DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_FE_STD_RATE_TMPL_PUB

Source


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