DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_KLE_PVT

Source


1 Package Body OKL_KLE_PVT AS
2 /* $Header: OKLSKLEB.pls 120.6.12020000.3 2013/02/21 21:24:36 rpillay ship $ */
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_LINES_V';
13 
14   G_EXCEPTION_HALT_VALIDATION	exception;
15 
16 
17 -- ************************ HAND CODED VALIDATION ****************************************
18 
19   -- Start of comments
20   --
21   -- Procedure Name  : validate_CREDIT_TENANT_YN
22   -- Description     :
23   -- Business Rules  :
24   -- Parameters      :
25   -- Version         : 1.0
26   -- End of comments
27   PROCEDURE validate_CREDIT_TENANT_YN(x_return_status OUT NOCOPY   VARCHAR2,
28                             	      p_klev_rec      IN    klev_rec_type) is
29   Begin
30     -- initialize return status
31     x_return_status := OKC_API.G_RET_STS_SUCCESS;
32     If (p_klev_rec.CREDIT_TENANT_YN <> OKC_API.G_MISS_CHAR and
33   	   p_klev_rec.CREDIT_TENANT_YN IS NOT NULL)
34     Then
35       -- check allowed values
36       If (upper(p_klev_rec.CREDIT_TENANT_YN) NOT IN ('Y','N')) Then
37   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
38 					    p_msg_name		=> g_invalid_value,
39 					    p_token1		=> g_col_name_token,
40 					    p_token1_value	=> 'CREDIT_TENANT_YN');
41 	     -- notify caller of an error
42           x_return_status := OKC_API.G_RET_STS_ERROR;
43       End If;
44     End If;
45   exception
46     when OTHERS then
47 	  -- store SQL error message on message stack
48   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
49 					  p_msg_name		=> g_unexpected_error,
50 					  p_token1		=> g_sqlcode_token,
51 					  p_token1_value	=> sqlcode,
52 					  p_token2		=> g_sqlerrm_token,
53 					  p_token2_value	=> sqlerrm);
54 	   -- notify caller of an error as UNEXPETED error
55         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
56   End validate_CREDIT_TENANT_YN;
57 
58 
59   -- Start of comments
60   --
61   -- Procedure Name  : validate_PRESCRIBED_ASSET_YN
62   -- Description     :
63   -- Business Rules  :
64   -- Parameters      :
65   -- Version         : 1.0
66   -- End of comments
67   PROCEDURE validate_PRESCRIBED_ASSET_YN(x_return_status OUT NOCOPY   VARCHAR2,
68                             	      p_klev_rec      IN    klev_rec_type) is
69   Begin
70     -- initialize return status
71     x_return_status := OKC_API.G_RET_STS_SUCCESS;
72     If (p_klev_rec.PRESCRIBED_ASSET_YN <> OKC_API.G_MISS_CHAR and
73   	   p_klev_rec.PRESCRIBED_ASSET_YN IS NOT NULL)
74     Then
75       -- check allowed values
76       If (upper(p_klev_rec.PRESCRIBED_ASSET_YN) NOT IN ('Y','N')) Then
77   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
78 					    p_msg_name		=> g_invalid_value,
79 					    p_token1		=> g_col_name_token,
80 					    p_token1_value	=> 'PRESCRIBED_ASSET_YN');
81 	     -- notify caller of an error
82           x_return_status := OKC_API.G_RET_STS_ERROR;
83       End If;
84     End If;
85   exception
86     when OTHERS then
87 	  -- store SQL error message on message stack
88   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
89 					  p_msg_name		=> g_unexpected_error,
90 					  p_token1		=> g_sqlcode_token,
91 					  p_token1_value	=> sqlcode,
92 					  p_token2		=> g_sqlerrm_token,
93 					  p_token2_value	=> sqlerrm);
94 	   -- notify caller of an error as UNEXPETED error
95         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
96   End validate_PRESCRIBED_ASSET_YN;
97 
98 
99   -- Start of comments
100   --
101   -- Procedure Name  : validate_SECURED_DEAL_YN
102   -- Description     :
103   -- Business Rules  :
104   -- Parameters      :
105   -- Version         : 1.0
106   -- End of comments
107   PROCEDURE validate_SECURED_DEAL_YN(x_return_status OUT NOCOPY   VARCHAR2,
108                             	      p_klev_rec      IN    klev_rec_type) is
109   Begin
110     -- initialize return status
111     x_return_status := OKC_API.G_RET_STS_SUCCESS;
112     If (p_klev_rec.SECURED_DEAL_YN <> OKC_API.G_MISS_CHAR and
113   	   p_klev_rec.SECURED_DEAL_YN IS NOT NULL)
114     Then
115       -- check allowed values
116       If (upper(p_klev_rec.SECURED_DEAL_YN) NOT IN ('Y','N')) Then
117   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
118 					    p_msg_name		=> g_invalid_value,
119 					    p_token1		=> g_col_name_token,
120 					    p_token1_value	=> 'SECURED_DEAL_YN');
121 	     -- notify caller of an error
122           x_return_status := OKC_API.G_RET_STS_ERROR;
123       End If;
124     End If;
125   exception
126     when OTHERS then
127 	  -- store SQL error message on message stack
128   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
129 					  p_msg_name		=> g_unexpected_error,
130 					  p_token1		=> g_sqlcode_token,
131 					  p_token1_value	=> sqlcode,
132 					  p_token2		=> g_sqlerrm_token,
133 					  p_token2_value	=> sqlerrm);
134 	   -- notify caller of an error as UNEXPETED error
135         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
136   End validate_SECURED_DEAL_YN;
137 
138   -- Start of comments
139   --
140   -- Procedure Name  : validate_RE_LEASE_YN
141   -- Description     :
142   -- Business Rules  :
143   -- Parameters      :
144   -- Version         : 1.0
145   -- End of comments
146   PROCEDURE validate_RE_LEASE_YN(x_return_status OUT NOCOPY   VARCHAR2,
147                             	      p_klev_rec      IN    klev_rec_type) is
148   Begin
149     -- initialize return status
150     x_return_status := OKC_API.G_RET_STS_SUCCESS;
151     If (p_klev_rec.RE_LEASE_YN <> OKC_API.G_MISS_CHAR and
152   	   p_klev_rec.RE_LEASE_YN IS NOT NULL)
153     Then
154       -- check allowed values
155       If (upper(p_klev_rec.RE_LEASE_YN) NOT IN ('Y','N')) Then
156   	    OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
157 					    p_msg_name		=> g_invalid_value,
158 					    p_token1		=> g_col_name_token,
159 					    p_token1_value	=> 'RE_LEASE_YN');
160 	     -- notify caller of an error
161           x_return_status := OKC_API.G_RET_STS_ERROR;
162       End If;
163     End If;
164   exception
165     when OTHERS then
166 	  -- store SQL error message on message stack
167   	  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
168 					  p_msg_name		=> g_unexpected_error,
169 					  p_token1		=> g_sqlcode_token,
170 					  p_token1_value	=> sqlcode,
171 					  p_token2		=> g_sqlerrm_token,
172 					  p_token2_value	=> sqlerrm);
173 	   -- notify caller of an error as UNEXPETED error
174         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
175   End validate_RE_LEASE_YN;
176 
177 -- Start of comments
178 --
179 -- Procedure Name  : validate_FEE_TYPE
180 -- Description     : validates precense of the FEE_TYPE for the record
181 -- Business Rules  :
182 -- Parameters      :
183 -- Version         :
184 -- End of comments
185   procedure validate_FEE_TYPE(x_return_status OUT NOCOPY VARCHAR2,
186 			      p_klev_rec                     IN klev_rec_type
187     ) is
188     begin
189 -- initialize return status
190       x_return_status := OKC_API.G_RET_STS_SUCCESS;
191 
192 --  nulls are allowed
193       if (p_klev_rec.FEE_TYPE <> OKC_API.G_MISS_CHAR) OR (p_klev_rec.FEE_TYPE IS NOT  NULL) then
194           -- Check if the value is a valid code from lookup table
195           x_return_status := OKC_UTIL.check_lookup_code('OKL_FEE_TYPES',
196                                                     p_klev_rec.FEE_TYPE);
197           If (x_return_status = OKC_API.G_RET_STS_ERROR) Then
198                 --set error message in message stack
199                 OKC_API.SET_MESSAGE(
200                             p_app_name      => G_APP_NAME,
201                             p_msg_name      => G_INVALID_VALUE,
202                             p_token1        => G_COL_NAME_TOKEN,
203                             p_token1_value  => 'FEE_TYPE');
204                 raise G_EXCEPTION_HALT_VALIDATION;
205           Elsif (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
206                 raise G_EXCEPTION_HALT_VALIDATION;
207           End If;
208 
209       end if;
210     exception
211 	when G_EXCEPTION_HALT_VALIDATION then
212 	-- no processing necessary; validation can continue with the next column
213 	  null;
214 
215 	when OTHERS then
216 	-- store SQL error message on message stack for caller
217 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
218 				    p_msg_name => G_UNEXPECTED_ERROR,
219 				    p_token1   => g_sqlcode_token,
220 				    p_token1_value => sqlcode,
221 				    p_token2	 => g_sqlerrm_token,
222 				    p_token2_value => sqlerrm);
223 	-- notify caller of an error
224 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
225   end validate_FEE_TYPE;
226 
227 
228 --Added by jjuneja
229 -- Start of comments.
230 --
231 -- Procedure Name  : validate_ORIGINATION_INCOME
232 -- Description     : Validate that the origination income is positive and less
233 --                   than the amount
234 -- Business Rules  :
235 -- Parameters      :
236 -- Version         :
237 -- End of comments
238 procedure validate_ORIGINATION_INCOME(x_return_status OUT NOCOPY VARCHAR2,
239 			      p_klev_rec                     IN klev_rec_type
240     ) is
241     begin
242 -- initialize return status
243       x_return_status := OKC_API.G_RET_STS_SUCCESS;
244 
245 
246       IF ( p_klev_rec.FEE_TYPE = 'INCOME') THEN
247       --Check if the origination_income is less than the amount and greater than 0
248        if (p_klev_rec.ORIGINATION_INCOME > p_klev_rec.AMOUNT) OR (p_klev_rec.ORIGINATION_INCOME < 0) then
249 
250 
251                  OKC_API.SET_MESSAGE(p_app_name		=> g_app_name,
252 					    p_msg_name		=> 'OKL_INVALID_ORIG_INCOME');
253 	     -- notify caller of an error
254           x_return_status := OKC_API.G_RET_STS_ERROR;
255           End If;
256       END IF;
257 
258 
259     exception
260 
261 
262 	when OTHERS then
263 	-- store SQL error message on message stack for caller
264 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
265 				    p_msg_name => G_UNEXPECTED_ERROR,
266 				    p_token1   => g_sqlcode_token,
267 				    p_token1_value => sqlcode,
268 				    p_token2	 => g_sqlerrm_token,
269 				    p_token2_value => sqlerrm);
270 	-- notify caller of an error
271 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
272   end validate_ORIGINATION_INCOME;
273 --End of addition by jjuneja
274 
275   --Bug# 3973640 :
276 -- Start of comments
277 --
278 -- Procedure Name  : validate_strm_subcalss
279 -- Description     : validates precense of the STREAM_TYPE_SUBCLASS for the record
280 -- Business Rules  :
281 -- Parameters      :
282 -- Version         :
283 -- End of comments
284   procedure validate_strm_subclass(x_return_status OUT NOCOPY VARCHAR2,
285                                    p_klev_rec      IN klev_rec_type
286     ) is
287     begin
288 -- initialize return status
289       x_return_status := OKC_API.G_RET_STS_SUCCESS;
290 
291 --  nulls are allowed
292       if (p_klev_rec.STREAM_TYPE_SUBCLASS <> OKC_API.G_MISS_CHAR) OR (p_klev_rec.STREAM_TYPE_SUBCLASS IS NOT  NULL) then
293           -- Check if the value is a valid code from lookup table
294           x_return_status := OKC_UTIL.check_lookup_code('OKL_STREAM_TYPE_SUBCLASS',
295                                                         p_klev_rec.STREAM_TYPE_SUBCLASS);
296           If (x_return_status = OKC_API.G_RET_STS_ERROR) Then
297                 --set error message in message stack
298                 OKC_API.SET_MESSAGE(
299                             p_app_name      => G_APP_NAME,
300                             p_msg_name      => G_INVALID_VALUE,
301                             p_token1        => G_COL_NAME_TOKEN,
302                             p_token1_value  => 'STREAM_TYPE_SUBCLASS');
303                 raise G_EXCEPTION_HALT_VALIDATION;
304           Elsif (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) Then
305                 raise G_EXCEPTION_HALT_VALIDATION;
306           End If;
307 
308       end if;
309     exception
310         when G_EXCEPTION_HALT_VALIDATION then
311         -- no processing necessary; validation can continue with the next column
312           null;
313 
314         when OTHERS then
315         -- store SQL error message on message stack for caller
316           OKC_API.SET_MESSAGE(p_app_name => g_app_name,
317                                     p_msg_name => G_UNEXPECTED_ERROR,
318                                     p_token1   => g_sqlcode_token,
319                                     p_token1_value => sqlcode,
320                                     p_token2     => g_sqlerrm_token,
321                                     p_token2_value => sqlerrm);
322         -- notify caller of an error
323           x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
324   end validate_strm_subclass;
325 
326   --Bug# 4558486: start
327   -- Start of comments
328   --
329   -- Procedure Name  : validate_DFF_attributes
330   -- Description     :
331   -- Business Rules  : DFF validation
332   -- Parameters      :
333   -- Version         : 1.0
334   -- End of comments
335   PROCEDURE validate_DFF_attributes
336               (x_return_status OUT NOCOPY   VARCHAR2,
337                p_klev_rec      IN    klev_rec_type) is
338 
339     l_segment_values_rec   Okl_DFlex_Util_Pvt.DFF_Rec_type;
340     l_msg_count            NUMBER;
341     l_msg_data             VARCHAR2(2000);
342     l_appl_short_name      VARCHAR2(30) := 'OKL';
343     l_desc_flex_name       VARCHAR2(30) := 'OKL_K_LINES_DF';
344     l_segment_partial_name VARCHAR2(30) := 'ATTRIBUTE';
345   Begin
346     -- initialize return status
347     x_return_status := OKL_API.G_RET_STS_SUCCESS;
348 
349     l_segment_values_rec.attribute_category := p_klev_rec.attribute_category;
350     l_segment_values_rec.attribute1 := p_klev_rec.attribute1;
351     l_segment_values_rec.attribute2 := p_klev_rec.attribute2;
352     l_segment_values_rec.attribute3 := p_klev_rec.attribute3;
353     l_segment_values_rec.attribute4 := p_klev_rec.attribute4;
354     l_segment_values_rec.attribute5 := p_klev_rec.attribute5;
355     l_segment_values_rec.attribute6 := p_klev_rec.attribute6;
356     l_segment_values_rec.attribute7 := p_klev_rec.attribute7;
357     l_segment_values_rec.attribute8 := p_klev_rec.attribute8;
358     l_segment_values_rec.attribute9 := p_klev_rec.attribute9;
359     l_segment_values_rec.attribute10 := p_klev_rec.attribute10;
360     l_segment_values_rec.attribute11 := p_klev_rec.attribute11;
361     l_segment_values_rec.attribute12 := p_klev_rec.attribute12;
362     l_segment_values_rec.attribute13 := p_klev_rec.attribute13;
363     l_segment_values_rec.attribute14 := p_klev_rec.attribute14;
364     l_segment_values_rec.attribute15 := p_klev_rec.attribute15;
365 
366     okl_dflex_util_pvt.validate_desc_flex
367       (p_api_version          => 1.0
368       ,p_init_msg_list        => OKL_API.G_FALSE
369       ,x_return_status        => x_return_status
370       ,x_msg_count            => l_msg_count
371       ,x_msg_data             => l_msg_data
372       ,p_appl_short_name      => l_appl_short_name
373       ,p_descflex_name        => l_desc_flex_name
374       ,p_segment_partial_name => l_segment_partial_name
375       ,p_segment_values_rec   => l_segment_values_rec);
376 
377      -- check return status
378     IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
379       RAISE G_EXCEPTION_HALT_VALIDATION;
380     END IF;
381 
382   exception
383     when G_EXCEPTION_HALT_VALIDATION THEN
384         x_return_status := OKL_API.G_RET_STS_ERROR;
385 
386     when OTHERS then
387        -- store SQL error message on message stack
388        OKL_API.SET_MESSAGE(p_app_name     => g_app_name,
389                            p_msg_name     => g_unexpected_error,
390                            p_token1	      => g_sqlcode_token,
391                            p_token1_value	=> sqlcode,
392                            p_token2	      => g_sqlerrm_token,
393                            p_token2_value	=> sqlerrm);
394 	   -- notify caller of an error as UNEXPETED error
395         x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
396   End validate_DFF_attributes;
397   --Bug# 4558486: end
398 
399 -- ************************ END OF HAND CODED VALIDATION *********************************
400 
401 -- Start of comments
402 --
403 -- Procedure Name  : validate_ID
404 -- Description     : validates precense of the ID for the record
405 -- Business Rules  : required field
406 -- Parameters      :
407 -- Version         :
408 -- End of comments
409   procedure validate_ID(x_return_status OUT NOCOPY VARCHAR2,
410 			      p_klev_rec                     IN klev_rec_type
411     ) is
412     begin
413 -- initialize return status
414       x_return_status := OKC_API.G_RET_STS_SUCCESS;
415 
416 -- data is required
417       if (p_klev_rec.ID = OKC_API.G_MISS_NUM) OR (p_klev_rec.ID IS NULL) then
418 	  OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'ID');
419 
420 	-- notify caller of an error
421 	  x_return_status := OKC_API.G_RET_STS_ERROR;
422 
423 	-- halt further validation of this column
424 	  raise G_EXCEPTION_HALT_VALIDATION;
425 	end if;
426     exception
427 	when G_EXCEPTION_HALT_VALIDATION then
428 	-- no processing necessary; validation can continue with the next column
429 	  null;
430 
431 	when OTHERS then
432 	-- store SQL error message on message stack for caller
433 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
434 				    p_msg_name => G_UNEXPECTED_ERROR,
435 				    p_token1   => g_sqlcode_token,
436 				    p_token1_value => sqlcode,
437 				    p_token2	 => g_sqlerrm_token,
438 				    p_token2_value => sqlerrm);
439 	-- notify caller of an error
440 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
441   end validate_ID;
442 
443 -- Start of comments
444 --
445 -- Procedure Name  : validate_OBJECT_VERSION_NUMBER
446 -- Description     : validates precense of the OBJECT_VERSION_NUMBER for the record
447 -- Business Rules  : required field
448 -- Parameters      :
449 -- Version         :
450 -- End of comments
451   procedure validate_OBJECT_VERSION_NUMBER(x_return_status OUT NOCOPY VARCHAR2,
452 			      p_klev_rec                     IN klev_rec_type
453     ) is
454     begin
455 -- initialize return status
456       x_return_status := OKC_API.G_RET_STS_SUCCESS;
457 
458 -- data is required
459       if (p_klev_rec.OBJECT_VERSION_NUMBER = OKC_API.G_MISS_NUM) OR (p_klev_rec.OBJECT_VERSION_NUMBER IS NULL) then
460 	  OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'OBJECT_VERSION_NUMBER');
461 
462 	-- notify caller of an error
463 	  x_return_status := OKC_API.G_RET_STS_ERROR;
464 
465 	-- halt further validation of this column
466 	  raise G_EXCEPTION_HALT_VALIDATION;
467 	end if;
468     exception
469 	when G_EXCEPTION_HALT_VALIDATION then
470 	-- no processing necessary; validation can continue with the next column
471 	  null;
472 
473 	when OTHERS then
474 	-- store SQL error message on message stack for caller
475 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
476 				    p_msg_name => G_UNEXPECTED_ERROR,
477 				    p_token1   => g_sqlcode_token,
478 				    p_token1_value => sqlcode,
479 				    p_token2	 => g_sqlerrm_token,
480 				    p_token2_value => sqlerrm);
481 	-- notify caller of an error
482 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
483   end validate_OBJECT_VERSION_NUMBER;
484 
485 -- Start of comments
486 --
487 -- Procedure Name  : validate_CLG_ID
488 -- Description     : validates precense of the CLG_ID for the record
489 -- Business Rules  : required field
490 -- Parameters      :
491 -- Version         :
492 -- End of comments
493   procedure validate_CLG_ID(x_return_status OUT NOCOPY VARCHAR2,
494 			      p_klev_rec                     IN klev_rec_type
495     ) is
496     begin
497 -- initialize return status
498       x_return_status := OKC_API.G_RET_STS_SUCCESS;
499 
500 -- data is required
501       if (p_klev_rec.CLG_ID = OKC_API.G_MISS_NUM) OR (p_klev_rec.CLG_ID IS NULL) then
502 	  OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'CLG_ID');
503 
504 	-- notify caller of an error
505 	  x_return_status := OKC_API.G_RET_STS_ERROR;
506 
507 	-- halt further validation of this column
508 	  raise G_EXCEPTION_HALT_VALIDATION;
509 	end if;
510     exception
511 	when G_EXCEPTION_HALT_VALIDATION then
512 	-- no processing necessary; validation can continue with the next column
513 	  null;
514 
515 	when OTHERS then
516 	-- store SQL error message on message stack for caller
517 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
518 				    p_msg_name => G_UNEXPECTED_ERROR,
519 				    p_token1   => g_sqlcode_token,
520 				    p_token1_value => sqlcode,
521 				    p_token2	 => g_sqlerrm_token,
522 				    p_token2_value => sqlerrm);
523 	-- notify caller of an error
524 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
525   end validate_CLG_ID;
526 --Bug# 3143522 : 11.5.10 Subsidies
527 -------------------------------------------
528 --validate attributes for subsidy_id
529 ------------------------------------------
530 PROCEDURE validate_subsidy_id(
531     x_return_status    OUT NOCOPY VARCHAR2,
532     p_klev_rec         IN klev_rec_type) IS
533 
534     cursor l_sub_csr (p_subsidy_id in number) is
535     select 'Y'
536     from   okl_subsidies_b subb
537     where  subb.id = p_subsidy_id;
538 
539     l_exists varchar2(1) default 'N';
540 BEGIN
541     x_return_status := OKL_API.G_RET_STS_SUCCESS;
542     IF (p_klev_rec.subsidy_id = OKL_API.G_MISS_NUM OR
543         p_klev_rec.subsidy_id IS NULL)
544     THEN
545         null; --null values are allowed
546     ELSE
547         --check foreign key validation
548         l_exists := 'N';
549         open l_sub_csr(p_subsidy_id => p_klev_rec.subsidy_id);
550         fetch l_sub_csr into l_exists;
551         If l_sub_csr%NOTFOUND then
552             null;
553         End If;
554         Close l_sub_csr;
555         If l_exists = 'N' then
556            OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'Subsidy Name');
557            x_return_status := OKL_API.G_RET_STS_ERROR;
558            RAISE G_EXCEPTION_HALT_VALIDATION;
559         End If;
560     END IF;
561   EXCEPTION
562     WHEN G_EXCEPTION_HALT_VALIDATION THEN
563       null;
564     WHEN OTHERS THEN
565       OKL_API.SET_MESSAGE( p_app_name     => G_APP_NAME
566                           ,p_msg_name     => G_UNEXPECTED_ERROR
567                           ,p_token1       => G_SQLCODE_TOKEN
568                           ,p_token1_value => SQLCODE
569                           ,p_token2       => G_SQLERRM_TOKEN
570                           ,p_token2_value => SQLERRM);
571       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
572 end validate_subsidy_id;
573   ---------------------------------------------
574   -- Validate_Attributes for: OKL_K_LINES_V --
575   ---------------------------------------------
576   FUNCTION Validate_Attributes (
577     p_klev_rec                     IN klev_rec_type
578   ) RETURN VARCHAR2 IS
579     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
580     x_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
581   BEGIN
582 
583 
584     -- call each column-level validation
585     -- do not validate id because it will be set up automatically
586 
587 /*
588     validate_ID(x_return_status => l_return_status,
589 		    p_klev_rec	  => p_klev_rec);
590 
591     -- store the highest degree of error
592     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
593 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
594 	  x_return_status := l_return_status;
595 	end if;
596     end if;
597 */
598     validate_OBJECT_VERSION_NUMBER(x_return_status => l_return_status,
599 		    p_klev_rec	  => p_klev_rec);
600 
601     -- store the highest degree of error
602     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
603 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
604 	  x_return_status := l_return_status;
605 	end if;
606     end if;
607 /*
608     validate_CLG_ID(x_return_status => l_return_status,
609 		    p_klev_rec	  => p_klev_rec);
610 
611     -- store the highest degree of error
612     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
613 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
614 	  x_return_status := l_return_status;
615 	end if;
616     end if;
617 */
618 
619     validate_CREDIT_TENANT_YN(x_return_status => l_return_status,
620 		    p_klev_rec	  => p_klev_rec);
621 
622     -- store the highest degree of error
623     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
624 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
625 	  x_return_status := l_return_status;
626 	end if;
627     end if;
628 
629     validate_PRESCRIBED_ASSET_YN(x_return_status => l_return_status,
630 		    p_klev_rec	  => p_klev_rec);
631 
632     -- store the highest degree of error
633     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
634 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
635 	  x_return_status := l_return_status;
636 	end if;
637     end if;
638 
639     validate_SECURED_DEAL_YN(x_return_status => l_return_status,
640 		    p_klev_rec	  => p_klev_rec);
641 
642     -- store the highest degree of error
643     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
644 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
645 	  x_return_status := l_return_status;
646 	end if;
647     end if;
648 
649     validate_RE_LEASE_YN(x_return_status => l_return_status,
650 		    p_klev_rec	  => p_klev_rec);
651 
652     -- store the highest degree of error
653     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
654 	if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
655 	  x_return_status := l_return_status;
656 	end if;
657     end if;
658 
659 --Bug# : 11.5.9.0.3 Fee type
660     validate_FEE_TYPE(x_return_status => l_return_status,
661                     p_klev_rec    => p_klev_rec);
662 
663     -- store the highest degree of error
664     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
665         if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
666           x_return_status := l_return_status;
667         end if;
668     end if;
669 
670 -------------------------
671 --Bug# 3143522 : Subsidies
672 -------------------------
673     validate_SUBSIDY_ID(x_return_status => l_return_status,
674                         p_klev_rec    => p_klev_rec);
675 
676     -- store the highest degree of error
677     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
678         if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
679           x_return_status := l_return_status;
680         end if;
681     end if;
682 -------------------------
683 --Bug# 3143522 : Subsidies
684 -------------------------
685 
686 ------------------------
687 --Bug# 3973640 : 11.5.10+
688 ------------------------
689     validate_strm_subclass(x_return_status => l_return_status,
690                            p_klev_rec    => p_klev_rec);
691 
692     -- store the highest degree of error
693     if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
694         if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
695           x_return_status := l_return_status;
696         end if;
697     end if;
698 ------------------------
699 --Bug# 3973640 : 11.5.10+
700 ------------------------
701 
702     --Bug# 4558486
703     -- ***
704     -- DFF Attributes
705     -- ***
706     if ( NVL(p_klev_rec.validate_dff_yn,OKL_API.G_MISS_CHAR) = 'Y') then
707       validate_DFF_attributes
708         (x_return_status => l_return_status,
709          p_klev_rec      => p_klev_rec);
710 
711       -- store the highest degree of error
712       if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
713         if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
714           x_return_status := l_return_status;
715         end if;
716       end if;
717     end if;
718 
719 --Added by jjuneja to validate that the origination income is less than the amount
720 --only when FEE is of INCOME TYPE
721 
722 validate_ORIGINATION_INCOME(x_return_status => l_return_status,
723                            p_klev_rec    => p_klev_rec);
724               -- store the highest degree of error
725       if (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
726         if (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) then
727           x_return_status := l_return_status;
728         end if;
729      end if;
730 
731 
732 --End of addition by jjuneja
733 
734     -- return status to caller
735     return x_return_status;
736     exception
737 	when OTHERS then
738 	-- store SQL error message on message stack for caller
739 	  OKC_API.SET_MESSAGE(p_app_name => g_app_name,
740 				    p_msg_name => G_UNEXPECTED_ERROR,
741 				    p_token1   => g_sqlcode_token,
742 				    p_token1_value => sqlcode,
743 				    p_token2	 => g_sqlerrm_token,
744 				    p_token2_value => sqlerrm);
745 	-- notify caller of an error
746 	  x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
747 	-- return status to caller
748 	  return x_return_status;
749   END Validate_Attributes;
750 
751 
752 -- --------------------------------------------------------------------------
753 --  End of column level validations
754 -- --------------------------------------------------------------------------
755 
756   ---------------------------------------------------------------------------
757   -- FUNCTION get_seq_id
758   ---------------------------------------------------------------------------
759   FUNCTION get_seq_id RETURN NUMBER IS
760   BEGIN
761     RETURN(okc_p_util.raw_to_number(sys_guid()));
762   END get_seq_id;
763 
764   ---------------------------------------------------------------------------
765   -- PROCEDURE qc
766   ---------------------------------------------------------------------------
767   PROCEDURE qc IS
768   BEGIN
769     null;
770   END qc;
771 
772   ---------------------------------------------------------------------------
773   -- PROCEDURE change_version
774   ---------------------------------------------------------------------------
775   PROCEDURE change_version IS
776   BEGIN
777     null;
778   END change_version;
779 
780   ---------------------------------------------------------------------------
781   -- PROCEDURE api_copy
782   ---------------------------------------------------------------------------
783   PROCEDURE api_copy IS
784   BEGIN
785     null;
786   END api_copy;
787 
788 
789   ---------------------------------------------------------------------------
790   -- FUNCTION get_rec for: OKL_K_LINES
791   ---------------------------------------------------------------------------
792   FUNCTION get_rec (
793     p_kle_rec                     IN kle_rec_type,
794     x_no_data_found                OUT NOCOPY BOOLEAN
795   ) RETURN kle_rec_type IS
796     CURSOR okl_k_lines_pk_csr (p_id                 IN NUMBER) IS
797       SELECT
798 	ID,
799         KLE_ID,
800         STY_ID,
801         OBJECT_VERSION_NUMBER,
802         LAO_AMOUNT,
803         FEE_CHARGE,
804         TITLE_DATE,
805         DATE_RESIDUAL_LAST_REVIEW,
806         DATE_LAST_REAMORTISATION,
807         TERMINATION_PURCHASE_AMOUNT,
808         DATE_LAST_CLEANUP,
809         REMARKETED_AMOUNT,
810         DATE_REMARKETED,
811         REMARKET_MARGIN,
812         REPURCHASED_AMOUNT,
813         DATE_REPURCHASED,
814         GAIN_LOSS,
815         FLOOR_AMOUNT,
816         PREVIOUS_CONTRACT,
817         TRACKED_RESIDUAL,
818         DATE_TITLE_RECEIVED,
819         ESTIMATED_OEC,
820         RESIDUAL_PERCENTAGE,
821         CAPITAL_REDUCTION,
822         VENDOR_ADVANCE_PAID,
823         TRADEIN_AMOUNT,
824         DELIVERED_DATE,
825         YEAR_OF_MANUFACTURE,
826         INITIAL_DIRECT_COST,
827         OCCUPANCY,
828         DATE_LAST_INSPECTION,
829         DATE_NEXT_INSPECTION_DUE,
830         WEIGHTED_AVERAGE_LIFE,
831         BOND_EQUIVALENT_YIELD,
832         REFINANCE_AMOUNT,
833         YEAR_BUILT,
834         COVERAGE_RATIO,
835         GROSS_SQUARE_FOOTAGE,
836         NET_RENTABLE,
837         DATE_LETTER_ACCEPTANCE,
838         DATE_COMMITMENT_EXPIRATION,
839         DATE_APPRAISAL,
840         APPRAISAL_VALUE,
841         RESIDUAL_VALUE,
842         PERCENT,
843         COVERAGE,
844         LRV_AMOUNT,
845         AMOUNT,
846         LRS_PERCENT,
847         EVERGREEN_PERCENT,
848         PERCENT_STAKE,
849         AMOUNT_STAKE,
850         DATE_SOLD,
851         STY_ID_FOR,
852         ATTRIBUTE_CATEGORY,
853         ATTRIBUTE1,
854         ATTRIBUTE2,
855         ATTRIBUTE3,
856         ATTRIBUTE4,
857         ATTRIBUTE5,
858         ATTRIBUTE6,
859         ATTRIBUTE7,
860         ATTRIBUTE8,
861         ATTRIBUTE9,
862         ATTRIBUTE10,
863         ATTRIBUTE11,
864         ATTRIBUTE12,
865         ATTRIBUTE13,
866         ATTRIBUTE14,
867         ATTRIBUTE15,
868         CREATED_BY,
869         CREATION_DATE,
870         LAST_UPDATED_BY,
871         LAST_UPDATE_DATE,
872         LAST_UPDATE_LOGIN,
873         NTY_CODE,
874         FCG_CODE,
875         PRC_CODE,
876         RE_LEASE_YN,
877         PRESCRIBED_ASSET_YN,
878         CREDIT_TENANT_YN,
879         SECURED_DEAL_YN,
880         CLG_ID,
881         DATE_FUNDING,
882         DATE_FUNDING_REQUIRED,
883         DATE_ACCEPTED,
884         DATE_DELIVERY_EXPECTED,
885         OEC,
886         CAPITAL_AMOUNT,
887         RESIDUAL_GRNTY_AMOUNT,
888         RESIDUAL_CODE,
889         RVI_PREMIUM,
890         CREDIT_NATURE,
891         CAPITALIZED_INTEREST,
892         CAPITAL_REDUCTION_PERCENT,
893 --Bug# 2697681 :11.5.9
894         DATE_PAY_INVESTOR_START,
895         PAY_INVESTOR_FREQUENCY,
896         PAY_INVESTOR_EVENT,
897         PAY_INVESTOR_REMITTANCE_DAYS,
898 --financed fees
899         FEE_TYPE,
900 --Bug# 3143522: 11.5.10
901 --subsidy
902         SUBSIDY_ID,
903         --SUBSIDIZED_OEC,
904         --SUBSIDIZED_CAP_AMOUNT,
905         SUBSIDY_OVERRIDE_AMOUNT,
906 --financed fee
907         PRE_TAX_YIELD,
908         AFTER_TAX_YIELD,
909         IMPLICIT_INTEREST_RATE,
910         IMPLICIT_NON_IDC_INTEREST_RATE,
911         PRE_TAX_IRR,
912         AFTER_TAX_IRR,
913 --quote
914         SUB_PRE_TAX_YIELD,
915         SUB_AFTER_TAX_YIELD,
916         SUB_IMPL_INTEREST_RATE,
917         SUB_IMPL_NON_IDC_INT_RATE,
918         SUB_PRE_TAX_IRR,
919         SUB_AFTER_TAX_IRR,
920 --Bug# 2994971
921         ITEM_INSURANCE_CATEGORY,
922 --Bug# 3973640: 11.5.10+
923         QTE_ID,
924         FUNDING_DATE,
925         STREAM_TYPE_SUBCLASS,
926 --Bug# 4419339  OKLH
927         DATE_FUNDING_EXPECTED,
928         MANUFACTURER_NAME,
929         MODEL_NUMBER,
930         DOWN_PAYMENT_RECEIVER_CODE,
931         CAPITALIZE_DOWN_PAYMENT_YN,
932 --Bug#4373029
933         FEE_PURPOSE_CODE,
934         TERMINATION_VALUE,
935 --Bug# 4631549
936         EXPECTED_ASSET_COST,
937         ORIG_CONTRACT_LINE_ID,
938 --Bug# 16344245
939         ORIGINATION_INCOME,
940         AMOUNT_BALANCE_LEGACY,
941         DT_EFFECTIVE_BALANCE_LEGACY
942 
943       FROM OKL_K_LINES
944       WHERE OKL_K_LINES.id     = p_id;
945       l_okl_k_lines_pk             okl_k_lines_pk_csr%ROWTYPE;
946       l_kle_rec                      kle_rec_type;
947   BEGIN
948 
949     x_no_data_found := TRUE;
950     -- Get current database values
951     OPEN okl_k_lines_pk_csr (p_kle_rec.id);
952     FETCH okl_k_lines_pk_csr INTO
953        l_kle_rec.ID,
954         l_kle_rec.KLE_ID,
955         l_kle_rec.STY_ID,
956         l_kle_rec.OBJECT_VERSION_NUMBER,
957         l_kle_rec.LAO_AMOUNT,
958         l_kle_rec.FEE_CHARGE,
959         l_kle_rec.TITLE_DATE,
960         l_kle_rec.DATE_RESIDUAL_LAST_REVIEW,
961         l_kle_rec.DATE_LAST_REAMORTISATION,
962         l_kle_rec.TERMINATION_PURCHASE_AMOUNT,
963         l_kle_rec.DATE_LAST_CLEANUP,
964         l_kle_rec.REMARKETED_AMOUNT,
965         l_kle_rec.DATE_REMARKETED,
966         l_kle_rec.REMARKET_MARGIN,
967         l_kle_rec.REPURCHASED_AMOUNT,
968         l_kle_rec.DATE_REPURCHASED,
969         l_kle_rec.GAIN_LOSS,
970         l_kle_rec.FLOOR_AMOUNT,
971         l_kle_rec.PREVIOUS_CONTRACT,
972         l_kle_rec.TRACKED_RESIDUAL,
973         l_kle_rec.DATE_TITLE_RECEIVED,
974         l_kle_rec.ESTIMATED_OEC,
975         l_kle_rec.RESIDUAL_PERCENTAGE,
976         l_kle_rec.CAPITAL_REDUCTION,
977         l_kle_rec.VENDOR_ADVANCE_PAID,
978         l_kle_rec.TRADEIN_AMOUNT,
979         l_kle_rec.DELIVERED_DATE,
980         l_kle_rec.YEAR_OF_MANUFACTURE,
981         l_kle_rec.INITIAL_DIRECT_COST,
982         l_kle_rec.OCCUPANCY,
983         l_kle_rec.DATE_LAST_INSPECTION,
984         l_kle_rec.DATE_NEXT_INSPECTION_DUE,
985         l_kle_rec.WEIGHTED_AVERAGE_LIFE,
986         l_kle_rec.BOND_EQUIVALENT_YIELD,
987         l_kle_rec.REFINANCE_AMOUNT,
988         l_kle_rec.YEAR_BUILT,
989         l_kle_rec.COVERAGE_RATIO,
990         l_kle_rec.GROSS_SQUARE_FOOTAGE,
991         l_kle_rec.NET_RENTABLE,
992         l_kle_rec.DATE_LETTER_ACCEPTANCE,
993         l_kle_rec.DATE_COMMITMENT_EXPIRATION,
994         l_kle_rec.DATE_APPRAISAL,
995         l_kle_rec.APPRAISAL_VALUE,
996         l_kle_rec.RESIDUAL_VALUE,
997         l_kle_rec.PERCENT,
998         l_kle_rec.COVERAGE,
999         l_kle_rec.LRV_AMOUNT,
1000         l_kle_rec.AMOUNT,
1001         l_kle_rec.LRS_PERCENT,
1002         l_kle_rec.EVERGREEN_PERCENT,
1003         l_kle_rec.PERCENT_STAKE,
1004         l_kle_rec.AMOUNT_STAKE,
1005         l_kle_rec.DATE_SOLD,
1006         l_kle_rec.STY_ID_FOR,
1007         l_kle_rec.ATTRIBUTE_CATEGORY,
1008         l_kle_rec.ATTRIBUTE1,
1009         l_kle_rec.ATTRIBUTE2,
1010         l_kle_rec.ATTRIBUTE3,
1011         l_kle_rec.ATTRIBUTE4,
1012         l_kle_rec.ATTRIBUTE5,
1013         l_kle_rec.ATTRIBUTE6,
1014         l_kle_rec.ATTRIBUTE7,
1015         l_kle_rec.ATTRIBUTE8,
1016         l_kle_rec.ATTRIBUTE9,
1017         l_kle_rec.ATTRIBUTE10,
1018         l_kle_rec.ATTRIBUTE11,
1019         l_kle_rec.ATTRIBUTE12,
1020         l_kle_rec.ATTRIBUTE13,
1021         l_kle_rec.ATTRIBUTE14,
1022         l_kle_rec.ATTRIBUTE15,
1023         l_kle_rec.CREATED_BY,
1024         l_kle_rec.CREATION_DATE,
1025         l_kle_rec.LAST_UPDATED_BY,
1026         l_kle_rec.LAST_UPDATE_DATE,
1027         l_kle_rec.LAST_UPDATE_LOGIN,
1028         l_kle_rec.NTY_CODE,
1029         l_kle_rec.FCG_CODE,
1030         l_kle_rec.PRC_CODE,
1031         l_kle_rec.RE_LEASE_YN,
1032         l_kle_rec.PRESCRIBED_ASSET_YN,
1033         l_kle_rec.CREDIT_TENANT_YN,
1034         l_kle_rec.SECURED_DEAL_YN,
1035         l_kle_rec.CLG_ID,
1036         l_kle_rec.DATE_FUNDING,
1037         l_kle_rec.DATE_FUNDING_REQUIRED,
1038         l_kle_rec.DATE_ACCEPTED,
1039         l_kle_rec.DATE_DELIVERY_EXPECTED,
1040         l_kle_rec.OEC,
1041         l_kle_rec.CAPITAL_AMOUNT,
1042         l_kle_rec.RESIDUAL_GRNTY_AMOUNT,
1043         l_kle_rec.RESIDUAL_CODE,
1044         l_kle_rec.RVI_PREMIUM,
1045         l_kle_rec.CREDIT_NATURE,
1046         l_kle_rec.CAPITALIZED_INTEREST,
1047         l_kle_rec.CAPITAL_REDUCTION_PERCENT,
1048 --Bug# 2697681 11.5.9
1049         l_kle_rec.DATE_PAY_INVESTOR_START,
1050         l_kle_rec.PAY_INVESTOR_FREQUENCY,
1051         l_kle_rec.PAY_INVESTOR_EVENT,
1052         l_kle_rec.PAY_INVESTOR_REMITTANCE_DAYS,
1053 --financed fees
1054         l_kle_rec.FEE_TYPE,
1055 --Bug#3143522 : 11.5.10
1056 --subsidy
1057    l_kle_rec.SUBSIDY_ID,
1058    --l_kle_rec.SUBSIDIZED_OEC,
1059    --l_kle_rec.SUBSIDIZED_CAP_AMOUNT,
1060    l_kle_rec.SUBSIDY_OVERRIDE_AMOUNT,
1061 --financed fee
1062    l_kle_rec.PRE_TAX_YIELD,
1063    l_kle_rec.AFTER_TAX_YIELD,
1064    l_kle_rec.IMPLICIT_INTEREST_RATE,
1065    l_kle_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
1066    l_kle_rec.PRE_TAX_IRR,
1067    l_kle_rec.AFTER_TAX_IRR,
1068 --quote
1069    l_kle_rec.SUB_PRE_TAX_YIELD,
1070    l_kle_rec.SUB_AFTER_TAX_YIELD,
1071    l_kle_rec.SUB_IMPL_INTEREST_RATE,
1072    l_kle_rec.SUB_IMPL_NON_IDC_INT_RATE,
1073    l_kle_rec.SUB_PRE_TAX_IRR,
1074    l_kle_rec.SUB_AFTER_TAX_IRR,
1075 --Bug# 2994971 :
1076    l_kle_rec.ITEM_INSURANCE_CATEGORY,
1077 --Bug# 3973640: 11.5.10+
1078    l_kle_rec.QTE_ID,
1079    l_kle_rec.FUNDING_DATE,
1080    l_kle_rec.STREAM_TYPE_SUBCLASS,
1081 --Bug# 4419339 OKLH
1082    l_kle_rec.DATE_FUNDING_EXPECTED,
1083    l_kle_rec.MANUFACTURER_NAME,
1084    l_kle_rec.MODEL_NUMBER,
1085    l_kle_rec.DOWN_PAYMENT_RECEIVER_CODE,
1086    l_kle_rec.CAPITALIZE_DOWN_PAYMENT_YN,
1087 --Bug#4373029
1088    l_kle_rec.FEE_PURPOSE_CODE,
1089    l_kle_rec.TERMINATION_VALUE,
1090 --Bug# 457760
1091    l_kle_rec.EXPECTED_ASSET_COST,
1092    l_kle_rec.ORIG_CONTRACT_LINE_ID,
1093 --Bug# 16344245
1094    l_kle_rec.ORIGINATION_INCOME,
1095    l_kle_rec.AMOUNT_BALANCE_LEGACY,
1096    l_kle_rec.DT_EFFECTIVE_BALANCE_LEGACY
1097         ;
1098     x_no_data_found := okl_k_lines_pk_csr%NOTFOUND;
1099     CLOSE okl_k_lines_pk_csr;
1100     RETURN(l_kle_rec);
1101   END get_rec;
1102 
1103   FUNCTION get_rec (
1104     p_kle_rec                     IN kle_rec_type
1105   ) RETURN kle_rec_type IS
1106     l_row_notfound                 BOOLEAN := TRUE;
1107   BEGIN
1108     RETURN(get_rec(p_kle_rec, l_row_notfound));
1109   END get_rec;
1110 
1111 
1112   ---------------------------------------------------------------------------
1113   -- FUNCTION get_rec for: OKL_K_LINES_H
1114   ---------------------------------------------------------------------------
1115   FUNCTION get_rec (
1116     p_okl_k_lines_h_rec                     IN okl_k_lines_h_rec_type,
1117     x_no_data_found                OUT NOCOPY BOOLEAN
1118   ) RETURN okl_k_lines_h_rec_type IS
1119     CURSOR okl_k_lines_h_pk_csr (p_id                 IN NUMBER) IS
1120       SELECT
1121 	ID,
1122         MAJOR_VERSION,
1123         KLE_ID,
1124         STY_ID,
1125         OBJECT_VERSION_NUMBER,
1126         LAO_AMOUNT,
1127         FEE_CHARGE,
1128         TITLE_DATE,
1129         DATE_RESIDUAL_LAST_REVIEW,
1130         DATE_LAST_REAMORTISATION,
1131         TERMINATION_PURCHASE_AMOUNT,
1132         DATE_LAST_CLEANUP,
1133         REMARKETED_AMOUNT,
1134         DATE_REMARKETED,
1135         REMARKET_MARGIN,
1136         REPURCHASED_AMOUNT,
1137         DATE_REPURCHASED,
1138         GAIN_LOSS,
1139         FLOOR_AMOUNT,
1140         PREVIOUS_CONTRACT,
1141         TRACKED_RESIDUAL,
1142         DATE_TITLE_RECEIVED,
1143         ESTIMATED_OEC,
1144         RESIDUAL_PERCENTAGE,
1145         CAPITAL_REDUCTION,
1146         VENDOR_ADVANCE_PAID,
1147         TRADEIN_AMOUNT,
1148         DELIVERED_DATE,
1149         YEAR_OF_MANUFACTURE,
1150         INITIAL_DIRECT_COST,
1151         OCCUPANCY,
1152         DATE_LAST_INSPECTION,
1153         DATE_NEXT_INSPECTION_DUE,
1154         WEIGHTED_AVERAGE_LIFE,
1155         BOND_EQUIVALENT_YIELD,
1156         REFINANCE_AMOUNT,
1157         YEAR_BUILT,
1158         COVERAGE_RATIO,
1159         GROSS_SQUARE_FOOTAGE,
1160         NET_RENTABLE,
1161         DATE_LETTER_ACCEPTANCE,
1162         DATE_COMMITMENT_EXPIRATION,
1163         DATE_APPRAISAL,
1164         APPRAISAL_VALUE,
1165         RESIDUAL_VALUE,
1166         PERCENT,
1167         COVERAGE,
1168         LRV_AMOUNT,
1169         AMOUNT,
1170         LRS_PERCENT,
1171         EVERGREEN_PERCENT,
1172         PERCENT_STAKE,
1173         AMOUNT_STAKE,
1174         DATE_SOLD,
1175         STY_ID_FOR,
1176         ATTRIBUTE_CATEGORY,
1177         ATTRIBUTE1,
1178         ATTRIBUTE2,
1179         ATTRIBUTE3,
1180         ATTRIBUTE4,
1181         ATTRIBUTE5,
1182         ATTRIBUTE6,
1183         ATTRIBUTE7,
1184         ATTRIBUTE8,
1185         ATTRIBUTE9,
1186         ATTRIBUTE10,
1187         ATTRIBUTE11,
1188         ATTRIBUTE12,
1189         ATTRIBUTE13,
1190         ATTRIBUTE14,
1191         ATTRIBUTE15,
1192         CREATED_BY,
1193         CREATION_DATE,
1194         LAST_UPDATED_BY,
1195         LAST_UPDATE_DATE,
1196         LAST_UPDATE_LOGIN,
1197         NTY_CODE,
1198         FCG_CODE,
1199         PRC_CODE,
1200         RE_LEASE_YN,
1201         PRESCRIBED_ASSET_YN,
1202         CREDIT_TENANT_YN,
1203         SECURED_DEAL_YN,
1204         CLG_ID,
1205         DATE_FUNDING,
1206         DATE_FUNDING_REQUIRED,
1207         DATE_ACCEPTED,
1208         DATE_DELIVERY_EXPECTED,
1209         OEC,
1210         CAPITAL_AMOUNT,
1211         RESIDUAL_GRNTY_AMOUNT,
1212         RESIDUAL_CODE,
1213         RVI_PREMIUM,
1214         CREDIT_NATURE,
1215         CAPITALIZED_INTEREST,
1216         CAPITAL_REDUCTION_PERCENT,
1217 --Bug# 2697681 11.5.9
1218         DATE_PAY_INVESTOR_START,
1219         PAY_INVESTOR_FREQUENCY,
1220         PAY_INVESTOR_EVENT,
1221         PAY_INVESTOR_REMITTANCE_DAYS,
1222 --financed fees
1223         FEE_TYPE,
1224 --Bug# 3143522 : 11.5.10
1225 --subsidy
1226    SUBSIDY_ID,
1227    --SUBSIDIZED_OEC,
1228    --SUBSIDIZED_CAP_AMOUNT,
1229    SUBSIDY_OVERRIDE_AMOUNT,
1230 --financed fee
1231    PRE_TAX_YIELD,
1232    AFTER_TAX_YIELD,
1233    IMPLICIT_INTEREST_RATE,
1234    IMPLICIT_NON_IDC_INTEREST_RATE,
1235    PRE_TAX_IRR,
1236    AFTER_TAX_IRR,
1237 --quote
1238    SUB_PRE_TAX_YIELD,
1239    SUB_AFTER_TAX_YIELD,
1240    SUB_IMPL_INTEREST_RATE,
1241    SUB_IMPL_NON_IDC_INT_RATE,
1242    SUB_PRE_TAX_IRR,
1243    SUB_AFTER_TAX_IRR,
1244 --bug# 2994971
1245    ITEM_INSURANCE_CATEGORY,
1246 --Bug# 3973640 :11.5.10+
1247    QTE_ID,
1248    FUNDING_DATE,
1249    STREAM_TYPE_SUBCLASS,
1250 --Bug# 4419339 OKLH
1251    DATE_FUNDING_EXPECTED,
1252    MANUFACTURER_NAME,
1253    MODEL_NUMBER,
1254    DOWN_PAYMENT_RECEIVER_CODE,
1255    CAPITALIZE_DOWN_PAYMENT_YN,
1256 --Bug#4373029
1257    FEE_PURPOSE_CODE,
1258    TERMINATION_VALUE,
1259 --Bug# 4631549
1260    EXPECTED_ASSET_COST,
1261    ORIG_CONTRACT_LINE_ID,
1262 --Bug# 16344245
1263    ORIGINATION_INCOME,
1264    AMOUNT_BALANCE_LEGACY,
1265    DT_EFFECTIVE_BALANCE_LEGACY
1266 
1267       FROM OKL_K_LINES_H
1268       WHERE OKL_K_LINES_H.id     = p_id;
1269       l_okl_k_lines_h_pk             okl_k_lines_h_pk_csr%ROWTYPE;
1270       l_okl_k_lines_h_rec                      okl_k_lines_h_rec_type;
1271   BEGIN
1272 
1273     x_no_data_found := TRUE;
1274     -- Get current database values
1275     OPEN okl_k_lines_h_pk_csr (p_okl_k_lines_h_rec.id);
1276     FETCH okl_k_lines_h_pk_csr INTO
1277        l_okl_k_lines_h_rec.ID,
1278         l_okl_k_lines_h_rec.MAJOR_VERSION,
1279         l_okl_k_lines_h_rec.KLE_ID,
1280         l_okl_k_lines_h_rec.STY_ID,
1281         l_okl_k_lines_h_rec.OBJECT_VERSION_NUMBER,
1282         l_okl_k_lines_h_rec.LAO_AMOUNT,
1283         l_okl_k_lines_h_rec.FEE_CHARGE,
1284         l_okl_k_lines_h_rec.TITLE_DATE,
1285         l_okl_k_lines_h_rec.DATE_RESIDUAL_LAST_REVIEW,
1286         l_okl_k_lines_h_rec.DATE_LAST_REAMORTISATION,
1287         l_okl_k_lines_h_rec.TERMINATION_PURCHASE_AMOUNT,
1288         l_okl_k_lines_h_rec.DATE_LAST_CLEANUP,
1289         l_okl_k_lines_h_rec.REMARKETED_AMOUNT,
1290         l_okl_k_lines_h_rec.DATE_REMARKETED,
1291         l_okl_k_lines_h_rec.REMARKET_MARGIN,
1292         l_okl_k_lines_h_rec.REPURCHASED_AMOUNT,
1293         l_okl_k_lines_h_rec.DATE_REPURCHASED,
1294         l_okl_k_lines_h_rec.GAIN_LOSS,
1295         l_okl_k_lines_h_rec.FLOOR_AMOUNT,
1296         l_okl_k_lines_h_rec.PREVIOUS_CONTRACT,
1297         l_okl_k_lines_h_rec.TRACKED_RESIDUAL,
1298         l_okl_k_lines_h_rec.DATE_TITLE_RECEIVED,
1299         l_okl_k_lines_h_rec.ESTIMATED_OEC,
1300         l_okl_k_lines_h_rec.RESIDUAL_PERCENTAGE,
1301         l_okl_k_lines_h_rec.CAPITAL_REDUCTION,
1302         l_okl_k_lines_h_rec.VENDOR_ADVANCE_PAID,
1303         l_okl_k_lines_h_rec.TRADEIN_AMOUNT,
1304         l_okl_k_lines_h_rec.DELIVERED_DATE,
1305         l_okl_k_lines_h_rec.YEAR_OF_MANUFACTURE,
1306         l_okl_k_lines_h_rec.INITIAL_DIRECT_COST,
1307         l_okl_k_lines_h_rec.OCCUPANCY,
1308         l_okl_k_lines_h_rec.DATE_LAST_INSPECTION,
1309         l_okl_k_lines_h_rec.DATE_NEXT_INSPECTION_DUE,
1310         l_okl_k_lines_h_rec.WEIGHTED_AVERAGE_LIFE,
1311         l_okl_k_lines_h_rec.BOND_EQUIVALENT_YIELD,
1312         l_okl_k_lines_h_rec.REFINANCE_AMOUNT,
1313         l_okl_k_lines_h_rec.YEAR_BUILT,
1314         l_okl_k_lines_h_rec.COVERAGE_RATIO,
1315         l_okl_k_lines_h_rec.GROSS_SQUARE_FOOTAGE,
1316         l_okl_k_lines_h_rec.NET_RENTABLE,
1317         l_okl_k_lines_h_rec.DATE_LETTER_ACCEPTANCE,
1318         l_okl_k_lines_h_rec.DATE_COMMITMENT_EXPIRATION,
1319         l_okl_k_lines_h_rec.DATE_APPRAISAL,
1320         l_okl_k_lines_h_rec.APPRAISAL_VALUE,
1321         l_okl_k_lines_h_rec.RESIDUAL_VALUE,
1322         l_okl_k_lines_h_rec.PERCENT,
1323         l_okl_k_lines_h_rec.COVERAGE,
1324         l_okl_k_lines_h_rec.LRV_AMOUNT,
1325         l_okl_k_lines_h_rec.AMOUNT,
1326         l_okl_k_lines_h_rec.LRS_PERCENT,
1327         l_okl_k_lines_h_rec.EVERGREEN_PERCENT,
1328         l_okl_k_lines_h_rec.PERCENT_STAKE,
1329         l_okl_k_lines_h_rec.AMOUNT_STAKE,
1330         l_okl_k_lines_h_rec.DATE_SOLD,
1331         l_okl_k_lines_h_rec.STY_ID_FOR,
1332         l_okl_k_lines_h_rec.ATTRIBUTE_CATEGORY,
1333         l_okl_k_lines_h_rec.ATTRIBUTE1,
1334         l_okl_k_lines_h_rec.ATTRIBUTE2,
1335         l_okl_k_lines_h_rec.ATTRIBUTE3,
1336         l_okl_k_lines_h_rec.ATTRIBUTE4,
1337         l_okl_k_lines_h_rec.ATTRIBUTE5,
1338         l_okl_k_lines_h_rec.ATTRIBUTE6,
1339         l_okl_k_lines_h_rec.ATTRIBUTE7,
1340         l_okl_k_lines_h_rec.ATTRIBUTE8,
1341         l_okl_k_lines_h_rec.ATTRIBUTE9,
1342         l_okl_k_lines_h_rec.ATTRIBUTE10,
1343         l_okl_k_lines_h_rec.ATTRIBUTE11,
1344         l_okl_k_lines_h_rec.ATTRIBUTE12,
1345         l_okl_k_lines_h_rec.ATTRIBUTE13,
1346         l_okl_k_lines_h_rec.ATTRIBUTE14,
1347         l_okl_k_lines_h_rec.ATTRIBUTE15,
1348         l_okl_k_lines_h_rec.CREATED_BY,
1349         l_okl_k_lines_h_rec.CREATION_DATE,
1350         l_okl_k_lines_h_rec.LAST_UPDATED_BY,
1351         l_okl_k_lines_h_rec.LAST_UPDATE_DATE,
1352         l_okl_k_lines_h_rec.LAST_UPDATE_LOGIN,
1353         l_okl_k_lines_h_rec.NTY_CODE,
1354         l_okl_k_lines_h_rec.FCG_CODE,
1355         l_okl_k_lines_h_rec.PRC_CODE,
1356         l_okl_k_lines_h_rec.RE_LEASE_YN,
1357         l_okl_k_lines_h_rec.PRESCRIBED_ASSET_YN,
1358         l_okl_k_lines_h_rec.CREDIT_TENANT_YN,
1359         l_okl_k_lines_h_rec.SECURED_DEAL_YN,
1360         l_okl_k_lines_h_rec.CLG_ID,
1361         l_okl_k_lines_h_rec.DATE_FUNDING,
1362         l_okl_k_lines_h_rec.DATE_FUNDING_REQUIRED,
1363         l_okl_k_lines_h_rec.DATE_ACCEPTED,
1364         l_okl_k_lines_h_rec.DATE_DELIVERY_EXPECTED,
1365         l_okl_k_lines_h_rec.OEC,
1366         l_okl_k_lines_h_rec.CAPITAL_AMOUNT,
1367         l_okl_k_lines_h_rec.RESIDUAL_GRNTY_AMOUNT,
1368         l_okl_k_lines_h_rec.RESIDUAL_CODE,
1369         l_okl_k_lines_h_rec.RVI_PREMIUM,
1370         l_okl_k_lines_h_rec.CREDIT_NATURE,
1371         l_okl_k_lines_h_rec.CAPITALIZED_INTEREST,
1372         l_okl_k_lines_h_rec.CAPITAL_REDUCTION_PERCENT,
1373 --Bug# 2697681 11.5.9
1374         l_okl_k_lines_h_rec.DATE_PAY_INVESTOR_START,
1375         l_okl_k_lines_h_rec.PAY_INVESTOR_FREQUENCY,
1376         l_okl_k_lines_h_rec.PAY_INVESTOR_EVENT,
1377         l_okl_k_lines_h_rec.PAY_INVESTOR_REMITTANCE_DAYS,
1378 --financed fees
1379         l_okl_k_lines_h_rec.FEE_TYPE,
1380 --Bug# 3143522 : 11.5.10
1381 --subsidy
1382    l_okl_k_lines_h_rec.SUBSIDY_ID,
1383    --l_okl_k_lines_h_rec.SUBSIDIZED_OEC,
1384    --l_okl_k_lines_h_rec.SUBSIDIZED_CAP_AMOUNT,
1385    l_okl_k_lines_h_rec.SUBSIDY_OVERRIDE_AMOUNT,
1386    --financed fee
1387    l_okl_k_lines_h_rec.PRE_TAX_YIELD,
1388    l_okl_k_lines_h_rec.AFTER_TAX_YIELD,
1389    l_okl_k_lines_h_rec.IMPLICIT_INTEREST_RATE,
1390    l_okl_k_lines_h_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
1391    l_okl_k_lines_h_rec.PRE_TAX_IRR,
1392    l_okl_k_lines_h_rec.AFTER_TAX_IRR,
1393 --quote
1394    l_okl_k_lines_h_rec.SUB_PRE_TAX_YIELD,
1395    l_okl_k_lines_h_rec.SUB_AFTER_TAX_YIELD,
1396    l_okl_k_lines_h_rec.SUB_IMPL_INTEREST_RATE,
1397    l_okl_k_lines_h_rec.SUB_IMPL_NON_IDC_INT_RATE,
1398    l_okl_k_lines_h_rec.SUB_PRE_TAX_IRR,
1399    l_okl_k_lines_h_rec.SUB_AFTER_TAX_IRR,
1400 --Bug# 2994971
1401    l_okl_k_lines_h_rec.ITEM_INSURANCE_CATEGORY,
1402 --Bug# 3973640 11.5.10+
1403    l_okl_k_lines_h_rec.QTE_ID,
1404    l_okl_k_lines_h_rec.FUNDING_DATE,
1405    l_okl_k_lines_h_rec.STREAM_TYPE_SUBCLASS,
1406    --Bug# 4419339 OKLH
1407    l_okl_k_lines_h_rec.DATE_FUNDING_EXPECTED,
1408    l_okl_k_lines_h_rec.MANUFACTURER_NAME,
1409    l_okl_k_lines_h_rec.MODEL_NUMBER,
1410    l_okl_k_lines_h_rec.DOWN_PAYMENT_RECEIVER_CODE,
1411    l_okl_k_lines_h_rec.CAPITALIZE_DOWN_PAYMENT_YN,
1412 --Bug#4373029
1413    l_okl_k_lines_h_rec.FEE_PURPOSE_CODE,
1414    l_okl_k_lines_h_rec.TERMINATION_VALUE,
1415 --Bug# 4631549
1416    l_okl_k_lines_h_rec.EXPECTED_ASSET_COST,
1417    l_okl_k_lines_h_rec.ORIG_CONTRACT_LINE_ID,
1418 --Bug# 16344245
1419    l_okl_k_lines_h_rec.ORIGINATION_INCOME,
1420    l_okl_k_lines_h_rec.AMOUNT_BALANCE_LEGACY,
1421    l_okl_k_lines_h_rec.DT_EFFECTIVE_BALANCE_LEGACY
1422          ;
1423     x_no_data_found := okl_k_lines_h_pk_csr%NOTFOUND;
1424     CLOSE okl_k_lines_h_pk_csr;
1425     RETURN(l_okl_k_lines_h_rec);
1426   END get_rec;
1427 
1428   FUNCTION get_rec (
1429     p_okl_k_lines_h_rec                     IN okl_k_lines_h_rec_type
1430   ) RETURN okl_k_lines_h_rec_type IS
1431     l_row_notfound                 BOOLEAN := TRUE;
1432   BEGIN
1433     RETURN(get_rec(p_okl_k_lines_h_rec, l_row_notfound));
1434   END get_rec;
1435 
1436 
1437   ---------------------------------------------------------------------------
1438   -- FUNCTION get_rec for: OKL_K_LINES_V
1439   ---------------------------------------------------------------------------
1440   FUNCTION get_rec (
1441     p_klev_rec                     IN klev_rec_type,
1442     x_no_data_found                OUT NOCOPY BOOLEAN
1443   ) RETURN klev_rec_type IS
1444     CURSOR okl_k_lines_v_pk_csr (p_id                 IN NUMBER) IS
1445       SELECT
1446 	ID,
1447         OBJECT_VERSION_NUMBER,
1448         KLE_ID,
1449         STY_ID,
1450         PRC_CODE,
1451         FCG_CODE,
1452         NTY_CODE,
1453         ESTIMATED_OEC,
1454         LAO_AMOUNT,
1455         TITLE_DATE,
1456         FEE_CHARGE,
1457         LRS_PERCENT,
1458         INITIAL_DIRECT_COST,
1459         PERCENT_STAKE,
1460         PERCENT,
1461         EVERGREEN_PERCENT,
1462         AMOUNT_STAKE,
1463         OCCUPANCY,
1464         COVERAGE,
1465         RESIDUAL_PERCENTAGE,
1466         DATE_LAST_INSPECTION,
1467         DATE_SOLD,
1468         LRV_AMOUNT,
1469         CAPITAL_REDUCTION,
1470         DATE_NEXT_INSPECTION_DUE,
1471         DATE_RESIDUAL_LAST_REVIEW,
1472         DATE_LAST_REAMORTISATION,
1473         VENDOR_ADVANCE_PAID,
1474         WEIGHTED_AVERAGE_LIFE,
1475         TRADEIN_AMOUNT,
1476         BOND_EQUIVALENT_YIELD,
1477         TERMINATION_PURCHASE_AMOUNT,
1478         REFINANCE_AMOUNT,
1479         YEAR_BUILT,
1480         DELIVERED_DATE,
1481         CREDIT_TENANT_YN,
1482         DATE_LAST_CLEANUP,
1483         YEAR_OF_MANUFACTURE,
1484         COVERAGE_RATIO,
1485         REMARKETED_AMOUNT,
1486         GROSS_SQUARE_FOOTAGE,
1487         PRESCRIBED_ASSET_YN,
1488         DATE_REMARKETED,
1489         NET_RENTABLE,
1490         REMARKET_MARGIN,
1491         DATE_LETTER_ACCEPTANCE,
1492         REPURCHASED_AMOUNT,
1493         DATE_COMMITMENT_EXPIRATION,
1494         DATE_REPURCHASED,
1495         DATE_APPRAISAL,
1496         RESIDUAL_VALUE,
1497         APPRAISAL_VALUE,
1498         SECURED_DEAL_YN,
1499         GAIN_LOSS,
1500         FLOOR_AMOUNT,
1501         RE_LEASE_YN,
1502         PREVIOUS_CONTRACT,
1503         TRACKED_RESIDUAL,
1504         DATE_TITLE_RECEIVED,
1505         AMOUNT,
1506         ATTRIBUTE_CATEGORY,
1507         ATTRIBUTE1,
1508         ATTRIBUTE2,
1509         ATTRIBUTE3,
1510         ATTRIBUTE4,
1511         ATTRIBUTE5,
1512         ATTRIBUTE6,
1513         ATTRIBUTE7,
1514         ATTRIBUTE8,
1515         ATTRIBUTE9,
1516         ATTRIBUTE10,
1517         ATTRIBUTE11,
1518         ATTRIBUTE12,
1519         ATTRIBUTE13,
1520         ATTRIBUTE14,
1521         ATTRIBUTE15,
1522         STY_ID_FOR,
1523         CLG_ID,
1524         CREATED_BY,
1525         CREATION_DATE,
1526         LAST_UPDATED_BY,
1527         LAST_UPDATE_DATE,
1528         LAST_UPDATE_LOGIN,
1529         DATE_FUNDING,
1530         DATE_FUNDING_REQUIRED,
1531         DATE_ACCEPTED,
1532         DATE_DELIVERY_EXPECTED,
1533         OEC,
1534         CAPITAL_AMOUNT,
1535         RESIDUAL_GRNTY_AMOUNT,
1536         RESIDUAL_CODE,
1537         RVI_PREMIUM,
1538         CREDIT_NATURE,
1539         CAPITALIZED_INTEREST,
1540         CAPITAL_REDUCTION_PERCENT,
1541 --Bug# 2697681 11.5.9
1542         DATE_PAY_INVESTOR_START,
1543         PAY_INVESTOR_FREQUENCY,
1544         PAY_INVESTOR_EVENT,
1545         PAY_INVESTOR_REMITTANCE_DAYS,
1546 --financed fees
1547         FEE_TYPE,
1548 --Bug#3143522 : 11.5.10
1549 --subsidy
1550    SUBSIDY_ID,
1551    --SUBSIDIZED_OEC,
1552    --SUBSIDIZED_CAP_AMOUNT,
1553    SUBSIDY_OVERRIDE_AMOUNT,
1554 --financed fee
1555    PRE_TAX_YIELD,
1556    AFTER_TAX_YIELD,
1557    IMPLICIT_INTEREST_RATE,
1558    IMPLICIT_NON_IDC_INTEREST_RATE,
1559    PRE_TAX_IRR,
1560    AFTER_TAX_IRR,
1561 --quote
1562    SUB_PRE_TAX_YIELD,
1563    SUB_AFTER_TAX_YIELD,
1564    SUB_IMPL_INTEREST_RATE,
1565    SUB_IMPL_NON_IDC_INT_RATE,
1566    SUB_PRE_TAX_IRR,
1567    SUB_AFTER_TAX_IRR,
1568 --Bug# 2994971
1569    ITEM_INSURANCE_CATEGORY,
1570 --Bug# 3973640 11.5.10+
1571    QTE_ID,
1572    FUNDING_DATE,
1573    STREAM_TYPE_SUBCLASS,
1574 --Bug# 4419339 OKLH
1575    DATE_FUNDING_EXPECTED,
1576    MANUFACTURER_NAME,
1577    MODEL_NUMBER,
1578    DOWN_PAYMENT_RECEIVER_CODE,
1579    CAPITALIZE_DOWN_PAYMENT_YN,
1580 --Bug#4373029
1581    FEE_PURPOSE_CODE,
1582    TERMINATION_VALUE,
1583 --Bug# 4631549
1584    EXPECTED_ASSET_COST,
1585    ORIG_CONTRACT_LINE_ID,
1586       --Added by jjuneja
1587    ORIGINATION_INCOME,
1588    --End of addition by jjuneja
1589 --Bug# 16344245
1590    AMOUNT_BALANCE_LEGACY,
1591    DT_EFFECTIVE_BALANCE_LEGACY
1592 
1593       FROM OKL_K_LINES_V
1594       WHERE OKL_K_LINES_V.id     = p_id;
1595       l_okl_k_lines_v_pk             okl_k_lines_v_pk_csr%ROWTYPE;
1596       l_klev_rec                      klev_rec_type;
1597   BEGIN
1598 
1599     x_no_data_found := TRUE;
1600     -- Get current database values
1601     OPEN okl_k_lines_v_pk_csr (p_klev_rec.id);
1602     FETCH okl_k_lines_v_pk_csr INTO
1603        l_klev_rec.ID,
1604         l_klev_rec.OBJECT_VERSION_NUMBER,
1605         l_klev_rec.KLE_ID,
1606         l_klev_rec.STY_ID,
1607         l_klev_rec.PRC_CODE,
1608         l_klev_rec.FCG_CODE,
1609         l_klev_rec.NTY_CODE,
1610         l_klev_rec.ESTIMATED_OEC,
1611         l_klev_rec.LAO_AMOUNT,
1612         l_klev_rec.TITLE_DATE,
1613         l_klev_rec.FEE_CHARGE,
1614         l_klev_rec.LRS_PERCENT,
1615         l_klev_rec.INITIAL_DIRECT_COST,
1616         l_klev_rec.PERCENT_STAKE,
1617         l_klev_rec.PERCENT,
1618         l_klev_rec.EVERGREEN_PERCENT,
1619         l_klev_rec.AMOUNT_STAKE,
1620         l_klev_rec.OCCUPANCY,
1621         l_klev_rec.COVERAGE,
1622         l_klev_rec.RESIDUAL_PERCENTAGE,
1623         l_klev_rec.DATE_LAST_INSPECTION,
1624         l_klev_rec.DATE_SOLD,
1625         l_klev_rec.LRV_AMOUNT,
1626         l_klev_rec.CAPITAL_REDUCTION,
1627         l_klev_rec.DATE_NEXT_INSPECTION_DUE,
1628         l_klev_rec.DATE_RESIDUAL_LAST_REVIEW,
1629         l_klev_rec.DATE_LAST_REAMORTISATION,
1630         l_klev_rec.VENDOR_ADVANCE_PAID,
1631         l_klev_rec.WEIGHTED_AVERAGE_LIFE,
1632         l_klev_rec.TRADEIN_AMOUNT,
1633         l_klev_rec.BOND_EQUIVALENT_YIELD,
1634         l_klev_rec.TERMINATION_PURCHASE_AMOUNT,
1635         l_klev_rec.REFINANCE_AMOUNT,
1636         l_klev_rec.YEAR_BUILT,
1637         l_klev_rec.DELIVERED_DATE,
1638         l_klev_rec.CREDIT_TENANT_YN,
1639         l_klev_rec.DATE_LAST_CLEANUP,
1640         l_klev_rec.YEAR_OF_MANUFACTURE,
1641         l_klev_rec.COVERAGE_RATIO,
1642         l_klev_rec.REMARKETED_AMOUNT,
1643         l_klev_rec.GROSS_SQUARE_FOOTAGE,
1644         l_klev_rec.PRESCRIBED_ASSET_YN,
1645         l_klev_rec.DATE_REMARKETED,
1646         l_klev_rec.NET_RENTABLE,
1647         l_klev_rec.REMARKET_MARGIN,
1648         l_klev_rec.DATE_LETTER_ACCEPTANCE,
1649         l_klev_rec.REPURCHASED_AMOUNT,
1650         l_klev_rec.DATE_COMMITMENT_EXPIRATION,
1651         l_klev_rec.DATE_REPURCHASED,
1652         l_klev_rec.DATE_APPRAISAL,
1653         l_klev_rec.RESIDUAL_VALUE,
1654         l_klev_rec.APPRAISAL_VALUE,
1655         l_klev_rec.SECURED_DEAL_YN,
1656         l_klev_rec.GAIN_LOSS,
1657         l_klev_rec.FLOOR_AMOUNT,
1658         l_klev_rec.RE_LEASE_YN,
1659         l_klev_rec.PREVIOUS_CONTRACT,
1660         l_klev_rec.TRACKED_RESIDUAL,
1661         l_klev_rec.DATE_TITLE_RECEIVED,
1662         l_klev_rec.AMOUNT,
1663         l_klev_rec.ATTRIBUTE_CATEGORY,
1664         l_klev_rec.ATTRIBUTE1,
1665         l_klev_rec.ATTRIBUTE2,
1666         l_klev_rec.ATTRIBUTE3,
1667         l_klev_rec.ATTRIBUTE4,
1668         l_klev_rec.ATTRIBUTE5,
1669         l_klev_rec.ATTRIBUTE6,
1670         l_klev_rec.ATTRIBUTE7,
1671         l_klev_rec.ATTRIBUTE8,
1672         l_klev_rec.ATTRIBUTE9,
1673         l_klev_rec.ATTRIBUTE10,
1674         l_klev_rec.ATTRIBUTE11,
1675         l_klev_rec.ATTRIBUTE12,
1676         l_klev_rec.ATTRIBUTE13,
1677         l_klev_rec.ATTRIBUTE14,
1678         l_klev_rec.ATTRIBUTE15,
1679         l_klev_rec.STY_ID_FOR,
1680         l_klev_rec.CLG_ID,
1681         l_klev_rec.CREATED_BY,
1682         l_klev_rec.CREATION_DATE,
1683         l_klev_rec.LAST_UPDATED_BY,
1684         l_klev_rec.LAST_UPDATE_DATE,
1685         l_klev_rec.LAST_UPDATE_LOGIN,
1686         l_klev_rec.DATE_FUNDING,
1687         l_klev_rec.DATE_FUNDING_REQUIRED,
1688         l_klev_rec.DATE_ACCEPTED,
1689         l_klev_rec.DATE_DELIVERY_EXPECTED,
1690         l_klev_rec.OEC,
1691         l_klev_rec.CAPITAL_AMOUNT,
1692         l_klev_rec.RESIDUAL_GRNTY_AMOUNT,
1693         l_klev_rec.RESIDUAL_CODE,
1694         l_klev_rec.RVI_PREMIUM,
1695         l_klev_rec.CREDIT_NATURE,
1696         l_klev_rec.CAPITALIZED_INTEREST,
1697         l_klev_rec.CAPITAL_REDUCTION_PERCENT,
1698 --Bug# 2697681 11.5.9
1699         l_klev_rec.DATE_PAY_INVESTOR_START,
1700         l_klev_rec.PAY_INVESTOR_FREQUENCY,
1701         l_klev_rec.PAY_INVESTOR_EVENT,
1702         l_klev_rec.PAY_INVESTOR_REMITTANCE_DAYS,
1703 --financed fees
1704         l_klev_rec.FEE_TYPE,
1705 --Bug# 3143522 : 11.5.10
1706 --subsidy
1707    l_klev_rec.SUBSIDY_ID,
1708    --l_klev_rec.SUBSIDIZED_OEC,
1709    --l_klev_rec.SUBSIDIZED_CAP_AMOUNT,
1710    l_klev_rec.SUBSIDY_OVERRIDE_AMOUNT,
1711 --financed fee
1712    l_klev_rec.PRE_TAX_YIELD,
1713    l_klev_rec.AFTER_TAX_YIELD,
1714    l_klev_rec.IMPLICIT_INTEREST_RATE,
1715    l_klev_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
1716    l_klev_rec.PRE_TAX_IRR,
1717    l_klev_rec.AFTER_TAX_IRR,
1718 --quote
1719    l_klev_rec.SUB_PRE_TAX_YIELD,
1720    l_klev_rec.SUB_AFTER_TAX_YIELD,
1721    l_klev_rec.SUB_IMPL_INTEREST_RATE,
1722    l_klev_rec.SUB_IMPL_NON_IDC_INT_RATE,
1723    l_klev_rec.SUB_PRE_TAX_IRR,
1724    l_klev_rec.SUB_AFTER_TAX_IRR,
1725 --Bug# 2994971
1726    l_klev_rec.ITEM_INSURANCE_CATEGORY,
1727 --Bug# 3973640 - 11.5.10+
1728    l_klev_rec.QTE_ID,
1729    l_klev_rec.FUNDING_DATE,
1730    l_klev_rec.STREAM_TYPE_SUBCLASS,
1731 --Bug# 4419339 OKLH
1732    l_klev_rec.DATE_FUNDING_EXPECTED,
1733    l_klev_rec.MANUFACTURER_NAME,
1734    l_klev_rec.MODEL_NUMBER,
1735    l_klev_rec.DOWN_PAYMENT_RECEIVER_CODE,
1736    l_klev_rec.CAPITALIZE_DOWN_PAYMENT_YN,
1737 --Bug#4373029
1738    l_klev_rec.FEE_PURPOSE_CODE,
1739    l_klev_rec.TERMINATION_VALUE,
1740 --Bug# 4631549
1741    l_klev_rec.EXPECTED_ASSET_COST,
1742    l_klev_rec.ORIG_CONTRACT_LINE_ID,
1743       --Added by jjuneja
1744    l_klev_rec.ORIGINATION_INCOME,
1745 --Bug# 16344245
1746    l_klev_rec.AMOUNT_BALANCE_LEGACY,
1747    l_klev_rec.DT_EFFECTIVE_BALANCE_LEGACY
1748 
1749 ;
1750     x_no_data_found := okl_k_lines_v_pk_csr%NOTFOUND;
1751     CLOSE okl_k_lines_v_pk_csr;
1752     RETURN(l_klev_rec);
1753   END get_rec;
1754 
1755   FUNCTION get_rec (
1756     p_klev_rec                     IN klev_rec_type
1757   ) RETURN klev_rec_type IS
1758     l_row_notfound                 BOOLEAN := TRUE;
1759   BEGIN
1760     RETURN(get_rec(p_klev_rec, l_row_notfound));
1761   END get_rec;
1762 
1763 
1764   -----------------------------------------------------
1765   -- FUNCTION null_out_defaults for: OKL_K_LINES_V --
1766   -----------------------------------------------------
1767   FUNCTION null_out_defaults (
1768     p_klev_rec                     IN klev_rec_type
1769   ) RETURN klev_rec_type IS
1770     l_klev_rec	klev_rec_type := p_klev_rec;
1771   BEGIN
1772 
1773     IF (l_klev_rec.ID = OKC_API.G_MISS_NUM) THEN
1774       l_klev_rec.ID := NULL;
1775     END IF;
1776 
1777     IF (l_klev_rec.OBJECT_VERSION_NUMBER = OKC_API.G_MISS_NUM) THEN
1778       l_klev_rec.OBJECT_VERSION_NUMBER := NULL;
1779     END IF;
1780 
1781     IF (l_klev_rec.KLE_ID = OKC_API.G_MISS_NUM) THEN
1782       l_klev_rec.KLE_ID := NULL;
1783     END IF;
1784 
1785     IF (l_klev_rec.STY_ID = OKC_API.G_MISS_NUM) THEN
1786       l_klev_rec.STY_ID := NULL;
1787     END IF;
1788 
1789     IF (l_klev_rec.PRC_CODE = OKC_API.G_MISS_CHAR) THEN
1790       l_klev_rec.PRC_CODE := NULL;
1791     END IF;
1792 
1793     IF (l_klev_rec.FCG_CODE = OKC_API.G_MISS_CHAR) THEN
1794       l_klev_rec.FCG_CODE := NULL;
1795     END IF;
1796 
1797     IF (l_klev_rec.NTY_CODE = OKC_API.G_MISS_CHAR) THEN
1798       l_klev_rec.NTY_CODE := NULL;
1799     END IF;
1800 
1801     IF (l_klev_rec.ESTIMATED_OEC = OKC_API.G_MISS_NUM) THEN
1802       l_klev_rec.ESTIMATED_OEC := NULL;
1803     END IF;
1804 
1805     IF (l_klev_rec.LAO_AMOUNT = OKC_API.G_MISS_NUM) THEN
1806       l_klev_rec.LAO_AMOUNT := NULL;
1807     END IF;
1808 
1809     IF (l_klev_rec.TITLE_DATE = OKC_API.G_MISS_DATE) THEN
1810       l_klev_rec.TITLE_DATE := NULL;
1811     END IF;
1812 
1813     IF (l_klev_rec.FEE_CHARGE = OKC_API.G_MISS_NUM) THEN
1814       l_klev_rec.FEE_CHARGE := NULL;
1815     END IF;
1816 
1817     IF (l_klev_rec.LRS_PERCENT = OKC_API.G_MISS_NUM) THEN
1818       l_klev_rec.LRS_PERCENT := NULL;
1819     END IF;
1820 
1821     IF (l_klev_rec.INITIAL_DIRECT_COST = OKC_API.G_MISS_NUM) THEN
1822       l_klev_rec.INITIAL_DIRECT_COST := NULL;
1823     END IF;
1824 
1825     IF (l_klev_rec.PERCENT_STAKE = OKC_API.G_MISS_NUM) THEN
1826       l_klev_rec.PERCENT_STAKE := NULL;
1827     END IF;
1828 
1829     IF (l_klev_rec.PERCENT = OKC_API.G_MISS_NUM) THEN
1830       l_klev_rec.PERCENT := NULL;
1831     END IF;
1832 
1833     IF (l_klev_rec.EVERGREEN_PERCENT = OKC_API.G_MISS_NUM) THEN
1834       l_klev_rec.EVERGREEN_PERCENT := NULL;
1835     END IF;
1836 
1837     IF (l_klev_rec.AMOUNT_STAKE = OKC_API.G_MISS_NUM) THEN
1838       l_klev_rec.AMOUNT_STAKE := NULL;
1839     END IF;
1840 
1841     IF (l_klev_rec.OCCUPANCY = OKC_API.G_MISS_NUM) THEN
1842       l_klev_rec.OCCUPANCY := NULL;
1843     END IF;
1844 
1845     IF (l_klev_rec.COVERAGE = OKC_API.G_MISS_NUM) THEN
1846       l_klev_rec.COVERAGE := NULL;
1847     END IF;
1848 
1849     IF (l_klev_rec.RESIDUAL_PERCENTAGE = OKC_API.G_MISS_NUM) THEN
1850       l_klev_rec.RESIDUAL_PERCENTAGE := NULL;
1851     END IF;
1852 
1853     IF (l_klev_rec.DATE_LAST_INSPECTION = OKC_API.G_MISS_DATE) THEN
1854       l_klev_rec.DATE_LAST_INSPECTION := NULL;
1855     END IF;
1856 
1857     IF (l_klev_rec.DATE_SOLD = OKC_API.G_MISS_DATE) THEN
1858       l_klev_rec.DATE_SOLD := NULL;
1859     END IF;
1860 
1861     IF (l_klev_rec.LRV_AMOUNT = OKC_API.G_MISS_NUM) THEN
1862       l_klev_rec.LRV_AMOUNT := NULL;
1863     END IF;
1864 
1865     IF (l_klev_rec.CAPITAL_REDUCTION = OKC_API.G_MISS_NUM) THEN
1866       l_klev_rec.CAPITAL_REDUCTION := NULL;
1867     END IF;
1868 
1869     IF (l_klev_rec.DATE_NEXT_INSPECTION_DUE = OKC_API.G_MISS_DATE) THEN
1870       l_klev_rec.DATE_NEXT_INSPECTION_DUE := NULL;
1871     END IF;
1872 
1873     IF (l_klev_rec.DATE_RESIDUAL_LAST_REVIEW = OKC_API.G_MISS_DATE) THEN
1874       l_klev_rec.DATE_RESIDUAL_LAST_REVIEW := NULL;
1875     END IF;
1876 
1877     IF (l_klev_rec.DATE_LAST_REAMORTISATION = OKC_API.G_MISS_DATE) THEN
1878       l_klev_rec.DATE_LAST_REAMORTISATION := NULL;
1879     END IF;
1880 
1881     IF (l_klev_rec.VENDOR_ADVANCE_PAID = OKC_API.G_MISS_NUM) THEN
1882       l_klev_rec.VENDOR_ADVANCE_PAID := NULL;
1883     END IF;
1884 
1885     IF (l_klev_rec.WEIGHTED_AVERAGE_LIFE = OKC_API.G_MISS_NUM) THEN
1886       l_klev_rec.WEIGHTED_AVERAGE_LIFE := NULL;
1887     END IF;
1888 
1889     IF (l_klev_rec.TRADEIN_AMOUNT = OKC_API.G_MISS_NUM) THEN
1890       l_klev_rec.TRADEIN_AMOUNT := NULL;
1891     END IF;
1892 
1893     IF (l_klev_rec.BOND_EQUIVALENT_YIELD = OKC_API.G_MISS_NUM) THEN
1894       l_klev_rec.BOND_EQUIVALENT_YIELD := NULL;
1895     END IF;
1896 
1897     IF (l_klev_rec.TERMINATION_PURCHASE_AMOUNT = OKC_API.G_MISS_NUM) THEN
1898       l_klev_rec.TERMINATION_PURCHASE_AMOUNT := NULL;
1899     END IF;
1900 
1901     IF (l_klev_rec.REFINANCE_AMOUNT = OKC_API.G_MISS_NUM) THEN
1902       l_klev_rec.REFINANCE_AMOUNT := NULL;
1903     END IF;
1904 
1905     IF (l_klev_rec.YEAR_BUILT = OKC_API.G_MISS_NUM) THEN
1906       l_klev_rec.YEAR_BUILT := NULL;
1907     END IF;
1908 
1909     IF (l_klev_rec.DELIVERED_DATE = OKC_API.G_MISS_DATE) THEN
1910       l_klev_rec.DELIVERED_DATE := NULL;
1911     END IF;
1912 
1913     IF (l_klev_rec.CREDIT_TENANT_YN = OKC_API.G_MISS_CHAR) THEN
1914       l_klev_rec.CREDIT_TENANT_YN := NULL;
1915     END IF;
1916 
1917     IF (l_klev_rec.DATE_LAST_CLEANUP = OKC_API.G_MISS_DATE) THEN
1918       l_klev_rec.DATE_LAST_CLEANUP := NULL;
1919     END IF;
1920 
1921     IF (l_klev_rec.YEAR_OF_MANUFACTURE = OKC_API.G_MISS_CHAR) THEN
1922       l_klev_rec.YEAR_OF_MANUFACTURE := NULL;
1923     END IF;
1924 
1925     IF (l_klev_rec.COVERAGE_RATIO = OKC_API.G_MISS_NUM) THEN
1926       l_klev_rec.COVERAGE_RATIO := NULL;
1927     END IF;
1928 
1929     IF (l_klev_rec.REMARKETED_AMOUNT = OKC_API.G_MISS_NUM) THEN
1930       l_klev_rec.REMARKETED_AMOUNT := NULL;
1931     END IF;
1932 
1933     IF (l_klev_rec.GROSS_SQUARE_FOOTAGE = OKC_API.G_MISS_NUM) THEN
1934       l_klev_rec.GROSS_SQUARE_FOOTAGE := NULL;
1935     END IF;
1936 
1937     IF (l_klev_rec.PRESCRIBED_ASSET_YN = OKC_API.G_MISS_CHAR) THEN
1938       l_klev_rec.PRESCRIBED_ASSET_YN := NULL;
1939     END IF;
1940 
1941     IF (l_klev_rec.DATE_REMARKETED = OKC_API.G_MISS_DATE) THEN
1942       l_klev_rec.DATE_REMARKETED := NULL;
1943     END IF;
1944 
1945     IF (l_klev_rec.NET_RENTABLE = OKC_API.G_MISS_NUM) THEN
1946       l_klev_rec.NET_RENTABLE := NULL;
1947     END IF;
1948 
1949     IF (l_klev_rec.REMARKET_MARGIN = OKC_API.G_MISS_NUM) THEN
1950       l_klev_rec.REMARKET_MARGIN := NULL;
1951     END IF;
1952 
1953     IF (l_klev_rec.DATE_LETTER_ACCEPTANCE = OKC_API.G_MISS_DATE) THEN
1954       l_klev_rec.DATE_LETTER_ACCEPTANCE := NULL;
1955     END IF;
1956 
1957     IF (l_klev_rec.REPURCHASED_AMOUNT = OKC_API.G_MISS_NUM) THEN
1958       l_klev_rec.REPURCHASED_AMOUNT := NULL;
1959     END IF;
1960 
1961     IF (l_klev_rec.DATE_COMMITMENT_EXPIRATION = OKC_API.G_MISS_DATE) THEN
1962       l_klev_rec.DATE_COMMITMENT_EXPIRATION := NULL;
1963     END IF;
1964 
1965     IF (l_klev_rec.DATE_REPURCHASED = OKC_API.G_MISS_DATE) THEN
1966       l_klev_rec.DATE_REPURCHASED := NULL;
1967     END IF;
1968 
1969     IF (l_klev_rec.DATE_APPRAISAL = OKC_API.G_MISS_DATE) THEN
1970       l_klev_rec.DATE_APPRAISAL := NULL;
1971     END IF;
1972 
1973     IF (l_klev_rec.RESIDUAL_VALUE = OKC_API.G_MISS_NUM) THEN
1974       l_klev_rec.RESIDUAL_VALUE := NULL;
1975     END IF;
1976 
1977     IF (l_klev_rec.APPRAISAL_VALUE = OKC_API.G_MISS_NUM) THEN
1978       l_klev_rec.APPRAISAL_VALUE := NULL;
1979     END IF;
1980 
1981     IF (l_klev_rec.SECURED_DEAL_YN = OKC_API.G_MISS_CHAR) THEN
1982       l_klev_rec.SECURED_DEAL_YN := NULL;
1983     END IF;
1984 
1985     IF (l_klev_rec.GAIN_LOSS = OKC_API.G_MISS_NUM) THEN
1986       l_klev_rec.GAIN_LOSS := NULL;
1987     END IF;
1988 
1989     IF (l_klev_rec.FLOOR_AMOUNT = OKC_API.G_MISS_NUM) THEN
1990       l_klev_rec.FLOOR_AMOUNT := NULL;
1991     END IF;
1992 
1993     IF (l_klev_rec.RE_LEASE_YN = OKC_API.G_MISS_CHAR) THEN
1994       l_klev_rec.RE_LEASE_YN := NULL;
1995     END IF;
1996 
1997     IF (l_klev_rec.PREVIOUS_CONTRACT = OKC_API.G_MISS_CHAR) THEN
1998       l_klev_rec.PREVIOUS_CONTRACT := NULL;
1999     END IF;
2000 
2001     IF (l_klev_rec.TRACKED_RESIDUAL = OKC_API.G_MISS_NUM) THEN
2002       l_klev_rec.TRACKED_RESIDUAL := NULL;
2003     END IF;
2004 
2005     IF (l_klev_rec.DATE_TITLE_RECEIVED = OKC_API.G_MISS_DATE) THEN
2006       l_klev_rec.DATE_TITLE_RECEIVED := NULL;
2007     END IF;
2008 
2009     IF (l_klev_rec.AMOUNT = OKC_API.G_MISS_NUM) THEN
2010       l_klev_rec.AMOUNT := NULL;
2011     END IF;
2012 
2013     IF (l_klev_rec.ATTRIBUTE_CATEGORY = OKC_API.G_MISS_CHAR) THEN
2014       l_klev_rec.ATTRIBUTE_CATEGORY := NULL;
2015     END IF;
2016 
2017     IF (l_klev_rec.ATTRIBUTE1 = OKC_API.G_MISS_CHAR) THEN
2018       l_klev_rec.ATTRIBUTE1 := NULL;
2019     END IF;
2020 
2021     IF (l_klev_rec.ATTRIBUTE2 = OKC_API.G_MISS_CHAR) THEN
2022       l_klev_rec.ATTRIBUTE2 := NULL;
2023     END IF;
2024 
2025     IF (l_klev_rec.ATTRIBUTE3 = OKC_API.G_MISS_CHAR) THEN
2026       l_klev_rec.ATTRIBUTE3 := NULL;
2027     END IF;
2028 
2029     IF (l_klev_rec.ATTRIBUTE4 = OKC_API.G_MISS_CHAR) THEN
2030       l_klev_rec.ATTRIBUTE4 := NULL;
2031     END IF;
2032 
2033     IF (l_klev_rec.ATTRIBUTE5 = OKC_API.G_MISS_CHAR) THEN
2034       l_klev_rec.ATTRIBUTE5 := NULL;
2035     END IF;
2036 
2037     IF (l_klev_rec.ATTRIBUTE6 = OKC_API.G_MISS_CHAR) THEN
2038       l_klev_rec.ATTRIBUTE6 := NULL;
2039     END IF;
2040 
2041     IF (l_klev_rec.ATTRIBUTE7 = OKC_API.G_MISS_CHAR) THEN
2042       l_klev_rec.ATTRIBUTE7 := NULL;
2043     END IF;
2044 
2045     IF (l_klev_rec.ATTRIBUTE8 = OKC_API.G_MISS_CHAR) THEN
2046       l_klev_rec.ATTRIBUTE8 := NULL;
2047     END IF;
2048 
2049     IF (l_klev_rec.ATTRIBUTE9 = OKC_API.G_MISS_CHAR) THEN
2050       l_klev_rec.ATTRIBUTE9 := NULL;
2051     END IF;
2052 
2053     IF (l_klev_rec.ATTRIBUTE10 = OKC_API.G_MISS_CHAR) THEN
2054       l_klev_rec.ATTRIBUTE10 := NULL;
2055     END IF;
2056 
2057     IF (l_klev_rec.ATTRIBUTE11 = OKC_API.G_MISS_CHAR) THEN
2058       l_klev_rec.ATTRIBUTE11 := NULL;
2059     END IF;
2060 
2061     IF (l_klev_rec.ATTRIBUTE12 = OKC_API.G_MISS_CHAR) THEN
2062       l_klev_rec.ATTRIBUTE12 := NULL;
2063     END IF;
2064 
2065     IF (l_klev_rec.ATTRIBUTE13 = OKC_API.G_MISS_CHAR) THEN
2066       l_klev_rec.ATTRIBUTE13 := NULL;
2067     END IF;
2068 
2069     IF (l_klev_rec.ATTRIBUTE14 = OKC_API.G_MISS_CHAR) THEN
2070       l_klev_rec.ATTRIBUTE14 := NULL;
2071     END IF;
2072 
2073     IF (l_klev_rec.ATTRIBUTE15 = OKC_API.G_MISS_CHAR) THEN
2074       l_klev_rec.ATTRIBUTE15 := NULL;
2075     END IF;
2076 
2077     IF (l_klev_rec.STY_ID_FOR = OKC_API.G_MISS_NUM) THEN
2078       l_klev_rec.STY_ID_FOR := NULL;
2079     END IF;
2080 
2081     IF (l_klev_rec.CLG_ID = OKC_API.G_MISS_NUM) THEN
2082       l_klev_rec.CLG_ID := NULL;
2083     END IF;
2084 
2085     IF (l_klev_rec.CREATED_BY = OKC_API.G_MISS_NUM) THEN
2086       l_klev_rec.CREATED_BY := NULL;
2087     END IF;
2088 
2089     IF (l_klev_rec.CREATION_DATE = OKC_API.G_MISS_DATE) THEN
2090       l_klev_rec.CREATION_DATE := NULL;
2091     END IF;
2092 
2093     IF (l_klev_rec.LAST_UPDATED_BY = OKC_API.G_MISS_NUM) THEN
2094       l_klev_rec.LAST_UPDATED_BY := NULL;
2095     END IF;
2096 
2097     IF (l_klev_rec.LAST_UPDATE_DATE = OKC_API.G_MISS_DATE) THEN
2098       l_klev_rec.LAST_UPDATE_DATE := NULL;
2099     END IF;
2100 
2101     IF (l_klev_rec.LAST_UPDATE_LOGIN = OKC_API.G_MISS_NUM) THEN
2102       l_klev_rec.LAST_UPDATE_LOGIN := NULL;
2103     END IF;
2104 
2105     IF (l_klev_rec.DATE_FUNDING = OKC_API.G_MISS_DATE) THEN
2106       l_klev_rec.DATE_FUNDING := NULL;
2107     END IF;
2108 
2109     IF (l_klev_rec.DATE_FUNDING_REQUIRED = OKC_API.G_MISS_DATE) THEN
2110       l_klev_rec.DATE_FUNDING_REQUIRED := NULL;
2111     END IF;
2112 
2113     IF (l_klev_rec.DATE_ACCEPTED = OKC_API.G_MISS_DATE) THEN
2114       l_klev_rec.DATE_ACCEPTED := NULL;
2115     END IF;
2116 
2117     IF (l_klev_rec.DATE_DELIVERY_EXPECTED = OKC_API.G_MISS_DATE) THEN
2118       l_klev_rec.DATE_DELIVERY_EXPECTED := NULL;
2119     END IF;
2120 
2121     IF (l_klev_rec.OEC = OKC_API.G_MISS_NUM) THEN
2122       l_klev_rec.OEC := NULL;
2123     END IF;
2124 
2125     IF (l_klev_rec.CAPITAL_AMOUNT = OKC_API.G_MISS_NUM) THEN
2126       l_klev_rec.CAPITAL_AMOUNT := NULL;
2127     END IF;
2128 
2129     IF (l_klev_rec.RESIDUAL_GRNTY_AMOUNT = OKC_API.G_MISS_NUM) THEN
2130       l_klev_rec.RESIDUAL_GRNTY_AMOUNT := NULL;
2131     END IF;
2132 
2133     IF (l_klev_rec.RESIDUAL_CODE = OKC_API.G_MISS_CHAR) THEN
2134       l_klev_rec.RESIDUAL_CODE := NULL;
2135     END IF;
2136 
2137     IF (l_klev_rec.RVI_PREMIUM = OKC_API.G_MISS_NUM) THEN
2138       l_klev_rec.RVI_PREMIUM := NULL;
2139     END IF;
2140 
2141     IF (l_klev_rec.CREDIT_NATURE = OKC_API.G_MISS_CHAR) THEN
2142       l_klev_rec.CREDIT_NATURE := NULL;
2143     END IF;
2144 
2145     IF (l_klev_rec.CAPITALIZED_INTEREST = OKC_API.G_MISS_NUM) THEN
2146       l_klev_rec.CAPITALIZED_INTEREST := NULL;
2147     END IF;
2148 
2149     IF (l_klev_rec.CAPITAL_REDUCTION_PERCENT = OKC_API.G_MISS_NUM) THEN
2150       l_klev_rec.CAPITAL_REDUCTION_PERCENT := NULL;
2151     END IF;
2152 
2153     IF (l_klev_rec.DATE_PAY_INVESTOR_START = OKC_API.G_MISS_DATE) THEN
2154       l_klev_rec.DATE_PAY_INVESTOR_START := NULL;
2155     END IF;
2156 
2157     IF (l_klev_rec.PAY_INVESTOR_FREQUENCY = OKC_API.G_MISS_CHAR) THEN
2158       l_klev_rec.PAY_INVESTOR_FREQUENCY := NULL;
2159     END IF;
2160 
2161     IF (l_klev_rec.PAY_INVESTOR_EVENT = OKC_API.G_MISS_CHAR) THEN
2162       l_klev_rec.PAY_INVESTOR_EVENT := NULL;
2163     END IF;
2164 
2165     IF (l_klev_rec.PAY_INVESTOR_REMITTANCE_DAYS   = OKC_API.G_MISS_NUM) THEN
2166       l_klev_rec.PAY_INVESTOR_REMITTANCE_DAYS   := NULL;
2167     END IF;
2168 
2169     IF (l_klev_rec.FEE_TYPE   = OKC_API.G_MISS_CHAR) THEN
2170       l_klev_rec.FEE_TYPE   := NULL;
2171     END IF;
2172 --Bug# 3143522: 11.5.10
2173 --subsidy
2174    IF (l_klev_rec.SUBSIDY_ID = OKL_API.G_MISS_NUM) THEN
2175        l_klev_rec.SUBSIDY_ID := NULL;
2176    END IF;
2177    --IF (l_klev_rec.SUBSIDIZED_OEC = OKL_API.G_MISS_NUM) THEN
2178        --l_klev_rec.SUBSIDIZED_OEC := NULL;
2179    --END IF;
2180    --IF (l_klev_rec.SUBSIDIZED_CAP_AMOUNT = OKL_API.G_MISS_NUM) THEN
2181        --l_klev_rec.SUBSIDIZED_CAP_AMOUNT := NULL;
2182    --END IF;
2183    IF (l_klev_rec.SUBSIDY_OVERRIDE_AMOUNT = OKL_API.G_MISS_NUM) THEN
2184        l_klev_rec.SUBSIDY_OVERRIDE_AMOUNT := NULL;
2185    END IF;
2186    --financed fee
2187    IF (l_klev_rec.PRE_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
2188        l_klev_rec.PRE_TAX_YIELD := NULL;
2189    END IF;
2190    IF (l_klev_rec.AFTER_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
2191        l_klev_rec.AFTER_TAX_YIELD := NULL;
2192    END IF;
2193    IF (l_klev_rec.IMPLICIT_INTEREST_RATE = OKL_API.G_MISS_NUM) THEN
2194        l_klev_rec.IMPLICIT_INTEREST_RATE := NULL;
2195    END IF;
2196    IF (l_klev_rec.IMPLICIT_NON_IDC_INTEREST_RATE = OKL_API.G_MISS_NUM) THEN
2197        l_klev_rec.IMPLICIT_NON_IDC_INTEREST_RATE := NULL;
2198    END IF;
2199    IF (l_klev_rec.PRE_TAX_IRR = OKL_API.G_MISS_NUM) THEN
2200        l_klev_rec.PRE_TAX_IRR := NULL;
2201    END IF;
2202    IF (l_klev_rec.AFTER_TAX_IRR = OKL_API.G_MISS_NUM) THEN
2203        l_klev_rec.AFTER_TAX_IRR := NULL;
2204    END IF;
2205 --quote
2206    IF (l_klev_rec.SUB_PRE_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
2207        l_klev_rec.SUB_PRE_TAX_YIELD := NULL;
2208    END IF;
2209    IF (l_klev_rec.SUB_AFTER_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
2210        l_klev_rec.SUB_AFTER_TAX_YIELD := NULL;
2211    END IF;
2212    IF (l_klev_rec.SUB_IMPL_INTEREST_RATE = OKL_API.G_MISS_NUM) THEN
2213        l_klev_rec.SUB_IMPL_INTEREST_RATE := NULL;
2214    END IF;
2215    IF (l_klev_rec.SUB_IMPL_NON_IDC_INT_RATE = OKL_API.G_MISS_NUM) THEN
2216        l_klev_rec.SUB_IMPL_NON_IDC_INT_RATE := NULL;
2217    END IF;
2218    IF (l_klev_rec.SUB_PRE_TAX_IRR = OKL_API.G_MISS_NUM) THEN
2219        l_klev_rec.SUB_PRE_TAX_IRR := NULL;
2220    END IF;
2221    IF (l_klev_rec.SUB_AFTER_TAX_IRR = OKL_API.G_MISS_NUM) THEN
2222        l_klev_rec.SUB_AFTER_TAX_IRR := NULL;
2223    END IF;
2224 --Bug# 2994971 :
2225    IF (l_klev_rec.ITEM_INSURANCE_CATEGORY = OKL_API.G_MISS_NUM) THEN
2226        l_klev_rec.ITEM_INSURANCE_CATEGORY := NULL;
2227    END IF;
2228 --Bug# 3973640 11.5.10+
2229    IF (l_klev_rec.QTE_ID = OKL_API.G_MISS_NUM) THEN
2230        l_klev_rec.QTE_ID := NULL;
2231    END IF;
2232    IF (l_klev_rec.FUNDING_DATE = OKL_API.G_MISS_DATE) THEN
2233        l_klev_rec.FUNDING_DATE := NULL;
2234    END IF;
2235    IF (l_klev_rec.STREAM_TYPE_SUBCLASS = OKL_API.G_MISS_CHAR) THEN
2236        l_klev_rec.STREAM_TYPE_SUBCLASS := NULL;
2237    END IF;
2238 
2239 --Bug# 4419339 OKLH
2240    IF (l_klev_rec.DATE_FUNDING_EXPECTED = OKL_API.G_MISS_DATE) THEN
2241        l_klev_rec.DATE_FUNDING_EXPECTED := NULL;
2242    END IF;
2243 
2244    IF (l_klev_rec.MANUFACTURER_NAME = OKL_API.G_MISS_CHAR) THEN
2245        l_klev_rec.MANUFACTURER_NAME := NULL;
2246    END IF;
2247 
2248    IF (l_klev_rec.MODEL_NUMBER = OKL_API.G_MISS_CHAR) THEN
2249        l_klev_rec.MODEL_NUMBER := NULL;
2250    END IF;
2251 
2252    IF (l_klev_rec.DOWN_PAYMENT_RECEIVER_CODE = OKL_API.G_MISS_CHAR) THEN
2253        l_klev_rec.DOWN_PAYMENT_RECEIVER_CODE := NULL;
2254    END IF;
2255 
2256    IF (l_klev_rec.CAPITALIZE_DOWN_PAYMENT_YN = OKL_API.G_MISS_CHAR) THEN
2257        l_klev_rec.CAPITALIZE_DOWN_PAYMENT_YN := NULL;
2258    END IF;
2259 --Bug#4373029
2260    IF (l_klev_rec.FEE_PURPOSE_CODE = OKL_API.G_MISS_CHAR) THEN
2261        l_klev_rec.FEE_PURPOSE_CODE := NULL;
2262    END IF;
2263 
2264    IF (l_klev_rec.TERMINATION_VALUE = OKL_API.G_MISS_NUM) THEN
2265        l_klev_rec.TERMINATION_VALUE := NULL;
2266    END IF;
2267 
2268    --Bug# 4631549
2269    IF (l_klev_rec.EXPECTED_ASSET_COST = OKL_API.G_MISS_NUM) THEN
2270        l_klev_rec.EXPECTED_ASSET_COST := NULL;
2271    END IF;
2272 
2273    IF (l_klev_rec.ORIG_CONTRACT_LINE_ID = OKL_API.G_MISS_NUM) THEN
2274        l_klev_rec.ORIG_CONTRACT_LINE_ID := NULL;
2275    END IF;
2276 
2277   --Added by jjuneja
2278   IF (l_klev_rec.ORIGINATION_INCOME = OKL_API.G_MISS_NUM) THEN
2279        l_klev_rec.ORIGINATION_INCOME := NULL;
2280    END IF;
2281   --end of addition by jjuneja
2282 
2283    --Bug# 16344245
2284    IF (l_klev_rec.AMOUNT_BALANCE_LEGACY = OKL_API.G_MISS_NUM) THEN
2285        l_klev_rec.AMOUNT_BALANCE_LEGACY := NULL;
2286    END IF;
2287 
2288    IF (l_klev_rec.DT_EFFECTIVE_BALANCE_LEGACY = OKL_API.G_MISS_DATE) THEN
2289        l_klev_rec.DT_EFFECTIVE_BALANCE_LEGACY := NULL;
2290    END IF;
2291 
2292    RETURN(l_klev_rec);
2293   END null_out_defaults;
2294 
2295 
2296   ---------------------------------------------------------------------------
2297   -- PROCEDURE Validate_Record
2298   ---------------------------------------------------------------------------
2299 
2300 
2301   -----------------------------------------
2302   -- Validate_Record for: OKL_K_LINES_V --
2303   -----------------------------------------
2304   FUNCTION Validate_Record (
2305     p_klev_rec                     IN klev_rec_type
2306   ) RETURN VARCHAR2 IS
2307     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2308   BEGIN
2309     RETURN (l_return_status);
2310   END Validate_Record;
2311 
2312 
2313   ---------------------------------------------------------------------------
2314   -- PROCEDURE Migrate
2315   ---------------------------------------------------------------------------
2316 
2317   PROCEDURE migrate (
2318     p_from	IN klev_rec_type,
2319     p_to	IN OUT NOCOPY kle_rec_type
2320   ) IS
2321   BEGIN
2322 
2323       p_to.ID := p_from.ID;
2324 
2325       p_to.KLE_ID := p_from.KLE_ID;
2326 
2327       p_to.STY_ID := p_from.STY_ID;
2328 
2329       p_to.OBJECT_VERSION_NUMBER := p_from.OBJECT_VERSION_NUMBER;
2330 
2331       p_to.LAO_AMOUNT := p_from.LAO_AMOUNT;
2332 
2333       p_to.FEE_CHARGE := p_from.FEE_CHARGE;
2334 
2335       p_to.TITLE_DATE := p_from.TITLE_DATE;
2336 
2337       p_to.DATE_RESIDUAL_LAST_REVIEW := p_from.DATE_RESIDUAL_LAST_REVIEW;
2338 
2339       p_to.DATE_LAST_REAMORTISATION := p_from.DATE_LAST_REAMORTISATION;
2340 
2341       p_to.TERMINATION_PURCHASE_AMOUNT := p_from.TERMINATION_PURCHASE_AMOUNT;
2342 
2343       p_to.DATE_LAST_CLEANUP := p_from.DATE_LAST_CLEANUP;
2344 
2345       p_to.REMARKETED_AMOUNT := p_from.REMARKETED_AMOUNT;
2346 
2347       p_to.DATE_REMARKETED := p_from.DATE_REMARKETED;
2348 
2349       p_to.REMARKET_MARGIN := p_from.REMARKET_MARGIN;
2350 
2351       p_to.REPURCHASED_AMOUNT := p_from.REPURCHASED_AMOUNT;
2352 
2353       p_to.DATE_REPURCHASED := p_from.DATE_REPURCHASED;
2354 
2355       p_to.GAIN_LOSS := p_from.GAIN_LOSS;
2356 
2357       p_to.FLOOR_AMOUNT := p_from.FLOOR_AMOUNT;
2358 
2359       p_to.PREVIOUS_CONTRACT := p_from.PREVIOUS_CONTRACT;
2360 
2361       p_to.TRACKED_RESIDUAL := p_from.TRACKED_RESIDUAL;
2362 
2363       p_to.DATE_TITLE_RECEIVED := p_from.DATE_TITLE_RECEIVED;
2364 
2365       p_to.ESTIMATED_OEC := p_from.ESTIMATED_OEC;
2366 
2367       p_to.RESIDUAL_PERCENTAGE := p_from.RESIDUAL_PERCENTAGE;
2368 
2369       p_to.CAPITAL_REDUCTION := p_from.CAPITAL_REDUCTION;
2370 
2371       p_to.VENDOR_ADVANCE_PAID := p_from.VENDOR_ADVANCE_PAID;
2372 
2373       p_to.TRADEIN_AMOUNT := p_from.TRADEIN_AMOUNT;
2374 
2375       p_to.DELIVERED_DATE := p_from.DELIVERED_DATE;
2376 
2377       p_to.YEAR_OF_MANUFACTURE := p_from.YEAR_OF_MANUFACTURE;
2378 
2379       p_to.INITIAL_DIRECT_COST := p_from.INITIAL_DIRECT_COST;
2380 
2381       p_to.OCCUPANCY := p_from.OCCUPANCY;
2382 
2383       p_to.DATE_LAST_INSPECTION := p_from.DATE_LAST_INSPECTION;
2384 
2385       p_to.DATE_NEXT_INSPECTION_DUE := p_from.DATE_NEXT_INSPECTION_DUE;
2386 
2387       p_to.WEIGHTED_AVERAGE_LIFE := p_from.WEIGHTED_AVERAGE_LIFE;
2388 
2389       p_to.BOND_EQUIVALENT_YIELD := p_from.BOND_EQUIVALENT_YIELD;
2390 
2391       p_to.REFINANCE_AMOUNT := p_from.REFINANCE_AMOUNT;
2392 
2393       p_to.YEAR_BUILT := p_from.YEAR_BUILT;
2394 
2395       p_to.COVERAGE_RATIO := p_from.COVERAGE_RATIO;
2396 
2397       p_to.GROSS_SQUARE_FOOTAGE := p_from.GROSS_SQUARE_FOOTAGE;
2398 
2399       p_to.NET_RENTABLE := p_from.NET_RENTABLE;
2400 
2401       p_to.DATE_LETTER_ACCEPTANCE := p_from.DATE_LETTER_ACCEPTANCE;
2402 
2403       p_to.DATE_COMMITMENT_EXPIRATION := p_from.DATE_COMMITMENT_EXPIRATION;
2404 
2405       p_to.DATE_APPRAISAL := p_from.DATE_APPRAISAL;
2406 
2407       p_to.APPRAISAL_VALUE := p_from.APPRAISAL_VALUE;
2408 
2409       p_to.RESIDUAL_VALUE := p_from.RESIDUAL_VALUE;
2410 
2411       p_to.PERCENT := p_from.PERCENT;
2412 
2413       p_to.COVERAGE := p_from.COVERAGE;
2414 
2415       p_to.LRV_AMOUNT := p_from.LRV_AMOUNT;
2416 
2417       p_to.AMOUNT := p_from.AMOUNT;
2418 
2419       p_to.LRS_PERCENT := p_from.LRS_PERCENT;
2420 
2421       p_to.EVERGREEN_PERCENT := p_from.EVERGREEN_PERCENT;
2422 
2423       p_to.PERCENT_STAKE := p_from.PERCENT_STAKE;
2424 
2425       p_to.AMOUNT_STAKE := p_from.AMOUNT_STAKE;
2426 
2427       p_to.DATE_SOLD := p_from.DATE_SOLD;
2428 
2429       p_to.STY_ID_FOR := p_from.STY_ID_FOR;
2430 
2431       p_to.ATTRIBUTE_CATEGORY := p_from.ATTRIBUTE_CATEGORY;
2432 
2433       p_to.ATTRIBUTE1 := p_from.ATTRIBUTE1;
2434 
2435       p_to.ATTRIBUTE2 := p_from.ATTRIBUTE2;
2436 
2437       p_to.ATTRIBUTE3 := p_from.ATTRIBUTE3;
2438 
2439       p_to.ATTRIBUTE4 := p_from.ATTRIBUTE4;
2440 
2441       p_to.ATTRIBUTE5 := p_from.ATTRIBUTE5;
2442 
2443       p_to.ATTRIBUTE6 := p_from.ATTRIBUTE6;
2444 
2445       p_to.ATTRIBUTE7 := p_from.ATTRIBUTE7;
2446 
2447       p_to.ATTRIBUTE8 := p_from.ATTRIBUTE8;
2448 
2449       p_to.ATTRIBUTE9 := p_from.ATTRIBUTE9;
2450 
2451       p_to.ATTRIBUTE10 := p_from.ATTRIBUTE10;
2452 
2453       p_to.ATTRIBUTE11 := p_from.ATTRIBUTE11;
2454 
2455       p_to.ATTRIBUTE12 := p_from.ATTRIBUTE12;
2456 
2457       p_to.ATTRIBUTE13 := p_from.ATTRIBUTE13;
2458 
2459       p_to.ATTRIBUTE14 := p_from.ATTRIBUTE14;
2460 
2461       p_to.ATTRIBUTE15 := p_from.ATTRIBUTE15;
2462 
2463       p_to.CREATED_BY := p_from.CREATED_BY;
2464 
2465       p_to.CREATION_DATE := p_from.CREATION_DATE;
2466 
2467       p_to.LAST_UPDATED_BY := p_from.LAST_UPDATED_BY;
2468 
2469       p_to.LAST_UPDATE_DATE := p_from.LAST_UPDATE_DATE;
2470 
2471       p_to.LAST_UPDATE_LOGIN := p_from.LAST_UPDATE_LOGIN;
2472 
2473       p_to.NTY_CODE := p_from.NTY_CODE;
2474 
2475       p_to.FCG_CODE := p_from.FCG_CODE;
2476 
2477       p_to.PRC_CODE := p_from.PRC_CODE;
2478 
2479       p_to.RE_LEASE_YN := p_from.RE_LEASE_YN;
2480 
2481       p_to.PRESCRIBED_ASSET_YN := p_from.PRESCRIBED_ASSET_YN;
2482 
2483       p_to.CREDIT_TENANT_YN := p_from.CREDIT_TENANT_YN;
2484 
2485       p_to.SECURED_DEAL_YN := p_from.SECURED_DEAL_YN;
2486 
2487       p_to.CLG_ID := p_from.CLG_ID;
2488 
2489       p_to.DATE_FUNDING := p_from.DATE_FUNDING;
2490 
2491       p_to.DATE_FUNDING_REQUIRED := p_from.DATE_FUNDING_REQUIRED;
2492 
2493       p_to.DATE_ACCEPTED := p_from.DATE_ACCEPTED;
2494 
2495       p_to.DATE_DELIVERY_EXPECTED := p_from.DATE_DELIVERY_EXPECTED;
2496 
2497       p_to.OEC := p_from.OEC;
2498 
2499       p_to.CAPITAL_AMOUNT := p_from.CAPITAL_AMOUNT;
2500 
2501       p_to.RESIDUAL_GRNTY_AMOUNT := p_from.RESIDUAL_GRNTY_AMOUNT;
2502 
2503       p_to.RESIDUAL_CODE := p_from.RESIDUAL_CODE;
2504 
2505       p_to.RVI_PREMIUM := p_from.RVI_PREMIUM;
2506 
2507       p_to.CREDIT_NATURE := p_from.CREDIT_NATURE;
2508 
2509       p_to.CAPITALIZED_INTEREST := p_from.CAPITALIZED_INTEREST;
2510 
2511       p_to.CAPITAL_REDUCTION_PERCENT := p_from.CAPITAL_REDUCTION_PERCENT;
2512 
2513       p_to.DATE_PAY_INVESTOR_START := p_from.DATE_PAY_INVESTOR_START;
2514 
2515       p_to.PAY_INVESTOR_FREQUENCY := p_from.PAY_INVESTOR_FREQUENCY;
2516 
2517       p_to.PAY_INVESTOR_EVENT := p_from.PAY_INVESTOR_EVENT;
2518 
2519       p_to.PAY_INVESTOR_REMITTANCE_DAYS := p_from.PAY_INVESTOR_REMITTANCE_DAYS;
2520       p_to.FEE_TYPE := p_from.FEE_TYPE;
2521 --Bug# 3143522: 11.5.10
2522 --subsidy
2523    p_to.SUBSIDY_ID := p_from.SUBSIDY_ID;
2524    --p_to.SUBSIDIZED_OEC := p_from.SUBSIDIZED_OEC;
2525    --p_to.SUBSIDIZED_CAP_AMOUNT := p_from.SUBSIDIZED_CAP_AMOUNT;
2526    p_to.SUBSIDY_OVERRIDE_AMOUNT := p_from.SUBSIDY_OVERRIDE_AMOUNT;
2527    --financed fee
2528    p_to.PRE_TAX_YIELD := p_from.PRE_TAX_YIELD;
2529    p_to.AFTER_TAX_YIELD := p_from.AFTER_TAX_YIELD;
2530    p_to.IMPLICIT_INTEREST_RATE := p_from.IMPLICIT_INTEREST_RATE;
2531    p_to.IMPLICIT_NON_IDC_INTEREST_RATE := p_from.IMPLICIT_NON_IDC_INTEREST_RATE;
2532    p_to.PRE_TAX_IRR := p_from.PRE_TAX_IRR;
2533    p_to.AFTER_TAX_IRR := p_from.AFTER_TAX_IRR;
2534 --quote
2535    p_to.SUB_PRE_TAX_YIELD := p_from.SUB_PRE_TAX_YIELD;
2536    p_to.SUB_AFTER_TAX_YIELD := p_from.SUB_AFTER_TAX_YIELD;
2537    p_to.SUB_IMPL_INTEREST_RATE := p_from.SUB_IMPL_INTEREST_RATE;
2538    p_to.SUB_IMPL_NON_IDC_INT_RATE := p_from.SUB_IMPL_NON_IDC_INT_RATE;
2539    p_to.SUB_PRE_TAX_IRR := p_from.SUB_PRE_TAX_IRR;
2540    p_to.SUB_AFTER_TAX_IRR := p_from.SUB_AFTER_TAX_IRR;
2541 --Bug# 2994971
2542    p_to.ITEM_INSURANCE_CATEGORY := p_from.ITEM_INSURANCE_CATEGORY;
2543 --Bug# 3973640 11.5.10+
2544    p_to.QTE_ID := p_from.QTE_ID;
2545    p_to.FUNDING_DATE := p_from.FUNDING_DATE;
2546    p_to.STREAM_TYPE_SUBCLASS := p_from.STREAM_TYPE_SUBCLASS;
2547 
2548 --Bug# 4419339  OKLH
2549    p_to.DATE_FUNDING_EXPECTED := p_from.DATE_FUNDING_EXPECTED;
2550    p_to.MANUFACTURER_NAME := p_from.MANUFACTURER_NAME;
2551    p_to.MODEL_NUMBER := p_from.MODEL_NUMBER;
2552    p_to.DOWN_PAYMENT_RECEIVER_CODE := p_from.DOWN_PAYMENT_RECEIVER_CODE;
2553    p_to.CAPITALIZE_DOWN_PAYMENT_YN := p_from.CAPITALIZE_DOWN_PAYMENT_YN;
2554 --Bug#4373029
2555    p_to.FEE_PURPOSE_CODE := p_from.FEE_PURPOSE_CODE;
2556    p_to.TERMINATION_VALUE := p_from.TERMINATION_VALUE;
2557 --Bug# 4631549
2558    p_to.EXPECTED_ASSET_COST := p_from.EXPECTED_ASSET_COST;
2559    p_to.ORIG_CONTRACT_LINE_ID := p_from.ORIG_CONTRACT_LINE_ID;
2560    --Added by jjuneja
2561    p_to.ORIGINATION_INCOME := p_from.ORIGINATION_INCOME;
2562    --End of addition by jjuneja
2563 --Bug# 16344245
2564    p_to.AMOUNT_BALANCE_LEGACY := p_from.AMOUNT_BALANCE_LEGACY;
2565    p_to.DT_EFFECTIVE_BALANCE_LEGACY := p_from.DT_EFFECTIVE_BALANCE_LEGACY;
2566 
2567   END migrate;
2568 
2569   PROCEDURE migrate (
2570     p_from	IN kle_rec_type,
2571     p_to	IN OUT NOCOPY klev_rec_type
2572   ) IS
2573   BEGIN
2574 
2575       p_to.ID := p_from.ID;
2576 
2577       p_to.KLE_ID := p_from.KLE_ID;
2578 
2579       p_to.STY_ID := p_from.STY_ID;
2580 
2581       p_to.OBJECT_VERSION_NUMBER := p_from.OBJECT_VERSION_NUMBER;
2582 
2583       p_to.LAO_AMOUNT := p_from.LAO_AMOUNT;
2584 
2585       p_to.FEE_CHARGE := p_from.FEE_CHARGE;
2586 
2587       p_to.TITLE_DATE := p_from.TITLE_DATE;
2588 
2589       p_to.DATE_RESIDUAL_LAST_REVIEW := p_from.DATE_RESIDUAL_LAST_REVIEW;
2590 
2591       p_to.DATE_LAST_REAMORTISATION := p_from.DATE_LAST_REAMORTISATION;
2592 
2593       p_to.TERMINATION_PURCHASE_AMOUNT := p_from.TERMINATION_PURCHASE_AMOUNT;
2594 
2595       p_to.DATE_LAST_CLEANUP := p_from.DATE_LAST_CLEANUP;
2596 
2597       p_to.REMARKETED_AMOUNT := p_from.REMARKETED_AMOUNT;
2598 
2599       p_to.DATE_REMARKETED := p_from.DATE_REMARKETED;
2600 
2601       p_to.REMARKET_MARGIN := p_from.REMARKET_MARGIN;
2602 
2603       p_to.REPURCHASED_AMOUNT := p_from.REPURCHASED_AMOUNT;
2604 
2605       p_to.DATE_REPURCHASED := p_from.DATE_REPURCHASED;
2606 
2607       p_to.GAIN_LOSS := p_from.GAIN_LOSS;
2608 
2609       p_to.FLOOR_AMOUNT := p_from.FLOOR_AMOUNT;
2610 
2611       p_to.PREVIOUS_CONTRACT := p_from.PREVIOUS_CONTRACT;
2612 
2613       p_to.TRACKED_RESIDUAL := p_from.TRACKED_RESIDUAL;
2614 
2615       p_to.DATE_TITLE_RECEIVED := p_from.DATE_TITLE_RECEIVED;
2616 
2617       p_to.ESTIMATED_OEC := p_from.ESTIMATED_OEC;
2618 
2619       p_to.RESIDUAL_PERCENTAGE := p_from.RESIDUAL_PERCENTAGE;
2620 
2621       p_to.CAPITAL_REDUCTION := p_from.CAPITAL_REDUCTION;
2622 
2623       p_to.VENDOR_ADVANCE_PAID := p_from.VENDOR_ADVANCE_PAID;
2624 
2625       p_to.TRADEIN_AMOUNT := p_from.TRADEIN_AMOUNT;
2626 
2627       p_to.DELIVERED_DATE := p_from.DELIVERED_DATE;
2628 
2629       p_to.YEAR_OF_MANUFACTURE := p_from.YEAR_OF_MANUFACTURE;
2630 
2631       p_to.INITIAL_DIRECT_COST := p_from.INITIAL_DIRECT_COST;
2632 
2633       p_to.OCCUPANCY := p_from.OCCUPANCY;
2634 
2635       p_to.DATE_LAST_INSPECTION := p_from.DATE_LAST_INSPECTION;
2636 
2637       p_to.DATE_NEXT_INSPECTION_DUE := p_from.DATE_NEXT_INSPECTION_DUE;
2638 
2639       p_to.WEIGHTED_AVERAGE_LIFE := p_from.WEIGHTED_AVERAGE_LIFE;
2640 
2641       p_to.BOND_EQUIVALENT_YIELD := p_from.BOND_EQUIVALENT_YIELD;
2642 
2643       p_to.REFINANCE_AMOUNT := p_from.REFINANCE_AMOUNT;
2644 
2645       p_to.YEAR_BUILT := p_from.YEAR_BUILT;
2646 
2647       p_to.COVERAGE_RATIO := p_from.COVERAGE_RATIO;
2648 
2649       p_to.GROSS_SQUARE_FOOTAGE := p_from.GROSS_SQUARE_FOOTAGE;
2650 
2651       p_to.NET_RENTABLE := p_from.NET_RENTABLE;
2652 
2653       p_to.DATE_LETTER_ACCEPTANCE := p_from.DATE_LETTER_ACCEPTANCE;
2654 
2655       p_to.DATE_COMMITMENT_EXPIRATION := p_from.DATE_COMMITMENT_EXPIRATION;
2656 
2657       p_to.DATE_APPRAISAL := p_from.DATE_APPRAISAL;
2658 
2659       p_to.APPRAISAL_VALUE := p_from.APPRAISAL_VALUE;
2660 
2661       p_to.RESIDUAL_VALUE := p_from.RESIDUAL_VALUE;
2662 
2663       p_to.PERCENT := p_from.PERCENT;
2664 
2665       p_to.COVERAGE := p_from.COVERAGE;
2666 
2667       p_to.LRV_AMOUNT := p_from.LRV_AMOUNT;
2668 
2669       p_to.AMOUNT := p_from.AMOUNT;
2670 
2671       p_to.LRS_PERCENT := p_from.LRS_PERCENT;
2672 
2673       p_to.EVERGREEN_PERCENT := p_from.EVERGREEN_PERCENT;
2674 
2675       p_to.PERCENT_STAKE := p_from.PERCENT_STAKE;
2676 
2677       p_to.AMOUNT_STAKE := p_from.AMOUNT_STAKE;
2678 
2679       p_to.DATE_SOLD := p_from.DATE_SOLD;
2680 
2681       p_to.STY_ID_FOR := p_from.STY_ID_FOR;
2682 
2683       p_to.ATTRIBUTE_CATEGORY := p_from.ATTRIBUTE_CATEGORY;
2684 
2685       p_to.ATTRIBUTE1 := p_from.ATTRIBUTE1;
2686 
2687       p_to.ATTRIBUTE2 := p_from.ATTRIBUTE2;
2688 
2689       p_to.ATTRIBUTE3 := p_from.ATTRIBUTE3;
2690 
2691       p_to.ATTRIBUTE4 := p_from.ATTRIBUTE4;
2692 
2693       p_to.ATTRIBUTE5 := p_from.ATTRIBUTE5;
2694 
2695       p_to.ATTRIBUTE6 := p_from.ATTRIBUTE6;
2696 
2697       p_to.ATTRIBUTE7 := p_from.ATTRIBUTE7;
2698 
2699       p_to.ATTRIBUTE8 := p_from.ATTRIBUTE8;
2700 
2701       p_to.ATTRIBUTE9 := p_from.ATTRIBUTE9;
2702 
2703       p_to.ATTRIBUTE10 := p_from.ATTRIBUTE10;
2704 
2705       p_to.ATTRIBUTE11 := p_from.ATTRIBUTE11;
2706 
2707       p_to.ATTRIBUTE12 := p_from.ATTRIBUTE12;
2708 
2709       p_to.ATTRIBUTE13 := p_from.ATTRIBUTE13;
2710 
2711       p_to.ATTRIBUTE14 := p_from.ATTRIBUTE14;
2712 
2713       p_to.ATTRIBUTE15 := p_from.ATTRIBUTE15;
2714 
2715       p_to.CREATED_BY := p_from.CREATED_BY;
2716 
2717       p_to.CREATION_DATE := p_from.CREATION_DATE;
2718 
2719       p_to.LAST_UPDATED_BY := p_from.LAST_UPDATED_BY;
2720 
2721       p_to.LAST_UPDATE_DATE := p_from.LAST_UPDATE_DATE;
2722 
2723       p_to.LAST_UPDATE_LOGIN := p_from.LAST_UPDATE_LOGIN;
2724 
2725       p_to.NTY_CODE := p_from.NTY_CODE;
2726 
2727       p_to.FCG_CODE := p_from.FCG_CODE;
2728 
2729       p_to.PRC_CODE := p_from.PRC_CODE;
2730 
2731       p_to.RE_LEASE_YN := p_from.RE_LEASE_YN;
2732 
2733       p_to.PRESCRIBED_ASSET_YN := p_from.PRESCRIBED_ASSET_YN;
2734 
2735       p_to.CREDIT_TENANT_YN := p_from.CREDIT_TENANT_YN;
2736 
2737       p_to.SECURED_DEAL_YN := p_from.SECURED_DEAL_YN;
2738 
2739       p_to.CLG_ID := p_from.CLG_ID;
2740 
2741       p_to.DATE_FUNDING := p_from.DATE_FUNDING;
2742 
2743       p_to.DATE_FUNDING_REQUIRED := p_from.DATE_FUNDING_REQUIRED;
2744 
2745       p_to.DATE_ACCEPTED := p_from.DATE_ACCEPTED;
2746 
2747       p_to.DATE_DELIVERY_EXPECTED := p_from.DATE_DELIVERY_EXPECTED;
2748 
2749       p_to.OEC := p_from.OEC;
2750 
2751       p_to.CAPITAL_AMOUNT := p_from.CAPITAL_AMOUNT;
2752 
2753       p_to.RESIDUAL_GRNTY_AMOUNT := p_from.RESIDUAL_GRNTY_AMOUNT;
2754 
2755       p_to.RESIDUAL_CODE := p_from.RESIDUAL_CODE;
2756 
2757       p_to.RVI_PREMIUM := p_from.RVI_PREMIUM;
2758 
2759       p_to.CREDIT_NATURE := p_from.CREDIT_NATURE;
2760 
2761       p_to.CAPITALIZED_INTEREST := p_from.CAPITALIZED_INTEREST;
2762 
2763       p_to.CAPITAL_REDUCTION_PERCENT := p_from.CAPITAL_REDUCTION_PERCENT;
2764 
2765       p_to.DATE_PAY_INVESTOR_START := p_from.DATE_PAY_INVESTOR_START;
2766 
2767       p_to.PAY_INVESTOR_FREQUENCY := p_from.PAY_INVESTOR_FREQUENCY;
2768 
2769       p_to.PAY_INVESTOR_EVENT := p_from.PAY_INVESTOR_EVENT;
2770 
2771       p_to.PAY_INVESTOR_REMITTANCE_DAYS := p_from.PAY_INVESTOR_REMITTANCE_DAYS;
2772       p_to.FEE_TYPE := p_from.FEE_TYPE;
2773 --Bug# 3143522: 11.5.10
2774 --subsidy
2775    p_to.SUBSIDY_ID := p_from.SUBSIDY_ID;
2776    --p_to.SUBSIDIZED_OEC := p_from.SUBSIDIZED_OEC;
2777    --p_to.SUBSIDIZED_CAP_AMOUNT := p_from.SUBSIDIZED_CAP_AMOUNT;
2778    p_to.SUBSIDY_OVERRIDE_AMOUNT := p_from.SUBSIDY_OVERRIDE_AMOUNT;
2779    --financed fee
2780    p_to.PRE_TAX_YIELD := p_from.PRE_TAX_YIELD;
2781    p_to.AFTER_TAX_YIELD := p_from.AFTER_TAX_YIELD;
2782    p_to.IMPLICIT_INTEREST_RATE := p_from.IMPLICIT_INTEREST_RATE;
2783    p_to.IMPLICIT_NON_IDC_INTEREST_RATE := p_from.IMPLICIT_NON_IDC_INTEREST_RATE;
2784    p_to.PRE_TAX_IRR := p_from.PRE_TAX_IRR;
2785    p_to.AFTER_TAX_IRR := p_from.AFTER_TAX_IRR;
2786 --quote
2787    p_to.SUB_PRE_TAX_YIELD := p_from.SUB_PRE_TAX_YIELD;
2788    p_to.SUB_AFTER_TAX_YIELD := p_from.SUB_AFTER_TAX_YIELD;
2789    p_to.SUB_IMPL_INTEREST_RATE := p_from.SUB_IMPL_INTEREST_RATE;
2790    p_to.SUB_IMPL_NON_IDC_INT_RATE := p_from.SUB_IMPL_NON_IDC_INT_RATE;
2791    p_to.SUB_PRE_TAX_IRR := p_from.SUB_PRE_TAX_IRR;
2792    p_to.SUB_AFTER_TAX_IRR := p_from.SUB_AFTER_TAX_IRR;
2793 --Bug# 2994971 :
2794    p_to.ITEM_INSURANCE_CATEGORY := p_from.ITEM_INSURANCE_CATEGORY;
2795 --bug# 3973640: 11.5.10+
2796    p_to.QTE_ID := p_from.QTE_ID;
2797    p_to.FUNDING_DATE := p_from.FUNDING_DATE;
2798    p_to.STREAM_TYPE_SUBCLASS := p_from.STREAM_TYPE_SUBCLASS;
2799 --Bug# 4419339  OKLH
2800    p_to.DATE_FUNDING_EXPECTED := p_from.DATE_FUNDING_EXPECTED;
2801    p_to.MANUFACTURER_NAME := p_from.MANUFACTURER_NAME;
2802    p_to.MODEL_NUMBER := p_from.MODEL_NUMBER;
2803    p_to.DOWN_PAYMENT_RECEIVER_CODE := p_from.DOWN_PAYMENT_RECEIVER_CODE;
2804    p_to.CAPITALIZE_DOWN_PAYMENT_YN := p_from.CAPITALIZE_DOWN_PAYMENT_YN;
2805 --Bug#4373029
2806    p_to.FEE_PURPOSE_CODE := p_from.FEE_PURPOSE_CODE;
2807    p_to.TERMINATION_VALUE := p_from.TERMINATION_VALUE;
2808 --Bug# 4631549
2809    p_to.EXPECTED_ASSET_COST := p_from.EXPECTED_ASSET_COST;
2810    p_to.ORIG_CONTRACT_LINE_ID := p_from.ORIG_CONTRACT_LINE_ID;
2811   --Added by JJUNEJA
2812    p_to.ORIGINATION_INCOME := p_from.ORIGINATION_INCOME;
2813   --Added by jjuneja
2814 --Bug# 16344245
2815    p_to.AMOUNT_BALANCE_LEGACY := p_from.AMOUNT_BALANCE_LEGACY;
2816    p_to.DT_EFFECTIVE_BALANCE_LEGACY := p_from.DT_EFFECTIVE_BALANCE_LEGACY;
2817   END migrate;
2818 
2819   PROCEDURE migrate (
2820     p_from	IN kle_rec_type,
2821     p_to	IN OUT NOCOPY okl_k_lines_h_rec_type
2822   ) IS
2823   BEGIN
2824 
2825       p_to.ID := p_from.ID;
2826 
2827       p_to.KLE_ID := p_from.KLE_ID;
2828 
2829       p_to.STY_ID := p_from.STY_ID;
2830 
2831       p_to.OBJECT_VERSION_NUMBER := p_from.OBJECT_VERSION_NUMBER;
2832 
2833       p_to.LAO_AMOUNT := p_from.LAO_AMOUNT;
2834 
2835       p_to.FEE_CHARGE := p_from.FEE_CHARGE;
2836 
2837       p_to.TITLE_DATE := p_from.TITLE_DATE;
2838 
2839       p_to.DATE_RESIDUAL_LAST_REVIEW := p_from.DATE_RESIDUAL_LAST_REVIEW;
2840 
2841       p_to.DATE_LAST_REAMORTISATION := p_from.DATE_LAST_REAMORTISATION;
2842 
2843       p_to.TERMINATION_PURCHASE_AMOUNT := p_from.TERMINATION_PURCHASE_AMOUNT;
2844 
2845       p_to.DATE_LAST_CLEANUP := p_from.DATE_LAST_CLEANUP;
2846 
2847       p_to.REMARKETED_AMOUNT := p_from.REMARKETED_AMOUNT;
2848 
2849       p_to.DATE_REMARKETED := p_from.DATE_REMARKETED;
2850 
2851       p_to.REMARKET_MARGIN := p_from.REMARKET_MARGIN;
2852 
2853       p_to.REPURCHASED_AMOUNT := p_from.REPURCHASED_AMOUNT;
2854 
2855       p_to.DATE_REPURCHASED := p_from.DATE_REPURCHASED;
2856 
2857       p_to.GAIN_LOSS := p_from.GAIN_LOSS;
2858 
2859       p_to.FLOOR_AMOUNT := p_from.FLOOR_AMOUNT;
2860 
2861       p_to.PREVIOUS_CONTRACT := p_from.PREVIOUS_CONTRACT;
2862 
2863       p_to.TRACKED_RESIDUAL := p_from.TRACKED_RESIDUAL;
2864 
2865       p_to.DATE_TITLE_RECEIVED := p_from.DATE_TITLE_RECEIVED;
2866 
2867       p_to.ESTIMATED_OEC := p_from.ESTIMATED_OEC;
2868 
2869       p_to.RESIDUAL_PERCENTAGE := p_from.RESIDUAL_PERCENTAGE;
2870 
2871       p_to.CAPITAL_REDUCTION := p_from.CAPITAL_REDUCTION;
2872 
2873       p_to.VENDOR_ADVANCE_PAID := p_from.VENDOR_ADVANCE_PAID;
2874 
2875       p_to.TRADEIN_AMOUNT := p_from.TRADEIN_AMOUNT;
2876 
2877       p_to.DELIVERED_DATE := p_from.DELIVERED_DATE;
2878 
2879       p_to.YEAR_OF_MANUFACTURE := p_from.YEAR_OF_MANUFACTURE;
2880 
2881       p_to.INITIAL_DIRECT_COST := p_from.INITIAL_DIRECT_COST;
2882 
2883       p_to.OCCUPANCY := p_from.OCCUPANCY;
2884 
2885       p_to.DATE_LAST_INSPECTION := p_from.DATE_LAST_INSPECTION;
2886 
2887       p_to.DATE_NEXT_INSPECTION_DUE := p_from.DATE_NEXT_INSPECTION_DUE;
2888 
2889       p_to.WEIGHTED_AVERAGE_LIFE := p_from.WEIGHTED_AVERAGE_LIFE;
2890 
2891       p_to.BOND_EQUIVALENT_YIELD := p_from.BOND_EQUIVALENT_YIELD;
2892 
2893       p_to.REFINANCE_AMOUNT := p_from.REFINANCE_AMOUNT;
2894 
2895       p_to.YEAR_BUILT := p_from.YEAR_BUILT;
2896 
2897       p_to.COVERAGE_RATIO := p_from.COVERAGE_RATIO;
2898 
2899       p_to.GROSS_SQUARE_FOOTAGE := p_from.GROSS_SQUARE_FOOTAGE;
2900 
2901       p_to.NET_RENTABLE := p_from.NET_RENTABLE;
2902 
2903       p_to.DATE_LETTER_ACCEPTANCE := p_from.DATE_LETTER_ACCEPTANCE;
2904 
2905       p_to.DATE_COMMITMENT_EXPIRATION := p_from.DATE_COMMITMENT_EXPIRATION;
2906 
2907       p_to.DATE_APPRAISAL := p_from.DATE_APPRAISAL;
2908 
2909       p_to.APPRAISAL_VALUE := p_from.APPRAISAL_VALUE;
2910 
2911       p_to.RESIDUAL_VALUE := p_from.RESIDUAL_VALUE;
2912 
2913       p_to.PERCENT := p_from.PERCENT;
2914 
2915       p_to.COVERAGE := p_from.COVERAGE;
2916 
2917       p_to.LRV_AMOUNT := p_from.LRV_AMOUNT;
2918 
2919       p_to.AMOUNT := p_from.AMOUNT;
2920 
2921       p_to.LRS_PERCENT := p_from.LRS_PERCENT;
2922 
2923       p_to.EVERGREEN_PERCENT := p_from.EVERGREEN_PERCENT;
2924 
2925       p_to.PERCENT_STAKE := p_from.PERCENT_STAKE;
2926 
2927       p_to.AMOUNT_STAKE := p_from.AMOUNT_STAKE;
2928 
2929       p_to.DATE_SOLD := p_from.DATE_SOLD;
2930 
2931       p_to.STY_ID_FOR := p_from.STY_ID_FOR;
2932 
2933       p_to.ATTRIBUTE_CATEGORY := p_from.ATTRIBUTE_CATEGORY;
2934 
2935       p_to.ATTRIBUTE1 := p_from.ATTRIBUTE1;
2936 
2937       p_to.ATTRIBUTE2 := p_from.ATTRIBUTE2;
2938 
2939       p_to.ATTRIBUTE3 := p_from.ATTRIBUTE3;
2940 
2941       p_to.ATTRIBUTE4 := p_from.ATTRIBUTE4;
2942 
2943       p_to.ATTRIBUTE5 := p_from.ATTRIBUTE5;
2944 
2945       p_to.ATTRIBUTE6 := p_from.ATTRIBUTE6;
2946 
2947       p_to.ATTRIBUTE7 := p_from.ATTRIBUTE7;
2948 
2949       p_to.ATTRIBUTE8 := p_from.ATTRIBUTE8;
2950 
2951       p_to.ATTRIBUTE9 := p_from.ATTRIBUTE9;
2952 
2953       p_to.ATTRIBUTE10 := p_from.ATTRIBUTE10;
2954 
2955       p_to.ATTRIBUTE11 := p_from.ATTRIBUTE11;
2956 
2957       p_to.ATTRIBUTE12 := p_from.ATTRIBUTE12;
2958 
2959       p_to.ATTRIBUTE13 := p_from.ATTRIBUTE13;
2960 
2961       p_to.ATTRIBUTE14 := p_from.ATTRIBUTE14;
2962 
2963       p_to.ATTRIBUTE15 := p_from.ATTRIBUTE15;
2964 
2965       p_to.CREATED_BY := p_from.CREATED_BY;
2966 
2967       p_to.CREATION_DATE := p_from.CREATION_DATE;
2968 
2969       p_to.LAST_UPDATED_BY := p_from.LAST_UPDATED_BY;
2970 
2971       p_to.LAST_UPDATE_DATE := p_from.LAST_UPDATE_DATE;
2972 
2973       p_to.LAST_UPDATE_LOGIN := p_from.LAST_UPDATE_LOGIN;
2974 
2975       p_to.NTY_CODE := p_from.NTY_CODE;
2976 
2977       p_to.FCG_CODE := p_from.FCG_CODE;
2978 
2979       p_to.PRC_CODE := p_from.PRC_CODE;
2980 
2981       p_to.RE_LEASE_YN := p_from.RE_LEASE_YN;
2982 
2983       p_to.PRESCRIBED_ASSET_YN := p_from.PRESCRIBED_ASSET_YN;
2984 
2985       p_to.CREDIT_TENANT_YN := p_from.CREDIT_TENANT_YN;
2986 
2987       p_to.SECURED_DEAL_YN := p_from.SECURED_DEAL_YN;
2988 
2989       p_to.CLG_ID := p_from.CLG_ID;
2990 
2991       p_to.DATE_FUNDING := p_from.DATE_FUNDING;
2992 
2993       p_to.DATE_FUNDING_REQUIRED := p_from.DATE_FUNDING_REQUIRED;
2994 
2995       p_to.DATE_ACCEPTED := p_from.DATE_ACCEPTED;
2996 
2997       p_to.DATE_DELIVERY_EXPECTED := p_from.DATE_DELIVERY_EXPECTED;
2998 
2999       p_to.OEC := p_from.OEC;
3000 
3001       p_to.CAPITAL_AMOUNT := p_from.CAPITAL_AMOUNT;
3002 
3003       p_to.RESIDUAL_GRNTY_AMOUNT := p_from.RESIDUAL_GRNTY_AMOUNT;
3004 
3005       p_to.RESIDUAL_CODE := p_from.RESIDUAL_CODE;
3006 
3007       p_to.RVI_PREMIUM := p_from.RVI_PREMIUM;
3008 
3009       p_to.CREDIT_NATURE := p_from.CREDIT_NATURE;
3010 
3011       p_to.CAPITALIZED_INTEREST := p_from.CAPITALIZED_INTEREST;
3012 
3013       p_to.DATE_PAY_INVESTOR_START := p_from.DATE_PAY_INVESTOR_START;
3014 
3015       p_to.PAY_INVESTOR_FREQUENCY := p_from.PAY_INVESTOR_FREQUENCY;
3016 
3017       p_to.PAY_INVESTOR_EVENT := p_from.PAY_INVESTOR_EVENT;
3018 
3019       p_to.PAY_INVESTOR_REMITTANCE_DAYS := p_from.PAY_INVESTOR_REMITTANCE_DAYS;
3020 
3021       p_to.FEE_TYPE := p_from.FEE_TYPE;
3022 --Bug# 3143522: 11.5.10
3023 --subsidy
3024    p_to.SUBSIDY_ID := p_from.SUBSIDY_ID;
3025    --p_to.SUBSIDIZED_OEC := p_from.SUBSIDIZED_OEC;
3026    --p_to.SUBSIDIZED_CAP_AMOUNT := p_from.SUBSIDIZED_CAP_AMOUNT;
3027    p_to.SUBSIDY_OVERRIDE_AMOUNT := p_from.SUBSIDY_OVERRIDE_AMOUNT;
3028    --financed fee
3029    p_to.PRE_TAX_YIELD := p_from.PRE_TAX_YIELD;
3030    p_to.AFTER_TAX_YIELD := p_from.AFTER_TAX_YIELD;
3031    p_to.IMPLICIT_INTEREST_RATE := p_from.IMPLICIT_INTEREST_RATE;
3032    p_to.IMPLICIT_NON_IDC_INTEREST_RATE := p_from.IMPLICIT_NON_IDC_INTEREST_RATE;
3033    p_to.PRE_TAX_IRR := p_from.PRE_TAX_IRR;
3034    p_to.AFTER_TAX_IRR := p_from.AFTER_TAX_IRR;
3035 --quote
3036    p_to.SUB_PRE_TAX_YIELD := p_from.SUB_PRE_TAX_YIELD;
3037    p_to.SUB_AFTER_TAX_YIELD := p_from.SUB_AFTER_TAX_YIELD;
3038    p_to.SUB_IMPL_INTEREST_RATE := p_from.SUB_IMPL_INTEREST_RATE;
3039    p_to.SUB_IMPL_NON_IDC_INT_RATE := p_from.SUB_IMPL_NON_IDC_INT_RATE;
3040    p_to.SUB_PRE_TAX_IRR := p_from.SUB_PRE_TAX_IRR;
3041    p_to.SUB_AFTER_TAX_IRR := p_from.SUB_AFTER_TAX_IRR;
3042 --Bug# 2994971
3043    p_to.ITEM_INSURANCE_CATEGORY := p_from.ITEM_INSURANCE_CATEGORY;
3044 --Bug# 3973640 :11.5.10+
3045    p_to.QTE_ID := p_from.QTE_ID;
3046    p_to.FUNDING_DATE := p_from.FUNDING_DATE;
3047    p_to.STREAM_TYPE_SUBCLASS := p_from.STREAM_TYPE_SUBCLASS;
3048 --Bug# 4419339  OKLH
3049    p_to.DATE_FUNDING_EXPECTED := p_from.DATE_FUNDING_EXPECTED;
3050    p_to.MANUFACTURER_NAME := p_from.MANUFACTURER_NAME;
3051    p_to.MODEL_NUMBER := p_from.MODEL_NUMBER;
3052    p_to.DOWN_PAYMENT_RECEIVER_CODE := p_from.DOWN_PAYMENT_RECEIVER_CODE;
3053    p_to.CAPITALIZE_DOWN_PAYMENT_YN := p_from.CAPITALIZE_DOWN_PAYMENT_YN;
3054 --Bug#4373029
3055    p_to.FEE_PURPOSE_CODE := p_from.FEE_PURPOSE_CODE;
3056    p_to.TERMINATION_VALUE := p_from.TERMINATION_VALUE;
3057 --Bug# 4631549
3058    p_to.EXPECTED_ASSET_COST := p_from.EXPECTED_ASSET_COST;
3059    p_to.ORIG_CONTRACT_LINE_ID := p_from.ORIG_CONTRACT_LINE_ID;
3060 --Bug# 16344245
3061   p_to.ORIGINATION_INCOME := p_from.ORIGINATION_INCOME;
3062   p_to.AMOUNT_BALANCE_LEGACY := p_from.AMOUNT_BALANCE_LEGACY;
3063   p_to.DT_EFFECTIVE_BALANCE_LEGACY := p_from.DT_EFFECTIVE_BALANCE_LEGACY;
3064 
3065   END migrate;
3066 
3067 
3068 
3069   ---------------------------------------------------------------------------
3070   -- PROCEDURE validate_row
3071   ---------------------------------------------------------------------------
3072 
3073   --------------------------------------
3074   -- validate_row for: OKL_K_LINES_V --
3075   --------------------------------------
3076 
3077   PROCEDURE validate_row(
3078 
3079     p_api_version                  IN NUMBER,
3080     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3081     x_return_status                OUT NOCOPY VARCHAR2,
3082     x_msg_count                    OUT NOCOPY NUMBER,
3083     x_msg_data                     OUT NOCOPY VARCHAR2,
3084     p_klev_rec                     IN klev_rec_type) IS
3085 
3086     l_api_version                 CONSTANT NUMBER := 1;
3087     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_validate_row';
3088     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3089     l_klev_rec                     klev_rec_type := p_klev_rec;
3090   BEGIN
3091     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3092                                               G_PKG_NAME,
3093                                               p_init_msg_list,
3094                                               l_api_version,
3095                                               p_api_version,
3096                                               '_PVT',
3097                                               x_return_status);
3098 
3099     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3100       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3101     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3102       RAISE OKC_API.G_EXCEPTION_ERROR;
3103     END IF;
3104 
3105 
3106     --- Validate all non-missing attributes (Item Level Validation)
3107     l_return_status := Validate_Attributes(l_klev_rec);
3108     --- If any errors happen abort API
3109 
3110     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3111       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3112     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3113       RAISE OKC_API.G_EXCEPTION_ERROR;
3114     END IF;
3115 
3116 
3117     l_return_status := Validate_Record(l_klev_rec);
3118 
3119     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3120       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3121     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3122       RAISE OKC_API.G_EXCEPTION_ERROR;
3123     END IF;
3124 
3125 
3126     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3127 
3128   EXCEPTION
3129     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3130       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3131       (
3132         l_api_name,
3133         G_PKG_NAME,
3134         'OKC_API.G_RET_STS_ERROR',
3135         x_msg_count,
3136         x_msg_data,
3137         '_PVT'
3138       );
3139     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3140       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3141       (
3142         l_api_name,
3143         G_PKG_NAME,
3144         'OKC_API.G_RET_STS_UNEXP_ERROR',
3145         x_msg_count,
3146         x_msg_data,
3147         '_PVT'
3148       );
3149     WHEN OTHERS THEN
3150       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3151       (
3152         l_api_name,
3153         G_PKG_NAME,
3154         'OTHERS',
3155         x_msg_count,
3156         x_msg_data,
3157         '_PVT'
3158       );
3159 
3160   END validate_row;
3161   ------------------------------------------
3162   -- PL/SQL TBL validate_row for: OKL_K_LINES_V --
3163   ------------------------------------------
3164 
3165   PROCEDURE validate_row(
3166 
3167     p_api_version                  IN NUMBER,
3168     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3169     x_return_status                OUT NOCOPY VARCHAR2,
3170     x_msg_count                    OUT NOCOPY NUMBER,
3171     x_msg_data                     OUT NOCOPY VARCHAR2,
3172     p_klev_tbl                     IN klev_tbl_type) IS
3173 
3174     l_api_version                 CONSTANT NUMBER := 1;
3175     l_api_name                     CONSTANT VARCHAR2(30) := 'tbl_validate_row';
3176     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3177     i                              NUMBER := 0;
3178   BEGIN
3179     OKC_API.init_msg_list(p_init_msg_list);
3180     -- Make sure PL/SQL table has records in it before passing
3181     IF (p_klev_tbl.COUNT > 0) THEN
3182       i := p_klev_tbl.FIRST;
3183       LOOP
3184         validate_row (
3185           p_api_version                  => p_api_version,
3186           p_init_msg_list                => OKC_API.G_FALSE,
3187           x_return_status                => x_return_status,
3188           x_msg_count                    => x_msg_count,
3189           x_msg_data                     => x_msg_data,
3190           p_klev_rec                     => p_klev_tbl(i));
3191         EXIT WHEN (i = p_klev_tbl.LAST);
3192         i := p_klev_tbl.NEXT(i);
3193       END LOOP;
3194     END IF;
3195 
3196   EXCEPTION
3197     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3198       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3199       (
3200         l_api_name,
3201         G_PKG_NAME,
3202         'OKC_API.G_RET_STS_ERROR',
3203         x_msg_count,
3204         x_msg_data,
3205         '_PVT'
3206       );
3207     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3208       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3209       (
3210         l_api_name,
3211         G_PKG_NAME,
3212         'OKC_API.G_RET_STS_UNEXP_ERROR',
3213         x_msg_count,
3214         x_msg_data,
3215         '_PVT'
3216       );
3217     WHEN OTHERS THEN
3218       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3219       (
3220         l_api_name,
3221         G_PKG_NAME,
3222         'OTHERS',
3223         x_msg_count,
3224         x_msg_data,
3225         '_PVT'
3226       );
3227 
3228   END validate_row;
3229 
3230 
3231   ---------------------------------------------------------------------------
3232   -- PROCEDURE insert_row
3233   ---------------------------------------------------------------------------
3234 
3235 
3236   ------------------------------------
3237   -- insert_row for: OKL_K_LINES_H --
3238   ------------------------------------
3239 
3240   PROCEDURE insert_row(
3241 
3242     p_api_version                  IN NUMBER,
3243     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3244     x_return_status                OUT NOCOPY VARCHAR2,
3245     x_msg_count                    OUT NOCOPY NUMBER,
3246     x_msg_data                     OUT NOCOPY VARCHAR2,
3247     p_okl_k_lines_h_rec                     IN okl_k_lines_h_rec_type,
3248     x_okl_k_lines_h_rec                     OUT NOCOPY okl_k_lines_h_rec_type) IS
3249 
3250     l_api_version                 CONSTANT NUMBER := 1;
3251     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_insert_row';
3252     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3253     l_okl_k_lines_h_rec          okl_k_lines_h_rec_type := p_okl_k_lines_h_rec;
3254     l_def_okl_k_lines_h_rec      okl_k_lines_h_rec_type;
3255     ----------------------------------------
3256     -- Set_Attributes for: OKL_K_LINES_H --
3257     ----------------------------------------
3258     FUNCTION Set_Attributes (
3259       p_okl_k_lines_h_rec IN  okl_k_lines_h_rec_type,
3260       x_okl_k_lines_h_rec OUT NOCOPY okl_k_lines_h_rec_type
3261     ) RETURN VARCHAR2 IS
3262       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3263     BEGIN
3264       x_okl_k_lines_h_rec := p_okl_k_lines_h_rec;
3265       RETURN(l_return_status);
3266     END Set_Attributes;
3267   BEGIN
3268 
3269     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3270                                               p_init_msg_list,
3271                                               '_PVT',
3272                                               x_return_status);
3273 
3274     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3275       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3276     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3277       RAISE OKC_API.G_EXCEPTION_ERROR;
3278     END IF;
3279 
3280     --- Setting item attributes
3281     l_return_status := Set_Attributes(
3282       p_okl_k_lines_h_rec,             -- IN
3283       l_okl_k_lines_h_rec);            -- OUT
3284     --- If any errors happen abort API
3285 
3286     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3287       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3288     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3289       RAISE OKC_API.G_EXCEPTION_ERROR;
3290     END IF;
3291 
3292     INSERT INTO OKL_K_LINES_H(
3293 	ID,
3294         MAJOR_VERSION,
3295         KLE_ID,
3296         STY_ID,
3297         OBJECT_VERSION_NUMBER,
3298         LAO_AMOUNT,
3299         FEE_CHARGE,
3300         TITLE_DATE,
3301         DATE_RESIDUAL_LAST_REVIEW,
3302         DATE_LAST_REAMORTISATION,
3303         TERMINATION_PURCHASE_AMOUNT,
3304         DATE_LAST_CLEANUP,
3305         REMARKETED_AMOUNT,
3306         DATE_REMARKETED,
3307         REMARKET_MARGIN,
3308         REPURCHASED_AMOUNT,
3309         DATE_REPURCHASED,
3310         GAIN_LOSS,
3311         FLOOR_AMOUNT,
3312         PREVIOUS_CONTRACT,
3313         TRACKED_RESIDUAL,
3314         DATE_TITLE_RECEIVED,
3315         ESTIMATED_OEC,
3316         RESIDUAL_PERCENTAGE,
3317         CAPITAL_REDUCTION,
3318         VENDOR_ADVANCE_PAID,
3319         TRADEIN_AMOUNT,
3320         DELIVERED_DATE,
3321         YEAR_OF_MANUFACTURE,
3322         INITIAL_DIRECT_COST,
3323         OCCUPANCY,
3324         DATE_LAST_INSPECTION,
3325         DATE_NEXT_INSPECTION_DUE,
3326         WEIGHTED_AVERAGE_LIFE,
3327         BOND_EQUIVALENT_YIELD,
3328         REFINANCE_AMOUNT,
3329         YEAR_BUILT,
3330         COVERAGE_RATIO,
3331         GROSS_SQUARE_FOOTAGE,
3332         NET_RENTABLE,
3333         DATE_LETTER_ACCEPTANCE,
3334         DATE_COMMITMENT_EXPIRATION,
3335         DATE_APPRAISAL,
3336         APPRAISAL_VALUE,
3337         RESIDUAL_VALUE,
3338         PERCENT,
3339         COVERAGE,
3340         LRV_AMOUNT,
3341         AMOUNT,
3342         LRS_PERCENT,
3343         EVERGREEN_PERCENT,
3344         PERCENT_STAKE,
3345         AMOUNT_STAKE,
3346         DATE_SOLD,
3347         STY_ID_FOR,
3348         ATTRIBUTE_CATEGORY,
3349         ATTRIBUTE1,
3350         ATTRIBUTE2,
3351         ATTRIBUTE3,
3352         ATTRIBUTE4,
3353         ATTRIBUTE5,
3354         ATTRIBUTE6,
3355         ATTRIBUTE7,
3356         ATTRIBUTE8,
3357         ATTRIBUTE9,
3358         ATTRIBUTE10,
3359         ATTRIBUTE11,
3360         ATTRIBUTE12,
3361         ATTRIBUTE13,
3362         ATTRIBUTE14,
3363         ATTRIBUTE15,
3364         CREATED_BY,
3365         CREATION_DATE,
3366         LAST_UPDATED_BY,
3367         LAST_UPDATE_DATE,
3368         LAST_UPDATE_LOGIN,
3369         NTY_CODE,
3370         FCG_CODE,
3371         PRC_CODE,
3372         RE_LEASE_YN,
3373         PRESCRIBED_ASSET_YN,
3374         CREDIT_TENANT_YN,
3375         SECURED_DEAL_YN,
3376         CLG_ID,
3377         DATE_FUNDING,
3378         DATE_FUNDING_REQUIRED,
3379         DATE_ACCEPTED,
3380         DATE_DELIVERY_EXPECTED,
3381         OEC,
3382         CAPITAL_AMOUNT,
3383         RESIDUAL_GRNTY_AMOUNT,
3384         RESIDUAL_CODE,
3385         RVI_PREMIUM,
3386         CREDIT_NATURE,
3387         CAPITALIZED_INTEREST,
3388         CAPITAL_REDUCTION_PERCENT,
3389 --Bug# 2697681 11.5.9
3390         DATE_PAY_INVESTOR_START,
3391         PAY_INVESTOR_FREQUENCY,
3392         PAY_INVESTOR_EVENT,
3393         PAY_INVESTOR_REMITTANCE_DAYS,
3394 --financed fees
3395         FEE_TYPE,
3396 --Bug# 3143522 : 11.5.10
3397    --subsidy
3398    SUBSIDY_ID,
3399    --SUBSIDIZED_OEC,
3400    --SUBSIDIZED_CAP_AMOUNT,
3401    SUBSIDY_OVERRIDE_AMOUNT,
3402    --financed fee
3403    PRE_TAX_YIELD,
3404    AFTER_TAX_YIELD,
3405    IMPLICIT_INTEREST_RATE,
3406    IMPLICIT_NON_IDC_INTEREST_RATE,
3407    PRE_TAX_IRR,
3408    AFTER_TAX_IRR,
3409 --quote
3410    SUB_PRE_TAX_YIELD,
3411    SUB_AFTER_TAX_YIELD,
3412    SUB_IMPL_INTEREST_RATE,
3413    SUB_IMPL_NON_IDC_INT_RATE,
3414    SUB_PRE_TAX_IRR,
3415    SUB_AFTER_TAX_IRR,
3416 --Bug# 2994971
3417    ITEM_INSURANCE_CATEGORY,
3418 --Bug# 3973640 :11.5.10+
3419    QTE_ID,
3420    FUNDING_DATE,
3421    STREAM_TYPE_SUBCLASS,
3422 --Bug# 4419339  OKLH
3423    DATE_FUNDING_EXPECTED,
3424    MANUFACTURER_NAME,
3425    MODEL_NUMBER,
3426    DOWN_PAYMENT_RECEIVER_CODE,
3427    CAPITALIZE_DOWN_PAYMENT_YN,
3428 --Bug#4373029
3429    FEE_PURPOSE_CODE,
3430    TERMINATION_VALUE,
3431 --Bug# 4631549
3432    EXPECTED_ASSET_COST,
3433    ORIG_CONTRACT_LINE_ID,
3434 --Bug# 16344245
3435    ORIGINATION_INCOME,
3436    AMOUNT_BALANCE_LEGACY,
3437    DT_EFFECTIVE_BALANCE_LEGACY
3438 
3439         )
3440       VALUES (
3441        l_okl_k_lines_h_rec.ID,
3442         l_okl_k_lines_h_rec.MAJOR_VERSION,
3443         l_okl_k_lines_h_rec.KLE_ID,
3444         l_okl_k_lines_h_rec.STY_ID,
3445         l_okl_k_lines_h_rec.OBJECT_VERSION_NUMBER,
3446         l_okl_k_lines_h_rec.LAO_AMOUNT,
3447         l_okl_k_lines_h_rec.FEE_CHARGE,
3448         l_okl_k_lines_h_rec.TITLE_DATE,
3449         l_okl_k_lines_h_rec.DATE_RESIDUAL_LAST_REVIEW,
3450         l_okl_k_lines_h_rec.DATE_LAST_REAMORTISATION,
3451         l_okl_k_lines_h_rec.TERMINATION_PURCHASE_AMOUNT,
3452         l_okl_k_lines_h_rec.DATE_LAST_CLEANUP,
3453         l_okl_k_lines_h_rec.REMARKETED_AMOUNT,
3454         l_okl_k_lines_h_rec.DATE_REMARKETED,
3455         l_okl_k_lines_h_rec.REMARKET_MARGIN,
3456         l_okl_k_lines_h_rec.REPURCHASED_AMOUNT,
3457         l_okl_k_lines_h_rec.DATE_REPURCHASED,
3458         l_okl_k_lines_h_rec.GAIN_LOSS,
3459         l_okl_k_lines_h_rec.FLOOR_AMOUNT,
3460         l_okl_k_lines_h_rec.PREVIOUS_CONTRACT,
3461         l_okl_k_lines_h_rec.TRACKED_RESIDUAL,
3462         l_okl_k_lines_h_rec.DATE_TITLE_RECEIVED,
3463         l_okl_k_lines_h_rec.ESTIMATED_OEC,
3464         l_okl_k_lines_h_rec.RESIDUAL_PERCENTAGE,
3465         l_okl_k_lines_h_rec.CAPITAL_REDUCTION,
3466         l_okl_k_lines_h_rec.VENDOR_ADVANCE_PAID,
3467         l_okl_k_lines_h_rec.TRADEIN_AMOUNT,
3468         l_okl_k_lines_h_rec.DELIVERED_DATE,
3469         l_okl_k_lines_h_rec.YEAR_OF_MANUFACTURE,
3470         l_okl_k_lines_h_rec.INITIAL_DIRECT_COST,
3471         l_okl_k_lines_h_rec.OCCUPANCY,
3472         l_okl_k_lines_h_rec.DATE_LAST_INSPECTION,
3473         l_okl_k_lines_h_rec.DATE_NEXT_INSPECTION_DUE,
3474         l_okl_k_lines_h_rec.WEIGHTED_AVERAGE_LIFE,
3475         l_okl_k_lines_h_rec.BOND_EQUIVALENT_YIELD,
3476         l_okl_k_lines_h_rec.REFINANCE_AMOUNT,
3477         l_okl_k_lines_h_rec.YEAR_BUILT,
3478         l_okl_k_lines_h_rec.COVERAGE_RATIO,
3479         l_okl_k_lines_h_rec.GROSS_SQUARE_FOOTAGE,
3480         l_okl_k_lines_h_rec.NET_RENTABLE,
3481         l_okl_k_lines_h_rec.DATE_LETTER_ACCEPTANCE,
3482         l_okl_k_lines_h_rec.DATE_COMMITMENT_EXPIRATION,
3483         l_okl_k_lines_h_rec.DATE_APPRAISAL,
3484         l_okl_k_lines_h_rec.APPRAISAL_VALUE,
3485         l_okl_k_lines_h_rec.RESIDUAL_VALUE,
3486         l_okl_k_lines_h_rec.PERCENT,
3487         l_okl_k_lines_h_rec.COVERAGE,
3488         l_okl_k_lines_h_rec.LRV_AMOUNT,
3489         l_okl_k_lines_h_rec.AMOUNT,
3490         l_okl_k_lines_h_rec.LRS_PERCENT,
3491         l_okl_k_lines_h_rec.EVERGREEN_PERCENT,
3492         l_okl_k_lines_h_rec.PERCENT_STAKE,
3493         l_okl_k_lines_h_rec.AMOUNT_STAKE,
3494         l_okl_k_lines_h_rec.DATE_SOLD,
3495         l_okl_k_lines_h_rec.STY_ID_FOR,
3496         l_okl_k_lines_h_rec.ATTRIBUTE_CATEGORY,
3497         l_okl_k_lines_h_rec.ATTRIBUTE1,
3498         l_okl_k_lines_h_rec.ATTRIBUTE2,
3499         l_okl_k_lines_h_rec.ATTRIBUTE3,
3500         l_okl_k_lines_h_rec.ATTRIBUTE4,
3501         l_okl_k_lines_h_rec.ATTRIBUTE5,
3502         l_okl_k_lines_h_rec.ATTRIBUTE6,
3503         l_okl_k_lines_h_rec.ATTRIBUTE7,
3504         l_okl_k_lines_h_rec.ATTRIBUTE8,
3505         l_okl_k_lines_h_rec.ATTRIBUTE9,
3506         l_okl_k_lines_h_rec.ATTRIBUTE10,
3507         l_okl_k_lines_h_rec.ATTRIBUTE11,
3508         l_okl_k_lines_h_rec.ATTRIBUTE12,
3509         l_okl_k_lines_h_rec.ATTRIBUTE13,
3510         l_okl_k_lines_h_rec.ATTRIBUTE14,
3511         l_okl_k_lines_h_rec.ATTRIBUTE15,
3512         l_okl_k_lines_h_rec.CREATED_BY,
3513         l_okl_k_lines_h_rec.CREATION_DATE,
3514         l_okl_k_lines_h_rec.LAST_UPDATED_BY,
3515         l_okl_k_lines_h_rec.LAST_UPDATE_DATE,
3516         l_okl_k_lines_h_rec.LAST_UPDATE_LOGIN,
3517         l_okl_k_lines_h_rec.NTY_CODE,
3518         l_okl_k_lines_h_rec.FCG_CODE,
3519         l_okl_k_lines_h_rec.PRC_CODE,
3520         l_okl_k_lines_h_rec.RE_LEASE_YN,
3521         l_okl_k_lines_h_rec.PRESCRIBED_ASSET_YN,
3522         l_okl_k_lines_h_rec.CREDIT_TENANT_YN,
3523         l_okl_k_lines_h_rec.SECURED_DEAL_YN,
3524         l_okl_k_lines_h_rec.CLG_ID,
3525         l_okl_k_lines_h_rec.DATE_FUNDING,
3526         l_okl_k_lines_h_rec.DATE_FUNDING_REQUIRED,
3527         l_okl_k_lines_h_rec.DATE_ACCEPTED,
3528         l_okl_k_lines_h_rec.DATE_DELIVERY_EXPECTED,
3529         l_okl_k_lines_h_rec.OEC,
3530         l_okl_k_lines_h_rec.CAPITAL_AMOUNT,
3531         l_okl_k_lines_h_rec.RESIDUAL_GRNTY_AMOUNT,
3532         l_okl_k_lines_h_rec.RESIDUAL_CODE,
3533         l_okl_k_lines_h_rec.RVI_PREMIUM,
3534         l_okl_k_lines_h_rec.CREDIT_NATURE,
3535         l_okl_k_lines_h_rec.CAPITALIZED_INTEREST,
3536         l_okl_k_lines_h_rec.CAPITAL_REDUCTION_PERCENT,
3537 --Bug# 2697681 11.5.9
3538         l_okl_k_lines_h_rec.DATE_PAY_INVESTOR_START,
3539         l_okl_k_lines_h_rec.PAY_INVESTOR_FREQUENCY,
3540         l_okl_k_lines_h_rec.PAY_INVESTOR_EVENT,
3541         l_okl_k_lines_h_rec.PAY_INVESTOR_REMITTANCE_DAYS,
3542 --financed fees
3543         l_okl_k_lines_h_rec.FEE_TYPE,
3544 --Bug# 3143522: 11.5.10
3545    --subsidy
3546    l_okl_k_lines_h_rec.SUBSIDY_ID,
3547    --l_okl_k_lines_h_rec.SUBSIDIZED_OEC,
3548    --l_okl_k_lines_h_rec.SUBSIDIZED_CAP_AMOUNT,
3549    l_okl_k_lines_h_rec.SUBSIDY_OVERRIDE_AMOUNT,
3550    --financed fee
3551    l_okl_k_lines_h_rec.PRE_TAX_YIELD,
3552    l_okl_k_lines_h_rec.AFTER_TAX_YIELD,
3553    l_okl_k_lines_h_rec.IMPLICIT_INTEREST_RATE,
3554    l_okl_k_lines_h_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
3555    l_okl_k_lines_h_rec.PRE_TAX_IRR,
3556    l_okl_k_lines_h_rec.AFTER_TAX_IRR,
3557 --quote
3558    l_okl_k_lines_h_rec.SUB_PRE_TAX_YIELD,
3559    l_okl_k_lines_h_rec.SUB_AFTER_TAX_YIELD,
3560    l_okl_k_lines_h_rec.SUB_IMPL_INTEREST_RATE,
3561    l_okl_k_lines_h_rec.SUB_IMPL_NON_IDC_INT_RATE,
3562    l_okl_k_lines_h_rec.SUB_PRE_TAX_IRR,
3563    l_okl_k_lines_h_rec.SUB_AFTER_TAX_IRR,
3564 --Bug#2994971
3565    l_okl_k_lines_h_rec.ITEM_INSURANCE_CATEGORY,
3566 --Bug# 3973640: 11.5.10+
3567    l_okl_k_lines_h_rec.QTE_ID,
3568    l_okl_k_lines_h_rec.FUNDING_DATE,
3569    l_okl_k_lines_h_rec.STREAM_TYPE_SUBCLASS,
3570 --Bug# 4419339  OKLH
3571    l_okl_k_lines_h_rec.DATE_FUNDING_EXPECTED,
3572    l_okl_k_lines_h_rec.MANUFACTURER_NAME,
3573    l_okl_k_lines_h_rec.MODEL_NUMBER,
3574    l_okl_k_lines_h_rec.DOWN_PAYMENT_RECEIVER_CODE,
3575    l_okl_k_lines_h_rec.CAPITALIZE_DOWN_PAYMENT_YN,
3576 --Bug#4373029
3577    l_okl_k_lines_h_rec.FEE_PURPOSE_CODE,
3578    l_okl_k_lines_h_rec.TERMINATION_VALUE,
3579 --Bug# 4631549
3580    l_okl_k_lines_h_rec.EXPECTED_ASSET_COST,
3581    l_okl_k_lines_h_rec.ORIG_CONTRACT_LINE_ID,
3582 --Bug# 16344245
3583    l_okl_k_lines_h_rec.ORIGINATION_INCOME,
3584    l_okl_k_lines_h_rec.AMOUNT_BALANCE_LEGACY,
3585    l_okl_k_lines_h_rec.DT_EFFECTIVE_BALANCE_LEGACY
3586 
3587         );
3588     -- Set OUT values
3589     x_okl_k_lines_h_rec := l_okl_k_lines_h_rec;
3590     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3591 
3592   EXCEPTION
3593     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3594       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3595       (
3596         l_api_name,
3597         G_PKG_NAME,
3598         'OKC_API.G_RET_STS_ERROR',
3599         x_msg_count,
3600         x_msg_data,
3601         '_PVT'
3602       );
3603     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_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_UNEXP_ERROR',
3609         x_msg_count,
3610         x_msg_data,
3611         '_PVT'
3612       );
3613     WHEN OTHERS THEN
3614       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3615       (
3616         l_api_name,
3617         G_PKG_NAME,
3618         'OTHERS',
3619         x_msg_count,
3620         x_msg_data,
3621         '_PVT'
3622       );
3623 
3624   END insert_row;
3625 
3626   ------------------------------------
3627   -- insert_row for: OKL_K_LINES --
3628   ------------------------------------
3629 
3630   PROCEDURE insert_row(
3631 
3632     p_api_version                  IN NUMBER,
3633     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3634     x_return_status                OUT NOCOPY VARCHAR2,
3635     x_msg_count                    OUT NOCOPY NUMBER,
3636     x_msg_data                     OUT NOCOPY VARCHAR2,
3637     p_kle_rec                     IN kle_rec_type,
3638     x_kle_rec                     OUT NOCOPY kle_rec_type) IS
3639 
3640     l_api_version                 CONSTANT NUMBER := 1;
3641     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_insert_row';
3642     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3643     l_kle_rec          kle_rec_type := p_kle_rec;
3644     l_def_kle_rec      kle_rec_type;
3645     ----------------------------------------
3646     -- Set_Attributes for: OKL_K_LINES --
3647     ----------------------------------------
3648     FUNCTION Set_Attributes (
3649       p_kle_rec IN  kle_rec_type,
3650       x_kle_rec OUT NOCOPY kle_rec_type
3651     ) RETURN VARCHAR2 IS
3652       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3653     BEGIN
3654       x_kle_rec := p_kle_rec;
3655       --Added by jjuneja
3656       --in case the Fee_type is income then setting origination income to 0 if it is null
3657       IF(x_kle_rec.FEE_TYPE = 'INCOME') THEN
3658         x_kle_rec.ORIGINATION_INCOME := NVL(x_kle_rec.ORIGINATION_INCOME,0);
3659       END IF;
3660          --End of addition by jjuneja
3661 
3662       RETURN(l_return_status);
3663     END Set_Attributes;
3664   BEGIN
3665 
3666     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3667                                               p_init_msg_list,
3668                                               '_PVT',
3669                                               x_return_status);
3670 
3671     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3672       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3673     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3674       RAISE OKC_API.G_EXCEPTION_ERROR;
3675     END IF;
3676 
3677     --- Setting item attributes
3678     l_return_status := Set_Attributes(
3679       p_kle_rec,             -- IN
3680       l_kle_rec);            -- OUT
3681     --- If any errors happen abort API
3682 
3683     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3684       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3685     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3686       RAISE OKC_API.G_EXCEPTION_ERROR;
3687     END IF;
3688 
3689     INSERT INTO OKL_K_LINES(
3690 	ID,
3691         KLE_ID,
3692         STY_ID,
3693         OBJECT_VERSION_NUMBER,
3694         LAO_AMOUNT,
3695         FEE_CHARGE,
3696         TITLE_DATE,
3697         DATE_RESIDUAL_LAST_REVIEW,
3698         DATE_LAST_REAMORTISATION,
3699         TERMINATION_PURCHASE_AMOUNT,
3700         DATE_LAST_CLEANUP,
3701         REMARKETED_AMOUNT,
3702         DATE_REMARKETED,
3703         REMARKET_MARGIN,
3704         REPURCHASED_AMOUNT,
3705         DATE_REPURCHASED,
3706         GAIN_LOSS,
3707         FLOOR_AMOUNT,
3708         PREVIOUS_CONTRACT,
3709         TRACKED_RESIDUAL,
3710         DATE_TITLE_RECEIVED,
3711         ESTIMATED_OEC,
3712         RESIDUAL_PERCENTAGE,
3713         CAPITAL_REDUCTION,
3714         VENDOR_ADVANCE_PAID,
3715         TRADEIN_AMOUNT,
3716         DELIVERED_DATE,
3717         YEAR_OF_MANUFACTURE,
3718         INITIAL_DIRECT_COST,
3719         OCCUPANCY,
3720         DATE_LAST_INSPECTION,
3721         DATE_NEXT_INSPECTION_DUE,
3722         WEIGHTED_AVERAGE_LIFE,
3723         BOND_EQUIVALENT_YIELD,
3724         REFINANCE_AMOUNT,
3725         YEAR_BUILT,
3726         COVERAGE_RATIO,
3727         GROSS_SQUARE_FOOTAGE,
3728         NET_RENTABLE,
3729         DATE_LETTER_ACCEPTANCE,
3730         DATE_COMMITMENT_EXPIRATION,
3731         DATE_APPRAISAL,
3732         APPRAISAL_VALUE,
3733         RESIDUAL_VALUE,
3734         PERCENT,
3735         COVERAGE,
3736         LRV_AMOUNT,
3737         AMOUNT,
3738         LRS_PERCENT,
3739         EVERGREEN_PERCENT,
3740         PERCENT_STAKE,
3741         AMOUNT_STAKE,
3742         DATE_SOLD,
3743         STY_ID_FOR,
3744         ATTRIBUTE_CATEGORY,
3745         ATTRIBUTE1,
3746         ATTRIBUTE2,
3747         ATTRIBUTE3,
3748         ATTRIBUTE4,
3749         ATTRIBUTE5,
3750         ATTRIBUTE6,
3751         ATTRIBUTE7,
3752         ATTRIBUTE8,
3753         ATTRIBUTE9,
3754         ATTRIBUTE10,
3755         ATTRIBUTE11,
3756         ATTRIBUTE12,
3757         ATTRIBUTE13,
3758         ATTRIBUTE14,
3759         ATTRIBUTE15,
3760         CREATED_BY,
3761         CREATION_DATE,
3762         LAST_UPDATED_BY,
3763         LAST_UPDATE_DATE,
3764         LAST_UPDATE_LOGIN,
3765         NTY_CODE,
3766         FCG_CODE,
3767         PRC_CODE,
3768         RE_LEASE_YN,
3769         PRESCRIBED_ASSET_YN,
3770         CREDIT_TENANT_YN,
3771         SECURED_DEAL_YN,
3772         CLG_ID,
3773         DATE_FUNDING,
3774         DATE_FUNDING_REQUIRED,
3775         DATE_ACCEPTED,
3776         DATE_DELIVERY_EXPECTED,
3777         OEC,
3778         CAPITAL_AMOUNT,
3779         RESIDUAL_GRNTY_AMOUNT,
3780         RESIDUAL_CODE,
3781         RVI_PREMIUM,
3782         CREDIT_NATURE,
3783         CAPITALIZED_INTEREST,
3784         CAPITAL_REDUCTION_PERCENT,
3785 --Bug# 2697681 11.5.9
3786         DATE_PAY_INVESTOR_START,
3787         PAY_INVESTOR_FREQUENCY,
3788         PAY_INVESTOR_EVENT,
3789         PAY_INVESTOR_REMITTANCE_DAYS,
3790 --financed fees
3791         FEE_TYPE,
3792 -- Bug# 3143522 : 11.5.10
3793    --subsidy
3794    SUBSIDY_ID,
3795    --SUBSIDIZED_OEC,
3796    --SUBSIDIZED_CAP_AMOUNT,
3797    SUBSIDY_OVERRIDE_AMOUNT,
3798    --financed fee
3799    PRE_TAX_YIELD,
3800    AFTER_TAX_YIELD,
3801    IMPLICIT_INTEREST_RATE,
3802    IMPLICIT_NON_IDC_INTEREST_RATE,
3803    PRE_TAX_IRR,
3804    AFTER_TAX_IRR,
3805 --quote
3806    SUB_PRE_TAX_YIELD,
3807    SUB_AFTER_TAX_YIELD,
3808    SUB_IMPL_INTEREST_RATE,
3809    SUB_IMPL_NON_IDC_INT_RATE,
3810    SUB_PRE_TAX_IRR,
3811    SUB_AFTER_TAX_IRR,
3812 --Bug# 2994971
3813    ITEM_INSURANCE_CATEGORY,
3814 -- Bug# 3973640 :11.5.10+
3815    QTE_ID,
3816    FUNDING_DATE,
3817    STREAM_TYPE_SUBCLASS,
3818 --Bug# 4419339  OKLH
3819    DATE_FUNDING_EXPECTED,
3820    MANUFACTURER_NAME,
3821    MODEL_NUMBER,
3822    DOWN_PAYMENT_RECEIVER_CODE,
3823    CAPITALIZE_DOWN_PAYMENT_YN,
3824 --Bug#4373029
3825    FEE_PURPOSE_CODE,
3826    TERMINATION_VALUE,
3827 --Bug# 4631549
3828    EXPECTED_ASSET_COST,
3829    ORIG_CONTRACT_LINE_ID,
3830    --Added by jjuneja
3831    ORIGINATION_INCOME,
3832    --End of addition by jjuneja
3833 --Bug# 16344245
3834    AMOUNT_BALANCE_LEGACY,
3835    DT_EFFECTIVE_BALANCE_LEGACY
3836         )
3837       VALUES (
3838        l_kle_rec.ID,
3839         l_kle_rec.KLE_ID,
3840         l_kle_rec.STY_ID,
3841         l_kle_rec.OBJECT_VERSION_NUMBER,
3842         l_kle_rec.LAO_AMOUNT,
3843         l_kle_rec.FEE_CHARGE,
3844         l_kle_rec.TITLE_DATE,
3845         l_kle_rec.DATE_RESIDUAL_LAST_REVIEW,
3846         l_kle_rec.DATE_LAST_REAMORTISATION,
3847         l_kle_rec.TERMINATION_PURCHASE_AMOUNT,
3848         l_kle_rec.DATE_LAST_CLEANUP,
3849         l_kle_rec.REMARKETED_AMOUNT,
3850         l_kle_rec.DATE_REMARKETED,
3851         l_kle_rec.REMARKET_MARGIN,
3852         l_kle_rec.REPURCHASED_AMOUNT,
3853         l_kle_rec.DATE_REPURCHASED,
3854         l_kle_rec.GAIN_LOSS,
3855         l_kle_rec.FLOOR_AMOUNT,
3856         l_kle_rec.PREVIOUS_CONTRACT,
3857         l_kle_rec.TRACKED_RESIDUAL,
3858         l_kle_rec.DATE_TITLE_RECEIVED,
3859         l_kle_rec.ESTIMATED_OEC,
3860         l_kle_rec.RESIDUAL_PERCENTAGE,
3861         l_kle_rec.CAPITAL_REDUCTION,
3862         l_kle_rec.VENDOR_ADVANCE_PAID,
3863         l_kle_rec.TRADEIN_AMOUNT,
3864         l_kle_rec.DELIVERED_DATE,
3865         l_kle_rec.YEAR_OF_MANUFACTURE,
3866         l_kle_rec.INITIAL_DIRECT_COST,
3867         l_kle_rec.OCCUPANCY,
3868         l_kle_rec.DATE_LAST_INSPECTION,
3869         l_kle_rec.DATE_NEXT_INSPECTION_DUE,
3870         l_kle_rec.WEIGHTED_AVERAGE_LIFE,
3871         l_kle_rec.BOND_EQUIVALENT_YIELD,
3872         l_kle_rec.REFINANCE_AMOUNT,
3873         l_kle_rec.YEAR_BUILT,
3874         l_kle_rec.COVERAGE_RATIO,
3875         l_kle_rec.GROSS_SQUARE_FOOTAGE,
3876         l_kle_rec.NET_RENTABLE,
3877         l_kle_rec.DATE_LETTER_ACCEPTANCE,
3878         l_kle_rec.DATE_COMMITMENT_EXPIRATION,
3879         l_kle_rec.DATE_APPRAISAL,
3880         l_kle_rec.APPRAISAL_VALUE,
3881         l_kle_rec.RESIDUAL_VALUE,
3882         l_kle_rec.PERCENT,
3883         l_kle_rec.COVERAGE,
3884         l_kle_rec.LRV_AMOUNT,
3885         l_kle_rec.AMOUNT,
3886         l_kle_rec.LRS_PERCENT,
3887         l_kle_rec.EVERGREEN_PERCENT,
3888         l_kle_rec.PERCENT_STAKE,
3889         l_kle_rec.AMOUNT_STAKE,
3890         l_kle_rec.DATE_SOLD,
3891         l_kle_rec.STY_ID_FOR,
3892         l_kle_rec.ATTRIBUTE_CATEGORY,
3893         l_kle_rec.ATTRIBUTE1,
3894         l_kle_rec.ATTRIBUTE2,
3895         l_kle_rec.ATTRIBUTE3,
3896         l_kle_rec.ATTRIBUTE4,
3897         l_kle_rec.ATTRIBUTE5,
3898         l_kle_rec.ATTRIBUTE6,
3899         l_kle_rec.ATTRIBUTE7,
3900         l_kle_rec.ATTRIBUTE8,
3901         l_kle_rec.ATTRIBUTE9,
3902         l_kle_rec.ATTRIBUTE10,
3903         l_kle_rec.ATTRIBUTE11,
3904         l_kle_rec.ATTRIBUTE12,
3905         l_kle_rec.ATTRIBUTE13,
3906         l_kle_rec.ATTRIBUTE14,
3907         l_kle_rec.ATTRIBUTE15,
3908         l_kle_rec.CREATED_BY,
3909         l_kle_rec.CREATION_DATE,
3910         l_kle_rec.LAST_UPDATED_BY,
3911         l_kle_rec.LAST_UPDATE_DATE,
3912         l_kle_rec.LAST_UPDATE_LOGIN,
3913         l_kle_rec.NTY_CODE,
3914         l_kle_rec.FCG_CODE,
3915         l_kle_rec.PRC_CODE,
3916         l_kle_rec.RE_LEASE_YN,
3917         l_kle_rec.PRESCRIBED_ASSET_YN,
3918         l_kle_rec.CREDIT_TENANT_YN,
3919         l_kle_rec.SECURED_DEAL_YN,
3920         l_kle_rec.CLG_ID,
3921         l_kle_rec.DATE_FUNDING,
3922         l_kle_rec.DATE_FUNDING_REQUIRED,
3923         l_kle_rec.DATE_ACCEPTED,
3924         l_kle_rec.DATE_DELIVERY_EXPECTED,
3925         l_kle_rec.OEC,
3926         l_kle_rec.CAPITAL_AMOUNT,
3927         l_kle_rec.RESIDUAL_GRNTY_AMOUNT,
3928         l_kle_rec.RESIDUAL_CODE,
3929         l_kle_rec.RVI_PREMIUM,
3930         l_kle_rec.CREDIT_NATURE,
3931         l_kle_rec.CAPITALIZED_INTEREST,
3932         l_kle_rec.CAPITAL_REDUCTION_PERCENT,
3933 --Bug# 2697681 11.5.9
3934         l_kle_rec.DATE_PAY_INVESTOR_START,
3935         l_kle_rec.PAY_INVESTOR_FREQUENCY,
3936         l_kle_rec.PAY_INVESTOR_EVENT,
3937         l_kle_rec.PAY_INVESTOR_REMITTANCE_DAYS,
3938 --financed fees
3939         l_kle_rec.FEE_TYPE,
3940 --Bug# 3143522: 11.5.10
3941    --subsidy
3942    l_kle_rec.SUBSIDY_ID,
3943    --l_kle_rec.SUBSIDIZED_OEC,
3944    --l_kle_rec.SUBSIDIZED_CAP_AMOUNT,
3945    l_kle_rec.SUBSIDY_OVERRIDE_AMOUNT,
3946    --financed fee
3947    l_kle_rec.PRE_TAX_YIELD,
3948    l_kle_rec.AFTER_TAX_YIELD,
3949    l_kle_rec.IMPLICIT_INTEREST_RATE,
3950    l_kle_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
3951    l_kle_rec.PRE_TAX_IRR,
3952    l_kle_rec.AFTER_TAX_IRR,
3953 --quotes
3954    l_kle_rec.SUB_PRE_TAX_YIELD,
3955    l_kle_rec.SUB_AFTER_TAX_YIELD,
3956    l_kle_rec.SUB_IMPL_INTEREST_RATE,
3957    l_kle_rec.SUB_IMPL_NON_IDC_INT_RATE,
3958    l_kle_rec.SUB_PRE_TAX_IRR,
3959    l_kle_rec.SUB_AFTER_TAX_IRR,
3960 --Bug# 2994971
3961    l_kle_rec.ITEM_INSURANCE_CATEGORY,
3962 --Bug# 3973640 :11.5.10+
3963    l_kle_rec.QTE_ID,
3964    l_kle_rec.FUNDING_DATE,
3965    l_kle_rec.STREAM_TYPE_SUBCLASS,
3966 --Bug# 4419339  OKLH
3967    l_kle_rec.DATE_FUNDING_EXPECTED,
3968    l_kle_rec.MANUFACTURER_NAME,
3969    l_kle_rec.MODEL_NUMBER,
3970    l_kle_rec.DOWN_PAYMENT_RECEIVER_CODE,
3971    l_kle_rec.CAPITALIZE_DOWN_PAYMENT_YN,
3972 --Bug# 4373029
3973    l_kle_rec.FEE_PURPOSE_CODE,
3974    l_kle_rec.TERMINATION_VALUE,
3975 --Bug# 4631549
3976    l_kle_rec.EXPECTED_ASSET_COST,
3977    l_kle_rec.ORIG_CONTRACT_LINE_ID,
3978    --Added by jjuneja
3979    l_kle_rec.ORIGINATION_INCOME,
3980    --End of addition by jjuneja
3981 --Bug# 16344245
3982    l_kle_rec.AMOUNT_BALANCE_LEGACY,
3983    l_kle_rec.DT_EFFECTIVE_BALANCE_LEGACY
3984         );
3985     -- Set OUT values
3986     x_kle_rec := l_kle_rec;
3987     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3988 
3989   EXCEPTION
3990     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3991       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3992       (
3993         l_api_name,
3994         G_PKG_NAME,
3995         'OKC_API.G_RET_STS_ERROR',
3996         x_msg_count,
3997         x_msg_data,
3998         '_PVT'
3999       );
4000     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4001       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4002       (
4003         l_api_name,
4004         G_PKG_NAME,
4005         'OKC_API.G_RET_STS_UNEXP_ERROR',
4006         x_msg_count,
4007         x_msg_data,
4008         '_PVT'
4009       );
4010     WHEN OTHERS THEN
4011       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4012       (
4013         l_api_name,
4014         G_PKG_NAME,
4015         'OTHERS',
4016         x_msg_count,
4017         x_msg_data,
4018         '_PVT'
4019       );
4020 
4021   END insert_row;
4022 
4023   ------------------------------------
4024   -- insert_row for: OKL_K_LINES_V --
4025   ------------------------------------
4026 
4027   PROCEDURE insert_row(
4028 
4029     p_api_version                  IN NUMBER,
4030     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4031     x_return_status                OUT NOCOPY VARCHAR2,
4032     x_msg_count                    OUT NOCOPY NUMBER,
4033     x_msg_data                     OUT NOCOPY VARCHAR2,
4034     p_klev_rec                     IN klev_rec_type,
4035     x_klev_rec                     OUT NOCOPY klev_rec_type) IS
4036 
4037     l_api_version                 CONSTANT NUMBER := 1;
4038     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_insert_row';
4039     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4040     l_klev_rec                     klev_rec_type;
4041     l_def_klev_rec                 klev_rec_type;
4042     l_kle_rec                      kle_rec_type;
4043     lx_kle_rec                     kle_rec_type;
4044     -------------------------------
4045     -- FUNCTION fill_who_columns --
4046     -------------------------------
4047     FUNCTION fill_who_columns (
4048       p_klev_rec	IN klev_rec_type
4049     ) RETURN klev_rec_type IS
4050       l_klev_rec	klev_rec_type := p_klev_rec;
4051     BEGIN
4052       l_klev_rec.CREATION_DATE := SYSDATE;
4053       l_klev_rec.CREATED_BY := FND_GLOBAL.USER_ID;
4054       l_klev_rec.LAST_UPDATE_DATE := SYSDATE;
4055       l_klev_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
4056       l_klev_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
4057       RETURN(l_klev_rec);
4058     END fill_who_columns;
4059     ----------------------------------------
4060     -- Set_Attributes for: OKL_K_LINES_V --
4061     ----------------------------------------
4062     FUNCTION Set_Attributes (
4063       p_klev_rec IN  klev_rec_type,
4064       x_klev_rec OUT NOCOPY klev_rec_type
4065     ) RETURN VARCHAR2 IS
4066       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4067     BEGIN
4068       x_klev_rec := p_klev_rec;
4069       x_klev_rec.OBJECT_VERSION_NUMBER := 1;
4070       RETURN(l_return_status);
4071     END Set_Attributes;
4072   BEGIN
4073     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4074                                               G_PKG_NAME,
4075                                               p_init_msg_list,
4076                                               l_api_version,
4077                                               p_api_version,
4078                                               '_PVT',
4079                                               x_return_status);
4080 
4081     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4082       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4083     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4084       RAISE OKC_API.G_EXCEPTION_ERROR;
4085     END IF;
4086 
4087     l_klev_rec := null_out_defaults(p_klev_rec);
4088 
4089     -- Set primary key value
4090     -- modified by Miroslav Samoilenko
4091     if ( l_klev_rec.ID is null) then
4092       l_klev_rec.ID := get_seq_id;
4093     end if;
4094 
4095     --- Setting item attributes
4096     l_return_status := Set_Attributes(
4097       l_klev_rec,                        -- IN
4098       l_def_klev_rec);                   -- OUT
4099     --- If any errors happen abort API
4100 
4101     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4102       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4103     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4104       RAISE OKC_API.G_EXCEPTION_ERROR;
4105     END IF;
4106 
4107     l_def_klev_rec := fill_who_columns(l_def_klev_rec);
4108     --- Validate all non-missing attributes (Item Level Validation)
4109     l_return_status := Validate_Attributes(l_def_klev_rec);
4110     --- If any errors happen abort API
4111 
4112     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4113       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4114     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4115       RAISE OKC_API.G_EXCEPTION_ERROR;
4116     END IF;
4117 
4118     l_return_status := Validate_Record(l_def_klev_rec);
4119 
4120     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4121       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4122     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4123       RAISE OKC_API.G_EXCEPTION_ERROR;
4124     END IF;
4125 
4126     --------------------------------------
4127     -- Move VIEW record to "Child" records
4128     --------------------------------------
4129     migrate(l_def_klev_rec, l_kle_rec);
4130     --------------------------------------------
4131     -- Call the INSERT_ROW for each child record
4132     --------------------------------------------
4133     insert_row(
4134       l_api_version,
4135       p_init_msg_list,
4136       x_return_status,
4137       x_msg_count,
4138       x_msg_data,
4139       l_kle_rec,
4140       lx_kle_rec
4141     );
4142 
4143     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4144       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4145     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4146       RAISE OKC_API.G_EXCEPTION_ERROR;
4147     END IF;
4148 
4149     migrate(lx_kle_rec, l_def_klev_rec);
4150     -- Set OUT values
4151     x_klev_rec := l_def_klev_rec;
4152     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4153 
4154   EXCEPTION
4155     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4156       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4157       (
4158         l_api_name,
4159         G_PKG_NAME,
4160         'OKC_API.G_RET_STS_ERROR',
4161         x_msg_count,
4162         x_msg_data,
4163         '_PVT'
4164       );
4165     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4166       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4167       (
4168         l_api_name,
4169         G_PKG_NAME,
4170         'OKC_API.G_RET_STS_UNEXP_ERROR',
4171         x_msg_count,
4172         x_msg_data,
4173         '_PVT'
4174       );
4175     WHEN OTHERS THEN
4176       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4177       (
4178         l_api_name,
4179         G_PKG_NAME,
4180         'OTHERS',
4181         x_msg_count,
4182         x_msg_data,
4183         '_PVT'
4184       );
4185 
4186   END insert_row;
4187 
4188   ----------------------------------------
4189   -- PL/SQL TBL insert_row for: OKL_K_LINES_V --
4190   ----------------------------------------
4191 
4192   PROCEDURE insert_row(
4193 
4194     p_api_version                  IN NUMBER,
4195     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4196     x_return_status                OUT NOCOPY VARCHAR2,
4197     x_msg_count                    OUT NOCOPY NUMBER,
4198     x_msg_data                     OUT NOCOPY VARCHAR2,
4199     p_klev_tbl                     IN klev_tbl_type,
4200     x_klev_tbl                     OUT NOCOPY klev_tbl_type) IS
4201 
4202     l_api_version                 CONSTANT NUMBER := 1;
4203     l_api_name                     CONSTANT VARCHAR2(30) := 'tbl_insert_row';
4204     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4205     i                              NUMBER := 0;
4206   BEGIN
4207     OKC_API.init_msg_list(p_init_msg_list);
4208     -- Make sure PL/SQL table has records in it before passing
4209     IF (p_klev_tbl.COUNT > 0) THEN
4210       i := p_klev_tbl.FIRST;
4211       LOOP
4212         insert_row (
4213           p_api_version                  => p_api_version,
4214           p_init_msg_list                => OKC_API.G_FALSE,
4215           x_return_status                => x_return_status,
4216           x_msg_count                    => x_msg_count,
4217           x_msg_data                     => x_msg_data,
4218           p_klev_rec                     => p_klev_tbl(i),
4219           x_klev_rec                     => x_klev_tbl(i));
4220         EXIT WHEN (i = p_klev_tbl.LAST);
4221         i := p_klev_tbl.NEXT(i);
4222       END LOOP;
4223     END IF;
4224 
4225   EXCEPTION
4226     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4227       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4228       (
4229         l_api_name,
4230         G_PKG_NAME,
4231         'OKC_API.G_RET_STS_ERROR',
4232         x_msg_count,
4233         x_msg_data,
4234         '_PVT'
4235       );
4236     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4237       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4238       (
4239         l_api_name,
4240         G_PKG_NAME,
4241         'OKC_API.G_RET_STS_UNEXP_ERROR',
4242         x_msg_count,
4243         x_msg_data,
4244         '_PVT'
4245       );
4246     WHEN OTHERS THEN
4247       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4248       (
4249         l_api_name,
4250         G_PKG_NAME,
4251         'OTHERS',
4252         x_msg_count,
4253         x_msg_data,
4254         '_PVT'
4255       );
4256 
4257   END insert_row;
4258 
4259 
4260   ---------------------------------------------------------------------------
4261   -- PROCEDURE lock_row
4262   ---------------------------------------------------------------------------
4263 
4264   --------------------------------
4265   -- lock_row for: OKL_K_LINES --
4266   --------------------------------
4267 
4268   PROCEDURE lock_row(
4269 
4270     p_api_version                  IN NUMBER,
4271     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4272     x_return_status                OUT NOCOPY VARCHAR2,
4273     x_msg_count                    OUT NOCOPY NUMBER,
4274     x_msg_data                     OUT NOCOPY VARCHAR2,
4275     p_kle_rec                     IN kle_rec_type) IS
4276 
4277     E_Resource_Busy               EXCEPTION;
4278     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
4279     CURSOR lock_csr (p_kle_rec IN kle_rec_type) IS
4280     SELECT OBJECT_VERSION_NUMBER
4281       FROM OKL_K_LINES
4282      WHERE ID = p_kle_rec.id
4283        AND OBJECT_VERSION_NUMBER = p_kle_rec.object_version_number
4284     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
4285 
4286     CURSOR  lchk_csr (p_kle_rec IN kle_rec_type) IS
4287     SELECT OBJECT_VERSION_NUMBER
4288       FROM OKL_K_LINES
4289     WHERE ID = p_kle_rec.id;
4290     l_api_version                 CONSTANT NUMBER := 1;
4291     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_lock_row';
4292     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4293     l_object_version_number       OKL_K_LINES.OBJECT_VERSION_NUMBER%TYPE;
4294     lc_object_version_number      OKL_K_LINES.OBJECT_VERSION_NUMBER%TYPE;
4295     l_row_notfound                BOOLEAN := FALSE;
4296     lc_row_notfound               BOOLEAN := FALSE;
4297   BEGIN
4298     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4299                                               p_init_msg_list,
4300                                               '_PVT',
4301                                               x_return_status);
4302 
4303     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4304       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4305     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4306       RAISE OKC_API.G_EXCEPTION_ERROR;
4307     END IF;
4308 
4309     BEGIN
4310       OPEN lock_csr(p_kle_rec);
4311       FETCH lock_csr INTO l_object_version_number;
4312       l_row_notfound := lock_csr%NOTFOUND;
4313       CLOSE lock_csr;
4314     EXCEPTION
4315       WHEN E_Resource_Busy THEN
4316         IF (lock_csr%ISOPEN) THEN
4317           CLOSE lock_csr;
4318         END IF;
4319         OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
4320         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
4321     END;
4322 
4323     IF ( l_row_notfound ) THEN
4324       OPEN lchk_csr(p_kle_rec);
4325       FETCH lchk_csr INTO lc_object_version_number;
4326       lc_row_notfound := lchk_csr%NOTFOUND;
4327       CLOSE lchk_csr;
4328     END IF;
4329     IF (lc_row_notfound) THEN
4330       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
4331       RAISE OKC_API.G_EXCEPTION_ERROR;
4332     ELSIF lc_object_version_number > p_kle_rec.object_version_number THEN
4333       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
4334       RAISE OKC_API.G_EXCEPTION_ERROR;
4335     ELSIF lc_object_version_number <> p_kle_rec.object_version_number THEN
4336       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
4337       RAISE OKC_API.G_EXCEPTION_ERROR;
4338     ELSIF lc_object_version_number = -1 THEN
4339       OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
4340       RAISE OKC_API.G_EXCEPTION_ERROR;
4341     END IF;
4342     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4343 
4344   EXCEPTION
4345     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4346       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4347       (
4348         l_api_name,
4349         G_PKG_NAME,
4350         'OKC_API.G_RET_STS_ERROR',
4351         x_msg_count,
4352         x_msg_data,
4353         '_PVT'
4354       );
4355     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4356       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4357       (
4358         l_api_name,
4359         G_PKG_NAME,
4360         'OKC_API.G_RET_STS_UNEXP_ERROR',
4361         x_msg_count,
4362         x_msg_data,
4363         '_PVT'
4364       );
4365     WHEN OTHERS THEN
4366       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4367       (
4368         l_api_name,
4369         G_PKG_NAME,
4370         'OTHERS',
4371         x_msg_count,
4372         x_msg_data,
4373         '_PVT'
4374       );
4375 
4376   END lock_row;
4377 
4378   ----------------------------------
4379   -- lock_row for: OKL_K_LINES_V --
4380   ----------------------------------
4381 
4382   PROCEDURE lock_row(
4383 
4384     p_api_version                  IN NUMBER,
4385     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4386     x_return_status                OUT NOCOPY VARCHAR2,
4387     x_msg_count                    OUT NOCOPY NUMBER,
4388     x_msg_data                     OUT NOCOPY VARCHAR2,
4389     p_klev_rec                     IN klev_rec_type) IS
4390 
4391     l_api_version                 CONSTANT NUMBER := 1;
4392     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_lock_row';
4393     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4394     l_kle_rec                      kle_rec_type;
4395   BEGIN
4396     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4397                                               G_PKG_NAME,
4398                                               p_init_msg_list,
4399                                               l_api_version,
4400                                               p_api_version,
4401                                               '_PVT',
4402                                               x_return_status);
4403 
4404     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4405       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4406     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4407       RAISE OKC_API.G_EXCEPTION_ERROR;
4408     END IF;
4409 
4410     --------------------------------------
4411     -- Move VIEW record to "Child" records
4412     --------------------------------------
4413     migrate(p_klev_rec, l_kle_rec);
4414     --------------------------------------------
4415     -- Call the LOCK_ROW for each child record
4416     --------------------------------------------
4417     lock_row(
4418       l_api_version,
4419       p_init_msg_list,
4420       x_return_status,
4421       x_msg_count,
4422       x_msg_data,
4423       l_kle_rec
4424     );
4425 
4426     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4427       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4428     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4429       RAISE OKC_API.G_EXCEPTION_ERROR;
4430     END IF;
4431 
4432     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4433 
4434   EXCEPTION
4435     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4436       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4437       (
4438         l_api_name,
4439         G_PKG_NAME,
4440         'OKC_API.G_RET_STS_ERROR',
4441         x_msg_count,
4442         x_msg_data,
4443         '_PVT'
4444       );
4445     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4446       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4447       (
4448         l_api_name,
4449         G_PKG_NAME,
4450         'OKC_API.G_RET_STS_UNEXP_ERROR',
4451         x_msg_count,
4452         x_msg_data,
4453         '_PVT'
4454       );
4455     WHEN OTHERS THEN
4456       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4457       (
4458         l_api_name,
4459         G_PKG_NAME,
4460         'OTHERS',
4461         x_msg_count,
4462         x_msg_data,
4463         '_PVT'
4464       );
4465 
4466   END lock_row;
4467   --------------------------------------
4468   -- PL/SQL TBL lock_row for: OKL_K_LINES_V --
4469   --------------------------------------
4470 
4471   PROCEDURE lock_row(
4472 
4473     p_api_version                  IN NUMBER,
4474     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4475     x_return_status                OUT NOCOPY VARCHAR2,
4476     x_msg_count                    OUT NOCOPY NUMBER,
4477     x_msg_data                     OUT NOCOPY VARCHAR2,
4478     p_klev_tbl                     IN klev_tbl_type) IS
4479 
4480     l_api_version                 CONSTANT NUMBER := 1;
4481     l_api_name                     CONSTANT VARCHAR2(30) := 'tbl_lock_row';
4482     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4483     i                              NUMBER := 0;
4484   BEGIN
4485     OKC_API.init_msg_list(p_init_msg_list);
4486     -- Make sure PL/SQL table has records in it before passing
4487     IF (p_klev_tbl.COUNT > 0) THEN
4488       i := p_klev_tbl.FIRST;
4489       LOOP
4490         lock_row (
4491           p_api_version                  => p_api_version,
4492           p_init_msg_list                => OKC_API.G_FALSE,
4493           x_return_status                => x_return_status,
4494           x_msg_count                    => x_msg_count,
4495           x_msg_data                     => x_msg_data,
4496           p_klev_rec                     => p_klev_tbl(i));
4497         EXIT WHEN (i = p_klev_tbl.LAST);
4498         i := p_klev_tbl.NEXT(i);
4499       END LOOP;
4500     END IF;
4501 
4502   EXCEPTION
4503     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4504       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4505       (
4506         l_api_name,
4507         G_PKG_NAME,
4508         'OKC_API.G_RET_STS_ERROR',
4509         x_msg_count,
4510         x_msg_data,
4511         '_PVT'
4512       );
4513     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4514       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4515       (
4516         l_api_name,
4517         G_PKG_NAME,
4518         'OKC_API.G_RET_STS_UNEXP_ERROR',
4519         x_msg_count,
4520         x_msg_data,
4521         '_PVT'
4522       );
4523     WHEN OTHERS THEN
4524       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4525       (
4526         l_api_name,
4527         G_PKG_NAME,
4528         'OTHERS',
4529         x_msg_count,
4530         x_msg_data,
4531         '_PVT'
4532       );
4533 
4534   END lock_row;
4535 
4536 
4537   ---------------------------------------------------------------------------
4538   -- PROCEDURE update_row
4539   ---------------------------------------------------------------------------
4540 
4541   ----------------------------------
4542   -- update_row for: OKL_K_LINES --
4543   ----------------------------------
4544 
4545   PROCEDURE update_row(
4546 
4547     p_api_version                  IN NUMBER,
4548     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
4549     x_return_status                OUT NOCOPY VARCHAR2,
4550     x_msg_count                    OUT NOCOPY NUMBER,
4551     x_msg_data                     OUT NOCOPY VARCHAR2,
4552     p_kle_rec                     IN kle_rec_type,
4553     x_kle_rec                     OUT NOCOPY kle_rec_type) IS
4554 
4555     l_api_version                 CONSTANT NUMBER := 1;
4556     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_update_row';
4557     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4558     l_kle_rec                      kle_rec_type := p_kle_rec;
4559     l_def_kle_rec                  kle_rec_type;
4560     l_row_notfound                 BOOLEAN := TRUE;
4561     l_okl_k_lines_h_rec okl_k_lines_h_rec_type;
4562     lx_okl_k_lines_h_rec okl_k_lines_h_rec_type;
4563     ----------------------------------
4564     -- FUNCTION populate_new_record --
4565     ----------------------------------
4566     FUNCTION populate_new_record (
4567       p_kle_rec	IN kle_rec_type,
4568       x_kle_rec	OUT NOCOPY kle_rec_type
4569     ) RETURN VARCHAR2 IS
4570       l_kle_rec                      kle_rec_type;
4571       l_row_notfound                 BOOLEAN := TRUE;
4572       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4573     BEGIN
4574       x_kle_rec := p_kle_rec;
4575       -- Get current database values
4576       l_kle_rec := get_rec(p_kle_rec, l_row_notfound);
4577       IF (l_row_notfound) THEN
4578         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
4579       END IF;
4580       -- Move the "old" record to the history record:
4581       -- (1) to get the "old" version
4582       -- (2) to avoid 2 hits to the database
4583       migrate(l_kle_rec, l_okl_k_lines_h_rec);
4584 
4585       IF (x_kle_rec.ID = OKC_API.G_MISS_NUM) THEN
4586       x_kle_rec.ID := l_kle_rec.ID;
4587       END IF;
4588 
4589       IF (x_kle_rec.KLE_ID = OKC_API.G_MISS_NUM) THEN
4590       x_kle_rec.KLE_ID := l_kle_rec.KLE_ID;
4591       END IF;
4592 
4593       IF (x_kle_rec.STY_ID = OKC_API.G_MISS_NUM) THEN
4594       x_kle_rec.STY_ID := l_kle_rec.STY_ID;
4595       END IF;
4596 
4597       IF (x_kle_rec.OBJECT_VERSION_NUMBER = OKC_API.G_MISS_NUM) THEN
4598       x_kle_rec.OBJECT_VERSION_NUMBER := l_kle_rec.OBJECT_VERSION_NUMBER;
4599       END IF;
4600 
4601       IF (x_kle_rec.LAO_AMOUNT = OKC_API.G_MISS_NUM) THEN
4602       x_kle_rec.LAO_AMOUNT := l_kle_rec.LAO_AMOUNT;
4603       END IF;
4604 
4605       IF (x_kle_rec.FEE_CHARGE = OKC_API.G_MISS_NUM) THEN
4606       x_kle_rec.FEE_CHARGE := l_kle_rec.FEE_CHARGE;
4607       END IF;
4608 
4609       IF (x_kle_rec.TITLE_DATE = OKC_API.G_MISS_DATE) THEN
4610       x_kle_rec.TITLE_DATE := l_kle_rec.TITLE_DATE;
4611       END IF;
4612 
4613       IF (x_kle_rec.DATE_RESIDUAL_LAST_REVIEW = OKC_API.G_MISS_DATE) THEN
4614       x_kle_rec.DATE_RESIDUAL_LAST_REVIEW := l_kle_rec.DATE_RESIDUAL_LAST_REVIEW;
4615       END IF;
4616 
4617       IF (x_kle_rec.DATE_LAST_REAMORTISATION = OKC_API.G_MISS_DATE) THEN
4618       x_kle_rec.DATE_LAST_REAMORTISATION := l_kle_rec.DATE_LAST_REAMORTISATION;
4619       END IF;
4620 
4621       IF (x_kle_rec.TERMINATION_PURCHASE_AMOUNT = OKC_API.G_MISS_NUM) THEN
4622       x_kle_rec.TERMINATION_PURCHASE_AMOUNT := l_kle_rec.TERMINATION_PURCHASE_AMOUNT;
4623       END IF;
4624 
4625       IF (x_kle_rec.DATE_LAST_CLEANUP = OKC_API.G_MISS_DATE) THEN
4626       x_kle_rec.DATE_LAST_CLEANUP := l_kle_rec.DATE_LAST_CLEANUP;
4627       END IF;
4628 
4629       IF (x_kle_rec.REMARKETED_AMOUNT = OKC_API.G_MISS_NUM) THEN
4630       x_kle_rec.REMARKETED_AMOUNT := l_kle_rec.REMARKETED_AMOUNT;
4631       END IF;
4632 
4633       IF (x_kle_rec.DATE_REMARKETED = OKC_API.G_MISS_DATE) THEN
4634       x_kle_rec.DATE_REMARKETED := l_kle_rec.DATE_REMARKETED;
4635       END IF;
4636 
4637       IF (x_kle_rec.REMARKET_MARGIN = OKC_API.G_MISS_NUM) THEN
4638       x_kle_rec.REMARKET_MARGIN := l_kle_rec.REMARKET_MARGIN;
4639       END IF;
4640 
4641       IF (x_kle_rec.REPURCHASED_AMOUNT = OKC_API.G_MISS_NUM) THEN
4642       x_kle_rec.REPURCHASED_AMOUNT := l_kle_rec.REPURCHASED_AMOUNT;
4643       END IF;
4644 
4645       IF (x_kle_rec.DATE_REPURCHASED = OKC_API.G_MISS_DATE) THEN
4646       x_kle_rec.DATE_REPURCHASED := l_kle_rec.DATE_REPURCHASED;
4647       END IF;
4648 
4649       IF (x_kle_rec.GAIN_LOSS = OKC_API.G_MISS_NUM) THEN
4650       x_kle_rec.GAIN_LOSS := l_kle_rec.GAIN_LOSS;
4651       END IF;
4652 
4653       IF (x_kle_rec.FLOOR_AMOUNT = OKC_API.G_MISS_NUM) THEN
4654       x_kle_rec.FLOOR_AMOUNT := l_kle_rec.FLOOR_AMOUNT;
4655       END IF;
4656 
4657       IF (x_kle_rec.PREVIOUS_CONTRACT = OKC_API.G_MISS_CHAR) THEN
4658       x_kle_rec.PREVIOUS_CONTRACT := l_kle_rec.PREVIOUS_CONTRACT;
4659       END IF;
4660 
4661       IF (x_kle_rec.TRACKED_RESIDUAL = OKC_API.G_MISS_NUM) THEN
4662       x_kle_rec.TRACKED_RESIDUAL := l_kle_rec.TRACKED_RESIDUAL;
4663       END IF;
4664 
4665       IF (x_kle_rec.DATE_TITLE_RECEIVED = OKC_API.G_MISS_DATE) THEN
4666       x_kle_rec.DATE_TITLE_RECEIVED := l_kle_rec.DATE_TITLE_RECEIVED;
4667       END IF;
4668 
4669       IF (x_kle_rec.ESTIMATED_OEC = OKC_API.G_MISS_NUM) THEN
4670       x_kle_rec.ESTIMATED_OEC := l_kle_rec.ESTIMATED_OEC;
4671       END IF;
4672 
4673       IF (x_kle_rec.RESIDUAL_PERCENTAGE = OKC_API.G_MISS_NUM) THEN
4674       x_kle_rec.RESIDUAL_PERCENTAGE := l_kle_rec.RESIDUAL_PERCENTAGE;
4675       END IF;
4676 
4677       IF (x_kle_rec.CAPITAL_REDUCTION = OKC_API.G_MISS_NUM) THEN
4678       x_kle_rec.CAPITAL_REDUCTION := l_kle_rec.CAPITAL_REDUCTION;
4679       END IF;
4680 
4681       IF (x_kle_rec.VENDOR_ADVANCE_PAID = OKC_API.G_MISS_NUM) THEN
4682       x_kle_rec.VENDOR_ADVANCE_PAID := l_kle_rec.VENDOR_ADVANCE_PAID;
4683       END IF;
4684 
4685       IF (x_kle_rec.TRADEIN_AMOUNT = OKC_API.G_MISS_NUM) THEN
4686       x_kle_rec.TRADEIN_AMOUNT := l_kle_rec.TRADEIN_AMOUNT;
4687       END IF;
4688 
4689       IF (x_kle_rec.DELIVERED_DATE = OKC_API.G_MISS_DATE) THEN
4690       x_kle_rec.DELIVERED_DATE := l_kle_rec.DELIVERED_DATE;
4691       END IF;
4692 
4693       IF (x_kle_rec.YEAR_OF_MANUFACTURE = OKC_API.G_MISS_CHAR) THEN
4694       x_kle_rec.YEAR_OF_MANUFACTURE := l_kle_rec.YEAR_OF_MANUFACTURE;
4695       END IF;
4696 
4697       IF (x_kle_rec.INITIAL_DIRECT_COST = OKC_API.G_MISS_NUM) THEN
4698       x_kle_rec.INITIAL_DIRECT_COST := l_kle_rec.INITIAL_DIRECT_COST;
4699       END IF;
4700 
4701       IF (x_kle_rec.OCCUPANCY = OKC_API.G_MISS_NUM) THEN
4702       x_kle_rec.OCCUPANCY := l_kle_rec.OCCUPANCY;
4703       END IF;
4704 
4705       IF (x_kle_rec.DATE_LAST_INSPECTION = OKC_API.G_MISS_DATE) THEN
4706       x_kle_rec.DATE_LAST_INSPECTION := l_kle_rec.DATE_LAST_INSPECTION;
4707       END IF;
4708 
4709       IF (x_kle_rec.DATE_NEXT_INSPECTION_DUE = OKC_API.G_MISS_DATE) THEN
4710       x_kle_rec.DATE_NEXT_INSPECTION_DUE := l_kle_rec.DATE_NEXT_INSPECTION_DUE;
4711       END IF;
4712 
4713       IF (x_kle_rec.WEIGHTED_AVERAGE_LIFE = OKC_API.G_MISS_NUM) THEN
4714       x_kle_rec.WEIGHTED_AVERAGE_LIFE := l_kle_rec.WEIGHTED_AVERAGE_LIFE;
4715       END IF;
4716 
4717       IF (x_kle_rec.BOND_EQUIVALENT_YIELD = OKC_API.G_MISS_NUM) THEN
4718       x_kle_rec.BOND_EQUIVALENT_YIELD := l_kle_rec.BOND_EQUIVALENT_YIELD;
4719       END IF;
4720 
4721       IF (x_kle_rec.REFINANCE_AMOUNT = OKC_API.G_MISS_NUM) THEN
4722       x_kle_rec.REFINANCE_AMOUNT := l_kle_rec.REFINANCE_AMOUNT;
4723       END IF;
4724 
4725       IF (x_kle_rec.YEAR_BUILT = OKC_API.G_MISS_NUM) THEN
4726       x_kle_rec.YEAR_BUILT := l_kle_rec.YEAR_BUILT;
4727       END IF;
4728 
4729       IF (x_kle_rec.COVERAGE_RATIO = OKC_API.G_MISS_NUM) THEN
4730       x_kle_rec.COVERAGE_RATIO := l_kle_rec.COVERAGE_RATIO;
4731       END IF;
4732 
4733       IF (x_kle_rec.GROSS_SQUARE_FOOTAGE = OKC_API.G_MISS_NUM) THEN
4734       x_kle_rec.GROSS_SQUARE_FOOTAGE := l_kle_rec.GROSS_SQUARE_FOOTAGE;
4735       END IF;
4736 
4737       IF (x_kle_rec.NET_RENTABLE = OKC_API.G_MISS_NUM) THEN
4738       x_kle_rec.NET_RENTABLE := l_kle_rec.NET_RENTABLE;
4739       END IF;
4740 
4741       IF (x_kle_rec.DATE_LETTER_ACCEPTANCE = OKC_API.G_MISS_DATE) THEN
4742       x_kle_rec.DATE_LETTER_ACCEPTANCE := l_kle_rec.DATE_LETTER_ACCEPTANCE;
4743       END IF;
4744 
4745       IF (x_kle_rec.DATE_COMMITMENT_EXPIRATION = OKC_API.G_MISS_DATE) THEN
4746       x_kle_rec.DATE_COMMITMENT_EXPIRATION := l_kle_rec.DATE_COMMITMENT_EXPIRATION;
4747       END IF;
4748 
4749       IF (x_kle_rec.DATE_APPRAISAL = OKC_API.G_MISS_DATE) THEN
4750       x_kle_rec.DATE_APPRAISAL := l_kle_rec.DATE_APPRAISAL;
4751       END IF;
4752 
4753       IF (x_kle_rec.APPRAISAL_VALUE = OKC_API.G_MISS_NUM) THEN
4754       x_kle_rec.APPRAISAL_VALUE := l_kle_rec.APPRAISAL_VALUE;
4755       END IF;
4756 
4757       IF (x_kle_rec.RESIDUAL_VALUE = OKC_API.G_MISS_NUM) THEN
4758       x_kle_rec.RESIDUAL_VALUE := l_kle_rec.RESIDUAL_VALUE;
4759       END IF;
4760 
4761       IF (x_kle_rec.PERCENT = OKC_API.G_MISS_NUM) THEN
4762       x_kle_rec.PERCENT := l_kle_rec.PERCENT;
4763       END IF;
4764 
4765       IF (x_kle_rec.COVERAGE = OKC_API.G_MISS_NUM) THEN
4766       x_kle_rec.COVERAGE := l_kle_rec.COVERAGE;
4767       END IF;
4768 
4769       IF (x_kle_rec.LRV_AMOUNT = OKC_API.G_MISS_NUM) THEN
4770       x_kle_rec.LRV_AMOUNT := l_kle_rec.LRV_AMOUNT;
4771       END IF;
4772 
4773       IF (x_kle_rec.AMOUNT = OKC_API.G_MISS_NUM) THEN
4774       x_kle_rec.AMOUNT := l_kle_rec.AMOUNT;
4775       END IF;
4776 
4777       IF (x_kle_rec.LRS_PERCENT = OKC_API.G_MISS_NUM) THEN
4778       x_kle_rec.LRS_PERCENT := l_kle_rec.LRS_PERCENT;
4779       END IF;
4780 
4781       IF (x_kle_rec.EVERGREEN_PERCENT = OKC_API.G_MISS_NUM) THEN
4782       x_kle_rec.EVERGREEN_PERCENT := l_kle_rec.EVERGREEN_PERCENT;
4783       END IF;
4784 
4785       IF (x_kle_rec.PERCENT_STAKE = OKC_API.G_MISS_NUM) THEN
4786       x_kle_rec.PERCENT_STAKE := l_kle_rec.PERCENT_STAKE;
4787       END IF;
4788 
4789       IF (x_kle_rec.AMOUNT_STAKE = OKC_API.G_MISS_NUM) THEN
4790       x_kle_rec.AMOUNT_STAKE := l_kle_rec.AMOUNT_STAKE;
4791       END IF;
4792 
4793       IF (x_kle_rec.DATE_SOLD = OKC_API.G_MISS_DATE) THEN
4794       x_kle_rec.DATE_SOLD := l_kle_rec.DATE_SOLD;
4795       END IF;
4796 
4797       IF (x_kle_rec.STY_ID_FOR = OKC_API.G_MISS_NUM) THEN
4798       x_kle_rec.STY_ID_FOR := l_kle_rec.STY_ID_FOR;
4799       END IF;
4800 
4801       IF (x_kle_rec.ATTRIBUTE_CATEGORY = OKC_API.G_MISS_CHAR) THEN
4802       x_kle_rec.ATTRIBUTE_CATEGORY := l_kle_rec.ATTRIBUTE_CATEGORY;
4803       END IF;
4804 
4805       IF (x_kle_rec.ATTRIBUTE1 = OKC_API.G_MISS_CHAR) THEN
4806       x_kle_rec.ATTRIBUTE1 := l_kle_rec.ATTRIBUTE1;
4807       END IF;
4808 
4809       IF (x_kle_rec.ATTRIBUTE2 = OKC_API.G_MISS_CHAR) THEN
4810       x_kle_rec.ATTRIBUTE2 := l_kle_rec.ATTRIBUTE2;
4811       END IF;
4812 
4813       IF (x_kle_rec.ATTRIBUTE3 = OKC_API.G_MISS_CHAR) THEN
4814       x_kle_rec.ATTRIBUTE3 := l_kle_rec.ATTRIBUTE3;
4815       END IF;
4816 
4817       IF (x_kle_rec.ATTRIBUTE4 = OKC_API.G_MISS_CHAR) THEN
4818       x_kle_rec.ATTRIBUTE4 := l_kle_rec.ATTRIBUTE4;
4819       END IF;
4820 
4821       IF (x_kle_rec.ATTRIBUTE5 = OKC_API.G_MISS_CHAR) THEN
4822       x_kle_rec.ATTRIBUTE5 := l_kle_rec.ATTRIBUTE5;
4823       END IF;
4824 
4825       IF (x_kle_rec.ATTRIBUTE6 = OKC_API.G_MISS_CHAR) THEN
4826       x_kle_rec.ATTRIBUTE6 := l_kle_rec.ATTRIBUTE6;
4827       END IF;
4828 
4829       IF (x_kle_rec.ATTRIBUTE7 = OKC_API.G_MISS_CHAR) THEN
4830       x_kle_rec.ATTRIBUTE7 := l_kle_rec.ATTRIBUTE7;
4831       END IF;
4832 
4833       IF (x_kle_rec.ATTRIBUTE8 = OKC_API.G_MISS_CHAR) THEN
4834       x_kle_rec.ATTRIBUTE8 := l_kle_rec.ATTRIBUTE8;
4835       END IF;
4836 
4837       IF (x_kle_rec.ATTRIBUTE9 = OKC_API.G_MISS_CHAR) THEN
4838       x_kle_rec.ATTRIBUTE9 := l_kle_rec.ATTRIBUTE9;
4839       END IF;
4840 
4841       IF (x_kle_rec.ATTRIBUTE10 = OKC_API.G_MISS_CHAR) THEN
4842       x_kle_rec.ATTRIBUTE10 := l_kle_rec.ATTRIBUTE10;
4843       END IF;
4844 
4845       IF (x_kle_rec.ATTRIBUTE11 = OKC_API.G_MISS_CHAR) THEN
4846       x_kle_rec.ATTRIBUTE11 := l_kle_rec.ATTRIBUTE11;
4847       END IF;
4848 
4849       IF (x_kle_rec.ATTRIBUTE12 = OKC_API.G_MISS_CHAR) THEN
4850       x_kle_rec.ATTRIBUTE12 := l_kle_rec.ATTRIBUTE12;
4851       END IF;
4852 
4853       IF (x_kle_rec.ATTRIBUTE13 = OKC_API.G_MISS_CHAR) THEN
4854       x_kle_rec.ATTRIBUTE13 := l_kle_rec.ATTRIBUTE13;
4855       END IF;
4856 
4857       IF (x_kle_rec.ATTRIBUTE14 = OKC_API.G_MISS_CHAR) THEN
4858       x_kle_rec.ATTRIBUTE14 := l_kle_rec.ATTRIBUTE14;
4859       END IF;
4860 
4861       IF (x_kle_rec.ATTRIBUTE15 = OKC_API.G_MISS_CHAR) THEN
4862       x_kle_rec.ATTRIBUTE15 := l_kle_rec.ATTRIBUTE15;
4863       END IF;
4864 
4865       IF (x_kle_rec.CREATED_BY = OKC_API.G_MISS_NUM) THEN
4866       x_kle_rec.CREATED_BY := l_kle_rec.CREATED_BY;
4867       END IF;
4868 
4869       IF (x_kle_rec.CREATION_DATE = OKC_API.G_MISS_DATE) THEN
4870       x_kle_rec.CREATION_DATE := l_kle_rec.CREATION_DATE;
4871       END IF;
4872 
4873       IF (x_kle_rec.LAST_UPDATED_BY = OKC_API.G_MISS_NUM) THEN
4874       x_kle_rec.LAST_UPDATED_BY := l_kle_rec.LAST_UPDATED_BY;
4875       END IF;
4876 
4877       IF (x_kle_rec.LAST_UPDATE_DATE = OKC_API.G_MISS_DATE) THEN
4878       x_kle_rec.LAST_UPDATE_DATE := l_kle_rec.LAST_UPDATE_DATE;
4879       END IF;
4880 
4881       IF (x_kle_rec.LAST_UPDATE_LOGIN = OKC_API.G_MISS_NUM) THEN
4882       x_kle_rec.LAST_UPDATE_LOGIN := l_kle_rec.LAST_UPDATE_LOGIN;
4883       END IF;
4884 
4885       IF (x_kle_rec.NTY_CODE = OKC_API.G_MISS_CHAR) THEN
4886       x_kle_rec.NTY_CODE := l_kle_rec.NTY_CODE;
4887       END IF;
4888 
4889       IF (x_kle_rec.FCG_CODE = OKC_API.G_MISS_CHAR) THEN
4890       x_kle_rec.FCG_CODE := l_kle_rec.FCG_CODE;
4891       END IF;
4892 
4893       IF (x_kle_rec.PRC_CODE = OKC_API.G_MISS_CHAR) THEN
4894       x_kle_rec.PRC_CODE := l_kle_rec.PRC_CODE;
4895       END IF;
4896 
4897       IF (x_kle_rec.RE_LEASE_YN = OKC_API.G_MISS_CHAR) THEN
4898       x_kle_rec.RE_LEASE_YN := l_kle_rec.RE_LEASE_YN;
4899       END IF;
4900 
4901       IF (x_kle_rec.PRESCRIBED_ASSET_YN = OKC_API.G_MISS_CHAR) THEN
4902       x_kle_rec.PRESCRIBED_ASSET_YN := l_kle_rec.PRESCRIBED_ASSET_YN;
4903       END IF;
4904 
4905       IF (x_kle_rec.CREDIT_TENANT_YN = OKC_API.G_MISS_CHAR) THEN
4906       x_kle_rec.CREDIT_TENANT_YN := l_kle_rec.CREDIT_TENANT_YN;
4907       END IF;
4908 
4909       IF (x_kle_rec.SECURED_DEAL_YN = OKC_API.G_MISS_CHAR) THEN
4910       x_kle_rec.SECURED_DEAL_YN := l_kle_rec.SECURED_DEAL_YN;
4911       END IF;
4912 
4913       IF (x_kle_rec.CLG_ID = OKC_API.G_MISS_NUM) THEN
4914       x_kle_rec.CLG_ID := l_kle_rec.CLG_ID;
4915       END IF;
4916 
4917       IF (x_kle_rec.DATE_FUNDING = OKC_API.G_MISS_DATE) THEN
4918       x_kle_rec.DATE_FUNDING := l_kle_rec.DATE_FUNDING;
4919       END IF;
4920 
4921       IF (x_kle_rec.DATE_FUNDING_REQUIRED = OKC_API.G_MISS_DATE) THEN
4922       x_kle_rec.DATE_FUNDING_REQUIRED := l_kle_rec.DATE_FUNDING_REQUIRED;
4923       END IF;
4924 
4925       IF (x_kle_rec.DATE_ACCEPTED = OKC_API.G_MISS_DATE) THEN
4926       x_kle_rec.DATE_ACCEPTED := l_kle_rec.DATE_ACCEPTED;
4927       END IF;
4928 
4929       IF (x_kle_rec.DATE_DELIVERY_EXPECTED = OKC_API.G_MISS_DATE) THEN
4930       x_kle_rec.DATE_DELIVERY_EXPECTED := l_kle_rec.DATE_DELIVERY_EXPECTED;
4931       END IF;
4932 
4933       IF (x_kle_rec.OEC = OKC_API.G_MISS_NUM) THEN
4934       x_kle_rec.OEC := l_kle_rec.OEC;
4935       END IF;
4936 
4937       IF (x_kle_rec.CAPITAL_AMOUNT = OKC_API.G_MISS_NUM) THEN
4938       x_kle_rec.CAPITAL_AMOUNT := l_kle_rec.CAPITAL_AMOUNT;
4939       END IF;
4940 
4941       IF (x_kle_rec.RESIDUAL_GRNTY_AMOUNT = OKC_API.G_MISS_NUM) THEN
4942       x_kle_rec.RESIDUAL_GRNTY_AMOUNT := l_kle_rec.RESIDUAL_GRNTY_AMOUNT;
4943       END IF;
4944 
4945       IF (x_kle_rec.RESIDUAL_CODE = OKC_API.G_MISS_CHAR) THEN
4946       x_kle_rec.RESIDUAL_CODE := l_kle_rec.RESIDUAL_CODE;
4947       END IF;
4948 
4949       IF (x_kle_rec.RVI_PREMIUM = OKC_API.G_MISS_NUM) THEN
4950       x_kle_rec.RVI_PREMIUM := l_kle_rec.RVI_PREMIUM;
4951       END IF;
4952 
4953       IF (x_kle_rec.CREDIT_NATURE = OKC_API.G_MISS_CHAR) THEN
4954       x_kle_rec.CREDIT_NATURE := l_kle_rec.CREDIT_NATURE;
4955       END IF;
4956 
4957       IF (x_kle_rec.CAPITALIZED_INTEREST = OKC_API.G_MISS_NUM) THEN
4958       x_kle_rec.CAPITALIZED_INTEREST := l_kle_rec.CAPITALIZED_INTEREST;
4959       END IF;
4960 
4961       IF (x_kle_rec.CAPITAL_REDUCTION_PERCENT = OKC_API.G_MISS_NUM) THEN
4962       x_kle_rec.CAPITAL_REDUCTION_PERCENT := l_kle_rec.CAPITAL_REDUCTION_PERCENT;
4963       END IF;
4964 
4965       IF (x_kle_rec.DATE_PAY_INVESTOR_START = OKC_API.G_MISS_DATE) THEN
4966       x_kle_rec.DATE_PAY_INVESTOR_START := l_kle_rec.DATE_PAY_INVESTOR_START;
4967       END IF;
4968 
4969       IF (x_kle_rec.PAY_INVESTOR_FREQUENCY = OKC_API.G_MISS_CHAR) THEN
4970       x_kle_rec.PAY_INVESTOR_FREQUENCY := l_kle_rec.PAY_INVESTOR_FREQUENCY;
4971       END IF;
4972 
4973       IF (x_kle_rec.PAY_INVESTOR_EVENT = OKC_API.G_MISS_CHAR) THEN
4974       x_kle_rec.PAY_INVESTOR_EVENT := l_kle_rec.PAY_INVESTOR_EVENT;
4975       END IF;
4976 
4977       IF (x_kle_rec.PAY_INVESTOR_REMITTANCE_DAYS = OKC_API.G_MISS_NUM) THEN
4978       x_kle_rec.PAY_INVESTOR_REMITTANCE_DAYS := l_kle_rec.PAY_INVESTOR_REMITTANCE_DAYS;
4979       END IF;
4980 
4981       IF (x_kle_rec.FEE_TYPE = OKC_API.G_MISS_CHAR) THEN
4982       x_kle_rec.FEE_TYPE := l_kle_rec.FEE_TYPE;
4983       END IF;
4984 
4985 --Bug# 3143522: 11.5.10
4986 --subsidy
4987    IF (x_kle_rec.SUBSIDY_ID = OKL_API.G_MISS_NUM) THEN
4988        x_kle_rec.SUBSIDY_ID := l_kle_rec.SUBSIDY_ID;
4989    END IF;
4990    --IF (x_kle_rec.SUBSIDIZED_OEC = OKL_API.G_MISS_NUM) THEN
4991        --x_kle_rec.SUBSIDIZED_OEC := l_kle_rec.SUBSIDIZED_OEC;
4992    --END IF;
4993    --IF (x_kle_rec.SUBSIDIZED_CAP_AMOUNT = OKL_API.G_MISS_NUM) THEN
4994        --x_kle_rec.SUBSIDIZED_CAP_AMOUNT := l_kle_rec.SUBSIDIZED_CAP_AMOUNT;
4995    --END IF;
4996    IF (x_kle_rec.SUBSIDY_OVERRIDE_AMOUNT = OKL_API.G_MISS_NUM) THEN
4997        x_kle_rec.SUBSIDY_OVERRIDE_AMOUNT := l_kle_rec.SUBSIDY_OVERRIDE_AMOUNT;
4998    END IF;
4999    --financed fee
5000    IF (x_kle_rec.PRE_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
5001        x_kle_rec.PRE_TAX_YIELD := l_kle_rec.PRE_TAX_YIELD;
5002    END IF;
5003    IF (x_kle_rec.AFTER_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
5004        x_kle_rec.AFTER_TAX_YIELD := l_kle_rec.AFTER_TAX_YIELD;
5005    END IF;
5006    IF (x_kle_rec.IMPLICIT_INTEREST_RATE = OKL_API.G_MISS_NUM) THEN
5007        x_kle_rec.IMPLICIT_INTEREST_RATE := l_kle_rec.IMPLICIT_INTEREST_RATE;
5008    END IF;
5009    IF (x_kle_rec.IMPLICIT_NON_IDC_INTEREST_RATE = OKL_API.G_MISS_NUM) THEN
5010        x_kle_rec.IMPLICIT_NON_IDC_INTEREST_RATE := l_kle_rec.IMPLICIT_NON_IDC_INTEREST_RATE;
5011    END IF;
5012    IF (x_kle_rec.PRE_TAX_IRR = OKL_API.G_MISS_NUM) THEN
5013        x_kle_rec.PRE_TAX_IRR := l_kle_rec.PRE_TAX_IRR;
5014    END IF;
5015    IF (x_kle_rec.AFTER_TAX_IRR = OKL_API.G_MISS_NUM) THEN
5016        x_kle_rec.AFTER_TAX_IRR := l_kle_rec.AFTER_TAX_IRR;
5017    END IF;
5018 --quote
5019    IF (x_kle_rec.SUB_PRE_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
5020        x_kle_rec.SUB_PRE_TAX_YIELD := l_kle_rec.SUB_PRE_TAX_YIELD;
5021    END IF;
5022    IF (x_kle_rec.SUB_AFTER_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
5023        x_kle_rec.SUB_AFTER_TAX_YIELD := l_kle_rec.SUB_AFTER_TAX_YIELD;
5024    END IF;
5025    IF (x_kle_rec.SUB_IMPL_INTEREST_RATE = OKL_API.G_MISS_NUM) THEN
5026        x_kle_rec.SUB_IMPL_INTEREST_RATE := l_kle_rec.SUB_IMPL_INTEREST_RATE;
5027    END IF;
5028    IF (x_kle_rec.SUB_IMPL_NON_IDC_INT_RATE = OKL_API.G_MISS_NUM) THEN
5029        x_kle_rec.SUB_IMPL_NON_IDC_INT_RATE := l_kle_rec.SUB_IMPL_NON_IDC_INT_RATE;
5030    END IF;
5031    IF (x_kle_rec.SUB_PRE_TAX_IRR = OKL_API.G_MISS_NUM) THEN
5032        x_kle_rec.SUB_PRE_TAX_IRR := l_kle_rec.SUB_PRE_TAX_IRR;
5033    END IF;
5034    IF (x_kle_rec.SUB_AFTER_TAX_IRR = OKL_API.G_MISS_NUM) THEN
5035        x_kle_rec.SUB_AFTER_TAX_IRR := l_kle_rec.SUB_AFTER_TAX_IRR;
5036    END IF;
5037 --Bug# 2994971
5038    IF (x_kle_rec.ITEM_INSURANCE_CATEGORY = OKL_API.G_MISS_NUM) THEN
5039        x_kle_rec.ITEM_INSURANCE_CATEGORY := l_kle_rec.ITEM_INSURANCE_CATEGORY;
5040    END IF;
5041 --Bug# 3973640 :11.5.10+
5042    IF (x_kle_rec.QTE_ID = OKL_API.G_MISS_NUM) THEN
5043        x_kle_rec.QTE_ID := l_kle_rec.QTE_ID;
5044    END IF;
5045    IF (x_kle_rec.FUNDING_DATE = OKL_API.G_MISS_DATE) THEN
5046        x_kle_rec.FUNDING_DATE := l_kle_rec.FUNDING_DATE;
5047    END IF;
5048    IF (x_kle_rec.STREAM_TYPE_SUBCLASS = OKL_API.G_MISS_CHAR) THEN
5049        x_kle_rec.STREAM_TYPE_SUBCLASS := l_kle_rec.STREAM_TYPE_SUBCLASS;
5050    END IF;
5051 
5052 --Bug# 4419339  OKLH
5053    IF (x_kle_rec.DATE_FUNDING_EXPECTED = OKL_API.G_MISS_DATE) THEN
5054        x_kle_rec.DATE_FUNDING_EXPECTED := l_kle_rec.DATE_FUNDING_EXPECTED;
5055    END IF;
5056 
5057    IF (x_kle_rec.MANUFACTURER_NAME = OKL_API.G_MISS_CHAR) THEN
5058        x_kle_rec.MANUFACTURER_NAME := l_kle_rec.MANUFACTURER_NAME;
5059    END IF;
5060 
5061    IF (x_kle_rec.MODEL_NUMBER = OKL_API.G_MISS_CHAR) THEN
5062        x_kle_rec.MODEL_NUMBER := l_kle_rec.MODEL_NUMBER;
5063    END IF;
5064 
5065    IF (x_kle_rec.DOWN_PAYMENT_RECEIVER_CODE = OKL_API.G_MISS_CHAR) THEN
5066        x_kle_rec.DOWN_PAYMENT_RECEIVER_CODE := l_kle_rec.DOWN_PAYMENT_RECEIVER_CODE;
5067    END IF;
5068 
5069    IF (x_kle_rec.CAPITALIZE_DOWN_PAYMENT_YN = OKL_API.G_MISS_CHAR) THEN
5070        x_kle_rec.CAPITALIZE_DOWN_PAYMENT_YN := l_kle_rec.CAPITALIZE_DOWN_PAYMENT_YN;
5071    END IF;
5072 
5073    IF (x_kle_rec.FEE_PURPOSE_CODE = OKL_API.G_MISS_CHAR) THEN
5074        x_kle_rec.FEE_PURPOSE_CODE := l_kle_rec.FEE_PURPOSE_CODE;
5075    END IF;
5076 
5077    IF (x_kle_rec.TERMINATION_VALUE = OKL_API.G_MISS_NUM) THEN
5078        x_kle_rec.TERMINATION_VALUE := l_kle_rec.TERMINATION_VALUE;
5079    END IF;
5080 
5081    --Bug# 4631549
5082    IF (x_kle_rec.EXPECTED_ASSET_COST = OKL_API.G_MISS_NUM) THEN
5083        x_kle_rec.EXPECTED_ASSET_COST := l_kle_rec.EXPECTED_ASSET_COST;
5084    END IF;
5085 
5086    IF (x_kle_rec.ORIG_CONTRACT_LINE_ID = OKL_API.G_MISS_NUM) THEN
5087        x_kle_rec.ORIG_CONTRACT_LINE_ID := l_kle_rec.ORIG_CONTRACT_LINE_ID;
5088    END IF;
5089 
5090    --Added by JJUNEJA
5091    IF (x_kle_rec.ORIGINATION_INCOME = OKL_API.G_MISS_NUM) THEN
5092        x_kle_rec.ORIGINATION_INCOME := l_kle_rec.ORIGINATION_INCOME;
5093    END IF;
5094    --End of addition by JJUNEJA
5095 
5096    --Bug# 16344245
5097    IF (x_kle_rec.AMOUNT_BALANCE_LEGACY = OKL_API.G_MISS_NUM) THEN
5098        x_kle_rec.AMOUNT_BALANCE_LEGACY := l_kle_rec.AMOUNT_BALANCE_LEGACY;
5099    END IF;
5100 
5101    IF (x_kle_rec.DT_EFFECTIVE_BALANCE_LEGACY = OKL_API.G_MISS_DATE) THEN
5102        x_kle_rec.DT_EFFECTIVE_BALANCE_LEGACY := l_kle_rec.DT_EFFECTIVE_BALANCE_LEGACY;
5103    END IF;
5104 
5105       RETURN(l_return_status);
5106     END populate_new_record;
5107     --------------------------------------
5108     -- Set_Attributes for: OKL_K_LINES --
5109     --------------------------------------
5110     FUNCTION Set_Attributes (
5111       p_kle_rec IN  kle_rec_type,
5112       x_kle_rec OUT NOCOPY kle_rec_type
5113     ) RETURN VARCHAR2 IS
5114       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5115     BEGIN
5116       x_kle_rec := p_kle_rec;
5117        --Added by jjuneja
5118     --in case the Fee_type is income then setting origination income to 0 if it is null
5119       IF(x_kle_rec.FEE_TYPE = 'INCOME') THEN
5120         x_kle_rec.ORIGINATION_INCOME := NVL(x_kle_rec.ORIGINATION_INCOME,0);
5121       END IF;
5122 
5123      --End of addition by jjuneja
5124       RETURN(l_return_status);
5125     END Set_Attributes;
5126   BEGIN
5127     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5128                                               p_init_msg_list,
5129                                               '_PVT',
5130                                               x_return_status);
5131 
5132     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5133       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5134     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5135       RAISE OKC_API.G_EXCEPTION_ERROR;
5136     END IF;
5137 
5138     --- Setting item attributes
5139     l_return_status := Set_Attributes(
5140       p_kle_rec,                         -- IN
5141       l_kle_rec);                        -- OUT
5142     --- If any errors happen abort API
5143 
5144     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5145       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5146     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5147       RAISE OKC_API.G_EXCEPTION_ERROR;
5148     END IF;
5149 
5150     l_return_status := populate_new_record(l_kle_rec, l_def_kle_rec);
5151 
5152     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5153       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5154     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5155       RAISE OKC_API.G_EXCEPTION_ERROR;
5156     END IF;
5157 
5158     UPDATE  OKL_K_LINES
5159     SET
5160     ID = l_def_kle_rec.ID,
5161         KLE_ID = l_def_kle_rec.KLE_ID,
5162         STY_ID = l_def_kle_rec.STY_ID,
5163         OBJECT_VERSION_NUMBER = l_def_kle_rec.OBJECT_VERSION_NUMBER,
5164         LAO_AMOUNT = l_def_kle_rec.LAO_AMOUNT,
5165         FEE_CHARGE = l_def_kle_rec.FEE_CHARGE,
5166         TITLE_DATE = l_def_kle_rec.TITLE_DATE,
5167         DATE_RESIDUAL_LAST_REVIEW = l_def_kle_rec.DATE_RESIDUAL_LAST_REVIEW,
5168         DATE_LAST_REAMORTISATION = l_def_kle_rec.DATE_LAST_REAMORTISATION,
5169         TERMINATION_PURCHASE_AMOUNT = l_def_kle_rec.TERMINATION_PURCHASE_AMOUNT,
5170         DATE_LAST_CLEANUP = l_def_kle_rec.DATE_LAST_CLEANUP,
5171         REMARKETED_AMOUNT = l_def_kle_rec.REMARKETED_AMOUNT,
5172         DATE_REMARKETED = l_def_kle_rec.DATE_REMARKETED,
5173         REMARKET_MARGIN = l_def_kle_rec.REMARKET_MARGIN,
5174         REPURCHASED_AMOUNT = l_def_kle_rec.REPURCHASED_AMOUNT,
5175         DATE_REPURCHASED = l_def_kle_rec.DATE_REPURCHASED,
5176         GAIN_LOSS = l_def_kle_rec.GAIN_LOSS,
5177         FLOOR_AMOUNT = l_def_kle_rec.FLOOR_AMOUNT,
5178         PREVIOUS_CONTRACT = l_def_kle_rec.PREVIOUS_CONTRACT,
5179         TRACKED_RESIDUAL = l_def_kle_rec.TRACKED_RESIDUAL,
5180         DATE_TITLE_RECEIVED = l_def_kle_rec.DATE_TITLE_RECEIVED,
5181         ESTIMATED_OEC = l_def_kle_rec.ESTIMATED_OEC,
5182         RESIDUAL_PERCENTAGE = l_def_kle_rec.RESIDUAL_PERCENTAGE,
5183         CAPITAL_REDUCTION = l_def_kle_rec.CAPITAL_REDUCTION,
5184         VENDOR_ADVANCE_PAID = l_def_kle_rec.VENDOR_ADVANCE_PAID,
5185         TRADEIN_AMOUNT = l_def_kle_rec.TRADEIN_AMOUNT,
5186         DELIVERED_DATE = l_def_kle_rec.DELIVERED_DATE,
5187         YEAR_OF_MANUFACTURE = l_def_kle_rec.YEAR_OF_MANUFACTURE,
5188         INITIAL_DIRECT_COST = l_def_kle_rec.INITIAL_DIRECT_COST,
5189         OCCUPANCY = l_def_kle_rec.OCCUPANCY,
5190         DATE_LAST_INSPECTION = l_def_kle_rec.DATE_LAST_INSPECTION,
5191         DATE_NEXT_INSPECTION_DUE = l_def_kle_rec.DATE_NEXT_INSPECTION_DUE,
5192         WEIGHTED_AVERAGE_LIFE = l_def_kle_rec.WEIGHTED_AVERAGE_LIFE,
5193         BOND_EQUIVALENT_YIELD = l_def_kle_rec.BOND_EQUIVALENT_YIELD,
5194         REFINANCE_AMOUNT = l_def_kle_rec.REFINANCE_AMOUNT,
5195         YEAR_BUILT = l_def_kle_rec.YEAR_BUILT,
5196         COVERAGE_RATIO = l_def_kle_rec.COVERAGE_RATIO,
5197         GROSS_SQUARE_FOOTAGE = l_def_kle_rec.GROSS_SQUARE_FOOTAGE,
5198         NET_RENTABLE = l_def_kle_rec.NET_RENTABLE,
5199         DATE_LETTER_ACCEPTANCE = l_def_kle_rec.DATE_LETTER_ACCEPTANCE,
5200         DATE_COMMITMENT_EXPIRATION = l_def_kle_rec.DATE_COMMITMENT_EXPIRATION,
5201         DATE_APPRAISAL = l_def_kle_rec.DATE_APPRAISAL,
5202         APPRAISAL_VALUE = l_def_kle_rec.APPRAISAL_VALUE,
5203         RESIDUAL_VALUE = l_def_kle_rec.RESIDUAL_VALUE,
5204         PERCENT = l_def_kle_rec.PERCENT,
5205         COVERAGE = l_def_kle_rec.COVERAGE,
5206         LRV_AMOUNT = l_def_kle_rec.LRV_AMOUNT,
5207         AMOUNT = l_def_kle_rec.AMOUNT,
5208         LRS_PERCENT = l_def_kle_rec.LRS_PERCENT,
5209         EVERGREEN_PERCENT = l_def_kle_rec.EVERGREEN_PERCENT,
5210         PERCENT_STAKE = l_def_kle_rec.PERCENT_STAKE,
5211         AMOUNT_STAKE = l_def_kle_rec.AMOUNT_STAKE,
5212         DATE_SOLD = l_def_kle_rec.DATE_SOLD,
5213         STY_ID_FOR = l_def_kle_rec.STY_ID_FOR,
5214         ATTRIBUTE_CATEGORY = l_def_kle_rec.ATTRIBUTE_CATEGORY,
5215         ATTRIBUTE1 = l_def_kle_rec.ATTRIBUTE1,
5216         ATTRIBUTE2 = l_def_kle_rec.ATTRIBUTE2,
5217         ATTRIBUTE3 = l_def_kle_rec.ATTRIBUTE3,
5218         ATTRIBUTE4 = l_def_kle_rec.ATTRIBUTE4,
5219         ATTRIBUTE5 = l_def_kle_rec.ATTRIBUTE5,
5220         ATTRIBUTE6 = l_def_kle_rec.ATTRIBUTE6,
5221         ATTRIBUTE7 = l_def_kle_rec.ATTRIBUTE7,
5222         ATTRIBUTE8 = l_def_kle_rec.ATTRIBUTE8,
5223         ATTRIBUTE9 = l_def_kle_rec.ATTRIBUTE9,
5224         ATTRIBUTE10 = l_def_kle_rec.ATTRIBUTE10,
5225         ATTRIBUTE11 = l_def_kle_rec.ATTRIBUTE11,
5226         ATTRIBUTE12 = l_def_kle_rec.ATTRIBUTE12,
5227         ATTRIBUTE13 = l_def_kle_rec.ATTRIBUTE13,
5228         ATTRIBUTE14 = l_def_kle_rec.ATTRIBUTE14,
5229         ATTRIBUTE15 = l_def_kle_rec.ATTRIBUTE15,
5230         CREATED_BY = l_def_kle_rec.CREATED_BY,
5231         CREATION_DATE = l_def_kle_rec.CREATION_DATE,
5232         LAST_UPDATED_BY = l_def_kle_rec.LAST_UPDATED_BY,
5233         LAST_UPDATE_DATE = l_def_kle_rec.LAST_UPDATE_DATE,
5234         LAST_UPDATE_LOGIN = l_def_kle_rec.LAST_UPDATE_LOGIN,
5235         NTY_CODE = l_def_kle_rec.NTY_CODE,
5236         FCG_CODE = l_def_kle_rec.FCG_CODE,
5237         PRC_CODE = l_def_kle_rec.PRC_CODE,
5238         RE_LEASE_YN = l_def_kle_rec.RE_LEASE_YN,
5239         PRESCRIBED_ASSET_YN = l_def_kle_rec.PRESCRIBED_ASSET_YN,
5240         CREDIT_TENANT_YN = l_def_kle_rec.CREDIT_TENANT_YN,
5241         SECURED_DEAL_YN = l_def_kle_rec.SECURED_DEAL_YN,
5242         CLG_ID = l_def_kle_rec.CLG_ID,
5243         DATE_FUNDING = l_def_kle_rec.DATE_FUNDING,
5244         DATE_FUNDING_REQUIRED = l_def_kle_rec.DATE_FUNDING_REQUIRED,
5245         DATE_ACCEPTED = l_def_kle_rec.DATE_ACCEPTED,
5246         DATE_DELIVERY_EXPECTED = l_def_kle_rec.DATE_DELIVERY_EXPECTED,
5247         OEC = l_def_kle_rec.OEC,
5248         CAPITAL_AMOUNT = l_def_kle_rec.CAPITAL_AMOUNT,
5249         RESIDUAL_GRNTY_AMOUNT = l_def_kle_rec.RESIDUAL_GRNTY_AMOUNT,
5250         RESIDUAL_CODE = l_def_kle_rec.RESIDUAL_CODE,
5251         RVI_PREMIUM = l_def_kle_rec.RVI_PREMIUM,
5252         CREDIT_NATURE = l_def_kle_rec.CREDIT_NATURE,
5253         CAPITALIZED_INTEREST = l_def_kle_rec.CAPITALIZED_INTEREST,
5254         CAPITAL_REDUCTION_PERCENT = l_def_kle_rec.CAPITAL_REDUCTION_PERCENT,
5255 --Bug# 2697681 11.5.9
5256         DATE_PAY_INVESTOR_START      = l_def_kle_rec.DATE_PAY_INVESTOR_START,
5257         PAY_INVESTOR_FREQUENCY       = l_def_kle_rec.PAY_INVESTOR_FREQUENCY,
5258         PAY_INVESTOR_EVENT           = l_def_kle_rec.PAY_INVESTOR_EVENT,
5259         PAY_INVESTOR_REMITTANCE_DAYS = l_def_kle_rec.PAY_INVESTOR_REMITTANCE_DAYS,
5260 --financed fees
5261         FEE_TYPE                     = l_def_kle_rec.FEE_TYPE,
5262 --Bug# 3143522 : 11.5.10
5263    --subsidy
5264    SUBSIDY_ID = l_def_kle_rec.SUBSIDY_ID,
5265    --SUBSIDIZED_OEC = l_def_kle_rec.SUBSIDIZED_OEC,
5266    --SUBSIDIZED_CAP_AMOUNT = l_def_kle_rec.SUBSIDIZED_CAP_AMOUNT,
5267    SUBSIDY_OVERRIDE_AMOUNT = l_def_kle_rec.SUBSIDY_OVERRIDE_AMOUNT,
5268    --financed fee
5269    PRE_TAX_YIELD = l_def_kle_rec.PRE_TAX_YIELD,
5270    AFTER_TAX_YIELD = l_def_kle_rec.AFTER_TAX_YIELD,
5271    IMPLICIT_INTEREST_RATE = l_def_kle_rec.IMPLICIT_INTEREST_RATE,
5272    IMPLICIT_NON_IDC_INTEREST_RATE = l_def_kle_rec.IMPLICIT_NON_IDC_INTEREST_RATE,
5273    PRE_TAX_IRR = l_def_kle_rec.PRE_TAX_IRR,
5274    AFTER_TAX_IRR = l_def_kle_rec.AFTER_TAX_IRR,
5275 --quote
5276    SUB_PRE_TAX_YIELD = l_def_kle_rec.SUB_PRE_TAX_YIELD,
5277    SUB_AFTER_TAX_YIELD = l_def_kle_rec.SUB_AFTER_TAX_YIELD,
5278    SUB_IMPL_INTEREST_RATE = l_def_kle_rec.SUB_IMPL_INTEREST_RATE,
5279    SUB_IMPL_NON_IDC_INT_RATE = l_def_kle_rec.SUB_IMPL_NON_IDC_INT_RATE,
5280    SUB_PRE_TAX_IRR = l_def_kle_rec.SUB_PRE_TAX_IRR,
5281    SUB_AFTER_TAX_IRR = l_def_kle_rec.SUB_AFTER_TAX_IRR,
5282 --Bug# 2994971
5283    ITEM_INSURANCE_CATEGORY = l_def_kle_rec.ITEM_INSURANCE_CATEGORY,
5284 --Bug# 3973640 :11.5.10+
5285    QTE_ID = l_def_kle_rec.QTE_ID,
5286    FUNDING_DATE = l_def_kle_rec.FUNDING_DATE,
5287    STREAM_TYPE_SUBCLASS = l_def_kle_rec.STREAM_TYPE_SUBCLASS,
5288 --Bug# 4419339  OKLH
5289    DATE_FUNDING_EXPECTED = l_def_kle_rec.DATE_FUNDING_EXPECTED,
5290    MANUFACTURER_NAME = l_def_kle_rec.MANUFACTURER_NAME,
5291    MODEL_NUMBER = l_def_kle_rec.MODEL_NUMBER,
5292    DOWN_PAYMENT_RECEIVER_CODE = l_def_kle_rec.DOWN_PAYMENT_RECEIVER_CODE,
5293    CAPITALIZE_DOWN_PAYMENT_YN = l_def_kle_rec.CAPITALIZE_DOWN_PAYMENT_YN,
5294    FEE_PURPOSE_CODE = l_def_kle_rec.FEE_PURPOSE_CODE,
5295    TERMINATION_VALUE = l_def_kle_rec.TERMINATION_VALUE,
5296 --Bug# 4631549
5297    EXPECTED_ASSET_COST = l_def_kle_rec.EXPECTED_ASSET_COST,
5298    ORIG_CONTRACT_LINE_ID = l_def_kle_rec.ORIG_CONTRACT_LINE_ID,
5299       --Added by JJUNEJA
5300    ORIGINATION_INCOME = l_def_kle_rec.ORIGINATION_INCOME,
5301    --End of addition by JJUNEJA
5302 --Bug# 16344245
5303    AMOUNT_BALANCE_LEGACY = l_def_kle_rec.AMOUNT_BALANCE_LEGACY,
5304    DT_EFFECTIVE_BALANCE_LEGACY = l_def_kle_rec.DT_EFFECTIVE_BALANCE_LEGACY
5305 
5306     WHERE ID = l_def_kle_rec.id;
5307 
5308     -- Insert into History table
5309 /*
5310     insert_row(
5311       l_api_version,
5312       p_init_msg_list,
5313       x_return_status,
5314       x_msg_count,
5315       x_msg_data,
5316       l_okl_k_lines_h_rec,
5317       lx_okl_k_lines_h_rec
5318     );
5319 
5320     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5321       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5322     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
5323       RAISE OKC_API.G_EXCEPTION_ERROR;
5324     END IF;
5325 
5326 */
5327     x_kle_rec := l_def_kle_rec;
5328     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5329 
5330   EXCEPTION
5331     WHEN OKC_API.G_EXCEPTION_ERROR THEN
5332       x_return_status := OKC_API.HANDLE_EXCEPTIONS
5333       (
5334         l_api_name,
5335         G_PKG_NAME,
5336         'OKC_API.G_RET_STS_ERROR',
5337         x_msg_count,
5338         x_msg_data,
5339         '_PVT'
5340       );
5341     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5342       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5343       (
5344         l_api_name,
5345         G_PKG_NAME,
5346         'OKC_API.G_RET_STS_UNEXP_ERROR',
5347         x_msg_count,
5348         x_msg_data,
5349         '_PVT'
5350       );
5351     WHEN OTHERS THEN
5352       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5353       (
5354         l_api_name,
5355         G_PKG_NAME,
5356         'OTHERS',
5357         x_msg_count,
5358         x_msg_data,
5359         '_PVT'
5360       );
5361 
5362   END update_row;
5363 
5364   ------------------------------------
5365   -- update_row for: OKL_K_LINES_V --
5366   ------------------------------------
5367 
5368   PROCEDURE update_row(
5369 
5370     p_api_version                  IN NUMBER,
5371     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
5372     x_return_status                OUT NOCOPY VARCHAR2,
5373     x_msg_count                    OUT NOCOPY NUMBER,
5374     x_msg_data                     OUT NOCOPY VARCHAR2,
5375     p_klev_rec                     IN klev_rec_type,
5376     x_klev_rec                     OUT NOCOPY klev_rec_type) IS
5377 
5378     l_api_version                 CONSTANT NUMBER := 1;
5379     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_update_row';
5380     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5381     l_klev_rec                     klev_rec_type := p_klev_rec;
5382     l_def_klev_rec                 klev_rec_type;
5383     l_kle_rec kle_rec_type;
5384     lx_kle_rec kle_rec_type;
5385     -------------------------------
5386     -- FUNCTION fill_who_columns --
5387     -------------------------------
5388     FUNCTION fill_who_columns (
5389       p_klev_rec	IN klev_rec_type
5390     ) RETURN klev_rec_type IS
5391       l_klev_rec	klev_rec_type := p_klev_rec;
5392     BEGIN
5393       l_klev_rec.LAST_UPDATE_DATE := SYSDATE;
5394       l_klev_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
5395       l_klev_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
5396       RETURN(l_klev_rec);
5397     END fill_who_columns;
5398     ----------------------------------
5399     -- FUNCTION populate_new_record --
5400     ----------------------------------
5401     FUNCTION populate_new_record (
5402       p_klev_rec	IN klev_rec_type,
5403       x_klev_rec	OUT NOCOPY klev_rec_type
5404     ) RETURN VARCHAR2 IS
5405       l_klev_rec                      klev_rec_type;
5406       l_row_notfound                 BOOLEAN := TRUE;
5407       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5408     BEGIN
5409       x_klev_rec := p_klev_rec;
5410       -- Get current database values
5411       l_klev_rec := get_rec(p_klev_rec, l_row_notfound);
5412       IF (l_row_notfound) THEN
5413         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
5414       END IF;
5415 
5416 
5417       IF (x_klev_rec.ID = OKC_API.G_MISS_NUM) THEN
5418       x_klev_rec.ID := l_klev_rec.ID;
5419       END IF;
5420 
5421       IF (x_klev_rec.OBJECT_VERSION_NUMBER = OKC_API.G_MISS_NUM) THEN
5422       x_klev_rec.OBJECT_VERSION_NUMBER := l_klev_rec.OBJECT_VERSION_NUMBER;
5423       END IF;
5424 
5425       IF (x_klev_rec.KLE_ID = OKC_API.G_MISS_NUM) THEN
5426       x_klev_rec.KLE_ID := l_klev_rec.KLE_ID;
5427       END IF;
5428 
5429       IF (x_klev_rec.STY_ID = OKC_API.G_MISS_NUM) THEN
5430       x_klev_rec.STY_ID := l_klev_rec.STY_ID;
5431       END IF;
5432 
5433       IF (x_klev_rec.PRC_CODE = OKC_API.G_MISS_CHAR) THEN
5434       x_klev_rec.PRC_CODE := l_klev_rec.PRC_CODE;
5435       END IF;
5436 
5437       IF (x_klev_rec.FCG_CODE = OKC_API.G_MISS_CHAR) THEN
5438       x_klev_rec.FCG_CODE := l_klev_rec.FCG_CODE;
5439       END IF;
5440 
5441       IF (x_klev_rec.NTY_CODE = OKC_API.G_MISS_CHAR) THEN
5442       x_klev_rec.NTY_CODE := l_klev_rec.NTY_CODE;
5443       END IF;
5444 
5445       IF (x_klev_rec.ESTIMATED_OEC = OKC_API.G_MISS_NUM) THEN
5446       x_klev_rec.ESTIMATED_OEC := l_klev_rec.ESTIMATED_OEC;
5447       END IF;
5448 
5449       IF (x_klev_rec.LAO_AMOUNT = OKC_API.G_MISS_NUM) THEN
5450       x_klev_rec.LAO_AMOUNT := l_klev_rec.LAO_AMOUNT;
5451       END IF;
5452 
5453       IF (x_klev_rec.TITLE_DATE = OKC_API.G_MISS_DATE) THEN
5454       x_klev_rec.TITLE_DATE := l_klev_rec.TITLE_DATE;
5455       END IF;
5456 
5457       IF (x_klev_rec.FEE_CHARGE = OKC_API.G_MISS_NUM) THEN
5458       x_klev_rec.FEE_CHARGE := l_klev_rec.FEE_CHARGE;
5459       END IF;
5460 
5461       IF (x_klev_rec.LRS_PERCENT = OKC_API.G_MISS_NUM) THEN
5462       x_klev_rec.LRS_PERCENT := l_klev_rec.LRS_PERCENT;
5463       END IF;
5464 
5465       IF (x_klev_rec.INITIAL_DIRECT_COST = OKC_API.G_MISS_NUM) THEN
5466       x_klev_rec.INITIAL_DIRECT_COST := l_klev_rec.INITIAL_DIRECT_COST;
5467       END IF;
5468 
5469       IF (x_klev_rec.PERCENT_STAKE = OKC_API.G_MISS_NUM) THEN
5470       x_klev_rec.PERCENT_STAKE := l_klev_rec.PERCENT_STAKE;
5471       END IF;
5472 
5473       IF (x_klev_rec.PERCENT = OKC_API.G_MISS_NUM) THEN
5474       x_klev_rec.PERCENT := l_klev_rec.PERCENT;
5475       END IF;
5476 
5477       IF (x_klev_rec.EVERGREEN_PERCENT = OKC_API.G_MISS_NUM) THEN
5478       x_klev_rec.EVERGREEN_PERCENT := l_klev_rec.EVERGREEN_PERCENT;
5479       END IF;
5480 
5481       IF (x_klev_rec.AMOUNT_STAKE = OKC_API.G_MISS_NUM) THEN
5482       x_klev_rec.AMOUNT_STAKE := l_klev_rec.AMOUNT_STAKE;
5483       END IF;
5484 
5485       IF (x_klev_rec.OCCUPANCY = OKC_API.G_MISS_NUM) THEN
5486       x_klev_rec.OCCUPANCY := l_klev_rec.OCCUPANCY;
5487       END IF;
5488 
5489       IF (x_klev_rec.COVERAGE = OKC_API.G_MISS_NUM) THEN
5490       x_klev_rec.COVERAGE := l_klev_rec.COVERAGE;
5491       END IF;
5492 
5493       IF (x_klev_rec.RESIDUAL_PERCENTAGE = OKC_API.G_MISS_NUM) THEN
5494       x_klev_rec.RESIDUAL_PERCENTAGE := l_klev_rec.RESIDUAL_PERCENTAGE;
5495       END IF;
5496 
5497       IF (x_klev_rec.DATE_LAST_INSPECTION = OKC_API.G_MISS_DATE) THEN
5498       x_klev_rec.DATE_LAST_INSPECTION := l_klev_rec.DATE_LAST_INSPECTION;
5499       END IF;
5500 
5501       IF (x_klev_rec.DATE_SOLD = OKC_API.G_MISS_DATE) THEN
5502       x_klev_rec.DATE_SOLD := l_klev_rec.DATE_SOLD;
5503       END IF;
5504 
5505       IF (x_klev_rec.LRV_AMOUNT = OKC_API.G_MISS_NUM) THEN
5506       x_klev_rec.LRV_AMOUNT := l_klev_rec.LRV_AMOUNT;
5507       END IF;
5508 
5509       IF (x_klev_rec.CAPITAL_REDUCTION = OKC_API.G_MISS_NUM) THEN
5510       x_klev_rec.CAPITAL_REDUCTION := l_klev_rec.CAPITAL_REDUCTION;
5511       END IF;
5512 
5513       IF (x_klev_rec.DATE_NEXT_INSPECTION_DUE = OKC_API.G_MISS_DATE) THEN
5514       x_klev_rec.DATE_NEXT_INSPECTION_DUE := l_klev_rec.DATE_NEXT_INSPECTION_DUE;
5515       END IF;
5516 
5517       IF (x_klev_rec.DATE_RESIDUAL_LAST_REVIEW = OKC_API.G_MISS_DATE) THEN
5518       x_klev_rec.DATE_RESIDUAL_LAST_REVIEW := l_klev_rec.DATE_RESIDUAL_LAST_REVIEW;
5519       END IF;
5520 
5521       IF (x_klev_rec.DATE_LAST_REAMORTISATION = OKC_API.G_MISS_DATE) THEN
5522       x_klev_rec.DATE_LAST_REAMORTISATION := l_klev_rec.DATE_LAST_REAMORTISATION;
5523       END IF;
5524 
5525       IF (x_klev_rec.VENDOR_ADVANCE_PAID = OKC_API.G_MISS_NUM) THEN
5526       x_klev_rec.VENDOR_ADVANCE_PAID := l_klev_rec.VENDOR_ADVANCE_PAID;
5527       END IF;
5528 
5529       IF (x_klev_rec.WEIGHTED_AVERAGE_LIFE = OKC_API.G_MISS_NUM) THEN
5530       x_klev_rec.WEIGHTED_AVERAGE_LIFE := l_klev_rec.WEIGHTED_AVERAGE_LIFE;
5531       END IF;
5532 
5533       IF (x_klev_rec.TRADEIN_AMOUNT = OKC_API.G_MISS_NUM) THEN
5534       x_klev_rec.TRADEIN_AMOUNT := l_klev_rec.TRADEIN_AMOUNT;
5535       END IF;
5536 
5537       IF (x_klev_rec.BOND_EQUIVALENT_YIELD = OKC_API.G_MISS_NUM) THEN
5538       x_klev_rec.BOND_EQUIVALENT_YIELD := l_klev_rec.BOND_EQUIVALENT_YIELD;
5539       END IF;
5540 
5541       IF (x_klev_rec.TERMINATION_PURCHASE_AMOUNT = OKC_API.G_MISS_NUM) THEN
5542       x_klev_rec.TERMINATION_PURCHASE_AMOUNT := l_klev_rec.TERMINATION_PURCHASE_AMOUNT;
5543       END IF;
5544 
5545       IF (x_klev_rec.REFINANCE_AMOUNT = OKC_API.G_MISS_NUM) THEN
5546       x_klev_rec.REFINANCE_AMOUNT := l_klev_rec.REFINANCE_AMOUNT;
5547       END IF;
5548 
5549       IF (x_klev_rec.YEAR_BUILT = OKC_API.G_MISS_NUM) THEN
5550       x_klev_rec.YEAR_BUILT := l_klev_rec.YEAR_BUILT;
5551       END IF;
5552 
5553       IF (x_klev_rec.DELIVERED_DATE = OKC_API.G_MISS_DATE) THEN
5554       x_klev_rec.DELIVERED_DATE := l_klev_rec.DELIVERED_DATE;
5555       END IF;
5556 
5557       IF (x_klev_rec.CREDIT_TENANT_YN = OKC_API.G_MISS_CHAR) THEN
5558       x_klev_rec.CREDIT_TENANT_YN := l_klev_rec.CREDIT_TENANT_YN;
5559       END IF;
5560 
5561       IF (x_klev_rec.DATE_LAST_CLEANUP = OKC_API.G_MISS_DATE) THEN
5562       x_klev_rec.DATE_LAST_CLEANUP := l_klev_rec.DATE_LAST_CLEANUP;
5563       END IF;
5564 
5565       IF (x_klev_rec.YEAR_OF_MANUFACTURE = OKC_API.G_MISS_CHAR) THEN
5566       x_klev_rec.YEAR_OF_MANUFACTURE := l_klev_rec.YEAR_OF_MANUFACTURE;
5567       END IF;
5568 
5569       IF (x_klev_rec.COVERAGE_RATIO = OKC_API.G_MISS_NUM) THEN
5570       x_klev_rec.COVERAGE_RATIO := l_klev_rec.COVERAGE_RATIO;
5571       END IF;
5572 
5573       IF (x_klev_rec.REMARKETED_AMOUNT = OKC_API.G_MISS_NUM) THEN
5574       x_klev_rec.REMARKETED_AMOUNT := l_klev_rec.REMARKETED_AMOUNT;
5575       END IF;
5576 
5577       IF (x_klev_rec.GROSS_SQUARE_FOOTAGE = OKC_API.G_MISS_NUM) THEN
5578       x_klev_rec.GROSS_SQUARE_FOOTAGE := l_klev_rec.GROSS_SQUARE_FOOTAGE;
5579       END IF;
5580 
5581       IF (x_klev_rec.PRESCRIBED_ASSET_YN = OKC_API.G_MISS_CHAR) THEN
5582       x_klev_rec.PRESCRIBED_ASSET_YN := l_klev_rec.PRESCRIBED_ASSET_YN;
5583       END IF;
5584 
5585       IF (x_klev_rec.DATE_REMARKETED = OKC_API.G_MISS_DATE) THEN
5586       x_klev_rec.DATE_REMARKETED := l_klev_rec.DATE_REMARKETED;
5587       END IF;
5588 
5589       IF (x_klev_rec.NET_RENTABLE = OKC_API.G_MISS_NUM) THEN
5590       x_klev_rec.NET_RENTABLE := l_klev_rec.NET_RENTABLE;
5591       END IF;
5592 
5593       IF (x_klev_rec.REMARKET_MARGIN = OKC_API.G_MISS_NUM) THEN
5594       x_klev_rec.REMARKET_MARGIN := l_klev_rec.REMARKET_MARGIN;
5595       END IF;
5596 
5597       IF (x_klev_rec.DATE_LETTER_ACCEPTANCE = OKC_API.G_MISS_DATE) THEN
5598       x_klev_rec.DATE_LETTER_ACCEPTANCE := l_klev_rec.DATE_LETTER_ACCEPTANCE;
5599       END IF;
5600 
5601       IF (x_klev_rec.REPURCHASED_AMOUNT = OKC_API.G_MISS_NUM) THEN
5602       x_klev_rec.REPURCHASED_AMOUNT := l_klev_rec.REPURCHASED_AMOUNT;
5603       END IF;
5604 
5605       IF (x_klev_rec.DATE_COMMITMENT_EXPIRATION = OKC_API.G_MISS_DATE) THEN
5606       x_klev_rec.DATE_COMMITMENT_EXPIRATION := l_klev_rec.DATE_COMMITMENT_EXPIRATION;
5607       END IF;
5608 
5609       IF (x_klev_rec.DATE_REPURCHASED = OKC_API.G_MISS_DATE) THEN
5610       x_klev_rec.DATE_REPURCHASED := l_klev_rec.DATE_REPURCHASED;
5611       END IF;
5612 
5613       IF (x_klev_rec.DATE_APPRAISAL = OKC_API.G_MISS_DATE) THEN
5614       x_klev_rec.DATE_APPRAISAL := l_klev_rec.DATE_APPRAISAL;
5615       END IF;
5616 
5617       IF (x_klev_rec.RESIDUAL_VALUE = OKC_API.G_MISS_NUM) THEN
5618       x_klev_rec.RESIDUAL_VALUE := l_klev_rec.RESIDUAL_VALUE;
5619       END IF;
5620 
5621       IF (x_klev_rec.APPRAISAL_VALUE = OKC_API.G_MISS_NUM) THEN
5622       x_klev_rec.APPRAISAL_VALUE := l_klev_rec.APPRAISAL_VALUE;
5623       END IF;
5624 
5625       IF (x_klev_rec.SECURED_DEAL_YN = OKC_API.G_MISS_CHAR) THEN
5626       x_klev_rec.SECURED_DEAL_YN := l_klev_rec.SECURED_DEAL_YN;
5627       END IF;
5628 
5629       IF (x_klev_rec.GAIN_LOSS = OKC_API.G_MISS_NUM) THEN
5630       x_klev_rec.GAIN_LOSS := l_klev_rec.GAIN_LOSS;
5631       END IF;
5632 
5633       IF (x_klev_rec.FLOOR_AMOUNT = OKC_API.G_MISS_NUM) THEN
5634       x_klev_rec.FLOOR_AMOUNT := l_klev_rec.FLOOR_AMOUNT;
5635       END IF;
5636 
5637       IF (x_klev_rec.RE_LEASE_YN = OKC_API.G_MISS_CHAR) THEN
5638       x_klev_rec.RE_LEASE_YN := l_klev_rec.RE_LEASE_YN;
5639       END IF;
5640 
5641       IF (x_klev_rec.PREVIOUS_CONTRACT = OKC_API.G_MISS_CHAR) THEN
5642       x_klev_rec.PREVIOUS_CONTRACT := l_klev_rec.PREVIOUS_CONTRACT;
5643       END IF;
5644 
5645       IF (x_klev_rec.TRACKED_RESIDUAL = OKC_API.G_MISS_NUM) THEN
5646       x_klev_rec.TRACKED_RESIDUAL := l_klev_rec.TRACKED_RESIDUAL;
5647       END IF;
5648 
5649       IF (x_klev_rec.DATE_TITLE_RECEIVED = OKC_API.G_MISS_DATE) THEN
5650       x_klev_rec.DATE_TITLE_RECEIVED := l_klev_rec.DATE_TITLE_RECEIVED;
5651       END IF;
5652 
5653       IF (x_klev_rec.AMOUNT = OKC_API.G_MISS_NUM) THEN
5654       x_klev_rec.AMOUNT := l_klev_rec.AMOUNT;
5655       END IF;
5656 
5657       IF (x_klev_rec.ATTRIBUTE_CATEGORY = OKC_API.G_MISS_CHAR) THEN
5658       x_klev_rec.ATTRIBUTE_CATEGORY := l_klev_rec.ATTRIBUTE_CATEGORY;
5659       END IF;
5660 
5661       IF (x_klev_rec.ATTRIBUTE1 = OKC_API.G_MISS_CHAR) THEN
5662       x_klev_rec.ATTRIBUTE1 := l_klev_rec.ATTRIBUTE1;
5663       END IF;
5664 
5665       IF (x_klev_rec.ATTRIBUTE2 = OKC_API.G_MISS_CHAR) THEN
5666       x_klev_rec.ATTRIBUTE2 := l_klev_rec.ATTRIBUTE2;
5667       END IF;
5668 
5669       IF (x_klev_rec.ATTRIBUTE3 = OKC_API.G_MISS_CHAR) THEN
5670       x_klev_rec.ATTRIBUTE3 := l_klev_rec.ATTRIBUTE3;
5671       END IF;
5672 
5673       IF (x_klev_rec.ATTRIBUTE4 = OKC_API.G_MISS_CHAR) THEN
5674       x_klev_rec.ATTRIBUTE4 := l_klev_rec.ATTRIBUTE4;
5675       END IF;
5676 
5677       IF (x_klev_rec.ATTRIBUTE5 = OKC_API.G_MISS_CHAR) THEN
5678       x_klev_rec.ATTRIBUTE5 := l_klev_rec.ATTRIBUTE5;
5679       END IF;
5680 
5681       IF (x_klev_rec.ATTRIBUTE6 = OKC_API.G_MISS_CHAR) THEN
5682       x_klev_rec.ATTRIBUTE6 := l_klev_rec.ATTRIBUTE6;
5683       END IF;
5684 
5685       IF (x_klev_rec.ATTRIBUTE7 = OKC_API.G_MISS_CHAR) THEN
5686       x_klev_rec.ATTRIBUTE7 := l_klev_rec.ATTRIBUTE7;
5687       END IF;
5688 
5689       IF (x_klev_rec.ATTRIBUTE8 = OKC_API.G_MISS_CHAR) THEN
5690       x_klev_rec.ATTRIBUTE8 := l_klev_rec.ATTRIBUTE8;
5691       END IF;
5692 
5693       IF (x_klev_rec.ATTRIBUTE9 = OKC_API.G_MISS_CHAR) THEN
5694       x_klev_rec.ATTRIBUTE9 := l_klev_rec.ATTRIBUTE9;
5695       END IF;
5696 
5697       IF (x_klev_rec.ATTRIBUTE10 = OKC_API.G_MISS_CHAR) THEN
5698       x_klev_rec.ATTRIBUTE10 := l_klev_rec.ATTRIBUTE10;
5699       END IF;
5700 
5701       IF (x_klev_rec.ATTRIBUTE11 = OKC_API.G_MISS_CHAR) THEN
5702       x_klev_rec.ATTRIBUTE11 := l_klev_rec.ATTRIBUTE11;
5703       END IF;
5704 
5705       IF (x_klev_rec.ATTRIBUTE12 = OKC_API.G_MISS_CHAR) THEN
5706       x_klev_rec.ATTRIBUTE12 := l_klev_rec.ATTRIBUTE12;
5707       END IF;
5708 
5709       IF (x_klev_rec.ATTRIBUTE13 = OKC_API.G_MISS_CHAR) THEN
5710       x_klev_rec.ATTRIBUTE13 := l_klev_rec.ATTRIBUTE13;
5711       END IF;
5712 
5713       IF (x_klev_rec.ATTRIBUTE14 = OKC_API.G_MISS_CHAR) THEN
5714       x_klev_rec.ATTRIBUTE14 := l_klev_rec.ATTRIBUTE14;
5715       END IF;
5716 
5717       IF (x_klev_rec.ATTRIBUTE15 = OKC_API.G_MISS_CHAR) THEN
5718       x_klev_rec.ATTRIBUTE15 := l_klev_rec.ATTRIBUTE15;
5719       END IF;
5720 
5721       IF (x_klev_rec.STY_ID_FOR = OKC_API.G_MISS_NUM) THEN
5722       x_klev_rec.STY_ID_FOR := l_klev_rec.STY_ID_FOR;
5723       END IF;
5724 
5725       IF (x_klev_rec.CLG_ID = OKC_API.G_MISS_NUM) THEN
5726       x_klev_rec.CLG_ID := l_klev_rec.CLG_ID;
5727       END IF;
5728 
5729       IF (x_klev_rec.CREATED_BY = OKC_API.G_MISS_NUM) THEN
5730       x_klev_rec.CREATED_BY := l_klev_rec.CREATED_BY;
5731       END IF;
5732 
5733       IF (x_klev_rec.CREATION_DATE = OKC_API.G_MISS_DATE) THEN
5734       x_klev_rec.CREATION_DATE := l_klev_rec.CREATION_DATE;
5735       END IF;
5736 
5737       IF (x_klev_rec.LAST_UPDATED_BY = OKC_API.G_MISS_NUM) THEN
5738       x_klev_rec.LAST_UPDATED_BY := l_klev_rec.LAST_UPDATED_BY;
5739       END IF;
5740 
5741       IF (x_klev_rec.LAST_UPDATE_DATE = OKC_API.G_MISS_DATE) THEN
5742       x_klev_rec.LAST_UPDATE_DATE := l_klev_rec.LAST_UPDATE_DATE;
5743       END IF;
5744 
5745       IF (x_klev_rec.LAST_UPDATE_LOGIN = OKC_API.G_MISS_NUM) THEN
5746       x_klev_rec.LAST_UPDATE_LOGIN := l_klev_rec.LAST_UPDATE_LOGIN;
5747       END IF;
5748 
5749       IF (x_klev_rec.DATE_FUNDING = OKC_API.G_MISS_DATE) THEN
5750       x_klev_rec.DATE_FUNDING := l_klev_rec.DATE_FUNDING;
5751       END IF;
5752 
5753       IF (x_klev_rec.DATE_FUNDING_REQUIRED = OKC_API.G_MISS_DATE) THEN
5754       x_klev_rec.DATE_FUNDING_REQUIRED := l_klev_rec.DATE_FUNDING_REQUIRED;
5755       END IF;
5756 
5757       IF (x_klev_rec.DATE_ACCEPTED = OKC_API.G_MISS_DATE) THEN
5758       x_klev_rec.DATE_ACCEPTED := l_klev_rec.DATE_ACCEPTED;
5759       END IF;
5760 
5761       IF (x_klev_rec.DATE_DELIVERY_EXPECTED = OKC_API.G_MISS_DATE) THEN
5762       x_klev_rec.DATE_DELIVERY_EXPECTED := l_klev_rec.DATE_DELIVERY_EXPECTED;
5763       END IF;
5764 
5765       IF (x_klev_rec.OEC = OKC_API.G_MISS_NUM) THEN
5766       x_klev_rec.OEC := l_klev_rec.OEC;
5767       END IF;
5768 
5769       IF (x_klev_rec.CAPITAL_AMOUNT = OKC_API.G_MISS_NUM) THEN
5770       x_klev_rec.CAPITAL_AMOUNT := l_klev_rec.CAPITAL_AMOUNT;
5771       END IF;
5772 
5773       IF (x_klev_rec.RESIDUAL_GRNTY_AMOUNT = OKC_API.G_MISS_NUM) THEN
5774       x_klev_rec.RESIDUAL_GRNTY_AMOUNT := l_klev_rec.RESIDUAL_GRNTY_AMOUNT;
5775       END IF;
5776 
5777       IF (x_klev_rec.RESIDUAL_CODE = OKC_API.G_MISS_CHAR) THEN
5778       x_klev_rec.RESIDUAL_CODE := l_klev_rec.RESIDUAL_CODE;
5779       END IF;
5780 
5781       IF (x_klev_rec.RVI_PREMIUM = OKC_API.G_MISS_NUM) THEN
5782       x_klev_rec.RVI_PREMIUM := l_klev_rec.RVI_PREMIUM;
5783       END IF;
5784 
5785       IF (x_klev_rec.CREDIT_NATURE = OKC_API.G_MISS_CHAR) THEN
5786       x_klev_rec.CREDIT_NATURE := l_klev_rec.CREDIT_NATURE;
5787       END IF;
5788 
5789       IF (x_klev_rec.CAPITALIZED_INTEREST = OKC_API.G_MISS_NUM) THEN
5790       x_klev_rec.CAPITALIZED_INTEREST := l_klev_rec.CAPITALIZED_INTEREST;
5791       END IF;
5792 
5793       IF (x_klev_rec.CAPITAL_REDUCTION_PERCENT = OKC_API.G_MISS_NUM) THEN
5794       x_klev_rec.CAPITAL_REDUCTION_PERCENT := l_klev_rec.CAPITAL_REDUCTION_PERCENT;
5795       END IF;
5796 
5797       IF (x_klev_rec.DATE_PAY_INVESTOR_START = OKC_API.G_MISS_DATE) THEN
5798       x_klev_rec.DATE_PAY_INVESTOR_START := l_klev_rec.DATE_PAY_INVESTOR_START;
5799       END IF;
5800 
5801       IF (x_klev_rec.PAY_INVESTOR_FREQUENCY = OKC_API.G_MISS_CHAR) THEN
5802       x_klev_rec.PAY_INVESTOR_FREQUENCY := l_klev_rec.PAY_INVESTOR_FREQUENCY;
5803       END IF;
5804 
5805       IF (x_klev_rec.PAY_INVESTOR_EVENT = OKC_API.G_MISS_CHAR) THEN
5806       x_klev_rec.PAY_INVESTOR_EVENT := l_klev_rec.PAY_INVESTOR_EVENT;
5807       END IF;
5808 
5809       IF (x_klev_rec.PAY_INVESTOR_REMITTANCE_DAYS = OKC_API.G_MISS_NUM) THEN
5810       x_klev_rec.PAY_INVESTOR_REMITTANCE_DAYS := l_klev_rec.PAY_INVESTOR_REMITTANCE_DAYS;
5811       END IF;
5812       IF (x_klev_rec.FEE_TYPE = OKC_API.G_MISS_CHAR) THEN
5813       x_klev_rec.FEE_TYPE := l_klev_rec.FEE_TYPE;
5814       END IF;
5815 --Bug# 3143522: 11.5.10
5816 --subsidy
5817    IF (x_klev_rec.SUBSIDY_ID = OKL_API.G_MISS_NUM) THEN
5818        x_klev_rec.SUBSIDY_ID := l_klev_rec.SUBSIDY_ID;
5819    END IF;
5820    --IF (x_klev_rec.SUBSIDIZED_OEC = OKL_API.G_MISS_NUM) THEN
5821        --x_klev_rec.SUBSIDIZED_OEC := l_klev_rec.SUBSIDIZED_OEC;
5822    --END IF;
5823    --IF (x_klev_rec.SUBSIDIZED_CAP_AMOUNT = OKL_API.G_MISS_NUM) THEN
5824        --x_klev_rec.SUBSIDIZED_CAP_AMOUNT := l_klev_rec.SUBSIDIZED_CAP_AMOUNT;
5825    --END IF;
5826    IF (x_klev_rec.SUBSIDY_OVERRIDE_AMOUNT = OKL_API.G_MISS_NUM) THEN
5827        x_klev_rec.SUBSIDY_OVERRIDE_AMOUNT := l_klev_rec.SUBSIDY_OVERRIDE_AMOUNT;
5828    END IF;
5829    --financed fee
5830    IF (x_klev_rec.PRE_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
5831        x_klev_rec.PRE_TAX_YIELD := l_klev_rec.PRE_TAX_YIELD;
5832    END IF;
5833    IF (x_klev_rec.AFTER_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
5834        x_klev_rec.AFTER_TAX_YIELD := l_klev_rec.AFTER_TAX_YIELD;
5835    END IF;
5836    IF (x_klev_rec.IMPLICIT_INTEREST_RATE = OKL_API.G_MISS_NUM) THEN
5837        x_klev_rec.IMPLICIT_INTEREST_RATE := l_klev_rec.IMPLICIT_INTEREST_RATE;
5838    END IF;
5839    IF (x_klev_rec.IMPLICIT_NON_IDC_INTEREST_RATE = OKL_API.G_MISS_NUM) THEN
5840        x_klev_rec.IMPLICIT_NON_IDC_INTEREST_RATE := l_klev_rec.IMPLICIT_NON_IDC_INTEREST_RATE;
5841    END IF;
5842    IF (x_klev_rec.PRE_TAX_IRR = OKL_API.G_MISS_NUM) THEN
5843        x_klev_rec.PRE_TAX_IRR := l_klev_rec.PRE_TAX_IRR;
5844    END IF;
5845    IF (x_klev_rec.AFTER_TAX_IRR = OKL_API.G_MISS_NUM) THEN
5846        x_klev_rec.AFTER_TAX_IRR := l_klev_rec.AFTER_TAX_IRR;
5847    END IF;
5848 --quote
5849    IF (x_klev_rec.SUB_PRE_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
5850        x_klev_rec.SUB_PRE_TAX_YIELD := l_klev_rec.SUB_PRE_TAX_YIELD;
5851    END IF;
5852    IF (x_klev_rec.SUB_AFTER_TAX_YIELD = OKL_API.G_MISS_NUM) THEN
5853        x_klev_rec.SUB_AFTER_TAX_YIELD := l_klev_rec.SUB_AFTER_TAX_YIELD;
5854    END IF;
5855    IF (x_klev_rec.SUB_IMPL_INTEREST_RATE = OKL_API.G_MISS_NUM) THEN
5856        x_klev_rec.SUB_IMPL_INTEREST_RATE := l_klev_rec.SUB_IMPL_INTEREST_RATE;
5857    END IF;
5858    IF (x_klev_rec.SUB_IMPL_NON_IDC_INT_RATE = OKL_API.G_MISS_NUM) THEN
5859        x_klev_rec.SUB_IMPL_NON_IDC_INT_RATE := l_klev_rec.SUB_IMPL_NON_IDC_INT_RATE;
5860    END IF;
5861    IF (x_klev_rec.SUB_PRE_TAX_IRR = OKL_API.G_MISS_NUM) THEN
5862        x_klev_rec.SUB_PRE_TAX_IRR := l_klev_rec.SUB_PRE_TAX_IRR;
5863    END IF;
5864    IF (x_klev_rec.SUB_AFTER_TAX_IRR = OKL_API.G_MISS_NUM) THEN
5865        x_klev_rec.SUB_AFTER_TAX_IRR := l_klev_rec.SUB_AFTER_TAX_IRR;
5866    END IF;
5867 --Bug# 2994971
5868    IF (x_klev_rec.ITEM_INSURANCE_CATEGORY = OKL_API.G_MISS_NUM) THEN
5869        x_klev_rec.ITEM_INSURANCE_CATEGORY := l_klev_rec.ITEM_INSURANCE_CATEGORY;
5870    END IF;
5871 --Bug# 3973640 :11.5.10+
5872    IF (x_klev_rec.QTE_ID = OKL_API.G_MISS_NUM) THEN
5873        x_klev_rec.QTE_ID := l_klev_rec.QTE_ID;
5874    END IF;
5875    IF (x_klev_rec.FUNDING_DATE = OKL_API.G_MISS_DATE) THEN
5876        x_klev_rec.FUNDING_DATE := l_klev_rec.FUNDING_DATE;
5877    END IF;
5878    IF (x_klev_rec.STREAM_TYPE_SUBCLASS = OKL_API.G_MISS_CHAR) THEN
5879        x_klev_rec.STREAM_TYPE_SUBCLASS := l_klev_rec.STREAM_TYPE_SUBCLASS;
5880    END IF;
5881 
5882 --Bug# 4419339  OKLH
5883    IF (x_klev_rec.DATE_FUNDING_EXPECTED = OKL_API.G_MISS_DATE) THEN
5884        x_klev_rec.DATE_FUNDING_EXPECTED := l_klev_rec.DATE_FUNDING_EXPECTED;
5885    END IF;
5886 
5887    IF (x_klev_rec.MANUFACTURER_NAME = OKL_API.G_MISS_CHAR) THEN
5888        x_klev_rec.MANUFACTURER_NAME := l_klev_rec.MANUFACTURER_NAME;
5889    END IF;
5890 
5891    IF (x_klev_rec.MODEL_NUMBER = OKL_API.G_MISS_CHAR) THEN
5892        x_klev_rec.MODEL_NUMBER := l_klev_rec.MODEL_NUMBER;
5893    END IF;
5894 
5895    IF (x_klev_rec.DOWN_PAYMENT_RECEIVER_CODE = OKL_API.G_MISS_CHAR) THEN
5896        x_klev_rec.DOWN_PAYMENT_RECEIVER_CODE := l_klev_rec.DOWN_PAYMENT_RECEIVER_CODE;
5897    END IF;
5898 
5899    IF (x_klev_rec.CAPITALIZE_DOWN_PAYMENT_YN = OKL_API.G_MISS_CHAR) THEN
5900        x_klev_rec.CAPITALIZE_DOWN_PAYMENT_YN := l_klev_rec.CAPITALIZE_DOWN_PAYMENT_YN;
5901    END IF;
5902 
5903    IF (x_klev_rec.FEE_PURPOSE_CODE = OKL_API.G_MISS_CHAR) THEN
5904        x_klev_rec.FEE_PURPOSE_CODE := l_klev_rec.FEE_PURPOSE_CODE;
5905    END IF;
5906 
5907    IF (x_klev_rec.TERMINATION_VALUE = OKL_API.G_MISS_NUM) THEN
5908        x_klev_rec.TERMINATION_VALUE := l_klev_rec.TERMINATION_VALUE;
5909    END IF;
5910 
5911    --Bug# 4631549
5912    IF (x_klev_rec.EXPECTED_ASSET_COST = OKL_API.G_MISS_NUM) THEN
5913        x_klev_rec.EXPECTED_ASSET_COST := l_klev_rec.EXPECTED_ASSET_COST;
5914    END IF;
5915 
5916    IF (x_klev_rec.ORIG_CONTRACT_LINE_ID = OKL_API.G_MISS_NUM) THEN
5917        x_klev_rec.ORIG_CONTRACT_LINE_ID := l_klev_rec.ORIG_CONTRACT_LINE_ID;
5918    END IF;
5919 
5920    --Added by JJUNEJA
5921     IF (x_klev_rec.ORIGINATION_INCOME = OKL_API.G_MISS_NUM) THEN
5922        x_klev_rec.ORIGINATION_INCOME := l_klev_rec.ORIGINATION_INCOME;
5923    END IF;
5924    --End of addition by JJUNEJA
5925 
5926    --Bug# 16344245
5927    IF (x_klev_rec.AMOUNT_BALANCE_LEGACY = OKL_API.G_MISS_NUM) THEN
5928        x_klev_rec.AMOUNT_BALANCE_LEGACY := l_klev_rec.AMOUNT_BALANCE_LEGACY;
5929    END IF;
5930 
5931    IF (x_klev_rec.DT_EFFECTIVE_BALANCE_LEGACY = OKL_API.G_MISS_DATE) THEN
5932        x_klev_rec.DT_EFFECTIVE_BALANCE_LEGACY := l_klev_rec.DT_EFFECTIVE_BALANCE_LEGACY;
5933    END IF;
5934 
5935    RETURN(l_return_status);
5936     END populate_new_record;
5937     ----------------------------------------
5938     -- Set_Attributes for:  OKL_K_LINES_V --
5939     ----------------------------------------
5940     FUNCTION Set_Attributes (
5941       p_klev_rec IN  klev_rec_type,
5942       x_klev_rec OUT NOCOPY klev_rec_type
5943     ) RETURN VARCHAR2 IS
5944       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5945     BEGIN
5946       x_klev_rec := p_klev_rec;
5947       x_klev_rec.OBJECT_VERSION_NUMBER := NVL(x_klev_rec.OBJECT_VERSION_NUMBER, 0) + 1;
5948       RETURN(l_return_status);
5949     END Set_Attributes;
5950   BEGIN
5951     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5952                                               G_PKG_NAME,
5953                                               p_init_msg_list,
5954                                               l_api_version,
5955                                               p_api_version,
5956                                               '_PVT',
5957                                               x_return_status);
5958 
5959     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5960       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5961     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5962       RAISE OKC_API.G_EXCEPTION_ERROR;
5963     END IF;
5964 
5965     --- Setting item attributes
5966     l_return_status := Set_Attributes(
5967       p_klev_rec,                        -- IN
5968       l_klev_rec);                       -- OUT
5969     --- If any errors happen abort API
5970 
5971     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5972       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5973     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5974       RAISE OKC_API.G_EXCEPTION_ERROR;
5975     END IF;
5976 
5977     l_return_status := populate_new_record(l_klev_rec, l_def_klev_rec);
5978 
5979     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5980       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5981     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5982       RAISE OKC_API.G_EXCEPTION_ERROR;
5983     END IF;
5984 
5985     l_def_klev_rec := fill_who_columns(l_def_klev_rec);
5986     --- Validate all non-missing attributes (Item Level Validation)
5987     l_return_status := Validate_Attributes(l_def_klev_rec);
5988     --- If any errors happen abort API
5989 
5990     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5991       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5992     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5993       RAISE OKC_API.G_EXCEPTION_ERROR;
5994     END IF;
5995 
5996     l_return_status := Validate_Record(l_def_klev_rec);
5997 
5998     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5999       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6000     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6001       RAISE OKC_API.G_EXCEPTION_ERROR;
6002     END IF;
6003 
6004 
6005     --------------------------------------
6006     -- Move VIEW record to "Child" records
6007     --------------------------------------
6008     migrate(l_def_klev_rec, l_kle_rec);
6009     --------------------------------------------
6010     -- Call the UPDATE_ROW for each child record
6011     --------------------------------------------
6012     update_row(
6013       l_api_version,
6014       p_init_msg_list,
6015       x_return_status,
6016       x_msg_count,
6017       x_msg_data,
6018       l_kle_rec,
6019       lx_kle_rec
6020     );
6021 
6022     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6023       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6024     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6025       RAISE OKC_API.G_EXCEPTION_ERROR;
6026     END IF;
6027 
6028     migrate(lx_kle_rec, l_def_klev_rec);
6029     x_klev_rec := l_def_klev_rec;
6030     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
6031 
6032   EXCEPTION
6033     WHEN OKC_API.G_EXCEPTION_ERROR THEN
6034       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6035       (
6036         l_api_name,
6037         G_PKG_NAME,
6038         'OKC_API.G_RET_STS_ERROR',
6039         x_msg_count,
6040         x_msg_data,
6041         '_PVT'
6042       );
6043     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6044       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6045       (
6046         l_api_name,
6047         G_PKG_NAME,
6048         'OKC_API.G_RET_STS_UNEXP_ERROR',
6049         x_msg_count,
6050         x_msg_data,
6051         '_PVT'
6052       );
6053     WHEN OTHERS THEN
6054       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6055       (
6056         l_api_name,
6057         G_PKG_NAME,
6058         'OTHERS',
6059         x_msg_count,
6060         x_msg_data,
6061         '_PVT'
6062       );
6063 
6064   END update_row;
6065   ----------------------------------------
6066   -- PL/SQL TBL update_row for: OKL_K_LINES_V --
6067   ----------------------------------------
6068 
6069   PROCEDURE update_row(
6070 
6071     p_api_version                  IN NUMBER,
6072     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6073     x_return_status                OUT NOCOPY VARCHAR2,
6074     x_msg_count                    OUT NOCOPY NUMBER,
6075     x_msg_data                     OUT NOCOPY VARCHAR2,
6076     p_klev_tbl                     IN klev_tbl_type,
6077     x_klev_tbl                     OUT NOCOPY klev_tbl_type) IS
6078 
6079     l_api_version                 CONSTANT NUMBER := 1;
6080     l_api_name                     CONSTANT VARCHAR2(30) := 'tbl_update_row';
6081     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6082     i                              NUMBER := 0;
6083   BEGIN
6084     OKC_API.init_msg_list(p_init_msg_list);
6085     -- Make sure PL/SQL table has records in it before passing
6086     IF (p_klev_tbl.COUNT > 0) THEN
6087       i := p_klev_tbl.FIRST;
6088       LOOP
6089         update_row (
6090           p_api_version                  => p_api_version,
6091           p_init_msg_list                => OKC_API.G_FALSE,
6092           x_return_status                => x_return_status,
6093           x_msg_count                    => x_msg_count,
6094           x_msg_data                     => x_msg_data,
6095           p_klev_rec                     => p_klev_tbl(i),
6096           x_klev_rec                     => x_klev_tbl(i));
6097         EXIT WHEN (i = p_klev_tbl.LAST);
6098         i := p_klev_tbl.NEXT(i);
6099       END LOOP;
6100     END IF;
6101 
6102   EXCEPTION
6103     WHEN OKC_API.G_EXCEPTION_ERROR THEN
6104       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6105       (
6106         l_api_name,
6107         G_PKG_NAME,
6108         'OKC_API.G_RET_STS_ERROR',
6109         x_msg_count,
6110         x_msg_data,
6111         '_PVT'
6112       );
6113     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6114       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6115       (
6116         l_api_name,
6117         G_PKG_NAME,
6118         'OKC_API.G_RET_STS_UNEXP_ERROR',
6119         x_msg_count,
6120         x_msg_data,
6121         '_PVT'
6122       );
6123     WHEN OTHERS THEN
6124       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6125       (
6126         l_api_name,
6127         G_PKG_NAME,
6128         'OTHERS',
6129         x_msg_count,
6130         x_msg_data,
6131         '_PVT'
6132       );
6133 
6134   END update_row;
6135 
6136 
6137 
6138   ---------------------------------------------------------------------------
6139   -- PROCEDURE delete_row
6140   ---------------------------------------------------------------------------
6141 
6142   ----------------------------------
6143   -- delete_row for: OKL_K_LINES --
6144   ----------------------------------
6145 
6146   PROCEDURE delete_row(
6147 
6148     p_api_version                  IN NUMBER,
6149     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6150     x_return_status                OUT NOCOPY VARCHAR2,
6151     x_msg_count                    OUT NOCOPY NUMBER,
6152     x_msg_data                     OUT NOCOPY VARCHAR2,
6153     p_kle_rec                     IN kle_rec_type) IS
6154 
6155     l_api_version                 CONSTANT NUMBER := 1;
6156     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_delete_row';
6157     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6158     l_kle_rec                      kle_rec_type:= p_kle_rec;
6159     l_row_notfound                 BOOLEAN := TRUE;
6160     l_okl_k_lines_h_rec okl_k_lines_h_rec_type;
6161     lx_okl_k_lines_h_rec okl_k_lines_h_rec_type;
6162   BEGIN
6163     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
6164                                               p_init_msg_list,
6165                                               '_PVT',
6166                                               x_return_status);
6167 
6168     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6169       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6170     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6171       RAISE OKC_API.G_EXCEPTION_ERROR;
6172     END IF;
6173 
6174 /*
6175     -- Insert into History table
6176     l_kle_rec := get_rec(l_kle_rec, l_row_notfound);
6177     IF (l_row_notfound) THEN
6178       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6179     END IF;
6180     migrate(l_kle_rec, l_okl_k_lines_h_rec);
6181     insert_row(
6182       l_api_version,
6183       p_init_msg_list,
6184       x_return_status,
6185       x_msg_count,
6186       x_msg_data,
6187       l_okl_k_lines_h_rec,
6188       lx_okl_k_lines_h_rec
6189     );
6190 
6191     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6192       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6193     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6194       RAISE OKC_API.G_EXCEPTION_ERROR;
6195     END IF;
6196 */
6197     DELETE FROM OKL_K_LINES
6198      WHERE ID = l_kle_rec.id;
6199 
6200     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
6201 
6202   EXCEPTION
6203     WHEN OKC_API.G_EXCEPTION_ERROR THEN
6204       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6205       (
6206         l_api_name,
6207         G_PKG_NAME,
6208         'OKC_API.G_RET_STS_ERROR',
6209         x_msg_count,
6210         x_msg_data,
6211         '_PVT'
6212       );
6213     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6214       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6215       (
6216         l_api_name,
6217         G_PKG_NAME,
6218         'OKC_API.G_RET_STS_UNEXP_ERROR',
6219         x_msg_count,
6220         x_msg_data,
6221         '_PVT'
6222       );
6223     WHEN OTHERS THEN
6224       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6225       (
6226         l_api_name,
6227         G_PKG_NAME,
6228         'OTHERS',
6229         x_msg_count,
6230         x_msg_data,
6231         '_PVT'
6232       );
6233 
6234   END delete_row;
6235 
6236   PROCEDURE delete_row(
6237 
6238     p_api_version                  IN NUMBER,
6239     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6240     x_return_status                OUT NOCOPY VARCHAR2,
6241     x_msg_count                    OUT NOCOPY NUMBER,
6242     x_msg_data                     OUT NOCOPY VARCHAR2,
6243     p_klev_rec                     IN klev_rec_type) IS
6244 
6245     l_api_version                 CONSTANT NUMBER := 1;
6246     l_api_name                     CONSTANT VARCHAR2(30) := 'rec_delete_row';
6247     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6248     l_klev_rec                     klev_rec_type := p_klev_rec;
6249     l_kle_rec kle_rec_type;
6250   BEGIN
6251     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
6252                                               G_PKG_NAME,
6253                                               p_init_msg_list,
6254                                               l_api_version,
6255                                               p_api_version,
6256                                               '_PVT',
6257                                               x_return_status);
6258 
6259     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6260       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6261     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6262       RAISE OKC_API.G_EXCEPTION_ERROR;
6263     END IF;
6264 
6265     --------------------------------------
6266     -- Move VIEW record to "Child" records
6267     --------------------------------------
6268     migrate(l_klev_rec, l_kle_rec);
6269     --------------------------------------------
6270     -- Call the DELETE_ROW for each child record
6271     --------------------------------------------
6272     delete_row(
6273       l_api_version,
6274       p_init_msg_list,
6275       x_return_status,
6276       x_msg_count,
6277       x_msg_data,
6278       l_kle_rec
6279     );
6280 
6281     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6282       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6283     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
6284       RAISE OKC_API.G_EXCEPTION_ERROR;
6285     END IF;
6286 
6287     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
6288 
6289   EXCEPTION
6290     WHEN OKC_API.G_EXCEPTION_ERROR THEN
6291       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6292       (
6293         l_api_name,
6294         G_PKG_NAME,
6295         'OKC_API.G_RET_STS_ERROR',
6296         x_msg_count,
6297         x_msg_data,
6298         '_PVT'
6299       );
6300     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6301       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6302       (
6303         l_api_name,
6304         G_PKG_NAME,
6305         'OKC_API.G_RET_STS_UNEXP_ERROR',
6306         x_msg_count,
6307         x_msg_data,
6308         '_PVT'
6309       );
6310     WHEN OTHERS THEN
6311       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6312       (
6313         l_api_name,
6314         G_PKG_NAME,
6315         'OTHERS',
6316         x_msg_count,
6317         x_msg_data,
6318         '_PVT'
6319       );
6320 
6321   END delete_row;
6322   ----------------------------------------
6323   -- PL/SQL TBL delete_row for: OKL_K_LINES_V --
6324   ----------------------------------------
6325 
6326   PROCEDURE delete_row(
6327 
6328     p_api_version                  IN NUMBER,
6329     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
6330     x_return_status                OUT NOCOPY VARCHAR2,
6331     x_msg_count                    OUT NOCOPY NUMBER,
6332     x_msg_data                     OUT NOCOPY VARCHAR2,
6333     p_klev_tbl                     IN klev_tbl_type) IS
6334 
6335     l_api_version                 CONSTANT NUMBER := 1;
6336     l_api_name                     CONSTANT VARCHAR2(30) := 'tbl_delete_row';
6337     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6338     i                              NUMBER := 0;
6339   BEGIN
6340     OKC_API.init_msg_list(p_init_msg_list);
6341     -- Make sure PL/SQL table has records in it before passing
6342     IF (p_klev_tbl.COUNT > 0) THEN
6343       i := p_klev_tbl.FIRST;
6344       LOOP
6345         delete_row (
6346           p_api_version                  => p_api_version,
6347           p_init_msg_list                => OKC_API.G_FALSE,
6348           x_return_status                => x_return_status,
6349           x_msg_count                    => x_msg_count,
6350           x_msg_data                     => x_msg_data,
6351           p_klev_rec                     => p_klev_tbl(i));
6352         EXIT WHEN (i = p_klev_tbl.LAST);
6353         i := p_klev_tbl.NEXT(i);
6354       END LOOP;
6355     END IF;
6356 
6357   EXCEPTION
6358     WHEN OKC_API.G_EXCEPTION_ERROR THEN
6359       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6360       (
6361         l_api_name,
6362         G_PKG_NAME,
6363         'OKC_API.G_RET_STS_ERROR',
6364         x_msg_count,
6365         x_msg_data,
6366         '_PVT'
6367       );
6368     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6369       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6370       (
6371         l_api_name,
6372         G_PKG_NAME,
6373         'OKC_API.G_RET_STS_UNEXP_ERROR',
6374         x_msg_count,
6375         x_msg_data,
6376         '_PVT'
6377       );
6378     WHEN OTHERS THEN
6379       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
6380       (
6381         l_api_name,
6382         G_PKG_NAME,
6383         'OTHERS',
6384         x_msg_count,
6385         x_msg_data,
6386         '_PVT'
6387       );
6388 
6389   END delete_row;
6390 
6391 
6392   ---------------------------------------------------------------------------
6393   -- PROCEDURE versioning
6394   ---------------------------------------------------------------------------
6395 
6396   FUNCTION create_version(
6397     p_chr_id IN NUMBER,
6398     p_major_version IN NUMBER) RETURN VARCHAR2 IS
6399 
6400   l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
6401 
6402 BEGIN
6403 INSERT INTO OKL_K_LINES_H
6404   (
6405       major_version,
6406 	ID,
6407         KLE_ID,
6408         STY_ID,
6409         OBJECT_VERSION_NUMBER,
6410         LAO_AMOUNT,
6411         FEE_CHARGE,
6412         TITLE_DATE,
6413         DATE_RESIDUAL_LAST_REVIEW,
6414         DATE_LAST_REAMORTISATION,
6415         TERMINATION_PURCHASE_AMOUNT,
6416         DATE_LAST_CLEANUP,
6417         REMARKETED_AMOUNT,
6418         DATE_REMARKETED,
6419         REMARKET_MARGIN,
6420         REPURCHASED_AMOUNT,
6421         DATE_REPURCHASED,
6422         GAIN_LOSS,
6423         FLOOR_AMOUNT,
6424         PREVIOUS_CONTRACT,
6425         TRACKED_RESIDUAL,
6426         DATE_TITLE_RECEIVED,
6427         ESTIMATED_OEC,
6428         RESIDUAL_PERCENTAGE,
6429         CAPITAL_REDUCTION,
6430         VENDOR_ADVANCE_PAID,
6431         TRADEIN_AMOUNT,
6432         DELIVERED_DATE,
6433         YEAR_OF_MANUFACTURE,
6434         INITIAL_DIRECT_COST,
6435         OCCUPANCY,
6436         DATE_LAST_INSPECTION,
6437         DATE_NEXT_INSPECTION_DUE,
6438         WEIGHTED_AVERAGE_LIFE,
6439         BOND_EQUIVALENT_YIELD,
6440         REFINANCE_AMOUNT,
6441         YEAR_BUILT,
6442         COVERAGE_RATIO,
6443         GROSS_SQUARE_FOOTAGE,
6444         NET_RENTABLE,
6445         DATE_LETTER_ACCEPTANCE,
6446         DATE_COMMITMENT_EXPIRATION,
6447         DATE_APPRAISAL,
6448         APPRAISAL_VALUE,
6449         RESIDUAL_VALUE,
6450         PERCENT,
6451         COVERAGE,
6452         LRV_AMOUNT,
6453         AMOUNT,
6454         LRS_PERCENT,
6455         EVERGREEN_PERCENT,
6456         PERCENT_STAKE,
6457         AMOUNT_STAKE,
6458         DATE_SOLD,
6459         STY_ID_FOR,
6460         ATTRIBUTE_CATEGORY,
6461         ATTRIBUTE1,
6462         ATTRIBUTE2,
6463         ATTRIBUTE3,
6464         ATTRIBUTE4,
6465         ATTRIBUTE5,
6466         ATTRIBUTE6,
6467         ATTRIBUTE7,
6468         ATTRIBUTE8,
6469         ATTRIBUTE9,
6470         ATTRIBUTE10,
6471         ATTRIBUTE11,
6472         ATTRIBUTE12,
6473         ATTRIBUTE13,
6474         ATTRIBUTE14,
6475         ATTRIBUTE15,
6476         CREATED_BY,
6477         CREATION_DATE,
6478         LAST_UPDATED_BY,
6479         LAST_UPDATE_DATE,
6480         LAST_UPDATE_LOGIN,
6481         NTY_CODE,
6482         FCG_CODE,
6483         PRC_CODE,
6484         RE_LEASE_YN,
6485         PRESCRIBED_ASSET_YN,
6486         CREDIT_TENANT_YN,
6487         SECURED_DEAL_YN,
6488         CLG_ID,
6489         DATE_FUNDING,
6490         DATE_FUNDING_REQUIRED,
6491         DATE_ACCEPTED,
6492         DATE_DELIVERY_EXPECTED,
6493         OEC,
6494         CAPITAL_AMOUNT,
6495         RESIDUAL_GRNTY_AMOUNT,
6496         RESIDUAL_CODE,
6497         RVI_PREMIUM,
6498         CREDIT_NATURE,
6499         CAPITALIZED_INTEREST,
6500         CAPITAL_REDUCTION_PERCENT,
6501 --Bug# 2697681 11.5.9
6502         DATE_PAY_INVESTOR_START,
6503         PAY_INVESTOR_FREQUENCY,
6504         PAY_INVESTOR_EVENT,
6505         PAY_INVESTOR_REMITTANCE_DAYS,
6506 --financed fees
6507         FEE_TYPE,
6508 --Bug#3143522 : 11.5.10
6509    --subsidy
6510    SUBSIDY_ID,
6511    --SUBSIDIZED_OEC,
6512    --SUBSIDIZED_CAP_AMOUNT,
6513    SUBSIDY_OVERRIDE_AMOUNT,
6514    --financed fee
6515    PRE_TAX_YIELD,
6516    AFTER_TAX_YIELD,
6517    IMPLICIT_INTEREST_RATE,
6518    IMPLICIT_NON_IDC_INTEREST_RATE,
6519    PRE_TAX_IRR,
6520    AFTER_TAX_IRR,
6521 --quote
6522    SUB_PRE_TAX_YIELD,
6523    SUB_AFTER_TAX_YIELD,
6524    SUB_IMPL_INTEREST_RATE,
6525    SUB_IMPL_NON_IDC_INT_RATE,
6526    SUB_PRE_TAX_IRR,
6527    SUB_AFTER_TAX_IRR,
6528 --Bug# 2994971
6529    ITEM_INSURANCE_CATEGORY,
6530 --Bug# 3973640 :11.5.10+
6531    QTE_ID,
6532    FUNDING_DATE,
6533    STREAM_TYPE_SUBCLASS,
6534 --Bug# 4419339  OKLH
6535    DATE_FUNDING_EXPECTED,
6536    MANUFACTURER_NAME,
6537    MODEL_NUMBER,
6538    DOWN_PAYMENT_RECEIVER_CODE,
6539    CAPITALIZE_DOWN_PAYMENT_YN,
6540 --Bug#4373029
6541    FEE_PURPOSE_CODE,
6542    TERMINATION_VALUE,
6543 --Bug# 4631549
6544    EXPECTED_ASSET_COST,
6545    ORIG_CONTRACT_LINE_ID,
6546 --Bug# 16344245
6547    ORIGINATION_INCOME,
6548    AMOUNT_BALANCE_LEGACY,
6549    DT_EFFECTIVE_BALANCE_LEGACY
6550 
6551 )
6552   SELECT
6553       p_major_version,
6554 	ID,
6555         KLE_ID,
6556         STY_ID,
6557         OBJECT_VERSION_NUMBER,
6558         LAO_AMOUNT,
6559         FEE_CHARGE,
6560         TITLE_DATE,
6561         DATE_RESIDUAL_LAST_REVIEW,
6562         DATE_LAST_REAMORTISATION,
6563         TERMINATION_PURCHASE_AMOUNT,
6564         DATE_LAST_CLEANUP,
6565         REMARKETED_AMOUNT,
6566         DATE_REMARKETED,
6567         REMARKET_MARGIN,
6568         REPURCHASED_AMOUNT,
6569         DATE_REPURCHASED,
6570         GAIN_LOSS,
6571         FLOOR_AMOUNT,
6572         PREVIOUS_CONTRACT,
6573         TRACKED_RESIDUAL,
6574         DATE_TITLE_RECEIVED,
6575         ESTIMATED_OEC,
6576         RESIDUAL_PERCENTAGE,
6577         CAPITAL_REDUCTION,
6578         VENDOR_ADVANCE_PAID,
6579         TRADEIN_AMOUNT,
6580         DELIVERED_DATE,
6581         YEAR_OF_MANUFACTURE,
6582         INITIAL_DIRECT_COST,
6583         OCCUPANCY,
6584         DATE_LAST_INSPECTION,
6585         DATE_NEXT_INSPECTION_DUE,
6586         WEIGHTED_AVERAGE_LIFE,
6587         BOND_EQUIVALENT_YIELD,
6588         REFINANCE_AMOUNT,
6589         YEAR_BUILT,
6590         COVERAGE_RATIO,
6591         GROSS_SQUARE_FOOTAGE,
6592         NET_RENTABLE,
6593         DATE_LETTER_ACCEPTANCE,
6594         DATE_COMMITMENT_EXPIRATION,
6595         DATE_APPRAISAL,
6596         APPRAISAL_VALUE,
6597         RESIDUAL_VALUE,
6598         PERCENT,
6599         COVERAGE,
6600         LRV_AMOUNT,
6601         AMOUNT,
6602         LRS_PERCENT,
6603         EVERGREEN_PERCENT,
6604         PERCENT_STAKE,
6605         AMOUNT_STAKE,
6606         DATE_SOLD,
6607         STY_ID_FOR,
6608         ATTRIBUTE_CATEGORY,
6609         ATTRIBUTE1,
6610         ATTRIBUTE2,
6611         ATTRIBUTE3,
6612         ATTRIBUTE4,
6613         ATTRIBUTE5,
6614         ATTRIBUTE6,
6615         ATTRIBUTE7,
6616         ATTRIBUTE8,
6617         ATTRIBUTE9,
6618         ATTRIBUTE10,
6619         ATTRIBUTE11,
6620         ATTRIBUTE12,
6621         ATTRIBUTE13,
6622         ATTRIBUTE14,
6623         ATTRIBUTE15,
6624         CREATED_BY,
6625         CREATION_DATE,
6626         LAST_UPDATED_BY,
6627         LAST_UPDATE_DATE,
6628         LAST_UPDATE_LOGIN,
6629         NTY_CODE,
6630         FCG_CODE,
6631         PRC_CODE,
6632         RE_LEASE_YN,
6633         PRESCRIBED_ASSET_YN,
6634         CREDIT_TENANT_YN,
6635         SECURED_DEAL_YN,
6636         CLG_ID,
6637         DATE_FUNDING,
6638         DATE_FUNDING_REQUIRED,
6639         DATE_ACCEPTED,
6640         DATE_DELIVERY_EXPECTED,
6641         OEC,
6642         CAPITAL_AMOUNT,
6643         RESIDUAL_GRNTY_AMOUNT,
6644         RESIDUAL_CODE,
6645         RVI_PREMIUM,
6646         CREDIT_NATURE,
6647         CAPITALIZED_INTEREST,
6648         CAPITAL_REDUCTION_PERCENT,
6649 --Bug# 2697681 11.5.9
6650         DATE_PAY_INVESTOR_START,
6651         PAY_INVESTOR_FREQUENCY,
6652         PAY_INVESTOR_EVENT,
6653         PAY_INVESTOR_REMITTANCE_DAYS,
6654 --financed fees
6655         FEE_TYPE,
6656 --Bug#3143522 : 11.5.10
6657    --subsidy
6658    SUBSIDY_ID,
6659    --SUBSIDIZED_OEC,
6660    --SUBSIDIZED_CAP_AMOUNT,
6661    SUBSIDY_OVERRIDE_AMOUNT,
6662    --financed fee
6663    PRE_TAX_YIELD,
6664    AFTER_TAX_YIELD,
6665    IMPLICIT_INTEREST_RATE,
6666    IMPLICIT_NON_IDC_INTEREST_RATE,
6667    PRE_TAX_IRR,
6668    AFTER_TAX_IRR,
6669 --quote
6670    SUB_PRE_TAX_YIELD,
6671    SUB_AFTER_TAX_YIELD,
6672    SUB_IMPL_INTEREST_RATE,
6673    SUB_IMPL_NON_IDC_INT_RATE,
6674    SUB_PRE_TAX_IRR,
6675    SUB_AFTER_TAX_IRR,
6676 --Bug# 2994971
6677    ITEM_INSURANCE_CATEGORY,
6678 --Bug# 3973640 : 11.5.10+
6679    QTE_ID,
6680    FUNDING_DATE,
6681    STREAM_TYPE_SUBCLASS,
6682 --Bug# 4419339  OKLH
6683    DATE_FUNDING_EXPECTED,
6684    MANUFACTURER_NAME,
6685    MODEL_NUMBER,
6686    DOWN_PAYMENT_RECEIVER_CODE,
6687    CAPITALIZE_DOWN_PAYMENT_YN,
6688    FEE_PURPOSE_CODE,
6689    TERMINATION_VALUE,
6690 --Bug# 4631549
6691    EXPECTED_ASSET_COST,
6692    ORIG_CONTRACT_LINE_ID,
6693 --Bug# 16344245
6694    ORIGINATION_INCOME,
6695    AMOUNT_BALANCE_LEGACY,
6696    DT_EFFECTIVE_BALANCE_LEGACY
6697 
6698   FROM OKL_K_LINES
6699   WHERE id in (select id from okc_k_lines_b where dnz_chr_id = p_chr_id);
6700 
6701   RETURN l_return_status;
6702   EXCEPTION
6703        -- other appropriate handlers
6704     WHEN OTHERS THEN
6705        -- store SQL error message on message stack
6706              OKC_API.SET_MESSAGE(p_app_name     => okc_version_pvt.G_APP_NAME,
6707                                  p_msg_name     => okc_version_pvt.G_UNEXPECTED_ERROR,
6708                                  p_token1       => okc_version_pvt.G_SQLCODE_TOKEN,
6709                                  p_token1_value => sqlcode,
6710                                  p_token2       => okc_version_pvt.G_SQLERRM_TOKEN,
6711                                  p_token2_value => sqlerrm);
6712 
6713        -- notify  UNEXPECTED error
6714              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
6715              return l_return_status;
6716 END create_version;
6717 
6718   FUNCTION restore_version(
6719     p_chr_id IN NUMBER,
6720     p_major_version IN NUMBER) RETURN VARCHAR2 IS
6721 
6722   l_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
6723 
6724 BEGIN
6725 INSERT INTO OKL_K_LINES
6726   (
6727 	ID,
6728         KLE_ID,
6729         STY_ID,
6730         OBJECT_VERSION_NUMBER,
6731         LAO_AMOUNT,
6732         FEE_CHARGE,
6733         TITLE_DATE,
6734         DATE_RESIDUAL_LAST_REVIEW,
6735         DATE_LAST_REAMORTISATION,
6736         TERMINATION_PURCHASE_AMOUNT,
6737         DATE_LAST_CLEANUP,
6738         REMARKETED_AMOUNT,
6739         DATE_REMARKETED,
6740         REMARKET_MARGIN,
6741         REPURCHASED_AMOUNT,
6742         DATE_REPURCHASED,
6743         GAIN_LOSS,
6744         FLOOR_AMOUNT,
6745         PREVIOUS_CONTRACT,
6746         TRACKED_RESIDUAL,
6747         DATE_TITLE_RECEIVED,
6748         ESTIMATED_OEC,
6749         RESIDUAL_PERCENTAGE,
6750         CAPITAL_REDUCTION,
6751         VENDOR_ADVANCE_PAID,
6752         TRADEIN_AMOUNT,
6753         DELIVERED_DATE,
6754         YEAR_OF_MANUFACTURE,
6755         INITIAL_DIRECT_COST,
6756         OCCUPANCY,
6757         DATE_LAST_INSPECTION,
6758         DATE_NEXT_INSPECTION_DUE,
6759         WEIGHTED_AVERAGE_LIFE,
6760         BOND_EQUIVALENT_YIELD,
6761         REFINANCE_AMOUNT,
6762         YEAR_BUILT,
6763         COVERAGE_RATIO,
6764         GROSS_SQUARE_FOOTAGE,
6765         NET_RENTABLE,
6766         DATE_LETTER_ACCEPTANCE,
6767         DATE_COMMITMENT_EXPIRATION,
6768         DATE_APPRAISAL,
6769         APPRAISAL_VALUE,
6770         RESIDUAL_VALUE,
6771         PERCENT,
6772         COVERAGE,
6773         LRV_AMOUNT,
6774         AMOUNT,
6775         LRS_PERCENT,
6776         EVERGREEN_PERCENT,
6777         PERCENT_STAKE,
6778         AMOUNT_STAKE,
6779         DATE_SOLD,
6780         STY_ID_FOR,
6781         ATTRIBUTE_CATEGORY,
6782         ATTRIBUTE1,
6783         ATTRIBUTE2,
6784         ATTRIBUTE3,
6785         ATTRIBUTE4,
6786         ATTRIBUTE5,
6787         ATTRIBUTE6,
6788         ATTRIBUTE7,
6789         ATTRIBUTE8,
6790         ATTRIBUTE9,
6791         ATTRIBUTE10,
6792         ATTRIBUTE11,
6793         ATTRIBUTE12,
6794         ATTRIBUTE13,
6795         ATTRIBUTE14,
6796         ATTRIBUTE15,
6797         CREATED_BY,
6798         CREATION_DATE,
6799         LAST_UPDATED_BY,
6800         LAST_UPDATE_DATE,
6801         LAST_UPDATE_LOGIN,
6802         NTY_CODE,
6803         FCG_CODE,
6804         PRC_CODE,
6805         RE_LEASE_YN,
6806         PRESCRIBED_ASSET_YN,
6807         CREDIT_TENANT_YN,
6808         SECURED_DEAL_YN,
6809         CLG_ID,
6810         DATE_FUNDING,
6811         DATE_FUNDING_REQUIRED,
6812         DATE_ACCEPTED,
6813         DATE_DELIVERY_EXPECTED,
6814         OEC,
6815         CAPITAL_AMOUNT,
6816         RESIDUAL_GRNTY_AMOUNT,
6817         RESIDUAL_CODE,
6818         RVI_PREMIUM,
6819         CREDIT_NATURE,
6820         CAPITALIZED_INTEREST,
6821         CAPITAL_REDUCTION_PERCENT,
6822 --Bug# 2697681 11.5.9
6823         DATE_PAY_INVESTOR_START,
6824         PAY_INVESTOR_FREQUENCY,
6825         PAY_INVESTOR_EVENT,
6826         PAY_INVESTOR_REMITTANCE_DAYS,
6827 --financed fees
6828         FEE_TYPE,
6829 --Bug#3143522 : 11.5.10
6830    --subsidy
6831    SUBSIDY_ID,
6832    --SUBSIDIZED_OEC,
6833    --SUBSIDIZED_CAP_AMOUNT,
6834    SUBSIDY_OVERRIDE_AMOUNT,
6835    --financed fee
6836    PRE_TAX_YIELD,
6837    AFTER_TAX_YIELD,
6838    IMPLICIT_INTEREST_RATE,
6839    IMPLICIT_NON_IDC_INTEREST_RATE,
6840    PRE_TAX_IRR,
6841    AFTER_TAX_IRR,
6842 --quote
6843    SUB_PRE_TAX_YIELD,
6844    SUB_AFTER_TAX_YIELD,
6845    SUB_IMPL_INTEREST_RATE,
6846    SUB_IMPL_NON_IDC_INT_RATE,
6847    SUB_PRE_TAX_IRR,
6848    SUB_AFTER_TAX_IRR,
6849 --Bug# 2994971
6850    ITEM_INSURANCE_CATEGORY,
6851 --Bug# 3973640:11.5.10+
6852    QTE_ID,
6853    FUNDING_DATE,
6854    STREAM_TYPE_SUBCLASS,
6855 --Bug# 4419339  OKLH
6856    DATE_FUNDING_EXPECTED,
6857    MANUFACTURER_NAME,
6858    MODEL_NUMBER,
6859    DOWN_PAYMENT_RECEIVER_CODE,
6860    CAPITALIZE_DOWN_PAYMENT_YN,
6861 --Bug#4373029
6862    FEE_PURPOSE_CODE,
6863    TERMINATION_VALUE,
6864 --Bug# 4631549
6865    EXPECTED_ASSET_COST ,
6866    ORIG_CONTRACT_LINE_ID,
6867 --Bug# 16344245
6868    ORIGINATION_INCOME,
6869    AMOUNT_BALANCE_LEGACY,
6870    DT_EFFECTIVE_BALANCE_LEGACY
6871 
6872 )
6873   SELECT
6874 	ID,
6875         KLE_ID,
6876         STY_ID,
6877         OBJECT_VERSION_NUMBER,
6878         LAO_AMOUNT,
6879         FEE_CHARGE,
6880         TITLE_DATE,
6881         DATE_RESIDUAL_LAST_REVIEW,
6882         DATE_LAST_REAMORTISATION,
6883         TERMINATION_PURCHASE_AMOUNT,
6884         DATE_LAST_CLEANUP,
6885         REMARKETED_AMOUNT,
6886         DATE_REMARKETED,
6887         REMARKET_MARGIN,
6888         REPURCHASED_AMOUNT,
6889         DATE_REPURCHASED,
6890         GAIN_LOSS,
6891         FLOOR_AMOUNT,
6892         PREVIOUS_CONTRACT,
6893         TRACKED_RESIDUAL,
6894         DATE_TITLE_RECEIVED,
6895         ESTIMATED_OEC,
6896         RESIDUAL_PERCENTAGE,
6897         CAPITAL_REDUCTION,
6898         VENDOR_ADVANCE_PAID,
6899         TRADEIN_AMOUNT,
6900         DELIVERED_DATE,
6901         YEAR_OF_MANUFACTURE,
6902         INITIAL_DIRECT_COST,
6903         OCCUPANCY,
6904         DATE_LAST_INSPECTION,
6905         DATE_NEXT_INSPECTION_DUE,
6906         WEIGHTED_AVERAGE_LIFE,
6907         BOND_EQUIVALENT_YIELD,
6908         REFINANCE_AMOUNT,
6909         YEAR_BUILT,
6910         COVERAGE_RATIO,
6911         GROSS_SQUARE_FOOTAGE,
6912         NET_RENTABLE,
6913         DATE_LETTER_ACCEPTANCE,
6914         DATE_COMMITMENT_EXPIRATION,
6915         DATE_APPRAISAL,
6916         APPRAISAL_VALUE,
6917         RESIDUAL_VALUE,
6918         PERCENT,
6919         COVERAGE,
6920         LRV_AMOUNT,
6921         AMOUNT,
6922         LRS_PERCENT,
6923         EVERGREEN_PERCENT,
6924         PERCENT_STAKE,
6925         AMOUNT_STAKE,
6926         DATE_SOLD,
6927         STY_ID_FOR,
6928         ATTRIBUTE_CATEGORY,
6929         ATTRIBUTE1,
6930         ATTRIBUTE2,
6931         ATTRIBUTE3,
6932         ATTRIBUTE4,
6933         ATTRIBUTE5,
6934         ATTRIBUTE6,
6935         ATTRIBUTE7,
6936         ATTRIBUTE8,
6937         ATTRIBUTE9,
6938         ATTRIBUTE10,
6939         ATTRIBUTE11,
6940         ATTRIBUTE12,
6941         ATTRIBUTE13,
6942         ATTRIBUTE14,
6943         ATTRIBUTE15,
6944         CREATED_BY,
6945         CREATION_DATE,
6946         LAST_UPDATED_BY,
6947         LAST_UPDATE_DATE,
6948         LAST_UPDATE_LOGIN,
6949         NTY_CODE,
6950         FCG_CODE,
6951         PRC_CODE,
6952         RE_LEASE_YN,
6953         PRESCRIBED_ASSET_YN,
6954         CREDIT_TENANT_YN,
6955         SECURED_DEAL_YN,
6956         CLG_ID,
6957         DATE_FUNDING,
6958         DATE_FUNDING_REQUIRED,
6959         DATE_ACCEPTED,
6960         DATE_DELIVERY_EXPECTED,
6961         OEC,
6962         CAPITAL_AMOUNT,
6963         RESIDUAL_GRNTY_AMOUNT,
6964         RESIDUAL_CODE,
6965         RVI_PREMIUM,
6966         CREDIT_NATURE,
6967         CAPITALIZED_INTEREST,
6968         CAPITAL_REDUCTION_PERCENT,
6969 --Bug# 2697681 11.5.9
6970         DATE_PAY_INVESTOR_START,
6971         PAY_INVESTOR_FREQUENCY,
6972         PAY_INVESTOR_EVENT,
6973         PAY_INVESTOR_REMITTANCE_DAYS,
6974 --financed fees
6975         FEE_TYPE,
6976 --Bug#3143522 11.5.10
6977    --subsidy
6978    SUBSIDY_ID,
6979    --SUBSIDIZED_OEC,
6980    --SUBSIDIZED_CAP_AMOUNT,
6981    SUBSIDY_OVERRIDE_AMOUNT,
6982    --financed fee
6983    PRE_TAX_YIELD,
6984    AFTER_TAX_YIELD,
6985    IMPLICIT_INTEREST_RATE,
6986    IMPLICIT_NON_IDC_INTEREST_RATE,
6987    PRE_TAX_IRR,
6988    AFTER_TAX_IRR,
6989 --quote
6990    SUB_PRE_TAX_YIELD,
6991    SUB_AFTER_TAX_YIELD,
6992    SUB_IMPL_INTEREST_RATE,
6993    SUB_IMPL_NON_IDC_INT_RATE,
6994    SUB_PRE_TAX_IRR,
6995    SUB_AFTER_TAX_IRR,
6996 --Bug#2994971
6997    ITEM_INSURANCE_CATEGORY,
6998 --Bug# 3973640 :11.5.10+
6999    QTE_ID,
7000    FUNDING_DATE,
7001    STREAM_TYPE_SUBCLASS,
7002 --Bug# 4419339 :OKLH
7003    DATE_FUNDING_EXPECTED,
7004    MANUFACTURER_NAME,
7005    MODEL_NUMBER,
7006    DOWN_PAYMENT_RECEIVER_CODE,
7007    CAPITALIZE_DOWN_PAYMENT_YN,
7008 --Bug# 4373029 : OKLH Sales Tax
7009    FEE_PURPOSE_CODE,
7010    TERMINATION_VALUE,
7011 --Bug# 4631549
7012    EXPECTED_ASSET_COST,
7013    ORIG_CONTRACT_LINE_ID,
7014 --Bug# 16344245
7015    ORIGINATION_INCOME,
7016    AMOUNT_BALANCE_LEGACY,
7017    DT_EFFECTIVE_BALANCE_LEGACY
7018 
7019   FROM OKL_K_LINES_H
7020   WHERE id in (select id from okc_k_lines_b where dnz_chr_id = p_chr_id) and major_version = p_major_version;
7021 
7022 
7023   RETURN l_return_status;
7024   EXCEPTION
7025        -- other appropriate handlers
7026     WHEN OTHERS THEN
7027        -- store SQL error message on message stack
7028              OKC_API.SET_MESSAGE(p_app_name     => okc_version_pvt.G_APP_NAME,
7029                                  p_msg_name     => okc_version_pvt.G_UNEXPECTED_ERROR,
7030                                  p_token1       => okc_version_pvt.G_SQLCODE_TOKEN,
7031                                  p_token1_value => sqlcode,
7032                                  p_token2       => okc_version_pvt.G_SQLERRM_TOKEN,
7033                                  p_token2_value => sqlerrm);
7034 
7035        -- notify  UNEXPECTED error
7036              l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
7037              return l_return_status;
7038 END restore_version;
7039 
7040 
7041 END OKL_KLE_PVT;