DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_PVN_PVT

Source


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