DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_SIL_PVT

Source


1 PACKAGE BODY OKL_SIL_PVT AS
2 /* $Header: OKLSSILB.pls 120.3.12010000.4 2009/07/21 00:23:07 sechawla ship $ */
3   ---------------------------------------------------------------------------
4   -- FUNCTION get_seq_id
5   ---------------------------------------------------------------------------
6   FUNCTION get_seq_id RETURN NUMBER IS
7   BEGIN
8     RETURN(okc_p_util.raw_to_number(sys_guid()));
9   END get_seq_id;
10 
11   ---------------------------------------------------------------------------
12   -- PROCEDURE qc
13   ---------------------------------------------------------------------------
14   PROCEDURE qc IS
15   BEGIN
16     NULL;
17   END qc;
18 
19   ---------------------------------------------------------------------------
20   -- PROCEDURE change_version
21   ---------------------------------------------------------------------------
22   PROCEDURE change_version IS
23   BEGIN
24     NULL;
25   END change_version;
26 
27   ---------------------------------------------------------------------------
28   -- PROCEDURE api_copy
29   ---------------------------------------------------------------------------
30   PROCEDURE api_copy IS
31   BEGIN
32     NULL;
33   END api_copy;
34 
35   ---------------------------------------------------------------------------
36   -- FUNCTION get_rec for: OKL_SIF_LINES
37   ---------------------------------------------------------------------------
38   FUNCTION get_rec (
39     p_sil_rec                      IN sil_rec_type,
40     x_no_data_found                OUT NOCOPY BOOLEAN
41   ) RETURN sil_rec_type IS
42     CURSOR sil_pk_csr (p_id                 IN NUMBER) IS
43     SELECT
44             ID,
45             STATE_DEPRE_DMNSHING_VALUE_RT,
46             BOOK_DEPRE_DMNSHING_VALUE_RT,
47             RESIDUAL_GUARANTEE_METHOD,
48             FED_DEPRE_TERM,
49             FED_DEPRE_DMNSHING_VALUE_RATE,
50             FED_DEPRE_ADR_CONVE,
51             STATE_DEPRE_BASIS_PERCENT,
52             STATE_DEPRE_METHOD,
53             PURCHASE_OPTION,
54             PURCHASE_OPTION_AMOUNT,
55             ASSET_COST,
56             STATE_DEPRE_TERM,
57             STATE_DEPRE_ADR_CONVENT,
58             FED_DEPRE_METHOD,
59             RESIDUAL_AMOUNT,
60             FED_DEPRE_SALVAGE,
61             DATE_FED_DEPRE,
62             BOOK_SALVAGE,
63             BOOK_ADR_CONVENTION,
64             STATE_DEPRE_SALVAGE,
65             FED_DEPRE_BASIS_PERCENT,
66             BOOK_BASIS_PERCENT,
67             DATE_DELIVERY,
68             BOOK_TERM,
69             RESIDUAL_GUARANTEE_AMOUNT,
70             DATE_FUNDING,
71             DATE_BOOK,
72             DATE_STATE_DEPRE,
73             BOOK_METHOD,
74             STREAM_INTERFACE_ATTRIBUTE08,
75             STREAM_INTERFACE_ATTRIBUTE03,
76             STREAM_INTERFACE_ATTRIBUTE01,
77             INDEX_NUMBER,
78             STREAM_INTERFACE_ATTRIBUTE05,
79             DESCRIPTION,
80             STREAM_INTERFACE_ATTRIBUTE10,
81             STREAM_INTERFACE_ATTRIBUTE06,
82             STREAM_INTERFACE_ATTRIBUTE09,
83             STREAM_INTERFACE_ATTRIBUTE07,
84             STREAM_INTERFACE_ATTRIBUTE14,
85             STREAM_INTERFACE_ATTRIBUTE12,
86             STREAM_INTERFACE_ATTRIBUTE15,
87             STREAM_INTERFACE_ATTRIBUTE02,
88             STREAM_INTERFACE_ATTRIBUTE11,
89             STREAM_INTERFACE_ATTRIBUTE04,
90             STREAM_INTERFACE_ATTRIBUTE13,
91             DATE_START,
92             DATE_LENDING,
93             SIF_ID,
94             OBJECT_VERSION_NUMBER,
95             KLE_ID,
96             SIL_TYPE,
97             CREATED_BY,
98             LAST_UPDATED_BY,
99             CREATION_DATE,
100             LAST_UPDATE_DATE,
101             LAST_UPDATE_LOGIN,
102             -- mvasudev , 05/13/2002
103             RESIDUAL_GUARANTEE_TYPE,
104             RESIDUAL_DATE,
105             DOWN_PAYMENT_AMOUNT,
106             CAPITALIZE_DOWN_PAYMENT_YN,
107             orig_contract_line_id
108       FROM Okl_Sif_Lines
109      WHERE okl_sif_lines.id     = p_id;
110     l_sil_pk                       sil_pk_csr%ROWTYPE;
111     l_sil_rec                      sil_rec_type;
112   BEGIN
113     x_no_data_found := TRUE;
114     -- Get current database values
115     OPEN sil_pk_csr (p_sil_rec.id);
116     FETCH sil_pk_csr INTO
117               l_sil_rec.ID,
118               l_sil_rec.STATE_DEPRE_DMNSHING_VALUE_RT,
119               l_sil_rec.BOOK_DEPRE_DMNSHING_VALUE_RT,
120               l_sil_rec.RESIDUAL_GUARANTEE_METHOD,
121               l_sil_rec.FED_DEPRE_TERM,
122               l_sil_rec.FED_DEPRE_DMNSHING_VALUE_RATE,
123               l_sil_rec.FED_DEPRE_ADR_CONVE,
124               l_sil_rec.STATE_DEPRE_BASIS_PERCENT,
125               l_sil_rec.STATE_DEPRE_METHOD,
126               l_sil_rec.PURCHASE_OPTION,
127               l_sil_rec.PURCHASE_OPTION_AMOUNT,
128               l_sil_rec.ASSET_COST,
129               l_sil_rec.STATE_DEPRE_TERM,
130               l_sil_rec.STATE_DEPRE_ADR_CONVENT,
131               l_sil_rec.FED_DEPRE_METHOD,
132               l_sil_rec.RESIDUAL_AMOUNT,
133               l_sil_rec.FED_DEPRE_SALVAGE,
134               l_sil_rec.DATE_FED_DEPRE,
135               l_sil_rec.BOOK_SALVAGE,
136               l_sil_rec.BOOK_ADR_CONVENTION,
137               l_sil_rec.STATE_DEPRE_SALVAGE,
138               l_sil_rec.FED_DEPRE_BASIS_PERCENT,
139               l_sil_rec.BOOK_BASIS_PERCENT,
140               l_sil_rec.DATE_DELIVERY,
141               l_sil_rec.BOOK_TERM,
142               l_sil_rec.RESIDUAL_GUARANTEE_AMOUNT,
143               l_sil_rec.DATE_FUNDING,
144               l_sil_rec.DATE_BOOK,
145               l_sil_rec.DATE_STATE_DEPRE,
146               l_sil_rec.BOOK_METHOD,
147               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE08,
148               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE03,
149               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE01,
150               l_sil_rec.INDEX_NUMBER,
151               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE05,
152               l_sil_rec.DESCRIPTION,
153               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE10,
154               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE06,
155               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE09,
156               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE07,
157               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE14,
158               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE12,
159               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE15,
160               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE02,
161               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE11,
162               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE04,
163               l_sil_rec.STREAM_INTERFACE_ATTRIBUTE13,
164               l_sil_rec.DATE_START,
165               l_sil_rec.DATE_LENDING,
166               l_sil_rec.SIF_ID,
167               l_sil_rec.OBJECT_VERSION_NUMBER,
168               l_sil_rec.KLE_ID,
169               l_sil_rec.SIL_TYPE,
170               l_sil_rec.CREATED_BY,
171               l_sil_rec.LAST_UPDATED_BY,
172               l_sil_rec.CREATION_DATE,
173               l_sil_rec.LAST_UPDATE_DATE,
174               l_sil_rec.LAST_UPDATE_LOGIN,
175               -- mvasudev , 05/13/2002
176               l_sil_rec.RESIDUAL_GUARANTEE_TYPE,
177               l_sil_rec.RESIDUAL_DATE,
178               l_sil_rec.DOWN_PAYMENT_AMOUNT,
179               l_sil_rec.CAPITALIZE_DOWN_PAYMENT_YN,
180 			  l_sil_rec.orig_contract_line_id;
181     x_no_data_found := sil_pk_csr%NOTFOUND;
182     CLOSE sil_pk_csr;
183     RETURN(l_sil_rec);
184   END get_rec;
185 
186   FUNCTION get_rec (
187     p_sil_rec                      IN sil_rec_type
188   ) RETURN sil_rec_type IS
189     l_row_notfound                 BOOLEAN := TRUE;
190   BEGIN
191     RETURN(get_rec(p_sil_rec, l_row_notfound));
192   END get_rec;
193   ---------------------------------------------------------------------------
194   -- FUNCTION get_rec for: OKL_SIF_LINES_V
195   ---------------------------------------------------------------------------
196   FUNCTION get_rec (
197     p_silv_rec                     IN silv_rec_type,
198     x_no_data_found                OUT NOCOPY BOOLEAN
199   ) RETURN silv_rec_type IS
200     CURSOR silv_pk_csr (p_id                 IN NUMBER) IS
201     SELECT
202             ID,
203             STATE_DEPRE_DMNSHING_VALUE_RT,
204             BOOK_DEPRE_DMNSHING_VALUE_RT,
205             RESIDUAL_GUARANTEE_METHOD,
206             FED_DEPRE_TERM,
207             FED_DEPRE_DMNSHING_VALUE_RATE,
208             FED_DEPRE_ADR_CONVE,
209             STATE_DEPRE_BASIS_PERCENT,
210             STATE_DEPRE_METHOD,
211             PURCHASE_OPTION,
212             PURCHASE_OPTION_AMOUNT,
213             ASSET_COST,
214             STATE_DEPRE_TERM,
215             STATE_DEPRE_ADR_CONVENT,
216             FED_DEPRE_METHOD,
217             RESIDUAL_AMOUNT,
218             FED_DEPRE_SALVAGE,
219             DATE_FED_DEPRE,
220             BOOK_SALVAGE,
221             BOOK_ADR_CONVENTION,
222             STATE_DEPRE_SALVAGE,
223             FED_DEPRE_BASIS_PERCENT,
224             BOOK_BASIS_PERCENT,
225             DATE_DELIVERY,
226             BOOK_TERM,
227             RESIDUAL_GUARANTEE_AMOUNT,
228             DATE_FUNDING,
229             DATE_BOOK,
230             DATE_STATE_DEPRE,
231             BOOK_METHOD,
232             STREAM_INTERFACE_ATTRIBUTE01,
233             STREAM_INTERFACE_ATTRIBUTE02,
234             STREAM_INTERFACE_ATTRIBUTE03,
235             STREAM_INTERFACE_ATTRIBUTE04,
236             STREAM_INTERFACE_ATTRIBUTE05,
237             STREAM_INTERFACE_ATTRIBUTE06,
238             STREAM_INTERFACE_ATTRIBUTE07,
239             STREAM_INTERFACE_ATTRIBUTE08,
240             STREAM_INTERFACE_ATTRIBUTE09,
241             STREAM_INTERFACE_ATTRIBUTE10,
242             STREAM_INTERFACE_ATTRIBUTE11,
243             STREAM_INTERFACE_ATTRIBUTE12,
244             STREAM_INTERFACE_ATTRIBUTE13,
245             STREAM_INTERFACE_ATTRIBUTE14,
246             STREAM_INTERFACE_ATTRIBUTE15,
247             DATE_START,
248             DATE_LENDING,
249             INDEX_NUMBER,
250             SIF_ID,
251             OBJECT_VERSION_NUMBER,
252             KLE_ID,
253             SIL_TYPE,
254             DESCRIPTION,
255             CREATED_BY,
256             LAST_UPDATED_BY,
257             CREATION_DATE,
258             LAST_UPDATE_DATE,
259             LAST_UPDATE_LOGIN,
260             -- mvasudev , 05/13/2002
261             RESIDUAL_GUARANTEE_TYPE,
262             RESIDUAL_DATE,
263             DOWN_PAYMENT_AMOUNT,
264             CAPITALIZE_DOWN_PAYMENT_YN,
265             orig_contract_line_id
266       FROM Okl_Sif_Lines_V
267      WHERE okl_sif_lines_v.id   = p_id;
268     l_silv_pk                      silv_pk_csr%ROWTYPE;
269     l_silv_rec                     silv_rec_type;
270   BEGIN
271     x_no_data_found := TRUE;
272     -- Get current database values
273     OPEN silv_pk_csr (p_silv_rec.id);
274     FETCH silv_pk_csr INTO
275               l_silv_rec.ID,
276               l_silv_rec.STATE_DEPRE_DMNSHING_VALUE_RT,
277               l_silv_rec.BOOK_DEPRE_DMNSHING_VALUE_RT,
278               l_silv_rec.RESIDUAL_GUARANTEE_METHOD,
279               l_silv_rec.FED_DEPRE_TERM,
280               l_silv_rec.FED_DEPRE_DMNSHING_VALUE_RATE,
281               l_silv_rec.FED_DEPRE_ADR_CONVE,
282               l_silv_rec.STATE_DEPRE_BASIS_PERCENT,
283               l_silv_rec.STATE_DEPRE_METHOD,
284               l_silv_rec.PURCHASE_OPTION,
285               l_silv_rec.PURCHASE_OPTION_AMOUNT,
286               l_silv_rec.ASSET_COST,
287               l_silv_rec.STATE_DEPRE_TERM,
288               l_silv_rec.STATE_DEPRE_ADR_CONVENT,
289               l_silv_rec.FED_DEPRE_METHOD,
290               l_silv_rec.RESIDUAL_AMOUNT,
291               l_silv_rec.FED_DEPRE_SALVAGE,
292               l_silv_rec.DATE_FED_DEPRE,
293               l_silv_rec.BOOK_SALVAGE,
294               l_silv_rec.BOOK_ADR_CONVENTION,
295               l_silv_rec.STATE_DEPRE_SALVAGE,
296               l_silv_rec.FED_DEPRE_BASIS_PERCENT,
297               l_silv_rec.BOOK_BASIS_PERCENT,
298               l_silv_rec.DATE_DELIVERY,
299               l_silv_rec.BOOK_TERM,
300               l_silv_rec.RESIDUAL_GUARANTEE_AMOUNT,
301               l_silv_rec.DATE_FUNDING,
302               l_silv_rec.DATE_BOOK,
303               l_silv_rec.DATE_STATE_DEPRE,
304               l_silv_rec.BOOK_METHOD,
305               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE01,
306               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE02,
307               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE03,
308               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE04,
309               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE05,
310               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE06,
311               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE07,
312               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE08,
313               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE09,
314               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE10,
315               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE11,
316               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE12,
317               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE13,
318               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE14,
319               l_silv_rec.STREAM_INTERFACE_ATTRIBUTE15,
320               l_silv_rec.DATE_START,
321               l_silv_rec.DATE_LENDING,
322               l_silv_rec.INDEX_NUMBER,
323               l_silv_rec.SIF_ID,
324               l_silv_rec.OBJECT_VERSION_NUMBER,
325               l_silv_rec.KLE_ID,
326               l_silv_rec.SIL_TYPE,
327               l_silv_rec.DESCRIPTION,
328               l_silv_rec.CREATED_BY,
329               l_silv_rec.LAST_UPDATED_BY,
330               l_silv_rec.CREATION_DATE,
331               l_silv_rec.LAST_UPDATE_DATE,
332               l_silv_rec.LAST_UPDATE_LOGIN,
333               -- mvasudev , 05/13/2002
334               l_silv_rec.RESIDUAL_GUARANTEE_TYPE,
335               l_silv_rec.RESIDUAL_DATE,
336               l_silv_rec.DOWN_PAYMENT_AMOUNT,
337               l_silv_rec.CAPITALIZE_DOWN_PAYMENT_YN,
338 			  l_silv_rec.orig_contract_line_id;
339     x_no_data_found := silv_pk_csr%NOTFOUND;
340     CLOSE silv_pk_csr;
341     RETURN(l_silv_rec);
342   END get_rec;
343 
344   FUNCTION get_rec (
345     p_silv_rec                     IN silv_rec_type
346   ) RETURN silv_rec_type IS
347     l_row_notfound                 BOOLEAN := TRUE;
348   BEGIN
349     RETURN(get_rec(p_silv_rec, l_row_notfound));
350   END get_rec;
351 
352   -----------------------------------------------------
353   -- FUNCTION null_out_defaults for: OKL_SIF_LINES_V --
354   -----------------------------------------------------
355   FUNCTION null_out_defaults (
356     p_silv_rec	IN silv_rec_type
357   ) RETURN silv_rec_type IS
358     l_silv_rec	silv_rec_type := p_silv_rec;
359   BEGIN
360     IF (l_silv_rec.STATE_DEPRE_DMNSHING_VALUE_RT = OKC_API.G_MISS_NUM) THEN
361       l_silv_rec.STATE_DEPRE_DMNSHING_VALUE_RT := NULL;
362     END IF;
363     IF (l_silv_rec.BOOK_DEPRE_DMNSHING_VALUE_RT = OKC_API.G_MISS_NUM) THEN
364       l_silv_rec.BOOK_DEPRE_DMNSHING_VALUE_RT := NULL;
365     END IF;
366     IF (l_silv_rec.residual_guarantee_method = OKC_API.G_MISS_CHAR) THEN
367       l_silv_rec.residual_guarantee_method := NULL;
368     END IF;
369     -- mvasudev , 05/13/2002
370     IF (l_silv_rec.residual_guarantee_type = OKC_API.G_MISS_CHAR) THEN
371           l_silv_rec.residual_guarantee_type := NULL;
372     END IF;
373     IF (l_silv_rec.residual_date = OKC_API.G_MISS_DATE) THEN
374           l_silv_rec.residual_date := NULL;
375     END IF;
376     IF (l_silv_rec.fed_depre_term = OKC_API.G_MISS_NUM) THEN
377       l_silv_rec.fed_depre_term := NULL;
378     END IF;
379     IF (l_silv_rec.fed_depre_dmnshing_value_rate = OKC_API.G_MISS_NUM) THEN
380       l_silv_rec.fed_depre_dmnshing_value_rate := NULL;
381     END IF;
382     IF (l_silv_rec.fed_depre_adr_conve = OKC_API.G_MISS_CHAR) THEN
383       l_silv_rec.fed_depre_adr_conve := NULL;
384     END IF;
385     IF (l_silv_rec.state_depre_basis_percent = OKC_API.G_MISS_NUM) THEN
386       l_silv_rec.state_depre_basis_percent := NULL;
387     END IF;
388     IF (l_silv_rec.state_depre_method = OKC_API.G_MISS_CHAR) THEN
389       l_silv_rec.state_depre_method := NULL;
390     END IF;
391     IF (l_silv_rec.purchase_option = OKC_API.G_MISS_CHAR) THEN
392       l_silv_rec.purchase_option := NULL;
393     END IF;
394     IF (l_silv_rec.purchase_option_amount = OKC_API.G_MISS_NUM) THEN
395       l_silv_rec.purchase_option_amount := NULL;
396     END IF;
397     IF (l_silv_rec.asset_cost = OKC_API.G_MISS_NUM) THEN
398       l_silv_rec.asset_cost := NULL;
399     END IF;
400     IF (l_silv_rec.state_depre_term = OKC_API.G_MISS_NUM) THEN
401       l_silv_rec.state_depre_term := NULL;
402     END IF;
403     IF (l_silv_rec.state_depre_adr_convent = OKC_API.G_MISS_CHAR) THEN
404       l_silv_rec.state_depre_adr_convent := NULL;
405     END IF;
406     IF (l_silv_rec.fed_depre_method = OKC_API.G_MISS_CHAR) THEN
407       l_silv_rec.fed_depre_method := NULL;
408     END IF;
409     IF (l_silv_rec.residual_amount = OKC_API.G_MISS_NUM) THEN
410       l_silv_rec.residual_amount := NULL;
411     END IF;
412     IF (l_silv_rec.fed_depre_salvage = OKC_API.G_MISS_NUM) THEN
413       l_silv_rec.fed_depre_salvage := NULL;
414     END IF;
415     IF (l_silv_rec.date_fed_depre = OKC_API.G_MISS_DATE) THEN
416       l_silv_rec.date_fed_depre := NULL;
417     END IF;
418     IF (l_silv_rec.book_salvage = OKC_API.G_MISS_NUM) THEN
419       l_silv_rec.book_salvage := NULL;
420     END IF;
421     IF (l_silv_rec.book_adr_convention = OKC_API.G_MISS_CHAR) THEN
422       l_silv_rec.book_adr_convention := NULL;
423     END IF;
424     IF (l_silv_rec.state_depre_salvage = OKC_API.G_MISS_NUM) THEN
425       l_silv_rec.state_depre_salvage := NULL;
426     END IF;
427     IF (l_silv_rec.fed_depre_basis_percent = OKC_API.G_MISS_NUM) THEN
428       l_silv_rec.fed_depre_basis_percent := NULL;
429     END IF;
430     IF (l_silv_rec.book_basis_percent = OKC_API.G_MISS_NUM) THEN
431       l_silv_rec.book_basis_percent := NULL;
432     END IF;
433     IF (l_silv_rec.date_delivery = OKC_API.G_MISS_DATE) THEN
434       l_silv_rec.date_delivery := NULL;
435     END IF;
436     IF (l_silv_rec.book_term = OKC_API.G_MISS_NUM) THEN
437       l_silv_rec.book_term := NULL;
438     END IF;
439     IF (l_silv_rec.residual_guarantee_amount = OKC_API.G_MISS_NUM) THEN
440       l_silv_rec.residual_guarantee_amount := NULL;
441     END IF;
442     IF (l_silv_rec.date_funding = OKC_API.G_MISS_DATE) THEN
443       l_silv_rec.date_funding := NULL;
444     END IF;
445     IF (l_silv_rec.date_book = OKC_API.G_MISS_DATE) THEN
446       l_silv_rec.date_book := NULL;
447     END IF;
448     IF (l_silv_rec.date_state_depre = OKC_API.G_MISS_DATE) THEN
449       l_silv_rec.date_state_depre := NULL;
450     END IF;
451     IF (l_silv_rec.book_method = OKC_API.G_MISS_CHAR) THEN
452       l_silv_rec.book_method := NULL;
453     END IF;
454     IF (l_silv_rec.stream_interface_attribute01 = OKC_API.G_MISS_CHAR) THEN
455       l_silv_rec.stream_interface_attribute01 := NULL;
456     END IF;
457     IF (l_silv_rec.stream_interface_attribute02 = OKC_API.G_MISS_CHAR) THEN
458       l_silv_rec.stream_interface_attribute02 := NULL;
459     END IF;
460     IF (l_silv_rec.stream_interface_attribute03 = OKC_API.G_MISS_CHAR) THEN
461       l_silv_rec.stream_interface_attribute03 := NULL;
462     END IF;
463     IF (l_silv_rec.stream_interface_attribute04 = OKC_API.G_MISS_CHAR) THEN
464       l_silv_rec.stream_interface_attribute04 := NULL;
465     END IF;
466     IF (l_silv_rec.stream_interface_attribute05 = OKC_API.G_MISS_CHAR) THEN
467       l_silv_rec.stream_interface_attribute05 := NULL;
468     END IF;
469     IF (l_silv_rec.stream_interface_attribute06 = OKC_API.G_MISS_CHAR) THEN
470       l_silv_rec.stream_interface_attribute06 := NULL;
471     END IF;
472     IF (l_silv_rec.stream_interface_attribute07 = OKC_API.G_MISS_CHAR) THEN
473       l_silv_rec.stream_interface_attribute07 := NULL;
474     END IF;
475     IF (l_silv_rec.stream_interface_attribute08 = OKC_API.G_MISS_CHAR) THEN
476       l_silv_rec.stream_interface_attribute08 := NULL;
477     END IF;
478     IF (l_silv_rec.stream_interface_attribute09 = OKC_API.G_MISS_CHAR) THEN
479       l_silv_rec.stream_interface_attribute09 := NULL;
480     END IF;
481     IF (l_silv_rec.stream_interface_attribute10 = OKC_API.G_MISS_CHAR) THEN
482       l_silv_rec.stream_interface_attribute10 := NULL;
483     END IF;
484     IF (l_silv_rec.stream_interface_attribute11 = OKC_API.G_MISS_CHAR) THEN
485       l_silv_rec.stream_interface_attribute11 := NULL;
486     END IF;
487     IF (l_silv_rec.stream_interface_attribute12 = OKC_API.G_MISS_CHAR) THEN
488       l_silv_rec.stream_interface_attribute12 := NULL;
489     END IF;
490     IF (l_silv_rec.stream_interface_attribute13 = OKC_API.G_MISS_CHAR) THEN
491       l_silv_rec.stream_interface_attribute13 := NULL;
492     END IF;
493     IF (l_silv_rec.stream_interface_attribute14 = OKC_API.G_MISS_CHAR) THEN
494       l_silv_rec.stream_interface_attribute14 := NULL;
495     END IF;
496     IF (l_silv_rec.stream_interface_attribute15 = OKC_API.G_MISS_CHAR) THEN
497       l_silv_rec.stream_interface_attribute15 := NULL;
498     END IF;
499     IF (l_silv_rec.date_start = OKC_API.G_MISS_DATE) THEN
500       l_silv_rec.date_start := NULL;
501     END IF;
502     IF (l_silv_rec.date_lending = OKC_API.G_MISS_DATE) THEN
503       l_silv_rec.date_lending := NULL;
504     END IF;
505     IF (l_silv_rec.index_number = OKC_API.G_MISS_NUM) THEN
506       l_silv_rec.index_number := NULL;
507     END IF;
508     IF (l_silv_rec.sif_id = OKC_API.G_MISS_NUM) THEN
509       l_silv_rec.sif_id := NULL;
510     END IF;
511     IF (l_silv_rec.object_version_number = OKC_API.G_MISS_NUM) THEN
512       l_silv_rec.object_version_number := NULL;
513     END IF;
514     IF (l_silv_rec.kle_id = OKC_API.G_MISS_NUM) THEN
515       l_silv_rec.kle_id := NULL;
516     END IF;
517     IF (l_silv_rec.sil_type = OKC_API.G_MISS_CHAR) THEN
518       l_silv_rec.sil_type := NULL;
519     END IF;
520     IF (l_silv_rec.description = OKC_API.G_MISS_CHAR) THEN
521       l_silv_rec.description := NULL;
522     END IF;
523     IF (l_silv_rec.created_by = OKC_API.G_MISS_NUM) THEN
524       l_silv_rec.created_by := NULL;
525     END IF;
526     IF (l_silv_rec.last_updated_by = OKC_API.G_MISS_NUM) THEN
527       l_silv_rec.last_updated_by := NULL;
528     END IF;
529     IF (l_silv_rec.creation_date = OKC_API.G_MISS_DATE) THEN
530       l_silv_rec.creation_date := NULL;
531     END IF;
532     IF (l_silv_rec.last_update_date = OKC_API.G_MISS_DATE) THEN
533       l_silv_rec.last_update_date := NULL;
534     END IF;
535     IF (l_silv_rec.last_update_login = OKC_API.G_MISS_NUM) THEN
536       l_silv_rec.last_update_login := NULL;
537     END IF;
538     IF (l_silv_rec.down_payment_amount = OKC_API.G_MISS_NUM) THEN
539       l_silv_rec.down_payment_amount := NULL;
540     END IF;
541     IF (l_silv_rec.capitalize_down_payment_yn = OKC_API.G_MISS_CHAR) THEN
542       l_silv_rec.capitalize_down_payment_yn := NULL;
543     END IF;
544 
545     IF (l_silv_rec.orig_contract_line_id = OKC_API.G_MISS_NUM) THEN
546       l_silv_rec.orig_contract_line_id := NULL;
547     END IF;
548 
549     RETURN(l_silv_rec);
550 
551   END null_out_defaults;
552 
553   -- START change : mvasudev , 08/15/2001
554   /*
555   -- TAPI CODE COMMENTED OUT IN FAVOUR OF WRITING SEPARATE PROCEDURES FOR EACH ATTRIBUTE/COLUMN
556   ---------------------------------------------------------------------------
557   -- PROCEDURE Validate_Attributes
558   ---------------------------------------------------------------------------
559   ---------------------------------------------
560   -- Validate_Attributes for:OKL_SIF_LINES_V --
561   ---------------------------------------------
562   FUNCTION Validate_Attributes (
563     p_silv_rec IN  silv_rec_type
564   ) RETURN VARCHAR2 IS
565     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
566   BEGIN
567     IF p_silv_rec.id = OKC_API.G_MISS_NUM OR
568        p_silv_rec.id IS NULL
569     THEN
570       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
571       l_return_status := OKC_API.G_RET_STS_ERROR;
572     ELSIF p_silv_rec.index_number = OKC_API.G_MISS_NUM OR
573           p_silv_rec.index_number IS NULL
574     THEN
575       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'index_number');
576       l_return_status := OKC_API.G_RET_STS_ERROR;
577     ELSIF p_silv_rec.sif_id = OKC_API.G_MISS_NUM OR
578           p_silv_rec.sif_id IS NULL
579     THEN
580       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'sif_id');
581       l_return_status := OKC_API.G_RET_STS_ERROR;
582     ELSIF p_silv_rec.object_version_number = OKC_API.G_MISS_NUM OR
583           p_silv_rec.object_version_number IS NULL
584     THEN
585       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
586       l_return_status := OKC_API.G_RET_STS_ERROR;
587     ELSIF p_silv_rec.kle_id = OKC_API.G_MISS_NUM OR
588           p_silv_rec.kle_id IS NULL
589     THEN
590       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'kle_id');
591       l_return_status := OKC_API.G_RET_STS_ERROR;
592     ELSIF p_silv_rec.sil_type = OKC_API.G_MISS_CHAR OR
593           p_silv_rec.sil_type IS NULL
594     THEN
595       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'sil_type');
596       l_return_status := OKC_API.G_RET_STS_ERROR;
597     END IF;
598     RETURN(l_return_status);
599   END Validate_Attributes;
600 */
601 
602 /**
603   * Adding Individual Procedures for each Attribute that
604   * needs to be validated
605   */
606   ---------------------------------------------------------------------------
607   -- PROCEDURE Validate_Id
608   ---------------------------------------------------------------------------
609   -- Start of comments
610   --
611   -- Procedure Name  : Validate_Id
612   -- Description     :
613   -- Business Rules  :
614   -- Parameters      :
615   -- Version         : 1.0
616   -- End of comments
617   ---------------------------------------------------------------------------
618   PROCEDURE Validate_Id(
619     p_silv_rec      IN   silv_rec_type,
620     x_return_status OUT NOCOPY  VARCHAR2
621   ) IS
622 
623   BEGIN
624     -- initialize return status
625     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
626 
627     IF p_silv_rec.id = Okc_Api.G_MISS_NUM OR
628       p_silv_rec.id IS NULL
629     THEN
630       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
631       x_return_status := Okc_Api.G_RET_STS_ERROR;
632       RAISE G_EXCEPTION_HALT_VALIDATION;
633     END IF;
634 
635   EXCEPTION
636     WHEN G_EXCEPTION_HALT_VALIDATION THEN
637     -- no processing necessary; validation can continue
638     -- with the next column
639     NULL;
640 
641     WHEN OTHERS THEN
642     -- store SQL error message on message stack for caller
643     Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
644                        ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
645                        ,p_token1       => G_OKL_SQLCODE_TOKEN
646                        ,p_token1_value => SQLCODE
647                        ,p_token2       => G_OKL_SQLERRM_TOKEN
648                        ,p_token2_value => SQLERRM);
649 
650     -- notify caller of an UNEXPECTED error
651     x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
652 
653   END Validate_Id;
654 
655   ---------------------------------------------------------------------------
656   -- PROCEDURE Validate_Object_Version_Number
657   ---------------------------------------------------------------------------
658   -- Start of comments
659   --
660   -- Procedure Name  : Validate_Object_Version_Number
661   -- Description     :
662   -- Business Rules  :
663   -- Parameters      :
664   -- Version         : 1.0
665   -- End of comments
666   ---------------------------------------------------------------------------
667   PROCEDURE Validate_Object_Version_Number(
668     p_silv_rec      IN   silv_rec_type,
669     x_return_status OUT NOCOPY  VARCHAR2
670   ) IS
671 
672   BEGIN
673 
674     -- initialize return status
675     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
676 
677     IF p_silv_rec.object_version_number = Okc_Api.G_MISS_NUM OR
678        p_silv_rec.object_version_number IS NULL
679     THEN
680       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
681       x_return_status := Okc_Api.G_RET_STS_ERROR;
682       RAISE G_EXCEPTION_HALT_VALIDATION;
683     END IF;
684 
685   EXCEPTION
686     WHEN G_EXCEPTION_HALT_VALIDATION THEN
687     -- no processing necessary; validation can continue
688     -- with the next column
689     NULL;
690 
691     WHEN OTHERS THEN
692       -- store SQL error message on message stack for caller
693       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
694                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
695                          ,p_token1       => G_OKL_SQLCODE_TOKEN
696                          ,p_token1_value => SQLCODE
697                          ,p_token2       => G_OKL_SQLERRM_TOKEN
698                          ,p_token2_value => SQLERRM);
699 
700       -- notify caller of an UNEXPECTED error
701       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
702 
703   END Validate_Object_Version_Number;
704 
705   ---------------------------------------------------------------------------
706   -- PROCEDURE Validate_Index_Number
707   ---------------------------------------------------------------------------
708   -- Start of comments
709   --
710   -- Procedure Name  : Validate_Index_Number
711   -- Description     :
712   -- Business Rules  :
713   -- Parameters      :
714   -- Version         : 1.0
715   -- End of comments
716   ---------------------------------------------------------------------------
717   PROCEDURE Validate_Index_Number(
718     p_silv_rec      IN   silv_rec_type,
719     x_return_status OUT NOCOPY  VARCHAR2
720   ) IS
721 
722   BEGIN
723     -- initialize return status
724     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
725 
726     IF p_silv_rec.index_number = Okc_Api.G_MISS_NUM OR
727       p_silv_rec.index_number IS NULL
728     THEN
729       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'index_number');
730       x_return_status := Okc_Api.G_RET_STS_ERROR;
731       RAISE G_EXCEPTION_HALT_VALIDATION;
732     END IF;
733 
734   EXCEPTION
735     WHEN G_EXCEPTION_HALT_VALIDATION THEN
736     -- no processing necessary; validation can continue
737     -- with the next column
738     NULL;
739 
740     WHEN OTHERS THEN
741     -- store SQL error message on message stack for caller
742     Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
743                        ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
744                        ,p_token1       => G_OKL_SQLCODE_TOKEN
745                        ,p_token1_value => SQLCODE
746                        ,p_token2       => G_OKL_SQLERRM_TOKEN
747                        ,p_token2_value => SQLERRM);
748 
749     -- notify caller of an UNEXPECTED error
750     x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
751 
752   END Validate_Index_Number;
753 
754   ---------------------------------------------------------------------------
755   -- PROCEDURE Validate_Sil_Type
756   ---------------------------------------------------------------------------
757   -- Start of comments
758   --
759   -- Procedure Name  : Validate_Sil_Type
760   -- Description     :
761   -- Business Rules  :
762   -- Parameters      :
763   -- Version         : 1.0
764   -- End of comments
765   ---------------------------------------------------------------------------
766   PROCEDURE Validate_Sil_Type(
767     p_silv_rec      IN   silv_rec_type,
768     x_return_status OUT NOCOPY  VARCHAR2
769   ) IS
770     l_found VARCHAR2(1);
771   BEGIN
772 
773     -- initialize return status
774     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
775 
776     IF p_silv_rec.Sil_type = Okc_Api.G_MISS_CHAR OR
777        p_silv_rec.Sil_type IS NULL
778     THEN
779       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'sil_type');
780       x_return_status := Okc_Api.G_RET_STS_ERROR;
781       RAISE G_EXCEPTION_HALT_VALIDATION;
782     ELSE
783 	--Check if sil_type exists in the fnd_common_lookups or not
784 	l_found := okl_accounting_util.validate_lookup_code(p_lookup_type => 'OKL_SIL_TYPE',
785 						    p_lookup_code => p_silv_rec.sil_type);
786 
787 
788 	IF (l_found <> OKL_API.G_TRUE ) THEN
789      OKC_API.set_message(G_OKC_APP, G_INVALID_VALUE,G_COL_NAME_TOKEN,'SIL_TYPE');
790 	     x_return_status := Okc_Api.G_RET_STS_ERROR;
791 		 -- raise the exception as there's no matching foreign key value
792 		 RAISE G_EXCEPTION_HALT_VALIDATION;
793 	END IF;
794 
795 
796     END IF;
797 
798   EXCEPTION
799     WHEN G_EXCEPTION_HALT_VALIDATION THEN
800     -- no processing necessary; validation can continue
801     -- with the next column
802     NULL;
803 
804     WHEN OTHERS THEN
805       -- store SQL error message on message stack for caller
806       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
807                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
808                          ,p_token1       => G_OKL_SQLCODE_TOKEN
809                          ,p_token1_value => SQLCODE
810                          ,p_token2       => G_OKL_SQLERRM_TOKEN
811                          ,p_token2_value => SQLERRM);
812 
813       -- notify caller of an UNEXPECTED error
814       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
815 
816   END Validate_Sil_Type;
817 
818   ---------------------------------------------------------------------------
819   -- PROCEDURE Validate_Sif_Id
820   ---------------------------------------------------------------------------
821   -- Start of comments
822   --
823   -- Procedure Name  : Validate_Sif_Id
824   -- Description     :
825   -- Business Rules  :
826   -- Parameters      :
827   -- Version         : 1.0
828   -- End of comments
829   ---------------------------------------------------------------------------
830   PROCEDURE Validate_Sif_Id(
831     p_silv_rec      IN   silv_rec_type,
832     x_return_status OUT NOCOPY  VARCHAR2
833   ) IS
834 
835   l_dummy                 VARCHAR2(1) 	:= '?';
836   l_row_not_found         BOOLEAN 	:= FALSE;
837 
838   -- Cursor For OKL_SIL_SIF_FK;
839   CURSOR okl_sifv_pk_csr (p_id IN OKL_SIF_STREAM_TYPES_V.sif_id%TYPE) IS
840   SELECT '1'
841     FROM OKL_STREAM_INTERFACES_V
842    WHERE OKL_STREAM_INTERFACES_V.id = p_id;
843 
844   BEGIN
845 
846     -- initialize return status
847     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
848 
849     IF p_silv_rec.sif_id = Okc_Api.G_MISS_NUM OR
850        p_silv_rec.sif_id IS NULL
851     THEN
852       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Sif_id');
853       x_return_status := Okc_Api.G_RET_STS_ERROR;
854       RAISE G_EXCEPTION_HALT_VALIDATION;
855     END IF;
856 
857     OPEN okl_sifv_pk_csr(p_silv_rec.Sif_id);
858     FETCH okl_sifv_pk_csr INTO l_dummy;
859     l_row_not_found := okl_sifv_pk_csr%NOTFOUND;
860     CLOSE okl_sifv_pk_csr;
861 
862     IF l_row_not_found THEN
863       Okc_Api.set_message(G_OKC_APP,G_INVALID_VALUE,G_COL_NAME_TOKEN,'sif_id');
864       x_return_status := Okc_Api.G_RET_STS_ERROR;
865     END IF;
866 
867   EXCEPTION
868     WHEN G_EXCEPTION_HALT_VALIDATION THEN
869     -- no processing necessary; validation can continue
870     -- with the next column
871     NULL;
872 
873     WHEN OTHERS THEN
874       -- store SQL error message on message stack for caller
875       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
876                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
877                          ,p_token1       => G_OKL_SQLCODE_TOKEN
878                          ,p_token1_value => SQLCODE
879                          ,p_token2       => G_OKL_SQLERRM_TOKEN
880                          ,p_token2_value => SQLERRM);
881 
882       -- notify caller of an UNEXPECTED error
883       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
884 
885       -- verify that the cursor was closed
886       IF okl_sifv_pk_csr%ISOPEN THEN
887         CLOSE okl_sifv_pk_csr;
888       END IF;
889 
890   END Validate_Sif_Id;
891 
892   ---------------------------------------------------------------------------
893   -- PROCEDURE Validate_Kle_Id
894   ---------------------------------------------------------------------------
895   -- Start of comments
896   --
897   -- Procedure Name  : Validate_Kle_Id
898   -- Description     :
899   -- Business Rules  :
900   -- Parameters      :
901   -- Version         : 1.0
902   -- End of comments
903   ---------------------------------------------------------------------------
904   PROCEDURE Validate_Kle_Id(
905     p_silv_rec      IN   silv_rec_type,
906     x_return_status OUT NOCOPY  VARCHAR2
907   ) IS
908 
909   l_dummy                 VARCHAR2(1) 	:= '?';
910   l_row_not_found         BOOLEAN 	:= FALSE;
911 
912   -- Cursor For OKL_SIL_KLE_FK;
913   CURSOR okl_klev_pk_csr (p_id IN OKL_SIF_LINES_V.kle_id%TYPE) IS
914   SELECT '1'
915     FROM OKL_K_LINES_V
916    WHERE OKL_K_LINES_V.id = p_id;
917 
918   BEGIN
919 
920     -- initialize return status
921     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
922 
923     IF p_silv_rec.kle_id = Okc_Api.G_MISS_NUM OR
924        p_silv_rec.kle_id IS NULL
925     THEN
926       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Kle_id');
927       x_return_status := Okc_Api.G_RET_STS_ERROR;
928       RAISE G_EXCEPTION_HALT_VALIDATION;
929     END IF;
930 
931     OPEN okl_klev_pk_csr(p_silv_rec.kle_id);
932     FETCH okl_klev_pk_csr INTO l_dummy;
933     l_row_not_found := okl_klev_pk_csr%NOTFOUND;
934     CLOSE okl_klev_pk_csr;
935 
936     IF l_row_not_found THEN
937       Okc_Api.set_message(G_OKC_APP,G_INVALID_VALUE,G_COL_NAME_TOKEN,'Kle_id');
938       x_return_status := Okc_Api.G_RET_STS_ERROR;
939     END IF;
940 
941   EXCEPTION
942     WHEN G_EXCEPTION_HALT_VALIDATION THEN
943     -- no processing necessary; validation can continue
944     -- with the next column
945     NULL;
946 
947     WHEN OTHERS THEN
948       -- store SQL error message on message stack for caller
949       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
950                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
951                          ,p_token1       => G_OKL_SQLCODE_TOKEN
952                          ,p_token1_value => SQLCODE
953                          ,p_token2       => G_OKL_SQLERRM_TOKEN
954                          ,p_token2_value => SQLERRM);
955 
956       -- notify caller of an UNEXPECTED error
957       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
958 
959       -- verify that the cursor was closed
960       IF okl_klev_pk_csr%ISOPEN THEN
961         CLOSE okl_klev_pk_csr;
962       END IF;
963 
964   END Validate_Kle_Id;
965 
966   ---------------------------------------------------------------------------
967   -- PROCEDURE Validate_State_Depr_Dim_Value
968   ---------------------------------------------------------------------------
969   -- Start of comments
970   --
971   -- Procedure Name  : Validate_State_Depr_Dim_Value
972   -- Description     :
973   -- Business Rules  :
974   -- Parameters      :
975   -- Version         : 1.0
976   -- End of comments
977   ---------------------------------------------------------------------------
978   PROCEDURE Validate_State_Depr_Dim_Value(
979     p_silv_rec      IN   silv_rec_type,
980     x_return_status OUT NOCOPY  VARCHAR2
981   ) IS
982 
983   BEGIN
984 
985     -- initialize return status
986     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
987 
988     IF p_silv_rec.STATE_DEPRE_DMNSHING_VALUE_RT = Okc_Api.G_MISS_NUM OR
989        p_silv_rec.STATE_DEPRE_DMNSHING_VALUE_RT IS NULL
990     THEN
991       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'STATE_DEPRE_DMNSHING_VALUE_RT');
992       x_return_status := Okc_Api.G_RET_STS_ERROR;
993       RAISE G_EXCEPTION_HALT_VALIDATION;
994     END IF;
995 
996   EXCEPTION
997     WHEN G_EXCEPTION_HALT_VALIDATION THEN
998     -- no processing necessary; validation can continue
999     -- with the next column
1000     NULL;
1001 
1002     WHEN OTHERS THEN
1003       -- store SQL error message on message stack for caller
1004       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1005                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1006                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1007                          ,p_token1_value => SQLCODE
1008                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1009                          ,p_token2_value => SQLERRM);
1010 
1011       -- notify caller of an UNEXPECTED error
1012       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1013 
1014   END Validate_State_Depr_Dim_Value;
1015 
1016   ---------------------------------------------------------------------------
1017   -- PROCEDURE Validate_Book_Depr_Dim_Value
1018   ---------------------------------------------------------------------------
1019   -- Start of comments
1020   --
1021   -- Procedure Name  : Validate_Book_Depr_Dim_Value
1022   -- Description     :
1023   -- Business Rules  :
1024   -- Parameters      :
1025   -- Version         : 1.0
1026   -- End of comments
1027   ---------------------------------------------------------------------------
1028   PROCEDURE Validate_Book_Depr_Dim_Value(
1029     p_silv_rec      IN   silv_rec_type,
1030     x_return_status OUT NOCOPY  VARCHAR2
1031   ) IS
1032 
1033   BEGIN
1034 
1035     -- initialize return status
1036     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1037 
1038     IF p_silv_rec.BOOK_DEPRE_DMNSHING_VALUE_RT = Okc_Api.G_MISS_NUM OR
1039        p_silv_rec.BOOK_DEPRE_DMNSHING_VALUE_RT IS NULL
1040     THEN
1041       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'BOOK_DEPRE_DMNSHING_VALUE_RT');
1042       x_return_status := Okc_Api.G_RET_STS_ERROR;
1043       RAISE G_EXCEPTION_HALT_VALIDATION;
1044     END IF;
1045 
1046   EXCEPTION
1047     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1048     -- no processing necessary; validation can continue
1049     -- with the next column
1050     NULL;
1051 
1052     WHEN OTHERS THEN
1053       -- store SQL error message on message stack for caller
1054       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1055                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1056                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1057                          ,p_token1_value => SQLCODE
1058                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1059                          ,p_token2_value => SQLERRM);
1060 
1061       -- notify caller of an UNEXPECTED error
1062       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1063 
1064   END Validate_Book_Depr_Dim_Value;
1065 
1066   ---------------------------------------------------------------------------
1067   -- PROCEDURE Validate_Residual_Guarantee
1068   ---------------------------------------------------------------------------
1069   -- Start of comments
1070   --
1071   -- Procedure Name  : Validate_Residual_Guarantee
1072   -- Description     :
1073   -- Business Rules  :
1074   -- Parameters      :
1075   -- Version         : 1.0
1076   -- End of comments
1077   ---------------------------------------------------------------------------
1078   PROCEDURE Validate_Residual_Guarantee(
1079     p_silv_rec      IN   silv_rec_type,
1080     x_return_status OUT NOCOPY  VARCHAR2
1081   ) IS
1082 
1083   BEGIN
1084 
1085     -- initialize return status
1086     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1087 
1088     IF p_silv_rec.Residual_Guarantee_Method = Okc_Api.G_MISS_CHAR OR
1089        p_silv_rec.Residual_Guarantee_Method IS NULL
1090     THEN
1091       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Residual_Guarantee_Method');
1092       x_return_status := Okc_Api.G_RET_STS_ERROR;
1093       RAISE G_EXCEPTION_HALT_VALIDATION;
1094     END IF;
1095 
1096   EXCEPTION
1097     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1098     -- no processing necessary; validation can continue
1099     -- with the next column
1100     NULL;
1101 
1102     WHEN OTHERS THEN
1103       -- store SQL error message on message stack for caller
1104       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1105                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1106                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1107                          ,p_token1_value => SQLCODE
1108                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1109                          ,p_token2_value => SQLERRM);
1110 
1111       -- notify caller of an UNEXPECTED error
1112       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1113 
1114   END Validate_Residual_Guarantee;
1115 
1116   ---------------------------------------------------------------------------
1117   -- PROCEDURE Validate_Fed_Depre_Term
1118   ---------------------------------------------------------------------------
1119   -- Start of comments
1120   --
1121   -- Procedure Name  : Validate_Fed_Depre_Term
1122   -- Description     :
1123   -- Business Rules  :
1124   -- Parameters      :
1125   -- Version         : 1.0
1126   -- End of comments
1127   ---------------------------------------------------------------------------
1128   PROCEDURE Validate_Fed_Depre_Term(
1129     p_silv_rec      IN   silv_rec_type,
1130     x_return_status OUT NOCOPY  VARCHAR2
1131   ) IS
1132 
1133   BEGIN
1134 
1135     -- initialize return status
1136     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1137 
1138     IF p_silv_rec.Fed_Depre_Term = Okc_Api.G_MISS_NUM OR
1139        p_silv_rec.Fed_Depre_Term IS NULL
1140     THEN
1141       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Fed_Depre_Term');
1142       x_return_status := Okc_Api.G_RET_STS_ERROR;
1143       RAISE G_EXCEPTION_HALT_VALIDATION;
1144     END IF;
1145 
1146   EXCEPTION
1147     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1148     -- no processing necessary; validation can continue
1149     -- with the next column
1150     NULL;
1151 
1152     WHEN OTHERS THEN
1153       -- store SQL error message on message stack for caller
1154       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1155                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1156                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1157                          ,p_token1_value => SQLCODE
1158                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1159                          ,p_token2_value => SQLERRM);
1160 
1161       -- notify caller of an UNEXPECTED error
1162       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1163 
1164   END Validate_Fed_Depre_Term;
1165 
1166   ---------------------------------------------------------------------------
1167   -- PROCEDURE Validate_Fed_Depre_Dim_Value
1168   ---------------------------------------------------------------------------
1169   -- Start of comments
1170   --
1171   -- Procedure Name  : Validate_Fed_Depre_Dim_Value
1172   -- Description     :
1173   -- Business Rules  :
1174   -- Parameters      :
1175   -- Version         : 1.0
1176   -- End of comments
1177   ---------------------------------------------------------------------------
1178   PROCEDURE Validate_Fed_Depre_Dim_Value(
1179     p_silv_rec      IN   silv_rec_type,
1180     x_return_status OUT NOCOPY  VARCHAR2
1181   ) IS
1182 
1183   BEGIN
1184 
1185     -- initialize return status
1186     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1187 
1188     IF p_silv_rec.Fed_Depre_DmnShing_Value_Rate = Okc_Api.G_MISS_NUM OR
1189        p_silv_rec.Fed_Depre_DmnShing_Value_Rate IS NULL
1190     THEN
1191       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Fed_Depre_DmnShing_Value_Rate');
1192       x_return_status := Okc_Api.G_RET_STS_ERROR;
1193       RAISE G_EXCEPTION_HALT_VALIDATION;
1194     END IF;
1195 
1196   EXCEPTION
1197     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1198     -- no processing necessary; validation can continue
1199     -- with the next column
1200     NULL;
1201 
1202     WHEN OTHERS THEN
1203       -- store SQL error message on message stack for caller
1204       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1205                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1206                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1207                          ,p_token1_value => SQLCODE
1208                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1209                          ,p_token2_value => SQLERRM);
1210 
1211       -- notify caller of an UNEXPECTED error
1212       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1213 
1214   END Validate_Fed_Depre_Dim_Value;
1215 
1216   ---------------------------------------------------------------------------
1217   -- PROCEDURE Validate_Fed_Depre_Adr
1218   ---------------------------------------------------------------------------
1219   -- Start of comments
1220   --
1221   -- Procedure Name  : Validate_Fed_Depre_Adr
1222   -- Description     :
1223   -- Business Rules  :
1224   -- Parameters      :
1225   -- Version         : 1.0
1226   -- End of comments
1227   ---------------------------------------------------------------------------
1228   PROCEDURE Validate_Fed_Depre_Adr(
1229     p_silv_rec      IN   silv_rec_type,
1230     x_return_status OUT NOCOPY  VARCHAR2
1231   ) IS
1232 
1233   BEGIN
1234 
1235     -- initialize return status
1236     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1237 
1238     IF p_silv_rec.Fed_Depre_Adr_Conve = Okc_Api.G_MISS_CHAR OR
1239        p_silv_rec.Fed_Depre_Adr_Conve IS NULL
1240     THEN
1241       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Fed_Depre_Adr_Conve');
1242       x_return_status := Okc_Api.G_RET_STS_ERROR;
1243       RAISE G_EXCEPTION_HALT_VALIDATION;
1244     END IF;
1245 
1246   EXCEPTION
1247     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1248     -- no processing necessary; validation can continue
1249     -- with the next column
1250     NULL;
1251 
1252     WHEN OTHERS THEN
1253       -- store SQL error message on message stack for caller
1254       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1255                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1256                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1257                          ,p_token1_value => SQLCODE
1258                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1259                          ,p_token2_value => SQLERRM);
1260 
1261       -- notify caller of an UNEXPECTED error
1262       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1263 
1264   END Validate_Fed_Depre_Adr;
1265 
1266   ---------------------------------------------------------------------------
1267   -- PROCEDURE Validate_State_Depre_Basis
1268   ---------------------------------------------------------------------------
1269   -- Start of comments
1270   --
1271   -- Procedure Name  : Validate_State_Depre_Basis
1272   -- Description     :
1273   -- Business Rules  :
1274   -- Parameters      :
1275   -- Version         : 1.0
1276   -- End of comments
1277   ---------------------------------------------------------------------------
1278   PROCEDURE Validate_State_Depre_Basis(
1279     p_silv_rec      IN   silv_rec_type,
1280     x_return_status OUT NOCOPY  VARCHAR2
1281   ) IS
1282 
1283   BEGIN
1284 
1285     -- initialize return status
1286     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1287 
1288     IF p_silv_rec.State_Depre_Basis_Percent = Okc_Api.G_MISS_NUM OR
1289        p_silv_rec.State_Depre_Basis_Percent IS NULL
1290     THEN
1291       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'State_Depre_Basis_Percent');
1292       x_return_status := Okc_Api.G_RET_STS_ERROR;
1293       RAISE G_EXCEPTION_HALT_VALIDATION;
1294     END IF;
1295 
1296   EXCEPTION
1297     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1298     -- no processing necessary; validation can continue
1299     -- with the next column
1300     NULL;
1301 
1302     WHEN OTHERS THEN
1303       -- store SQL error message on message stack for caller
1304       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1305                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1306                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1307                          ,p_token1_value => SQLCODE
1308                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1309                          ,p_token2_value => SQLERRM);
1310 
1311       -- notify caller of an UNEXPECTED error
1312       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1313 
1314   END Validate_State_Depre_Basis;
1315 
1316   ---------------------------------------------------------------------------
1317   -- PROCEDURE Validate_State_Depre_Method
1318   ---------------------------------------------------------------------------
1319   -- Start of comments
1320   --
1321   -- Procedure Name  : Validate_State_Depre_Method
1322   -- Description     :
1323   -- Business Rules  :
1324   -- Parameters      :
1325   -- Version         : 1.0
1326   -- End of comments
1327   ---------------------------------------------------------------------------
1328   PROCEDURE Validate_State_Depre_Method(
1329     p_silv_rec      IN   silv_rec_type,
1330     x_return_status OUT NOCOPY  VARCHAR2
1331   ) IS
1332 
1333   BEGIN
1334 
1335     -- initialize return status
1336     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1337 
1338     IF p_silv_rec.State_Depre_Method = Okc_Api.G_MISS_CHAR  OR
1339        p_silv_rec.State_Depre_Method IS NULL
1340     THEN
1341       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'State_Depre_Method');
1342       x_return_status := Okc_Api.G_RET_STS_ERROR;
1343       RAISE G_EXCEPTION_HALT_VALIDATION;
1344     END IF;
1345 
1346   EXCEPTION
1347     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1348     -- no processing necessary; validation can continue
1349     -- with the next column
1350     NULL;
1351 
1352     WHEN OTHERS THEN
1353       -- store SQL error message on message stack for caller
1354       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1355                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1356                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1357                          ,p_token1_value => SQLCODE
1358                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1359                          ,p_token2_value => SQLERRM);
1360 
1361       -- notify caller of an UNEXPECTED error
1362       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1363 
1364   END Validate_State_Depre_Method;
1365 
1366   ---------------------------------------------------------------------------
1367   -- PROCEDURE Validate_Purchase_Option
1368   ---------------------------------------------------------------------------
1369   -- Start of comments
1370   --
1371   -- Procedure Name  : Validate_Purchase_Option
1372   -- Description     :
1373   -- Business Rules  :
1374   -- Parameters      :
1375   -- Version         : 1.0
1376   -- End of comments
1377   ---------------------------------------------------------------------------
1378   PROCEDURE Validate_Purchase_Option(
1379     p_silv_rec      IN   silv_rec_type,
1380     x_return_status OUT NOCOPY  VARCHAR2
1381   ) IS
1382 
1383   BEGIN
1384 
1385     -- initialize return status
1386     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1387 
1388     IF p_silv_rec.Purchase_Option = Okc_Api.G_MISS_CHAR  OR
1389        p_silv_rec.Purchase_Option IS NULL
1390     THEN
1391       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Purchase_Option');
1392       x_return_status := Okc_Api.G_RET_STS_ERROR;
1393       RAISE G_EXCEPTION_HALT_VALIDATION;
1394     END IF;
1395 
1396   EXCEPTION
1397     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1398     -- no processing necessary; validation can continue
1399     -- with the next column
1400     NULL;
1401 
1402     WHEN OTHERS THEN
1403       -- store SQL error message on message stack for caller
1404       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1405                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1406                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1407                          ,p_token1_value => SQLCODE
1408                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1409                          ,p_token2_value => SQLERRM);
1410 
1411       -- notify caller of an UNEXPECTED error
1412       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1413 
1414   END Validate_Purchase_Option;
1415 
1416   ---------------------------------------------------------------------------
1417   -- PROCEDURE Validate_Asset_Cost
1418   ---------------------------------------------------------------------------
1419   -- Start of comments
1420   --
1421   -- Procedure Name  : Validate_Asset_Cost
1422   -- Description     :
1423   -- Business Rules  :
1424   -- Parameters      :
1425   -- Version         : 1.0
1426   -- End of comments
1427   ---------------------------------------------------------------------------
1428   PROCEDURE Validate_Asset_Cost(
1429     p_silv_rec      IN   silv_rec_type,
1430     x_return_status OUT NOCOPY  VARCHAR2
1431   ) IS
1432 
1433   BEGIN
1434 
1435     -- initialize return status
1436     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1437 
1438     IF p_silv_rec.Asset_Cost = Okc_Api.G_MISS_NUM  OR
1439        p_silv_rec.Asset_Cost IS NULL
1440     THEN
1441       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Asset_Cost');
1442       x_return_status := Okc_Api.G_RET_STS_ERROR;
1443       RAISE G_EXCEPTION_HALT_VALIDATION;
1444     END IF;
1445 
1446   EXCEPTION
1447     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1448     -- no processing necessary; validation can continue
1449     -- with the next column
1450     NULL;
1451 
1452     WHEN OTHERS THEN
1453       -- store SQL error message on message stack for caller
1454       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1455                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1456                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1457                          ,p_token1_value => SQLCODE
1458                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1459                          ,p_token2_value => SQLERRM);
1460 
1461       -- notify caller of an UNEXPECTED error
1462       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1463 
1464   END Validate_Asset_Cost;
1465 
1466   ---------------------------------------------------------------------------
1467   -- PROCEDURE Validate_State_Depre_Term
1468   ---------------------------------------------------------------------------
1469   -- Start of comments
1470   --
1471   -- Procedure Name  : Validate_State_Depre_Term
1472   -- Description     :
1473   -- Business Rules  :
1474   -- Parameters      :
1475   -- Version         : 1.0
1476   -- End of comments
1477   ---------------------------------------------------------------------------
1478   PROCEDURE Validate_State_Depre_Term(
1479     p_silv_rec      IN   silv_rec_type,
1480     x_return_status OUT NOCOPY  VARCHAR2
1481   ) IS
1482 
1483   BEGIN
1484 
1485     -- initialize return status
1486     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1487 
1488     IF p_silv_rec.State_Depre_Term = Okc_Api.G_MISS_NUM OR
1489        p_silv_rec.State_Depre_Term IS NULL
1490     THEN
1491       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'State_Depre_Term');
1492       x_return_status := Okc_Api.G_RET_STS_ERROR;
1493       RAISE G_EXCEPTION_HALT_VALIDATION;
1494     END IF;
1495 
1496   EXCEPTION
1497     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1498     -- no processing necessary; validation can continue
1499     -- with the next column
1500     NULL;
1501 
1502     WHEN OTHERS THEN
1503       -- store SQL error message on message stack for caller
1504       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1505                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1506                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1507                          ,p_token1_value => SQLCODE
1508                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1509                          ,p_token2_value => SQLERRM);
1510 
1511       -- notify caller of an UNEXPECTED error
1512       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1513 
1514   END Validate_State_Depre_Term;
1515 
1516   ---------------------------------------------------------------------------
1517   -- PROCEDURE Validate_State_Depre_Adr
1518   ---------------------------------------------------------------------------
1519   -- Start of comments
1520   --
1521   -- Procedure Name  : Validate_State_Depre_Adr
1522   -- Description     :
1523   -- Business Rules  :
1524   -- Parameters      :
1525   -- Version         : 1.0
1526   -- End of comments
1527   ---------------------------------------------------------------------------
1528   PROCEDURE Validate_State_Depre_Adr(
1529     p_silv_rec      IN   silv_rec_type,
1530     x_return_status OUT NOCOPY  VARCHAR2
1531   ) IS
1532 
1533   BEGIN
1534 
1535     -- initialize return status
1536     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1537 
1538     IF p_silv_rec.State_Depre_Adr_Convent = Okc_Api.G_MISS_CHAR OR
1539        p_silv_rec.State_Depre_Adr_Convent IS NULL
1540     THEN
1541       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'State_Depre_Adr_Convent');
1542       x_return_status := Okc_Api.G_RET_STS_ERROR;
1543       RAISE G_EXCEPTION_HALT_VALIDATION;
1544     END IF;
1545 
1546   EXCEPTION
1547     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1548     -- no processing necessary; validation can continue
1549     -- with the next column
1550     NULL;
1551 
1552     WHEN OTHERS THEN
1553       -- store SQL error message on message stack for caller
1554       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1555                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1556                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1557                          ,p_token1_value => SQLCODE
1558                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1559                          ,p_token2_value => SQLERRM);
1560 
1561       -- notify caller of an UNEXPECTED error
1562       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1563 
1564   END Validate_State_Depre_Adr;
1565 
1566   ---------------------------------------------------------------------------
1567   -- PROCEDURE Validate_Fed_Depre_Method
1568   ---------------------------------------------------------------------------
1569   -- Start of comments
1570   --
1571   -- Procedure Name  : Validate_Fed_Depre_Method
1572   -- Description     :
1573   -- Business Rules  :
1574   -- Parameters      :
1575   -- Version         : 1.0
1576   -- End of comments
1577   ---------------------------------------------------------------------------
1578   PROCEDURE Validate_Fed_Depre_Method(
1579     p_silv_rec      IN   silv_rec_type,
1580     x_return_status OUT NOCOPY  VARCHAR2
1581   ) IS
1582 
1583   BEGIN
1584 
1585     -- initialize return status
1586     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1587 
1588     IF p_silv_rec.Fed_Depre_Method = Okc_Api.G_MISS_CHAR OR
1589        p_silv_rec.Fed_Depre_Method IS NULL
1590     THEN
1591       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Fed_Depre_Method');
1592       x_return_status := Okc_Api.G_RET_STS_ERROR;
1593       RAISE G_EXCEPTION_HALT_VALIDATION;
1594     END IF;
1595 
1596   EXCEPTION
1597     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1598     -- no processing necessary; validation can continue
1599     -- with the next column
1600     NULL;
1601 
1602     WHEN OTHERS THEN
1603       -- store SQL error message on message stack for caller
1604       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1605                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1606                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1607                          ,p_token1_value => SQLCODE
1608                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1609                          ,p_token2_value => SQLERRM);
1610 
1611       -- notify caller of an UNEXPECTED error
1612       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1613 
1614   END Validate_Fed_Depre_Method;
1615 
1616   ---------------------------------------------------------------------------
1617   -- PROCEDURE Validate_Residual_Amount
1618   ---------------------------------------------------------------------------
1619   -- Start of comments
1620   --
1621   -- Procedure Name  : Validate_Residual_Amount
1622   -- Description     :
1623   -- Business Rules  :
1624   -- Parameters      :
1625   -- Version         : 1.0
1626   -- End of comments
1627   ---------------------------------------------------------------------------
1628   PROCEDURE Validate_Residual_Amount(
1629     p_silv_rec      IN   silv_rec_type,
1630     x_return_status OUT NOCOPY  VARCHAR2
1631   ) IS
1632 
1633   BEGIN
1634 
1635     -- initialize return status
1636     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1637 
1638     IF p_silv_rec.Residual_Amount = Okc_Api.G_MISS_NUM OR
1639        p_silv_rec.Residual_Amount IS NULL
1640     THEN
1641       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Residual_Amount');
1642       x_return_status := Okc_Api.G_RET_STS_ERROR;
1643       RAISE G_EXCEPTION_HALT_VALIDATION;
1644     END IF;
1645 
1646   EXCEPTION
1647     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1648     -- no processing necessary; validation can continue
1649     -- with the next column
1650     NULL;
1651 
1652     WHEN OTHERS THEN
1653       -- store SQL error message on message stack for caller
1654       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1655                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1656                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1657                          ,p_token1_value => SQLCODE
1658                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1659                          ,p_token2_value => SQLERRM);
1660 
1661       -- notify caller of an UNEXPECTED error
1662       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1663 
1664   END Validate_Residual_Amount;
1665 
1666   ---------------------------------------------------------------------------
1667   -- PROCEDURE Validate_Fed_Depre_Salvage
1668   ---------------------------------------------------------------------------
1669   -- Start of comments
1670   --
1671   -- Procedure Name  : Validate_Fed_Depre_Salvage
1672   -- Description     :
1673   -- Business Rules  :
1674   -- Parameters      :
1675   -- Version         : 1.0
1676   -- End of comments
1677   ---------------------------------------------------------------------------
1678   PROCEDURE Validate_Fed_Depre_Salvage(
1679     p_silv_rec      IN   silv_rec_type,
1680     x_return_status OUT NOCOPY  VARCHAR2
1681   ) IS
1682 
1683   BEGIN
1684 
1685     -- initialize return status
1686     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1687 
1688     IF p_silv_rec.Fed_Depre_Salvage = Okc_Api.G_MISS_NUM OR
1689        p_silv_rec.Fed_Depre_Salvage IS NULL
1690     THEN
1691       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Fed_Depre_Salvage');
1692       x_return_status := Okc_Api.G_RET_STS_ERROR;
1693       RAISE G_EXCEPTION_HALT_VALIDATION;
1694     END IF;
1695 
1696   EXCEPTION
1697     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1698     -- no processing necessary; validation can continue
1699     -- with the next column
1700     NULL;
1701 
1702     WHEN OTHERS THEN
1703       -- store SQL error message on message stack for caller
1704       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1705                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1706                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1707                          ,p_token1_value => SQLCODE
1708                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1709                          ,p_token2_value => SQLERRM);
1710 
1711       -- notify caller of an UNEXPECTED error
1712       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1713 
1714   END Validate_Fed_Depre_Salvage;
1715 
1716   ---------------------------------------------------------------------------
1717   -- PROCEDURE Validate_Date_Fed_Depre
1718   ---------------------------------------------------------------------------
1719   -- Start of comments
1720   --
1721   -- Procedure Name  : Validate_Date_Fed_Depre
1722   -- Description     :
1723   -- Business Rules  :
1724   -- Parameters      :
1725   -- Version         : 1.0
1726   -- End of comments
1727   ---------------------------------------------------------------------------
1728   PROCEDURE Validate_Date_Fed_Depre(
1729     p_silv_rec      IN   silv_rec_type,
1730     x_return_status OUT NOCOPY  VARCHAR2
1731   ) IS
1732 
1733   BEGIN
1734 
1735     -- initialize return status
1736     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1737 
1738     IF p_silv_rec.Date_Fed_Depre = Okc_Api.G_MISS_DATE OR
1739        p_silv_rec.Date_Fed_Depre IS NULL
1740     THEN
1741       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Date_Fed_Depre');
1742       x_return_status := Okc_Api.G_RET_STS_ERROR;
1743       RAISE G_EXCEPTION_HALT_VALIDATION;
1744     END IF;
1745 
1746   EXCEPTION
1747     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1748     -- no processing necessary; validation can continue
1749     -- with the next column
1750     NULL;
1751 
1752     WHEN OTHERS THEN
1753       -- store SQL error message on message stack for caller
1754       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1755                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1756                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1757                          ,p_token1_value => SQLCODE
1758                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1759                          ,p_token2_value => SQLERRM);
1760 
1761       -- notify caller of an UNEXPECTED error
1762       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1763 
1764   END Validate_Date_Fed_Depre;
1765 
1766   ---------------------------------------------------------------------------
1767   -- PROCEDURE Validate_Book_Salvage
1768   ---------------------------------------------------------------------------
1769   -- Start of comments
1770   --
1771   -- Procedure Name  : Validate_Book_Salvage
1772   -- Description     :
1773   -- Business Rules  :
1774   -- Parameters      :
1775   -- Version         : 1.0
1776   -- End of comments
1777   ---------------------------------------------------------------------------
1778   PROCEDURE Validate_Book_Salvage(
1779     p_silv_rec      IN   silv_rec_type,
1780     x_return_status OUT NOCOPY  VARCHAR2
1781   ) IS
1782 
1783   BEGIN
1784 
1785     -- initialize return status
1786     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1787 
1788     IF p_silv_rec.Book_Salvage = Okc_Api.G_MISS_NUM OR
1789        p_silv_rec.Book_Salvage IS NULL
1790     THEN
1791       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Book_Salvage');
1792       x_return_status := Okc_Api.G_RET_STS_ERROR;
1793       RAISE G_EXCEPTION_HALT_VALIDATION;
1794     END IF;
1795 
1796   EXCEPTION
1797     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1798     -- no processing necessary; validation can continue
1799     -- with the next column
1800     NULL;
1801 
1802     WHEN OTHERS THEN
1803       -- store SQL error message on message stack for caller
1804       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1805                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1806                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1807                          ,p_token1_value => SQLCODE
1808                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1809                          ,p_token2_value => SQLERRM);
1810 
1811       -- notify caller of an UNEXPECTED error
1812       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1813 
1814   END Validate_Book_Salvage;
1815 
1816   ---------------------------------------------------------------------------
1817   -- PROCEDURE Validate_Book_Adr_Convention
1818   ---------------------------------------------------------------------------
1819   -- Start of comments
1820   --
1821   -- Procedure Name  : Validate_Book_Adr_Convention
1822   -- Description     :
1823   -- Business Rules  :
1824   -- Parameters      :
1825   -- Version         : 1.0
1826   -- End of comments
1827   ---------------------------------------------------------------------------
1828   PROCEDURE Validate_Book_Adr_Convention(
1829     p_silv_rec      IN   silv_rec_type,
1830     x_return_status OUT NOCOPY  VARCHAR2
1831   ) IS
1832 
1833   BEGIN
1834 
1835     -- initialize return status
1836     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1837 
1838     IF p_silv_rec.Book_Adr_Convention = Okc_Api.G_MISS_CHAR OR
1839        p_silv_rec.Book_Adr_Convention IS NULL
1840     THEN
1841       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Book_Adr_Convention');
1842       x_return_status := Okc_Api.G_RET_STS_ERROR;
1843       RAISE G_EXCEPTION_HALT_VALIDATION;
1844     END IF;
1845 
1846   EXCEPTION
1847     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1848     -- no processing necessary; validation can continue
1849     -- with the next column
1850     NULL;
1851 
1852     WHEN OTHERS THEN
1853       -- store SQL error message on message stack for caller
1854       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1855                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1856                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1857                          ,p_token1_value => SQLCODE
1858                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1859                          ,p_token2_value => SQLERRM);
1860 
1861       -- notify caller of an UNEXPECTED error
1862       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1863 
1864   END Validate_Book_Adr_Convention;
1865 
1866   ---------------------------------------------------------------------------
1867   -- PROCEDURE Validate_State_Depre_Salvage
1868   ---------------------------------------------------------------------------
1869   -- Start of comments
1870   --
1871   -- Procedure Name  : Validate_State_Depre_Salvage
1872   -- Description     :
1873   -- Business Rules  :
1874   -- Parameters      :
1875   -- Version         : 1.0
1876   -- End of comments
1877   ---------------------------------------------------------------------------
1878   PROCEDURE Validate_State_Depre_Salvage(
1879     p_silv_rec      IN   silv_rec_type,
1880     x_return_status OUT NOCOPY  VARCHAR2
1881   ) IS
1882 
1883   BEGIN
1884 
1885     -- initialize return status
1886     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1887 
1888     IF p_silv_rec.State_Depre_Salvage = Okc_Api.G_MISS_NUM OR
1889        p_silv_rec.State_Depre_Salvage IS NULL
1890     THEN
1891       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'State_Depre_Salvage');
1892       x_return_status := Okc_Api.G_RET_STS_ERROR;
1893       RAISE G_EXCEPTION_HALT_VALIDATION;
1894     END IF;
1895 
1896   EXCEPTION
1897     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1898     -- no processing necessary; validation can continue
1899     -- with the next column
1900     NULL;
1901 
1902     WHEN OTHERS THEN
1903       -- store SQL error message on message stack for caller
1904       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1905                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1906                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1907                          ,p_token1_value => SQLCODE
1908                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1909                          ,p_token2_value => SQLERRM);
1910 
1911       -- notify caller of an UNEXPECTED error
1912       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1913 
1914   END Validate_State_Depre_Salvage;
1915 
1916   ---------------------------------------------------------------------------
1917   -- PROCEDURE Validate_Fed_Depr_Basis
1918   ---------------------------------------------------------------------------
1919   -- Start of comments
1920   --
1921   -- Procedure Name  : Validate_Fed_Depr_Basis
1922   -- Description     :
1923   -- Business Rules  :
1924   -- Parameters      :
1925   -- Version         : 1.0
1926   -- End of comments
1927   ---------------------------------------------------------------------------
1928   PROCEDURE Validate_Fed_Depr_Basis(
1929     p_silv_rec      IN   silv_rec_type,
1930     x_return_status OUT NOCOPY  VARCHAR2
1931   ) IS
1932 
1933   BEGIN
1934 
1935     -- initialize return status
1936     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1937 
1938     IF p_silv_rec.Fed_Depre_Basis_Percent = Okc_Api.G_MISS_NUM OR
1939        p_silv_rec.Fed_Depre_Basis_Percent IS NULL
1940     THEN
1941       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Fed_Depre_Basis_Percent');
1942       x_return_status := Okc_Api.G_RET_STS_ERROR;
1943       RAISE G_EXCEPTION_HALT_VALIDATION;
1944     END IF;
1945 
1946   EXCEPTION
1947     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1948     -- no processing necessary; validation can continue
1949     -- with the next column
1950     NULL;
1951 
1952     WHEN OTHERS THEN
1953       -- store SQL error message on message stack for caller
1954       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
1955                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
1956                          ,p_token1       => G_OKL_SQLCODE_TOKEN
1957                          ,p_token1_value => SQLCODE
1958                          ,p_token2       => G_OKL_SQLERRM_TOKEN
1959                          ,p_token2_value => SQLERRM);
1960 
1961       -- notify caller of an UNEXPECTED error
1962       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1963 
1964   END Validate_Fed_Depr_Basis;
1965 
1966   ---------------------------------------------------------------------------
1967   -- PROCEDURE Validate_Book_Basis_Percent
1968   ---------------------------------------------------------------------------
1969   -- Start of comments
1970   --
1971   -- Procedure Name  : Validate_Book_Basis_Percent
1972   -- Description     :
1973   -- Business Rules  :
1974   -- Parameters      :
1975   -- Version         : 1.0
1976   -- End of comments
1977   ---------------------------------------------------------------------------
1978   PROCEDURE Validate_Book_Basis_Percent(
1979     p_silv_rec      IN   silv_rec_type,
1980     x_return_status OUT NOCOPY  VARCHAR2
1981   ) IS
1982 
1983   BEGIN
1984 
1985     -- initialize return status
1986     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1987 
1988     IF p_silv_rec.Book_Basis_Percent = Okc_Api.G_MISS_NUM OR
1989        p_silv_rec.Book_Basis_Percent IS NULL
1990     THEN
1991       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Book_Basis_Percent');
1992       x_return_status := Okc_Api.G_RET_STS_ERROR;
1993       RAISE G_EXCEPTION_HALT_VALIDATION;
1994     END IF;
1995 
1996   EXCEPTION
1997     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1998     -- no processing necessary; validation can continue
1999     -- with the next column
2000     NULL;
2001 
2002     WHEN OTHERS THEN
2003       -- store SQL error message on message stack for caller
2004       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
2005                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
2006                          ,p_token1       => G_OKL_SQLCODE_TOKEN
2007                          ,p_token1_value => SQLCODE
2008                          ,p_token2       => G_OKL_SQLERRM_TOKEN
2009                          ,p_token2_value => SQLERRM);
2010 
2011       -- notify caller of an UNEXPECTED error
2012       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2013 
2014   END Validate_Book_Basis_Percent;
2015 
2016   ---------------------------------------------------------------------------
2017   -- PROCEDURE Validate_Date_Delivery
2018   ---------------------------------------------------------------------------
2019   -- Start of comments
2020   --
2021   -- Procedure Name  : Validate_Date_Delivery
2022   -- Description     :
2023   -- Business Rules  :
2024   -- Parameters      :
2025   -- Version         : 1.0
2026   -- End of comments
2027   ---------------------------------------------------------------------------
2028   PROCEDURE Validate_Date_Delivery(
2029     p_silv_rec      IN   silv_rec_type,
2030     x_return_status OUT NOCOPY  VARCHAR2
2031   ) IS
2032 
2033   BEGIN
2034 
2035     -- initialize return status
2036     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
2037 
2038     IF p_silv_rec.Date_Delivery = Okc_Api.G_MISS_DATE OR
2039        p_silv_rec.Date_Delivery IS NULL
2040     THEN
2041       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Date_Delivery');
2042       x_return_status := Okc_Api.G_RET_STS_ERROR;
2043       RAISE G_EXCEPTION_HALT_VALIDATION;
2044     END IF;
2045 
2046   EXCEPTION
2047     WHEN G_EXCEPTION_HALT_VALIDATION THEN
2048     -- no processing necessary; validation can continue
2049     -- with the next column
2050     NULL;
2051 
2052     WHEN OTHERS THEN
2053       -- store SQL error message on message stack for caller
2054       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
2055                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
2056                          ,p_token1       => G_OKL_SQLCODE_TOKEN
2057                          ,p_token1_value => SQLCODE
2058                          ,p_token2       => G_OKL_SQLERRM_TOKEN
2059                          ,p_token2_value => SQLERRM);
2060 
2061       -- notify caller of an UNEXPECTED error
2062       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2063 
2064   END Validate_Date_Delivery;
2065 
2066   ---------------------------------------------------------------------------
2067   -- PROCEDURE Validate_Date_Funding
2068   ---------------------------------------------------------------------------
2069   -- Start of comments
2070   --
2071   -- Procedure Name  : Validate_Date_Funding
2072   -- Description     :
2073   -- Business Rules  :
2074   -- Parameters      :
2075   -- Version         : 1.0
2076   -- End of comments
2077   ---------------------------------------------------------------------------
2078   PROCEDURE Validate_Date_Funding(
2079     p_silv_rec      IN   silv_rec_type,
2080     x_return_status OUT NOCOPY  VARCHAR2
2081   ) IS
2082 
2083   BEGIN
2084 
2085     -- initialize return status
2086     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
2087 
2088     IF p_silv_rec.Date_Funding = Okc_Api.G_MISS_DATE OR
2089        p_silv_rec.Date_Funding IS NULL
2090     THEN
2091       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Date_Funding');
2092       x_return_status := Okc_Api.G_RET_STS_ERROR;
2093       RAISE G_EXCEPTION_HALT_VALIDATION;
2094     END IF;
2095 
2096   EXCEPTION
2097     WHEN G_EXCEPTION_HALT_VALIDATION THEN
2098     -- no processing necessary; validation can continue
2099     -- with the next column
2100     NULL;
2101 
2102     WHEN OTHERS THEN
2103       -- store SQL error message on message stack for caller
2104       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
2105                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
2106                          ,p_token1       => G_OKL_SQLCODE_TOKEN
2107                          ,p_token1_value => SQLCODE
2108                          ,p_token2       => G_OKL_SQLERRM_TOKEN
2109                          ,p_token2_value => SQLERRM);
2110 
2111       -- notify caller of an UNEXPECTED error
2112       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2113 
2114   END Validate_Date_Funding;
2115 
2116   ---------------------------------------------------------------------------
2117   -- PROCEDURE Validate_Date_Book
2118   ---------------------------------------------------------------------------
2119   -- Start of comments
2120   --
2121   -- Procedure Name  : Validate_Date_Book
2122   -- Description     :
2123   -- Business Rules  :
2124   -- Parameters      :
2125   -- Version         : 1.0
2126   -- End of comments
2127   ---------------------------------------------------------------------------
2128   PROCEDURE Validate_Date_Book(
2129     p_silv_rec      IN   silv_rec_type,
2130     x_return_status OUT NOCOPY  VARCHAR2
2131   ) IS
2132 
2133   BEGIN
2134 
2135     -- initialize return status
2136     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
2137 
2138     IF p_silv_rec.Date_Book = Okc_Api.G_MISS_DATE OR
2139        p_silv_rec.Date_Book IS NULL
2140     THEN
2141       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Date_Book');
2142       x_return_status := Okc_Api.G_RET_STS_ERROR;
2143       RAISE G_EXCEPTION_HALT_VALIDATION;
2144     END IF;
2145 
2146   EXCEPTION
2147     WHEN G_EXCEPTION_HALT_VALIDATION THEN
2148     -- no processing necessary; validation can continue
2149     -- with the next column
2150     NULL;
2151 
2152     WHEN OTHERS THEN
2153       -- store SQL error message on message stack for caller
2154       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
2155                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
2156                          ,p_token1       => G_OKL_SQLCODE_TOKEN
2157                          ,p_token1_value => SQLCODE
2158                          ,p_token2       => G_OKL_SQLERRM_TOKEN
2159                          ,p_token2_value => SQLERRM);
2160 
2161       -- notify caller of an UNEXPECTED error
2162       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2163 
2164   END Validate_Date_Book;
2165 
2166   ---------------------------------------------------------------------------
2167   -- PROCEDURE Validate_Date_State_Depre
2168   ---------------------------------------------------------------------------
2169   -- Start of comments
2170   --
2171   -- Procedure Name  : Validate_Date_State_Depre
2172   -- Description     :
2173   -- Business Rules  :
2174   -- Parameters      :
2175   -- Version         : 1.0
2176   -- End of comments
2177   ---------------------------------------------------------------------------
2178   PROCEDURE Validate_Date_State_Depre(
2179     p_silv_rec      IN   silv_rec_type,
2180     x_return_status OUT NOCOPY  VARCHAR2
2181   ) IS
2182 
2183   BEGIN
2184 
2185     -- initialize return status
2186     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
2187 
2188     IF p_silv_rec.Date_State_Depre = Okc_Api.G_MISS_DATE OR
2189        p_silv_rec.Date_State_Depre IS NULL
2190     THEN
2191       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Date_State_Depre');
2192       x_return_status := Okc_Api.G_RET_STS_ERROR;
2193       RAISE G_EXCEPTION_HALT_VALIDATION;
2194     END IF;
2195 
2196   EXCEPTION
2197     WHEN G_EXCEPTION_HALT_VALIDATION THEN
2198     -- no processing necessary; validation can continue
2199     -- with the next column
2200     NULL;
2201 
2202     WHEN OTHERS THEN
2203       -- store SQL error message on message stack for caller
2204       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
2205                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
2206                          ,p_token1       => G_OKL_SQLCODE_TOKEN
2207                          ,p_token1_value => SQLCODE
2208                          ,p_token2       => G_OKL_SQLERRM_TOKEN
2209                          ,p_token2_value => SQLERRM);
2210 
2211       -- notify caller of an UNEXPECTED error
2212       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2213 
2214   END Validate_Date_State_Depre;
2215 
2216   ---------------------------------------------------------------------------
2217   -- PROCEDURE Validate_Book_Method
2218   ---------------------------------------------------------------------------
2219   -- Start of comments
2220   --
2221   -- Procedure Name  : Validate_Book_Method
2222   -- Description     :
2223   -- Business Rules  :
2224   -- Parameters      :
2225   -- Version         : 1.0
2226   -- End of comments
2227   ---------------------------------------------------------------------------
2228   PROCEDURE Validate_Book_Method(
2229     p_silv_rec      IN   silv_rec_type,
2230     x_return_status OUT NOCOPY  VARCHAR2
2231   ) IS
2232 
2233   BEGIN
2234 
2235     -- initialize return status
2236     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
2237 
2238     IF p_silv_rec.Book_Method = Okc_Api.G_MISS_CHAR OR
2239        p_silv_rec.Book_Method IS NULL
2240     THEN
2241       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Book_Method');
2242       x_return_status := Okc_Api.G_RET_STS_ERROR;
2243       RAISE G_EXCEPTION_HALT_VALIDATION;
2244     END IF;
2245 
2246   EXCEPTION
2247     WHEN G_EXCEPTION_HALT_VALIDATION THEN
2248     -- no processing necessary; validation can continue
2249     -- with the next column
2250     NULL;
2251 
2252     WHEN OTHERS THEN
2253       -- store SQL error message on message stack for caller
2254       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
2255                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
2256                          ,p_token1       => G_OKL_SQLCODE_TOKEN
2257                          ,p_token1_value => SQLCODE
2258                          ,p_token2       => G_OKL_SQLERRM_TOKEN
2259                          ,p_token2_value => SQLERRM);
2260 
2261       -- notify caller of an UNEXPECTED error
2262       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2263 
2264   END Validate_Book_Method;
2265 
2266   ---------------------------------------------------------------------------
2267   -- PROCEDURE Validate_Date_Lending
2268   ---------------------------------------------------------------------------
2269   -- Start of comments
2270   --
2271   -- Procedure Name  : Validate_Date_Lending
2272   -- Description     :
2273   -- Business Rules  :
2274   -- Parameters      :
2275   -- Version         : 1.0
2276   -- End of comments
2277   ---------------------------------------------------------------------------
2278   PROCEDURE Validate_Date_Lending(
2279     p_silv_rec      IN   silv_rec_type,
2280     x_return_status OUT NOCOPY  VARCHAR2
2281   ) IS
2282 
2283   BEGIN
2284 
2285     -- initialize return status
2286     x_return_status := Okc_Api.G_RET_STS_SUCCESS;
2287 
2288     -- 04/23/2002, mvasudev
2289     /*
2290     IF p_silv_rec.Date_Lending = Okc_Api.G_MISS_DATE OR
2291        p_silv_rec.Date_Lending IS NULL
2292     THEN
2293       Okc_Api.set_message(G_OKC_APP, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Date_Lending');
2294       x_return_status := Okc_Api.G_RET_STS_ERROR;
2295       RAISE G_EXCEPTION_HALT_VALIDATION;
2296     END IF;
2297     */
2298     -- end, 04/23/2002, mvasudev
2299   EXCEPTION
2300     WHEN G_EXCEPTION_HALT_VALIDATION THEN
2301     -- no processing necessary; validation can continue
2302     -- with the next column
2303     NULL;
2304 
2305     WHEN OTHERS THEN
2306       -- store SQL error message on message stack for caller
2307       Okc_Api.SET_MESSAGE(p_app_name     => G_APP_NAME
2308                          ,p_msg_name     => G_OKL_UNEXPECTED_ERROR
2309                          ,p_token1       => G_OKL_SQLCODE_TOKEN
2310                          ,p_token1_value => SQLCODE
2311                          ,p_token2       => G_OKL_SQLERRM_TOKEN
2312                          ,p_token2_value => SQLERRM);
2313 
2314       -- notify caller of an UNEXPECTED error
2315       x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2316 
2317   END Validate_Date_Lending;
2318 
2319 
2320   ---------------------------------------------------------------------------
2321   -- FUNCTION Validate_Attributes
2322   ---------------------------------------------------------------------------
2323   -- Start of comments
2324   --
2325   -- Procedure Name  : Validate_Attributes
2326   -- Description     :
2327   -- Business Rules  :
2328   -- Parameters      :
2329   -- Version         : 1.0
2330   -- End of comments
2331   ---------------------------------------------------------------------------
2332 
2333   FUNCTION Validate_Attributes (
2334     p_silv_rec IN  silv_rec_type
2335   ) RETURN VARCHAR2 IS
2336 
2337     x_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2338     l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2339   BEGIN
2340     -- call each column-level validation
2341 
2342     -- Validate_Id
2343     Validate_Id(p_silv_rec, x_return_status);
2344     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2345        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2346           -- need to exit
2347           l_return_status := x_return_status;
2348           RAISE G_EXCEPTION_HALT_VALIDATION;
2349        ELSE
2350           -- there was an error
2351           l_return_status := x_return_status;
2352        END IF;
2353     END IF;
2354 
2355     -- Validate_Object_Version_Number
2356     Validate_Object_Version_Number(p_silv_rec, x_return_status);
2357     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2358        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2359           -- need to exit
2360           l_return_status := x_return_status;
2361           RAISE G_EXCEPTION_HALT_VALIDATION;
2362        ELSE
2363           -- there was an error
2364           l_return_status := x_return_status;
2365        END IF;
2366     END IF;
2367 
2368     -- Validate_Index_Number
2369     Validate_Index_Number(p_silv_rec, x_return_status);
2370     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2371        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2372           -- need to exit
2373           l_return_status := x_return_status;
2374           RAISE G_EXCEPTION_HALT_VALIDATION;
2375        ELSE
2376           -- there was an error
2377           l_return_status := x_return_status;
2378        END IF;
2379     END IF;
2380 
2381     -- Validate_Sif_id
2382     Validate_Sif_id(p_silv_rec, x_return_status);
2383     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2384        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2385           -- need to exit
2386           l_return_status := x_return_status;
2387           RAISE G_EXCEPTION_HALT_VALIDATION;
2388        ELSE
2389           -- there was an error
2390           l_return_status := x_return_status;
2391        END IF;
2392     END IF;
2393 
2394     -- Validate_Kle_Id
2395     Validate_Kle_Id(p_silv_rec, x_return_status);
2396     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2397        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2398           -- need to exit
2399           l_return_status := x_return_status;
2400           RAISE G_EXCEPTION_HALT_VALIDATION;
2401        ELSE
2402           -- there was an error
2403           l_return_status := x_return_status;
2404        END IF;
2405     END IF;
2406 
2407     -- Validate_Sil_Type
2408     Validate_Sil_Type(p_silv_rec, x_return_status);
2409     IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2410        IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2411           -- need to exit
2412           l_return_status := x_return_status;
2413           RAISE G_EXCEPTION_HALT_VALIDATION;
2414        ELSE
2415           -- there was an error
2416           l_return_status := x_return_status;
2417        END IF;
2418     END IF;
2419 
2420     IF (p_silv_rec.Sil_Type = G_SIL_TYPE_LEASE)
2421     THEN
2422 
2423 	    -- Validate_Residual_Guarantee
2424 	    Validate_Residual_Guarantee(p_silv_rec, x_return_status);
2425 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2426 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2427 		  -- need to exit
2428 		  l_return_status := x_return_status;
2429 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2430 	       ELSE
2431 		  -- there was an error
2432 		  l_return_status := x_return_status;
2433 	       END IF;
2434 	    END IF;
2435 
2436 	    -- Validate_Purchase_Option
2437 	    Validate_Purchase_Option(p_silv_rec, x_return_status);
2438 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2439 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2440 		  -- need to exit
2441 		  l_return_status := x_return_status;
2442 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2443 	       ELSE
2444 		  -- there was an error
2445 		  l_return_status := x_return_status;
2446 	       END IF;
2447 	    END IF;
2448 
2449 	    -- Validate_Asset_Cost
2450 	    Validate_Asset_Cost(p_silv_rec, x_return_status);
2451 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2452 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2453 		  -- need to exit
2454 		  l_return_status := x_return_status;
2455 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2456 	       ELSE
2457 		  -- there was an error
2458 		  l_return_status := x_return_status;
2459 	       END IF;
2460 	    END IF;
2461 
2462 	    -- Validate_Residual_Amount
2463 	    Validate_Residual_Amount(p_silv_rec, x_return_status);
2464 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2465 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2466 		  -- need to exit
2467 		  l_return_status := x_return_status;
2468 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2469 	       ELSE
2470 		  -- there was an error
2471 		  l_return_status := x_return_status;
2472 	       END IF;
2473 	    END IF;
2474 
2475 
2476 	    -- Validate_Date_Delivery
2477 	    Validate_Date_Delivery(p_silv_rec, x_return_status);
2478 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2479 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2480 		  -- need to exit
2481 		  l_return_status := x_return_status;
2482 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2483 	       ELSE
2484 		  -- there was an error
2485 		  l_return_status := x_return_status;
2486 	       END IF;
2487 	    END IF;
2488 
2489 	    -- Validate_Date_Funding
2490 	    Validate_Date_Funding(p_silv_rec, x_return_status);
2491 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2492 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2493 		  -- need to exit
2494 		  l_return_status := x_return_status;
2495 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2496 	       ELSE
2497 		  -- there was an error
2498 		  l_return_status := x_return_status;
2499 	       END IF;
2500 	    END IF;
2501 
2502 	    /*
2503 	    -- mvasudev, 07/16/2002
2504 	    --  Commented out to make "Depreciation Details" optional
2505 
2506 	    -- Validate_State_Depr_Dim_Value
2507 	    Validate_State_Depr_Dim_Value(p_silv_rec, x_return_status);
2508 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2509 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2510 		  -- need to exit
2511 		  l_return_status := x_return_status;
2512 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2513 	       ELSE
2514 		  -- there was an error
2515 		  l_return_status := x_return_status;
2516 	       END IF;
2517 	    END IF;
2518 
2519 	    -- Validate_Book_Depr_Dim_Value
2520 	    Validate_Book_Depr_Dim_Value(p_silv_rec, x_return_status);
2521 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2522 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2523 		  -- need to exit
2524 		  l_return_status := x_return_status;
2525 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2526 	       ELSE
2527 		  -- there was an error
2528 		  l_return_status := x_return_status;
2529 	       END IF;
2530 	    END IF;
2531 
2532 
2533 
2534 	    -- Validate_Fed_Depre_Term
2535 	    Validate_Fed_Depre_Term(p_silv_rec, x_return_status);
2536 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2537 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2538 		  -- need to exit
2539 		  l_return_status := x_return_status;
2540 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2541 	       ELSE
2542 		  -- there was an error
2543 		  l_return_status := x_return_status;
2544 	       END IF;
2545 	    END IF;
2546 
2547 	    -- Validate_Fed_Depre_Dim_Value
2548 	    Validate_Fed_Depre_Dim_Value(p_silv_rec, x_return_status);
2549 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2550 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2551 		  -- need to exit
2552 		  l_return_status := x_return_status;
2553 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2554 	       ELSE
2555 		  -- there was an error
2556 		  l_return_status := x_return_status;
2557 	       END IF;
2558 	    END IF;
2559 
2560 	    -- Validate_Fed_Depre_Adr
2561 	    Validate_Fed_Depre_Adr(p_silv_rec, x_return_status);
2562 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2563 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2564 		  -- need to exit
2565 		  l_return_status := x_return_status;
2566 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2567 	       ELSE
2568 		  -- there was an error
2569 		  l_return_status := x_return_status;
2570 	       END IF;
2571 	    END IF;
2572 
2573 	    -- Validate_State_Depre_Basis
2574 	    Validate_State_Depre_Basis(p_silv_rec, x_return_status);
2575 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2576 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2577 		  -- need to exit
2578 		  l_return_status := x_return_status;
2579 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2580 	       ELSE
2581 		  -- there was an error
2582 		  l_return_status := x_return_status;
2583 	       END IF;
2584 	    END IF;
2585 
2586 	    -- Validate_State_Depre_Method
2587 	    Validate_State_Depre_Method(p_silv_rec, x_return_status);
2588 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2589 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2590 		  -- need to exit
2591 		  l_return_status := x_return_status;
2592 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2593 	       ELSE
2594 		  -- there was an error
2595 		  l_return_status := x_return_status;
2596 	       END IF;
2597 	    END IF;
2598 
2599 	    -- Validate_Book_Depr_Dim_Value
2600 	    Validate_Book_Depr_Dim_Value(p_silv_rec, x_return_status);
2601 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2602 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2603 		  -- need to exit
2604 		  l_return_status := x_return_status;
2605 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2606 	       ELSE
2607 		  -- there was an error
2608 		  l_return_status := x_return_status;
2609 	       END IF;
2610 	    END IF;
2611 
2612 	    -- Validate_State_Depre_Term
2613 	    Validate_State_Depre_Term(p_silv_rec, x_return_status);
2614 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2615 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2616 		  -- need to exit
2617 		  l_return_status := x_return_status;
2618 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2619 	       ELSE
2620 		  -- there was an error
2621 		  l_return_status := x_return_status;
2622 	       END IF;
2623 	    END IF;
2624 
2625 	    -- Validate_State_Depre_Adr
2626 	    Validate_State_Depre_Adr(p_silv_rec, x_return_status);
2627 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2628 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2629 		  -- need to exit
2630 		  l_return_status := x_return_status;
2631 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2632 	       ELSE
2633 		  -- there was an error
2634 		  l_return_status := x_return_status;
2635 	       END IF;
2636 	    END IF;
2637 
2638 	    -- Validate_Fed_Depre_Method
2639 	    Validate_Fed_Depre_Method(p_silv_rec, x_return_status);
2640 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2641 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2642 		  -- need to exit
2643 		  l_return_status := x_return_status;
2644 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2645 	       ELSE
2646 		  -- there was an error
2647 		  l_return_status := x_return_status;
2648 	       END IF;
2649 	    END IF;
2650 
2651 	    -- Validate_Fed_Depre_Salvage
2652 	    Validate_Fed_Depre_Salvage(p_silv_rec, x_return_status);
2653 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2654 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2655 		  -- need to exit
2656 		  l_return_status := x_return_status;
2657 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2658 	       ELSE
2659 		  -- there was an error
2660 		  l_return_status := x_return_status;
2661 	       END IF;
2662 	    END IF;
2663 
2664 	    -- Validate_Date_Fed_Depre
2665 	    Validate_Date_Fed_Depre(p_silv_rec, x_return_status);
2666 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2667 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2668 		  -- need to exit
2669 		  l_return_status := x_return_status;
2670 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2671 	       ELSE
2672 		  -- there was an error
2673 		  l_return_status := x_return_status;
2674 	       END IF;
2675 	    END IF;
2676 
2677 	    -- Validate_Book_Salvage
2678 	    Validate_Book_Salvage(p_silv_rec, x_return_status);
2679 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2680 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2681 		  -- need to exit
2682 		  l_return_status := x_return_status;
2683 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2684 	       ELSE
2685 		  -- there was an error
2686 		  l_return_status := x_return_status;
2687 	       END IF;
2688 	    END IF;
2689 
2690 	    -- Validate_Book_Adr_Convention
2691 	    Validate_Book_Adr_Convention(p_silv_rec, x_return_status);
2692 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2693 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2694 		  -- need to exit
2695 		  l_return_status := x_return_status;
2696 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2697 	       ELSE
2698 		  -- there was an error
2699 		  l_return_status := x_return_status;
2700 	       END IF;
2701 	    END IF;
2702 
2703 	    -- Validate_State_Depre_Salvage
2704 	    Validate_State_Depre_Salvage(p_silv_rec, x_return_status);
2705 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2706 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2707 		  -- need to exit
2708 		  l_return_status := x_return_status;
2709 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2710 	       ELSE
2711 		  -- there was an error
2712 		  l_return_status := x_return_status;
2713 	       END IF;
2714 	    END IF;
2715 
2716 	    -- Validate_Fed_Depr_Basis
2717 	    Validate_Fed_Depr_Basis(p_silv_rec, x_return_status);
2718 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2719 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2720 		  -- need to exit
2721 		  l_return_status := x_return_status;
2722 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2723 	       ELSE
2724 		  -- there was an error
2725 		  l_return_status := x_return_status;
2726 	       END IF;
2727 	    END IF;
2728 
2729 	    -- Validate_Book_Basis_Percent
2730 	    Validate_Book_Basis_Percent(p_silv_rec, x_return_status);
2731 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2732 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2733 		  -- need to exit
2734 		  l_return_status := x_return_status;
2735 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2736 	       ELSE
2737 		  -- there was an error
2738 		  l_return_status := x_return_status;
2739 	       END IF;
2740 	    END IF;
2741 
2742 	    -- Validate_Date_Book
2743 	    Validate_Date_Book(p_silv_rec, x_return_status);
2744 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2745 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2746 		  -- need to exit
2747 		  l_return_status := x_return_status;
2748 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2749 	       ELSE
2750 		  -- there was an error
2751 		  l_return_status := x_return_status;
2752 	       END IF;
2753 	    END IF;
2754 
2755 	    -- Validate_Date_State_Depre
2756 	    Validate_Date_State_Depre(p_silv_rec, x_return_status);
2757 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2758 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2759 		  -- need to exit
2760 		  l_return_status := x_return_status;
2761 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2762 	       ELSE
2763 		  -- there was an error
2764 		  l_return_status := x_return_status;
2765 	       END IF;
2766 	    END IF;
2767 
2768 	    -- Validate_Book_Method
2769 	    Validate_Book_Method(p_silv_rec, x_return_status);
2770 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2771 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2772 		  -- need to exit
2773 		  l_return_status := x_return_status;
2774 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2775 	       ELSE
2776 		  -- there was an error
2777 		  l_return_status := x_return_status;
2778 	       END IF;
2779 	    END IF;
2780 	    */
2781 
2782     ELSIF (p_silv_rec.Sil_Type = G_SIL_TYPE_LOAN)
2783     THEN
2784 	    -- Validate_Date_Lending
2785 	    Validate_Date_Lending(p_silv_rec, x_return_status);
2786 	    IF (x_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2787 	       IF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2788 		  -- need to exit
2789 		  l_return_status := x_return_status;
2790 		  RAISE G_EXCEPTION_HALT_VALIDATION;
2791 	       ELSE
2792 		  -- there was an error
2793 		  l_return_status := x_return_status;
2794 	       END IF;
2795 	    END IF;
2796     END IF;
2797 
2798   RETURN(l_return_status);
2799   EXCEPTION
2800     WHEN G_EXCEPTION_HALT_VALIDATION THEN
2801        -- exit with return status
2802        NULL;
2803        RETURN (l_return_status);
2804 
2805     WHEN OTHERS THEN
2806        -- store SQL error message on message stack for caller
2807        Okc_Api.SET_MESSAGE(p_app_name         => g_app_name,
2808                            p_msg_name         => G_OKL_UNEXPECTED_ERROR,
2809                            p_token1           => G_OKL_SQLCODE_TOKEN,
2810                            p_token1_value     => SQLCODE,
2811                            p_token2           => G_OKL_SQLERRM_TOKEN,
2812                            p_token2_value     => SQLERRM);
2813        -- notify caller of an UNEXPECTED error
2814        l_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2815 
2816     RETURN(l_return_status);
2817   END Validate_Attributes;
2818   -- END change : mvasudev
2819 
2820   ---------------------------------------------------------------------------
2821   -- PROCEDURE Validate_Record
2822   ---------------------------------------------------------------------------
2823   -----------------------------------------
2824   -- Validate_Record for:OKL_SIF_LINES_V --
2825   -----------------------------------------
2826   FUNCTION Validate_Record (
2827     p_silv_rec IN silv_rec_type
2828   ) RETURN VARCHAR2 IS
2829     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2830   BEGIN
2831     RETURN (l_return_status);
2832   END Validate_Record;
2833 
2834   ---------------------------------------------------------------------------
2835   -- PROCEDURE Migrate
2836   ---------------------------------------------------------------------------
2837   PROCEDURE migrate (
2838     p_from	IN silv_rec_type,
2839     -- p_to	OUT NOCOPY sil_rec_type
2840     p_to	IN OUT NOCOPY sil_rec_type
2841   ) IS
2842   BEGIN
2843     p_to.id := p_from.id;
2844     p_to.STATE_DEPRE_DMNSHING_VALUE_RT := p_from.STATE_DEPRE_DMNSHING_VALUE_RT;
2845     p_to.BOOK_DEPRE_DMNSHING_VALUE_RT := p_from.BOOK_DEPRE_DMNSHING_VALUE_RT;
2846     p_to.residual_guarantee_method := p_from.residual_guarantee_method;
2847     p_to.fed_depre_term := p_from.fed_depre_term;
2848     p_to.fed_depre_dmnshing_value_rate := p_from.fed_depre_dmnshing_value_rate;
2849     p_to.fed_depre_adr_conve := p_from.fed_depre_adr_conve;
2850     p_to.state_depre_basis_percent := p_from.state_depre_basis_percent;
2851     p_to.state_depre_method := p_from.state_depre_method;
2852     p_to.purchase_option := p_from.purchase_option;
2853     p_to.purchase_option_amount := p_from.purchase_option_amount;
2854     p_to.asset_cost := p_from.asset_cost;
2855     p_to.state_depre_term := p_from.state_depre_term;
2856     p_to.state_depre_adr_convent := p_from.state_depre_adr_convent;
2857     p_to.fed_depre_method := p_from.fed_depre_method;
2858     p_to.residual_amount := p_from.residual_amount;
2859     p_to.fed_depre_salvage := p_from.fed_depre_salvage;
2860     p_to.date_fed_depre := p_from.date_fed_depre;
2861     p_to.book_salvage := p_from.book_salvage;
2862     p_to.book_adr_convention := p_from.book_adr_convention;
2863     p_to.state_depre_salvage := p_from.state_depre_salvage;
2864     p_to.fed_depre_basis_percent := p_from.Fed_Depre_Basis_Percent;
2865     p_to.book_basis_percent := p_from.book_basis_percent;
2866     p_to.date_delivery := p_from.date_delivery;
2867     p_to.book_term := p_from.book_term;
2868     p_to.residual_guarantee_amount := p_from.residual_guarantee_amount;
2869     p_to.date_funding := p_from.date_funding;
2870     p_to.date_book := p_from.date_book;
2871     p_to.date_state_depre := p_from.date_state_depre;
2872     p_to.book_method := p_from.book_method;
2873     p_to.stream_interface_attribute08 := p_from.stream_interface_attribute08;
2874     p_to.stream_interface_attribute03 := p_from.stream_interface_attribute03;
2875     p_to.stream_interface_attribute01 := p_from.stream_interface_attribute01;
2876     p_to.index_number := p_from.index_number;
2877     p_to.stream_interface_attribute05 := p_from.stream_interface_attribute05;
2878     p_to.description := p_from.description;
2879     p_to.stream_interface_attribute10 := p_from.stream_interface_attribute10;
2880     p_to.stream_interface_attribute06 := p_from.stream_interface_attribute06;
2881     p_to.stream_interface_attribute09 := p_from.stream_interface_attribute09;
2882     p_to.stream_interface_attribute07 := p_from.stream_interface_attribute07;
2883     p_to.stream_interface_attribute14 := p_from.stream_interface_attribute14;
2884     p_to.stream_interface_attribute12 := p_from.stream_interface_attribute12;
2885     p_to.stream_interface_attribute15 := p_from.stream_interface_attribute15;
2886     p_to.stream_interface_attribute02 := p_from.stream_interface_attribute02;
2887     p_to.stream_interface_attribute11 := p_from.stream_interface_attribute11;
2888     p_to.stream_interface_attribute04 := p_from.stream_interface_attribute04;
2889     p_to.stream_interface_attribute13 := p_from.stream_interface_attribute13;
2890     p_to.date_start := p_from.date_start;
2891     p_to.date_lending := p_from.date_lending;
2892     p_to.sif_id := p_from.sif_id;
2893     p_to.object_version_number := p_from.object_version_number;
2894     p_to.kle_id := p_from.kle_id;
2895     p_to.sil_type := p_from.sil_type;
2896     p_to.created_by := p_from.created_by;
2897     p_to.last_updated_by := p_from.last_updated_by;
2898     p_to.creation_date := p_from.creation_date;
2899     p_to.last_update_date := p_from.last_update_date;
2900     p_to.last_update_login := p_from.last_update_login;
2901     -- mvasudev , 05/13/2002
2902     p_to.residual_guarantee_type := p_from.residual_guarantee_type;
2903     p_to.residual_date := p_from.residual_date;
2904     p_to.down_payment_amount := p_from.down_payment_amount;
2905     p_to.capitalize_down_payment_yn	:= p_from.capitalize_down_payment_yn;
2906     p_to.orig_contract_line_id := p_from.orig_contract_line_id;
2907   END migrate;
2908   PROCEDURE migrate (
2909     p_from	IN sil_rec_type,
2910     --p_to	OUT NOCOPY silv_rec_type
2911     p_to	IN OUT NOCOPY silv_rec_type
2912   ) IS
2913   BEGIN
2914     p_to.id := p_from.id;
2915     p_to.STATE_DEPRE_DMNSHING_VALUE_RT := p_from.STATE_DEPRE_DMNSHING_VALUE_RT;
2916     p_to.BOOK_DEPRE_DMNSHING_VALUE_RT := p_from.BOOK_DEPRE_DMNSHING_VALUE_RT;
2917     p_to.residual_guarantee_method := p_from.residual_guarantee_method;
2918     p_to.fed_depre_term := p_from.fed_depre_term;
2919     p_to.fed_depre_dmnshing_value_rate := p_from.fed_depre_dmnshing_value_rate;
2920     p_to.fed_depre_adr_conve := p_from.fed_depre_adr_conve;
2921     p_to.state_depre_basis_percent := p_from.state_depre_basis_percent;
2922     p_to.state_depre_method := p_from.state_depre_method;
2923     p_to.purchase_option := p_from.purchase_option;
2924     p_to.purchase_option_amount := p_from.purchase_option_amount;
2925     p_to.asset_cost := p_from.asset_cost;
2926     p_to.state_depre_term := p_from.state_depre_term;
2927     p_to.state_depre_adr_convent := p_from.state_depre_adr_convent;
2928     p_to.fed_depre_method := p_from.fed_depre_method;
2929     p_to.residual_amount := p_from.residual_amount;
2930     p_to.fed_depre_salvage := p_from.fed_depre_salvage;
2931     p_to.date_fed_depre := p_from.date_fed_depre;
2932     p_to.book_salvage := p_from.book_salvage;
2933     p_to.book_adr_convention := p_from.book_adr_convention;
2934     p_to.state_depre_salvage := p_from.state_depre_salvage;
2935     p_to.fed_depre_basis_percent := p_from.Fed_Depre_Basis_Percent;
2936     p_to.book_basis_percent := p_from.book_basis_percent;
2937     p_to.date_delivery := p_from.date_delivery;
2938     p_to.book_term := p_from.book_term;
2939     p_to.residual_guarantee_amount := p_from.residual_guarantee_amount;
2940     p_to.date_funding := p_from.date_funding;
2941     p_to.date_book := p_from.date_book;
2942     p_to.date_state_depre := p_from.date_state_depre;
2943     p_to.book_method := p_from.book_method;
2944     p_to.stream_interface_attribute08 := p_from.stream_interface_attribute08;
2945     p_to.stream_interface_attribute03 := p_from.stream_interface_attribute03;
2946     p_to.stream_interface_attribute01 := p_from.stream_interface_attribute01;
2947     p_to.index_number := p_from.index_number;
2948     p_to.stream_interface_attribute05 := p_from.stream_interface_attribute05;
2949     p_to.description := p_from.description;
2950     p_to.stream_interface_attribute10 := p_from.stream_interface_attribute10;
2951     p_to.stream_interface_attribute06 := p_from.stream_interface_attribute06;
2952     p_to.stream_interface_attribute09 := p_from.stream_interface_attribute09;
2953     p_to.stream_interface_attribute07 := p_from.stream_interface_attribute07;
2954     p_to.stream_interface_attribute14 := p_from.stream_interface_attribute14;
2955     p_to.stream_interface_attribute12 := p_from.stream_interface_attribute12;
2956     p_to.stream_interface_attribute15 := p_from.stream_interface_attribute15;
2957     p_to.stream_interface_attribute02 := p_from.stream_interface_attribute02;
2958     p_to.stream_interface_attribute11 := p_from.stream_interface_attribute11;
2959     p_to.stream_interface_attribute04 := p_from.stream_interface_attribute04;
2960     p_to.stream_interface_attribute13 := p_from.stream_interface_attribute13;
2961     p_to.date_start := p_from.date_start;
2962     p_to.date_lending := p_from.date_lending;
2963     p_to.sif_id := p_from.sif_id;
2964     p_to.object_version_number := p_from.object_version_number;
2965     p_to.kle_id := p_from.kle_id;
2966     p_to.sil_type := p_from.sil_type;
2967     p_to.created_by := p_from.created_by;
2968     p_to.last_updated_by := p_from.last_updated_by;
2969     p_to.creation_date := p_from.creation_date;
2970     p_to.last_update_date := p_from.last_update_date;
2971     p_to.last_update_login := p_from.last_update_login;
2972     -- mvasudev , 05/13/2002
2973     p_to.residual_date := p_from.residual_date;
2974     p_to.down_payment_amount := p_from.down_payment_amount;
2975     p_to.capitalize_down_payment_yn	:= p_from.capitalize_down_payment_yn;
2976     p_to.orig_contract_line_id	:= p_from.orig_contract_line_id;
2977   END migrate;
2978 
2979   ---------------------------------------------------------------------------
2980   -- PROCEDURE validate_row
2981   ---------------------------------------------------------------------------
2982   --------------------------------------
2983   -- validate_row for:OKL_SIF_LINES_V --
2984   --------------------------------------
2985   PROCEDURE validate_row(
2986     p_api_version                  IN NUMBER,
2987     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2988     x_return_status                OUT NOCOPY VARCHAR2,
2989     x_msg_count                    OUT NOCOPY NUMBER,
2990     x_msg_data                     OUT NOCOPY VARCHAR2,
2991     p_silv_rec                     IN silv_rec_type) IS
2992 
2993     l_api_version                 CONSTANT NUMBER := 1;
2994     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
2995     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2996     l_silv_rec                     silv_rec_type := p_silv_rec;
2997     l_sil_rec                      sil_rec_type;
2998   BEGIN
2999     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3000                                               G_PKG_NAME,
3001                                               p_init_msg_list,
3002                                               l_api_version,
3003                                               p_api_version,
3004                                               '_PVT',
3005                                               x_return_status);
3006     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3007       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3008     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3009       RAISE OKC_API.G_EXCEPTION_ERROR;
3010     END IF;
3011     --- Validate all non-missing attributes (Item Level Validation)
3012     l_return_status := Validate_Attributes(l_silv_rec);
3013     --- If any errors happen abort API
3014     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3015       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3016     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3017       RAISE OKC_API.G_EXCEPTION_ERROR;
3018     END IF;
3019     l_return_status := Validate_Record(l_silv_rec);
3020     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3021       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3022     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3023       RAISE OKC_API.G_EXCEPTION_ERROR;
3024     END IF;
3025     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3026   EXCEPTION
3027     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3028       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3029       (
3030         l_api_name,
3031         G_PKG_NAME,
3032         'OKC_API.G_RET_STS_ERROR',
3033         x_msg_count,
3034         x_msg_data,
3035         '_PVT'
3036       );
3037     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3038       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3039       (
3040         l_api_name,
3041         G_PKG_NAME,
3042         'OKC_API.G_RET_STS_UNEXP_ERROR',
3043         x_msg_count,
3044         x_msg_data,
3045         '_PVT'
3046       );
3047     WHEN OTHERS THEN
3048       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3049       (
3050         l_api_name,
3051         G_PKG_NAME,
3052         'OTHERS',
3053         x_msg_count,
3054         x_msg_data,
3055         '_PVT'
3056       );
3057   END validate_row;
3058   ------------------------------------------
3059   -- PL/SQL TBL validate_row for:SILV_TBL --
3060   ------------------------------------------
3061   PROCEDURE validate_row(
3062     p_api_version                  IN NUMBER,
3063     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3064     x_return_status                OUT NOCOPY VARCHAR2,
3065     x_msg_count                    OUT NOCOPY NUMBER,
3066     x_msg_data                     OUT NOCOPY VARCHAR2,
3067     p_silv_tbl                     IN silv_tbl_type) IS
3068 
3069     l_api_version                 CONSTANT NUMBER := 1;
3070     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
3071     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3072     i                              NUMBER := 0;
3073     -- START change : mvasudev, 08/15/2001
3074     -- Adding OverAll Status Flag
3075     l_overall_status 		  VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3076     -- END change : mvasudev
3077 
3078   BEGIN
3079     OKC_API.init_msg_list(p_init_msg_list);
3080     -- Make sure PL/SQL table has records in it before passing
3081     IF (p_silv_tbl.COUNT > 0) THEN
3082       i := p_silv_tbl.FIRST;
3083       LOOP
3084         validate_row (
3085           p_api_version                  => p_api_version,
3086           p_init_msg_list                => OKC_API.G_FALSE,
3087           x_return_status                => x_return_status,
3088           x_msg_count                    => x_msg_count,
3089           x_msg_data                     => x_msg_data,
3090           p_silv_rec                     => p_silv_tbl(i));
3091     	-- START change : mvasudev, 08/15/2001
3092     	-- store the highest degree of error
3093     	IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
3094     	    IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
3095     	    	l_overall_status := x_return_status;
3096     	    END IF;
3097     	END IF;
3098 	-- END change : mvasudev
3099         EXIT WHEN (i = p_silv_tbl.LAST);
3100         i := p_silv_tbl.NEXT(i);
3101       END LOOP;
3102       -- START change : mvasudev, 08/15/2001
3103       -- return overall status
3104       x_return_status := l_overall_status;
3105       -- END change : mvasudev
3106     END IF;
3107   EXCEPTION
3108     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3109       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3110       (
3111         l_api_name,
3112         G_PKG_NAME,
3113         'OKC_API.G_RET_STS_ERROR',
3114         x_msg_count,
3115         x_msg_data,
3116         '_PVT'
3117       );
3118     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3119       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3120       (
3121         l_api_name,
3122         G_PKG_NAME,
3123         'OKC_API.G_RET_STS_UNEXP_ERROR',
3124         x_msg_count,
3125         x_msg_data,
3126         '_PVT'
3127       );
3128     WHEN OTHERS THEN
3129       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3130       (
3131         l_api_name,
3132         G_PKG_NAME,
3133         'OTHERS',
3134         x_msg_count,
3135         x_msg_data,
3136         '_PVT'
3137       );
3138   END validate_row;
3139 
3140   ---------------------------------------------------------------------------
3141   -- PROCEDURE insert_row
3142   ---------------------------------------------------------------------------
3143   ----------------------------------
3144   -- insert_row for:OKL_SIF_LINES --
3145   ----------------------------------
3146   PROCEDURE insert_row(
3147     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3148     x_return_status                OUT NOCOPY VARCHAR2,
3149     x_msg_count                    OUT NOCOPY NUMBER,
3150     x_msg_data                     OUT NOCOPY VARCHAR2,
3151     p_sil_rec                      IN sil_rec_type,
3152     x_sil_rec                      OUT NOCOPY sil_rec_type) IS
3153 
3154     l_api_version                 CONSTANT NUMBER := 1;
3155     l_api_name                     CONSTANT VARCHAR2(30) := 'LINES_insert_row';
3156     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3157     l_sil_rec                      sil_rec_type := p_sil_rec;
3158     l_def_sil_rec                  sil_rec_type;
3159     --------------------------------------
3160     -- Set_Attributes for:OKL_SIF_LINES --
3161     --------------------------------------
3162     FUNCTION Set_Attributes (
3163       p_sil_rec IN  sil_rec_type,
3164       x_sil_rec OUT NOCOPY sil_rec_type
3165     ) RETURN VARCHAR2 IS
3166       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3167     BEGIN
3168       x_sil_rec := p_sil_rec;
3169       RETURN(l_return_status);
3170     END Set_Attributes;
3171   BEGIN
3172     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3173                                               p_init_msg_list,
3174                                               '_PVT',
3175                                               x_return_status);
3176     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3177       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3178     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3179       RAISE OKC_API.G_EXCEPTION_ERROR;
3180     END IF;
3181     --- Setting item attributes
3182     l_return_status := Set_Attributes(
3183       p_sil_rec,                         -- IN
3184       l_sil_rec);                        -- OUT
3185     --- If any errors happen abort API
3186     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3187       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3188     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3189       RAISE OKC_API.G_EXCEPTION_ERROR;
3190     END IF;
3191     INSERT INTO OKL_SIF_LINES(
3192         id,
3193         STATE_DEPRE_DMNSHING_VALUE_RT,
3194         BOOK_DEPRE_DMNSHING_VALUE_RT,
3195         residual_guarantee_method,
3196         fed_depre_term,
3197         fed_depre_dmnshing_value_rate,
3198         fed_depre_adr_conve,
3199         state_depre_basis_percent,
3200         state_depre_method,
3201         purchase_option,
3202         purchase_option_amount,
3203         asset_cost,
3204         state_depre_term,
3205         state_depre_adr_convent,
3206         fed_depre_method,
3207         residual_amount,
3208         fed_depre_salvage,
3209         date_fed_depre,
3210         book_salvage,
3211         book_adr_convention,
3212         state_depre_salvage,
3213         fed_depre_basis_percent,
3214         book_basis_percent,
3215         date_delivery,
3216         book_term,
3217         residual_guarantee_amount,
3218         date_funding,
3219         date_book,
3220         date_state_depre,
3221         book_method,
3222         stream_interface_attribute08,
3223         stream_interface_attribute03,
3224         stream_interface_attribute01,
3225         index_number,
3226         stream_interface_attribute05,
3227         description,
3228         stream_interface_attribute10,
3229         stream_interface_attribute06,
3230         stream_interface_attribute09,
3231         stream_interface_attribute07,
3232         stream_interface_attribute14,
3233         stream_interface_attribute12,
3234         stream_interface_attribute15,
3235         stream_interface_attribute02,
3236         stream_interface_attribute11,
3237         stream_interface_attribute04,
3238         stream_interface_attribute13,
3239         date_start,
3240         date_lending,
3241         sif_id,
3242         object_version_number,
3243         kle_id,
3244         sil_type,
3245         created_by,
3246         last_updated_by,
3247         creation_date,
3248         last_update_date,
3249         last_update_login,
3250         -- mvasudev , 05/13/2002
3251         residual_guarantee_type,
3252         residual_date,
3253         down_payment_amount,
3254         capitalize_down_payment_yn,
3255 		orig_contract_line_id)
3256       VALUES (
3257         l_sil_rec.id,
3258         l_sil_rec.STATE_DEPRE_DMNSHING_VALUE_RT,
3259         l_sil_rec.BOOK_DEPRE_DMNSHING_VALUE_RT,
3260         l_sil_rec.residual_guarantee_method,
3261         l_sil_rec.fed_depre_term,
3262         l_sil_rec.fed_depre_dmnshing_value_rate,
3263         l_sil_rec.fed_depre_adr_conve,
3264         l_sil_rec.state_depre_basis_percent,
3265         l_sil_rec.state_depre_method,
3266         l_sil_rec.purchase_option,
3267         l_sil_rec.purchase_option_amount,
3268         l_sil_rec.asset_cost,
3269         l_sil_rec.state_depre_term,
3270         l_sil_rec.state_depre_adr_convent,
3271         l_sil_rec.fed_depre_method,
3272         l_sil_rec.residual_amount,
3273         l_sil_rec.fed_depre_salvage,
3274         l_sil_rec.date_fed_depre,
3275         l_sil_rec.book_salvage,
3276         l_sil_rec.book_adr_convention,
3277         l_sil_rec.state_depre_salvage,
3278         l_sil_rec.fed_depre_basis_percent,
3279         l_sil_rec.book_basis_percent,
3280         l_sil_rec.date_delivery,
3281         l_sil_rec.book_term,
3282         l_sil_rec.residual_guarantee_amount,
3283         l_sil_rec.date_funding,
3284         l_sil_rec.date_book,
3285         l_sil_rec.date_state_depre,
3286         l_sil_rec.book_method,
3287         l_sil_rec.stream_interface_attribute08,
3288         l_sil_rec.stream_interface_attribute03,
3289         l_sil_rec.stream_interface_attribute01,
3290         l_sil_rec.index_number,
3291         l_sil_rec.stream_interface_attribute05,
3292         l_sil_rec.description,
3293         l_sil_rec.stream_interface_attribute10,
3294         l_sil_rec.stream_interface_attribute06,
3295         l_sil_rec.stream_interface_attribute09,
3296         l_sil_rec.stream_interface_attribute07,
3297         l_sil_rec.stream_interface_attribute14,
3298         l_sil_rec.stream_interface_attribute12,
3299         l_sil_rec.stream_interface_attribute15,
3300         l_sil_rec.stream_interface_attribute02,
3301         l_sil_rec.stream_interface_attribute11,
3302         l_sil_rec.stream_interface_attribute04,
3303         l_sil_rec.stream_interface_attribute13,
3304         l_sil_rec.date_start,
3305         l_sil_rec.date_lending,
3306         l_sil_rec.sif_id,
3307         l_sil_rec.object_version_number,
3308         l_sil_rec.kle_id,
3309         l_sil_rec.sil_type,
3310         l_sil_rec.created_by,
3311         l_sil_rec.last_updated_by,
3312         l_sil_rec.creation_date,
3313         l_sil_rec.last_update_date,
3314         l_sil_rec.last_update_login,
3315         -- mvasudev , 05/13/2002
3316         l_sil_rec.residual_guarantee_type,
3317         l_sil_rec.residual_date,
3318         l_sil_rec.down_payment_amount,
3319         l_sil_rec.capitalize_down_payment_yn,
3320 		l_sil_rec.orig_contract_line_id);
3321     -- Set OUT values
3322     x_sil_rec := l_sil_rec;
3323     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3324   EXCEPTION
3325     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3326       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3327       (
3328         l_api_name,
3329         G_PKG_NAME,
3330         'OKC_API.G_RET_STS_ERROR',
3331         x_msg_count,
3332         x_msg_data,
3333         '_PVT'
3334       );
3335     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3336       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3337       (
3338         l_api_name,
3339         G_PKG_NAME,
3340         'OKC_API.G_RET_STS_UNEXP_ERROR',
3341         x_msg_count,
3342         x_msg_data,
3343         '_PVT'
3344       );
3345     WHEN OTHERS THEN
3346       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3347       (
3348         l_api_name,
3349         G_PKG_NAME,
3350         'OTHERS',
3351         x_msg_count,
3352         x_msg_data,
3353         '_PVT'
3354       );
3355   END insert_row;
3356   ------------------------------------
3357   -- insert_row for:OKL_SIF_LINES_V --
3358   ------------------------------------
3359   PROCEDURE insert_row(
3360     p_api_version                  IN NUMBER,
3361     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3362     x_return_status                OUT NOCOPY VARCHAR2,
3363     x_msg_count                    OUT NOCOPY NUMBER,
3364     x_msg_data                     OUT NOCOPY VARCHAR2,
3365     p_silv_rec                     IN silv_rec_type,
3366     x_silv_rec                     OUT NOCOPY silv_rec_type) IS
3367 
3368     l_api_version                 CONSTANT NUMBER := 1;
3369     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
3370     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3371     l_silv_rec                     silv_rec_type;
3372     l_def_silv_rec                 silv_rec_type;
3373     l_sil_rec                      sil_rec_type;
3374     lx_sil_rec                     sil_rec_type;
3375     -------------------------------
3376     -- FUNCTION fill_who_columns --
3377     -------------------------------
3378     FUNCTION fill_who_columns (
3379       p_silv_rec	IN silv_rec_type
3380     ) RETURN silv_rec_type IS
3381       l_silv_rec	silv_rec_type := p_silv_rec;
3382     BEGIN
3383       l_silv_rec.CREATION_DATE := SYSDATE;
3384       l_silv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
3385       l_silv_rec.LAST_UPDATE_DATE := SYSDATE;
3386       l_silv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3387       l_silv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3388       RETURN(l_silv_rec);
3389     END fill_who_columns;
3390     ----------------------------------------
3391     -- Set_Attributes for:OKL_SIF_LINES_V --
3392     ----------------------------------------
3393     FUNCTION Set_Attributes (
3394       p_silv_rec IN  silv_rec_type,
3395       x_silv_rec OUT NOCOPY silv_rec_type
3396     ) RETURN VARCHAR2 IS
3397       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3398     BEGIN
3399       x_silv_rec := p_silv_rec;
3400       x_silv_rec.OBJECT_VERSION_NUMBER := 1;
3401       RETURN(l_return_status);
3402     END Set_Attributes;
3403   BEGIN
3404     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3405                                               G_PKG_NAME,
3406                                               p_init_msg_list,
3407                                               l_api_version,
3408                                               p_api_version,
3409                                               '_PVT',
3410                                               x_return_status);
3411     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3412       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3413     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3414       RAISE OKC_API.G_EXCEPTION_ERROR;
3415     END IF;
3416     l_silv_rec := null_out_defaults(p_silv_rec);
3417     -- Set primary key value
3418     l_silv_rec.ID := get_seq_id;
3419     --- Setting item attributes
3420     l_return_status := Set_Attributes(
3421       l_silv_rec,                        -- IN
3422       l_def_silv_rec);                   -- OUT
3423     --- If any errors happen abort API
3424     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3425       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3426     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3427       RAISE OKC_API.G_EXCEPTION_ERROR;
3428     END IF;
3429     l_def_silv_rec := fill_who_columns(l_def_silv_rec);
3430     --- Validate all non-missing attributes (Item Level Validation)
3431     l_return_status := Validate_Attributes(l_def_silv_rec);
3432     --- If any errors happen abort API
3433     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3434       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3435     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3436       RAISE OKC_API.G_EXCEPTION_ERROR;
3437     END IF;
3438     l_return_status := Validate_Record(l_def_silv_rec);
3439     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3440       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3441     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3442       RAISE OKC_API.G_EXCEPTION_ERROR;
3443     END IF;
3444     --------------------------------------
3445     -- Move VIEW record to "Child" records
3446     --------------------------------------
3447     migrate(l_def_silv_rec, l_sil_rec);
3448     --------------------------------------------
3449     -- Call the INSERT_ROW for each child record
3450     --------------------------------------------
3451     insert_row(
3452       p_init_msg_list,
3453       x_return_status,
3454       x_msg_count,
3455       x_msg_data,
3456       l_sil_rec,
3457       lx_sil_rec
3458     );
3459     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3460       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3461     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3462       RAISE OKC_API.G_EXCEPTION_ERROR;
3463     END IF;
3464     migrate(lx_sil_rec, l_def_silv_rec);
3465     -- Set OUT values
3466     x_silv_rec := l_def_silv_rec;
3467     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3468   EXCEPTION
3469     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3470       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3471       (
3472         l_api_name,
3473         G_PKG_NAME,
3474         'OKC_API.G_RET_STS_ERROR',
3475         x_msg_count,
3476         x_msg_data,
3477         '_PVT'
3478       );
3479     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3480       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3481       (
3482         l_api_name,
3483         G_PKG_NAME,
3484         'OKC_API.G_RET_STS_UNEXP_ERROR',
3485         x_msg_count,
3486         x_msg_data,
3487         '_PVT'
3488       );
3489     WHEN OTHERS THEN
3490       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3491       (
3492         l_api_name,
3493         G_PKG_NAME,
3494         'OTHERS',
3495         x_msg_count,
3496         x_msg_data,
3497         '_PVT'
3498       );
3499   END insert_row;
3500   ----------------------------------------
3501   -- PL/SQL TBL insert_row for:SILV_TBL --
3502   ----------------------------------------
3503   PROCEDURE insert_row(
3504     p_api_version                  IN NUMBER,
3505     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3506     x_return_status                OUT NOCOPY VARCHAR2,
3507     x_msg_count                    OUT NOCOPY NUMBER,
3508     x_msg_data                     OUT NOCOPY VARCHAR2,
3509     p_silv_tbl                     IN silv_tbl_type,
3510     x_silv_tbl                     OUT NOCOPY silv_tbl_type) IS
3511 
3512     l_api_version                 CONSTANT NUMBER := 1;
3513     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
3514     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3515     i                              NUMBER := 0;
3516     -- START change : mvasudev, 08/15/2001
3517     -- Adding OverAll Status Flag
3518     l_overall_status 		  VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3519     -- END change : mvasudev
3520   BEGIN
3521     OKC_API.init_msg_list(p_init_msg_list);
3522     -- Make sure PL/SQL table has records in it before passing
3523     IF (p_silv_tbl.COUNT > 0) THEN
3524       i := p_silv_tbl.FIRST;
3525       LOOP
3526         insert_row (
3527           p_api_version                  => p_api_version,
3528           p_init_msg_list                => OKC_API.G_FALSE,
3529           x_return_status                => x_return_status,
3530           x_msg_count                    => x_msg_count,
3531           x_msg_data                     => x_msg_data,
3532           p_silv_rec                     => p_silv_tbl(i),
3533           x_silv_rec                     => x_silv_tbl(i));
3534     	-- START change : mvasudev, 08/15/2001
3535     	-- store the highest degree of error
3536     	IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
3537     	    IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
3538     	    	l_overall_status := x_return_status;
3539     	    END IF;
3540     	END IF;
3541 	-- END change : mvasudev
3542 
3543         EXIT WHEN (i = p_silv_tbl.LAST);
3544         i := p_silv_tbl.NEXT(i);
3545       END LOOP;
3546       -- START change : mvasudev, 08/15/2001
3547       -- return overall status
3548       x_return_status := l_overall_status;
3549       -- END change : mvasudev
3550     END IF;
3551   EXCEPTION
3552     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3553       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3554       (
3555         l_api_name,
3556         G_PKG_NAME,
3557         'OKC_API.G_RET_STS_ERROR',
3558         x_msg_count,
3559         x_msg_data,
3560         '_PVT'
3561       );
3562     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3563       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3564       (
3565         l_api_name,
3566         G_PKG_NAME,
3567         'OKC_API.G_RET_STS_UNEXP_ERROR',
3568         x_msg_count,
3569         x_msg_data,
3570         '_PVT'
3571       );
3572     WHEN OTHERS THEN
3573       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3574       (
3575         l_api_name,
3576         G_PKG_NAME,
3577         'OTHERS',
3578         x_msg_count,
3579         x_msg_data,
3580         '_PVT'
3581       );
3582   END insert_row;
3583 
3584   ---------------------------------------------------------------------------
3585   -- PROCEDURE lock_row
3586   ---------------------------------------------------------------------------
3587   --------------------------------
3588   -- lock_row for:OKL_SIF_LINES --
3589   --------------------------------
3590   PROCEDURE lock_row(
3591     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3592     x_return_status                OUT NOCOPY VARCHAR2,
3593     x_msg_count                    OUT NOCOPY NUMBER,
3594     x_msg_data                     OUT NOCOPY VARCHAR2,
3595     p_sil_rec                      IN sil_rec_type) IS
3596 
3597     E_Resource_Busy               EXCEPTION;
3598     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
3599     CURSOR lock_csr (p_sil_rec IN sil_rec_type) IS
3600     SELECT OBJECT_VERSION_NUMBER
3601       FROM OKL_SIF_LINES
3602      WHERE ID = p_sil_rec.id
3603        AND OBJECT_VERSION_NUMBER = p_sil_rec.object_version_number
3604     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
3605 
3606     CURSOR  lchk_csr (p_sil_rec IN sil_rec_type) IS
3607     SELECT OBJECT_VERSION_NUMBER
3608       FROM OKL_SIF_LINES
3609     WHERE ID = p_sil_rec.id;
3610     l_api_version                 CONSTANT NUMBER := 1;
3611     l_api_name                     CONSTANT VARCHAR2(30) := 'LINES_lock_row';
3612     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3613     l_object_version_number       OKL_SIF_LINES.OBJECT_VERSION_NUMBER%TYPE;
3614     lc_object_version_number      OKL_SIF_LINES.OBJECT_VERSION_NUMBER%TYPE;
3615     l_row_notfound                BOOLEAN := FALSE;
3616     lc_row_notfound               BOOLEAN := FALSE;
3617   BEGIN
3618     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3619                                               p_init_msg_list,
3620                                               '_PVT',
3621                                               x_return_status);
3622     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3623       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3624     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3625       RAISE OKC_API.G_EXCEPTION_ERROR;
3626     END IF;
3627     BEGIN
3628       OPEN lock_csr(p_sil_rec);
3629       FETCH lock_csr INTO l_object_version_number;
3630       l_row_notfound := lock_csr%NOTFOUND;
3631       CLOSE lock_csr;
3632     EXCEPTION
3633       WHEN E_Resource_Busy THEN
3634         IF (lock_csr%ISOPEN) THEN
3635           CLOSE lock_csr;
3636         END IF;
3637         OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
3638         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
3639     END;
3640 
3641     IF ( l_row_notfound ) THEN
3642       OPEN lchk_csr(p_sil_rec);
3643       FETCH lchk_csr INTO lc_object_version_number;
3644       lc_row_notfound := lchk_csr%NOTFOUND;
3645       CLOSE lchk_csr;
3646     END IF;
3647     IF (lc_row_notfound) THEN
3648       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
3649       RAISE OKC_API.G_EXCEPTION_ERROR;
3650     ELSIF lc_object_version_number > p_sil_rec.object_version_number THEN
3651       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3652       RAISE OKC_API.G_EXCEPTION_ERROR;
3653     ELSIF lc_object_version_number <> p_sil_rec.object_version_number THEN
3654       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3655       RAISE OKC_API.G_EXCEPTION_ERROR;
3656     ELSIF lc_object_version_number = -1 THEN
3657       OKC_API.set_message(G_OKC_APP,G_RECORD_LOGICALLY_DELETED);
3658       RAISE OKC_API.G_EXCEPTION_ERROR;
3659     END IF;
3660     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3661   EXCEPTION
3662     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3663       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3664       (
3665         l_api_name,
3666         G_PKG_NAME,
3667         'OKC_API.G_RET_STS_ERROR',
3668         x_msg_count,
3669         x_msg_data,
3670         '_PVT'
3671       );
3672     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3673       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3674       (
3675         l_api_name,
3676         G_PKG_NAME,
3677         'OKC_API.G_RET_STS_UNEXP_ERROR',
3678         x_msg_count,
3679         x_msg_data,
3680         '_PVT'
3681       );
3682     WHEN OTHERS THEN
3683       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3684       (
3685         l_api_name,
3686         G_PKG_NAME,
3687         'OTHERS',
3688         x_msg_count,
3689         x_msg_data,
3690         '_PVT'
3691       );
3692   END lock_row;
3693   ----------------------------------
3694   -- lock_row for:OKL_SIF_LINES_V --
3695   ----------------------------------
3696   PROCEDURE lock_row(
3697     p_api_version                  IN NUMBER,
3698     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3699     x_return_status                OUT NOCOPY VARCHAR2,
3700     x_msg_count                    OUT NOCOPY NUMBER,
3701     x_msg_data                     OUT NOCOPY VARCHAR2,
3702     p_silv_rec                     IN silv_rec_type) IS
3703 
3704     l_api_version                 CONSTANT NUMBER := 1;
3705     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
3706     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3707     l_sil_rec                      sil_rec_type;
3708   BEGIN
3709     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3710                                               G_PKG_NAME,
3711                                               p_init_msg_list,
3712                                               l_api_version,
3713                                               p_api_version,
3714                                               '_PVT',
3715                                               x_return_status);
3716     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3717       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3718     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3719       RAISE OKC_API.G_EXCEPTION_ERROR;
3720     END IF;
3721     --------------------------------------
3722     -- Move VIEW record to "Child" records
3723     --------------------------------------
3724     migrate(p_silv_rec, l_sil_rec);
3725     --------------------------------------------
3726     -- Call the LOCK_ROW for each child record
3727     --------------------------------------------
3728     lock_row(
3729       p_init_msg_list,
3730       x_return_status,
3731       x_msg_count,
3732       x_msg_data,
3733       l_sil_rec
3734     );
3735     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3736       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3737     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3738       RAISE OKC_API.G_EXCEPTION_ERROR;
3739     END IF;
3740     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3741   EXCEPTION
3742     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3743       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3744       (
3745         l_api_name,
3746         G_PKG_NAME,
3747         'OKC_API.G_RET_STS_ERROR',
3748         x_msg_count,
3749         x_msg_data,
3750         '_PVT'
3751       );
3752     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3753       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3754       (
3755         l_api_name,
3756         G_PKG_NAME,
3757         'OKC_API.G_RET_STS_UNEXP_ERROR',
3758         x_msg_count,
3759         x_msg_data,
3760         '_PVT'
3761       );
3762     WHEN OTHERS THEN
3763       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3764       (
3765         l_api_name,
3766         G_PKG_NAME,
3767         'OTHERS',
3768         x_msg_count,
3769         x_msg_data,
3770         '_PVT'
3771       );
3772   END lock_row;
3773   --------------------------------------
3774   -- PL/SQL TBL lock_row for:SILV_TBL --
3775   --------------------------------------
3776   PROCEDURE lock_row(
3777     p_api_version                  IN NUMBER,
3778     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3779     x_return_status                OUT NOCOPY VARCHAR2,
3780     x_msg_count                    OUT NOCOPY NUMBER,
3781     x_msg_data                     OUT NOCOPY VARCHAR2,
3782     p_silv_tbl                     IN silv_tbl_type) IS
3783 
3784     l_api_version                 CONSTANT NUMBER := 1;
3785     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
3786     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3787     i                              NUMBER := 0;
3788     -- START change : mvasudev, 08/15/2001
3789     -- Adding OverAll Status Flag
3790     l_overall_status 		  VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
3791     -- END change : mvasudev
3792   BEGIN
3793     OKC_API.init_msg_list(p_init_msg_list);
3794     -- Make sure PL/SQL table has records in it before passing
3795     IF (p_silv_tbl.COUNT > 0) THEN
3796       i := p_silv_tbl.FIRST;
3797       LOOP
3798         lock_row (
3799           p_api_version                  => p_api_version,
3800           p_init_msg_list                => OKC_API.G_FALSE,
3801           x_return_status                => x_return_status,
3802           x_msg_count                    => x_msg_count,
3803           x_msg_data                     => x_msg_data,
3804           p_silv_rec                     => p_silv_tbl(i));
3805     	-- START change : mvasudev, 08/15/2001
3806     	-- store the highest degree of error
3807     	IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
3808     	    IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
3809     	    	l_overall_status := x_return_status;
3810     	    END IF;
3811     	END IF;
3812 	-- END change : mvasudev
3813         EXIT WHEN (i = p_silv_tbl.LAST);
3814         i := p_silv_tbl.NEXT(i);
3815       -- START change : mvasudev, 08/15/2001
3816       -- return overall status
3817       x_return_status := l_overall_status;
3818       -- END change : mvasudev
3819       END LOOP;
3820     END IF;
3821   EXCEPTION
3822     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3823       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3824       (
3825         l_api_name,
3826         G_PKG_NAME,
3827         'OKC_API.G_RET_STS_ERROR',
3828         x_msg_count,
3829         x_msg_data,
3830         '_PVT'
3831       );
3832     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3833       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3834       (
3835         l_api_name,
3836         G_PKG_NAME,
3837         'OKC_API.G_RET_STS_UNEXP_ERROR',
3838         x_msg_count,
3839         x_msg_data,
3840         '_PVT'
3841       );
3842     WHEN OTHERS THEN
3843       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3844       (
3845         l_api_name,
3846         G_PKG_NAME,
3847         'OTHERS',
3848         x_msg_count,
3849         x_msg_data,
3850         '_PVT'
3851       );
3852   END lock_row;
3853 
3854   ---------------------------------------------------------------------------
3855   -- PROCEDURE update_row
3856   ---------------------------------------------------------------------------
3857   ----------------------------------
3858   -- update_row for:OKL_SIF_LINES --
3859   ----------------------------------
3860   PROCEDURE update_row(
3861     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3862     x_return_status                OUT NOCOPY VARCHAR2,
3863     x_msg_count                    OUT NOCOPY NUMBER,
3864     x_msg_data                     OUT NOCOPY VARCHAR2,
3865     p_sil_rec                      IN sil_rec_type,
3866     x_sil_rec                      OUT NOCOPY sil_rec_type) IS
3867 
3868     l_api_version                 CONSTANT NUMBER := 1;
3869     l_api_name                     CONSTANT VARCHAR2(30) := 'LINES_update_row';
3870     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3871     l_sil_rec                      sil_rec_type := p_sil_rec;
3872     l_def_sil_rec                  sil_rec_type;
3873     l_row_notfound                 BOOLEAN := TRUE;
3874     ----------------------------------
3875     -- FUNCTION populate_new_record --
3876     ----------------------------------
3877     FUNCTION populate_new_record (
3878       p_sil_rec	IN sil_rec_type,
3879       x_sil_rec	OUT NOCOPY sil_rec_type
3880     ) RETURN VARCHAR2 IS
3881       l_sil_rec                      sil_rec_type;
3882       l_row_notfound                 BOOLEAN := TRUE;
3883       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3884     BEGIN
3885       x_sil_rec := p_sil_rec;
3886       -- Get current database values
3887       l_sil_rec := get_rec(p_sil_rec, l_row_notfound);
3888       IF (l_row_notfound) THEN
3889         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3890       END IF;
3891       IF (x_sil_rec.id = OKC_API.G_MISS_NUM)
3892       THEN
3893         x_sil_rec.id := l_sil_rec.id;
3894       END IF;
3895       IF (x_sil_rec.STATE_DEPRE_DMNSHING_VALUE_RT = OKC_API.G_MISS_NUM)
3896       THEN
3897         x_sil_rec.STATE_DEPRE_DMNSHING_VALUE_RT := l_sil_rec.STATE_DEPRE_DMNSHING_VALUE_RT;
3898       END IF;
3899       IF (x_sil_rec.BOOK_DEPRE_DMNSHING_VALUE_RT = OKC_API.G_MISS_NUM)
3900       THEN
3901         x_sil_rec.BOOK_DEPRE_DMNSHING_VALUE_RT := l_sil_rec.BOOK_DEPRE_DMNSHING_VALUE_RT;
3902       END IF;
3903       IF (x_sil_rec.residual_guarantee_method = OKC_API.G_MISS_CHAR)
3904       THEN
3905         x_sil_rec.residual_guarantee_method := l_sil_rec.residual_guarantee_method;
3906       END IF;
3907       -- mvasudev , 05/13/2002
3908       IF (x_sil_rec.residual_guarantee_type = OKC_API.G_MISS_CHAR)
3909             THEN
3910               x_sil_rec.residual_guarantee_type := l_sil_rec.residual_guarantee_type;
3911       END IF;
3912       IF (x_sil_rec.residual_date = OKC_API.G_MISS_DATE)
3913             THEN
3914               x_sil_rec.residual_date := l_sil_rec.residual_date;
3915       END IF;
3916       IF (x_sil_rec.fed_depre_term = OKC_API.G_MISS_NUM)
3917       THEN
3918         x_sil_rec.fed_depre_term := l_sil_rec.fed_depre_term;
3919       END IF;
3920       IF (x_sil_rec.fed_depre_dmnshing_value_rate = OKC_API.G_MISS_NUM)
3921       THEN
3922         x_sil_rec.fed_depre_dmnshing_value_rate := l_sil_rec.fed_depre_dmnshing_value_rate;
3923       END IF;
3924       IF (x_sil_rec.fed_depre_adr_conve = OKC_API.G_MISS_CHAR)
3925       THEN
3926         x_sil_rec.fed_depre_adr_conve := l_sil_rec.fed_depre_adr_conve;
3927       END IF;
3928       IF (x_sil_rec.state_depre_basis_percent = OKC_API.G_MISS_NUM)
3929       THEN
3930         x_sil_rec.state_depre_basis_percent := l_sil_rec.state_depre_basis_percent;
3931       END IF;
3932       IF (x_sil_rec.state_depre_method = OKC_API.G_MISS_CHAR)
3933       THEN
3934         x_sil_rec.state_depre_method := l_sil_rec.state_depre_method;
3935       END IF;
3936       IF (x_sil_rec.purchase_option = OKC_API.G_MISS_CHAR)
3937       THEN
3938         x_sil_rec.purchase_option := l_sil_rec.purchase_option;
3939       END IF;
3940       IF (x_sil_rec.purchase_option_amount = OKC_API.G_MISS_NUM)
3941       THEN
3942         x_sil_rec.purchase_option_amount := l_sil_rec.purchase_option_amount;
3943       END IF;
3944       IF (x_sil_rec.asset_cost = OKC_API.G_MISS_NUM)
3945       THEN
3946         x_sil_rec.asset_cost := l_sil_rec.asset_cost;
3947       END IF;
3948       IF (x_sil_rec.state_depre_term = OKC_API.G_MISS_NUM)
3949       THEN
3950         x_sil_rec.state_depre_term := l_sil_rec.state_depre_term;
3951       END IF;
3952       IF (x_sil_rec.state_depre_adr_convent = OKC_API.G_MISS_CHAR)
3953       THEN
3954         x_sil_rec.state_depre_adr_convent := l_sil_rec.state_depre_adr_convent;
3955       END IF;
3956       IF (x_sil_rec.fed_depre_method = OKC_API.G_MISS_CHAR)
3957       THEN
3958         x_sil_rec.fed_depre_method := l_sil_rec.fed_depre_method;
3959       END IF;
3960       IF (x_sil_rec.residual_amount = OKC_API.G_MISS_NUM)
3961       THEN
3962         x_sil_rec.residual_amount := l_sil_rec.residual_amount;
3963       END IF;
3964       IF (x_sil_rec.fed_depre_salvage = OKC_API.G_MISS_NUM)
3965       THEN
3966         x_sil_rec.fed_depre_salvage := l_sil_rec.fed_depre_salvage;
3967       END IF;
3968       IF (x_sil_rec.date_fed_depre = OKC_API.G_MISS_DATE)
3969       THEN
3970         x_sil_rec.date_fed_depre := l_sil_rec.date_fed_depre;
3971       END IF;
3972       IF (x_sil_rec.book_salvage = OKC_API.G_MISS_NUM)
3973       THEN
3974         x_sil_rec.book_salvage := l_sil_rec.book_salvage;
3975       END IF;
3976       IF (x_sil_rec.book_adr_convention = OKC_API.G_MISS_CHAR)
3977       THEN
3978         x_sil_rec.book_adr_convention := l_sil_rec.book_adr_convention;
3979       END IF;
3980       IF (x_sil_rec.state_depre_salvage = OKC_API.G_MISS_NUM)
3981       THEN
3982         x_sil_rec.state_depre_salvage := l_sil_rec.state_depre_salvage;
3983       END IF;
3984       IF (x_sil_rec.fed_depre_basis_percent = OKC_API.G_MISS_NUM)
3985       THEN
3986         x_sil_rec.fed_depre_basis_percent := l_sil_rec.fed_depre_basis_percent;
3987       END IF;
3988       IF (x_sil_rec.book_basis_percent = OKC_API.G_MISS_NUM)
3989       THEN
3990         x_sil_rec.book_basis_percent := l_sil_rec.book_basis_percent;
3991       END IF;
3992       IF (x_sil_rec.date_delivery = OKC_API.G_MISS_DATE)
3993       THEN
3994         x_sil_rec.date_delivery := l_sil_rec.date_delivery;
3995       END IF;
3996       IF (x_sil_rec.book_term = OKC_API.G_MISS_NUM)
3997       THEN
3998         x_sil_rec.book_term := l_sil_rec.book_term;
3999       END IF;
4000       IF (x_sil_rec.residual_guarantee_amount = OKC_API.G_MISS_NUM)
4001       THEN
4002         x_sil_rec.residual_guarantee_amount := l_sil_rec.residual_guarantee_amount;
4003       END IF;
4004       IF (x_sil_rec.date_funding = OKC_API.G_MISS_DATE)
4005       THEN
4006         x_sil_rec.date_funding := l_sil_rec.date_funding;
4007       END IF;
4008       IF (x_sil_rec.date_book = OKC_API.G_MISS_DATE)
4009       THEN
4010         x_sil_rec.date_book := l_sil_rec.date_book;
4011       END IF;
4012       IF (x_sil_rec.date_state_depre = OKC_API.G_MISS_DATE)
4013       THEN
4014         x_sil_rec.date_state_depre := l_sil_rec.date_state_depre;
4015       END IF;
4016       IF (x_sil_rec.book_method = OKC_API.G_MISS_CHAR)
4017       THEN
4018         x_sil_rec.book_method := l_sil_rec.book_method;
4019       END IF;
4020       IF (x_sil_rec.stream_interface_attribute08 = OKC_API.G_MISS_CHAR)
4021       THEN
4022         x_sil_rec.stream_interface_attribute08 := l_sil_rec.stream_interface_attribute08;
4023       END IF;
4024       IF (x_sil_rec.stream_interface_attribute03 = OKC_API.G_MISS_CHAR)
4025       THEN
4026         x_sil_rec.stream_interface_attribute03 := l_sil_rec.stream_interface_attribute03;
4027       END IF;
4028       IF (x_sil_rec.stream_interface_attribute01 = OKC_API.G_MISS_CHAR)
4029       THEN
4030         x_sil_rec.stream_interface_attribute01 := l_sil_rec.stream_interface_attribute01;
4031       END IF;
4032       IF (x_sil_rec.index_number = OKC_API.G_MISS_NUM)
4033       THEN
4034         x_sil_rec.index_number := l_sil_rec.index_number;
4035       END IF;
4036       IF (x_sil_rec.stream_interface_attribute05 = OKC_API.G_MISS_CHAR)
4037       THEN
4038         x_sil_rec.stream_interface_attribute05 := l_sil_rec.stream_interface_attribute05;
4039       END IF;
4040       IF (x_sil_rec.description = OKC_API.G_MISS_CHAR)
4041       THEN
4042         x_sil_rec.description := l_sil_rec.description;
4043       END IF;
4044       IF (x_sil_rec.stream_interface_attribute10 = OKC_API.G_MISS_CHAR)
4045       THEN
4046         x_sil_rec.stream_interface_attribute10 := l_sil_rec.stream_interface_attribute10;
4047       END IF;
4048       IF (x_sil_rec.stream_interface_attribute06 = OKC_API.G_MISS_CHAR)
4049       THEN
4050         x_sil_rec.stream_interface_attribute06 := l_sil_rec.stream_interface_attribute06;
4051       END IF;
4052       IF (x_sil_rec.stream_interface_attribute09 = OKC_API.G_MISS_CHAR)
4053       THEN
4054         x_sil_rec.stream_interface_attribute09 := l_sil_rec.stream_interface_attribute09;
4055       END IF;
4056       IF (x_sil_rec.stream_interface_attribute07 = OKC_API.G_MISS_CHAR)
4057       THEN
4058         x_sil_rec.stream_interface_attribute07 := l_sil_rec.stream_interface_attribute07;
4059       END IF;
4060       IF (x_sil_rec.stream_interface_attribute14 = OKC_API.G_MISS_CHAR)
4061       THEN
4062         x_sil_rec.stream_interface_attribute14 := l_sil_rec.stream_interface_attribute14;
4063       END IF;
4064       IF (x_sil_rec.stream_interface_attribute12 = OKC_API.G_MISS_CHAR)
4065       THEN
4066         x_sil_rec.stream_interface_attribute12 := l_sil_rec.stream_interface_attribute12;
4067       END IF;
4068       IF (x_sil_rec.stream_interface_attribute15 = OKC_API.G_MISS_CHAR)
4069       THEN
4070         x_sil_rec.stream_interface_attribute15 := l_sil_rec.stream_interface_attribute15;
4071       END IF;
4072       IF (x_sil_rec.stream_interface_attribute02 = OKC_API.G_MISS_CHAR)
4073       THEN
4074         x_sil_rec.stream_interface_attribute02 := l_sil_rec.stream_interface_attribute02;
4075       END IF;
4076       IF (x_sil_rec.stream_interface_attribute11 = OKC_API.G_MISS_CHAR)
4077       THEN
4078         x_sil_rec.stream_interface_attribute11 := l_sil_rec.stream_interface_attribute11;
4079       END IF;
4080       IF (x_sil_rec.stream_interface_attribute04 = OKC_API.G_MISS_CHAR)
4081       THEN
4082         x_sil_rec.stream_interface_attribute04 := l_sil_rec.stream_interface_attribute04;
4083       END IF;
4084       IF (x_sil_rec.stream_interface_attribute13 = OKC_API.G_MISS_CHAR)
4085       THEN
4086         x_sil_rec.stream_interface_attribute13 := l_sil_rec.stream_interface_attribute13;
4087       END IF;
4088       IF (x_sil_rec.date_start = OKC_API.G_MISS_DATE)
4089       THEN
4090         x_sil_rec.date_start := l_sil_rec.date_start;
4091       END IF;
4092       IF (x_sil_rec.date_lending = OKC_API.G_MISS_DATE)
4093       THEN
4094         x_sil_rec.date_lending := l_sil_rec.date_lending;
4095       END IF;
4096       IF (x_sil_rec.sif_id = OKC_API.G_MISS_NUM)
4097       THEN
4098         x_sil_rec.sif_id := l_sil_rec.sif_id;
4099       END IF;
4100       IF (x_sil_rec.object_version_number = OKC_API.G_MISS_NUM)
4101       THEN
4102         x_sil_rec.object_version_number := l_sil_rec.object_version_number;
4103       END IF;
4104       IF (x_sil_rec.kle_id = OKC_API.G_MISS_NUM)
4105       THEN
4106         x_sil_rec.kle_id := l_sil_rec.kle_id;
4107       END IF;
4108       IF (x_sil_rec.sil_type = OKC_API.G_MISS_CHAR)
4109       THEN
4110         x_sil_rec.sil_type := l_sil_rec.sil_type;
4111       END IF;
4112       IF (x_sil_rec.created_by = OKC_API.G_MISS_NUM)
4113       THEN
4114         x_sil_rec.created_by := l_sil_rec.created_by;
4115       END IF;
4116       IF (x_sil_rec.last_updated_by = OKC_API.G_MISS_NUM)
4117       THEN
4118         x_sil_rec.last_updated_by := l_sil_rec.last_updated_by;
4119       END IF;
4120       IF (x_sil_rec.creation_date = OKC_API.G_MISS_DATE)
4121       THEN
4122         x_sil_rec.creation_date := l_sil_rec.creation_date;
4123       END IF;
4124       IF (x_sil_rec.last_update_date = OKC_API.G_MISS_DATE)
4125       THEN
4126         x_sil_rec.last_update_date := l_sil_rec.last_update_date;
4127       END IF;
4128       IF (x_sil_rec.last_update_login = OKC_API.G_MISS_NUM)
4129       THEN
4130         x_sil_rec.last_update_login := l_sil_rec.last_update_login;
4131       END IF;
4132       IF (x_sil_rec.down_payment_amount = OKC_API.G_MISS_NUM)
4133       THEN
4134         x_sil_rec.down_payment_amount := l_sil_rec.down_payment_amount;
4135       END IF;
4136       IF (x_sil_rec.capitalize_down_payment_yn = OKC_API.G_MISS_CHAR)
4137       THEN
4138         x_sil_rec.capitalize_down_payment_yn := l_sil_rec.capitalize_down_payment_yn;
4139       END IF;
4140 
4141        IF (x_sil_rec.orig_contract_line_id = OKC_API.G_MISS_NUM)
4142       THEN
4143         x_sil_rec.orig_contract_line_id := l_sil_rec.orig_contract_line_id;
4144       END IF;
4145 
4146       RETURN(l_return_status);
4147     END populate_new_record;
4148     --------------------------------------
4149     -- Set_Attributes for:OKL_SIF_LINES --
4150     --------------------------------------
4151     FUNCTION Set_Attributes (
4152       p_sil_rec IN  sil_rec_type,
4153       x_sil_rec OUT NOCOPY sil_rec_type
4154     ) RETURN VARCHAR2 IS
4155       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4156     BEGIN
4157       x_sil_rec := p_sil_rec;
4158       RETURN(l_return_status);
4159     END Set_Attributes;
4160   BEGIN
4161     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4162                                               p_init_msg_list,
4163                                               '_PVT',
4164                                               x_return_status);
4165     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4166       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4167     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4168       RAISE OKC_API.G_EXCEPTION_ERROR;
4169     END IF;
4170     --- Setting item attributes
4171     l_return_status := Set_Attributes(
4172       p_sil_rec,                         -- IN
4173       l_sil_rec);                        -- OUT
4174     --- If any errors happen abort API
4175     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4176       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4177     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4178       RAISE OKC_API.G_EXCEPTION_ERROR;
4179     END IF;
4180     l_return_status := populate_new_record(l_sil_rec, l_def_sil_rec);
4181     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4182       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4183     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4184       RAISE OKC_API.G_EXCEPTION_ERROR;
4185     END IF;
4186     UPDATE  OKL_SIF_LINES
4187     SET STATE_DEPRE_DMNSHING_VALUE_RT = l_def_sil_rec.STATE_DEPRE_DMNSHING_VALUE_RT,
4188         BOOK_DEPRE_DMNSHING_VALUE_RT = l_def_sil_rec.BOOK_DEPRE_DMNSHING_VALUE_RT,
4189         RESIDUAL_GUARANTEE_METHOD = l_def_sil_rec.residual_guarantee_method,
4190         -- mvasudev , 05/13/2002
4191         RESIDUAL_GUARANTEE_TYPE = l_def_sil_rec.residual_guarantee_type,
4192         RESIDUAL_DATE = l_def_sil_rec.residual_date,
4193         FED_DEPRE_TERM = l_def_sil_rec.fed_depre_term,
4194         FED_DEPRE_DMNSHING_VALUE_RATE = l_def_sil_rec.fed_depre_dmnshing_value_rate,
4195         FED_DEPRE_ADR_CONVE = l_def_sil_rec.fed_depre_adr_conve,
4196         STATE_DEPRE_BASIS_PERCENT = l_def_sil_rec.state_depre_basis_percent,
4197         STATE_DEPRE_METHOD = l_def_sil_rec.state_depre_method,
4198         PURCHASE_OPTION = l_def_sil_rec.purchase_option,
4199         PURCHASE_OPTION_AMOUNT = l_def_sil_rec.purchase_option_amount,
4200         ASSET_COST = l_def_sil_rec.asset_cost,
4201         STATE_DEPRE_TERM = l_def_sil_rec.state_depre_term,
4202         STATE_DEPRE_ADR_CONVENT = l_def_sil_rec.state_depre_adr_convent,
4203         FED_DEPRE_METHOD = l_def_sil_rec.fed_depre_method,
4204         RESIDUAL_AMOUNT = l_def_sil_rec.residual_amount,
4205         FED_DEPRE_SALVAGE = l_def_sil_rec.fed_depre_salvage,
4206         DATE_FED_DEPRE = l_def_sil_rec.date_fed_depre,
4207         BOOK_SALVAGE = l_def_sil_rec.book_salvage,
4208         BOOK_ADR_CONVENTION = l_def_sil_rec.book_adr_convention,
4209         STATE_DEPRE_SALVAGE = l_def_sil_rec.state_depre_salvage,
4210         FED_DEPRE_BASIS_PERCENT = l_def_sil_rec.fed_depre_basis_percent,
4211         BOOK_BASIS_PERCENT = l_def_sil_rec.book_basis_percent,
4212         DATE_DELIVERY = l_def_sil_rec.date_delivery,
4213         BOOK_TERM = l_def_sil_rec.book_term,
4214         RESIDUAL_GUARANTEE_AMOUNT = l_def_sil_rec.residual_guarantee_amount,
4215         DATE_FUNDING = l_def_sil_rec.date_funding,
4216         DATE_BOOK = l_def_sil_rec.date_book,
4217         DATE_STATE_DEPRE = l_def_sil_rec.date_state_depre,
4218         BOOK_METHOD = l_def_sil_rec.book_method,
4219         STREAM_INTERFACE_ATTRIBUTE08 = l_def_sil_rec.stream_interface_attribute08,
4220         STREAM_INTERFACE_ATTRIBUTE03 = l_def_sil_rec.stream_interface_attribute03,
4221         STREAM_INTERFACE_ATTRIBUTE01 = l_def_sil_rec.stream_interface_attribute01,
4222         INDEX_NUMBER = l_def_sil_rec.index_number,
4223         STREAM_INTERFACE_ATTRIBUTE05 = l_def_sil_rec.stream_interface_attribute05,
4224         DESCRIPTION = l_def_sil_rec.description,
4225         STREAM_INTERFACE_ATTRIBUTE10 = l_def_sil_rec.stream_interface_attribute10,
4226         STREAM_INTERFACE_ATTRIBUTE06 = l_def_sil_rec.stream_interface_attribute06,
4227         STREAM_INTERFACE_ATTRIBUTE09 = l_def_sil_rec.stream_interface_attribute09,
4228         STREAM_INTERFACE_ATTRIBUTE07 = l_def_sil_rec.stream_interface_attribute07,
4229         STREAM_INTERFACE_ATTRIBUTE14 = l_def_sil_rec.stream_interface_attribute14,
4230         STREAM_INTERFACE_ATTRIBUTE12 = l_def_sil_rec.stream_interface_attribute12,
4231         STREAM_INTERFACE_ATTRIBUTE15 = l_def_sil_rec.stream_interface_attribute15,
4232         STREAM_INTERFACE_ATTRIBUTE02 = l_def_sil_rec.stream_interface_attribute02,
4233         STREAM_INTERFACE_ATTRIBUTE11 = l_def_sil_rec.stream_interface_attribute11,
4234         STREAM_INTERFACE_ATTRIBUTE04 = l_def_sil_rec.stream_interface_attribute04,
4235         STREAM_INTERFACE_ATTRIBUTE13 = l_def_sil_rec.stream_interface_attribute13,
4236         DATE_START = l_def_sil_rec.date_start,
4237         DATE_LENDING = l_def_sil_rec.date_lending,
4238         SIF_ID = l_def_sil_rec.sif_id,
4239         OBJECT_VERSION_NUMBER = l_def_sil_rec.object_version_number,
4240         KLE_ID = l_def_sil_rec.kle_id,
4241         SIL_TYPE = l_def_sil_rec.sil_type,
4242         CREATED_BY = l_def_sil_rec.created_by,
4243         LAST_UPDATED_BY = l_def_sil_rec.last_updated_by,
4244         CREATION_DATE = l_def_sil_rec.creation_date,
4245         LAST_UPDATE_DATE = l_def_sil_rec.last_update_date,
4246         LAST_UPDATE_LOGIN = l_def_sil_rec.last_update_login,
4247         DOWN_PAYMENT_AMOUNT = l_def_sil_rec.down_payment_amount,
4248         CAPITALIZE_DOWN_PAYMENT_YN	= l_def_sil_rec.capitalize_down_payment_yn,
4249         orig_contract_line_id	= l_def_sil_rec.orig_contract_line_id
4250     WHERE ID = l_def_sil_rec.id;
4251 
4252     x_sil_rec := l_def_sil_rec;
4253     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4254   EXCEPTION
4255     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4256       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4257       (
4258         l_api_name,
4259         G_PKG_NAME,
4260         'OKC_API.G_RET_STS_ERROR',
4261         x_msg_count,
4262         x_msg_data,
4263         '_PVT'
4264       );
4265     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4266       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4267       (
4268         l_api_name,
4269         G_PKG_NAME,
4270         'OKC_API.G_RET_STS_UNEXP_ERROR',
4271         x_msg_count,
4272         x_msg_data,
4273         '_PVT'
4274       );
4275     WHEN OTHERS THEN
4276       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4277       (
4278         l_api_name,
4279         G_PKG_NAME,
4280         'OTHERS',
4281         x_msg_count,
4282         x_msg_data,
4283         '_PVT'
4284       );
4285   END update_row;
4286   ------------------------------------
4287   -- update_row for:OKL_SIF_LINES_V --
4288   ------------------------------------
4289   PROCEDURE update_row(
4290     p_api_version                  IN NUMBER,
4291     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4292     x_return_status                OUT NOCOPY VARCHAR2,
4293     x_msg_count                    OUT NOCOPY NUMBER,
4294     x_msg_data                     OUT NOCOPY VARCHAR2,
4295     p_silv_rec                     IN silv_rec_type,
4296     x_silv_rec                     OUT NOCOPY silv_rec_type) IS
4297 
4298     l_api_version                 CONSTANT NUMBER := 1;
4299     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
4300     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4301     l_silv_rec                     silv_rec_type := p_silv_rec;
4302     l_def_silv_rec                 silv_rec_type;
4303     l_sil_rec                      sil_rec_type;
4304     lx_sil_rec                     sil_rec_type;
4305     -------------------------------
4306     -- FUNCTION fill_who_columns --
4307     -------------------------------
4308     FUNCTION fill_who_columns (
4309       p_silv_rec	IN silv_rec_type
4310     ) RETURN silv_rec_type IS
4311       l_silv_rec	silv_rec_type := p_silv_rec;
4312     BEGIN
4313       l_silv_rec.LAST_UPDATE_DATE := SYSDATE;
4314       l_silv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
4315       l_silv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
4316       RETURN(l_silv_rec);
4317     END fill_who_columns;
4318     ----------------------------------
4319     -- FUNCTION populate_new_record --
4320     ----------------------------------
4321     FUNCTION populate_new_record (
4322       p_silv_rec	IN silv_rec_type,
4323       x_silv_rec	OUT NOCOPY silv_rec_type
4324     ) RETURN VARCHAR2 IS
4325       l_silv_rec                     silv_rec_type;
4326       l_row_notfound                 BOOLEAN := TRUE;
4327       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4328     BEGIN
4329       x_silv_rec := p_silv_rec;
4330       -- Get current database values
4331       l_silv_rec := get_rec(p_silv_rec, l_row_notfound);
4332       IF (l_row_notfound) THEN
4333         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
4334       END IF;
4335       IF (x_silv_rec.id = OKC_API.G_MISS_NUM)
4336       THEN
4337         x_silv_rec.id := l_silv_rec.id;
4338       END IF;
4339       IF (x_silv_rec.STATE_DEPRE_DMNSHING_VALUE_RT = OKC_API.G_MISS_NUM)
4340       THEN
4341         x_silv_rec.STATE_DEPRE_DMNSHING_VALUE_RT := l_silv_rec.STATE_DEPRE_DMNSHING_VALUE_RT;
4342       END IF;
4343       IF (x_silv_rec.BOOK_DEPRE_DMNSHING_VALUE_RT = OKC_API.G_MISS_NUM)
4344       THEN
4345         x_silv_rec.BOOK_DEPRE_DMNSHING_VALUE_RT := l_silv_rec.BOOK_DEPRE_DMNSHING_VALUE_RT;
4346       END IF;
4347       IF (x_silv_rec.residual_guarantee_method = OKC_API.G_MISS_CHAR)
4348       THEN
4349         x_silv_rec.residual_guarantee_method := l_silv_rec.residual_guarantee_method;
4350       END IF;
4351       -- mvasudev , 05/13/2002
4352       IF (x_silv_rec.residual_guarantee_type = OKC_API.G_MISS_CHAR)
4353             THEN
4354               x_silv_rec.residual_guarantee_type := l_silv_rec.residual_guarantee_type;
4355       END IF;
4356       IF (x_silv_rec.residual_date = OKC_API.G_MISS_DATE)
4357             THEN
4358               x_silv_rec.residual_date := l_silv_rec.residual_date;
4359       END IF;
4360       IF (x_silv_rec.fed_depre_term = OKC_API.G_MISS_NUM)
4361       THEN
4362         x_silv_rec.fed_depre_term := l_silv_rec.fed_depre_term;
4363       END IF;
4364       IF (x_silv_rec.fed_depre_dmnshing_value_rate = OKC_API.G_MISS_NUM)
4365       THEN
4366         x_silv_rec.fed_depre_dmnshing_value_rate := l_silv_rec.fed_depre_dmnshing_value_rate;
4367       END IF;
4368       IF (x_silv_rec.fed_depre_adr_conve = OKC_API.G_MISS_CHAR)
4369       THEN
4370         x_silv_rec.fed_depre_adr_conve := l_silv_rec.fed_depre_adr_conve;
4371       END IF;
4372       IF (x_silv_rec.state_depre_basis_percent = OKC_API.G_MISS_NUM)
4373       THEN
4374         x_silv_rec.state_depre_basis_percent := l_silv_rec.state_depre_basis_percent;
4375       END IF;
4376       IF (x_silv_rec.state_depre_method = OKC_API.G_MISS_CHAR)
4377       THEN
4378         x_silv_rec.state_depre_method := l_silv_rec.state_depre_method;
4379       END IF;
4380       IF (x_silv_rec.purchase_option = OKC_API.G_MISS_CHAR)
4381       THEN
4382         x_silv_rec.purchase_option := l_silv_rec.purchase_option;
4383       END IF;
4384       IF (x_silv_rec.purchase_option_amount = OKC_API.G_MISS_NUM)
4385       THEN
4386         x_silv_rec.purchase_option_amount := l_silv_rec.purchase_option_amount;
4387       END IF;
4388       IF (x_silv_rec.asset_cost = OKC_API.G_MISS_NUM)
4389       THEN
4390         x_silv_rec.asset_cost := l_silv_rec.asset_cost;
4391       END IF;
4392       IF (x_silv_rec.state_depre_term = OKC_API.G_MISS_NUM)
4393       THEN
4394         x_silv_rec.state_depre_term := l_silv_rec.state_depre_term;
4395       END IF;
4396       IF (x_silv_rec.state_depre_adr_convent = OKC_API.G_MISS_CHAR)
4397       THEN
4398         x_silv_rec.state_depre_adr_convent := l_silv_rec.state_depre_adr_convent;
4399       END IF;
4400       IF (x_silv_rec.fed_depre_method = OKC_API.G_MISS_CHAR)
4401       THEN
4402         x_silv_rec.fed_depre_method := l_silv_rec.fed_depre_method;
4403       END IF;
4404       IF (x_silv_rec.residual_amount = OKC_API.G_MISS_NUM)
4405       THEN
4406         x_silv_rec.residual_amount := l_silv_rec.residual_amount;
4407       END IF;
4408       IF (x_silv_rec.fed_depre_salvage = OKC_API.G_MISS_NUM)
4409       THEN
4410         x_silv_rec.fed_depre_salvage := l_silv_rec.fed_depre_salvage;
4411       END IF;
4412       IF (x_silv_rec.date_fed_depre = OKC_API.G_MISS_DATE)
4413       THEN
4414         x_silv_rec.date_fed_depre := l_silv_rec.date_fed_depre;
4415       END IF;
4416       IF (x_silv_rec.book_salvage = OKC_API.G_MISS_NUM)
4417       THEN
4418         x_silv_rec.book_salvage := l_silv_rec.book_salvage;
4419       END IF;
4420       IF (x_silv_rec.book_adr_convention = OKC_API.G_MISS_CHAR)
4421       THEN
4422         x_silv_rec.book_adr_convention := l_silv_rec.book_adr_convention;
4423       END IF;
4424       IF (x_silv_rec.state_depre_salvage = OKC_API.G_MISS_NUM)
4425       THEN
4426         x_silv_rec.state_depre_salvage := l_silv_rec.state_depre_salvage;
4427       END IF;
4428       IF (x_silv_rec.Fed_Depre_Basis_Percent = OKC_API.G_MISS_NUM)
4429       THEN
4430         x_silv_rec.Fed_Depre_Basis_Percent := l_silv_rec.Fed_Depre_Basis_Percent;
4431       END IF;
4432       IF (x_silv_rec.book_basis_percent = OKC_API.G_MISS_NUM)
4433       THEN
4434         x_silv_rec.book_basis_percent := l_silv_rec.book_basis_percent;
4435       END IF;
4436       IF (x_silv_rec.date_delivery = OKC_API.G_MISS_DATE)
4437       THEN
4438         x_silv_rec.date_delivery := l_silv_rec.date_delivery;
4439       END IF;
4440       IF (x_silv_rec.book_term = OKC_API.G_MISS_NUM)
4441       THEN
4442         x_silv_rec.book_term := l_silv_rec.book_term;
4443       END IF;
4444       IF (x_silv_rec.residual_guarantee_amount = OKC_API.G_MISS_NUM)
4445       THEN
4446         x_silv_rec.residual_guarantee_amount := l_silv_rec.residual_guarantee_amount;
4447       END IF;
4448       IF (x_silv_rec.date_funding = OKC_API.G_MISS_DATE)
4449       THEN
4450         x_silv_rec.date_funding := l_silv_rec.date_funding;
4451       END IF;
4452       IF (x_silv_rec.date_book = OKC_API.G_MISS_DATE)
4453       THEN
4454         x_silv_rec.date_book := l_silv_rec.date_book;
4455       END IF;
4456       IF (x_silv_rec.date_state_depre = OKC_API.G_MISS_DATE)
4457       THEN
4458         x_silv_rec.date_state_depre := l_silv_rec.date_state_depre;
4459       END IF;
4460       IF (x_silv_rec.book_method = OKC_API.G_MISS_CHAR)
4461       THEN
4462         x_silv_rec.book_method := l_silv_rec.book_method;
4463       END IF;
4464       IF (x_silv_rec.stream_interface_attribute01 = OKC_API.G_MISS_CHAR)
4465       THEN
4466         x_silv_rec.stream_interface_attribute01 := l_silv_rec.stream_interface_attribute01;
4467       END IF;
4468       IF (x_silv_rec.stream_interface_attribute02 = OKC_API.G_MISS_CHAR)
4469       THEN
4470         x_silv_rec.stream_interface_attribute02 := l_silv_rec.stream_interface_attribute02;
4471       END IF;
4472       IF (x_silv_rec.stream_interface_attribute03 = OKC_API.G_MISS_CHAR)
4473       THEN
4474         x_silv_rec.stream_interface_attribute03 := l_silv_rec.stream_interface_attribute03;
4475       END IF;
4476       IF (x_silv_rec.stream_interface_attribute04 = OKC_API.G_MISS_CHAR)
4477       THEN
4478         x_silv_rec.stream_interface_attribute04 := l_silv_rec.stream_interface_attribute04;
4479       END IF;
4480       IF (x_silv_rec.stream_interface_attribute05 = OKC_API.G_MISS_CHAR)
4481       THEN
4482         x_silv_rec.stream_interface_attribute05 := l_silv_rec.stream_interface_attribute05;
4483       END IF;
4484       IF (x_silv_rec.stream_interface_attribute06 = OKC_API.G_MISS_CHAR)
4485       THEN
4486         x_silv_rec.stream_interface_attribute06 := l_silv_rec.stream_interface_attribute06;
4487       END IF;
4488       IF (x_silv_rec.stream_interface_attribute07 = OKC_API.G_MISS_CHAR)
4489       THEN
4490         x_silv_rec.stream_interface_attribute07 := l_silv_rec.stream_interface_attribute07;
4491       END IF;
4492       IF (x_silv_rec.stream_interface_attribute08 = OKC_API.G_MISS_CHAR)
4493       THEN
4494         x_silv_rec.stream_interface_attribute08 := l_silv_rec.stream_interface_attribute08;
4495       END IF;
4496       IF (x_silv_rec.stream_interface_attribute09 = OKC_API.G_MISS_CHAR)
4497       THEN
4498         x_silv_rec.stream_interface_attribute09 := l_silv_rec.stream_interface_attribute09;
4499       END IF;
4500       IF (x_silv_rec.stream_interface_attribute10 = OKC_API.G_MISS_CHAR)
4501       THEN
4502         x_silv_rec.stream_interface_attribute10 := l_silv_rec.stream_interface_attribute10;
4503       END IF;
4504       IF (x_silv_rec.stream_interface_attribute11 = OKC_API.G_MISS_CHAR)
4505       THEN
4506         x_silv_rec.stream_interface_attribute11 := l_silv_rec.stream_interface_attribute11;
4507       END IF;
4508       IF (x_silv_rec.stream_interface_attribute12 = OKC_API.G_MISS_CHAR)
4509       THEN
4510         x_silv_rec.stream_interface_attribute12 := l_silv_rec.stream_interface_attribute12;
4511       END IF;
4512       IF (x_silv_rec.stream_interface_attribute13 = OKC_API.G_MISS_CHAR)
4513       THEN
4514         x_silv_rec.stream_interface_attribute13 := l_silv_rec.stream_interface_attribute13;
4515       END IF;
4516       IF (x_silv_rec.stream_interface_attribute14 = OKC_API.G_MISS_CHAR)
4517       THEN
4518         x_silv_rec.stream_interface_attribute14 := l_silv_rec.stream_interface_attribute14;
4519       END IF;
4520       IF (x_silv_rec.stream_interface_attribute15 = OKC_API.G_MISS_CHAR)
4521       THEN
4522         x_silv_rec.stream_interface_attribute15 := l_silv_rec.stream_interface_attribute15;
4523       END IF;
4524       IF (x_silv_rec.date_start = OKC_API.G_MISS_DATE)
4525       THEN
4526         x_silv_rec.date_start := l_silv_rec.date_start;
4527       END IF;
4528       IF (x_silv_rec.date_lending = OKC_API.G_MISS_DATE)
4529       THEN
4530         x_silv_rec.date_lending := l_silv_rec.date_lending;
4531       END IF;
4532       IF (x_silv_rec.index_number = OKC_API.G_MISS_NUM)
4533       THEN
4534         x_silv_rec.index_number := l_silv_rec.index_number;
4535       END IF;
4536       IF (x_silv_rec.sif_id = OKC_API.G_MISS_NUM)
4537       THEN
4538         x_silv_rec.sif_id := l_silv_rec.sif_id;
4539       END IF;
4540       IF (x_silv_rec.object_version_number = OKC_API.G_MISS_NUM)
4541       THEN
4542         x_silv_rec.object_version_number := l_silv_rec.object_version_number;
4543       END IF;
4544       IF (x_silv_rec.kle_id = OKC_API.G_MISS_NUM)
4545       THEN
4546         x_silv_rec.kle_id := l_silv_rec.kle_id;
4547       END IF;
4548       IF (x_silv_rec.sil_type = OKC_API.G_MISS_CHAR)
4549       THEN
4550         x_silv_rec.sil_type := l_silv_rec.sil_type;
4551       END IF;
4552       IF (x_silv_rec.description = OKC_API.G_MISS_CHAR)
4553       THEN
4554         x_silv_rec.description := l_silv_rec.description;
4555       END IF;
4556       IF (x_silv_rec.created_by = OKC_API.G_MISS_NUM)
4557       THEN
4558         x_silv_rec.created_by := l_silv_rec.created_by;
4559       END IF;
4560       IF (x_silv_rec.last_updated_by = OKC_API.G_MISS_NUM)
4561       THEN
4562         x_silv_rec.last_updated_by := l_silv_rec.last_updated_by;
4563       END IF;
4564       IF (x_silv_rec.creation_date = OKC_API.G_MISS_DATE)
4565       THEN
4566         x_silv_rec.creation_date := l_silv_rec.creation_date;
4567       END IF;
4568       IF (x_silv_rec.last_update_date = OKC_API.G_MISS_DATE)
4569       THEN
4570         x_silv_rec.last_update_date := l_silv_rec.last_update_date;
4571       END IF;
4572       IF (x_silv_rec.last_update_login = OKC_API.G_MISS_NUM)
4573       THEN
4574         x_silv_rec.last_update_login := l_silv_rec.last_update_login;
4575       END IF;
4576       IF (x_silv_rec.down_payment_amount = OKC_API.G_MISS_NUM)
4577       THEN
4578         x_silv_rec.down_payment_amount := l_silv_rec.down_payment_amount;
4579       END IF;
4580       IF (x_silv_rec.capitalize_down_payment_yn = OKC_API.G_MISS_CHAR)
4581       THEN
4582         x_silv_rec.capitalize_down_payment_yn := l_silv_rec.capitalize_down_payment_yn;
4583       END IF;
4584 
4585       IF (x_silv_rec.orig_contract_line_id = OKC_API.G_MISS_NUM)
4586       THEN
4587         x_silv_rec.orig_contract_line_id := l_silv_rec.orig_contract_line_id;
4588       END IF;
4589 
4590       RETURN(l_return_status);
4591     END populate_new_record;
4592     ----------------------------------------
4593     -- Set_Attributes for:OKL_SIF_LINES_V --
4594     ----------------------------------------
4595     FUNCTION Set_Attributes (
4596       p_silv_rec IN  silv_rec_type,
4597       x_silv_rec OUT NOCOPY silv_rec_type
4598     ) RETURN VARCHAR2 IS
4599       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4600     BEGIN
4601       x_silv_rec := p_silv_rec;
4602       x_silv_rec.OBJECT_VERSION_NUMBER := NVL(x_silv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
4603       RETURN(l_return_status);
4604     END Set_Attributes;
4605   BEGIN
4606     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4607                                               G_PKG_NAME,
4608                                               p_init_msg_list,
4609                                               l_api_version,
4610                                               p_api_version,
4611                                               '_PVT',
4612                                               x_return_status);
4613     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4614       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4615     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4616       RAISE OKC_API.G_EXCEPTION_ERROR;
4617     END IF;
4618     --- Setting item attributes
4619     l_return_status := Set_Attributes(
4620       p_silv_rec,                        -- IN
4621       l_silv_rec);                       -- OUT
4622     --- If any errors happen abort API
4623     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4624       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4625     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4626       RAISE OKC_API.G_EXCEPTION_ERROR;
4627     END IF;
4628     l_return_status := populate_new_record(l_silv_rec, l_def_silv_rec);
4629     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4630       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4631     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4632       RAISE OKC_API.G_EXCEPTION_ERROR;
4633     END IF;
4634     l_def_silv_rec := fill_who_columns(l_def_silv_rec);
4635     --- Validate all non-missing attributes (Item Level Validation)
4636     l_return_status := Validate_Attributes(l_def_silv_rec);
4637     --- If any errors happen abort API
4638     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4639       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4640     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4641       RAISE OKC_API.G_EXCEPTION_ERROR;
4642     END IF;
4643     l_return_status := Validate_Record(l_def_silv_rec);
4644     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4645       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4646     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4647       RAISE OKC_API.G_EXCEPTION_ERROR;
4648     END IF;
4649 
4650     --------------------------------------
4651     -- Move VIEW record to "Child" records
4652     --------------------------------------
4653     migrate(l_def_silv_rec, l_sil_rec);
4654     --------------------------------------------
4655     -- Call the UPDATE_ROW for each child record
4656     --------------------------------------------
4657     update_row(
4658       p_init_msg_list,
4659       x_return_status,
4660       x_msg_count,
4661       x_msg_data,
4662       l_sil_rec,
4663       lx_sil_rec
4664     );
4665     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4666       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4667     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4668       RAISE OKC_API.G_EXCEPTION_ERROR;
4669     END IF;
4670     migrate(lx_sil_rec, l_def_silv_rec);
4671     x_silv_rec := l_def_silv_rec;
4672     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4673   EXCEPTION
4674     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4675       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4676       (
4677         l_api_name,
4678         G_PKG_NAME,
4679         'OKC_API.G_RET_STS_ERROR',
4680         x_msg_count,
4681         x_msg_data,
4682         '_PVT'
4683       );
4684     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4685       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4686       (
4687         l_api_name,
4688         G_PKG_NAME,
4689         'OKC_API.G_RET_STS_UNEXP_ERROR',
4690         x_msg_count,
4691         x_msg_data,
4692         '_PVT'
4693       );
4694     WHEN OTHERS THEN
4695       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4696       (
4697         l_api_name,
4698         G_PKG_NAME,
4699         'OTHERS',
4700         x_msg_count,
4701         x_msg_data,
4702         '_PVT'
4703       );
4704   END update_row;
4705   ----------------------------------------
4706   -- PL/SQL TBL update_row for:SILV_TBL --
4707   ----------------------------------------
4708   PROCEDURE update_row(
4709     p_api_version                  IN NUMBER,
4710     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4711     x_return_status                OUT NOCOPY VARCHAR2,
4712     x_msg_count                    OUT NOCOPY NUMBER,
4713     x_msg_data                     OUT NOCOPY VARCHAR2,
4714     p_silv_tbl                     IN silv_tbl_type,
4715     x_silv_tbl                     OUT NOCOPY silv_tbl_type) IS
4716 
4717     l_api_version                 CONSTANT NUMBER := 1;
4718     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
4719     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4720     i                              NUMBER := 0;
4721     -- START change : mvasudev, 08/15/2001
4722     -- Adding OverAll Status Flag
4723     l_overall_status 		  VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
4724     -- END change : mvasudev
4725   BEGIN
4726     OKC_API.init_msg_list(p_init_msg_list);
4727     -- Make sure PL/SQL table has records in it before passing
4728     IF (p_silv_tbl.COUNT > 0) THEN
4729       i := p_silv_tbl.FIRST;
4730       LOOP
4731         update_row (
4732           p_api_version                  => p_api_version,
4733           p_init_msg_list                => OKC_API.G_FALSE,
4734           x_return_status                => x_return_status,
4735           x_msg_count                    => x_msg_count,
4736           x_msg_data                     => x_msg_data,
4737           p_silv_rec                     => p_silv_tbl(i),
4738           x_silv_rec                     => x_silv_tbl(i));
4739         EXIT WHEN (i = p_silv_tbl.LAST);
4740         i := p_silv_tbl.NEXT(i);
4741     	-- START change : mvasudev, 08/15/2001
4742     	-- store the highest degree of error
4743     	IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
4744     	    IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
4745     	    	l_overall_status := x_return_status;
4746     	    END IF;
4747     	END IF;
4748 	-- END change : mvasudev
4749       END LOOP;
4750       -- START change : mvasudev, 08/15/2001
4751       -- return overall status
4752       x_return_status := l_overall_status;
4753       -- END change : mvasudev
4754     END IF;
4755   EXCEPTION
4756     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4757       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4758       (
4759         l_api_name,
4760         G_PKG_NAME,
4761         'OKC_API.G_RET_STS_ERROR',
4762         x_msg_count,
4763         x_msg_data,
4764         '_PVT'
4765       );
4766     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4767       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4768       (
4769         l_api_name,
4770         G_PKG_NAME,
4771         'OKC_API.G_RET_STS_UNEXP_ERROR',
4772         x_msg_count,
4773         x_msg_data,
4774         '_PVT'
4775       );
4776     WHEN OTHERS THEN
4777       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4778       (
4779         l_api_name,
4780         G_PKG_NAME,
4781         'OTHERS',
4782         x_msg_count,
4783         x_msg_data,
4784         '_PVT'
4785       );
4786   END update_row;
4787 
4788   ---------------------------------------------------------------------------
4789   -- PROCEDURE delete_row
4790   ---------------------------------------------------------------------------
4791   ----------------------------------
4792   -- delete_row for:OKL_SIF_LINES --
4793   ----------------------------------
4794   PROCEDURE delete_row(
4795     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4796     x_return_status                OUT NOCOPY VARCHAR2,
4797     x_msg_count                    OUT NOCOPY NUMBER,
4798     x_msg_data                     OUT NOCOPY VARCHAR2,
4799     p_sil_rec                      IN sil_rec_type) IS
4800 
4801     l_api_version                 CONSTANT NUMBER := 1;
4802     l_api_name                     CONSTANT VARCHAR2(30) := 'LINES_delete_row';
4803     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4804     l_sil_rec                      sil_rec_type:= p_sil_rec;
4805     l_row_notfound                 BOOLEAN := TRUE;
4806   BEGIN
4807     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4808                                               p_init_msg_list,
4809                                               '_PVT',
4810                                               x_return_status);
4811     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4812       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4813     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4814       RAISE OKC_API.G_EXCEPTION_ERROR;
4815     END IF;
4816     DELETE FROM OKL_SIF_LINES
4817      WHERE ID = l_sil_rec.id;
4818 
4819     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4820   EXCEPTION
4821     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4822       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4823       (
4824         l_api_name,
4825         G_PKG_NAME,
4826         'OKC_API.G_RET_STS_ERROR',
4827         x_msg_count,
4828         x_msg_data,
4829         '_PVT'
4830       );
4831     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4832       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4833       (
4834         l_api_name,
4835         G_PKG_NAME,
4836         'OKC_API.G_RET_STS_UNEXP_ERROR',
4837         x_msg_count,
4838         x_msg_data,
4839         '_PVT'
4840       );
4841     WHEN OTHERS THEN
4842       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4843       (
4844         l_api_name,
4845         G_PKG_NAME,
4846         'OTHERS',
4847         x_msg_count,
4848         x_msg_data,
4849         '_PVT'
4850       );
4851   END delete_row;
4852   ------------------------------------
4853   -- delete_row for:OKL_SIF_LINES_V --
4854   ------------------------------------
4855   PROCEDURE delete_row(
4856     p_api_version                  IN NUMBER,
4857     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4858     x_return_status                OUT NOCOPY VARCHAR2,
4859     x_msg_count                    OUT NOCOPY NUMBER,
4860     x_msg_data                     OUT NOCOPY VARCHAR2,
4861     p_silv_rec                     IN silv_rec_type) IS
4862 
4863     l_api_version                 CONSTANT NUMBER := 1;
4864     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
4865     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4866     l_silv_rec                     silv_rec_type := p_silv_rec;
4867     l_sil_rec                      sil_rec_type;
4868   BEGIN
4869     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4870                                               G_PKG_NAME,
4871                                               p_init_msg_list,
4872                                               l_api_version,
4873                                               p_api_version,
4874                                               '_PVT',
4875                                               x_return_status);
4876     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4877       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4878     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4879       RAISE OKC_API.G_EXCEPTION_ERROR;
4880     END IF;
4881     --------------------------------------
4882     -- Move VIEW record to "Child" records
4883     --------------------------------------
4884     migrate(l_silv_rec, l_sil_rec);
4885     --------------------------------------------
4886     -- Call the DELETE_ROW for each child record
4887     --------------------------------------------
4888     delete_row(
4889       p_init_msg_list,
4890       x_return_status,
4891       x_msg_count,
4892       x_msg_data,
4893       l_sil_rec
4894     );
4895     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4896       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4897     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
4898       RAISE OKC_API.G_EXCEPTION_ERROR;
4899     END IF;
4900     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4901   EXCEPTION
4902     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4903       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4904       (
4905         l_api_name,
4906         G_PKG_NAME,
4907         'OKC_API.G_RET_STS_ERROR',
4908         x_msg_count,
4909         x_msg_data,
4910         '_PVT'
4911       );
4912     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4913       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4914       (
4915         l_api_name,
4916         G_PKG_NAME,
4917         'OKC_API.G_RET_STS_UNEXP_ERROR',
4918         x_msg_count,
4919         x_msg_data,
4920         '_PVT'
4921       );
4922     WHEN OTHERS THEN
4923       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4924       (
4925         l_api_name,
4926         G_PKG_NAME,
4927         'OTHERS',
4928         x_msg_count,
4929         x_msg_data,
4930         '_PVT'
4931       );
4932   END delete_row;
4933   ----------------------------------------
4934   -- PL/SQL TBL delete_row for:SILV_TBL --
4935   ----------------------------------------
4936   PROCEDURE delete_row(
4937     p_api_version                  IN NUMBER,
4938     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4939     x_return_status                OUT NOCOPY VARCHAR2,
4940     x_msg_count                    OUT NOCOPY NUMBER,
4941     x_msg_data                     OUT NOCOPY VARCHAR2,
4942     p_silv_tbl                     IN silv_tbl_type) IS
4943 
4944     l_api_version                 CONSTANT NUMBER := 1;
4945     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
4946     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4947     i                              NUMBER := 0;
4948     -- START change : mvasudev, 08/15/2001
4949     -- Adding OverAll Status Flag
4950     l_overall_status 		  VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
4951     -- END change : mvasudev
4952   BEGIN
4953     OKC_API.init_msg_list(p_init_msg_list);
4954     -- Make sure PL/SQL table has records in it before passing
4955     IF (p_silv_tbl.COUNT > 0) THEN
4956       i := p_silv_tbl.FIRST;
4957       LOOP
4958         delete_row (
4959           p_api_version                  => p_api_version,
4960           p_init_msg_list                => OKC_API.G_FALSE,
4961           x_return_status                => x_return_status,
4962           x_msg_count                    => x_msg_count,
4963           x_msg_data                     => x_msg_data,
4964           p_silv_rec                     => p_silv_tbl(i));
4965         EXIT WHEN (i = p_silv_tbl.LAST);
4966         i := p_silv_tbl.NEXT(i);
4967     	-- START change : mvasudev, 08/15/2001
4968     	-- store the highest degree of error
4969     	IF x_return_status <> Okc_Api.G_RET_STS_SUCCESS THEN
4970     	    IF l_overall_status <> Okc_Api.G_RET_STS_UNEXP_ERROR THEN
4971     	    	l_overall_status := x_return_status;
4972     	    END IF;
4973     	END IF;
4974 	-- END change : mvasudev
4975       END LOOP;
4976       -- START change : mvasudev, 08/15/2001
4977       -- return overall status
4978       x_return_status := l_overall_status;
4979       -- END change : mvasudev
4980     END IF;
4981   EXCEPTION
4982     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4983       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4984       (
4985         l_api_name,
4986         G_PKG_NAME,
4987         'OKC_API.G_RET_STS_ERROR',
4988         x_msg_count,
4989         x_msg_data,
4990         '_PVT'
4991       );
4992     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4993       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4994       (
4995         l_api_name,
4996         G_PKG_NAME,
4997         'OKC_API.G_RET_STS_UNEXP_ERROR',
4998         x_msg_count,
4999         x_msg_data,
5000         '_PVT'
5001       );
5002     WHEN OTHERS THEN
5003       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5004       (
5005         l_api_name,
5006         G_PKG_NAME,
5007         'OTHERS',
5008         x_msg_count,
5009         x_msg_data,
5010         '_PVT'
5011       );
5012   END delete_row;
5013 END OKL_SIL_PVT;