DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_RCA_PVT

Source


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