DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_SRVAVL_PUB

Source


1 Package Body OKS_SRVAVL_PUB AS
2 /* $Header: OKSPSVAB.pls 120.0 2005/05/25 18:19:15 appldev noship $ */
3 
4 
5   PROCEDURE insert_serv_avail
6   (
7     p_api_version                  IN NUMBER,
8     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
9     x_return_status                OUT NOCOPY VARCHAR2,
10     x_msg_count                    OUT NOCOPY NUMBER,
11     x_msg_data                     OUT NOCOPY VARCHAR2,
12     p_savv_rec                     IN savv_rec_type,
13     x_savv_rec                     OUT NOCOPY savv_rec_type
14   )
15 
16   Is
17 
18     l_api_name              CONSTANT VARCHAR2(30) := 'insert_serv_avail';
19     l_api_version           CONSTANT NUMBER       := 1.0;
20     l_return_status                  VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
21     l_savv_rec		             savv_rec_type;
22 
23   Begin
24 
25   l_return_status := OKC_API.START_ACTIVITY
26                      (
27 				l_api_name
28                         ,p_init_msg_list
29                         ,'_PUB'
30                         ,x_return_status
31                      );
32 
33   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
34           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
35   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
36           Raise OKC_API.G_EXCEPTION_ERROR;
37   End If;
38 
39   g_savv_rec := p_savv_rec;
40 
41   OKC_UTIL.call_user_hook
42   (
43 		x_return_status	=> x_return_status,
44   		p_package_name	=> g_pkg_name,
45   		p_procedure_name	=> l_api_name,
46   		p_before_after	=> 'B'
47   );
48 
49   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
50         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
51   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
52        raise OKC_API.G_EXCEPTION_ERROR;
53   End If;
54 
55 --Restore ID/OBJECT VERSION NUMBER
56 
57   l_savv_rec                        := g_savv_rec;
58   l_savv_rec.id	                  := p_savv_rec.id;
59   l_savv_rec.object_version_number	:= p_savv_rec.object_version_number;
60 
61   oks_srvavl_pvt.insert_serv_avail
62   (
63     p_api_version                  ,
64     p_init_msg_list                ,
65     x_return_status                ,
66     x_msg_count                    ,
67     x_msg_data                     ,
68     l_savv_rec                     ,
69     x_savv_rec
70   );
71 
72   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
73   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
74   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
75   	  raise OKC_API.G_EXCEPTION_ERROR;
76   End If;
77 
78   g_savv_rec := x_savv_rec;
79 
80   OKC_UTIL.call_user_hook
81   (
82 	x_return_status	=> x_return_status,
83   	p_package_name	=> g_pkg_name,
84   	p_procedure_name	=> l_api_name,
85   	p_before_after	=> 'A'
86   );
87 
88   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
89   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
90   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
91   	  raise OKC_API.G_EXCEPTION_ERROR;
92   End If;
93 
94   OKC_API.END_ACTIVITY
95   (
96 	x_msg_count	=> x_msg_count,
97 	x_msg_data	=> x_msg_data
98   );
99 
100   Exception
101   When OKC_API.G_EXCEPTION_ERROR THEN
102       x_return_status := OKC_API.HANDLE_EXCEPTIONS
103       (
104         l_api_name,
105         G_PKG_NAME,
106         'OKC_API.G_RET_STS_ERROR',
107         x_msg_count,
108         x_msg_data,
109         '_PUB'
110       );
111 
112   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
113       x_return_status := OKC_API.HANDLE_EXCEPTIONS
114       (
115         l_api_name,
116         G_PKG_NAME,
117         'OKC_API.G_RET_STS_UNEXP_ERROR',
118         x_msg_count,
119         x_msg_data,
120         '_PUB'
121       );
122 
123   When OTHERS THEN
124       x_return_status := OKC_API.HANDLE_EXCEPTIONS
125       (
126         l_api_name,
127         G_PKG_NAME,
128         'OTHERS',
129         x_msg_count,
130         x_msg_data,
131         '_PUB'
132       );
133 
134   End;
135 
136 
137   PROCEDURE insert_serv_avail(
138     p_api_version                  IN NUMBER,
139     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
140     x_return_status                OUT NOCOPY VARCHAR2,
141     x_msg_count                    OUT NOCOPY NUMBER,
142     x_msg_data                     OUT NOCOPY VARCHAR2,
143     p_savv_tbl                     IN savv_tbl_type,
144     x_savv_tbl                     OUT NOCOPY savv_tbl_type)
145   Is
146     l_api_name              CONSTANT VARCHAR2(30) := 'insert_serv_avail';
147     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
148     l_ptr			    BINARY_INTEGER;
149 
150   Begin
151 
152   x_return_status := OKC_API.G_RET_STS_SUCCESS;
153 
154   If p_savv_tbl.COUNT > 0 Then
155 
156           l_ptr := p_savv_tbl.FIRST;
157 
158           Loop
159             insert_serv_avail
160             (
161                         p_api_version
162                        ,p_init_msg_list
163                        ,l_return_status
164                        ,x_msg_count
165                        ,x_msg_data
166                        ,p_savv_tbl(l_ptr)
167                        ,x_savv_tbl(l_ptr)
168             );
169 
170             If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
171                If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
172                   x_return_status := l_return_status;
173                   Raise G_EXCEPTION_HALT_VALIDATION;
174                Else
175                   x_return_status := l_return_status;
176                End If;
177             End If;
178 
179             Exit When  (l_ptr = p_savv_tbl.LAST);
180             l_ptr := p_savv_tbl.NEXT(l_ptr);
181 
182           End Loop;
183 
184   End If;
185 
186   Exception
187   When G_EXCEPTION_HALT_VALIDATION Then
188        Null;
189   When OTHERS Then
190        OKC_API.set_message(p_app_name      => g_app_name,
191                            p_msg_name      => g_unexpected_error,
192                            p_token1        => g_sqlcode_token,
193                            p_token1_value  => sqlcode,
194                            p_token2        => g_sqlerrm_token,
195                            p_token2_value  => sqlerrm
196                           );
197        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
198   End;
199 
200 
201   PROCEDURE lock_serv_avail(
202     p_api_version                  IN NUMBER,
203     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
204     x_return_status                OUT NOCOPY VARCHAR2,
205     x_msg_count                    OUT NOCOPY NUMBER,
206     x_msg_data                     OUT NOCOPY VARCHAR2,
207     p_savv_rec                     IN savv_rec_type)
208   Is
209 
210     l_api_name              CONSTANT VARCHAR2(30) := 'insert_serv_avail';
211     l_api_version           CONSTANT NUMBER       := 1.0;
212     l_return_status                  VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
213     l_savv_rec		             savv_rec_type;
214 
215   Begin
216 
217   l_return_status := OKC_API.START_ACTIVITY
218                      (
219 				l_api_name
220                         ,p_init_msg_list
221                         ,'_PUB'
222                         ,x_return_status
223                      );
224 
225   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
226           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
227   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
228           Raise OKC_API.G_EXCEPTION_ERROR;
229   End If;
230 
231   oks_srvavl_pvt.lock_serv_avail
232   (
233     p_api_version                  ,
234     p_init_msg_list                ,
235     x_return_status                ,
236     x_msg_count                    ,
237     x_msg_data                     ,
238     p_savv_rec
239   );
240 
241   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
242   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
243   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
244   	  raise OKC_API.G_EXCEPTION_ERROR;
245   End If;
246 
247   OKC_API.END_ACTIVITY
248   (
249 	x_msg_count	=> x_msg_count,
250 	x_msg_data	=> x_msg_data
251   );
252 
253   Exception
254   When OKC_API.G_EXCEPTION_ERROR THEN
255       x_return_status := OKC_API.HANDLE_EXCEPTIONS
256       (
257         l_api_name,
258         G_PKG_NAME,
259         'OKC_API.G_RET_STS_ERROR',
260         x_msg_count,
261         x_msg_data,
262         '_PVT'
263       );
264 
265   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
266       x_return_status := OKC_API.HANDLE_EXCEPTIONS
267       (
268         l_api_name,
269         G_PKG_NAME,
270         'OKC_API.G_RET_STS_UNEXP_ERROR',
271         x_msg_count,
272         x_msg_data,
273         '_PVT'
274       );
275 
276   When OTHERS THEN
277       x_return_status := OKC_API.HANDLE_EXCEPTIONS
278       (
279         l_api_name,
280         G_PKG_NAME,
281         'OTHERS',
282         x_msg_count,
283         x_msg_data,
284         '_PVT'
285       );
286 
287   End;
288 
289 
290   PROCEDURE lock_serv_avail(
291     p_api_version                  IN NUMBER,
292     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
293     x_return_status                OUT NOCOPY VARCHAR2,
294     x_msg_count                    OUT NOCOPY NUMBER,
295     x_msg_data                     OUT NOCOPY VARCHAR2,
296     p_savv_tbl                     IN savv_tbl_type)
297 
298   Is
299     l_api_name              CONSTANT VARCHAR2(30) := 'insert_serv_avail';
300     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
301     l_ptr			    BINARY_INTEGER;
302 
303   Begin
304 
305   x_return_status := OKC_API.G_RET_STS_SUCCESS;
306 
307   If p_savv_tbl.COUNT > 0 Then
308 
309           l_ptr := p_savv_tbl.FIRST;
310 
311           Loop
312 
313             lock_serv_avail
314             (
315                         p_api_version
316                        ,p_init_msg_list
317                        ,l_return_status
318                        ,x_msg_count
319                        ,x_msg_data
320                        ,p_savv_tbl(l_ptr)
321             );
322 
323             If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
324                If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
325                   x_return_status := l_return_status;
326                   Raise G_EXCEPTION_HALT_VALIDATION;
327                Else
328                   x_return_status := l_return_status;
329                End If;
330             End If;
331 
332             Exit When  (l_ptr = p_savv_tbl.LAST);
333             l_ptr := p_savv_tbl.NEXT(l_ptr);
334 
335           End Loop;
336 
337   End If;
338 
339   Exception
340   When OKC_API.G_EXCEPTION_ERROR THEN
341       x_return_status := OKC_API.HANDLE_EXCEPTIONS
342       (
343         l_api_name,
344         G_PKG_NAME,
345         'OKC_API.G_RET_STS_ERROR',
346         x_msg_count,
347         x_msg_data,
348         '_PVT'
349       );
350 
351   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
352       x_return_status := OKC_API.HANDLE_EXCEPTIONS
353       (
354         l_api_name,
355         G_PKG_NAME,
356         'OKC_API.G_RET_STS_UNEXP_ERROR',
357         x_msg_count,
358         x_msg_data,
359         '_PVT'
360       );
361 
362   When OTHERS THEN
363       x_return_status := OKC_API.HANDLE_EXCEPTIONS
364       (
365         l_api_name,
366         G_PKG_NAME,
367         'OTHERS',
368         x_msg_count,
369         x_msg_data,
370         '_PVT'
371       );
372 
373   End;
374 
375 
376   PROCEDURE update_serv_avail(
377     p_api_version                  IN NUMBER,
378     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
379     x_return_status                OUT NOCOPY VARCHAR2,
380     x_msg_count                    OUT NOCOPY NUMBER,
381     x_msg_data                     OUT NOCOPY VARCHAR2,
382     p_savv_rec                     IN savv_rec_type,
383     x_savv_rec                     OUT NOCOPY savv_rec_type)
384   Is
385 
386     l_api_name              CONSTANT VARCHAR2(30) := 'update_serv_avail';
387     l_api_version           CONSTANT NUMBER       := 1.0;
388     l_return_status                  VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
389     l_savv_rec		             savv_rec_type;
390 
391   Begin
392 
393   l_return_status := OKC_API.START_ACTIVITY
394                      (
395 				l_api_name
396                         ,p_init_msg_list
397                         ,'_PUB'
398                         ,x_return_status
399                      );
400 
401   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
402           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
403   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
404           Raise OKC_API.G_EXCEPTION_ERROR;
405   End If;
406 
407   g_savv_rec := p_savv_rec;
408 
409   OKC_UTIL.call_user_hook
410   (
411 		x_return_status	=> x_return_status,
412   		p_package_name	=> g_pkg_name,
413   		p_procedure_name	=> l_api_name,
414   		p_before_after	=> 'B'
415   );
416 
417   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
418         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
419   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
420        raise OKC_API.G_EXCEPTION_ERROR;
421   End If;
422 
423 --Restore ID/OBJECT VERSION NUMBER
424 
425   l_savv_rec                        := g_savv_rec;
426   l_savv_rec.id	                  := p_savv_rec.id;
427   l_savv_rec.object_version_number	:= p_savv_rec.object_version_number;
428 
429   oks_srvavl_pvt.update_serv_avail
430   (
431     p_api_version                  ,
432     p_init_msg_list                ,
433     x_return_status                ,
434     x_msg_count                    ,
435     x_msg_data                     ,
436     l_savv_rec                     ,
437     x_savv_rec
438   );
439 
440   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
441   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
442   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
443   	  raise OKC_API.G_EXCEPTION_ERROR;
444   End If;
445 
446   g_savv_rec := x_savv_rec;
447 
448   OKC_UTIL.call_user_hook
449   (
450 	x_return_status	=> x_return_status,
451   	p_package_name	=> g_pkg_name,
452   	p_procedure_name	=> l_api_name,
453   	p_before_after	=> 'A'
454   );
455 
456   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
457   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
458   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
459   	  raise OKC_API.G_EXCEPTION_ERROR;
460   End If;
461 
462   OKC_API.END_ACTIVITY
463   (
464 	x_msg_count	=> x_msg_count,
465 	x_msg_data	=> x_msg_data
466   );
467 
468   Exception
469   When OKC_API.G_EXCEPTION_ERROR THEN
470       x_return_status := OKC_API.HANDLE_EXCEPTIONS
471       (
472         l_api_name,
473         G_PKG_NAME,
474         'OKC_API.G_RET_STS_ERROR',
475         x_msg_count,
476         x_msg_data,
477         '_PVT'
478       );
479 
480   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
481       x_return_status := OKC_API.HANDLE_EXCEPTIONS
482       (
483         l_api_name,
484         G_PKG_NAME,
485         'OKC_API.G_RET_STS_UNEXP_ERROR',
486         x_msg_count,
487         x_msg_data,
488         '_PVT'
489       );
490 
491   When OTHERS THEN
492       x_return_status := OKC_API.HANDLE_EXCEPTIONS
493       (
494         l_api_name,
495         G_PKG_NAME,
496         'OTHERS',
497         x_msg_count,
498         x_msg_data,
499         '_PVT'
500       );
501 
502   End;
503 
504 
505   PROCEDURE update_serv_avail(
506     p_api_version                  IN NUMBER,
507     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
508     x_return_status                OUT NOCOPY VARCHAR2,
509     x_msg_count                    OUT NOCOPY NUMBER,
510     x_msg_data                     OUT NOCOPY VARCHAR2,
511     p_savv_tbl                     IN savv_tbl_type,
512     x_savv_tbl                     OUT NOCOPY savv_tbl_type)
513   Is
514     l_api_name              CONSTANT VARCHAR2(30) := 'update_serv_avail';
515     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
516     l_ptr			    BINARY_INTEGER;
517 
518   Begin
519 
520   x_return_status := OKC_API.G_RET_STS_SUCCESS;
521 
522   If p_savv_tbl.COUNT > 0 Then
523 
524           l_ptr := p_savv_tbl.FIRST;
525 
526           Loop
527             update_serv_avail
528             (
529                         p_api_version
530                        ,p_init_msg_list
531                        ,l_return_status
532                        ,x_msg_count
533                        ,x_msg_data
534                        ,p_savv_tbl(l_ptr)
535                        ,x_savv_tbl(l_ptr)
536             );
537 
538             If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
539                If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
540                   x_return_status := l_return_status;
541                   Raise G_EXCEPTION_HALT_VALIDATION;
542                Else
543                   x_return_status := l_return_status;
544                End If;
545             End If;
546 
547             Exit When  (l_ptr = p_savv_tbl.LAST);
548             l_ptr := p_savv_tbl.NEXT(l_ptr);
549 
550           End Loop;
551 
552   End If;
553 
554   Exception
555   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
556       x_return_status := OKC_API.HANDLE_EXCEPTIONS
557       (
558         l_api_name,
559         G_PKG_NAME,
560         'OKC_API.G_RET_STS_UNEXP_ERROR',
561         x_msg_count,
562         x_msg_data,
563         '_PVT'
564       );
565 
566   When OTHERS THEN
567       x_return_status := OKC_API.HANDLE_EXCEPTIONS
568       (
569         l_api_name,
570         G_PKG_NAME,
571         'OTHERS',
572         x_msg_count,
573         x_msg_data,
574         '_PVT'
575       );
576 
577   End;
578 
579 
580   PROCEDURE delete_serv_avail(
581     p_api_version                  IN NUMBER,
582     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
583     x_return_status                OUT NOCOPY VARCHAR2,
584     x_msg_count                    OUT NOCOPY NUMBER,
585     x_msg_data                     OUT NOCOPY VARCHAR2,
586     p_savv_rec                     IN savv_rec_type)
587   Is
588 
589     l_api_name              CONSTANT VARCHAR2(30) := 'update_serv_avail';
590     l_api_version           CONSTANT NUMBER       := 1.0;
591     l_return_status                  VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
592     l_savv_rec		             savv_rec_type;
593 
594   Begin
595 
596   l_return_status := OKC_API.START_ACTIVITY
597                      (
598 				l_api_name
599                         ,p_init_msg_list
600                         ,'_PUB'
601                         ,x_return_status
602                      );
603 
604   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
605           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
606   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
607           Raise OKC_API.G_EXCEPTION_ERROR;
608   End If;
609 
610   g_savv_rec := p_savv_rec;
611 
612   OKC_UTIL.call_user_hook
613   (
614 		x_return_status	=> x_return_status,
615   		p_package_name	=> g_pkg_name,
616   		p_procedure_name	=> l_api_name,
617   		p_before_after	=> 'B'
618   );
619 
620   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
621         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
622   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
623        raise OKC_API.G_EXCEPTION_ERROR;
624   End If;
625 
626 --Restore ID/OBJECT VERSION NUMBER
627 
628   l_savv_rec                        := g_savv_rec;
629   l_savv_rec.id	                  := p_savv_rec.id;
630   l_savv_rec.object_version_number	:= p_savv_rec.object_version_number;
631 
632   oks_srvavl_pvt.delete_serv_avail
633   (
634     p_api_version                  ,
635     p_init_msg_list                ,
636     x_return_status                ,
637     x_msg_count                    ,
638     x_msg_data                     ,
639     l_savv_rec
640   );
641 
642   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
643   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
644   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
645   	  raise OKC_API.G_EXCEPTION_ERROR;
646   End If;
647 
648   OKC_UTIL.call_user_hook
649   (
650 	x_return_status	=> x_return_status,
651   	p_package_name	=> g_pkg_name,
652   	p_procedure_name	=> l_api_name,
653   	p_before_after	=> 'A'
654   );
655 
656   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
657   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
658   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
659   	  raise OKC_API.G_EXCEPTION_ERROR;
660   End If;
661 
662   OKC_API.END_ACTIVITY
663   (
664 	x_msg_count	=> x_msg_count,
665 	x_msg_data	=> x_msg_data
666   );
667 
668   Exception
669   When OKC_API.G_EXCEPTION_ERROR THEN
670       x_return_status := OKC_API.HANDLE_EXCEPTIONS
671       (
672         l_api_name,
673         G_PKG_NAME,
674         'OKC_API.G_RET_STS_ERROR',
675         x_msg_count,
676         x_msg_data,
677         '_PVT'
678       );
679 
680   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
681       x_return_status := OKC_API.HANDLE_EXCEPTIONS
682       (
683         l_api_name,
684         G_PKG_NAME,
685         'OKC_API.G_RET_STS_UNEXP_ERROR',
686         x_msg_count,
687         x_msg_data,
688         '_PVT'
689       );
690 
691   When OTHERS THEN
692       x_return_status := OKC_API.HANDLE_EXCEPTIONS
693       (
694         l_api_name,
695         G_PKG_NAME,
696         'OTHERS',
697         x_msg_count,
698         x_msg_data,
699         '_PVT'
700       );
701 
702   End;
703 
704 
705   PROCEDURE delete_serv_avail(
706     p_api_version                  IN NUMBER,
707     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
708     x_return_status                OUT NOCOPY VARCHAR2,
709     x_msg_count                    OUT NOCOPY NUMBER,
710     x_msg_data                     OUT NOCOPY VARCHAR2,
711     p_savv_tbl                     IN savv_tbl_type)
712   Is
713     l_api_name              CONSTANT VARCHAR2(30) := 'update_serv_avail';
714     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
715     l_ptr			    BINARY_INTEGER;
716 
717   Begin
718 
719   x_return_status := OKC_API.G_RET_STS_SUCCESS;
720 
721   If p_savv_tbl.COUNT > 0 Then
722 
723           l_ptr := p_savv_tbl.FIRST;
724 
725           Loop
726             delete_serv_avail
727             (
728                         p_api_version
729                        ,p_init_msg_list
730                        ,l_return_status
731                        ,x_msg_count
732                        ,x_msg_data
733                        ,p_savv_tbl(l_ptr)
734             );
735 
736             If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
737                If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
738                   x_return_status := l_return_status;
739                   Raise G_EXCEPTION_HALT_VALIDATION;
740                Else
741                   x_return_status := l_return_status;
742                End If;
743             End If;
744 
745             Exit When  (l_ptr = p_savv_tbl.LAST);
746             l_ptr := p_savv_tbl.NEXT(l_ptr);
747 
748           End Loop;
749 
750   End If;
751 
752   Exception
753   When OKC_API.G_EXCEPTION_ERROR THEN
754       x_return_status := OKC_API.HANDLE_EXCEPTIONS
755       (
756         l_api_name,
757         G_PKG_NAME,
758         'OKC_API.G_RET_STS_ERROR',
759         x_msg_count,
760         x_msg_data,
761         '_PVT'
762       );
763 
764   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
765       x_return_status := OKC_API.HANDLE_EXCEPTIONS
766       (
767         l_api_name,
768         G_PKG_NAME,
769         'OKC_API.G_RET_STS_UNEXP_ERROR',
770         x_msg_count,
771         x_msg_data,
772         '_PVT'
773       );
774 
775   When OTHERS THEN
776       x_return_status := OKC_API.HANDLE_EXCEPTIONS
777       (
778         l_api_name,
779         G_PKG_NAME,
780         'OTHERS',
781         x_msg_count,
782         x_msg_data,
783         '_PVT'
784       );
785 
786   End;
787 
788 
789   PROCEDURE validate_serv_avail(
790     p_api_version                  IN NUMBER,
791     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
792     x_return_status                OUT NOCOPY VARCHAR2,
793     x_msg_count                    OUT NOCOPY NUMBER,
794     x_msg_data                     OUT NOCOPY VARCHAR2,
795     p_savv_rec                     IN savv_rec_type)
796    Is
797 
798     l_api_name              CONSTANT VARCHAR2(30) := 'update_serv_avail';
799     l_api_version           CONSTANT NUMBER       := 1.0;
800     l_return_status                  VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
801     l_savv_rec		             savv_rec_type;
802 
803   Begin
804 
805   l_return_status := OKC_API.START_ACTIVITY
806                      (
807 				l_api_name
808                         ,p_init_msg_list
809                         ,'_PUB'
810                         ,x_return_status
811                      );
812 
813   If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
814           Raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
815   ElsIf l_return_status = OKC_API.G_RET_STS_ERROR Then
816           Raise OKC_API.G_EXCEPTION_ERROR;
817   End If;
818 
819   g_savv_rec := p_savv_rec;
820 
821   OKC_UTIL.call_user_hook
822   (
823 		x_return_status	=> x_return_status,
824   		p_package_name	=> g_pkg_name,
825   		p_procedure_name	=> l_api_name,
826   		p_before_after	=> 'B'
827   );
828 
829   If    (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
830         raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
831   ElsIf (x_return_status = OKC_API.G_RET_STS_ERROR) Then
832        raise OKC_API.G_EXCEPTION_ERROR;
833   End If;
834 
835 --Restore ID/OBJECT VERSION NUMBER
836 
837   l_savv_rec                        := g_savv_rec;
838   l_savv_rec.id	                  := p_savv_rec.id;
839   l_savv_rec.object_version_number	:= p_savv_rec.object_version_number;
840 
841   oks_srvavl_pvt.validate_serv_avail
842   (
843     p_api_version                  ,
844     p_init_msg_list                ,
845     x_return_status                ,
846     x_msg_count                    ,
847     x_msg_data                     ,
848     l_savv_rec
849   );
850 
851   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
852   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
853   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
854   	  raise OKC_API.G_EXCEPTION_ERROR;
855   End If;
856 
857   OKC_UTIL.call_user_hook
858   (
859 	x_return_status	=> x_return_status,
860   	p_package_name	=> g_pkg_name,
861   	p_procedure_name	=> l_api_name,
862   	p_before_after	=> 'A'
863   );
864 
865   If x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
866   	  raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
867   Elsif x_return_status = OKC_API.G_RET_STS_ERROR Then
868   	  raise OKC_API.G_EXCEPTION_ERROR;
869   End If;
870 
871   OKC_API.END_ACTIVITY
872   (
873 	x_msg_count	=> x_msg_count,
874 	x_msg_data	=> x_msg_data
875   );
876 
877 
878   Exception
879   When OKC_API.G_EXCEPTION_ERROR THEN
880       x_return_status := OKC_API.HANDLE_EXCEPTIONS
881       (
882         l_api_name,
883         G_PKG_NAME,
884         'OKC_API.G_RET_STS_ERROR',
885         x_msg_count,
886         x_msg_data,
887         '_PVT'
888       );
889 
890   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
891       x_return_status := OKC_API.HANDLE_EXCEPTIONS
892       (
893         l_api_name,
894         G_PKG_NAME,
895         'OKC_API.G_RET_STS_UNEXP_ERROR',
896         x_msg_count,
897         x_msg_data,
898         '_PVT'
899       );
900 
901   When OTHERS THEN
902       x_return_status := OKC_API.HANDLE_EXCEPTIONS
903       (
904         l_api_name,
905         G_PKG_NAME,
906         'OTHERS',
907         x_msg_count,
908         x_msg_data,
909         '_PVT'
910       );
911 
912   End;
913 
914 
915   PROCEDURE validate_serv_avail(
916     p_api_version                  IN NUMBER,
917     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
918     x_return_status                OUT NOCOPY VARCHAR2,
919     x_msg_count                    OUT NOCOPY NUMBER,
920     x_msg_data                     OUT NOCOPY VARCHAR2,
921     p_savv_tbl                     IN savv_tbl_type)
922 
923   Is
924     l_api_name              CONSTANT VARCHAR2(30) := 'update_serv_avail';
925     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
926     l_ptr			    BINARY_INTEGER;
927 
928   Begin
929 
930   x_return_status := OKC_API.G_RET_STS_SUCCESS;
931 
932   If p_savv_tbl.COUNT > 0 Then
933 
934           l_ptr := p_savv_tbl.FIRST;
935 
936           Loop
937             validate_serv_avail
938             (
939                         p_api_version
940                        ,p_init_msg_list
941                        ,l_return_status
942                        ,x_msg_count
943                        ,x_msg_data
944                        ,p_savv_tbl(l_ptr)
945             );
946 
947             If l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
948                If l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR Then
949                   x_return_status := l_return_status;
950                   Raise G_EXCEPTION_HALT_VALIDATION;
951                Else
952                   x_return_status := l_return_status;
953                End If;
954             End If;
955 
956             Exit When  (l_ptr = p_savv_tbl.LAST);
957             l_ptr := p_savv_tbl.NEXT(l_ptr);
958 
959           End Loop;
960 
961   End If;
962 
963   Exception
964   When OKC_API.G_EXCEPTION_ERROR THEN
965       x_return_status := OKC_API.HANDLE_EXCEPTIONS
966       (
967         l_api_name,
968         G_PKG_NAME,
969         'OKC_API.G_RET_STS_ERROR',
970         x_msg_count,
971         x_msg_data,
972         '_PVT'
973       );
974 
975   When OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
976       x_return_status := OKC_API.HANDLE_EXCEPTIONS
977       (
978         l_api_name,
979         G_PKG_NAME,
980         'OKC_API.G_RET_STS_UNEXP_ERROR',
981         x_msg_count,
982         x_msg_data,
983         '_PVT'
984       );
985 
986   When OTHERS THEN
987       x_return_status := OKC_API.HANDLE_EXCEPTIONS
988       (
989         l_api_name,
990         G_PKG_NAME,
991         'OTHERS',
992         x_msg_count,
993         x_msg_data,
994         '_PVT'
995       );
996 
997   End;
998 
999 END OKS_SRVAVL_PUB;