DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_LINE_STYLES_PUB

Source


1 PACKAGE BODY OKC_LINE_STYLES_PUB AS
2 /* $Header: OKCPLSEB.pls 120.0 2005/05/25 19:27:21 appldev noship $ */
3 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
4 
5 G_EXCEPTION_HALT_PROCESSING   EXCEPTION;
6  --------------------------------------------------------------------------
7 ---The following procedures cater to handling of OKC_TIME_LINE_STYLES
8  --------------------------------------------------------------------------
9 
10   FUNCTION migrate_lsev(p_lsev_rec1 IN lsev_rec_type,
11                         p_lsev_rec2 IN lsev_rec_type)
12     RETURN lsev_rec_type IS
13     l_lsev_rec lsev_rec_type;
14   BEGIN
15     l_lsev_rec.id := p_lsev_rec1.id;
16     l_lsev_rec.lty_code := p_lsev_rec2.lty_code;
17     l_lsev_rec.priced_yn := p_lsev_rec2.priced_yn;
18     l_lsev_rec.recursive_yn := p_lsev_rec2.recursive_yn;
19     l_lsev_rec.protected_yn := p_lsev_rec2.protected_yn;
20     l_lsev_rec.lse_parent_id := p_lsev_rec1.lse_parent_id;
21     l_lsev_rec.application_id := p_lsev_rec2.application_id;
22     l_lsev_rec.lse_type := p_lsev_rec2.lse_type;
23     l_lsev_rec.object_version_number := p_lsev_rec1.object_version_number;
24     l_lsev_rec.created_by := p_lsev_rec1.created_by;
25     l_lsev_rec.creation_date := p_lsev_rec1.creation_date;
26     l_lsev_rec.last_updated_by := p_lsev_rec1.last_updated_by;
27     l_lsev_rec.last_update_date := p_lsev_rec1.last_update_date;
28     l_lsev_rec.last_update_login := p_lsev_rec1.last_update_login;
29     l_lsev_rec.attribute_category := p_lsev_rec2.attribute_category;
30     l_lsev_rec.attribute1 := p_lsev_rec2.attribute1;
31     l_lsev_rec.attribute2 := p_lsev_rec2.attribute2;
32     l_lsev_rec.attribute3 := p_lsev_rec2.attribute3;
33     l_lsev_rec.attribute4 := p_lsev_rec2.attribute4;
34     l_lsev_rec.attribute5 := p_lsev_rec2.attribute5;
35     l_lsev_rec.attribute6 := p_lsev_rec2.attribute6;
36     l_lsev_rec.attribute7 := p_lsev_rec2.attribute7;
37     l_lsev_rec.attribute8 := p_lsev_rec2.attribute8;
38     l_lsev_rec.attribute9 := p_lsev_rec2.attribute9;
39     l_lsev_rec.attribute10 := p_lsev_rec2.attribute10;
40     l_lsev_rec.attribute11 := p_lsev_rec2.attribute11;
41     l_lsev_rec.attribute12 := p_lsev_rec2.attribute12;
42     l_lsev_rec.attribute13 := p_lsev_rec2.attribute13;
43     l_lsev_rec.attribute14 := p_lsev_rec2.attribute14;
44     l_lsev_rec.attribute15 := p_lsev_rec2.attribute15;
45     l_lsev_rec.item_to_price_yn := p_lsev_rec2.item_to_price_yn;
46     l_lsev_rec.price_basis_yn   := p_lsev_rec2.price_basis_yn;
47     l_lsev_rec.access_level     := p_lsev_rec2.access_level;
48     l_lsev_rec.service_item_yn     := p_lsev_rec2.service_item_yn;
49     RETURN (l_lsev_rec);
50   END migrate_lsev;
51 
52   FUNCTION migrate_lsev(p_lsev_tbl1 IN lsev_tbl_type,
53     p_lsev_tbl2 IN lsev_tbl_type)
54     RETURN lsev_tbl_type IS
55     l_lsev_tbl lsev_tbl_type;
56     i NUMBER := 0;
57     j NUMBER := 0;
58   BEGIN
59     -- If the user hook deleted some records or added some new records in the table,
60     -- discard the change and simply copy the original table.
61     IF p_lsev_tbl1.COUNT <> p_lsev_tbl2.COUNT THEN
62       l_lsev_tbl := p_lsev_tbl1;
63     ELSE
64       IF (p_lsev_tbl1.COUNT > 0) THEN
65         i := p_lsev_tbl1.FIRST;
66         j := p_lsev_tbl2.FIRST;
67         LOOP
68           l_lsev_tbl(i) := migrate_lsev(p_lsev_tbl1(i), p_lsev_tbl2(j));
69           EXIT WHEN (i = p_lsev_tbl1.LAST);
70           i := p_lsev_tbl1.NEXT(i);
71           j := p_lsev_tbl2.NEXT(j);
72         END LOOP;
73       END IF;
74     END IF;
75     RETURN (l_lsev_tbl);
76   END migrate_lsev;
77 
78  PROCEDURE add_language IS
79  BEGIN
80     OKC_LINE_STYLES_PVT.add_language;
81  END add_language;
82 
83   PROCEDURE CREATE_LINE_STYLES(
84     p_api_version	    IN NUMBER,
85     p_init_msg_list         IN VARCHAR2 ,
86     x_return_status         OUT NOCOPY VARCHAR2,
87     x_msg_count             OUT NOCOPY NUMBER,
88     x_msg_data              OUT NOCOPY VARCHAR2,
89     p_lsev_rec	            IN lsev_rec_type,
90     x_lsev_rec              OUT NOCOPY lsev_rec_type) IS
91     l_api_name              CONSTANT VARCHAR2(30) := 'CREATE_LINE_STYLES';
92     l_return_status	  VARCHAR2(1);
93     l_lsev_rec     lsev_rec_type := p_lsev_rec;
94   BEGIN
95     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
96 					      p_init_msg_list,
97 					      '_PUB',
98                                         x_return_status);
99     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
100       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
101     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
102       raise OKC_API.G_EXCEPTION_ERROR;
103     END IF;
104     -- Call user hook for BEFORE
105     g_lsev_rec := l_lsev_rec;
106     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
107     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
108       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
109     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
110       raise OKC_API.G_EXCEPTION_ERROR;
111     END IF;
112     l_lsev_rec := migrate_lsev(l_lsev_rec, g_lsev_rec);
113     OKC_LINE_STYLES_PVT.CREATE_LINE_STYLES(
114        p_api_version,
115        p_init_msg_list,
116        x_return_status,
117        x_msg_count,
118        x_msg_data,
119        p_lsev_rec,
120        x_lsev_rec);
121     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
122       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
123     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
124       raise OKC_API.G_EXCEPTION_ERROR;
125     END IF;
126 
127     -- Call user hook for AFTER
128     g_lsev_rec := x_lsev_rec;
129     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
130     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
131       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
132     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
133       raise OKC_API.G_EXCEPTION_ERROR;
134     END IF;
135     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
136   EXCEPTION
137     WHEN OKC_API.G_EXCEPTION_ERROR THEN
138       x_return_status := OKC_API.HANDLE_EXCEPTIONS
139       (l_api_name,
140        G_PKG_NAME,
141        'OKC_API.G_RET_STS_ERROR',
142        x_msg_count,
143        x_msg_data,
144        '_PUB');
145     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
146       x_return_status := OKC_API.HANDLE_EXCEPTIONS
147       (l_api_name,
148        G_PKG_NAME,
149        'OKC_API.G_RET_STS_UNEXP_ERROR',
150        x_msg_count,
151        x_msg_data,
152        '_PUB');
153     WHEN OTHERS THEN
154       x_return_status := OKC_API.HANDLE_EXCEPTIONS
155       (l_api_name,
156        G_PKG_NAME,
157        'OTHERS',
158        x_msg_count,
159        x_msg_data,
160        '_PUB');
161   END CREATE_LINE_STYLES;
162 
163   PROCEDURE CREATE_LINE_STYLES(
164     p_api_version                  IN NUMBER,
165     p_init_msg_list                IN VARCHAR2 ,
166     x_return_status                OUT NOCOPY VARCHAR2,
167     x_msg_count                    OUT NOCOPY NUMBER,
168     x_msg_data                     OUT NOCOPY VARCHAR2,
169     p_lsev_tbl                     IN lsev_tbl_type,
170     x_lsev_tbl                     OUT NOCOPY lsev_tbl_type) IS
171     i			         NUMBER := 0;
172     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
173   BEGIN
174     x_return_status := OKC_API.G_RET_STS_SUCCESS;
175     IF p_lsev_tbl.COUNT > 0 THEN
176       i := p_lsev_tbl.FIRST;
177       LOOP
178         CREATE_LINE_STYLES(
179 	    p_api_version,
180 	    p_init_msg_list,
181 	    l_return_status,
182 	    x_msg_count,
183 	    x_msg_data,
184 	    p_lsev_tbl(i),
185 	    x_lsev_tbl(i));
186         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
187           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
188             x_return_status := l_return_status;
189             raise G_EXCEPTION_HALT_VALIDATION;
190           ELSE
191             x_return_status := l_return_status;
192           END IF;
193         END IF;
194         EXIT WHEN (i = p_lsev_tbl.LAST);
195         i := p_lsev_tbl.NEXT(i);
196       END LOOP;
197     END IF;
198   EXCEPTION
199     WHEN G_EXCEPTION_HALT_VALIDATION THEN
200       NULL;
201     WHEN OTHERS THEN
202       OKC_API.set_message(p_app_name      => g_app_name,
203                           p_msg_name      => g_unexpected_error,
204                           p_token1        => g_sqlcode_token,
205                           p_token1_value  => sqlcode,
206                           p_token2        => g_sqlerrm_token,
207                           p_token2_value  => sqlerrm);
208       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
209   END CREATE_LINE_STYLES;
210 
211   PROCEDURE UPDATE_LINE_STYLES(
212     p_api_version	    IN NUMBER,
213     p_init_msg_list         IN VARCHAR2 ,
214     x_return_status         OUT NOCOPY VARCHAR2,
215     x_msg_count             OUT NOCOPY NUMBER,
216     x_msg_data              OUT NOCOPY VARCHAR2,
217     p_lsev_rec	            IN lsev_rec_type,
218     x_lsev_rec              OUT NOCOPY lsev_rec_type) IS
219     l_api_name              CONSTANT VARCHAR2(30) := 'UPDATE_LINE_STYLES';
220     l_return_status	  VARCHAR2(1);
221     l_lsev_rec     lsev_rec_type := p_lsev_rec;
222   BEGIN
223     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
224 					      p_init_msg_list,
225 					      '_PUB',
226                                         x_return_status);
227     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
228       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
229     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
230       raise OKC_API.G_EXCEPTION_ERROR;
231     END IF;
232     -- Call user hook for BEFORE
233     g_lsev_rec := l_lsev_rec;
234     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
235     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
236       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
237     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
238       raise OKC_API.G_EXCEPTION_ERROR;
239     END IF;
240     l_lsev_rec := migrate_lsev(l_lsev_rec, g_lsev_rec);
241     OKC_LINE_STYLES_PVT.UPDATE_LINE_STYLES(
242        p_api_version,
243        p_init_msg_list,
244        x_return_status,
245        x_msg_count,
246        x_msg_data,
247        p_lsev_rec,
248        x_lsev_rec);
249     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
250       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
251     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
252       raise OKC_API.G_EXCEPTION_ERROR;
253     END IF;
254 
255     -- Call user hook for AFTER
256     g_lsev_rec := x_lsev_rec;
257     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
258     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
259       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
260     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
261       raise OKC_API.G_EXCEPTION_ERROR;
262     END IF;
263     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
264   EXCEPTION
265     WHEN OKC_API.G_EXCEPTION_ERROR THEN
266       x_return_status := OKC_API.HANDLE_EXCEPTIONS
267       (l_api_name,
268        G_PKG_NAME,
269        'OKC_API.G_RET_STS_ERROR',
270        x_msg_count,
271        x_msg_data,
272        '_PUB');
273     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
274       x_return_status := OKC_API.HANDLE_EXCEPTIONS
275       (l_api_name,
276        G_PKG_NAME,
277        'OKC_API.G_RET_STS_UNEXP_ERROR',
278        x_msg_count,
279        x_msg_data,
280        '_PUB');
281     WHEN OTHERS THEN
282       x_return_status := OKC_API.HANDLE_EXCEPTIONS
283       (l_api_name,
284        G_PKG_NAME,
285        'OTHERS',
286        x_msg_count,
287        x_msg_data,
288        '_PUB');
289   END UPDATE_LINE_STYLES;
290 
291   PROCEDURE UPDATE_LINE_STYLES(
292     p_api_version                  IN NUMBER,
293     p_init_msg_list                IN VARCHAR2 ,
294     x_return_status                OUT NOCOPY VARCHAR2,
295     x_msg_count                    OUT NOCOPY NUMBER,
296     x_msg_data                     OUT NOCOPY VARCHAR2,
297     p_lsev_tbl                     IN lsev_tbl_type,
298     x_lsev_tbl                     OUT NOCOPY lsev_tbl_type) IS
299     i			         NUMBER := 0;
300     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
301   BEGIN
302     x_return_status := OKC_API.G_RET_STS_SUCCESS;
303     IF p_lsev_tbl.COUNT > 0 THEN
304       i := p_lsev_tbl.FIRST;
305       LOOP
306         UPDATE_LINE_STYLES(
307 	    p_api_version,
308 	    p_init_msg_list,
309 	    l_return_status,
310 	    x_msg_count,
311 	    x_msg_data,
312 	    p_lsev_tbl(i),
313 	    x_lsev_tbl(i));
314         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
315           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
316             x_return_status := l_return_status;
317             raise G_EXCEPTION_HALT_VALIDATION;
318           ELSE
319             x_return_status := l_return_status;
320           END IF;
321         END IF;
322         EXIT WHEN (i = p_lsev_tbl.LAST);
323         i := p_lsev_tbl.NEXT(i);
324       END LOOP;
325     END IF;
326   EXCEPTION
327     WHEN G_EXCEPTION_HALT_VALIDATION THEN
328       NULL;
329     WHEN OTHERS THEN
330       OKC_API.set_message(p_app_name      => g_app_name,
331                           p_msg_name      => g_unexpected_error,
332                           p_token1        => g_sqlcode_token,
333                           p_token1_value  => sqlcode,
334                           p_token2        => g_sqlerrm_token,
335                           p_token2_value  => sqlerrm);
336       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
337   END UPDATE_LINE_STYLES;
338 
339   PROCEDURE DELETE_LINE_STYLES(
340     p_api_version	    IN NUMBER,
341     p_init_msg_list         IN VARCHAR2 ,
342     x_return_status         OUT NOCOPY VARCHAR2,
343     x_msg_count             OUT NOCOPY NUMBER,
344     x_msg_data              OUT NOCOPY VARCHAR2,
345     p_lsev_rec              IN lsev_rec_type) IS
346     l_api_name              CONSTANT VARCHAR2(30) := 'DELETE_LINE_STYLES';
347     l_return_status	  VARCHAR2(1);
348     l_lsev_rec     lsev_rec_type := p_lsev_rec;
349   BEGIN
350     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
351 					      p_init_msg_list,
352 					      '_PUB',
353                                         x_return_status);
354     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
355       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
356     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
357       raise OKC_API.G_EXCEPTION_ERROR;
358     END IF;
359     -- Call user hook for BEFORE
360     g_lsev_rec := l_lsev_rec;
361     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
362     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
363       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
364     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
365       raise OKC_API.G_EXCEPTION_ERROR;
366     END IF;
367     OKC_LINE_STYLES_PVT.DELETE_LINE_STYLES(
368        p_api_version,
369        p_init_msg_list,
370        x_return_status,
371        x_msg_count,
372        x_msg_data,
373        p_lsev_rec);
374     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
375       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
376     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
377       raise OKC_API.G_EXCEPTION_ERROR;
378     END IF;
379 
380     -- Call user hook for AFTER
381     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
382     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
383       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
384     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
385       raise OKC_API.G_EXCEPTION_ERROR;
386     END IF;
387     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
388   EXCEPTION
389     WHEN OKC_API.G_EXCEPTION_ERROR THEN
390       x_return_status := OKC_API.HANDLE_EXCEPTIONS
391       (l_api_name,
392        G_PKG_NAME,
393        'OKC_API.G_RET_STS_ERROR',
394        x_msg_count,
395        x_msg_data,
396        '_PUB');
397     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
398       x_return_status := OKC_API.HANDLE_EXCEPTIONS
399       (l_api_name,
400        G_PKG_NAME,
401        'OKC_API.G_RET_STS_UNEXP_ERROR',
402        x_msg_count,
403        x_msg_data,
404        '_PUB');
405     WHEN OTHERS THEN
406       x_return_status := OKC_API.HANDLE_EXCEPTIONS
407       (l_api_name,
408        G_PKG_NAME,
409        'OTHERS',
410        x_msg_count,
411        x_msg_data,
412        '_PUB');
413   END DELETE_LINE_STYLES;
414 
415   PROCEDURE DELETE_LINE_STYLES(
416     p_api_version                  IN NUMBER,
417     p_init_msg_list                IN VARCHAR2 ,
418     x_return_status                OUT NOCOPY VARCHAR2,
419     x_msg_count                    OUT NOCOPY NUMBER,
420     x_msg_data                     OUT NOCOPY VARCHAR2,
421     p_lsev_tbl                     IN lsev_tbl_type) IS
422     i			         NUMBER := 0;
423     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
424   BEGIN
425     x_return_status := OKC_API.G_RET_STS_SUCCESS;
426     IF p_lsev_tbl.COUNT > 0 THEN
427       i := p_lsev_tbl.FIRST;
428       LOOP
429         DELETE_LINE_STYLES(
430 	    p_api_version,
431 	    p_init_msg_list,
432 	    l_return_status,
433 	    x_msg_count,
434 	    x_msg_data,
435 	    p_lsev_tbl(i));
436         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
437           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
438             x_return_status := l_return_status;
439             raise G_EXCEPTION_HALT_VALIDATION;
440           ELSE
441             x_return_status := l_return_status;
442           END IF;
443         END IF;
444         EXIT WHEN (i = p_lsev_tbl.LAST);
445         i := p_lsev_tbl.NEXT(i);
446       END LOOP;
447     END IF;
448   EXCEPTION
449     WHEN G_EXCEPTION_HALT_VALIDATION THEN
450       NULL;
451     WHEN OTHERS THEN
452       OKC_API.set_message(p_app_name      => g_app_name,
453                           p_msg_name      => g_unexpected_error,
454                           p_token1        => g_sqlcode_token,
455                           p_token1_value  => sqlcode,
456                           p_token2        => g_sqlerrm_token,
457                           p_token2_value  => sqlerrm);
458       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
459   END DELETE_LINE_STYLES;
460 
461   PROCEDURE LOCK_LINE_STYLES(
462     p_api_version	    IN NUMBER,
463     p_init_msg_list         IN VARCHAR2 ,
464     x_return_status         OUT NOCOPY VARCHAR2,
465     x_msg_count             OUT NOCOPY NUMBER,
466     x_msg_data              OUT NOCOPY VARCHAR2,
467     p_lsev_rec		    IN lsev_rec_type) IS
468   BEGIN
469     OKC_LINE_STYLES_PVT.LOCK_LINE_STYLES(
470     p_api_version,
471     p_init_msg_list,
472     x_return_status,
473     x_msg_count,
474     x_msg_data,
475     p_lsev_rec);
476   END LOCK_LINE_STYLES;
477 
478   PROCEDURE LOCK_LINE_STYLES(
479     p_api_version                  IN NUMBER,
480     p_init_msg_list                IN VARCHAR2 ,
481     x_return_status                OUT NOCOPY VARCHAR2,
482     x_msg_count                    OUT NOCOPY NUMBER,
483     x_msg_data                     OUT NOCOPY VARCHAR2,
484     p_lsev_tbl                     IN lsev_tbl_type) IS
485     i			         NUMBER := 0;
486     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
487   BEGIN
488     x_return_status := OKC_API.G_RET_STS_SUCCESS;
489     IF p_lsev_tbl.COUNT > 0 THEN
490       i := p_lsev_tbl.FIRST;
491       LOOP
492         LOCK_LINE_STYLES(
493 	    p_api_version,
494 	    p_init_msg_list,
495 	    l_return_status,
496 	    x_msg_count,
497 	    x_msg_data,
498 	    p_lsev_tbl(i));
499         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
500           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
501             x_return_status := l_return_status;
502             raise G_EXCEPTION_HALT_VALIDATION;
503           ELSE
504             x_return_status := l_return_status;
505           END IF;
506         END IF;
507         EXIT WHEN (i = p_lsev_tbl.LAST);
508         i := p_lsev_tbl.NEXT(i);
509       END LOOP;
510     END IF;
511   EXCEPTION
512     WHEN G_EXCEPTION_HALT_VALIDATION THEN
513       NULL;
514     WHEN OTHERS THEN
515       OKC_API.set_message(p_app_name      => g_app_name,
516                           p_msg_name      => g_unexpected_error,
517                           p_token1        => g_sqlcode_token,
518                           p_token1_value  => sqlcode,
519                           p_token2        => g_sqlerrm_token,
520                           p_token2_value  => sqlerrm);
521       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
522   END LOCK_LINE_STYLES;
523 
524   PROCEDURE VALID_LINE_STYLES(
525     p_api_version	    IN NUMBER,
526     p_init_msg_list         IN VARCHAR2 ,
527     x_return_status         OUT NOCOPY VARCHAR2,
528     x_msg_count             OUT NOCOPY NUMBER,
529     x_msg_data              OUT NOCOPY VARCHAR2,
530     p_lsev_rec		    IN lsev_rec_type) IS
531   BEGIN
532     OKC_LINE_STYLES_PVT.VALID_LINE_STYLES(
533     p_api_version,
534     p_init_msg_list,
535     x_return_status,
536     x_msg_count,
537     x_msg_data,
538     p_lsev_rec);
539   END VALID_LINE_STYLES;
540 
541   PROCEDURE VALID_LINE_STYLES(
542     p_api_version                  IN NUMBER,
543     p_init_msg_list                IN VARCHAR2 ,
544     x_return_status                OUT NOCOPY VARCHAR2,
545     x_msg_count                    OUT NOCOPY NUMBER,
546     x_msg_data                     OUT NOCOPY VARCHAR2,
547     p_lsev_tbl                     IN lsev_tbl_type) IS
548     i			         NUMBER := 0;
549     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
550   BEGIN
551     x_return_status := OKC_API.G_RET_STS_SUCCESS;
552     IF p_lsev_tbl.COUNT > 0 THEN
553       i := p_lsev_tbl.FIRST;
554       LOOP
555         VALID_LINE_STYLES(
556 	    p_api_version,
557 	    p_init_msg_list,
558 	    l_return_status,
559 	    x_msg_count,
560 	    x_msg_data,
561 	    p_lsev_tbl(i));
562         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
563           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
564             x_return_status := l_return_status;
565             raise G_EXCEPTION_HALT_VALIDATION;
566           ELSE
567             x_return_status := l_return_status;
568           END IF;
569         END IF;
570         EXIT WHEN (i = p_lsev_tbl.LAST);
571         i := p_lsev_tbl.NEXT(i);
572       END LOOP;
573     END IF;
574   EXCEPTION
575     WHEN G_EXCEPTION_HALT_VALIDATION THEN
576       NULL;
577     WHEN OTHERS THEN
578       OKC_API.set_message(p_app_name      => g_app_name,
579                           p_msg_name      => g_unexpected_error,
580                           p_token1        => g_sqlcode_token,
581                           p_token1_value  => sqlcode,
582                           p_token2        => g_sqlerrm_token,
583                           p_token2_value  => sqlerrm);
584       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
585   END VALID_LINE_STYLES;
586 
587 
588 
589 FUNCTION USED_IN_K_LINES(
590 	   p_lsev_tbl                IN lsev_tbl_type) RETURN VARCHAR2 IS
591 	 i                       NUMBER := 0;
592 	 l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
593 	 x_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
594   BEGIN
595 	  x_return_status := OKC_API.G_RET_STS_SUCCESS;
596 	  IF p_lsev_tbl.COUNT > 0 THEN
597            i := p_lsev_tbl.FIRST;
598 		 LOOP
599 		   l_return_status:=OKC_LINE_STYLES_PVT.USED_IN_K_LINES(p_lsev_tbl(i).id);
600 		   IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
601 			  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
602 				  x_return_status := l_return_status;
603 		      	  raise G_EXCEPTION_HALT_PROCESSING;
604 			  ELSE
605 				  x_return_status := l_return_status;
606 			  END IF;
607 		    END IF;
608 		    EXIT WHEN (i = p_lsev_tbl.LAST);
609 		    i := p_lsev_tbl.NEXT(i);
610 		 END LOOP;
611       END IF;
612 	 return x_return_status;
613 EXCEPTION
614 	  WHEN G_EXCEPTION_HALT_PROCESSING THEN
615 	    return x_return_status;
616        WHEN OTHERS THEN
617 		 OKC_API.set_message(p_app_name      => g_app_name,
618 	      p_msg_name      => g_unexpected_error,
619 		 p_token1        => g_sqlcode_token,
620 		 p_token1_value  => sqlcode,
621 		 p_token2        => g_sqlerrm_token,
622 		 p_token2_value  => sqlerrm);
623 		 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
624 	      return x_return_status;
625 End USED_IN_K_LINES;
626 
627 
628 
629 FUNCTION USED_IN_SETUPS(
630 	   p_lsev_tbl                IN lsev_tbl_type) RETURN VARCHAR2 IS
631 	 i                       NUMBER := 0;
632 	 l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
633 	 x_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
634   BEGIN
635 	  x_return_status := OKC_API.G_RET_STS_SUCCESS;
636 	  IF p_lsev_tbl.COUNT > 0 THEN
637            i := p_lsev_tbl.FIRST;
638 		 LOOP
639 		   l_return_status:=OKC_LINE_STYLES_PVT.USED_IN_SETUPS(p_lsev_tbl(i).id);
640 		   IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
641 			  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
642 				  x_return_status := l_return_status;
643 		      	  raise G_EXCEPTION_HALT_PROCESSING;
644 			  ELSE
645 				  x_return_status := l_return_status;
646 			  END IF;
647 		    END IF;
648 		    EXIT WHEN (i = p_lsev_tbl.LAST);
649 		    i := p_lsev_tbl.NEXT(i);
650 		 END LOOP;
651       END IF;
652 	 return x_return_status;
653 EXCEPTION
654 	  WHEN G_EXCEPTION_HALT_PROCESSING THEN
655 	    return x_return_status;
656        WHEN OTHERS THEN
657 		 OKC_API.set_message(p_app_name      => g_app_name,
658 	      p_msg_name      => g_unexpected_error,
659 		 p_token1        => g_sqlcode_token,
660 		 p_token1_value  => sqlcode,
661 		 p_token2        => g_sqlerrm_token,
662 		 p_token2_value  => sqlerrm);
663 		 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
664 	      return x_return_status;
665 End USED_IN_SETUPS;
666 
667 
668 FUNCTION USED_IN_SRC_OPS(
669 	   p_lsev_tbl                IN lsev_tbl_type) RETURN VARCHAR2 IS
670 	 i                       NUMBER := 0;
671 	 l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
672 	 x_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
673   BEGIN
674 	  x_return_status := OKC_API.G_RET_STS_SUCCESS;
675 	  IF p_lsev_tbl.COUNT > 0 THEN
676            i := p_lsev_tbl.FIRST;
677 		 LOOP
678 		   l_return_status:=OKC_LINE_STYLES_PVT.USED_IN_SRC_OPS(p_lsev_tbl(i).id);
679 		   IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
680 			  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
681 				  x_return_status := l_return_status;
682 		      	  raise G_EXCEPTION_HALT_PROCESSING;
683 			  ELSE
684 				  x_return_status := l_return_status;
685 			  END IF;
686 		    END IF;
687 		    EXIT WHEN (i = p_lsev_tbl.LAST);
688 		    i := p_lsev_tbl.NEXT(i);
689 		 END LOOP;
690       END IF;
691 	 return x_return_status;
692 EXCEPTION
693 	  WHEN G_EXCEPTION_HALT_PROCESSING THEN
694 	    return x_return_status;
695        WHEN OTHERS THEN
696 		 OKC_API.set_message(p_app_name      => g_app_name,
697 	      p_msg_name      => g_unexpected_error,
698 		 p_token1        => g_sqlcode_token,
699 		 p_token1_value  => sqlcode,
700 		 p_token2        => g_sqlerrm_token,
701 		 p_token2_value  => sqlerrm);
702 		 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
703 	      return x_return_status;
704 End USED_IN_SRC_OPS;
705 
706 
707  --------------------------------------------------------------------------
708 ---The following procedures cater to handling of OKC_TIME_LINE_STYLE_SOURCES
709  --------------------------------------------------------------------------
710 
711   FUNCTION migrate_lssv(p_lssv_rec1 IN lssv_rec_type,
712                         p_lssv_rec2 IN lssv_rec_type)
713     RETURN lssv_rec_type IS
714     l_lssv_rec lssv_rec_type;
715   BEGIN
716     l_lssv_rec.lse_id := p_lssv_rec1.lse_id;
717     l_lssv_rec.jtot_object_code := p_lssv_rec2.jtot_object_code;
718     l_lssv_rec.start_date := p_lssv_rec2.start_date;
719     l_lssv_rec.end_date := p_lssv_rec2.end_date;
720     l_lssv_rec.object_version_number := p_lssv_rec1.object_version_number;
721     l_lssv_rec.created_by := p_lssv_rec1.created_by;
722     l_lssv_rec.creation_date := p_lssv_rec1.creation_date;
723     l_lssv_rec.last_updated_by := p_lssv_rec1.last_updated_by;
724     l_lssv_rec.last_update_date := p_lssv_rec1.last_update_date;
725     l_lssv_rec.last_update_login := p_lssv_rec1.last_update_login;
726     RETURN (l_lssv_rec);
727   END migrate_lssv;
728 
729   FUNCTION migrate_lssv(p_lssv_tbl1 IN lssv_tbl_type,
730     p_lssv_tbl2 IN lssv_tbl_type)
731     RETURN lssv_tbl_type IS
732     l_lssv_tbl lssv_tbl_type;
733     i NUMBER := 0;
734     j NUMBER := 0;
735   BEGIN
736     -- If the user hook deleted some records or added some new records in the table,
737     -- discard the change and simply copy the original table.
738     IF p_lssv_tbl1.COUNT <> p_lssv_tbl2.COUNT THEN
739       l_lssv_tbl := p_lssv_tbl1;
740     ELSE
741       IF (p_lssv_tbl1.COUNT > 0) THEN
742         i := p_lssv_tbl1.FIRST;
743         j := p_lssv_tbl2.FIRST;
744         LOOP
745           l_lssv_tbl(i) := migrate_lssv(p_lssv_tbl1(i), p_lssv_tbl2(j));
746           EXIT WHEN (i = p_lssv_tbl1.LAST);
747           i := p_lssv_tbl1.NEXT(i);
748           j := p_lssv_tbl2.NEXT(j);
749         END LOOP;
750       END IF;
751     END IF;
752     RETURN (l_lssv_tbl);
753   END migrate_lssv;
754 
755   PROCEDURE CREATE_LINE_STYLE_SOURCES(
756     p_api_version	    IN NUMBER,
757     p_init_msg_list         IN VARCHAR2 ,
758     x_return_status         OUT NOCOPY VARCHAR2,
759     x_msg_count             OUT NOCOPY NUMBER,
760     x_msg_data              OUT NOCOPY VARCHAR2,
761     p_lssv_rec	            IN lssv_rec_type,
762     x_lssv_rec              OUT NOCOPY lssv_rec_type) IS
763     l_api_name              CONSTANT VARCHAR2(30) := 'CREATE_LINE_STYLE_SOURCES';
764     l_return_status	  VARCHAR2(1);
765     l_lssv_rec     lssv_rec_type := p_lssv_rec;
766   BEGIN
767     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
768 					      p_init_msg_list,
769 					      '_PUB',
770                                         x_return_status);
771     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
772       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
773     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
774       raise OKC_API.G_EXCEPTION_ERROR;
775     END IF;
776     -- Call user hook for BEFORE
777     g_lssv_rec := l_lssv_rec;
778     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
779     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
780       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
781     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
782       raise OKC_API.G_EXCEPTION_ERROR;
783     END IF;
784     l_lssv_rec := migrate_lssv(l_lssv_rec, g_lssv_rec);
785     OKC_LINE_STYLES_PVT.CREATE_LINE_STYLE_SOURCES(
786        p_api_version,
787        p_init_msg_list,
788        x_return_status,
789        x_msg_count,
790        x_msg_data,
791        p_lssv_rec,
792        x_lssv_rec);
793     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
794       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
795     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
796       raise OKC_API.G_EXCEPTION_ERROR;
797     END IF;
798 
799     -- Call user hook for AFTER
800     g_lssv_rec := x_lssv_rec;
801     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
802     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
803       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
804     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
805       raise OKC_API.G_EXCEPTION_ERROR;
806     END IF;
807     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
808   EXCEPTION
809     WHEN OKC_API.G_EXCEPTION_ERROR THEN
810       x_return_status := OKC_API.HANDLE_EXCEPTIONS
811       (l_api_name,
812        G_PKG_NAME,
813        'OKC_API.G_RET_STS_ERROR',
814        x_msg_count,
815        x_msg_data,
816        '_PUB');
817     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
818       x_return_status := OKC_API.HANDLE_EXCEPTIONS
819       (l_api_name,
820        G_PKG_NAME,
821        'OKC_API.G_RET_STS_UNEXP_ERROR',
822        x_msg_count,
823        x_msg_data,
824        '_PUB');
825     WHEN OTHERS THEN
826       x_return_status := OKC_API.HANDLE_EXCEPTIONS
827       (l_api_name,
828        G_PKG_NAME,
829        'OTHERS',
830        x_msg_count,
831        x_msg_data,
832        '_PUB');
833   END CREATE_LINE_STYLE_SOURCES;
834 
835   PROCEDURE CREATE_LINE_STYLE_SOURCES(
836     p_api_version                  IN NUMBER,
837     p_init_msg_list                IN VARCHAR2 ,
838     x_return_status                OUT NOCOPY VARCHAR2,
839     x_msg_count                    OUT NOCOPY NUMBER,
840     x_msg_data                     OUT NOCOPY VARCHAR2,
841     p_lssv_tbl                     IN lssv_tbl_type,
842     x_lssv_tbl                     OUT NOCOPY lssv_tbl_type) IS
843     i			         NUMBER := 0;
844     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
845   BEGIN
846     x_return_status := OKC_API.G_RET_STS_SUCCESS;
847     IF p_lssv_tbl.COUNT > 0 THEN
848       i := p_lssv_tbl.FIRST;
849       LOOP
850         CREATE_LINE_STYLE_SOURCES(
851 	    p_api_version,
852 	    p_init_msg_list,
853 	    l_return_status,
854 	    x_msg_count,
855 	    x_msg_data,
856 	    p_lssv_tbl(i),
857 	    x_lssv_tbl(i));
858         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
859           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
860             x_return_status := l_return_status;
861             raise G_EXCEPTION_HALT_VALIDATION;
862           ELSE
863             x_return_status := l_return_status;
864           END IF;
865         END IF;
866         EXIT WHEN (i = p_lssv_tbl.LAST);
867         i := p_lssv_tbl.NEXT(i);
868       END LOOP;
869     END IF;
870   EXCEPTION
871     WHEN G_EXCEPTION_HALT_VALIDATION THEN
872       NULL;
873     WHEN OTHERS THEN
874       OKC_API.set_message(p_app_name      => g_app_name,
875                           p_msg_name      => g_unexpected_error,
876                           p_token1        => g_sqlcode_token,
877                           p_token1_value  => sqlcode,
878                           p_token2        => g_sqlerrm_token,
879                           p_token2_value  => sqlerrm);
880       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
881   END CREATE_LINE_STYLE_SOURCES;
882 
883   PROCEDURE UPDATE_LINE_STYLE_SOURCES(
884     p_api_version	    IN NUMBER,
885     p_init_msg_list         IN VARCHAR2 ,
886     x_return_status         OUT NOCOPY VARCHAR2,
887     x_msg_count             OUT NOCOPY NUMBER,
888     x_msg_data              OUT NOCOPY VARCHAR2,
889     p_lssv_rec	            IN lssv_rec_type,
890     x_lssv_rec              OUT NOCOPY lssv_rec_type) IS
891     l_api_name              CONSTANT VARCHAR2(30) := 'UPDATE_LINE_STYLE_SOURCES';
892     l_return_status	  VARCHAR2(1);
893     l_lssv_rec     lssv_rec_type := p_lssv_rec;
894   BEGIN
895     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
896 					      p_init_msg_list,
897 					      '_PUB',
898                                         x_return_status);
899     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
900       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
901     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
902       raise OKC_API.G_EXCEPTION_ERROR;
903     END IF;
904     -- Call user hook for BEFORE
905     g_lssv_rec := l_lssv_rec;
906     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
907     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
908       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
909     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
910       raise OKC_API.G_EXCEPTION_ERROR;
911     END IF;
912     l_lssv_rec := migrate_lssv(l_lssv_rec, g_lssv_rec);
913     OKC_LINE_STYLES_PVT.UPDATE_LINE_STYLE_SOURCES(
914        p_api_version,
915        p_init_msg_list,
916        x_return_status,
917        x_msg_count,
918        x_msg_data,
919        p_lssv_rec,
920        x_lssv_rec);
921     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
922       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
923     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
924       raise OKC_API.G_EXCEPTION_ERROR;
925     END IF;
926 
927     -- Call user hook for AFTER
928     g_lssv_rec := x_lssv_rec;
929     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
930     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
931       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
932     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
933       raise OKC_API.G_EXCEPTION_ERROR;
934     END IF;
935     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
936   EXCEPTION
937     WHEN OKC_API.G_EXCEPTION_ERROR THEN
938       x_return_status := OKC_API.HANDLE_EXCEPTIONS
939       (l_api_name,
940        G_PKG_NAME,
941        'OKC_API.G_RET_STS_ERROR',
942        x_msg_count,
943        x_msg_data,
944        '_PUB');
945     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
946       x_return_status := OKC_API.HANDLE_EXCEPTIONS
947       (l_api_name,
948        G_PKG_NAME,
949        'OKC_API.G_RET_STS_UNEXP_ERROR',
950        x_msg_count,
951        x_msg_data,
952        '_PUB');
953     WHEN OTHERS THEN
954       x_return_status := OKC_API.HANDLE_EXCEPTIONS
955       (l_api_name,
956        G_PKG_NAME,
957        'OTHERS',
958        x_msg_count,
959        x_msg_data,
960        '_PUB');
961   END UPDATE_LINE_STYLE_SOURCES;
962 
963   PROCEDURE UPDATE_LINE_STYLE_SOURCES(
964     p_api_version                  IN NUMBER,
965     p_init_msg_list                IN VARCHAR2 ,
966     x_return_status                OUT NOCOPY VARCHAR2,
967     x_msg_count                    OUT NOCOPY NUMBER,
968     x_msg_data                     OUT NOCOPY VARCHAR2,
969     p_lssv_tbl                     IN lssv_tbl_type,
970     x_lssv_tbl                     OUT NOCOPY lssv_tbl_type) IS
971     i			         NUMBER := 0;
972     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
973   BEGIN
974     x_return_status := OKC_API.G_RET_STS_SUCCESS;
975     IF p_lssv_tbl.COUNT > 0 THEN
976       i := p_lssv_tbl.FIRST;
977       LOOP
978         UPDATE_LINE_STYLE_SOURCES(
979 	    p_api_version,
980 	    p_init_msg_list,
981 	    l_return_status,
982 	    x_msg_count,
983 	    x_msg_data,
984 	    p_lssv_tbl(i),
985 	    x_lssv_tbl(i));
986         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
987           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
988             x_return_status := l_return_status;
989             raise G_EXCEPTION_HALT_VALIDATION;
990           ELSE
991             x_return_status := l_return_status;
992           END IF;
993         END IF;
994         EXIT WHEN (i = p_lssv_tbl.LAST);
995         i := p_lssv_tbl.NEXT(i);
996       END LOOP;
997     END IF;
998   EXCEPTION
999     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1000       NULL;
1001     WHEN OTHERS THEN
1002       OKC_API.set_message(p_app_name      => g_app_name,
1003                           p_msg_name      => g_unexpected_error,
1004                           p_token1        => g_sqlcode_token,
1005                           p_token1_value  => sqlcode,
1006                           p_token2        => g_sqlerrm_token,
1007                           p_token2_value  => sqlerrm);
1008       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1009   END UPDATE_LINE_STYLE_SOURCES;
1010 
1011   PROCEDURE DELETE_LINE_STYLE_SOURCES(
1012     p_api_version	    IN NUMBER,
1013     p_init_msg_list         IN VARCHAR2 ,
1014     x_return_status         OUT NOCOPY VARCHAR2,
1015     x_msg_count             OUT NOCOPY NUMBER,
1016     x_msg_data              OUT NOCOPY VARCHAR2,
1017     p_lssv_rec              IN lssv_rec_type) IS
1018     l_api_name              CONSTANT VARCHAR2(30) := 'DELETE_LINE_STYLE_SOURCES';
1019     l_return_status	  VARCHAR2(1);
1020     l_lssv_rec     lssv_rec_type := p_lssv_rec;
1021   BEGIN
1022     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1023 					      p_init_msg_list,
1024 					      '_PUB',
1025                                         x_return_status);
1026     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1027       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1028     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1029       raise OKC_API.G_EXCEPTION_ERROR;
1030     END IF;
1031     -- Call user hook for BEFORE
1032     g_lssv_rec := l_lssv_rec;
1033     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
1034     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1035       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1036     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1037       raise OKC_API.G_EXCEPTION_ERROR;
1038     END IF;
1039     OKC_LINE_STYLES_PVT.DELETE_LINE_STYLE_SOURCES(
1040        p_api_version,
1041        p_init_msg_list,
1042        x_return_status,
1043        x_msg_count,
1044        x_msg_data,
1045        p_lssv_rec);
1046     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1047       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1048     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1049       raise OKC_API.G_EXCEPTION_ERROR;
1050     END IF;
1051 
1052     -- Call user hook for AFTER
1053     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
1054     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1055       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1056     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1057       raise OKC_API.G_EXCEPTION_ERROR;
1058     END IF;
1059     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1060   EXCEPTION
1061     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1062       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1063       (l_api_name,
1064        G_PKG_NAME,
1065        'OKC_API.G_RET_STS_ERROR',
1066        x_msg_count,
1067        x_msg_data,
1068        '_PUB');
1069     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1070       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1071       (l_api_name,
1072        G_PKG_NAME,
1073        'OKC_API.G_RET_STS_UNEXP_ERROR',
1074        x_msg_count,
1075        x_msg_data,
1076        '_PUB');
1077     WHEN OTHERS THEN
1078       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1079       (l_api_name,
1080        G_PKG_NAME,
1081        'OTHERS',
1082        x_msg_count,
1083        x_msg_data,
1084        '_PUB');
1085   END DELETE_LINE_STYLE_SOURCES;
1086 
1087   PROCEDURE DELETE_LINE_STYLE_SOURCES(
1088     p_api_version                  IN NUMBER,
1089     p_init_msg_list                IN VARCHAR2 ,
1090     x_return_status                OUT NOCOPY VARCHAR2,
1091     x_msg_count                    OUT NOCOPY NUMBER,
1092     x_msg_data                     OUT NOCOPY VARCHAR2,
1093     p_lssv_tbl                     IN lssv_tbl_type) IS
1094     i			         NUMBER := 0;
1095     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1096   BEGIN
1097     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1098     IF p_lssv_tbl.COUNT > 0 THEN
1099       i := p_lssv_tbl.FIRST;
1100       LOOP
1101         DELETE_LINE_STYLE_SOURCES(
1102 	    p_api_version,
1103 	    p_init_msg_list,
1104 	    l_return_status,
1105 	    x_msg_count,
1106 	    x_msg_data,
1107 	    p_lssv_tbl(i));
1108         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1109           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1110             x_return_status := l_return_status;
1111             raise G_EXCEPTION_HALT_VALIDATION;
1112           ELSE
1113             x_return_status := l_return_status;
1114           END IF;
1115         END IF;
1116         EXIT WHEN (i = p_lssv_tbl.LAST);
1117         i := p_lssv_tbl.NEXT(i);
1118       END LOOP;
1119     END IF;
1120   EXCEPTION
1121     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1122       NULL;
1123     WHEN OTHERS THEN
1124       OKC_API.set_message(p_app_name      => g_app_name,
1125                           p_msg_name      => g_unexpected_error,
1126                           p_token1        => g_sqlcode_token,
1127                           p_token1_value  => sqlcode,
1128                           p_token2        => g_sqlerrm_token,
1129                           p_token2_value  => sqlerrm);
1130       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1131   END DELETE_LINE_STYLE_SOURCES;
1132 
1133   PROCEDURE LOCK_LINE_STYLE_SOURCES(
1134     p_api_version	    IN NUMBER,
1135     p_init_msg_list         IN VARCHAR2 ,
1136     x_return_status         OUT NOCOPY VARCHAR2,
1137     x_msg_count             OUT NOCOPY NUMBER,
1138     x_msg_data              OUT NOCOPY VARCHAR2,
1139     p_lssv_rec		    IN lssv_rec_type) IS
1140   BEGIN
1141     OKC_LINE_STYLES_PVT.LOCK_LINE_STYLE_SOURCES(
1142     p_api_version,
1143     p_init_msg_list,
1144     x_return_status,
1145     x_msg_count,
1146     x_msg_data,
1147     p_lssv_rec);
1148   END LOCK_LINE_STYLE_SOURCES;
1149 
1150   PROCEDURE LOCK_LINE_STYLE_SOURCES(
1151     p_api_version                  IN NUMBER,
1152     p_init_msg_list                IN VARCHAR2 ,
1153     x_return_status                OUT NOCOPY VARCHAR2,
1154     x_msg_count                    OUT NOCOPY NUMBER,
1155     x_msg_data                     OUT NOCOPY VARCHAR2,
1156     p_lssv_tbl                     IN lssv_tbl_type) IS
1157     i			         NUMBER := 0;
1158     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1159   BEGIN
1160     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1161     IF p_lssv_tbl.COUNT > 0 THEN
1162       i := p_lssv_tbl.FIRST;
1163       LOOP
1164         LOCK_LINE_STYLE_SOURCES(
1165 	    p_api_version,
1166 	    p_init_msg_list,
1167 	    l_return_status,
1168 	    x_msg_count,
1169 	    x_msg_data,
1170 	    p_lssv_tbl(i));
1171         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1172           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1173             x_return_status := l_return_status;
1174             raise G_EXCEPTION_HALT_VALIDATION;
1175           ELSE
1176             x_return_status := l_return_status;
1177           END IF;
1178         END IF;
1179         EXIT WHEN (i = p_lssv_tbl.LAST);
1180         i := p_lssv_tbl.NEXT(i);
1181       END LOOP;
1182     END IF;
1183   EXCEPTION
1184     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1185       NULL;
1186     WHEN OTHERS THEN
1187       OKC_API.set_message(p_app_name      => g_app_name,
1188                           p_msg_name      => g_unexpected_error,
1189                           p_token1        => g_sqlcode_token,
1190                           p_token1_value  => sqlcode,
1191                           p_token2        => g_sqlerrm_token,
1192                           p_token2_value  => sqlerrm);
1193       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1194   END LOCK_LINE_STYLE_SOURCES;
1195 
1196   PROCEDURE VALID_LINE_STYLE_SOURCES(
1197     p_api_version	    IN NUMBER,
1198     p_init_msg_list         IN VARCHAR2 ,
1199     x_return_status         OUT NOCOPY VARCHAR2,
1200     x_msg_count             OUT NOCOPY NUMBER,
1201     x_msg_data              OUT NOCOPY VARCHAR2,
1202     p_lssv_rec		    IN lssv_rec_type) IS
1203   BEGIN
1204     OKC_LINE_STYLES_PVT.VALID_LINE_STYLE_SOURCES(
1205     p_api_version,
1206     p_init_msg_list,
1207     x_return_status,
1208     x_msg_count,
1209     x_msg_data,
1210     p_lssv_rec);
1211   END VALID_LINE_STYLE_SOURCES;
1212 
1213   PROCEDURE VALID_LINE_STYLE_SOURCES(
1214     p_api_version                  IN NUMBER,
1215     p_init_msg_list                IN VARCHAR2 ,
1216     x_return_status                OUT NOCOPY VARCHAR2,
1217     x_msg_count                    OUT NOCOPY NUMBER,
1218     x_msg_data                     OUT NOCOPY VARCHAR2,
1219     p_lssv_tbl                     IN lssv_tbl_type) IS
1220     i			         NUMBER := 0;
1221     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1222   BEGIN
1223     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1224     IF p_lssv_tbl.COUNT > 0 THEN
1225       i := p_lssv_tbl.FIRST;
1226       LOOP
1227         VALID_LINE_STYLE_SOURCES(
1228 	    p_api_version,
1229 	    p_init_msg_list,
1230 	    l_return_status,
1231 	    x_msg_count,
1232 	    x_msg_data,
1233 	    p_lssv_tbl(i));
1234         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1235           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1236             x_return_status := l_return_status;
1237             raise G_EXCEPTION_HALT_VALIDATION;
1238           ELSE
1239             x_return_status := l_return_status;
1240           END IF;
1241         END IF;
1242         EXIT WHEN (i = p_lssv_tbl.LAST);
1243         i := p_lssv_tbl.NEXT(i);
1244       END LOOP;
1245     END IF;
1246   EXCEPTION
1247     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1248       NULL;
1249     WHEN OTHERS THEN
1250       OKC_API.set_message(p_app_name      => g_app_name,
1251                           p_msg_name      => g_unexpected_error,
1252                           p_token1        => g_sqlcode_token,
1253                           p_token1_value  => sqlcode,
1254                           p_token2        => g_sqlerrm_token,
1255                           p_token2_value  => sqlerrm);
1256       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1257   END VALID_LINE_STYLE_SOURCES;
1258 
1259  --------------------------------------------------------------------------
1260 ---The following procedures cater to handling of OKC_VAL_LINE_OPERTION
1261  --------------------------------------------------------------------------
1262 
1263   FUNCTION migrate_vlov(p_vlov_rec1 IN vlov_rec_type,
1264                         p_vlov_rec2 IN vlov_rec_type)
1265     RETURN vlov_rec_type IS
1266     l_vlov_rec vlov_rec_type;
1267   BEGIN
1268     l_vlov_rec.lse_id := p_vlov_rec2.lse_id;
1269     l_vlov_rec.opn_code := p_vlov_rec2.opn_code;
1270     l_vlov_rec.object_version_number := p_vlov_rec1.object_version_number;
1271     l_vlov_rec.created_by := p_vlov_rec1.created_by;
1272     l_vlov_rec.creation_date := p_vlov_rec1.creation_date;
1273     l_vlov_rec.last_updated_by := p_vlov_rec1.last_updated_by;
1274     l_vlov_rec.last_update_date := p_vlov_rec1.last_update_date;
1275     l_vlov_rec.last_update_login := p_vlov_rec1.last_update_login;
1276     RETURN (l_vlov_rec);
1277   END migrate_vlov;
1278 
1279   PROCEDURE CREATE_VAL_LINE_OPERATION(
1280     p_api_version	    IN NUMBER,
1281     p_init_msg_list         IN VARCHAR2 ,
1282     x_return_status         OUT NOCOPY VARCHAR2,
1283     x_msg_count             OUT NOCOPY NUMBER,
1284     x_msg_data              OUT NOCOPY VARCHAR2,
1285     p_vlov_rec	            IN vlov_rec_type,
1286     x_vlov_rec              OUT NOCOPY vlov_rec_type) IS
1287     l_api_name              CONSTANT VARCHAR2(30) := 'CREATE_VAL_LINE_OPERATION';
1288     l_return_status	  VARCHAR2(1);
1289     l_vlov_rec     vlov_rec_type := p_vlov_rec;
1290   BEGIN
1291     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1292 					      p_init_msg_list,
1293 					      '_PUB',
1294                                         x_return_status);
1295     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1296       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1297     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1298       raise OKC_API.G_EXCEPTION_ERROR;
1299     END IF;
1300     -- Call user hook for BEFORE
1301     g_vlov_rec := l_vlov_rec;
1302     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
1303     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1304       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1305     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1306       raise OKC_API.G_EXCEPTION_ERROR;
1307     END IF;
1308     l_vlov_rec := migrate_vlov(l_vlov_rec, g_vlov_rec);
1309     OKC_LINE_STYLES_PVT.CREATE_VAL_LINE_OPERATION(
1310        p_api_version,
1311        p_init_msg_list,
1312        x_return_status,
1313        x_msg_count,
1314        x_msg_data,
1315        p_vlov_rec,
1316        x_vlov_rec);
1317     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1318       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1319     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1320       raise OKC_API.G_EXCEPTION_ERROR;
1321     END IF;
1322 
1323     -- Call user hook for AFTER
1324     g_vlov_rec := x_vlov_rec;
1325     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
1326     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1327       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1328     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1329       raise OKC_API.G_EXCEPTION_ERROR;
1330     END IF;
1331     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1332   EXCEPTION
1333     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1334       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1335       (l_api_name,
1336        G_PKG_NAME,
1337        'OKC_API.G_RET_STS_ERROR',
1338        x_msg_count,
1339        x_msg_data,
1340        '_PUB');
1341     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1342       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1343       (l_api_name,
1344        G_PKG_NAME,
1345        'OKC_API.G_RET_STS_UNEXP_ERROR',
1346        x_msg_count,
1347        x_msg_data,
1348        '_PUB');
1349     WHEN OTHERS THEN
1350       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1351       (l_api_name,
1352        G_PKG_NAME,
1353        'OTHERS',
1354        x_msg_count,
1355        x_msg_data,
1356        '_PUB');
1357   END CREATE_VAL_LINE_OPERATION;
1358 
1359   PROCEDURE CREATE_VAL_LINE_OPERATION(
1360     p_api_version                  IN NUMBER,
1361     p_init_msg_list                IN VARCHAR2 ,
1362     x_return_status                OUT NOCOPY VARCHAR2,
1363     x_msg_count                    OUT NOCOPY NUMBER,
1364     x_msg_data                     OUT NOCOPY VARCHAR2,
1365     p_vlov_tbl                     IN vlov_tbl_type,
1366     x_vlov_tbl                     OUT NOCOPY vlov_tbl_type) IS
1367     i			         NUMBER := 0;
1368     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1369   BEGIN
1370     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1371     IF p_vlov_tbl.COUNT > 0 THEN
1372       i := p_vlov_tbl.FIRST;
1373       LOOP
1374         CREATE_VAL_LINE_OPERATION(
1375 	    p_api_version,
1376 	    p_init_msg_list,
1377 	    l_return_status,
1378 	    x_msg_count,
1379 	    x_msg_data,
1380 	    p_vlov_tbl(i),
1381 	    x_vlov_tbl(i));
1382         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1383           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1384             x_return_status := l_return_status;
1385             raise G_EXCEPTION_HALT_VALIDATION;
1386           ELSE
1387             x_return_status := l_return_status;
1388           END IF;
1389         END IF;
1390         EXIT WHEN (i = p_vlov_tbl.LAST);
1391         i := p_vlov_tbl.NEXT(i);
1392       END LOOP;
1393     END IF;
1394   EXCEPTION
1395     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1396       NULL;
1397     WHEN OTHERS THEN
1398       OKC_API.set_message(p_app_name      => g_app_name,
1399                           p_msg_name      => g_unexpected_error,
1400                           p_token1        => g_sqlcode_token,
1401                           p_token1_value  => sqlcode,
1402                           p_token2        => g_sqlerrm_token,
1403                           p_token2_value  => sqlerrm);
1404       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1405   END CREATE_VAL_LINE_OPERATION;
1406 
1407   PROCEDURE UPDATE_VAL_LINE_OPERATION(
1408     p_api_version	    IN NUMBER,
1409     p_init_msg_list         IN VARCHAR2 ,
1410     x_return_status         OUT NOCOPY VARCHAR2,
1411     x_msg_count             OUT NOCOPY NUMBER,
1412     x_msg_data              OUT NOCOPY VARCHAR2,
1413     p_vlov_rec	            IN vlov_rec_type,
1414     x_vlov_rec              OUT NOCOPY vlov_rec_type) IS
1415     l_api_name              CONSTANT VARCHAR2(30) := 'UPDATE_VAL_LINE_OPERATION';
1416     l_return_status	  VARCHAR2(1);
1417     l_vlov_rec     vlov_rec_type := p_vlov_rec;
1418   BEGIN
1419     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1420 					      p_init_msg_list,
1421 					      '_PUB',
1422                                         x_return_status);
1423     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1424       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1425     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1426       raise OKC_API.G_EXCEPTION_ERROR;
1427     END IF;
1428     -- Call user hook for BEFORE
1429     g_vlov_rec := l_vlov_rec;
1430     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
1431     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1432       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1433     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1434       raise OKC_API.G_EXCEPTION_ERROR;
1435     END IF;
1436     l_vlov_rec := migrate_vlov(l_vlov_rec, g_vlov_rec);
1437     OKC_LINE_STYLES_PVT.UPDATE_VAL_LINE_OPERATION(
1438        p_api_version,
1439        p_init_msg_list,
1440        x_return_status,
1441        x_msg_count,
1442        x_msg_data,
1443        p_vlov_rec,
1444        x_vlov_rec);
1445     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1446       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1447     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1448       raise OKC_API.G_EXCEPTION_ERROR;
1449     END IF;
1450 
1451     -- Call user hook for AFTER
1452     g_vlov_rec := x_vlov_rec;
1453     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
1454     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1455       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1456     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1457       raise OKC_API.G_EXCEPTION_ERROR;
1458     END IF;
1459     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1460   EXCEPTION
1461     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1462       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1463       (l_api_name,
1464        G_PKG_NAME,
1465        'OKC_API.G_RET_STS_ERROR',
1466        x_msg_count,
1467        x_msg_data,
1468        '_PUB');
1469     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1470       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1471       (l_api_name,
1472        G_PKG_NAME,
1473        'OKC_API.G_RET_STS_UNEXP_ERROR',
1474        x_msg_count,
1475        x_msg_data,
1476        '_PUB');
1477     WHEN OTHERS THEN
1478       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1479       (l_api_name,
1480        G_PKG_NAME,
1481        'OTHERS',
1482        x_msg_count,
1483        x_msg_data,
1484        '_PUB');
1485   END UPDATE_VAL_LINE_OPERATION;
1486 
1487   PROCEDURE UPDATE_VAL_LINE_OPERATION(
1488     p_api_version                  IN NUMBER,
1489     p_init_msg_list                IN VARCHAR2 ,
1490     x_return_status                OUT NOCOPY VARCHAR2,
1491     x_msg_count                    OUT NOCOPY NUMBER,
1492     x_msg_data                     OUT NOCOPY VARCHAR2,
1493     p_vlov_tbl                     IN vlov_tbl_type,
1494     x_vlov_tbl                     OUT NOCOPY vlov_tbl_type) IS
1495     i			         NUMBER := 0;
1496     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1497   BEGIN
1498     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1499     IF p_vlov_tbl.COUNT > 0 THEN
1500       i := p_vlov_tbl.FIRST;
1501       LOOP
1502         UPDATE_VAL_LINE_OPERATION(
1503 	    p_api_version,
1504 	    p_init_msg_list,
1505 	    l_return_status,
1506 	    x_msg_count,
1507 	    x_msg_data,
1508 	    p_vlov_tbl(i),
1509 	    x_vlov_tbl(i));
1510         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1511           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1512             x_return_status := l_return_status;
1513             raise G_EXCEPTION_HALT_VALIDATION;
1514           ELSE
1515             x_return_status := l_return_status;
1516           END IF;
1517         END IF;
1518         EXIT WHEN (i = p_vlov_tbl.LAST);
1519         i := p_vlov_tbl.NEXT(i);
1520       END LOOP;
1521     END IF;
1522   EXCEPTION
1523     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1524       NULL;
1525     WHEN OTHERS THEN
1526       OKC_API.set_message(p_app_name      => g_app_name,
1527                           p_msg_name      => g_unexpected_error,
1528                           p_token1        => g_sqlcode_token,
1529                           p_token1_value  => sqlcode,
1530                           p_token2        => g_sqlerrm_token,
1531                           p_token2_value  => sqlerrm);
1532       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1533   END UPDATE_VAL_LINE_OPERATION;
1534 
1535   PROCEDURE DELETE_VAL_LINE_OPERATION(
1536     p_api_version	    IN NUMBER,
1537     p_init_msg_list         IN VARCHAR2 ,
1538     x_return_status         OUT NOCOPY VARCHAR2,
1539     x_msg_count             OUT NOCOPY NUMBER,
1540     x_msg_data              OUT NOCOPY VARCHAR2,
1541     p_vlov_rec              IN vlov_rec_type) IS
1542     l_api_name              CONSTANT VARCHAR2(30) := 'DELETE_VAL_LINE_OPERATION';
1543     l_return_status	  VARCHAR2(1);
1544     l_vlov_rec     vlov_rec_type := p_vlov_rec;
1545   BEGIN
1546     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1547 					      p_init_msg_list,
1548 					      '_PUB',
1549                                         x_return_status);
1550     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1551       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1552     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1553       raise OKC_API.G_EXCEPTION_ERROR;
1554     END IF;
1555     -- Call user hook for BEFORE
1556     g_vlov_rec := l_vlov_rec;
1557     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
1558     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1559       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1560     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1561       raise OKC_API.G_EXCEPTION_ERROR;
1562     END IF;
1563     OKC_LINE_STYLES_PVT.DELETE_VAL_LINE_OPERATION(
1564        p_api_version,
1565        p_init_msg_list,
1566        x_return_status,
1567        x_msg_count,
1568        x_msg_data,
1569        p_vlov_rec);
1570     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1571       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1572     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1573       raise OKC_API.G_EXCEPTION_ERROR;
1574     END IF;
1575 
1576     -- Call user hook for AFTER
1577     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
1578     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1579       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1580     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1581       raise OKC_API.G_EXCEPTION_ERROR;
1582     END IF;
1583     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1584   EXCEPTION
1585     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1586       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1587       (l_api_name,
1588        G_PKG_NAME,
1589        'OKC_API.G_RET_STS_ERROR',
1590        x_msg_count,
1591        x_msg_data,
1592        '_PUB');
1593     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1594       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1595       (l_api_name,
1596        G_PKG_NAME,
1597        'OKC_API.G_RET_STS_UNEXP_ERROR',
1598        x_msg_count,
1599        x_msg_data,
1600        '_PUB');
1601     WHEN OTHERS THEN
1602       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1603       (l_api_name,
1604        G_PKG_NAME,
1605        'OTHERS',
1606        x_msg_count,
1607        x_msg_data,
1608        '_PUB');
1609   END DELETE_VAL_LINE_OPERATION;
1610 
1611   PROCEDURE DELETE_VAL_LINE_OPERATION(
1612     p_api_version                  IN NUMBER,
1613     p_init_msg_list                IN VARCHAR2 ,
1614     x_return_status                OUT NOCOPY VARCHAR2,
1615     x_msg_count                    OUT NOCOPY NUMBER,
1616     x_msg_data                     OUT NOCOPY VARCHAR2,
1617     p_vlov_tbl                     IN vlov_tbl_type) IS
1618     i			         NUMBER := 0;
1619     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1620   BEGIN
1621     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1622     IF p_vlov_tbl.COUNT > 0 THEN
1623       i := p_vlov_tbl.FIRST;
1624       LOOP
1625         DELETE_VAL_LINE_OPERATION(
1626 	    p_api_version,
1627 	    p_init_msg_list,
1628 	    l_return_status,
1629 	    x_msg_count,
1630 	    x_msg_data,
1631 	    p_vlov_tbl(i));
1632         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1633           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1634             x_return_status := l_return_status;
1635             raise G_EXCEPTION_HALT_VALIDATION;
1636           ELSE
1637             x_return_status := l_return_status;
1638           END IF;
1639         END IF;
1640         EXIT WHEN (i = p_vlov_tbl.LAST);
1641         i := p_vlov_tbl.NEXT(i);
1642       END LOOP;
1643     END IF;
1644   EXCEPTION
1645     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1646       NULL;
1647     WHEN OTHERS THEN
1648       OKC_API.set_message(p_app_name      => g_app_name,
1649                           p_msg_name      => g_unexpected_error,
1650                           p_token1        => g_sqlcode_token,
1651                           p_token1_value  => sqlcode,
1652                           p_token2        => g_sqlerrm_token,
1653                           p_token2_value  => sqlerrm);
1654       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1655   END DELETE_VAL_LINE_OPERATION;
1656 
1657   PROCEDURE LOCK_VAL_LINE_OPERATION(
1658     p_api_version	    IN NUMBER,
1659     p_init_msg_list         IN VARCHAR2 ,
1660     x_return_status         OUT NOCOPY VARCHAR2,
1661     x_msg_count             OUT NOCOPY NUMBER,
1662     x_msg_data              OUT NOCOPY VARCHAR2,
1663     p_vlov_rec		    IN vlov_rec_type) IS
1664   BEGIN
1665     OKC_LINE_STYLES_PVT.LOCK_VAL_LINE_OPERATION(
1666     p_api_version,
1667     p_init_msg_list,
1668     x_return_status,
1669     x_msg_count,
1670     x_msg_data,
1671     p_vlov_rec);
1672   END LOCK_VAL_LINE_OPERATION;
1673 
1674   PROCEDURE LOCK_VAL_LINE_OPERATION(
1675     p_api_version                  IN NUMBER,
1676     p_init_msg_list                IN VARCHAR2 ,
1677     x_return_status                OUT NOCOPY VARCHAR2,
1678     x_msg_count                    OUT NOCOPY NUMBER,
1679     x_msg_data                     OUT NOCOPY VARCHAR2,
1680     p_vlov_tbl                     IN vlov_tbl_type) IS
1681     i			         NUMBER := 0;
1682     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1683   BEGIN
1684     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1685     IF p_vlov_tbl.COUNT > 0 THEN
1686       i := p_vlov_tbl.FIRST;
1687       LOOP
1688         LOCK_VAL_LINE_OPERATION(
1689 	    p_api_version,
1690 	    p_init_msg_list,
1691 	    l_return_status,
1692 	    x_msg_count,
1693 	    x_msg_data,
1694 	    p_vlov_tbl(i));
1695         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1696           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1697             x_return_status := l_return_status;
1698             raise G_EXCEPTION_HALT_VALIDATION;
1699           ELSE
1700             x_return_status := l_return_status;
1701           END IF;
1702         END IF;
1703         EXIT WHEN (i = p_vlov_tbl.LAST);
1704         i := p_vlov_tbl.NEXT(i);
1705       END LOOP;
1706     END IF;
1707   EXCEPTION
1708     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1709       NULL;
1710     WHEN OTHERS THEN
1711       OKC_API.set_message(p_app_name      => g_app_name,
1712                           p_msg_name      => g_unexpected_error,
1713                           p_token1        => g_sqlcode_token,
1714                           p_token1_value  => sqlcode,
1715                           p_token2        => g_sqlerrm_token,
1716                           p_token2_value  => sqlerrm);
1717       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1718   END LOCK_VAL_LINE_OPERATION;
1719 
1720   PROCEDURE VALIDATE_VAL_LINE_OPERATION(
1721     p_api_version	    IN NUMBER,
1722     p_init_msg_list         IN VARCHAR2 ,
1723     x_return_status         OUT NOCOPY VARCHAR2,
1724     x_msg_count             OUT NOCOPY NUMBER,
1725     x_msg_data              OUT NOCOPY VARCHAR2,
1726     p_vlov_rec		    IN vlov_rec_type) IS
1727   BEGIN
1728     OKC_LINE_STYLES_PVT.VALIDATE_VAL_LINE_OPERATION(
1729     p_api_version,
1730     p_init_msg_list,
1731     x_return_status,
1732     x_msg_count,
1733     x_msg_data,
1734     p_vlov_rec);
1735   END VALIDATE_VAL_LINE_OPERATION;
1736 
1737   PROCEDURE VALIDATE_VAL_LINE_OPERATION(
1738     p_api_version                  IN NUMBER,
1739     p_init_msg_list                IN VARCHAR2 ,
1740     x_return_status                OUT NOCOPY VARCHAR2,
1741     x_msg_count                    OUT NOCOPY NUMBER,
1742     x_msg_data                     OUT NOCOPY VARCHAR2,
1743     p_vlov_tbl                     IN vlov_tbl_type) IS
1744     i			         NUMBER := 0;
1745     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1746   BEGIN
1747     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1748     IF p_vlov_tbl.COUNT > 0 THEN
1749       i := p_vlov_tbl.FIRST;
1750       LOOP
1751         VALIDATE_VAL_LINE_OPERATION(
1752 	    p_api_version,
1753 	    p_init_msg_list,
1754 	    l_return_status,
1755 	    x_msg_count,
1756 	    x_msg_data,
1757 	    p_vlov_tbl(i));
1758         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1759           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1760             x_return_status := l_return_status;
1761             raise G_EXCEPTION_HALT_VALIDATION;
1762           ELSE
1763             x_return_status := l_return_status;
1764           END IF;
1765         END IF;
1766         EXIT WHEN (i = p_vlov_tbl.LAST);
1767         i := p_vlov_tbl.NEXT(i);
1768       END LOOP;
1769     END IF;
1770   EXCEPTION
1771     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1772       NULL;
1773     WHEN OTHERS THEN
1774       OKC_API.set_message(p_app_name      => g_app_name,
1775                           p_msg_name      => g_unexpected_error,
1776                           p_token1        => g_sqlcode_token,
1777                           p_token1_value  => sqlcode,
1778                           p_token2        => g_sqlerrm_token,
1779                           p_token2_value  => sqlerrm);
1780       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1781   END VALIDATE_VAL_LINE_OPERATION;
1782 
1783 END OKC_LINE_STYLES_PUB;