DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_BGH_PVT

Source


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