DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_RFC_PVT

Source


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