DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_RCT_PVT

Source


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