DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_CPN_PVT

Source


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