DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_ACN_PVT

Source


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