DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_QTE_PVT

Source


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