DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_ESD_PVT

Source


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