DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_RAS_PVT

Source


1 PACKAGE BODY OKL_RAS_PVT AS
2 /* $Header: OKLSRASB.pls 120.5 2007/08/08 12:50:12 arajagop noship $ */
3 
4 
5   ----------------------------------------
6   -- GLOBAL CONSTANTS
7   -- Post-Generation Change
8   -- By RMUNJULU on 16-APR-2001
9   ----------------------------------------
10   G_NO_PARENT_RECORD    CONSTANT VARCHAR2(200) := 'OKC_NO_PARENT_RECORD';
11   G_UNEXPECTED_ERROR    CONSTANT VARCHAR2(200) := 'OKC_CONTRACTS_UNEXPECTED_ERROR';
12   G_SQLERRM_TOKEN       CONSTANT VARCHAR2(200) := 'SQLerrm';
13   G_SQLCODE_TOKEN	    CONSTANT VARCHAR2(200) := 'SQLcode';
14   G_EXCEPTION_HALT_VALIDATION	EXCEPTION;
15 
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 17-DEC-2002 2667636:Added new procedure
28   -- End of comments
29 
30   PROCEDURE validate_currency_record(p_rasv_rec      IN  rasv_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_rasv_rec.currency_code <> p_rasv_rec.currency_conversion_code) THEN
37       IF (p_rasv_rec.currency_conversion_type = OKC_API.G_MISS_CHAR OR
38          p_rasv_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_rasv_rec.currency_conversion_rate = OKC_API.G_MISS_NUM OR
47          p_rasv_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_rasv_rec.currency_conversion_date = OKC_API.G_MISS_DATE OR
56          p_rasv_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_rasv_rec.currency_code = p_rasv_rec.currency_conversion_code) THEN
67       IF (p_rasv_rec.currency_conversion_type IS NOT NULL) OR
68          (p_rasv_rec.currency_conversion_rate IS NOT NULL) OR
69          (p_rasv_rec.currency_conversion_date IS NOT NULL) THEN
70         --SET MESSAGE
71         -- Currency conversion columns should be all null
72         IF p_rasv_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_rasv_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_rasv_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 17-DEC-2002 2667636:Added new procedure
121   -- End of comments
122 
123   PROCEDURE validate_currency_code(p_rasv_rec      IN  rasv_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_rasv_rec.currency_code IS NULL) OR
131        (p_rasv_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_rasv_rec.currency_code);
142     IF (l_return_status <>  OKC_API.G_TRUE) THEN
143           OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
144                           p_msg_name     => g_invalid_value,
145                           p_token1       => g_col_name_token,
146                           p_token1_value => 'currency_code');
147       -- halt further validation of this column
148       RAISE G_EXCEPTION_HALT_VALIDATION;
149     END IF;
150   EXCEPTION
151     WHEN G_EXCEPTION_HALT_VALIDATION THEN
152       x_return_status := OKC_API.G_RET_STS_ERROR;
153     WHEN OTHERS THEN
154       -- store SQL error message on message stack for caller
155       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
156                           p_msg_name     => g_unexpected_error,
157                           p_token1       => g_sqlcode_token,
158                           p_token1_value => sqlcode,
159                           p_token2       => g_sqlerrm_token,
160                           p_token2_value => sqlerrm);
161       -- notify caller of an UNEXPECTED error
162       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
163   END validate_currency_code;
164 ---------------------------------------------------------------------------------
165   -- Start of comments
166   --
167   -- Procedure Name  : validate_currency_con_code
168   -- Description     : Validation of Currency Conversion Code
169   -- Business Rules  :
170   -- Parameters      :
171   -- Version         : 1.0
172   -- History         : RABHUPAT 17-DEC-2002 2667636:Added new procedure
173   -- End of comments
174 
175   PROCEDURE validate_currency_con_code(p_rasv_rec      IN  rasv_rec_type,
176                                        x_return_status OUT NOCOPY VARCHAR2) IS
177     l_return_status VARCHAR2(3) := OKC_API.G_TRUE;
178   BEGIN
179     -- initialize return status
180     x_return_status := OKC_API.G_RET_STS_SUCCESS;
181     -- data is required
182     IF (p_rasv_rec.currency_conversion_code IS NULL) OR
183        (p_rasv_rec.currency_conversion_code = OKC_API.G_MISS_CHAR) THEN
184       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
185                           ,p_msg_name     => G_REQUIRED_VALUE
186                           ,p_token1       => G_COL_NAME_TOKEN
187                           ,p_token1_value => 'currency_conversion_code');
188       -- halt further validation of this column
189       RAISE G_EXCEPTION_HALT_VALIDATION;
190     END IF;
191     -- check from currency values using the generic okl_util.validate_currency_code
192     l_return_status := OKL_ACCOUNTING_UTIL.validate_currency_code(p_rasv_rec.currency_conversion_code);
193     IF (l_return_status <>  OKC_API.G_TRUE) THEN
194           OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
195                           p_msg_name     => g_invalid_value,
196                           p_token1       => g_col_name_token,
197                           p_token1_value => 'currency_conversion_code');
198       -- halt further validation of this column
199       RAISE G_EXCEPTION_HALT_VALIDATION;
200     END IF;
201   EXCEPTION
202     WHEN G_EXCEPTION_HALT_VALIDATION THEN
203       x_return_status := OKC_API.G_RET_STS_ERROR;
204     WHEN OTHERS THEN
205       -- store SQL error message on message stack for caller
206       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
207                           p_msg_name     => g_unexpected_error,
208                           p_token1       => g_sqlcode_token,
209                           p_token1_value => sqlcode,
210                           p_token2       => g_sqlerrm_token,
211                           p_token2_value => sqlerrm);
212 
213       -- notify caller of an UNEXPECTED error
214       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
215   END validate_currency_con_code;
216 ---------------------------------------------------------------------------------
217   -- Start of comments
218   --
219   -- Procedure Name  : validate_currency_con_type
220   -- Description     : Validation of Currency Conversion type
221   -- Business Rules  :
222   -- Parameters      :
223   -- Version         : 1.0
224   -- History         : RABHUPAT 17-DEC-2002 2667636:Added new procedure
225   -- End of comments
226 
227   PROCEDURE validate_currency_con_type(p_rasv_rec      IN  rasv_rec_type,
228                                        x_return_status OUT NOCOPY VARCHAR2) IS
229     l_return_status VARCHAR2(3) := OKC_API.G_TRUE;
230   BEGIN
231     -- initialize return status
232     x_return_status := OKC_API.G_RET_STS_SUCCESS;
233     IF (p_rasv_rec.currency_conversion_type <> OKL_API.G_MISS_CHAR AND
234        p_rasv_rec.currency_conversion_type IS NOT NULL) THEN
235       -- check from currency values using the generic okl_util.validate_currency_code
236       l_return_status := OKL_ACCOUNTING_UTIL.validate_currency_con_type(p_rasv_rec.currency_conversion_type);
237       IF (l_return_status <>  OKC_API.G_TRUE) THEN
238             OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
239                           p_msg_name     => g_invalid_value,
240                           p_token1       => g_col_name_token,
241                           p_token1_value => 'currency_conversion_type');
242         -- halt further validation of this column
243         RAISE G_EXCEPTION_HALT_VALIDATION;
244       END IF;
245     END IF;
246   EXCEPTION
247     WHEN G_EXCEPTION_HALT_VALIDATION THEN
248       x_return_status := OKC_API.G_RET_STS_ERROR;
249     WHEN OTHERS THEN
250       -- store SQL error message on message stack for caller
251       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
252                           p_msg_name     => g_unexpected_error,
253                           p_token1       => g_sqlcode_token,
254                           p_token1_value => sqlcode,
255                           p_token2       => g_sqlerrm_token,
256                           p_token2_value => sqlerrm);
257       -- notify caller of an UNEXPECTED error
258       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
259   END validate_currency_con_type;
260 
261 
262 
263 
264   ------------------------------------------------------------------------
265   -- PROCEDURE validate_id
266   -- Post-Generation Change
267   -- By RMUNJULU on 16-APR-2001
268   ------------------------------------------------------------------------
269   PROCEDURE validate_id(
270 	x_return_status OUT NOCOPY VARCHAR2,
271 	p_rasv_rec		IN	rasv_rec_type) IS
272 
273   BEGIN
274     -- initialize return status
275     x_return_status := OKC_API.G_RET_STS_SUCCESS;
276 
277     -- data is required
278 	IF (p_rasv_rec.id = OKC_API.G_MISS_NUM OR p_rasv_rec.id IS NULL) THEN
279       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
280                           p_msg_name     => g_required_value,
281                           p_token1       => g_col_name_token,
282                           p_token1_value => 'id');
283 
284       -- notify caller of an error
285       x_return_status := OKC_API.G_RET_STS_ERROR;
286 
287       -- halt further validation of this column
288       RAISE G_EXCEPTION_HALT_VALIDATION;
289 
290     END IF;
291 
292   EXCEPTION
293 	WHEN G_EXCEPTION_HALT_VALIDATION THEN
294       -- no processing necessary; validation can continue
295       -- with the next column
296       NULL;
297     WHEN OTHERS THEN
298       -- store SQL error message on message stack for caller
299       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
300                           p_msg_name     => g_unexpected_error,
301                           p_token1       => g_sqlcode_token,
302                           p_token1_value => sqlcode,
303                           p_token2       => g_sqlerrm_token,
304                           p_token2_value => sqlerrm);
305 
306       -- notify caller of an UNEXPECTED error
307       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
308 
309   END validate_id;
310 
311   ------------------------------------------------------------------------
312   -- PROCEDURE validate_object_version_number
313   -- Post-Generation Change
314   -- By RMUNJULU on 16-APR-2001
315   ------------------------------------------------------------------------
316   PROCEDURE validate_object_version_number(
317 	x_return_status OUT NOCOPY VARCHAR2,
318 	p_rasv_rec		IN	rasv_rec_type) IS
319 
320   BEGIN
321     -- initialize return status
322     x_return_status := OKC_API.G_RET_STS_SUCCESS;
323 
324     -- data is required
325     IF (p_rasv_rec.object_version_number IS NULL)
326 	OR (p_rasv_rec.object_version_number = OKC_API.G_MISS_NUM) THEN
327       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
328                           p_msg_name     => g_required_value,
329                           p_token1       => g_col_name_token,
330                           p_token1_value => 'object_version_number');
331 
332       -- notify caller of an error
333       x_return_status := OKC_API.G_RET_STS_ERROR;
334 
335       -- halt further validation of this column
336       RAISE G_EXCEPTION_HALT_VALIDATION;
337 
338     END IF;
339 
340   EXCEPTION
341 	WHEN G_EXCEPTION_HALT_VALIDATION THEN
342       -- no processing necessary; validation can continue
343       -- with the next column
344       NULL;
345     WHEN OTHERS THEN
346       -- store SQL error message on message stack for caller
347       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
348                           p_msg_name     => g_unexpected_error,
349                           p_token1       => g_sqlcode_token,
350                           p_token1_value => sqlcode,
351                           p_token2       => g_sqlerrm_token,
352                           p_token2_value => sqlerrm);
353 
354     -- notify caller of an UNEXPECTED error
355     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
356 
357   END validate_object_version_number;
358 
359   ------------------------------------------------------------------------
360   -- PROCEDURE validate_sfwt_flag
361   -- Post-Generation Change
362   -- By RMUNJULU on 16-APR-2001
363   ------------------------------------------------------------------------
364   PROCEDURE validate_sfwt_flag(
365 	x_return_status OUT NOCOPY VARCHAR2,
366 	p_rasv_rec		IN	rasv_rec_type) IS
367 
368   BEGIN
369     -- initialize return status
370     x_return_status := OKC_API.G_RET_STS_SUCCESS;
371 
372     -- data is required
373     IF (p_rasv_rec.sfwt_flag IS NULL)
374 	OR (p_rasv_rec.sfwt_flag = OKC_API.G_MISS_CHAR) THEN
375       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
376                           p_msg_name     => g_required_value,
377                           p_token1       => g_col_name_token,
378                           p_token1_value => 'sfwt_flag');
379 
380       -- notify caller of an error
381       x_return_status := OKC_API.G_RET_STS_ERROR;
382 
383       -- halt further validation of this column
384       RAISE G_EXCEPTION_HALT_VALIDATION;
385 
386     END IF;
387 
388   EXCEPTION
389 	WHEN G_EXCEPTION_HALT_VALIDATION THEN
390       -- no processing necessary; validation can continue
391       -- with the next column
392       NULL;
393     WHEN OTHERS THEN
394       -- store SQL error message on message stack for caller
395       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
396                           p_msg_name     => g_unexpected_error,
397                           p_token1       => g_sqlcode_token,
398                           p_token1_value => sqlcode,
399                           p_token2       => g_sqlerrm_token,
400                           p_token2_value => sqlerrm);
401 
402     -- notify caller of an UNEXPECTED error
403     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
404 
405   END validate_sfwt_flag;
406 
407   ------------------------------------------------------------------------
408   -- PROCEDURE validate_org_id : Use the standard check_org_id() function
409   -- Post-Generation Change
410   -- By RMUNJULU on 16-APR-2001
411   ------------------------------------------------------------------------
412   PROCEDURE validate_org_id(
413 	x_return_status OUT NOCOPY VARCHAR2,
414 	p_rasv_rec		IN	rasv_rec_type) IS
415     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
416   BEGIN
417     -- initialize return status
418     x_return_status := OKC_API.G_RET_STS_SUCCESS;
419 
420     -- check org id validity using the generic function okl_util.check_org_id()
421     l_return_status := OKL_UTIL.check_org_id (p_rasv_rec.org_id);
422 
423     IF ( l_return_status = OKC_API.G_RET_STS_ERROR) THEN
424       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
425                           p_msg_name     => g_invalid_value,
426                           p_token1       => g_col_name_token,
427                           p_token1_value => 'org_id');
428 
429       -- notify caller of an error
430       x_return_status := OKC_API.G_RET_STS_ERROR;
431 
432       -- halt further validation of this column
433       RAISE G_EXCEPTION_HALT_VALIDATION;
434 
435      ELSIF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
436         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
437         raise G_EXCEPTION_HALT_VALIDATION;
438     END IF;
439 
440   EXCEPTION
441 	WHEN G_EXCEPTION_HALT_VALIDATION THEN
442       -- no processing necessary; validation can continue
443       -- with the next column
444       NULL;
445     WHEN OTHERS THEN
446       -- store SQL error message on message stack for caller
447       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
448                           p_msg_name     => g_unexpected_error,
449                           p_token1       => g_sqlcode_token,
450                           p_token1_value => sqlcode,
451                           p_token2       => g_sqlerrm_token,
452                           p_token2_value => sqlerrm);
453 
454     -- notify caller of an UNEXPECTED error
455     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
456 
457   END validate_org_id;
458 
459   ------------------------------------------------------------------------
460   -- PROCEDURE validate_date_ship_instr_sen
461   -- Post-Generation Change
462   -- By RMUNJULU on 16-APR-2001
463   ------------------------------------------------------------------------
464   PROCEDURE validate_date_ship_instr_sen(
465 	x_return_status OUT NOCOPY VARCHAR2,
466 	p_rasv_rec		IN	rasv_rec_type) IS
467     l_sysdate   DATE := OKC_API.G_MISS_DATE;
468   BEGIN
469     -- initialize return status
470     x_return_status := OKC_API.G_RET_STS_SUCCESS;
471 
472     -- get sysdate
473     SELECT  SYSDATE
474     INTO	l_sysdate
475     FROM	DUAL;
476 
477     -- date_shipping_instructions_sen cannot be greater then sys date
478     IF (p_rasv_rec.date_shipping_instructions_sen IS NOT NULL) AND
479        (l_sysdate <> OKC_API.G_MISS_DATE) AND
480        (p_rasv_rec.date_shipping_instructions_sen > l_sysdate) THEN
481       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
482                           p_msg_name     => g_required_value,
483                           p_token1       => g_col_name_token,
484                           p_token1_value => 'date_shipping_instructions_sen');
485 
486       -- notify caller of an error
487       x_return_status := OKC_API.G_RET_STS_ERROR;
488 
489       -- halt further validation of this column
490       RAISE G_EXCEPTION_HALT_VALIDATION;
491 
492     END IF;
493 
494   EXCEPTION
495 	WHEN G_EXCEPTION_HALT_VALIDATION THEN
496       -- no processing necessary; validation can continue
497       -- with the next column
498       NULL;
499     WHEN OTHERS THEN
500       -- store SQL error message on message stack for caller
501       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
502                           p_msg_name     => g_unexpected_error,
503                           p_token1       => g_sqlcode_token,
504                           p_token1_value => sqlcode,
505                           p_token2       => g_sqlerrm_token,
506                           p_token2_value => sqlerrm);
507 
508     -- notify caller of an UNEXPECTED error
509     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
510 
511   END validate_date_ship_instr_sen;
512 
513   ------------------------------------------------------------------------
514   -- PROCEDURE validate_ist_fkey	: Enforce foreign key
515   -- Post-Generation Change
516   -- By RMUNJULU on 16-APR-2001
517   ------------------------------------------------------------------------
518   PROCEDURE validate_ist_fkey(
519 	x_return_status OUT NOCOPY VARCHAR2,
520 	p_rasv_rec		IN	rasv_rec_type) IS
521     /*-- Check here --
522     CURSOR  l_ist_csr  IS
523       SELECT 'x'
524       FROM   OKX_SHIP_TOS_V
525       WHERE  id = p_rasv_rec.ist_id;
526 
527      l_return_status             VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
528      l_dummy_var                 VARCHAR2(1) := '?';
529 	*/
530   BEGIN
531     NULL;
532  	/*
533     -- initialize return status
534     x_return_status := OKC_API.G_RET_STS_SUCCESS;
535 
536     -- enforce foreign key
537     IF (p_rasv_rec.ist_id IS NOT NULL) THEN
538       OPEN  l_ist_csr;
539       FETCH l_ist_csr INTO l_dummy_var;
540       CLOSE l_ist_csr;
541 
542       -- if l_dummy_var is still set to default, data was not found
543       IF (l_dummy_var = '?') THEN
544         OKC_API.SET_MESSAGE(p_app_name		=> G_APP_NAME,
545       			            p_msg_name		=> G_NO_PARENT_RECORD,
546       			            p_token1		=> G_COL_NAME_TOKEN,
547       			            p_token1_value	=> 'ist_id',
548       			            p_token2		=> G_CHILD_TABLE_TOKEN,
549                             p_token2_value	=> 'OKL_RELOCATE_ASSETS_V',
550       			            p_token3		=> G_PARENT_TABLE_TOKEN,
551       			            p_token3_value	=> 'OKX_SHIP_TOS_V');
552 
553         -- notify caller of an error
554         x_return_status := OKC_API.G_RET_STS_ERROR;
555       END IF;
556 	END IF;
557 
558     EXCEPTION
559     WHEN OTHERS THEN
560       -- store SQL error message on message stack for caller
561       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
562                           p_msg_name     => g_unexpected_error,
563                           p_token1       => g_sqlcode_token,
564                           p_token1_value => sqlcode,
565                           p_token2       => g_sqlerrm_token,
566                           p_token2_value => sqlerrm);
567 
568       -- notify caller of an UNEXPECTED error
569       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
570 
571 	  -- verify that cursor was closed
572       IF l_ist_csr%ISOPEN THEN
573         CLOSE l_ist_csr;
574       END IF;
575 	*/
576   END validate_ist_fkey;
577 
578   ------------------------------------------------------------------------
579   -- PROCEDURE validate_pac_fkey	: Enforce foreign key
580   -- Post-Generation Change
581   -- By RMUNJULU on 16-APR-2001
582   ------------------------------------------------------------------------
583   PROCEDURE validate_pac_fkey(
584 	x_return_status OUT NOCOPY VARCHAR2,
585 	p_rasv_rec		IN	rasv_rec_type) IS
586     /*-- Check here --
587      CURSOR  l_pac_csr  IS
588       SELECT 'x'
589       FROM   OKX_PTY_CUS_ACT_CTS_V
590       WHERE  ID = p_rasv_rec.pac_id;
591 
592      l_return_status             VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
593      l_dummy_var                 VARCHAR2(1) := '?';
594 	*/
595   BEGIN
596     NULL;
597  	/*
598     -- initialize return status
599     x_return_status := OKC_API.G_RET_STS_SUCCESS;
600 
601     -- enforce foreign key
602     IF (p_rasv_rec.pac_id IS NOT NULL) THEN
603       OPEN  l_pac_csr;
604       FETCH l_pac_csr INTO l_dummy_var;
605       CLOSE l_pac_csr;
606 
607       -- if l_dummy_var is still set to default, data was not found
608       IF (l_dummy_var = '?') THEN
609         OKC_API.SET_MESSAGE(p_app_name		=> G_APP_NAME,
610       			            p_msg_name		=> G_NO_PARENT_RECORD,
611       			            p_token1		=> G_COL_NAME_TOKEN,
612       			            p_token1_value	=> 'pac_id',
613       			            p_token2		=> G_CHILD_TABLE_TOKEN,
614                             p_token2_value	=> 'OKL_RELOCATE_ASSETS_V',
615       			            p_token3		=> G_PARENT_TABLE_TOKEN,
616       			            p_token3_value	=> 'OKX_PTY_CUS_ACT_CTS_V');
617 
618         -- notify caller of an error
619         x_return_status := OKC_API.G_RET_STS_ERROR;
620       END IF;
621 	END IF;
622 
623     EXCEPTION
624     WHEN OTHERS THEN
625       -- store SQL error message on message stack for caller
626       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
627                           p_msg_name     => g_unexpected_error,
628                           p_token1       => g_sqlcode_token,
629                           p_token1_value => sqlcode,
630                           p_token2       => g_sqlerrm_token,
631                           p_token2_value => sqlerrm);
632 
633       -- notify caller of an UNEXPECTED error
634       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
635 
636 	  -- verify that cursor was closed
637       IF l_pac_csr%ISOPEN THEN
638         CLOSE l_pac_csr;
639       END IF;
640 	*/
641   END validate_pac_fkey;
642 
643   ------------------------------------------------------------------------
644   -- PROCEDURE validate_art_fkey	: Enforce foreign key
645   -- Post-Generation Change
646   -- By RMUNJULU on 16-APR-2001
647   ------------------------------------------------------------------------
648   PROCEDURE validate_art_fkey(
649 	x_return_status OUT NOCOPY VARCHAR2,
650 	p_rasv_rec		IN	rasv_rec_type) IS
651 
652 	CURSOR  l_art_csr IS
653       SELECT  'x'
654       FROM   OKL_ASSET_RETURNS_V
655       WHERE  ID = p_rasv_rec.art_id;
656 
657      l_return_status             VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
658      l_dummy_var                 VARCHAR2(1) := '?';
659 
660   BEGIN
661     -- initialize return status
662     x_return_status := OKC_API.G_RET_STS_SUCCESS;
663 
664     -- enforce foreign key
665     IF (p_rasv_rec.art_id IS NOT NULL) THEN
666       OPEN  l_art_csr;
667       FETCH l_art_csr INTO l_dummy_var;
668       CLOSE l_art_csr;
669 
670       -- if l_dummy_var is still set to default, data was not found
671       IF (l_dummy_var = '?') THEN
672         OKC_API.SET_MESSAGE(p_app_name		=> G_APP_NAME,
673       			            p_msg_name		=> G_NO_PARENT_RECORD,
674       			            p_token1		=> G_COL_NAME_TOKEN,
675       			            p_token1_value	=> 'art_id',
676       			            p_token2		=> G_CHILD_TABLE_TOKEN,
677                             p_token2_value	=> 'OKL_RELOCATE_ASSETS_V',
678       			            p_token3		=> G_PARENT_TABLE_TOKEN,
679       			            p_token3_value	=> 'OKL_ASSET_RETURNS_V');
680 
681         -- notify caller of an error
682         x_return_status := OKC_API.G_RET_STS_ERROR;
683       END IF;
684 	END IF;
685 
686     EXCEPTION
687     WHEN OTHERS THEN
688       -- store SQL error message on message stack for caller
689       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
690                           p_msg_name     => g_unexpected_error,
691                           p_token1       => g_sqlcode_token,
692                           p_token1_value => sqlcode,
693                           p_token2       => g_sqlerrm_token,
694                           p_token2_value => sqlerrm);
695 
696       -- notify caller of an UNEXPECTED error
697       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
698 
699 	  -- verify that cursor was closed
700       IF l_art_csr%ISOPEN THEN
701         CLOSE l_art_csr;
702       END IF;
703 
704   END validate_art_fkey;
705 
706 
707   ------------------------------------------------------------------------
708   -- PROCEDURE validate_trans_opt_acc_yn
709   -- Post-Generation Change
710   -- By RMUNJULU on 27-SEP-2001
711   ------------------------------------------------------------------------
712 
713   PROCEDURE validate_trans_opt_acc_yn (
714     x_return_status    OUT NOCOPY VARCHAR2,
715     p_rasv_rec         IN rasv_rec_type ) IS
716     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
717   BEGIN
718     -- intialize return status
719     x_return_status := OKC_API.G_RET_STS_SUCCESS;
720 
721     -- check from domain values using the generic okl_util.check_domain_yn
722     l_return_status := OKL_UTIL.check_domain_yn(p_rasv_rec.trans_option_accepted_yn);
723 
724 
725     IF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
726        OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
727                            p_msg_name     => g_invalid_value,
728                            p_token1       => g_col_name_token,
729                            p_token1_value => 'trans_option_accepted_yn');
730 
731        -- notify caller of an error
732        x_return_status := OKC_API.G_RET_STS_ERROR;
733        raise G_EXCEPTION_HALT_VALIDATION;
734 
735     ELSIF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
736 
737         -- notify caller of an error
738         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
739         RAISE G_EXCEPTION_HALT_VALIDATION;
740 
741     END IF;
742 
743   EXCEPTION
744     WHEN G_EXCEPTION_HALT_VALIDATION then
745       -- No action necessary. Validation can continue to next attribute/column
746       null;
747 
748     WHEN OTHERS THEN
749       -- store SQL error message on message stack for caller
750       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
751                           p_msg_name     => g_unexpected_error,
752                           p_token1       => g_sqlcode_token,
753                           p_token1_value => sqlcode,
754                           p_token2       => g_sqlerrm_token,
755                           p_token2_value => sqlerrm);
756 
757     -- notify caller of an UNEXPECTED error
758     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
759 
760   END validate_trans_opt_acc_yn;
761   ---------------------------------------------------------------------------
762   -- FUNCTION get_seq_id
763   ---------------------------------------------------------------------------
764   FUNCTION get_seq_id RETURN NUMBER IS
765   BEGIN
766     RETURN(okc_p_util.raw_to_number(sys_guid()));
767   END get_seq_id;
768 
769   ---------------------------------------------------------------------------
770   -- PROCEDURE qc
771   ---------------------------------------------------------------------------
772   PROCEDURE qc IS
773   BEGIN
774     null;
775   END qc;
776 
777   ---------------------------------------------------------------------------
778   -- PROCEDURE change_version
779   ---------------------------------------------------------------------------
780   PROCEDURE change_version IS
781   BEGIN
782     null;
783   END change_version;
784 
785   ---------------------------------------------------------------------------
786   -- PROCEDURE api_copy
787   ---------------------------------------------------------------------------
788   PROCEDURE api_copy IS
789   BEGIN
790     null;
791   END api_copy;
792 
793   ---------------------------------------------------------------------------
794   -- PROCEDURE add_language
795   ---------------------------------------------------------------------------
796   PROCEDURE add_language IS
797   BEGIN
798     DELETE FROM OKL_RELOCATE_ASSETS_TL T
799      WHERE NOT EXISTS (
800         SELECT NULL
801           FROM OKL_RELOCATE_ASTS_ALL_B B
802          WHERE B.ID = T.ID
803         );
804 
805     UPDATE OKL_RELOCATE_ASSETS_TL T SET (
806         COMMENTS) = (SELECT
807                                   B.COMMENTS
808                                 FROM OKL_RELOCATE_ASSETS_TL B
809                                WHERE B.ID = T.ID
810                                  AND B.LANGUAGE = T.SOURCE_LANG)
811       WHERE (
812               T.ID,
813               T.LANGUAGE)
814           IN (SELECT
815                   SUBT.ID,
816                   SUBT.LANGUAGE
817                 FROM OKL_RELOCATE_ASSETS_TL SUBB, OKL_RELOCATE_ASSETS_TL SUBT
818                WHERE SUBB.ID = SUBT.ID
819                  AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
820                  AND (SUBB.COMMENTS <> SUBT.COMMENTS
821                       OR (SUBB.COMMENTS IS NULL AND SUBT.COMMENTS IS NOT NULL)
822                       OR (SUBB.COMMENTS IS NOT NULL AND SUBT.COMMENTS IS NULL)
823               ));
824 
825     INSERT INTO OKL_RELOCATE_ASSETS_TL (
826         ID,
827         LANGUAGE,
828         SOURCE_LANG,
829         SFWT_FLAG,
830         COMMENTS,
831         CREATED_BY,
832         CREATION_DATE,
833         LAST_UPDATED_BY,
834         LAST_UPDATE_DATE,
835         LAST_UPDATE_LOGIN)
836       SELECT
837             B.ID,
838             L.LANGUAGE_CODE,
839             B.SOURCE_LANG,
840             B.SFWT_FLAG,
841             B.COMMENTS,
842             B.CREATED_BY,
843             B.CREATION_DATE,
844             B.LAST_UPDATED_BY,
845             B.LAST_UPDATE_DATE,
846             B.LAST_UPDATE_LOGIN
847         FROM OKL_RELOCATE_ASSETS_TL B, FND_LANGUAGES L
848        WHERE L.INSTALLED_FLAG IN ('I', 'B')
849          AND B.LANGUAGE = USERENV('LANG')
850          AND NOT EXISTS(
851                     SELECT NULL
852                       FROM OKL_RELOCATE_ASSETS_TL T
853                      WHERE T.ID = B.ID
854                        AND T.LANGUAGE = L.LANGUAGE_CODE
855                     );
856 
857   END add_language;
858 
859   ---------------------------------------------------------------------------
860   -- FUNCTION get_rec for: OKL_RELOCATE_ASSETS_B
861   ---------------------------------------------------------------------------
862   -- Start of comments
863   --
864   -- Function  Name  : get_rec
865   -- Description     : for: OKL_RELOCATE_ASSETS_B
866   -- Business Rules  :
867   -- Parameters      :
868   -- Version         : 1.0
869   -- History         : RABHUPAT 17-DEC-2002 2667636
870   --                 :modified for multicurrency changes
871   -- End of comments
872   FUNCTION get_rec (
873     p_ras_rec                      IN ras_rec_type,
874     x_no_data_found                OUT NOCOPY BOOLEAN
875   ) RETURN ras_rec_type IS
876     CURSOR okl_relocate_assets_b_pk_csr (p_id                 IN NUMBER) IS
877     SELECT
878             ID,
879             IST_ID,
880             PAC_ID,
881             ART_ID,
882             OBJECT_VERSION_NUMBER,
883             DATE_SHIPPING_INSTRUCTIONS_SEN,
884             ORG_ID,
885             REQUEST_ID,
886             PROGRAM_APPLICATION_ID,
887             PROGRAM_ID,
888             PROGRAM_UPDATE_DATE,
889             TRANS_OPTION_ACCEPTED_YN,
890             INSURANCE_AMOUNT,
891             ATTRIBUTE_CATEGORY,
892             ATTRIBUTE1,
893             ATTRIBUTE2,
894             ATTRIBUTE3,
895             ATTRIBUTE4,
896             ATTRIBUTE5,
897             ATTRIBUTE6,
898             ATTRIBUTE7,
899             ATTRIBUTE8,
900             ATTRIBUTE9,
901             ATTRIBUTE10,
902             ATTRIBUTE11,
903             ATTRIBUTE12,
904             ATTRIBUTE13,
905             ATTRIBUTE14,
906             ATTRIBUTE15,
907             CREATED_BY,
908             CREATION_DATE,
909             LAST_UPDATED_BY,
910             LAST_UPDATE_DATE,
911             LAST_UPDATE_LOGIN,
912   -- RABHUPAT - 2667636 - Start
913             CURRENCY_CODE,
914             CURRENCY_CONVERSION_CODE,
915             CURRENCY_CONVERSION_TYPE,
916             CURRENCY_CONVERSION_RATE,
917             CURRENCY_CONVERSION_DATE
918   -- RABHUPAT - 2667636 - End
919       FROM Okl_Relocate_Assets_B
920      WHERE okl_relocate_assets_b.id = p_id;
921     l_okl_relocate_assets_b_pk     okl_relocate_assets_b_pk_csr%ROWTYPE;
922     l_ras_rec                      ras_rec_type;
923   BEGIN
924     x_no_data_found := TRUE;
925     -- Get current database values
926     OPEN okl_relocate_assets_b_pk_csr (p_ras_rec.id);
927     FETCH okl_relocate_assets_b_pk_csr INTO
928               l_ras_rec.ID,
929               l_ras_rec.IST_ID,
930               l_ras_rec.PAC_ID,
931               l_ras_rec.ART_ID,
932               l_ras_rec.OBJECT_VERSION_NUMBER,
933               l_ras_rec.DATE_SHIPPING_INSTRUCTIONS_SEN,
934               l_ras_rec.ORG_ID,
935               l_ras_rec.REQUEST_ID,
936               l_ras_rec.PROGRAM_APPLICATION_ID,
937               l_ras_rec.PROGRAM_ID,
938               l_ras_rec.PROGRAM_UPDATE_DATE,
939               l_ras_rec.TRANS_OPTION_ACCEPTED_YN,
940               l_ras_rec.INSURANCE_AMOUNT,
941               l_ras_rec.ATTRIBUTE_CATEGORY,
942               l_ras_rec.ATTRIBUTE1,
943               l_ras_rec.ATTRIBUTE2,
944               l_ras_rec.ATTRIBUTE3,
945               l_ras_rec.ATTRIBUTE4,
946               l_ras_rec.ATTRIBUTE5,
947               l_ras_rec.ATTRIBUTE6,
948               l_ras_rec.ATTRIBUTE7,
949               l_ras_rec.ATTRIBUTE8,
950               l_ras_rec.ATTRIBUTE9,
951               l_ras_rec.ATTRIBUTE10,
952               l_ras_rec.ATTRIBUTE11,
953               l_ras_rec.ATTRIBUTE12,
954               l_ras_rec.ATTRIBUTE13,
955               l_ras_rec.ATTRIBUTE14,
956               l_ras_rec.ATTRIBUTE15,
957               l_ras_rec.CREATED_BY,
958               l_ras_rec.CREATION_DATE,
959               l_ras_rec.LAST_UPDATED_BY,
960               l_ras_rec.LAST_UPDATE_DATE,
961               l_ras_rec.LAST_UPDATE_LOGIN,
962   -- RABHUPAT - 2667636 - Start
963               l_ras_rec.CURRENCY_CODE,
964               l_ras_rec.CURRENCY_CONVERSION_CODE,
965               l_ras_rec.CURRENCY_CONVERSION_TYPE,
966               l_ras_rec.CURRENCY_CONVERSION_RATE,
967               l_ras_rec.CURRENCY_CONVERSION_DATE;
968   -- RABHUPAT - 2667636 - End
969     x_no_data_found := okl_relocate_assets_b_pk_csr%NOTFOUND;
970     CLOSE okl_relocate_assets_b_pk_csr;
971     RETURN(l_ras_rec);
972   END get_rec;
973 
974   FUNCTION get_rec (
975     p_ras_rec                      IN ras_rec_type
976   ) RETURN ras_rec_type IS
977     l_row_notfound                 BOOLEAN := TRUE;
978   BEGIN
979     RETURN(get_rec(p_ras_rec, l_row_notfound));
980   END get_rec;
981   ---------------------------------------------------------------------------
982   -- FUNCTION get_rec for: OKL_RELOCATE_ASSETS_TL
983   ---------------------------------------------------------------------------
984   FUNCTION get_rec (
985     p_okl_relocate_assets_tl_rec   IN OklRelocateAssetsTlRecType,
986     x_no_data_found                OUT NOCOPY BOOLEAN
987   ) RETURN OklRelocateAssetsTlRecType IS
988     CURSOR okl_relocate_assets_tl_pk_csr (p_id                 IN NUMBER,
989                                           p_language           IN VARCHAR2) IS
990     SELECT
991             ID,
992             LANGUAGE,
993             SOURCE_LANG,
994             SFWT_FLAG,
995             COMMENTS,
996             CREATED_BY,
997             CREATION_DATE,
998             LAST_UPDATED_BY,
999             LAST_UPDATE_DATE,
1000             LAST_UPDATE_LOGIN
1001       FROM Okl_Relocate_Assets_Tl
1002      WHERE okl_relocate_assets_tl.id = p_id
1003        AND okl_relocate_assets_tl.language = p_language;
1004     l_okl_relocate_assets_tl_pk    okl_relocate_assets_tl_pk_csr%ROWTYPE;
1005     l_okl_relocate_assets_tl_rec   OklRelocateAssetsTlRecType;
1006   BEGIN
1007     x_no_data_found := TRUE;
1008     -- Get current database values
1009     OPEN okl_relocate_assets_tl_pk_csr (p_okl_relocate_assets_tl_rec.id,
1010                                         p_okl_relocate_assets_tl_rec.language);
1011     FETCH okl_relocate_assets_tl_pk_csr INTO
1012               l_okl_relocate_assets_tl_rec.ID,
1013               l_okl_relocate_assets_tl_rec.LANGUAGE,
1014               l_okl_relocate_assets_tl_rec.SOURCE_LANG,
1015               l_okl_relocate_assets_tl_rec.SFWT_FLAG,
1016               l_okl_relocate_assets_tl_rec.COMMENTS,
1017               l_okl_relocate_assets_tl_rec.CREATED_BY,
1018               l_okl_relocate_assets_tl_rec.CREATION_DATE,
1019               l_okl_relocate_assets_tl_rec.LAST_UPDATED_BY,
1020               l_okl_relocate_assets_tl_rec.LAST_UPDATE_DATE,
1021               l_okl_relocate_assets_tl_rec.LAST_UPDATE_LOGIN;
1022     x_no_data_found := okl_relocate_assets_tl_pk_csr%NOTFOUND;
1023     CLOSE okl_relocate_assets_tl_pk_csr;
1024     RETURN(l_okl_relocate_assets_tl_rec);
1025   END get_rec;
1026 
1027   FUNCTION get_rec (
1028     p_okl_relocate_assets_tl_rec   IN OklRelocateAssetsTlRecType
1029   ) RETURN OklRelocateAssetsTlRecType IS
1030     l_row_notfound                 BOOLEAN := TRUE;
1031   BEGIN
1032     RETURN(get_rec(p_okl_relocate_assets_tl_rec, l_row_notfound));
1033   END get_rec;
1034   ---------------------------------------------------------------------------
1035   -- FUNCTION get_rec for: OKL_RELOCATE_ASSETS_V
1036   ---------------------------------------------------------------------------
1037   -- Start of comments
1038   --
1039   -- Function  Name  : get_rec
1040   -- Description     : for: OKL_RELOCATE_ASSETS_V
1041   -- Business Rules  :
1042   -- Parameters      :
1043   -- Version         : 1.0
1044   -- History         : RABHUPAT 17-DEC-2002 2667636
1045   --                 :modified for multicurrency changes
1046   -- End of comments
1047   FUNCTION get_rec (
1048     p_rasv_rec                     IN rasv_rec_type,
1049     x_no_data_found                OUT NOCOPY BOOLEAN
1050   ) RETURN rasv_rec_type IS
1051     CURSOR okl_rasv_pk_csr (p_id                 IN NUMBER) IS
1052     SELECT
1053             ID,
1054             OBJECT_VERSION_NUMBER,
1055             SFWT_FLAG,
1056             ART_ID,
1057             PAC_ID,
1058             IST_ID,
1059             DATE_SHIPPING_INSTRUCTIONS_SEN,
1060             COMMENTS,
1061             TRANS_OPTION_ACCEPTED_YN,
1062             INSURANCE_AMOUNT,
1063             ATTRIBUTE_CATEGORY,
1064             ATTRIBUTE1,
1065             ATTRIBUTE2,
1066             ATTRIBUTE3,
1067             ATTRIBUTE4,
1068             ATTRIBUTE5,
1069             ATTRIBUTE6,
1070             ATTRIBUTE7,
1071             ATTRIBUTE8,
1072             ATTRIBUTE9,
1073             ATTRIBUTE10,
1074             ATTRIBUTE11,
1075             ATTRIBUTE12,
1076             ATTRIBUTE13,
1077             ATTRIBUTE14,
1078             ATTRIBUTE15,
1079             ORG_ID,
1080             REQUEST_ID,
1081             PROGRAM_APPLICATION_ID,
1082             PROGRAM_ID,
1083             PROGRAM_UPDATE_DATE,
1084             CREATED_BY,
1085             CREATION_DATE,
1086             LAST_UPDATED_BY,
1087             LAST_UPDATE_LOGIN,
1088             LAST_UPDATE_DATE,
1089   -- RABHUPAT - 2667636 - Start
1090             CURRENCY_CODE,
1091             CURRENCY_CONVERSION_CODE,
1092             CURRENCY_CONVERSION_TYPE,
1093             CURRENCY_CONVERSION_RATE,
1094             CURRENCY_CONVERSION_DATE
1095   -- RABHUPAT - 2667636 - End
1096       FROM Okl_Relocate_Assets_V
1097      WHERE okl_relocate_assets_v.id = p_id;
1098     l_okl_rasv_pk                  okl_rasv_pk_csr%ROWTYPE;
1099     l_rasv_rec                     rasv_rec_type;
1100   BEGIN
1101     x_no_data_found := TRUE;
1102     -- Get current database values
1103     OPEN okl_rasv_pk_csr (p_rasv_rec.id);
1104     FETCH okl_rasv_pk_csr INTO
1105               l_rasv_rec.ID,
1106               l_rasv_rec.OBJECT_VERSION_NUMBER,
1107               l_rasv_rec.SFWT_FLAG,
1108               l_rasv_rec.ART_ID,
1109               l_rasv_rec.PAC_ID,
1110               l_rasv_rec.IST_ID,
1111               l_rasv_rec.DATE_SHIPPING_INSTRUCTIONS_SEN,
1112               l_rasv_rec.COMMENTS,
1113               l_rasv_rec.TRANS_OPTION_ACCEPTED_YN,
1114               l_rasv_rec.INSURANCE_AMOUNT,
1115               l_rasv_rec.ATTRIBUTE_CATEGORY,
1116               l_rasv_rec.ATTRIBUTE1,
1117               l_rasv_rec.ATTRIBUTE2,
1118               l_rasv_rec.ATTRIBUTE3,
1119               l_rasv_rec.ATTRIBUTE4,
1120               l_rasv_rec.ATTRIBUTE5,
1121               l_rasv_rec.ATTRIBUTE6,
1122               l_rasv_rec.ATTRIBUTE7,
1123               l_rasv_rec.ATTRIBUTE8,
1124               l_rasv_rec.ATTRIBUTE9,
1125               l_rasv_rec.ATTRIBUTE10,
1126               l_rasv_rec.ATTRIBUTE11,
1127               l_rasv_rec.ATTRIBUTE12,
1128               l_rasv_rec.ATTRIBUTE13,
1129               l_rasv_rec.ATTRIBUTE14,
1130               l_rasv_rec.ATTRIBUTE15,
1131               l_rasv_rec.ORG_ID,
1132               l_rasv_rec.REQUEST_ID,
1133               l_rasv_rec.PROGRAM_APPLICATION_ID,
1134               l_rasv_rec.PROGRAM_ID,
1135               l_rasv_rec.PROGRAM_UPDATE_DATE,
1136               l_rasv_rec.CREATED_BY,
1137               l_rasv_rec.CREATION_DATE,
1138               l_rasv_rec.LAST_UPDATED_BY,
1139               l_rasv_rec.LAST_UPDATE_LOGIN,
1140               l_rasv_rec.LAST_UPDATE_DATE,
1141   -- RABHUPAT - 2667636 - Start
1142               l_rasv_rec.CURRENCY_CODE,
1143               l_rasv_rec.CURRENCY_CONVERSION_CODE,
1144               l_rasv_rec.CURRENCY_CONVERSION_TYPE,
1145               l_rasv_rec.CURRENCY_CONVERSION_RATE,
1146               l_rasv_rec.CURRENCY_CONVERSION_DATE;
1147   -- RABHUPAT - 2667636 - End
1148     x_no_data_found := okl_rasv_pk_csr%NOTFOUND;
1149     CLOSE okl_rasv_pk_csr;
1150     RETURN(l_rasv_rec);
1151   END get_rec;
1152 
1153   FUNCTION get_rec (
1154     p_rasv_rec                     IN rasv_rec_type
1155   ) RETURN rasv_rec_type IS
1156     l_row_notfound                 BOOLEAN := TRUE;
1157   BEGIN
1158     RETURN(get_rec(p_rasv_rec, l_row_notfound));
1159   END get_rec;
1160 
1161   -----------------------------------------------------------
1162   -- FUNCTION null_out_defaults for: OKL_RELOCATE_ASSETS_V --
1163   -----------------------------------------------------------
1164   -- Start of comments
1165   --
1166   -- Function  Name  : null_out_defaults
1167   -- Description     : for: OKL_RELOCATE_ASSETS_V
1168   -- Business Rules  :
1169   -- Parameters      :
1170   -- Version         : 1.0
1171   -- History         : RABHUPAT 17-DEC-2002 2667636
1172   --                 :modified for multicurrency changes
1173   -- End of comments
1174   FUNCTION null_out_defaults (
1175     p_rasv_rec	IN rasv_rec_type
1176   ) RETURN rasv_rec_type IS
1177     l_rasv_rec	rasv_rec_type := p_rasv_rec;
1178   BEGIN
1179     IF (l_rasv_rec.object_version_number = OKC_API.G_MISS_NUM) THEN
1180       l_rasv_rec.object_version_number := NULL;
1181     END IF;
1182     IF (l_rasv_rec.sfwt_flag = OKC_API.G_MISS_CHAR) THEN
1183       l_rasv_rec.sfwt_flag := NULL;
1184     END IF;
1185     IF (l_rasv_rec.art_id = OKC_API.G_MISS_NUM) THEN
1186       l_rasv_rec.art_id := NULL;
1187     END IF;
1188     IF (l_rasv_rec.pac_id = OKC_API.G_MISS_NUM) THEN
1189       l_rasv_rec.pac_id := NULL;
1190     END IF;
1191     IF (l_rasv_rec.ist_id = OKC_API.G_MISS_NUM) THEN
1192       l_rasv_rec.ist_id := NULL;
1193     END IF;
1194     IF (l_rasv_rec.date_shipping_instructions_sen = OKC_API.G_MISS_DATE) THEN
1195       l_rasv_rec.date_shipping_instructions_sen := NULL;
1196     END IF;
1197     IF (l_rasv_rec.comments = OKC_API.G_MISS_CHAR) THEN
1198       l_rasv_rec.comments := NULL;
1199     END IF;
1200     IF (l_rasv_rec.trans_option_accepted_yn = OKC_API.G_MISS_CHAR) THEN
1201       l_rasv_rec.trans_option_accepted_yn := NULL;
1202     END IF;
1203     IF (l_rasv_rec.insurance_amount = OKC_API.G_MISS_NUM) THEN
1204       l_rasv_rec.insurance_amount := NULL;
1205     END IF;
1206     IF (l_rasv_rec.attribute_category = OKC_API.G_MISS_CHAR) THEN
1207       l_rasv_rec.attribute_category := NULL;
1208     END IF;
1209     IF (l_rasv_rec.attribute1 = OKC_API.G_MISS_CHAR) THEN
1210       l_rasv_rec.attribute1 := NULL;
1211     END IF;
1212     IF (l_rasv_rec.attribute2 = OKC_API.G_MISS_CHAR) THEN
1213       l_rasv_rec.attribute2 := NULL;
1214     END IF;
1215     IF (l_rasv_rec.attribute3 = OKC_API.G_MISS_CHAR) THEN
1216       l_rasv_rec.attribute3 := NULL;
1217     END IF;
1218     IF (l_rasv_rec.attribute4 = OKC_API.G_MISS_CHAR) THEN
1219       l_rasv_rec.attribute4 := NULL;
1220     END IF;
1221     IF (l_rasv_rec.attribute5 = OKC_API.G_MISS_CHAR) THEN
1222       l_rasv_rec.attribute5 := NULL;
1223     END IF;
1224     IF (l_rasv_rec.attribute6 = OKC_API.G_MISS_CHAR) THEN
1225       l_rasv_rec.attribute6 := NULL;
1226     END IF;
1227     IF (l_rasv_rec.attribute7 = OKC_API.G_MISS_CHAR) THEN
1228       l_rasv_rec.attribute7 := NULL;
1229     END IF;
1230     IF (l_rasv_rec.attribute8 = OKC_API.G_MISS_CHAR) THEN
1231       l_rasv_rec.attribute8 := NULL;
1232     END IF;
1233     IF (l_rasv_rec.attribute9 = OKC_API.G_MISS_CHAR) THEN
1234       l_rasv_rec.attribute9 := NULL;
1235     END IF;
1236     IF (l_rasv_rec.attribute10 = OKC_API.G_MISS_CHAR) THEN
1237       l_rasv_rec.attribute10 := NULL;
1238     END IF;
1239     IF (l_rasv_rec.attribute11 = OKC_API.G_MISS_CHAR) THEN
1240       l_rasv_rec.attribute11 := NULL;
1241     END IF;
1242     IF (l_rasv_rec.attribute12 = OKC_API.G_MISS_CHAR) THEN
1243       l_rasv_rec.attribute12 := NULL;
1244     END IF;
1245     IF (l_rasv_rec.attribute13 = OKC_API.G_MISS_CHAR) THEN
1246       l_rasv_rec.attribute13 := NULL;
1247     END IF;
1248     IF (l_rasv_rec.attribute14 = OKC_API.G_MISS_CHAR) THEN
1249       l_rasv_rec.attribute14 := NULL;
1250     END IF;
1251     IF (l_rasv_rec.attribute15 = OKC_API.G_MISS_CHAR) THEN
1252       l_rasv_rec.attribute15 := NULL;
1253     END IF;
1254     IF (l_rasv_rec.org_id = OKC_API.G_MISS_NUM) THEN
1255       l_rasv_rec.org_id := NULL;
1256     END IF;
1257 /* -- post gen change
1258     IF (l_rasv_rec.request_id = OKC_API.G_MISS_NUM) THEN
1259       l_rasv_rec.request_id := NULL;
1260     END IF;
1261     IF (l_rasv_rec.program_application_id = OKC_API.G_MISS_NUM) THEN
1262       l_rasv_rec.program_application_id := NULL;
1263     END IF;
1264     IF (l_rasv_rec.program_id = OKC_API.G_MISS_NUM) THEN
1265       l_rasv_rec.program_id := NULL;
1266     END IF;
1267     IF (l_rasv_rec.program_update_date = OKC_API.G_MISS_DATE) THEN
1268       l_rasv_rec.program_update_date := NULL;
1269     END IF;
1270 */
1271     IF (l_rasv_rec.created_by = OKC_API.G_MISS_NUM) THEN
1272       l_rasv_rec.created_by := NULL;
1273     END IF;
1274     IF (l_rasv_rec.creation_date = OKC_API.G_MISS_DATE) THEN
1275       l_rasv_rec.creation_date := NULL;
1276     END IF;
1277     IF (l_rasv_rec.last_updated_by = OKC_API.G_MISS_NUM) THEN
1278       l_rasv_rec.last_updated_by := NULL;
1279     END IF;
1280     IF (l_rasv_rec.last_update_login = OKC_API.G_MISS_NUM) THEN
1281       l_rasv_rec.last_update_login := NULL;
1282     END IF;
1283     IF (l_rasv_rec.last_update_date = OKC_API.G_MISS_DATE) THEN
1284       l_rasv_rec.last_update_date := NULL;
1285     END IF;
1286   -- RABHUPAT - 2667636 -Start
1287     IF (l_rasv_rec.currency_code = OKC_API.G_MISS_CHAR) THEN
1288       l_rasv_rec.currency_code := NULL;
1289     END IF;
1290     IF (l_rasv_rec.currency_conversion_code = OKC_API.G_MISS_CHAR) THEN
1291       l_rasv_rec.currency_conversion_code := NULL;
1292     END IF;
1293     IF (l_rasv_rec.currency_conversion_type = OKC_API.G_MISS_CHAR) THEN
1294       l_rasv_rec.currency_conversion_type := NULL;
1295     END IF;
1296     IF (l_rasv_rec.currency_conversion_rate = OKC_API.G_MISS_NUM) THEN
1297       l_rasv_rec.currency_conversion_rate := NULL;
1298     END IF;
1299     IF (l_rasv_rec.currency_conversion_date = OKC_API.G_MISS_DATE) THEN
1300       l_rasv_rec.currency_conversion_date := NULL;
1301     END IF;
1302   -- RABHUPAT - 2667636 -End
1303     RETURN(l_rasv_rec);
1304   END null_out_defaults;
1305   ---------------------------------------------------------------------------
1306   -- PROCEDURE Validate_Attributes
1307   -- Post-Generation Change
1308   -- By RMUNJULU on 16-APR-2001
1309   ---------------------------------------------------------------------------
1310 
1311   ---------------------------------------------------
1312   -- Validate_Attributes for:OKL_RELOCATE_ASSETS_V --
1313   ---------------------------------------------------
1314   -- Start of comments
1315   --
1316   -- Procedure Name  : validate_attributes
1317   -- Description     : for:OKL_RELOCATE_ASSETS_V
1318   -- Business Rules  :
1319   -- Parameters      :
1320   -- Version         : 1.0
1321   -- History         : RABHUPAT 17-DEC-2002 2667636
1322   --                 : modified for multicurrency changes
1323   -- End of comments
1324 
1325   FUNCTION validate_attributes(p_rasv_rec IN  rasv_rec_type)
1326     RETURN VARCHAR2 IS
1327 
1328     x_return_status  VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1329     l_return_status  VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1330 
1331   BEGIN
1332     -- call column-level validation for 'id'
1333     validate_id(x_return_status => l_return_status,
1334                 p_rasv_rec      => p_rasv_rec);
1335 
1336     -- store the highest degree of error
1337     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1338       IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1339         x_return_status := l_return_status;
1340       END IF;
1341     END IF;
1342 
1343     -- call column-level validation for 'object_version_number'
1344     validate_object_version_number(x_return_status => l_return_status,
1345                  				   p_rasv_rec      => p_rasv_rec);
1346 
1347     -- store the highest degree of error
1348     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1349       IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1350         x_return_status := l_return_status;
1351       END IF;
1352     END IF;
1353 
1354     -- call column-level validation for 'sfwt_flag'
1355     validate_sfwt_flag(x_return_status => l_return_status,
1356                  	   p_rasv_rec      => p_rasv_rec);
1357 
1358     -- store the highest degree of error
1359     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1360       IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1361         x_return_status := l_return_status;
1362       END IF;
1363     END IF;
1364 
1365     -- call column-level validation for 'org_id'
1366     validate_org_id(x_return_status => l_return_status,
1367                  	   p_rasv_rec      => p_rasv_rec);
1368 
1369     -- store the highest degree of error
1370     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1371       IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1372         x_return_status := l_return_status;
1373       END IF;
1374     END IF;
1375 
1376     -- call column-level validation for 'date_shipping_instructions_sen'
1377     validate_date_ship_instr_sen(x_return_status => l_return_status,
1378                  	   						p_rasv_rec      => p_rasv_rec);
1379 
1380     -- store the highest degree of error
1381     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1382       IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1383         x_return_status := l_return_status;
1384       END IF;
1385     END IF;
1386 
1387 	-- call foreign key validation for 'ist_id'
1388     validate_ist_fkey(x_return_status => l_return_status,
1389                  	  p_rasv_rec      => p_rasv_rec);
1390 
1391     -- store the highest degree of error
1392     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1393       IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1394         x_return_status := l_return_status;
1395       END IF;
1396     END IF;
1397 
1398 	-- call foreign key validation for 'pac_id'
1399     validate_pac_fkey(x_return_status => l_return_status,
1400                  	  p_rasv_rec      => p_rasv_rec);
1401 
1402     -- store the highest degree of error
1403     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1404       IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1405         x_return_status := l_return_status;
1406       END IF;
1407     END IF;
1408 
1409 	-- call foreign key validation for 'art_id'
1410     validate_art_fkey(x_return_status => l_return_status,
1411                  	  p_rasv_rec      => p_rasv_rec);
1412 
1413     -- store the highest degree of error
1414     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1415       IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1416         x_return_status := l_return_status;
1417       END IF;
1418     END IF;
1419 
1420 	-- call validation for 'trans_option_accepted_yn'
1421     validate_trans_opt_acc_yn(x_return_status => l_return_status,
1422                         	  p_rasv_rec      => p_rasv_rec);
1423 
1424     -- store the highest degree of error
1425     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1426       IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1427         x_return_status := l_return_status;
1428       END IF;
1429     END IF;
1430 
1431   -- RABHUPAT - 2667636 - Start
1432     validate_currency_code(p_rasv_rec      => p_rasv_rec,
1433                            x_return_status => l_return_status);
1434     -- store the highest degree of error
1435     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1436        IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1437            x_return_status := l_return_status;
1438        END IF;
1439     END IF;
1440     validate_currency_con_code(p_rasv_rec      => p_rasv_rec,
1441                                x_return_status => l_return_status);
1442     -- store the highest degree of error
1443     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1444        IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1445            x_return_status := l_return_status;
1446        END IF;
1447     END IF;
1448     validate_currency_con_type(p_rasv_rec      => p_rasv_rec,
1449                                x_return_status => l_return_status);
1450     -- store the highest degree of error
1451     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1452        IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1453            x_return_status := l_return_status;
1454        END IF;
1455     END IF;
1456   -- RABHUPAT - 2667636 - End
1457 
1458     -- return status to caller
1459     RETURN x_return_status;
1460 
1461   EXCEPTION
1462     WHEN OTHERS THEN
1463       -- store SQL error message on message stack for caller
1464       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1465                         p_msg_name     => g_unexpected_error,
1466                         p_token1       => g_sqlcode_token,
1467                         p_token1_value => sqlcode,
1468                         p_token2       => g_sqlerrm_token,
1469                         p_token2_value => sqlerrm);
1470 
1471       -- notify caller of an UNEXPECTED error
1472       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1473 
1474       -- return status to caller
1475       RETURN x_return_status;
1476 
1477   END validate_attributes;
1478   ---------------------------------------------------------------------------
1479   -- PROCEDURE Validate_Record
1480   ---------------------------------------------------------------------------
1481   -----------------------------------------------
1482   -- Validate_Record for:OKL_RELOCATE_ASSETS_V --
1483   -----------------------------------------------
1484   -- Start of comments
1485   --
1486   -- Function  Name  : Validate_Record
1487   -- Description     : for:OKL_RELOCATE_ASSETS_V
1488   -- Business Rules  :
1489   -- Parameters      :
1490   -- Version         : 1.0
1491   -- History         : RABHUPAT 17-DEC-2002 2667636
1492   --                 :modified for multicurrency changes
1493   -- End of comments
1494   FUNCTION Validate_Record (
1495     p_rasv_rec IN rasv_rec_type
1496   ) RETURN VARCHAR2 IS
1497     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1498      x_return_status               VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1499   BEGIN
1500   -- RABHUPAT - 2667636 - Start
1501     -- Validate Currency conversion Code,type,rate and Date
1502 
1503     validate_currency_record(p_rasv_rec      => p_rasv_rec,
1504                                  x_return_status => l_return_status);
1505     -- store the highest degree of error
1506     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1507        IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1508            x_return_status := l_return_status;
1509        END IF;
1510     END IF;
1511   -- RABHUPAT - 2667636 - End
1512     RETURN (x_return_status);
1513   END Validate_Record;
1514 
1515   ---------------------------------------------------------------------------
1516   -- PROCEDURE Migrate
1517   ---------------------------------------------------------------------------
1518   -- Start of comments
1519   --
1520   -- Procedure Name  : Migrate
1521   -- Description     : from _V to _B
1522   -- Business Rules  :
1523   -- Parameters      :
1524   -- Version         : 1.0
1525   -- History         : RABHUPAT 17-DEC-2002 2667636
1526   --                 : modified for multicurrency changes
1527   -- End of comments
1528   PROCEDURE migrate (
1529     p_from	IN rasv_rec_type,
1530     p_to	IN OUT NOCOPY ras_rec_type
1531   ) IS
1532   BEGIN
1533     p_to.id := p_from.id;
1534     p_to.ist_id := p_from.ist_id;
1535     p_to.pac_id := p_from.pac_id;
1536     p_to.art_id := p_from.art_id;
1537     p_to.object_version_number := p_from.object_version_number;
1538     p_to.date_shipping_instructions_sen := p_from.date_shipping_instructions_sen;
1539     p_to.org_id := p_from.org_id;
1540     p_to.request_id := p_from.request_id;
1541     p_to.program_application_id := p_from.program_application_id;
1542     p_to.program_id := p_from.program_id;
1543     p_to.program_update_date := p_from.program_update_date;
1544     p_to.trans_option_accepted_yn := p_from.trans_option_accepted_yn;
1545     p_to.insurance_amount := p_from.insurance_amount;
1546     p_to.attribute_category := p_from.attribute_category;
1547     p_to.attribute1 := p_from.attribute1;
1548     p_to.attribute2 := p_from.attribute2;
1549     p_to.attribute3 := p_from.attribute3;
1550     p_to.attribute4 := p_from.attribute4;
1551     p_to.attribute5 := p_from.attribute5;
1552     p_to.attribute6 := p_from.attribute6;
1553     p_to.attribute7 := p_from.attribute7;
1554     p_to.attribute8 := p_from.attribute8;
1555     p_to.attribute9 := p_from.attribute9;
1556     p_to.attribute10 := p_from.attribute10;
1557     p_to.attribute11 := p_from.attribute11;
1558     p_to.attribute12 := p_from.attribute12;
1559     p_to.attribute13 := p_from.attribute13;
1560     p_to.attribute14 := p_from.attribute14;
1561     p_to.attribute15 := p_from.attribute15;
1562     p_to.created_by := p_from.created_by;
1563     p_to.creation_date := p_from.creation_date;
1564     p_to.last_updated_by := p_from.last_updated_by;
1565     p_to.last_update_date := p_from.last_update_date;
1566     p_to.last_update_login := p_from.last_update_login;
1567   -- RABHUPAT - 2667636 - Start
1568     p_to.currency_code  := p_from.currency_code;
1569     p_to.currency_conversion_code  := p_from.currency_conversion_code;
1570     p_to.currency_conversion_type  := p_from.currency_conversion_type;
1571     p_to.currency_conversion_rate  := p_from.currency_conversion_rate;
1572     p_to.currency_conversion_date  := p_from.currency_conversion_date;
1573   -- RABHUPAT - 2667636 - End
1574   END migrate;
1575 
1576   -- Start of comments
1577   --
1578   -- Procedure Name  : Migrate
1579   -- Description     : from _B to _V
1580   -- Business Rules  :
1581   -- Parameters      :
1582   -- Version         : 1.0
1583   -- History         : RABHUPAT 17-DEC-2002 2667636
1584   --                 : modified for multicurrency changes
1585   -- End of comments
1586   PROCEDURE migrate (
1587     p_from	IN ras_rec_type,
1588     p_to	IN OUT NOCOPY rasv_rec_type
1589   ) IS
1590   BEGIN
1591     p_to.id := p_from.id;
1592     p_to.ist_id := p_from.ist_id;
1593     p_to.pac_id := p_from.pac_id;
1594     p_to.art_id := p_from.art_id;
1595     p_to.object_version_number := p_from.object_version_number;
1596     p_to.date_shipping_instructions_sen := p_from.date_shipping_instructions_sen;
1597     p_to.org_id := p_from.org_id;
1598     p_to.request_id := p_from.request_id;
1599     p_to.program_application_id := p_from.program_application_id;
1600     p_to.program_id := p_from.program_id;
1601     p_to.program_update_date := p_from.program_update_date;
1602     p_to.trans_option_accepted_yn := p_from.trans_option_accepted_yn;
1603     p_to.insurance_amount := p_from.insurance_amount;
1604     p_to.attribute_category := p_from.attribute_category;
1605     p_to.attribute1 := p_from.attribute1;
1606     p_to.attribute2 := p_from.attribute2;
1607     p_to.attribute3 := p_from.attribute3;
1608     p_to.attribute4 := p_from.attribute4;
1609     p_to.attribute5 := p_from.attribute5;
1610     p_to.attribute6 := p_from.attribute6;
1611     p_to.attribute7 := p_from.attribute7;
1612     p_to.attribute8 := p_from.attribute8;
1613     p_to.attribute9 := p_from.attribute9;
1614     p_to.attribute10 := p_from.attribute10;
1615     p_to.attribute11 := p_from.attribute11;
1616     p_to.attribute12 := p_from.attribute12;
1617     p_to.attribute13 := p_from.attribute13;
1618     p_to.attribute14 := p_from.attribute14;
1619     p_to.attribute15 := p_from.attribute15;
1620     p_to.created_by := p_from.created_by;
1621     p_to.creation_date := p_from.creation_date;
1622     p_to.last_updated_by := p_from.last_updated_by;
1623     p_to.last_update_date := p_from.last_update_date;
1624     p_to.last_update_login := p_from.last_update_login;
1625   -- RABHUPAT - 2667636 - Start
1626     p_to.currency_code  := p_from.currency_code;
1627     p_to.currency_conversion_code  := p_from.currency_conversion_code;
1628     p_to.currency_conversion_type  := p_from.currency_conversion_type;
1629     p_to.currency_conversion_rate  := p_from.currency_conversion_rate;
1630     p_to.currency_conversion_date  := p_from.currency_conversion_date;
1631   -- RABHUPAT - 2667636 - End
1632   END migrate;
1633   PROCEDURE migrate (
1634     p_from	IN rasv_rec_type,
1635     p_to	IN OUT NOCOPY OklRelocateAssetsTlRecType
1636   ) IS
1637   BEGIN
1638     p_to.id := p_from.id;
1639     p_to.sfwt_flag := p_from.sfwt_flag;
1640     p_to.comments := p_from.comments;
1641     p_to.created_by := p_from.created_by;
1642     p_to.creation_date := p_from.creation_date;
1643     p_to.last_updated_by := p_from.last_updated_by;
1644     p_to.last_update_date := p_from.last_update_date;
1645     p_to.last_update_login := p_from.last_update_login;
1646   END migrate;
1647   PROCEDURE migrate (
1648     p_from	IN OklRelocateAssetsTlRecType,
1649     p_to	IN OUT NOCOPY rasv_rec_type
1650   ) IS
1651   BEGIN
1652     p_to.id := p_from.id;
1653     p_to.sfwt_flag := p_from.sfwt_flag;
1654     p_to.comments := p_from.comments;
1655     p_to.created_by := p_from.created_by;
1656     p_to.creation_date := p_from.creation_date;
1657     p_to.last_updated_by := p_from.last_updated_by;
1658     p_to.last_update_date := p_from.last_update_date;
1659     p_to.last_update_login := p_from.last_update_login;
1660   END migrate;
1661 
1662   ---------------------------------------------------------------------------
1663   -- PROCEDURE validate_row
1664   ---------------------------------------------------------------------------
1665   --------------------------------------------
1666   -- validate_row for:OKL_RELOCATE_ASSETS_V --
1667   --------------------------------------------
1668   PROCEDURE validate_row(
1669     p_api_version                  IN NUMBER,
1670     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1671     x_return_status                OUT NOCOPY VARCHAR2,
1672     x_msg_count                    OUT NOCOPY NUMBER,
1673     x_msg_data                     OUT NOCOPY VARCHAR2,
1674     p_rasv_rec                     IN rasv_rec_type) IS
1675 
1676     l_api_version                 CONSTANT NUMBER := 1;
1677     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
1678     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1679     l_rasv_rec                     rasv_rec_type := p_rasv_rec;
1680     l_ras_rec                      ras_rec_type;
1681     l_okl_relocate_assets_tl_rec   OklRelocateAssetsTlRecType;
1682   BEGIN
1683     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1684                                               G_PKG_NAME,
1685                                               p_init_msg_list,
1686                                               l_api_version,
1687                                               p_api_version,
1688                                               '_PVT',
1689                                               x_return_status);
1690     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1691       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1692     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1693       RAISE OKC_API.G_EXCEPTION_ERROR;
1694     END IF;
1695     --- Validate all non-missing attributes (Item Level Validation)
1696     l_return_status := Validate_Attributes(l_rasv_rec);
1697     --- If any errors happen abort API
1698     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1699       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1700     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1701       RAISE OKC_API.G_EXCEPTION_ERROR;
1702     END IF;
1703     l_return_status := Validate_Record(l_rasv_rec);
1704     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1705       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1706     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1707       RAISE OKC_API.G_EXCEPTION_ERROR;
1708     END IF;
1709     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1710   EXCEPTION
1711     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1712       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1713       (
1714         l_api_name,
1715         G_PKG_NAME,
1716         'OKC_API.G_RET_STS_ERROR',
1717         x_msg_count,
1718         x_msg_data,
1719         '_PVT'
1720       );
1721     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1722       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1723       (
1724         l_api_name,
1725         G_PKG_NAME,
1726         'OKC_API.G_RET_STS_UNEXP_ERROR',
1727         x_msg_count,
1728         x_msg_data,
1729         '_PVT'
1730       );
1731     WHEN OTHERS THEN
1732       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1733       (
1734         l_api_name,
1735         G_PKG_NAME,
1736         'OTHERS',
1737         x_msg_count,
1738         x_msg_data,
1739         '_PVT'
1740       );
1741   END validate_row;
1742   ------------------------------------------
1743   -- PL/SQL TBL validate_row for:RASV_TBL --
1744   ------------------------------------------
1745   PROCEDURE validate_row(
1746     p_api_version                  IN NUMBER,
1747     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1748     x_return_status                OUT NOCOPY VARCHAR2,
1749     x_msg_count                    OUT NOCOPY NUMBER,
1750     x_msg_data                     OUT NOCOPY VARCHAR2,
1751     p_rasv_tbl                     IN rasv_tbl_type) IS
1752 
1753     l_api_version                 CONSTANT NUMBER := 1;
1754     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1755     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1756     i                              NUMBER := 0;
1757     -- Begin Post-Generation Change
1758     -- overall error status
1759     l_overall_status               VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1760     -- End Post-Generation Change
1761   BEGIN
1762     OKC_API.init_msg_list(p_init_msg_list);
1763     -- Make sure PL/SQL table has records in it before passing
1764     IF (p_rasv_tbl.COUNT > 0) THEN
1765       i := p_rasv_tbl.FIRST;
1766       LOOP
1767         validate_row (
1768           p_api_version                  => p_api_version,
1769           p_init_msg_list                => OKC_API.G_FALSE,
1770           x_return_status                => x_return_status,
1771           x_msg_count                    => x_msg_count,
1772           x_msg_data                     => x_msg_data,
1773           p_rasv_rec                     => p_rasv_tbl(i));
1774         -- Begin Post-Generation Change
1775         -- store the highest degree of error
1776         IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
1777            IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
1778               l_overall_status := x_return_status;
1779            END IF;
1780         END IF;
1781         -- End Post-Generation Change
1782         EXIT WHEN (i = p_rasv_tbl.LAST);
1783         i := p_rasv_tbl.NEXT(i);
1784       END LOOP;
1785       -- Begin Post-Generation Change
1786       -- return overall status
1787       x_return_status := l_overall_status;
1788       -- End Post-Generation Change
1789     END IF;
1790   EXCEPTION
1791     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1792       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1793       (
1794         l_api_name,
1795         G_PKG_NAME,
1796         'OKC_API.G_RET_STS_ERROR',
1797         x_msg_count,
1798         x_msg_data,
1799         '_PVT'
1800       );
1801     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1802       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1803       (
1804         l_api_name,
1805         G_PKG_NAME,
1806         'OKC_API.G_RET_STS_UNEXP_ERROR',
1807         x_msg_count,
1808         x_msg_data,
1809         '_PVT'
1810       );
1811     WHEN OTHERS THEN
1812       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1813       (
1814         l_api_name,
1815         G_PKG_NAME,
1816         'OTHERS',
1817         x_msg_count,
1818         x_msg_data,
1819         '_PVT'
1820       );
1821   END validate_row;
1822 
1823   ---------------------------------------------------------------------------
1824   -- PROCEDURE insert_row
1825   ---------------------------------------------------------------------------
1826   ------------------------------------------
1827   -- insert_row for:OKL_RELOCATE_ASSETS_B --
1828   ------------------------------------------
1829   -- Start of comments
1830   --
1831   -- Procedure Name  : insert_row
1832   -- Description     : for OKL_RELOCATE_ASSETS_B
1833   -- Business Rules  :
1834   -- Parameters      :
1835   -- Version         : 1.0
1836   -- History         : RABHUPAT 17-DEC-2002 2667636
1837   --                 : modified for multicurrency changes
1838   -- End of comments
1839   PROCEDURE insert_row(
1840     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1841     x_return_status                OUT NOCOPY VARCHAR2,
1842     x_msg_count                    OUT NOCOPY NUMBER,
1843     x_msg_data                     OUT NOCOPY VARCHAR2,
1844     p_ras_rec                      IN ras_rec_type,
1845     x_ras_rec                      OUT NOCOPY ras_rec_type) IS
1846 
1847     l_api_version                 CONSTANT NUMBER := 1;
1848     l_api_name                     CONSTANT VARCHAR2(30) := 'B_insert_row';
1849     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1850     l_ras_rec                      ras_rec_type := p_ras_rec;
1851     l_def_ras_rec                  ras_rec_type;
1852     ----------------------------------------------
1853     -- Set_Attributes for:OKL_RELOCATE_ASSETS_B --
1854     ----------------------------------------------
1855     FUNCTION Set_Attributes (
1856       p_ras_rec IN  ras_rec_type,
1857       x_ras_rec OUT NOCOPY ras_rec_type
1858     ) RETURN VARCHAR2 IS
1859       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1860     BEGIN
1861       x_ras_rec := p_ras_rec;
1862       RETURN(l_return_status);
1863     END Set_Attributes;
1864   BEGIN
1865     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1866                                               p_init_msg_list,
1867                                               '_PVT',
1868                                               x_return_status);
1869     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1870       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1871     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1872       RAISE OKC_API.G_EXCEPTION_ERROR;
1873     END IF;
1874     --- Setting item attributes
1875     l_return_status := Set_Attributes(
1876       p_ras_rec,                         -- IN
1877       l_ras_rec);                        -- OUT
1878     --- If any errors happen abort API
1879     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1880       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1881     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1882       RAISE OKC_API.G_EXCEPTION_ERROR;
1883     END IF;
1884     INSERT INTO OKL_RELOCATE_ASSETS_B(
1885         id,
1886         ist_id,
1887         pac_id,
1888         art_id,
1889         object_version_number,
1890         date_shipping_instructions_sen,
1891         org_id,
1892         request_id,
1893         program_application_id,
1894         program_id,
1895         program_update_date,
1896         trans_option_accepted_yn,
1897         insurance_amount,
1898         attribute_category,
1899         attribute1,
1900         attribute2,
1901         attribute3,
1902         attribute4,
1903         attribute5,
1904         attribute6,
1905         attribute7,
1906         attribute8,
1907         attribute9,
1908         attribute10,
1909         attribute11,
1910         attribute12,
1911         attribute13,
1912         attribute14,
1913         attribute15,
1914         created_by,
1915         creation_date,
1916         last_updated_by,
1917         last_update_date,
1918         last_update_login,
1919   -- RABHUPAT - 2667636 - Start
1920         currency_code,
1921         currency_conversion_code,
1922         currency_conversion_type,
1923         currency_conversion_rate,
1924         currency_conversion_date)
1925   -- RABHUPAT - 2667636 - End
1926       VALUES (
1927         l_ras_rec.id,
1928         l_ras_rec.ist_id,
1929         l_ras_rec.pac_id,
1930         l_ras_rec.art_id,
1931         l_ras_rec.object_version_number,
1932         l_ras_rec.date_shipping_instructions_sen,
1933         l_ras_rec.org_id,
1934     	-- Begin Post-Generation Change
1935         /*
1936         l_ras_rec.request_id,
1937         l_ras_rec.program_application_id,
1938         l_ras_rec.program_id,
1939         l_ras_rec.program_update_date,
1940         */
1941         DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,FND_GLOBAL.CONC_REQUEST_ID),
1942         DECODE(FND_GLOBAL.PROG_APPL_ID,-1,NULL,FND_GLOBAL.PROG_APPL_ID),
1943         DECODE(FND_GLOBAL.CONC_PROGRAM_ID,-1,NULL,FND_GLOBAL.CONC_PROGRAM_ID),
1944         DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,SYSDATE),
1945 	    -- End Post-Generation Change
1946         l_ras_rec.trans_option_accepted_yn,
1947         l_ras_rec.insurance_amount,
1948         l_ras_rec.attribute_category,
1949         l_ras_rec.attribute1,
1950         l_ras_rec.attribute2,
1951         l_ras_rec.attribute3,
1952         l_ras_rec.attribute4,
1953         l_ras_rec.attribute5,
1954         l_ras_rec.attribute6,
1955         l_ras_rec.attribute7,
1956         l_ras_rec.attribute8,
1957         l_ras_rec.attribute9,
1958         l_ras_rec.attribute10,
1959         l_ras_rec.attribute11,
1960         l_ras_rec.attribute12,
1961         l_ras_rec.attribute13,
1962         l_ras_rec.attribute14,
1963         l_ras_rec.attribute15,
1964         l_ras_rec.created_by,
1965         l_ras_rec.creation_date,
1966         l_ras_rec.last_updated_by,
1967         l_ras_rec.last_update_date,
1968         l_ras_rec.last_update_login,
1969   -- RABHUPAT - 2667636 - Start
1970         l_ras_rec.currency_code,
1971         l_ras_rec.currency_conversion_code,
1972         l_ras_rec.currency_conversion_type,
1973         l_ras_rec.currency_conversion_rate,
1974         l_ras_rec.currency_conversion_date);
1975   -- RABHUPAT - 2667636 - End
1976     -- Set OUT values
1977     x_ras_rec := l_ras_rec;
1978     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1979   EXCEPTION
1980     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1981       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1982       (
1983         l_api_name,
1984         G_PKG_NAME,
1985         'OKC_API.G_RET_STS_ERROR',
1986         x_msg_count,
1987         x_msg_data,
1988         '_PVT'
1989       );
1990     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1991       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1992       (
1993         l_api_name,
1994         G_PKG_NAME,
1995         'OKC_API.G_RET_STS_UNEXP_ERROR',
1996         x_msg_count,
1997         x_msg_data,
1998         '_PVT'
1999       );
2000     WHEN OTHERS THEN
2001       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2002       (
2003         l_api_name,
2004         G_PKG_NAME,
2005         'OTHERS',
2006         x_msg_count,
2007         x_msg_data,
2008         '_PVT'
2009       );
2010   END insert_row;
2011   -------------------------------------------
2012   -- insert_row for:OKL_RELOCATE_ASSETS_TL --
2013   -------------------------------------------
2014   PROCEDURE insert_row(
2015     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2016     x_return_status                OUT NOCOPY VARCHAR2,
2017     x_msg_count                    OUT NOCOPY NUMBER,
2018     x_msg_data                     OUT NOCOPY VARCHAR2,
2019     p_okl_relocate_assets_tl_rec   IN OklRelocateAssetsTlRecType,
2020     x_okl_relocate_assets_tl_rec   OUT NOCOPY OklRelocateAssetsTlRecType) IS
2021 
2022     l_api_version                 CONSTANT NUMBER := 1;
2023     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_insert_row';
2024     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2025     l_okl_relocate_assets_tl_rec   OklRelocateAssetsTlRecType := p_okl_relocate_assets_tl_rec;
2026     ldefoklrelocateassetstlrec     OklRelocateAssetsTlRecType;
2027     CURSOR get_languages IS
2028       SELECT *
2029         FROM FND_LANGUAGES
2030        WHERE INSTALLED_FLAG IN ('I', 'B');
2031     -----------------------------------------------
2032     -- Set_Attributes for:OKL_RELOCATE_ASSETS_TL --
2033     -----------------------------------------------
2034     FUNCTION Set_Attributes (
2035       p_okl_relocate_assets_tl_rec IN  OklRelocateAssetsTlRecType,
2036       x_okl_relocate_assets_tl_rec OUT NOCOPY OklRelocateAssetsTlRecType
2037     ) RETURN VARCHAR2 IS
2038       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2039     BEGIN
2040       x_okl_relocate_assets_tl_rec := p_okl_relocate_assets_tl_rec;
2041       x_okl_relocate_assets_tl_rec.LANGUAGE := USERENV('LANG');
2042       x_okl_relocate_assets_tl_rec.SOURCE_LANG := USERENV('LANG');
2043       RETURN(l_return_status);
2044     END Set_Attributes;
2045   BEGIN
2046     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2047                                               p_init_msg_list,
2048                                               '_PVT',
2049                                               x_return_status);
2050     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2051       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2052     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2053       RAISE OKC_API.G_EXCEPTION_ERROR;
2054     END IF;
2055     --- Setting item attributes
2056     l_return_status := Set_Attributes(
2057       p_okl_relocate_assets_tl_rec,      -- IN
2058       l_okl_relocate_assets_tl_rec);     -- OUT
2059     --- If any errors happen abort API
2060     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2061       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2062     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2063       RAISE OKC_API.G_EXCEPTION_ERROR;
2064     END IF;
2065     FOR l_lang_rec IN get_languages LOOP
2066       l_okl_relocate_assets_tl_rec.language := l_lang_rec.language_code;
2067       INSERT INTO OKL_RELOCATE_ASSETS_TL(
2068           id,
2069           language,
2070           source_lang,
2071           sfwt_flag,
2072           comments,
2073           created_by,
2074           creation_date,
2075           last_updated_by,
2076           last_update_date,
2077           last_update_login)
2078         VALUES (
2079           l_okl_relocate_assets_tl_rec.id,
2080           l_okl_relocate_assets_tl_rec.language,
2081           l_okl_relocate_assets_tl_rec.source_lang,
2082           l_okl_relocate_assets_tl_rec.sfwt_flag,
2083           l_okl_relocate_assets_tl_rec.comments,
2084           l_okl_relocate_assets_tl_rec.created_by,
2085           l_okl_relocate_assets_tl_rec.creation_date,
2086           l_okl_relocate_assets_tl_rec.last_updated_by,
2087           l_okl_relocate_assets_tl_rec.last_update_date,
2088           l_okl_relocate_assets_tl_rec.last_update_login);
2089     END LOOP;
2090     -- Set OUT values
2091     x_okl_relocate_assets_tl_rec := l_okl_relocate_assets_tl_rec;
2092     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2093   EXCEPTION
2094     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2095       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2096       (
2097         l_api_name,
2098         G_PKG_NAME,
2099         'OKC_API.G_RET_STS_ERROR',
2100         x_msg_count,
2101         x_msg_data,
2102         '_PVT'
2103       );
2104     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2105       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2106       (
2107         l_api_name,
2108         G_PKG_NAME,
2109         'OKC_API.G_RET_STS_UNEXP_ERROR',
2110         x_msg_count,
2111         x_msg_data,
2112         '_PVT'
2113       );
2114     WHEN OTHERS THEN
2115       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2116       (
2117         l_api_name,
2118         G_PKG_NAME,
2119         'OTHERS',
2120         x_msg_count,
2121         x_msg_data,
2122         '_PVT'
2123       );
2124   END insert_row;
2125   ------------------------------------------
2126   -- insert_row for:OKL_RELOCATE_ASSETS_V --
2127   ------------------------------------------
2128   -- Start of comments
2129   --
2130   -- Procedure Name  : insert_row
2131   -- Description     : for OKL_RELOCATE_ASSETS_V
2132   -- Business Rules  :
2133   -- Parameters      :
2134   -- Version         : 1.0
2135   -- History         : RABHUPAT 17-DEC-2002 2667636
2136   --                 : modified for multicurrency changes
2137   -- End of comments
2138   PROCEDURE insert_row(
2139     p_api_version                  IN NUMBER,
2140     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2141     x_return_status                OUT NOCOPY VARCHAR2,
2142     x_msg_count                    OUT NOCOPY NUMBER,
2143     x_msg_data                     OUT NOCOPY VARCHAR2,
2144     p_rasv_rec                     IN rasv_rec_type,
2145     x_rasv_rec                     OUT NOCOPY rasv_rec_type) IS
2146 
2147     l_api_version                 CONSTANT NUMBER := 1;
2148     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
2149     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2150     l_rasv_rec                     rasv_rec_type;
2151     l_def_rasv_rec                 rasv_rec_type;
2152     l_ras_rec                      ras_rec_type;
2153     lx_ras_rec                     ras_rec_type;
2154     l_okl_relocate_assets_tl_rec   OklRelocateAssetsTlRecType;
2155     lx_okl_relocate_assets_tl_rec  OklRelocateAssetsTlRecType;
2156     -------------------------------
2157     -- FUNCTION fill_who_columns --
2158     -------------------------------
2159     FUNCTION fill_who_columns (
2160       p_rasv_rec	IN rasv_rec_type
2161     ) RETURN rasv_rec_type IS
2162       l_rasv_rec	rasv_rec_type := p_rasv_rec;
2163     BEGIN
2164       l_rasv_rec.CREATION_DATE := SYSDATE;
2165       l_rasv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
2166       l_rasv_rec.LAST_UPDATE_DATE := SYSDATE;
2167       l_rasv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2168       l_rasv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2169       RETURN(l_rasv_rec);
2170     END fill_who_columns;
2171     ----------------------------------------------
2172     -- Set_Attributes for:OKL_RELOCATE_ASSETS_V --
2173     ----------------------------------------------
2174     FUNCTION Set_Attributes (
2175       p_rasv_rec IN  rasv_rec_type,
2176       x_rasv_rec OUT NOCOPY rasv_rec_type
2177     ) RETURN VARCHAR2 IS
2178       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2179     BEGIN
2180       x_rasv_rec := p_rasv_rec;
2181       x_rasv_rec.OBJECT_VERSION_NUMBER := 1;
2182       x_rasv_rec.SFWT_FLAG := 'N';
2183       -- Default the ORG ID if a value is not passed
2184       IF p_rasv_rec.org_id IS NULL
2185       OR p_rasv_rec.org_id = OKC_API.G_MISS_NUM THEN
2186         x_rasv_rec.org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();
2187       END IF;
2188   -- RABHUPAT - 2667636 - Start
2189       x_rasv_rec.currency_conversion_code := OKL_AM_UTIL_PVT.get_functional_currency;
2190 
2191       IF p_rasv_rec.currency_code IS NULL
2192       OR p_rasv_rec.currency_code = OKC_API.G_MISS_CHAR THEN
2193         x_rasv_rec.currency_code := x_rasv_rec.currency_conversion_code;
2194       END IF;
2195   -- RABHUPAT- 2667636 - End
2196       RETURN(l_return_status);
2197     END Set_Attributes;
2198   BEGIN
2199     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2200                                               G_PKG_NAME,
2201                                               p_init_msg_list,
2202                                               l_api_version,
2203                                               p_api_version,
2204                                               '_PVT',
2205                                               x_return_status);
2206     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2207       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2208     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2209       RAISE OKC_API.G_EXCEPTION_ERROR;
2210     END IF;
2211     l_rasv_rec := null_out_defaults(p_rasv_rec);
2212     -- Set primary key value
2213     l_rasv_rec.ID := get_seq_id;
2214     --- Setting item attributes
2215     l_return_status := Set_Attributes(
2216       l_rasv_rec,                        -- IN
2217       l_def_rasv_rec);                   -- OUT
2218     --- If any errors happen abort API
2219     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2220       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2221     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2222       RAISE OKC_API.G_EXCEPTION_ERROR;
2223     END IF;
2224     l_def_rasv_rec := fill_who_columns(l_def_rasv_rec);
2225     --- Validate all non-missing attributes (Item Level Validation)
2226     l_return_status := Validate_Attributes(l_def_rasv_rec);
2227     --- If any errors happen abort API
2228     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2229       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2230     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2231       RAISE OKC_API.G_EXCEPTION_ERROR;
2232     END IF;
2233     l_return_status := Validate_Record(l_def_rasv_rec);
2234     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2235       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2236     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2237       RAISE OKC_API.G_EXCEPTION_ERROR;
2238     END IF;
2239     --------------------------------------
2240     -- Move VIEW record to "Child" records
2241     --------------------------------------
2242     migrate(l_def_rasv_rec, l_ras_rec);
2243     migrate(l_def_rasv_rec, l_okl_relocate_assets_tl_rec);
2244     --------------------------------------------
2245     -- Call the INSERT_ROW for each child record
2246     --------------------------------------------
2247     insert_row(
2248       p_init_msg_list,
2249       x_return_status,
2250       x_msg_count,
2251       x_msg_data,
2252       l_ras_rec,
2253       lx_ras_rec
2254     );
2255     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2256       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2257     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2258       RAISE OKC_API.G_EXCEPTION_ERROR;
2259     END IF;
2260     migrate(lx_ras_rec, l_def_rasv_rec);
2261     insert_row(
2262       p_init_msg_list,
2263       x_return_status,
2264       x_msg_count,
2265       x_msg_data,
2266       l_okl_relocate_assets_tl_rec,
2267       lx_okl_relocate_assets_tl_rec
2268     );
2269     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2270       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2271     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2272       RAISE OKC_API.G_EXCEPTION_ERROR;
2273     END IF;
2274     migrate(lx_okl_relocate_assets_tl_rec, l_def_rasv_rec);
2275     -- Set OUT values
2276     x_rasv_rec := l_def_rasv_rec;
2277     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2278   EXCEPTION
2279     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2280       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2281       (
2282         l_api_name,
2283         G_PKG_NAME,
2284         'OKC_API.G_RET_STS_ERROR',
2285         x_msg_count,
2286         x_msg_data,
2287         '_PVT'
2288       );
2289     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2290       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2291       (
2292         l_api_name,
2293         G_PKG_NAME,
2294         'OKC_API.G_RET_STS_UNEXP_ERROR',
2295         x_msg_count,
2296         x_msg_data,
2297         '_PVT'
2298       );
2299     WHEN OTHERS THEN
2300       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2301       (
2302         l_api_name,
2303         G_PKG_NAME,
2304         'OTHERS',
2305         x_msg_count,
2306         x_msg_data,
2307         '_PVT'
2308       );
2309   END insert_row;
2310   ----------------------------------------
2311   -- PL/SQL TBL insert_row for:RASV_TBL --
2312   ----------------------------------------
2313   PROCEDURE insert_row(
2314     p_api_version                  IN NUMBER,
2315     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2316     x_return_status                OUT NOCOPY VARCHAR2,
2317     x_msg_count                    OUT NOCOPY NUMBER,
2318     x_msg_data                     OUT NOCOPY VARCHAR2,
2319     p_rasv_tbl                     IN rasv_tbl_type,
2320     x_rasv_tbl                     OUT NOCOPY rasv_tbl_type) IS
2321 
2322     l_api_version                 CONSTANT NUMBER := 1;
2323     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
2324     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2325     i                              NUMBER := 0;
2326     -- Begin Post-Generation Change
2327     -- overall error status
2328     l_overall_status               VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2329     -- End Post-Generation Change
2330   BEGIN
2331     OKC_API.init_msg_list(p_init_msg_list);
2332     -- Make sure PL/SQL table has records in it before passing
2333     IF (p_rasv_tbl.COUNT > 0) THEN
2334       i := p_rasv_tbl.FIRST;
2335       LOOP
2336         insert_row (
2337           p_api_version                  => p_api_version,
2338           p_init_msg_list                => OKC_API.G_FALSE,
2339           x_return_status                => x_return_status,
2340           x_msg_count                    => x_msg_count,
2341           x_msg_data                     => x_msg_data,
2342           p_rasv_rec                     => p_rasv_tbl(i),
2343           x_rasv_rec                     => x_rasv_tbl(i));
2344         -- Begin Post-Generation Change
2345         -- store the highest degree of error
2346         IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
2347            IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
2348               l_overall_status := x_return_status;
2349            END IF;
2350         END IF;
2351         -- End Post-Generation Change
2352         EXIT WHEN (i = p_rasv_tbl.LAST);
2353         i := p_rasv_tbl.NEXT(i);
2354       END LOOP;
2355       -- Begin Post-Generation Change
2356       -- return overall status
2357       x_return_status := l_overall_status;
2358       -- End Post-Generation Change
2359     END IF;
2360   EXCEPTION
2361     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2362       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2363       (
2364         l_api_name,
2365         G_PKG_NAME,
2366         'OKC_API.G_RET_STS_ERROR',
2367         x_msg_count,
2368         x_msg_data,
2369         '_PVT'
2370       );
2371     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2372       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2373       (
2374         l_api_name,
2375         G_PKG_NAME,
2376         'OKC_API.G_RET_STS_UNEXP_ERROR',
2377         x_msg_count,
2378         x_msg_data,
2379         '_PVT'
2380       );
2381     WHEN OTHERS THEN
2382       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2383       (
2384         l_api_name,
2385         G_PKG_NAME,
2386         'OTHERS',
2387         x_msg_count,
2388         x_msg_data,
2389         '_PVT'
2390       );
2391   END insert_row;
2392 
2393   ---------------------------------------------------------------------------
2394   -- PROCEDURE lock_row
2395   ---------------------------------------------------------------------------
2396   ----------------------------------------
2397   -- lock_row for:OKL_RELOCATE_ASSETS_B --
2398   ----------------------------------------
2399   PROCEDURE lock_row(
2400     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2401     x_return_status                OUT NOCOPY VARCHAR2,
2402     x_msg_count                    OUT NOCOPY NUMBER,
2403     x_msg_data                     OUT NOCOPY VARCHAR2,
2404     p_ras_rec                      IN ras_rec_type) IS
2405 
2406     E_Resource_Busy               EXCEPTION;
2407     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2408     CURSOR lock_csr (p_ras_rec IN ras_rec_type) IS
2409     SELECT OBJECT_VERSION_NUMBER
2410       FROM OKL_RELOCATE_ASSETS_B
2411      WHERE ID = p_ras_rec.id
2412        AND OBJECT_VERSION_NUMBER = p_ras_rec.object_version_number
2413     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
2414 
2415     CURSOR  lchk_csr (p_ras_rec IN ras_rec_type) IS
2416     SELECT OBJECT_VERSION_NUMBER
2417       FROM OKL_RELOCATE_ASSETS_B
2418     WHERE ID = p_ras_rec.id;
2419     l_api_version                 CONSTANT NUMBER := 1;
2420     l_api_name                     CONSTANT VARCHAR2(30) := 'B_lock_row';
2421     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2422     l_object_version_number       OKL_RELOCATE_ASSETS_B.OBJECT_VERSION_NUMBER%TYPE;
2423     lc_object_version_number      OKL_RELOCATE_ASSETS_B.OBJECT_VERSION_NUMBER%TYPE;
2424     l_row_notfound                BOOLEAN := FALSE;
2425     lc_row_notfound               BOOLEAN := FALSE;
2426   BEGIN
2427     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2428                                               p_init_msg_list,
2429                                               '_PVT',
2430                                               x_return_status);
2431     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2432       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2433     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2434       RAISE OKC_API.G_EXCEPTION_ERROR;
2435     END IF;
2436     BEGIN
2437       OPEN lock_csr(p_ras_rec);
2438       FETCH lock_csr INTO l_object_version_number;
2439       l_row_notfound := lock_csr%NOTFOUND;
2440       CLOSE lock_csr;
2441     EXCEPTION
2442       WHEN E_Resource_Busy THEN
2443         IF (lock_csr%ISOPEN) THEN
2444           CLOSE lock_csr;
2445         END IF;
2446         OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2447         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2448     END;
2449 
2450     IF ( l_row_notfound ) THEN
2451       OPEN lchk_csr(p_ras_rec);
2452       FETCH lchk_csr INTO lc_object_version_number;
2453       lc_row_notfound := lchk_csr%NOTFOUND;
2454       CLOSE lchk_csr;
2455     END IF;
2456     IF (lc_row_notfound) THEN
2457       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2458       RAISE OKC_API.G_EXCEPTION_ERROR;
2459     ELSIF lc_object_version_number > p_ras_rec.object_version_number THEN
2460       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2461       RAISE OKC_API.G_EXCEPTION_ERROR;
2462     ELSIF lc_object_version_number <> p_ras_rec.object_version_number THEN
2463       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2464       RAISE OKC_API.G_EXCEPTION_ERROR;
2465     ELSIF lc_object_version_number = -1 THEN
2466       OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2467       RAISE OKC_API.G_EXCEPTION_ERROR;
2468     END IF;
2469     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2470   EXCEPTION
2471     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2472       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2473       (
2474         l_api_name,
2475         G_PKG_NAME,
2476         'OKC_API.G_RET_STS_ERROR',
2477         x_msg_count,
2478         x_msg_data,
2479         '_PVT'
2480       );
2481     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2482       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2483       (
2484         l_api_name,
2485         G_PKG_NAME,
2486         'OKC_API.G_RET_STS_UNEXP_ERROR',
2487         x_msg_count,
2488         x_msg_data,
2489         '_PVT'
2490       );
2491     WHEN OTHERS THEN
2492       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2493       (
2494         l_api_name,
2495         G_PKG_NAME,
2496         'OTHERS',
2497         x_msg_count,
2498         x_msg_data,
2499         '_PVT'
2500       );
2501   END lock_row;
2502   -----------------------------------------
2503   -- lock_row for:OKL_RELOCATE_ASSETS_TL --
2504   -----------------------------------------
2505   PROCEDURE lock_row(
2506     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2507     x_return_status                OUT NOCOPY VARCHAR2,
2508     x_msg_count                    OUT NOCOPY NUMBER,
2509     x_msg_data                     OUT NOCOPY VARCHAR2,
2510     p_okl_relocate_assets_tl_rec   IN OklRelocateAssetsTlRecType) IS
2511 
2512     E_Resource_Busy               EXCEPTION;
2513     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2514     CURSOR lock_csr (p_okl_relocate_assets_tl_rec IN OklRelocateAssetsTlRecType) IS
2515     SELECT *
2516       FROM OKL_RELOCATE_ASSETS_TL
2517      WHERE ID = p_okl_relocate_assets_tl_rec.id
2518     FOR UPDATE NOWAIT;
2519 
2520     l_api_version                 CONSTANT NUMBER := 1;
2521     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_lock_row';
2522     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2523     l_lock_var                    lock_csr%ROWTYPE;
2524     l_row_notfound                BOOLEAN := FALSE;
2525     lc_row_notfound               BOOLEAN := FALSE;
2526   BEGIN
2527     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2528                                               p_init_msg_list,
2529                                               '_PVT',
2530                                               x_return_status);
2531     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2532       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2533     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2534       RAISE OKC_API.G_EXCEPTION_ERROR;
2535     END IF;
2536     BEGIN
2537       OPEN lock_csr(p_okl_relocate_assets_tl_rec);
2538       FETCH lock_csr INTO l_lock_var;
2539       l_row_notfound := lock_csr%NOTFOUND;
2540       CLOSE lock_csr;
2541     EXCEPTION
2542       WHEN E_Resource_Busy THEN
2543         IF (lock_csr%ISOPEN) THEN
2544           CLOSE lock_csr;
2545         END IF;
2546         OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2547         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2548     END;
2549 
2550     IF ( l_row_notfound ) THEN
2551       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2552       RAISE OKC_API.G_EXCEPTION_ERROR;
2553     END IF;
2554     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2555   EXCEPTION
2556     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2557       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2558       (
2559         l_api_name,
2560         G_PKG_NAME,
2561         'OKC_API.G_RET_STS_ERROR',
2562         x_msg_count,
2563         x_msg_data,
2564         '_PVT'
2565       );
2566     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2567       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2568       (
2569         l_api_name,
2570         G_PKG_NAME,
2571         'OKC_API.G_RET_STS_UNEXP_ERROR',
2572         x_msg_count,
2573         x_msg_data,
2574         '_PVT'
2575       );
2576     WHEN OTHERS THEN
2577       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2578       (
2579         l_api_name,
2580         G_PKG_NAME,
2581         'OTHERS',
2582         x_msg_count,
2583         x_msg_data,
2584         '_PVT'
2585       );
2586   END lock_row;
2587   ----------------------------------------
2588   -- lock_row for:OKL_RELOCATE_ASSETS_V --
2589   ----------------------------------------
2590   PROCEDURE lock_row(
2591     p_api_version                  IN NUMBER,
2592     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2593     x_return_status                OUT NOCOPY VARCHAR2,
2594     x_msg_count                    OUT NOCOPY NUMBER,
2595     x_msg_data                     OUT NOCOPY VARCHAR2,
2596     p_rasv_rec                     IN rasv_rec_type) IS
2597 
2598     l_api_version                 CONSTANT NUMBER := 1;
2599     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
2600     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2601     l_ras_rec                      ras_rec_type;
2602     l_okl_relocate_assets_tl_rec   OklRelocateAssetsTlRecType;
2603   BEGIN
2604     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2605                                               G_PKG_NAME,
2606                                               p_init_msg_list,
2607                                               l_api_version,
2608                                               p_api_version,
2609                                               '_PVT',
2610                                               x_return_status);
2611     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2612       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2613     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2614       RAISE OKC_API.G_EXCEPTION_ERROR;
2615     END IF;
2616     --------------------------------------
2617     -- Move VIEW record to "Child" records
2618     --------------------------------------
2619     migrate(p_rasv_rec, l_ras_rec);
2620     migrate(p_rasv_rec, l_okl_relocate_assets_tl_rec);
2621     --------------------------------------------
2622     -- Call the LOCK_ROW for each child record
2623     --------------------------------------------
2624     lock_row(
2625       p_init_msg_list,
2626       x_return_status,
2627       x_msg_count,
2628       x_msg_data,
2629       l_ras_rec
2630     );
2631     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2632       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2633     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2634       RAISE OKC_API.G_EXCEPTION_ERROR;
2635     END IF;
2636     lock_row(
2637       p_init_msg_list,
2638       x_return_status,
2639       x_msg_count,
2640       x_msg_data,
2641       l_okl_relocate_assets_tl_rec
2642     );
2643     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2644       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2645     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2646       RAISE OKC_API.G_EXCEPTION_ERROR;
2647     END IF;
2648     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2649   EXCEPTION
2650     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2651       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2652       (
2653         l_api_name,
2654         G_PKG_NAME,
2655         'OKC_API.G_RET_STS_ERROR',
2656         x_msg_count,
2657         x_msg_data,
2658         '_PVT'
2659       );
2660     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2661       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2662       (
2663         l_api_name,
2664         G_PKG_NAME,
2665         'OKC_API.G_RET_STS_UNEXP_ERROR',
2666         x_msg_count,
2667         x_msg_data,
2668         '_PVT'
2669       );
2670     WHEN OTHERS THEN
2671       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2672       (
2673         l_api_name,
2674         G_PKG_NAME,
2675         'OTHERS',
2676         x_msg_count,
2677         x_msg_data,
2678         '_PVT'
2679       );
2680   END lock_row;
2681   --------------------------------------
2682   -- PL/SQL TBL lock_row for:RASV_TBL --
2683   --------------------------------------
2684   PROCEDURE lock_row(
2685     p_api_version                  IN NUMBER,
2686     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2687     x_return_status                OUT NOCOPY VARCHAR2,
2688     x_msg_count                    OUT NOCOPY NUMBER,
2689     x_msg_data                     OUT NOCOPY VARCHAR2,
2690     p_rasv_tbl                     IN rasv_tbl_type) IS
2691 
2692     l_api_version                 CONSTANT NUMBER := 1;
2693     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2694     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2695     i                              NUMBER := 0;
2696     -- Begin Post-Generation Change
2697     -- overall error status
2698     l_overall_status               VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2699     -- End Post-Generation Change
2700   BEGIN
2701     OKC_API.init_msg_list(p_init_msg_list);
2702     -- Make sure PL/SQL table has records in it before passing
2703     IF (p_rasv_tbl.COUNT > 0) THEN
2704       i := p_rasv_tbl.FIRST;
2705       LOOP
2706         lock_row (
2707           p_api_version                  => p_api_version,
2708           p_init_msg_list                => OKC_API.G_FALSE,
2709           x_return_status                => x_return_status,
2710           x_msg_count                    => x_msg_count,
2711           x_msg_data                     => x_msg_data,
2712           p_rasv_rec                     => p_rasv_tbl(i));
2713         -- Begin Post-Generation Change
2714         -- store the highest degree of error
2715         IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
2716            IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
2717               l_overall_status := x_return_status;
2718            END IF;
2719         END IF;
2720         -- End Post-Generation Change
2721         EXIT WHEN (i = p_rasv_tbl.LAST);
2722         i := p_rasv_tbl.NEXT(i);
2723       END LOOP;
2724       -- Begin Post-Generation Change
2725       -- return overall status
2726       x_return_status := l_overall_status;
2727       -- End Post-Generation Change
2728     END IF;
2729   EXCEPTION
2730     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2731       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2732       (
2733         l_api_name,
2734         G_PKG_NAME,
2735         'OKC_API.G_RET_STS_ERROR',
2736         x_msg_count,
2737         x_msg_data,
2738         '_PVT'
2739       );
2740     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2741       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2742       (
2743         l_api_name,
2744         G_PKG_NAME,
2745         'OKC_API.G_RET_STS_UNEXP_ERROR',
2746         x_msg_count,
2747         x_msg_data,
2748         '_PVT'
2749       );
2750     WHEN OTHERS THEN
2751       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2752       (
2753         l_api_name,
2754         G_PKG_NAME,
2755         'OTHERS',
2756         x_msg_count,
2757         x_msg_data,
2758         '_PVT'
2759       );
2760   END lock_row;
2761 
2762   ---------------------------------------------------------------------------
2763   -- PROCEDURE update_row
2764   ---------------------------------------------------------------------------
2765   ------------------------------------------
2766   -- update_row for:OKL_RELOCATE_ASSETS_B --
2767   ------------------------------------------
2768   -- Start of comments
2769   --
2770   -- Procedure Name  : update_row
2771   -- Description     : for OKL_RELOCATE_ASSETS_B
2772   -- Business Rules  :
2773   -- Parameters      :
2774   -- Version         : 1.0
2775   -- History         : RABHUPAT 17-DEC-2002 2667636
2776   --                 : modified for multicurrency changes
2777   -- End of comments
2778   PROCEDURE update_row(
2779     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2780     x_return_status                OUT NOCOPY VARCHAR2,
2781     x_msg_count                    OUT NOCOPY NUMBER,
2782     x_msg_data                     OUT NOCOPY VARCHAR2,
2783     p_ras_rec                      IN ras_rec_type,
2784     x_ras_rec                      OUT NOCOPY ras_rec_type) IS
2785 
2786     l_api_version                 CONSTANT NUMBER := 1;
2787     l_api_name                     CONSTANT VARCHAR2(30) := 'B_update_row';
2788     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2789     l_ras_rec                      ras_rec_type := p_ras_rec;
2790     l_def_ras_rec                  ras_rec_type;
2791     l_row_notfound                 BOOLEAN := TRUE;
2792     ----------------------------------
2793     -- FUNCTION populate_new_record --
2794     ----------------------------------
2795     FUNCTION populate_new_record (
2796       p_ras_rec	IN ras_rec_type,
2797       x_ras_rec	OUT NOCOPY ras_rec_type
2798     ) RETURN VARCHAR2 IS
2799       l_ras_rec                      ras_rec_type;
2800       l_row_notfound                 BOOLEAN := TRUE;
2801       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2802     BEGIN
2803       x_ras_rec := p_ras_rec;
2804       -- Get current database values
2805       l_ras_rec := get_rec(p_ras_rec, l_row_notfound);
2806       IF (l_row_notfound) THEN
2807         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2808       END IF;
2809       IF (x_ras_rec.id = OKC_API.G_MISS_NUM)
2810       THEN
2811         x_ras_rec.id := l_ras_rec.id;
2812       END IF;
2813       IF (x_ras_rec.ist_id = OKC_API.G_MISS_NUM)
2814       THEN
2815         x_ras_rec.ist_id := l_ras_rec.ist_id;
2816       END IF;
2817       IF (x_ras_rec.pac_id = OKC_API.G_MISS_NUM)
2818       THEN
2819         x_ras_rec.pac_id := l_ras_rec.pac_id;
2820       END IF;
2821       IF (x_ras_rec.art_id = OKC_API.G_MISS_NUM)
2822       THEN
2823         x_ras_rec.art_id := l_ras_rec.art_id;
2824       END IF;
2825       IF (x_ras_rec.object_version_number = OKC_API.G_MISS_NUM)
2826       THEN
2827         x_ras_rec.object_version_number := l_ras_rec.object_version_number;
2828       END IF;
2829       IF (x_ras_rec.date_shipping_instructions_sen = OKC_API.G_MISS_DATE)
2830       THEN
2831         x_ras_rec.date_shipping_instructions_sen := l_ras_rec.date_shipping_instructions_sen;
2832       END IF;
2833       IF (x_ras_rec.org_id = OKC_API.G_MISS_NUM)
2834       THEN
2835         x_ras_rec.org_id := l_ras_rec.org_id;
2836       END IF;
2837       IF (x_ras_rec.request_id = OKC_API.G_MISS_NUM)
2838       THEN
2839         x_ras_rec.request_id := l_ras_rec.request_id;
2840       END IF;
2841       IF (x_ras_rec.program_application_id = OKC_API.G_MISS_NUM)
2842       THEN
2843         x_ras_rec.program_application_id := l_ras_rec.program_application_id;
2844       END IF;
2845       IF (x_ras_rec.program_id = OKC_API.G_MISS_NUM)
2846       THEN
2847         x_ras_rec.program_id := l_ras_rec.program_id;
2848       END IF;
2849       IF (x_ras_rec.program_update_date = OKC_API.G_MISS_DATE)
2850       THEN
2851         x_ras_rec.program_update_date := l_ras_rec.program_update_date;
2852       END IF;
2853       IF (x_ras_rec.trans_option_accepted_yn = OKC_API.G_MISS_CHAR)
2854       THEN
2855         x_ras_rec.trans_option_accepted_yn := l_ras_rec.trans_option_accepted_yn;
2856       END IF;
2857       IF (x_ras_rec.insurance_amount = OKC_API.G_MISS_NUM)
2858       THEN
2859         x_ras_rec.insurance_amount := l_ras_rec.insurance_amount;
2860       END IF;
2861       IF (x_ras_rec.attribute_category = OKC_API.G_MISS_CHAR)
2862       THEN
2863         x_ras_rec.attribute_category := l_ras_rec.attribute_category;
2864       END IF;
2865       IF (x_ras_rec.attribute1 = OKC_API.G_MISS_CHAR)
2866       THEN
2867         x_ras_rec.attribute1 := l_ras_rec.attribute1;
2868       END IF;
2869       IF (x_ras_rec.attribute2 = OKC_API.G_MISS_CHAR)
2870       THEN
2871         x_ras_rec.attribute2 := l_ras_rec.attribute2;
2872       END IF;
2873       IF (x_ras_rec.attribute3 = OKC_API.G_MISS_CHAR)
2874       THEN
2875         x_ras_rec.attribute3 := l_ras_rec.attribute3;
2876       END IF;
2877       IF (x_ras_rec.attribute4 = OKC_API.G_MISS_CHAR)
2878       THEN
2879         x_ras_rec.attribute4 := l_ras_rec.attribute4;
2880       END IF;
2881       IF (x_ras_rec.attribute5 = OKC_API.G_MISS_CHAR)
2882       THEN
2883         x_ras_rec.attribute5 := l_ras_rec.attribute5;
2884       END IF;
2885       IF (x_ras_rec.attribute6 = OKC_API.G_MISS_CHAR)
2886       THEN
2887         x_ras_rec.attribute6 := l_ras_rec.attribute6;
2888       END IF;
2889       IF (x_ras_rec.attribute7 = OKC_API.G_MISS_CHAR)
2890       THEN
2891         x_ras_rec.attribute7 := l_ras_rec.attribute7;
2892       END IF;
2893       IF (x_ras_rec.attribute8 = OKC_API.G_MISS_CHAR)
2894       THEN
2895         x_ras_rec.attribute8 := l_ras_rec.attribute8;
2896       END IF;
2897       IF (x_ras_rec.attribute9 = OKC_API.G_MISS_CHAR)
2898       THEN
2899         x_ras_rec.attribute9 := l_ras_rec.attribute9;
2900       END IF;
2901       IF (x_ras_rec.attribute10 = OKC_API.G_MISS_CHAR)
2902       THEN
2903         x_ras_rec.attribute10 := l_ras_rec.attribute10;
2904       END IF;
2905       IF (x_ras_rec.attribute11 = OKC_API.G_MISS_CHAR)
2906       THEN
2907         x_ras_rec.attribute11 := l_ras_rec.attribute11;
2908       END IF;
2909       IF (x_ras_rec.attribute12 = OKC_API.G_MISS_CHAR)
2910       THEN
2911         x_ras_rec.attribute12 := l_ras_rec.attribute12;
2912       END IF;
2913       IF (x_ras_rec.attribute13 = OKC_API.G_MISS_CHAR)
2914       THEN
2915         x_ras_rec.attribute13 := l_ras_rec.attribute13;
2916       END IF;
2917       IF (x_ras_rec.attribute14 = OKC_API.G_MISS_CHAR)
2918       THEN
2919         x_ras_rec.attribute14 := l_ras_rec.attribute14;
2920       END IF;
2921       IF (x_ras_rec.attribute15 = OKC_API.G_MISS_CHAR)
2922       THEN
2923         x_ras_rec.attribute15 := l_ras_rec.attribute15;
2924       END IF;
2925       IF (x_ras_rec.created_by = OKC_API.G_MISS_NUM)
2926       THEN
2927         x_ras_rec.created_by := l_ras_rec.created_by;
2928       END IF;
2929       IF (x_ras_rec.creation_date = OKC_API.G_MISS_DATE)
2930       THEN
2931         x_ras_rec.creation_date := l_ras_rec.creation_date;
2932       END IF;
2933       IF (x_ras_rec.last_updated_by = OKC_API.G_MISS_NUM)
2934       THEN
2935         x_ras_rec.last_updated_by := l_ras_rec.last_updated_by;
2936       END IF;
2937       IF (x_ras_rec.last_update_date = OKC_API.G_MISS_DATE)
2938       THEN
2939         x_ras_rec.last_update_date := l_ras_rec.last_update_date;
2940       END IF;
2941       IF (x_ras_rec.last_update_login = OKC_API.G_MISS_NUM)
2942       THEN
2943         x_ras_rec.last_update_login := l_ras_rec.last_update_login;
2944       END IF;
2945   -- RABHUPAT - 2667636 - Start
2946      IF (x_ras_rec.currency_code = OKC_API.G_MISS_CHAR)
2947       THEN
2948         x_ras_rec.currency_code := l_ras_rec.currency_code;
2949       END IF;
2950       IF (x_ras_rec.currency_conversion_code = OKC_API.G_MISS_CHAR)
2951       THEN
2952         x_ras_rec.currency_conversion_code := l_ras_rec.currency_conversion_code;
2953       END IF;
2954       IF (x_ras_rec.currency_conversion_type = OKC_API.G_MISS_CHAR)
2955       THEN
2956         x_ras_rec.currency_conversion_type := l_ras_rec.currency_conversion_type;
2957       END IF;
2958       IF (x_ras_rec.currency_conversion_rate = OKC_API.G_MISS_NUM)
2959       THEN
2960         x_ras_rec.currency_conversion_rate := l_ras_rec.currency_conversion_rate;
2961       END IF;
2962       IF (x_ras_rec.currency_conversion_date = OKC_API.G_MISS_DATE)
2963       THEN
2964         x_ras_rec.currency_conversion_date := l_ras_rec.currency_conversion_date;
2965       END IF;
2966   -- RABHUPAT - 2667636 - End
2967       RETURN(l_return_status);
2968     END populate_new_record;
2969     ----------------------------------------------
2970     -- Set_Attributes for:OKL_RELOCATE_ASSETS_B --
2971     ----------------------------------------------
2972     FUNCTION Set_Attributes (
2973       p_ras_rec IN  ras_rec_type,
2974       x_ras_rec OUT NOCOPY ras_rec_type
2975     ) RETURN VARCHAR2 IS
2976       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2977     BEGIN
2978       x_ras_rec := p_ras_rec;
2979       RETURN(l_return_status);
2980     END Set_Attributes;
2981   BEGIN
2982     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2983                                               p_init_msg_list,
2984                                               '_PVT',
2985                                               x_return_status);
2986     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2987       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2988     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2989       RAISE OKC_API.G_EXCEPTION_ERROR;
2990     END IF;
2991     --- Setting item attributes
2992     l_return_status := Set_Attributes(
2993       p_ras_rec,                         -- IN
2994       l_ras_rec);                        -- OUT
2995     --- If any errors happen abort API
2996     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2997       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2998     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2999       RAISE OKC_API.G_EXCEPTION_ERROR;
3000     END IF;
3001     l_return_status := populate_new_record(l_ras_rec, l_def_ras_rec);
3002     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3003       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3004     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3005       RAISE OKC_API.G_EXCEPTION_ERROR;
3006     END IF;
3007     UPDATE  OKL_RELOCATE_ASSETS_B
3008     SET IST_ID = l_def_ras_rec.ist_id,
3009         PAC_ID = l_def_ras_rec.pac_id,
3010         ART_ID = l_def_ras_rec.art_id,
3011         OBJECT_VERSION_NUMBER = l_def_ras_rec.object_version_number,
3012         DATE_SHIPPING_INSTRUCTIONS_SEN = l_def_ras_rec.date_shipping_instructions_sen,
3013         ORG_ID = l_def_ras_rec.org_id,
3014         REQUEST_ID = l_def_ras_rec.request_id,
3015         PROGRAM_APPLICATION_ID = l_def_ras_rec.program_application_id,
3016         PROGRAM_ID = l_def_ras_rec.program_id,
3017         PROGRAM_UPDATE_DATE = l_def_ras_rec.program_update_date,
3018         TRANS_OPTION_ACCEPTED_YN = l_def_ras_rec.trans_option_accepted_yn,
3019         INSURANCE_AMOUNT = l_def_ras_rec.insurance_amount,
3020         ATTRIBUTE_CATEGORY = l_def_ras_rec.attribute_category,
3021         ATTRIBUTE1 = l_def_ras_rec.attribute1,
3022         ATTRIBUTE2 = l_def_ras_rec.attribute2,
3023         ATTRIBUTE3 = l_def_ras_rec.attribute3,
3024         ATTRIBUTE4 = l_def_ras_rec.attribute4,
3025         ATTRIBUTE5 = l_def_ras_rec.attribute5,
3026         ATTRIBUTE6 = l_def_ras_rec.attribute6,
3027         ATTRIBUTE7 = l_def_ras_rec.attribute7,
3028         ATTRIBUTE8 = l_def_ras_rec.attribute8,
3029         ATTRIBUTE9 = l_def_ras_rec.attribute9,
3030         ATTRIBUTE10 = l_def_ras_rec.attribute10,
3031         ATTRIBUTE11 = l_def_ras_rec.attribute11,
3032         ATTRIBUTE12 = l_def_ras_rec.attribute12,
3033         ATTRIBUTE13 = l_def_ras_rec.attribute13,
3034         ATTRIBUTE14 = l_def_ras_rec.attribute14,
3035         ATTRIBUTE15 = l_def_ras_rec.attribute15,
3036         CREATED_BY = l_def_ras_rec.created_by,
3037         CREATION_DATE = l_def_ras_rec.creation_date,
3038         LAST_UPDATED_BY = l_def_ras_rec.last_updated_by,
3039         LAST_UPDATE_DATE = l_def_ras_rec.last_update_date,
3040         LAST_UPDATE_LOGIN = l_def_ras_rec.last_update_login,
3041   -- RABHUPAT - 2667636 - Start
3042         CURRENCY_CODE = l_def_ras_rec.currency_code,
3043         CURRENCY_CONVERSION_CODE = l_def_ras_rec.currency_conversion_code,
3044         CURRENCY_CONVERSION_TYPE = l_def_ras_rec.currency_conversion_type,
3045         CURRENCY_CONVERSION_RATE = l_def_ras_rec.currency_conversion_rate,
3046         CURRENCY_CONVERSION_DATE = l_def_ras_rec.currency_conversion_date
3047   -- RABHUPAT - 2667636 - End
3048     WHERE ID = l_def_ras_rec.id;
3049 
3050     x_ras_rec := l_def_ras_rec;
3051     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3052   EXCEPTION
3053     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3054       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3055       (
3056         l_api_name,
3057         G_PKG_NAME,
3058         'OKC_API.G_RET_STS_ERROR',
3059         x_msg_count,
3060         x_msg_data,
3061         '_PVT'
3062       );
3063     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3064       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3065       (
3066         l_api_name,
3067         G_PKG_NAME,
3068         'OKC_API.G_RET_STS_UNEXP_ERROR',
3069         x_msg_count,
3070         x_msg_data,
3071         '_PVT'
3072       );
3073     WHEN OTHERS THEN
3074       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3075       (
3076         l_api_name,
3077         G_PKG_NAME,
3078         'OTHERS',
3079         x_msg_count,
3080         x_msg_data,
3081         '_PVT'
3082       );
3083   END update_row;
3084   -------------------------------------------
3085   -- update_row for:OKL_RELOCATE_ASSETS_TL --
3086   -------------------------------------------
3087   PROCEDURE update_row(
3088     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3089     x_return_status                OUT NOCOPY VARCHAR2,
3090     x_msg_count                    OUT NOCOPY NUMBER,
3091     x_msg_data                     OUT NOCOPY VARCHAR2,
3092     p_okl_relocate_assets_tl_rec   IN OklRelocateAssetsTlRecType,
3093     x_okl_relocate_assets_tl_rec   OUT NOCOPY OklRelocateAssetsTlRecType) IS
3094 
3095     l_api_version                 CONSTANT NUMBER := 1;
3096     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_update_row';
3097     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3098     l_okl_relocate_assets_tl_rec   OklRelocateAssetsTlRecType := p_okl_relocate_assets_tl_rec;
3099     ldefoklrelocateassetstlrec     OklRelocateAssetsTlRecType;
3100     l_row_notfound                 BOOLEAN := TRUE;
3101     ----------------------------------
3102     -- FUNCTION populate_new_record --
3103     ----------------------------------
3104     FUNCTION populate_new_record (
3105       p_okl_relocate_assets_tl_rec	IN OklRelocateAssetsTlRecType,
3106       x_okl_relocate_assets_tl_rec	OUT NOCOPY OklRelocateAssetsTlRecType
3107     ) RETURN VARCHAR2 IS
3108       l_okl_relocate_assets_tl_rec   OklRelocateAssetsTlRecType;
3109       l_row_notfound                 BOOLEAN := TRUE;
3110       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3111     BEGIN
3112       x_okl_relocate_assets_tl_rec := p_okl_relocate_assets_tl_rec;
3113       -- Get current database values
3114       l_okl_relocate_assets_tl_rec := get_rec(p_okl_relocate_assets_tl_rec, l_row_notfound);
3115       IF (l_row_notfound) THEN
3116         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3117       END IF;
3118       IF (x_okl_relocate_assets_tl_rec.id = OKC_API.G_MISS_NUM)
3119       THEN
3120         x_okl_relocate_assets_tl_rec.id := l_okl_relocate_assets_tl_rec.id;
3121       END IF;
3122       IF (x_okl_relocate_assets_tl_rec.language = OKC_API.G_MISS_CHAR)
3123       THEN
3124         x_okl_relocate_assets_tl_rec.language := l_okl_relocate_assets_tl_rec.language;
3125       END IF;
3126       IF (x_okl_relocate_assets_tl_rec.source_lang = OKC_API.G_MISS_CHAR)
3127       THEN
3128         x_okl_relocate_assets_tl_rec.source_lang := l_okl_relocate_assets_tl_rec.source_lang;
3129       END IF;
3130       IF (x_okl_relocate_assets_tl_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
3131       THEN
3132         x_okl_relocate_assets_tl_rec.sfwt_flag := l_okl_relocate_assets_tl_rec.sfwt_flag;
3133       END IF;
3134       IF (x_okl_relocate_assets_tl_rec.comments = OKC_API.G_MISS_CHAR)
3135       THEN
3136         x_okl_relocate_assets_tl_rec.comments := l_okl_relocate_assets_tl_rec.comments;
3137       END IF;
3138       IF (x_okl_relocate_assets_tl_rec.created_by = OKC_API.G_MISS_NUM)
3139       THEN
3140         x_okl_relocate_assets_tl_rec.created_by := l_okl_relocate_assets_tl_rec.created_by;
3141       END IF;
3142       IF (x_okl_relocate_assets_tl_rec.creation_date = OKC_API.G_MISS_DATE)
3143       THEN
3144         x_okl_relocate_assets_tl_rec.creation_date := l_okl_relocate_assets_tl_rec.creation_date;
3145       END IF;
3146       IF (x_okl_relocate_assets_tl_rec.last_updated_by = OKC_API.G_MISS_NUM)
3147       THEN
3148         x_okl_relocate_assets_tl_rec.last_updated_by := l_okl_relocate_assets_tl_rec.last_updated_by;
3149       END IF;
3150       IF (x_okl_relocate_assets_tl_rec.last_update_date = OKC_API.G_MISS_DATE)
3151       THEN
3152         x_okl_relocate_assets_tl_rec.last_update_date := l_okl_relocate_assets_tl_rec.last_update_date;
3153       END IF;
3154       IF (x_okl_relocate_assets_tl_rec.last_update_login = OKC_API.G_MISS_NUM)
3155       THEN
3156         x_okl_relocate_assets_tl_rec.last_update_login := l_okl_relocate_assets_tl_rec.last_update_login;
3157       END IF;
3158       RETURN(l_return_status);
3159     END populate_new_record;
3160     -----------------------------------------------
3161     -- Set_Attributes for:OKL_RELOCATE_ASSETS_TL --
3162     -----------------------------------------------
3163     FUNCTION Set_Attributes (
3164       p_okl_relocate_assets_tl_rec IN  OklRelocateAssetsTlRecType,
3165       x_okl_relocate_assets_tl_rec OUT NOCOPY OklRelocateAssetsTlRecType
3166     ) RETURN VARCHAR2 IS
3167       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3168     BEGIN
3169       x_okl_relocate_assets_tl_rec := p_okl_relocate_assets_tl_rec;
3170       x_okl_relocate_assets_tl_rec.LANGUAGE := USERENV('LANG');
3171       x_okl_relocate_assets_tl_rec.SOURCE_LANG := USERENV('LANG');
3172       RETURN(l_return_status);
3173     END Set_Attributes;
3174   BEGIN
3175     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3176                                               p_init_msg_list,
3177                                               '_PVT',
3178                                               x_return_status);
3179     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3180       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3181     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3182       RAISE OKC_API.G_EXCEPTION_ERROR;
3183     END IF;
3184     --- Setting item attributes
3185     l_return_status := Set_Attributes(
3186       p_okl_relocate_assets_tl_rec,      -- IN
3187       l_okl_relocate_assets_tl_rec);     -- OUT
3188     --- If any errors happen abort API
3189     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3190       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3191     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3192       RAISE OKC_API.G_EXCEPTION_ERROR;
3193     END IF;
3194     l_return_status := populate_new_record(l_okl_relocate_assets_tl_rec, ldefoklrelocateassetstlrec);
3195     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3196       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3197     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3198       RAISE OKC_API.G_EXCEPTION_ERROR;
3199     END IF;
3200     UPDATE  OKL_RELOCATE_ASSETS_TL
3201     SET COMMENTS = ldefoklrelocateassetstlrec.comments,
3202         SOURCE_LANG = ldefoklrelocateassetstlrec.source_lang,--Fix for bug 3637102
3203         CREATED_BY = ldefoklrelocateassetstlrec.created_by,
3204         CREATION_DATE = ldefoklrelocateassetstlrec.creation_date,
3205         LAST_UPDATED_BY = ldefoklrelocateassetstlrec.last_updated_by,
3206         LAST_UPDATE_DATE = ldefoklrelocateassetstlrec.last_update_date,
3207         LAST_UPDATE_LOGIN = ldefoklrelocateassetstlrec.last_update_login
3208     WHERE ID = ldefoklrelocateassetstlrec.id
3209         AND USERENV('LANG') in (SOURCE_LANG,LANGUAGE);--Fix for bug 3637102
3210       --AND SOURCE_LANG = USERENV('LANG');
3211 
3212     UPDATE  OKL_RELOCATE_ASSETS_TL
3213     SET SFWT_FLAG = 'Y'
3214     WHERE ID = ldefoklrelocateassetstlrec.id
3215       AND SOURCE_LANG <> USERENV('LANG');
3216 
3217     x_okl_relocate_assets_tl_rec := ldefoklrelocateassetstlrec;
3218     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3219   EXCEPTION
3220     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3221       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3222       (
3223         l_api_name,
3224         G_PKG_NAME,
3225         'OKC_API.G_RET_STS_ERROR',
3226         x_msg_count,
3227         x_msg_data,
3228         '_PVT'
3229       );
3230     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3231       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3232       (
3233         l_api_name,
3234         G_PKG_NAME,
3235         'OKC_API.G_RET_STS_UNEXP_ERROR',
3236         x_msg_count,
3237         x_msg_data,
3238         '_PVT'
3239       );
3240     WHEN OTHERS THEN
3241       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3242       (
3243         l_api_name,
3244         G_PKG_NAME,
3245         'OTHERS',
3246         x_msg_count,
3247         x_msg_data,
3248         '_PVT'
3249       );
3250   END update_row;
3251   ------------------------------------------
3252   -- update_row for:OKL_RELOCATE_ASSETS_V --
3253   ------------------------------------------
3254   -- Start of comments
3255   --
3256   -- Procedure Name  : update_row
3257   -- Description     : for OKL_RELOCATE_ASSETS_V
3258   -- Business Rules  :
3259   -- Parameters      :
3260   -- Version         : 1.0
3261   -- History         : RABHUPAT 17-DEC-2002 2667636
3262   --                 : modified for multicurrency changes
3263   -- End of comments
3264   PROCEDURE update_row(
3265     p_api_version                  IN NUMBER,
3266     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3267     x_return_status                OUT NOCOPY VARCHAR2,
3268     x_msg_count                    OUT NOCOPY NUMBER,
3269     x_msg_data                     OUT NOCOPY VARCHAR2,
3270     p_rasv_rec                     IN rasv_rec_type,
3271     x_rasv_rec                     OUT NOCOPY rasv_rec_type) IS
3272 
3273     l_api_version                 CONSTANT NUMBER := 1;
3274     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
3275     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3276     l_rasv_rec                     rasv_rec_type := p_rasv_rec;
3277     l_def_rasv_rec                 rasv_rec_type;
3278     l_okl_relocate_assets_tl_rec   OklRelocateAssetsTlRecType;
3279     lx_okl_relocate_assets_tl_rec  OklRelocateAssetsTlRecType;
3280     l_ras_rec                      ras_rec_type;
3281     lx_ras_rec                     ras_rec_type;
3282     -------------------------------
3283     -- FUNCTION fill_who_columns --
3284     -------------------------------
3285     FUNCTION fill_who_columns (
3286       p_rasv_rec	IN rasv_rec_type
3287     ) RETURN rasv_rec_type IS
3288       l_rasv_rec	rasv_rec_type := p_rasv_rec;
3289     BEGIN
3290       l_rasv_rec.LAST_UPDATE_DATE := SYSDATE;
3291       l_rasv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3292       l_rasv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3293       RETURN(l_rasv_rec);
3294     END fill_who_columns;
3295     ----------------------------------
3296     -- FUNCTION populate_new_record --
3297     ----------------------------------
3298     FUNCTION populate_new_record (
3299       p_rasv_rec	IN rasv_rec_type,
3300       x_rasv_rec	OUT NOCOPY rasv_rec_type
3301     ) RETURN VARCHAR2 IS
3302       l_rasv_rec                     rasv_rec_type;
3303       l_row_notfound                 BOOLEAN := TRUE;
3304       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3305     BEGIN
3306       x_rasv_rec := p_rasv_rec;
3307       -- Get current database values
3308       l_rasv_rec := get_rec(p_rasv_rec, l_row_notfound);
3309       IF (l_row_notfound) THEN
3310         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3311       END IF;
3312       IF (x_rasv_rec.id = OKC_API.G_MISS_NUM)
3313       THEN
3314         x_rasv_rec.id := l_rasv_rec.id;
3315       END IF;
3316       IF (x_rasv_rec.object_version_number = OKC_API.G_MISS_NUM)
3317       THEN
3318         x_rasv_rec.object_version_number := l_rasv_rec.object_version_number;
3319       END IF;
3320       IF (x_rasv_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
3321       THEN
3322         x_rasv_rec.sfwt_flag := l_rasv_rec.sfwt_flag;
3323       END IF;
3324       IF (x_rasv_rec.art_id = OKC_API.G_MISS_NUM)
3325       THEN
3326         x_rasv_rec.art_id := l_rasv_rec.art_id;
3327       END IF;
3328       IF (x_rasv_rec.pac_id = OKC_API.G_MISS_NUM)
3329       THEN
3330         x_rasv_rec.pac_id := l_rasv_rec.pac_id;
3331       END IF;
3332       IF (x_rasv_rec.ist_id = OKC_API.G_MISS_NUM)
3333       THEN
3334         x_rasv_rec.ist_id := l_rasv_rec.ist_id;
3335       END IF;
3336       IF (x_rasv_rec.date_shipping_instructions_sen = OKC_API.G_MISS_DATE)
3337       THEN
3338         x_rasv_rec.date_shipping_instructions_sen := l_rasv_rec.date_shipping_instructions_sen;
3339       END IF;
3340       IF (x_rasv_rec.comments = OKC_API.G_MISS_CHAR)
3341       THEN
3342         x_rasv_rec.comments := l_rasv_rec.comments;
3343       END IF;
3344       IF (x_rasv_rec.trans_option_accepted_yn = OKC_API.G_MISS_CHAR)
3345       THEN
3346         x_rasv_rec.trans_option_accepted_yn := l_rasv_rec.trans_option_accepted_yn;
3347       END IF;
3348       IF (x_rasv_rec.insurance_amount = OKC_API.G_MISS_NUM)
3349       THEN
3350         x_rasv_rec.insurance_amount := l_rasv_rec.insurance_amount;
3351       END IF;
3352       IF (x_rasv_rec.attribute_category = OKC_API.G_MISS_CHAR)
3353       THEN
3354         x_rasv_rec.attribute_category := l_rasv_rec.attribute_category;
3355       END IF;
3356       IF (x_rasv_rec.attribute1 = OKC_API.G_MISS_CHAR)
3357       THEN
3358         x_rasv_rec.attribute1 := l_rasv_rec.attribute1;
3359       END IF;
3360       IF (x_rasv_rec.attribute2 = OKC_API.G_MISS_CHAR)
3361       THEN
3362         x_rasv_rec.attribute2 := l_rasv_rec.attribute2;
3363       END IF;
3364       IF (x_rasv_rec.attribute3 = OKC_API.G_MISS_CHAR)
3365       THEN
3366         x_rasv_rec.attribute3 := l_rasv_rec.attribute3;
3367       END IF;
3368       IF (x_rasv_rec.attribute4 = OKC_API.G_MISS_CHAR)
3369       THEN
3370         x_rasv_rec.attribute4 := l_rasv_rec.attribute4;
3371       END IF;
3372       IF (x_rasv_rec.attribute5 = OKC_API.G_MISS_CHAR)
3373       THEN
3374         x_rasv_rec.attribute5 := l_rasv_rec.attribute5;
3375       END IF;
3376       IF (x_rasv_rec.attribute6 = OKC_API.G_MISS_CHAR)
3377       THEN
3378         x_rasv_rec.attribute6 := l_rasv_rec.attribute6;
3379       END IF;
3380       IF (x_rasv_rec.attribute7 = OKC_API.G_MISS_CHAR)
3381       THEN
3382         x_rasv_rec.attribute7 := l_rasv_rec.attribute7;
3383       END IF;
3384       IF (x_rasv_rec.attribute8 = OKC_API.G_MISS_CHAR)
3385       THEN
3386         x_rasv_rec.attribute8 := l_rasv_rec.attribute8;
3387       END IF;
3388       IF (x_rasv_rec.attribute9 = OKC_API.G_MISS_CHAR)
3389       THEN
3390         x_rasv_rec.attribute9 := l_rasv_rec.attribute9;
3391       END IF;
3392       IF (x_rasv_rec.attribute10 = OKC_API.G_MISS_CHAR)
3393       THEN
3394         x_rasv_rec.attribute10 := l_rasv_rec.attribute10;
3395       END IF;
3396       IF (x_rasv_rec.attribute11 = OKC_API.G_MISS_CHAR)
3397       THEN
3398         x_rasv_rec.attribute11 := l_rasv_rec.attribute11;
3399       END IF;
3400       IF (x_rasv_rec.attribute12 = OKC_API.G_MISS_CHAR)
3401       THEN
3402         x_rasv_rec.attribute12 := l_rasv_rec.attribute12;
3403       END IF;
3404       IF (x_rasv_rec.attribute13 = OKC_API.G_MISS_CHAR)
3405       THEN
3406         x_rasv_rec.attribute13 := l_rasv_rec.attribute13;
3407       END IF;
3408       IF (x_rasv_rec.attribute14 = OKC_API.G_MISS_CHAR)
3409       THEN
3410         x_rasv_rec.attribute14 := l_rasv_rec.attribute14;
3411       END IF;
3412       IF (x_rasv_rec.attribute15 = OKC_API.G_MISS_CHAR)
3413       THEN
3414         x_rasv_rec.attribute15 := l_rasv_rec.attribute15;
3415       END IF;
3416       IF (x_rasv_rec.org_id = OKC_API.G_MISS_NUM)
3417       THEN
3418         x_rasv_rec.org_id := l_rasv_rec.org_id;
3419       END IF;
3420       IF (x_rasv_rec.request_id = OKC_API.G_MISS_NUM)
3421       THEN
3422         x_rasv_rec.request_id := l_rasv_rec.request_id;
3423       END IF;
3424       IF (x_rasv_rec.program_application_id = OKC_API.G_MISS_NUM)
3425       THEN
3426         x_rasv_rec.program_application_id := l_rasv_rec.program_application_id;
3427       END IF;
3428       IF (x_rasv_rec.program_id = OKC_API.G_MISS_NUM)
3429       THEN
3430         x_rasv_rec.program_id := l_rasv_rec.program_id;
3431       END IF;
3432       IF (x_rasv_rec.program_update_date = OKC_API.G_MISS_DATE)
3433       THEN
3434         x_rasv_rec.program_update_date := l_rasv_rec.program_update_date;
3435       END IF;
3436       IF (x_rasv_rec.created_by = OKC_API.G_MISS_NUM)
3437       THEN
3438         x_rasv_rec.created_by := l_rasv_rec.created_by;
3439       END IF;
3440       IF (x_rasv_rec.creation_date = OKC_API.G_MISS_DATE)
3441       THEN
3442         x_rasv_rec.creation_date := l_rasv_rec.creation_date;
3443       END IF;
3444       IF (x_rasv_rec.last_updated_by = OKC_API.G_MISS_NUM)
3445       THEN
3446         x_rasv_rec.last_updated_by := l_rasv_rec.last_updated_by;
3447       END IF;
3448       IF (x_rasv_rec.last_update_login = OKC_API.G_MISS_NUM)
3449       THEN
3450         x_rasv_rec.last_update_login := l_rasv_rec.last_update_login;
3451       END IF;
3452       IF (x_rasv_rec.last_update_date = OKC_API.G_MISS_DATE)
3453       THEN
3454         x_rasv_rec.last_update_date := l_rasv_rec.last_update_date;
3455       END IF;
3456   -- RABHUPAT - 2667636 - Start
3457      IF (x_rasv_rec.currency_code = OKC_API.G_MISS_CHAR)
3458       THEN
3459         x_rasv_rec.currency_code := l_rasv_rec.currency_code;
3460       END IF;
3461       IF (x_rasv_rec.currency_conversion_code = OKC_API.G_MISS_CHAR)
3462       THEN
3463         x_rasv_rec.currency_conversion_code := l_rasv_rec.currency_conversion_code;
3464       END IF;
3465       IF (x_rasv_rec.currency_conversion_type = OKC_API.G_MISS_CHAR)
3466       THEN
3467         x_rasv_rec.currency_conversion_type := l_rasv_rec.currency_conversion_type;
3468       END IF;
3469       IF (x_rasv_rec.currency_conversion_rate = OKC_API.G_MISS_NUM)
3470       THEN
3471         x_rasv_rec.currency_conversion_rate := l_rasv_rec.currency_conversion_rate;
3472       END IF;
3473       IF (x_rasv_rec.currency_conversion_date = OKC_API.G_MISS_DATE)
3474       THEN
3475         x_rasv_rec.currency_conversion_date := l_rasv_rec.currency_conversion_date;
3476       END IF;
3477   -- RABHUPAT - 2667636 - End
3478       RETURN(l_return_status);
3479     END populate_new_record;
3480     ----------------------------------------------
3481     -- Set_Attributes for:OKL_RELOCATE_ASSETS_V --
3482     ----------------------------------------------
3483     FUNCTION Set_Attributes (
3484       p_rasv_rec IN  rasv_rec_type,
3485       x_rasv_rec OUT NOCOPY rasv_rec_type
3486     ) RETURN VARCHAR2 IS
3487       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3488     BEGIN
3489       x_rasv_rec := p_rasv_rec;
3490       x_rasv_rec.OBJECT_VERSION_NUMBER := NVL(x_rasv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
3491       RETURN(l_return_status);
3492     END Set_Attributes;
3493   BEGIN
3494     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3495                                               G_PKG_NAME,
3496                                               p_init_msg_list,
3497                                               l_api_version,
3498                                               p_api_version,
3499                                               '_PVT',
3500                                               x_return_status);
3501     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3502       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3503     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3504       RAISE OKC_API.G_EXCEPTION_ERROR;
3505     END IF;
3506     --- Setting item attributes
3507     l_return_status := Set_Attributes(
3508       p_rasv_rec,                        -- IN
3509       l_rasv_rec);                       -- OUT
3510     --- If any errors happen abort API
3511     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3512       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3513     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3514       RAISE OKC_API.G_EXCEPTION_ERROR;
3515     END IF;
3516     l_return_status := populate_new_record(l_rasv_rec, l_def_rasv_rec);
3517     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3518       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3519     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3520       RAISE OKC_API.G_EXCEPTION_ERROR;
3521     END IF;
3522     l_def_rasv_rec := fill_who_columns(l_def_rasv_rec);
3523     --- Validate all non-missing attributes (Item Level Validation)
3524     l_return_status := Validate_Attributes(l_def_rasv_rec);
3525     --- If any errors happen abort API
3526     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3527       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3528     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3529       RAISE OKC_API.G_EXCEPTION_ERROR;
3530     END IF;
3531     l_return_status := Validate_Record(l_def_rasv_rec);
3532     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3533       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3534     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3535       RAISE OKC_API.G_EXCEPTION_ERROR;
3536     END IF;
3537 
3538     --------------------------------------
3539     -- Move VIEW record to "Child" records
3540     --------------------------------------
3541     migrate(l_def_rasv_rec, l_okl_relocate_assets_tl_rec);
3542     migrate(l_def_rasv_rec, l_ras_rec);
3543     --------------------------------------------
3544     -- Call the UPDATE_ROW for each child record
3545     --------------------------------------------
3546     update_row(
3547       p_init_msg_list,
3548       x_return_status,
3549       x_msg_count,
3550       x_msg_data,
3551       l_okl_relocate_assets_tl_rec,
3552       lx_okl_relocate_assets_tl_rec
3553     );
3554     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3555       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3556     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3557       RAISE OKC_API.G_EXCEPTION_ERROR;
3558     END IF;
3559     migrate(lx_okl_relocate_assets_tl_rec, l_def_rasv_rec);
3560     update_row(
3561       p_init_msg_list,
3562       x_return_status,
3563       x_msg_count,
3564       x_msg_data,
3565       l_ras_rec,
3566       lx_ras_rec
3567     );
3568     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3569       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3570     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3571       RAISE OKC_API.G_EXCEPTION_ERROR;
3572     END IF;
3573     migrate(lx_ras_rec, l_def_rasv_rec);
3574     x_rasv_rec := l_def_rasv_rec;
3575     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3576   EXCEPTION
3577     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3578       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3579       (
3580         l_api_name,
3581         G_PKG_NAME,
3582         'OKC_API.G_RET_STS_ERROR',
3583         x_msg_count,
3584         x_msg_data,
3585         '_PVT'
3586       );
3587     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3588       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3589       (
3590         l_api_name,
3591         G_PKG_NAME,
3592         'OKC_API.G_RET_STS_UNEXP_ERROR',
3593         x_msg_count,
3594         x_msg_data,
3595         '_PVT'
3596       );
3597     WHEN OTHERS THEN
3598       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3599       (
3600         l_api_name,
3601         G_PKG_NAME,
3602         'OTHERS',
3603         x_msg_count,
3604         x_msg_data,
3605         '_PVT'
3606       );
3607   END update_row;
3608   ----------------------------------------
3609   -- PL/SQL TBL update_row for:RASV_TBL --
3610   ----------------------------------------
3611   PROCEDURE update_row(
3612     p_api_version                  IN NUMBER,
3613     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3614     x_return_status                OUT NOCOPY VARCHAR2,
3615     x_msg_count                    OUT NOCOPY NUMBER,
3616     x_msg_data                     OUT NOCOPY VARCHAR2,
3617     p_rasv_tbl                     IN rasv_tbl_type,
3618     x_rasv_tbl                     OUT NOCOPY rasv_tbl_type) IS
3619 
3620     l_api_version                 CONSTANT NUMBER := 1;
3621     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3622     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3623     i                              NUMBER := 0;
3624     -- Begin Post-Generation Change
3625     -- overall error status
3626     l_overall_status               VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3627     -- End Post-Generation Change
3628   BEGIN
3629     OKC_API.init_msg_list(p_init_msg_list);
3630     -- Make sure PL/SQL table has records in it before passing
3631     IF (p_rasv_tbl.COUNT > 0) THEN
3632       i := p_rasv_tbl.FIRST;
3633       LOOP
3634         update_row (
3635           p_api_version                  => p_api_version,
3636           p_init_msg_list                => OKC_API.G_FALSE,
3637           x_return_status                => x_return_status,
3638           x_msg_count                    => x_msg_count,
3639           x_msg_data                     => x_msg_data,
3640           p_rasv_rec                     => p_rasv_tbl(i),
3641           x_rasv_rec                     => x_rasv_tbl(i));
3642         -- Begin Post-Generation Change
3643         -- store the highest degree of error
3644         IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3645            IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3646               l_overall_status := x_return_status;
3647            END IF;
3648         END IF;
3649         -- End Post-Generation Change
3650         EXIT WHEN (i = p_rasv_tbl.LAST);
3651         i := p_rasv_tbl.NEXT(i);
3652       END LOOP;
3653       -- Begin Post-Generation Change
3654       -- return overall status
3655       x_return_status := l_overall_status;
3656       -- End Post-Generation Change
3657     END IF;
3658   EXCEPTION
3659     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3660       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3661       (
3662         l_api_name,
3663         G_PKG_NAME,
3664         'OKC_API.G_RET_STS_ERROR',
3665         x_msg_count,
3666         x_msg_data,
3667         '_PVT'
3668       );
3669     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3670       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3671       (
3672         l_api_name,
3673         G_PKG_NAME,
3674         'OKC_API.G_RET_STS_UNEXP_ERROR',
3675         x_msg_count,
3676         x_msg_data,
3677         '_PVT'
3678       );
3679     WHEN OTHERS THEN
3680       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3681       (
3682         l_api_name,
3683         G_PKG_NAME,
3684         'OTHERS',
3685         x_msg_count,
3686         x_msg_data,
3687         '_PVT'
3688       );
3689   END update_row;
3690 
3691   ---------------------------------------------------------------------------
3692   -- PROCEDURE delete_row
3693   ---------------------------------------------------------------------------
3694   ------------------------------------------
3695   -- delete_row for:OKL_RELOCATE_ASSETS_B --
3696   ------------------------------------------
3697   PROCEDURE delete_row(
3698     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3699     x_return_status                OUT NOCOPY VARCHAR2,
3700     x_msg_count                    OUT NOCOPY NUMBER,
3701     x_msg_data                     OUT NOCOPY VARCHAR2,
3702     p_ras_rec                      IN ras_rec_type) IS
3703 
3704     l_api_version                 CONSTANT NUMBER := 1;
3705     l_api_name                     CONSTANT VARCHAR2(30) := 'B_delete_row';
3706     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3707     l_ras_rec                      ras_rec_type:= p_ras_rec;
3708     l_row_notfound                 BOOLEAN := TRUE;
3709   BEGIN
3710     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3711                                               p_init_msg_list,
3712                                               '_PVT',
3713                                               x_return_status);
3714     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3715       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3716     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3717       RAISE OKC_API.G_EXCEPTION_ERROR;
3718     END IF;
3719     DELETE FROM OKL_RELOCATE_ASSETS_B
3720      WHERE ID = l_ras_rec.id;
3721 
3722     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3723   EXCEPTION
3724     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3725       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3726       (
3727         l_api_name,
3728         G_PKG_NAME,
3729         'OKC_API.G_RET_STS_ERROR',
3730         x_msg_count,
3731         x_msg_data,
3732         '_PVT'
3733       );
3734     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3735       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3736       (
3737         l_api_name,
3738         G_PKG_NAME,
3739         'OKC_API.G_RET_STS_UNEXP_ERROR',
3740         x_msg_count,
3741         x_msg_data,
3742         '_PVT'
3743       );
3744     WHEN OTHERS THEN
3745       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3746       (
3747         l_api_name,
3748         G_PKG_NAME,
3749         'OTHERS',
3750         x_msg_count,
3751         x_msg_data,
3752         '_PVT'
3753       );
3754   END delete_row;
3755   -------------------------------------------
3756   -- delete_row for:OKL_RELOCATE_ASSETS_TL --
3757   -------------------------------------------
3758   PROCEDURE delete_row(
3759     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3760     x_return_status                OUT NOCOPY VARCHAR2,
3761     x_msg_count                    OUT NOCOPY NUMBER,
3762     x_msg_data                     OUT NOCOPY VARCHAR2,
3763     p_okl_relocate_assets_tl_rec   IN OklRelocateAssetsTlRecType) IS
3764 
3765     l_api_version                 CONSTANT NUMBER := 1;
3766     l_api_name                     CONSTANT VARCHAR2(30) := 'TL_delete_row';
3767     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3768     l_okl_relocate_assets_tl_rec   OklRelocateAssetsTlRecType:= p_okl_relocate_assets_tl_rec;
3769     l_row_notfound                 BOOLEAN := TRUE;
3770     -----------------------------------------------
3771     -- Set_Attributes for:OKL_RELOCATE_ASSETS_TL --
3772     -----------------------------------------------
3773     FUNCTION Set_Attributes (
3774       p_okl_relocate_assets_tl_rec IN  OklRelocateAssetsTlRecType,
3775       x_okl_relocate_assets_tl_rec OUT NOCOPY OklRelocateAssetsTlRecType
3776     ) RETURN VARCHAR2 IS
3777       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3778     BEGIN
3779       x_okl_relocate_assets_tl_rec := p_okl_relocate_assets_tl_rec;
3780       x_okl_relocate_assets_tl_rec.LANGUAGE := USERENV('LANG');
3781       RETURN(l_return_status);
3782     END Set_Attributes;
3783   BEGIN
3784     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3785                                               p_init_msg_list,
3786                                               '_PVT',
3787                                               x_return_status);
3788     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3789       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3790     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3791       RAISE OKC_API.G_EXCEPTION_ERROR;
3792     END IF;
3793     --- Setting item attributes
3794     l_return_status := Set_Attributes(
3795       p_okl_relocate_assets_tl_rec,      -- IN
3796       l_okl_relocate_assets_tl_rec);     -- OUT
3797     --- If any errors happen abort API
3798     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3799       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3800     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3801       RAISE OKC_API.G_EXCEPTION_ERROR;
3802     END IF;
3803     DELETE FROM OKL_RELOCATE_ASSETS_TL
3804      WHERE ID = l_okl_relocate_assets_tl_rec.id;
3805 
3806     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3807   EXCEPTION
3808     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3809       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3810       (
3811         l_api_name,
3812         G_PKG_NAME,
3813         'OKC_API.G_RET_STS_ERROR',
3814         x_msg_count,
3815         x_msg_data,
3816         '_PVT'
3817       );
3818     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3819       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3820       (
3821         l_api_name,
3822         G_PKG_NAME,
3823         'OKC_API.G_RET_STS_UNEXP_ERROR',
3824         x_msg_count,
3825         x_msg_data,
3826         '_PVT'
3827       );
3828     WHEN OTHERS THEN
3829       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3830       (
3831         l_api_name,
3832         G_PKG_NAME,
3833         'OTHERS',
3834         x_msg_count,
3835         x_msg_data,
3836         '_PVT'
3837       );
3838   END delete_row;
3839   ------------------------------------------
3840   -- delete_row for:OKL_RELOCATE_ASSETS_V --
3841   ------------------------------------------
3842   PROCEDURE delete_row(
3843     p_api_version                  IN NUMBER,
3844     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3845     x_return_status                OUT NOCOPY VARCHAR2,
3846     x_msg_count                    OUT NOCOPY NUMBER,
3847     x_msg_data                     OUT NOCOPY VARCHAR2,
3848     p_rasv_rec                     IN rasv_rec_type) IS
3849 
3850     l_api_version                 CONSTANT NUMBER := 1;
3851     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
3852     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3853     l_rasv_rec                     rasv_rec_type := p_rasv_rec;
3854     l_okl_relocate_assets_tl_rec   OklRelocateAssetsTlRecType;
3855     l_ras_rec                      ras_rec_type;
3856   BEGIN
3857     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3858                                               G_PKG_NAME,
3859                                               p_init_msg_list,
3860                                               l_api_version,
3861                                               p_api_version,
3862                                               '_PVT',
3863                                               x_return_status);
3864     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3865       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3866     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3867       RAISE OKC_API.G_EXCEPTION_ERROR;
3868     END IF;
3869     --------------------------------------
3870     -- Move VIEW record to "Child" records
3871     --------------------------------------
3872     migrate(l_rasv_rec, l_okl_relocate_assets_tl_rec);
3873     migrate(l_rasv_rec, l_ras_rec);
3874     --------------------------------------------
3875     -- Call the DELETE_ROW for each child record
3876     --------------------------------------------
3877     delete_row(
3878       p_init_msg_list,
3879       x_return_status,
3880       x_msg_count,
3881       x_msg_data,
3882       l_okl_relocate_assets_tl_rec
3883     );
3884     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3885       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3886     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3887       RAISE OKC_API.G_EXCEPTION_ERROR;
3888     END IF;
3889     delete_row(
3890       p_init_msg_list,
3891       x_return_status,
3892       x_msg_count,
3893       x_msg_data,
3894       l_ras_rec
3895     );
3896     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3897       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3898     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3899       RAISE OKC_API.G_EXCEPTION_ERROR;
3900     END IF;
3901     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3902   EXCEPTION
3903     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3904       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3905       (
3906         l_api_name,
3907         G_PKG_NAME,
3908         'OKC_API.G_RET_STS_ERROR',
3909         x_msg_count,
3910         x_msg_data,
3911         '_PVT'
3912       );
3913     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3914       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3915       (
3916         l_api_name,
3917         G_PKG_NAME,
3918         'OKC_API.G_RET_STS_UNEXP_ERROR',
3919         x_msg_count,
3920         x_msg_data,
3921         '_PVT'
3922       );
3923     WHEN OTHERS THEN
3924       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3925       (
3926         l_api_name,
3927         G_PKG_NAME,
3928         'OTHERS',
3929         x_msg_count,
3930         x_msg_data,
3931         '_PVT'
3932       );
3933   END delete_row;
3934   ----------------------------------------
3935   -- PL/SQL TBL delete_row for:RASV_TBL --
3936   ----------------------------------------
3937   PROCEDURE delete_row(
3938     p_api_version                  IN NUMBER,
3939     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3940     x_return_status                OUT NOCOPY VARCHAR2,
3941     x_msg_count                    OUT NOCOPY NUMBER,
3942     x_msg_data                     OUT NOCOPY VARCHAR2,
3943     p_rasv_tbl                     IN rasv_tbl_type) IS
3944 
3945     l_api_version                 CONSTANT NUMBER := 1;
3946     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3947     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3948     i                              NUMBER := 0;
3949     -- Begin Post-Generation Change
3950     -- overall error status
3951     l_overall_status               VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3952     -- End Post-Generation Change
3953   BEGIN
3954     OKC_API.init_msg_list(p_init_msg_list);
3955     -- Make sure PL/SQL table has records in it before passing
3956     IF (p_rasv_tbl.COUNT > 0) THEN
3957       i := p_rasv_tbl.FIRST;
3958       LOOP
3959         delete_row (
3960           p_api_version                  => p_api_version,
3961           p_init_msg_list                => OKC_API.G_FALSE,
3962           x_return_status                => x_return_status,
3963           x_msg_count                    => x_msg_count,
3964           x_msg_data                     => x_msg_data,
3965           p_rasv_rec                     => p_rasv_tbl(i));
3966         -- Begin Post-Generation Change
3967         -- store the highest degree of error
3968         IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
3969            IF l_overall_status <> OKC_API.G_RET_STS_UNEXP_ERROR THEN
3970               l_overall_status := x_return_status;
3971            END IF;
3972         END IF;
3973         -- End Post-Generation Change
3974         EXIT WHEN (i = p_rasv_tbl.LAST);
3975         i := p_rasv_tbl.NEXT(i);
3976       END LOOP;
3977       -- Begin Post-Generation Change
3978       -- return overall status
3979       x_return_status := l_overall_status;
3980       -- End Post-Generation Change
3981     END IF;
3982   EXCEPTION
3983     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3984       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3985       (
3986         l_api_name,
3987         G_PKG_NAME,
3988         'OKC_API.G_RET_STS_ERROR',
3989         x_msg_count,
3990         x_msg_data,
3991         '_PVT'
3992       );
3993     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3994       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3995       (
3996         l_api_name,
3997         G_PKG_NAME,
3998         'OKC_API.G_RET_STS_UNEXP_ERROR',
3999         x_msg_count,
4000         x_msg_data,
4001         '_PVT'
4002       );
4003     WHEN OTHERS THEN
4004       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4005       (
4006         l_api_name,
4007         G_PKG_NAME,
4008         'OTHERS',
4009         x_msg_count,
4010         x_msg_data,
4011         '_PVT'
4012       );
4013   END delete_row;
4014 END OKL_RAS_PVT;