DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_XCA_PVT

Source


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