DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_LSM_PVT

Source


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