DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_XCR_PVT

Source


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