DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_BTC_PVT

Source


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