DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_LSE_PVT

Source


1 PACKAGE BODY OKC_LSE_PVT AS
2 /* $Header: OKCSLSEB.pls 120.0 2005/05/25 19:35:34 appldev noship $ */
3 
4 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 
6 
7   G_YES         VARCHAR2(3):='Y';
8   G_NO          VARCHAR2(3):='N';
9 
10 
11 
12   ---------------------------------------------------------------------------
13   -- FUNCTION get_seq_id
14   ---------------------------------------------------------------------------
15   FUNCTION get_seq_id RETURN NUMBER IS
16    l_number NUMBER;
17   BEGIN
18     --RETURN(okc_p_util.raw_to_number(sys_guid()));
19     -- Modified to handle it's own sequence
20     if fnd_global.user_id = 1 then  -- DATAMERGE user
21       select min(LSE1.id + 1)
22         into l_number
23         from okc_line_styles_b LSE1
24        where id < 1000
25          and NOT EXISTS (select 'x'
26                            from okc_line_styles_b LSE2
27                           where LSE2.id = LSE1.id +1);
28     else
29      select okc_line_styles_s1.nextval
30        into l_number
31        from dual;
32     end if;
33    --
34     RETURN(l_number);
35    --
36   END get_seq_id;
37 
38   ---------------------------------------------------------------------------
39   -- PROCEDURE qc
40   ---------------------------------------------------------------------------
41   PROCEDURE qc IS
42   BEGIN
43     null;
44   END qc;
45 
46   ---------------------------------------------------------------------------
47   -- PROCEDURE change_version
48   ---------------------------------------------------------------------------
49   PROCEDURE change_version IS
50   BEGIN
51     null;
52   END change_version;
53 
54   ---------------------------------------------------------------------------
55   -- PROCEDURE api_copy
56   ---------------------------------------------------------------------------
57   PROCEDURE api_copy IS
58   BEGIN
59     null;
60   END api_copy;
61 
62   ---------------------------------------------------------------------------
63   -- PROCEDURE add_language
64   ---------------------------------------------------------------------------
65   PROCEDURE add_language IS
66   BEGIN
67     DELETE FROM OKC_LINE_STYLES_TL T
68      WHERE NOT EXISTS (
69         SELECT NULL
70           FROM OKC_LINE_STYLES_B B
71          WHERE B.ID = T.ID
72         );
73 
74     UPDATE OKC_LINE_STYLES_TL T SET (
75         NAME,
76         DESCRIPTION) = (SELECT
77                                   B.NAME,
78                                   B.DESCRIPTION
79                                 FROM OKC_LINE_STYLES_TL B
80                                WHERE B.ID = T.ID
81                                  AND B.LANGUAGE = T.SOURCE_LANG)
82       WHERE (
83               T.ID,
84               T.LANGUAGE)
85           IN (SELECT
86                   SUBT.ID,
87                   SUBT.LANGUAGE
88                 FROM OKC_LINE_STYLES_TL SUBB, OKC_LINE_STYLES_TL SUBT
89                WHERE SUBB.ID = SUBT.ID
90                  AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
91                  AND (SUBB.NAME <> SUBT.NAME
92                       OR SUBB.DESCRIPTION <> SUBT.DESCRIPTION
93                       OR (SUBB.NAME IS NULL AND SUBT.NAME IS NOT NULL)
94                       OR (SUBB.NAME IS NOT NULL AND SUBT.NAME IS NULL)
95                       OR (SUBB.DESCRIPTION IS NULL AND SUBT.DESCRIPTION IS NOT NULL)
96                       OR (SUBB.DESCRIPTION IS NOT NULL AND SUBT.DESCRIPTION IS NULL)
97               ));
98 
99     INSERT INTO OKC_LINE_STYLES_TL (
100         ID,
101         LANGUAGE,
102         SOURCE_LANG,
103         SFWT_FLAG,
104         NAME,
105         DESCRIPTION,
106         CREATED_BY,
107         CREATION_DATE,
108         LAST_UPDATED_BY,
109         LAST_UPDATE_DATE,
110         LAST_UPDATE_LOGIN)
111       SELECT
112             B.ID,
113             L.LANGUAGE_CODE,
114             B.SOURCE_LANG,
115             B.SFWT_FLAG,
116             B.NAME,
117             B.DESCRIPTION,
118             B.CREATED_BY,
119             B.CREATION_DATE,
120             B.LAST_UPDATED_BY,
121             B.LAST_UPDATE_DATE,
122             B.LAST_UPDATE_LOGIN
123         FROM OKC_LINE_STYLES_TL B, FND_LANGUAGES L
124        WHERE L.INSTALLED_FLAG IN ('I', 'B')
125          AND B.LANGUAGE = USERENV('LANG')
126          AND NOT EXISTS(
127                     SELECT NULL
128                       FROM OKC_LINE_STYLES_TL T
129                      WHERE T.ID = B.ID
130                        AND T.LANGUAGE = L.LANGUAGE_CODE
131                     );
132 
133   END add_language;
134 
135   ---------------------------------------------------------------------------
136   -- FUNCTION get_rec for: OKC_LINE_STYLES_B
137   ---------------------------------------------------------------------------
138   FUNCTION get_rec (
139     p_lse_rec                      IN lse_rec_type,
140     x_no_data_found                OUT NOCOPY BOOLEAN
141   ) RETURN lse_rec_type IS
142     CURSOR lse_pk_csr (p_id                 IN NUMBER) IS
143     SELECT
144             ID,
145             LTY_CODE,
146             PRICED_YN,
147             RECURSIVE_YN,
148             PROTECTED_YN,
149             LSE_PARENT_ID,
150             LSE_TYPE,
151             OBJECT_VERSION_NUMBER,
152             APPLICATION_ID,
153             CREATED_BY,
154             CREATION_DATE,
155             LAST_UPDATED_BY,
156             LAST_UPDATE_DATE,
157             LAST_UPDATE_LOGIN,
158             ATTRIBUTE_CATEGORY,
159             ATTRIBUTE1,
160             ATTRIBUTE2,
161             ATTRIBUTE3,
162             ATTRIBUTE4,
163             ATTRIBUTE5,
164             ATTRIBUTE6,
165             ATTRIBUTE7,
166             ATTRIBUTE8,
167             ATTRIBUTE9,
168             ATTRIBUTE10,
169             ATTRIBUTE11,
170             ATTRIBUTE12,
171             ATTRIBUTE13,
172             ATTRIBUTE14,
173             ATTRIBUTE15,
174             ITEM_TO_PRICE_YN,
175             PRICE_BASIS_YN,
176             ACCESS_LEVEL,
177             SERVICE_ITEM_YN
178      FROM Okc_Line_Styles_B
179      WHERE okc_line_styles_b.id = p_id;
180     l_lse_pk                       lse_pk_csr%ROWTYPE;
181     l_lse_rec                      lse_rec_type;
182   BEGIN
183     x_no_data_found := TRUE;
184     -- Get current database values
185     OPEN lse_pk_csr (p_lse_rec.id);
186     FETCH lse_pk_csr INTO
187               l_lse_rec.ID,
188               l_lse_rec.LTY_CODE,
189               l_lse_rec.priced_yn,
190               l_lse_rec.RECURSIVE_YN,
191               l_lse_rec.PROTECTED_YN,
192               l_lse_rec.LSE_PARENT_ID,
193               l_lse_rec.LSE_TYPE,
194               l_lse_rec.OBJECT_VERSION_NUMBER,
195               l_lse_rec.APPLICATION_ID,
196               l_lse_rec.CREATED_BY,
197               l_lse_rec.CREATION_DATE,
198               l_lse_rec.LAST_UPDATED_BY,
199               l_lse_rec.LAST_UPDATE_DATE,
200               l_lse_rec.LAST_UPDATE_LOGIN,
201               l_lse_rec.ATTRIBUTE_CATEGORY,
202               l_lse_rec.ATTRIBUTE1,
203               l_lse_rec.ATTRIBUTE2,
204               l_lse_rec.ATTRIBUTE3,
205               l_lse_rec.ATTRIBUTE4,
206               l_lse_rec.ATTRIBUTE5,
207               l_lse_rec.ATTRIBUTE6,
208               l_lse_rec.ATTRIBUTE7,
209               l_lse_rec.ATTRIBUTE8,
210               l_lse_rec.ATTRIBUTE9,
211               l_lse_rec.ATTRIBUTE10,
212               l_lse_rec.ATTRIBUTE11,
213               l_lse_rec.ATTRIBUTE12,
214               l_lse_rec.ATTRIBUTE13,
215               l_lse_rec.ATTRIBUTE14,
216               l_lse_rec.ATTRIBUTE15,
217               l_lse_rec.ITEM_TO_PRICE_YN,
218               l_lse_rec.PRICE_BASIS_YN,
219               l_lse_rec.ACCESS_LEVEL,
220               l_lse_rec.SERVICE_ITEM_YN;
221     x_no_data_found := lse_pk_csr%NOTFOUND;
222     CLOSE lse_pk_csr;
223     RETURN(l_lse_rec);
224   END get_rec;
225 
226   FUNCTION get_rec (
227     p_lse_rec                      IN lse_rec_type
228   ) RETURN lse_rec_type IS
229     l_row_notfound                 BOOLEAN := TRUE;
230   BEGIN
231     RETURN(get_rec(p_lse_rec, l_row_notfound));
232   END get_rec;
233   ---------------------------------------------------------------------------
234   -- FUNCTION get_rec for: OKC_LINE_STYLES_TL
235   ---------------------------------------------------------------------------
236   FUNCTION get_rec (
237     p_okc_line_styles_tl_rec       IN okc_line_styles_tl_rec_type,
238     x_no_data_found                OUT NOCOPY BOOLEAN
239   ) RETURN okc_line_styles_tl_rec_type IS
240     CURSOR lse_pktl_csr (p_id                 IN NUMBER,
241                          p_language           IN VARCHAR2) IS
242     SELECT
243             ID,
244             LANGUAGE,
245             SOURCE_LANG,
246             SFWT_FLAG,
247             NAME,
248             DESCRIPTION,
249             CREATED_BY,
250             CREATION_DATE,
251             LAST_UPDATED_BY,
252             LAST_UPDATE_DATE,
253             LAST_UPDATE_LOGIN
254       FROM Okc_Line_Styles_Tl
255      WHERE okc_line_styles_tl.id = p_id
256        AND okc_line_styles_tl.language = p_language;
257     l_lse_pktl                     lse_pktl_csr%ROWTYPE;
258     l_okc_line_styles_tl_rec       okc_line_styles_tl_rec_type;
259   BEGIN
260     x_no_data_found := TRUE;
261     -- Get current database values
262     OPEN lse_pktl_csr (p_okc_line_styles_tl_rec.id,
263                        p_okc_line_styles_tl_rec.language);
264     FETCH lse_pktl_csr INTO
265               l_okc_line_styles_tl_rec.ID,
266               l_okc_line_styles_tl_rec.LANGUAGE,
267               l_okc_line_styles_tl_rec.SOURCE_LANG,
268               l_okc_line_styles_tl_rec.SFWT_FLAG,
269               l_okc_line_styles_tl_rec.NAME,
270               l_okc_line_styles_tl_rec.DESCRIPTION,
271               l_okc_line_styles_tl_rec.CREATED_BY,
272               l_okc_line_styles_tl_rec.CREATION_DATE,
273               l_okc_line_styles_tl_rec.LAST_UPDATED_BY,
274               l_okc_line_styles_tl_rec.LAST_UPDATE_DATE,
275               l_okc_line_styles_tl_rec.LAST_UPDATE_LOGIN;
276     x_no_data_found := lse_pktl_csr%NOTFOUND;
277     CLOSE lse_pktl_csr;
278     RETURN(l_okc_line_styles_tl_rec);
279   END get_rec;
280 
281   FUNCTION get_rec (
282     p_okc_line_styles_tl_rec       IN okc_line_styles_tl_rec_type
283   ) RETURN okc_line_styles_tl_rec_type IS
284     l_row_notfound                 BOOLEAN := TRUE;
285   BEGIN
286     RETURN(get_rec(p_okc_line_styles_tl_rec, l_row_notfound));
287   END get_rec;
288   ---------------------------------------------------------------------------
289   -- FUNCTION get_rec for: OKC_LINE_STYLES_V
290   ---------------------------------------------------------------------------
291   FUNCTION get_rec (
292     p_lsev_rec                     IN lsev_rec_type,
293     x_no_data_found                OUT NOCOPY BOOLEAN
294   ) RETURN lsev_rec_type IS
295     CURSOR okc_lsev_pk_csr (p_id                 IN NUMBER) IS
296     SELECT
297             ID,
298             LTY_CODE,
299             priced_yn,
300             RECURSIVE_YN,
301             PROTECTED_YN,
302             LSE_PARENT_ID,
303             OBJECT_VERSION_NUMBER,
304             APPLICATION_ID,
305             SFWT_FLAG,
306             NAME,
307             DESCRIPTION,
308             ATTRIBUTE_CATEGORY,
309             ATTRIBUTE1,
310             ATTRIBUTE2,
311             ATTRIBUTE3,
312             ATTRIBUTE4,
313             ATTRIBUTE5,
314             ATTRIBUTE6,
315             ATTRIBUTE7,
316             ATTRIBUTE8,
317             ATTRIBUTE9,
318             ATTRIBUTE10,
319             ATTRIBUTE11,
320             ATTRIBUTE12,
321             ATTRIBUTE13,
322             ATTRIBUTE14,
323             ATTRIBUTE15,
324             LSE_TYPE,
325             CREATED_BY,
326             CREATION_DATE,
327             LAST_UPDATED_BY,
328             LAST_UPDATE_DATE,
329             LAST_UPDATE_LOGIN,
330             ITEM_TO_PRICE_YN,
331             PRICE_BASIS_YN,
332             ACCESS_LEVEL,
333             SERVICE_ITEM_YN
334       FROM Okc_Line_Styles_v
335      WHERE okc_line_styles_v.id = p_id;
336     l_okc_lsev_pk                  okc_lsev_pk_csr%ROWTYPE;
337     l_lsev_rec                     lsev_rec_type;
338   BEGIN
339     x_no_data_found := TRUE;
340     -- Get current database values
341     OPEN okc_lsev_pk_csr (p_lsev_rec.id);
342     FETCH okc_lsev_pk_csr INTO
343               l_lsev_rec.ID,
344               l_lsev_rec.LTY_CODE,
345               l_lsev_rec.priced_yn,
346               l_lsev_rec.RECURSIVE_YN,
347               l_lsev_rec.PROTECTED_YN,
348               l_lsev_rec.LSE_PARENT_ID,
349               l_lsev_rec.OBJECT_VERSION_NUMBER,
350               l_lsev_rec.APPLICATION_ID,
351               l_lsev_rec.SFWT_FLAG,
352               l_lsev_rec.NAME,
353               l_lsev_rec.DESCRIPTION,
354               l_lsev_rec.ATTRIBUTE_CATEGORY,
355               l_lsev_rec.ATTRIBUTE1,
356               l_lsev_rec.ATTRIBUTE2,
357               l_lsev_rec.ATTRIBUTE3,
358               l_lsev_rec.ATTRIBUTE4,
359               l_lsev_rec.ATTRIBUTE5,
360               l_lsev_rec.ATTRIBUTE6,
361               l_lsev_rec.ATTRIBUTE7,
362               l_lsev_rec.ATTRIBUTE8,
363               l_lsev_rec.ATTRIBUTE9,
364               l_lsev_rec.ATTRIBUTE10,
365               l_lsev_rec.ATTRIBUTE11,
366               l_lsev_rec.ATTRIBUTE12,
367               l_lsev_rec.ATTRIBUTE13,
368               l_lsev_rec.ATTRIBUTE14,
369               l_lsev_rec.ATTRIBUTE15,
370               l_lsev_rec.LSE_TYPE,
371               l_lsev_rec.CREATED_BY,
372               l_lsev_rec.CREATION_DATE,
373               l_lsev_rec.LAST_UPDATED_BY,
374               l_lsev_rec.LAST_UPDATE_DATE,
375               l_lsev_rec.LAST_UPDATE_LOGIN,
376               l_lsev_rec.ITEM_TO_PRICE_YN,
377               l_lsev_rec.PRICE_BASIS_YN,
378               l_lsev_rec.ACCESS_LEVEL,
379               l_lsev_rec.SERVICE_ITEM_YN;
380     x_no_data_found := okc_lsev_pk_csr%NOTFOUND;
381     CLOSE okc_lsev_pk_csr;
382     RETURN(l_lsev_rec);
383   END get_rec;
384 
385   FUNCTION get_rec (
386     p_lsev_rec                     IN lsev_rec_type
387   ) RETURN lsev_rec_type IS
388     l_row_notfound                 BOOLEAN := TRUE;
389   BEGIN
390     RETURN(get_rec(p_lsev_rec, l_row_notfound));
391   END get_rec;
392 
393   -------------------------------------------------------
394   -- FUNCTION null_out_defaults for: OKC_LINE_STYLES_V --
395   -------------------------------------------------------
396   FUNCTION null_out_defaults (
397     p_lsev_rec	IN lsev_rec_type
398   ) RETURN lsev_rec_type IS
399     l_lsev_rec	lsev_rec_type := p_lsev_rec;
400   BEGIN
401     IF (l_lsev_rec.lty_code = OKC_API.G_MISS_CHAR) THEN
402       l_lsev_rec.lty_code := NULL;
403     END IF;
404     IF (l_lsev_rec.priced_yn = OKC_API.G_MISS_CHAR) THEN
405       l_lsev_rec.priced_yn := NULL;
406     END IF;
407     IF (l_lsev_rec.recursive_yn = OKC_API.G_MISS_CHAR) THEN
408       l_lsev_rec.recursive_yn := NULL;
409     END IF;
410     IF (l_lsev_rec.protected_yn = OKC_API.G_MISS_CHAR) THEN
411       l_lsev_rec.protected_yn := NULL;
412     END IF;
413     IF (l_lsev_rec.lse_parent_id = OKC_API.G_MISS_NUM) THEN
414       l_lsev_rec.lse_parent_id := NULL;
415     END IF;
416     IF (l_lsev_rec.object_version_number = OKC_API.G_MISS_NUM) THEN
417       l_lsev_rec.object_version_number := NULL;
418     END IF;
419     IF (l_lsev_rec.APPLICATION_ID = OKC_API.G_MISS_NUM) THEN
420       l_lsev_rec.APPLICATION_ID := NULL;
421     END IF;
422     IF (l_lsev_rec.sfwt_flag = OKC_API.G_MISS_CHAR) THEN
423       l_lsev_rec.sfwt_flag := NULL;
424     END IF;
425     IF (l_lsev_rec.name = OKC_API.G_MISS_CHAR) THEN
426       l_lsev_rec.name := NULL;
427     END IF;
428     IF (l_lsev_rec.description = OKC_API.G_MISS_CHAR) THEN
429       l_lsev_rec.description := NULL;
430     END IF;
431     IF (l_lsev_rec.attribute_category = OKC_API.G_MISS_CHAR) THEN
432       l_lsev_rec.attribute_category := NULL;
433     END IF;
434     IF (l_lsev_rec.attribute1 = OKC_API.G_MISS_CHAR) THEN
435       l_lsev_rec.attribute1 := NULL;
436     END IF;
437     IF (l_lsev_rec.attribute2 = OKC_API.G_MISS_CHAR) THEN
438       l_lsev_rec.attribute2 := NULL;
439     END IF;
440     IF (l_lsev_rec.attribute3 = OKC_API.G_MISS_CHAR) THEN
441       l_lsev_rec.attribute3 := NULL;
442     END IF;
443     IF (l_lsev_rec.attribute4 = OKC_API.G_MISS_CHAR) THEN
444       l_lsev_rec.attribute4 := NULL;
445     END IF;
446     IF (l_lsev_rec.attribute5 = OKC_API.G_MISS_CHAR) THEN
447       l_lsev_rec.attribute5 := NULL;
448     END IF;
449     IF (l_lsev_rec.attribute6 = OKC_API.G_MISS_CHAR) THEN
450       l_lsev_rec.attribute6 := NULL;
451     END IF;
452     IF (l_lsev_rec.attribute7 = OKC_API.G_MISS_CHAR) THEN
453       l_lsev_rec.attribute7 := NULL;
454     END IF;
455     IF (l_lsev_rec.attribute8 = OKC_API.G_MISS_CHAR) THEN
456       l_lsev_rec.attribute8 := NULL;
457     END IF;
458     IF (l_lsev_rec.attribute9 = OKC_API.G_MISS_CHAR) THEN
459       l_lsev_rec.attribute9 := NULL;
460     END IF;
461     IF (l_lsev_rec.attribute10 = OKC_API.G_MISS_CHAR) THEN
462       l_lsev_rec.attribute10 := NULL;
463     END IF;
464     IF (l_lsev_rec.attribute11 = OKC_API.G_MISS_CHAR) THEN
465       l_lsev_rec.attribute11 := NULL;
466     END IF;
467     IF (l_lsev_rec.attribute12 = OKC_API.G_MISS_CHAR) THEN
468       l_lsev_rec.attribute12 := NULL;
469     END IF;
470     IF (l_lsev_rec.attribute13 = OKC_API.G_MISS_CHAR) THEN
471       l_lsev_rec.attribute13 := NULL;
472     END IF;
473     IF (l_lsev_rec.attribute14 = OKC_API.G_MISS_CHAR) THEN
474       l_lsev_rec.attribute14 := NULL;
475     END IF;
476     IF (l_lsev_rec.attribute15 = OKC_API.G_MISS_CHAR) THEN
477       l_lsev_rec.attribute15 := NULL;
478     END IF;
479     IF (l_lsev_rec.lse_type = OKC_API.G_MISS_CHAR) THEN
480       l_lsev_rec.lse_type := NULL;
481     END IF;
482     IF (l_lsev_rec.created_by = OKC_API.G_MISS_NUM) THEN
483       l_lsev_rec.created_by := NULL;
484     END IF;
485     IF (l_lsev_rec.creation_date = OKC_API.G_MISS_DATE) THEN
486       l_lsev_rec.creation_date := NULL;
487     END IF;
488     IF (l_lsev_rec.last_updated_by = OKC_API.G_MISS_NUM) THEN
489       l_lsev_rec.last_updated_by := NULL;
490     END IF;
491     IF (l_lsev_rec.last_update_date = OKC_API.G_MISS_DATE) THEN
492       l_lsev_rec.last_update_date := NULL;
493     END IF;
494     IF (l_lsev_rec.last_update_login = OKC_API.G_MISS_NUM) THEN
495       l_lsev_rec.last_update_login := NULL;
496     END IF;
497      IF (l_lsev_rec.item_to_price_yn = OKC_API.G_MISS_CHAR) THEN
498       l_lsev_rec.item_to_price_yn := NULL;
499     END IF;
500      IF (l_lsev_rec.price_basis_yn = OKC_API.G_MISS_CHAR) THEN
501       l_lsev_rec.price_basis_yn := NULL;
502     END IF;
503      IF (l_lsev_rec.access_level = OKC_API.G_MISS_CHAR) THEN
504       l_lsev_rec.access_level := NULL;
505     END IF;
506      IF (l_lsev_rec.service_item_yn = OKC_API.G_MISS_CHAR) THEN
507       l_lsev_rec.service_item_yn := NULL;
508     END IF;
509    RETURN(l_lsev_rec);
510   END null_out_defaults;
511   ---------------------------------------------------------------------------
512   -- PROCEDURE Validate_Attributes
513   ---------------------------------------------------------------------------
514   -----------------------------------------------
515   -- Validate_Attributes for:OKC_LINE_STYLES_V --
516   -----------------------------------------------
517   --**** Change from TAPI Code---follow till end of change---------------
518 
519   FUNCTION Check_Unique_Name (
520     p_lsev_rec IN lsev_rec_type
521   ) RETURN VARCHAR2 IS
522     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
523     l_col_tbl	                    okc_util.unq_tbl_type;
524     l_id                           NUMBER:=OKC_API.G_MISS_NUM;
525     CURSOR loc_top_csr (p_id IN NUMBER) is
526 	 select id, lse_type from okc_line_styles_b
527 	 connect by prior lse_parent_id = id
528 	 start with id = p_id;
529 
530     CURSOR loc_bot_csr (p_id IN NUMBER) is
531 	 select id, lse_type from okc_line_styles_b
532 	 connect by prior id = lse_parent_id
533 	 start with id = p_id;
534 
535     CURSOR par_name_csr(p_id IN NUMBER) is
536 	 select name from okc_line_styles_v
537 	 where id = p_id;
538 
539     CURSOR C1 is select id from okc_line_styles_v
540 			where lse_type='TLS' and UPPER(name)=UPPER(p_lsev_rec.name);
541 
542     loc_top_rec loc_top_csr%rowtype;
543     loc_bot_rec loc_bot_csr%rowtype;
544     par_name_rec par_name_csr%rowtype;
545   BEGIN
546 	--Check for unique value
547     if p_lsev_rec.lse_type = 'TLS' then
548 	 OPEN C1;
549       FETCH C1 into l_id;
550 	 CLOSE C1;
551 	 IF (l_id<>OKC_API.G_MISS_NUM and l_id <> nvl(p_lsev_rec.id,-1)) then
552           OKC_API.set_message(G_APP_NAME, G_UNQ,G_COL_NAME_TOKEN,'name');
553 		l_return_status := OKC_API.G_RET_STS_ERROR;
554 
555       END IF;
556     else
557 	 open loc_top_csr (p_lsev_rec.lse_parent_id);
558 	 loop
559 	   fetch loc_top_csr into loc_top_rec;
560 	   exit when loc_top_csr%NOTFOUND;
561 	   open par_name_csr(loc_top_rec.id);
562 	   fetch par_name_csr into par_name_rec;
563 	   close par_name_csr;
564 	   if par_name_rec.name is NULL then
565           OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'id');
566 		l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
567 		exit;
568 	   end if;
569 	   if UPPER(par_name_rec.name) = UPPER(p_lsev_rec.name) then
570           OKC_API.set_message(G_APP_NAME, G_UNQ,G_COL_NAME_TOKEN,'name');
571 		l_return_status := OKC_API.G_RET_STS_ERROR;
572 		exit;
573 	   end if;
574 	 end loop;
575 	 close loc_top_csr;
576 	 if l_return_status <> OKC_API.G_RET_STS_SUCCESS Then
577 	   return (l_return_status);
578       end if;
579 	 if loc_top_rec.id is NULL Then
580         OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'id');
581 	   l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
582 	   return (l_return_status);
583 	 end if;
584 	 open loc_bot_csr (loc_top_rec.id);
585 	 loop
586 	   fetch loc_bot_csr into loc_bot_rec;
587 	   exit when loc_bot_csr%NOTFOUND;
588 	   open par_name_csr(loc_bot_rec.id);
589 	   fetch par_name_csr into par_name_rec;
590 	   close par_name_csr;
591 	   if par_name_rec.name is NULL then
592           OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'id');
593 		l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
594 		exit;
595 	   end if;
596 	   if UPPER(par_name_rec.name) = UPPER(p_lsev_rec.name)  and
597 		 loc_bot_rec.id <> p_lsev_rec.id then
598           OKC_API.set_message(G_APP_NAME, G_UNQ,G_COL_NAME_TOKEN,'name');
599 		l_return_status := OKC_API.g_RET_STS_ERROR;
600 		exit;
601 	   end if;
602 	 end loop;
603 	 close loc_bot_csr;
604     end if;
605     RETURN (l_return_status);
606   END Check_Unique_Name;
607 
608   PROCEDURE Validate_Lse_Parent_Id (
609       x_return_status                OUT NOCOPY VARCHAR2,
610       p_lsev_rec                     IN lsev_rec_type) IS
611       item_not_found_error          EXCEPTION;
612       l_row_notfound                 BOOLEAN := TRUE;
613       CURSOR lse_pk_csr (p_lse_id IN number) IS
614       SELECT  '1'
615         FROM OKC_LINE_STYLES_B
616        WHERE id        = p_lse_id;
617       l_lse_pk                  lse_pk_csr%ROWTYPE;
618     BEGIN
619       x_return_status                := OKC_API.G_RET_STS_SUCCESS;
620 	 IF (p_lsev_rec.lse_type = 'SLS')
621 	 THEN
622         IF (p_lsev_rec.lse_parent_id IS NOT NULL AND
623           p_lsev_rec.lse_parent_id <> OKC_API.G_MISS_NUM)
624         THEN
625           OPEN lse_pk_csr(p_lsev_rec.lse_parent_id);
626           FETCH lse_pk_csr INTO l_lse_pk;
627           l_row_notfound := lse_pk_csr%NOTFOUND;
628           CLOSE lse_pk_csr;
629           IF (l_row_notfound) THEN
630             OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'lse_parent_id');
631             RAISE item_not_found_error;
632           END IF;
633         ELSE
634            OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'lse_parent_id');
635            x_return_status := OKC_API.G_RET_STS_ERROR;
636         END IF;
637 	 ELSIF (p_lsev_rec.lse_parent_id IS NOT NULL AND
638         p_lsev_rec.lse_parent_id <> OKC_API.G_MISS_NUM) THEN
639         OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'lse_parent_id');
640         x_return_status := OKC_API.G_RET_STS_ERROR;
641       END IF;
642     EXCEPTION
643       WHEN item_not_found_error THEN
644         x_return_status := OKC_API.G_RET_STS_ERROR;
645       WHEN OTHERS THEN
646         OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
647                             p_msg_name     => g_unexpected_error,
648                             p_token1       => g_sqlcode_token,
649                             p_token1_value => sqlcode,
650                             p_token2       => g_col_name_token,
651                             p_token2_value => 'lse_parent_id',
652                             p_token3       => g_sqlerrm_token,
653                             p_token3_value => sqlerrm);
654       -- notify caller of an UNEXPECTED error
655         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
656   END Validate_Lse_Parent_Id ;
657 
658   PROCEDURE Validate_Lse_Type (
659     x_return_status                OUT NOCOPY VARCHAR2,
660     p_lsev_rec                     IN lsev_rec_type) IS
661   BEGIN
662     IF upper(p_lsev_rec.lse_type) = 'SLS' OR
663        upper(p_lsev_rec.lse_type) = 'TLS'
664     THEN
665        IF p_lsev_rec.lse_type = 'SLS' OR
666           p_lsev_rec.lse_type = 'TLS'
667        THEN
668          x_return_status := OKC_API.G_RET_STS_SUCCESS;
669        ELSE
670          OKC_API.set_message(G_APP_NAME, G_UPPERCASE_REQUIRED,G_COL_NAME_TOKEN,'LSE_TYPE');
671          x_return_status := OKC_API.G_RET_STS_ERROR;
672        END IF;
673     ELSE
674        OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'LSE_TYPE');
675        x_return_status := OKC_API.G_RET_STS_ERROR;
676     END IF;
677   END Validate_Lse_Type;
678 
679   PROCEDURE Validate_Lty_Code (
680     x_return_status                OUT NOCOPY VARCHAR2,
681     p_lsev_rec                     IN lsev_rec_type) IS
682     item_not_found_error          EXCEPTION;
683     l_row_notfound                 BOOLEAN := TRUE;
684     BEGIN
685       x_return_status                := OKC_API.G_RET_STS_SUCCESS;
686       IF (p_lsev_rec.lty_code IS NOT NULL AND
687           p_lsev_rec.lty_code <> OKC_API.G_MISS_CHAR)
688       THEN
689 	   x_return_status := OKC_UTIL.CHECK_LOOKUP_CODE('OKC_LINE_TYPE',p_lsev_rec.lty_code);
690         if x_return_status = OKC_API.G_RET_STS_ERROR
691 	   Then
692 		OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'LTY_CODE');
693 	   end if;
694       ELSE
695          OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'lty_code');
696          x_return_status := OKC_API.G_RET_STS_ERROR;
697       END IF;
698     EXCEPTION
699       WHEN item_not_found_error THEN
700         x_return_status := OKC_API.G_RET_STS_ERROR;
701       WHEN OTHERS THEN
702         OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
703                             p_msg_name     => g_unexpected_error,
704                             p_token1       => g_sqlcode_token,
705                             p_token1_value => sqlcode,
706                             p_token2       => g_col_name_token,
707                             p_token2_value => 'lty_code',
708                             p_token3       => g_sqlerrm_token,
709                             p_token3_value => sqlerrm);
710       -- notify caller of an UNEXPECTED error
711         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
712   END Validate_Lty_Code ;
713 
714 
715   PROCEDURE Validate_PRICED_YN (
716     x_return_status                OUT NOCOPY VARCHAR2,
717     p_lsev_rec                     IN lsev_rec_type) IS
718   BEGIN
719     IF upper(p_lsev_rec.priced_yn) = 'Y' OR
720        upper(p_lsev_rec.priced_yn) = 'N'
721     THEN
722        IF p_lsev_rec.priced_yn = 'Y' OR
723           p_lsev_rec.priced_yn = 'N'
724        THEN
725          x_return_status := OKC_API.G_RET_STS_SUCCESS;
726        ELSE
727          OKC_API.set_message(G_APP_NAME, G_UPPERCASE_REQUIRED,G_COL_NAME_TOKEN,'PRICED_YN');
728          x_return_status := OKC_API.G_RET_STS_ERROR;
729        END IF;
730     ELSE
731        OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'PRICED_YN');
732        x_return_status := OKC_API.G_RET_STS_ERROR;
733     END IF;
734   END Validate_PRICED_YN;
735 
736   PROCEDURE Validate_ITEM_TO_PRICE_YN (
737     x_return_status                OUT NOCOPY VARCHAR2,
738     p_lsev_rec                     IN lsev_rec_type) IS
739   BEGIN
740     IF upper(p_lsev_rec.item_to_price_yn) = 'Y' OR
741        upper(p_lsev_rec.item_to_price_yn) = 'N'
742     THEN
743        IF p_lsev_rec.item_to_price_yn = 'Y' OR
744           p_lsev_rec.item_to_price_yn = 'N'
745        THEN
746          x_return_status := OKC_API.G_RET_STS_SUCCESS;
747        ELSE
748          OKC_API.set_message(G_APP_NAME, G_UPPERCASE_REQUIRED,G_COL_NAME_TOKEN,'ITEM_TO_PRICE_YN');
749          x_return_status := OKC_API.G_RET_STS_ERROR;
750        END IF;
751     ELSIF p_lsev_rec.item_to_price_yn <> NULL then
752        OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'ITEM_TO_PRICE_YN');
753        x_return_status := OKC_API.G_RET_STS_ERROR;
754     END IF;
755   END Validate_ITEM_TO_PRICE_YN;
756 
757 --
758   PROCEDURE Validate_ACCESS_LEVEL (
759     x_return_status                OUT NOCOPY VARCHAR2,
760     p_lsev_rec                     IN lsev_rec_type) IS
761   BEGIN
762     IF upper(p_lsev_rec.access_level) in ('S', 'E', 'U')
763     THEN
764        IF p_lsev_rec.access_level in ('S', 'E', 'U')
765        THEN
766          x_return_status := OKC_API.G_RET_STS_SUCCESS;
767        ELSE
768          OKC_API.set_message(G_APP_NAME, G_UPPERCASE_REQUIRED,G_COL_NAME_TOKEN,'ACCESS_LEVEL');
769          x_return_status := OKC_API.G_RET_STS_ERROR;
770        END IF;
771     ELSIF p_lsev_rec.item_to_price_yn <> NULL then
772        OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'ACCESS_LEVEL');
773        x_return_status := OKC_API.G_RET_STS_ERROR;
774     END IF;
775   END Validate_ACCESS_LEVEL;
776 --
777 
778 
779    PROCEDURE Validate_PRICE_BASIS_YN (
780     x_return_status                OUT NOCOPY VARCHAR2,
781     p_lsev_rec                     IN lsev_rec_type) IS
782   BEGIN
783 
784     IF upper(p_lsev_rec.price_basis_yn) = 'Y' OR
785        upper(p_lsev_rec.price_basis_yn) = 'N'
786     THEN
787        IF p_lsev_rec.price_basis_yn = 'Y' OR
788           p_lsev_rec.price_basis_yn = 'N'
789        THEN
790          x_return_status := OKC_API.G_RET_STS_SUCCESS;
791        ELSE
792          OKC_API.set_message(G_APP_NAME, G_UPPERCASE_REQUIRED,G_COL_NAME_TOKEN,'PRICE_BASIS_YN');
793          x_return_status := OKC_API.G_RET_STS_ERROR;
794        END IF;
795     ELSIF p_lsev_rec.item_to_price_yn <> NULL then
796        OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'PRICE_BASIS_YN');
797        x_return_status := OKC_API.G_RET_STS_ERROR;
798     END IF;
799   END Validate_PRICE_BASIS_YN;
800 
801   PROCEDURE  Validate_item_or_basis(
802    x_return_status                OUT NOCOPY VARCHAR2,
803     p_lsev_rec                     IN lsev_rec_type) IS
804   BEGIN
805    IF
806         p_lsev_rec.item_to_price_yn = 'Y'
807   THEN
808     IF
809       p_lsev_rec.price_basis_yn = 'Y'
810    THEN
811       x_return_status := OKC_API.G_RET_STS_ERROR;
812       OKC_API.SET_MESSAGE(p_app_name      => g_app_name,
813                                             p_msg_name  =>'OKC_ITEM_OR_BASIS');
814 
815    ELSE
816     x_return_status := OKC_API.G_RET_STS_SUCCESS;
817   END IF;
818 
819    ELSE
820     x_return_status := OKC_API.G_RET_STS_SUCCESS;
821   END IF;
822 END  Validate_item_or_basis;
823 
824 --
825    PROCEDURE validate_application_id(
826         x_return_status         OUT NOCOPY VARCHAR2,
827         p_lsev_rec               IN lsev_rec_type) IS
828 
829         Cursor application_id_cur(p_application_id IN NUMBER) IS
830         select '1'
831         from fnd_application
832         where application_id = p_application_id;
833 
834         l_dummy         VARCHAR2(1) := '?';
835 
836     BEGIN
837         -- initialize return status
838         x_return_status := OKC_API.G_RET_STS_SUCCESS;
839 
840         IF p_lsev_rec.application_id IS NOT NULL THEN
841         --Check if application id exists in the fnd_application or not
842         OPEN application_id_cur(p_lsev_rec.application_id);
843         FETCH application_id_cur INTO l_dummy;
844         CLOSE application_id_cur ;
845         IF l_dummy = '?' THEN
846                 OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
847                                     p_msg_name     => g_invalid_value,
848                                     p_token1       => g_col_name_token,
849                                     p_token1_value => 'application_id');
850                 x_return_status := OKC_API.G_RET_STS_ERROR;
851                 raise G_EXCEPTION_HALT_VALIDATION;
852         END IF;
853      END IF;
854     EXCEPTION
855                 when G_EXCEPTION_HALT_VALIDATION then
856                 -- no processing necessary;  validation can continue
857                 -- with the next column
858                 null;
859 
860                  when OTHERS then
861                 -- store SQL error message on message stack for caller
862                 OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
863                                     p_msg_name     => g_unexpected_error,
864                                     p_token1       => g_sqlcode_token,
865                                     p_token1_value => sqlcode,
866                                     p_token2       => g_sqlerrm_token,
867                                     p_token2_value => sqlerrm);
868                 -- notify caller of an UNEXPECTED error
869                 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
870     END validate_application_id;
871 
872 --
873 
874   PROCEDURE Validate_priced_level(
875     x_return_status                OUT NOCOPY VARCHAR2,
876     p_lsev_rec                     IN lsev_rec_type) IS
877 
878     l_return_status               VARCHAR2(1):=OKC_API.G_RET_STS_SUCCESS;
879     l_lsev_rec                    OKC_LINE_STYLES_PUB.lsev_rec_type;
880     lx_lsev_rec                    OKC_LINE_STYLES_PUB.lsev_rec_type;
881 
882     CURSOR loc_bot_csr (p_id IN NUMBER) is
883          select id, priced_yn, item_to_price_yn, price_basis_yn from okc_line_styles_b
884          Connect by prior id = lse_parent_id
885          start with id = p_id;
886 
887     CURSOR loc_top_csr (p_id IN NUMBER) is
888          select id, priced_yn,item_to_price_yn, price_basis_yn from okc_line_styles_b
889          connect by prior lse_parent_id = id
890          start with id = p_id;
891 
892     BEGIN
893         x_return_status := OKC_API.G_RET_STS_SUCCESS;
894 
895      IF p_lsev_rec.priced_yn=G_Yes AND p_lsev_rec.price_basis_yn=G_Yes then
896                   x_return_status := OKC_API.G_RET_STS_ERROR;
897                OKC_API.SET_MESSAGE(p_app_name      => g_app_name,
898                                             p_msg_name  =>'OKC_PRICED_ABOVE_BASIS' );
899 
900 
901       ELSIF p_lsev_rec.priced_yn=G_Yes then
902           for l_rec in loc_bot_csr(p_lsev_rec.id) loop
903               IF l_rec.item_to_price_yn=G_Yes  and l_rec.id<>p_lsev_rec.id then
904                  x_return_status := OKC_API.G_RET_STS_ERROR;
905 
906                OKC_API.SET_MESSAGE(p_app_name      => g_app_name,
907                                             p_msg_name  =>'OKC_PRICED_ABOVE_ITEM' );
908 
909               END IF;
910               IF l_rec.price_basis_yn=G_Yes then
911                   x_return_status := OKC_API.G_RET_STS_ERROR;
912                OKC_API.SET_MESSAGE(p_app_name      => g_app_name,
913                                             p_msg_name  =>'OKC_PRICED_ABOVE_BASIS' );
914                END IF;
915             END LOOP;
916 
917 
918     ELSIF p_lsev_rec.item_to_price_yn=G_Yes then
919           for l_rec in loc_top_csr(p_lsev_rec.id) loop
920                IF l_rec.priced_yn=G_Yes and l_rec.id<>p_lsev_rec.id then
921                 x_return_status := OKC_API.G_RET_STS_ERROR;
922 
923                OKC_API.SET_MESSAGE(p_app_name      => g_app_name,
924                                             p_msg_name  =>'OKC_PRICED_ABOVE_ITEM' );
925 
926               END IF;
927           END LOOP;
928        ELSIF p_lsev_rec.price_basis_yn=G_Yes then
929           for l_rec in loc_top_csr(p_lsev_rec.id) loop
930                IF l_rec.priced_yn=G_Yes  then
931                 x_return_status := OKC_API.G_RET_STS_ERROR;
932 
933                OKC_API.SET_MESSAGE(p_app_name      => g_app_name,
934                                             p_msg_name  => 'OKC_PRICED_ABOVE_BASIS');
935 
936               END IF;
937            END LOOP;
938         ELSE
939              x_return_status := OKC_API.G_RET_STS_SUCCESS;
940         END IF;
941 
942    EXCEPTION
943 
944           WHEN OTHERS THEN
945                    OKC_API.set_message(p_app_name      => g_app_name,
946                             p_msg_name      => g_unexpected_error,
947                       p_token1        => g_sqlcode_token,
948                             p_token1_value  => sqlcode,
949                             p_token2        => g_sqlerrm_token,
950                          p_token2_value  => sqlerrm);
951             x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
952   END  Validate_priced_level;
953 
954 
955    PROCEDURE Validate_item_to_price_source (
956     x_return_status                OUT NOCOPY VARCHAR2,
957     p_lsev_rec                     IN lsev_rec_type) IS
958 
959    l_object_user_code            VARCHAR2(30):=NULL;
960    l_object_code                 VARCHAR2(30):=NULL;
961    l_mtl_found                   BOOLEAN := FALSE;
962 
963   CURSOR loc_source_csr is
964    select OBJECT_USER_CODE
965     from JTF_OBJECT_USAGES where
966        OBJECT_CODE = l_object_code
967         AND OBJECT_USER_CODE = 'OKX_MTL_SYSTEM_ITEM';
968    BEGIN
969    IF (l_debug = 'Y') THEN
970       okc_debug.set_indentation('validate_item_to_price_source');
971       okc_debug.log('100:enteringvalidate_item_to_price_sourc');
972    END IF;
973    IF p_lsev_rec.item_to_price_yn = 'Y' THEN
974 
975       IF (l_debug = 'Y') THEN
976          okc_debug.log('100:here');
977       END IF;
978         select JTOT_OBJECT_CODE
979         into l_object_code
980         from OKC_LINE_STYLE_SOURCES
981         where lse_id = p_lsev_rec.id
982         and sysdate between START_DATE and nvl(END_DATE,sysdate);
983 
984          IF (l_debug = 'Y') THEN
985             okc_debug.log('300:');
986          END IF;
987            Open loc_source_csr;
988            Fetch loc_source_csr into l_object_user_code;
989            l_mtl_found := loc_source_csr%FOUND;
990            Close loc_source_csr;
991 
992            IF NOT l_mtl_found THEN
993              IF (l_debug = 'Y') THEN
994                 okc_debug.log('400:');
995              END IF;
996               x_return_status := OKC_API.G_RET_STS_ERROR;
997               OKC_API.SET_MESSAGE(p_app_name      => g_app_name,
998                                             p_msg_name  => 'OKC_ITEM_TO_PRICE_SOURCE');
999             END IF;
1000           IF l_mtl_found THEN
1001             IF (l_debug = 'Y') THEN
1002                okc_debug.log('500:');
1003             END IF;
1004              x_return_status := OKC_API.G_RET_STS_SUCCESS;
1005            END IF;
1006 
1007    ELSE
1008      IF (l_debug = 'Y') THEN
1009         okc_debug.log('600:');
1010      END IF;
1011      x_return_status := OKC_API.G_RET_STS_SUCCESS;
1012    END IF;
1013 
1014    EXCEPTION
1015       WHEN NO_DATA_FOUND THEN
1016            IF (l_debug = 'Y') THEN
1017               okc_debug.log('700:');
1018            END IF;
1019              x_return_status := OKC_API.G_RET_STS_SUCCESS;
1020         --changed this to allow the line style to be item to priced when there is no line style source
1021             /*  x_return_status := OKC_API.G_RET_STS_ERROR;
1022               OKC_API.SET_MESSAGE(p_app_name  => g_app_name,
1023                                   p_msg_name  => 'OKC_ITEM_TO_PRICE_SOURCE');
1024      */
1025    NULL;
1026        WHEN OTHERS THEN
1027 
1028                   IF (l_debug = 'Y') THEN
1029                      okc_debug.log('600:');
1030                   END IF;
1031                    OKC_API.set_message(p_app_name      => g_app_name,
1032                             p_msg_name      => g_unexpected_error,
1033                       p_token1        => g_sqlcode_token,
1034                             p_token1_value  => sqlcode,
1035                             p_token2        => g_sqlerrm_token,
1036                          p_token2_value  => sqlerrm);
1037             x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1038   END  Validate_item_to_price_source;
1039 
1040 
1041    PROCEDURE Validate_recursive_yn (
1042     x_return_status                OUT NOCOPY VARCHAR2,
1043     p_lsev_rec                     IN lsev_rec_type) IS
1044   BEGIN
1045     IF upper(p_lsev_rec.recursive_yn) = 'Y' OR
1046        upper(p_lsev_rec.recursive_yn) = 'N'
1047     THEN
1048        IF p_lsev_rec.recursive_yn = 'Y' OR
1049           p_lsev_rec.recursive_yn = 'N'
1050        THEN
1051          x_return_status := OKC_API.G_RET_STS_SUCCESS;
1052        ELSE
1053          OKC_API.set_message(G_APP_NAME, G_UPPERCASE_REQUIRED,G_COL_NAME_TOKEN,'recursive_yn');
1054          x_return_status := OKC_API.G_RET_STS_ERROR;
1055        END IF;
1056     ELSE
1057        OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'recursive_yn');
1058        x_return_status := OKC_API.G_RET_STS_ERROR;
1059     END IF;
1060   END Validate_recursive_yn;
1061 
1062 
1063   PROCEDURE Validate_protected_yn (
1064     x_return_status                OUT NOCOPY VARCHAR2,
1065     p_lsev_rec                     IN lsev_rec_type) IS
1066   BEGIN
1067    IF p_lsev_rec.protected_yn IS NULL THEN
1068       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'protected_yn');
1069        x_return_status := OKC_API.G_RET_STS_ERROR;
1070    ELSE
1071     IF upper(p_lsev_rec.protected_yn) = 'Y' OR
1072        upper(p_lsev_rec.protected_yn) = 'N'
1073     THEN
1074        IF p_lsev_rec.protected_yn = 'Y' OR
1075           p_lsev_rec.protected_yn = 'N'
1076        THEN
1077          x_return_status := OKC_API.G_RET_STS_SUCCESS;
1078        ELSE
1079          OKC_API.set_message(G_APP_NAME, G_UPPERCASE_REQUIRED,G_COL_NAME_TOKEN,'protected_yn');
1080          x_return_status := OKC_API.G_RET_STS_ERROR;
1081        END IF;
1082     ELSE
1083        OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'protected_yn');
1084        x_return_status := OKC_API.G_RET_STS_ERROR;
1085     END IF;
1086    END IF;
1087   END Validate_protected_yn;
1088 
1089   PROCEDURE Validate_SFWT_Flag (
1090     x_return_status                OUT NOCOPY VARCHAR2,
1091     p_lsev_rec                     IN lsev_rec_type) IS
1092   BEGIN
1093     IF upper(p_lsev_rec.sfwt_flag) = 'Y' OR
1094        upper(p_lsev_rec.sfwt_flag) = 'N'
1095     THEN
1096        IF p_lsev_rec.sfwt_flag = 'Y' OR
1097           p_lsev_rec.sfwt_flag = 'N'
1098        THEN
1099          x_return_status := OKC_API.G_RET_STS_SUCCESS;
1100        ELSE
1101          OKC_API.set_message(G_APP_NAME, G_UPPERCASE_REQUIRED,G_COL_NAME_TOKEN,'SFWT_FLAG');
1102          x_return_status := OKC_API.G_RET_STS_ERROR;
1103        END IF;
1104     ELSE
1105        OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'SFWT_FLAG');
1106        x_return_status := OKC_API.G_RET_STS_ERROR;
1107     END IF;
1108   END Validate_SFWT_Flag;
1109 
1110   PROCEDURE Validate_Name
1111     (x_return_status	        OUT NOCOPY VARCHAR2,
1112      p_lsev_rec	        IN	lsev_rec_type) IS
1113   BEGIN
1114     -- initialize return status
1115     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1116     IF (p_lsev_rec.name is not null) AND
1117        (p_lsev_rec.name <> OKC_API.G_MISS_CHAR) THEN
1118 	   x_return_status := Check_Unique_Name(p_lsev_rec);
1119     ELSE
1120       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'NAME');
1121       x_return_status := OKC_API.G_RET_STS_ERROR;
1122     END IF;
1123   EXCEPTION
1124     WHEN OTHERS THEN
1125       -- store SQL error message on message stack for caller
1126       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1127                           p_msg_name     => g_unexpected_error,
1128                           p_token1       => g_sqlcode_token,
1129                           p_token1_value => sqlcode,
1130                           p_token2       => g_col_name_token,
1131                           p_token2_value => 'Name',
1132                           p_token3       => g_sqlerrm_token,
1133                           p_token3_value => sqlerrm);
1134       -- notify caller of an UNEXPECTED error
1135       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1136   END Validate_Name;
1137 
1138   FUNCTION Validate_Attributes (
1139     p_lsev_rec IN  lsev_rec_type
1140   ) RETURN VARCHAR2 IS
1141     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1142     x_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1143   BEGIN
1144     IF p_lsev_rec.id = OKC_API.G_MISS_NUM OR
1145        p_lsev_rec.id IS NULL
1146     THEN
1147       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
1148       x_return_status := OKC_API.G_RET_STS_ERROR;
1149     ELSIF p_lsev_rec.object_version_number = OKC_API.G_MISS_NUM OR
1150           p_lsev_rec.object_version_number IS NULL
1151     THEN
1152       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
1153       x_return_status := OKC_API.G_RET_STS_ERROR;
1154     END IF;
1155     Validate_Lty_Code (l_return_status,
1156                        p_lsev_rec);
1157     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1158       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1159         x_return_status := l_return_status;
1160         RAISE G_EXCEPTION_HALT_VALIDATION;
1161       ELSE
1162         x_return_status := l_return_status;   -- record that there was an error
1163       END IF;
1164     END IF;
1165 
1166     Validate_priced_yn (l_return_status, p_lsev_rec);
1167     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1168       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1169         x_return_status := l_return_status;
1170         RAISE G_EXCEPTION_HALT_VALIDATION;
1171       ELSE
1172         x_return_status := l_return_status;   -- record that there was an error
1173       END IF;
1174     END IF;
1175 
1176     Validate_application_id (l_return_status, p_lsev_rec);
1177     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1178       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1179         x_return_status := l_return_status;
1180         RAISE G_EXCEPTION_HALT_VALIDATION;
1181       ELSE
1182         x_return_status := l_return_status;   -- record that there was an error
1183       END IF;
1184     END IF;
1185 
1186 
1187      Validate_item_to_price_yn (l_return_status, p_lsev_rec);
1188 
1189     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1190       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1191         x_return_status := l_return_status;
1192         RAISE G_EXCEPTION_HALT_VALIDATION;
1193       ELSE
1194         x_return_status := l_return_status;   -- record that there was an error
1195       END IF;
1196     END IF;
1197 
1198    Validate_price_basis_yn (l_return_status, p_lsev_rec);
1199 
1200     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1201       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1202         x_return_status := l_return_status;
1203         RAISE G_EXCEPTION_HALT_VALIDATION;
1204       ELSE
1205         x_return_status := l_return_status;   -- record that there was an error
1206       END IF;
1207     END IF;
1208 
1209     Validate_item_or_basis (l_return_status,
1210                        p_lsev_rec);
1211     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1212       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1213         x_return_status := l_return_status;
1214         RAISE G_EXCEPTION_HALT_VALIDATION;
1215       ELSE
1216         x_return_status := l_return_status;   -- record that there was an error
1217       END IF;
1218     END IF;
1219 
1220     Validate_item_to_price_source (l_return_status, p_lsev_rec);
1221 
1222 
1223     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1224       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1225         x_return_status := l_return_status;
1226         RAISE G_EXCEPTION_HALT_VALIDATION;
1227       ELSE
1228         x_return_status := l_return_status;   -- record that there was an error
1229       END IF;
1230     END IF;
1231 
1232     Validate_priced_level (l_return_status, p_lsev_rec);
1233 
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  -- need to leave
1236         x_return_status := l_return_status;
1237         RAISE G_EXCEPTION_HALT_VALIDATION;
1238       ELSE
1239         x_return_status := l_return_status;   -- record that there was an error
1240       END IF;
1241     END IF;
1242 
1243     Validate_recursive_yn (l_return_status, p_lsev_rec);
1244 
1245 
1246     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1247       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1248         x_return_status := l_return_status;
1249         RAISE G_EXCEPTION_HALT_VALIDATION;
1250       ELSE
1251         x_return_status := l_return_status;   -- record that there was an error
1252       END IF;
1253     END IF;
1254 
1255     Validate_protected_yn (l_return_status, p_lsev_rec);
1256 
1257     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1258       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1259         x_return_status := l_return_status;
1260         RAISE G_EXCEPTION_HALT_VALIDATION;
1261       ELSE
1262         x_return_status := l_return_status;   -- record that there was an error
1263       END IF;
1264     END IF;
1265 --
1266     Validate_access_level (l_return_status, p_lsev_rec);
1267 
1268     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1269       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1270         x_return_status := l_return_status;
1271         RAISE G_EXCEPTION_HALT_VALIDATION;
1272       ELSE
1273         x_return_status := l_return_status;   -- record that there was an error
1274       END IF;
1275     END IF;
1276 --
1277     Validate_Lse_Type (l_return_status,
1278                        p_lsev_rec);
1279     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1280       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1281         x_return_status := l_return_status;
1282         RAISE G_EXCEPTION_HALT_VALIDATION;
1283       ELSE
1284         x_return_status := l_return_status;   -- record that there was an error
1285       END IF;
1286     END IF;
1287     Validate_Lse_Parent_Id (l_return_status,
1288                             p_lsev_rec);
1289     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1290       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1291         x_return_status := l_return_status;
1292         RAISE G_EXCEPTION_HALT_VALIDATION;
1293       ELSE
1294         x_return_status := l_return_status;   -- record that there was an error
1295       END IF;
1296     END IF;
1297     Validate_SFWT_Flag (l_return_status,
1298                         p_lsev_rec);
1299     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1300       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1301         x_return_status := l_return_status;
1302         RAISE G_EXCEPTION_HALT_VALIDATION;
1303       ELSE
1304         x_return_status := l_return_status;   -- record that there was an error
1305       END IF;
1306     END IF;
1307     Validate_Name(l_return_status, p_lsev_rec);
1308     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1309       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
1310         x_return_status := l_return_status;
1311         RAISE G_EXCEPTION_HALT_VALIDATION;
1312       ELSE
1313         x_return_status := l_return_status;   -- record that there was an error
1314       END IF;
1315     END IF;
1316   RETURN(x_return_status);
1317   EXCEPTION
1318     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1319       RETURN(x_return_status);
1320 
1321     WHEN OTHERS THEN
1322     -- store SQL error message on message stack for caller
1323       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1324                           p_msg_name     => g_unexpected_error,
1325                           p_token1       => g_sqlcode_token,
1326                           p_token1_value => sqlcode,
1327                           p_token2       => g_sqlerrm_token,
1328                           p_token2_value => sqlerrm);
1329 
1330     -- notify caller of an UNEXPECTED error
1331       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1332       RETURN(x_return_status);
1333   END Validate_Attributes;
1334 
1335   ---------------------------------------------------------------------------
1336   -- PROCEDURE Validate_Record
1337   ---------------------------------------------------------------------------
1338   ------------------------------------------
1339   -- Validate_Record for:OKC_LINE_STYLES_V --
1340   ------------------------------------------
1341   FUNCTION Validate_Record (
1342     p_lsev_rec IN lsev_rec_type
1343   ) RETURN VARCHAR2 IS
1344     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1345    BEGIN
1346     RETURN (l_return_status);
1347   END Validate_Record;
1348 
1349  --**** End of Change -------------------------------------------------------
1350 
1351   ---------------------------------------------------------------------------
1352   -- PROCEDURE Migrate
1353   ---------------------------------------------------------------------------
1354   PROCEDURE migrate (
1355     p_from	IN lsev_rec_type,
1356     p_to	IN OUT NOCOPY lse_rec_type
1357   ) IS
1358   BEGIN
1359     p_to.id := p_from.id;
1360     p_to.lty_code := p_from.lty_code;
1361     p_to.priced_yn := p_from.priced_yn;
1362     p_to.recursive_yn := p_from.recursive_yn;
1363     p_to.protected_yn := p_from.protected_yn;
1364     p_to.lse_parent_id := p_from.lse_parent_id;
1365     p_to.lse_type := p_from.lse_type;
1366     p_to.object_version_number := p_from.object_version_number;
1367     p_to.application_id := p_from.application_id;
1368     p_to.created_by := p_from.created_by;
1369     p_to.creation_date := p_from.creation_date;
1370     p_to.last_updated_by := p_from.last_updated_by;
1371     p_to.last_update_date := p_from.last_update_date;
1372     p_to.last_update_login := p_from.last_update_login;
1373     p_to.attribute_category := p_from.attribute_category;
1374     p_to.attribute1 := p_from.attribute1;
1375     p_to.attribute2 := p_from.attribute2;
1376     p_to.attribute3 := p_from.attribute3;
1377     p_to.attribute4 := p_from.attribute4;
1378     p_to.attribute5 := p_from.attribute5;
1379     p_to.attribute6 := p_from.attribute6;
1380     p_to.attribute7 := p_from.attribute7;
1381     p_to.attribute8 := p_from.attribute8;
1382     p_to.attribute9 := p_from.attribute9;
1383     p_to.attribute10 := p_from.attribute10;
1384     p_to.attribute11 := p_from.attribute11;
1385     p_to.attribute12 := p_from.attribute12;
1386     p_to.attribute13 := p_from.attribute13;
1387     p_to.attribute14 := p_from.attribute14;
1388     p_to.attribute15 := p_from.attribute15;
1389     p_to.item_to_price_yn := p_from.item_to_price_yn;
1390     p_to.price_basis_yn := p_from.price_basis_yn;
1391     p_to.access_level := p_from.access_level;
1392     p_to.service_item_yn := p_from.service_item_yn;
1393    END migrate;
1394   PROCEDURE migrate (
1395     p_from	IN lse_rec_type,
1396     p_to	IN OUT NOCOPY lsev_rec_type
1397   ) IS
1398   BEGIN
1399     p_to.id := p_from.id;
1400     p_to.lty_code := p_from.lty_code;
1401     p_to.priced_yn := p_from.priced_yn;
1402     p_to.recursive_yn := p_from.recursive_yn;
1403     p_to.protected_yn := p_from.protected_yn;
1404     p_to.lse_parent_id := p_from.lse_parent_id;
1405     p_to.lse_type := p_from.lse_type;
1406     p_to.object_version_number := p_from.object_version_number;
1407     p_to.application_id := p_from.application_id;
1408     p_to.created_by := p_from.created_by;
1409     p_to.creation_date := p_from.creation_date;
1410     p_to.last_updated_by := p_from.last_updated_by;
1411     p_to.last_update_date := p_from.last_update_date;
1412     p_to.last_update_login := p_from.last_update_login;
1413     p_to.attribute_category := p_from.attribute_category;
1414     p_to.attribute1 := p_from.attribute1;
1415     p_to.attribute2 := p_from.attribute2;
1416     p_to.attribute3 := p_from.attribute3;
1417     p_to.attribute4 := p_from.attribute4;
1418     p_to.attribute5 := p_from.attribute5;
1419     p_to.attribute6 := p_from.attribute6;
1420     p_to.attribute7 := p_from.attribute7;
1421     p_to.attribute8 := p_from.attribute8;
1422     p_to.attribute9 := p_from.attribute9;
1423     p_to.attribute10 := p_from.attribute10;
1424     p_to.attribute11 := p_from.attribute11;
1425     p_to.attribute12 := p_from.attribute12;
1426     p_to.attribute13 := p_from.attribute13;
1427     p_to.attribute14 := p_from.attribute14;
1428     p_to.attribute15 := p_from.attribute15;
1429     p_to.item_to_price_yn := p_from.item_to_price_yn;
1430     p_to.price_basis_yn := p_from.price_basis_yn;
1431     p_to.access_level := p_from.access_level;
1432     p_to.service_item_yn := p_from.service_item_yn;
1433   END migrate;
1434 
1435 
1436   PROCEDURE migrate (
1437     p_from	IN lsev_rec_type,
1438     p_to	IN OUT NOCOPY okc_line_styles_tl_rec_type
1439   ) IS
1440   BEGIN
1441     p_to.id := p_from.id;
1442     p_to.sfwt_flag := p_from.sfwt_flag;
1443     p_to.name := p_from.name;
1444     p_to.description := p_from.description;
1445     p_to.created_by := p_from.created_by;
1446     p_to.creation_date := p_from.creation_date;
1447     p_to.last_updated_by := p_from.last_updated_by;
1448     p_to.last_update_date := p_from.last_update_date;
1449     p_to.last_update_login := p_from.last_update_login;
1450   END migrate;
1451   PROCEDURE migrate (
1452     p_from	IN okc_line_styles_tl_rec_type,
1453     p_to	IN OUT NOCOPY lsev_rec_type
1454   ) IS
1455   BEGIN
1456     p_to.id := p_from.id;
1457     p_to.sfwt_flag := p_from.sfwt_flag;
1458     p_to.name := p_from.name;
1459     p_to.description := p_from.description;
1460     p_to.created_by := p_from.created_by;
1461     p_to.creation_date := p_from.creation_date;
1462     p_to.last_updated_by := p_from.last_updated_by;
1463     p_to.last_update_date := p_from.last_update_date;
1464     p_to.last_update_login := p_from.last_update_login;
1465   END migrate;
1466 
1467   ---------------------------------------------------------------------------
1468   -- PROCEDURE validate_row
1469   ---------------------------------------------------------------------------
1470   ----------------------------------------
1471   -- validate_row for:OKC_LINE_STYLES_V --
1472   ----------------------------------------
1473   PROCEDURE validate_row(
1474     p_api_version                  IN NUMBER,
1475     p_init_msg_list                IN VARCHAR2 ,
1476     x_return_status                OUT NOCOPY VARCHAR2,
1477     x_msg_count                    OUT NOCOPY NUMBER,
1478     x_msg_data                     OUT NOCOPY VARCHAR2,
1479     p_lsev_rec                     IN lsev_rec_type) IS
1480 
1481     l_api_version                 CONSTANT NUMBER := 1;
1482     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
1483     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1484     l_lsev_rec                     lsev_rec_type := p_lsev_rec;
1485     l_lse_rec                      lse_rec_type;
1486     l_okc_line_styles_tl_rec       okc_line_styles_tl_rec_type;
1487   BEGIN
1488     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1489                                               G_PKG_NAME,
1490                                               p_init_msg_list,
1491                                               l_api_version,
1492                                               p_api_version,
1493                                               '_PVT',
1494                                               x_return_status);
1495     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1496       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1497     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1498       RAISE OKC_API.G_EXCEPTION_ERROR;
1499     END IF;
1500     --- Validate all non-missing attributes (Item Level Validation)
1501     l_return_status := Validate_Attributes(l_lsev_rec);
1502     --- If any errors happen abort API
1503     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1504       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1505     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1506       RAISE OKC_API.G_EXCEPTION_ERROR;
1507     END IF;
1508     l_return_status := Validate_Record(l_lsev_rec);
1509     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1510       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1511     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1512       RAISE OKC_API.G_EXCEPTION_ERROR;
1513     END IF;
1514     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1515   EXCEPTION
1516     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1517       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1518       (
1519         l_api_name,
1520         G_PKG_NAME,
1521         'OKC_API.G_RET_STS_ERROR',
1522         x_msg_count,
1523         x_msg_data,
1524         '_PVT'
1525       );
1526     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1527       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1528       (
1529         l_api_name,
1530         G_PKG_NAME,
1531         'OKC_API.G_RET_STS_UNEXP_ERROR',
1532         x_msg_count,
1533         x_msg_data,
1534         '_PVT'
1535       );
1536     WHEN OTHERS THEN
1537       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1538       (
1539         l_api_name,
1540         G_PKG_NAME,
1541         'OTHERS',
1542         x_msg_count,
1543         x_msg_data,
1544         '_PVT'
1545       );
1546   END validate_row;
1547   ------------------------------------------
1548   -- PL/SQL TBL validate_row for:LSEV_TBL --
1549   ------------------------------------------
1550   PROCEDURE validate_row(
1551     p_api_version                  IN NUMBER,
1552     p_init_msg_list                IN VARCHAR2 ,
1553     x_return_status                OUT NOCOPY VARCHAR2,
1554     x_msg_count                    OUT NOCOPY NUMBER,
1555     x_msg_data                     OUT NOCOPY VARCHAR2,
1556     p_lsev_tbl                     IN lsev_tbl_type) IS
1557 
1558     l_api_version                 CONSTANT NUMBER := 1;
1559     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1560     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1561     i                              NUMBER := 0;
1562   BEGIN
1563     OKC_API.init_msg_list(p_init_msg_list);
1564     -- Make sure PL/SQL table has records in it before passing
1565     IF (p_lsev_tbl.COUNT > 0) THEN
1566       i := p_lsev_tbl.FIRST;
1567       LOOP
1568         validate_row (
1569           p_api_version                  => p_api_version,
1570           p_init_msg_list                => OKC_API.G_FALSE,
1571           x_return_status                => x_return_status,
1572           x_msg_count                    => x_msg_count,
1573           x_msg_data                     => x_msg_data,
1574           p_lsev_rec                     => p_lsev_tbl(i));
1575         EXIT WHEN (i = p_lsev_tbl.LAST);
1576         i := p_lsev_tbl.NEXT(i);
1577       END LOOP;
1578     END IF;
1579   EXCEPTION
1580     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1581       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1582       (
1583         l_api_name,
1584         G_PKG_NAME,
1585         'OKC_API.G_RET_STS_ERROR',
1586         x_msg_count,
1587         x_msg_data,
1588         '_PVT'
1589       );
1590     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1591       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1592       (
1593         l_api_name,
1594         G_PKG_NAME,
1595         'OKC_API.G_RET_STS_UNEXP_ERROR',
1596         x_msg_count,
1597         x_msg_data,
1598         '_PVT'
1599       );
1600     WHEN OTHERS THEN
1601       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1602       (
1603         l_api_name,
1604         G_PKG_NAME,
1605         'OTHERS',
1606         x_msg_count,
1607         x_msg_data,
1608         '_PVT'
1609       );
1610   END validate_row;
1611 
1612   ---------------------------------------------------------------------------
1613   -- PROCEDURE insert_row
1614   ---------------------------------------------------------------------------
1615   --------------------------------------
1616   -- insert_row for:OKC_LINE_STYLES_B --
1617   --------------------------------------
1618   PROCEDURE insert_row(
1619     p_init_msg_list                IN VARCHAR2 ,
1620     x_return_status                OUT NOCOPY VARCHAR2,
1621     x_msg_count                    OUT NOCOPY NUMBER,
1622     x_msg_data                     OUT NOCOPY VARCHAR2,
1623     p_lse_rec                      IN lse_rec_type,
1624     x_lse_rec                      OUT NOCOPY lse_rec_type) IS
1625 
1626     l_api_version                 CONSTANT NUMBER := 1;
1627     l_api_name                     CONSTANT VARCHAR2(30) := 'B_insert_row';
1628     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1629     l_lse_rec                      lse_rec_type := p_lse_rec;
1630     l_def_lse_rec                  lse_rec_type;
1631     ------------------------------------------
1632     -- Set_Attributes for:OKC_LINE_STYLES_B --
1633     ------------------------------------------
1634     FUNCTION Set_Attributes (
1635       p_lse_rec IN  lse_rec_type,
1636       x_lse_rec OUT NOCOPY lse_rec_type
1637     ) RETURN VARCHAR2 IS
1638       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1639     BEGIN
1640       x_lse_rec := p_lse_rec;
1641       RETURN(l_return_status);
1642     END Set_Attributes;
1643   BEGIN
1644     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1645                                               p_init_msg_list,
1646                                               '_PVT',
1647                                               x_return_status);
1648     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1649       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1650     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1651       RAISE OKC_API.G_EXCEPTION_ERROR;
1652     END IF;
1653     --- Setting item attributes
1654     l_return_status := Set_Attributes(
1655       p_lse_rec,                         -- IN
1656       l_lse_rec);                        -- OUT
1657     --- If any errors happen abort API
1658     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1659       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1660     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1661       RAISE OKC_API.G_EXCEPTION_ERROR;
1662     END IF;
1663     INSERT INTO OKC_LINE_STYLES_B(
1664         id,
1665         lty_code,
1666         priced_yn,
1667         RECURSIVE_YN,
1668         PROTECTED_YN,
1669         lse_parent_id,
1670         lse_type,
1671         object_version_number,
1672         application_id,
1673         created_by,
1674         creation_date,
1675         last_updated_by,
1676         last_update_date,
1677         last_update_login,
1678         attribute_category,
1679         attribute1,
1680         attribute2,
1681         attribute3,
1682         attribute4,
1683         attribute5,
1684         attribute6,
1685         attribute7,
1686         attribute8,
1687         attribute9,
1688         attribute10,
1689         attribute11,
1690         attribute12,
1691         attribute13,
1692         attribute14,
1693         attribute15,
1694         item_to_price_yn,
1695         price_basis_yn,
1696         access_level,
1697         service_item_yn)
1698       VALUES (
1699         l_lse_rec.id,
1700         l_lse_rec.lty_code,
1701         l_lse_rec.priced_yn,
1702         l_lse_rec.RECURSIVE_YN,
1703         l_lse_rec.PROTECTED_YN,
1704         l_lse_rec.lse_parent_id,
1705         l_lse_rec.lse_type,
1706         l_lse_rec.object_version_number,
1707         nvl(l_lse_rec.application_id,fnd_global.resp_appl_id),
1708         l_lse_rec.created_by,
1709         l_lse_rec.creation_date,
1710         l_lse_rec.last_updated_by,
1711         l_lse_rec.last_update_date,
1712         l_lse_rec.last_update_login,
1713         l_lse_rec.attribute_category,
1714         l_lse_rec.attribute1,
1715         l_lse_rec.attribute2,
1716         l_lse_rec.attribute3,
1717         l_lse_rec.attribute4,
1718         l_lse_rec.attribute5,
1719         l_lse_rec.attribute6,
1720         l_lse_rec.attribute7,
1721         l_lse_rec.attribute8,
1722         l_lse_rec.attribute9,
1723         l_lse_rec.attribute10,
1724         l_lse_rec.attribute11,
1725         l_lse_rec.attribute12,
1726         l_lse_rec.attribute13,
1727         l_lse_rec.attribute14,
1728         l_lse_rec.attribute15,
1729         l_lse_rec.item_to_price_yn,
1730         l_lse_rec.price_basis_yn,
1731         l_lse_rec.access_level,
1732         l_lse_rec.service_item_yn);
1733     -- Set OUT values
1734     x_lse_rec := l_lse_rec;
1735     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1736   EXCEPTION
1737     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1738       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1739       (
1740         l_api_name,
1741         G_PKG_NAME,
1742         'OKC_API.G_RET_STS_ERROR',
1743         x_msg_count,
1744         x_msg_data,
1745         '_PVT'
1746       );
1747     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1748       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1749       (
1750         l_api_name,
1751         G_PKG_NAME,
1752         'OKC_API.G_RET_STS_UNEXP_ERROR',
1753         x_msg_count,
1754         x_msg_data,
1755         '_PVT'
1756       );
1757     WHEN OTHERS THEN
1758       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1759       (
1760         l_api_name,
1761         G_PKG_NAME,
1762         'OTHERS',
1763         x_msg_count,
1764         x_msg_data,
1765         '_PVT'
1766       );
1767   END insert_row;
1768   ---------------------------------------
1769   -- insert_row for:OKC_LINE_STYLES_TL --
1770   ---------------------------------------
1771   PROCEDURE insert_row(
1772     p_init_msg_list                IN VARCHAR2 ,
1773     x_return_status                OUT NOCOPY VARCHAR2,
1774     x_msg_count                    OUT NOCOPY NUMBER,
1775     x_msg_data                     OUT NOCOPY VARCHAR2,
1776     p_okc_line_styles_tl_rec       IN okc_line_styles_tl_rec_type,
1777     x_okc_line_styles_tl_rec       OUT NOCOPY okc_line_styles_tl_rec_type) IS
1778 
1779     l_api_version                 CONSTANT NUMBER := 1;
1780     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_insert_row';
1781     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1782     l_okc_line_styles_tl_rec       okc_line_styles_tl_rec_type := p_okc_line_styles_tl_rec;
1783     l_def_okc_line_styles_tl_rec   okc_line_styles_tl_rec_type;
1784     CURSOR get_languages IS
1785       SELECT *
1786         FROM FND_LANGUAGES
1787        WHERE INSTALLED_FLAG IN ('I', 'B');
1788     -------------------------------------------
1789     -- Set_Attributes for:OKC_LINE_STYLES_TL --
1790     -------------------------------------------
1791     FUNCTION Set_Attributes (
1792       p_okc_line_styles_tl_rec IN  okc_line_styles_tl_rec_type,
1793       x_okc_line_styles_tl_rec OUT NOCOPY okc_line_styles_tl_rec_type
1794     ) RETURN VARCHAR2 IS
1795       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1796     BEGIN
1797       x_okc_line_styles_tl_rec := p_okc_line_styles_tl_rec;
1798       x_okc_line_styles_tl_rec.LANGUAGE := USERENV('LANG');
1799       x_okc_line_styles_tl_rec.SOURCE_LANG := USERENV('LANG');
1800       RETURN(l_return_status);
1801     END Set_Attributes;
1802   BEGIN
1803     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1804                                               p_init_msg_list,
1805                                               '_PVT',
1806                                               x_return_status);
1807     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1808       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1809     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1810       RAISE OKC_API.G_EXCEPTION_ERROR;
1811     END IF;
1812     --- Setting item attributes
1813     l_return_status := Set_Attributes(
1814       p_okc_line_styles_tl_rec,          -- IN
1815       l_okc_line_styles_tl_rec);         -- OUT
1816     --- If any errors happen abort API
1817     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1818       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1819     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1820       RAISE OKC_API.G_EXCEPTION_ERROR;
1821     END IF;
1822     FOR l_lang_rec IN get_languages LOOP
1823       l_okc_line_styles_tl_rec.language := l_lang_rec.language_code;
1824       INSERT INTO OKC_LINE_STYLES_TL(
1825           id,
1826           language,
1827           source_lang,
1828           sfwt_flag,
1829           name,
1830           description,
1831           created_by,
1832           creation_date,
1833           last_updated_by,
1834           last_update_date,
1835           last_update_login)
1836         VALUES (
1837           l_okc_line_styles_tl_rec.id,
1838           l_okc_line_styles_tl_rec.language,
1839           l_okc_line_styles_tl_rec.source_lang,
1840           l_okc_line_styles_tl_rec.sfwt_flag,
1841           l_okc_line_styles_tl_rec.name,
1842           l_okc_line_styles_tl_rec.description,
1843           l_okc_line_styles_tl_rec.created_by,
1844           l_okc_line_styles_tl_rec.creation_date,
1845           l_okc_line_styles_tl_rec.last_updated_by,
1846           l_okc_line_styles_tl_rec.last_update_date,
1847           l_okc_line_styles_tl_rec.last_update_login);
1848     END LOOP;
1849     -- Set OUT values
1850     x_okc_line_styles_tl_rec := l_okc_line_styles_tl_rec;
1851     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1852   EXCEPTION
1853     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1854       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1855       (
1856         l_api_name,
1857         G_PKG_NAME,
1858         'OKC_API.G_RET_STS_ERROR',
1859         x_msg_count,
1860         x_msg_data,
1861         '_PVT'
1862       );
1863     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1864       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1865       (
1866         l_api_name,
1867         G_PKG_NAME,
1868         'OKC_API.G_RET_STS_UNEXP_ERROR',
1869         x_msg_count,
1870         x_msg_data,
1871         '_PVT'
1872       );
1873     WHEN OTHERS THEN
1874       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1875       (
1876         l_api_name,
1877         G_PKG_NAME,
1878         'OTHERS',
1879         x_msg_count,
1880         x_msg_data,
1881         '_PVT'
1882       );
1883   END insert_row;
1884   --------------------------------------
1885   -- insert_row for:OKC_LINE_STYLES_V --
1886   --------------------------------------
1887   PROCEDURE insert_row(
1888     p_api_version                  IN NUMBER,
1889     p_init_msg_list                IN VARCHAR2 ,
1890     x_return_status                OUT NOCOPY VARCHAR2,
1891     x_msg_count                    OUT NOCOPY NUMBER,
1892     x_msg_data                     OUT NOCOPY VARCHAR2,
1893     p_lsev_rec                     IN lsev_rec_type,
1894     x_lsev_rec                     OUT NOCOPY lsev_rec_type) IS
1895 
1896     l_api_version                 CONSTANT NUMBER := 1;
1897     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
1898     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1899     l_lsev_rec                     lsev_rec_type;
1900     l_def_lsev_rec                 lsev_rec_type;
1901     l_lse_rec                      lse_rec_type;
1902     lx_lse_rec                     lse_rec_type;
1903     l_okc_line_styles_tl_rec       okc_line_styles_tl_rec_type;
1904     lx_okc_line_styles_tl_rec      okc_line_styles_tl_rec_type;
1905     -------------------------------
1906     -- FUNCTION fill_who_columns --
1907     -------------------------------
1908     FUNCTION fill_who_columns (
1909       p_lsev_rec	IN lsev_rec_type
1910     ) RETURN lsev_rec_type IS
1911       l_lsev_rec	lsev_rec_type := p_lsev_rec;
1912     BEGIN
1913       l_lsev_rec.CREATION_DATE := SYSDATE;
1914       l_lsev_rec.CREATED_BY := FND_GLOBAL.USER_ID;
1915       l_lsev_rec.LAST_UPDATE_DATE := SYSDATE;
1916       l_lsev_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1917       l_lsev_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1918       RETURN(l_lsev_rec);
1919     END fill_who_columns;
1920     ------------------------------------------
1921     -- Set_Attributes for:OKC_LINE_STYLES_V --
1922     ------------------------------------------
1923     FUNCTION Set_Attributes (
1924       p_lsev_rec IN  lsev_rec_type,
1925       x_lsev_rec OUT NOCOPY lsev_rec_type
1926     ) RETURN VARCHAR2 IS
1927       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1928     BEGIN
1929       x_lsev_rec := p_lsev_rec;
1930       x_lsev_rec.OBJECT_VERSION_NUMBER := 1;
1931       x_lsev_rec.SFWT_FLAG := 'N';
1932       RETURN(l_return_status);
1933     END Set_Attributes;
1934   BEGIN
1935     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1936                                               G_PKG_NAME,
1937                                               p_init_msg_list,
1938                                               l_api_version,
1939                                               p_api_version,
1940                                               '_PVT',
1941                                               x_return_status);
1942     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1943       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1944     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1945       RAISE OKC_API.G_EXCEPTION_ERROR;
1946     END IF;
1947     l_lsev_rec := null_out_defaults(p_lsev_rec);
1948     -- Set primary key value
1949     l_lsev_rec.ID := get_seq_id;
1950     --- Setting item attributes
1951     l_return_status := Set_Attributes(
1952       l_lsev_rec,                        -- IN
1953       l_def_lsev_rec);                   -- OUT
1954     --- If any errors happen abort API
1955     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1956       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1957     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1958       RAISE OKC_API.G_EXCEPTION_ERROR;
1959     END IF;
1960     l_def_lsev_rec := fill_who_columns(l_def_lsev_rec);
1961     --- Validate all non-missing attributes (Item Level Validation)
1962     l_return_status := Validate_Attributes(l_def_lsev_rec);
1963     --- If any errors happen abort API
1964     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1965       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1966     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1967       RAISE OKC_API.G_EXCEPTION_ERROR;
1968     END IF;
1969     l_return_status := Validate_Record(l_def_lsev_rec);
1970     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1971       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1972     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1973       RAISE OKC_API.G_EXCEPTION_ERROR;
1974     END IF;
1975     --------------------------------------
1976     -- Move VIEW record to "Child" records
1977     --------------------------------------
1978     migrate(l_def_lsev_rec, l_lse_rec);
1979     migrate(l_def_lsev_rec, l_okc_line_styles_tl_rec);
1980     --------------------------------------------
1981     -- Call the INSERT_ROW for each child record
1982     --------------------------------------------
1983     insert_row(
1984       p_init_msg_list,
1985       x_return_status,
1986       x_msg_count,
1987       x_msg_data,
1988       l_lse_rec,
1989       lx_lse_rec
1990     );
1991     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1992       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1993     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1994       RAISE OKC_API.G_EXCEPTION_ERROR;
1995     END IF;
1996     migrate(lx_lse_rec, l_def_lsev_rec);
1997     insert_row(
1998       p_init_msg_list,
1999       x_return_status,
2000       x_msg_count,
2001       x_msg_data,
2002       l_okc_line_styles_tl_rec,
2003       lx_okc_line_styles_tl_rec
2004     );
2005     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2006       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2007     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2008       RAISE OKC_API.G_EXCEPTION_ERROR;
2009     END IF;
2010     migrate(lx_okc_line_styles_tl_rec, l_def_lsev_rec);
2011     -- Set OUT values
2012     x_lsev_rec := l_def_lsev_rec;
2013     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2014   EXCEPTION
2015     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2016       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2017       (
2018         l_api_name,
2019         G_PKG_NAME,
2020         'OKC_API.G_RET_STS_ERROR',
2021         x_msg_count,
2022         x_msg_data,
2023         '_PVT'
2024       );
2025     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2026       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2027       (
2028         l_api_name,
2029         G_PKG_NAME,
2030         'OKC_API.G_RET_STS_UNEXP_ERROR',
2031         x_msg_count,
2032         x_msg_data,
2033         '_PVT'
2034       );
2035     WHEN OTHERS THEN
2036       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2037       (
2038         l_api_name,
2039         G_PKG_NAME,
2040         'OTHERS',
2041         x_msg_count,
2042         x_msg_data,
2043         '_PVT'
2044       );
2045   END insert_row;
2046   ----------------------------------------
2047   -- PL/SQL TBL insert_row for:LSEV_TBL --
2048   ----------------------------------------
2049   PROCEDURE insert_row(
2050     p_api_version                  IN NUMBER,
2051     p_init_msg_list                IN VARCHAR2 ,
2052     x_return_status                OUT NOCOPY VARCHAR2,
2053     x_msg_count                    OUT NOCOPY NUMBER,
2054     x_msg_data                     OUT NOCOPY VARCHAR2,
2055     p_lsev_tbl                     IN lsev_tbl_type,
2056     x_lsev_tbl                     OUT NOCOPY lsev_tbl_type) IS
2057 
2058     l_api_version                 CONSTANT NUMBER := 1;
2059     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
2060     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2061     i                              NUMBER := 0;
2062   BEGIN
2063     OKC_API.init_msg_list(p_init_msg_list);
2064     -- Make sure PL/SQL table has records in it before passing
2065     IF (p_lsev_tbl.COUNT > 0) THEN
2066       i := p_lsev_tbl.FIRST;
2067       LOOP
2068         insert_row (
2069           p_api_version                  => p_api_version,
2070           p_init_msg_list                => OKC_API.G_FALSE,
2071           x_return_status                => x_return_status,
2072           x_msg_count                    => x_msg_count,
2073           x_msg_data                     => x_msg_data,
2074           p_lsev_rec                     => p_lsev_tbl(i),
2075           x_lsev_rec                     => x_lsev_tbl(i));
2076         EXIT WHEN (i = p_lsev_tbl.LAST);
2077         i := p_lsev_tbl.NEXT(i);
2078       END LOOP;
2079     END IF;
2080   EXCEPTION
2081     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2082       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2083       (
2084         l_api_name,
2085         G_PKG_NAME,
2086         'OKC_API.G_RET_STS_ERROR',
2087         x_msg_count,
2088         x_msg_data,
2089         '_PVT'
2090       );
2091     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2092       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2093       (
2094         l_api_name,
2095         G_PKG_NAME,
2096         'OKC_API.G_RET_STS_UNEXP_ERROR',
2097         x_msg_count,
2098         x_msg_data,
2099         '_PVT'
2100       );
2101     WHEN OTHERS THEN
2102       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2103       (
2104         l_api_name,
2105         G_PKG_NAME,
2106         'OTHERS',
2107         x_msg_count,
2108         x_msg_data,
2109         '_PVT'
2110       );
2111   END insert_row;
2112 
2113   ---------------------------------------------------------------------------
2114   -- PROCEDURE lock_row
2115   ---------------------------------------------------------------------------
2116   ------------------------------------
2117   -- lock_row for:OKC_LINE_STYLES_B --
2118   ------------------------------------
2119   PROCEDURE lock_row(
2120     p_init_msg_list                IN VARCHAR2 ,
2121     x_return_status                OUT NOCOPY VARCHAR2,
2122     x_msg_count                    OUT NOCOPY NUMBER,
2123     x_msg_data                     OUT NOCOPY VARCHAR2,
2124     p_lse_rec                      IN lse_rec_type) IS
2125 
2126     E_Resource_Busy               EXCEPTION;
2127     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2128     CURSOR lock_csr (p_lse_rec IN lse_rec_type) IS
2129     SELECT OBJECT_VERSION_NUMBER
2130       FROM OKC_LINE_STYLES_B
2131      WHERE ID = p_lse_rec.id
2132        AND OBJECT_VERSION_NUMBER = p_lse_rec.object_version_number
2133     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
2134 
2135     CURSOR  lchk_csr (p_lse_rec IN lse_rec_type) IS
2136     SELECT OBJECT_VERSION_NUMBER
2137       FROM OKC_LINE_STYLES_B
2138     WHERE ID = p_lse_rec.id;
2139     l_api_version                 CONSTANT NUMBER := 1;
2140     l_api_name                     CONSTANT VARCHAR2(30) := 'B_lock_row';
2141     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2142     l_object_version_number       OKC_LINE_STYLES_B.OBJECT_VERSION_NUMBER%TYPE;
2143     lc_object_version_number      OKC_LINE_STYLES_B.OBJECT_VERSION_NUMBER%TYPE;
2144     l_row_notfound                BOOLEAN := FALSE;
2145     lc_row_notfound               BOOLEAN := FALSE;
2146   BEGIN
2147     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2148                                               p_init_msg_list,
2149                                               '_PVT',
2150                                               x_return_status);
2151     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2152       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2153     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2154       RAISE OKC_API.G_EXCEPTION_ERROR;
2155     END IF;
2156     BEGIN
2157       OPEN lock_csr(p_lse_rec);
2158       FETCH lock_csr INTO l_object_version_number;
2159       l_row_notfound := lock_csr%NOTFOUND;
2160       CLOSE lock_csr;
2161     EXCEPTION
2162       WHEN E_Resource_Busy THEN
2163         IF (lock_csr%ISOPEN) THEN
2164           CLOSE lock_csr;
2165         END IF;
2166         OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2167         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2168     END;
2169 
2170     IF ( l_row_notfound ) THEN
2171       OPEN lchk_csr(p_lse_rec);
2172       FETCH lchk_csr INTO lc_object_version_number;
2173       lc_row_notfound := lchk_csr%NOTFOUND;
2174       CLOSE lchk_csr;
2175     END IF;
2176     IF (lc_row_notfound) THEN
2177       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2178       RAISE OKC_API.G_EXCEPTION_ERROR;
2179     ELSIF lc_object_version_number > p_lse_rec.object_version_number THEN
2180       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2181       RAISE OKC_API.G_EXCEPTION_ERROR;
2182     ELSIF lc_object_version_number <> p_lse_rec.object_version_number THEN
2183       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2184       RAISE OKC_API.G_EXCEPTION_ERROR;
2185     ELSIF lc_object_version_number = -1 THEN
2186       OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2187       RAISE OKC_API.G_EXCEPTION_ERROR;
2188     END IF;
2189     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2190   EXCEPTION
2191     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2192       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2193       (
2194         l_api_name,
2195         G_PKG_NAME,
2196         'OKC_API.G_RET_STS_ERROR',
2197         x_msg_count,
2198         x_msg_data,
2199         '_PVT'
2200       );
2201     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2202       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2203       (
2204         l_api_name,
2205         G_PKG_NAME,
2206         'OKC_API.G_RET_STS_UNEXP_ERROR',
2207         x_msg_count,
2208         x_msg_data,
2209         '_PVT'
2210       );
2211     WHEN OTHERS THEN
2212       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2213       (
2214         l_api_name,
2215         G_PKG_NAME,
2216         'OTHERS',
2217         x_msg_count,
2218         x_msg_data,
2219         '_PVT'
2220       );
2221   END lock_row;
2222   -------------------------------------
2223   -- lock_row for:OKC_LINE_STYLES_TL --
2224   -------------------------------------
2225   PROCEDURE lock_row(
2226     p_init_msg_list                IN VARCHAR2 ,
2227     x_return_status                OUT NOCOPY VARCHAR2,
2228     x_msg_count                    OUT NOCOPY NUMBER,
2229     x_msg_data                     OUT NOCOPY VARCHAR2,
2230     p_okc_line_styles_tl_rec       IN okc_line_styles_tl_rec_type) IS
2231 
2232     E_Resource_Busy               EXCEPTION;
2233     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2234     CURSOR lock_csr (p_okc_line_styles_tl_rec IN okc_line_styles_tl_rec_type) IS
2235     SELECT *
2236       FROM OKC_LINE_STYLES_TL
2237      WHERE ID = p_okc_line_styles_tl_rec.id
2238     FOR UPDATE NOWAIT;
2239 
2240     l_api_version                 CONSTANT NUMBER := 1;
2241     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_lock_row';
2242     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2243     l_lock_var                    lock_csr%ROWTYPE;
2244     l_row_notfound                BOOLEAN := FALSE;
2245     lc_row_notfound               BOOLEAN := FALSE;
2246   BEGIN
2247     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2248                                               p_init_msg_list,
2249                                               '_PVT',
2250                                               x_return_status);
2251     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2252       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2253     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2254       RAISE OKC_API.G_EXCEPTION_ERROR;
2255     END IF;
2256     BEGIN
2257       OPEN lock_csr(p_okc_line_styles_tl_rec);
2258       FETCH lock_csr INTO l_lock_var;
2259       l_row_notfound := lock_csr%NOTFOUND;
2260       CLOSE lock_csr;
2261     EXCEPTION
2262       WHEN E_Resource_Busy THEN
2263         IF (lock_csr%ISOPEN) THEN
2264           CLOSE lock_csr;
2265         END IF;
2266         OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2267         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2268     END;
2269 
2270     IF ( l_row_notfound ) THEN
2271       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2272       RAISE OKC_API.G_EXCEPTION_ERROR;
2273     END IF;
2274     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2275   EXCEPTION
2276     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2277       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2278       (
2279         l_api_name,
2280         G_PKG_NAME,
2281         'OKC_API.G_RET_STS_ERROR',
2282         x_msg_count,
2283         x_msg_data,
2284         '_PVT'
2285       );
2286     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2287       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2288       (
2289         l_api_name,
2290         G_PKG_NAME,
2291         'OKC_API.G_RET_STS_UNEXP_ERROR',
2292         x_msg_count,
2293         x_msg_data,
2294         '_PVT'
2295       );
2296     WHEN OTHERS THEN
2297       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2298       (
2299         l_api_name,
2300         G_PKG_NAME,
2301         'OTHERS',
2302         x_msg_count,
2303         x_msg_data,
2304         '_PVT'
2305       );
2306   END lock_row;
2307   ------------------------------------
2308   -- lock_row for:OKC_LINE_STYLES_V --
2309   ------------------------------------
2310   PROCEDURE lock_row(
2311     p_api_version                  IN NUMBER,
2312     p_init_msg_list                IN VARCHAR2 ,
2313     x_return_status                OUT NOCOPY VARCHAR2,
2314     x_msg_count                    OUT NOCOPY NUMBER,
2315     x_msg_data                     OUT NOCOPY VARCHAR2,
2316     p_lsev_rec                     IN lsev_rec_type) IS
2317 
2318     l_api_version                 CONSTANT NUMBER := 1;
2319     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
2320     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2321     l_lse_rec                      lse_rec_type;
2322     l_okc_line_styles_tl_rec       okc_line_styles_tl_rec_type;
2323   BEGIN
2324     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2325                                               G_PKG_NAME,
2326                                               p_init_msg_list,
2327                                               l_api_version,
2328                                               p_api_version,
2329                                               '_PVT',
2330                                               x_return_status);
2331     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2332       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2333     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2334       RAISE OKC_API.G_EXCEPTION_ERROR;
2335     END IF;
2336     --------------------------------------
2337     -- Move VIEW record to "Child" records
2338     --------------------------------------
2339     migrate(p_lsev_rec, l_lse_rec);
2340     migrate(p_lsev_rec, l_okc_line_styles_tl_rec);
2341     --------------------------------------------
2342     -- Call the LOCK_ROW for each child record
2343     --------------------------------------------
2344     lock_row(
2345       p_init_msg_list,
2346       x_return_status,
2347       x_msg_count,
2348       x_msg_data,
2349       l_lse_rec
2350     );
2351     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2352       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2353     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2354       RAISE OKC_API.G_EXCEPTION_ERROR;
2355     END IF;
2356     lock_row(
2357       p_init_msg_list,
2358       x_return_status,
2359       x_msg_count,
2360       x_msg_data,
2361       l_okc_line_styles_tl_rec
2362     );
2363     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2364       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2365     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2366       RAISE OKC_API.G_EXCEPTION_ERROR;
2367     END IF;
2368     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2369   EXCEPTION
2370     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2371       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2372       (
2373         l_api_name,
2374         G_PKG_NAME,
2375         'OKC_API.G_RET_STS_ERROR',
2376         x_msg_count,
2377         x_msg_data,
2378         '_PVT'
2379       );
2380     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2381       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2382       (
2383         l_api_name,
2384         G_PKG_NAME,
2385         'OKC_API.G_RET_STS_UNEXP_ERROR',
2386         x_msg_count,
2387         x_msg_data,
2388         '_PVT'
2389       );
2390     WHEN OTHERS THEN
2391       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2392       (
2393         l_api_name,
2394         G_PKG_NAME,
2395         'OTHERS',
2396         x_msg_count,
2397         x_msg_data,
2398         '_PVT'
2399       );
2400   END lock_row;
2401   --------------------------------------
2402   -- PL/SQL TBL lock_row for:LSEV_TBL --
2403   --------------------------------------
2404   PROCEDURE lock_row(
2405     p_api_version                  IN NUMBER,
2406     p_init_msg_list                IN VARCHAR2 ,
2407     x_return_status                OUT NOCOPY VARCHAR2,
2408     x_msg_count                    OUT NOCOPY NUMBER,
2409     x_msg_data                     OUT NOCOPY VARCHAR2,
2410     p_lsev_tbl                     IN lsev_tbl_type) IS
2411 
2412     l_api_version                 CONSTANT NUMBER := 1;
2413     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2414     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2415     i                              NUMBER := 0;
2416   BEGIN
2417     OKC_API.init_msg_list(p_init_msg_list);
2418     -- Make sure PL/SQL table has records in it before passing
2419     IF (p_lsev_tbl.COUNT > 0) THEN
2420       i := p_lsev_tbl.FIRST;
2421       LOOP
2422         lock_row (
2423           p_api_version                  => p_api_version,
2424           p_init_msg_list                => OKC_API.G_FALSE,
2425           x_return_status                => x_return_status,
2426           x_msg_count                    => x_msg_count,
2427           x_msg_data                     => x_msg_data,
2428           p_lsev_rec                     => p_lsev_tbl(i));
2429         EXIT WHEN (i = p_lsev_tbl.LAST);
2430         i := p_lsev_tbl.NEXT(i);
2431       END LOOP;
2432     END IF;
2433   EXCEPTION
2434     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2435       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2436       (
2437         l_api_name,
2438         G_PKG_NAME,
2439         'OKC_API.G_RET_STS_ERROR',
2440         x_msg_count,
2441         x_msg_data,
2442         '_PVT'
2443       );
2444     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2445       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2446       (
2447         l_api_name,
2448         G_PKG_NAME,
2449         'OKC_API.G_RET_STS_UNEXP_ERROR',
2450         x_msg_count,
2451         x_msg_data,
2452         '_PVT'
2453       );
2454     WHEN OTHERS THEN
2455       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2456       (
2457         l_api_name,
2458         G_PKG_NAME,
2459         'OTHERS',
2460         x_msg_count,
2461         x_msg_data,
2462         '_PVT'
2463       );
2464   END lock_row;
2465 
2466   ---------------------------------------------------------------------------
2467   -- PROCEDURE update_row
2468   ---------------------------------------------------------------------------
2469   --------------------------------------
2470   -- update_row for:OKC_LINE_STYLES_B --
2471   --------------------------------------
2472   PROCEDURE update_row(
2473     p_init_msg_list                IN VARCHAR2 ,
2474     x_return_status                OUT NOCOPY VARCHAR2,
2475     x_msg_count                    OUT NOCOPY NUMBER,
2476     x_msg_data                     OUT NOCOPY VARCHAR2,
2477     p_lse_rec                      IN lse_rec_type,
2478     x_lse_rec                      OUT NOCOPY lse_rec_type) IS
2479 
2480     l_api_version                 CONSTANT NUMBER := 1;
2481     l_api_name                     CONSTANT VARCHAR2(30) := 'B_update_row';
2482     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2483     l_lse_rec                      lse_rec_type := p_lse_rec;
2484     l_def_lse_rec                  lse_rec_type;
2485     l_row_notfound                 BOOLEAN := TRUE;
2486     ----------------------------------
2487     -- FUNCTION populate_new_record --
2488     ----------------------------------
2489     FUNCTION populate_new_record (
2490       p_lse_rec	IN lse_rec_type,
2491       x_lse_rec	OUT NOCOPY lse_rec_type
2492     ) RETURN VARCHAR2 IS
2493       l_lse_rec                      lse_rec_type;
2494       l_row_notfound                 BOOLEAN := TRUE;
2495       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2496     BEGIN
2497       x_lse_rec := p_lse_rec;
2498       -- Get current database values
2499       l_lse_rec := get_rec(p_lse_rec, l_row_notfound);
2500       IF (l_row_notfound) THEN
2501         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2502       END IF;
2503       IF (x_lse_rec.id = OKC_API.G_MISS_NUM)
2504       THEN
2505         x_lse_rec.id := l_lse_rec.id;
2506       END IF;
2507       IF (x_lse_rec.lty_code = OKC_API.G_MISS_CHAR)
2508       THEN
2509         x_lse_rec.lty_code := l_lse_rec.lty_code;
2510       END IF;
2511       IF (x_lse_rec.priced_yn = OKC_API.G_MISS_CHAR)
2512       THEN
2513         x_lse_rec.priced_yn := l_lse_rec.priced_yn;
2514       END IF;
2515       IF (x_lse_rec.recursive_yn = OKC_API.G_MISS_CHAR)
2516       THEN
2517         x_lse_rec.recursive_yn := l_lse_rec.recursive_yn;
2518       END IF;
2519       IF (x_lse_rec.protected_yn = OKC_API.G_MISS_CHAR)
2520       THEN
2521         x_lse_rec.protected_yn := l_lse_rec.protected_yn;
2522       END IF;
2523       IF (x_lse_rec.lse_parent_id = OKC_API.G_MISS_NUM)
2524       THEN
2525         x_lse_rec.lse_parent_id := l_lse_rec.lse_parent_id;
2526       END IF;
2527       IF (x_lse_rec.lse_type = OKC_API.G_MISS_CHAR)
2528       THEN
2529         x_lse_rec.lse_type := l_lse_rec.lse_type;
2530       END IF;
2531       IF (x_lse_rec.object_version_number = OKC_API.G_MISS_NUM)
2532       THEN
2533         x_lse_rec.object_version_number := l_lse_rec.object_version_number;
2534       END IF;
2535       IF (x_lse_rec.application_id = OKC_API.G_MISS_NUM)
2536       THEN
2537         x_lse_rec.application_id := l_lse_rec.application_id;
2538       END IF;
2539       IF (x_lse_rec.created_by = OKC_API.G_MISS_NUM)
2540       THEN
2541         x_lse_rec.created_by := l_lse_rec.created_by;
2542       END IF;
2543       IF (x_lse_rec.creation_date = OKC_API.G_MISS_DATE)
2544       THEN
2545         x_lse_rec.creation_date := l_lse_rec.creation_date;
2546       END IF;
2547       IF (x_lse_rec.last_updated_by = OKC_API.G_MISS_NUM)
2548       THEN
2549         x_lse_rec.last_updated_by := l_lse_rec.last_updated_by;
2550       END IF;
2551       IF (x_lse_rec.last_update_date = OKC_API.G_MISS_DATE)
2552       THEN
2553         x_lse_rec.last_update_date := l_lse_rec.last_update_date;
2554       END IF;
2555       IF (x_lse_rec.last_update_login = OKC_API.G_MISS_NUM)
2556       THEN
2557         x_lse_rec.last_update_login := l_lse_rec.last_update_login;
2558       END IF;
2559       IF (x_lse_rec.attribute_category = OKC_API.G_MISS_CHAR)
2560       THEN
2561         x_lse_rec.attribute_category := l_lse_rec.attribute_category;
2562       END IF;
2563       IF (x_lse_rec.attribute1 = OKC_API.G_MISS_CHAR)
2564       THEN
2565         x_lse_rec.attribute1 := l_lse_rec.attribute1;
2566       END IF;
2567       IF (x_lse_rec.attribute2 = OKC_API.G_MISS_CHAR)
2568       THEN
2569         x_lse_rec.attribute2 := l_lse_rec.attribute2;
2570       END IF;
2571       IF (x_lse_rec.attribute3 = OKC_API.G_MISS_CHAR)
2572       THEN
2573         x_lse_rec.attribute3 := l_lse_rec.attribute3;
2574       END IF;
2575       IF (x_lse_rec.attribute4 = OKC_API.G_MISS_CHAR)
2576       THEN
2577         x_lse_rec.attribute4 := l_lse_rec.attribute4;
2578       END IF;
2579       IF (x_lse_rec.attribute5 = OKC_API.G_MISS_CHAR)
2580       THEN
2581         x_lse_rec.attribute5 := l_lse_rec.attribute5;
2582       END IF;
2583       IF (x_lse_rec.attribute6 = OKC_API.G_MISS_CHAR)
2584       THEN
2585         x_lse_rec.attribute6 := l_lse_rec.attribute6;
2586       END IF;
2587       IF (x_lse_rec.attribute7 = OKC_API.G_MISS_CHAR)
2588       THEN
2589         x_lse_rec.attribute7 := l_lse_rec.attribute7;
2590       END IF;
2591       IF (x_lse_rec.attribute8 = OKC_API.G_MISS_CHAR)
2592       THEN
2593         x_lse_rec.attribute8 := l_lse_rec.attribute8;
2594       END IF;
2595       IF (x_lse_rec.attribute9 = OKC_API.G_MISS_CHAR)
2596       THEN
2597         x_lse_rec.attribute9 := l_lse_rec.attribute9;
2598       END IF;
2599       IF (x_lse_rec.attribute10 = OKC_API.G_MISS_CHAR)
2600       THEN
2601         x_lse_rec.attribute10 := l_lse_rec.attribute10;
2602       END IF;
2603       IF (x_lse_rec.attribute11 = OKC_API.G_MISS_CHAR)
2604       THEN
2605         x_lse_rec.attribute11 := l_lse_rec.attribute11;
2606       END IF;
2607       IF (x_lse_rec.attribute12 = OKC_API.G_MISS_CHAR)
2608       THEN
2609         x_lse_rec.attribute12 := l_lse_rec.attribute12;
2610       END IF;
2611       IF (x_lse_rec.attribute13 = OKC_API.G_MISS_CHAR)
2612       THEN
2613         x_lse_rec.attribute13 := l_lse_rec.attribute13;
2614       END IF;
2615       IF (x_lse_rec.attribute14 = OKC_API.G_MISS_CHAR)
2616       THEN
2617         x_lse_rec.attribute14 := l_lse_rec.attribute14;
2618       END IF;
2619       IF (x_lse_rec.attribute15 = OKC_API.G_MISS_CHAR)
2620       THEN
2621         x_lse_rec.attribute15 := l_lse_rec.attribute15;
2622       END IF;
2623       IF (x_lse_rec.item_to_price_yn = OKC_API.G_MISS_CHAR)
2624       THEN
2625         x_lse_rec.item_to_price_yn := l_lse_rec.item_to_price_yn ;
2626       END IF;
2627       IF (x_lse_rec.price_basis_yn = OKC_API.G_MISS_CHAR)
2628       THEN
2629         x_lse_rec.price_basis_yn := l_lse_rec.price_basis_yn;
2630       END IF;
2631       IF (x_lse_rec.access_level = OKC_API.G_MISS_CHAR)
2632       THEN
2633         x_lse_rec.access_level := l_lse_rec.access_level;
2634       END IF;
2635       IF (x_lse_rec.service_item_yn = OKC_API.G_MISS_CHAR)
2636       THEN
2637         x_lse_rec.service_item_yn := l_lse_rec.service_item_yn;
2638       END IF;
2639      RETURN(l_return_status);
2640     END populate_new_record;
2641     ------------------------------------------
2642     -- Set_Attributes for:OKC_LINE_STYLES_B --
2643     ------------------------------------------
2644     FUNCTION Set_Attributes (
2645       p_lse_rec IN  lse_rec_type,
2646       x_lse_rec OUT NOCOPY lse_rec_type
2647     ) RETURN VARCHAR2 IS
2648       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2649     BEGIN
2650       x_lse_rec := p_lse_rec;
2651       RETURN(l_return_status);
2652     END Set_Attributes;
2653   BEGIN
2654     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2655                                               p_init_msg_list,
2656                                               '_PVT',
2657                                               x_return_status);
2658     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2659       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2660     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2661       RAISE OKC_API.G_EXCEPTION_ERROR;
2662     END IF;
2663     --- Setting item attributes
2664     l_return_status := Set_Attributes(
2665       p_lse_rec,                         -- IN
2666       l_lse_rec);                        -- OUT
2667     --- If any errors happen abort API
2668     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2669       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2670     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2671       RAISE OKC_API.G_EXCEPTION_ERROR;
2672     END IF;
2673     l_return_status := populate_new_record(l_lse_rec, l_def_lse_rec);
2674     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2675       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2676     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2677       RAISE OKC_API.G_EXCEPTION_ERROR;
2678     END IF;
2679     UPDATE  OKC_LINE_STYLES_B
2680     SET LTY_CODE = l_def_lse_rec.lty_code,
2681         PRICED_YN = l_def_lse_rec.PRICED_YN,
2682         RECURSIVE_YN = l_def_lse_rec.RECURSIVE_YN,
2683         LSE_PARENT_ID = l_def_lse_rec.lse_parent_id,
2684         LSE_TYPE = l_def_lse_rec.lse_type,
2685         OBJECT_VERSION_NUMBER = l_def_lse_rec.object_version_number,
2686         APPLICATION_ID = l_def_lse_rec.application_id,
2687         CREATED_BY = l_def_lse_rec.created_by,
2688         CREATION_DATE = l_def_lse_rec.creation_date,
2689         LAST_UPDATED_BY = l_def_lse_rec.last_updated_by,
2690         LAST_UPDATE_DATE = l_def_lse_rec.last_update_date,
2691         LAST_UPDATE_LOGIN = l_def_lse_rec.last_update_login,
2692         ATTRIBUTE_CATEGORY = l_def_lse_rec.attribute_category,
2693         ATTRIBUTE1 = l_def_lse_rec.attribute1,
2694         ATTRIBUTE2 = l_def_lse_rec.attribute2,
2695         ATTRIBUTE3 = l_def_lse_rec.attribute3,
2696         ATTRIBUTE4 = l_def_lse_rec.attribute4,
2697         ATTRIBUTE5 = l_def_lse_rec.attribute5,
2698         ATTRIBUTE6 = l_def_lse_rec.attribute6,
2699         ATTRIBUTE7 = l_def_lse_rec.attribute7,
2700         ATTRIBUTE8 = l_def_lse_rec.attribute8,
2701         ATTRIBUTE9 = l_def_lse_rec.attribute9,
2702         ATTRIBUTE10 = l_def_lse_rec.attribute10,
2703         ATTRIBUTE11 = l_def_lse_rec.attribute11,
2704         ATTRIBUTE12 = l_def_lse_rec.attribute12,
2705         ATTRIBUTE13 = l_def_lse_rec.attribute13,
2706         ATTRIBUTE14 = l_def_lse_rec.attribute14,
2707         ATTRIBUTE15 = l_def_lse_rec.attribute15,
2708         ITEM_TO_PRICE_YN = l_def_lse_rec.item_to_price_yn,
2709         PRICE_BASIS_YN = l_def_lse_rec.price_basis_yn,
2710         ACCESS_LEVEL = l_def_lse_rec.access_level,
2711         SERVICE_ITEM_YN = l_def_lse_rec.service_item_yn
2712     WHERE ID = l_def_lse_rec.id;
2713 
2714     x_lse_rec := l_def_lse_rec;
2715     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2716   EXCEPTION
2717     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2718       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2719       (
2720         l_api_name,
2721         G_PKG_NAME,
2722         'OKC_API.G_RET_STS_ERROR',
2723         x_msg_count,
2724         x_msg_data,
2725         '_PVT'
2726       );
2727     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2728       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2729       (
2730         l_api_name,
2731         G_PKG_NAME,
2732         'OKC_API.G_RET_STS_UNEXP_ERROR',
2733         x_msg_count,
2734         x_msg_data,
2735         '_PVT'
2736       );
2737     WHEN OTHERS THEN
2738       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2739       (
2740         l_api_name,
2741         G_PKG_NAME,
2742         'OTHERS',
2743         x_msg_count,
2744         x_msg_data,
2745         '_PVT'
2746       );
2747   END update_row;
2748   ---------------------------------------
2749   -- update_row for:OKC_LINE_STYLES_TL --
2750   ---------------------------------------
2751   PROCEDURE update_row(
2752     p_init_msg_list                IN VARCHAR2 ,
2753     x_return_status                OUT NOCOPY VARCHAR2,
2754     x_msg_count                    OUT NOCOPY NUMBER,
2755     x_msg_data                     OUT NOCOPY VARCHAR2,
2756     p_okc_line_styles_tl_rec       IN okc_line_styles_tl_rec_type,
2757     x_okc_line_styles_tl_rec       OUT NOCOPY okc_line_styles_tl_rec_type) IS
2758 
2759     l_api_version                 CONSTANT NUMBER := 1;
2760     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_update_row';
2761     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2762     l_okc_line_styles_tl_rec       okc_line_styles_tl_rec_type := p_okc_line_styles_tl_rec;
2763     l_def_okc_line_styles_tl_rec   okc_line_styles_tl_rec_type;
2764     l_row_notfound                 BOOLEAN := TRUE;
2765     ----------------------------------
2766     -- FUNCTION populate_new_record --
2767     ----------------------------------
2768     FUNCTION populate_new_record (
2769       p_okc_line_styles_tl_rec	IN okc_line_styles_tl_rec_type,
2770       x_okc_line_styles_tl_rec	OUT NOCOPY okc_line_styles_tl_rec_type
2771     ) RETURN VARCHAR2 IS
2772       l_okc_line_styles_tl_rec       okc_line_styles_tl_rec_type;
2773       l_row_notfound                 BOOLEAN := TRUE;
2774       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2775     BEGIN
2776       x_okc_line_styles_tl_rec := p_okc_line_styles_tl_rec;
2777       -- Get current database values
2778       l_okc_line_styles_tl_rec := get_rec(p_okc_line_styles_tl_rec, l_row_notfound);
2779       IF (l_row_notfound) THEN
2780         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2781       END IF;
2782       IF (x_okc_line_styles_tl_rec.id = OKC_API.G_MISS_NUM)
2783       THEN
2784         x_okc_line_styles_tl_rec.id := l_okc_line_styles_tl_rec.id;
2785       END IF;
2786       IF (x_okc_line_styles_tl_rec.language = OKC_API.G_MISS_CHAR)
2787       THEN
2788         x_okc_line_styles_tl_rec.language := l_okc_line_styles_tl_rec.language;
2789       END IF;
2790       IF (x_okc_line_styles_tl_rec.source_lang = OKC_API.G_MISS_CHAR)
2791       THEN
2792         x_okc_line_styles_tl_rec.source_lang := l_okc_line_styles_tl_rec.source_lang;
2793       END IF;
2794       IF (x_okc_line_styles_tl_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
2795       THEN
2796         x_okc_line_styles_tl_rec.sfwt_flag := l_okc_line_styles_tl_rec.sfwt_flag;
2797       END IF;
2798       IF (x_okc_line_styles_tl_rec.name = OKC_API.G_MISS_CHAR)
2799       THEN
2800         x_okc_line_styles_tl_rec.name := l_okc_line_styles_tl_rec.name;
2801       END IF;
2802       IF (x_okc_line_styles_tl_rec.description = OKC_API.G_MISS_CHAR)
2803       THEN
2804         x_okc_line_styles_tl_rec.description := l_okc_line_styles_tl_rec.description;
2805       END IF;
2806       IF (x_okc_line_styles_tl_rec.created_by = OKC_API.G_MISS_NUM)
2807       THEN
2808         x_okc_line_styles_tl_rec.created_by := l_okc_line_styles_tl_rec.created_by;
2809       END IF;
2810       IF (x_okc_line_styles_tl_rec.creation_date = OKC_API.G_MISS_DATE)
2811       THEN
2812         x_okc_line_styles_tl_rec.creation_date := l_okc_line_styles_tl_rec.creation_date;
2813       END IF;
2814       IF (x_okc_line_styles_tl_rec.last_updated_by = OKC_API.G_MISS_NUM)
2815       THEN
2816         x_okc_line_styles_tl_rec.last_updated_by := l_okc_line_styles_tl_rec.last_updated_by;
2817       END IF;
2818       IF (x_okc_line_styles_tl_rec.last_update_date = OKC_API.G_MISS_DATE)
2819       THEN
2820         x_okc_line_styles_tl_rec.last_update_date := l_okc_line_styles_tl_rec.last_update_date;
2821       END IF;
2822       IF (x_okc_line_styles_tl_rec.last_update_login = OKC_API.G_MISS_NUM)
2823       THEN
2824         x_okc_line_styles_tl_rec.last_update_login := l_okc_line_styles_tl_rec.last_update_login;
2825       END IF;
2826       RETURN(l_return_status);
2827     END populate_new_record;
2828     -------------------------------------------
2829     -- Set_Attributes for:OKC_LINE_STYLES_TL --
2830     -------------------------------------------
2831     FUNCTION Set_Attributes (
2832       p_okc_line_styles_tl_rec IN  okc_line_styles_tl_rec_type,
2833       x_okc_line_styles_tl_rec OUT NOCOPY okc_line_styles_tl_rec_type
2834     ) RETURN VARCHAR2 IS
2835       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2836     BEGIN
2837       x_okc_line_styles_tl_rec := p_okc_line_styles_tl_rec;
2838       x_okc_line_styles_tl_rec.LANGUAGE := USERENV('LANG');
2839       x_okc_line_styles_tl_rec.SOURCE_LANG := USERENV('LANG');
2840       RETURN(l_return_status);
2841     END Set_Attributes;
2842   BEGIN
2843     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2844                                               p_init_msg_list,
2845                                               '_PVT',
2846                                               x_return_status);
2847     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2848       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2849     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2850       RAISE OKC_API.G_EXCEPTION_ERROR;
2851     END IF;
2852     --- Setting item attributes
2853     l_return_status := Set_Attributes(
2854       p_okc_line_styles_tl_rec,          -- IN
2855       l_okc_line_styles_tl_rec);         -- OUT
2856     --- If any errors happen abort API
2857     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2858       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2859     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2860       RAISE OKC_API.G_EXCEPTION_ERROR;
2861     END IF;
2862     l_return_status := populate_new_record(l_okc_line_styles_tl_rec, l_def_okc_line_styles_tl_rec);
2863     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2864       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2865     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2866       RAISE OKC_API.G_EXCEPTION_ERROR;
2867     END IF;
2868     UPDATE  OKC_LINE_STYLES_TL
2869     SET NAME = l_def_okc_line_styles_tl_rec.name,
2870         DESCRIPTION = l_def_okc_line_styles_tl_rec.description,
2871         CREATED_BY = l_def_okc_line_styles_tl_rec.created_by,
2872         CREATION_DATE = l_def_okc_line_styles_tl_rec.creation_date,
2873         LAST_UPDATED_BY = l_def_okc_line_styles_tl_rec.last_updated_by,
2874         LAST_UPDATE_DATE = l_def_okc_line_styles_tl_rec.last_update_date,
2875         LAST_UPDATE_LOGIN = l_def_okc_line_styles_tl_rec.last_update_login
2876     WHERE ID = l_def_okc_line_styles_tl_rec.id
2877       AND SOURCE_LANG = USERENV('LANG');
2878 
2879     UPDATE  OKC_LINE_STYLES_TL
2880     SET SFWT_FLAG = 'Y'
2881     WHERE ID = l_def_okc_line_styles_tl_rec.id
2882       AND SOURCE_LANG <> USERENV('LANG');
2883 
2884     x_okc_line_styles_tl_rec := l_def_okc_line_styles_tl_rec;
2885     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2886   EXCEPTION
2887     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2888       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2889       (
2890         l_api_name,
2891         G_PKG_NAME,
2892         'OKC_API.G_RET_STS_ERROR',
2893         x_msg_count,
2894         x_msg_data,
2895         '_PVT'
2896       );
2897     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2898       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2899       (
2900         l_api_name,
2901         G_PKG_NAME,
2902         'OKC_API.G_RET_STS_UNEXP_ERROR',
2903         x_msg_count,
2904         x_msg_data,
2905         '_PVT'
2906       );
2907     WHEN OTHERS THEN
2908       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2909       (
2910         l_api_name,
2911         G_PKG_NAME,
2912         'OTHERS',
2913         x_msg_count,
2914         x_msg_data,
2915         '_PVT'
2916       );
2917   END update_row;
2918   --------------------------------------
2919   -- update_row for:OKC_LINE_STYLES_V --
2920   --------------------------------------
2921   PROCEDURE update_row(
2922     p_api_version                  IN NUMBER,
2923     p_init_msg_list                IN VARCHAR2 ,
2924     x_return_status                OUT NOCOPY VARCHAR2,
2925     x_msg_count                    OUT NOCOPY NUMBER,
2926     x_msg_data                     OUT NOCOPY VARCHAR2,
2927     p_lsev_rec                     IN lsev_rec_type,
2928     x_lsev_rec                     OUT NOCOPY lsev_rec_type) IS
2929 
2930     l_api_version                 CONSTANT NUMBER := 1;
2931     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
2932     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2933     l_lsev_rec                     lsev_rec_type := p_lsev_rec;
2934     l_def_lsev_rec                 lsev_rec_type;
2935     l_okc_line_styles_tl_rec       okc_line_styles_tl_rec_type;
2936     lx_okc_line_styles_tl_rec      okc_line_styles_tl_rec_type;
2937     l_lse_rec                      lse_rec_type;
2938     lx_lse_rec                     lse_rec_type;
2939     -------------------------------
2940     -- FUNCTION fill_who_columns --
2941     -------------------------------
2942     FUNCTION fill_who_columns (
2943       p_lsev_rec	IN lsev_rec_type
2944     ) RETURN lsev_rec_type IS
2945       l_lsev_rec	lsev_rec_type := p_lsev_rec;
2946     BEGIN
2947       l_lsev_rec.LAST_UPDATE_DATE := SYSDATE;
2948       l_lsev_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2949       l_lsev_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2950       RETURN(l_lsev_rec);
2951     END fill_who_columns;
2952     ----------------------------------
2953     -- FUNCTION populate_new_record --
2954     ----------------------------------
2955     FUNCTION populate_new_record (
2956       p_lsev_rec	IN lsev_rec_type,
2957       x_lsev_rec	OUT NOCOPY lsev_rec_type
2958     ) RETURN VARCHAR2 IS
2959       l_lsev_rec                     lsev_rec_type;
2960       l_row_notfound                 BOOLEAN := TRUE;
2961       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2962     BEGIN
2963       x_lsev_rec := p_lsev_rec;
2964       -- Get current database values
2965       l_lsev_rec := get_rec(p_lsev_rec, l_row_notfound);
2966       IF (l_row_notfound) THEN
2967         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2968       END IF;
2969       IF (x_lsev_rec.id = OKC_API.G_MISS_NUM)
2970       THEN
2971         x_lsev_rec.id := l_lsev_rec.id;
2972       END IF;
2973       IF (x_lsev_rec.lty_code = OKC_API.G_MISS_CHAR)
2974       THEN
2975         x_lsev_rec.lty_code := l_lsev_rec.lty_code;
2976       END IF;
2977       IF (x_lsev_rec.priced_yn = OKC_API.G_MISS_CHAR)
2978       THEN
2979         x_lsev_rec.priced_yn := l_lsev_rec.priced_yn;
2980       END IF;
2981       IF (x_lsev_rec.recursive_yn = OKC_API.G_MISS_CHAR)
2982       THEN
2983         x_lsev_rec.recursive_yn := l_lsev_rec.recursive_yn;
2984       END IF;
2985       IF (x_lsev_rec.protected_yn = OKC_API.G_MISS_CHAR)
2986       THEN
2987         x_lsev_rec.protected_yn := l_lsev_rec.protected_yn;
2988       END IF;
2989       IF (x_lsev_rec.lse_parent_id = OKC_API.G_MISS_NUM)
2990       THEN
2991         x_lsev_rec.lse_parent_id := l_lsev_rec.lse_parent_id;
2992       END IF;
2993       IF (x_lsev_rec.object_version_number = OKC_API.G_MISS_NUM)
2994       THEN
2995         x_lsev_rec.object_version_number := l_lsev_rec.object_version_number;
2996       END IF;
2997       IF (x_lsev_rec.application_id = OKC_API.G_MISS_NUM)
2998       THEN
2999         x_lsev_rec.application_id := l_lsev_rec.application_id;
3000       END IF;
3001       IF (x_lsev_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
3002       THEN
3003         x_lsev_rec.sfwt_flag := l_lsev_rec.sfwt_flag;
3004       END IF;
3005       IF (x_lsev_rec.name = OKC_API.G_MISS_CHAR)
3006       THEN
3007         x_lsev_rec.name := l_lsev_rec.name;
3008       END IF;
3009       IF (x_lsev_rec.description = OKC_API.G_MISS_CHAR)
3010       THEN
3011         x_lsev_rec.description := l_lsev_rec.description;
3012       END IF;
3013       IF (x_lsev_rec.attribute_category = OKC_API.G_MISS_CHAR)
3014       THEN
3015         x_lsev_rec.attribute_category := l_lsev_rec.attribute_category;
3016       END IF;
3017       IF (x_lsev_rec.attribute1 = OKC_API.G_MISS_CHAR)
3018       THEN
3019         x_lsev_rec.attribute1 := l_lsev_rec.attribute1;
3020       END IF;
3021       IF (x_lsev_rec.attribute2 = OKC_API.G_MISS_CHAR)
3022       THEN
3023         x_lsev_rec.attribute2 := l_lsev_rec.attribute2;
3024       END IF;
3025       IF (x_lsev_rec.attribute3 = OKC_API.G_MISS_CHAR)
3026       THEN
3027         x_lsev_rec.attribute3 := l_lsev_rec.attribute3;
3028       END IF;
3029       IF (x_lsev_rec.attribute4 = OKC_API.G_MISS_CHAR)
3030       THEN
3031         x_lsev_rec.attribute4 := l_lsev_rec.attribute4;
3032       END IF;
3033       IF (x_lsev_rec.attribute5 = OKC_API.G_MISS_CHAR)
3034       THEN
3035         x_lsev_rec.attribute5 := l_lsev_rec.attribute5;
3036       END IF;
3037       IF (x_lsev_rec.attribute6 = OKC_API.G_MISS_CHAR)
3038       THEN
3039         x_lsev_rec.attribute6 := l_lsev_rec.attribute6;
3040       END IF;
3041       IF (x_lsev_rec.attribute7 = OKC_API.G_MISS_CHAR)
3042       THEN
3043         x_lsev_rec.attribute7 := l_lsev_rec.attribute7;
3044       END IF;
3045       IF (x_lsev_rec.attribute8 = OKC_API.G_MISS_CHAR)
3046       THEN
3047         x_lsev_rec.attribute8 := l_lsev_rec.attribute8;
3048       END IF;
3049       IF (x_lsev_rec.attribute9 = OKC_API.G_MISS_CHAR)
3050       THEN
3051         x_lsev_rec.attribute9 := l_lsev_rec.attribute9;
3052       END IF;
3053       IF (x_lsev_rec.attribute10 = OKC_API.G_MISS_CHAR)
3054       THEN
3055         x_lsev_rec.attribute10 := l_lsev_rec.attribute10;
3056       END IF;
3057       IF (x_lsev_rec.attribute11 = OKC_API.G_MISS_CHAR)
3058       THEN
3059         x_lsev_rec.attribute11 := l_lsev_rec.attribute11;
3060       END IF;
3061       IF (x_lsev_rec.attribute12 = OKC_API.G_MISS_CHAR)
3062       THEN
3063         x_lsev_rec.attribute12 := l_lsev_rec.attribute12;
3064       END IF;
3065       IF (x_lsev_rec.attribute13 = OKC_API.G_MISS_CHAR)
3066       THEN
3067         x_lsev_rec.attribute13 := l_lsev_rec.attribute13;
3068       END IF;
3069       IF (x_lsev_rec.attribute14 = OKC_API.G_MISS_CHAR)
3070       THEN
3071         x_lsev_rec.attribute14 := l_lsev_rec.attribute14;
3072       END IF;
3073       IF (x_lsev_rec.attribute15 = OKC_API.G_MISS_CHAR)
3074       THEN
3075         x_lsev_rec.attribute15 := l_lsev_rec.attribute15;
3076       END IF;
3077       IF (x_lsev_rec.lse_type = OKC_API.G_MISS_CHAR)
3078       THEN
3079         x_lsev_rec.lse_type := l_lsev_rec.lse_type;
3080       END IF;
3081       IF (x_lsev_rec.created_by = OKC_API.G_MISS_NUM)
3082       THEN
3083         x_lsev_rec.created_by := l_lsev_rec.created_by;
3084       END IF;
3085       IF (x_lsev_rec.creation_date = OKC_API.G_MISS_DATE)
3086       THEN
3087         x_lsev_rec.creation_date := l_lsev_rec.creation_date;
3088       END IF;
3089       IF (x_lsev_rec.last_updated_by = OKC_API.G_MISS_NUM)
3090       THEN
3091         x_lsev_rec.last_updated_by := l_lsev_rec.last_updated_by;
3092       END IF;
3093       IF (x_lsev_rec.last_update_date = OKC_API.G_MISS_DATE)
3094       THEN
3095         x_lsev_rec.last_update_date := l_lsev_rec.last_update_date;
3096       END IF;
3097       IF (x_lsev_rec.last_update_login = OKC_API.G_MISS_NUM)
3098       THEN
3099         x_lsev_rec.last_update_login := l_lsev_rec.last_update_login;
3100       END IF;
3101       IF (x_lsev_rec.item_to_price_yn = OKC_API.G_MISS_CHAR)
3102       THEN
3103         x_lsev_rec.item_to_price_yn := l_lsev_rec.item_to_price_yn;
3104       END IF;
3105       IF (x_lsev_rec.price_basis_yn = OKC_API.G_MISS_CHAR)
3106       THEN
3107         x_lsev_rec.price_basis_yn := l_lsev_rec.price_basis_yn;
3108       END IF;
3109      RETURN(l_return_status);
3110     END populate_new_record;
3111     ------------------------------------------
3112     -- Set_Attributes for:OKC_LINE_STYLES_V --
3113     ------------------------------------------
3114     FUNCTION Set_Attributes (
3115       p_lsev_rec IN  lsev_rec_type,
3116       x_lsev_rec OUT NOCOPY lsev_rec_type
3117     ) RETURN VARCHAR2 IS
3118       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3119     BEGIN
3120       x_lsev_rec := p_lsev_rec;
3121 -- **** Added the following two lines for uppercasing *********
3122       x_lsev_rec.SFWT_FLAG := upper(p_lsev_rec.SFWT_FLAG);
3123       x_lsev_rec.LSE_TYPE := upper(p_lsev_rec.LSE_TYPE);
3124       x_lsev_rec.OBJECT_VERSION_NUMBER := NVL(x_lsev_rec.OBJECT_VERSION_NUMBER, 0) + 1;
3125       RETURN(l_return_status);
3126     END Set_Attributes;
3127   BEGIN
3128 
3129     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3130                                               G_PKG_NAME,
3131                                               p_init_msg_list,
3132                                               l_api_version,
3133                                               p_api_version,
3134                                               '_PVT',
3135                                               x_return_status);
3136     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3137       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3138     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3139       RAISE OKC_API.G_EXCEPTION_ERROR;
3140     END IF;
3141     --- Setting item attributes
3142     l_return_status := Set_Attributes(
3143       p_lsev_rec,                        -- IN
3144       l_lsev_rec);                       -- OUT
3145     --- If any errors happen abort API
3146     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3147       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3148     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3149       RAISE OKC_API.G_EXCEPTION_ERROR;
3150     END IF;
3151     l_return_status := populate_new_record(l_lsev_rec, l_def_lsev_rec);
3152     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3153       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3154     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3155       RAISE OKC_API.G_EXCEPTION_ERROR;
3156     END IF;
3157     l_def_lsev_rec := fill_who_columns(l_def_lsev_rec);
3158     --- Validate all non-missing attributes (Item Level Validation)
3159     l_return_status := Validate_Attributes(l_def_lsev_rec);
3160     --- If any errors happen abort API
3161     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3162       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3163     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3164       RAISE OKC_API.G_EXCEPTION_ERROR;
3165     END IF;
3166     l_return_status := Validate_Record(l_def_lsev_rec);
3167     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3168       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3169     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3170       RAISE OKC_API.G_EXCEPTION_ERROR;
3171     END IF;
3172 
3173     --------------------------------------
3174     -- Move VIEW record to "Child" records
3175     --------------------------------------
3176     migrate(l_def_lsev_rec, l_okc_line_styles_tl_rec);
3177     migrate(l_def_lsev_rec, l_lse_rec);
3178     --------------------------------------------
3179     -- Call the UPDATE_ROW for each child record
3180     --------------------------------------------
3181     update_row(
3182       p_init_msg_list,
3183       x_return_status,
3184       x_msg_count,
3185       x_msg_data,
3186       l_okc_line_styles_tl_rec,
3187       lx_okc_line_styles_tl_rec
3188     );
3189     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3190       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3191     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3192       RAISE OKC_API.G_EXCEPTION_ERROR;
3193     END IF;
3194     migrate(lx_okc_line_styles_tl_rec, l_def_lsev_rec);
3195     update_row(
3196       p_init_msg_list,
3197       x_return_status,
3198       x_msg_count,
3199       x_msg_data,
3200       l_lse_rec,
3201       lx_lse_rec
3202     );
3203     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3204       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3205     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3206       RAISE OKC_API.G_EXCEPTION_ERROR;
3207     END IF;
3208     migrate(lx_lse_rec, l_def_lsev_rec);
3209     x_lsev_rec := l_def_lsev_rec;
3210     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3211   EXCEPTION
3212     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3213       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3214       (
3215         l_api_name,
3216         G_PKG_NAME,
3217         'OKC_API.G_RET_STS_ERROR',
3218         x_msg_count,
3219         x_msg_data,
3220         '_PVT'
3221       );
3222     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3223       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3224       (
3225         l_api_name,
3226         G_PKG_NAME,
3227         'OKC_API.G_RET_STS_UNEXP_ERROR',
3228         x_msg_count,
3229         x_msg_data,
3230         '_PVT'
3231       );
3232     WHEN OTHERS THEN
3233       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3234       (
3235         l_api_name,
3236         G_PKG_NAME,
3237         'OTHERS',
3238         x_msg_count,
3239         x_msg_data,
3240         '_PVT'
3241       );
3242   END update_row;
3243   ----------------------------------------
3244   -- PL/SQL TBL update_row for:LSEV_TBL --
3245   ----------------------------------------
3246   PROCEDURE update_row(
3247     p_api_version                  IN NUMBER,
3248     p_init_msg_list                IN VARCHAR2 ,
3249     x_return_status                OUT NOCOPY VARCHAR2,
3250     x_msg_count                    OUT NOCOPY NUMBER,
3251     x_msg_data                     OUT NOCOPY VARCHAR2,
3252     p_lsev_tbl                     IN lsev_tbl_type,
3253     x_lsev_tbl                     OUT NOCOPY lsev_tbl_type) IS
3254 
3255     l_api_version                 CONSTANT NUMBER := 1;
3256     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3257     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3258     i                              NUMBER := 0;
3259   BEGIN
3260     OKC_API.init_msg_list(p_init_msg_list);
3261     -- Make sure PL/SQL table has records in it before passing
3262     IF (p_lsev_tbl.COUNT > 0) THEN
3263       i := p_lsev_tbl.FIRST;
3264       LOOP
3265         update_row (
3266           p_api_version                  => p_api_version,
3267           p_init_msg_list                => OKC_API.G_FALSE,
3268           x_return_status                => x_return_status,
3269           x_msg_count                    => x_msg_count,
3270           x_msg_data                     => x_msg_data,
3271           p_lsev_rec                     => p_lsev_tbl(i),
3272           x_lsev_rec                     => x_lsev_tbl(i));
3273         EXIT WHEN (i = p_lsev_tbl.LAST);
3274         i := p_lsev_tbl.NEXT(i);
3275       END LOOP;
3276     END IF;
3277   EXCEPTION
3278     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3279       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3280       (
3281         l_api_name,
3282         G_PKG_NAME,
3283         'OKC_API.G_RET_STS_ERROR',
3284         x_msg_count,
3285         x_msg_data,
3286         '_PVT'
3287       );
3288     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3289       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3290       (
3291         l_api_name,
3292         G_PKG_NAME,
3293         'OKC_API.G_RET_STS_UNEXP_ERROR',
3294         x_msg_count,
3295         x_msg_data,
3296         '_PVT'
3297       );
3298     WHEN OTHERS THEN
3299       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3300       (
3301         l_api_name,
3302         G_PKG_NAME,
3303         'OTHERS',
3304         x_msg_count,
3305         x_msg_data,
3306         '_PVT'
3307       );
3308   END update_row;
3309 
3310   ---------------------------------------------------------------------------
3311   -- PROCEDURE delete_row
3312   ---------------------------------------------------------------------------
3313   --------------------------------------
3314   -- delete_row for:OKC_LINE_STYLES_B --
3315   --------------------------------------
3316   PROCEDURE delete_row(
3317     p_init_msg_list                IN VARCHAR2 ,
3318     x_return_status                OUT NOCOPY VARCHAR2,
3319     x_msg_count                    OUT NOCOPY NUMBER,
3320     x_msg_data                     OUT NOCOPY VARCHAR2,
3321     p_lse_rec                      IN lse_rec_type) IS
3322 
3323     l_api_version                 CONSTANT NUMBER := 1;
3324     l_api_name                     CONSTANT VARCHAR2(30) := 'B_delete_row';
3325     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3326     l_lse_rec                      lse_rec_type:= p_lse_rec;
3327     l_row_notfound                 BOOLEAN := TRUE;
3328 
3329   BEGIN
3330     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3331                                               p_init_msg_list,
3332                                               '_PVT',
3333                                               x_return_status);
3334     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3335       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3336     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3337       RAISE OKC_API.G_EXCEPTION_ERROR;
3338     END IF;
3339     DELETE FROM OKC_LINE_STYLES_B
3340      WHERE ID = l_lse_rec.id;
3341 
3342     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3343   EXCEPTION
3344     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3345       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3346       (
3347         l_api_name,
3348         G_PKG_NAME,
3349         'OKC_API.G_RET_STS_ERROR',
3350         x_msg_count,
3351         x_msg_data,
3352         '_PVT'
3353       );
3354     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3355       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3356       (
3357         l_api_name,
3358         G_PKG_NAME,
3359         'OKC_API.G_RET_STS_UNEXP_ERROR',
3360         x_msg_count,
3361         x_msg_data,
3362         '_PVT'
3363       );
3364     WHEN OTHERS THEN
3365       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3366       (
3367         l_api_name,
3368         G_PKG_NAME,
3369         'OTHERS',
3370         x_msg_count,
3371         x_msg_data,
3372         '_PVT'
3373       );
3374   END delete_row;
3375   ---------------------------------------
3376   -- delete_row for:OKC_LINE_STYLES_TL --
3377   ---------------------------------------
3378   PROCEDURE delete_row(
3379     p_init_msg_list                IN VARCHAR2 ,
3380     x_return_status                OUT NOCOPY VARCHAR2,
3381     x_msg_count                    OUT NOCOPY NUMBER,
3382     x_msg_data                     OUT NOCOPY VARCHAR2,
3383     p_okc_line_styles_tl_rec       IN okc_line_styles_tl_rec_type) IS
3384 
3385     l_api_version                 CONSTANT NUMBER := 1;
3386     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_delete_row';
3387     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3388     l_okc_line_styles_tl_rec       okc_line_styles_tl_rec_type:= p_okc_line_styles_tl_rec;
3389     l_row_notfound                 BOOLEAN := TRUE;
3390     -------------------------------------------
3391     -- Set_Attributes for:OKC_LINE_STYLES_TL --
3392     -------------------------------------------
3393     FUNCTION Set_Attributes (
3394       p_okc_line_styles_tl_rec IN  okc_line_styles_tl_rec_type,
3395       x_okc_line_styles_tl_rec OUT NOCOPY okc_line_styles_tl_rec_type
3396     ) RETURN VARCHAR2 IS
3397       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3398     BEGIN
3399       x_okc_line_styles_tl_rec := p_okc_line_styles_tl_rec;
3400       x_okc_line_styles_tl_rec.LANGUAGE := USERENV('LANG');
3401       RETURN(l_return_status);
3402     END Set_Attributes;
3403   BEGIN
3404     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3405                                               p_init_msg_list,
3406                                               '_PVT',
3407                                               x_return_status);
3408     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3409       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3410     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3411       RAISE OKC_API.G_EXCEPTION_ERROR;
3412     END IF;
3413     --- Setting item attributes
3414     l_return_status := Set_Attributes(
3415       p_okc_line_styles_tl_rec,          -- IN
3416       l_okc_line_styles_tl_rec);         -- OUT
3417     --- If any errors happen abort API
3418     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3419       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3420     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3421       RAISE OKC_API.G_EXCEPTION_ERROR;
3422     END IF;
3423     DELETE FROM OKC_LINE_STYLES_TL
3424      WHERE ID = l_okc_line_styles_tl_rec.id;
3425 
3426     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3427   EXCEPTION
3428     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3429       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3430       (
3431         l_api_name,
3432         G_PKG_NAME,
3433         'OKC_API.G_RET_STS_ERROR',
3434         x_msg_count,
3435         x_msg_data,
3436         '_PVT'
3437       );
3438     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3439       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3440       (
3441         l_api_name,
3442         G_PKG_NAME,
3443         'OKC_API.G_RET_STS_UNEXP_ERROR',
3444         x_msg_count,
3445         x_msg_data,
3446         '_PVT'
3447       );
3448     WHEN OTHERS THEN
3449       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3450       (
3451         l_api_name,
3452         G_PKG_NAME,
3453         'OTHERS',
3454         x_msg_count,
3455         x_msg_data,
3456         '_PVT'
3457       );
3458   END delete_row;
3459   --------------------------------------
3460   -- delete_row for:OKC_LINE_STYLES_V --
3461   --------------------------------------
3462   PROCEDURE delete_row(
3463     p_api_version                  IN NUMBER,
3464     p_init_msg_list                IN VARCHAR2 ,
3465     x_return_status                OUT NOCOPY VARCHAR2,
3466     x_msg_count                    OUT NOCOPY NUMBER,
3467     x_msg_data                     OUT NOCOPY VARCHAR2,
3468     p_lsev_rec                     IN lsev_rec_type) IS
3469 
3470     l_api_version                 CONSTANT NUMBER := 1;
3471     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
3472     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3473     l_lsev_rec                     lsev_rec_type := p_lsev_rec;
3474     l_okc_line_styles_tl_rec       okc_line_styles_tl_rec_type;
3475     l_lse_rec                      lse_rec_type;
3476     cursor c1(p_id number) is select created_by from OKC_LINE_STYLES_B
3477     where ID=p_id;
3478     l_created_by     number:=OKC_API.G_MISS_NUM;
3479   BEGIN
3480     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3481                                               G_PKG_NAME,
3482                                               p_init_msg_list,
3483                                               l_api_version,
3484                                               p_api_version,
3485                                               '_PVT',
3486                                               x_return_status);
3487     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3488       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3489     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3490       RAISE OKC_API.G_EXCEPTION_ERROR;
3491     END IF;
3492     open c1(l_lse_rec.id);
3493     Fetch c1 into l_created_by;
3494     close c1;
3495     --san created_by=1 means its a seeded value so cannot delete
3496     IF l_created_by=1 then
3497           OKC_API.set_message(G_APP_NAME,'OKC_NOT_DELETE_SEEDED');
3498           RAISE OKC_API.G_EXCEPTION_ERROR;
3499     END IF;
3500     --------------------------------------
3501     -- Move VIEW record to "Child" records
3502     --------------------------------------
3503     migrate(l_lsev_rec, l_okc_line_styles_tl_rec);
3504     migrate(l_lsev_rec, l_lse_rec);
3505     --------------------------------------------
3506     -- Call the DELETE_ROW for each child record
3507     --------------------------------------------
3508     delete_row(
3509       p_init_msg_list,
3510       x_return_status,
3511       x_msg_count,
3512       x_msg_data,
3513       l_okc_line_styles_tl_rec
3514     );
3515     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3516       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3517     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3518       RAISE OKC_API.G_EXCEPTION_ERROR;
3519     END IF;
3520     delete_row(
3521       p_init_msg_list,
3522       x_return_status,
3523       x_msg_count,
3524       x_msg_data,
3525       l_lse_rec
3526     );
3527     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3528       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3529     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3530       RAISE OKC_API.G_EXCEPTION_ERROR;
3531     END IF;
3532     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3533   EXCEPTION
3534     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3535       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3536       (
3537         l_api_name,
3538         G_PKG_NAME,
3539         'OKC_API.G_RET_STS_ERROR',
3540         x_msg_count,
3541         x_msg_data,
3542         '_PVT'
3543       );
3544     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3545       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3546       (
3547         l_api_name,
3548         G_PKG_NAME,
3549         'OKC_API.G_RET_STS_UNEXP_ERROR',
3550         x_msg_count,
3551         x_msg_data,
3552         '_PVT'
3553       );
3554     WHEN OTHERS THEN
3555       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3556       (
3557         l_api_name,
3558         G_PKG_NAME,
3559         'OTHERS',
3560         x_msg_count,
3561         x_msg_data,
3562         '_PVT'
3563       );
3564   END delete_row;
3565   ----------------------------------------
3566   -- PL/SQL TBL delete_row for:LSEV_TBL --
3567   ----------------------------------------
3568   PROCEDURE delete_row(
3569     p_api_version                  IN NUMBER,
3570     p_init_msg_list                IN VARCHAR2 ,
3571     x_return_status                OUT NOCOPY VARCHAR2,
3572     x_msg_count                    OUT NOCOPY NUMBER,
3573     x_msg_data                     OUT NOCOPY VARCHAR2,
3574     p_lsev_tbl                     IN lsev_tbl_type) IS
3575 
3576     l_api_version                 CONSTANT NUMBER := 1;
3577     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3578     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3579     i                              NUMBER := 0;
3580   BEGIN
3581     OKC_API.init_msg_list(p_init_msg_list);
3582     -- Make sure PL/SQL table has records in it before passing
3583     IF (p_lsev_tbl.COUNT > 0) THEN
3584       i := p_lsev_tbl.FIRST;
3585       LOOP
3586         delete_row (
3587           p_api_version                  => p_api_version,
3588           p_init_msg_list                => OKC_API.G_FALSE,
3589           x_return_status                => x_return_status,
3590           x_msg_count                    => x_msg_count,
3591           x_msg_data                     => x_msg_data,
3592           p_lsev_rec                     => p_lsev_tbl(i));
3593         EXIT WHEN (i = p_lsev_tbl.LAST);
3594         i := p_lsev_tbl.NEXT(i);
3595       END LOOP;
3596     END IF;
3597   EXCEPTION
3598     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3599       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3600       (
3601         l_api_name,
3602         G_PKG_NAME,
3603         'OKC_API.G_RET_STS_ERROR',
3604         x_msg_count,
3605         x_msg_data,
3606         '_PVT'
3607       );
3608     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3609       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3610       (
3611         l_api_name,
3612         G_PKG_NAME,
3613         'OKC_API.G_RET_STS_UNEXP_ERROR',
3614         x_msg_count,
3615         x_msg_data,
3616         '_PVT'
3617       );
3618     WHEN OTHERS THEN
3619       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3620       (
3621         l_api_name,
3622         G_PKG_NAME,
3623         'OTHERS',
3624         x_msg_count,
3625         x_msg_data,
3626         '_PVT'
3627       );
3628   END delete_row;
3629 END OKC_LSE_PVT;