DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_KHR_PVT

Source


1 Package Body OKL_KHR_PVT AS
2 /* $Header: OKLSKHRB.pls 120.4 2006/11/10 06:20:06 dpsingh noship $ */
3 -- --------------------------------------------------------------------------
4 --  Start of column level validations
5 -- --------------------------------------------------------------------------
6   G_NO_PARENT_RECORD CONSTANT	VARCHAR2(200) := 'OKC_NO_PARENT_RECORD';
7   G_UNEXPECTED_ERROR CONSTANT	VARCHAR2(200) := 'OKC_CONTRACTS_UNEXPECTED_ERROR';
8 
9 
10   G_SQLERRM_TOKEN	 CONSTANT	VARCHAR2(200) := 'SQLerrm';
11   G_SQLCODE_TOKEN	 CONSTANT	VARCHAR2(200) := 'SQLcode';
12   G_VIEW		 CONSTANT	VARCHAR2(200) := 'OKL_K_HEADERS_V';
13 
14   G_EXCEPTION_HALT_VALIDATION	exception;
15 
16 
17 -- ********************* HAND CODED VALIDATION ********************************
18 
19 -- Start of comments
20 --
21 -- Procedure Name  : validate_khr_id
22 -- Description     : validates precense of the khr_id for the record
23 -- Business Rules  : required field
24 -- Parameters      :
25 -- Version         :
26 -- End of comments
27   procedure validate_khr_id(x_return_status OUT NOCOPY VARCHAR2,
28 			      p_khrv_rec IN  khrv_rec_type) is
29   l_dummy_var   VARCHAR2(1) := '?';
30   Cursor l_chrv_csr Is
31   		select 'x'
32   		from OKC_K_HEADERS_B
33   		where ID = p_khrv_rec.khr_id;
34     begin
35 -- initialize return status
36       x_return_status := OKC_API.G_RET_STS_SUCCESS;
37 
38 -- enforce foreign key, if data exists
39       if (p_khrv_rec.khr_id <> OKC_API.G_MISS_NUM) AND (p_khrv_rec.khr_id IS NOT NULL) then
40         Open l_chrv_csr;
41         Fetch l_chrv_csr Into l_dummy_var;
42         Close l_chrv_csr;
43 
44       -- if l_dummy_var still set to default, data was not found
45         If (l_dummy_var = '?') Then
46   	    OKC_API.SET_MESSAGE(p_app_name	=> g_app_name,
47 					    p_msg_name	=> g_no_parent_record,
48 					    p_token1	=> g_col_name_token,
49 					    p_token1_value=> 'khr_id',
50 					    p_token2	=> g_child_table_token,
51 					    p_token2_value=> G_VIEW,
52 					    p_token3	=> g_parent_table_token,
53 					    p_token3_value=> 'OKL_K_HEADERS_V');
54 	    -- notify caller of an error
55            x_return_status := OKC_API.G_RET_STS_ERROR;
56         End If;
57       end if;
58     exception
59 	when G_EXCEPTION_HALT_VALIDATION then
60 	-- no processing necessary; validation can continue with the next column
61 	  null;
62 
63 	when OTHERS then
64 	-- store SQL error message on message stack for caller
65 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
66 				    p_msg_name => G_UNEXPECTED_ERROR,
67 				    p_token1   => g_sqlcode_token,
68 				    p_token1_value => sqlcode,
69 				    p_token2	 => g_sqlerrm_token,
70 				    p_token2_value => sqlerrm);
71 	-- notify caller of an error
72 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
73   end validate_khr_id;
74 
75 
76 -- Start of comments
77 --
78 -- Procedure Name  : validate_pdt_id
79 -- Description     : validates precense of the pdt_id for the record
80 -- Business Rules  : required field
81 -- Parameters      :
82 -- Version         :
83 -- End of comments
84   procedure validate_pdt_id(x_return_status OUT NOCOPY VARCHAR2,
85 			      p_khrv_rec IN  khrv_rec_type) is
86   l_dummy_var   VARCHAR2(1) := '?';
87   Cursor l_chrv_csr Is
88   		select 'x'
89   		from OKL_PRODUCTS
90   		where ID = p_khrv_rec.pdt_id;
91     begin
92 -- initialize return status
93       x_return_status := OKC_API.G_RET_STS_SUCCESS;
94 
95 -- enforce foreign key, if data exists
96       if (p_khrv_rec.pdt_id <> OKC_API.G_MISS_NUM) AND (p_khrv_rec.pdt_id IS NOT NULL) then
97         Open l_chrv_csr;
98         Fetch l_chrv_csr Into l_dummy_var;
99         Close l_chrv_csr;
100 
101       -- if l_dummy_var still set to default, data was not found
102         If (l_dummy_var = '?') Then
103   	    OKC_API.SET_MESSAGE(p_app_name	=> g_app_name,
104 					    p_msg_name	=> g_no_parent_record,
105 					    p_token1	=> g_col_name_token,
106 					    p_token1_value=> 'pdt_id',
107 					    p_token2	=> g_child_table_token,
108 					    p_token2_value=> G_VIEW,
109 					    p_token3	=> g_parent_table_token,
110 					    p_token3_value=> 'OKL_K_HEADERS_V');
111 	    -- notify caller of an error
112            x_return_status := OKC_API.G_RET_STS_ERROR;
113         End If;
114       end if;
115     exception
116 	when G_EXCEPTION_HALT_VALIDATION then
117 	-- no processing necessary; validation can continue with the next column
118 	  null;
119 
120 	when OTHERS then
121 	-- store SQL error message on message stack for caller
122 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
123 				    p_msg_name => G_UNEXPECTED_ERROR,
124 				    p_token1   => g_sqlcode_token,
125 				    p_token1_value => sqlcode,
126 				    p_token2	 => g_sqlerrm_token,
127 				    p_token2_value => sqlerrm);
128 	-- notify caller of an error
129 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
130   end validate_pdt_id;
131 
132 
133 -- Added by dpsingh
134 ---------------------------------------------------------------------------
135   -- PROCEDURE Validate_LE_Id
136   ---------------------------------------------------------------------------
137   -- Start of comments
138   --
139   -- Procedure Name   : Validate_LE_Id
140   -- Description      :
141   -- Business Rules   :
142   -- Parameters       :
143   -- Version          : 1.0
144   -- End of comments
145   ---------------------------------------------------------------------------
146   PROCEDURE Validate_LE_Id(p_khrv_rec IN  khrv_rec_type
147                             ,x_return_status OUT NOCOPY VARCHAR2)
148   IS
149    l_exists                       NUMBER(1);
150    item_not_found_error    EXCEPTION;
151 
152   BEGIN
153 
154     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
155 
156     IF (p_khrv_rec.legal_entity_id IS NOT NULL) AND
157        (p_khrv_rec.legal_entity_id <> Okl_Api.G_MISS_NUM) THEN
158            l_exists  := OKL_LEGAL_ENTITY_UTIL.check_le_id_exists(p_khrv_rec.legal_entity_id) ;
159            IF (l_exists<>1) THEN
160               Okc_Api.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'LEGAL_ENTITY_ID');
161               RAISE item_not_found_error;
162            END IF;
163       END IF;
164 
165   EXCEPTION
166     WHEN item_not_found_error THEN
167       x_return_status := Okc_Api.G_RET_STS_ERROR;
168 
169     WHEN OTHERS THEN
170       -- store SQL error message on message stack for caller
171       Okc_Api.SET_MESSAGE(p_app_name       => g_app_name
172                           ,p_msg_name      => g_unexpected_error
173                           ,p_token1        => g_sqlcode_token
174                           ,p_token1_value  => SQLCODE
175                           ,p_token2        => g_sqlerrm_token
176                           ,p_token2_value  => SQLERRM);
177 
178        -- notify caller of an UNEXPECTED error
179        x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
180 
181   END Validate_LE_Id;
182 
183   -- Start of comments
184   --
185   -- Procedure Name  : validate_AMD_CODE
186   -- Description     :
187   -- Business Rules  : lookup OKL_ACCEPTANCE_METHOD
188   -- Parameters      :
189   -- Version         : 1.0
190   -- End of comments
191   PROCEDURE validate_AMD_CODE(x_return_status OUT NOCOPY   VARCHAR2,
192                               p_khrv_rec      IN    khrv_rec_type) is
193   Begin
194     -- initialize return status
195     x_return_status := OKC_API.G_RET_STS_SUCCESS;
196 
197     -- enforce foreign key if data exists
198     If (p_khrv_rec.AMD_CODE <> OKC_API.G_MISS_CHAR and
199 	   p_khrv_rec.AMD_CODE IS NOT NULL)
200     Then
201       -- Check if the value is a valid code from lookup table
202       x_return_status := OKC_UTIL.check_lookup_code('OKL_ACCEPTANCE_METHOD',
203 						    p_khrv_rec.AMD_CODE);
204       If (x_return_status = OKC_API.G_RET_STS_ERROR) Then
205 	    --set error message in message stack
206 	    OKC_API.SET_MESSAGE(
207 			p_app_name	=> G_APP_NAME,
208 			p_msg_name	=> G_INVALID_VALUE,
209 			p_token1		=> G_COL_NAME_TOKEN,
210 			p_token1_value => 'ACCEPTANCE_METHOD');
211 	    raise G_EXCEPTION_HALT_VALIDATION;
212       Elsif (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
213 	    raise G_EXCEPTION_HALT_VALIDATION;
214       End If;
215     End If;
216   exception
217     when OTHERS then
218 	  -- store SQL error message on message stack
219   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
220 					  p_msg_name		=> g_unexpected_error,
221 					  p_token1		=> g_sqlcode_token,
222 					  p_token1_value	=> sqlcode,
223 					  p_token2		=> g_sqlerrm_token,
224 					  p_token2_value	=> sqlerrm);
225 	   -- notify caller of an error as UNEXPETED error
226         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
227   End validate_AMD_CODE;
228 
229 
230   -- Start of comments
231   --
232   -- Procedure Name  : validate_GENERATE_ACCRUAL_YN
233   -- Description     :
234   -- Business Rules  : Y/N field
235   -- Parameters      :
236   -- Version         : 1.0
237   -- End of comments
238   PROCEDURE validate_GENERATE_ACCRUAL_YN(x_return_status OUT NOCOPY   VARCHAR2,
239                             	  p_khrv_rec      IN    khrv_rec_type) is
240   Begin
241     -- initialize return status
242     x_return_status := OKC_API.G_RET_STS_SUCCESS;
243     If (p_khrv_rec.GENERATE_ACCRUAL_YN <> OKC_API.G_MISS_CHAR and
244   	   p_khrv_rec.GENERATE_ACCRUAL_YN IS NOT NULL)
245     Then
246       -- check allowed values
247       If (upper(p_khrv_rec.GENERATE_ACCRUAL_YN) NOT IN ('Y','N')) Then
248   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
249 				p_msg_name		=> g_invalid_value,
250 				p_token1		=> g_col_name_token,
251 				p_token1_value	=> 'GENERATE_ACCRUAL_YN');
252 	     -- notify caller of an error
253           x_return_status := OKC_API.G_RET_STS_ERROR;
254       End If;
255     End If;
256   exception
257     when OTHERS then
258 	  -- store SQL error message on message stack
259   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
260 					  p_msg_name		=> g_unexpected_error,
261 					  p_token1		=> g_sqlcode_token,
262 					  p_token1_value	=> sqlcode,
263 					  p_token2		=> g_sqlerrm_token,
264 					  p_token2_value	=> sqlerrm);
265 	   -- notify caller of an error as UNEXPETED error
266         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
267   End validate_GENERATE_ACCRUAL_YN;
268 
269 
270   -- Start of comments
271   --
272   -- Procedure Name  : validate_GENERATE_ACCRUAL_OVERRIDE_YN
273   -- Description     :
274   -- Business Rules  : Y/N field
275   -- Parameters      :
276   -- Version         : 1.0
277   -- End of comments
278   PROCEDURE validate_ACCRUAL_OVERRIDE_YN(x_return_status OUT NOCOPY   VARCHAR2,
279                             	  p_khrv_rec      IN    khrv_rec_type) is
280   Begin
281     -- initialize return status
282     x_return_status := OKC_API.G_RET_STS_SUCCESS;
283     If (p_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN <> OKC_API.G_MISS_CHAR and
284   	   p_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN IS NOT NULL)
285     Then
286       -- check allowed values
287       If (upper(p_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN) NOT IN ('Y','N')) Then
288   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
289 				p_msg_name		=> g_invalid_value,
290 				p_token1		=> g_col_name_token,
291 				p_token1_value	=> 'GENERATE_ACCRUAL_OVERRIDE_YN');
292 	     -- notify caller of an error
293           x_return_status := OKC_API.G_RET_STS_ERROR;
294       End If;
295     End If;
296   exception
297     when OTHERS then
298 	  -- store SQL error message on message stack
299   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
300 					  p_msg_name		=> g_unexpected_error,
301 					  p_token1		=> g_sqlcode_token,
302 					  p_token1_value	=> sqlcode,
303 					  p_token2		=> g_sqlerrm_token,
304 					  p_token2_value	=> sqlerrm);
305 	   -- notify caller of an error as UNEXPETED error
306         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
307   End validate_ACCRUAL_OVERRIDE_YN;
308 
309   -- Start of comments
310   --
311   -- Procedure Name  : validate_CREDIT_ACT_YN
312   -- Description     :
313   -- Business Rules  : Y/N field
314   -- Parameters      :
315   -- Version         : 1.0
316   -- End of comments
317   PROCEDURE validate_CREDIT_ACT_YN(x_return_status OUT NOCOPY   VARCHAR2,
318                             	  p_khrv_rec      IN    khrv_rec_type) is
319   Begin
320     -- initialize return status
321     x_return_status := OKC_API.G_RET_STS_SUCCESS;
322     If (p_khrv_rec.CREDIT_ACT_YN <> OKC_API.G_MISS_CHAR and
323   	   p_khrv_rec.CREDIT_ACT_YN IS NOT NULL)
324     Then
325       -- check allowed values
326       If (upper(p_khrv_rec.CREDIT_ACT_YN) NOT IN ('Y','N')) Then
327   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
328 				p_msg_name		=> g_invalid_value,
329 				p_token1		=> g_col_name_token,
330 				p_token1_value	=> 'CREDIT_ACT_YN');
331 	     -- notify caller of an error
332           x_return_status := OKC_API.G_RET_STS_ERROR;
333       End If;
334     End If;
335   exception
336     when OTHERS then
337 	  -- store SQL error message on message stack
338   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
339 					  p_msg_name		=> g_unexpected_error,
340 					  p_token1		=> g_sqlcode_token,
341 					  p_token1_value	=> sqlcode,
342 					  p_token2		=> g_sqlerrm_token,
343 					  p_token2_value	=> sqlerrm);
344 	   -- notify caller of an error as UNEXPETED error
345         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
346   End validate_CREDIT_ACT_YN;
347 
348   -- Start of comments
349   --
350   -- Procedure Name  : validate_CONVERTED_ACCOUNT_YN
351   -- Description     :
352   -- Business Rules  : Y/N field
353   -- Parameters      :
354   -- Version         : 1.0
355   -- End of comments
356   PROCEDURE validate_CONVERTED_ACCOUNT_YN(x_return_status OUT NOCOPY   VARCHAR2,
357                             	  p_khrv_rec      IN    khrv_rec_type) is
358   Begin
359     -- initialize return status
360     x_return_status := OKC_API.G_RET_STS_SUCCESS;
361     If (p_khrv_rec.CONVERTED_ACCOUNT_YN <> OKC_API.G_MISS_CHAR and
362   	   p_khrv_rec.CONVERTED_ACCOUNT_YN IS NOT NULL)
363     Then
364       -- check allowed values
365       If (upper(p_khrv_rec.CONVERTED_ACCOUNT_YN) NOT IN ('Y','N')) Then
366   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
367 				p_msg_name		=> g_invalid_value,
368 				p_token1		=> g_col_name_token,
369 				p_token1_value	=> 'CONVERTED_ACCOUNT_YN');
370 	     -- notify caller of an error
371           x_return_status := OKC_API.G_RET_STS_ERROR;
372       End If;
373     End If;
374   exception
375     when OTHERS then
376 	  -- store SQL error message on message stack
377   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
378 					  p_msg_name		=> g_unexpected_error,
379 					  p_token1		=> g_sqlcode_token,
380 					  p_token1_value	=> sqlcode,
381 					  p_token2		=> g_sqlerrm_token,
382 					  p_token2_value	=> sqlerrm);
383 	   -- notify caller of an error as UNEXPETED error
384         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
385   End validate_CONVERTED_ACCOUNT_YN;
386 
387   -- Start of comments
388   --
389   -- Procedure Name  : validate_SYNDICATABLE_YN
390   -- Description     :
391   -- Business Rules  : Y/N field
392   -- Parameters      :
393   -- Version         : 1.0
394   -- End of comments
395   PROCEDURE validate_SYNDICATABLE_YN(x_return_status OUT NOCOPY   VARCHAR2,
396                             	  p_khrv_rec      IN    khrv_rec_type) is
397   Begin
398     -- initialize return status
399     x_return_status := OKC_API.G_RET_STS_SUCCESS;
400     If (p_khrv_rec.SYNDICATABLE_YN <> OKC_API.G_MISS_CHAR and
401   	   p_khrv_rec.SYNDICATABLE_YN IS NOT NULL)
402     Then
403       -- check allowed values
404       If (upper(p_khrv_rec.SYNDICATABLE_YN) NOT IN ('Y','N')) Then
405   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
406 				p_msg_name		=> g_invalid_value,
407 				p_token1		=> g_col_name_token,
408 				p_token1_value	=> 'SYNDICATABLE_YN');
409 	     -- notify caller of an error
410           x_return_status := OKC_API.G_RET_STS_ERROR;
411       End If;
412     End If;
413   exception
414     when OTHERS then
415 	  -- store SQL error message on message stack
416   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
417 					  p_msg_name		=> g_unexpected_error,
418 					  p_token1		=> g_sqlcode_token,
419 					  p_token1_value	=> sqlcode,
420 					  p_token2		=> g_sqlerrm_token,
421 					  p_token2_value	=> sqlerrm);
422 	   -- notify caller of an error as UNEXPETED error
423         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
424   End validate_SYNDICATABLE_YN;
425 
426   -- Start of comments
427   --
428   -- Procedure Name  : validate_SALESTYPE_YN
429   -- Description     :
430   -- Business Rules  : Y/N field
431   -- Parameters      :
432   -- Version         : 1.0
433   -- End of comments
434   PROCEDURE validate_SALESTYPE_YN(x_return_status OUT NOCOPY   VARCHAR2,
435                             	  p_khrv_rec      IN    khrv_rec_type) is
436   Begin
437     -- initialize return status
438     x_return_status := OKC_API.G_RET_STS_SUCCESS;
439     If (p_khrv_rec.SALESTYPE_YN <> OKC_API.G_MISS_CHAR and
440   	   p_khrv_rec.SALESTYPE_YN IS NOT NULL)
441     Then
442       -- check allowed values
443       If (upper(p_khrv_rec.SALESTYPE_YN) NOT IN ('Y','N')) Then
444   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
445 				p_msg_name		=> g_invalid_value,
446 				p_token1		=> g_col_name_token,
447 				p_token1_value	=> 'SALESTYPE_YN');
448 	     -- notify caller of an error
449           x_return_status := OKC_API.G_RET_STS_ERROR;
450       End If;
451     End If;
452   exception
453     when OTHERS then
454 	  -- store SQL error message on message stack
455   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
456 					  p_msg_name		=> g_unexpected_error,
457 					  p_token1		=> g_sqlcode_token,
458 					  p_token1_value	=> sqlcode,
459 					  p_token2		=> g_sqlerrm_token,
460 					  p_token2_value	=> sqlerrm);
461 	   -- notify caller of an error as UNEXPETED error
462         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
463   End validate_SALESTYPE_YN;
464 
465   -- Start of comments
466   --
467   -- Procedure Name  : validate_deal_type
468   -- Description     :
469   -- Business Rules  :
470   -- Parameters      :
471   -- Version         : 1.0
472   -- End of comments
473   PROCEDURE validate_DEAL_TYPE(x_return_status OUT NOCOPY   VARCHAR2,
474                                p_khrv_rec      IN    khrv_rec_type) is
475   Begin
476     -- initialize return status
477     x_return_status := OKC_API.G_RET_STS_SUCCESS;
478 
479     -- enforce foreign key if data exists
480     If (p_khrv_rec.deal_type <> OKC_API.G_MISS_CHAR and
481 	   p_khrv_rec.deal_type IS NOT NULL)
482     Then
483       -- Check if the value is a valid code from lookup table
484       x_return_status := OKC_UTIL.check_lookup_code('OKL_BOOK_CLASS', p_khrv_rec.deal_type);
485       If (x_return_status = OKC_API.G_RET_STS_ERROR) Then
486 	    --set error message in message stack
487 	    OKC_API.SET_MESSAGE(
488 			p_app_name	=> G_APP_NAME,
489 			p_msg_name	=> G_INVALID_VALUE,
490 			p_token1	=> G_COL_NAME_TOKEN,
491 			p_token1_value => 'DEAL_TYPE');
492 	    raise G_EXCEPTION_HALT_VALIDATION;
493       Elsif (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
494 	    raise G_EXCEPTION_HALT_VALIDATION;
495       End If;
496     End If;
497   exception
498     when OTHERS then
499 	  -- store SQL error message on message stack
500   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
501 					  p_msg_name		=> g_unexpected_error,
502 					  p_token1		=> g_sqlcode_token,
503 					  p_token1_value	=> sqlcode,
504 					  p_token2		=> g_sqlerrm_token,
505 					  p_token2_value	=> sqlerrm);
506 	   -- notify caller of an error as UNEXPETED error
507         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
508   End validate_DEAL_TYPE;
509 -- Start of comments
510   --
511   -- Procedure Name  : validate_PREFUND_ELIGIBLE_YN
512   -- Description     :
513   -- Business Rules  : Y/N field
514   -- Parameters      :
515   -- Version         : 1.0
516   -- End of comments
517   PROCEDURE validate_PREFUND_ELIGIBLE_YN(x_return_status OUT NOCOPY   VARCHAR2,
518                             	  p_khrv_rec      IN    khrv_rec_type) is
519   Begin
520     -- initialize return status
521     x_return_status := OKC_API.G_RET_STS_SUCCESS;
522     If (p_khrv_rec.PREFUNDING_ELIGIBLE_YN <> OKC_API.G_MISS_CHAR and
523   	   p_khrv_rec.PREFUNDING_ELIGIBLE_YN IS NOT NULL)
524     Then
525       -- check allowed values
526       If (upper(p_khrv_rec.PREFUNDING_ELIGIBLE_YN) NOT IN ('Y','N')) Then
527   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
528 				p_msg_name		=> g_invalid_value,
529 				p_token1		=> g_col_name_token,
530 				p_token1_value	=> 'PREFUNDING_ELIGIBLE_YN');
531 	     -- notify caller of an error
532           x_return_status := OKC_API.G_RET_STS_ERROR;
533       End If;
534     End If;
535   exception
536     when OTHERS then
537 	  -- store SQL error message on message stack
538   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
539 					  p_msg_name		=> g_unexpected_error,
540 					  p_token1		=> g_sqlcode_token,
541 					  p_token1_value	=> sqlcode,
542 					  p_token2		=> g_sqlerrm_token,
543 					  p_token2_value	=> sqlerrm);
544 	   -- notify caller of an error as UNEXPETED error
545         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
546   End validate_PREFUND_ELIGIBLE_YN;
547 
548 -- Start of comments
549   --
550   -- Procedure Name  : validate_REVOLVING_CREDIT_YN
551   -- Description     :
552   -- Business Rules  : Y/N field
553   -- Parameters      :
554   -- Version         : 1.0
555   -- End of comments
556   PROCEDURE validate_REVOLVING_CREDIT_YN(x_return_status OUT NOCOPY   VARCHAR2,
557                             	  p_khrv_rec      IN    khrv_rec_type) is
558   Begin
559     -- initialize return status
560     x_return_status := OKC_API.G_RET_STS_SUCCESS;
561     If (p_khrv_rec.REVOLVING_CREDIT_YN <> OKC_API.G_MISS_CHAR and
562   	   p_khrv_rec.REVOLVING_CREDIT_YN IS NOT NULL)
563     Then
564       -- check allowed values
565       If (upper(p_khrv_rec.REVOLVING_CREDIT_YN) NOT IN ('Y','N')) Then
566   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
567 				p_msg_name		=> g_invalid_value,
568 				p_token1		=> g_col_name_token,
569 				p_token1_value	=> 'REVOLVING_CREDIT_YN');
570 	     -- notify caller of an error
571           x_return_status := OKC_API.G_RET_STS_ERROR;
572       End If;
573     End If;
574   exception
575     when OTHERS then
576 	  -- store SQL error message on message stack
577   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
578 					  p_msg_name		=> g_unexpected_error,
579 					  p_token1		=> g_sqlcode_token,
580 					  p_token1_value	=> sqlcode,
581 					  p_token2		=> g_sqlerrm_token,
582 					  p_token2_value	=> sqlerrm);
583 	   -- notify caller of an error as UNEXPETED error
584         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
585   End validate_REVOLVING_CREDIT_YN;
586 
587 --Bug# 2697681 schema changes  11.5.9
588 -- Start of comments
589   --
590   -- Procedure Name  : validate_CURRENCY_CONV_TYPE
591   -- Description     :
592   -- Business Rules  : Y/N field
593   -- Parameters      :
594   -- Version         : 1.0
595   -- End of comments
596   PROCEDURE validate_CURRENCY_CONV_TYPE(x_return_status OUT NOCOPY   VARCHAR2,
597                             	  p_khrv_rec      IN    khrv_rec_type) is
598 
599   --cursor to chk currency type fk
600   cursor curr_conv_type_csr (p_curr_cotyp in varchar2) is
601   select '!'
602   from   gl_daily_conversion_types
603   where  conversion_type = p_curr_cotyp;
604 
605   l_valid_convert_type varchar2(1) default '?';
606   Begin
607     -- initialize return status
608     x_return_status := OKC_API.G_RET_STS_SUCCESS;
609     If (p_khrv_rec.CURRENCY_CONVERSION_TYPE <> OKC_API.G_MISS_CHAR and
610   	   p_khrv_rec.CURRENCY_CONVERSION_TYPE IS NOT NULL)
611     Then
612       -- check allowed values
613       l_valid_convert_type := '?';
614       open curr_conv_type_csr(p_curr_cotyp => p_khrv_rec.CURRENCY_CONVERSION_TYPE);
615       Fetch  curr_conv_type_csr into l_valid_convert_type;
616       If curr_conv_type_csr%NOTFOUND then
617           Null;
618       End If;
619       Close curr_conv_type_csr;
620 
621       If (l_valid_convert_type = '?')  Then
622   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
623 				p_msg_name		=> g_invalid_value,
624 				p_token1		=> g_col_name_token,
625 				p_token1_value	=> 'CURRENCY_CONVERSION_TYPE');
626 	     -- notify caller of an error
627           x_return_status := OKC_API.G_RET_STS_ERROR;
628       End If;
629     End If;
630   exception
631     when OTHERS then
632 	  -- store SQL error message on message stack
633   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
634 					  p_msg_name		=> g_unexpected_error,
635 					  p_token1		=> g_sqlcode_token,
636 					  p_token1_value	=> sqlcode,
637 					  p_token2		=> g_sqlerrm_token,
638 					  p_token2_value	=> sqlerrm);
639 	   -- notify caller of an error as UNEXPETED error
640         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
641   End validate_CURRENCY_CONV_TYPE;
642 
643   -- Start of comments
644   --
645   -- Procedure Name  : validate_MULTI_GAAP_YN
646   -- Description     :
647   -- Business Rules  : Y/N field
648   -- Parameters      :
649   -- Version         : 1.0
650   -- End of comments
651   PROCEDURE validate_MULTI_GAAP_YN(x_return_status OUT NOCOPY   VARCHAR2,
652                             	  p_khrv_rec      IN    khrv_rec_type) is
653   Begin
654     -- initialize return status
655     x_return_status := OKC_API.G_RET_STS_SUCCESS;
656     If (p_khrv_rec.MULTI_GAAP_YN <> OKC_API.G_MISS_CHAR and
657   	   p_khrv_rec.MULTI_GAAP_YN IS NOT NULL)
658     Then
659       -- check allowed values
660       If (upper(p_khrv_rec.MULTI_GAAP_YN) NOT IN ('Y','N')) Then
661   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
662 				p_msg_name		=> g_invalid_value,
663 				p_token1		=> g_col_name_token,
664 				p_token1_value	=> 'MULTI_GAAP_YN');
665 	     -- notify caller of an error
666           x_return_status := OKC_API.G_RET_STS_ERROR;
667       End If;
668     End If;
669   exception
670     when OTHERS then
671 	  -- store SQL error message on message stack
672   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
673 					  p_msg_name		=> g_unexpected_error,
674 					  p_token1		=> g_sqlcode_token,
675 					  p_token1_value	=> sqlcode,
676 					  p_token2		=> g_sqlerrm_token,
677 					  p_token2_value	=> sqlerrm);
678 	   -- notify caller of an error as UNEXPETED error
679         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
680   End validate_MULTI_GAAP_YN;
681 
682   -- Start of comments
683   --
684   -- Procedure Name  : validate_ASSIGNABLE_YN
685   -- Description     :
686   -- Business Rules  : Y/N field
687   -- Parameters      :
688   -- Version         : 1.0
689   -- End of comments
690   PROCEDURE validate_ASSIGNABLE_YN(x_return_status OUT NOCOPY   VARCHAR2,
691                             	  p_khrv_rec      IN    khrv_rec_type) is
692   Begin
693     -- initialize return status
694     x_return_status := OKC_API.G_RET_STS_SUCCESS;
695     If (p_khrv_rec.ASSIGNABLE_YN <> OKC_API.G_MISS_CHAR and
696   	   p_khrv_rec.ASSIGNABLE_YN IS NOT NULL)
697     Then
698       -- check allowed values
699       If (upper(p_khrv_rec.ASSIGNABLE_YN) NOT IN ('Y','N')) Then
700   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
701 				p_msg_name		=> g_invalid_value,
702 				p_token1		=> g_col_name_token,
703 				p_token1_value	=> 'ASSIGNABLE_YN');
704 	     -- notify caller of an error
705           x_return_status := OKC_API.G_RET_STS_ERROR;
706       End If;
707     End If;
708   exception
709     when OTHERS then
710 	  -- store SQL error message on message stack
711   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
712 					  p_msg_name		=> g_unexpected_error,
713 					  p_token1		=> g_sqlcode_token,
714 					  p_token1_value	=> sqlcode,
715 					  p_token2		=> g_sqlerrm_token,
716 					  p_token2_value	=> sqlerrm);
717 	   -- notify caller of an error as UNEXPETED error
718         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
719   End validate_ASSIGNABLE_YN;
720 
721 -- Start of comments
722 --
723 -- Procedure Name  : validate_crs_id
724 -- Description     : validates presence of the crs_id for the record
725 -- Business Rules  : required field
726 -- Parameters      :
727 -- Version         :
728 -- End of comments
729   procedure validate_crs_id(x_return_status OUT NOCOPY VARCHAR2,
730 			      p_khrv_rec IN  khrv_rec_type) is
731   l_dummy_var   VARCHAR2(1) := '?';
732   Cursor l_chrv_csr Is
733   		select 'x'
734   		from OKL_VP_CHANGE_REQUESTS
735   		where ID = p_khrv_rec.crs_id;
736     begin
737 -- initialize return status
738       x_return_status := OKC_API.G_RET_STS_SUCCESS;
739 
740 -- enforce foreign key, if data exists
741       if (p_khrv_rec.crs_id <> OKC_API.G_MISS_NUM) AND (p_khrv_rec.crs_id IS NOT NULL) then
742         Open l_chrv_csr;
743         Fetch l_chrv_csr Into l_dummy_var;
744         Close l_chrv_csr;
745 
746       -- if l_dummy_var still set to default, data was not found
747         If (l_dummy_var = '?') Then
748   	    OKC_API.SET_MESSAGE(p_app_name	=> g_app_name,
749 			        p_msg_name	=> g_no_parent_record,
750 				p_token1	=> g_col_name_token,
751 				p_token1_value  => 'crs_id',
752 				p_token2	=> g_child_table_token,
753 				p_token2_value  => G_VIEW,
754 				p_token3	=> g_parent_table_token,
755 				p_token3_value  => 'OKL_K_HEADERS_V');
756 	    -- notify caller of an error
757            x_return_status := OKC_API.G_RET_STS_ERROR;
758         End If;
759       end if;
760     exception
761 	when G_EXCEPTION_HALT_VALIDATION then
762 	-- no processing necessary; validation can continue with the next column
763 	  null;
764 
765 	when OTHERS then
766 	-- store SQL error message on message stack for caller
767 	  OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
768 			      p_msg_name     => G_UNEXPECTED_ERROR,
769 			      p_token1       => g_sqlcode_token,
770 			      p_token1_value => sqlcode,
771 			      p_token2	     => g_sqlerrm_token,
772 			      p_token2_value => sqlerrm);
773 	-- notify caller of an error
774 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
775   end validate_crs_id;
776 
777 
778   -- Start of comments
779   --
780   -- Procedure Name  : validate_template_type_code
781   -- Description     :
782   -- Business Rules  :
783   -- Parameters      :
784   -- Version         : 1.0
785   -- End of comments
786   PROCEDURE validate_TEMPLATE_TYPE_CODE(x_return_status OUT NOCOPY   VARCHAR2,
787                                         p_khrv_rec      IN    khrv_rec_type) is
788   Begin
789     -- initialize return status
790     x_return_status := OKC_API.G_RET_STS_SUCCESS;
791 
792     -- enforce foreign key if data exists
793     If (p_khrv_rec.template_type_code <> OKC_API.G_MISS_CHAR and
794 	   p_khrv_rec.template_type_code IS NOT NULL)
795     Then
796       -- Check if the value is a valid code from lookup table
797       x_return_status := OKC_UTIL.check_lookup_code('OKL_TEMPLATE_TYPE', p_khrv_rec.template_type_code);
798       If (x_return_status = OKC_API.G_RET_STS_ERROR) Then
799 	    --set error message in message stack
800 	    OKC_API.SET_MESSAGE(
801 			p_app_name	=> G_APP_NAME,
802 			p_msg_name	=> G_INVALID_VALUE,
803 			p_token1	=> G_COL_NAME_TOKEN,
804 			p_token1_value  => 'TEMPLATE_TYPE_CODE');
805 	    raise G_EXCEPTION_HALT_VALIDATION;
806       Elsif (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
807 	    raise G_EXCEPTION_HALT_VALIDATION;
808       End If;
809     End If;
810   exception
811     when OTHERS then
812 	  -- store SQL error message on message stack
813   	  OKC_API.SET_MESSAGE(p_app_name      => g_app_name,
814 			      p_msg_name      => g_unexpected_error,
815 			      p_token1	      => g_sqlcode_token,
816 			      p_token1_value  => sqlcode,
817 			      p_token2	      => g_sqlerrm_token,
818 			      p_token2_value  => sqlerrm);
819 	   -- notify caller of an error as UNEXPETED error
820         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
821   End validate_TEMPLATE_TYPE_CODE;
822 
823   --Bug# 4558486: start
824   -- Start of comments
825   --
826   -- Procedure Name  : validate_DFF_attributes
827   -- Description     :
828   -- Business Rules  : DFF validation
829   -- Parameters      :
830   -- Version         : 1.0
831   -- End of comments
832   PROCEDURE validate_DFF_attributes
833               (x_return_status OUT NOCOPY   VARCHAR2,
834                p_khrv_rec      IN    khrv_rec_type) is
835 
836     l_segment_values_rec   Okl_DFlex_Util_Pvt.DFF_Rec_type;
837     l_msg_count            NUMBER;
838     l_msg_data             VARCHAR2(2000);
839     l_appl_short_name      VARCHAR2(30) := 'OKL';
840     l_desc_flex_name       VARCHAR2(30) := 'OKL_K_HEADERS_DF';
841     l_segment_partial_name VARCHAR2(30) := 'ATTRIBUTE';
842   Begin
843     -- initialize return status
844     x_return_status := OKL_API.G_RET_STS_SUCCESS;
845 
846     l_segment_values_rec.attribute_category := p_khrv_rec.attribute_category;
847     l_segment_values_rec.attribute1 := p_khrv_rec.attribute1;
848     l_segment_values_rec.attribute2 := p_khrv_rec.attribute2;
849     l_segment_values_rec.attribute3 := p_khrv_rec.attribute3;
850     l_segment_values_rec.attribute4 := p_khrv_rec.attribute4;
851     l_segment_values_rec.attribute5 := p_khrv_rec.attribute5;
852     l_segment_values_rec.attribute6 := p_khrv_rec.attribute6;
853     l_segment_values_rec.attribute7 := p_khrv_rec.attribute7;
854     l_segment_values_rec.attribute8 := p_khrv_rec.attribute8;
855     l_segment_values_rec.attribute9 := p_khrv_rec.attribute9;
856     l_segment_values_rec.attribute10 := p_khrv_rec.attribute10;
857     l_segment_values_rec.attribute11 := p_khrv_rec.attribute11;
858     l_segment_values_rec.attribute12 := p_khrv_rec.attribute12;
859     l_segment_values_rec.attribute13 := p_khrv_rec.attribute13;
860     l_segment_values_rec.attribute14 := p_khrv_rec.attribute14;
861     l_segment_values_rec.attribute15 := p_khrv_rec.attribute15;
862 
863     okl_dflex_util_pvt.validate_desc_flex
864       (p_api_version          => 1.0
865       ,p_init_msg_list        => OKL_API.G_FALSE
866       ,x_return_status        => x_return_status
867       ,x_msg_count            => l_msg_count
868       ,x_msg_data             => l_msg_data
869       ,p_appl_short_name      => l_appl_short_name
870       ,p_descflex_name        => l_desc_flex_name
871       ,p_segment_partial_name => l_segment_partial_name
872       ,p_segment_values_rec   => l_segment_values_rec);
873 
874      -- check return status
875     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
876       RAISE G_EXCEPTION_HALT_VALIDATION;
877     END IF;
878 
879   exception
880     when G_EXCEPTION_HALT_VALIDATION THEN
881         x_return_status := OKL_API.G_RET_STS_ERROR;
882 
883     when OTHERS then
884        -- store SQL error message on message stack
885        OKL_API.SET_MESSAGE(p_app_name     => g_app_name,
886                            p_msg_name     => g_unexpected_error,
887                            p_token1	      => g_sqlcode_token,
888                            p_token1_value	=> sqlcode,
889                            p_token2	      => g_sqlerrm_token,
890                            p_token2_value	=> sqlerrm);
891 	   -- notify caller of an error as UNEXPETED error
892         x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
893   End validate_DFF_attributes;
894   --Bug# 4558486: end
895 
896 -- ********************* END OF HAND CODED VALIDATION ********************************
897 
898 -- Start of comments
899 --
900 -- Procedure Name  : validate_ID
901 -- Description     : validates precense of the ID for the record
902 -- Business Rules  : required field
903 -- Parameters      :
904 -- Version         :
905 -- End of comments
906   procedure validate_ID(x_return_status OUT NOCOPY VARCHAR2,
907 			      p_khrv_rec                     IN khrv_rec_type
908     ) is
909     begin
910 -- initialize return status
911       x_return_status := OKC_API.G_RET_STS_SUCCESS;
912 
913 -- data is required
914       if (p_khrv_rec.ID = OKC_API.G_MISS_NUM) OR (p_khrv_rec.ID IS NULL) then
915 	  OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'ID');
916 
917 	-- notify caller of an error
918 	  x_return_status := OKC_API.G_RET_STS_ERROR;
919 
920 	-- halt further validation of this column
921 	  raise G_EXCEPTION_HALT_VALIDATION;
922 	end if;
923     exception
924 	when G_EXCEPTION_HALT_VALIDATION then
925 	-- no processing necessary; validation can continue with the next column
926 	  null;
927 
928 	when OTHERS then
929 	-- store SQL error message on message stack for caller
930 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
931 				    p_msg_name => G_UNEXPECTED_ERROR,
932 				    p_token1   => g_sqlcode_token,
933 				    p_token1_value => sqlcode,
934 				    p_token2	 => g_sqlerrm_token,
935 				    p_token2_value => sqlerrm);
936 	-- notify caller of an error
937 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
938   end validate_ID;
939 
940 -- Start of comments
941 --
942 -- Procedure Name  : validate_OBJECT_VERSION_NUMBER
943 -- Description     : validates precense of the OBJECT_VERSION_NUMBER for the record
944 -- Business Rules  : required field
945 -- Parameters      :
946 -- Version         :
947 -- End of comments
948   procedure validate_OBJECT_VERSION_NUMBER(x_return_status OUT NOCOPY VARCHAR2,
949 			      p_khrv_rec                     IN khrv_rec_type
950     ) is
951     begin
952 -- initialize return status
953       x_return_status := OKC_API.G_RET_STS_SUCCESS;
954 
955 -- data is required
956       if (p_khrv_rec.OBJECT_VERSION_NUMBER = OKC_API.G_MISS_NUM) OR (p_khrv_rec.OBJECT_VERSION_NUMBER IS NULL) then
957 	  OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'OBJECT_VERSION_NUMBER');
958 
959 	-- notify caller of an error
960 	  x_return_status := OKC_API.G_RET_STS_ERROR;
961 
962 	-- halt further validation of this column
963 	  raise G_EXCEPTION_HALT_VALIDATION;
964 	end if;
965     exception
966 	when G_EXCEPTION_HALT_VALIDATION then
967 	-- no processing necessary; validation can continue with the next column
968 	  null;
969 
970 	when OTHERS then
971 	-- store SQL error message on message stack for caller
972 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
973 				    p_msg_name => G_UNEXPECTED_ERROR,
974 				    p_token1   => g_sqlcode_token,
975 				    p_token1_value => sqlcode,
976 				    p_token2	 => g_sqlerrm_token,
977 				    p_token2_value => sqlerrm);
978 	-- notify caller of an error
979 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
980   end validate_OBJECT_VERSION_NUMBER;
981 
982   ---------------------------------------------
983   -- Validate_Attributes for: OKL_K_HEADERS_V --
984   ---------------------------------------------
985   FUNCTION Validate_Attributes (
986     p_khrv_rec                     IN khrv_rec_type
987   ) RETURN VARCHAR2 IS
988     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
989     x_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
990   BEGIN
991 
992 
993     -- call each column-level validation
994     -- do not validate id because it will be set up automatically
995 
996 /*
997     validate_ID(x_return_status => l_return_status,
998 		    p_khrv_rec	  => p_khrv_rec);
999 
1000     -- store the highest degree of error
1001     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1002 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1003 	  x_return_status := l_return_status;
1004 	end if;
1005     end if;
1006 */
1007     validate_OBJECT_VERSION_NUMBER(x_return_status => l_return_status,
1008 		    p_khrv_rec	  => p_khrv_rec);
1009 
1010     -- store the highest degree of error
1011     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1012 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1013 	  x_return_status := l_return_status;
1014 	end if;
1015     end if;
1016 
1017     validate_KHR_ID(x_return_status => l_return_status,
1018 		    p_khrv_rec	  => p_khrv_rec);
1019 
1020     -- store the highest degree of error
1021     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1022 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1023 	  x_return_status := l_return_status;
1024 	end if;
1025     end if;
1026 
1027     validate_PDT_ID(x_return_status => l_return_status,
1028 		    p_khrv_rec	  => p_khrv_rec);
1029 
1030     -- store the highest degree of error
1031     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1032 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1033 	  x_return_status := l_return_status;
1034 	end if;
1035     end if;
1036 
1037     validate_AMD_CODE(x_return_status => l_return_status,
1038 		    p_khrv_rec	  => p_khrv_rec);
1039 
1040     -- store the highest degree of error
1041     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1042 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1043 	  x_return_status := l_return_status;
1044 	end if;
1045     end if;
1046 
1047     validate_GENERATE_ACCRUAL_YN(x_return_status => l_return_status,
1048 		    p_khrv_rec	  => p_khrv_rec);
1049 
1050     -- store the highest degree of error
1051     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1052 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1053 	  x_return_status := l_return_status;
1054 	end if;
1055     end if;
1056 
1057     validate_ACCRUAL_OVERRIDE_YN(x_return_status => l_return_status,
1058 		    p_khrv_rec	  => p_khrv_rec);
1059 
1060     -- store the highest degree of error
1061     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1062 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1063 	  x_return_status := l_return_status;
1064 	end if;
1065     end if;
1066 
1067     validate_CREDIT_ACT_YN(x_return_status => l_return_status,
1068 		    p_khrv_rec	  => p_khrv_rec);
1069 
1070     -- store the highest degree of error
1071     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1072 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1073 	  x_return_status := l_return_status;
1074 	end if;
1075     end if;
1076 
1077     validate_CONVERTED_ACCOUNT_YN(x_return_status => l_return_status,
1078 		    p_khrv_rec	  => p_khrv_rec);
1079 
1080     -- store the highest degree of error
1081     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1082 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1083 	  x_return_status := l_return_status;
1084 	end if;
1085     end if;
1086 
1087     validate_SYNDICATABLE_YN(x_return_status => l_return_status,
1088 		    p_khrv_rec	  => p_khrv_rec);
1089 
1090     -- store the highest degree of error
1091     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1092 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1093 	  x_return_status := l_return_status;
1094 	end if;
1095     end if;
1096 
1097     validate_SALESTYPE_YN(x_return_status => l_return_status,
1098 		    p_khrv_rec	  => p_khrv_rec);
1099 
1100     -- store the highest degree of error
1101     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1102 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1103 	  x_return_status := l_return_status;
1104 	end if;
1105     end if;
1106 
1107 
1108     validate_DEAL_TYPE(x_return_status => l_return_status,
1109 		    p_khrv_rec	  => p_khrv_rec);
1110 
1111     -- store the highest degree of error
1112     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1113 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1114 	  x_return_status := l_return_status;
1115 	end if;
1116     end if;
1117 
1118     validate_PREFUND_ELIGIBLE_YN(x_return_status => l_return_status,
1119 		    p_khrv_rec	  => p_khrv_rec);
1120 
1121     -- store the highest degree of error
1122     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1123 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1124 	  x_return_status := l_return_status;
1125 	end if;
1126     end if;
1127 
1128    validate_revolving_credit_YN(x_return_status => l_return_status,
1129 		    p_khrv_rec	  => p_khrv_rec);
1130 
1131     -- store the highest degree of error
1132     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1133 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1134 	  x_return_status := l_return_status;
1135 	end if;
1136     end if;
1137 
1138     --Bug# 4558486
1139     -- ***
1140     -- DFF Attributes
1141     -- ***
1142     if ( NVL(p_khrv_rec.validate_dff_yn,OKL_API.G_MISS_CHAR) = 'Y') then
1143       validate_DFF_attributes
1144         (x_return_status => l_return_status,
1145          p_khrv_rec      => p_khrv_rec);
1146 
1147       -- store the highest degree of error
1148       if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1149 	  if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1150 	    x_return_status := l_return_status;
1151 	  end if;
1152       end if;
1153     end if;
1154 
1155 --Added by dpsingh
1156 
1157 -- Validate_LE_Id
1158     Validate_LE_Id(p_khrv_rec  => p_khrv_rec,
1159                            x_return_status  => l_return_status);
1160     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1161 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
1162 	  x_return_status := l_return_status;
1163 	end if;
1164     end if;
1165 
1166     -- return status to caller
1167     return x_return_status;
1168     exception
1169 	when OTHERS then
1170 	-- store SQL error message on message stack for caller
1171 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1172 				    p_msg_name => G_UNEXPECTED_ERROR,
1173 				    p_token1   => g_sqlcode_token,
1174 				    p_token1_value => sqlcode,
1175 				    p_token2	 => g_sqlerrm_token,
1176 				    p_token2_value => sqlerrm);
1177 	-- notify caller of an error
1178 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1179 	-- return status to caller
1180 	  return x_return_status;
1181   END Validate_Attributes;
1182 
1183 -- --------------------------------------------------------------------------
1184 --  End of column level validations
1185 -- --------------------------------------------------------------------------
1186 
1187   ---------------------------------------------------------------------------
1188   -- FUNCTION get_seq_id
1189   ---------------------------------------------------------------------------
1190   FUNCTION get_seq_id RETURN NUMBER IS
1191   BEGIN
1192     RETURN(okc_p_util.raw_to_number(sys_guid()));
1193   END get_seq_id;
1194 
1195   ---------------------------------------------------------------------------
1196   -- PROCEDURE qc
1197   ---------------------------------------------------------------------------
1198   PROCEDURE qc IS
1199   BEGIN
1200     null;
1201   END qc;
1202 
1203   ---------------------------------------------------------------------------
1204   -- PROCEDURE change_version
1205   ---------------------------------------------------------------------------
1206   PROCEDURE change_version IS
1207   BEGIN
1208     null;
1209   END change_version;
1210 
1211   ---------------------------------------------------------------------------
1212   -- PROCEDURE api_copy
1213   ---------------------------------------------------------------------------
1214   PROCEDURE api_copy IS
1215   BEGIN
1216     null;
1217   END api_copy;
1218 
1219 
1220   ---------------------------------------------------------------------------
1221   -- FUNCTION get_rec for: OKL_K_HEADERS
1222   ---------------------------------------------------------------------------
1223   FUNCTION get_rec (
1224     p_khr_rec                     IN khr_rec_type,
1225     x_no_data_found                OUT NOCOPY BOOLEAN
1226   ) RETURN khr_rec_type IS
1227     CURSOR okl_k_headers_pk_csr (p_id                 IN NUMBER) IS
1228       SELECT
1229 	ID,
1230         ISG_ID,
1231         KHR_ID,
1232         PDT_ID,
1233         OBJECT_VERSION_NUMBER,
1234         DATE_FIRST_ACTIVITY,
1235         SYNDICATABLE_YN,
1236         SALESTYPE_YN,
1237         DATE_REFINANCED,
1238         DATE_CONVERSION_EFFECTIVE,
1239         DATE_DEAL_TRANSFERRED,
1240         TERM_DURATION,
1241         DATETIME_PROPOSAL_EFFECTIVE,
1242         DATETIME_PROPOSAL_INEFFECTIVE,
1243         DATE_PROPOSAL_ACCEPTED,
1244         ATTRIBUTE_CATEGORY,
1245         ATTRIBUTE1,
1246         ATTRIBUTE2,
1247         ATTRIBUTE3,
1248         ATTRIBUTE4,
1249         ATTRIBUTE5,
1250         ATTRIBUTE6,
1251         ATTRIBUTE7,
1252         ATTRIBUTE8,
1253         ATTRIBUTE9,
1254         ATTRIBUTE10,
1255         ATTRIBUTE11,
1256         ATTRIBUTE12,
1257         ATTRIBUTE13,
1258         ATTRIBUTE14,
1259         ATTRIBUTE15,
1260         CREATED_BY,
1261         CREATION_DATE,
1262         LAST_UPDATED_BY,
1263         LAST_UPDATE_DATE,
1264         LAST_UPDATE_LOGIN,
1265         AMD_CODE,
1266         GENERATE_ACCRUAL_YN,
1267         GENERATE_ACCRUAL_OVERRIDE_YN,
1268         CREDIT_ACT_YN,
1269         CONVERTED_ACCOUNT_YN,
1270         PRE_TAX_YIELD,
1271         AFTER_TAX_YIELD,
1272         IMPLICIT_INTEREST_RATE,
1273         IMPLICIT_NON_IDC_INTEREST_RATE,
1274         TARGET_PRE_TAX_YIELD,
1275         TARGET_AFTER_TAX_YIELD,
1276         TARGET_IMPLICIT_INTEREST_RATE,
1277         TARGET_IMPLICIT_NONIDC_INTRATE,
1278         DATE_LAST_INTERIM_INTEREST_CAL,
1279         DEAL_TYPE,
1280         PRE_TAX_IRR,
1281         AFTER_TAX_IRR,
1282         EXPECTED_DELIVERY_DATE,
1283         ACCEPTED_DATE,
1284         PREFUNDING_ELIGIBLE_YN,
1285         REVOLVING_CREDIT_YN,
1286 --Bug# 2697681 schema changes  11.5.9
1287         CURRENCY_CONVERSION_TYPE,
1288         CURRENCY_CONVERSION_RATE,
1289         CURRENCY_CONVERSION_DATE,
1290         MULTI_GAAP_YN,
1291         RECOURSE_CODE,
1292         LESSOR_SERV_ORG_CODE,
1293         ASSIGNABLE_YN,
1294         SECURITIZED_CODE,
1295         SECURITIZATION_TYPE,
1296 --Bug#3143522 : 11.5.10
1297    --subsidy
1298    SUB_PRE_TAX_YIELD,
1299    SUB_AFTER_TAX_YIELD,
1300    SUB_IMPL_INTEREST_RATE,
1301    SUB_IMPL_NON_IDC_INT_RATE,
1302    SUB_PRE_TAX_IRR,
1303    SUB_AFTER_TAX_IRR,
1304    --Bug# 3973640 : 11.5.10+
1305    TOT_CL_TRANSFER_AMT,
1306    TOT_CL_NET_TRANSFER_AMT,
1307    TOT_CL_LIMIT,
1308    TOT_CL_FUNDING_AMT,
1309    CRS_ID,
1310    TEMPLATE_TYPE_CODE,
1311 --Bug# 4419339 OKLH Schema Sales Quote
1312    DATE_FUNDING_EXPECTED ,
1313    DATE_TRADEIN,
1314    TRADEIN_AMOUNT,
1315    TRADEIN_DESCRIPTION,
1316    --Added by dpsingh for LE uptake
1317    LEGAL_ENTITY_ID
1318  FROM OKL_K_HEADERS
1319       WHERE OKL_K_HEADERS.id     = p_id;
1320 
1321       l_khr_rec                      khr_rec_type;
1322   BEGIN
1323 
1324     x_no_data_found := TRUE;
1325     -- Get current database values
1326     OPEN okl_k_headers_pk_csr (p_khr_rec.id);
1327     FETCH okl_k_headers_pk_csr INTO
1328        l_khr_rec.ID,
1329         l_khr_rec.ISG_ID,
1330         l_khr_rec.KHR_ID,
1331         l_khr_rec.PDT_ID,
1332         l_khr_rec.OBJECT_VERSION_NUMBER,
1333         l_khr_rec.DATE_FIRST_ACTIVITY,
1334         l_khr_rec.SYNDICATABLE_YN,
1335         l_khr_rec.SALESTYPE_YN,
1336         l_khr_rec.DATE_REFINANCED,
1337         l_khr_rec.DATE_CONVERSION_EFFECTIVE,
1338         l_khr_rec.DATE_DEAL_TRANSFERRED,
1339         l_khr_rec.TERM_DURATION,
1340         l_khr_rec.DATETIME_PROPOSAL_EFFECTIVE,
1341         l_khr_rec.DATETIME_PROPOSAL_INEFFECTIVE,
1342         l_khr_rec.DATE_PROPOSAL_ACCEPTED,
1343         l_khr_rec.ATTRIBUTE_CATEGORY,
1344         l_khr_rec.ATTRIBUTE1,
1345         l_khr_rec.ATTRIBUTE2,
1346         l_khr_rec.ATTRIBUTE3,
1347         l_khr_rec.ATTRIBUTE4,
1348         l_khr_rec.ATTRIBUTE5,
1349         l_khr_rec.ATTRIBUTE6,
1350         l_khr_rec.ATTRIBUTE7,
1351         l_khr_rec.ATTRIBUTE8,
1352         l_khr_rec.ATTRIBUTE9,
1353         l_khr_rec.ATTRIBUTE10,
1354         l_khr_rec.ATTRIBUTE11,
1355         l_khr_rec.ATTRIBUTE12,
1356         l_khr_rec.ATTRIBUTE13,
1357         l_khr_rec.ATTRIBUTE14,
1358         l_khr_rec.ATTRIBUTE15,
1359         l_khr_rec.CREATED_BY,
1360         l_khr_rec.CREATION_DATE,
1361         l_khr_rec.LAST_UPDATED_BY,
1362         l_khr_rec.LAST_UPDATE_DATE,
1363         l_khr_rec.LAST_UPDATE_LOGIN,
1364         l_khr_rec.AMD_CODE,
1365         l_khr_rec.GENERATE_ACCRUAL_YN,
1366         l_khr_rec.GENERATE_ACCRUAL_OVERRIDE_YN,
1367         l_khr_rec.CREDIT_ACT_YN,
1368         l_khr_rec.CONVERTED_ACCOUNT_YN,
1369         l_khr_rec.PRE_TAX_YIELD,
1370         l_khr_rec.AFTER_TAX_YIELD,
1371         l_khr_rec.IMPLICIT_INTEREST_RATE,
1372         l_khr_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
1373         l_khr_rec.TARGET_PRE_TAX_YIELD,
1374         l_khr_rec.TARGET_AFTER_TAX_YIELD,
1375         l_khr_rec.TARGET_IMPLICIT_INTEREST_RATE,
1376         l_khr_rec.TARGET_IMPLICIT_NONIDC_INTRATE,
1377         l_khr_rec.DATE_LAST_INTERIM_INTEREST_CAL,
1378         l_khr_rec.DEAL_TYPE,
1379         l_khr_rec.PRE_TAX_IRR,
1380         l_khr_rec.AFTER_TAX_IRR,
1381         l_khr_rec.EXPECTED_DELIVERY_DATE,
1382         l_khr_rec.ACCEPTED_DATE,
1383         l_khr_rec.PREFUNDING_ELIGIBLE_YN,
1384         l_khr_rec.REVOLVING_CREDIT_YN,
1385 --Bug# 2697681 schema changes  11.5.9
1386         l_khr_rec.CURRENCY_CONVERSION_TYPE,
1387         l_khr_rec.CURRENCY_CONVERSION_RATE,
1388         l_khr_rec.CURRENCY_CONVERSION_DATE,
1389         l_khr_rec.MULTI_GAAP_YN,
1390         l_khr_rec.RECOURSE_CODE,
1391         l_khr_rec.LESSOR_SERV_ORG_CODE,
1392         l_khr_rec.ASSIGNABLE_YN,
1393         l_khr_rec.SECURITIZED_CODE,
1394         l_khr_rec.SECURITIZATION_TYPE,
1395 --Bug#3143522 : 11.5.10
1396    --subsidy
1397    l_khr_rec.SUB_PRE_TAX_YIELD,
1398    l_khr_rec.SUB_AFTER_TAX_YIELD,
1399    l_khr_rec.SUB_IMPL_INTEREST_RATE,
1400    l_khr_rec.SUB_IMPL_NON_IDC_INT_RATE,
1401    l_khr_rec.SUB_PRE_TAX_IRR,
1402    l_khr_rec.SUB_AFTER_TAX_IRR,
1403    --Bug# 3973640 : 11.5.10+
1404    l_khr_rec.TOT_CL_TRANSFER_AMT,
1405    l_khr_rec.TOT_CL_NET_TRANSFER_AMT,
1406    l_khr_rec.TOT_CL_LIMIT,
1407    l_khr_rec.TOT_CL_FUNDING_AMT,
1408    l_khr_rec.CRS_ID,
1409    l_khr_rec.TEMPLATE_TYPE_CODE,
1410 --Bug# 4419339 OKLH Schema Sales Quote
1411    l_khr_rec.DATE_FUNDING_EXPECTED ,
1412    l_khr_rec.DATE_TRADEIN,
1413    l_khr_rec.TRADEIN_AMOUNT,
1414    l_khr_rec.TRADEIN_DESCRIPTION,
1415    --Added by dpsingh for LE uptake
1416     l_khr_rec.LEGAL_ENTITY_ID     ;
1417     x_no_data_found := okl_k_headers_pk_csr%NOTFOUND;
1418     CLOSE okl_k_headers_pk_csr;
1419     RETURN(l_khr_rec);
1420   END get_rec;
1421 
1422   FUNCTION get_rec (
1423     p_khr_rec                     IN khr_rec_type
1424   ) RETURN khr_rec_type IS
1425     l_row_notfound                 BOOLEAN := TRUE;
1426   BEGIN
1427     RETURN(get_rec(p_khr_rec, l_row_notfound));
1428   END get_rec;
1429 
1430 
1431   ---------------------------------------------------------------------------
1432   -- FUNCTION get_rec for: OKL_K_HEADERS_H
1433   ---------------------------------------------------------------------------
1434   FUNCTION get_rec (
1435     p_okl_k_headers_h_rec                     IN okl_k_headers_h_rec_type,
1436     x_no_data_found                OUT NOCOPY BOOLEAN
1437   ) RETURN okl_k_headers_h_rec_type IS
1438     CURSOR okl_k_headers_h_pk_csr (p_id                 IN NUMBER) IS
1439       SELECT
1440 	ID,
1441         MAJOR_VERSION,
1442         ISG_ID,
1443         KHR_ID,
1444         PDT_ID,
1445         OBJECT_VERSION_NUMBER,
1446         DATE_FIRST_ACTIVITY,
1447         SYNDICATABLE_YN,
1448         SALESTYPE_YN,
1449         DATE_REFINANCED,
1450         DATE_CONVERSION_EFFECTIVE,
1451         DATE_DEAL_TRANSFERRED,
1452         TERM_DURATION,
1453         DATETIME_PROPOSAL_EFFECTIVE,
1454         DATETIME_PROPOSAL_INEFFECTIVE,
1455         DATE_PROPOSAL_ACCEPTED,
1456         ATTRIBUTE_CATEGORY,
1457         ATTRIBUTE1,
1458         ATTRIBUTE2,
1459         ATTRIBUTE3,
1460         ATTRIBUTE4,
1461         ATTRIBUTE5,
1462         ATTRIBUTE6,
1463         ATTRIBUTE7,
1464         ATTRIBUTE8,
1465         ATTRIBUTE9,
1466         ATTRIBUTE10,
1467         ATTRIBUTE11,
1468         ATTRIBUTE12,
1469         ATTRIBUTE13,
1470         ATTRIBUTE14,
1471         ATTRIBUTE15,
1472         CREATED_BY,
1473         CREATION_DATE,
1474         LAST_UPDATED_BY,
1475         LAST_UPDATE_DATE,
1476         LAST_UPDATE_LOGIN,
1477         AMD_CODE,
1478         GENERATE_ACCRUAL_YN,
1479         GENERATE_ACCRUAL_OVERRIDE_YN,
1480         CREDIT_ACT_YN,
1481         CONVERTED_ACCOUNT_YN,
1482         PRE_TAX_YIELD,
1483         AFTER_TAX_YIELD,
1484         IMPLICIT_INTEREST_RATE,
1485         IMPLICIT_NON_IDC_INTEREST_RATE,
1486         TARGET_PRE_TAX_YIELD,
1487         TARGET_AFTER_TAX_YIELD,
1488         TARGET_IMPLICIT_INTEREST_RATE,
1489         TARGET_IMPLICIT_NONIDC_INTRATE,
1490         DATE_LAST_INTERIM_INTEREST_CAL,
1491         DEAL_TYPE,
1492         PRE_TAX_IRR,
1493         AFTER_TAX_IRR,
1494         EXPECTED_DELIVERY_DATE,
1495         ACCEPTED_DATE,
1496         PREFUNDING_ELIGIBLE_YN,
1497         REVOLVING_CREDIT_YN,
1498 --Bug# 2697681 schema changes  11.5.9
1499         CURRENCY_CONVERSION_TYPE,
1500         CURRENCY_CONVERSION_RATE,
1501         CURRENCY_CONVERSION_DATE,
1502         MULTI_GAAP_YN,
1503         RECOURSE_CODE,
1504         LESSOR_SERV_ORG_CODE,
1505         ASSIGNABLE_YN,
1506         SECURITIZED_CODE,
1507         SECURITIZATION_TYPE,
1508 --Bug#3143522 : 11.5.10
1509    --subsidy
1510    SUB_PRE_TAX_YIELD,
1511    SUB_AFTER_TAX_YIELD,
1512    SUB_IMPL_INTEREST_RATE,
1513    SUB_IMPL_NON_IDC_INT_RATE,
1514    SUB_PRE_TAX_IRR,
1515    SUB_AFTER_TAX_IRR,
1516    --Bug# 3973640 : 11.5.10+
1517    TOT_CL_TRANSFER_AMT,
1518    TOT_CL_NET_TRANSFER_AMT,
1519    TOT_CL_LIMIT,
1520    TOT_CL_FUNDING_AMT,
1521    CRS_ID,
1522    TEMPLATE_TYPE_CODE,
1523 --Bug# 4419339 OKLH Schema Sales Quote
1524    DATE_FUNDING_EXPECTED ,
1525    DATE_TRADEIN,
1526    TRADEIN_AMOUNT,
1527    TRADEIN_DESCRIPTION,
1528 --Added by dpsingh for LE uptake
1529    LEGAL_ENTITY_ID
1530       FROM OKL_K_HEADERS_H
1531       WHERE OKL_K_HEADERS_H.id     = p_id;
1532        l_okl_k_headers_h_rec                      okl_k_headers_h_rec_type;
1533   BEGIN
1534 
1535     x_no_data_found := TRUE;
1536     -- Get current database values
1537     OPEN okl_k_headers_h_pk_csr (p_okl_k_headers_h_rec.id);
1538     FETCH okl_k_headers_h_pk_csr INTO
1539        l_okl_k_headers_h_rec.ID,
1540         l_okl_k_headers_h_rec.MAJOR_VERSION,
1541         l_okl_k_headers_h_rec.ISG_ID,
1542         l_okl_k_headers_h_rec.KHR_ID,
1543         l_okl_k_headers_h_rec.PDT_ID,
1544         l_okl_k_headers_h_rec.OBJECT_VERSION_NUMBER,
1545         l_okl_k_headers_h_rec.DATE_FIRST_ACTIVITY,
1546         l_okl_k_headers_h_rec.SYNDICATABLE_YN,
1547         l_okl_k_headers_h_rec.SALESTYPE_YN,
1548         l_okl_k_headers_h_rec.DATE_REFINANCED,
1549         l_okl_k_headers_h_rec.DATE_CONVERSION_EFFECTIVE,
1550         l_okl_k_headers_h_rec.DATE_DEAL_TRANSFERRED,
1551         l_okl_k_headers_h_rec.TERM_DURATION,
1552         l_okl_k_headers_h_rec.DATETIME_PROPOSAL_EFFECTIVE,
1553         l_okl_k_headers_h_rec.DATETIME_PROPOSAL_INEFFECTIVE,
1554         l_okl_k_headers_h_rec.DATE_PROPOSAL_ACCEPTED,
1555         l_okl_k_headers_h_rec.ATTRIBUTE_CATEGORY,
1556         l_okl_k_headers_h_rec.ATTRIBUTE1,
1557         l_okl_k_headers_h_rec.ATTRIBUTE2,
1558         l_okl_k_headers_h_rec.ATTRIBUTE3,
1559         l_okl_k_headers_h_rec.ATTRIBUTE4,
1560         l_okl_k_headers_h_rec.ATTRIBUTE5,
1561         l_okl_k_headers_h_rec.ATTRIBUTE6,
1562         l_okl_k_headers_h_rec.ATTRIBUTE7,
1563         l_okl_k_headers_h_rec.ATTRIBUTE8,
1564         l_okl_k_headers_h_rec.ATTRIBUTE9,
1565         l_okl_k_headers_h_rec.ATTRIBUTE10,
1566         l_okl_k_headers_h_rec.ATTRIBUTE11,
1567         l_okl_k_headers_h_rec.ATTRIBUTE12,
1568         l_okl_k_headers_h_rec.ATTRIBUTE13,
1569         l_okl_k_headers_h_rec.ATTRIBUTE14,
1570         l_okl_k_headers_h_rec.ATTRIBUTE15,
1571         l_okl_k_headers_h_rec.CREATED_BY,
1572         l_okl_k_headers_h_rec.CREATION_DATE,
1573         l_okl_k_headers_h_rec.LAST_UPDATED_BY,
1574         l_okl_k_headers_h_rec.LAST_UPDATE_DATE,
1575         l_okl_k_headers_h_rec.LAST_UPDATE_LOGIN,
1576         l_okl_k_headers_h_rec.AMD_CODE,
1577         l_okl_k_headers_h_rec.GENERATE_ACCRUAL_YN,
1578         l_okl_k_headers_h_rec.GENERATE_ACCRUAL_OVERRIDE_YN,
1579         l_okl_k_headers_h_rec.CREDIT_ACT_YN,
1580         l_okl_k_headers_h_rec.CONVERTED_ACCOUNT_YN,
1581         l_okl_k_headers_h_rec.PRE_TAX_YIELD,
1582         l_okl_k_headers_h_rec.AFTER_TAX_YIELD,
1583         l_okl_k_headers_h_rec.IMPLICIT_INTEREST_RATE,
1584         l_okl_k_headers_h_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
1585         l_okl_k_headers_h_rec.TARGET_PRE_TAX_YIELD,
1586         l_okl_k_headers_h_rec.TARGET_AFTER_TAX_YIELD,
1587         l_okl_k_headers_h_rec.TARGET_IMPLICIT_INTEREST_RATE,
1588         l_okl_k_headers_h_rec.TARGET_IMPLICIT_NONIDC_INTRATE,
1589         l_okl_k_headers_h_rec.DATE_LAST_INTERIM_INTEREST_CAL,
1590         l_okl_k_headers_h_rec.DEAL_TYPE,
1591         l_okl_k_headers_h_rec.PRE_TAX_IRR,
1592         l_okl_k_headers_h_rec.AFTER_TAX_IRR,
1593         l_okl_k_headers_h_rec.EXPECTED_DELIVERY_DATE,
1594         l_okl_k_headers_h_rec.ACCEPTED_DATE,
1595         l_okl_k_headers_h_rec.PREFUNDING_ELIGIBLE_YN,
1596         l_okl_k_headers_h_rec.REVOLVING_CREDIT_YN,
1597 --Bug# 2697681 schema changes  11.5.9
1598         l_okl_k_headers_h_rec.CURRENCY_CONVERSION_TYPE,
1599         l_okl_k_headers_h_rec.CURRENCY_CONVERSION_RATE,
1600         l_okl_k_headers_h_rec.CURRENCY_CONVERSION_DATE,
1601         l_okl_k_headers_h_rec.MULTI_GAAP_YN,
1602         l_okl_k_headers_h_rec.RECOURSE_CODE,
1603         l_okl_k_headers_h_rec.LESSOR_SERV_ORG_CODE,
1604         l_okl_k_headers_h_rec.ASSIGNABLE_YN,
1605         l_okl_k_headers_h_rec.SECURITIZED_CODE,
1606         l_okl_k_headers_h_rec.SECURITIZATION_TYPE,
1607 --Bug#3143522 : 11.5.10
1608    --subsidy
1609    l_okl_k_headers_h_rec.SUB_PRE_TAX_YIELD,
1610    l_okl_k_headers_h_rec.SUB_AFTER_TAX_YIELD,
1611    l_okl_k_headers_h_rec.SUB_IMPL_INTEREST_RATE,
1612    l_okl_k_headers_h_rec.SUB_IMPL_NON_IDC_INT_RATE,
1613    l_okl_k_headers_h_rec.SUB_PRE_TAX_IRR,
1614    l_okl_k_headers_h_rec.SUB_AFTER_TAX_IRR,
1615    --Bug# 3973640 : 11.5.10+
1616    l_okl_k_headers_h_rec.TOT_CL_TRANSFER_AMT,
1617    l_okl_k_headers_h_rec.TOT_CL_NET_TRANSFER_AMT,
1618    l_okl_k_headers_h_rec.TOT_CL_LIMIT,
1619    l_okl_k_headers_h_rec.TOT_CL_FUNDING_AMT,
1620    l_okl_k_headers_h_rec.CRS_ID,
1621    l_okl_k_headers_h_rec.TEMPLATE_TYPE_CODE,
1622 --Bug# 4419339 OKLH Schema Sales Quote
1623    l_okl_k_headers_h_rec.DATE_FUNDING_EXPECTED ,
1624    l_okl_k_headers_h_rec.DATE_TRADEIN,
1625    l_okl_k_headers_h_rec.TRADEIN_AMOUNT,
1626    l_okl_k_headers_h_rec.TRADEIN_DESCRIPTION,
1627    --Added by dpsingh for LE uptake
1628    l_okl_k_headers_h_rec.LEGAL_ENTITY_ID
1629         ;
1630     x_no_data_found := okl_k_headers_h_pk_csr%NOTFOUND;
1631     CLOSE okl_k_headers_h_pk_csr;
1632     RETURN(l_okl_k_headers_h_rec);
1633   END get_rec;
1634 
1635   FUNCTION get_rec (
1636     p_okl_k_headers_h_rec                     IN okl_k_headers_h_rec_type
1637   ) RETURN okl_k_headers_h_rec_type IS
1638     l_row_notfound                 BOOLEAN := TRUE;
1639   BEGIN
1640     RETURN(get_rec(p_okl_k_headers_h_rec, l_row_notfound));
1641   END get_rec;
1642 
1643 
1644   ---------------------------------------------------------------------------
1645   -- FUNCTION get_rec for: OKL_K_HEADERS_V
1646   ---------------------------------------------------------------------------
1647   FUNCTION get_rec (
1648     p_khrv_rec                     IN khrv_rec_type,
1649     x_no_data_found                OUT NOCOPY BOOLEAN
1650   ) RETURN khrv_rec_type IS
1651     CURSOR okl_k_headers_v_pk_csr (p_id                 IN NUMBER) IS
1652       SELECT
1653 	ID,
1654         OBJECT_VERSION_NUMBER,
1655         ISG_ID,
1656         KHR_ID,
1657         PDT_ID,
1658         AMD_CODE,
1659         DATE_FIRST_ACTIVITY,
1660         GENERATE_ACCRUAL_YN,
1661         GENERATE_ACCRUAL_OVERRIDE_YN,
1662         DATE_REFINANCED,
1663         CREDIT_ACT_YN,
1664         TERM_DURATION,
1665         CONVERTED_ACCOUNT_YN,
1666         DATE_CONVERSION_EFFECTIVE,
1667         SYNDICATABLE_YN,
1668         SALESTYPE_YN,
1669         DATE_DEAL_TRANSFERRED,
1670         DATETIME_PROPOSAL_EFFECTIVE,
1671         DATETIME_PROPOSAL_INEFFECTIVE,
1672         DATE_PROPOSAL_ACCEPTED,
1673         ATTRIBUTE_CATEGORY,
1674         ATTRIBUTE1,
1675         ATTRIBUTE2,
1676         ATTRIBUTE3,
1677         ATTRIBUTE4,
1678         ATTRIBUTE5,
1679         ATTRIBUTE6,
1680         ATTRIBUTE7,
1681         ATTRIBUTE8,
1682         ATTRIBUTE9,
1683         ATTRIBUTE10,
1684         ATTRIBUTE11,
1685         ATTRIBUTE12,
1686         ATTRIBUTE13,
1687         ATTRIBUTE14,
1688         ATTRIBUTE15,
1689         CREATED_BY,
1690         CREATION_DATE,
1691         LAST_UPDATED_BY,
1692         LAST_UPDATE_DATE,
1693         LAST_UPDATE_LOGIN,
1694         PRE_TAX_YIELD,
1695         AFTER_TAX_YIELD,
1696         IMPLICIT_INTEREST_RATE,
1697         IMPLICIT_NON_IDC_INTEREST_RATE,
1698         TARGET_PRE_TAX_YIELD,
1699         TARGET_AFTER_TAX_YIELD,
1700         TARGET_IMPLICIT_INTEREST_RATE,
1701         TARGET_IMPLICIT_NONIDC_INTRATE,
1702         DATE_LAST_INTERIM_INTEREST_CAL,
1703         DEAL_TYPE,
1704         PRE_TAX_IRR,
1705         AFTER_TAX_IRR,
1706         EXPECTED_DELIVERY_DATE,
1707         ACCEPTED_DATE,
1708         PREFUNDING_ELIGIBLE_YN,
1709         REVOLVING_CREDIT_YN,
1710 --Bug# 2697681 schema changes  11.5.9
1711         CURRENCY_CONVERSION_TYPE,
1712         CURRENCY_CONVERSION_RATE,
1713         CURRENCY_CONVERSION_DATE,
1714         MULTI_GAAP_YN,
1715         RECOURSE_CODE,
1716         LESSOR_SERV_ORG_CODE,
1717         ASSIGNABLE_YN,
1718         SECURITIZED_CODE,
1719         SECURITIZATION_TYPE,
1720 --Bug#3143522 : 11.5.10
1721    --subsidy
1722    SUB_PRE_TAX_YIELD,
1723    SUB_AFTER_TAX_YIELD,
1724    SUB_IMPL_INTEREST_RATE,
1725    SUB_IMPL_NON_IDC_INT_RATE,
1726    SUB_PRE_TAX_IRR,
1727    SUB_AFTER_TAX_IRR,
1728    --Bug# 3973640 11.5.10+ schema
1729    TOT_CL_TRANSFER_AMT,
1730    TOT_CL_NET_TRANSFER_AMT,
1731    TOT_CL_LIMIT,
1732    TOT_CL_FUNDING_AMT,
1733    CRS_ID,
1734    TEMPLATE_TYPE_CODE,
1735 --Bug# 4419339 OKLH Schema Sales Quote
1736    DATE_FUNDING_EXPECTED ,
1737    DATE_TRADEIN,
1738    TRADEIN_AMOUNT,
1739    TRADEIN_DESCRIPTION,
1740    --Added by dpsingh for LE uptake
1741    LEGAL_ENTITY_ID
1742       FROM OKL_K_HEADERS_V
1743       WHERE OKL_K_HEADERS_V.id     = p_id;
1744 
1745       l_khrv_rec                      khrv_rec_type;
1746   BEGIN
1747 
1748     x_no_data_found := TRUE;
1749     -- Get current database values
1750     OPEN okl_k_headers_v_pk_csr (p_khrv_rec.id);
1751     FETCH okl_k_headers_v_pk_csr INTO
1752        l_khrv_rec.ID,
1753         l_khrv_rec.OBJECT_VERSION_NUMBER,
1754         l_khrv_rec.ISG_ID,
1755         l_khrv_rec.KHR_ID,
1756         l_khrv_rec.PDT_ID,
1757         l_khrv_rec.AMD_CODE,
1758         l_khrv_rec.DATE_FIRST_ACTIVITY,
1759         l_khrv_rec.GENERATE_ACCRUAL_YN,
1760         l_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN,
1761         l_khrv_rec.DATE_REFINANCED,
1762         l_khrv_rec.CREDIT_ACT_YN,
1763         l_khrv_rec.TERM_DURATION,
1764         l_khrv_rec.CONVERTED_ACCOUNT_YN,
1765         l_khrv_rec.DATE_CONVERSION_EFFECTIVE,
1766         l_khrv_rec.SYNDICATABLE_YN,
1767         l_khrv_rec.SALESTYPE_YN,
1768         l_khrv_rec.DATE_DEAL_TRANSFERRED,
1769         l_khrv_rec.DATETIME_PROPOSAL_EFFECTIVE,
1770         l_khrv_rec.DATETIME_PROPOSAL_INEFFECTIVE,
1771         l_khrv_rec.DATE_PROPOSAL_ACCEPTED,
1772         l_khrv_rec.ATTRIBUTE_CATEGORY,
1773         l_khrv_rec.ATTRIBUTE1,
1774         l_khrv_rec.ATTRIBUTE2,
1775         l_khrv_rec.ATTRIBUTE3,
1776         l_khrv_rec.ATTRIBUTE4,
1777         l_khrv_rec.ATTRIBUTE5,
1778         l_khrv_rec.ATTRIBUTE6,
1779         l_khrv_rec.ATTRIBUTE7,
1780         l_khrv_rec.ATTRIBUTE8,
1781         l_khrv_rec.ATTRIBUTE9,
1782         l_khrv_rec.ATTRIBUTE10,
1783         l_khrv_rec.ATTRIBUTE11,
1784         l_khrv_rec.ATTRIBUTE12,
1785         l_khrv_rec.ATTRIBUTE13,
1786         l_khrv_rec.ATTRIBUTE14,
1787         l_khrv_rec.ATTRIBUTE15,
1788         l_khrv_rec.CREATED_BY,
1789         l_khrv_rec.CREATION_DATE,
1790         l_khrv_rec.LAST_UPDATED_BY,
1791         l_khrv_rec.LAST_UPDATE_DATE,
1792         l_khrv_rec.LAST_UPDATE_LOGIN,
1793         l_khrv_rec.PRE_TAX_YIELD,
1794         l_khrv_rec.AFTER_TAX_YIELD,
1795         l_khrv_rec.IMPLICIT_INTEREST_RATE,
1796         l_khrv_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
1797         l_khrv_rec.TARGET_PRE_TAX_YIELD,
1798         l_khrv_rec.TARGET_AFTER_TAX_YIELD,
1799         l_khrv_rec.TARGET_IMPLICIT_INTEREST_RATE,
1800         l_khrv_rec.TARGET_IMPLICIT_NONIDC_INTRATE,
1801         l_khrv_rec.DATE_LAST_INTERIM_INTEREST_CAL,
1802         l_khrv_rec.DEAL_TYPE,
1803         l_khrv_rec.PRE_TAX_IRR,
1804         l_khrv_rec.AFTER_TAX_IRR,
1805         l_khrv_rec.EXPECTED_DELIVERY_DATE,
1806         l_khrv_rec.ACCEPTED_DATE,
1807         l_khrv_rec.PREFUNDING_ELIGIBLE_YN,
1808         l_khrv_rec.REVOLVING_CREDIT_YN,
1809 --Bug# 2697681 schema changes  11.5.9
1810         l_khrv_rec.CURRENCY_CONVERSION_TYPE,
1811         l_khrv_rec.CURRENCY_CONVERSION_RATE,
1812         l_khrv_rec.CURRENCY_CONVERSION_DATE,
1813         l_khrv_rec.MULTI_GAAP_YN,
1814         l_khrv_rec.RECOURSE_CODE,
1815         l_khrv_rec.LESSOR_SERV_ORG_CODE,
1816         l_khrv_rec.ASSIGNABLE_YN,
1817         l_khrv_rec.SECURITIZED_CODE,
1818         l_khrv_rec.SECURITIZATION_TYPE,
1819 --Bug#3143522 : 11.5.10
1820    --subsidy
1821    l_khrv_rec.SUB_PRE_TAX_YIELD,
1822    l_khrv_rec.SUB_AFTER_TAX_YIELD,
1823    l_khrv_rec.SUB_IMPL_INTEREST_RATE,
1824    l_khrv_rec.SUB_IMPL_NON_IDC_INT_RATE,
1825    l_khrv_rec.SUB_PRE_TAX_IRR,
1826    l_khrv_rec.SUB_AFTER_TAX_IRR,
1827    --Bug# 3973640 11.5.10+ schema
1828    l_khrv_rec.TOT_CL_TRANSFER_AMT,
1829    l_khrv_rec.TOT_CL_NET_TRANSFER_AMT,
1830    l_khrv_rec.TOT_CL_LIMIT,
1831    l_khrv_rec.TOT_CL_FUNDING_AMT,
1832    l_khrv_rec.CRS_ID,
1833    l_khrv_rec.TEMPLATE_TYPE_CODE,
1834 --Bug# 4419339 OKLH Schema Sales Quote
1835    l_khrv_rec.DATE_FUNDING_EXPECTED ,
1836    l_khrv_rec.DATE_TRADEIN,
1837    l_khrv_rec.TRADEIN_AMOUNT,
1838    l_khrv_rec.TRADEIN_DESCRIPTION,
1839    --Added by dpsingh for LE uptake
1840    l_khrv_rec.LEGAL_ENTITY_ID ;
1841     x_no_data_found := okl_k_headers_v_pk_csr%NOTFOUND;
1842     CLOSE okl_k_headers_v_pk_csr;
1843     RETURN(l_khrv_rec);
1844   END get_rec;
1845 
1846   FUNCTION get_rec (
1847     p_khrv_rec                     IN khrv_rec_type
1848   ) RETURN khrv_rec_type IS
1849     l_row_notfound                 BOOLEAN := TRUE;
1850   BEGIN
1851     RETURN(get_rec(p_khrv_rec, l_row_notfound));
1852   END get_rec;
1853 
1854 
1855   -----------------------------------------------------
1856   -- FUNCTION null_out_defaults for: OKL_K_HEADERS_V --
1857   -----------------------------------------------------
1858   FUNCTION null_out_defaults (
1859     p_khrv_rec                     IN khrv_rec_type
1860   ) RETURN khrv_rec_type IS
1861     l_khrv_rec	khrv_rec_type := p_khrv_rec;
1862   BEGIN
1863 
1864     IF (l_khrv_rec.ID = OKC_API.G_MISS_NUM) THEN
1865       l_khrv_rec.ID := NULL;
1866     END IF;
1867 
1868     IF (l_khrv_rec.OBJECT_VERSION_NUMBER = OKC_API.G_MISS_NUM) THEN
1869       l_khrv_rec.OBJECT_VERSION_NUMBER := NULL;
1870     END IF;
1871 
1872     IF (l_khrv_rec.ISG_ID = OKC_API.G_MISS_NUM) THEN
1873       l_khrv_rec.ISG_ID := NULL;
1874     END IF;
1875 
1876     IF (l_khrv_rec.KHR_ID = OKC_API.G_MISS_NUM) THEN
1877       l_khrv_rec.KHR_ID := NULL;
1878     END IF;
1879 
1880     IF (l_khrv_rec.PDT_ID = OKC_API.G_MISS_NUM) THEN
1881       l_khrv_rec.PDT_ID := NULL;
1882     END IF;
1883 
1884     IF (l_khrv_rec.AMD_CODE = OKC_API.G_MISS_CHAR) THEN
1885       l_khrv_rec.AMD_CODE := NULL;
1886     END IF;
1887 
1888     IF (l_khrv_rec.DATE_FIRST_ACTIVITY = OKC_API.G_MISS_DATE) THEN
1889       l_khrv_rec.DATE_FIRST_ACTIVITY := NULL;
1890     END IF;
1891 
1892     IF (l_khrv_rec.GENERATE_ACCRUAL_YN = OKC_API.G_MISS_CHAR) THEN
1893       l_khrv_rec.GENERATE_ACCRUAL_YN := NULL;
1894     END IF;
1895 
1896     IF (l_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN = OKC_API.G_MISS_CHAR) THEN
1897       l_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN := NULL;
1898     END IF;
1899 
1900     IF (l_khrv_rec.DATE_REFINANCED = OKC_API.G_MISS_DATE) THEN
1901       l_khrv_rec.DATE_REFINANCED := NULL;
1902     END IF;
1903 
1904     IF (l_khrv_rec.CREDIT_ACT_YN = OKC_API.G_MISS_CHAR) THEN
1905       l_khrv_rec.CREDIT_ACT_YN := NULL;
1906     END IF;
1907 
1908     IF (l_khrv_rec.TERM_DURATION = OKC_API.G_MISS_NUM) THEN
1909       l_khrv_rec.TERM_DURATION := NULL;
1910     END IF;
1911 
1912     IF (l_khrv_rec.CONVERTED_ACCOUNT_YN = OKC_API.G_MISS_CHAR) THEN
1913       l_khrv_rec.CONVERTED_ACCOUNT_YN := NULL;
1914     END IF;
1915 
1916     IF (l_khrv_rec.DATE_CONVERSION_EFFECTIVE = OKC_API.G_MISS_DATE) THEN
1917       l_khrv_rec.DATE_CONVERSION_EFFECTIVE := NULL;
1918     END IF;
1919 
1920     IF (l_khrv_rec.SYNDICATABLE_YN = OKC_API.G_MISS_CHAR) THEN
1921       l_khrv_rec.SYNDICATABLE_YN := NULL;
1922     END IF;
1923 
1924     IF (l_khrv_rec.SALESTYPE_YN = OKC_API.G_MISS_CHAR) THEN
1925       l_khrv_rec.SALESTYPE_YN := NULL;
1926     END IF;
1927 
1928     IF (l_khrv_rec.DATE_DEAL_TRANSFERRED = OKC_API.G_MISS_DATE) THEN
1929       l_khrv_rec.DATE_DEAL_TRANSFERRED := NULL;
1930     END IF;
1931 
1932     IF (l_khrv_rec.DATETIME_PROPOSAL_EFFECTIVE = OKC_API.G_MISS_DATE) THEN
1933       l_khrv_rec.DATETIME_PROPOSAL_EFFECTIVE := NULL;
1934     END IF;
1935 
1936     IF (l_khrv_rec.DATETIME_PROPOSAL_INEFFECTIVE = OKC_API.G_MISS_DATE) THEN
1937       l_khrv_rec.DATETIME_PROPOSAL_INEFFECTIVE := NULL;
1938     END IF;
1939 
1940     IF (l_khrv_rec.DATE_PROPOSAL_ACCEPTED = OKC_API.G_MISS_DATE) THEN
1941       l_khrv_rec.DATE_PROPOSAL_ACCEPTED := NULL;
1942     END IF;
1943 
1944     IF (l_khrv_rec.ATTRIBUTE_CATEGORY = OKC_API.G_MISS_CHAR) THEN
1945       l_khrv_rec.ATTRIBUTE_CATEGORY := NULL;
1946     END IF;
1947 
1948     IF (l_khrv_rec.ATTRIBUTE1 = OKC_API.G_MISS_CHAR) THEN
1949       l_khrv_rec.ATTRIBUTE1 := NULL;
1950     END IF;
1951 
1952     IF (l_khrv_rec.ATTRIBUTE2 = OKC_API.G_MISS_CHAR) THEN
1953       l_khrv_rec.ATTRIBUTE2 := NULL;
1954     END IF;
1955 
1956     IF (l_khrv_rec.ATTRIBUTE3 = OKC_API.G_MISS_CHAR) THEN
1957       l_khrv_rec.ATTRIBUTE3 := NULL;
1958     END IF;
1959 
1960     IF (l_khrv_rec.ATTRIBUTE4 = OKC_API.G_MISS_CHAR) THEN
1961       l_khrv_rec.ATTRIBUTE4 := NULL;
1962     END IF;
1963 
1964     IF (l_khrv_rec.ATTRIBUTE5 = OKC_API.G_MISS_CHAR) THEN
1965       l_khrv_rec.ATTRIBUTE5 := NULL;
1966     END IF;
1967 
1968     IF (l_khrv_rec.ATTRIBUTE6 = OKC_API.G_MISS_CHAR) THEN
1969       l_khrv_rec.ATTRIBUTE6 := NULL;
1970     END IF;
1971 
1972     IF (l_khrv_rec.ATTRIBUTE7 = OKC_API.G_MISS_CHAR) THEN
1973       l_khrv_rec.ATTRIBUTE7 := NULL;
1974     END IF;
1975 
1976     IF (l_khrv_rec.ATTRIBUTE8 = OKC_API.G_MISS_CHAR) THEN
1977       l_khrv_rec.ATTRIBUTE8 := NULL;
1978     END IF;
1979 
1980     IF (l_khrv_rec.ATTRIBUTE9 = OKC_API.G_MISS_CHAR) THEN
1981       l_khrv_rec.ATTRIBUTE9 := NULL;
1982     END IF;
1983 
1984     IF (l_khrv_rec.ATTRIBUTE10 = OKC_API.G_MISS_CHAR) THEN
1985       l_khrv_rec.ATTRIBUTE10 := NULL;
1986     END IF;
1987 
1988     IF (l_khrv_rec.ATTRIBUTE11 = OKC_API.G_MISS_CHAR) THEN
1989       l_khrv_rec.ATTRIBUTE11 := NULL;
1990     END IF;
1991 
1992     IF (l_khrv_rec.ATTRIBUTE12 = OKC_API.G_MISS_CHAR) THEN
1993       l_khrv_rec.ATTRIBUTE12 := NULL;
1994     END IF;
1995 
1996     IF (l_khrv_rec.ATTRIBUTE13 = OKC_API.G_MISS_CHAR) THEN
1997       l_khrv_rec.ATTRIBUTE13 := NULL;
1998     END IF;
1999 
2000     IF (l_khrv_rec.ATTRIBUTE14 = OKC_API.G_MISS_CHAR) THEN
2001       l_khrv_rec.ATTRIBUTE14 := NULL;
2002     END IF;
2003 
2004     IF (l_khrv_rec.ATTRIBUTE15 = OKC_API.G_MISS_CHAR) THEN
2005       l_khrv_rec.ATTRIBUTE15 := NULL;
2006     END IF;
2007 
2008     IF (l_khrv_rec.CREATED_BY = OKC_API.G_MISS_NUM) THEN
2009       l_khrv_rec.CREATED_BY := NULL;
2010     END IF;
2011 
2012     IF (l_khrv_rec.CREATION_DATE = OKC_API.G_MISS_DATE) THEN
2013       l_khrv_rec.CREATION_DATE := NULL;
2014     END IF;
2015 
2016     IF (l_khrv_rec.LAST_UPDATED_BY = OKC_API.G_MISS_NUM) THEN
2017       l_khrv_rec.LAST_UPDATED_BY := NULL;
2018     END IF;
2019 
2020     IF (l_khrv_rec.LAST_UPDATE_DATE = OKC_API.G_MISS_DATE) THEN
2021       l_khrv_rec.LAST_UPDATE_DATE := NULL;
2022     END IF;
2023 
2024     IF (l_khrv_rec.LAST_UPDATE_LOGIN = OKC_API.G_MISS_NUM) THEN
2025       l_khrv_rec.LAST_UPDATE_LOGIN := NULL;
2026     END IF;
2027 
2028     IF (l_khrv_rec.PRE_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
2029       l_khrv_rec.PRE_TAX_YIELD := NULL;
2030     END IF;
2031 
2032     IF (l_khrv_rec.AFTER_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
2033       l_khrv_rec.AFTER_TAX_YIELD := NULL;
2034     END IF;
2035 
2036     IF (l_khrv_rec.IMPLICIT_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
2037       l_khrv_rec.IMPLICIT_INTEREST_RATE := NULL;
2038     END IF;
2039 
2040     IF (l_khrv_rec.IMPLICIT_NON_IDC_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
2041       l_khrv_rec.IMPLICIT_NON_IDC_INTEREST_RATE := NULL;
2042     END IF;
2043 
2044     IF (l_khrv_rec.TARGET_PRE_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
2045       l_khrv_rec.TARGET_PRE_TAX_YIELD := NULL;
2046     END IF;
2047 
2048     IF (l_khrv_rec.TARGET_AFTER_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
2049       l_khrv_rec.TARGET_AFTER_TAX_YIELD := NULL;
2050     END IF;
2051 
2052     IF (l_khrv_rec.TARGET_IMPLICIT_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
2053       l_khrv_rec.TARGET_IMPLICIT_INTEREST_RATE := NULL;
2054     END IF;
2055 
2056     IF (l_khrv_rec.TARGET_IMPLICIT_NONIDC_INTRATE = OKC_API.G_MISS_NUM) THEN
2057       l_khrv_rec.TARGET_IMPLICIT_NONIDC_INTRATE := NULL;
2058     END IF;
2059 
2060     IF (l_khrv_rec.DATE_LAST_INTERIM_INTEREST_CAL = OKC_API.G_MISS_DATE) THEN
2061       l_khrv_rec.DATE_LAST_INTERIM_INTEREST_CAL := NULL;
2062     END IF;
2063 
2064     IF (l_khrv_rec.DEAL_TYPE = OKC_API.G_MISS_CHAR) THEN
2065       l_khrv_rec.DEAL_TYPE := NULL;
2066     END IF;
2067 
2068     IF (l_khrv_rec.PRE_TAX_IRR = OKC_API.G_MISS_NUM) THEN
2069       l_khrv_rec.PRE_TAX_IRR := NULL;
2070     END IF;
2071 
2072     IF (l_khrv_rec.AFTER_TAX_IRR = OKC_API.G_MISS_NUM) THEN
2073       l_khrv_rec.AFTER_TAX_IRR := NULL;
2074     END IF;
2075 
2076     IF (l_khrv_rec.EXPECTED_DELIVERY_DATE = OKC_API.G_MISS_DATE) THEN
2077       l_khrv_rec.EXPECTED_DELIVERY_DATE := NULL;
2078     END IF;
2079 
2080     IF (l_khrv_rec.ACCEPTED_DATE = OKC_API.G_MISS_DATE) THEN
2081       l_khrv_rec.ACCEPTED_DATE := NULL;
2082     END IF;
2083 
2084     IF (l_khrv_rec.PREFUNDING_ELIGIBLE_YN = OKC_API.G_MISS_CHAR) THEN
2085       l_khrv_rec.PREFUNDING_ELIGIBLE_YN := NULL;
2086     END IF;
2087 
2088     IF (l_khrv_rec.REVOLVING_CREDIT_YN = OKC_API.G_MISS_CHAR) THEN
2089       l_khrv_rec.REVOLVING_CREDIT_YN := NULL;
2090     END IF;
2091 
2092 --Bug# 2697681 schema changes  11.5.9
2093     IF (l_khrv_rec.CURRENCY_CONVERSION_TYPE = OKC_API.G_MISS_CHAR) THEN
2094       l_khrv_rec.CURRENCY_CONVERSION_TYPE := NULL;
2095     END IF;
2096 
2097     IF (l_khrv_rec.CURRENCY_CONVERSION_RATE = OKC_API.G_MISS_NUM) THEN
2098       l_khrv_rec.CURRENCY_CONVERSION_RATE := NULL;
2099     END IF;
2100 
2101     IF (l_khrv_rec.CURRENCY_CONVERSION_DATE = OKC_API.G_MISS_DATE) THEN
2102       l_khrv_rec.CURRENCY_CONVERSION_DATE := NULL;
2103     END IF;
2104 
2105     IF (l_khrv_rec.MULTI_GAAP_YN = OKC_API.G_MISS_CHAR) THEN
2106       l_khrv_rec.MULTI_GAAP_YN := NULL;
2107     END IF;
2108 
2109     IF (l_khrv_rec.RECOURSE_CODE = OKC_API.G_MISS_CHAR) THEN
2110       l_khrv_rec.RECOURSE_CODE := NULL;
2111     END IF;
2112 
2113     IF (l_khrv_rec.LESSOR_SERV_ORG_CODE = OKC_API.G_MISS_CHAR) THEN
2114       l_khrv_rec.LESSOR_SERV_ORG_CODE := NULL;
2115     END IF;
2116 
2117     IF (l_khrv_rec.ASSIGNABLE_YN = OKC_API.G_MISS_CHAR) THEN
2118       l_khrv_rec.ASSIGNABLE_YN := NULL;
2119     END IF;
2120 
2121     IF (l_khrv_rec.SECURITIZED_CODE = OKC_API.G_MISS_CHAR) THEN
2122       l_khrv_rec.SECURITIZED_CODE := NULL;
2123     END IF;
2124 
2125     IF (l_khrv_rec.SECURITIZATION_TYPE = OKC_API.G_MISS_CHAR) THEN
2126       l_khrv_rec.SECURITIZATION_TYPE := NULL;
2127     END IF;
2128 --Bug#3143522 : 11.5.10
2129     --subsidy
2130     IF (l_khrv_rec.SUB_PRE_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
2131       l_khrv_rec.SUB_PRE_TAX_YIELD := NULL;
2132     END IF;
2133     IF (l_khrv_rec.SUB_AFTER_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
2134       l_khrv_rec.SUB_AFTER_TAX_YIELD := NULL;
2135     END IF;
2136     IF (l_khrv_rec.SUB_IMPL_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
2137       l_khrv_rec.SUB_IMPL_INTEREST_RATE := NULL;
2138     END IF;
2139     IF (l_khrv_rec.SUB_IMPL_NON_IDC_INT_RATE = OKC_API.G_MISS_NUM) THEN
2140       l_khrv_rec.SUB_IMPL_NON_IDC_INT_RATE := NULL;
2141     END IF;
2142     IF (l_khrv_rec.SUB_PRE_TAX_IRR = OKC_API.G_MISS_NUM) THEN
2143       l_khrv_rec.SUB_PRE_TAX_IRR := NULL;
2144     END IF;
2145     IF (l_khrv_rec.SUB_AFTER_TAX_IRR = OKC_API.G_MISS_NUM) THEN
2146       l_khrv_rec.SUB_AFTER_TAX_IRR := NULL;
2147     END IF;
2148     --Bug# 3973640 : 11.5.10+ schema changes
2149     IF (l_khrv_rec.TOT_CL_TRANSFER_AMT = OKC_API.G_MISS_NUM) THEN
2150       l_khrv_rec.TOT_CL_TRANSFER_AMT := NULL;
2151     END IF;
2152     IF (l_khrv_rec.TOT_CL_NET_TRANSFER_AMT = OKC_API.G_MISS_NUM) THEN
2153       l_khrv_rec.TOT_CL_NET_TRANSFER_AMT := NULL;
2154     END IF;
2155     IF (l_khrv_rec.TOT_CL_LIMIT = OKC_API.G_MISS_NUM) THEN
2156       l_khrv_rec.TOT_CL_LIMIT := NULL;
2157     END IF;
2158     IF (l_khrv_rec.TOT_CL_FUNDING_AMT = OKC_API.G_MISS_NUM) THEN
2159       l_khrv_rec.TOT_CL_FUNDING_AMT := NULL;
2160     END IF;
2161     IF (l_khrv_rec.CRS_ID = OKC_API.G_MISS_NUM) THEN
2162       l_khrv_rec.CRS_ID := NULL;
2163     END IF;
2164     IF (l_khrv_rec.TEMPLATE_TYPE_CODE = OKC_API.G_MISS_CHAR) THEN
2165       l_khrv_rec.TEMPLATE_TYPE_CODE := NULL;
2166     END IF;
2167 --Bug# 4419339 OKLH Schema Sales Quote
2168     IF (l_khrv_rec.DATE_FUNDING_EXPECTED = OKC_API.G_MISS_DATE) THEN
2169       l_khrv_rec.DATE_FUNDING_EXPECTED := NULL;
2170     END IF;
2171 
2172     IF (l_khrv_rec.DATE_TRADEIN = OKC_API.G_MISS_DATE) THEN
2173       l_khrv_rec.DATE_TRADEIN := NULL;
2174     END IF;
2175 
2176     IF (l_khrv_rec.TRADEIN_AMOUNT = OKC_API.G_MISS_NUM) THEN
2177       l_khrv_rec.TRADEIN_AMOUNT := NULL;
2178     END IF;
2179 
2180     IF (l_khrv_rec.TRADEIN_DESCRIPTION = OKC_API.G_MISS_CHAR) THEN
2181       l_khrv_rec.TRADEIN_DESCRIPTION := NULL;
2182     END IF;
2183 
2184 --Added by dpsingh for LE uptake
2185     IF (l_khrv_rec.LEGAL_ENTITY_ID = OKL_API.G_MISS_NUM) THEN
2186       l_khrv_rec.LEGAL_ENTITY_ID := NULL;
2187     END IF;
2188 
2189     RETURN(l_khrv_rec);
2190   END null_out_defaults;
2191 
2192   ---------------------------------------------------------------------------
2193   -- PROCEDURE Validate_Record
2194   ---------------------------------------------------------------------------
2195 
2196 
2197   -----------------------------------------
2198   -- Validate_Record for: OKL_K_HEADERS_V --
2199   -----------------------------------------
2200   FUNCTION Validate_Record (
2201     p_khrv_rec                     IN khrv_rec_type
2202   ) RETURN VARCHAR2 IS
2203     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2204   BEGIN
2205     RETURN (l_return_status);
2206   END Validate_Record;
2207 
2208 
2209   ---------------------------------------------------------------------------
2210   -- PROCEDURE Migrate
2211   ---------------------------------------------------------------------------
2212 
2213   PROCEDURE migrate (
2214     p_from	IN khrv_rec_type,
2215     p_to	IN OUT NOCOPY khr_rec_type
2216   ) IS
2217   BEGIN
2218 
2219       p_to.ID := p_from.ID;
2220 
2221       p_to.ISG_ID := p_from.ISG_ID;
2222 
2223       p_to.KHR_ID := p_from.KHR_ID;
2224 
2225       p_to.PDT_ID := p_from.PDT_ID;
2226 
2227       p_to.OBJECT_VERSION_NUMBER := p_from.OBJECT_VERSION_NUMBER;
2228 
2229       p_to.DATE_FIRST_ACTIVITY := p_from.DATE_FIRST_ACTIVITY;
2230 
2231       p_to.SYNDICATABLE_YN := p_from.SYNDICATABLE_YN;
2232 
2233       p_to.SALESTYPE_YN := p_from.SALESTYPE_YN;
2234 
2235       p_to.DATE_REFINANCED := p_from.DATE_REFINANCED;
2236 
2237       p_to.DATE_CONVERSION_EFFECTIVE := p_from.DATE_CONVERSION_EFFECTIVE;
2238 
2239       p_to.DATE_DEAL_TRANSFERRED := p_from.DATE_DEAL_TRANSFERRED;
2240 
2241       p_to.TERM_DURATION := p_from.TERM_DURATION;
2242 
2243       p_to.DATETIME_PROPOSAL_EFFECTIVE := p_from.DATETIME_PROPOSAL_EFFECTIVE;
2244 
2245       p_to.DATETIME_PROPOSAL_INEFFECTIVE := p_from.DATETIME_PROPOSAL_INEFFECTIVE;
2246 
2247       p_to.DATE_PROPOSAL_ACCEPTED := p_from.DATE_PROPOSAL_ACCEPTED;
2248 
2249       p_to.ATTRIBUTE_CATEGORY := p_from.ATTRIBUTE_CATEGORY;
2250 
2251       p_to.ATTRIBUTE1 := p_from.ATTRIBUTE1;
2252 
2253       p_to.ATTRIBUTE2 := p_from.ATTRIBUTE2;
2254 
2255       p_to.ATTRIBUTE3 := p_from.ATTRIBUTE3;
2256 
2257       p_to.ATTRIBUTE4 := p_from.ATTRIBUTE4;
2258 
2259       p_to.ATTRIBUTE5 := p_from.ATTRIBUTE5;
2260 
2261       p_to.ATTRIBUTE6 := p_from.ATTRIBUTE6;
2262 
2263       p_to.ATTRIBUTE7 := p_from.ATTRIBUTE7;
2264 
2265       p_to.ATTRIBUTE8 := p_from.ATTRIBUTE8;
2266 
2267       p_to.ATTRIBUTE9 := p_from.ATTRIBUTE9;
2268 
2269       p_to.ATTRIBUTE10 := p_from.ATTRIBUTE10;
2270 
2271       p_to.ATTRIBUTE11 := p_from.ATTRIBUTE11;
2272 
2273       p_to.ATTRIBUTE12 := p_from.ATTRIBUTE12;
2274 
2275       p_to.ATTRIBUTE13 := p_from.ATTRIBUTE13;
2276 
2277       p_to.ATTRIBUTE14 := p_from.ATTRIBUTE14;
2278 
2279       p_to.ATTRIBUTE15 := p_from.ATTRIBUTE15;
2280 
2281       p_to.CREATED_BY := p_from.CREATED_BY;
2282 
2283       p_to.CREATION_DATE := p_from.CREATION_DATE;
2284 
2285       p_to.LAST_UPDATED_BY := p_from.LAST_UPDATED_BY;
2286 
2287       p_to.LAST_UPDATE_DATE := p_from.LAST_UPDATE_DATE;
2288 
2289       p_to.LAST_UPDATE_LOGIN := p_from.LAST_UPDATE_LOGIN;
2290 
2291       p_to.AMD_CODE := p_from.AMD_CODE;
2292 
2293       p_to.GENERATE_ACCRUAL_YN := p_from.GENERATE_ACCRUAL_YN;
2294 
2295       p_to.GENERATE_ACCRUAL_OVERRIDE_YN := p_from.GENERATE_ACCRUAL_OVERRIDE_YN;
2296 
2297       p_to.CREDIT_ACT_YN := p_from.CREDIT_ACT_YN;
2298 
2299       p_to.CONVERTED_ACCOUNT_YN := p_from.CONVERTED_ACCOUNT_YN;
2300 
2301       p_to.PRE_TAX_YIELD := p_from.PRE_TAX_YIELD;
2302 
2303       p_to.AFTER_TAX_YIELD := p_from.AFTER_TAX_YIELD;
2304 
2305       p_to.IMPLICIT_INTEREST_RATE := p_from.IMPLICIT_INTEREST_RATE;
2306 
2307       p_to.IMPLICIT_NON_IDC_INTEREST_RATE := p_from.IMPLICIT_NON_IDC_INTEREST_RATE;
2308 
2309       p_to.TARGET_PRE_TAX_YIELD := p_from.TARGET_PRE_TAX_YIELD;
2310 
2311       p_to.TARGET_AFTER_TAX_YIELD := p_from.TARGET_AFTER_TAX_YIELD;
2312 
2313       p_to.TARGET_IMPLICIT_INTEREST_RATE := p_from.TARGET_IMPLICIT_INTEREST_RATE;
2314 
2315       p_to.TARGET_IMPLICIT_NONIDC_INTRATE := p_from.TARGET_IMPLICIT_NONIDC_INTRATE;
2316 
2317       p_to.DATE_LAST_INTERIM_INTEREST_CAL := p_from.DATE_LAST_INTERIM_INTEREST_CAL;
2318 
2319       p_to.DEAL_TYPE := p_from.DEAL_TYPE;
2320 
2321       p_to.PRE_TAX_IRR := p_from.PRE_TAX_IRR;
2322 
2323       p_to.AFTER_TAX_IRR := p_from.AFTER_TAX_IRR;
2324 
2325       p_to.EXPECTED_DELIVERY_DATE := p_from.EXPECTED_DELIVERY_DATE;
2326 
2327       p_to.ACCEPTED_DATE := p_from.ACCEPTED_DATE;
2328 
2329       p_to.PREFUNDING_ELIGIBLE_YN := p_from.PREFUNDING_ELIGIBLE_YN;
2330 
2331       p_to.REVOLVING_CREDIT_YN := p_from.REVOLVING_CREDIT_YN;
2332 
2333 --Bug# 2697681 schema changes  11.5.9
2334       p_to.CURRENCY_CONVERSION_TYPE  := p_from.CURRENCY_CONVERSION_TYPE;
2335       p_to.CURRENCY_CONVERSION_RATE  := p_from.CURRENCY_CONVERSION_RATE;
2336       p_to.CURRENCY_CONVERSION_DATE  := p_from.CURRENCY_CONVERSION_DATE;
2337       p_to.MULTI_GAAP_YN             := p_from.MULTI_GAAP_YN;
2338       p_to.RECOURSE_CODE             := p_from.RECOURSE_CODE;
2339       p_to.LESSOR_SERV_ORG_CODE      := p_from.LESSOR_SERV_ORG_CODE;
2340       p_to.ASSIGNABLE_YN             := p_from.ASSIGNABLE_YN;
2341       p_to.SECURITIZED_CODE          := p_from.SECURITIZED_CODE;
2342       p_to.SECURITIZATION_TYPE       := p_from.SECURITIZATION_TYPE;
2343 --Bug#3143522 : 11.5.10
2344    --subsidy
2345    p_to.SUB_PRE_TAX_YIELD := p_from.SUB_PRE_TAX_YIELD;
2346    p_to.SUB_AFTER_TAX_YIELD := p_from.SUB_AFTER_TAX_YIELD;
2347    p_to.SUB_IMPL_INTEREST_RATE := p_from.SUB_IMPL_INTEREST_RATE;
2348    p_to.SUB_IMPL_NON_IDC_INT_RATE := p_from.SUB_IMPL_NON_IDC_INT_RATE;
2349    p_to.SUB_PRE_TAX_IRR := p_from.SUB_PRE_TAX_IRR;
2350    p_to.SUB_AFTER_TAX_IRR := p_from.SUB_AFTER_TAX_IRR;
2351    --Bug# 3973640 : 11.5.10+ schema changes
2352    p_to.TOT_CL_TRANSFER_AMT     := p_from.TOT_CL_TRANSFER_AMT;
2353    p_to.TOT_CL_NET_TRANSFER_AMT := p_from.TOT_CL_NET_TRANSFER_AMT;
2354    p_to.TOT_CL_LIMIT            := p_from.TOT_CL_LIMIT;
2355    p_to.TOT_CL_FUNDING_AMT      := p_from.TOT_CL_FUNDING_AMT;
2356    p_to.CRS_ID                  := p_from.CRS_ID;
2357    p_to.TEMPLATE_TYPE_CODE      := p_from.TEMPLATE_TYPE_CODE;
2358 --Bug# 4419339 OKLH Schema Sales Quote
2359    p_to.DATE_FUNDING_EXPECTED     := p_from.DATE_FUNDING_EXPECTED;
2360    p_to.DATE_TRADEIN 		  := p_from.DATE_TRADEIN;
2361    p_to.TRADEIN_AMOUNT            := p_from.TRADEIN_AMOUNT;
2362    p_to.TRADEIN_DESCRIPTION       := p_from.TRADEIN_DESCRIPTION;
2363    --Added by dpsingh for LE uptake
2364    p_to.LEGAL_ENTITY_ID       := p_from.LEGAL_ENTITY_ID;
2365 
2366 
2367   END migrate;
2368 
2369   PROCEDURE migrate (
2370     p_from	IN khr_rec_type,
2371     p_to	IN OUT NOCOPY khrv_rec_type
2372   ) IS
2373   BEGIN
2374 
2375       p_to.ID := p_from.ID;
2376 
2377       p_to.ISG_ID := p_from.ISG_ID;
2378 
2379       p_to.KHR_ID := p_from.KHR_ID;
2380 
2381       p_to.PDT_ID := p_from.PDT_ID;
2382 
2383       p_to.OBJECT_VERSION_NUMBER := p_from.OBJECT_VERSION_NUMBER;
2384 
2385       p_to.DATE_FIRST_ACTIVITY := p_from.DATE_FIRST_ACTIVITY;
2386 
2387       p_to.SYNDICATABLE_YN := p_from.SYNDICATABLE_YN;
2388 
2389       p_to.SALESTYPE_YN := p_from.SALESTYPE_YN;
2390 
2391       p_to.DATE_REFINANCED := p_from.DATE_REFINANCED;
2392 
2393       p_to.DATE_CONVERSION_EFFECTIVE := p_from.DATE_CONVERSION_EFFECTIVE;
2394 
2395       p_to.DATE_DEAL_TRANSFERRED := p_from.DATE_DEAL_TRANSFERRED;
2396 
2397       p_to.TERM_DURATION := p_from.TERM_DURATION;
2398 
2399       p_to.DATETIME_PROPOSAL_EFFECTIVE := p_from.DATETIME_PROPOSAL_EFFECTIVE;
2400 
2401       p_to.DATETIME_PROPOSAL_INEFFECTIVE := p_from.DATETIME_PROPOSAL_INEFFECTIVE;
2402 
2403       p_to.DATE_PROPOSAL_ACCEPTED := p_from.DATE_PROPOSAL_ACCEPTED;
2404 
2405       p_to.ATTRIBUTE_CATEGORY := p_from.ATTRIBUTE_CATEGORY;
2406 
2407       p_to.ATTRIBUTE1 := p_from.ATTRIBUTE1;
2408 
2409       p_to.ATTRIBUTE2 := p_from.ATTRIBUTE2;
2410 
2411       p_to.ATTRIBUTE3 := p_from.ATTRIBUTE3;
2412 
2413       p_to.ATTRIBUTE4 := p_from.ATTRIBUTE4;
2414 
2415       p_to.ATTRIBUTE5 := p_from.ATTRIBUTE5;
2416 
2417       p_to.ATTRIBUTE6 := p_from.ATTRIBUTE6;
2418 
2419       p_to.ATTRIBUTE7 := p_from.ATTRIBUTE7;
2420 
2421       p_to.ATTRIBUTE8 := p_from.ATTRIBUTE8;
2422 
2423       p_to.ATTRIBUTE9 := p_from.ATTRIBUTE9;
2424 
2425       p_to.ATTRIBUTE10 := p_from.ATTRIBUTE10;
2426 
2427       p_to.ATTRIBUTE11 := p_from.ATTRIBUTE11;
2428 
2429       p_to.ATTRIBUTE12 := p_from.ATTRIBUTE12;
2430 
2431       p_to.ATTRIBUTE13 := p_from.ATTRIBUTE13;
2432 
2433       p_to.ATTRIBUTE14 := p_from.ATTRIBUTE14;
2434 
2435       p_to.ATTRIBUTE15 := p_from.ATTRIBUTE15;
2436 
2437       p_to.CREATED_BY := p_from.CREATED_BY;
2438 
2439       p_to.CREATION_DATE := p_from.CREATION_DATE;
2440 
2441       p_to.LAST_UPDATED_BY := p_from.LAST_UPDATED_BY;
2442 
2443       p_to.LAST_UPDATE_DATE := p_from.LAST_UPDATE_DATE;
2444 
2445       p_to.LAST_UPDATE_LOGIN := p_from.LAST_UPDATE_LOGIN;
2446 
2447       p_to.AMD_CODE := p_from.AMD_CODE;
2448 
2449       p_to.GENERATE_ACCRUAL_YN := p_from.GENERATE_ACCRUAL_YN;
2450 
2451       p_to.GENERATE_ACCRUAL_OVERRIDE_YN := p_from.GENERATE_ACCRUAL_OVERRIDE_YN;
2452 
2453       p_to.CREDIT_ACT_YN := p_from.CREDIT_ACT_YN;
2454 
2455       p_to.CONVERTED_ACCOUNT_YN := p_from.CONVERTED_ACCOUNT_YN;
2456 
2457       p_to.PRE_TAX_YIELD := p_from.PRE_TAX_YIELD;
2458 
2459       p_to.AFTER_TAX_YIELD := p_from.AFTER_TAX_YIELD;
2460 
2461       p_to.IMPLICIT_INTEREST_RATE := p_from.IMPLICIT_INTEREST_RATE;
2462 
2463       p_to.IMPLICIT_NON_IDC_INTEREST_RATE := p_from.IMPLICIT_NON_IDC_INTEREST_RATE;
2464 
2465       p_to.TARGET_PRE_TAX_YIELD := p_from.TARGET_PRE_TAX_YIELD;
2466 
2467       p_to.TARGET_AFTER_TAX_YIELD := p_from.TARGET_AFTER_TAX_YIELD;
2468 
2469       p_to.TARGET_IMPLICIT_INTEREST_RATE := p_from.TARGET_IMPLICIT_INTEREST_RATE;
2470 
2471       p_to.TARGET_IMPLICIT_NONIDC_INTRATE := p_from.TARGET_IMPLICIT_NONIDC_INTRATE;
2472 
2473       p_to.DATE_LAST_INTERIM_INTEREST_CAL := p_from.DATE_LAST_INTERIM_INTEREST_CAL;
2474 
2475       p_to.DEAL_TYPE := p_from.DEAL_TYPE;
2476 
2477       p_to.PRE_TAX_IRR := p_from.PRE_TAX_IRR;
2478 
2479       p_to.AFTER_TAX_IRR := p_from.AFTER_TAX_IRR;
2480 
2481       p_to.EXPECTED_DELIVERY_DATE := p_from.EXPECTED_DELIVERY_DATE;
2482 
2483       p_to.ACCEPTED_DATE := p_from.ACCEPTED_DATE;
2484 
2485       p_to.PREFUNDING_ELIGIBLE_YN := p_from.PREFUNDING_ELIGIBLE_YN;
2486 
2487       p_to.REVOLVING_CREDIT_YN := p_from.REVOLVING_CREDIT_YN;
2488 
2489 --Bug# 2697681 schema changes  11.5.9
2490       p_to.CURRENCY_CONVERSION_TYPE  := p_from.CURRENCY_CONVERSION_TYPE;
2491       p_to.CURRENCY_CONVERSION_RATE  := p_from.CURRENCY_CONVERSION_RATE;
2492       p_to.CURRENCY_CONVERSION_DATE  := p_from.CURRENCY_CONVERSION_DATE;
2493       p_to.MULTI_GAAP_YN             := p_from.MULTI_GAAP_YN;
2494       p_to.RECOURSE_CODE             := p_from.RECOURSE_CODE;
2495       p_to.LESSOR_SERV_ORG_CODE      := p_from.LESSOR_SERV_ORG_CODE;
2496       p_to.ASSIGNABLE_YN             := p_from.ASSIGNABLE_YN;
2497       p_to.SECURITIZED_CODE          := p_from.SECURITIZED_CODE;
2498       p_to.SECURITIZATION_TYPE       := p_from.SECURITIZATION_TYPE;
2499 --Bug# 3143522: 11.5.10
2500    --subsidy
2501    p_to.SUB_PRE_TAX_YIELD := p_from.SUB_PRE_TAX_YIELD;
2502    p_to.SUB_AFTER_TAX_YIELD := p_from.SUB_AFTER_TAX_YIELD;
2503    p_to.SUB_IMPL_INTEREST_RATE := p_from.SUB_IMPL_INTEREST_RATE;
2504    p_to.SUB_IMPL_NON_IDC_INT_RATE := p_from.SUB_IMPL_NON_IDC_INT_RATE;
2505    p_to.SUB_PRE_TAX_IRR := p_from.SUB_PRE_TAX_IRR;
2506    p_to.SUB_AFTER_TAX_IRR := p_from.SUB_AFTER_TAX_IRR;
2507   --Bug# 3973640 : 11.5.10+ schema changes
2508    p_to.TOT_CL_TRANSFER_AMT     := p_from.TOT_CL_TRANSFER_AMT;
2509    p_to.TOT_CL_NET_TRANSFER_AMT := p_from.TOT_CL_NET_TRANSFER_AMT;
2510    p_to.TOT_CL_LIMIT            := p_from.TOT_CL_LIMIT;
2511    p_to.TOT_CL_FUNDING_AMT      := p_from.TOT_CL_FUNDING_AMT;
2512    p_to.CRS_ID                  := p_from.CRS_ID;
2513    p_to.TEMPLATE_TYPE_CODE      := p_from.TEMPLATE_TYPE_CODE;
2514 --Bug# 4419339 OKLH Schema Sales Quote
2515    p_to.DATE_FUNDING_EXPECTED     := p_from.DATE_FUNDING_EXPECTED;
2516    p_to.DATE_TRADEIN 		  := p_from.DATE_TRADEIN;
2517    p_to.TRADEIN_AMOUNT            := p_from.TRADEIN_AMOUNT;
2518    p_to.TRADEIN_DESCRIPTION       := p_from.TRADEIN_DESCRIPTION;
2519    --Added by dpsingh for LE uptake
2520    p_to.LEGAL_ENTITY_ID       := p_from.LEGAL_ENTITY_ID;
2521   END migrate;
2522 
2523   PROCEDURE migrate (
2524     p_from	IN khr_rec_type,
2525     p_to	IN OUT NOCOPY okl_k_headers_h_rec_type
2526   ) IS
2527   BEGIN
2528 
2529       p_to.ID := p_from.ID;
2530 
2531       p_to.ISG_ID := p_from.ISG_ID;
2532 
2533       p_to.KHR_ID := p_from.KHR_ID;
2534 
2535       p_to.PDT_ID := p_from.PDT_ID;
2536 
2537       p_to.OBJECT_VERSION_NUMBER := p_from.OBJECT_VERSION_NUMBER;
2538 
2539       p_to.DATE_FIRST_ACTIVITY := p_from.DATE_FIRST_ACTIVITY;
2540 
2541       p_to.SYNDICATABLE_YN := p_from.SYNDICATABLE_YN;
2542 
2543       p_to.SALESTYPE_YN := p_from.SALESTYPE_YN;
2544 
2545       p_to.DATE_REFINANCED := p_from.DATE_REFINANCED;
2546 
2547       p_to.DATE_CONVERSION_EFFECTIVE := p_from.DATE_CONVERSION_EFFECTIVE;
2548 
2549       p_to.DATE_DEAL_TRANSFERRED := p_from.DATE_DEAL_TRANSFERRED;
2550 
2551       p_to.TERM_DURATION := p_from.TERM_DURATION;
2552 
2553       p_to.DATETIME_PROPOSAL_EFFECTIVE := p_from.DATETIME_PROPOSAL_EFFECTIVE;
2554 
2555       p_to.DATETIME_PROPOSAL_INEFFECTIVE := p_from.DATETIME_PROPOSAL_INEFFECTIVE;
2556 
2557       p_to.DATE_PROPOSAL_ACCEPTED := p_from.DATE_PROPOSAL_ACCEPTED;
2558 
2559       p_to.ATTRIBUTE_CATEGORY := p_from.ATTRIBUTE_CATEGORY;
2560 
2561       p_to.ATTRIBUTE1 := p_from.ATTRIBUTE1;
2562 
2563       p_to.ATTRIBUTE2 := p_from.ATTRIBUTE2;
2564 
2565       p_to.ATTRIBUTE3 := p_from.ATTRIBUTE3;
2566 
2567       p_to.ATTRIBUTE4 := p_from.ATTRIBUTE4;
2568 
2569       p_to.ATTRIBUTE5 := p_from.ATTRIBUTE5;
2570 
2571       p_to.ATTRIBUTE6 := p_from.ATTRIBUTE6;
2572 
2573       p_to.ATTRIBUTE7 := p_from.ATTRIBUTE7;
2574 
2575       p_to.ATTRIBUTE8 := p_from.ATTRIBUTE8;
2576 
2577       p_to.ATTRIBUTE9 := p_from.ATTRIBUTE9;
2578 
2579       p_to.ATTRIBUTE10 := p_from.ATTRIBUTE10;
2580 
2581       p_to.ATTRIBUTE11 := p_from.ATTRIBUTE11;
2582 
2583       p_to.ATTRIBUTE12 := p_from.ATTRIBUTE12;
2584 
2585       p_to.ATTRIBUTE13 := p_from.ATTRIBUTE13;
2586 
2587       p_to.ATTRIBUTE14 := p_from.ATTRIBUTE14;
2588 
2589       p_to.ATTRIBUTE15 := p_from.ATTRIBUTE15;
2590 
2591       p_to.CREATED_BY := p_from.CREATED_BY;
2592 
2593       p_to.CREATION_DATE := p_from.CREATION_DATE;
2594 
2595       p_to.LAST_UPDATED_BY := p_from.LAST_UPDATED_BY;
2596 
2597       p_to.LAST_UPDATE_DATE := p_from.LAST_UPDATE_DATE;
2598 
2599       p_to.LAST_UPDATE_LOGIN := p_from.LAST_UPDATE_LOGIN;
2600 
2601       p_to.AMD_CODE := p_from.AMD_CODE;
2602 
2603       p_to.GENERATE_ACCRUAL_YN := p_from.GENERATE_ACCRUAL_YN;
2604 
2605       p_to.GENERATE_ACCRUAL_OVERRIDE_YN := p_from.GENERATE_ACCRUAL_OVERRIDE_YN;
2606 
2607       p_to.CREDIT_ACT_YN := p_from.CREDIT_ACT_YN;
2608 
2609       p_to.CONVERTED_ACCOUNT_YN := p_from.CONVERTED_ACCOUNT_YN;
2610 
2611       p_to.PRE_TAX_YIELD := p_from.PRE_TAX_YIELD;
2612 
2613       p_to.AFTER_TAX_YIELD := p_from.AFTER_TAX_YIELD;
2614 
2615       p_to.IMPLICIT_INTEREST_RATE := p_from.IMPLICIT_INTEREST_RATE;
2616 
2617       p_to.IMPLICIT_NON_IDC_INTEREST_RATE := p_from.IMPLICIT_NON_IDC_INTEREST_RATE;
2618 
2619       p_to.TARGET_PRE_TAX_YIELD := p_from.TARGET_PRE_TAX_YIELD;
2620 
2621       p_to.TARGET_AFTER_TAX_YIELD := p_from.TARGET_AFTER_TAX_YIELD;
2622 
2623       p_to.TARGET_IMPLICIT_INTEREST_RATE := p_from.TARGET_IMPLICIT_INTEREST_RATE;
2624 
2625       p_to.TARGET_IMPLICIT_NONIDC_INTRATE := p_from.TARGET_IMPLICIT_NONIDC_INTRATE;
2626 
2627       p_to.DATE_LAST_INTERIM_INTEREST_CAL := p_from.DATE_LAST_INTERIM_INTEREST_CAL;
2628 
2629       p_to.DEAL_TYPE := p_from.DEAL_TYPE;
2630 
2631       p_to.PRE_TAX_IRR := p_from.PRE_TAX_IRR;
2632 
2633       p_to.AFTER_TAX_IRR := p_from.AFTER_TAX_IRR;
2634 
2635       p_to.EXPECTED_DELIVERY_DATE := p_from.EXPECTED_DELIVERY_DATE;
2636 
2637       p_to.ACCEPTED_DATE := p_from.ACCEPTED_DATE;
2638 
2639       p_to.PREFUNDING_ELIGIBLE_YN := p_from.PREFUNDING_ELIGIBLE_YN;
2640 
2641       p_to.REVOLVING_CREDIT_YN := p_from.REVOLVING_CREDIT_YN;
2642 
2643 --Bug# 2697681 schema changes  11.5.9
2644       p_to.CURRENCY_CONVERSION_TYPE  := p_from.CURRENCY_CONVERSION_TYPE;
2645       p_to.CURRENCY_CONVERSION_RATE  := p_from.CURRENCY_CONVERSION_RATE;
2646       p_to.CURRENCY_CONVERSION_DATE  := p_from.CURRENCY_CONVERSION_DATE;
2647       p_to.MULTI_GAAP_YN             := p_from.MULTI_GAAP_YN;
2648       p_to.RECOURSE_CODE             := p_from.RECOURSE_CODE;
2649       p_to.LESSOR_SERV_ORG_CODE      := p_from.LESSOR_SERV_ORG_CODE;
2650       p_to.ASSIGNABLE_YN             := p_from.ASSIGNABLE_YN;
2651       p_to.SECURITIZED_CODE          := p_from.SECURITIZED_CODE;
2652       p_to.SECURITIZATION_TYPE       := p_from.SECURITIZATION_TYPE;
2653 --Bug#3143522 : 11.5.10
2654    --subsidy
2655    p_to.SUB_PRE_TAX_YIELD := p_from.SUB_PRE_TAX_YIELD;
2656    p_to.SUB_AFTER_TAX_YIELD := p_from.SUB_AFTER_TAX_YIELD;
2657    p_to.SUB_IMPL_INTEREST_RATE := p_from.SUB_IMPL_INTEREST_RATE;
2658    p_to.SUB_IMPL_NON_IDC_INT_RATE := p_from.SUB_IMPL_NON_IDC_INT_RATE;
2659    p_to.SUB_PRE_TAX_IRR := p_from.SUB_PRE_TAX_IRR;
2660    p_to.SUB_AFTER_TAX_IRR := p_from.SUB_AFTER_TAX_IRR;
2661   --Bug# 3973640 : 11.5.10+ schema changes
2662    p_to.TOT_CL_TRANSFER_AMT     := p_from.TOT_CL_TRANSFER_AMT;
2663    p_to.TOT_CL_NET_TRANSFER_AMT := p_from.TOT_CL_NET_TRANSFER_AMT;
2664    p_to.TOT_CL_LIMIT            := p_from.TOT_CL_LIMIT;
2665    p_to.TOT_CL_FUNDING_AMT      := p_from.TOT_CL_FUNDING_AMT;
2666    p_to.CRS_ID                  := p_from.CRS_ID;
2667    p_to.TEMPLATE_TYPE_CODE      := p_from.TEMPLATE_TYPE_CODE;
2668 --Bug# 4419339 OKLH Schema Sales Quote
2669    p_to.DATE_FUNDING_EXPECTED     := p_from.DATE_FUNDING_EXPECTED;
2670    p_to.DATE_TRADEIN 		  := p_from.DATE_TRADEIN;
2671    p_to.TRADEIN_AMOUNT            := p_from.TRADEIN_AMOUNT;
2672    p_to.TRADEIN_DESCRIPTION       := p_from.TRADEIN_DESCRIPTION;
2673    --Added by dpsingh for LE uptake
2674    p_to.LEGAL_ENTITY_ID       := p_from.LEGAL_ENTITY_ID;
2675   END migrate;
2676 
2677 
2678 
2679   ---------------------------------------------------------------------------
2680   -- PROCEDURE validate_row
2681   ---------------------------------------------------------------------------
2682 
2683   --------------------------------------
2684   -- validate_row for: OKL_K_HEADERS_V --
2685   --------------------------------------
2686 
2687   PROCEDURE validate_row(
2688 
2689     p_api_version                  IN NUMBER,
2690     p_init_msg_list                IN VARCHAR2 ,
2691     x_return_status                OUT NOCOPY VARCHAR2,
2692     x_msg_count                    OUT NOCOPY NUMBER,
2693     x_msg_data                     OUT NOCOPY VARCHAR2,
2694     p_khrv_rec                     IN khrv_rec_type) IS
2695 
2696     l_api_version                 CONSTANT NUMBER := 1;
2697     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_validate_row';
2698     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2699     l_khrv_rec                     khrv_rec_type := p_khrv_rec;
2700   BEGIN
2701     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2702                                               G_PKG_NAME,
2703                                               p_init_msg_list,
2704                                               l_api_version,
2705                                               p_api_version,
2706                                               '_PVT',
2707                                               x_return_status);
2708 
2709     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2710       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2711     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2712       RAISE OKC_API.G_EXCEPTION_ERROR;
2713     END IF;
2714 
2715 
2716     --- Validate all non-missing attributes (Item Level Validation)
2717     l_return_status := Validate_Attributes(l_khrv_rec);
2718     --- If any errors happen abort API
2719 
2720     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2721       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2722     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2723       RAISE OKC_API.G_EXCEPTION_ERROR;
2724     END IF;
2725 
2726 
2727     l_return_status := Validate_Record(l_khrv_rec);
2728 
2729     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2730       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2731     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2732       RAISE OKC_API.G_EXCEPTION_ERROR;
2733     END IF;
2734 
2735 
2736     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2737 
2738   EXCEPTION
2739     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2740       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2741       (
2742         l_api_name,
2743         G_PKG_NAME,
2744         'OKC_API.G_RET_STS_ERROR',
2745         x_msg_count,
2746         x_msg_data,
2747         '_PVT'
2748       );
2749     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2750       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2751       (
2752         l_api_name,
2753         G_PKG_NAME,
2754         'OKC_API.G_RET_STS_UNEXP_ERROR',
2755         x_msg_count,
2756         x_msg_data,
2757         '_PVT'
2758       );
2759     WHEN OTHERS THEN
2760       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2761       (
2762         l_api_name,
2763         G_PKG_NAME,
2764         'OTHERS',
2765         x_msg_count,
2766         x_msg_data,
2767         '_PVT'
2768       );
2769 
2770   END validate_row;
2771   ------------------------------------------
2772   -- PL/SQL TBL validate_row for: OKL_K_HEADERS_V --
2773   ------------------------------------------
2774 
2775   PROCEDURE validate_row(
2776 
2777     p_api_version                  IN NUMBER,
2778     p_init_msg_list                IN VARCHAR2,
2779     x_return_status                OUT NOCOPY VARCHAR2,
2780     x_msg_count                    OUT NOCOPY NUMBER,
2781     x_msg_data                     OUT NOCOPY VARCHAR2,
2782     p_khrv_tbl                     IN khrv_tbl_type) IS
2783 
2784     l_api_version                 CONSTANT NUMBER := 1;
2785     l_api_name                     CONSTANT VARCHAR2(30) := 'tbl_validate_row';
2786     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2787     i                              NUMBER := 0;
2788   BEGIN
2789     OKC_API.init_msg_list(p_init_msg_list);
2790     -- Make sure PL/SQL table has records in it before passing
2791     IF (p_khrv_tbl.COUNT > 0) THEN
2792       i := p_khrv_tbl.FIRST;
2793       LOOP
2794         validate_row (
2795           p_api_version                  => p_api_version,
2796           p_init_msg_list                => OKC_API.G_FALSE,
2797           x_return_status                => x_return_status,
2798           x_msg_count                    => x_msg_count,
2799           x_msg_data                     => x_msg_data,
2800           p_khrv_rec                     => p_khrv_tbl(i));
2801         EXIT WHEN (i = p_khrv_tbl.LAST);
2802         i := p_khrv_tbl.NEXT(i);
2803       END LOOP;
2804     END IF;
2805 
2806   EXCEPTION
2807     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2808       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2809       (
2810         l_api_name,
2811         G_PKG_NAME,
2812         'OKC_API.G_RET_STS_ERROR',
2813         x_msg_count,
2814         x_msg_data,
2815         '_PVT'
2816       );
2817     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2818       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2819       (
2820         l_api_name,
2821         G_PKG_NAME,
2822         'OKC_API.G_RET_STS_UNEXP_ERROR',
2823         x_msg_count,
2824         x_msg_data,
2825         '_PVT'
2826       );
2827     WHEN OTHERS THEN
2828       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2829       (
2830         l_api_name,
2831         G_PKG_NAME,
2832         'OTHERS',
2833         x_msg_count,
2834         x_msg_data,
2835         '_PVT'
2836       );
2837 
2838   END validate_row;
2839 
2840 
2841   ---------------------------------------------------------------------------
2842   -- PROCEDURE insert_row
2843   ---------------------------------------------------------------------------
2844 
2845 
2846   ------------------------------------
2847   -- insert_row for: OKL_K_HEADERS_H --
2848   ------------------------------------
2849 
2850   PROCEDURE insert_row(
2851 
2852     p_api_version                  IN NUMBER,
2853     p_init_msg_list                IN VARCHAR2,
2854     x_return_status                OUT NOCOPY VARCHAR2,
2855     x_msg_count                    OUT NOCOPY NUMBER,
2856     x_msg_data                     OUT NOCOPY VARCHAR2,
2857     p_okl_k_headers_h_rec                     IN okl_k_headers_h_rec_type,
2858     x_okl_k_headers_h_rec                     OUT NOCOPY okl_k_headers_h_rec_type) IS
2859 
2860     l_api_version                 CONSTANT NUMBER := 1;
2861     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_insert_row';
2862     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2863     l_okl_k_headers_h_rec          okl_k_headers_h_rec_type := p_okl_k_headers_h_rec;
2864     l_def_okl_k_headers_h_rec      okl_k_headers_h_rec_type;
2865     ----------------------------------------
2866     -- Set_Attributes for: OKL_K_HEADERS_H --
2867     ----------------------------------------
2868     FUNCTION Set_Attributes (
2869       p_okl_k_headers_h_rec IN  okl_k_headers_h_rec_type,
2870       x_okl_k_headers_h_rec OUT NOCOPY okl_k_headers_h_rec_type
2871     ) RETURN VARCHAR2 IS
2872       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2873     BEGIN
2874       x_okl_k_headers_h_rec := p_okl_k_headers_h_rec;
2875       RETURN(l_return_status);
2876     END Set_Attributes;
2877   BEGIN
2878 
2879     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2880                                               p_init_msg_list,
2881                                               '_PVT',
2882                                               x_return_status);
2883 
2884     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2885       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2886     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2887       RAISE OKC_API.G_EXCEPTION_ERROR;
2888     END IF;
2889 
2890     --- Setting item attributes
2891     l_return_status := Set_Attributes(
2892       p_okl_k_headers_h_rec,             -- IN
2893       l_okl_k_headers_h_rec);            -- OUT
2894     --- If any errors happen abort API
2895 
2896     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2897       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2898     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2899       RAISE OKC_API.G_EXCEPTION_ERROR;
2900     END IF;
2901 
2902     INSERT INTO OKL_K_HEADERS_H(
2903 	ID,
2904         MAJOR_VERSION,
2905         ISG_ID,
2906         KHR_ID,
2907         PDT_ID,
2908         OBJECT_VERSION_NUMBER,
2909         DATE_FIRST_ACTIVITY,
2910         SYNDICATABLE_YN,
2911         SALESTYPE_YN,
2912         DATE_REFINANCED,
2913         DATE_CONVERSION_EFFECTIVE,
2914         DATE_DEAL_TRANSFERRED,
2915         TERM_DURATION,
2916         DATETIME_PROPOSAL_EFFECTIVE,
2917         DATETIME_PROPOSAL_INEFFECTIVE,
2918         DATE_PROPOSAL_ACCEPTED,
2919         ATTRIBUTE_CATEGORY,
2920         ATTRIBUTE1,
2921         ATTRIBUTE2,
2922         ATTRIBUTE3,
2923         ATTRIBUTE4,
2924         ATTRIBUTE5,
2925         ATTRIBUTE6,
2926         ATTRIBUTE7,
2927         ATTRIBUTE8,
2928         ATTRIBUTE9,
2929         ATTRIBUTE10,
2930         ATTRIBUTE11,
2931         ATTRIBUTE12,
2932         ATTRIBUTE13,
2933         ATTRIBUTE14,
2934         ATTRIBUTE15,
2935         CREATED_BY,
2936         CREATION_DATE,
2937         LAST_UPDATED_BY,
2938         LAST_UPDATE_DATE,
2939         LAST_UPDATE_LOGIN,
2940         AMD_CODE,
2941         GENERATE_ACCRUAL_YN,
2942         GENERATE_ACCRUAL_OVERRIDE_YN,
2943         CREDIT_ACT_YN,
2944         CONVERTED_ACCOUNT_YN,
2945         PRE_TAX_YIELD,
2946         AFTER_TAX_YIELD,
2947         IMPLICIT_INTEREST_RATE,
2948         IMPLICIT_NON_IDC_INTEREST_RATE,
2949         TARGET_PRE_TAX_YIELD,
2950         TARGET_AFTER_TAX_YIELD,
2951         TARGET_IMPLICIT_INTEREST_RATE,
2952         TARGET_IMPLICIT_NONIDC_INTRATE,
2953         DATE_LAST_INTERIM_INTEREST_CAL,
2954         DEAL_TYPE,
2955         PRE_TAX_IRR,
2956         AFTER_TAX_IRR,
2957         EXPECTED_DELIVERY_DATE,
2958         ACCEPTED_DATE,
2959         PREFUNDING_ELIGIBLE_YN,
2960         REVOLVING_CREDIT_YN,
2961 --Bug# 2697681 schema changes  11.5.9
2962         CURRENCY_CONVERSION_TYPE,
2963         CURRENCY_CONVERSION_RATE,
2964         CURRENCY_CONVERSION_DATE,
2965         MULTI_GAAP_YN,
2966         RECOURSE_CODE,
2967         LESSOR_SERV_ORG_CODE,
2968         ASSIGNABLE_YN,
2969         SECURITIZED_CODE,
2970         SECURITIZATION_TYPE,
2971 --Bug#3143522 : 11.5.10
2972    --subsidy
2973    SUB_PRE_TAX_YIELD,
2974    SUB_AFTER_TAX_YIELD,
2975    SUB_IMPL_INTEREST_RATE,
2976    SUB_IMPL_NON_IDC_INT_RATE,
2977    SUB_PRE_TAX_IRR,
2978    SUB_AFTER_TAX_IRR,
2979    --Bug# 3973640 : 11.5.10+ schema
2980    TOT_CL_TRANSFER_AMT,
2981    TOT_CL_NET_TRANSFER_AMT,
2982    TOT_CL_LIMIT,
2983    TOT_CL_FUNDING_AMT,
2984    CRS_ID,
2985    TEMPLATE_TYPE_CODE,
2986 --Bug# 4419339 OKLH Schema Sales Quote
2987    DATE_FUNDING_EXPECTED,
2988    DATE_TRADEIN,
2989    TRADEIN_AMOUNT,
2990    TRADEIN_DESCRIPTION,
2991     --Added by dpsingh for LE uptake
2992     LEGAL_ENTITY_ID
2993         )
2994       VALUES (
2995        l_okl_k_headers_h_rec.ID,
2996         l_okl_k_headers_h_rec.MAJOR_VERSION,
2997         l_okl_k_headers_h_rec.ISG_ID,
2998         l_okl_k_headers_h_rec.KHR_ID,
2999         l_okl_k_headers_h_rec.PDT_ID,
3000         l_okl_k_headers_h_rec.OBJECT_VERSION_NUMBER,
3001         l_okl_k_headers_h_rec.DATE_FIRST_ACTIVITY,
3002         l_okl_k_headers_h_rec.SYNDICATABLE_YN,
3003         l_okl_k_headers_h_rec.SALESTYPE_YN,
3004         l_okl_k_headers_h_rec.DATE_REFINANCED,
3005         l_okl_k_headers_h_rec.DATE_CONVERSION_EFFECTIVE,
3006         l_okl_k_headers_h_rec.DATE_DEAL_TRANSFERRED,
3007         l_okl_k_headers_h_rec.TERM_DURATION,
3008         l_okl_k_headers_h_rec.DATETIME_PROPOSAL_EFFECTIVE,
3009         l_okl_k_headers_h_rec.DATETIME_PROPOSAL_INEFFECTIVE,
3010         l_okl_k_headers_h_rec.DATE_PROPOSAL_ACCEPTED,
3011         l_okl_k_headers_h_rec.ATTRIBUTE_CATEGORY,
3012         l_okl_k_headers_h_rec.ATTRIBUTE1,
3013         l_okl_k_headers_h_rec.ATTRIBUTE2,
3014         l_okl_k_headers_h_rec.ATTRIBUTE3,
3015         l_okl_k_headers_h_rec.ATTRIBUTE4,
3016         l_okl_k_headers_h_rec.ATTRIBUTE5,
3017         l_okl_k_headers_h_rec.ATTRIBUTE6,
3018         l_okl_k_headers_h_rec.ATTRIBUTE7,
3019         l_okl_k_headers_h_rec.ATTRIBUTE8,
3020         l_okl_k_headers_h_rec.ATTRIBUTE9,
3021         l_okl_k_headers_h_rec.ATTRIBUTE10,
3022         l_okl_k_headers_h_rec.ATTRIBUTE11,
3023         l_okl_k_headers_h_rec.ATTRIBUTE12,
3024         l_okl_k_headers_h_rec.ATTRIBUTE13,
3025         l_okl_k_headers_h_rec.ATTRIBUTE14,
3026         l_okl_k_headers_h_rec.ATTRIBUTE15,
3027         l_okl_k_headers_h_rec.CREATED_BY,
3028         l_okl_k_headers_h_rec.CREATION_DATE,
3029         l_okl_k_headers_h_rec.LAST_UPDATED_BY,
3030         l_okl_k_headers_h_rec.LAST_UPDATE_DATE,
3031         l_okl_k_headers_h_rec.LAST_UPDATE_LOGIN,
3032         l_okl_k_headers_h_rec.AMD_CODE,
3033         l_okl_k_headers_h_rec.GENERATE_ACCRUAL_YN,
3034         l_okl_k_headers_h_rec.GENERATE_ACCRUAL_OVERRIDE_YN,
3035         l_okl_k_headers_h_rec.CREDIT_ACT_YN,
3036         l_okl_k_headers_h_rec.CONVERTED_ACCOUNT_YN,
3037         l_okl_k_headers_h_rec.PRE_TAX_YIELD,
3038         l_okl_k_headers_h_rec.AFTER_TAX_YIELD,
3039         l_okl_k_headers_h_rec.IMPLICIT_INTEREST_RATE,
3040         l_okl_k_headers_h_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
3041         l_okl_k_headers_h_rec.TARGET_PRE_TAX_YIELD,
3042         l_okl_k_headers_h_rec.TARGET_AFTER_TAX_YIELD,
3043         l_okl_k_headers_h_rec.TARGET_IMPLICIT_INTEREST_RATE,
3044         l_okl_k_headers_h_rec.TARGET_IMPLICIT_NONIDC_INTRATE,
3045         l_okl_k_headers_h_rec.DATE_LAST_INTERIM_INTEREST_CAL,
3046         l_okl_k_headers_h_rec.DEAL_TYPE,
3047         l_okl_k_headers_h_rec.PRE_TAX_IRR,
3048         l_okl_k_headers_h_rec.AFTER_TAX_IRR,
3049         l_okl_k_headers_h_rec.EXPECTED_DELIVERY_DATE,
3050         l_okl_k_headers_h_rec.ACCEPTED_DATE,
3051         l_okl_k_headers_h_rec.PREFUNDING_ELIGIBLE_YN,
3052         l_okl_k_headers_h_rec.REVOLVING_CREDIT_YN,
3053         --Bug# 2697681 schema changes  11.5.9
3054         l_okl_k_headers_h_rec.CURRENCY_CONVERSION_TYPE,
3055         l_okl_k_headers_h_rec.CURRENCY_CONVERSION_RATE,
3056         l_okl_k_headers_h_rec.CURRENCY_CONVERSION_DATE,
3057         l_okl_k_headers_h_rec.MULTI_GAAP_YN,
3058         l_okl_k_headers_h_rec.RECOURSE_CODE,
3059         l_okl_k_headers_h_rec.LESSOR_SERV_ORG_CODE,
3060         l_okl_k_headers_h_rec.ASSIGNABLE_YN,
3061         l_okl_k_headers_h_rec.SECURITIZED_CODE,
3062         l_okl_k_headers_h_rec.SECURITIZATION_TYPE,
3063 --Bug#3143522 : 11.5.10
3064    --subsidy
3065    l_okl_k_headers_h_rec.SUB_PRE_TAX_YIELD,
3066    l_okl_k_headers_h_rec.SUB_AFTER_TAX_YIELD,
3067    l_okl_k_headers_h_rec.SUB_IMPL_INTEREST_RATE,
3068    l_okl_k_headers_h_rec.SUB_IMPL_NON_IDC_INT_RATE,
3069    l_okl_k_headers_h_rec.SUB_PRE_TAX_IRR,
3070    l_okl_k_headers_h_rec.SUB_AFTER_TAX_IRR,
3071    --Bug# 3973640 : 11.5.10+ schema
3072    l_okl_k_headers_h_rec.TOT_CL_TRANSFER_AMT,
3073    l_okl_k_headers_h_rec.TOT_CL_NET_TRANSFER_AMT,
3074    l_okl_k_headers_h_rec.TOT_CL_LIMIT,
3075    l_okl_k_headers_h_rec.TOT_CL_FUNDING_AMT,
3076    l_okl_k_headers_h_rec.CRS_ID,
3077    l_okl_k_headers_h_rec.TEMPLATE_TYPE_CODE,
3078 --Bug# 4419339 OKLH Schema Sales Quote
3079    l_okl_k_headers_h_rec.DATE_FUNDING_EXPECTED,
3080    l_okl_k_headers_h_rec.DATE_TRADEIN,
3081    l_okl_k_headers_h_rec.TRADEIN_AMOUNT,
3082    l_okl_k_headers_h_rec.TRADEIN_DESCRIPTION,
3083    --Added by dpsingh for LE uptake
3084    l_okl_k_headers_h_rec.LEGAL_ENTITY_ID);
3085     -- Set OUT values
3086     x_okl_k_headers_h_rec := l_okl_k_headers_h_rec;
3087     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3088 
3089   EXCEPTION
3090     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3091       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3092       (
3093         l_api_name,
3094         G_PKG_NAME,
3095         'OKC_API.G_RET_STS_ERROR',
3096         x_msg_count,
3097         x_msg_data,
3098         '_PVT'
3099       );
3100     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3101       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3102       (
3103         l_api_name,
3104         G_PKG_NAME,
3105         'OKC_API.G_RET_STS_UNEXP_ERROR',
3106         x_msg_count,
3107         x_msg_data,
3108         '_PVT'
3109       );
3110     WHEN OTHERS THEN
3111       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3112       (
3113         l_api_name,
3114         G_PKG_NAME,
3115         'OTHERS',
3116         x_msg_count,
3117         x_msg_data,
3118         '_PVT'
3119       );
3120 
3121   END insert_row;
3122 
3123   ------------------------------------
3124   -- insert_row for: OKL_K_HEADERS --
3125   ------------------------------------
3126 
3127   PROCEDURE insert_row(
3128 
3129     p_api_version                  IN NUMBER,
3130     p_init_msg_list                IN VARCHAR2,
3131     x_return_status                OUT NOCOPY VARCHAR2,
3132     x_msg_count                    OUT NOCOPY NUMBER,
3133     x_msg_data                     OUT NOCOPY VARCHAR2,
3134     p_khr_rec                     IN khr_rec_type,
3135     x_khr_rec                     OUT NOCOPY khr_rec_type) IS
3136 
3137     l_api_version                 CONSTANT NUMBER := 1;
3138     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_insert_row';
3139     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3140     l_khr_rec          khr_rec_type := p_khr_rec;
3141     l_def_khr_rec      khr_rec_type;
3142     ----------------------------------------
3143     -- Set_Attributes for: OKL_K_HEADERS --
3144     ----------------------------------------
3145     FUNCTION Set_Attributes (
3146       p_khr_rec IN  khr_rec_type,
3147       x_khr_rec OUT NOCOPY khr_rec_type
3148     ) RETURN VARCHAR2 IS
3149       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3150     BEGIN
3151       x_khr_rec := p_khr_rec;
3152       RETURN(l_return_status);
3153     END Set_Attributes;
3154   BEGIN
3155 
3156     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3157                                               p_init_msg_list,
3158                                               '_PVT',
3159                                               x_return_status);
3160 
3161     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3162       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3163     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3164       RAISE OKC_API.G_EXCEPTION_ERROR;
3165     END IF;
3166 
3167     --- Setting item attributes
3168     l_return_status := Set_Attributes(
3169       p_khr_rec,             -- IN
3170       l_khr_rec);            -- OUT
3171     --- If any errors happen abort API
3172 
3173     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3174       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3175     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3176       RAISE OKC_API.G_EXCEPTION_ERROR;
3177     END IF;
3178 
3179     INSERT INTO OKL_K_HEADERS(
3180 	ID,
3181         ISG_ID,
3182         KHR_ID,
3183         PDT_ID,
3184         OBJECT_VERSION_NUMBER,
3185         DATE_FIRST_ACTIVITY,
3186         SYNDICATABLE_YN,
3187         SALESTYPE_YN,
3188         DATE_REFINANCED,
3189         DATE_CONVERSION_EFFECTIVE,
3190         DATE_DEAL_TRANSFERRED,
3191         TERM_DURATION,
3192         DATETIME_PROPOSAL_EFFECTIVE,
3193         DATETIME_PROPOSAL_INEFFECTIVE,
3194         DATE_PROPOSAL_ACCEPTED,
3195         ATTRIBUTE_CATEGORY,
3196         ATTRIBUTE1,
3197         ATTRIBUTE2,
3198         ATTRIBUTE3,
3199         ATTRIBUTE4,
3200         ATTRIBUTE5,
3201         ATTRIBUTE6,
3202         ATTRIBUTE7,
3203         ATTRIBUTE8,
3204         ATTRIBUTE9,
3205         ATTRIBUTE10,
3206         ATTRIBUTE11,
3207         ATTRIBUTE12,
3208         ATTRIBUTE13,
3209         ATTRIBUTE14,
3210         ATTRIBUTE15,
3211         CREATED_BY,
3212         CREATION_DATE,
3213         LAST_UPDATED_BY,
3214         LAST_UPDATE_DATE,
3215         LAST_UPDATE_LOGIN,
3216         AMD_CODE,
3217         GENERATE_ACCRUAL_YN,
3218         GENERATE_ACCRUAL_OVERRIDE_YN,
3219         CREDIT_ACT_YN,
3220         CONVERTED_ACCOUNT_YN,
3221         PRE_TAX_YIELD,
3222         AFTER_TAX_YIELD,
3223         IMPLICIT_INTEREST_RATE,
3224         IMPLICIT_NON_IDC_INTEREST_RATE,
3225         TARGET_PRE_TAX_YIELD,
3226         TARGET_AFTER_TAX_YIELD,
3227         TARGET_IMPLICIT_INTEREST_RATE,
3228         TARGET_IMPLICIT_NONIDC_INTRATE,
3229         DATE_LAST_INTERIM_INTEREST_CAL,
3230         DEAL_TYPE,
3231         PRE_TAX_IRR,
3232         AFTER_TAX_IRR,
3233         EXPECTED_DELIVERY_DATE,
3234         ACCEPTED_DATE,
3235         PREFUNDING_ELIGIBLE_YN,
3236         REVOLVING_CREDIT_YN,
3237 --Bug# 2697681 schema changes  11.5.9
3238         CURRENCY_CONVERSION_TYPE,
3239         CURRENCY_CONVERSION_RATE,
3240         CURRENCY_CONVERSION_DATE,
3241         MULTI_GAAP_YN,
3242         RECOURSE_CODE,
3243         LESSOR_SERV_ORG_CODE,
3244         ASSIGNABLE_YN,
3245         SECURITIZED_CODE,
3246         SECURITIZATION_TYPE,
3247 --Bug#3143522 : 11.5.10
3248    --subsidy
3249    SUB_PRE_TAX_YIELD,
3250    SUB_AFTER_TAX_YIELD,
3251    SUB_IMPL_INTEREST_RATE,
3252    SUB_IMPL_NON_IDC_INT_RATE,
3253    SUB_PRE_TAX_IRR,
3254    SUB_AFTER_TAX_IRR,
3255   --Bug# 3973640 : 11.5.10+ schema
3256    TOT_CL_TRANSFER_AMT,
3257    TOT_CL_NET_TRANSFER_AMT,
3258    TOT_CL_LIMIT,
3259    TOT_CL_FUNDING_AMT,
3260   -- Schema Change for Vendor Enhancements
3261    CRS_ID,
3262    TEMPLATE_TYPE_CODE,
3263 --Bug# 4419339 OKLH Schema Sales Quote
3264    DATE_FUNDING_EXPECTED,
3265    DATE_TRADEIN,
3266    TRADEIN_AMOUNT,
3267    TRADEIN_DESCRIPTION,
3268    --Added by dpsingh for LE uptake
3269    LEGAL_ENTITY_ID
3270         )
3271       VALUES (
3272        l_khr_rec.ID,
3273         l_khr_rec.ISG_ID,
3274         l_khr_rec.KHR_ID,
3275         l_khr_rec.PDT_ID,
3276         l_khr_rec.OBJECT_VERSION_NUMBER,
3277         l_khr_rec.DATE_FIRST_ACTIVITY,
3278         l_khr_rec.SYNDICATABLE_YN,
3279         l_khr_rec.SALESTYPE_YN,
3280         l_khr_rec.DATE_REFINANCED,
3281         l_khr_rec.DATE_CONVERSION_EFFECTIVE,
3282         l_khr_rec.DATE_DEAL_TRANSFERRED,
3283         l_khr_rec.TERM_DURATION,
3284         l_khr_rec.DATETIME_PROPOSAL_EFFECTIVE,
3285         l_khr_rec.DATETIME_PROPOSAL_INEFFECTIVE,
3286         l_khr_rec.DATE_PROPOSAL_ACCEPTED,
3287         l_khr_rec.ATTRIBUTE_CATEGORY,
3288         l_khr_rec.ATTRIBUTE1,
3289         l_khr_rec.ATTRIBUTE2,
3290         l_khr_rec.ATTRIBUTE3,
3291         l_khr_rec.ATTRIBUTE4,
3292         l_khr_rec.ATTRIBUTE5,
3293         l_khr_rec.ATTRIBUTE6,
3294         l_khr_rec.ATTRIBUTE7,
3295         l_khr_rec.ATTRIBUTE8,
3296         l_khr_rec.ATTRIBUTE9,
3297         l_khr_rec.ATTRIBUTE10,
3298         l_khr_rec.ATTRIBUTE11,
3299         l_khr_rec.ATTRIBUTE12,
3300         l_khr_rec.ATTRIBUTE13,
3301         l_khr_rec.ATTRIBUTE14,
3302         l_khr_rec.ATTRIBUTE15,
3303         l_khr_rec.CREATED_BY,
3304         l_khr_rec.CREATION_DATE,
3305         l_khr_rec.LAST_UPDATED_BY,
3306         l_khr_rec.LAST_UPDATE_DATE,
3307         l_khr_rec.LAST_UPDATE_LOGIN,
3308         l_khr_rec.AMD_CODE,
3309         l_khr_rec.GENERATE_ACCRUAL_YN,
3310         l_khr_rec.GENERATE_ACCRUAL_OVERRIDE_YN,
3311         l_khr_rec.CREDIT_ACT_YN,
3312         l_khr_rec.CONVERTED_ACCOUNT_YN,
3313         l_khr_rec.PRE_TAX_YIELD,
3314         l_khr_rec.AFTER_TAX_YIELD,
3315         l_khr_rec.IMPLICIT_INTEREST_RATE,
3316         l_khr_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
3317         l_khr_rec.TARGET_PRE_TAX_YIELD,
3318         l_khr_rec.TARGET_AFTER_TAX_YIELD,
3319         l_khr_rec.TARGET_IMPLICIT_INTEREST_RATE,
3320         l_khr_rec.TARGET_IMPLICIT_NONIDC_INTRATE,
3321         l_khr_rec.DATE_LAST_INTERIM_INTEREST_CAL,
3322         l_khr_rec.DEAL_TYPE,
3323         l_khr_rec.PRE_TAX_IRR,
3324         l_khr_rec.AFTER_TAX_IRR,
3325         l_khr_rec.EXPECTED_DELIVERY_DATE,
3326         l_khr_rec.ACCEPTED_DATE,
3327         l_khr_rec.PREFUNDING_ELIGIBLE_YN,
3328         l_khr_rec.REVOLVING_CREDIT_YN,
3329 --Bug# 2697681 schema changes  11.5.9
3330         l_khr_rec.CURRENCY_CONVERSION_TYPE,
3331         l_khr_rec.CURRENCY_CONVERSION_RATE,
3332         l_khr_rec.CURRENCY_CONVERSION_DATE,
3333         l_khr_rec.MULTI_GAAP_YN,
3334         l_khr_rec.RECOURSE_CODE,
3335         l_khr_rec.LESSOR_SERV_ORG_CODE,
3336         l_khr_rec.ASSIGNABLE_YN,
3337         l_khr_rec.SECURITIZED_CODE,
3338         l_khr_rec.SECURITIZATION_TYPE,
3339 --Bug#3143522 : 11.5.10
3340    --subsidy
3341    l_khr_rec.SUB_PRE_TAX_YIELD,
3342    l_khr_rec.SUB_AFTER_TAX_YIELD,
3343    l_khr_rec.SUB_IMPL_INTEREST_RATE,
3344    l_khr_rec.SUB_IMPL_NON_IDC_INT_RATE,
3345    l_khr_rec.SUB_PRE_TAX_IRR,
3346    l_khr_rec.SUB_AFTER_TAX_IRR,
3347   --Bug# 3973640 : 11.5.10+ schema
3348    l_khr_rec.TOT_CL_TRANSFER_AMT,
3349    l_khr_rec.TOT_CL_NET_TRANSFER_AMT,
3350    l_khr_rec.TOT_CL_LIMIT,
3351    l_khr_rec.TOT_CL_FUNDING_AMT,
3352   -- Schema Change for Vendor Enhancements
3353    l_khr_rec.CRS_ID,
3354    l_khr_rec.TEMPLATE_TYPE_CODE,
3355 --Bug# 4419339 OKLH Schema Sales Quote
3356    l_khr_rec.DATE_FUNDING_EXPECTED,
3357    l_khr_rec.DATE_TRADEIN,
3358    l_khr_rec.TRADEIN_AMOUNT,
3359    l_khr_rec.TRADEIN_DESCRIPTION,
3360    --Added by dpsingh for LE uptake
3361    l_khr_rec.LEGAL_ENTITY_ID);
3362     -- Set OUT values
3363     x_khr_rec := l_khr_rec;
3364     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3365 
3366   EXCEPTION
3367     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3368       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3369       (
3370         l_api_name,
3371         G_PKG_NAME,
3372         'OKC_API.G_RET_STS_ERROR',
3373         x_msg_count,
3374         x_msg_data,
3375         '_PVT'
3376       );
3377     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3378       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3379       (
3380         l_api_name,
3381         G_PKG_NAME,
3382         'OKC_API.G_RET_STS_UNEXP_ERROR',
3383         x_msg_count,
3384         x_msg_data,
3385         '_PVT'
3386       );
3387     WHEN OTHERS THEN
3388       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3389       (
3390         l_api_name,
3391         G_PKG_NAME,
3392         'OTHERS',
3393         x_msg_count,
3394         x_msg_data,
3395         '_PVT'
3396       );
3397 
3398   END insert_row;
3399 
3400   ------------------------------------
3401   -- insert_row for: OKL_K_HEADERS_V --
3402   ------------------------------------
3403 
3404   PROCEDURE insert_row(
3405 
3406     p_api_version                  IN NUMBER,
3407     p_init_msg_list                IN VARCHAR2,
3408     x_return_status                OUT NOCOPY VARCHAR2,
3409     x_msg_count                    OUT NOCOPY NUMBER,
3410     x_msg_data                     OUT NOCOPY VARCHAR2,
3411     p_khrv_rec                     IN khrv_rec_type,
3412     x_khrv_rec                     OUT NOCOPY khrv_rec_type) IS
3413 
3414     l_api_version                 CONSTANT NUMBER := 1;
3415     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_insert_row';
3416     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3417     l_khrv_rec                     khrv_rec_type;
3418     l_def_khrv_rec                 khrv_rec_type;
3419     l_khr_rec                      khr_rec_type;
3420     lx_khr_rec                     khr_rec_type;
3421     -------------------------------
3422     -- FUNCTION fill_who_columns --
3423     -------------------------------
3424     FUNCTION fill_who_columns (
3425       p_khrv_rec	IN khrv_rec_type
3426     ) RETURN khrv_rec_type IS
3427       l_khrv_rec	khrv_rec_type := p_khrv_rec;
3428     BEGIN
3429       l_khrv_rec.CREATION_DATE := SYSDATE;
3430       l_khrv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
3431       l_khrv_rec.LAST_UPDATE_DATE := SYSDATE;
3432       l_khrv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3433       l_khrv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3434       RETURN(l_khrv_rec);
3435     END fill_who_columns;
3436     ----------------------------------------
3437     -- Set_Attributes for: OKL_K_HEADERS_V --
3438     ----------------------------------------
3439     FUNCTION Set_Attributes (
3440       p_khrv_rec IN  khrv_rec_type,
3441       x_khrv_rec OUT NOCOPY khrv_rec_type
3442     ) RETURN VARCHAR2 IS
3443       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3444     BEGIN
3445       x_khrv_rec := p_khrv_rec;
3446       x_khrv_rec.OBJECT_VERSION_NUMBER := 1;
3447       RETURN(l_return_status);
3448     END Set_Attributes;
3449   BEGIN
3450     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3451                                               G_PKG_NAME,
3452                                               p_init_msg_list,
3453                                               l_api_version,
3454                                               p_api_version,
3455                                               '_PVT',
3456                                               x_return_status);
3457 
3458     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3459       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3460     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3461       RAISE OKC_API.G_EXCEPTION_ERROR;
3462     END IF;
3463 
3464     l_khrv_rec := null_out_defaults(p_khrv_rec);
3465 
3466     -- Set primary key value
3467     -- modified by Miroslav Samoilenko
3468     if ( l_khrv_rec.ID is null) then
3469       l_khrv_rec.ID := get_seq_id;
3470     end if;
3471 
3472     --- Setting item attributes
3473     l_return_status := Set_Attributes(
3474       l_khrv_rec,                        -- IN
3475       l_def_khrv_rec);                   -- OUT
3476     --- If any errors happen abort API
3477 
3478     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3479       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3480     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3481       RAISE OKC_API.G_EXCEPTION_ERROR;
3482     END IF;
3483 
3484     l_def_khrv_rec := fill_who_columns(l_def_khrv_rec);
3485     --- Validate all non-missing attributes (Item Level Validation)
3486     l_return_status := Validate_Attributes(l_def_khrv_rec);
3487     --- If any errors happen abort API
3488 
3489     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3490       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3491     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3492       RAISE OKC_API.G_EXCEPTION_ERROR;
3493     END IF;
3494 
3495     l_return_status := Validate_Record(l_def_khrv_rec);
3496 
3497     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3498       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3499     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3500       RAISE OKC_API.G_EXCEPTION_ERROR;
3501     END IF;
3502 
3503     --------------------------------------
3504     -- Move VIEW record to "Child" records
3505     --------------------------------------
3506     migrate(l_def_khrv_rec, l_khr_rec);
3507     --------------------------------------------
3508     -- Call the INSERT_ROW for each child record
3509     --------------------------------------------
3510     insert_row(
3511       l_api_version,
3512       p_init_msg_list,
3513       x_return_status,
3514       x_msg_count,
3515       x_msg_data,
3516       l_khr_rec,
3517       lx_khr_rec
3518     );
3519 
3520     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3521       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3522     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3523       RAISE OKC_API.G_EXCEPTION_ERROR;
3524     END IF;
3525 
3526     migrate(lx_khr_rec, l_def_khrv_rec);
3527     -- Set OUT values
3528     x_khrv_rec := l_def_khrv_rec;
3529     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3530 
3531   EXCEPTION
3532     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3533       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3534       (
3535         l_api_name,
3536         G_PKG_NAME,
3537         'OKC_API.G_RET_STS_ERROR',
3538         x_msg_count,
3539         x_msg_data,
3540         '_PVT'
3541       );
3542     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3543       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3544       (
3545         l_api_name,
3546         G_PKG_NAME,
3547         'OKC_API.G_RET_STS_UNEXP_ERROR',
3548         x_msg_count,
3549         x_msg_data,
3550         '_PVT'
3551       );
3552     WHEN OTHERS THEN
3553       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3554       (
3555         l_api_name,
3556         G_PKG_NAME,
3557         'OTHERS',
3558         x_msg_count,
3559         x_msg_data,
3560         '_PVT'
3561       );
3562 
3563   END insert_row;
3564 
3565   ----------------------------------------
3566   -- PL/SQL TBL insert_row for: OKL_K_HEADERS_V --
3567   ----------------------------------------
3568 
3569   PROCEDURE insert_row(
3570 
3571     p_api_version                  IN NUMBER,
3572     p_init_msg_list                IN VARCHAR2,
3573     x_return_status                OUT NOCOPY VARCHAR2,
3574     x_msg_count                    OUT NOCOPY NUMBER,
3575     x_msg_data                     OUT NOCOPY VARCHAR2,
3576     p_khrv_tbl                     IN khrv_tbl_type,
3577     x_khrv_tbl                     OUT NOCOPY khrv_tbl_type) IS
3578 
3579     l_api_version                 CONSTANT NUMBER := 1;
3580     l_api_name                     CONSTANT VARCHAR2(30) := 'tbl_insert_row';
3581     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3582     i                              NUMBER := 0;
3583   BEGIN
3584     OKC_API.init_msg_list(p_init_msg_list);
3585     -- Make sure PL/SQL table has records in it before passing
3586     IF (p_khrv_tbl.COUNT > 0) THEN
3587       i := p_khrv_tbl.FIRST;
3588       LOOP
3589         insert_row (
3590           p_api_version                  => p_api_version,
3591           p_init_msg_list                => OKC_API.G_FALSE,
3592           x_return_status                => x_return_status,
3593           x_msg_count                    => x_msg_count,
3594           x_msg_data                     => x_msg_data,
3595           p_khrv_rec                     => p_khrv_tbl(i),
3596           x_khrv_rec                     => x_khrv_tbl(i));
3597         EXIT WHEN (i = p_khrv_tbl.LAST);
3598         i := p_khrv_tbl.NEXT(i);
3599       END LOOP;
3600     END IF;
3601 
3602   EXCEPTION
3603     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3604       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3605       (
3606         l_api_name,
3607         G_PKG_NAME,
3608         'OKC_API.G_RET_STS_ERROR',
3609         x_msg_count,
3610         x_msg_data,
3611         '_PVT'
3612       );
3613     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3614       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3615       (
3616         l_api_name,
3617         G_PKG_NAME,
3618         'OKC_API.G_RET_STS_UNEXP_ERROR',
3619         x_msg_count,
3620         x_msg_data,
3621         '_PVT'
3622       );
3623     WHEN OTHERS THEN
3624       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3625       (
3626         l_api_name,
3627         G_PKG_NAME,
3628         'OTHERS',
3629         x_msg_count,
3630         x_msg_data,
3631         '_PVT'
3632       );
3633 
3634   END insert_row;
3635 
3636 
3637   ---------------------------------------------------------------------------
3638   -- PROCEDURE lock_row
3639   ---------------------------------------------------------------------------
3640 
3641   --------------------------------
3642   -- lock_row for: OKL_K_HEADERS --
3643   --------------------------------
3644 
3645   PROCEDURE lock_row(
3646 
3647     p_api_version                  IN NUMBER,
3648     p_init_msg_list                IN VARCHAR2,
3649     x_return_status                OUT NOCOPY VARCHAR2,
3650     x_msg_count                    OUT NOCOPY NUMBER,
3651     x_msg_data                     OUT NOCOPY VARCHAR2,
3652     p_khr_rec                     IN khr_rec_type) IS
3653 
3654     E_Resource_Busy               EXCEPTION;
3655     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
3656     CURSOR lock_csr (p_khr_rec IN khr_rec_type) IS
3657     SELECT OBJECT_VERSION_NUMBER
3658       FROM OKL_K_HEADERS
3659      WHERE ID = p_khr_rec.id
3660        AND OBJECT_VERSION_NUMBER = p_khr_rec.object_version_number
3661     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
3662 
3663     CURSOR  lchk_csr (p_khr_rec IN khr_rec_type) IS
3664     SELECT OBJECT_VERSION_NUMBER
3665       FROM OKL_K_HEADERS
3666     WHERE ID = p_khr_rec.id;
3667     l_api_version                 CONSTANT NUMBER := 1;
3668     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_lock_row';
3669     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3670     l_object_version_number       OKL_K_HEADERS.OBJECT_VERSION_NUMBER%TYPE;
3671     lc_object_version_number      OKL_K_HEADERS.OBJECT_VERSION_NUMBER%TYPE;
3672     l_row_notfound                BOOLEAN := FALSE;
3673     lc_row_notfound               BOOLEAN := FALSE;
3674   BEGIN
3675     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3676                                               p_init_msg_list,
3677                                               '_PVT',
3678                                               x_return_status);
3679 
3680     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3681       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3682     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3683       RAISE OKC_API.G_EXCEPTION_ERROR;
3684     END IF;
3685 
3686     BEGIN
3687       OPEN lock_csr(p_khr_rec);
3688       FETCH lock_csr INTO l_object_version_number;
3689       l_row_notfound := lock_csr%NOTFOUND;
3690       CLOSE lock_csr;
3691     EXCEPTION
3692       WHEN E_Resource_Busy THEN
3693         IF (lock_csr%ISOPEN) THEN
3694           CLOSE lock_csr;
3695         END IF;
3696         OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
3697         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
3698     END;
3699 
3700     IF ( l_row_notfound ) THEN
3701       OPEN lchk_csr(p_khr_rec);
3702       FETCH lchk_csr INTO lc_object_version_number;
3703       lc_row_notfound := lchk_csr%NOTFOUND;
3704       CLOSE lchk_csr;
3705     END IF;
3706     IF (lc_row_notfound) THEN
3707       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
3708       RAISE OKC_API.G_EXCEPTION_ERROR;
3709     ELSIF lc_object_version_number > p_khr_rec.object_version_number THEN
3710       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3711       RAISE OKC_API.G_EXCEPTION_ERROR;
3712     ELSIF lc_object_version_number <> p_khr_rec.object_version_number THEN
3713       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3714       RAISE OKC_API.G_EXCEPTION_ERROR;
3715     ELSIF lc_object_version_number = -1 THEN
3716       OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
3717       RAISE OKC_API.G_EXCEPTION_ERROR;
3718     END IF;
3719     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3720 
3721   EXCEPTION
3722     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3723       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3724       (
3725         l_api_name,
3726         G_PKG_NAME,
3727         'OKC_API.G_RET_STS_ERROR',
3728         x_msg_count,
3729         x_msg_data,
3730         '_PVT'
3731       );
3732     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3733       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3734       (
3735         l_api_name,
3736         G_PKG_NAME,
3737         'OKC_API.G_RET_STS_UNEXP_ERROR',
3738         x_msg_count,
3739         x_msg_data,
3740         '_PVT'
3741       );
3742     WHEN OTHERS THEN
3743       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3744       (
3745         l_api_name,
3746         G_PKG_NAME,
3747         'OTHERS',
3748         x_msg_count,
3749         x_msg_data,
3750         '_PVT'
3751       );
3752 
3753   END lock_row;
3754 
3755   ----------------------------------
3756   -- lock_row for: OKL_K_HEADERS_V --
3757   ----------------------------------
3758 
3759   PROCEDURE lock_row(
3760 
3761     p_api_version                  IN NUMBER,
3762     p_init_msg_list                IN VARCHAR2,
3763     x_return_status                OUT NOCOPY VARCHAR2,
3764     x_msg_count                    OUT NOCOPY NUMBER,
3765     x_msg_data                     OUT NOCOPY VARCHAR2,
3766     p_khrv_rec                     IN khrv_rec_type) IS
3767 
3768     l_api_version                 CONSTANT NUMBER := 1;
3769     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_lock_row';
3770     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3771     l_khr_rec                      khr_rec_type;
3772   BEGIN
3773     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3774                                               G_PKG_NAME,
3775                                               p_init_msg_list,
3776                                               l_api_version,
3777                                               p_api_version,
3778                                               '_PVT',
3779                                               x_return_status);
3780 
3781     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3782       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3783     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3784       RAISE OKC_API.G_EXCEPTION_ERROR;
3785     END IF;
3786 
3787     --------------------------------------
3788     -- Move VIEW record to "Child" records
3789     --------------------------------------
3790     migrate(p_khrv_rec, l_khr_rec);
3791     --------------------------------------------
3792     -- Call the LOCK_ROW for each child record
3793     --------------------------------------------
3794     lock_row(
3795       l_api_version,
3796       p_init_msg_list,
3797       x_return_status,
3798       x_msg_count,
3799       x_msg_data,
3800       l_khr_rec
3801     );
3802 
3803     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3804       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3805     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3806       RAISE OKC_API.G_EXCEPTION_ERROR;
3807     END IF;
3808 
3809     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3810 
3811   EXCEPTION
3812     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3813       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3814       (
3815         l_api_name,
3816         G_PKG_NAME,
3817         'OKC_API.G_RET_STS_ERROR',
3818         x_msg_count,
3819         x_msg_data,
3820         '_PVT'
3821       );
3822     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3823       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3824       (
3825         l_api_name,
3826         G_PKG_NAME,
3827         'OKC_API.G_RET_STS_UNEXP_ERROR',
3828         x_msg_count,
3829         x_msg_data,
3830         '_PVT'
3831       );
3832     WHEN OTHERS THEN
3833       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3834       (
3835         l_api_name,
3836         G_PKG_NAME,
3837         'OTHERS',
3838         x_msg_count,
3839         x_msg_data,
3840         '_PVT'
3841       );
3842 
3843   END lock_row;
3844   --------------------------------------
3845   -- PL/SQL TBL lock_row for: OKL_K_HEADERS_V --
3846   --------------------------------------
3847 
3848   PROCEDURE lock_row(
3849 
3850     p_api_version                  IN NUMBER,
3851     p_init_msg_list                IN VARCHAR2,
3852     x_return_status                OUT NOCOPY VARCHAR2,
3853     x_msg_count                    OUT NOCOPY NUMBER,
3854     x_msg_data                     OUT NOCOPY VARCHAR2,
3855     p_khrv_tbl                     IN khrv_tbl_type) IS
3856 
3857     l_api_version                 CONSTANT NUMBER := 1;
3858     l_api_name                     CONSTANT VARCHAR2(30) := 'tbl_lock_row';
3859     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3860     i                              NUMBER := 0;
3861   BEGIN
3862     OKC_API.init_msg_list(p_init_msg_list);
3863     -- Make sure PL/SQL table has records in it before passing
3864     IF (p_khrv_tbl.COUNT > 0) THEN
3865       i := p_khrv_tbl.FIRST;
3866       LOOP
3867         lock_row (
3868           p_api_version                  => p_api_version,
3869           p_init_msg_list                => OKC_API.G_FALSE,
3870           x_return_status                => x_return_status,
3871           x_msg_count                    => x_msg_count,
3872           x_msg_data                     => x_msg_data,
3873           p_khrv_rec                     => p_khrv_tbl(i));
3874         EXIT WHEN (i = p_khrv_tbl.LAST);
3875         i := p_khrv_tbl.NEXT(i);
3876       END LOOP;
3877     END IF;
3878 
3879   EXCEPTION
3880     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3881       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3882       (
3883         l_api_name,
3884         G_PKG_NAME,
3885         'OKC_API.G_RET_STS_ERROR',
3886         x_msg_count,
3887         x_msg_data,
3888         '_PVT'
3889       );
3890     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3891       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3892       (
3893         l_api_name,
3894         G_PKG_NAME,
3895         'OKC_API.G_RET_STS_UNEXP_ERROR',
3896         x_msg_count,
3897         x_msg_data,
3898         '_PVT'
3899       );
3900     WHEN OTHERS THEN
3901       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3902       (
3903         l_api_name,
3904         G_PKG_NAME,
3905         'OTHERS',
3906         x_msg_count,
3907         x_msg_data,
3908         '_PVT'
3909       );
3910 
3911   END lock_row;
3912 
3913 
3914   ---------------------------------------------------------------------------
3915   -- PROCEDURE update_row
3916   ---------------------------------------------------------------------------
3917 
3918   ----------------------------------
3919   -- update_row for: OKL_K_HEADERS --
3920   ----------------------------------
3921 
3922   PROCEDURE update_row(
3923 
3924     p_api_version                  IN NUMBER,
3925     p_init_msg_list                IN VARCHAR2,
3926     x_return_status                OUT NOCOPY VARCHAR2,
3927     x_msg_count                    OUT NOCOPY NUMBER,
3928     x_msg_data                     OUT NOCOPY VARCHAR2,
3929     p_khr_rec                     IN khr_rec_type,
3930     x_khr_rec                     OUT NOCOPY khr_rec_type) IS
3931 
3932     l_api_version                 CONSTANT NUMBER := 1;
3933     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_update_row';
3934     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3935     l_khr_rec                      khr_rec_type := p_khr_rec;
3936     l_def_khr_rec                  khr_rec_type;
3937     l_row_notfound                 BOOLEAN := TRUE;
3938     l_okl_k_headers_h_rec okl_k_headers_h_rec_type;
3939     lx_okl_k_headers_h_rec okl_k_headers_h_rec_type;
3940     ----------------------------------
3941     -- FUNCTION populate_new_record --
3942     ----------------------------------
3943     FUNCTION populate_new_record (
3944       p_khr_rec	IN khr_rec_type,
3945       x_khr_rec	OUT NOCOPY khr_rec_type
3946     ) RETURN VARCHAR2 IS
3947       l_khr_rec                      khr_rec_type;
3948       l_row_notfound                 BOOLEAN := TRUE;
3949       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3950     BEGIN
3951       x_khr_rec := p_khr_rec;
3952       -- Get current database values
3953       l_khr_rec := get_rec(p_khr_rec, l_row_notfound);
3954       IF (l_row_notfound) THEN
3955         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3956       END IF;
3957       -- Move the "old" record to the history record:
3958       -- (1) to get the "old" version
3959       -- (2) to avoid 2 hits to the database
3960       migrate(l_khr_rec, l_okl_k_headers_h_rec);
3961 
3962       IF (x_khr_rec.ID = OKC_API.G_MISS_NUM) THEN
3963       x_khr_rec.ID := l_khr_rec.ID;
3964       END IF;
3965 
3966       IF (x_khr_rec.ISG_ID = OKC_API.G_MISS_NUM) THEN
3967       x_khr_rec.ISG_ID := l_khr_rec.ISG_ID;
3968       END IF;
3969 
3970       IF (x_khr_rec.KHR_ID = OKC_API.G_MISS_NUM) THEN
3971       x_khr_rec.KHR_ID := l_khr_rec.KHR_ID;
3972       END IF;
3973 
3974       IF (x_khr_rec.PDT_ID = OKC_API.G_MISS_NUM) THEN
3975       x_khr_rec.PDT_ID := l_khr_rec.PDT_ID;
3976       END IF;
3977 
3978       IF (x_khr_rec.OBJECT_VERSION_NUMBER = OKC_API.G_MISS_NUM) THEN
3979       x_khr_rec.OBJECT_VERSION_NUMBER := l_khr_rec.OBJECT_VERSION_NUMBER;
3980       END IF;
3981 
3982       IF (x_khr_rec.DATE_FIRST_ACTIVITY = OKC_API.G_MISS_DATE) THEN
3983       x_khr_rec.DATE_FIRST_ACTIVITY := l_khr_rec.DATE_FIRST_ACTIVITY;
3984       END IF;
3985 
3986       IF (x_khr_rec.SYNDICATABLE_YN = OKC_API.G_MISS_CHAR) THEN
3987       x_khr_rec.SYNDICATABLE_YN := l_khr_rec.SYNDICATABLE_YN;
3988       END IF;
3989 
3990       IF (x_khr_rec.SALESTYPE_YN = OKC_API.G_MISS_CHAR) THEN
3991       x_khr_rec.SALESTYPE_YN := l_khr_rec.SALESTYPE_YN;
3992       END IF;
3993 
3994       IF (x_khr_rec.DATE_REFINANCED = OKC_API.G_MISS_DATE) THEN
3995       x_khr_rec.DATE_REFINANCED := l_khr_rec.DATE_REFINANCED;
3996       END IF;
3997 
3998       IF (x_khr_rec.DATE_CONVERSION_EFFECTIVE = OKC_API.G_MISS_DATE) THEN
3999       x_khr_rec.DATE_CONVERSION_EFFECTIVE := l_khr_rec.DATE_CONVERSION_EFFECTIVE;
4000       END IF;
4001 
4002       IF (x_khr_rec.DATE_DEAL_TRANSFERRED = OKC_API.G_MISS_DATE) THEN
4003       x_khr_rec.DATE_DEAL_TRANSFERRED := l_khr_rec.DATE_DEAL_TRANSFERRED;
4004       END IF;
4005 
4006       IF (x_khr_rec.TERM_DURATION = OKC_API.G_MISS_NUM) THEN
4007       x_khr_rec.TERM_DURATION := l_khr_rec.TERM_DURATION;
4008       END IF;
4009 
4010       IF (x_khr_rec.DATETIME_PROPOSAL_EFFECTIVE = OKC_API.G_MISS_DATE) THEN
4011       x_khr_rec.DATETIME_PROPOSAL_EFFECTIVE := l_khr_rec.DATETIME_PROPOSAL_EFFECTIVE;
4012       END IF;
4013 
4014       IF (x_khr_rec.DATETIME_PROPOSAL_INEFFECTIVE = OKC_API.G_MISS_DATE) THEN
4015       x_khr_rec.DATETIME_PROPOSAL_INEFFECTIVE := l_khr_rec.DATETIME_PROPOSAL_INEFFECTIVE;
4016       END IF;
4017 
4018       IF (x_khr_rec.DATE_PROPOSAL_ACCEPTED = OKC_API.G_MISS_DATE) THEN
4019       x_khr_rec.DATE_PROPOSAL_ACCEPTED := l_khr_rec.DATE_PROPOSAL_ACCEPTED;
4020       END IF;
4021 
4022       IF (x_khr_rec.ATTRIBUTE_CATEGORY = OKC_API.G_MISS_CHAR) THEN
4023       x_khr_rec.ATTRIBUTE_CATEGORY := l_khr_rec.ATTRIBUTE_CATEGORY;
4024       END IF;
4025 
4026       IF (x_khr_rec.ATTRIBUTE1 = OKC_API.G_MISS_CHAR) THEN
4027       x_khr_rec.ATTRIBUTE1 := l_khr_rec.ATTRIBUTE1;
4028       END IF;
4029 
4030       IF (x_khr_rec.ATTRIBUTE2 = OKC_API.G_MISS_CHAR) THEN
4031       x_khr_rec.ATTRIBUTE2 := l_khr_rec.ATTRIBUTE2;
4032       END IF;
4033 
4034       IF (x_khr_rec.ATTRIBUTE3 = OKC_API.G_MISS_CHAR) THEN
4035       x_khr_rec.ATTRIBUTE3 := l_khr_rec.ATTRIBUTE3;
4036       END IF;
4037 
4038       IF (x_khr_rec.ATTRIBUTE4 = OKC_API.G_MISS_CHAR) THEN
4039       x_khr_rec.ATTRIBUTE4 := l_khr_rec.ATTRIBUTE4;
4040       END IF;
4041 
4042       IF (x_khr_rec.ATTRIBUTE5 = OKC_API.G_MISS_CHAR) THEN
4043       x_khr_rec.ATTRIBUTE5 := l_khr_rec.ATTRIBUTE5;
4044       END IF;
4045 
4046       IF (x_khr_rec.ATTRIBUTE6 = OKC_API.G_MISS_CHAR) THEN
4047       x_khr_rec.ATTRIBUTE6 := l_khr_rec.ATTRIBUTE6;
4048       END IF;
4049 
4050       IF (x_khr_rec.ATTRIBUTE7 = OKC_API.G_MISS_CHAR) THEN
4051       x_khr_rec.ATTRIBUTE7 := l_khr_rec.ATTRIBUTE7;
4052       END IF;
4053 
4054       IF (x_khr_rec.ATTRIBUTE8 = OKC_API.G_MISS_CHAR) THEN
4055       x_khr_rec.ATTRIBUTE8 := l_khr_rec.ATTRIBUTE8;
4056       END IF;
4057 
4058       IF (x_khr_rec.ATTRIBUTE9 = OKC_API.G_MISS_CHAR) THEN
4059       x_khr_rec.ATTRIBUTE9 := l_khr_rec.ATTRIBUTE9;
4060       END IF;
4061 
4062       IF (x_khr_rec.ATTRIBUTE10 = OKC_API.G_MISS_CHAR) THEN
4063       x_khr_rec.ATTRIBUTE10 := l_khr_rec.ATTRIBUTE10;
4064       END IF;
4065 
4066       IF (x_khr_rec.ATTRIBUTE11 = OKC_API.G_MISS_CHAR) THEN
4067       x_khr_rec.ATTRIBUTE11 := l_khr_rec.ATTRIBUTE11;
4068       END IF;
4069 
4070       IF (x_khr_rec.ATTRIBUTE12 = OKC_API.G_MISS_CHAR) THEN
4071       x_khr_rec.ATTRIBUTE12 := l_khr_rec.ATTRIBUTE12;
4072       END IF;
4073 
4074       IF (x_khr_rec.ATTRIBUTE13 = OKC_API.G_MISS_CHAR) THEN
4075       x_khr_rec.ATTRIBUTE13 := l_khr_rec.ATTRIBUTE13;
4076       END IF;
4077 
4078       IF (x_khr_rec.ATTRIBUTE14 = OKC_API.G_MISS_CHAR) THEN
4079       x_khr_rec.ATTRIBUTE14 := l_khr_rec.ATTRIBUTE14;
4080       END IF;
4081 
4082       IF (x_khr_rec.ATTRIBUTE15 = OKC_API.G_MISS_CHAR) THEN
4083       x_khr_rec.ATTRIBUTE15 := l_khr_rec.ATTRIBUTE15;
4084       END IF;
4085 
4086       IF (x_khr_rec.CREATED_BY = OKC_API.G_MISS_NUM) THEN
4087       x_khr_rec.CREATED_BY := l_khr_rec.CREATED_BY;
4088       END IF;
4089 
4090       IF (x_khr_rec.CREATION_DATE = OKC_API.G_MISS_DATE) THEN
4091       x_khr_rec.CREATION_DATE := l_khr_rec.CREATION_DATE;
4092       END IF;
4093 
4094       IF (x_khr_rec.LAST_UPDATED_BY = OKC_API.G_MISS_NUM) THEN
4095       x_khr_rec.LAST_UPDATED_BY := l_khr_rec.LAST_UPDATED_BY;
4096       END IF;
4097 
4098       IF (x_khr_rec.LAST_UPDATE_DATE = OKC_API.G_MISS_DATE) THEN
4099       x_khr_rec.LAST_UPDATE_DATE := l_khr_rec.LAST_UPDATE_DATE;
4100       END IF;
4101 
4102       IF (x_khr_rec.LAST_UPDATE_LOGIN = OKC_API.G_MISS_NUM) THEN
4103       x_khr_rec.LAST_UPDATE_LOGIN := l_khr_rec.LAST_UPDATE_LOGIN;
4104       END IF;
4105 
4106       IF (x_khr_rec.AMD_CODE = OKC_API.G_MISS_CHAR) THEN
4107       x_khr_rec.AMD_CODE := l_khr_rec.AMD_CODE;
4108       END IF;
4109 
4110       IF (x_khr_rec.GENERATE_ACCRUAL_YN = OKC_API.G_MISS_CHAR) THEN
4111       x_khr_rec.GENERATE_ACCRUAL_YN := l_khr_rec.GENERATE_ACCRUAL_YN;
4112       END IF;
4113 
4114       IF (x_khr_rec.GENERATE_ACCRUAL_OVERRIDE_YN = OKC_API.G_MISS_CHAR) THEN
4115       x_khr_rec.GENERATE_ACCRUAL_OVERRIDE_YN := l_khr_rec.GENERATE_ACCRUAL_OVERRIDE_YN;
4116       END IF;
4117 
4118       IF (x_khr_rec.CREDIT_ACT_YN = OKC_API.G_MISS_CHAR) THEN
4119       x_khr_rec.CREDIT_ACT_YN := l_khr_rec.CREDIT_ACT_YN;
4120       END IF;
4121 
4122       IF (x_khr_rec.CONVERTED_ACCOUNT_YN = OKC_API.G_MISS_CHAR) THEN
4123       x_khr_rec.CONVERTED_ACCOUNT_YN := l_khr_rec.CONVERTED_ACCOUNT_YN;
4124       END IF;
4125 
4126       IF (x_khr_rec.PRE_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4127       x_khr_rec.PRE_TAX_YIELD := l_khr_rec.PRE_TAX_YIELD;
4128       END IF;
4129 
4130       IF (x_khr_rec.AFTER_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4131       x_khr_rec.AFTER_TAX_YIELD := l_khr_rec.AFTER_TAX_YIELD;
4132       END IF;
4133 
4134       IF (x_khr_rec.IMPLICIT_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
4135       x_khr_rec.IMPLICIT_INTEREST_RATE := l_khr_rec.IMPLICIT_INTEREST_RATE;
4136       END IF;
4137 
4138       IF (x_khr_rec.IMPLICIT_NON_IDC_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
4139       x_khr_rec.IMPLICIT_NON_IDC_INTEREST_RATE := l_khr_rec.IMPLICIT_NON_IDC_INTEREST_RATE;
4140       END IF;
4141 
4142       IF (x_khr_rec.TARGET_PRE_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4143       x_khr_rec.TARGET_PRE_TAX_YIELD := l_khr_rec.TARGET_PRE_TAX_YIELD;
4144       END IF;
4145 
4146       IF (x_khr_rec.TARGET_AFTER_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4147       x_khr_rec.TARGET_AFTER_TAX_YIELD := l_khr_rec.TARGET_AFTER_TAX_YIELD;
4148       END IF;
4149 
4150       IF (x_khr_rec.TARGET_IMPLICIT_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
4151       x_khr_rec.TARGET_IMPLICIT_INTEREST_RATE := l_khr_rec.TARGET_IMPLICIT_INTEREST_RATE;
4152       END IF;
4153 
4154       IF (x_khr_rec.TARGET_IMPLICIT_NONIDC_INTRATE = OKC_API.G_MISS_NUM) THEN
4155       x_khr_rec.TARGET_IMPLICIT_NONIDC_INTRATE := l_khr_rec.TARGET_IMPLICIT_NONIDC_INTRATE;
4156       END IF;
4157 
4158       IF (x_khr_rec.DATE_LAST_INTERIM_INTEREST_CAL = OKC_API.G_MISS_DATE) THEN
4159       x_khr_rec.DATE_LAST_INTERIM_INTEREST_CAL := l_khr_rec.DATE_LAST_INTERIM_INTEREST_CAL;
4160       END IF;
4161 
4162       IF (x_khr_rec.DEAL_TYPE = OKC_API.G_MISS_CHAR) THEN
4163       x_khr_rec.DEAL_TYPE := l_khr_rec.DEAL_TYPE;
4164       END IF;
4165 
4166       IF (x_khr_rec.PRE_TAX_IRR = OKC_API.G_MISS_NUM) THEN
4167       x_khr_rec.PRE_TAX_IRR := l_khr_rec.PRE_TAX_IRR;
4168       END IF;
4169 
4170       IF (x_khr_rec.AFTER_TAX_IRR = OKC_API.G_MISS_NUM) THEN
4171       x_khr_rec.AFTER_TAX_IRR := l_khr_rec.AFTER_TAX_IRR;
4172       END IF;
4173 
4174       IF (x_khr_rec.EXPECTED_DELIVERY_DATE = OKC_API.G_MISS_DATE) THEN
4175       x_khr_rec.EXPECTED_DELIVERY_DATE := l_khr_rec.EXPECTED_DELIVERY_DATE;
4176       END IF;
4177 
4178       IF (x_khr_rec.ACCEPTED_DATE = OKC_API.G_MISS_DATE) THEN
4179       x_khr_rec.ACCEPTED_DATE := l_khr_rec.ACCEPTED_DATE;
4180       END IF;
4181 
4182       IF (x_khr_rec.PREFUNDING_ELIGIBLE_YN = OKC_API.G_MISS_CHAR) THEN
4183       x_khr_rec.PREFUNDING_ELIGIBLE_YN := l_khr_rec.PREFUNDING_ELIGIBLE_YN;
4184       END IF;
4185 
4186       IF (x_khr_rec.REVOLVING_CREDIT_YN = OKC_API.G_MISS_CHAR) THEN
4187       x_khr_rec.REVOLVING_CREDIT_YN := l_khr_rec.REVOLVING_CREDIT_YN;
4188       END IF;
4189 --Bug# 2697681 schema changes  11.5.9
4190       IF (x_khr_rec.CURRENCY_CONVERSION_TYPE = OKC_API.G_MISS_CHAR) THEN
4191       x_khr_rec.CURRENCY_CONVERSION_TYPE := l_khr_rec.CURRENCY_CONVERSION_TYPE;
4192       END IF;
4193 
4194       IF (x_khr_rec.CURRENCY_CONVERSION_RATE = OKC_API.G_MISS_NUM) THEN
4195       x_khr_rec.CURRENCY_CONVERSION_RATE := l_khr_rec.CURRENCY_CONVERSION_RATE;
4196       END IF;
4197 
4198       IF (x_khr_rec.CURRENCY_CONVERSION_DATE = OKC_API.G_MISS_DATE) THEN
4199       x_khr_rec.CURRENCY_CONVERSION_DATE := l_khr_rec.CURRENCY_CONVERSION_DATE;
4200       END IF;
4201 
4202       IF (x_khr_rec.MULTI_GAAP_YN = OKC_API.G_MISS_CHAR) THEN
4203       x_khr_rec.MULTI_GAAP_YN := l_khr_rec.MULTI_GAAP_YN;
4204       END IF;
4205 
4206       IF (x_khr_rec.RECOURSE_CODE = OKC_API.G_MISS_CHAR) THEN
4207       x_khr_rec.RECOURSE_CODE := l_khr_rec.RECOURSE_CODE;
4208       END IF;
4209 
4210       IF (x_khr_rec.LESSOR_SERV_ORG_CODE = OKC_API.G_MISS_CHAR) THEN
4211       x_khr_rec.LESSOR_SERV_ORG_CODE := l_khr_rec.LESSOR_SERV_ORG_CODE;
4212       END IF;
4213 
4214       IF (x_khr_rec.ASSIGNABLE_YN = OKC_API.G_MISS_CHAR) THEN
4215       x_khr_rec.ASSIGNABLE_YN := l_khr_rec.ASSIGNABLE_YN;
4216       END IF;
4217 
4218       IF (x_khr_rec.SECURITIZED_CODE = OKC_API.G_MISS_CHAR) THEN
4219       x_khr_rec.SECURITIZED_CODE := l_khr_rec.SECURITIZED_CODE;
4220       END IF;
4221 
4222       IF (x_khr_rec.SECURITIZATION_TYPE = OKC_API.G_MISS_CHAR) THEN
4223       x_khr_rec.SECURITIZATION_TYPE := l_khr_rec.SECURITIZATION_TYPE;
4224       END IF;
4225 --Bug# 3143522: 11.5.10
4226     --subsidy
4227     IF (x_khr_rec.SUB_PRE_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4228       x_khr_rec.SUB_PRE_TAX_YIELD := l_khr_rec.SUB_PRE_TAX_YIELD;
4229     END IF;
4230     IF (x_khr_rec.SUB_AFTER_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4231       x_khr_rec.SUB_AFTER_TAX_YIELD := l_khr_rec.SUB_AFTER_TAX_YIELD;
4232     END IF;
4233     IF (x_khr_rec.SUB_IMPL_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
4234       x_khr_rec.SUB_IMPL_INTEREST_RATE := l_khr_rec.SUB_IMPL_INTEREST_RATE;
4235     END IF;
4236     IF (x_khr_rec.SUB_IMPL_NON_IDC_INT_RATE = OKC_API.G_MISS_NUM) THEN
4237       x_khr_rec.SUB_IMPL_NON_IDC_INT_RATE := l_khr_rec.SUB_IMPL_NON_IDC_INT_RATE;
4238     END IF;
4239     IF (x_khr_rec.SUB_PRE_TAX_IRR = OKC_API.G_MISS_NUM) THEN
4240       x_khr_rec.SUB_PRE_TAX_IRR := l_khr_rec.SUB_PRE_TAX_IRR;
4241     END IF;
4242     IF (x_khr_rec.SUB_AFTER_TAX_IRR = OKC_API.G_MISS_NUM) THEN
4243       x_khr_rec.SUB_AFTER_TAX_IRR := l_khr_rec.SUB_AFTER_TAX_IRR;
4244     END IF;
4245     --Bug# 3973640 : 11.5.10+ schema
4246     IF (x_khr_rec.TOT_CL_TRANSFER_AMT = OKC_API.G_MISS_NUM) THEN
4247       x_khr_rec.TOT_CL_TRANSFER_AMT := l_khr_rec.TOT_CL_TRANSFER_AMT;
4248     END IF;
4249     IF (x_khr_rec.TOT_CL_NET_TRANSFER_AMT = OKC_API.G_MISS_NUM) THEN
4250       x_khr_rec.TOT_CL_NET_TRANSFER_AMT := l_khr_rec.TOT_CL_NET_TRANSFER_AMT;
4251     END IF;
4252     IF (x_khr_rec.TOT_CL_LIMIT = OKC_API.G_MISS_NUM) THEN
4253       x_khr_rec.TOT_CL_LIMIT := l_khr_rec.TOT_CL_LIMIT;
4254     END IF;
4255     IF (x_khr_rec.TOT_CL_FUNDING_AMT = OKC_API.G_MISS_NUM) THEN
4256       x_khr_rec.TOT_CL_FUNDING_AMT := l_khr_rec.TOT_CL_FUNDING_AMT;
4257     END IF;
4258     IF (x_khr_rec.CRS_ID = OKC_API.G_MISS_NUM) THEN
4259       x_khr_rec.CRS_ID := l_khr_rec.CRS_ID;
4260     END IF;
4261     IF (x_khr_rec.TEMPLATE_TYPE_CODE = OKC_API.G_MISS_CHAR) THEN
4262       x_khr_rec.TEMPLATE_TYPE_CODE := l_khr_rec.TEMPLATE_TYPE_CODE;
4263     END IF;
4264 --Bug# 4419339 OKLH Schema Sales Quote
4265     IF (x_khr_rec.DATE_FUNDING_EXPECTED = OKC_API.G_MISS_DATE) THEN
4266       x_khr_rec.DATE_FUNDING_EXPECTED := l_khr_rec.DATE_FUNDING_EXPECTED;
4267     END IF;
4268     IF (x_khr_rec.DATE_TRADEIN = OKC_API.G_MISS_DATE) THEN
4269       x_khr_rec.DATE_TRADEIN := l_khr_rec.DATE_TRADEIN;
4270     END IF;
4271     IF (x_khr_rec.TRADEIN_AMOUNT = OKC_API.G_MISS_NUM) THEN
4272       x_khr_rec.TRADEIN_AMOUNT := l_khr_rec.TRADEIN_AMOUNT;
4273     END IF;
4274     IF (x_khr_rec.TRADEIN_DESCRIPTION = OKC_API.G_MISS_CHAR) THEN
4275       x_khr_rec.TRADEIN_DESCRIPTION := l_khr_rec.TRADEIN_DESCRIPTION;
4276     END IF;
4277      --Added by dpsingh for LE uptake
4278      IF (x_khr_rec.LEGAL_ENTITY_ID = OKL_API.G_MISS_NUM) THEN
4279       x_khr_rec.LEGAL_ENTITY_ID := l_khr_rec.LEGAL_ENTITY_ID;
4280     END IF;
4281       RETURN(l_return_status);
4282     END populate_new_record;
4283     --------------------------------------
4284     -- Set_Attributes for: OKL_K_HEADERS --
4285     --------------------------------------
4286     FUNCTION Set_Attributes (
4287       p_khr_rec IN  khr_rec_type,
4288       x_khr_rec OUT NOCOPY khr_rec_type
4289     ) RETURN VARCHAR2 IS
4290       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4291     BEGIN
4292       x_khr_rec := p_khr_rec;
4293       RETURN(l_return_status);
4294     END Set_Attributes;
4295   BEGIN
4296     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4297                                               p_init_msg_list,
4298                                               '_PVT',
4299                                               x_return_status);
4300 
4301     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4302       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4303     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4304       RAISE OKC_API.G_EXCEPTION_ERROR;
4305     END IF;
4306 
4307     --- Setting item attributes
4308     l_return_status := Set_Attributes(
4309       p_khr_rec,                         -- IN
4310       l_khr_rec);                        -- OUT
4311     --- If any errors happen abort API
4312 
4313     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4314       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4315     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4316       RAISE OKC_API.G_EXCEPTION_ERROR;
4317     END IF;
4318 
4319     l_return_status := populate_new_record(l_khr_rec, l_def_khr_rec);
4320 
4321     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4322       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4323     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4324       RAISE OKC_API.G_EXCEPTION_ERROR;
4325     END IF;
4326 
4327     UPDATE  OKL_K_HEADERS
4328     SET
4329     ID = l_def_khr_rec.ID,
4330         ISG_ID = l_def_khr_rec.ISG_ID,
4331         KHR_ID = l_def_khr_rec.KHR_ID,
4332         PDT_ID = l_def_khr_rec.PDT_ID,
4333         OBJECT_VERSION_NUMBER = l_def_khr_rec.OBJECT_VERSION_NUMBER,
4334         DATE_FIRST_ACTIVITY = l_def_khr_rec.DATE_FIRST_ACTIVITY,
4335         SYNDICATABLE_YN = l_def_khr_rec.SYNDICATABLE_YN,
4336         SALESTYPE_YN = l_def_khr_rec.SALESTYPE_YN,
4337         DATE_REFINANCED = l_def_khr_rec.DATE_REFINANCED,
4338         DATE_CONVERSION_EFFECTIVE = l_def_khr_rec.DATE_CONVERSION_EFFECTIVE,
4339         DATE_DEAL_TRANSFERRED = l_def_khr_rec.DATE_DEAL_TRANSFERRED,
4340         TERM_DURATION = l_def_khr_rec.TERM_DURATION,
4341         DATETIME_PROPOSAL_EFFECTIVE = l_def_khr_rec.DATETIME_PROPOSAL_EFFECTIVE,
4342         DATETIME_PROPOSAL_INEFFECTIVE = l_def_khr_rec.DATETIME_PROPOSAL_INEFFECTIVE,
4343         DATE_PROPOSAL_ACCEPTED = l_def_khr_rec.DATE_PROPOSAL_ACCEPTED,
4344         ATTRIBUTE_CATEGORY = l_def_khr_rec.ATTRIBUTE_CATEGORY,
4345         ATTRIBUTE1 = l_def_khr_rec.ATTRIBUTE1,
4346         ATTRIBUTE2 = l_def_khr_rec.ATTRIBUTE2,
4347         ATTRIBUTE3 = l_def_khr_rec.ATTRIBUTE3,
4348         ATTRIBUTE4 = l_def_khr_rec.ATTRIBUTE4,
4349         ATTRIBUTE5 = l_def_khr_rec.ATTRIBUTE5,
4350         ATTRIBUTE6 = l_def_khr_rec.ATTRIBUTE6,
4351         ATTRIBUTE7 = l_def_khr_rec.ATTRIBUTE7,
4352         ATTRIBUTE8 = l_def_khr_rec.ATTRIBUTE8,
4353         ATTRIBUTE9 = l_def_khr_rec.ATTRIBUTE9,
4354         ATTRIBUTE10 = l_def_khr_rec.ATTRIBUTE10,
4355         ATTRIBUTE11 = l_def_khr_rec.ATTRIBUTE11,
4356         ATTRIBUTE12 = l_def_khr_rec.ATTRIBUTE12,
4357         ATTRIBUTE13 = l_def_khr_rec.ATTRIBUTE13,
4358         ATTRIBUTE14 = l_def_khr_rec.ATTRIBUTE14,
4359         ATTRIBUTE15 = l_def_khr_rec.ATTRIBUTE15,
4360         CREATED_BY = l_def_khr_rec.CREATED_BY,
4361         CREATION_DATE = l_def_khr_rec.CREATION_DATE,
4362         LAST_UPDATED_BY = l_def_khr_rec.LAST_UPDATED_BY,
4363         LAST_UPDATE_DATE = l_def_khr_rec.LAST_UPDATE_DATE,
4364         LAST_UPDATE_LOGIN = l_def_khr_rec.LAST_UPDATE_LOGIN,
4365         AMD_CODE = l_def_khr_rec.AMD_CODE,
4366         GENERATE_ACCRUAL_YN = l_def_khr_rec.GENERATE_ACCRUAL_YN,
4367         GENERATE_ACCRUAL_OVERRIDE_YN = l_def_khr_rec.GENERATE_ACCRUAL_OVERRIDE_YN,
4368         CREDIT_ACT_YN = l_def_khr_rec.CREDIT_ACT_YN,
4369         CONVERTED_ACCOUNT_YN = l_def_khr_rec.CONVERTED_ACCOUNT_YN,
4370         PRE_TAX_YIELD = l_def_khr_rec.PRE_TAX_YIELD,
4371         AFTER_TAX_YIELD = l_def_khr_rec.AFTER_TAX_YIELD,
4372         IMPLICIT_INTEREST_RATE = l_def_khr_rec.IMPLICIT_INTEREST_RATE,
4373         IMPLICIT_NON_IDC_INTEREST_RATE = l_def_khr_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
4374         TARGET_PRE_TAX_YIELD = l_def_khr_rec.TARGET_PRE_TAX_YIELD,
4375         TARGET_AFTER_TAX_YIELD = l_def_khr_rec.TARGET_AFTER_TAX_YIELD,
4376         TARGET_IMPLICIT_INTEREST_RATE = l_def_khr_rec.TARGET_IMPLICIT_INTEREST_RATE,
4377         TARGET_IMPLICIT_NONIDC_INTRATE = l_def_khr_rec.TARGET_IMPLICIT_NONIDC_INTRATE,
4378         DATE_LAST_INTERIM_INTEREST_CAL = l_def_khr_rec.DATE_LAST_INTERIM_INTEREST_CAL,
4379         DEAL_TYPE = l_def_khr_rec.DEAL_TYPE,
4380         PRE_TAX_IRR = l_def_khr_rec.PRE_TAX_IRR,
4381         AFTER_TAX_IRR = l_def_khr_rec.AFTER_TAX_IRR,
4382         EXPECTED_DELIVERY_DATE = l_def_khr_rec.EXPECTED_DELIVERY_DATE,
4383         ACCEPTED_DATE = l_def_khr_rec.ACCEPTED_DATE,
4384         PREFUNDING_ELIGIBLE_YN = l_def_khr_rec.PREFUNDING_ELIGIBLE_YN,
4385         REVOLVING_CREDIT_YN = l_def_khr_rec.REVOLVING_CREDIT_YN,
4386 --Bug# 2697681 schema changes  11.5.9
4387         CURRENCY_CONVERSION_TYPE   = l_def_khr_rec.CURRENCY_CONVERSION_TYPE,
4388         CURRENCY_CONVERSION_RATE   = l_def_khr_rec.CURRENCY_CONVERSION_RATE,
4389         CURRENCY_CONVERSION_DATE   = l_def_khr_rec.CURRENCY_CONVERSION_DATE,
4390         MULTI_GAAP_YN              = l_def_khr_rec.MULTI_GAAP_YN,
4391         RECOURSE_CODE              = l_def_khr_rec.RECOURSE_CODE,
4392         LESSOR_SERV_ORG_CODE       = l_def_khr_rec.LESSOR_SERV_ORG_CODE,
4393         ASSIGNABLE_YN              = l_def_khr_rec.ASSIGNABLE_YN,
4394         SECURITIZED_CODE           = l_def_khr_rec.SECURITIZED_CODE,
4395         SECURITIZATION_TYPE        = l_def_khr_rec.SECURITIZATION_TYPE,
4396 --Bug# 3143522 : 11.5.10
4397    --subsidy
4398    SUB_PRE_TAX_YIELD                          = l_def_khr_rec.SUB_PRE_TAX_YIELD,
4399    SUB_AFTER_TAX_YIELD                        = l_def_khr_rec.SUB_AFTER_TAX_YIELD,
4400    SUB_IMPL_INTEREST_RATE                     = l_def_khr_rec.SUB_IMPL_INTEREST_RATE,
4401    SUB_IMPL_NON_IDC_INT_RATE                  = l_def_khr_rec.SUB_IMPL_NON_IDC_INT_RATE,
4402    SUB_PRE_TAX_IRR                            = l_def_khr_rec.SUB_PRE_TAX_IRR,
4403    SUB_AFTER_TAX_IRR                          = l_def_khr_rec.SUB_AFTER_TAX_IRR,
4404    --Bug# 3973640 : 11.5.10+ schema
4405    TOT_CL_TRANSFER_AMT                        = l_def_khr_rec.TOT_CL_TRANSFER_AMT,
4406    TOT_CL_NET_TRANSFER_AMT                    = l_def_khr_rec.TOT_CL_NET_TRANSFER_AMT,
4407    TOT_CL_LIMIT                               = l_def_khr_rec.TOT_CL_LIMIT,
4408    TOT_CL_FUNDING_AMT                         = l_def_khr_rec.TOT_CL_FUNDING_AMT,
4409    CRS_ID                                     = l_def_khr_rec.CRS_ID,
4410    TEMPLATE_TYPE_CODE                         = l_def_khr_rec.TEMPLATE_TYPE_CODE,
4411 --Bug# 4419339 OKLH Schema Sales Quote
4412    DATE_FUNDING_EXPECTED                      = l_def_khr_rec.DATE_FUNDING_EXPECTED,
4413    DATE_TRADEIN                               = l_def_khr_rec.DATE_TRADEIN,
4414    TRADEIN_AMOUNT                             = l_def_khr_rec.TRADEIN_AMOUNT,
4415    TRADEIN_DESCRIPTION                        = l_def_khr_rec.TRADEIN_DESCRIPTION,
4416    --Added by dpsingh for LE uptake
4417    LEGAL_ENTITY_ID                        = l_def_khr_rec.LEGAL_ENTITY_ID
4418     WHERE ID = l_def_khr_rec.id;
4419 
4420     -- Insert into History table
4421 /*
4422     insert_row(
4423       l_api_version,
4424       p_init_msg_list,
4425       x_return_status,
4426       x_msg_count,
4427       x_msg_data,
4428       l_okl_k_headers_h_rec,
4429       lx_okl_k_headers_h_rec
4430     );
4431 
4432     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4433       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4434     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4435       RAISE OKC_API.G_EXCEPTION_ERROR;
4436     END IF;
4437 
4438 */
4439     x_khr_rec := l_def_khr_rec;
4440     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4441 
4442   EXCEPTION
4443     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4444       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4445       (
4446         l_api_name,
4447         G_PKG_NAME,
4448         'OKC_API.G_RET_STS_ERROR',
4449         x_msg_count,
4450         x_msg_data,
4451         '_PVT'
4452       );
4453     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4454       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4455       (
4456         l_api_name,
4457         G_PKG_NAME,
4458         'OKC_API.G_RET_STS_UNEXP_ERROR',
4459         x_msg_count,
4460         x_msg_data,
4461         '_PVT'
4462       );
4463     WHEN OTHERS THEN
4464       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4465       (
4466         l_api_name,
4467         G_PKG_NAME,
4468         'OTHERS',
4469         x_msg_count,
4470         x_msg_data,
4471         '_PVT'
4472       );
4473 
4474   END update_row;
4475 
4476   ------------------------------------
4477   -- update_row for: OKL_K_HEADERS_V --
4478   ------------------------------------
4479 
4480   PROCEDURE update_row(
4481 
4482     p_api_version                  IN NUMBER,
4483     p_init_msg_list                IN VARCHAR2,
4484     x_return_status                OUT NOCOPY VARCHAR2,
4485     x_msg_count                    OUT NOCOPY NUMBER,
4486     x_msg_data                     OUT NOCOPY VARCHAR2,
4487     p_khrv_rec                     IN khrv_rec_type,
4488     x_khrv_rec                     OUT NOCOPY khrv_rec_type) IS
4489 
4490     l_api_version                 CONSTANT NUMBER := 1;
4491     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_update_row';
4492     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4493     l_khrv_rec                     khrv_rec_type := p_khrv_rec;
4494     l_def_khrv_rec                 khrv_rec_type;
4495     l_khr_rec khr_rec_type;
4496     lx_khr_rec khr_rec_type;
4497     -------------------------------
4498     -- FUNCTION fill_who_columns --
4499     -------------------------------
4500     FUNCTION fill_who_columns (
4501       p_khrv_rec	IN khrv_rec_type
4502     ) RETURN khrv_rec_type IS
4503       l_khrv_rec	khrv_rec_type := p_khrv_rec;
4504     BEGIN
4505       l_khrv_rec.LAST_UPDATE_DATE := SYSDATE;
4506       l_khrv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
4507       l_khrv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
4508       RETURN(l_khrv_rec);
4509     END fill_who_columns;
4510     ----------------------------------
4511     -- FUNCTION populate_new_record --
4512     ----------------------------------
4513     FUNCTION populate_new_record (
4514       p_khrv_rec	IN khrv_rec_type,
4515       x_khrv_rec	OUT NOCOPY khrv_rec_type
4516     ) RETURN VARCHAR2 IS
4517       l_khrv_rec                      khrv_rec_type;
4518       l_row_notfound                 BOOLEAN := TRUE;
4519       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4520     BEGIN
4521       x_khrv_rec := p_khrv_rec;
4522       -- Get current database values
4523       l_khrv_rec := get_rec(p_khrv_rec, l_row_notfound);
4524       IF (l_row_notfound) THEN
4525         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
4526       END IF;
4527 
4528 
4529       IF (x_khrv_rec.ID = OKC_API.G_MISS_NUM) THEN
4530       x_khrv_rec.ID := l_khrv_rec.ID;
4531       END IF;
4532 
4533       IF (x_khrv_rec.OBJECT_VERSION_NUMBER = OKC_API.G_MISS_NUM) THEN
4534       x_khrv_rec.OBJECT_VERSION_NUMBER := l_khrv_rec.OBJECT_VERSION_NUMBER;
4535       END IF;
4536 
4537       IF (x_khrv_rec.ISG_ID = OKC_API.G_MISS_NUM) THEN
4538       x_khrv_rec.ISG_ID := l_khrv_rec.ISG_ID;
4539       END IF;
4540 
4541       IF (x_khrv_rec.KHR_ID = OKC_API.G_MISS_NUM) THEN
4542       x_khrv_rec.KHR_ID := l_khrv_rec.KHR_ID;
4543       END IF;
4544 
4545       IF (x_khrv_rec.PDT_ID = OKC_API.G_MISS_NUM) THEN
4546       x_khrv_rec.PDT_ID := l_khrv_rec.PDT_ID;
4547       END IF;
4548 
4549       IF (x_khrv_rec.AMD_CODE = OKC_API.G_MISS_CHAR) THEN
4550       x_khrv_rec.AMD_CODE := l_khrv_rec.AMD_CODE;
4551       END IF;
4552 
4553       IF (x_khrv_rec.DATE_FIRST_ACTIVITY = OKC_API.G_MISS_DATE) THEN
4554       x_khrv_rec.DATE_FIRST_ACTIVITY := l_khrv_rec.DATE_FIRST_ACTIVITY;
4555       END IF;
4556 
4557       IF (x_khrv_rec.GENERATE_ACCRUAL_YN = OKC_API.G_MISS_CHAR) THEN
4558       x_khrv_rec.GENERATE_ACCRUAL_YN := l_khrv_rec.GENERATE_ACCRUAL_YN;
4559       END IF;
4560 
4561       IF (x_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN = OKC_API.G_MISS_CHAR) THEN
4562       x_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN := l_khrv_rec.GENERATE_ACCRUAL_OVERRIDE_YN;
4563       END IF;
4564 
4565       IF (x_khrv_rec.DATE_REFINANCED = OKC_API.G_MISS_DATE) THEN
4566       x_khrv_rec.DATE_REFINANCED := l_khrv_rec.DATE_REFINANCED;
4567       END IF;
4568 
4569       IF (x_khrv_rec.CREDIT_ACT_YN = OKC_API.G_MISS_CHAR) THEN
4570       x_khrv_rec.CREDIT_ACT_YN := l_khrv_rec.CREDIT_ACT_YN;
4571       END IF;
4572 
4573       IF (x_khrv_rec.TERM_DURATION = OKC_API.G_MISS_NUM) THEN
4574       x_khrv_rec.TERM_DURATION := l_khrv_rec.TERM_DURATION;
4575       END IF;
4576 
4577       IF (x_khrv_rec.CONVERTED_ACCOUNT_YN = OKC_API.G_MISS_CHAR) THEN
4578       x_khrv_rec.CONVERTED_ACCOUNT_YN := l_khrv_rec.CONVERTED_ACCOUNT_YN;
4579       END IF;
4580 
4581       IF (x_khrv_rec.DATE_CONVERSION_EFFECTIVE = OKC_API.G_MISS_DATE) THEN
4582       x_khrv_rec.DATE_CONVERSION_EFFECTIVE := l_khrv_rec.DATE_CONVERSION_EFFECTIVE;
4583       END IF;
4584 
4585       IF (x_khrv_rec.SYNDICATABLE_YN = OKC_API.G_MISS_CHAR) THEN
4586       x_khrv_rec.SYNDICATABLE_YN := l_khrv_rec.SYNDICATABLE_YN;
4587       END IF;
4588 
4589       IF (x_khrv_rec.SALESTYPE_YN = OKC_API.G_MISS_CHAR) THEN
4590       x_khrv_rec.SALESTYPE_YN := l_khrv_rec.SALESTYPE_YN;
4591       END IF;
4592 
4593       IF (x_khrv_rec.DATE_DEAL_TRANSFERRED = OKC_API.G_MISS_DATE) THEN
4594       x_khrv_rec.DATE_DEAL_TRANSFERRED := l_khrv_rec.DATE_DEAL_TRANSFERRED;
4595       END IF;
4596 
4597       IF (x_khrv_rec.DATETIME_PROPOSAL_EFFECTIVE = OKC_API.G_MISS_DATE) THEN
4598       x_khrv_rec.DATETIME_PROPOSAL_EFFECTIVE := l_khrv_rec.DATETIME_PROPOSAL_EFFECTIVE;
4599       END IF;
4600 
4601       IF (x_khrv_rec.DATETIME_PROPOSAL_INEFFECTIVE = OKC_API.G_MISS_DATE) THEN
4602       x_khrv_rec.DATETIME_PROPOSAL_INEFFECTIVE := l_khrv_rec.DATETIME_PROPOSAL_INEFFECTIVE;
4603       END IF;
4604 
4605       IF (x_khrv_rec.DATE_PROPOSAL_ACCEPTED = OKC_API.G_MISS_DATE) THEN
4606       x_khrv_rec.DATE_PROPOSAL_ACCEPTED := l_khrv_rec.DATE_PROPOSAL_ACCEPTED;
4607       END IF;
4608 
4609       IF (x_khrv_rec.ATTRIBUTE_CATEGORY = OKC_API.G_MISS_CHAR) THEN
4610       x_khrv_rec.ATTRIBUTE_CATEGORY := l_khrv_rec.ATTRIBUTE_CATEGORY;
4611       END IF;
4612 
4613       IF (x_khrv_rec.ATTRIBUTE1 = OKC_API.G_MISS_CHAR) THEN
4614       x_khrv_rec.ATTRIBUTE1 := l_khrv_rec.ATTRIBUTE1;
4615       END IF;
4616 
4617       IF (x_khrv_rec.ATTRIBUTE2 = OKC_API.G_MISS_CHAR) THEN
4618       x_khrv_rec.ATTRIBUTE2 := l_khrv_rec.ATTRIBUTE2;
4619       END IF;
4620 
4621       IF (x_khrv_rec.ATTRIBUTE3 = OKC_API.G_MISS_CHAR) THEN
4622       x_khrv_rec.ATTRIBUTE3 := l_khrv_rec.ATTRIBUTE3;
4623       END IF;
4624 
4625       IF (x_khrv_rec.ATTRIBUTE4 = OKC_API.G_MISS_CHAR) THEN
4626       x_khrv_rec.ATTRIBUTE4 := l_khrv_rec.ATTRIBUTE4;
4627       END IF;
4628 
4629       IF (x_khrv_rec.ATTRIBUTE5 = OKC_API.G_MISS_CHAR) THEN
4630       x_khrv_rec.ATTRIBUTE5 := l_khrv_rec.ATTRIBUTE5;
4631       END IF;
4632 
4633       IF (x_khrv_rec.ATTRIBUTE6 = OKC_API.G_MISS_CHAR) THEN
4634       x_khrv_rec.ATTRIBUTE6 := l_khrv_rec.ATTRIBUTE6;
4635       END IF;
4636 
4637       IF (x_khrv_rec.ATTRIBUTE7 = OKC_API.G_MISS_CHAR) THEN
4638       x_khrv_rec.ATTRIBUTE7 := l_khrv_rec.ATTRIBUTE7;
4639       END IF;
4640 
4641       IF (x_khrv_rec.ATTRIBUTE8 = OKC_API.G_MISS_CHAR) THEN
4642       x_khrv_rec.ATTRIBUTE8 := l_khrv_rec.ATTRIBUTE8;
4643       END IF;
4644 
4645       IF (x_khrv_rec.ATTRIBUTE9 = OKC_API.G_MISS_CHAR) THEN
4646       x_khrv_rec.ATTRIBUTE9 := l_khrv_rec.ATTRIBUTE9;
4647       END IF;
4648 
4649       IF (x_khrv_rec.ATTRIBUTE10 = OKC_API.G_MISS_CHAR) THEN
4650       x_khrv_rec.ATTRIBUTE10 := l_khrv_rec.ATTRIBUTE10;
4651       END IF;
4652 
4653       IF (x_khrv_rec.ATTRIBUTE11 = OKC_API.G_MISS_CHAR) THEN
4654       x_khrv_rec.ATTRIBUTE11 := l_khrv_rec.ATTRIBUTE11;
4655       END IF;
4656 
4657       IF (x_khrv_rec.ATTRIBUTE12 = OKC_API.G_MISS_CHAR) THEN
4658       x_khrv_rec.ATTRIBUTE12 := l_khrv_rec.ATTRIBUTE12;
4659       END IF;
4660 
4661       IF (x_khrv_rec.ATTRIBUTE13 = OKC_API.G_MISS_CHAR) THEN
4662       x_khrv_rec.ATTRIBUTE13 := l_khrv_rec.ATTRIBUTE13;
4663       END IF;
4664 
4665       IF (x_khrv_rec.ATTRIBUTE14 = OKC_API.G_MISS_CHAR) THEN
4666       x_khrv_rec.ATTRIBUTE14 := l_khrv_rec.ATTRIBUTE14;
4667       END IF;
4668 
4669       IF (x_khrv_rec.ATTRIBUTE15 = OKC_API.G_MISS_CHAR) THEN
4670       x_khrv_rec.ATTRIBUTE15 := l_khrv_rec.ATTRIBUTE15;
4671       END IF;
4672 
4673       IF (x_khrv_rec.CREATED_BY = OKC_API.G_MISS_NUM) THEN
4674       x_khrv_rec.CREATED_BY := l_khrv_rec.CREATED_BY;
4675       END IF;
4676 
4677       IF (x_khrv_rec.CREATION_DATE = OKC_API.G_MISS_DATE) THEN
4678       x_khrv_rec.CREATION_DATE := l_khrv_rec.CREATION_DATE;
4679       END IF;
4680 
4681       IF (x_khrv_rec.LAST_UPDATED_BY = OKC_API.G_MISS_NUM) THEN
4682       x_khrv_rec.LAST_UPDATED_BY := l_khrv_rec.LAST_UPDATED_BY;
4683       END IF;
4684 
4685       IF (x_khrv_rec.LAST_UPDATE_DATE = OKC_API.G_MISS_DATE) THEN
4686       x_khrv_rec.LAST_UPDATE_DATE := l_khrv_rec.LAST_UPDATE_DATE;
4687       END IF;
4688 
4689       IF (x_khrv_rec.LAST_UPDATE_LOGIN = OKC_API.G_MISS_NUM) THEN
4690       x_khrv_rec.LAST_UPDATE_LOGIN := l_khrv_rec.LAST_UPDATE_LOGIN;
4691       END IF;
4692 
4693       IF (x_khrv_rec.PRE_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4694       x_khrv_rec.PRE_TAX_YIELD := l_khrv_rec.PRE_TAX_YIELD;
4695       END IF;
4696 
4697       IF (x_khrv_rec.AFTER_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4698       x_khrv_rec.AFTER_TAX_YIELD := l_khrv_rec.AFTER_TAX_YIELD;
4699       END IF;
4700 
4701       IF (x_khrv_rec.IMPLICIT_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
4702       x_khrv_rec.IMPLICIT_INTEREST_RATE := l_khrv_rec.IMPLICIT_INTEREST_RATE;
4703       END IF;
4704 
4705       IF (x_khrv_rec.IMPLICIT_NON_IDC_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
4706       x_khrv_rec.IMPLICIT_NON_IDC_INTEREST_RATE := l_khrv_rec.IMPLICIT_NON_IDC_INTEREST_RATE;
4707       END IF;
4708 
4709       IF (x_khrv_rec.TARGET_PRE_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4710       x_khrv_rec.TARGET_PRE_TAX_YIELD := l_khrv_rec.TARGET_PRE_TAX_YIELD;
4711       END IF;
4712 
4713       IF (x_khrv_rec.TARGET_AFTER_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4714       x_khrv_rec.TARGET_AFTER_TAX_YIELD := l_khrv_rec.TARGET_AFTER_TAX_YIELD;
4715       END IF;
4716 
4717       IF (x_khrv_rec.TARGET_IMPLICIT_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
4718       x_khrv_rec.TARGET_IMPLICIT_INTEREST_RATE := l_khrv_rec.TARGET_IMPLICIT_INTEREST_RATE;
4719       END IF;
4720 
4721       IF (x_khrv_rec.TARGET_IMPLICIT_NONIDC_INTRATE = OKC_API.G_MISS_NUM) THEN
4722       x_khrv_rec.TARGET_IMPLICIT_NONIDC_INTRATE := l_khrv_rec.TARGET_IMPLICIT_NONIDC_INTRATE;
4723       END IF;
4724 
4725       IF (x_khrv_rec.DATE_LAST_INTERIM_INTEREST_CAL = OKC_API.G_MISS_DATE) THEN
4726       x_khrv_rec.DATE_LAST_INTERIM_INTEREST_CAL := l_khrv_rec.DATE_LAST_INTERIM_INTEREST_CAL;
4727       END IF;
4728 
4729       IF (x_khrv_rec.DEAL_TYPE = OKC_API.G_MISS_CHAR) THEN
4730       x_khrv_rec.DEAL_TYPE := l_khrv_rec.DEAL_TYPE;
4731       END IF;
4732 
4733       IF (x_khrv_rec.PRE_TAX_IRR = OKC_API.G_MISS_NUM) THEN
4734       x_khrv_rec.PRE_TAX_IRR := l_khrv_rec.PRE_TAX_IRR;
4735       END IF;
4736 
4737       IF (x_khrv_rec.AFTER_TAX_IRR = OKC_API.G_MISS_NUM) THEN
4738       x_khrv_rec.AFTER_TAX_IRR := l_khrv_rec.AFTER_TAX_IRR;
4739       END IF;
4740 
4741       IF (x_khrv_rec.EXPECTED_DELIVERY_DATE = OKC_API.G_MISS_DATE) THEN
4742       x_khrv_rec.EXPECTED_DELIVERY_DATE := l_khrv_rec.EXPECTED_DELIVERY_DATE;
4743       END IF;
4744 
4745       IF (x_khrv_rec.ACCEPTED_DATE = OKC_API.G_MISS_DATE) THEN
4746       x_khrv_rec.ACCEPTED_DATE := l_khrv_rec.ACCEPTED_DATE;
4747       END IF;
4748 
4749       IF (x_khrv_rec.PREFUNDING_ELIGIBLE_YN = OKC_API.G_MISS_CHAR) THEN
4750       x_khrv_rec.PREFUNDING_ELIGIBLE_YN := l_khrv_rec.PREFUNDING_ELIGIBLE_YN;
4751       END IF;
4752 
4753       IF (x_khrv_rec.REVOLVING_CREDIT_YN = OKC_API.G_MISS_CHAR) THEN
4754       x_khrv_rec.REVOLVING_CREDIT_YN := l_khrv_rec.REVOLVING_CREDIT_YN;
4755       END IF;
4756 
4757 --Bug# 2697681 schema changes  11.5.9
4758       IF (x_khrv_rec.CURRENCY_CONVERSION_TYPE = OKC_API.G_MISS_CHAR) THEN
4759       x_khrv_rec.CURRENCY_CONVERSION_TYPE := l_khrv_rec.CURRENCY_CONVERSION_TYPE;
4760       END IF;
4761 
4762       IF (x_khrv_rec.CURRENCY_CONVERSION_RATE = OKC_API.G_MISS_NUM) THEN
4763       x_khrv_rec.CURRENCY_CONVERSION_RATE := l_khrv_rec.CURRENCY_CONVERSION_RATE;
4764       END IF;
4765 
4766       IF (x_khrv_rec.CURRENCY_CONVERSION_DATE = OKC_API.G_MISS_DATE) THEN
4767       x_khrv_rec.CURRENCY_CONVERSION_DATE := l_khrv_rec.CURRENCY_CONVERSION_DATE;
4768       END IF;
4769 
4770       IF (x_khrv_rec.MULTI_GAAP_YN = OKC_API.G_MISS_CHAR) THEN
4771       x_khrv_rec.MULTI_GAAP_YN := l_khrv_rec.MULTI_GAAP_YN;
4772       END IF;
4773 
4774       IF (x_khrv_rec.RECOURSE_CODE = OKC_API.G_MISS_CHAR) THEN
4775       x_khrv_rec.RECOURSE_CODE := l_khrv_rec.RECOURSE_CODE;
4776       END IF;
4777 
4778       IF (x_khrv_rec.LESSOR_SERV_ORG_CODE = OKC_API.G_MISS_CHAR) THEN
4779       x_khrv_rec.LESSOR_SERV_ORG_CODE := l_khrv_rec.LESSOR_SERV_ORG_CODE;
4780       END IF;
4781 
4782       IF (x_khrv_rec.ASSIGNABLE_YN = OKC_API.G_MISS_CHAR) THEN
4783       x_khrv_rec.ASSIGNABLE_YN := l_khrv_rec.ASSIGNABLE_YN;
4784       END IF;
4785 
4786       IF (x_khrv_rec.SECURITIZED_CODE = OKC_API.G_MISS_CHAR) THEN
4787       x_khrv_rec.SECURITIZED_CODE := l_khrv_rec.SECURITIZED_CODE;
4788       END IF;
4789 
4790       IF (x_khrv_rec.SECURITIZATION_TYPE = OKC_API.G_MISS_CHAR) THEN
4791       x_khrv_rec.SECURITIZATION_TYPE := l_khrv_rec.SECURITIZATION_TYPE;
4792       END IF;
4793 
4794 --Bug# 3143522 : 11.5.10
4795     --subsidy
4796     IF (x_khrv_rec.SUB_PRE_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4797       x_khrv_rec.SUB_PRE_TAX_YIELD := l_khrv_rec.SUB_PRE_TAX_YIELD;
4798     END IF;
4799     IF (x_khrv_rec.SUB_AFTER_TAX_YIELD = OKC_API.G_MISS_NUM) THEN
4800       x_khrv_rec.SUB_AFTER_TAX_YIELD := l_khrv_rec.SUB_AFTER_TAX_YIELD;
4801     END IF;
4802     IF (x_khrv_rec.SUB_IMPL_INTEREST_RATE = OKC_API.G_MISS_NUM) THEN
4803       x_khrv_rec.SUB_IMPL_INTEREST_RATE := l_khrv_rec.SUB_IMPL_INTEREST_RATE;
4804     END IF;
4805     IF (x_khrv_rec.SUB_IMPL_NON_IDC_INT_RATE = OKC_API.G_MISS_NUM) THEN
4806       x_khrv_rec.SUB_IMPL_NON_IDC_INT_RATE := l_khrv_rec.SUB_IMPL_NON_IDC_INT_RATE;
4807     END IF;
4808     IF (x_khrv_rec.SUB_PRE_TAX_IRR = OKC_API.G_MISS_NUM) THEN
4809       x_khrv_rec.SUB_PRE_TAX_IRR := l_khrv_rec.SUB_PRE_TAX_IRR;
4810     END IF;
4811     IF (x_khrv_rec.SUB_AFTER_TAX_IRR = OKC_API.G_MISS_NUM) THEN
4812       x_khrv_rec.SUB_AFTER_TAX_IRR := l_khrv_rec.SUB_AFTER_TAX_IRR;
4813     END IF;
4814     --Bug# 3973640 : 11.5.10+ schema changes
4815     IF (x_khrv_rec.TOT_CL_TRANSFER_AMT = OKC_API.G_MISS_NUM) THEN
4816       x_khrv_rec.TOT_CL_TRANSFER_AMT := l_khrv_rec.TOT_CL_TRANSFER_AMT;
4817     END IF;
4818     IF (x_khrv_rec.TOT_CL_NET_TRANSFER_AMT = OKC_API.G_MISS_NUM) THEN
4819       x_khrv_rec.TOT_CL_NET_TRANSFER_AMT := l_khrv_rec.TOT_CL_NET_TRANSFER_AMT;
4820     END IF;
4821     IF (x_khrv_rec.TOT_CL_LIMIT = OKC_API.G_MISS_NUM) THEN
4822       x_khrv_rec.TOT_CL_LIMIT := l_khrv_rec.TOT_CL_LIMIT;
4823     END IF;
4824     IF (x_khrv_rec.TOT_CL_FUNDING_AMT = OKC_API.G_MISS_NUM) THEN
4825       x_khrv_rec.TOT_CL_FUNDING_AMT := l_khrv_rec.TOT_CL_FUNDING_AMT;
4826     END IF;
4827     IF (x_khrv_rec.CRS_ID = OKC_API.G_MISS_NUM) THEN
4828       x_khrv_rec.CRS_ID := l_khrv_rec.CRS_ID;
4829     END IF;
4830     IF (x_khrv_rec.TEMPLATE_TYPE_CODE = OKC_API.G_MISS_CHAR) THEN
4831       x_khrv_rec.TEMPLATE_TYPE_CODE := l_khrv_rec.TEMPLATE_TYPE_CODE;
4832     END IF;
4833 --Bug# 4419339 OKLH Schema Sales Quote
4834     IF (x_khrv_rec.DATE_FUNDING_EXPECTED = OKC_API.G_MISS_DATE) THEN
4835       x_khrv_rec.DATE_FUNDING_EXPECTED := l_khrv_rec.DATE_FUNDING_EXPECTED;
4836     END IF;
4837     IF (x_khrv_rec.DATE_TRADEIN = OKC_API.G_MISS_DATE) THEN
4838       x_khrv_rec.DATE_TRADEIN := l_khrv_rec.DATE_TRADEIN;
4839     END IF;
4840     IF (x_khrv_rec.TRADEIN_AMOUNT = OKC_API.G_MISS_NUM) THEN
4841       x_khrv_rec.TRADEIN_AMOUNT := l_khrv_rec.TRADEIN_AMOUNT;
4842     END IF;
4843     IF (x_khrv_rec.TRADEIN_DESCRIPTION = OKC_API.G_MISS_CHAR) THEN
4844       x_khrv_rec.TRADEIN_DESCRIPTION := l_khrv_rec.TRADEIN_DESCRIPTION;
4845     END IF;
4846     --Added by dpsingh for LE uptake
4847     IF (x_khrv_rec.LEGAL_ENTITY_ID = OKL_API.G_MISS_NUM) THEN
4848       x_khrv_rec.LEGAL_ENTITY_ID := l_khrv_rec.LEGAL_ENTITY_ID;
4849     END IF;
4850 
4851       RETURN(l_return_status);
4852     END populate_new_record;
4853     ----------------------------------------
4854     -- Set_Attributes for:  OKL_K_HEADERS_V --
4855     ----------------------------------------
4856     FUNCTION Set_Attributes (
4857       p_khrv_rec IN  khrv_rec_type,
4858       x_khrv_rec OUT NOCOPY khrv_rec_type
4859     ) RETURN VARCHAR2 IS
4860       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4861     BEGIN
4862       x_khrv_rec := p_khrv_rec;
4863       x_khrv_rec.OBJECT_VERSION_NUMBER := NVL(x_khrv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
4864       RETURN(l_return_status);
4865     END Set_Attributes;
4866   BEGIN
4867     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4868                                               G_PKG_NAME,
4869                                               p_init_msg_list,
4870                                               l_api_version,
4871                                               p_api_version,
4872                                               '_PVT',
4873                                               x_return_status);
4874 
4875     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4876       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4877     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4878       RAISE OKC_API.G_EXCEPTION_ERROR;
4879     END IF;
4880 
4881     --- Setting item attributes
4882     l_return_status := Set_Attributes(
4883       p_khrv_rec,                        -- IN
4884       l_khrv_rec);                       -- OUT
4885     --- If any errors happen abort API
4886 
4887     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4888       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4889     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4890       RAISE OKC_API.G_EXCEPTION_ERROR;
4891     END IF;
4892 
4893     l_return_status := populate_new_record(l_khrv_rec, l_def_khrv_rec);
4894 
4895     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4896       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4897     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4898       RAISE OKC_API.G_EXCEPTION_ERROR;
4899     END IF;
4900 
4901     l_def_khrv_rec := fill_who_columns(l_def_khrv_rec);
4902     --- Validate all non-missing attributes (Item Level Validation)
4903     l_return_status := Validate_Attributes(l_def_khrv_rec);
4904     --- If any errors happen abort API
4905 
4906     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4907       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4908     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4909       RAISE OKC_API.G_EXCEPTION_ERROR;
4910     END IF;
4911 
4912     l_return_status := Validate_Record(l_def_khrv_rec);
4913 
4914     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4915       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4916     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4917       RAISE OKC_API.G_EXCEPTION_ERROR;
4918     END IF;
4919 
4920 
4921     --------------------------------------
4922     -- Move VIEW record to "Child" records
4923     --------------------------------------
4924     migrate(l_def_khrv_rec, l_khr_rec);
4925     --------------------------------------------
4926     -- Call the UPDATE_ROW for each child record
4927     --------------------------------------------
4928     update_row(
4929       l_api_version,
4930       p_init_msg_list,
4931       x_return_status,
4932       x_msg_count,
4933       x_msg_data,
4934       l_khr_rec,
4935       lx_khr_rec
4936     );
4937 
4938     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4939       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4940     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4941       RAISE OKC_API.G_EXCEPTION_ERROR;
4942     END IF;
4943 
4944     migrate(lx_khr_rec, l_def_khrv_rec);
4945     x_khrv_rec := l_def_khrv_rec;
4946     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4947 
4948   EXCEPTION
4949     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4950       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4951       (
4952         l_api_name,
4953         G_PKG_NAME,
4954         'OKC_API.G_RET_STS_ERROR',
4955         x_msg_count,
4956         x_msg_data,
4957         '_PVT'
4958       );
4959     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4960       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4961       (
4962         l_api_name,
4963         G_PKG_NAME,
4964         'OKC_API.G_RET_STS_UNEXP_ERROR',
4965         x_msg_count,
4966         x_msg_data,
4967         '_PVT'
4968       );
4969     WHEN OTHERS THEN
4970       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4971       (
4972         l_api_name,
4973         G_PKG_NAME,
4974         'OTHERS',
4975         x_msg_count,
4976         x_msg_data,
4977         '_PVT'
4978       );
4979 
4980   END update_row;
4981   ----------------------------------------
4982   -- PL/SQL TBL update_row for: OKL_K_HEADERS_V --
4983   ----------------------------------------
4984 
4985   PROCEDURE update_row(
4986 
4987     p_api_version                  IN NUMBER,
4988     p_init_msg_list                IN VARCHAR2,
4989     x_return_status                OUT NOCOPY VARCHAR2,
4990     x_msg_count                    OUT NOCOPY NUMBER,
4991     x_msg_data                     OUT NOCOPY VARCHAR2,
4992     p_khrv_tbl                     IN khrv_tbl_type,
4993     x_khrv_tbl                     OUT NOCOPY khrv_tbl_type) IS
4994 
4995     l_api_version                 CONSTANT NUMBER := 1;
4996     l_api_name                     CONSTANT VARCHAR2(30) := 'tbl_update_row';
4997     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4998     i                              NUMBER := 0;
4999   BEGIN
5000     OKC_API.init_msg_list(p_init_msg_list);
5001     -- Make sure PL/SQL table has records in it before passing
5002     IF (p_khrv_tbl.COUNT > 0) THEN
5003       i := p_khrv_tbl.FIRST;
5004       LOOP
5005         update_row (
5006           p_api_version                  => p_api_version,
5007           p_init_msg_list                => OKC_API.G_FALSE,
5008           x_return_status                => x_return_status,
5009           x_msg_count                    => x_msg_count,
5010           x_msg_data                     => x_msg_data,
5011           p_khrv_rec                     => p_khrv_tbl(i),
5012           x_khrv_rec                     => x_khrv_tbl(i));
5013         EXIT WHEN (i = p_khrv_tbl.LAST);
5014         i := p_khrv_tbl.NEXT(i);
5015       END LOOP;
5016     END IF;
5017 
5018   EXCEPTION
5019     WHEN OKC_API.G_EXCEPTION_ERROR THEN
5020       x_return_status := OKC_API.HANDLE_EXCEPTIONS
5021       (
5022         l_api_name,
5023         G_PKG_NAME,
5024         'OKC_API.G_RET_STS_ERROR',
5025         x_msg_count,
5026         x_msg_data,
5027         '_PVT'
5028       );
5029     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5030       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5031       (
5032         l_api_name,
5033         G_PKG_NAME,
5034         'OKC_API.G_RET_STS_UNEXP_ERROR',
5035         x_msg_count,
5036         x_msg_data,
5037         '_PVT'
5038       );
5039     WHEN OTHERS THEN
5040       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5041       (
5042         l_api_name,
5043         G_PKG_NAME,
5044         'OTHERS',
5045         x_msg_count,
5046         x_msg_data,
5047         '_PVT'
5048       );
5049 
5050   END update_row;
5051 
5052 
5053 
5054   ---------------------------------------------------------------------------
5055   -- PROCEDURE delete_row
5056   ---------------------------------------------------------------------------
5057 
5058   ----------------------------------
5059   -- delete_row for: OKL_K_HEADERS --
5060   ----------------------------------
5061 
5062   PROCEDURE delete_row(
5063 
5064     p_api_version                  IN NUMBER,
5065     p_init_msg_list                IN VARCHAR2,
5066     x_return_status                OUT NOCOPY VARCHAR2,
5067     x_msg_count                    OUT NOCOPY NUMBER,
5068     x_msg_data                     OUT NOCOPY VARCHAR2,
5069     p_khr_rec                     IN khr_rec_type) IS
5070 
5071     l_api_version                 CONSTANT NUMBER := 1;
5072     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_delete_row';
5073     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5074     l_khr_rec                      khr_rec_type:= p_khr_rec;
5075     l_row_notfound                 BOOLEAN := TRUE;
5076     l_okl_k_headers_h_rec okl_k_headers_h_rec_type;
5077     lx_okl_k_headers_h_rec okl_k_headers_h_rec_type;
5078   BEGIN
5079     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5080                                               p_init_msg_list,
5081                                               '_PVT',
5082                                               x_return_status);
5083 
5084     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5085       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5086     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5087       RAISE OKC_API.G_EXCEPTION_ERROR;
5088     END IF;
5089 --Bug # 2522268
5090 /*-------removed as we do not do implicit versioning on delete------------------
5091     -- Insert into History table
5092     l_khr_rec := get_rec(l_khr_rec, l_row_notfound);
5093     IF (l_row_notfound) THEN
5094       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5095     END IF;
5096     migrate(l_khr_rec, l_okl_k_headers_h_rec);
5097     insert_row(
5098       l_api_version,
5099       p_init_msg_list,
5100       x_return_status,
5101       x_msg_count,
5102       x_msg_data,
5103       l_okl_k_headers_h_rec,
5104       lx_okl_k_headers_h_rec
5105     );
5106 
5107     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5108       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5109     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5110       RAISE OKC_API.G_EXCEPTION_ERROR;
5111     END IF;
5112 -------removed as we do not do implicit versioning on delete-----------------*/
5113 --Bug # 2522268
5114     DELETE FROM OKL_K_HEADERS
5115      WHERE ID = l_khr_rec.id;
5116 
5117     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5118 
5119   EXCEPTION
5120     WHEN OKC_API.G_EXCEPTION_ERROR THEN
5121       x_return_status := OKC_API.HANDLE_EXCEPTIONS
5122       (
5123         l_api_name,
5124         G_PKG_NAME,
5125         'OKC_API.G_RET_STS_ERROR',
5126         x_msg_count,
5127         x_msg_data,
5128         '_PVT'
5129       );
5130     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5131       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5132       (
5133         l_api_name,
5134         G_PKG_NAME,
5135         'OKC_API.G_RET_STS_UNEXP_ERROR',
5136         x_msg_count,
5137         x_msg_data,
5138         '_PVT'
5139       );
5140     WHEN OTHERS THEN
5141       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5142       (
5143         l_api_name,
5144         G_PKG_NAME,
5145         'OTHERS',
5146         x_msg_count,
5147         x_msg_data,
5148         '_PVT'
5149       );
5150 
5151   END delete_row;
5152 
5153   PROCEDURE delete_row(
5154 
5155     p_api_version                  IN NUMBER,
5156     p_init_msg_list                IN VARCHAR2,
5157     x_return_status                OUT NOCOPY VARCHAR2,
5158     x_msg_count                    OUT NOCOPY NUMBER,
5159     x_msg_data                     OUT NOCOPY VARCHAR2,
5160     p_khrv_rec                     IN khrv_rec_type) IS
5161 
5162     l_api_version                 CONSTANT NUMBER := 1;
5163     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_delete_row';
5164     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5165     l_khrv_rec                     khrv_rec_type := p_khrv_rec;
5166     l_khr_rec khr_rec_type;
5167   BEGIN
5168     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5169                                               G_PKG_NAME,
5170                                               p_init_msg_list,
5171                                               l_api_version,
5172                                               p_api_version,
5173                                               '_PVT',
5174                                               x_return_status);
5175 
5176     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5177       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5178     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5179       RAISE OKC_API.G_EXCEPTION_ERROR;
5180     END IF;
5181 
5182     --------------------------------------
5183     -- Move VIEW record to "Child" records
5184     --------------------------------------
5185     migrate(l_khrv_rec, l_khr_rec);
5186     --------------------------------------------
5187     -- Call the DELETE_ROW for each child record
5188     --------------------------------------------
5189     delete_row(
5190       l_api_version,
5191       p_init_msg_list,
5192       x_return_status,
5193       x_msg_count,
5194       x_msg_data,
5195       l_khr_rec
5196     );
5197 
5198     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5199       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5200     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5201       RAISE OKC_API.G_EXCEPTION_ERROR;
5202     END IF;
5203 
5204     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5205 
5206   EXCEPTION
5207     WHEN OKC_API.G_EXCEPTION_ERROR THEN
5208       x_return_status := OKC_API.HANDLE_EXCEPTIONS
5209       (
5210         l_api_name,
5211         G_PKG_NAME,
5212         'OKC_API.G_RET_STS_ERROR',
5213         x_msg_count,
5214         x_msg_data,
5215         '_PVT'
5216       );
5217     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5218       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5219       (
5220         l_api_name,
5221         G_PKG_NAME,
5222         'OKC_API.G_RET_STS_UNEXP_ERROR',
5223         x_msg_count,
5224         x_msg_data,
5225         '_PVT'
5226       );
5227     WHEN OTHERS THEN
5228       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5229       (
5230         l_api_name,
5231         G_PKG_NAME,
5232         'OTHERS',
5233         x_msg_count,
5234         x_msg_data,
5235         '_PVT'
5236       );
5237 
5238   END delete_row;
5239   ----------------------------------------
5240   -- PL/SQL TBL delete_row for: OKL_K_HEADERS_V --
5241   ----------------------------------------
5242 
5243   PROCEDURE delete_row(
5244 
5245     p_api_version                  IN NUMBER,
5246     p_init_msg_list                IN VARCHAR2,
5247     x_return_status                OUT NOCOPY VARCHAR2,
5248     x_msg_count                    OUT NOCOPY NUMBER,
5249     x_msg_data                     OUT NOCOPY VARCHAR2,
5250     p_khrv_tbl                     IN khrv_tbl_type) IS
5251 
5252     l_api_version                 CONSTANT NUMBER := 1;
5253     l_api_name                     CONSTANT VARCHAR2(30) := 'tbl_delete_row';
5254     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5255     i                              NUMBER := 0;
5256   BEGIN
5257     OKC_API.init_msg_list(p_init_msg_list);
5258     -- Make sure PL/SQL table has records in it before passing
5259     IF (p_khrv_tbl.COUNT > 0) THEN
5260       i := p_khrv_tbl.FIRST;
5261       LOOP
5262         delete_row (
5263           p_api_version                  => p_api_version,
5264           p_init_msg_list                => OKC_API.G_FALSE,
5265           x_return_status                => x_return_status,
5266           x_msg_count                    => x_msg_count,
5267           x_msg_data                     => x_msg_data,
5268           p_khrv_rec                     => p_khrv_tbl(i));
5269         EXIT WHEN (i = p_khrv_tbl.LAST);
5270         i := p_khrv_tbl.NEXT(i);
5271       END LOOP;
5272     END IF;
5273 
5274   EXCEPTION
5275     WHEN OKC_API.G_EXCEPTION_ERROR THEN
5276       x_return_status := OKC_API.HANDLE_EXCEPTIONS
5277       (
5278         l_api_name,
5279         G_PKG_NAME,
5280         'OKC_API.G_RET_STS_ERROR',
5281         x_msg_count,
5282         x_msg_data,
5283         '_PVT'
5284       );
5285     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5286       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5287       (
5288         l_api_name,
5289         G_PKG_NAME,
5290         'OKC_API.G_RET_STS_UNEXP_ERROR',
5291         x_msg_count,
5292         x_msg_data,
5293         '_PVT'
5294       );
5295     WHEN OTHERS THEN
5296       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5297       (
5298         l_api_name,
5299         G_PKG_NAME,
5300         'OTHERS',
5301         x_msg_count,
5302         x_msg_data,
5303         '_PVT'
5304       );
5305 
5306   END delete_row;
5307 
5308 
5309   ---------------------------------------------------------------------------
5310   -- PROCEDURE versioning
5311   ---------------------------------------------------------------------------
5312 
5313   FUNCTION create_version(
5314     p_khr_id IN NUMBER,
5315     p_major_version IN NUMBER) RETURN VARCHAR2 IS
5316 
5317   l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
5318 
5319 BEGIN
5320 INSERT INTO OKL_K_HEADERS_H
5321   (
5322       major_version,
5323 	ID,
5324         ISG_ID,
5325         KHR_ID,
5326         PDT_ID,
5327         OBJECT_VERSION_NUMBER,
5328         DATE_FIRST_ACTIVITY,
5329         SYNDICATABLE_YN,
5330         SALESTYPE_YN,
5331         DATE_REFINANCED,
5332         DATE_CONVERSION_EFFECTIVE,
5333         DATE_DEAL_TRANSFERRED,
5334         TERM_DURATION,
5335         DATETIME_PROPOSAL_EFFECTIVE,
5336         DATETIME_PROPOSAL_INEFFECTIVE,
5337         DATE_PROPOSAL_ACCEPTED,
5338         ATTRIBUTE_CATEGORY,
5339         ATTRIBUTE1,
5340         ATTRIBUTE2,
5341         ATTRIBUTE3,
5342         ATTRIBUTE4,
5343         ATTRIBUTE5,
5344         ATTRIBUTE6,
5345         ATTRIBUTE7,
5346         ATTRIBUTE8,
5347         ATTRIBUTE9,
5348         ATTRIBUTE10,
5349         ATTRIBUTE11,
5350         ATTRIBUTE12,
5351         ATTRIBUTE13,
5352         ATTRIBUTE14,
5353         ATTRIBUTE15,
5354         CREATED_BY,
5355         CREATION_DATE,
5356         LAST_UPDATED_BY,
5357         LAST_UPDATE_DATE,
5358         LAST_UPDATE_LOGIN,
5359         AMD_CODE,
5360         GENERATE_ACCRUAL_YN,
5361         GENERATE_ACCRUAL_OVERRIDE_YN,
5362         CREDIT_ACT_YN,
5363         CONVERTED_ACCOUNT_YN,
5364         PRE_TAX_YIELD,
5365         AFTER_TAX_YIELD,
5366         IMPLICIT_INTEREST_RATE,
5367         IMPLICIT_NON_IDC_INTEREST_RATE,
5368         TARGET_PRE_TAX_YIELD,
5369         TARGET_AFTER_TAX_YIELD,
5370         TARGET_IMPLICIT_INTEREST_RATE,
5371         TARGET_IMPLICIT_NONIDC_INTRATE,
5372         DATE_LAST_INTERIM_INTEREST_CAL,
5373         DEAL_TYPE,
5374         PRE_TAX_IRR,
5375         AFTER_TAX_IRR,
5376         EXPECTED_DELIVERY_DATE,
5377         ACCEPTED_DATE,
5378         PREFUNDING_ELIGIBLE_YN,
5379         REVOLVING_CREDIT_YN,
5380 --Bug# 2697681 schema changes  11.5.9
5381         CURRENCY_CONVERSION_TYPE,
5382         CURRENCY_CONVERSION_RATE,
5383         CURRENCY_CONVERSION_DATE,
5384         MULTI_GAAP_YN,
5385         RECOURSE_CODE,
5386         LESSOR_SERV_ORG_CODE,
5387         ASSIGNABLE_YN,
5388         SECURITIZED_CODE,
5389         SECURITIZATION_TYPE,
5390 --Bug# 3143522 :11.5.10
5391    --subsidy
5392    SUB_PRE_TAX_YIELD,
5393    SUB_AFTER_TAX_YIELD,
5394    SUB_IMPL_INTEREST_RATE,
5395    SUB_IMPL_NON_IDC_INT_RATE,
5396    SUB_PRE_TAX_IRR,
5397    SUB_AFTER_TAX_IRR,
5398    --Bug# 3973640 : 11.5.10+ schema
5399    TOT_CL_TRANSFER_AMT,
5400    TOT_CL_NET_TRANSFER_AMT,
5401    TOT_CL_LIMIT,
5402    TOT_CL_FUNDING_AMT   ,
5403    CRS_ID,
5404    TEMPLATE_TYPE_CODE ,
5405 --Bug# 4419339 OKLH Schema Sales Quote
5406    DATE_FUNDING_EXPECTED,
5407    DATE_TRADEIN,
5408    TRADEIN_AMOUNT,
5409    TRADEIN_DESCRIPTION,
5410    --Added by dpsingh for LE uptake
5411    LEGAL_ENTITY_ID
5412    )
5413   SELECT
5414       p_major_version,
5415 	ID,
5416         ISG_ID,
5417         KHR_ID,
5418         PDT_ID,
5419         OBJECT_VERSION_NUMBER,
5420         DATE_FIRST_ACTIVITY,
5421         SYNDICATABLE_YN,
5422         SALESTYPE_YN,
5423         DATE_REFINANCED,
5424         DATE_CONVERSION_EFFECTIVE,
5425         DATE_DEAL_TRANSFERRED,
5426         TERM_DURATION,
5427         DATETIME_PROPOSAL_EFFECTIVE,
5428         DATETIME_PROPOSAL_INEFFECTIVE,
5429         DATE_PROPOSAL_ACCEPTED,
5430         ATTRIBUTE_CATEGORY,
5431         ATTRIBUTE1,
5432         ATTRIBUTE2,
5433         ATTRIBUTE3,
5434         ATTRIBUTE4,
5435         ATTRIBUTE5,
5436         ATTRIBUTE6,
5437         ATTRIBUTE7,
5438         ATTRIBUTE8,
5439         ATTRIBUTE9,
5440         ATTRIBUTE10,
5441         ATTRIBUTE11,
5442         ATTRIBUTE12,
5443         ATTRIBUTE13,
5444         ATTRIBUTE14,
5445         ATTRIBUTE15,
5446         CREATED_BY,
5447         CREATION_DATE,
5448         LAST_UPDATED_BY,
5449         LAST_UPDATE_DATE,
5450         LAST_UPDATE_LOGIN,
5451         AMD_CODE,
5452         GENERATE_ACCRUAL_YN,
5453         GENERATE_ACCRUAL_OVERRIDE_YN,
5454         CREDIT_ACT_YN,
5455         CONVERTED_ACCOUNT_YN,
5456         PRE_TAX_YIELD,
5457         AFTER_TAX_YIELD,
5458         IMPLICIT_INTEREST_RATE,
5459         IMPLICIT_NON_IDC_INTEREST_RATE,
5460         TARGET_PRE_TAX_YIELD,
5461         TARGET_AFTER_TAX_YIELD,
5462         TARGET_IMPLICIT_INTEREST_RATE,
5463         TARGET_IMPLICIT_NONIDC_INTRATE,
5464         DATE_LAST_INTERIM_INTEREST_CAL,
5465         DEAL_TYPE,
5466         PRE_TAX_IRR,
5467         AFTER_TAX_IRR,
5468         EXPECTED_DELIVERY_DATE,
5469         ACCEPTED_DATE,
5470         PREFUNDING_ELIGIBLE_YN,
5471         REVOLVING_CREDIT_YN,
5472 --Bug# 2697681 schema changes  11.5.9
5473         CURRENCY_CONVERSION_TYPE,
5474         CURRENCY_CONVERSION_RATE,
5475         CURRENCY_CONVERSION_DATE,
5476         MULTI_GAAP_YN,
5477         RECOURSE_CODE,
5478         LESSOR_SERV_ORG_CODE,
5479         ASSIGNABLE_YN,
5480         SECURITIZED_CODE,
5481         SECURITIZATION_TYPE,
5482 --Bug#3143522 : 11.5.10
5483    --subsidy
5484    SUB_PRE_TAX_YIELD,
5485    SUB_AFTER_TAX_YIELD,
5486    SUB_IMPL_INTEREST_RATE,
5487    SUB_IMPL_NON_IDC_INT_RATE,
5488    SUB_PRE_TAX_IRR,
5489    SUB_AFTER_TAX_IRR,
5490    --Bug# 3973640 : 11.5.10+ schema
5491    TOT_CL_TRANSFER_AMT,
5492    TOT_CL_NET_TRANSFER_AMT,
5493    TOT_CL_LIMIT,
5494    TOT_CL_FUNDING_AMT,
5495    CRS_ID,
5496    TEMPLATE_TYPE_CODE,
5497 --Bug# 4419339 OKLH Schema Sales Quote
5498    DATE_FUNDING_EXPECTED,
5499    DATE_TRADEIN,
5500    TRADEIN_AMOUNT,
5501    TRADEIN_DESCRIPTION,
5502    --Added by dpsingh for LE uptake
5503    LEGAL_ENTITY_ID
5504   FROM OKL_K_HEADERS
5505   WHERE id = p_khr_id;
5506 
5507   RETURN l_return_status;
5508   EXCEPTION
5509        -- other appropriate handlers
5510     WHEN OTHERS THEN
5511        -- store SQL error message on message stack
5512              OKC_API.SET_MESSAGE(p_app_name     => okc_version_pvt.G_APP_NAME,
5513                                  p_msg_name     => okc_version_pvt.G_UNEXPECTED_ERROR,
5514                                  p_token1       => okc_version_pvt.G_SQLCODE_TOKEN,
5515                                  p_token1_value => sqlcode,
5516                                  p_token2       => okc_version_pvt.G_SQLERRM_TOKEN,
5517                                  p_token2_value => sqlerrm);
5518 
5519        -- notify  UNEXPECTED error
5520              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
5521              return l_return_status;
5522 END create_version;
5523 
5524   FUNCTION restore_version(
5525     p_khr_id IN NUMBER,
5526     p_major_version IN NUMBER) RETURN VARCHAR2 IS
5527 
5528   l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
5529 
5530 BEGIN
5531 INSERT INTO OKL_K_HEADERS
5532   (
5533 	ID,
5534         ISG_ID,
5535         KHR_ID,
5536         PDT_ID,
5537         OBJECT_VERSION_NUMBER,
5538         DATE_FIRST_ACTIVITY,
5539         SYNDICATABLE_YN,
5540         SALESTYPE_YN,
5541         DATE_REFINANCED,
5542         DATE_CONVERSION_EFFECTIVE,
5543         DATE_DEAL_TRANSFERRED,
5544         TERM_DURATION,
5545         DATETIME_PROPOSAL_EFFECTIVE,
5546         DATETIME_PROPOSAL_INEFFECTIVE,
5547         DATE_PROPOSAL_ACCEPTED,
5548         ATTRIBUTE_CATEGORY,
5549         ATTRIBUTE1,
5550         ATTRIBUTE2,
5551         ATTRIBUTE3,
5552         ATTRIBUTE4,
5553         ATTRIBUTE5,
5554         ATTRIBUTE6,
5555         ATTRIBUTE7,
5556         ATTRIBUTE8,
5557         ATTRIBUTE9,
5558         ATTRIBUTE10,
5559         ATTRIBUTE11,
5560         ATTRIBUTE12,
5561         ATTRIBUTE13,
5562         ATTRIBUTE14,
5563         ATTRIBUTE15,
5564         CREATED_BY,
5565         CREATION_DATE,
5566         LAST_UPDATED_BY,
5567         LAST_UPDATE_DATE,
5568         LAST_UPDATE_LOGIN,
5569         AMD_CODE,
5570         GENERATE_ACCRUAL_YN,
5571         GENERATE_ACCRUAL_OVERRIDE_YN,
5572         CREDIT_ACT_YN,
5573         CONVERTED_ACCOUNT_YN,
5574         PRE_TAX_YIELD,
5575         AFTER_TAX_YIELD,
5576         IMPLICIT_INTEREST_RATE,
5577         IMPLICIT_NON_IDC_INTEREST_RATE,
5578         TARGET_PRE_TAX_YIELD,
5579         TARGET_AFTER_TAX_YIELD,
5580         TARGET_IMPLICIT_INTEREST_RATE,
5581         TARGET_IMPLICIT_NONIDC_INTRATE,
5582         DATE_LAST_INTERIM_INTEREST_CAL,
5583         DEAL_TYPE,
5584         PRE_TAX_IRR,
5585         AFTER_TAX_IRR,
5586         EXPECTED_DELIVERY_DATE,
5587         ACCEPTED_DATE,
5588         PREFUNDING_ELIGIBLE_YN,
5589         REVOLVING_CREDIT_YN,
5590 --Bug# 2697681 schema changes  11.5.9
5591         CURRENCY_CONVERSION_TYPE,
5592         CURRENCY_CONVERSION_RATE,
5593         CURRENCY_CONVERSION_DATE,
5594         MULTI_GAAP_YN,
5595         RECOURSE_CODE,
5596         LESSOR_SERV_ORG_CODE,
5597         ASSIGNABLE_YN,
5598         SECURITIZED_CODE,
5599         SECURITIZATION_TYPE,
5600 --Bug# 3143522 :11.5.10
5601    --subsidy
5602    SUB_PRE_TAX_YIELD,
5603    SUB_AFTER_TAX_YIELD,
5604    SUB_IMPL_INTEREST_RATE,
5605    SUB_IMPL_NON_IDC_INT_RATE,
5606    SUB_PRE_TAX_IRR,
5607    SUB_AFTER_TAX_IRR,
5608    --Bug# 3973640 : 11.5.10+ schema
5609    TOT_CL_TRANSFER_AMT,
5610    TOT_CL_NET_TRANSFER_AMT,
5611    TOT_CL_LIMIT,
5612    TOT_CL_FUNDING_AMT,
5613    CRS_ID,
5614    TEMPLATE_TYPE_CODE,
5615 --Bug# 4419339 OKLH Schema Sales Quote
5616    DATE_FUNDING_EXPECTED,
5617    DATE_TRADEIN,
5618    TRADEIN_AMOUNT,
5619    TRADEIN_DESCRIPTION,
5620     --Added by dpsingh for LE uptake
5621    LEGAL_ENTITY_ID)
5622   SELECT
5623 	ID,
5624         ISG_ID,
5625         KHR_ID,
5626         PDT_ID,
5627         OBJECT_VERSION_NUMBER,
5628         DATE_FIRST_ACTIVITY,
5629         SYNDICATABLE_YN,
5630         SALESTYPE_YN,
5631         DATE_REFINANCED,
5632         DATE_CONVERSION_EFFECTIVE,
5633         DATE_DEAL_TRANSFERRED,
5634         TERM_DURATION,
5635         DATETIME_PROPOSAL_EFFECTIVE,
5636         DATETIME_PROPOSAL_INEFFECTIVE,
5637         DATE_PROPOSAL_ACCEPTED,
5638         ATTRIBUTE_CATEGORY,
5639         ATTRIBUTE1,
5640         ATTRIBUTE2,
5641         ATTRIBUTE3,
5642         ATTRIBUTE4,
5643         ATTRIBUTE5,
5644         ATTRIBUTE6,
5645         ATTRIBUTE7,
5646         ATTRIBUTE8,
5647         ATTRIBUTE9,
5648         ATTRIBUTE10,
5649         ATTRIBUTE11,
5650         ATTRIBUTE12,
5651         ATTRIBUTE13,
5652         ATTRIBUTE14,
5653         ATTRIBUTE15,
5654         CREATED_BY,
5655         CREATION_DATE,
5656         LAST_UPDATED_BY,
5657         LAST_UPDATE_DATE,
5658         LAST_UPDATE_LOGIN,
5659         AMD_CODE,
5660         GENERATE_ACCRUAL_YN,
5661         GENERATE_ACCRUAL_OVERRIDE_YN,
5662         CREDIT_ACT_YN,
5663         CONVERTED_ACCOUNT_YN,
5664         PRE_TAX_YIELD,
5665         AFTER_TAX_YIELD,
5666         IMPLICIT_INTEREST_RATE,
5667         IMPLICIT_NON_IDC_INTEREST_RATE,
5668         TARGET_PRE_TAX_YIELD,
5669         TARGET_AFTER_TAX_YIELD,
5670         TARGET_IMPLICIT_INTEREST_RATE,
5671         TARGET_IMPLICIT_NONIDC_INTRATE,
5672         DATE_LAST_INTERIM_INTEREST_CAL,
5673         DEAL_TYPE,
5674         PRE_TAX_IRR,
5675         AFTER_TAX_IRR,
5676         EXPECTED_DELIVERY_DATE,
5677         ACCEPTED_DATE,
5678         PREFUNDING_ELIGIBLE_YN,
5679         REVOLVING_CREDIT_YN,
5680 --Bug# 2697681 schema changes  11.5.9
5681         CURRENCY_CONVERSION_TYPE,
5682         CURRENCY_CONVERSION_RATE,
5683         CURRENCY_CONVERSION_DATE,
5684         MULTI_GAAP_YN,
5685         RECOURSE_CODE,
5686         LESSOR_SERV_ORG_CODE,
5687         ASSIGNABLE_YN,
5688         SECURITIZED_CODE,
5689         SECURITIZATION_TYPE,
5690 --Bug# 3143522  : 11.5.10
5691    --subsidy
5692    SUB_PRE_TAX_YIELD,
5693    SUB_AFTER_TAX_YIELD,
5694    SUB_IMPL_INTEREST_RATE,
5695    SUB_IMPL_NON_IDC_INT_RATE,
5696    SUB_PRE_TAX_IRR,
5697    SUB_AFTER_TAX_IRR,
5698    --Bug# 3973640 : 11.5.10+ schema
5699    TOT_CL_TRANSFER_AMT,
5700    TOT_CL_NET_TRANSFER_AMT,
5701    TOT_CL_LIMIT,
5702    TOT_CL_FUNDING_AMT,
5703    CRS_ID,
5704    TEMPLATE_TYPE_CODE,
5705 --Bug# 4419339 OKLH Schema Sales Quote
5706    DATE_FUNDING_EXPECTED,
5707    DATE_TRADEIN,
5708    TRADEIN_AMOUNT,
5709    TRADEIN_DESCRIPTION,
5710  --Added by dpsingh for LE uptake
5711    LEGAL_ENTITY_ID
5712   FROM OKL_K_HEADERS_H
5713   WHERE id = p_khr_id and major_version = p_major_version;
5714 
5715   RETURN l_return_status;
5716   EXCEPTION
5717        -- other appropriate handlers
5718     WHEN OTHERS THEN
5719        -- store SQL error message on message stack
5720              OKC_API.SET_MESSAGE(p_app_name     => okc_version_pvt.G_APP_NAME,
5721                                  p_msg_name     => okc_version_pvt.G_UNEXPECTED_ERROR,
5722                                  p_token1       => okc_version_pvt.G_SQLCODE_TOKEN,
5723                                  p_token1_value => sqlcode,
5724                                  p_token2       => okc_version_pvt.G_SQLERRM_TOKEN,
5725                                  p_token2_value => sqlerrm);
5726 
5727        -- notify  UNEXPECTED error
5728              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
5729              return l_return_status;
5730 END restore_version;
5731 
5732 
5733 END OKL_KHR_PVT;