DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_LPO_PVT

Source


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