DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_IPY_PVT

Source


1 PACKAGE BODY OKL_IPY_PVT AS
2 /* $Header: OKLSIPYB.pls 120.12 2007/10/10 11:19:41 zrehman noship $ */
3   ---------------------------------------------------------------------------
4   -- PROCEDURE load_error_tbl
5   ---------------------------------------------------------------------------
6   PROCEDURE load_error_tbl (
7     px_error_rec                   IN OUT NOCOPY OKL_API.ERROR_REC_TYPE,
8     px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
9     j                              INTEGER := NVL(px_error_tbl.LAST, 0) + 1;
10     last_msg_idx                   INTEGER := FND_MSG_PUB.COUNT_MSG;
11     l_msg_idx                      INTEGER := FND_MSG_PUB.G_NEXT;
12   BEGIN
13     -- FND_MSG_PUB has a small error in it.  If we call FND_MSG_PUB.COUNT_AND_GET before
14     -- we call FND_MSG_PUB.GET, the variable FND_MSG_PUB uses to control the index of the
15     -- message stack gets set to 1.  This makes sense until we call FND_MSG_PUB.GET which
16     -- automatically increments the index by 1, (making it 2), however, when the GET function
17     -- attempts to pull message 2, we get a NO_DATA_FOUND exception because there isn't any
18     -- message 2.  To circumvent this problem, check the amount of messages and compensate.
19     -- Again, this error only occurs when 1 message is on the stack because COUNT_AND_GET
20     -- will only update the index variable when 1 and only 1 message is on the stack.
21     IF (last_msg_idx = 1) THEN
22       l_msg_idx := FND_MSG_PUB.G_FIRST;
23     END IF;
24     LOOP
25       fnd_msg_pub.get(
26             p_msg_index     => l_msg_idx,
27             p_encoded       => fnd_api.g_false,
28             p_data          => px_error_rec.msg_data,
29             p_msg_index_out => px_error_rec.msg_count);
30       px_error_tbl(j) := px_error_rec;
31       j := j + 1;
32     EXIT WHEN (px_error_rec.msg_count = last_msg_idx);
33     END LOOP;
34   END load_error_tbl;
35   ---------------------------------------------------------------------------
36   -- FUNCTION find_highest_exception
37   ---------------------------------------------------------------------------
38   -- Finds the highest exception (G_RET_STS_UNEXP_ERROR)
39   -- in a OKL_API.ERROR_TBL_TYPE, and returns it.
40   FUNCTION find_highest_exception(
41     p_error_tbl                    IN OKL_API.ERROR_TBL_TYPE
42   ) RETURN VARCHAR2 IS
43     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
44     i                              INTEGER := 1;
45   BEGIN
46     IF (p_error_tbl.COUNT > 0) THEN
47       i := p_error_tbl.FIRST;
48       LOOP
49         IF (p_error_tbl(i).error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
50           IF (l_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
51             l_return_status := p_error_tbl(i).error_type;
52           END IF;
53         END IF;
54         EXIT WHEN (i = p_error_tbl.LAST);
55         i := p_error_tbl.NEXT(i);
56       END LOOP;
57     END IF;
58     RETURN(l_return_status);
59   END find_highest_exception;
60   ---------------------------------------------------------------------------
61   -- FUNCTION get_seq_id
62   ---------------------------------------------------------------------------
63   FUNCTION get_seq_id RETURN NUMBER IS
64   BEGIN
65     RETURN(okc_p_util.raw_to_number(sys_guid()));
66   END get_seq_id;
67   ---------------------------------------------------------------------------
68   -- PROCEDURE qc
69   ---------------------------------------------------------------------------
70   PROCEDURE qc IS
71   BEGIN
72     null;
73   END qc;
74   ---------------------------------------------------------------------------
75   -- PROCEDURE change_version
76   ---------------------------------------------------------------------------
77   PROCEDURE change_version IS
78   BEGIN
79     null;
80   END change_version;
81   ---------------------------------------------------------------------------
82   -- PROCEDURE api_copy
83   ---------------------------------------------------------------------------
84   PROCEDURE api_copy IS
85   BEGIN
86     null;
87   END api_copy;
88   ---------------------------------------------------------------------------
89   -- PROCEDURE add_language
90   ---------------------------------------------------------------------------
91   PROCEDURE add_language IS
92   BEGIN
93     DELETE FROM OKL_INS_POLICIES_TL T
94      WHERE NOT EXISTS (
95         SELECT NULL
96           FROM OKL_INS_POLICIES_ALL_B  B
97          WHERE B.ID =T.ID
98         );
99     UPDATE OKL_INS_POLICIES_TL T SET(
100         DESCRIPTION,
101         ENDORSEMENT,
102         COMMENTS,
103         CANCELLATION_COMMENT) = (SELECT
104                                   B.DESCRIPTION,
105                                   B.ENDORSEMENT,
106                                   B.COMMENTS,
107                                   B.CANCELLATION_COMMENT
108                                 FROM OKL_INS_POLICIES_TL B
109                                WHERE B.ID = T.ID
110                                AND B.LANGUAGE = T.SOURCE_LANG)
111       WHERE ( T.ID, T.LANGUAGE)
112           IN (SELECT
113                   SUBT.ID
114                   ,SUBT.LANGUAGE
115                 FROM OKL_INS_POLICIES_TL SUBB, OKL_INS_POLICIES_TL SUBT
116                WHERE SUBB.ID = SUBT.ID
117                AND SUBB.LANGUAGE = SUBT.LANGUAGE
118                  AND (SUBB.DESCRIPTION <> SUBT.DESCRIPTION
119                       OR SUBB.ENDORSEMENT <> SUBT.ENDORSEMENT
120                       OR SUBB.COMMENTS <> SUBT.COMMENTS
121                       OR SUBB.CANCELLATION_COMMENT <> SUBT.CANCELLATION_COMMENT
122                       OR (SUBB.LANGUAGE IS NOT NULL AND SUBT.LANGUAGE IS NULL)
123                       OR (SUBB.DESCRIPTION IS NULL AND SUBT.DESCRIPTION IS NOT NULL)
124                       OR (SUBB.ENDORSEMENT IS NULL AND SUBT.ENDORSEMENT IS NOT NULL)
125                       OR (SUBB.COMMENTS IS NULL AND SUBT.COMMENTS IS NOT NULL)
126                       OR (SUBB.CANCELLATION_COMMENT IS NULL AND SUBT.CANCELLATION_COMMENT IS NOT NULL)
127               ));
128     INSERT INTO OKL_INS_POLICIES_TL (
129         ID,
130         LANGUAGE,
131         SOURCE_LANG,
132         SFWT_FLAG,
133         DESCRIPTION,
134         ENDORSEMENT,
135         COMMENTS,
136         CANCELLATION_COMMENT,
137         CREATED_BY,
138         CREATION_DATE,
139         LAST_UPDATED_BY,
140         LAST_UPDATE_DATE,
141         LAST_UPDATE_LOGIN)
142       SELECT
143             B.ID,
144             L.LANGUAGE_CODE,
145             B.SOURCE_LANG,
146             B.SFWT_FLAG,
147             B.DESCRIPTION,
148             B.ENDORSEMENT,
149             B.COMMENTS,
150             B.CANCELLATION_COMMENT,
151             B.CREATED_BY,
152             B.CREATION_DATE,
153             B.LAST_UPDATED_BY,
154             B.LAST_UPDATE_DATE,
155             B.LAST_UPDATE_LOGIN
156         FROM OKL_INS_POLICIES_TL B, FND_LANGUAGES L
157        WHERE L.INSTALLED_FLAG IN ('I', 'B')
158          AND B.LANGUAGE = USERENV('LANG')
159          AND NOT EXISTS (
160                     SELECT NULL
161                       FROM OKL_INS_POLICIES_TL T
162                      WHERE T.ID = B.ID
163                      AND  T.LANGUAGE = L.LANGUAGE_CODE
164                     );
165   END add_language;
166 
167  ---------------------------------------------------------------------------
168  -- PROCEDURE Validate_Duplicates
169  ---------------------------------------------------------------------------
170       PROCEDURE validate_thirdparty_duplicates(
171         p_ipyv_rec          IN ipyv_rec_type,
172         x_return_status 	OUT NOCOPY VARCHAR2) IS
173         l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
174         l_dummy_var VARCHAR2(1) := '?';
175         CURSOR l_ipyv_csr IS
176         SELECT 'x'
177         FROM   okl_ins_policies_v
178         WHERE  ipy_type = 'THIRD_PARTY_POLICY'
179         AND    ipy_type = p_ipyv_rec.ipy_type
180         AND    policy_number = p_ipyv_rec.policy_number
181         AND    ID <> p_ipyv_rec.id
182         AND    ISU_ID = p_ipyv_rec.isu_id;
183       BEGIN
184     	OPEN l_ipyv_csr;
185     	FETCH l_ipyv_csr INTO l_dummy_var;
186     	CLOSE l_ipyv_csr;
187     -- if l_dummy_var is still set to default, data was not found
188        IF (l_dummy_var = 'x') THEN
189           OKC_API.set_message(p_app_name 	    => G_APP_NAME,
190   	                    p_msg_name      => 'OKL_UNIQUE'
191   			    );
192           l_return_status := Okc_Api.G_RET_STS_ERROR;
193        END IF;
194         x_return_status := l_return_status;
195       EXCEPTION
196          WHEN OTHERS THEN
197           -- store SQL error message on message stack for caller
198           Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
199           -- notify caller of an UNEXPECTED error
200           x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
201     END validate_thirdparty_duplicates;
202 
203 
204   ---------------------------------------------------------------------------
205   -- FUNCTION get_rec for: OKL_INS_POLICIES_V
206   ---------------------------------------------------------------------------
207   FUNCTION get_rec (
208     p_ipyv_rec                     IN ipyv_rec_type,
209     x_no_data_found                OUT NOCOPY BOOLEAN
210   ) RETURN ipyv_rec_type IS
211     CURSOR okl_ipyv_pk_csr (p_id IN NUMBER) IS
212     SELECT
213             ID,
214             IPY_TYPE,
215             DESCRIPTION,
216             ENDORSEMENT,
217             SFWT_FLAG,
218             CANCELLATION_COMMENT,
219             COMMENTS,
220             NAME_OF_INSURED,
221             POLICY_NUMBER,
222             CALCULATED_PREMIUM,
223             PREMIUM,
224             COVERED_AMOUNT,
225             DEDUCTIBLE,
226             ADJUSTMENT,
227             PAYMENT_FREQUENCY,
228             CRX_CODE,
229             IPF_CODE,
230             ISS_CODE,
231             IPE_CODE,
232             DATE_TO,
233             DATE_FROM,
234             DATE_QUOTED,
235             DATE_PROOF_PROVIDED,
236             DATE_PROOF_REQUIRED,
237             CANCELLATION_DATE,
238             DATE_QUOTE_EXPIRY,
239             ACTIVATION_DATE,
240             QUOTE_YN,
241             ON_FILE_YN,
242             PRIVATE_LABEL_YN,
243             AGENT_YN,
244             LESSOR_INSURED_YN,
245             LESSOR_PAYEE_YN,
246             KHR_ID,
247             KLE_ID,
248             IPT_ID,
249             IPY_ID,
250             INT_ID,
251             ISU_ID,
252             INSURANCE_FACTOR,
253             FACTOR_CODE,
254             FACTOR_VALUE,
255             AGENCY_NUMBER,
256             AGENCY_SITE_ID,
257             SALES_REP_ID,
258             AGENT_SITE_ID,
259             ADJUSTED_BY_ID,
260             TERRITORY_CODE,
261             ATTRIBUTE_CATEGORY,
262             ATTRIBUTE1,
263             ATTRIBUTE2,
264             ATTRIBUTE3,
265             ATTRIBUTE4,
266             ATTRIBUTE5,
267             ATTRIBUTE6,
268             ATTRIBUTE7,
269             ATTRIBUTE8,
270             ATTRIBUTE9,
271             ATTRIBUTE10,
272             ATTRIBUTE11,
273             ATTRIBUTE12,
274             ATTRIBUTE13,
275             ATTRIBUTE14,
276             ATTRIBUTE15,
277             PROGRAM_ID,
278             ORG_ID,
279             PROGRAM_UPDATE_DATE,
280             PROGRAM_APPLICATION_ID,
281             REQUEST_ID,
282             OBJECT_VERSION_NUMBER,
283             CREATED_BY,
284             CREATION_DATE,
285             LAST_UPDATED_BY,
286             LAST_UPDATE_DATE,
287             LAST_UPDATE_LOGIN,
288 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
289             LEASE_APPLICATION_ID,
290             LEGAL_ENTITY_ID
291       FROM Okl_Ins_Policies_V
292      WHERE okl_ins_policies_v.id = p_id;
293     l_okl_ipyv_pk                  okl_ipyv_pk_csr%ROWTYPE;
294     l_ipyv_rec                     ipyv_rec_type;
295   BEGIN
296     x_no_data_found := TRUE;
297     -- Get current database values
298     OPEN okl_ipyv_pk_csr (p_ipyv_rec.id);
299     FETCH okl_ipyv_pk_csr INTO
300               l_ipyv_rec.id,
301               l_ipyv_rec.ipy_type,
302               l_ipyv_rec.description,
303               l_ipyv_rec.endorsement,
304               l_ipyv_rec.sfwt_flag,
305               l_ipyv_rec.cancellation_comment,
306               l_ipyv_rec.comments,
307               l_ipyv_rec.name_of_insured,
308               l_ipyv_rec.policy_number,
309               l_ipyv_rec.calculated_premium,
310               l_ipyv_rec.premium,
311               l_ipyv_rec.covered_amount,
312               l_ipyv_rec.deductible,
313               l_ipyv_rec.adjustment,
314               l_ipyv_rec.payment_frequency,
315               l_ipyv_rec.crx_code,
316               l_ipyv_rec.ipf_code,
317               l_ipyv_rec.iss_code,
318               l_ipyv_rec.ipe_code,
319               l_ipyv_rec.date_to,
320               l_ipyv_rec.date_from,
321               l_ipyv_rec.date_quoted,
322               l_ipyv_rec.date_proof_provided,
323               l_ipyv_rec.date_proof_required,
324               l_ipyv_rec.cancellation_date,
325               l_ipyv_rec.date_quote_expiry,
326               l_ipyv_rec.activation_date,
327               l_ipyv_rec.quote_yn,
328               l_ipyv_rec.on_file_yn,
329               l_ipyv_rec.private_label_yn,
330               l_ipyv_rec.agent_yn,
331               l_ipyv_rec.lessor_insured_yn,
332               l_ipyv_rec.lessor_payee_yn,
333               l_ipyv_rec.khr_id,
334               l_ipyv_rec.kle_id,
335               l_ipyv_rec.ipt_id,
336               l_ipyv_rec.ipy_id,
337               l_ipyv_rec.int_id,
338               l_ipyv_rec.isu_id,
339               l_ipyv_rec.insurance_factor,
340               l_ipyv_rec.factor_code,
341               l_ipyv_rec.factor_value,
342               l_ipyv_rec.agency_number,
343               l_ipyv_rec.agency_site_id,
344               l_ipyv_rec.sales_rep_id,
345               l_ipyv_rec.agent_site_id,
346               l_ipyv_rec.adjusted_by_id,
347               l_ipyv_rec.territory_code,
348               l_ipyv_rec.attribute_category,
349               l_ipyv_rec.attribute1,
350               l_ipyv_rec.attribute2,
351               l_ipyv_rec.attribute3,
352               l_ipyv_rec.attribute4,
353               l_ipyv_rec.attribute5,
354               l_ipyv_rec.attribute6,
355               l_ipyv_rec.attribute7,
356               l_ipyv_rec.attribute8,
357               l_ipyv_rec.attribute9,
358               l_ipyv_rec.attribute10,
359               l_ipyv_rec.attribute11,
360               l_ipyv_rec.attribute12,
361               l_ipyv_rec.attribute13,
362               l_ipyv_rec.attribute14,
363               l_ipyv_rec.attribute15,
364               l_ipyv_rec.program_id,
365               l_ipyv_rec.org_id,
366               l_ipyv_rec.program_update_date,
367               l_ipyv_rec.program_application_id,
368               l_ipyv_rec.request_id,
369               l_ipyv_rec.object_version_number,
370               l_ipyv_rec.created_by,
371               l_ipyv_rec.creation_date,
372               l_ipyv_rec.last_updated_by,
373               l_ipyv_rec.last_update_date,
374               l_ipyv_rec.last_update_login,
375 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
376               l_ipyv_rec.lease_application_id,
377               l_ipyv_rec.legal_entity_id;
378     x_no_data_found := okl_ipyv_pk_csr%NOTFOUND;
379     CLOSE okl_ipyv_pk_csr;
380     RETURN(l_ipyv_rec);
381   END get_rec;
382   ------------------------------------------------------------------
383   -- This version of get_rec sets error messages if no data found --
384   ------------------------------------------------------------------
385   FUNCTION get_rec (
386     p_ipyv_rec                     IN ipyv_rec_type,
387     x_return_status                OUT NOCOPY VARCHAR2
388   ) RETURN ipyv_rec_type IS
389     l_ipyv_rec                     ipyv_rec_type;
390     l_row_notfound                 BOOLEAN := TRUE;
391   BEGIN
392     x_return_status := OKC_API.G_RET_STS_SUCCESS;
393     l_ipyv_rec := get_rec(p_ipyv_rec, l_row_notfound);
394     IF (l_row_notfound) THEN
395       OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
396       x_return_status := OKC_API.G_RET_STS_ERROR;
397     END IF;
398     RETURN(l_ipyv_rec);
399   END get_rec;
400   -----------------------------------------------------------
401   -- So we don't have to pass an "l_row_notfound" variable --
402   -----------------------------------------------------------
403   FUNCTION get_rec (
404     p_ipyv_rec                     IN ipyv_rec_type
405   ) RETURN ipyv_rec_type IS
406     l_row_not_found                BOOLEAN := TRUE;
407   BEGIN
408     RETURN(get_rec(p_ipyv_rec, l_row_not_found));
409   END get_rec;
410   ---------------------------------------------------------------------------
411   -- FUNCTION get_rec for: OKL_INS_POLICIES_B
412   ---------------------------------------------------------------------------
413   FUNCTION get_rec (
414     p_ipy_rec                      IN ipy_rec_type,
415     x_no_data_found                OUT NOCOPY BOOLEAN
416   ) RETURN ipy_rec_type IS
417     CURSOR ipy_pk_csr (p_id IN NUMBER) IS
418     SELECT
419             ID,
420             IPY_TYPE,
421             NAME_OF_INSURED,
422             POLICY_NUMBER,
423             INSURANCE_FACTOR,
424             FACTOR_CODE,
425             CALCULATED_PREMIUM,
426             PREMIUM,
427             COVERED_AMOUNT,
428             DEDUCTIBLE,
429             ADJUSTMENT,
430             PAYMENT_FREQUENCY,
431             CRX_CODE,
432             IPF_CODE,
433             ISS_CODE,
434             IPE_CODE,
435             DATE_TO,
436             DATE_FROM,
437             DATE_QUOTED,
438             DATE_PROOF_PROVIDED,
439             DATE_PROOF_REQUIRED,
440             CANCELLATION_DATE,
441             DATE_QUOTE_EXPIRY,
442             ACTIVATION_DATE,
443             QUOTE_YN,
444             ON_FILE_YN,
445             PRIVATE_LABEL_YN,
446             AGENT_YN,
447             LESSOR_INSURED_YN,
448             LESSOR_PAYEE_YN,
449             KHR_ID,
450             KLE_ID,
451             IPT_ID,
452             IPY_ID,
453             INT_ID,
454             ISU_ID,
455             FACTOR_VALUE,
456             AGENCY_NUMBER,
457             AGENCY_SITE_ID,
458             SALES_REP_ID,
459             AGENT_SITE_ID,
460             ADJUSTED_BY_ID,
461             TERRITORY_CODE,
462             ATTRIBUTE_CATEGORY,
463             ATTRIBUTE1,
464             ATTRIBUTE2,
465             ATTRIBUTE3,
466             ATTRIBUTE4,
467             ATTRIBUTE5,
468             ATTRIBUTE6,
469             ATTRIBUTE7,
470             ATTRIBUTE8,
471             ATTRIBUTE9,
472             ATTRIBUTE10,
473             ATTRIBUTE11,
474             ATTRIBUTE12,
475             ATTRIBUTE13,
476             ATTRIBUTE14,
477             ATTRIBUTE15,
478             PROGRAM_ID,
479             ORG_ID,
480             PROGRAM_UPDATE_DATE,
481             PROGRAM_APPLICATION_ID,
482             REQUEST_ID,
483             OBJECT_VERSION_NUMBER,
484             CREATED_BY,
485             CREATION_DATE,
486             LAST_UPDATED_BY,
487             LAST_UPDATE_DATE,
488             LAST_UPDATE_LOGIN,
489 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
490             LEASE_APPLICATION_ID,
491             LEGAL_ENTITY_ID
492       FROM Okl_Ins_Policies_B
493      WHERE okl_ins_policies_b.id = p_id;
494     l_ipy_pk                       ipy_pk_csr%ROWTYPE;
495     l_ipy_rec                      ipy_rec_type;
496   BEGIN
497     x_no_data_found := TRUE;
498     -- Get current database values
499     OPEN ipy_pk_csr (p_ipy_rec.id);
500     FETCH ipy_pk_csr INTO
501               l_ipy_rec.id,
502               l_ipy_rec.ipy_type,
503               l_ipy_rec.name_of_insured,
504               l_ipy_rec.policy_number,
505               l_ipy_rec.insurance_factor,
506               l_ipy_rec.factor_code,
507               l_ipy_rec.calculated_premium,
508               l_ipy_rec.premium,
509               l_ipy_rec.covered_amount,
510               l_ipy_rec.deductible,
511               l_ipy_rec.adjustment,
512               l_ipy_rec.payment_frequency,
513               l_ipy_rec.crx_code,
514               l_ipy_rec.ipf_code,
515               l_ipy_rec.iss_code,
516               l_ipy_rec.ipe_code,
517               l_ipy_rec.date_to,
518               l_ipy_rec.date_from,
519               l_ipy_rec.date_quoted,
520               l_ipy_rec.date_proof_provided,
521               l_ipy_rec.date_proof_required,
522               l_ipy_rec.cancellation_date,
523               l_ipy_rec.date_quote_expiry,
524               l_ipy_rec.activation_date,
525               l_ipy_rec.quote_yn,
526               l_ipy_rec.on_file_yn,
527               l_ipy_rec.private_label_yn,
528               l_ipy_rec.agent_yn,
529               l_ipy_rec.lessor_insured_yn,
530               l_ipy_rec.lessor_payee_yn,
531               l_ipy_rec.khr_id,
532               l_ipy_rec.kle_id,
533               l_ipy_rec.ipt_id,
534               l_ipy_rec.ipy_id,
535               l_ipy_rec.int_id,
536               l_ipy_rec.isu_id,
537               l_ipy_rec.factor_value,
538               l_ipy_rec.agency_number,
539               l_ipy_rec.agency_site_id,
540               l_ipy_rec.sales_rep_id,
541               l_ipy_rec.agent_site_id,
542               l_ipy_rec.adjusted_by_id,
543               l_ipy_rec.territory_code,
544               l_ipy_rec.attribute_category,
545               l_ipy_rec.attribute1,
546               l_ipy_rec.attribute2,
547               l_ipy_rec.attribute3,
548               l_ipy_rec.attribute4,
549               l_ipy_rec.attribute5,
550               l_ipy_rec.attribute6,
551               l_ipy_rec.attribute7,
552               l_ipy_rec.attribute8,
553               l_ipy_rec.attribute9,
554               l_ipy_rec.attribute10,
555               l_ipy_rec.attribute11,
556               l_ipy_rec.attribute12,
557               l_ipy_rec.attribute13,
558               l_ipy_rec.attribute14,
559               l_ipy_rec.attribute15,
560               l_ipy_rec.program_id,
561               l_ipy_rec.org_id,
562               l_ipy_rec.program_update_date,
563               l_ipy_rec.program_application_id,
564               l_ipy_rec.request_id,
565               l_ipy_rec.object_version_number,
566               l_ipy_rec.created_by,
567               l_ipy_rec.creation_date,
568               l_ipy_rec.last_updated_by,
569               l_ipy_rec.last_update_date,
570               l_ipy_rec.last_update_login,
571 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
572               l_ipy_rec.lease_application_id,
573               l_ipy_rec.legal_entity_id;
574     x_no_data_found := ipy_pk_csr%NOTFOUND;
575     CLOSE ipy_pk_csr;
576     RETURN(l_ipy_rec);
577   END get_rec;
578   ------------------------------------------------------------------
579   -- This version of get_rec sets error messages if no data found --
580   ------------------------------------------------------------------
581   FUNCTION get_rec (
582     p_ipy_rec                      IN ipy_rec_type,
583     x_return_status                OUT NOCOPY VARCHAR2
584   ) RETURN ipy_rec_type IS
585     l_ipy_rec                      ipy_rec_type;
586     l_row_notfound                 BOOLEAN := TRUE;
587   BEGIN
588     x_return_status := OKC_API.G_RET_STS_SUCCESS;
589     l_ipy_rec := get_rec(p_ipy_rec, l_row_notfound);
590     IF (l_row_notfound) THEN
591       OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
592       x_return_status := OKC_API.G_RET_STS_ERROR;
593     END IF;
594     RETURN(l_ipy_rec);
595   END get_rec;
596   -----------------------------------------------------------
597   -- So we don't have to pass an "l_row_notfound" variable --
598   -----------------------------------------------------------
599   FUNCTION get_rec (
600     p_ipy_rec                      IN ipy_rec_type
601   ) RETURN ipy_rec_type IS
602     l_row_not_found                BOOLEAN := TRUE;
603   BEGIN
604     RETURN(get_rec(p_ipy_rec, l_row_not_found));
605   END get_rec;
606   ---------------------------------------------------------------------------
607   -- FUNCTION get_rec for: OKL_INS_POLICIES_TL
608   ---------------------------------------------------------------------------
609   FUNCTION get_rec (
610     p_okl_ins_policies_tl_rec      IN okl_ins_policies_tl_rec_type,
611     x_no_data_found                OUT NOCOPY BOOLEAN
612   ) RETURN okl_ins_policies_tl_rec_type IS
613     CURSOR ipy_tl_pk_csr (p_id IN NUMBER) IS
614     SELECT
615             ID,
616             LANGUAGE,
617             SOURCE_LANG,
618             SFWT_FLAG,
619             DESCRIPTION,
620             ENDORSEMENT,
621             COMMENTS,
622             CANCELLATION_COMMENT,
623             CREATED_BY,
624             CREATION_DATE,
625             LAST_UPDATED_BY,
626             LAST_UPDATE_DATE,
627             LAST_UPDATE_LOGIN
628       FROM Okl_Ins_Policies_Tl
629      WHERE okl_ins_policies_tl.id = p_id;
630     l_ipy_tl_pk                    ipy_tl_pk_csr%ROWTYPE;
631     l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type;
632   BEGIN
633     x_no_data_found := TRUE;
634     -- Get current database values
635     OPEN ipy_tl_pk_csr (p_okl_ins_policies_tl_rec.id);
636     FETCH ipy_tl_pk_csr INTO
637               l_okl_ins_policies_tl_rec.id,
638               l_okl_ins_policies_tl_rec.language,
639               l_okl_ins_policies_tl_rec.source_lang,
640               l_okl_ins_policies_tl_rec.sfwt_flag,
641               l_okl_ins_policies_tl_rec.description,
642               l_okl_ins_policies_tl_rec.endorsement,
643               l_okl_ins_policies_tl_rec.comments,
644               l_okl_ins_policies_tl_rec.cancellation_comment,
645               l_okl_ins_policies_tl_rec.created_by,
646               l_okl_ins_policies_tl_rec.creation_date,
647               l_okl_ins_policies_tl_rec.last_updated_by,
648               l_okl_ins_policies_tl_rec.last_update_date,
649               l_okl_ins_policies_tl_rec.last_update_login;
650     x_no_data_found := ipy_tl_pk_csr%NOTFOUND;
651     CLOSE ipy_tl_pk_csr;
652     RETURN(l_okl_ins_policies_tl_rec);
653   END get_rec;
654   ------------------------------------------------------------------
655   -- This version of get_rec sets error messages if no data found --
656   ------------------------------------------------------------------
657   FUNCTION get_rec (
658     p_okl_ins_policies_tl_rec      IN okl_ins_policies_tl_rec_type,
659     x_return_status                OUT NOCOPY VARCHAR2
660   ) RETURN okl_ins_policies_tl_rec_type IS
661     l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type;
662     l_row_notfound                 BOOLEAN := TRUE;
663   BEGIN
664     x_return_status := OKC_API.G_RET_STS_SUCCESS;
665     l_okl_ins_policies_tl_rec := get_rec(p_okl_ins_policies_tl_rec, l_row_notfound);
666     IF (l_row_notfound) THEN
667       OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
668       x_return_status := OKC_API.G_RET_STS_ERROR;
669     END IF;
670     RETURN(l_okl_ins_policies_tl_rec);
671   END get_rec;
672   -----------------------------------------------------------
673   -- So we don't have to pass an "l_row_notfound" variable --
674   -----------------------------------------------------------
675   FUNCTION get_rec (
676     p_okl_ins_policies_tl_rec      IN okl_ins_policies_tl_rec_type
677   ) RETURN okl_ins_policies_tl_rec_type IS
678     l_row_not_found                BOOLEAN := TRUE;
679   BEGIN
680     RETURN(get_rec(p_okl_ins_policies_tl_rec, l_row_not_found));
681   END get_rec;
682   ---------------------------------------------------------------------------
683   -- FUNCTION null_out_defaults for: OKL_INS_POLICIES_V
684   ---------------------------------------------------------------------------
685   FUNCTION null_out_defaults (
686     p_ipyv_rec   IN ipyv_rec_type
687   ) RETURN ipyv_rec_type IS
688     l_ipyv_rec                     ipyv_rec_type := p_ipyv_rec;
689   BEGIN
690     IF (l_ipyv_rec.id = OKC_API.G_MISS_NUM ) THEN
691       l_ipyv_rec.id := NULL;
692     END IF;
693     IF (l_ipyv_rec.ipy_type = OKC_API.G_MISS_CHAR ) THEN
694       l_ipyv_rec.ipy_type := NULL;
695     END IF;
696     IF (l_ipyv_rec.description = OKC_API.G_MISS_CHAR ) THEN
697       l_ipyv_rec.description := NULL;
698     END IF;
699     IF (l_ipyv_rec.endorsement = OKC_API.G_MISS_CHAR ) THEN
700       l_ipyv_rec.endorsement := NULL;
701     END IF;
702     IF (l_ipyv_rec.sfwt_flag = OKC_API.G_MISS_CHAR ) THEN
703       l_ipyv_rec.sfwt_flag := NULL;
704     END IF;
705     IF (l_ipyv_rec.cancellation_comment = OKC_API.G_MISS_CHAR ) THEN
706       l_ipyv_rec.cancellation_comment := NULL;
707     END IF;
708     IF (l_ipyv_rec.comments = OKC_API.G_MISS_CHAR ) THEN
709       l_ipyv_rec.comments := NULL;
710     END IF;
711     IF (l_ipyv_rec.name_of_insured = OKC_API.G_MISS_CHAR ) THEN
712       l_ipyv_rec.name_of_insured := NULL;
713     END IF;
714     IF (l_ipyv_rec.policy_number = OKC_API.G_MISS_CHAR ) THEN
715       l_ipyv_rec.policy_number := NULL;
716     END IF;
717     IF (l_ipyv_rec.calculated_premium = OKC_API.G_MISS_NUM ) THEN
718       l_ipyv_rec.calculated_premium := NULL;
719     END IF;
720     IF (l_ipyv_rec.premium = OKC_API.G_MISS_NUM ) THEN
721       l_ipyv_rec.premium := NULL;
722     END IF;
723     IF (l_ipyv_rec.covered_amount = OKC_API.G_MISS_NUM ) THEN
724       l_ipyv_rec.covered_amount := NULL;
725     END IF;
726     IF (l_ipyv_rec.deductible = OKC_API.G_MISS_NUM ) THEN
727       l_ipyv_rec.deductible := NULL;
728     END IF;
729     IF (l_ipyv_rec.adjustment = OKC_API.G_MISS_NUM ) THEN
730       l_ipyv_rec.adjustment := NULL;
731     END IF;
732     IF (l_ipyv_rec.payment_frequency = OKC_API.G_MISS_CHAR ) THEN
733       l_ipyv_rec.payment_frequency := NULL;
734     END IF;
735     IF (l_ipyv_rec.crx_code = OKC_API.G_MISS_CHAR ) THEN
736       l_ipyv_rec.crx_code := NULL;
737     END IF;
738     IF (l_ipyv_rec.ipf_code = OKC_API.G_MISS_CHAR ) THEN
739       l_ipyv_rec.ipf_code := NULL;
740     END IF;
741     IF (l_ipyv_rec.iss_code = OKC_API.G_MISS_CHAR ) THEN
742       l_ipyv_rec.iss_code := NULL;
743     END IF;
744     IF (l_ipyv_rec.ipe_code = OKC_API.G_MISS_CHAR ) THEN
745       l_ipyv_rec.ipe_code := NULL;
746     END IF;
747     IF (l_ipyv_rec.date_to = OKC_API.G_MISS_DATE ) THEN
748       l_ipyv_rec.date_to := NULL;
749     END IF;
750     IF (l_ipyv_rec.date_from = OKC_API.G_MISS_DATE ) THEN
751       l_ipyv_rec.date_from := NULL;
752     END IF;
753     IF (l_ipyv_rec.date_quoted = OKC_API.G_MISS_DATE ) THEN
754       l_ipyv_rec.date_quoted := NULL;
755     END IF;
756     IF (l_ipyv_rec.date_proof_provided = OKC_API.G_MISS_DATE ) THEN
757       l_ipyv_rec.date_proof_provided := NULL;
758     END IF;
759     IF (l_ipyv_rec.date_proof_required = OKC_API.G_MISS_DATE ) THEN
760       l_ipyv_rec.date_proof_required := NULL;
761     END IF;
762     IF (l_ipyv_rec.cancellation_date = OKC_API.G_MISS_DATE ) THEN
763       l_ipyv_rec.cancellation_date := NULL;
764     END IF;
765     IF (l_ipyv_rec.date_quote_expiry = OKC_API.G_MISS_DATE ) THEN
766       l_ipyv_rec.date_quote_expiry := NULL;
767     END IF;
768     IF (l_ipyv_rec.activation_date = OKC_API.G_MISS_DATE ) THEN
769       l_ipyv_rec.activation_date := NULL;
770     END IF;
771     IF (l_ipyv_rec.quote_yn = OKC_API.G_MISS_CHAR ) THEN
772       l_ipyv_rec.quote_yn := NULL;
773     END IF;
774     IF (l_ipyv_rec.on_file_yn = OKC_API.G_MISS_CHAR ) THEN
775       l_ipyv_rec.on_file_yn := NULL;
776     END IF;
777     IF (l_ipyv_rec.private_label_yn = OKC_API.G_MISS_CHAR ) THEN
778       l_ipyv_rec.private_label_yn := NULL;
779     END IF;
780     IF (l_ipyv_rec.agent_yn = OKC_API.G_MISS_CHAR ) THEN
781       l_ipyv_rec.agent_yn := NULL;
782     END IF;
783     IF (l_ipyv_rec.lessor_insured_yn = OKC_API.G_MISS_CHAR ) THEN
784       l_ipyv_rec.lessor_insured_yn := NULL;
785     END IF;
786     IF (l_ipyv_rec.lessor_payee_yn = OKC_API.G_MISS_CHAR ) THEN
787       l_ipyv_rec.lessor_payee_yn := NULL;
788     END IF;
789     IF (l_ipyv_rec.khr_id = OKC_API.G_MISS_NUM ) THEN
790       l_ipyv_rec.khr_id := NULL;
791     END IF;
792     IF (l_ipyv_rec.kle_id = OKC_API.G_MISS_NUM ) THEN
793       l_ipyv_rec.kle_id := NULL;
794     END IF;
795     IF (l_ipyv_rec.ipt_id = OKC_API.G_MISS_NUM ) THEN
796       l_ipyv_rec.ipt_id := NULL;
797     END IF;
798     IF (l_ipyv_rec.ipy_id = OKC_API.G_MISS_NUM ) THEN
799       l_ipyv_rec.ipy_id := NULL;
800     END IF;
801     IF (l_ipyv_rec.int_id = OKC_API.G_MISS_NUM ) THEN
802       l_ipyv_rec.int_id := NULL;
803     END IF;
804     IF (l_ipyv_rec.isu_id = OKC_API.G_MISS_NUM ) THEN
805       l_ipyv_rec.isu_id := NULL;
806     END IF;
807     IF (l_ipyv_rec.insurance_factor = OKC_API.G_MISS_CHAR ) THEN
808       l_ipyv_rec.insurance_factor := NULL;
809     END IF;
810     IF (l_ipyv_rec.factor_code = OKC_API.G_MISS_CHAR) THEN
811               l_ipyv_rec.factor_code := NULL;
812     END IF;
813     IF (l_ipyv_rec.factor_value = OKC_API.G_MISS_NUM ) THEN
814       l_ipyv_rec.factor_value := NULL;
815     END IF;
816     IF (l_ipyv_rec.agency_number = OKC_API.G_MISS_CHAR ) THEN
817       l_ipyv_rec.agency_number := NULL;
818     END IF;
819     IF (l_ipyv_rec.agency_site_id = OKC_API.G_MISS_NUM ) THEN
820       l_ipyv_rec.agency_site_id := NULL;
821     END IF;
822     IF (l_ipyv_rec.sales_rep_id = OKC_API.G_MISS_NUM ) THEN
823       l_ipyv_rec.sales_rep_id := NULL;
824     END IF;
825     IF (l_ipyv_rec.agent_site_id = OKC_API.G_MISS_NUM ) THEN
826       l_ipyv_rec.agent_site_id := NULL;
827     END IF;
828     IF (l_ipyv_rec.adjusted_by_id = OKC_API.G_MISS_NUM ) THEN
829       l_ipyv_rec.adjusted_by_id := NULL;
830     END IF;
831     IF (l_ipyv_rec.territory_code = OKC_API.G_MISS_CHAR ) THEN
832       l_ipyv_rec.territory_code := NULL;
833     END IF;
834     IF (l_ipyv_rec.attribute_category = OKC_API.G_MISS_CHAR ) THEN
835       l_ipyv_rec.attribute_category := NULL;
836     END IF;
837     IF (l_ipyv_rec.attribute1 = OKC_API.G_MISS_CHAR ) THEN
838       l_ipyv_rec.attribute1 := NULL;
839     END IF;
840     IF (l_ipyv_rec.attribute2 = OKC_API.G_MISS_CHAR ) THEN
841       l_ipyv_rec.attribute2 := NULL;
842     END IF;
843     IF (l_ipyv_rec.attribute3 = OKC_API.G_MISS_CHAR ) THEN
844       l_ipyv_rec.attribute3 := NULL;
845     END IF;
846     IF (l_ipyv_rec.attribute4 = OKC_API.G_MISS_CHAR ) THEN
847       l_ipyv_rec.attribute4 := NULL;
848     END IF;
849     IF (l_ipyv_rec.attribute5 = OKC_API.G_MISS_CHAR ) THEN
850       l_ipyv_rec.attribute5 := NULL;
851     END IF;
852     IF (l_ipyv_rec.attribute6 = OKC_API.G_MISS_CHAR ) THEN
853       l_ipyv_rec.attribute6 := NULL;
854     END IF;
855     IF (l_ipyv_rec.attribute7 = OKC_API.G_MISS_CHAR ) THEN
856       l_ipyv_rec.attribute7 := NULL;
857     END IF;
858     IF (l_ipyv_rec.attribute8 = OKC_API.G_MISS_CHAR ) THEN
859       l_ipyv_rec.attribute8 := NULL;
860     END IF;
861     IF (l_ipyv_rec.attribute9 = OKC_API.G_MISS_CHAR ) THEN
862       l_ipyv_rec.attribute9 := NULL;
863     END IF;
864     IF (l_ipyv_rec.attribute10 = OKC_API.G_MISS_CHAR ) THEN
865       l_ipyv_rec.attribute10 := NULL;
866     END IF;
867     IF (l_ipyv_rec.attribute11 = OKC_API.G_MISS_CHAR ) THEN
868       l_ipyv_rec.attribute11 := NULL;
869     END IF;
870     IF (l_ipyv_rec.attribute12 = OKC_API.G_MISS_CHAR ) THEN
871       l_ipyv_rec.attribute12 := NULL;
872     END IF;
873     IF (l_ipyv_rec.attribute13 = OKC_API.G_MISS_CHAR ) THEN
874       l_ipyv_rec.attribute13 := NULL;
875     END IF;
876     IF (l_ipyv_rec.attribute14 = OKC_API.G_MISS_CHAR ) THEN
877       l_ipyv_rec.attribute14 := NULL;
878     END IF;
879     IF (l_ipyv_rec.attribute15 = OKC_API.G_MISS_CHAR ) THEN
880       l_ipyv_rec.attribute15 := NULL;
881     END IF;
882     IF (l_ipyv_rec.object_version_number = OKC_API.G_MISS_NUM ) THEN
883       l_ipyv_rec.object_version_number := NULL;
884     END IF;
885     IF (l_ipyv_rec.created_by = OKC_API.G_MISS_NUM ) THEN
886       l_ipyv_rec.created_by := NULL;
887     END IF;
888     IF (l_ipyv_rec.creation_date = OKC_API.G_MISS_DATE ) THEN
889       l_ipyv_rec.creation_date := NULL;
890     END IF;
891     IF (l_ipyv_rec.last_updated_by = OKC_API.G_MISS_NUM ) THEN
892       l_ipyv_rec.last_updated_by := NULL;
893     END IF;
894     IF (l_ipyv_rec.last_update_date = OKC_API.G_MISS_DATE ) THEN
895       l_ipyv_rec.last_update_date := NULL;
896     END IF;
897     IF (l_ipyv_rec.last_update_login = OKC_API.G_MISS_NUM ) THEN
898       l_ipyv_rec.last_update_login := NULL;
899     END IF;
900 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
901     IF (l_ipyv_rec.lease_application_id = OKC_API.G_MISS_NUM ) THEN
902       l_ipyv_rec.lease_application_id := NULL;
903     END IF;
904     IF (l_ipyv_rec.legal_entity_id = OKC_API.G_MISS_NUM ) THEN
905       l_ipyv_rec.legal_entity_id := NULL;
906     END IF;
907     RETURN(l_ipyv_rec);
908     RETURN(l_ipyv_rec);
909   END null_out_defaults;
910   ---------------------------------------------------------------------------
911   -- PROCEDURE Validate_Attributes
912   ---------------------------------------------------------------------------
913   ---------------------------------------------
914     -- Validate_Attributes for: ID --
915   ---------------------------------------------
916     PROCEDURE validate_id (p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2 ) IS
917       l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
918         BEGIN
919   		-- initialize return status
920   		x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
921   		-- data is required
922   		IF ( ( p_ipyv_rec.id IS NULL)  OR  (p_ipyv_rec.id = OKC_API.G_MISS_NUM)) THEN
923   			OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'ID');
924   			-- notify caller of an error
925   			x_return_status := OKC_API.G_RET_STS_ERROR;
926   		END IF;
927         EXCEPTION
928              WHEN OTHERS THEN
929                  -- store SQL error message on message stack for caller
930                  OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
931         		-- notify caller of an UNEXPECTED error
932         		x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
933      END   validate_id ;
934     -- End validate_id
935   ---------------------------------------------------------------------------
936   -- PROCEDURE validate_legal_entity_id
937   ---------------------------------------------------------------------------
938   PROCEDURE validate_legal_entity_id (p_ipyv_rec IN ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
939    l_exists                NUMBER(1);
940    le_not_found_error      EXCEPTION;
941    BEGIN
942 	x_return_status := Okl_Api.G_RET_STS_SUCCESS;
943 	IF (p_ipyv_rec.legal_entity_id IS NOT NULL) THEN
944 		l_exists := OKL_LEGAL_ENTITY_UTIL.check_le_id_exists(p_ipyv_rec.legal_entity_id);
945 	   IF(l_exists <> 1) THEN
946               Okc_Api.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'LEGAL_ENTITY_ID');
947               RAISE le_not_found_error;
948            END IF;
949 	END IF;
950    EXCEPTION
951         WHEN le_not_found_error THEN
952               x_return_status := OKC_API.G_RET_STS_ERROR;
953         WHEN OTHERS THEN
954               -- store SQL error message on message stack for caller
955               OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
956               -- notify caller of an UNEXPECTED error
957               x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
958 END validate_legal_entity_id;
959   ---------------------------------------------
960   -- Validate_Attributes for: OBJECT_VERSION_NUMBER --
961   ---------------------------------------------
962     PROCEDURE validate_object_version_number ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
963       l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
964       BEGIN
965     	-- initialize return status
966     	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
967     	-- data is required
968     	IF ( ( p_ipyv_rec.object_version_number IS NULL)  OR  (p_ipyv_rec.object_version_number = OKC_API.G_MISS_NUM)) THEN
969     		OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Object Version Number');
970     		-- notify caller of an error
971     		x_return_status := OKC_API.G_RET_STS_ERROR;
972     	END IF;
973       EXCEPTION
974       	WHEN OTHERS THEN
975           	-- store SQL error message on message stack for caller
976                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
977           	-- notify caller of an UNEXPECTED error
978           	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
979     END   validate_object_version_number ;
980     -- End validate_object_version_number
981   ---------------------------------------------
982   -- Validate_Attributes for: SFWT_FLAG --
983   ---------------------------------------------
984     PROCEDURE validate_sfwt_flag ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
985        l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
986        BEGIN
987        	-- initialize return status
988         	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
989         	-- data is required
990         	IF ( ( p_ipyv_rec.sfwt_flag IS NULL)  OR  (p_ipyv_rec.sfwt_flag = OKC_API.G_MISS_CHAR)) THEN
991         		OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Sfwt Flag');
992         		-- notify caller of an error
993         		x_return_status := OKC_API.G_RET_STS_ERROR;
994         	END IF;
995         EXCEPTION
996         	WHEN OTHERS THEN
997           	-- store SQL error message on message stack for caller
998                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
999               	-- notify caller of an UNEXPECTED error
1000               	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1001     END   validate_sfwt_flag ;
1002     -- End validate_sfwt_flag
1003   ---------------------------------------------
1004   -- Validate_Attributes for: TERRITORY_CODE --
1005   ---------------------------------------------
1006   PROCEDURE validate_territory_code( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1007           l_dummy_var                    VARCHAR2(1) :='?';
1008           l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
1009          -- select the ID  of the parent  record from the parent table
1010           CURSOR  l_terr_csr IS
1011 	  	     SELECT 'x'
1012 	  	     FROM FND_TERRITORIES_VL
1013 	     WHERE territory_code = p_ipyv_rec.territory_code;
1014            BEGIN
1015              --data is required
1016             IF (p_ipyv_rec.territory_code = OKC_API.G_MISS_CHAR) THEN
1017 	          	OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Territory Code');
1018       	  -- Notify caller of  an error
1019                l_return_status := Okc_Api.G_RET_STS_ERROR;
1020                x_return_status := l_return_status;
1021       	END IF;
1022              -- enforce foreign key
1023      			OPEN  l_terr_csr ;
1024 	          	FETCH l_terr_csr INTO l_dummy_var ;
1025 	          	CLOSE l_terr_csr ;
1026 	        -- if l_dummy_var is still set to default ,data was not found
1027                IF (l_dummy_var ='?') THEN
1028                  OKC_API.set_message(G_APP_NAME,G_NO_PARENT_RECORD,G_COL_NAME_TOKEN,'Territory Code',g_child_table_token,'OKL_INS_POLICIES_V',g_parent_table_token,'FND_TERRITORIES_VL');
1029              --notify caller of an error
1030              x_return_status := OKC_API.G_RET_STS_ERROR;
1031              END IF;
1032              EXCEPTION
1033                  WHEN OTHERS THEN
1034                   -- store SQL error  message on message stack for caller
1035                   Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
1036                   -- Notify the caller of an unexpected error
1037                   x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1038                   -- Verify  that cursor was closed
1039                   IF l_terr_csr%ISOPEN THEN
1040 		    CLOSE l_terr_csr;
1041   	          END IF;
1042       END validate_territory_code;
1043   ---------------------------------------------
1044   -- Validate_Attributes for: IPF_CODE --
1045   ---------------------------------------------
1046    PROCEDURE validate_ipf_code ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1047     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1048     l_dummy_var		VARCHAR2(1) := '?' ;
1049     l_system_date         DATE  := SYSDATE ;
1050     CURSOR  l_ipf_csr IS
1051      SELECT 'x'
1052      FROM FND_LOOKUPS
1053      WHERE LOOKUP_code = p_ipyv_rec.ipf_code
1054          AND LOOKUP_TYPE = G_FND_LOOKUP_PAYMENT_FREQ
1055          AND  l_system_date BETWEEN NVL(start_date_active,l_system_date)
1056          AND NVL(end_date_active,l_system_date);
1057          BEGIN
1058          	-- initialize return status
1059           x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1060           -- data is required
1061           IF (p_ipyv_rec.ipf_code = OKC_API.G_MISS_CHAR) THEN
1062           	OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Payment Frequency');
1063           	-- notify caller of an error
1064           	x_return_status := OKC_API.G_RET_STS_ERROR;
1065           ELSE
1066           	-- enforce foreign key
1067           	OPEN  l_ipf_csr ;
1068           	FETCH l_ipf_csr INTO l_dummy_var ;
1069           	CLOSE l_ipf_csr ;
1070           	-- still set to default means data was not found
1071           	IF ( l_dummy_var = '?' ) THEN
1072           		OKC_API.set_message(g_app_name,
1073           				G_NO_PARENT_RECORD,
1074           		  	    	g_col_name_token,
1075           		  	    	'Payment Frequency',
1076           		  	    	g_child_table_token ,
1077           		  	    	'OKL_INS_POLICIES_V' ,
1078           		  	    	g_parent_table_token ,
1079           		  	    	'FND_LOOKUPS');
1080   		  	x_return_status := OKC_API.G_RET_STS_ERROR;
1081           	END IF;
1082           END IF;
1083         EXCEPTION
1084         	WHEN OTHERS THEN
1085           	-- store SQL error message on message stack for caller
1086                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1087                 	-- notify caller of an UNEXPECTED error
1088                 	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1089                 -- verify that cursor was closed
1090   	            IF l_ipf_csr%ISOPEN THEN
1091   	      	      CLOSE l_ipf_csr;
1092   	            END IF;
1093      END   validate_ipf_code ;
1094      -- End validate_ipf_code
1095    	---------------------------------------------
1096         -- Validate_Attributes for: AGENT_SITE_ID --
1097   	---------------------------------------------
1098      PROCEDURE validate_agent_site_id ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1099       l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1100       l_dummy_var		VARCHAR2(1) := '?' ;
1101         --foriegn check for agent site id
1102       	CURSOR  l_agnt_csr IS
1103       	SELECT 'x'
1104       	FROM OKL_INS_PARTYSITES_V
1105       	WHERE site_id = p_ipyv_rec.agent_site_id ;
1106       BEGIN
1107       	-- initialize return status
1108           x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1109           IF ( p_ipyv_rec.agent_site_id = OKC_API.G_MISS_NUM) THEN
1110   			OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Agent Address');
1111   			-- notify caller of an error
1112   			x_return_status := OKC_API.G_RET_STS_ERROR;
1113          ELSE
1114  -- smoduga added as part of LLA calling create third party
1115           IF ( p_ipyv_rec.agent_site_id  IS NOT NULL) THEN
1116  --
1117           	-- enforce foreign key
1118   	        OPEN  l_agnt_csr ;
1119   		    FETCH l_agnt_csr INTO l_dummy_var ;
1120   		CLOSE l_agnt_csr ;
1121   		-- still set to default means data was not found
1122   		IF ( l_dummy_var = '?' ) THEN
1123   			OKC_API.set_message(g_app_name,
1124   						g_no_parent_record,
1125   						g_col_name_token,
1126   						'Agent Address',
1127   						g_child_table_token ,
1128   						'OKL_INS_POLICIES_V' ,
1129   						g_parent_table_token ,
1130   						'OKL_INS_PARTYSITES_V');
1131   			x_return_status := OKC_API.G_RET_STS_ERROR;
1132   		END IF;
1133           END IF;
1134         END IF;
1135       EXCEPTION
1136       	WHEN OTHERS THEN
1137           	-- store SQL error message on message stack for caller
1138                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1139                 	-- notify caller of an UNEXPECTED error
1140                 	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1141                 	-- verify that cursor was closed
1142   		  IF l_agnt_csr%ISOPEN THEN
1143   		 	CLOSE l_agnt_csr;
1144   		  END IF;
1145    END validate_agent_site_id ;
1146    ---------------------------------------------
1147    -- Validate_Attributes for: AGENCY_SITE_ID --
1148    ---------------------------------------------
1149       PROCEDURE validate_agency_site_id ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1150         l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1151         l_dummy_var		VARCHAR2(1) := '?' ;
1152         --	"WARNING : Cannot implement until OKX View OKX_xxxxxx_V defined"
1153            CURSOR  l_agncy_csr IS
1154                SELECT 'x'
1155                FROM OKL_INS_PARTYSITES_V
1156                WHERE SITE_ID = p_ipyv_rec.agency_site_id
1157                AND PARTY_ID = p_ipyv_rec.isu_id;
1158         BEGIN
1159         	-- initialize return status
1160              x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1161              -- data is required
1162              IF ( ( p_ipyv_rec.agency_site_id IS NULL)  OR  (p_ipyv_rec.agency_site_id = OKC_API.G_MISS_NUM)) THEN
1163              	OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Agency Address');
1164              	-- notify caller of an error
1165              	x_return_status := OKC_API.G_RET_STS_ERROR;
1166              ELSE
1167              	-- enforce foreign key
1168      		--	  "WARNING : Cannot implement until OKX View OKX_xxxxxx_V defined"
1169              		  OPEN   l_agncy_csr ;
1170              		     FETCH l_agncy_csr INTO l_dummy_var ;
1171              		  CLOSE l_agncy_csr ;
1172              	-- still set to default means data was not found
1173              	IF ( l_dummy_var = '?' ) THEN
1174              		OKC_API.set_message(g_app_name,
1175              				g_no_parent_record,
1176              				g_col_name_token,
1177              		  	    	'Agency Address',
1178              		  	    	g_child_table_token ,
1179              		  	    	'OKL_INS_POLICIES_V' ,
1180              		  	    	g_parent_table_token ,
1181              		  	    	'OKL_INS_PARTYSITES_V');
1182      			x_return_status := OKC_API.G_RET_STS_ERROR;
1183              	END IF;
1184              END IF;
1185          EXCEPTION
1186          	WHEN OTHERS THEN
1187              	-- store SQL error message on message stack for caller
1188                      OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1189                    	-- notify caller of an UNEXPECTED error
1190                    	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1191                    	-- verify that cursor was closed
1192      		 IF l_agncy_csr%ISOPEN THEN
1193      			CLOSE l_agncy_csr;
1194      		 END IF;
1195      END   validate_agency_site_id ;
1196     -- End validate_agency_site_id
1197    ---------------------------------------------
1198    -- Validate_Attributes for: INT_ID --
1199    ---------------------------------------------
1200         PROCEDURE validate_int_id ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1201          l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1202          l_dummy_var		VARCHAR2(1) := '?' ;
1203          	CURSOR  l_int_csr IS
1204          	SELECT 'x' --Bug:3825159
1205          	FROM  HZ_PARTIES PRT
1206         	WHERE PRT.CATEGORY_CODE = 'INSURANCE_AGENT'
1207                 AND PRT.party_id = p_ipyv_rec.int_id ;
1208          BEGIN
1209          	-- initialize return status
1210                 x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1211              IF ( p_ipyv_rec.int_id = OKC_API.G_MISS_NUM) THEN
1212           	OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Insurance Agent');
1213           	-- notify caller of an error
1214           	x_return_status := OKC_API.G_RET_STS_ERROR;
1215           ELSE
1216  -- smoduga added as part of LLA calling create third party
1217              IF ( p_ipyv_rec.int_id IS NOT NULL ) THEN
1218  --
1219              	-- enforce foreign key
1220      	        OPEN  l_int_csr ;
1221      		    FETCH l_int_csr INTO l_dummy_var ;
1222      		    CLOSE l_int_csr ;
1223      		-- still set to default means data was not found
1224      		IF ( l_dummy_var = '?' ) THEN
1225      			OKC_API.set_message(g_app_name,
1226      						g_no_parent_record,
1227      						g_col_name_token,
1228      						'Insurance Agent',
1229      						g_child_table_token ,
1230      						'OKL_INS_POLICIES_V' ,
1231      						g_parent_table_token ,
1232      						'HZ_PARTIES'); --Bug:3825159
1233      			x_return_status := OKC_API.G_RET_STS_ERROR;
1234      		END IF;
1235               END IF;
1236           END IF;
1237          EXCEPTION
1238          	WHEN OTHERS THEN
1239              	-- store SQL error message on message stack for caller
1240                      OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1241                    	-- notify caller of an UNEXPECTED error
1242                    	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1243                    	-- verify that cursor was closed
1244      		  IF l_int_csr%ISOPEN THEN
1245      		 	CLOSE l_int_csr;
1246      		  END IF;
1247       END validate_int_id ;
1248    -- End validate_int_id
1249    ---------------------------------------------
1250    -- Validate_Attributes for: ISU_ID --
1251    ---------------------------------------------
1252    PROCEDURE validate_isu_id ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1253      l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1254      l_dummy_var		VARCHAR2(1) := '?' ;
1255      --	"WARNING : Cannot implement until OKX View OKX_xxxxxx_V defined"
1256         CURSOR  l_isu_csr IS
1257             SELECT 'x' --Bug:3825159
1258             FROM HZ_PARTIES PRT
1259             WHERE PRT.CATEGORY_CODE = 'INSURER'
1260             AND   PRT.PARTY_ID = p_ipyv_rec.isu_id	;
1261         CURSOR  l_isu_csr1 IS
1262             SELECT 'x'
1263             FROM OKX_INS_PROVIDER_V
1264             WHERE PARTY_ID = p_ipyv_rec.isu_id	;
1265      BEGIN
1266      	-- initialize return status
1267           x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1268           -- data is required
1269           IF ( ( p_ipyv_rec.isu_id IS NULL)  OR  (p_ipyv_rec.isu_id = OKC_API.G_MISS_NUM)) THEN
1270           	OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Insurance Provider');
1271           	-- notify caller of an error
1272           	x_return_status := OKC_API.G_RET_STS_ERROR;
1273           ELSE
1274           	-- enforce foreign key
1275   		--	  "WARNING : Cannot implement until OKX View OKX_xxxxxx_V defined"
1276           		  OPEN   l_isu_csr ;
1277           		     FETCH l_isu_csr INTO l_dummy_var ;
1278           		     IF  l_isu_csr%NOTFOUND THEN
1279           		       OPEN   l_isu_csr1 ;
1280 			         FETCH l_isu_csr1 INTO l_dummy_var ;
1281           		       CLOSE l_isu_csr1 ;
1282           		     END IF;
1283           		  CLOSE l_isu_csr ;
1284           	-- still set to default means data was not found
1285           	IF ( l_dummy_var = '?' ) THEN
1286           		OKC_API.set_message(g_app_name,
1287           				g_no_parent_record,
1288           				g_col_name_token,
1289           		  	    	'Insurance Provider',
1290           		  	    	g_child_table_token ,
1291           		  	    	'OKL_INS_POLICIES_V' ,
1292           		  	    	g_parent_table_token ,
1293           		  	    	'HZ_PARTIES'); --Bug:3825159
1294   			x_return_status := OKC_API.G_RET_STS_ERROR;
1295           	END IF;
1296           END IF;
1297       EXCEPTION
1298       	WHEN OTHERS THEN
1299           	-- store SQL error message on message stack for caller
1300                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1301                 	-- notify caller of an UNEXPECTED error
1302                 	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1303                 	-- verify that cursor was closed
1304   		 IF l_isu_csr%ISOPEN THEN
1305   			CLOSE l_isu_csr;
1306   		 END IF;
1307                 	-- verify that cursor was closed
1308   		 IF l_isu_csr1%ISOPEN THEN
1309   			CLOSE l_isu_csr1;
1310   		 END IF;
1311   END   validate_isu_id ;
1312      -- End validate_isu_code
1313   ---------------------------------------------
1314   -- Validate_Attributes for: IPT_ID --
1315   ---------------------------------------------
1316   PROCEDURE validate_ipt_id ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1317      l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1318      l_dummy_var		VARCHAR2(1) := '?' ;
1319      CURSOR  l_ipt_csr IS
1320       SELECT 'x'
1321       FROM OKL_INS_PRODUCTS_V
1322       WHERE ID = p_ipyv_rec.ipt_id	;
1323       BEGIN
1324       	-- initialize return status
1325           x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1326           -- data is required
1327           IF ( ( p_ipyv_rec.ipt_id IS NULL)  OR  (p_ipyv_rec.ipt_id = OKC_API.G_MISS_NUM)) THEN
1328           	OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Insurance Product');
1329             	-- notify caller of an error
1330             	x_return_status := OKC_API.G_RET_STS_ERROR;
1331           ELSE
1332           	-- enforce foreign key
1333             	OPEN   l_ipt_csr ;
1334             	FETCH l_ipt_csr INTO l_dummy_var ;
1335             	CLOSE l_ipt_csr ;
1336             	-- still set to default means data was not found
1337             	IF ( l_dummy_var = '?' ) THEN
1338             		OKC_API.set_message(g_app_name,
1339   						g_no_parent_record,
1340   						g_col_name_token,
1341   						'Insurance Product',
1342   						g_child_table_token ,
1343   						'OKL_INS_POLICIES_V' ,
1344   						g_parent_table_token ,
1345   						'OKL_INS_PRODUCTS_V');
1346   			x_return_status := OKC_API.G_RET_STS_ERROR;
1347   		END IF;
1348   	END IF;
1349       EXCEPTION
1350       	WHEN OTHERS THEN
1351           	-- store SQL error message on message stack for caller
1352                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1353                   -- notify caller of an UNEXPECTED error
1354                   x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1355                   -- verify that cursor was closed
1356   		IF l_ipt_csr%ISOPEN THEN
1357   			CLOSE l_ipt_csr;
1358   		END IF;
1359     END   validate_ipt_id ;
1360     -- End validate_ipt_code
1361     ---------------------------------------------
1362     -- Validate_Attributes for: IPY_ID --
1363     ---------------------------------------------
1364     PROCEDURE validate_ipy_id ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1365       l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1366       l_dummy_var		VARCHAR2(1) := '?' ;
1367       CURSOR  l_ipy_csr IS
1368         SELECT 'x'
1369         FROM OKL_INS_POLICIES_V
1370         WHERE id = p_ipyv_rec.ipy_id ;
1371         BEGIN
1372             -- initialize return status
1373             x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1374             IF ( ( p_ipyv_rec.ipy_id IS NOT NULL)  OR  (p_ipyv_rec.ipy_id <> OKC_API.G_MISS_NUM)) THEN
1375             	-- enforce foreign key
1376     		OPEN   l_ipy_csr ;
1377     		FETCH l_ipy_csr INTO l_dummy_var ;
1378     		CLOSE l_ipy_csr ;
1379     		-- still set to default means data was not found
1380     		IF ( l_dummy_var = '?' ) THEN
1381     			OKC_API.set_message(g_app_name,
1382     						g_no_parent_record,
1383     						g_col_name_token,
1384     						'Policy Number',
1385     						g_child_table_token ,
1386     						'OKL_INS_POLICIES_V' ,
1387     						g_parent_table_token ,
1388     						'OKL_INS_POLICIES_V');
1389     			x_return_status := OKC_API.G_RET_STS_ERROR;
1390     		END IF;
1391             END IF;
1392         EXCEPTION
1393         	WHEN OTHERS THEN
1394           	-- store SQL error message on message stack for caller
1395                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1396                   -- notify caller of an UNEXPECTED error
1397                   x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1398                   -- verify that cursor was closed
1399   		IF l_ipy_csr%ISOPEN THEN
1400   			CLOSE l_ipy_csr;
1401   		END IF;
1402     END validate_ipy_id ;
1403     -- End validate_ipy_id
1404     ---------------------------------------------
1405     -- Validate_Attributes for: IPE_CODE --
1406     ---------------------------------------------
1407     PROCEDURE validate_ipe_code ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1408      l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1409      l_dummy_var		VARCHAR2(1) := '?' ;
1410      l_system_date         DATE  := SYSDATE   ;
1411      CURSOR  l_ipe_csr IS
1412       SELECT 'x'
1413       FROM FND_LOOKUPS
1414       WHERE LOOKUP_CODE = p_ipyv_rec.ipe_code
1415   	AND LOOKUP_TYPE = G_FND_LOOKUP_INS_POLICY_TYPE
1416   	AND l_system_date BETWEEN NVL(start_date_active,l_system_date)
1417   	AND NVL(end_date_active,l_system_date);
1418       BEGIN
1419       	-- initialize return status
1420           x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1421          -- data is required
1422          IF ( ( p_ipyv_rec.ipe_code IS NULL)  OR  (p_ipyv_rec.ipe_code = OKC_API.G_MISS_CHAR)) THEN
1423          		OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Policy Type');
1424                   -- notify caller of an error
1425                   x_return_status := OKC_API.G_RET_STS_ERROR;
1426          ELSE
1427          		-- enforce foreign key
1428           	OPEN   l_ipe_csr ;
1429                   FETCH l_ipe_csr INTO l_dummy_var ;
1430                   CLOSE l_ipe_csr ;
1431                   -- still set to default means data was not found
1432                   IF ( l_dummy_var = '?' ) THEN
1433                   	OKC_API.set_message(g_app_name,
1434                   				g_no_parent_record,
1435                   		 		g_col_name_token,
1436                   		  	    	'Policy Type',
1437                   		  	    	g_child_table_token ,
1438                   		  	    	'OKL_INS_POLICIES_V' ,
1439                   		  	    	g_parent_table_token ,
1440                   		  	    	'FND_LOOKUPS');
1441           		x_return_status := OKC_API.G_RET_STS_ERROR;
1442                   END IF;
1443           END IF;
1444        EXCEPTION
1445        	WHEN OTHERS THEN
1446           	-- store SQL error message on message stack for caller
1447                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1448                   -- notify caller of an UNEXPECTED error
1449                   x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1450                   -- verify that cursor was closed
1451   		IF l_ipe_csr%ISOPEN THEN
1452   			CLOSE l_ipe_csr;
1453   		END IF;
1454     END   validate_ipe_code ;
1455     -- End validate_ipe_code
1456     ---------------------------------------------
1457     -- Validate_Attributes for: CRX_CODE --
1458     ---------------------------------------------
1459     PROCEDURE validate_crx_code ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1460     	l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1461           l_dummy_var		VARCHAR2(1) := '?' ;
1462       	l_system_date         DATE  := SYSDATE   ;
1463       	CURSOR  l_crx_csr IS
1464       	 SELECT 'x'
1465       	 FROM FND_LOOKUPS
1466       	 WHERE LOOKUP_CODE = p_ipyv_rec.crx_code
1467   	 AND  LOOKUP_TYPE = G_FND_LOOKUP_INS_CANCEL_REASON
1468   	 AND l_system_date BETWEEN NVL(start_date_active,l_system_date)
1469   	 AND NVL(end_date_active,l_system_date);
1470       BEGIN
1471       	-- initialize return status
1472       	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1473       	IF ( ( p_ipyv_rec.crx_code IS NOT NULL)  OR  (p_ipyv_rec.crx_code <> OKC_API.G_MISS_CHAR)) THEN
1474       		-- enforce foreign key
1475       		OPEN   l_crx_csr ;
1476       		FETCH l_crx_csr INTO l_dummy_var ;
1477       		CLOSE l_crx_csr ;
1478       		-- still set to default means data was not found
1479       		IF ( l_dummy_var = '?' ) THEN
1480       			OKC_API.set_message(g_app_name,
1481       				g_no_parent_record,
1482       				g_col_name_token,
1483       				'Cancellation Reason',
1484       							g_child_table_token ,
1485       							'OKL_INS_POLICIES_V' ,
1486       							g_parent_table_token ,
1487       							'FND_LOOKUPS');
1488       			x_return_status := OKC_API.G_RET_STS_ERROR;
1489       		END IF;
1490              END IF;
1491         EXCEPTION
1492         	WHEN OTHERS THEN
1493           	-- store SQL error message on message stack for caller
1494                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1495                   -- notify caller of an UNEXPECTED error
1496                   x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1497                   -- verify that cursor was closed
1498   		IF l_crx_csr%ISOPEN THEN
1499   			CLOSE l_crx_csr;
1500   		END IF;
1501     END   validate_crx_code;
1502     -- End validate_crx_code
1503     ---------------------------------------------
1504     -- Validate_Attributes for: ISS_CODE --
1505     ---------------------------------------------
1506     PROCEDURE validate_iss_code ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1507     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1508     l_dummy_var		VARCHAR2(1) := '?' ;
1509     l_system_date         DATE  := SYSDATE   ;
1510     CURSOR  l_iss_csr IS
1511      SELECT 'x'
1512      FROM FND_LOOKUPS
1513      WHERE LOOKUP_code = p_ipyv_rec.iss_code
1514   	AND LOOKUP_TYPE = G_FND_LOOKUP_INS_STATUS
1515           AND  l_system_date BETWEEN NVL(start_date_active,l_system_date)
1516   	AND NVL(end_date_active,l_system_date);
1517      BEGIN
1518      	-- initialize return status
1519           x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1520           -- data is required
1521           IF ( ( p_ipyv_rec.iss_code IS NULL)  OR  (p_ipyv_rec.iss_code = OKC_API.G_MISS_CHAR)) THEN
1522           	OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Status');
1523                   -- notify caller of an error
1524                   x_return_status := OKC_API.G_RET_STS_ERROR;
1525           ELSE
1526           	-- enforce foreign key
1527                   OPEN   l_iss_csr ;
1528                   FETCH l_iss_csr INTO l_dummy_var ;
1529                   CLOSE l_iss_csr ;
1530                   -- still set to default means data was not found
1531                   IF ( l_dummy_var = '?' ) THEN
1532                   	OKC_API.set_message(g_app_name,
1533                   			  	g_no_parent_record,
1534                   		  	    	g_col_name_token,
1535                   		  	    	'Status',
1536                   		  	    	g_child_table_token ,
1537                   		  	    	'OKL_INS_POLICIES_V' ,
1538                   		  	    	g_parent_table_token ,
1539                   		  	    	'FND_LOOKUPS');
1540           		x_return_status := OKC_API.G_RET_STS_ERROR;
1541                   END IF;
1542            END IF;
1543        EXCEPTION
1544        	WHEN OTHERS THEN
1545           	-- store SQL error message on message stack for caller
1546                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1547                   -- notify caller of an UNEXPECTED error
1548                   x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1549                   -- verify that cursor was closed
1550   		IF l_iss_csr%ISOPEN THEN
1551   			CLOSE l_iss_csr;
1552   		END IF;
1553     END   validate_iss_code ;
1554     -- End validate_iss_code
1555     ---------------------------------------------
1556     -- Validate_Attributes for: KLE_ID --
1557     ---------------------------------------------
1558     PROCEDURE validate_kle_id ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1559       l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1560       l_dummy_var		VARCHAR2(1) := '?' ;
1561       CURSOR  l_kle_csr IS
1562        SELECT 'x'
1563        FROM  OKL_K_LINES_V
1564        WHERE id = p_ipyv_rec.kle_id	;
1565        BEGIN
1566   	-- initialize return status
1567   	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1568   	IF (p_ipyv_rec.kle_id = OKC_API.G_MISS_NUM) THEN
1569   	       OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',
1570   	       G_COL_NAME_TOKEN,'Contract Line ID');
1571   	        -- notify caller of an error
1572 	       x_return_status := OKC_API.G_RET_STS_ERROR;
1573           ELSE
1574   		-- enforce foreign key
1575   		OPEN   l_kle_csr ;
1576   		FETCH l_kle_csr INTO l_dummy_var ;
1577   		CLOSE l_kle_csr ;
1578   		-- still set to default means data was not found
1579   		IF ( l_dummy_var = '?' ) THEN
1580   			OKC_API.set_message(g_app_name,
1581   						g_no_parent_record,
1582   						g_col_name_token,
1583   						'Contract Line ID',
1584   						g_child_table_token ,
1585   						'OKL_INS_POLICIES_V' ,
1586   						g_parent_table_token ,
1587   						'OKL_K_LINES_V');
1588   			x_return_status := OKC_API.G_RET_STS_ERROR;
1589   		END IF;
1590   	END IF;
1591        EXCEPTION
1592   	WHEN OTHERS THEN
1593   		-- store SQL error message on message stack for caller
1594   		OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1595   		-- notify caller of an UNEXPECTED error
1596   		x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1597   		-- verify that cursor was closed
1598   		IF l_kle_csr%ISOPEN THEN
1599   			CLOSE l_kle_csr;
1600   		END IF;
1601    END validate_kle_id ;
1602    -- End validate_kle_id
1603       ---------------------------------------------
1604       -- Validate_Attributes for: KHR_ID --
1605       ---------------------------------------------
1606       PROCEDURE validate_khr_id ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1607         l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1608         l_dummy_var		VARCHAR2(1) := '?' ;
1609         CURSOR  l_khr_csr IS
1610          SELECT 'x'
1611          FROM  OKL_K_HEADERS_V
1612          WHERE id = p_ipyv_rec.khr_id	;
1613          BEGIN
1614     	-- initialize return status
1615     	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1616         IF ( ( p_ipyv_rec.khr_id IS NULL)  OR  (p_ipyv_rec.khr_id = OKC_API.G_MISS_NUM)) THEN
1617         		OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Contract Id');
1618         		-- notify caller of an error
1619         		x_return_status := OKC_API.G_RET_STS_ERROR;
1620         ELSE
1621     	--IF ( ( p_ipyv_rec.khr_id IS NOT NULL)  OR  (p_ipyv_rec.khr_id <> OKC_API.G_MISS_NUM)) THEN
1622     		-- enforce foreign key
1623     		OPEN   l_khr_csr ;
1624     		FETCH l_khr_csr INTO l_dummy_var ;
1625     		CLOSE l_khr_csr ;
1626     		-- still set to default means data was not found
1627     		IF ( l_dummy_var = '?' ) THEN
1628     			OKC_API.set_message(g_app_name,
1629     						g_no_parent_record,
1630     						g_col_name_token,
1631     						'Contract Id',
1632     						g_child_table_token ,
1633     						'OKL_INS_POLICIES_V' ,
1634     						g_parent_table_token ,
1635     						'OKL_K_HEADERS_V');
1636     			x_return_status := OKC_API.G_RET_STS_ERROR;
1637     		END IF;
1638     	END IF;
1639          EXCEPTION
1640     	WHEN OTHERS THEN
1641     		-- store SQL error message on message stack for caller
1642     		OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1643     		-- notify caller of an UNEXPECTED error
1644     		x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1645     		-- verify that cursor was closed
1646     		IF l_khr_csr%ISOPEN THEN
1647     			CLOSE l_khr_csr;
1648     		END IF;
1649      END validate_khr_id ;
1650 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
1651       ---------------------------------------------
1652       -- Validate_Attributes for: LEASE_APPLICATION_ID --
1653       ---------------------------------------------
1654       PROCEDURE validate_lease_application_id ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1655         l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1656         l_dummy_var		VARCHAR2(1) := '?' ;
1657         CURSOR  l_lease_application_csr IS
1658          SELECT 'x'
1659          FROM  OKL_LEASE_APPLICATIONS_V
1660          WHERE id = p_ipyv_rec.lease_application_id	;
1661          BEGIN
1662     	-- initialize return status
1663     	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1664         IF (p_ipyv_rec.lease_application_id = OKC_API.G_MISS_NUM) THEN
1665         		OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'lease application Id');
1666         		-- notify caller of an error
1667         		x_return_status := OKC_API.G_RET_STS_ERROR;
1668         ELSE
1669     		-- enforce foreign key
1670     		OPEN   l_lease_application_csr ;
1671     		FETCH l_lease_application_csr INTO l_dummy_var ;
1672     		CLOSE l_lease_application_csr ;
1673     		-- still set to default means data was not found
1674     		IF ( l_dummy_var = '?' ) THEN
1675     			OKC_API.set_message(g_app_name,
1676     						g_no_parent_record,
1677     						g_col_name_token,
1678     						'Contract Id',
1679     						g_child_table_token ,
1680     						'OKL_INS_POLICIES_V' ,
1681     						g_parent_table_token ,
1682     						'OKL_LEASE_APPLICATIONS_V');
1683     			x_return_status := OKC_API.G_RET_STS_ERROR;
1684     		END IF;
1685     	END IF;
1686          EXCEPTION
1687     	WHEN OTHERS THEN
1688     		-- store SQL error message on message stack for caller
1689     		OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1690     		-- notify caller of an UNEXPECTED error
1691     		x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1692     		-- verify that cursor was closed
1693     		IF l_lease_application_csr%ISOPEN THEN
1694     			CLOSE l_lease_application_csr;
1695     		END IF;
1696      END validate_lease_application_id ;
1697    -- End validate_lease_applications_id
1698    ---------------------------------------------
1699    -- Validate_Attributes for: IPY_TYPE --
1700    ---------------------------------------------
1701    PROCEDURE validate_ipy_type ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1702     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1703     l_dummy_var		VARCHAR2(1) := '?' ;
1704     l_system_date         DATE  := SYSDATE   ;
1705     CURSOR  l_ipy_csr IS
1706      SELECT 'x'
1707      FROM FND_LOOKUPS
1708      WHERE LOOKUP_code = p_ipyv_rec.ipy_type
1709   	AND LOOKUP_TYPE = G_FND_LOOKUP_POLICY_TYPE;
1710     BEGIN
1711   	-- initialize return status
1712   	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1713   	-- data is required
1714   	IF ( ( p_ipyv_rec.ipy_type IS NULL)  OR  (p_ipyv_rec.ipy_type = OKC_API.G_MISS_CHAR)) THEN
1715                  -- halt validation as it is a optional field
1716                   --RAISE G_EXCEPTION_STOP_VALIDATION;
1717   		OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Policy Type');
1718   		-- notify caller of an error
1719   		x_return_status := OKC_API.G_RET_STS_ERROR;
1720         END IF;
1721   	--ELSE
1722   		-- enforce foreign key
1723   		OPEN   l_ipy_csr ;
1724   		FETCH l_ipy_csr INTO l_dummy_var ;
1725   		CLOSE l_ipy_csr ;
1726   	-- still set to default means data was not found
1727   		IF ( l_dummy_var = '?' ) THEN
1728                   -- halt validation as it has no parent record
1729                   RAISE G_EXCEPTION_HALT_VALIDATION;
1730   			x_return_status := OKC_API.G_RET_STS_ERROR;
1731   		END IF;
1732   	--END IF;
1733       EXCEPTION
1734         --WHEN G_EXCEPTION_STOP_VALIDATION then
1735     -- We are here since the field is not optional
1736          --OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Policy Type');
1737         WHEN G_EXCEPTION_HALT_VALIDATION then
1738        -- We are here b'cause we have no parent record
1739        -- store SQL error message on message stack
1740              OKC_API.set_message(g_app_name,
1741   				 g_no_parent_record,
1742   				 g_col_name_token,
1743   				 'Policy Type',
1744   				 g_child_table_token ,
1745   				 'OKL_INS_POLICIES_V' ,
1746   				 g_parent_table_token ,
1747   				 'FND_LOOKUPS');
1748   	WHEN OTHERS THEN
1749   		-- store SQL error message on message stack for caller
1750   		OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1751   		-- notify caller of an UNEXPECTED error
1752   		--x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1753   		-- verify that cursor was closed
1754   		IF l_ipy_csr%ISOPEN THEN
1755   			CLOSE l_ipy_csr;
1756   		END IF;
1757                 -- notify caller of an error as UNEXPETED error
1758                 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1759     END   validate_ipy_type ;
1760    -- End validate_ipy_type
1761     ---------------------------------------------
1762     -- Validate_Attributes for: POLICY_NUMBER --
1763     ---------------------------------------------
1764     PROCEDURE validate_policy_number ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1765      l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1766      BEGIN
1767      	-- initialize return status
1768         	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1769           -- data is required
1770         	IF ( ( p_ipyv_rec.policy_number IS NULL)  OR  (p_ipyv_rec.policy_number = OKC_API.G_MISS_CHAR)) THEN
1771         		OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',
1772         		G_COL_NAME_TOKEN,'Policy Number');
1773         		-- notify caller of an error
1774         		x_return_status := OKC_API.G_RET_STS_ERROR;
1775         	END IF;
1776        EXCEPTION
1777           WHEN OTHERS THEN
1778           	-- store SQL error message on message stack for caller
1779                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1780               	-- notify caller of an UNEXPECTED error
1781               	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1782     END   validate_policy_number ;
1783     -- End validate_policy_number
1784     -- Start of Comments
1785         --
1786         -- Procedure Name : validate_endorsement
1787         -- Description    : It validates for null value for endorsement
1788         -- Business Rules :
1789         -- Parameter      :
1790         -- Version        : 1.0
1791         -- End of comments
1792         PROCEDURE validate_endorsement ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1793          l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1794          BEGIN
1795          	-- initialize return status
1796             	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1797               -- data is required
1798             	IF ( ( p_ipyv_rec.endorsement IS NULL)  OR  (p_ipyv_rec.endorsement = OKC_API.G_MISS_CHAR)) THEN
1799             		OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Endorsement');
1800             		-- notify caller of an error
1801             		x_return_status := OKC_API.G_RET_STS_ERROR;
1802             	END IF;
1803            EXCEPTION
1804               WHEN OTHERS THEN
1805               	-- store SQL error message on message stack for caller
1806                       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1807                   	-- notify caller of an UNEXPECTED error
1808                   	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1809         END   validate_endorsement ;
1810         -- End validate_endorsement
1811     ---------------------------------------------
1812     -- Validate_Attributes for: PREMIUM --
1813     ---------------------------------------------
1814   PROCEDURE validate_premium ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1815    l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1816    BEGIN
1817          	-- initialize return status
1818             	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1819               -- data is required
1820             	IF ( ( p_ipyv_rec.premium IS NULL)  OR  (p_ipyv_rec.premium = OKC_API.G_MISS_NUM)) THEN
1821             		OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Premium');
1822             		-- notify caller of an error
1823             		x_return_status := OKC_API.G_RET_STS_ERROR;
1824             	END IF;
1825            EXCEPTION
1826               WHEN OTHERS THEN
1827               	-- store SQL error message on message stack for caller
1828                       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1829                   	-- notify caller of an UNEXPECTED error
1830                   	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1831         END   validate_premium ;
1832         -- End validate_premium
1833         PROCEDURE validate_name_of_insured ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1834          l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1835          BEGIN
1836          	-- initialize return status
1837             	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1838               -- data is required
1839             	IF ( ( p_ipyv_rec.name_of_insured IS NULL)  OR  (p_ipyv_rec.name_of_insured = OKC_API.G_MISS_CHAR)) THEN
1840             		OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Name of Insured');
1841             		-- notify caller of an error
1842             		x_return_status := OKC_API.G_RET_STS_ERROR;
1843             	END IF;
1844            EXCEPTION
1845               WHEN OTHERS THEN
1846               	-- store SQL error message on message stack for caller
1847                       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1848                   	-- notify caller of an UNEXPECTED error
1849                   	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1850         END   validate_name_of_insured ;
1851         -- End validate_name_of_insured
1852   ---------------------------------------------
1853   -- Validate_Attributes for: QUOTE_YN --
1854   ---------------------------------------------
1855    PROCEDURE validate_quote_yn ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1856    l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1857     BEGIN
1858     	-- initialize return status
1859         	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1860         --	x_return_status  := OKL_UTIL.check_domain_yn(p_ipyv_rec.quote_yn);
1861         	-- data is required
1862         	IF ( ( p_ipyv_rec.quote_yn IS NOT NULL)  OR  (p_ipyv_rec.quote_yn = OKC_API.G_MISS_CHAR)) THEN
1863   		IF UPPER(p_ipyv_rec.quote_yn) NOT IN ('Y','N') THEN
1864   			x_return_status:=OKC_API.G_RET_STS_ERROR;
1865   		     --set error message in message stack
1866   			OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1867   					p_msg_name     =>  G_INVALID_VALUE,
1868   					p_token1       => G_COL_NAME_TOKEN,
1869   					p_token1_value => 'Quote Flag');
1870   			x_return_status := OKC_API.G_RET_STS_ERROR;
1871   		END IF;
1872         	END IF;
1873      EXCEPTION
1874      	WHEN OTHERS THEN
1875           	-- store SQL error message on message stack for caller
1876                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1877               	-- notify caller of an UNEXPECTED error
1878               	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1879     END   validate_quote_yn ;
1880     -- End validate_quote_yn
1881   ---------------------------------------------
1882   -- Validate_Attributes for: QUOTE_N --
1883   ---------------------------------------------
1884    PROCEDURE validate_quote_n ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1885    l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1886     BEGIN
1887     	-- initialize return status
1888         	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1889         --	x_return_status  := OKL_UTIL.check_domain_yn(p_ipyv_rec.quote_yn);
1890         	-- data is required
1891         	IF (p_ipyv_rec.quote_yn = OKC_API.G_MISS_CHAR)THEN
1892   		IF UPPER(p_ipyv_rec.quote_yn) NOT IN ('NO') THEN
1893   			x_return_status:=OKC_API.G_RET_STS_ERROR;
1894   		     --set error message in message stack
1895   			OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1896   					p_msg_name     =>  G_INVALID_VALUE,
1897   					p_token1       => G_COL_NAME_TOKEN,
1898   					p_token1_value => 'Quote Flag');
1899   			x_return_status := OKC_API.G_RET_STS_ERROR;
1900   		END IF;
1901         	END IF;
1902      EXCEPTION
1903      	WHEN OTHERS THEN
1904           	-- store SQL error message on message stack for caller
1905                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1906               	-- notify caller of an UNEXPECTED error
1907               	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1908     END   validate_quote_n ;
1909     -- End validate_quote_yn
1910   ---------------------------------------------
1911   -- Validate_Attributes for: ON_FILE_YN --
1912   ---------------------------------------------
1913    PROCEDURE validate_on_file_yn ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
1914    l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1915     BEGIN
1916     	-- initialize return status
1917         	x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
1918         	--x_return_status  := OKL_UTIL.check_domain_yn(p_ipyv_rec.on_file_yn);
1919         	-- data is required
1920   		IF UPPER(p_ipyv_rec.private_label_yn) NOT IN ('Y','N') THEN
1921   			x_return_status:=OKC_API.G_RET_STS_ERROR;
1922   		     --set error message in message stack
1923   			OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
1924   					p_msg_name     =>  G_INVALID_VALUE,
1925   					p_token1       => G_COL_NAME_TOKEN,
1926   					p_token1_value => 'private_label_yn');
1927   			x_return_status := OKC_API.G_RET_STS_ERROR;
1928   		END IF;
1929      EXCEPTION
1930      	WHEN OTHERS THEN
1931           	-- store SQL error message on message stack for caller
1932                   OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
1933               	-- notify caller of an UNEXPECTED error
1934               	x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1935     END   validate_on_file_yn ;
1936     -- End validate_on_file_yn
1937 	---------------------------------------------------------------------------
1938 -- Start of comments
1939 --
1940 -- Procedure Name	: validate_covered_amount
1941 -- Description		:
1942 -- Business Rules	:
1943 -- Parameters		:
1944 -- Version		: 1.0
1945 -- End of Comments
1946 ---------------------------------------------------------------------------
1947    PROCEDURE  validate_covered_amount(p_ipyv_rec IN ipyv_rec_type,x_return_status OUT NOCOPY VARCHAR2 ) IS
1948      BEGIN
1949        --initialize the  return status
1950        x_return_status := Okc_Api.G_RET_STS_SUCCESS;
1951        --data is required
1952        IF p_ipyv_rec.covered_amount = Okc_Api.G_MISS_NUM OR
1953           p_ipyv_rec.covered_amount IS NULL
1954        THEN
1955          Okc_Api.set_message(p_app_name       => G_APP_NAME,
1956                              p_msg_name       => 'OKL_REQUIRED_VALUE',
1957                              p_token1         => G_COL_NAME_TOKEN,
1958                              p_token1_value   => 'Covered Amount');
1959          -- Notify caller of  an error
1960          x_return_status := Okc_Api.G_RET_STS_ERROR;
1961        ELSE
1962 	x_return_status  := Okl_Util.check_domain_amount(p_ipyv_rec.covered_amount);
1963 		IF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
1964 	    	   		Okc_Api.set_message(p_app_name 	    => G_APP_NAME,
1965 		   	                                  p_msg_name           => 'OKL_POSITIVE_NUMBER',
1966 		   	                                  p_token1             => G_COL_NAME_TOKEN,
1967 		   	                                  p_token1_value       => 'Covered Amount'
1968 		   	                                  );
1969 			ELSIF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
1970 	        		RAISE G_EXCEPTION_HALT_VALIDATION;
1971      	        END IF;
1972        END IF;
1973        EXCEPTION
1974           WHEN OTHERS THEN
1975             -- store SQL error  message on message stack for caller
1976 	    Okc_Api.set_message(p_app_name => G_APP_NAME,
1977 				    p_msg_name => G_UNEXPECTED_ERROR,
1978 				    p_token1 => G_SQLCODE_TOKEN,
1979 				    p_token1_value => SQLCODE,
1980 				    p_token2 => G_SQLERRM_TOKEN,
1981 				    p_token2_value => SQLERRM
1982 			);
1983             -- Notify the caller of an unexpected error
1984             x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
1985   END validate_covered_amount;
1986   	---------------------------------------------------------------------------
1987 -- Start of comments
1988 --
1989 -- Procedure Name	: validate_deductible
1990 -- Description		:
1991 -- Business Rules	:
1992 -- Parameters		:
1993 -- Version		: 1.0
1994 -- End of Comments
1995 ---------------------------------------------------------------------------
1996    PROCEDURE  validate_deductible(p_ipyv_rec IN ipyv_rec_type,x_return_status OUT NOCOPY VARCHAR2 ) IS
1997      BEGIN
1998        --initialize the  return status
1999        x_return_status := Okc_Api.G_RET_STS_SUCCESS;
2000        --data is required
2001        IF p_ipyv_rec.deductible = Okc_Api.G_MISS_NUM
2002        THEN
2003          Okc_Api.set_message(p_app_name       => G_APP_NAME,
2004                              p_msg_name       => 'OKL_REQUIRED_VALUE',
2005                              p_token1         => G_COL_NAME_TOKEN,
2006                              p_token1_value   => 'Deductible');
2007          -- Notify caller of  an error
2008          x_return_status := Okc_Api.G_RET_STS_ERROR;
2009        ELSE
2010 	x_return_status  := Okl_Util.check_domain_amount(p_ipyv_rec.deductible);
2011 		IF (x_return_status = Okc_Api.G_RET_STS_ERROR) THEN
2012 	    	   		Okc_Api.set_message(p_app_name 	    => G_APP_NAME,
2013 		   	                                  p_msg_name           => 'OKL_POSITIVE_NUMBER',
2014 		   	                                  p_token1             => G_COL_NAME_TOKEN,
2015 		   	                                  p_token1_value       => 'Deductible'
2016 		   	                                  );
2017 			ELSIF (x_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2018 	        		RAISE G_EXCEPTION_HALT_VALIDATION;
2019      	        END IF;
2020        END IF;
2021        EXCEPTION
2022           WHEN OTHERS THEN
2023             -- store SQL error  message on message stack for caller
2024 	    Okc_Api.set_message(p_app_name => G_APP_NAME,
2025 				    p_msg_name => G_UNEXPECTED_ERROR,
2026 				    p_token1 => G_SQLCODE_TOKEN,
2027 				    p_token1_value => SQLCODE,
2028 				    p_token2 => G_SQLERRM_TOKEN,
2029 				    p_token2_value => SQLERRM
2030 			);
2031             -- Notify the caller of an unexpected error
2032             x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2033   END validate_deductible;
2034 
2035  ---------------------------------------------------------------------------
2036 -- Start of comments
2037 --
2038 -- Procedure Name	: validate_adjustment
2039 -- Description		:
2040 -- Business Rules	:
2041 -- Parameters		:
2042 -- Version		: 1.0
2043 -- End of Comments
2044 ---------------------------------------------------------------------------
2045    PROCEDURE  validate_adjustment(p_ipyv_rec IN ipyv_rec_type,x_return_status OUT NOCOPY VARCHAR2 ) IS
2046      BEGIN
2047        --initialize the  return status
2048        x_return_status := Okc_Api.G_RET_STS_SUCCESS;
2049   END validate_adjustment;
2050 
2051   	-- Start of Comments
2052           --
2053           -- Procedure Name : validate_private_label_yn
2054           -- Description    : It validates for null value for private_label_yn
2055           -- Business Rules :
2056           -- Parameter      :
2057           -- Version        : 1.0
2058           -- End of comments
2059           PROCEDURE validate_private_label_yn ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
2060             l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2061               BEGIN
2062         		-- initialize return status
2063         		x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
2064         		--x_return_status  := OKL_UTIL.check_domain_yn(p_ipyv_rec.private_label_yn );
2065         		-- data is required
2066         		IF ( ( p_ipyv_rec.private_label_yn IS NULL)  OR  (p_ipyv_rec.private_label_yn = OKC_API.G_MISS_CHAR)) THEN
2067         			OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,
2068         			'Private Label Flag');
2069         			-- notify caller of an error
2070         			x_return_status := OKC_API.G_RET_STS_ERROR;
2071         		ELSE
2072   			IF UPPER(p_ipyv_rec.private_label_yn) NOT IN ('Y','N') THEN
2073   				x_return_status:=OKC_API.G_RET_STS_ERROR;
2074   			     --set error message in message stack
2075   				OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
2076   						p_msg_name     =>  G_INVALID_VALUE,
2077   						p_token1       => G_COL_NAME_TOKEN,
2078   						p_token1_value => 'Private Label Flag');
2079   				x_return_status := OKC_API.G_RET_STS_ERROR;
2080   			END IF;
2081         		 END IF;
2082               EXCEPTION
2083               	   WHEN OTHERS THEN
2084                        -- store SQL error message on message stack for caller
2085                        OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
2086               		-- notify caller of an UNEXPECTED error
2087               		x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2088            END   validate_private_label_yn ;
2089       -- End validate_private_label_yn
2090   -- Start of Comments
2091           --
2092           -- Procedure Name : validate_lessor_insured_yn
2093           -- Description    : It validates for null value for polcicy id
2094           -- Business Rules :
2095           -- Parameter      :
2096           -- Version        : 1.0
2097           -- End of comments
2098           PROCEDURE validate_lessor_insured_yn ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
2099             l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2100               BEGIN
2101         		-- initialize return status
2102         		x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
2103         		-- data is required
2104         		IF ( p_ipyv_rec.lessor_insured_yn = OKC_API.G_MISS_CHAR) THEN
2105         			OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,
2106         			'Lessor Insured Flag');
2107         			-- notify caller of an error
2108         			x_return_status := OKC_API.G_RET_STS_ERROR;
2109         		ELSE
2110         			IF UPPER(p_ipyv_rec.lessor_insured_yn) NOT IN ('Y','N') THEN
2111   				x_return_status:=OKC_API.G_RET_STS_ERROR;
2112   			     --set error message in message stack
2113   				OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
2114   						p_msg_name     =>  G_INVALID_VALUE,
2115   						p_token1       => G_COL_NAME_TOKEN,
2116   						p_token1_value => 'Lessor Insured Flag');
2117   				x_return_status := OKC_API.G_RET_STS_ERROR;
2118   			        END IF;
2119         		END IF;
2120               EXCEPTION
2121               	   WHEN OTHERS THEN
2122                        -- store SQL error message on message stack for caller
2123                        OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
2124               		-- notify caller of an UNEXPECTED error
2125               		x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2126            END   validate_lessor_insured_yn ;
2127       -- End validate_lessor_insured_yn
2128   	-- Start of Comments
2129           --
2130           -- Procedure Name : validate_lessor_payee_yn
2131           -- Description    : It validates for null value for lessor_payee_yn
2132           -- Business Rules :
2133           -- Parameter      :
2134           -- Version        : 1.0
2135           -- End of comments
2136           PROCEDURE validate_lessor_payee_yn ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
2137             l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2138               BEGIN
2139         		-- initialize return status
2140         		x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
2141         		-- data is required
2142         		IF ( p_ipyv_rec.lessor_payee_yn = OKC_API.G_MISS_CHAR) THEN
2143         			OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,
2144         			'Lessor Payee Flag');
2145         			-- notify caller of an error
2146         			x_return_status := OKC_API.G_RET_STS_ERROR;
2147         		ELSE
2148   			IF UPPER(p_ipyv_rec.lessor_payee_yn) NOT IN ('Y','N') THEN
2149   				x_return_status:=OKC_API.G_RET_STS_ERROR;
2150   			     --set error message in message stack
2151   				OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
2152   						p_msg_name     =>  G_INVALID_VALUE,
2153   						p_token1       => G_COL_NAME_TOKEN,
2154   						p_token1_value => 'Lessor Payee Flag');
2155   				x_return_status := OKC_API.G_RET_STS_ERROR;
2156   			END IF;
2157         		END IF;
2158               EXCEPTION
2159               	   WHEN OTHERS THEN
2160                        -- store SQL error message on message stack for caller
2161                        OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
2162               		-- notify caller of an UNEXPECTED error
2163               		x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2164            END   validate_lessor_payee_yn ;
2165       -- End validate_lessor_payee_yn
2166   	-- Start of Comments
2167           --
2168           -- Procedure Name : validate_agent_yn
2169           -- Description    : It validates for null value for agent_yn
2170           -- Business Rules :
2171           -- Parameter      :
2172           -- Version        : 1.0
2173           -- End of comments
2174           PROCEDURE validate_agent_yn ( p_ipyv_rec IN  ipyv_rec_type, x_return_status OUT NOCOPY VARCHAR2) IS
2175             l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2176               BEGIN
2177         		-- initialize return status
2178         		x_return_status	 := OKC_API.G_RET_STS_SUCCESS;
2179         		--x_return_status  := OKL_UTIL.check_domain_yn(p_ipyv_rec.agent_yn );
2180         		-- data is required
2181         		IF ( p_ipyv_rec.agent_yn = OKC_API.G_MISS_CHAR) THEN
2182         			OKC_API.set_message(G_APP_NAME, 'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,
2183         			'Agent Flag');
2184         			-- notify caller of an error
2185         			x_return_status := OKC_API.G_RET_STS_ERROR;
2186         		ELSE
2187         			IF UPPER(p_ipyv_rec.agent_yn) NOT IN('Y','N') THEN
2188   				x_return_status:=OKC_API.G_RET_STS_ERROR;
2189   			     --set error message in message stack
2190   			    	OKC_API.SET_MESSAGE(p_app_name     => G_APP_NAME,
2191   			                        p_msg_name     =>  G_INVALID_VALUE,
2192   			                        p_token1       => G_COL_NAME_TOKEN,
2193   			                        p_token1_value => 'Agent Flag');
2194   				x_return_status := OKC_API.G_RET_STS_ERROR;
2195     			END IF;
2196         		END IF;
2197               EXCEPTION
2198               	   WHEN OTHERS THEN
2199                        -- store SQL error message on message stack for caller
2200                        OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE, G_SQLERRM_TOKEN, SQLERRM);
2201               		-- notify caller of an UNEXPECTED error
2202               		x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2203            END   validate_agent_yn ;
2204       -- End validate_agent_yn
2205   ---------------------------------------------------------------------------
2206   -- Start of comments
2207   --
2208   -- Procedure Name	: validate_date_from
2209   -- Description		:
2210   -- Business Rules	:
2211   -- Parameters		:
2212   -- Version		: 1.0
2213   -- End of Comments
2214   ---------------------------------------------------------------------------
2215      PROCEDURE  validate_date_from(x_return_status OUT NOCOPY VARCHAR2,p_ipyv_rec IN ipyv_rec_type ) IS
2216        l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2217        BEGIN
2218          --data is required
2219          IF (p_ipyv_rec.date_from = OKC_API.G_MISS_DATE) OR (p_ipyv_rec.date_from IS NULL)
2220          THEN
2221          	  OKC_API.set_message(G_APP_NAME,'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Date Effective From');
2222            --Notify caller of  an error
2223    	 l_return_status := Okc_Api.G_RET_STS_ERROR;
2224           END IF;
2225   	 x_return_status := l_return_status;
2226          EXCEPTION
2227             WHEN OTHERS THEN
2228               --store SQL error  message on message stack for caller
2229               Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2230               --Notify the caller of an unexpected error
2231               x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2232     END validate_date_from;
2233   ---------------------------------------------------------------------------
2234   -- Start of comments
2235   --
2236   -- Procedure Name	: validate_date_to
2237   -- Description		:
2238   -- Business Rules	:
2239   -- Parameters		:
2240   -- Version		: 1.0
2241   -- End of Comments
2242   ---------------------------------------------------------------------------
2243      PROCEDURE  validate_date_to(x_return_status OUT NOCOPY VARCHAR2,p_ipyv_rec IN ipyv_rec_type ) IS
2244        l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2245        BEGIN
2246          --data is required
2247          IF (p_ipyv_rec.date_to = OKC_API.G_MISS_DATE) OR (p_ipyv_rec.date_to IS NULL)
2248          THEN
2249          	  OKC_API.set_message(G_APP_NAME,'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,'Date Effective To');
2250            --Notify caller of  an error
2251    	 l_return_status := Okc_Api.G_RET_STS_ERROR;
2252           END IF;
2253   	 x_return_status := l_return_status;
2254          EXCEPTION
2255             WHEN OTHERS THEN
2256               --store SQL error  message on message stack for caller
2257               Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2258               --Notify the caller of an unexpected error
2259               x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2260     END validate_date_to;
2261   ---------------------------------------------------------------------------
2262   -- Start of comments
2263   --
2264   -- Procedure Name	: validate_date_proof_required
2265   -- Description		:
2266   -- Business Rules	:
2267   -- Parameters		:
2268   -- Version		: 1.0
2269   -- End of Comments
2270   ---------------------------------------------------------------------------
2271      PROCEDURE  validate_date_proof_required(x_return_status OUT NOCOPY VARCHAR2,p_ipyv_rec IN ipyv_rec_type ) IS
2272        l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2273        BEGIN
2274          --data is required
2275          IF (p_ipyv_rec.date_proof_required = OKC_API.G_MISS_DATE) THEN
2276          	  OKC_API.set_message(G_APP_NAME,'OKL_REQUIRED_VALUE',G_COL_NAME_TOKEN,
2277          	  'Date Proof Required');
2278            --Notify caller of  an error
2279    	 l_return_status := Okc_Api.G_RET_STS_ERROR;
2280           END IF;
2281   	 x_return_status := l_return_status;
2282          EXCEPTION
2283             WHEN OTHERS THEN
2284               --store SQL error  message on message stack for caller
2285               Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2286               --Notify the caller of an unexpected error
2287               x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2288     END validate_date_proof_required;
2289 	---------------------------------------------------------------------------
2290   -- Start of comments
2291   --
2292   -- Procedure Name	: validate_date_proof_provided
2293   -- Description		:
2294   -- Business Rules	:
2295   -- Parameters		:
2296   -- Version		: 1.0
2297   -- End of Comments
2298   ---------------------------------------------------------------------------
2299      PROCEDURE  validate_date_proof_provided(x_return_status OUT NOCOPY VARCHAR2,p_ipyv_rec IN ipyv_rec_type ) IS
2300        l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2301        BEGIN
2302          --data is required
2303          IF p_ipyv_rec.date_proof_provided = OKC_API.G_MISS_DATE
2304          THEN
2305          	  OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'Proof Provided Date');
2306            --Notify caller of  an error
2307    	 l_return_status := Okc_Api.G_RET_STS_ERROR;
2308           END IF;
2309   	 x_return_status := l_return_status;
2310          EXCEPTION
2311             WHEN OTHERS THEN
2312               --store SQL error  message on message stack for caller
2313               Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2314               --Notify the caller of an unexpected error
2315               x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2316     END validate_date_proof_provided;
2317       ---------------------------------------------------------------------------
2318       -- Start of comments
2319       --
2320       -- Procedure Name	: validate_created_by
2321       -- Description		:
2322       -- Business Rules	:
2323       -- Parameters		:
2324       -- Version		: 1.0
2325       -- End of Comments
2326       ---------------------------------------------------------------------------
2327          PROCEDURE  validate_created_by(x_return_status OUT NOCOPY VARCHAR2,p_ipyv_rec IN ipyv_rec_type ) IS
2328            l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2329            BEGIN
2330              --data is required
2331              IF p_ipyv_rec.created_by = OKC_API.G_MISS_NUM OR  p_ipyv_rec.created_by IS NULL
2332              THEN
2333                 --OKC_API.set_message(G_APP_NAME,G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'created_by');
2334                OKC_API.set_message(p_app_name     => G_APP_NAME,
2335                                    p_msg_name     => G_REQUIRED_VALUE,
2336                                    p_token1       => G_COL_NAME_TOKEN,
2337                                    p_token1_value => 'created_by');
2338                --Notify caller of  an error
2339       	 l_return_status := Okc_Api.G_RET_STS_ERROR;
2340               END IF;
2341       	 x_return_status := l_return_status;
2342              EXCEPTION
2343                 WHEN OTHERS THEN
2344                   --store SQL error  message on message stack for caller
2345                   Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2346                   --Notify the caller of an unexpected error
2347                   x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2348         END validate_created_by;
2349       ---------------------------------------------------------------------------
2350       -- Start of comments
2351       --
2352       -- Procedure Name	: validate_creation_date
2353       -- Description		:
2354       -- Business Rules	:
2355       -- Parameters		:
2356       -- Version		: 1.0
2357       -- End of Comments
2358       ---------------------------------------------------------------------------
2359          PROCEDURE  validate_creation_date(x_return_status OUT NOCOPY VARCHAR2,p_ipyv_rec IN ipyv_rec_type ) IS
2360            l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2361            BEGIN
2362              --data is required
2363              IF p_ipyv_rec.creation_date = OKC_API.G_MISS_DATE OR p_ipyv_rec.creation_date IS NULL
2364              THEN
2365              	  OKC_API.set_message(G_APP_NAME,G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'creation_date');
2366                --Notify caller of  an error
2367        	 l_return_status := Okc_Api.G_RET_STS_ERROR;
2368               END IF;
2369       	 x_return_status := l_return_status;
2370              EXCEPTION
2371                 WHEN OTHERS THEN
2372                   --store SQL error  message on message stack for caller
2373                   Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2374                   --Notify the caller of an unexpected error
2375                   x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2376         END validate_creation_date;
2377       ---------------------------------------------------------------------------
2378       -- Start of comments
2379       --
2380       -- Procedure Name	: validate_ipt_last_updated_by
2381       -- Description		:
2382       -- Business Rules	:
2383       -- Parameters		:
2384       -- Version		: 1.0
2385       -- End of Comments
2386       ---------------------------------------------------------------------------
2387          PROCEDURE  validate_last_updated_by(x_return_status OUT NOCOPY VARCHAR2,p_ipyv_rec IN ipyv_rec_type ) IS
2388            l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2389           BEGIN
2390              --data is required
2391              IF p_ipyv_rec.last_updated_by = OKC_API.G_MISS_NUM OR p_ipyv_rec.last_updated_by IS NULL
2392              THEN
2393                OKC_API.set_message(G_APP_NAME,G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'last_updated_by');
2394                --Notify caller of  an error
2395                 l_return_status := Okc_Api.G_RET_STS_ERROR;
2396       	END IF;
2397       	 x_return_status := l_return_status;
2398             EXCEPTION
2399                 WHEN OTHERS THEN
2400                   --store SQL error  message on message stack for caller
2401                   Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2402                   --Notify the caller of an unexpected error
2403                   x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2404         END validate_last_updated_by;
2405       ---------------------------------------------------------------------------
2406       -- Start of comments
2407       --
2408       -- Procedure Name	: validate_ipt_last_update_date
2409       -- Description		:
2410       -- Business Rules	:
2411       -- Parameters		:
2412       -- Version		: 1.0
2413       -- End of Comments
2414       ---------------------------------------------------------------------------
2415          PROCEDURE  validate_last_update_date(x_return_status OUT NOCOPY VARCHAR2,p_ipyv_rec IN ipyv_rec_type ) IS
2416            l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2417            BEGIN
2418              --data is required
2419              IF p_ipyv_rec.last_update_date = OKC_API.G_MISS_DATE OR p_ipyv_rec.last_update_date IS NULL
2420              THEN
2421                OKC_API.set_message(G_APP_NAME,G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'last_update_date');
2422                --Notify caller of  an error
2423                 l_return_status := Okc_Api.G_RET_STS_ERROR;
2424       	END IF;
2425       	 x_return_status := l_return_status;
2426             EXCEPTION
2427                 WHEN OTHERS THEN
2428                   --store SQL error  message on message stack for caller
2429                   Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2430                   --Notify the caller of an unexpected error
2431                   x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2432     END validate_last_update_date;
2433   ---------------------------------------------------------------------------
2434   -- FUNCTION Validate_Attributes
2435   ---------------------------------------------------------------------------
2436   ------------------------------------------------
2437   -- Validate_Attributes for:OKL_INS_POLICIES_V --
2438   ------------------------------------------------
2439   FUNCTION Validate_Attributes (
2440     p_ipyv_rec                     IN ipyv_rec_type
2441   ) RETURN VARCHAR2 IS
2442     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2443     x_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2444   BEGIN
2445     -----------------------------
2446     -- Column Level Validation --
2447     -----------------------------
2448     -- ***
2449     -- id
2450     -- ***
2451      		Validate_id(p_ipyv_rec, l_return_status);
2452      		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2453      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2454      		    x_return_status := l_return_status;
2455      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2456      		  ELSE
2457      		    x_return_status := l_return_status;   -- record that there was an error
2458      		  END IF;
2459      		END IF;
2460     -- ***
2461     -- legal_entity_id
2462     -- ***
2463      		Validate_legal_entity_id(p_ipyv_rec, l_return_status);
2464      		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2465      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2466      		    x_return_status := l_return_status;
2467      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2468      		  ELSE
2469      		    x_return_status := l_return_status;   -- record that there was an error
2470      		  END IF;
2471      		END IF;
2472     -- ***
2473     -- ipy_type
2474     -- ***
2475      		VALIDATE_ipy_type(p_ipyv_rec, l_return_status);
2476 		   IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2477 		     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2478 		     	 x_return_status := l_return_status;
2479 		     		    RAISE G_EXCEPTION_HALT_VALIDATION;
2480 		     ELSE
2481 		     	  x_return_status := l_return_status;   -- record that there was an error
2482 		     END IF;
2483      		END IF;
2484     -- ***
2485     -- sfwt_flag
2486     -- ***
2487      		VALIDATE_sfwt_flag(p_ipyv_rec, l_return_status);
2488      		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2489      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2490      		    x_return_status := l_return_status;
2491      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2492      		  ELSE
2493      		    x_return_status := l_return_status;   -- record that there was an error
2494      		  END IF;
2495      		END IF;
2496     -- ***
2497     -- object_version_number
2498     -- ***
2499      		VALIDATE_object_version_number(p_ipyv_rec, l_return_status);
2500      		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2501      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2502      		    x_return_status := l_return_status;
2503      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2504      		  ELSE
2505      		    x_return_status := l_return_status;   -- record that there was an error
2506      		  END IF;
2507      		END IF;
2508     -- ***
2509     -- created_by
2510     -- ***
2511 		validate_created_by(x_return_status => l_return_status,
2512 		                                p_ipyv_rec      => p_ipyv_rec);
2513 		-- store the highest degree of error
2514 		   IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2515 		       IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2516 		          x_return_status :=l_return_status;
2517 		          RAISE G_EXCEPTION_HALT_VALIDATION;
2518 		       ELSE
2519 		          x_return_status := l_return_status; -- Record that there was an error
2520 		       END IF;
2521 		   END IF;
2522     -- ***
2523     -- creation_date
2524     -- ***
2525 		validate_creation_date(x_return_status => l_return_status,
2526 		                       p_ipyv_rec      => p_ipyv_rec);
2527 		-- store the highest degree of error
2528 		   IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2529 		          IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2530 		             x_return_status :=l_return_status;
2531 		             RAISE G_EXCEPTION_HALT_VALIDATION;
2532 		          ELSE
2533 		            x_return_status := l_return_status; -- Record that there was an error
2534 		          END IF;
2535 		        END IF;
2536     -- ***
2537     -- last_updated_by
2538     -- ***
2539 		        validate_last_updated_by(x_return_status => l_return_status,
2540 		                                     p_ipyv_rec      => p_ipyv_rec);
2541 		        -- store the highest degree of error
2542 		        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2543 		          IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2544 		             x_return_status :=l_return_status;
2545 		             RAISE G_EXCEPTION_HALT_VALIDATION;
2546 		          ELSE
2547 		            x_return_status := l_return_status; -- Record that there was an error
2548 		          END IF;
2549 		        END IF;
2550     -- ***
2551     -- last_update_date
2552     -- ***
2553 		        validate_last_update_date(x_return_status => l_return_status,
2554 		                                      p_ipyv_rec      => p_ipyv_rec);
2555 		        -- store the highest degree of error
2556 		        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2557 		          IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2558 		             x_return_status :=l_return_status;
2559 		             RAISE G_EXCEPTION_HALT_VALIDATION;
2560 		          ELSE
2561 		            x_return_status := l_return_status; -- Record that there was an error
2562 		          END IF;
2563         	        END IF;
2564     -- ***
2565     -- date_from
2566     -- ***
2567 			 validate_date_from(x_return_status => l_return_status,
2568 			                    p_ipyv_rec      => p_ipyv_rec);
2569 			-- store the highest degree of error
2570 			  IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2571 			      IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2572 			               x_return_status :=l_return_status;
2573 			               RAISE G_EXCEPTION_HALT_VALIDATION;
2574 			          	   ELSE
2575 			               x_return_status := l_return_status; -- Record that there was an error
2576 			          	   END IF;
2577 			        	END IF;
2578     -- ***
2579     -- date_to
2580     -- ***
2581 			validate_date_to(x_return_status => l_return_status,
2582 			                 p_ipyv_rec      => p_ipyv_rec);
2583 			-- store the highest degree of error
2584 			IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2585 			      IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2586 			         x_return_status :=l_return_status;
2587 			      	 RAISE G_EXCEPTION_HALT_VALIDATION;
2588 			      ELSE
2589 			         x_return_status := l_return_status; -- Record that there was an error
2590 			      END IF;
2591         		END IF;
2592     -- ***
2593     -- isu_id
2594     -- ***
2595         		VALIDATE_isu_id(p_ipyv_rec, l_return_status);
2596 			     		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2597 			     		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2598 			     		    x_return_status := l_return_status;
2599 			     		    RAISE G_EXCEPTION_HALT_VALIDATION;
2600 			     		  ELSE
2601 			     		    x_return_status := l_return_status;   -- record that there was an error
2602 			     		  END IF;
2603      			END IF;
2604     -- ***
2605     -- lessor_insured_yn
2606     -- ***
2607         validate_lessor_insured_yn(p_ipyv_rec , l_return_status );
2608             IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2609      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2610      		    x_return_status := l_return_status;
2611      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2612      		  ELSE
2613      		    x_return_status := l_return_status;   -- record that there was an error
2614      		  END IF;
2615      		END IF;
2616     -- ***
2617     -- lessor_payee_yn
2618     -- ***
2619         validate_lessor_payee_yn(p_ipyv_rec , l_return_status );
2620             IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2621      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2622      		    x_return_status := l_return_status;
2623      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2624      		  ELSE
2625      		    x_return_status := l_return_status;   -- record that there was an error
2626      		  END IF;
2627      		END IF;
2628     ----------------------------------------- ***---------------------------------
2629     ------------------ Additional validations for Third Party Policy -------------
2630     ----------------------------------------- *** --------------------------------
2631      	   IF(p_ipyv_rec.IPY_TYPE = 'THIRD_PARTY_POLICY') THEN
2632     -- ***
2633     -- agency_site_id
2634     -- ***
2635      		VALIDATE_agency_site_id(p_ipyv_rec, l_return_status);
2636 				    IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2637 				     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2638 				     		x_return_status := l_return_status;
2639 				     		RAISE G_EXCEPTION_HALT_VALIDATION;
2640 				     	ELSE
2641 				     		x_return_status := l_return_status;   -- record that there was an error
2642 				     	END IF;
2643      		END IF;
2644     -- ***
2645     -- date_proof_required
2646     -- ***
2647 		validate_date_proof_required(x_return_status => l_return_status,
2648 		                             p_ipyv_rec      => p_ipyv_rec);
2649 		-- store the highest degree of error
2650 		   IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2651 		       IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2652 		            x_return_status :=l_return_status;
2653 		            RAISE G_EXCEPTION_HALT_VALIDATION;
2654 		        ELSE
2655 		          x_return_status := l_return_status; -- Record that there was an error
2656 		        END IF;
2657 		    END IF;
2658     -- ***
2659     -- date_proof_provided
2660     -- ***
2661 		validate_date_proof_provided(x_return_status => l_return_status,
2662 		                             p_ipyv_rec      => p_ipyv_rec);
2663 		-- store the highest degree of error
2664 		   IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2665 		        IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2666 		             x_return_status :=l_return_status;
2667 		             RAISE G_EXCEPTION_HALT_VALIDATION;
2668 		        ELSE
2669 		             x_return_status := l_return_status; -- Record that there was an error
2670 		        END IF;
2671        		   END IF;
2672     -- ***
2673     -- covered_amount
2674     -- ***
2675      		VALIDATE_covered_amount(p_ipyv_rec, l_return_status);
2676 		     IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2677 		     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2678 		     		x_return_status := l_return_status;
2679 		     		RAISE G_EXCEPTION_HALT_VALIDATION;
2680 		     	ELSE
2681 		     		 x_return_status := l_return_status;   -- record that there was an error
2682 		     	END IF;
2683 		      END IF;
2684     -- ***
2685     -- policy_number
2686     -- ***
2687 		VALIDATE_policy_number(p_ipyv_rec, l_return_status);
2688      		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2689      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2690      		    x_return_status := l_return_status;
2691      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2692      		  ELSE
2693      		    x_return_status := l_return_status;   -- record that there was an error
2694      		  END IF;
2695      		END IF;
2696     -- ***
2697     -- quote_n
2698     -- ***
2699         validate_quote_n(p_ipyv_rec , l_return_status );
2700             IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2701      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2702      		    x_return_status := l_return_status;
2703      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2704      		  ELSE
2705      		    x_return_status := l_return_status;   -- record that there was an error
2706      		  END IF;
2707      		END IF;
2708  -- smoduga added as part of LLA calling create third party
2709     -- ***
2710     -- int_id
2711     -- ***
2712      		VALIDATE_int_id(p_ipyv_rec, l_return_status);
2713      		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2714      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2715      		    x_return_status := l_return_status;
2716      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2717      		  ELSE
2718      		    x_return_status := l_return_status;   -- record that there was an error
2719      		  END IF;
2720      		END IF;
2721     -- ***
2722     -- agent_site_id
2723     -- ***
2724      		VALIDATE_agent_site_id(p_ipyv_rec, l_return_status);
2725 		    IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2726 		     	IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2727 		     		x_return_status := l_return_status;
2728 		     		RAISE G_EXCEPTION_HALT_VALIDATION;
2729 		     	ELSE
2730 		     		x_return_status := l_return_status;   -- record that there was an error
2731 		     	END IF;
2732      		END IF;
2733     -- ***
2734     -- on_file_yn
2735     -- ***
2736         validate_on_file_yn(p_ipyv_rec , l_return_status );
2737             IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2738      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2739      		    x_return_status := l_return_status;
2740      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2741      		  ELSE
2742      		    x_return_status := l_return_status;   -- record that there was an error
2743      		  END IF;
2744      		END IF;
2745 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
2746     IF ( ( p_ipyv_rec.khr_id IS NOT NULL)  OR  (p_ipyv_rec.khr_id <> OKC_API.G_MISS_NUM))THEN
2747     -- ***
2748     -- khr_id
2749     -- ***
2750 			validate_khr_id(x_return_status => l_return_status,
2751 			                 p_ipyv_rec      => p_ipyv_rec);
2752 			-- store the highest degree of error
2753 			IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2754 			      IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2755 			         x_return_status :=l_return_status;
2756 			      	 RAISE G_EXCEPTION_HALT_VALIDATION;
2757 			      ELSE
2758 			         x_return_status := l_return_status; -- Record that there was an error
2759 			      END IF;
2760             END IF;
2761      ELSIF ( ((p_ipyv_rec.lease_application_id is not null)OR (p_ipyv_rec.lease_application_id <> OKC_API.G_MISS_NUM ))
2762               and ((p_ipyv_rec.khr_id is null)OR (p_ipyv_rec.khr_id = OKC_API.G_MISS_NUM))) then
2763     -- ***
2764     -- lease_application_id
2765     -- ***
2766         validate_lease_application_id(p_ipyv_rec , l_return_status );
2767             IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2768      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2769      		    x_return_status := l_return_status;
2770      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2771      		  ELSE
2772      		    x_return_status := l_return_status;   -- record that there was an error
2773      		  END IF;
2774      		END IF;
2775      END IF;
2776     End if;
2777  ----------------------------------------- *** ------------------------------------------------
2778  --------------------------------- End of THIRD PARTY validation ------------------------------
2779  ----------------------------------------- *** ------------------------------------------------
2780 
2781          IF(p_ipyv_rec.ipy_type <> 'THIRD_PARTY_POLICY') THEN
2782     -- ***
2783     -- ipt_id
2784     -- ***
2785 	       VALIDATE_ipt_id(p_ipyv_rec, l_return_status);
2786 	      		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2787 	      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2788 	      		    x_return_status := l_return_status;
2789 	      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2790 	      		  ELSE
2791 	      		    x_return_status := l_return_status;   -- record that there was an error
2792 	      		  END IF;
2793      		END IF;
2794     -- ***
2795     -- premium
2796     -- ***
2797 	       VALIDATE_premium(p_ipyv_rec, l_return_status);
2798 	      		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2799 	      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2800 	      		    x_return_status := l_return_status;
2801 	      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2802 	      		  ELSE
2803 	      		    x_return_status := l_return_status;   -- record that there was an error
2804 	      		  END IF;
2805      		END IF;
2806     -- ***
2807     -- adjustment
2808     -- ***
2809 	       VALIDATE_adjustment(p_ipyv_rec, l_return_status);
2810 	      		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2811 	      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2812 	      		    x_return_status := l_return_status;
2813 	      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2814 	      		  ELSE
2815 	      		    x_return_status := l_return_status;   -- record that there was an error
2816 	      		  END IF;
2817      		END IF;
2818     -- ***
2819     -- ipf_code
2820     -- ***
2821 		VALIDATE_ipf_code(p_ipyv_rec, l_return_status);
2822 			IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2823 				IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2824 				 x_return_status := l_return_status;
2825 				 RAISE G_EXCEPTION_HALT_VALIDATION;
2826 				ELSE
2827 				 x_return_status := l_return_status;   -- record that there was an error
2828 				END IF;
2829 		     	END IF;
2830     -- ***
2831     -- iss_code
2832     -- ***
2833      		VALIDATE_iss_code(p_ipyv_rec, l_return_status);
2834      		IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2835      		  IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN  -- need to leave
2836      		    x_return_status := l_return_status;
2837      		    RAISE G_EXCEPTION_HALT_VALIDATION;
2838      		  ELSE
2839      		    x_return_status := l_return_status;   -- record that there was an error
2840      		  END IF;
2841      		END IF;
2842     -- ***
2843     -- khr_id
2844     -- ***
2845 			validate_khr_id(x_return_status => l_return_status,
2846 			                 p_ipyv_rec      => p_ipyv_rec);
2847 			-- store the highest degree of error
2848 			IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2849 			      IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2850 			         x_return_status :=l_return_status;
2851 			      	 RAISE G_EXCEPTION_HALT_VALIDATION;
2852 			      ELSE
2853 			         x_return_status := l_return_status; -- Record that there was an error
2854 			      END IF;
2855         		END IF;
2856     -- ***
2857     -- territory_code
2858     -- ***
2859      		VALIDATE_territory_code(p_ipyv_rec , l_return_status);
2860 		   -- store the highest degree of error
2861 		 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2862 			IF(l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2863 			 x_return_status :=l_return_status;
2864 			 RAISE G_EXCEPTION_HALT_VALIDATION;
2865 			ELSE
2866 			 x_return_status := l_return_status; -- Record that there was an error
2867 			END IF;
2868         	 END IF;
2869             END IF;
2870     RETURN(x_return_status);
2871   EXCEPTION
2872     WHEN G_EXCEPTION_HALT_VALIDATION THEN
2873       RETURN(x_return_status);
2874     WHEN OTHERS THEN
2875       OKC_API.SET_MESSAGE( p_app_name     => G_APP_NAME
2876                           ,p_msg_name     => G_UNEXPECTED_ERROR
2877                           ,p_token1       => G_SQLCODE_TOKEN
2878                           ,p_token1_value => SQLCODE
2879                           ,p_token2       => G_SQLERRM_TOKEN
2880                           ,p_token2_value => SQLERRM);
2881       l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2882       RETURN(x_return_status);
2883   END Validate_Attributes;
2884  ---------------------------------------------------------------------------
2885  -- PROCEDURE Validate_contract_header
2886  ---------------------------------------------------------------------------
2887     PROCEDURE validate_contract_header(
2888       p_ipyv_rec          IN ipyv_rec_type,
2889       x_return_status 	OUT NOCOPY VARCHAR2) IS
2890       l_return_status	VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
2891       l_dummy_var VARCHAR2(1) := '?';
2892   CURSOR l_ipyv_csr IS
2893   SELECT 'x'
2894   FROM   okl_ins_policies_v
2895   WHERE  khr_id = p_ipyv_rec.khr_id
2896         AND ID <> p_ipyv_rec.ID
2897         AND IPY_TYPE ='THIRD_PARTY_POLICY';
2898     BEGIN
2899   	OPEN l_ipyv_csr;
2900   	FETCH l_ipyv_csr INTO l_dummy_var;
2901   	CLOSE l_ipyv_csr;
2902   -- if l_dummy_var is still set to default, data was not found
2903      IF (l_dummy_var = 'x') THEN
2904         OKC_API.set_message(p_app_name 	    => G_APP_NAME,
2905 	  	            p_msg_name      => 'OKL_UNIQUE'
2906   			    );
2907         l_return_status := Okc_Api.G_RET_STS_ERROR;
2908      END IF;
2909       x_return_status := l_return_status;
2910     EXCEPTION
2911        WHEN OTHERS THEN
2912         -- store SQL error message on message stack for caller
2913         Okc_Api.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
2914         -- notify caller of an UNEXPECTED error
2915         x_return_status := Okc_Api.G_RET_STS_UNEXP_ERROR;
2916   END validate_contract_header;
2917   ---------------------------------------------------------------------------
2918   -- PROCEDURE Validate_Record
2919   ---------------------------------------------------------------------------
2920   --------------------------------------------
2921   -- Validate Record for:OKL_INS_POLICIES_V --
2922   --------------------------------------------
2923         ------------------------------------
2924         -- FUNCTION validate_foreign_keys --
2925         ------------------------------------
2926         FUNCTION validate_foreign_keys (
2927           p_ipyv_rec IN ipyv_rec_type,
2928           p_db_ipyv_rec IN ipyv_rec_type
2929         ) RETURN VARCHAR2 IS
2930           --item_not_found_error           EXCEPTION;
2931           l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2932         BEGIN
2933         null;
2934           --l_return_status := validate_foreign_keys(p_ipyv_rec, p_db_ipyv_rec);
2935           RETURN (l_return_status);
2936     END Validate_foreign_keys;
2937          FUNCTION Validate_Record (
2938         p_ipyv_rec IN ipyv_rec_type,
2939         p_db_ipyv_rec IN ipyv_rec_type
2940       ) RETURN VARCHAR2 IS
2941         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2942         ------------------------------------
2943         -- FUNCTION validate_foreign_keys --
2944         ------------------------------------
2945       BEGIN
2946          l_return_status := validate_foreign_keys(p_ipyv_rec, p_db_ipyv_rec);
2947          RETURN (l_return_status);
2948       END Validate_Record;
2949     FUNCTION Validate_Record (
2950       p_ipyv_rec IN ipyv_rec_type
2951     ) RETURN VARCHAR2 IS
2952       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2953       x_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2954       l_db_ipyv_rec                  ipyv_rec_type := get_rec(p_ipyv_rec);
2955     BEGIN
2956          --Validate Duplicate records
2957          validate_thirdparty_duplicates(p_ipyv_rec,l_return_status);
2958             IF (l_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2959               OKC_API.set_message(p_app_name 	    => G_APP_NAME,
2960   	                         p_msg_name           => 'OKL_UNIQUE'
2961   				);
2962                IF(l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2963 	         x_return_status :=l_return_status;
2964 	         RAISE G_EXCEPTION_HALT_VALIDATION;
2965 	       ELSE
2966 	         	x_return_status := l_return_status;   -- record that there was an error
2967   	       END IF;
2968             END IF;
2969 	   --Validate whether start date is less than the end date
2970          IF (l_return_status = Okc_Api.G_RET_STS_SUCCESS) THEN
2971                l_return_status:= OKL_UTIL.check_from_to_date_range(p_from_date => p_ipyv_rec.date_from
2972                                                                   ,p_to_date => p_ipyv_rec.date_to );
2973             IF (l_return_status <> Okc_Api.G_RET_STS_SUCCESS) THEN
2974                 Okc_Api.set_message(
2975                                     p_app_name     => g_app_name,
2976 			                        p_msg_name     => 'OKL_GREATER_THAN',
2977 			                        p_token1       => 'COL_NAME1',
2978 			                        p_token1_value => 'End Date',
2979 			                        p_token2       => 'COL_NAME2',
2980 			                        p_token2_value => 'Start Date'
2981 			                        );
2982             IF(l_return_status = Okc_Api.G_RET_STS_UNEXP_ERROR) THEN
2983              x_return_status :=l_return_status;
2984             RAISE G_EXCEPTION_HALT_VALIDATION;
2985             ELSE
2986             x_return_status := l_return_status;   -- record that there was an error
2987             END IF;
2988             END IF;
2989          END IF;
2990       RETURN (l_return_status);
2991     END Validate_Record;
2992     ---------------------------------------------------------------------------
2993     -- PROCEDURE Migrate
2994     ---------------------------------------------------------------------------
2995     PROCEDURE migrate (
2996       p_from IN ipyv_rec_type,
2997       p_to   IN OUT NOCOPY ipy_rec_type
2998     ) IS
2999     BEGIN
3000       p_to.id := p_from.id;
3001       p_to.ipy_type := p_from.ipy_type;
3002       p_to.name_of_insured := p_from.name_of_insured;
3003       p_to.policy_number := p_from.policy_number;
3004       p_to.insurance_factor := p_from.insurance_factor;
3005       p_to.factor_code := p_from.factor_code;
3006       p_to.calculated_premium := p_from.calculated_premium;
3007       p_to.premium := p_from.premium;
3008       p_to.covered_amount := p_from.covered_amount;
3009       p_to.deductible := p_from.deductible;
3010       p_to.adjustment := p_from.adjustment;
3011       p_to.payment_frequency := p_from.payment_frequency;
3012       p_to.crx_code := p_from.crx_code;
3013       p_to.ipf_code := p_from.ipf_code;
3014       p_to.iss_code := p_from.iss_code;
3015       p_to.ipe_code := p_from.ipe_code;
3016       p_to.date_to := p_from.date_to;
3017       p_to.date_from := p_from.date_from;
3018       p_to.date_quoted := p_from.date_quoted;
3019       p_to.date_proof_provided := p_from.date_proof_provided;
3020       p_to.date_proof_required := p_from.date_proof_required;
3021       p_to.cancellation_date := p_from.cancellation_date;
3022       p_to.date_quote_expiry := p_from.date_quote_expiry;
3023       p_to.activation_date := p_from.activation_date;
3024       p_to.quote_yn := p_from.quote_yn;
3025       p_to.on_file_yn := p_from.on_file_yn;
3026       p_to.private_label_yn := p_from.private_label_yn;
3027       p_to.agent_yn := p_from.agent_yn;
3028       p_to.lessor_insured_yn := p_from.lessor_insured_yn;
3029       p_to.lessor_payee_yn := p_from.lessor_payee_yn;
3030       p_to.khr_id := p_from.khr_id;
3031       p_to.kle_id := p_from.kle_id;
3032       p_to.ipt_id := p_from.ipt_id;
3033       p_to.ipy_id := p_from.ipy_id;
3034       p_to.int_id := p_from.int_id;
3035       p_to.isu_id := p_from.isu_id;
3036       p_to.factor_value := p_from.factor_value;
3037       p_to.agency_number := p_from.agency_number;
3038       p_to.agency_site_id := p_from.agency_site_id;
3039       p_to.sales_rep_id := p_from.sales_rep_id;
3040       p_to.agent_site_id := p_from.agent_site_id;
3041       p_to.adjusted_by_id := p_from.adjusted_by_id;
3042       p_to.territory_code := p_from.territory_code;
3043       p_to.attribute_category := p_from.attribute_category;
3044       p_to.attribute1 := p_from.attribute1;
3045       p_to.attribute2 := p_from.attribute2;
3046       p_to.attribute3 := p_from.attribute3;
3047       p_to.attribute4 := p_from.attribute4;
3048       p_to.attribute5 := p_from.attribute5;
3049       p_to.attribute6 := p_from.attribute6;
3050       p_to.attribute7 := p_from.attribute7;
3051       p_to.attribute8 := p_from.attribute8;
3052       p_to.attribute9 := p_from.attribute9;
3053       p_to.attribute10 := p_from.attribute10;
3054       p_to.attribute11 := p_from.attribute11;
3055       p_to.attribute12 := p_from.attribute12;
3056       p_to.attribute13 := p_from.attribute13;
3057       p_to.attribute14 := p_from.attribute14;
3058       p_to.attribute15 := p_from.attribute15;
3059       p_to.program_id := p_from.program_id;
3060       p_to.org_id := p_from.org_id;
3061       p_to.program_update_date := p_from.program_update_date;
3062       p_to.program_application_id := p_from.program_application_id;
3063       p_to.request_id := p_from.request_id;
3064       p_to.object_version_number := p_from.object_version_number;
3065       p_to.created_by := p_from.created_by;
3066       p_to.creation_date := p_from.creation_date;
3067       p_to.last_updated_by := p_from.last_updated_by;
3068       p_to.last_update_date := p_from.last_update_date;
3069       p_to.last_update_login := p_from.last_update_login;
3070 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
3071       p_to.lease_application_id := p_from.lease_application_id;
3072       p_to.legal_entity_id := p_from.legal_entity_id;
3073     END migrate;
3074     PROCEDURE migrate (
3075       p_from IN ipy_rec_type,
3076       p_to   IN OUT NOCOPY ipyv_rec_type
3077     ) IS
3078     BEGIN
3079       p_to.id := p_from.id;
3080       p_to.ipy_type := p_from.ipy_type;
3081       p_to.name_of_insured := p_from.name_of_insured;
3082       p_to.policy_number := p_from.policy_number;
3083       p_to.calculated_premium := p_from.calculated_premium;
3084       p_to.premium := p_from.premium;
3085       p_to.covered_amount := p_from.covered_amount;
3086       p_to.deductible := p_from.deductible;
3087       p_to.adjustment := p_from.adjustment;
3088       p_to.payment_frequency := p_from.payment_frequency;
3089       p_to.crx_code := p_from.crx_code;
3090       p_to.ipf_code := p_from.ipf_code;
3091       p_to.iss_code := p_from.iss_code;
3092       p_to.ipe_code := p_from.ipe_code;
3093       p_to.date_to := p_from.date_to;
3094       p_to.date_from := p_from.date_from;
3095       p_to.date_quoted := p_from.date_quoted;
3096       p_to.date_proof_provided := p_from.date_proof_provided;
3097       p_to.date_proof_required := p_from.date_proof_required;
3098       p_to.cancellation_date := p_from.cancellation_date;
3099       p_to.date_quote_expiry := p_from.date_quote_expiry;
3100       p_to.activation_date := p_from.activation_date;
3101       p_to.quote_yn := p_from.quote_yn;
3102       p_to.on_file_yn := p_from.on_file_yn;
3103       p_to.private_label_yn := p_from.private_label_yn;
3104       p_to.agent_yn := p_from.agent_yn;
3105       p_to.lessor_insured_yn := p_from.lessor_insured_yn;
3106       p_to.lessor_payee_yn := p_from.lessor_payee_yn;
3107       p_to.khr_id := p_from.khr_id;
3108       p_to.kle_id := p_from.kle_id;
3109       p_to.ipt_id := p_from.ipt_id;
3110       p_to.ipy_id := p_from.ipy_id;
3111       p_to.int_id := p_from.int_id;
3112       p_to.isu_id := p_from.isu_id;
3113       p_to.insurance_factor := p_from.insurance_factor;
3114       p_to.factor_code := p_from.factor_code;
3115       p_to.factor_value := p_from.factor_value;
3116       p_to.agency_number := p_from.agency_number;
3117       p_to.agency_site_id := p_from.agency_site_id;
3118       p_to.sales_rep_id := p_from.sales_rep_id;
3119       p_to.agent_site_id := p_from.agent_site_id;
3120       p_to.adjusted_by_id := p_from.adjusted_by_id;
3121       p_to.territory_code := p_from.territory_code;
3122       p_to.attribute_category := p_from.attribute_category;
3123       p_to.attribute1 := p_from.attribute1;
3124       p_to.attribute2 := p_from.attribute2;
3125       p_to.attribute3 := p_from.attribute3;
3126       p_to.attribute4 := p_from.attribute4;
3127       p_to.attribute5 := p_from.attribute5;
3128       p_to.attribute6 := p_from.attribute6;
3129       p_to.attribute7 := p_from.attribute7;
3130       p_to.attribute8 := p_from.attribute8;
3131       p_to.attribute9 := p_from.attribute9;
3132       p_to.attribute10 := p_from.attribute10;
3133       p_to.attribute11 := p_from.attribute11;
3134       p_to.attribute12 := p_from.attribute12;
3135       p_to.attribute13 := p_from.attribute13;
3136       p_to.attribute14 := p_from.attribute14;
3137       p_to.attribute15 := p_from.attribute15;
3138       p_to.program_id := p_from.program_id;
3139       p_to.org_id := p_from.org_id;
3140       p_to.program_update_date := p_from.program_update_date;
3141       p_to.program_application_id := p_from.program_application_id;
3142       p_to.request_id := p_from.request_id;
3143       p_to.object_version_number := p_from.object_version_number;
3144       p_to.created_by := p_from.created_by;
3145       p_to.creation_date := p_from.creation_date;
3146       p_to.last_updated_by := p_from.last_updated_by;
3147       p_to.last_update_date := p_from.last_update_date;
3148       p_to.last_update_login := p_from.last_update_login;
3149 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
3150       p_to.lease_application_id := p_from.lease_application_id;
3151       p_to.legal_entity_id := p_from.legal_entity_id;
3152     END migrate;
3153     PROCEDURE migrate (
3154       p_from IN ipyv_rec_type,
3155       p_to   IN OUT NOCOPY okl_ins_policies_tl_rec_type
3156     ) IS
3157     BEGIN
3158       p_to.id := p_from.id;
3159       p_to.sfwt_flag := p_from.sfwt_flag;
3160       p_to.description := p_from.description;
3161       p_to.endorsement := p_from.endorsement;
3162       p_to.comments := p_from.comments;
3163       p_to.cancellation_comment := p_from.cancellation_comment;
3164       p_to.created_by := p_from.created_by;
3165       p_to.creation_date := p_from.creation_date;
3166       p_to.last_updated_by := p_from.last_updated_by;
3167       p_to.last_update_date := p_from.last_update_date;
3168       p_to.last_update_login := p_from.last_update_login;
3169     END migrate;
3170     PROCEDURE migrate (
3171       p_from IN okl_ins_policies_tl_rec_type,
3172       p_to   IN OUT NOCOPY ipyv_rec_type
3173     ) IS
3174     BEGIN
3175       p_to.id := p_from.id;
3176       p_to.description := p_from.description;
3177       p_to.endorsement := p_from.endorsement;
3178       p_to.sfwt_flag := p_from.sfwt_flag;
3179       p_to.cancellation_comment := p_from.cancellation_comment;
3180       p_to.comments := p_from.comments;
3181       p_to.created_by := p_from.created_by;
3182       p_to.creation_date := p_from.creation_date;
3183       p_to.last_updated_by := p_from.last_updated_by;
3184       p_to.last_update_date := p_from.last_update_date;
3185       p_to.last_update_login := p_from.last_update_login;
3186     END migrate;
3187     ---------------------------------------------------------------------------
3188     -- PROCEDURE validate_row
3189     ---------------------------------------------------------------------------
3190     -----------------------------------------
3191     -- validate_row for:OKL_INS_POLICIES_V --
3192     -----------------------------------------
3193     PROCEDURE validate_row(
3194       p_api_version                  IN NUMBER,
3195       p_init_msg_list                IN VARCHAR2 ,
3196       x_return_status                OUT NOCOPY VARCHAR2,
3197       x_msg_count                    OUT NOCOPY NUMBER,
3198       x_msg_data                     OUT NOCOPY VARCHAR2,
3199       p_ipyv_rec                     IN ipyv_rec_type) IS
3200       l_api_version                  CONSTANT NUMBER := 1;
3201       l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
3202       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3203       l_ipyv_rec                     ipyv_rec_type := p_ipyv_rec;
3204       l_ipy_rec                      ipy_rec_type;
3205       l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type;
3206     BEGIN
3207       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3208                                                 G_PKG_NAME,
3209                                                 p_init_msg_list,
3210                                                 l_api_version,
3211                                                 p_api_version,
3212                                                 '_PVT',
3213                                                 x_return_status);
3214       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3215         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3216       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3217         RAISE OKC_API.G_EXCEPTION_ERROR;
3218       END IF;
3219       --- Validate all non-missing attributes (Item Level Validation)
3220       l_return_status := Validate_Attributes(l_ipyv_rec);
3221       --- If any errors happen abort API
3222       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3223         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3224       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3225         RAISE OKC_API.G_EXCEPTION_ERROR;
3226       END IF;
3227       l_return_status := Validate_Record(l_ipyv_rec);
3228       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3229         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3230       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3231         RAISE OKC_API.G_EXCEPTION_ERROR;
3232       END IF;
3233       x_return_status := l_return_status;
3234     EXCEPTION
3235       WHEN OKC_API.G_EXCEPTION_ERROR THEN
3236         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3237         (
3238           l_api_name,
3239           G_PKG_NAME,
3240           'OKC_API.G_RET_STS_ERROR',
3241           x_msg_count,
3242           x_msg_data,
3243           '_PVT'
3244         );
3245       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3246         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3247         (
3248           l_api_name,
3249           G_PKG_NAME,
3250           'OKC_API.G_RET_STS_UNEXP_ERROR',
3251           x_msg_count,
3252           x_msg_data,
3253           '_PVT'
3254         );
3255       WHEN OTHERS THEN
3256         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3257         (
3258           l_api_name,
3259           G_PKG_NAME,
3260           'OTHERS',
3261           x_msg_count,
3262           x_msg_data,
3263           '_PVT'
3264         );
3265     END validate_row;
3266     ----------------------------------------------------
3267     -- PL/SQL TBL validate_row for:OKL_INS_POLICIES_V --
3268     ----------------------------------------------------
3269     PROCEDURE validate_row(
3270       p_api_version                  IN NUMBER,
3271       p_init_msg_list                IN VARCHAR2 ,
3272       x_return_status                OUT NOCOPY VARCHAR2,
3273       x_msg_count                    OUT NOCOPY NUMBER,
3274       x_msg_data                     OUT NOCOPY VARCHAR2,
3275       p_ipyv_tbl                     IN ipyv_tbl_type,
3276       px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3277       l_api_version                  CONSTANT NUMBER := 1;
3278       l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
3279       i                              NUMBER := 0;
3280     BEGIN
3281       OKC_API.init_msg_list(p_init_msg_list);
3282       -- Make sure PL/SQL table has records in it before passing
3283       IF (p_ipyv_tbl.COUNT > 0) THEN
3284         i := p_ipyv_tbl.FIRST;
3285         LOOP
3286           DECLARE
3287             l_error_rec         OKL_API.ERROR_REC_TYPE;
3288           BEGIN
3289             l_error_rec.api_name := l_api_name;
3290             l_error_rec.api_package := G_PKG_NAME;
3291             l_error_rec.idx := i;
3292             validate_row (
3293               p_api_version                  => p_api_version,
3294               p_init_msg_list                => OKC_API.G_FALSE,
3295               x_return_status                => l_error_rec.error_type,
3296               x_msg_count                    => l_error_rec.msg_count,
3297               x_msg_data                     => l_error_rec.msg_data,
3298               p_ipyv_rec                     => p_ipyv_tbl(i));
3299             IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
3300               l_error_rec.sqlcode := SQLCODE;
3301               load_error_tbl(l_error_rec, px_error_tbl);
3302             ELSE
3303               x_msg_count := l_error_rec.msg_count;
3304               x_msg_data := l_error_rec.msg_data;
3305             END IF;
3306           EXCEPTION
3307             WHEN OKC_API.G_EXCEPTION_ERROR THEN
3308               l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
3309               l_error_rec.sqlcode := SQLCODE;
3310               load_error_tbl(l_error_rec, px_error_tbl);
3311             WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3312               l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
3313               l_error_rec.sqlcode := SQLCODE;
3314               load_error_tbl(l_error_rec, px_error_tbl);
3315             WHEN OTHERS THEN
3316               l_error_rec.error_type := 'OTHERS';
3317               l_error_rec.sqlcode := SQLCODE;
3318               load_error_tbl(l_error_rec, px_error_tbl);
3319           END;
3320           EXIT WHEN (i = p_ipyv_tbl.LAST);
3321           i := p_ipyv_tbl.NEXT(i);
3322         END LOOP;
3323       END IF;
3324       -- Loop through the error_tbl to find the error with the highest severity
3325       -- and return it.
3326       x_return_status := find_highest_exception(px_error_tbl);
3327       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3328     EXCEPTION
3329       WHEN OKC_API.G_EXCEPTION_ERROR THEN
3330         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3331         (
3332           l_api_name,
3333           G_PKG_NAME,
3334           'OKC_API.G_RET_STS_ERROR',
3335           x_msg_count,
3336           x_msg_data,
3337           '_PVT'
3338         );
3339       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3340         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3341         (
3342           l_api_name,
3343           G_PKG_NAME,
3344           'OKC_API.G_RET_STS_UNEXP_ERROR',
3345           x_msg_count,
3346           x_msg_data,
3347           '_PVT'
3348         );
3349       WHEN OTHERS THEN
3350         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3351         (
3352           l_api_name,
3353           G_PKG_NAME,
3354           'OTHERS',
3355           x_msg_count,
3356           x_msg_data,
3357           '_PVT'
3358         );
3359     END validate_row;
3360     ----------------------------------------------------
3361     -- PL/SQL TBL validate_row for:OKL_INS_POLICIES_V --
3362     ----------------------------------------------------
3363     PROCEDURE validate_row(
3364       p_api_version                  IN NUMBER,
3365       p_init_msg_list                IN VARCHAR2 ,
3366       x_return_status                OUT NOCOPY VARCHAR2,
3367       x_msg_count                    OUT NOCOPY NUMBER,
3368       x_msg_data                     OUT NOCOPY VARCHAR2,
3369       p_ipyv_tbl                     IN ipyv_tbl_type) IS
3370       l_api_version                  CONSTANT NUMBER := 1;
3371       l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
3372       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3373       l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
3374     BEGIN
3375       OKC_API.init_msg_list(p_init_msg_list);
3376       -- Make sure PL/SQL table has records in it before passing
3377       IF (p_ipyv_tbl.COUNT > 0) THEN
3378         validate_row (
3379           p_api_version                  => p_api_version,
3380           p_init_msg_list                => OKC_API.G_FALSE,
3381           x_return_status                => x_return_status,
3382           x_msg_count                    => x_msg_count,
3383           x_msg_data                     => x_msg_data,
3384           p_ipyv_tbl                     => p_ipyv_tbl,
3385           px_error_tbl                   => l_error_tbl);
3386       END IF;
3387       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3388     EXCEPTION
3389       WHEN OKC_API.G_EXCEPTION_ERROR THEN
3390         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3391         (
3392           l_api_name,
3393           G_PKG_NAME,
3394           'OKC_API.G_RET_STS_ERROR',
3395           x_msg_count,
3396           x_msg_data,
3397           '_PVT'
3398         );
3399       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3400         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3401         (
3402           l_api_name,
3403           G_PKG_NAME,
3404           'OKC_API.G_RET_STS_UNEXP_ERROR',
3405           x_msg_count,
3406           x_msg_data,
3407           '_PVT'
3408         );
3409       WHEN OTHERS THEN
3410         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3411         (
3412           l_api_name,
3413           G_PKG_NAME,
3414           'OTHERS',
3415           x_msg_count,
3416           x_msg_data,
3417           '_PVT'
3418         );
3419     END validate_row;
3420     ---------------------------------------------------------------------------
3421     -- PROCEDURE insert_row
3422     ---------------------------------------------------------------------------
3423     ---------------------------------------
3424     -- insert_row for:OKL_INS_POLICIES_B --
3425     ---------------------------------------
3426     PROCEDURE insert_row(
3427       p_init_msg_list                IN VARCHAR2 ,
3428       x_return_status                OUT NOCOPY VARCHAR2,
3429       x_msg_count                    OUT NOCOPY NUMBER,
3430       x_msg_data                     OUT NOCOPY VARCHAR2,
3431       p_ipy_rec                      IN ipy_rec_type,
3432       x_ipy_rec                      OUT NOCOPY ipy_rec_type) IS
3433       l_api_version                  CONSTANT NUMBER := 1;
3434       l_api_name                     CONSTANT VARCHAR2(30) := 'B_insert_row';
3435       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3436       l_ipy_rec                      ipy_rec_type := p_ipy_rec;
3437       l_def_ipy_rec                  ipy_rec_type;
3438       -------------------------------------------
3439       -- Set_Attributes for:OKL_INS_POLICIES_B --
3440       -------------------------------------------
3441       FUNCTION Set_Attributes (
3442         p_ipy_rec IN ipy_rec_type,
3443         x_ipy_rec OUT NOCOPY ipy_rec_type
3444       ) RETURN VARCHAR2 IS
3445         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3446 	l_org_id NUMBER;
3447       BEGIN
3448         x_ipy_rec := p_ipy_rec;
3449         SELECT NVL(DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,FND_GLOBAL.CONC_REQUEST_ID),l_ipy_rec.request_id),
3450 	                               NVL(DECODE(FND_GLOBAL.PROG_APPL_ID,-1,NULL,FND_GLOBAL.PROG_APPL_ID),l_ipy_rec.program_application_id),
3451 	                               NVL(DECODE(FND_GLOBAL.CONC_PROGRAM_ID,-1,NULL,FND_GLOBAL.CONC_PROGRAM_ID),l_ipy_rec.program_id),
3452 	                               DECODE(DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,SYSDATE),NULL,l_ipy_rec.program_update_date,SYSDATE),
3453 				       MO_GLOBAL.GET_CURRENT_ORG_ID()
3454 	                               INTO x_ipy_rec.request_id,
3455 	                                    x_ipy_rec.program_application_id,
3456 	                                    x_ipy_rec.program_id,
3457 	                                    x_ipy_rec.program_update_date,
3458                                             l_org_id -- Change by zrehman for Bug#6363652 9-Oct-2007
3459                                        FROM dual;
3460         IF (x_ipy_rec.org_id IS NULL OR x_ipy_rec.org_id = OKC_API.G_MISS_NUM) THEN
3461 	  x_ipy_rec.org_id := l_org_id;
3462 	END IF;
3463 
3464         RETURN(l_return_status);
3465       END Set_Attributes;
3466     BEGIN
3467       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3468                                                 p_init_msg_list,
3469                                                 '_PVT',
3470                                                 x_return_status);
3471       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3472         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3473       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3474         RAISE OKC_API.G_EXCEPTION_ERROR;
3475       END IF;
3476       --- Setting item atributes
3477       l_return_status := Set_Attributes(
3478         p_ipy_rec,                         -- IN
3479         l_ipy_rec);                        -- OUT
3480       --- If any errors happen abort API
3481       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3482         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3483       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3484         RAISE OKC_API.G_EXCEPTION_ERROR;
3485       END IF;
3486       INSERT INTO OKL_INS_POLICIES_B(
3487         id,
3488         ipy_type,
3489         name_of_insured,
3490         policy_number,
3491         insurance_factor,
3492         factor_code,
3493         calculated_premium,
3494         premium,
3495         covered_amount,
3496         deductible,
3497         adjustment,
3498         payment_frequency,
3499         crx_code,
3500         ipf_code,
3501         iss_code,
3502         ipe_code,
3503         date_to,
3504         date_from,
3505         date_quoted,
3506         date_proof_provided,
3507         date_proof_required,
3508         cancellation_date,
3509         date_quote_expiry,
3510         activation_date,
3511         quote_yn,
3512         on_file_yn,
3513         private_label_yn,
3514         agent_yn,
3515         lessor_insured_yn,
3516         lessor_payee_yn,
3517         khr_id,
3518         kle_id,
3519         ipt_id,
3520         ipy_id,
3521         int_id,
3522         isu_id,
3523         factor_value,
3524         agency_number,
3525         agency_site_id,
3526         sales_rep_id,
3527         agent_site_id,
3528         adjusted_by_id,
3529         territory_code,
3530         attribute_category,
3531         attribute1,
3532         attribute2,
3533         attribute3,
3534         attribute4,
3535         attribute5,
3536         attribute6,
3537         attribute7,
3538         attribute8,
3539         attribute9,
3540         attribute10,
3541         attribute11,
3542         attribute12,
3543         attribute13,
3544         attribute14,
3545         attribute15,
3546         program_id,
3547         org_id,
3548         program_update_date,
3549         program_application_id,
3550         request_id,
3551         object_version_number,
3552         created_by,
3553         creation_date,
3554         last_updated_by,
3555         last_update_date,
3556         last_update_login,
3557 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
3558         lease_application_id,
3559         legal_entity_id)
3560       VALUES (
3561         l_ipy_rec.id,
3562         l_ipy_rec.ipy_type,
3563         l_ipy_rec.name_of_insured,
3564         l_ipy_rec.policy_number,
3565         l_ipy_rec.insurance_factor,
3566         l_ipy_rec.factor_code,
3567         l_ipy_rec.calculated_premium,
3568         l_ipy_rec.premium,
3569         l_ipy_rec.covered_amount,
3570         l_ipy_rec.deductible,
3571         l_ipy_rec.adjustment,
3572         l_ipy_rec.payment_frequency,
3573         l_ipy_rec.crx_code,
3574         l_ipy_rec.ipf_code,
3575         l_ipy_rec.iss_code,
3576         l_ipy_rec.ipe_code,
3577         l_ipy_rec.date_to,
3578         l_ipy_rec.date_from,
3579         l_ipy_rec.date_quoted,
3580         l_ipy_rec.date_proof_provided,
3581         l_ipy_rec.date_proof_required,
3582         l_ipy_rec.cancellation_date,
3583         l_ipy_rec.date_quote_expiry,
3584         l_ipy_rec.activation_date,
3585         l_ipy_rec.quote_yn,
3586         l_ipy_rec.on_file_yn,
3587         l_ipy_rec.private_label_yn,
3588         l_ipy_rec.agent_yn,
3589         l_ipy_rec.lessor_insured_yn,
3590         l_ipy_rec.lessor_payee_yn,
3591         l_ipy_rec.khr_id,
3592         l_ipy_rec.kle_id,
3593         l_ipy_rec.ipt_id,
3594         l_ipy_rec.ipy_id,
3595         l_ipy_rec.int_id,
3596         l_ipy_rec.isu_id,
3597         l_ipy_rec.factor_value,
3598         l_ipy_rec.agency_number,
3599         l_ipy_rec.agency_site_id,
3600         l_ipy_rec.sales_rep_id,
3601         l_ipy_rec.agent_site_id,
3602         l_ipy_rec.adjusted_by_id,
3603         l_ipy_rec.territory_code,
3604         l_ipy_rec.attribute_category,
3605         l_ipy_rec.attribute1,
3606         l_ipy_rec.attribute2,
3607         l_ipy_rec.attribute3,
3608         l_ipy_rec.attribute4,
3609         l_ipy_rec.attribute5,
3610         l_ipy_rec.attribute6,
3611         l_ipy_rec.attribute7,
3612         l_ipy_rec.attribute8,
3613         l_ipy_rec.attribute9,
3614         l_ipy_rec.attribute10,
3615         l_ipy_rec.attribute11,
3616         l_ipy_rec.attribute12,
3617         l_ipy_rec.attribute13,
3618         l_ipy_rec.attribute14,
3619         l_ipy_rec.attribute15,
3620         l_ipy_rec.program_id,
3621         l_ipy_rec.org_id,
3622         l_ipy_rec.program_update_date,
3623         l_ipy_rec.program_application_id,
3624         l_ipy_rec.request_id,
3625         l_ipy_rec.object_version_number,
3626         l_ipy_rec.created_by,
3627         l_ipy_rec.creation_date,
3628         l_ipy_rec.last_updated_by,
3629         l_ipy_rec.last_update_date,
3630         l_ipy_rec.last_update_login,
3631 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
3632         l_ipy_rec.lease_application_id,
3633         l_ipy_rec.legal_entity_id);
3634       -- Set OUT values
3635       x_ipy_rec := l_ipy_rec;
3636       x_return_status := l_return_status;
3637       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3638     EXCEPTION
3639       WHEN OKC_API.G_EXCEPTION_ERROR THEN
3640         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3641         (
3642           l_api_name,
3643           G_PKG_NAME,
3644           'OKC_API.G_RET_STS_ERROR',
3645           x_msg_count,
3646           x_msg_data,
3647           '_PVT'
3648         );
3649       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3650         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3651         (
3652           l_api_name,
3653           G_PKG_NAME,
3654           'OKC_API.G_RET_STS_UNEXP_ERROR',
3655           x_msg_count,
3656           x_msg_data,
3657           '_PVT'
3658         );
3659       WHEN OTHERS THEN
3660         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3661         (
3662           l_api_name,
3663           G_PKG_NAME,
3664           'OTHERS',
3665           x_msg_count,
3666           x_msg_data,
3667           '_PVT'
3668         );
3669     END insert_row;
3670     ----------------------------------------
3671     -- insert_row for:OKL_INS_POLICIES_TL --
3672     ----------------------------------------
3673     PROCEDURE insert_row(
3674       p_init_msg_list                IN VARCHAR2 ,
3675       x_return_status                OUT NOCOPY VARCHAR2,
3676       x_msg_count                    OUT NOCOPY NUMBER,
3677       x_msg_data                     OUT NOCOPY VARCHAR2,
3678       p_okl_ins_policies_tl_rec      IN okl_ins_policies_tl_rec_type,
3679       x_okl_ins_policies_tl_rec      OUT NOCOPY okl_ins_policies_tl_rec_type) IS
3680       l_api_version                  CONSTANT NUMBER := 1;
3681       l_api_name                     CONSTANT VARCHAR2(30) := 'TL_insert_row';
3682       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3683       l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type := p_okl_ins_policies_tl_rec;
3684       l_def_okl_ins_policies_tl_rec  okl_ins_policies_tl_rec_type;
3685       CURSOR get_languages IS
3686         SELECT *
3687           FROM FND_LANGUAGES
3688          WHERE INSTALLED_FLAG IN ('I', 'B');
3689       --------------------------------------------
3690       -- Set_Attributes for:OKL_INS_POLICIES_TL --
3691       --------------------------------------------
3692       FUNCTION Set_Attributes (
3693         p_okl_ins_policies_tl_rec IN okl_ins_policies_tl_rec_type,
3694         x_okl_ins_policies_tl_rec OUT NOCOPY okl_ins_policies_tl_rec_type
3695       ) RETURN VARCHAR2 IS
3696         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3697       BEGIN
3698         x_okl_ins_policies_tl_rec := p_okl_ins_policies_tl_rec;
3699         x_okl_ins_policies_tl_rec.LANGUAGE := USERENV('LANG');
3700         x_okl_ins_policies_tl_rec.SOURCE_LANG := USERENV('LANG');
3701         RETURN(l_return_status);
3702       END Set_Attributes;
3703     BEGIN
3704       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3705                                                 p_init_msg_list,
3706                                                 '_PVT',
3707                                                 x_return_status);
3708       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3709         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3710       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3711         RAISE OKC_API.G_EXCEPTION_ERROR;
3712       END IF;
3713       --- Setting item attributes
3714       l_return_status := Set_Attributes(
3715         p_okl_ins_policies_tl_rec,         -- IN
3716         l_okl_ins_policies_tl_rec);        -- OUT
3717       --- If any errors happen abort API
3718       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3719         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3720       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3721         RAISE OKC_API.G_EXCEPTION_ERROR;
3722       END IF;
3723       FOR l_lang_rec IN get_languages LOOP
3724         l_okl_ins_policies_tl_rec.language := l_lang_rec.language_code;
3725         INSERT INTO OKL_INS_POLICIES_TL(
3726           id,
3727           language,
3728           source_lang,
3729           sfwt_flag,
3730           description,
3731           endorsement,
3732           comments,
3733           cancellation_comment,
3734           created_by,
3735           creation_date,
3736           last_updated_by,
3737           last_update_date,
3738           last_update_login)
3739         VALUES (
3740           l_okl_ins_policies_tl_rec.id,
3741           l_okl_ins_policies_tl_rec.language,
3742           l_okl_ins_policies_tl_rec.source_lang,
3743           l_okl_ins_policies_tl_rec.sfwt_flag,
3744           l_okl_ins_policies_tl_rec.description,
3745           l_okl_ins_policies_tl_rec.endorsement,
3746           l_okl_ins_policies_tl_rec.comments,
3747           l_okl_ins_policies_tl_rec.cancellation_comment,
3748           l_okl_ins_policies_tl_rec.created_by,
3749           l_okl_ins_policies_tl_rec.creation_date,
3750           l_okl_ins_policies_tl_rec.last_updated_by,
3751           l_okl_ins_policies_tl_rec.last_update_date,
3752           l_okl_ins_policies_tl_rec.last_update_login);
3753       END LOOP;
3754       -- Set OUT values
3755       x_okl_ins_policies_tl_rec := l_okl_ins_policies_tl_rec;
3756       x_return_status := l_return_status;
3757       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3758     EXCEPTION
3759       WHEN OKC_API.G_EXCEPTION_ERROR THEN
3760         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3761         (
3762           l_api_name,
3763           G_PKG_NAME,
3764           'OKC_API.G_RET_STS_ERROR',
3765           x_msg_count,
3766           x_msg_data,
3767           '_PVT'
3768         );
3769       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3770         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3771         (
3772           l_api_name,
3773           G_PKG_NAME,
3774           'OKC_API.G_RET_STS_UNEXP_ERROR',
3775           x_msg_count,
3776           x_msg_data,
3777           '_PVT'
3778         );
3779       WHEN OTHERS THEN
3780         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3781         (
3782           l_api_name,
3783           G_PKG_NAME,
3784           'OTHERS',
3785           x_msg_count,
3786           x_msg_data,
3787           '_PVT'
3788         );
3789     END insert_row;
3790     ----------------------------------------
3791     -- insert_row for :OKL_INS_POLICIES_V --
3792     ----------------------------------------
3793     PROCEDURE insert_row(
3794       p_api_version                  IN NUMBER,
3795       p_init_msg_list                IN VARCHAR2 ,
3796       x_return_status                OUT NOCOPY VARCHAR2,
3797       x_msg_count                    OUT NOCOPY NUMBER,
3798       x_msg_data                     OUT NOCOPY VARCHAR2,
3799       p_ipyv_rec                     IN ipyv_rec_type,
3800       x_ipyv_rec                     OUT NOCOPY ipyv_rec_type) IS
3801       l_api_version                  CONSTANT NUMBER := 1;
3802       l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
3803       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3804       l_ipyv_rec                     ipyv_rec_type := p_ipyv_rec;
3805       l_def_ipyv_rec                 ipyv_rec_type;
3806       l_ipy_rec                      ipy_rec_type;
3807       lx_ipy_rec                     ipy_rec_type;
3808       l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type;
3809       lx_okl_ins_policies_tl_rec     okl_ins_policies_tl_rec_type;
3810       -------------------------------
3811       -- FUNCTION fill_who_columns --
3812       -------------------------------
3813       FUNCTION fill_who_columns (
3814         p_ipyv_rec IN ipyv_rec_type
3815       ) RETURN ipyv_rec_type IS
3816         l_ipyv_rec ipyv_rec_type := p_ipyv_rec;
3817       BEGIN
3818         l_ipyv_rec.CREATION_DATE := SYSDATE;
3819         l_ipyv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
3820         l_ipyv_rec.LAST_UPDATE_DATE := l_ipyv_rec.CREATION_DATE;
3821         l_ipyv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3822         l_ipyv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3823         RETURN(l_ipyv_rec);
3824       END fill_who_columns;
3825       -------------------------------------------
3826       -- Set_Attributes for:OKL_INS_POLICIES_V --
3827       -------------------------------------------
3828       FUNCTION Set_Attributes (
3829         p_ipyv_rec IN ipyv_rec_type,
3830         x_ipyv_rec OUT NOCOPY ipyv_rec_type
3831       ) RETURN VARCHAR2 IS
3832         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3833 	l_org_id NUMBER;
3834       BEGIN
3835         x_ipyv_rec := p_ipyv_rec;
3836         x_ipyv_rec.OBJECT_VERSION_NUMBER := 1;
3837         x_ipyv_rec.SFWT_FLAG := 'N';
3838         SELECT DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,FND_GLOBAL.CONC_REQUEST_ID),
3839 	                        DECODE(FND_GLOBAL.PROG_APPL_ID,-1,NULL,FND_GLOBAL.PROG_APPL_ID),
3840 	                        DECODE(FND_GLOBAL.CONC_PROGRAM_ID,-1,NULL,FND_GLOBAL.CONC_PROGRAM_ID),
3841 	                        DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,SYSDATE),
3842 	                        MO_GLOBAL.GET_CURRENT_ORG_ID()
3843 	INTO x_ipyv_rec.request_id,
3844 	     x_ipyv_rec.program_application_id,
3845 	     x_ipyv_rec.program_id,
3846 	     x_ipyv_rec.program_update_date,
3847              l_org_id  ---- Change by zrehman for Bug#6363652 9-Oct-2007
3848 	FROM dual;
3849         IF(x_ipyv_rec.org_id IS NULL OR x_ipyv_rec.org_id = OKC_API.G_MISS_NUM) THEN
3850 	  x_ipyv_rec.org_id := l_org_id;
3851 	END IF;
3852         RETURN(l_return_status);
3853       END Set_Attributes;
3854 
3855       -------------------------------------------
3856       -- Set_adjustedby_Id for:OKL_INS_POLICIES_V --
3857       --added as a fix for bug 2513901
3858       -------------------------------------------
3859        FUNCTION set_adjustedby_id(
3860       p_ipyv_rec IN ipyv_rec_type
3861       )RETURN ipyv_rec_type IS
3862       l_ipyv_rec_type ipyv_rec_type:=p_ipyv_rec;
3863       Begin
3864         IF (l_ipyv_rec_type.adjustment IS NOT NULL) THEN
3865         l_ipyv_rec_type.adjusted_by_id := FND_GLOBAL.USER_ID;
3866         END IF;
3867         return (l_ipyv_rec_type);
3868       End set_adjustedby_id;
3869 
3870     BEGIN
3871       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3872                                                 G_PKG_NAME,
3873                                                 p_init_msg_list,
3874                                                 l_api_version,
3875                                                 p_api_version,
3876                                                 '_PVT',
3877                                                 x_return_status);
3878       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3879         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3880       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3881         RAISE OKC_API.G_EXCEPTION_ERROR;
3882       END IF;
3883       l_ipyv_rec := null_out_defaults(p_ipyv_rec);
3884       -- Set primary key value
3885       l_ipyv_rec.ID := get_seq_id;
3886       -- Setting item attributes
3887       l_return_Status := Set_Attributes(
3888         l_ipyv_rec,                        -- IN
3889         l_def_ipyv_rec);                   -- OUT
3890       --- If any errors happen abort API
3891       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3892         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3893       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3894         RAISE OKC_API.G_EXCEPTION_ERROR;
3895       END IF;
3896       l_def_ipyv_rec := fill_who_columns(l_def_ipyv_rec);
3897       --- Validate all non-missing attributes (Item Level Validation)
3898       l_return_status := Validate_Attributes(l_def_ipyv_rec);
3899       --- If any errors happen abort API
3900       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3901         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3902       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3903         RAISE OKC_API.G_EXCEPTION_ERROR;
3904       END IF;
3905       --Added for bug 2513901
3906       -- Setting adjusted by ID
3907       l_def_ipyv_rec := set_adjustedby_id(l_def_ipyv_rec);
3908       l_return_status := Validate_Record(l_def_ipyv_rec);
3909       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3910         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3911       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3912         RAISE OKC_API.G_EXCEPTION_ERROR;
3913       END IF;
3914       -----------------------------------------
3915       -- Move VIEW record to "Child" records --
3916       -----------------------------------------
3917       migrate(l_def_ipyv_rec, l_ipy_rec);
3918       migrate(l_def_ipyv_rec, l_okl_ins_policies_tl_rec);
3919       -----------------------------------------------
3920       -- Call the INSERT_ROW for each child record --
3921       -----------------------------------------------
3922       insert_row(
3923         p_init_msg_list,
3924         l_return_status,
3925         x_msg_count,
3926         x_msg_data,
3927         l_ipy_rec,
3928         lx_ipy_rec
3929       );
3930       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3931         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3932       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3933         RAISE OKC_API.G_EXCEPTION_ERROR;
3934       END IF;
3935       migrate(lx_ipy_rec, l_def_ipyv_rec);
3936       insert_row(
3937         p_init_msg_list,
3938         l_return_status,
3939         x_msg_count,
3940         x_msg_data,
3941         l_okl_ins_policies_tl_rec,
3942         lx_okl_ins_policies_tl_rec
3943       );
3944       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3945         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3946       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3947         RAISE OKC_API.G_EXCEPTION_ERROR;
3948       END IF;
3949       migrate(lx_okl_ins_policies_tl_rec, l_def_ipyv_rec);
3950       -- Set OUT values
3951       x_ipyv_rec := l_def_ipyv_rec;
3952       x_return_status := l_return_status;
3953       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3954     EXCEPTION
3955       WHEN OKC_API.G_EXCEPTION_ERROR THEN
3956         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3957         (
3958           l_api_name,
3959           G_PKG_NAME,
3960           'OKC_API.G_RET_STS_ERROR',
3961           x_msg_count,
3962           x_msg_data,
3963           '_PVT'
3964         );
3965       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3966         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3967         (
3968           l_api_name,
3969           G_PKG_NAME,
3970           'OKC_API.G_RET_STS_UNEXP_ERROR',
3971           x_msg_count,
3972           x_msg_data,
3973           '_PVT'
3974         );
3975       WHEN OTHERS THEN
3976         x_return_status := OKC_API.HANDLE_EXCEPTIONS
3977         (
3978           l_api_name,
3979           G_PKG_NAME,
3980           'OTHERS',
3981           x_msg_count,
3982           x_msg_data,
3983           '_PVT'
3984         );
3985     END insert_row;
3986     ----------------------------------------
3987     -- PL/SQL TBL insert_row for:IPYV_TBL --
3988     ----------------------------------------
3989     PROCEDURE insert_row(
3990       p_api_version                  IN NUMBER,
3991       p_init_msg_list                IN VARCHAR2 ,
3992       x_return_status                OUT NOCOPY VARCHAR2,
3993       x_msg_count                    OUT NOCOPY NUMBER,
3994       x_msg_data                     OUT NOCOPY VARCHAR2,
3995       p_ipyv_tbl                     IN ipyv_tbl_type,
3996       x_ipyv_tbl                     OUT NOCOPY ipyv_tbl_type,
3997       px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3998       l_api_version                  CONSTANT NUMBER := 1;
3999       l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
4000       i                              NUMBER := 0;
4001     BEGIN
4002       OKC_API.init_msg_list(p_init_msg_list);
4003       -- Make sure PL/SQL table has records in it before passing
4004       IF (p_ipyv_tbl.COUNT > 0) THEN
4005         i := p_ipyv_tbl.FIRST;
4006         LOOP
4007           DECLARE
4008             l_error_rec         OKL_API.ERROR_REC_TYPE;
4009           BEGIN
4010             l_error_rec.api_name := l_api_name;
4011             l_error_rec.api_package := G_PKG_NAME;
4012             l_error_rec.idx := i;
4013             insert_row (
4014               p_api_version                  => p_api_version,
4015               p_init_msg_list                => OKC_API.G_FALSE,
4016               x_return_status                => l_error_rec.error_type,
4017               x_msg_count                    => l_error_rec.msg_count,
4018               x_msg_data                     => l_error_rec.msg_data,
4019               p_ipyv_rec                     => p_ipyv_tbl(i),
4020               x_ipyv_rec                     => x_ipyv_tbl(i));
4021             IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
4022               l_error_rec.sqlcode := SQLCODE;
4023               load_error_tbl(l_error_rec, px_error_tbl);
4024             ELSE
4025               x_msg_count := l_error_rec.msg_count;
4026               x_msg_data := l_error_rec.msg_data;
4027             END IF;
4028           EXCEPTION
4029             WHEN OKC_API.G_EXCEPTION_ERROR THEN
4030               l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
4031               l_error_rec.sqlcode := SQLCODE;
4032               load_error_tbl(l_error_rec, px_error_tbl);
4033             WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4034               l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
4035               l_error_rec.sqlcode := SQLCODE;
4036               load_error_tbl(l_error_rec, px_error_tbl);
4037             WHEN OTHERS THEN
4038               l_error_rec.error_type := 'OTHERS';
4039               l_error_rec.sqlcode := SQLCODE;
4040               load_error_tbl(l_error_rec, px_error_tbl);
4041           END;
4042           EXIT WHEN (i = p_ipyv_tbl.LAST);
4043           i := p_ipyv_tbl.NEXT(i);
4044         END LOOP;
4045       END IF;
4046       -- Loop through the error_tbl to find the error with the highest severity
4047       -- and return it.
4048       x_return_status := find_highest_exception(px_error_tbl);
4049       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4050     EXCEPTION
4051       WHEN OKC_API.G_EXCEPTION_ERROR THEN
4052         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4053         (
4054           l_api_name,
4055           G_PKG_NAME,
4056           'OKC_API.G_RET_STS_ERROR',
4057           x_msg_count,
4058           x_msg_data,
4059           '_PVT'
4060         );
4061       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4062         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4063         (
4064           l_api_name,
4065           G_PKG_NAME,
4066           'OKC_API.G_RET_STS_UNEXP_ERROR',
4067           x_msg_count,
4068           x_msg_data,
4069           '_PVT'
4070         );
4071       WHEN OTHERS THEN
4072         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4073         (
4074           l_api_name,
4075           G_PKG_NAME,
4076           'OTHERS',
4077           x_msg_count,
4078           x_msg_data,
4079           '_PVT'
4080         );
4081     END insert_row;
4082     ----------------------------------------
4083     -- PL/SQL TBL insert_row for:IPYV_TBL --
4084     ----------------------------------------
4085     PROCEDURE insert_row(
4086       p_api_version                  IN NUMBER,
4087       p_init_msg_list                IN VARCHAR2 ,
4088       x_return_status                OUT NOCOPY VARCHAR2,
4089       x_msg_count                    OUT NOCOPY NUMBER,
4090       x_msg_data                     OUT NOCOPY VARCHAR2,
4091       p_ipyv_tbl                     IN ipyv_tbl_type,
4092       x_ipyv_tbl                     OUT NOCOPY ipyv_tbl_type) IS
4093       l_api_version                  CONSTANT NUMBER := 1;
4094       l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
4095       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4096       l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
4097     BEGIN
4098       OKC_API.init_msg_list(p_init_msg_list);
4099       -- Make sure PL/SQL table has records in it before passing
4100       IF (p_ipyv_tbl.COUNT > 0) THEN
4101         insert_row (
4102           p_api_version                  => p_api_version,
4103           p_init_msg_list                => OKC_API.G_FALSE,
4104           x_return_status                => x_return_status,
4105           x_msg_count                    => x_msg_count,
4106           x_msg_data                     => x_msg_data,
4107           p_ipyv_tbl                     => p_ipyv_tbl,
4108           x_ipyv_tbl                     => x_ipyv_tbl,
4109           px_error_tbl                   => l_error_tbl);
4110       END IF;
4111       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4112     EXCEPTION
4113       WHEN OKC_API.G_EXCEPTION_ERROR THEN
4114         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4115         (
4116           l_api_name,
4117           G_PKG_NAME,
4118           'OKC_API.G_RET_STS_ERROR',
4119           x_msg_count,
4120           x_msg_data,
4121           '_PVT'
4122         );
4123       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4124         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4125         (
4126           l_api_name,
4127           G_PKG_NAME,
4128           'OKC_API.G_RET_STS_UNEXP_ERROR',
4129           x_msg_count,
4130           x_msg_data,
4131           '_PVT'
4132         );
4133       WHEN OTHERS THEN
4134         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4135         (
4136           l_api_name,
4137           G_PKG_NAME,
4138           'OTHERS',
4139           x_msg_count,
4140           x_msg_data,
4141           '_PVT'
4142         );
4143     END insert_row;
4144     ---------------------------------------------------------------------------
4145     -- PROCEDURE lock_row
4146     ---------------------------------------------------------------------------
4147     -------------------------------------
4148     -- lock_row for:OKL_INS_POLICIES_B --
4149     -------------------------------------
4150     PROCEDURE lock_row(
4151       p_init_msg_list                IN VARCHAR2 ,
4152       x_return_status                OUT NOCOPY VARCHAR2,
4153       x_msg_count                    OUT NOCOPY NUMBER,
4154       x_msg_data                     OUT NOCOPY VARCHAR2,
4155       p_ipy_rec                      IN ipy_rec_type) IS
4156       E_Resource_Busy                EXCEPTION;
4157       PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
4158       CURSOR lock_csr (p_ipy_rec IN ipy_rec_type) IS
4159       SELECT OBJECT_VERSION_NUMBER
4160         FROM OKL_INS_POLICIES_B
4161        WHERE ID = p_ipy_rec.id
4162          AND OBJECT_VERSION_NUMBER = p_ipy_rec.object_version_number
4163       FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
4164       CURSOR lchk_csr (p_ipy_rec IN ipy_rec_type) IS
4165       SELECT OBJECT_VERSION_NUMBER
4166         FROM OKL_INS_POLICIES_B
4167        WHERE ID = p_ipy_rec.id;
4168       l_api_version                  CONSTANT NUMBER := 1;
4169       l_api_name                     CONSTANT VARCHAR2(30) := 'B_lock_row';
4170       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4171       l_object_version_number        OKL_INS_POLICIES_B.OBJECT_VERSION_NUMBER%TYPE;
4172       lc_object_version_number       OKL_INS_POLICIES_B.OBJECT_VERSION_NUMBER%TYPE;
4173       l_row_notfound                 BOOLEAN := FALSE;
4174       lc_row_notfound                BOOLEAN := FALSE;
4175     BEGIN
4176       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4177                                                 p_init_msg_list,
4178                                                 '_PVT',
4179                                                 x_return_status);
4180       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4181         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4182       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4183         RAISE OKC_API.G_EXCEPTION_ERROR;
4184       END IF;
4185       BEGIN
4186         OPEN lock_csr(p_ipy_rec);
4187         FETCH lock_csr INTO l_object_version_number;
4188         l_row_notfound := lock_csr%NOTFOUND;
4189         CLOSE lock_csr;
4190       EXCEPTION
4191         WHEN E_Resource_Busy THEN
4192           IF (lock_csr%ISOPEN) THEN
4193             CLOSE lock_csr;
4194           END IF;
4195           OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
4196           RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
4197       END;
4198       IF ( l_row_notfound ) THEN
4199         OPEN lchk_csr(p_ipy_rec);
4200         FETCH lchk_csr INTO lc_object_version_number;
4201         lc_row_notfound := lchk_csr%NOTFOUND;
4202         CLOSE lchk_csr;
4203       END IF;
4204       IF (lc_row_notfound) THEN
4205         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
4206         RAISE OKC_API.G_EXCEPTION_ERROR;
4207       ELSIF lc_object_version_number > p_ipy_rec.object_version_number THEN
4208         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
4209         RAISE OKC_API.G_EXCEPTION_ERROR;
4210       ELSIF lc_object_version_number <> p_ipy_rec.object_version_number THEN
4211         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
4212         RAISE OKC_API.G_EXCEPTION_ERROR;
4213       ELSIF lc_object_version_number = -1 THEN
4214         OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
4215         RAISE OKC_API.G_EXCEPTION_ERROR;
4216       END IF;
4217       x_return_status := l_return_status;
4218       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4219     EXCEPTION
4220       WHEN OKC_API.G_EXCEPTION_ERROR THEN
4221         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4222         (
4223           l_api_name,
4224           G_PKG_NAME,
4225           'OKC_API.G_RET_STS_ERROR',
4226           x_msg_count,
4227           x_msg_data,
4228           '_PVT'
4229         );
4230       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4231         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4232         (
4233           l_api_name,
4234           G_PKG_NAME,
4235           'OKC_API.G_RET_STS_UNEXP_ERROR',
4236           x_msg_count,
4237           x_msg_data,
4238           '_PVT'
4239         );
4240       WHEN OTHERS THEN
4241         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4242         (
4243           l_api_name,
4244           G_PKG_NAME,
4245           'OTHERS',
4246           x_msg_count,
4247           x_msg_data,
4248           '_PVT'
4249         );
4250     END lock_row;
4251     --------------------------------------
4252     -- lock_row for:OKL_INS_POLICIES_TL --
4253     --------------------------------------
4254     PROCEDURE lock_row(
4255       p_init_msg_list                IN VARCHAR2 ,
4256       x_return_status                OUT NOCOPY VARCHAR2,
4257       x_msg_count                    OUT NOCOPY NUMBER,
4258       x_msg_data                     OUT NOCOPY VARCHAR2,
4259       p_okl_ins_policies_tl_rec      IN okl_ins_policies_tl_rec_type) IS
4260       E_Resource_Busy                EXCEPTION;
4261       PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
4262       CURSOR lock_csr (p_okl_ins_policies_tl_rec IN okl_ins_policies_tl_rec_type) IS
4263       SELECT *
4264         FROM OKL_INS_POLICIES_TL
4265        WHERE ID = p_okl_ins_policies_tl_rec.id
4266       FOR UPDATE NOWAIT;
4267       l_api_version                  CONSTANT NUMBER := 1;
4268       l_api_name                     CONSTANT VARCHAR2(30) := 'TL_lock_row';
4269       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4270       l_lock_var                     lock_csr%ROWTYPE;
4271       l_row_notfound                 BOOLEAN := FALSE;
4272       lc_row_notfound                BOOLEAN := FALSE;
4273     BEGIN
4274       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4275                                                 p_init_msg_list,
4276                                                 '_PVT',
4277                                                 x_return_status);
4278       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4279         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4280       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4281         RAISE OKC_API.G_EXCEPTION_ERROR;
4282       END IF;
4283       BEGIN
4284         OPEN lock_csr(p_okl_ins_policies_tl_rec);
4285         FETCH lock_csr INTO l_lock_var;
4286         l_row_notfound := lock_csr%NOTFOUND;
4287         CLOSE lock_csr;
4288       EXCEPTION
4289         WHEN E_Resource_Busy THEN
4290           IF (lock_csr%ISOPEN) THEN
4291             CLOSE lock_csr;
4292           END IF;
4293           OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
4294           RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
4295       END;
4296       IF ( l_row_notfound ) THEN
4297         OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
4298         RAISE OKC_API.G_EXCEPTION_ERROR;
4299       END IF;
4300       x_return_status := l_return_status;
4301       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4302     EXCEPTION
4303       WHEN OKC_API.G_EXCEPTION_ERROR THEN
4304         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4305         (
4306           l_api_name,
4307           G_PKG_NAME,
4308           'OKC_API.G_RET_STS_ERROR',
4309           x_msg_count,
4310           x_msg_data,
4311           '_PVT'
4312         );
4313       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4314         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4315         (
4316           l_api_name,
4317           G_PKG_NAME,
4318           'OKC_API.G_RET_STS_UNEXP_ERROR',
4319           x_msg_count,
4320           x_msg_data,
4321           '_PVT'
4322         );
4323       WHEN OTHERS THEN
4324         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4325         (
4326           l_api_name,
4327           G_PKG_NAME,
4328           'OTHERS',
4329           x_msg_count,
4330           x_msg_data,
4331           '_PVT'
4332         );
4333     END lock_row;
4334     --------------------------------------
4335     -- lock_row for: OKL_INS_POLICIES_V --
4336     --------------------------------------
4337     PROCEDURE lock_row(
4338       p_api_version                  IN NUMBER,
4339       p_init_msg_list                IN VARCHAR2 ,
4340       x_return_status                OUT NOCOPY VARCHAR2,
4341       x_msg_count                    OUT NOCOPY NUMBER,
4342       x_msg_data                     OUT NOCOPY VARCHAR2,
4343       p_ipyv_rec                     IN ipyv_rec_type) IS
4344       l_api_version                  CONSTANT NUMBER := 1;
4345       l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
4346       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4347       l_ipy_rec                      ipy_rec_type;
4348       l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type;
4349     BEGIN
4350       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4351                                                 G_PKG_NAME,
4352                                                 p_init_msg_list,
4353                                                 l_api_version,
4354                                                 p_api_version,
4355                                                 '_PVT',
4356                                                 x_return_status);
4357       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4358         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4359       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4360         RAISE OKC_API.G_EXCEPTION_ERROR;
4361       END IF;
4362       -----------------------------------------
4363       -- Move VIEW record to "Child" records --
4364       -----------------------------------------
4365       migrate(p_ipyv_rec, l_ipy_rec);
4366       migrate(p_ipyv_rec, l_okl_ins_policies_tl_rec);
4367       ---------------------------------------------
4368       -- Call the LOCK_ROW for each child record --
4369       ---------------------------------------------
4370       lock_row(
4371         p_init_msg_list,
4372         l_return_status,
4373         x_msg_count,
4374         x_msg_data,
4375         l_ipy_rec
4376       );
4377       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4378         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4379       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4380         RAISE OKC_API.G_EXCEPTION_ERROR;
4381       END IF;
4382       lock_row(
4383         p_init_msg_list,
4384         l_return_status,
4385         x_msg_count,
4386         x_msg_data,
4387         l_okl_ins_policies_tl_rec
4388       );
4389       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4390         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4391       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4392         RAISE OKC_API.G_EXCEPTION_ERROR;
4393       END IF;
4394       x_return_status := l_return_status;
4395       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4396     EXCEPTION
4397       WHEN OKC_API.G_EXCEPTION_ERROR THEN
4398         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4399         (
4400           l_api_name,
4401           G_PKG_NAME,
4402           'OKC_API.G_RET_STS_ERROR',
4403           x_msg_count,
4404           x_msg_data,
4405           '_PVT'
4406         );
4407       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4408         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4409         (
4410           l_api_name,
4411           G_PKG_NAME,
4412           'OKC_API.G_RET_STS_UNEXP_ERROR',
4413           x_msg_count,
4414           x_msg_data,
4415           '_PVT'
4416         );
4417       WHEN OTHERS THEN
4418         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4419         (
4420           l_api_name,
4421           G_PKG_NAME,
4422           'OTHERS',
4423           x_msg_count,
4424           x_msg_data,
4425           '_PVT'
4426         );
4427     END lock_row;
4428     --------------------------------------
4429     -- PL/SQL TBL lock_row for:IPYV_TBL --
4430     --------------------------------------
4431     PROCEDURE lock_row(
4432       p_api_version                  IN NUMBER,
4433       p_init_msg_list                IN VARCHAR2 ,
4434       x_return_status                OUT NOCOPY VARCHAR2,
4435       x_msg_count                    OUT NOCOPY NUMBER,
4436       x_msg_data                     OUT NOCOPY VARCHAR2,
4437       p_ipyv_tbl                     IN ipyv_tbl_type,
4438       px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
4439       l_api_version                  CONSTANT NUMBER := 1;
4440       l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
4441       i                              NUMBER := 0;
4442     BEGIN
4443       OKC_API.init_msg_list(p_init_msg_list);
4444       -- Make sure PL/SQL table has recrods in it before passing
4445       IF (p_ipyv_tbl.COUNT > 0) THEN
4446         i := p_ipyv_tbl.FIRST;
4447         LOOP
4448           DECLARE
4449             l_error_rec         OKL_API.ERROR_REC_TYPE;
4450           BEGIN
4451             l_error_rec.api_name := l_api_name;
4452             l_error_rec.api_package := G_PKG_NAME;
4453             l_error_rec.idx := i;
4454             lock_row(
4455               p_api_version                  => p_api_version,
4456               p_init_msg_list                => OKC_API.G_FALSE,
4457               x_return_status                => l_error_rec.error_type,
4458               x_msg_count                    => l_error_rec.msg_count,
4459               x_msg_data                     => l_error_rec.msg_data,
4460               p_ipyv_rec                     => p_ipyv_tbl(i));
4461             IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
4462               l_error_rec.sqlcode := SQLCODE;
4463               load_error_tbl(l_error_rec, px_error_tbl);
4464             ELSE
4465               x_msg_count := l_error_rec.msg_count;
4466               x_msg_data := l_error_rec.msg_data;
4467             END IF;
4468           EXCEPTION
4469             WHEN OKC_API.G_EXCEPTION_ERROR THEN
4470               l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
4471               l_error_rec.sqlcode := SQLCODE;
4472               load_error_tbl(l_error_rec, px_error_tbl);
4473             WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4474               l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
4475               l_error_rec.sqlcode := SQLCODE;
4476               load_error_tbl(l_error_rec, px_error_tbl);
4477             WHEN OTHERS THEN
4478               l_error_rec.error_type := 'OTHERS';
4479               l_error_rec.sqlcode := SQLCODE;
4480               load_error_tbl(l_error_rec, px_error_tbl);
4481           END;
4482           EXIT WHEN (i = p_ipyv_tbl.LAST);
4483           i := p_ipyv_tbl.NEXT(i);
4484         END LOOP;
4485       END IF;
4486       -- Loop through the error_tbl to find the error with the highest severity
4487       -- and return it.
4488       x_return_status := find_highest_exception(px_error_tbl);
4489       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4490     EXCEPTION
4491       WHEN OKC_API.G_EXCEPTION_ERROR THEN
4492         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4493         (
4494           l_api_name,
4495           G_PKG_NAME,
4496           'OKC_API.G_RET_STS_ERROR',
4497           x_msg_count,
4498           x_msg_data,
4499           '_PVT'
4500         );
4501       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4502         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4503         (
4504           l_api_name,
4505           G_PKG_NAME,
4506           'OKC_API.G_RET_STS_UNEXP_ERROR',
4507           x_msg_count,
4508           x_msg_data,
4509           '_PVT'
4510         );
4511       WHEN OTHERS THEN
4512         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4513         (
4514           l_api_name,
4515           G_PKG_NAME,
4516           'OTHERS',
4517           x_msg_count,
4518           x_msg_data,
4519           '_PVT'
4520         );
4521     END lock_row;
4522     --------------------------------------
4523     -- PL/SQL TBL lock_row for:IPYV_TBL --
4524     --------------------------------------
4525     PROCEDURE lock_row(
4526       p_api_version                  IN NUMBER,
4527       p_init_msg_list                IN VARCHAR2 ,
4528       x_return_status                OUT NOCOPY VARCHAR2,
4529       x_msg_count                    OUT NOCOPY NUMBER,
4530       x_msg_data                     OUT NOCOPY VARCHAR2,
4531       p_ipyv_tbl                     IN ipyv_tbl_type) IS
4532       l_api_version                  CONSTANT NUMBER := 1;
4533       l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
4534       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4535       l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
4536     BEGIN
4537       OKC_API.init_msg_list(p_init_msg_list);
4538       -- Make sure PL/SQL table has recrods in it before passing
4539       IF (p_ipyv_tbl.COUNT > 0) THEN
4540         lock_row(
4541           p_api_version                  => p_api_version,
4542           p_init_msg_list                => OKC_API.G_FALSE,
4543           x_return_status                => x_return_status,
4544           x_msg_count                    => x_msg_count,
4545           x_msg_data                     => x_msg_data,
4546           p_ipyv_tbl                     => p_ipyv_tbl,
4547           px_error_tbl                   => l_error_tbl);
4548       END IF;
4549       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
4550     EXCEPTION
4551       WHEN OKC_API.G_EXCEPTION_ERROR THEN
4552         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4553         (
4554           l_api_name,
4555           G_PKG_NAME,
4556           'OKC_API.G_RET_STS_ERROR',
4557           x_msg_count,
4558           x_msg_data,
4559           '_PVT'
4560         );
4561       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4562         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4563         (
4564           l_api_name,
4565           G_PKG_NAME,
4566           'OKC_API.G_RET_STS_UNEXP_ERROR',
4567           x_msg_count,
4568           x_msg_data,
4569           '_PVT'
4570         );
4571       WHEN OTHERS THEN
4572         x_return_status := OKC_API.HANDLE_EXCEPTIONS
4573         (
4574           l_api_name,
4575           G_PKG_NAME,
4576           'OTHERS',
4577           x_msg_count,
4578           x_msg_data,
4579           '_PVT'
4580         );
4581     END lock_row;
4582     ---------------------------------------------------------------------------
4583     -- PROCEDURE update_row
4584     ---------------------------------------------------------------------------
4585     ---------------------------------------
4586     -- update_row for:OKL_INS_POLICIES_B --
4587     ---------------------------------------
4588     PROCEDURE update_row(
4589       p_init_msg_list                IN VARCHAR2 ,
4590       x_return_status                OUT NOCOPY VARCHAR2,
4591       x_msg_count                    OUT NOCOPY NUMBER,
4592       x_msg_data                     OUT NOCOPY VARCHAR2,
4593       p_ipy_rec                      IN ipy_rec_type,
4594       x_ipy_rec                      OUT NOCOPY ipy_rec_type) IS
4595       l_api_version                  CONSTANT NUMBER := 1;
4596       l_api_name                     CONSTANT VARCHAR2(30) := 'B_update_row';
4597       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4598       l_ipy_rec                      ipy_rec_type := p_ipy_rec;
4599       l_def_ipy_rec                  ipy_rec_type;
4600       l_row_notfound                 BOOLEAN := TRUE;
4601       ----------------------------------
4602       -- FUNCTION populate_new_record --
4603       ----------------------------------
4604       FUNCTION populate_new_record (
4605         p_ipy_rec IN ipy_rec_type,
4606         x_ipy_rec OUT NOCOPY ipy_rec_type
4607       ) RETURN VARCHAR2 IS
4608         l_ipy_rec                      ipy_rec_type;
4609         l_row_notfound                 BOOLEAN := TRUE;
4610         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4611       BEGIN
4612         x_ipy_rec := p_ipy_rec;
4613         -- Get current database values
4614         l_ipy_rec := get_rec(p_ipy_rec, l_return_status);
4615         IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
4616           IF (x_ipy_rec.id = OKC_API.G_MISS_NUM)
4617           THEN
4618             x_ipy_rec.id := l_ipy_rec.id;
4619           END IF;
4620           IF (x_ipy_rec.ipy_type = OKC_API.G_MISS_CHAR)
4621           THEN
4622             x_ipy_rec.ipy_type := l_ipy_rec.ipy_type;
4623           END IF;
4624           IF (x_ipy_rec.name_of_insured = OKC_API.G_MISS_CHAR)
4625           THEN
4626             x_ipy_rec.name_of_insured := l_ipy_rec.name_of_insured;
4627           END IF;
4628           IF (x_ipy_rec.policy_number = OKC_API.G_MISS_CHAR)
4629           THEN
4630             x_ipy_rec.policy_number := l_ipy_rec.policy_number;
4631           END IF;
4632           IF (x_ipy_rec.insurance_factor = OKC_API.G_MISS_CHAR)
4633           THEN
4634             x_ipy_rec.insurance_factor := l_ipy_rec.insurance_factor;
4635           END IF;
4636           IF (x_ipy_rec.factor_code = OKC_API.G_MISS_CHAR)
4637 	  THEN
4638 	    x_ipy_rec.factor_code := l_ipy_rec.factor_code;
4639           END IF;
4640           IF (x_ipy_rec.calculated_premium = OKC_API.G_MISS_NUM)
4641           THEN
4642             x_ipy_rec.calculated_premium := l_ipy_rec.calculated_premium;
4643           END IF;
4644           IF (x_ipy_rec.premium = OKC_API.G_MISS_NUM)
4645           THEN
4646             x_ipy_rec.premium := l_ipy_rec.premium;
4647           END IF;
4648           IF (x_ipy_rec.covered_amount = OKC_API.G_MISS_NUM)
4649           THEN
4650             x_ipy_rec.covered_amount := l_ipy_rec.covered_amount;
4651           END IF;
4652           IF (x_ipy_rec.deductible = OKC_API.G_MISS_NUM)
4653           THEN
4654             x_ipy_rec.deductible := l_ipy_rec.deductible;
4655           END IF;
4656           IF (x_ipy_rec.adjustment = OKC_API.G_MISS_NUM)
4657           THEN
4658             x_ipy_rec.adjustment := l_ipy_rec.adjustment;
4659           END IF;
4660           IF (x_ipy_rec.payment_frequency = OKC_API.G_MISS_CHAR)
4661           THEN
4662             x_ipy_rec.payment_frequency := l_ipy_rec.payment_frequency;
4663           END IF;
4664           IF (x_ipy_rec.crx_code = OKC_API.G_MISS_CHAR)
4665           THEN
4666             x_ipy_rec.crx_code := l_ipy_rec.crx_code;
4667           END IF;
4668           IF (x_ipy_rec.ipf_code = OKC_API.G_MISS_CHAR)
4669           THEN
4670             x_ipy_rec.ipf_code := l_ipy_rec.ipf_code;
4671           END IF;
4672           IF (x_ipy_rec.iss_code = OKC_API.G_MISS_CHAR)
4673           THEN
4674             x_ipy_rec.iss_code := l_ipy_rec.iss_code;
4675           END IF;
4676           IF (x_ipy_rec.ipe_code = OKC_API.G_MISS_CHAR)
4677           THEN
4678             x_ipy_rec.ipe_code := l_ipy_rec.ipe_code;
4679           END IF;
4680           IF (x_ipy_rec.date_to = OKC_API.G_MISS_DATE)
4681           THEN
4682             x_ipy_rec.date_to := l_ipy_rec.date_to;
4683           END IF;
4684           IF (x_ipy_rec.date_from = OKC_API.G_MISS_DATE)
4685           THEN
4686             x_ipy_rec.date_from := l_ipy_rec.date_from;
4687           END IF;
4688           IF (x_ipy_rec.date_quoted = OKC_API.G_MISS_DATE)
4689           THEN
4690             x_ipy_rec.date_quoted := l_ipy_rec.date_quoted;
4691           END IF;
4692           IF (x_ipy_rec.date_proof_provided = OKC_API.G_MISS_DATE)
4693           THEN
4694             x_ipy_rec.date_proof_provided := l_ipy_rec.date_proof_provided;
4695           END IF;
4696           IF (x_ipy_rec.date_proof_required = OKC_API.G_MISS_DATE)
4697           THEN
4698             x_ipy_rec.date_proof_required := l_ipy_rec.date_proof_required;
4699           END IF;
4700           IF (x_ipy_rec.cancellation_date = OKC_API.G_MISS_DATE)
4701           THEN
4702             x_ipy_rec.cancellation_date := l_ipy_rec.cancellation_date;
4703           END IF;
4704           IF (x_ipy_rec.date_quote_expiry = OKC_API.G_MISS_DATE)
4705           THEN
4706             x_ipy_rec.date_quote_expiry := l_ipy_rec.date_quote_expiry;
4707           END IF;
4708           IF (x_ipy_rec.activation_date = OKC_API.G_MISS_DATE)
4709           THEN
4710             x_ipy_rec.activation_date := l_ipy_rec.activation_date;
4711           END IF;
4712           IF (x_ipy_rec.quote_yn = OKC_API.G_MISS_CHAR)
4713           THEN
4714             x_ipy_rec.quote_yn := l_ipy_rec.quote_yn;
4715           END IF;
4716           IF (x_ipy_rec.on_file_yn = OKC_API.G_MISS_CHAR)
4717           THEN
4718             x_ipy_rec.on_file_yn := l_ipy_rec.on_file_yn;
4719           END IF;
4720           IF (x_ipy_rec.private_label_yn = OKC_API.G_MISS_CHAR)
4721           THEN
4722             x_ipy_rec.private_label_yn := l_ipy_rec.private_label_yn;
4723           END IF;
4724           IF (x_ipy_rec.agent_yn = OKC_API.G_MISS_CHAR)
4725           THEN
4726             x_ipy_rec.agent_yn := l_ipy_rec.agent_yn;
4727           END IF;
4728           IF (x_ipy_rec.lessor_insured_yn = OKC_API.G_MISS_CHAR)
4729           THEN
4730             x_ipy_rec.lessor_insured_yn := l_ipy_rec.lessor_insured_yn;
4731           END IF;
4732           IF (x_ipy_rec.lessor_payee_yn = OKC_API.G_MISS_CHAR)
4733           THEN
4734             x_ipy_rec.lessor_payee_yn := l_ipy_rec.lessor_payee_yn;
4735           END IF;
4736           IF (x_ipy_rec.khr_id = OKC_API.G_MISS_NUM)
4737           THEN
4738             x_ipy_rec.khr_id := l_ipy_rec.khr_id;
4739           END IF;
4740           IF (x_ipy_rec.kle_id = OKC_API.G_MISS_NUM)
4741           THEN
4742             x_ipy_rec.kle_id := l_ipy_rec.kle_id;
4743           END IF;
4744           IF (x_ipy_rec.ipt_id = OKC_API.G_MISS_NUM)
4745           THEN
4746             x_ipy_rec.ipt_id := l_ipy_rec.ipt_id;
4747           END IF;
4748           IF (x_ipy_rec.ipy_id = OKC_API.G_MISS_NUM)
4749           THEN
4750             x_ipy_rec.ipy_id := l_ipy_rec.ipy_id;
4751           END IF;
4752           IF (x_ipy_rec.int_id = OKC_API.G_MISS_NUM)
4753           THEN
4754             x_ipy_rec.int_id := l_ipy_rec.int_id;
4755           END IF;
4756           IF (x_ipy_rec.isu_id = OKC_API.G_MISS_NUM)
4757           THEN
4758             x_ipy_rec.isu_id := l_ipy_rec.isu_id;
4759           END IF;
4760           IF (x_ipy_rec.factor_value = OKC_API.G_MISS_NUM)
4761           THEN
4762             x_ipy_rec.factor_value := l_ipy_rec.factor_value;
4763           END IF;
4764           IF (x_ipy_rec.agency_number = OKC_API.G_MISS_CHAR)
4765           THEN
4766             x_ipy_rec.agency_number := l_ipy_rec.agency_number;
4767           END IF;
4768           IF (x_ipy_rec.agency_site_id = OKC_API.G_MISS_NUM)
4769           THEN
4770             x_ipy_rec.agency_site_id := l_ipy_rec.agency_site_id;
4771           END IF;
4772           IF (x_ipy_rec.sales_rep_id = OKC_API.G_MISS_NUM)
4773           THEN
4774             x_ipy_rec.sales_rep_id := l_ipy_rec.sales_rep_id;
4775           END IF;
4776           IF (x_ipy_rec.agent_site_id = OKC_API.G_MISS_NUM)
4777           THEN
4778             x_ipy_rec.agent_site_id := l_ipy_rec.agent_site_id;
4779           END IF;
4780           IF (x_ipy_rec.adjusted_by_id = OKC_API.G_MISS_NUM)
4781           THEN
4782             x_ipy_rec.adjusted_by_id := l_ipy_rec.adjusted_by_id;
4783           END IF;
4784           IF (x_ipy_rec.territory_code = OKC_API.G_MISS_CHAR)
4785           THEN
4786             x_ipy_rec.territory_code := l_ipy_rec.territory_code;
4787           END IF;
4788           IF (x_ipy_rec.attribute_category = OKC_API.G_MISS_CHAR)
4789           THEN
4790             x_ipy_rec.attribute_category := l_ipy_rec.attribute_category;
4791           END IF;
4792           IF (x_ipy_rec.attribute1 = OKC_API.G_MISS_CHAR)
4793           THEN
4794             x_ipy_rec.attribute1 := l_ipy_rec.attribute1;
4795           END IF;
4796           IF (x_ipy_rec.attribute2 = OKC_API.G_MISS_CHAR)
4797           THEN
4798             x_ipy_rec.attribute2 := l_ipy_rec.attribute2;
4799           END IF;
4800           IF (x_ipy_rec.attribute3 = OKC_API.G_MISS_CHAR)
4801           THEN
4802             x_ipy_rec.attribute3 := l_ipy_rec.attribute3;
4803           END IF;
4804           IF (x_ipy_rec.attribute4 = OKC_API.G_MISS_CHAR)
4805           THEN
4806             x_ipy_rec.attribute4 := l_ipy_rec.attribute4;
4807           END IF;
4808           IF (x_ipy_rec.attribute5 = OKC_API.G_MISS_CHAR)
4809           THEN
4810             x_ipy_rec.attribute5 := l_ipy_rec.attribute5;
4811           END IF;
4812           IF (x_ipy_rec.attribute6 = OKC_API.G_MISS_CHAR)
4813           THEN
4814             x_ipy_rec.attribute6 := l_ipy_rec.attribute6;
4815           END IF;
4816           IF (x_ipy_rec.attribute7 = OKC_API.G_MISS_CHAR)
4817           THEN
4818             x_ipy_rec.attribute7 := l_ipy_rec.attribute7;
4819           END IF;
4820           IF (x_ipy_rec.attribute8 = OKC_API.G_MISS_CHAR)
4821           THEN
4822             x_ipy_rec.attribute8 := l_ipy_rec.attribute8;
4823           END IF;
4824           IF (x_ipy_rec.attribute9 = OKC_API.G_MISS_CHAR)
4825           THEN
4826             x_ipy_rec.attribute9 := l_ipy_rec.attribute9;
4827           END IF;
4828           IF (x_ipy_rec.attribute10 = OKC_API.G_MISS_CHAR)
4829           THEN
4830             x_ipy_rec.attribute10 := l_ipy_rec.attribute10;
4831           END IF;
4832           IF (x_ipy_rec.attribute11 = OKC_API.G_MISS_CHAR)
4833           THEN
4834             x_ipy_rec.attribute11 := l_ipy_rec.attribute11;
4835           END IF;
4836           IF (x_ipy_rec.attribute12 = OKC_API.G_MISS_CHAR)
4837           THEN
4838             x_ipy_rec.attribute12 := l_ipy_rec.attribute12;
4839           END IF;
4840           IF (x_ipy_rec.attribute13 = OKC_API.G_MISS_CHAR)
4841           THEN
4842             x_ipy_rec.attribute13 := l_ipy_rec.attribute13;
4843           END IF;
4844           IF (x_ipy_rec.attribute14 = OKC_API.G_MISS_CHAR)
4845           THEN
4846             x_ipy_rec.attribute14 := l_ipy_rec.attribute14;
4847           END IF;
4848           IF (x_ipy_rec.attribute15 = OKC_API.G_MISS_CHAR)
4849           THEN
4850             x_ipy_rec.attribute15 := l_ipy_rec.attribute15;
4851           END IF;
4852           IF (x_ipy_rec.program_id = OKC_API.G_MISS_NUM)
4853           THEN
4854             x_ipy_rec.program_id := l_ipy_rec.program_id;
4855           END IF;
4856           IF (x_ipy_rec.org_id = OKC_API.G_MISS_NUM)
4857           THEN
4858             x_ipy_rec.org_id := l_ipy_rec.org_id;
4859           END IF;
4860           IF (x_ipy_rec.program_update_date = OKC_API.G_MISS_DATE)
4861           THEN
4862             x_ipy_rec.program_update_date := l_ipy_rec.program_update_date;
4863           END IF;
4864           IF (x_ipy_rec.program_application_id = OKC_API.G_MISS_NUM)
4865           THEN
4866             x_ipy_rec.program_application_id := l_ipy_rec.program_application_id;
4867           END IF;
4868           IF (x_ipy_rec.request_id = OKC_API.G_MISS_NUM)
4869           THEN
4870             x_ipy_rec.request_id := l_ipy_rec.request_id;
4871           END IF;
4872           IF (x_ipy_rec.object_version_number = OKC_API.G_MISS_NUM)
4873           THEN
4874             x_ipy_rec.object_version_number := l_ipy_rec.object_version_number;
4875           END IF;
4876           IF (x_ipy_rec.created_by = OKC_API.G_MISS_NUM)
4877           THEN
4878             x_ipy_rec.created_by := l_ipy_rec.created_by;
4879           END IF;
4880           IF (x_ipy_rec.creation_date = OKC_API.G_MISS_DATE)
4881           THEN
4882             x_ipy_rec.creation_date := l_ipy_rec.creation_date;
4883           END IF;
4884           IF (x_ipy_rec.last_updated_by = OKC_API.G_MISS_NUM)
4885           THEN
4886             x_ipy_rec.last_updated_by := l_ipy_rec.last_updated_by;
4887           END IF;
4888           IF (x_ipy_rec.last_update_date = OKC_API.G_MISS_DATE)
4889           THEN
4890             x_ipy_rec.last_update_date := l_ipy_rec.last_update_date;
4891           END IF;
4892           IF (x_ipy_rec.last_update_login = OKC_API.G_MISS_NUM)
4893           THEN
4894             x_ipy_rec.last_update_login := l_ipy_rec.last_update_login;
4895           END IF;
4896 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
4897           IF (x_ipy_rec.lease_application_id = OKC_API.G_MISS_NUM)
4898           THEN
4899             x_ipy_rec.lease_application_id := l_ipy_rec.lease_application_id;
4900           END IF;
4901           IF (x_ipy_rec.legal_entity_id = OKC_API.G_MISS_NUM)
4902           THEN
4903             x_ipy_rec.legal_entity_id := l_ipy_rec.legal_entity_id;
4904           END IF;
4905         END IF;
4906         RETURN(l_return_status);
4907       END populate_new_record;
4908       -------------------------------------------
4909       -- Set_Attributes for:OKL_INS_POLICIES_B --
4910       -------------------------------------------
4911       FUNCTION Set_Attributes (
4912         p_ipy_rec IN ipy_rec_type,
4913         x_ipy_rec OUT NOCOPY ipy_rec_type
4914       ) RETURN VARCHAR2 IS
4915         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
4916       BEGIN
4917         x_ipy_rec := p_ipy_rec;
4918         x_ipy_rec.OBJECT_VERSION_NUMBER := p_ipy_rec.OBJECT_VERSION_NUMBER + 1;
4919         SELECT NVL(DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,FND_GLOBAL.CONC_REQUEST_ID),l_ipy_rec.request_id),
4920 	                         NVL(DECODE(FND_GLOBAL.PROG_APPL_ID,-1,NULL,FND_GLOBAL.PROG_APPL_ID),l_ipy_rec.program_application_id),
4921 	                         NVL(DECODE(FND_GLOBAL.CONC_PROGRAM_ID,-1,NULL,FND_GLOBAL.CONC_PROGRAM_ID),l_ipy_rec.program_id),
4922 	                         DECODE(DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,SYSDATE),NULL,l_ipy_rec.program_update_date,SYSDATE),
4923 	                         MO_GLOBAL.GET_CURRENT_ORG_ID() INTO x_ipy_rec.request_id,
4924 	                                                                             x_ipy_rec.program_application_id,
4925 	                                                                             x_ipy_rec.program_id,
4926 	                                                                             x_ipy_rec.program_update_date,
4927                                                                              x_ipy_rec.org_id FROM dual;
4928         RETURN(l_return_status);
4929       END Set_Attributes;
4930     BEGIN
4931       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
4932                                                 p_init_msg_list,
4933                                                 '_PVT',
4934                                                 x_return_status);
4935       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4936         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4937       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4938         RAISE OKC_API.G_EXCEPTION_ERROR;
4939       END IF;
4940       --- Setting item attributes
4941       l_return_status := Set_Attributes(
4942         p_ipy_rec,                         -- IN
4943         l_ipy_rec);                        -- OUT
4944       --- If any errors happen abort API
4945       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4946         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4947       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4948         RAISE OKC_API.G_EXCEPTION_ERROR;
4949       END IF;
4950       l_return_status := populate_new_record(l_ipy_rec, l_def_ipy_rec);
4951       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
4952         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
4953       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
4954         RAISE OKC_API.G_EXCEPTION_ERROR;
4955       END IF;
4956       UPDATE OKL_INS_POLICIES_B
4957       SET IPY_TYPE = l_def_ipy_rec.ipy_type,
4958           NAME_OF_INSURED = l_def_ipy_rec.name_of_insured,
4959           POLICY_NUMBER = l_def_ipy_rec.policy_number,
4960           INSURANCE_FACTOR = l_def_ipy_rec.insurance_factor,
4961           FACTOR_CODE = l_def_ipy_rec.factor_code,
4962           CALCULATED_PREMIUM = l_def_ipy_rec.calculated_premium,
4963           PREMIUM = l_def_ipy_rec.premium,
4964           COVERED_AMOUNT = l_def_ipy_rec.covered_amount,
4965           DEDUCTIBLE = l_def_ipy_rec.deductible,
4966           ADJUSTMENT = l_def_ipy_rec.adjustment,
4967           PAYMENT_FREQUENCY = l_def_ipy_rec.payment_frequency,
4968           CRX_CODE = l_def_ipy_rec.crx_code,
4969           IPF_CODE = l_def_ipy_rec.ipf_code,
4970           ISS_CODE = l_def_ipy_rec.iss_code,
4971           IPE_CODE = l_def_ipy_rec.ipe_code,
4972           DATE_TO = l_def_ipy_rec.date_to,
4973           DATE_FROM = l_def_ipy_rec.date_from,
4974           DATE_QUOTED = l_def_ipy_rec.date_quoted,
4975           DATE_PROOF_PROVIDED = l_def_ipy_rec.date_proof_provided,
4976           DATE_PROOF_REQUIRED = l_def_ipy_rec.date_proof_required,
4977           CANCELLATION_DATE = l_def_ipy_rec.cancellation_date,
4978           DATE_QUOTE_EXPIRY = l_def_ipy_rec.date_quote_expiry,
4979           ACTIVATION_DATE = l_def_ipy_rec.activation_date,
4980           QUOTE_YN = l_def_ipy_rec.quote_yn,
4981           ON_FILE_YN = l_def_ipy_rec.on_file_yn,
4982           PRIVATE_LABEL_YN = l_def_ipy_rec.private_label_yn,
4983           AGENT_YN = l_def_ipy_rec.agent_yn,
4984           LESSOR_INSURED_YN = l_def_ipy_rec.lessor_insured_yn,
4985           LESSOR_PAYEE_YN = l_def_ipy_rec.lessor_payee_yn,
4986           KHR_ID = l_def_ipy_rec.khr_id,
4987           KLE_ID = l_def_ipy_rec.kle_id,
4988           IPT_ID = l_def_ipy_rec.ipt_id,
4989           IPY_ID = l_def_ipy_rec.ipy_id,
4990           INT_ID = l_def_ipy_rec.int_id,
4991           ISU_ID = l_def_ipy_rec.isu_id,
4992           FACTOR_VALUE = l_def_ipy_rec.factor_value,
4993           AGENCY_NUMBER = l_def_ipy_rec.agency_number,
4994           AGENCY_SITE_ID = l_def_ipy_rec.agency_site_id,
4995           SALES_REP_ID = l_def_ipy_rec.sales_rep_id,
4996           AGENT_SITE_ID = l_def_ipy_rec.agent_site_id,
4997           ADJUSTED_BY_ID = l_def_ipy_rec.adjusted_by_id,
4998           TERRITORY_CODE = l_def_ipy_rec.territory_code,
4999           ATTRIBUTE_CATEGORY = l_def_ipy_rec.attribute_category,
5000           ATTRIBUTE1 = l_def_ipy_rec.attribute1,
5001           ATTRIBUTE2 = l_def_ipy_rec.attribute2,
5002           ATTRIBUTE3 = l_def_ipy_rec.attribute3,
5003           ATTRIBUTE4 = l_def_ipy_rec.attribute4,
5004           ATTRIBUTE5 = l_def_ipy_rec.attribute5,
5005           ATTRIBUTE6 = l_def_ipy_rec.attribute6,
5006           ATTRIBUTE7 = l_def_ipy_rec.attribute7,
5007           ATTRIBUTE8 = l_def_ipy_rec.attribute8,
5008           ATTRIBUTE9 = l_def_ipy_rec.attribute9,
5009           ATTRIBUTE10 = l_def_ipy_rec.attribute10,
5010           ATTRIBUTE11 = l_def_ipy_rec.attribute11,
5011           ATTRIBUTE12 = l_def_ipy_rec.attribute12,
5012           ATTRIBUTE13 = l_def_ipy_rec.attribute13,
5013           ATTRIBUTE14 = l_def_ipy_rec.attribute14,
5014           ATTRIBUTE15 = l_def_ipy_rec.attribute15,
5015           PROGRAM_ID = l_def_ipy_rec.program_id,
5016           ORG_ID = l_def_ipy_rec.org_id,
5017           PROGRAM_UPDATE_DATE = l_def_ipy_rec.program_update_date,
5018           PROGRAM_APPLICATION_ID = l_def_ipy_rec.program_application_id,
5019           REQUEST_ID = l_def_ipy_rec.request_id,
5020           OBJECT_VERSION_NUMBER = l_def_ipy_rec.object_version_number,
5021           CREATED_BY = l_def_ipy_rec.created_by,
5022           CREATION_DATE = l_def_ipy_rec.creation_date,
5023           LAST_UPDATED_BY = l_def_ipy_rec.last_updated_by,
5024           LAST_UPDATE_DATE = l_def_ipy_rec.last_update_date,
5025           LAST_UPDATE_LOGIN = l_def_ipy_rec.last_update_login,
5026 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
5027           LEASE_APPLICATION_ID = l_def_ipy_rec.lease_application_id,
5028           LEGAL_ENTITY_ID = l_def_ipy_rec.legal_entity_id
5029       WHERE ID = l_def_ipy_rec.id;
5030       x_ipy_rec := l_ipy_rec;
5031       x_return_status := l_return_status;
5032       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5033     EXCEPTION
5034       WHEN OKC_API.G_EXCEPTION_ERROR THEN
5035         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5036         (
5037           l_api_name,
5038           G_PKG_NAME,
5039           'OKC_API.G_RET_STS_ERROR',
5040           x_msg_count,
5041           x_msg_data,
5042           '_PVT'
5043         );
5044       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5045         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5046         (
5047           l_api_name,
5048           G_PKG_NAME,
5049           'OKC_API.G_RET_STS_UNEXP_ERROR',
5050           x_msg_count,
5051           x_msg_data,
5052           '_PVT'
5053         );
5054       WHEN OTHERS THEN
5055         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5056         (
5057           l_api_name,
5058           G_PKG_NAME,
5059           'OTHERS',
5060           x_msg_count,
5061           x_msg_data,
5062           '_PVT'
5063         );
5064     END update_row;
5065     ----------------------------------------
5066     -- update_row for:OKL_INS_POLICIES_TL --
5067     ----------------------------------------
5068     PROCEDURE update_row(
5069       p_init_msg_list                IN VARCHAR2 ,
5070       x_return_status                OUT NOCOPY VARCHAR2,
5071       x_msg_count                    OUT NOCOPY NUMBER,
5072       x_msg_data                     OUT NOCOPY VARCHAR2,
5073       p_okl_ins_policies_tl_rec      IN okl_ins_policies_tl_rec_type,
5074       x_okl_ins_policies_tl_rec      OUT NOCOPY okl_ins_policies_tl_rec_type) IS
5075       l_api_version                  CONSTANT NUMBER := 1;
5076       l_api_name                     CONSTANT VARCHAR2(30) := 'TL_update_row';
5077       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5078       l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type := p_okl_ins_policies_tl_rec;
5079       l_def_okl_ins_policies_tl_rec  okl_ins_policies_tl_rec_type;
5080       l_row_notfound                 BOOLEAN := TRUE;
5081       ----------------------------------
5082       -- FUNCTION populate_new_record --
5083       ----------------------------------
5084       FUNCTION populate_new_record (
5085         p_okl_ins_policies_tl_rec IN okl_ins_policies_tl_rec_type,
5086         x_okl_ins_policies_tl_rec OUT NOCOPY okl_ins_policies_tl_rec_type
5087       ) RETURN VARCHAR2 IS
5088         l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type;
5089         l_row_notfound                 BOOLEAN := TRUE;
5090         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5091       BEGIN
5092         x_okl_ins_policies_tl_rec := p_okl_ins_policies_tl_rec;
5093         -- Get current database values
5094         l_okl_ins_policies_tl_rec := get_rec(p_okl_ins_policies_tl_rec, l_return_status);
5095         IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
5096           IF (x_okl_ins_policies_tl_rec.id = OKC_API.G_MISS_NUM)
5097           THEN
5098             x_okl_ins_policies_tl_rec.id := l_okl_ins_policies_tl_rec.id;
5099           END IF;
5100           IF (x_okl_ins_policies_tl_rec.language = OKC_API.G_MISS_CHAR)
5101           THEN
5102             x_okl_ins_policies_tl_rec.language := l_okl_ins_policies_tl_rec.language;
5103           END IF;
5104           IF (x_okl_ins_policies_tl_rec.source_lang = OKC_API.G_MISS_CHAR)
5105           THEN
5106             x_okl_ins_policies_tl_rec.source_lang := l_okl_ins_policies_tl_rec.source_lang;
5107           END IF;
5108           IF (x_okl_ins_policies_tl_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
5109           THEN
5110             x_okl_ins_policies_tl_rec.sfwt_flag := l_okl_ins_policies_tl_rec.sfwt_flag;
5111           END IF;
5112           IF (x_okl_ins_policies_tl_rec.description = OKC_API.G_MISS_CHAR)
5113           THEN
5114             x_okl_ins_policies_tl_rec.description := l_okl_ins_policies_tl_rec.description;
5115           END IF;
5116           IF (x_okl_ins_policies_tl_rec.endorsement = OKC_API.G_MISS_CHAR)
5117           THEN
5118             x_okl_ins_policies_tl_rec.endorsement := l_okl_ins_policies_tl_rec.endorsement;
5119           END IF;
5120           IF (x_okl_ins_policies_tl_rec.comments = OKC_API.G_MISS_CHAR)
5121           THEN
5122             x_okl_ins_policies_tl_rec.comments := l_okl_ins_policies_tl_rec.comments;
5123           END IF;
5124           IF (x_okl_ins_policies_tl_rec.cancellation_comment = OKC_API.G_MISS_CHAR)
5125           THEN
5126             x_okl_ins_policies_tl_rec.cancellation_comment := l_okl_ins_policies_tl_rec.cancellation_comment;
5127           END IF;
5128           IF (x_okl_ins_policies_tl_rec.created_by = OKC_API.G_MISS_NUM)
5129           THEN
5130             x_okl_ins_policies_tl_rec.created_by := l_okl_ins_policies_tl_rec.created_by;
5131           END IF;
5132           IF (x_okl_ins_policies_tl_rec.creation_date = OKC_API.G_MISS_DATE)
5133           THEN
5134             x_okl_ins_policies_tl_rec.creation_date := l_okl_ins_policies_tl_rec.creation_date;
5135           END IF;
5136           IF (x_okl_ins_policies_tl_rec.last_updated_by = OKC_API.G_MISS_NUM)
5137           THEN
5138             x_okl_ins_policies_tl_rec.last_updated_by := l_okl_ins_policies_tl_rec.last_updated_by;
5139           END IF;
5140           IF (x_okl_ins_policies_tl_rec.last_update_date = OKC_API.G_MISS_DATE)
5141           THEN
5142             x_okl_ins_policies_tl_rec.last_update_date := l_okl_ins_policies_tl_rec.last_update_date;
5143           END IF;
5144           IF (x_okl_ins_policies_tl_rec.last_update_login = OKC_API.G_MISS_NUM)
5145           THEN
5146             x_okl_ins_policies_tl_rec.last_update_login := l_okl_ins_policies_tl_rec.last_update_login;
5147           END IF;
5148         END IF;
5149         RETURN(l_return_status);
5150       END populate_new_record;
5151       --------------------------------------------
5152       -- Set_Attributes for:OKL_INS_POLICIES_TL --
5153       --------------------------------------------
5154       FUNCTION Set_Attributes (
5155         p_okl_ins_policies_tl_rec IN okl_ins_policies_tl_rec_type,
5156         x_okl_ins_policies_tl_rec OUT NOCOPY okl_ins_policies_tl_rec_type
5157       ) RETURN VARCHAR2 IS
5158         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5159       BEGIN
5160         x_okl_ins_policies_tl_rec := p_okl_ins_policies_tl_rec;
5161         x_okl_ins_policies_tl_rec.LANGUAGE := USERENV('LANG');
5162         x_okl_ins_policies_tl_rec.LANGUAGE := USERENV('LANG');
5163         RETURN(l_return_status);
5164       END Set_Attributes;
5165     BEGIN
5166       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5167                                                 p_init_msg_list,
5168                                                 '_PVT',
5169                                                 x_return_status);
5170       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5171         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5172       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5173         RAISE OKC_API.G_EXCEPTION_ERROR;
5174       END IF;
5175       --- Setting item attributes
5176       l_return_status := Set_Attributes(
5177         p_okl_ins_policies_tl_rec,         -- IN
5178         l_okl_ins_policies_tl_rec);        -- OUT
5179       --- If any errors happen abort API
5180       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5181         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5182       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5183         RAISE OKC_API.G_EXCEPTION_ERROR;
5184       END IF;
5185       l_return_status := populate_new_record(l_okl_ins_policies_tl_rec, l_def_okl_ins_policies_tl_rec);
5186       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5187         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5188       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5189         RAISE OKC_API.G_EXCEPTION_ERROR;
5190       END IF;
5191       UPDATE OKL_INS_POLICIES_TL
5192       SET DESCRIPTION = l_def_okl_ins_policies_tl_rec.description,
5193           SOURCE_LANG = l_def_okl_ins_policies_tl_rec.source_lang, --Added for bug 3637102
5194           ENDORSEMENT = l_def_okl_ins_policies_tl_rec.endorsement,
5195           COMMENTS = l_def_okl_ins_policies_tl_rec.comments,
5196           CANCELLATION_COMMENT = l_def_okl_ins_policies_tl_rec.cancellation_comment,
5197           CREATED_BY = l_def_okl_ins_policies_tl_rec.created_by,
5198           CREATION_DATE = l_def_okl_ins_policies_tl_rec.creation_date,
5199           LAST_UPDATED_BY = l_def_okl_ins_policies_tl_rec.last_updated_by,
5200           LAST_UPDATE_DATE = l_def_okl_ins_policies_tl_rec.last_update_date,
5201           LAST_UPDATE_LOGIN = l_def_okl_ins_policies_tl_rec.last_update_login
5202       WHERE ID = l_def_okl_ins_policies_tl_rec.id
5203         AND  USERENV('LANG') in (SOURCE_LANG,LANGUAGE);--Added LANGUAGE for fixing 3637102
5204 
5205       UPDATE OKL_INS_POLICIES_TL
5206       SET SFWT_FLAG = 'Y'
5207       WHERE ID = l_def_okl_ins_policies_tl_rec.id
5208         AND SOURCE_LANG <> USERENV('LANG');
5209       x_okl_ins_policies_tl_rec := l_okl_ins_policies_tl_rec;
5210       x_return_status := l_return_status;
5211       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5212     EXCEPTION
5213       WHEN OKC_API.G_EXCEPTION_ERROR THEN
5214         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5215         (
5216           l_api_name,
5217           G_PKG_NAME,
5218           'OKC_API.G_RET_STS_ERROR',
5219           x_msg_count,
5220           x_msg_data,
5221           '_PVT'
5222         );
5223       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5224         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5225         (
5226           l_api_name,
5227           G_PKG_NAME,
5228           'OKC_API.G_RET_STS_UNEXP_ERROR',
5229           x_msg_count,
5230           x_msg_data,
5231           '_PVT'
5232         );
5233       WHEN OTHERS THEN
5234         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5235         (
5236           l_api_name,
5237           G_PKG_NAME,
5238           'OTHERS',
5239           x_msg_count,
5240           x_msg_data,
5241           '_PVT'
5242         );
5243     END update_row;
5244     ---------------------------------------
5245     -- update_row for:OKL_INS_POLICIES_V --
5246     ---------------------------------------
5247     PROCEDURE update_row(
5248       p_api_version                  IN NUMBER,
5249       p_init_msg_list                IN VARCHAR2 ,
5250       x_return_status                OUT NOCOPY VARCHAR2,
5251       x_msg_count                    OUT NOCOPY NUMBER,
5252       x_msg_data                     OUT NOCOPY VARCHAR2,
5253       p_ipyv_rec                     IN ipyv_rec_type,
5254       x_ipyv_rec                     OUT NOCOPY ipyv_rec_type) IS
5255       l_api_version                  CONSTANT NUMBER := 1;
5256       l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
5257       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5258       l_ipyv_rec                     ipyv_rec_type := p_ipyv_rec;
5259       l_def_ipyv_rec                 ipyv_rec_type;
5260       l_db_ipyv_rec                  ipyv_rec_type;
5261       l_ipy_rec                      ipy_rec_type;
5262       lx_ipy_rec                     ipy_rec_type;
5263       l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type;
5264       lx_okl_ins_policies_tl_rec     okl_ins_policies_tl_rec_type;
5265       -------------------------------
5266       -- FUNCTION fill_who_columns --
5267       -------------------------------
5268       FUNCTION fill_who_columns (
5269         p_ipyv_rec IN ipyv_rec_type
5270       ) RETURN ipyv_rec_type IS
5271         l_ipyv_rec ipyv_rec_type := p_ipyv_rec;
5272       BEGIN
5273         l_ipyv_rec.LAST_UPDATE_DATE := SYSDATE;
5274         l_ipyv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
5275         l_ipyv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
5276         RETURN(l_ipyv_rec);
5277       END fill_who_columns;
5278       ----------------------------------
5279       -- FUNCTION populate_new_record --
5280       ----------------------------------
5281       FUNCTION populate_new_record (
5282         p_ipyv_rec IN ipyv_rec_type,
5283         x_ipyv_rec OUT NOCOPY ipyv_rec_type
5284       ) RETURN VARCHAR2 IS
5285         l_row_notfound                 BOOLEAN := TRUE;
5286         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5287       BEGIN
5288         x_ipyv_rec := p_ipyv_rec;
5289         -- Get current database values
5290         -- NOTE: Never assign the OBJECT_VERSION_NUMBER.  Force the user to pass it
5291         --       so it may be verified through LOCK_ROW.
5292         l_db_ipyv_rec := get_rec(p_ipyv_rec, l_return_status);
5293         IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
5294           IF (x_ipyv_rec.id = OKC_API.G_MISS_NUM)
5295           THEN
5296             x_ipyv_rec.id := l_db_ipyv_rec.id;
5297           END IF;
5298           IF (x_ipyv_rec.ipy_type = OKC_API.G_MISS_CHAR)
5299           THEN
5300             x_ipyv_rec.ipy_type := l_db_ipyv_rec.ipy_type;
5301           END IF;
5302           IF (x_ipyv_rec.description = OKC_API.G_MISS_CHAR)
5303           THEN
5304             x_ipyv_rec.description := l_db_ipyv_rec.description;
5305           END IF;
5306           IF (x_ipyv_rec.endorsement = OKC_API.G_MISS_CHAR)
5307           THEN
5308             x_ipyv_rec.endorsement := l_db_ipyv_rec.endorsement;
5309           END IF;
5310           IF (x_ipyv_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
5311           THEN
5312             x_ipyv_rec.sfwt_flag := l_db_ipyv_rec.sfwt_flag;
5313           END IF;
5314           IF (x_ipyv_rec.cancellation_comment = OKC_API.G_MISS_CHAR)
5315           THEN
5316             x_ipyv_rec.cancellation_comment := l_db_ipyv_rec.cancellation_comment;
5317           END IF;
5318           IF (x_ipyv_rec.comments = OKC_API.G_MISS_CHAR)
5319           THEN
5320             x_ipyv_rec.comments := l_db_ipyv_rec.comments;
5321           END IF;
5322           IF (x_ipyv_rec.name_of_insured = OKC_API.G_MISS_CHAR)
5323           THEN
5324             x_ipyv_rec.name_of_insured := l_db_ipyv_rec.name_of_insured;
5325           END IF;
5326           IF (x_ipyv_rec.policy_number = OKC_API.G_MISS_CHAR)
5327           THEN
5328             x_ipyv_rec.policy_number := l_db_ipyv_rec.policy_number;
5329           END IF;
5330           IF (x_ipyv_rec.calculated_premium = OKC_API.G_MISS_NUM)
5331           THEN
5332             x_ipyv_rec.calculated_premium := l_db_ipyv_rec.calculated_premium;
5333           END IF;
5334           IF (x_ipyv_rec.premium = OKC_API.G_MISS_NUM)
5335           THEN
5336             x_ipyv_rec.premium := l_db_ipyv_rec.premium;
5337           END IF;
5338           IF (x_ipyv_rec.covered_amount = OKC_API.G_MISS_NUM)
5339           THEN
5340             x_ipyv_rec.covered_amount := l_db_ipyv_rec.covered_amount;
5341           END IF;
5342           IF (x_ipyv_rec.deductible = OKC_API.G_MISS_NUM)
5343           THEN
5344             x_ipyv_rec.deductible := l_db_ipyv_rec.deductible;
5345           END IF;
5346           IF (x_ipyv_rec.adjustment = OKC_API.G_MISS_NUM)
5347           THEN
5348             x_ipyv_rec.adjustment := l_db_ipyv_rec.adjustment;
5349           END IF;
5350           IF (x_ipyv_rec.payment_frequency = OKC_API.G_MISS_CHAR)
5351           THEN
5352             x_ipyv_rec.payment_frequency := l_db_ipyv_rec.payment_frequency;
5353           END IF;
5354           IF (x_ipyv_rec.crx_code = OKC_API.G_MISS_CHAR)
5355           THEN
5356             x_ipyv_rec.crx_code := l_db_ipyv_rec.crx_code;
5357           END IF;
5358           IF (x_ipyv_rec.ipf_code = OKC_API.G_MISS_CHAR)
5359           THEN
5360             x_ipyv_rec.ipf_code := l_db_ipyv_rec.ipf_code;
5361           END IF;
5362           IF (x_ipyv_rec.iss_code = OKC_API.G_MISS_CHAR)
5363           THEN
5364             x_ipyv_rec.iss_code := l_db_ipyv_rec.iss_code;
5365           END IF;
5366           IF (x_ipyv_rec.ipe_code = OKC_API.G_MISS_CHAR)
5367           THEN
5368             x_ipyv_rec.ipe_code := l_db_ipyv_rec.ipe_code;
5369           END IF;
5370           IF (x_ipyv_rec.date_to = OKC_API.G_MISS_DATE)
5371           THEN
5372             x_ipyv_rec.date_to := l_db_ipyv_rec.date_to;
5373           END IF;
5374           IF (x_ipyv_rec.date_from = OKC_API.G_MISS_DATE)
5375           THEN
5376             x_ipyv_rec.date_from := l_db_ipyv_rec.date_from;
5377           END IF;
5378           IF (x_ipyv_rec.date_quoted = OKC_API.G_MISS_DATE)
5379           THEN
5380             x_ipyv_rec.date_quoted := l_db_ipyv_rec.date_quoted;
5381           END IF;
5382           IF (x_ipyv_rec.date_proof_provided = OKC_API.G_MISS_DATE)
5383           THEN
5384             x_ipyv_rec.date_proof_provided := l_db_ipyv_rec.date_proof_provided;
5385           END IF;
5386           IF (x_ipyv_rec.date_proof_required = OKC_API.G_MISS_DATE)
5387           THEN
5388             x_ipyv_rec.date_proof_required := l_db_ipyv_rec.date_proof_required;
5389           END IF;
5390           IF (x_ipyv_rec.cancellation_date = OKC_API.G_MISS_DATE)
5391           THEN
5392             x_ipyv_rec.cancellation_date := l_db_ipyv_rec.cancellation_date;
5393           END IF;
5394           IF (x_ipyv_rec.date_quote_expiry = OKC_API.G_MISS_DATE)
5395           THEN
5396             x_ipyv_rec.date_quote_expiry := l_db_ipyv_rec.date_quote_expiry;
5397           END IF;
5398           IF (x_ipyv_rec.activation_date = OKC_API.G_MISS_DATE)
5399           THEN
5400             x_ipyv_rec.activation_date := l_db_ipyv_rec.activation_date;
5401           END IF;
5402           IF (x_ipyv_rec.quote_yn = OKC_API.G_MISS_CHAR)
5403           THEN
5404             x_ipyv_rec.quote_yn := l_db_ipyv_rec.quote_yn;
5405           END IF;
5406           IF (x_ipyv_rec.on_file_yn = OKC_API.G_MISS_CHAR)
5407           THEN
5408             x_ipyv_rec.on_file_yn := l_db_ipyv_rec.on_file_yn;
5409           END IF;
5410           IF (x_ipyv_rec.private_label_yn = OKC_API.G_MISS_CHAR)
5411           THEN
5412             x_ipyv_rec.private_label_yn := l_db_ipyv_rec.private_label_yn;
5413           END IF;
5414           IF (x_ipyv_rec.agent_yn = OKC_API.G_MISS_CHAR)
5415           THEN
5416             x_ipyv_rec.agent_yn := l_db_ipyv_rec.agent_yn;
5417           END IF;
5418           IF (x_ipyv_rec.lessor_insured_yn = OKC_API.G_MISS_CHAR)
5419           THEN
5420             x_ipyv_rec.lessor_insured_yn := l_db_ipyv_rec.lessor_insured_yn;
5421           END IF;
5422           IF (x_ipyv_rec.lessor_payee_yn = OKC_API.G_MISS_CHAR)
5423           THEN
5424             x_ipyv_rec.lessor_payee_yn := l_db_ipyv_rec.lessor_payee_yn;
5425           END IF;
5426           IF (x_ipyv_rec.khr_id = OKC_API.G_MISS_NUM)
5427           THEN
5428             x_ipyv_rec.khr_id := l_db_ipyv_rec.khr_id;
5429           END IF;
5430           IF (x_ipyv_rec.kle_id = OKC_API.G_MISS_NUM)
5431           THEN
5432             x_ipyv_rec.kle_id := l_db_ipyv_rec.kle_id;
5433           END IF;
5434           IF (x_ipyv_rec.ipt_id = OKC_API.G_MISS_NUM)
5435           THEN
5436             x_ipyv_rec.ipt_id := l_db_ipyv_rec.ipt_id;
5437           END IF;
5438           IF (x_ipyv_rec.ipy_id = OKC_API.G_MISS_NUM)
5439           THEN
5440             x_ipyv_rec.ipy_id := l_db_ipyv_rec.ipy_id;
5441           END IF;
5442           IF (x_ipyv_rec.int_id = OKC_API.G_MISS_NUM)
5443           THEN
5444             x_ipyv_rec.int_id := l_db_ipyv_rec.int_id;
5445           END IF;
5446           IF (x_ipyv_rec.isu_id = OKC_API.G_MISS_NUM)
5447           THEN
5448             x_ipyv_rec.isu_id := l_db_ipyv_rec.isu_id;
5449           END IF;
5450           IF (x_ipyv_rec.insurance_factor = OKC_API.G_MISS_CHAR)
5451           THEN
5452             x_ipyv_rec.insurance_factor := l_db_ipyv_rec.insurance_factor;
5453           END IF;
5454           IF (x_ipyv_rec.factor_code = OKC_API.G_MISS_CHAR)
5455 	  THEN
5456 	    x_ipyv_rec.factor_code := l_db_ipyv_rec.factor_code;
5457           END IF;
5458           IF (x_ipyv_rec.factor_value = OKC_API.G_MISS_NUM)
5459           THEN
5460             x_ipyv_rec.factor_value := l_db_ipyv_rec.factor_value;
5461           END IF;
5462           IF (x_ipyv_rec.agency_number = OKC_API.G_MISS_CHAR)
5463           THEN
5464             x_ipyv_rec.agency_number := l_db_ipyv_rec.agency_number;
5465           END IF;
5466           IF (x_ipyv_rec.agency_site_id = OKC_API.G_MISS_NUM)
5467           THEN
5468             x_ipyv_rec.agency_site_id := l_db_ipyv_rec.agency_site_id;
5469           END IF;
5470           IF (x_ipyv_rec.sales_rep_id = OKC_API.G_MISS_NUM)
5471           THEN
5472             x_ipyv_rec.sales_rep_id := l_db_ipyv_rec.sales_rep_id;
5473           END IF;
5474           IF (x_ipyv_rec.agent_site_id = OKC_API.G_MISS_NUM)
5475           THEN
5476             x_ipyv_rec.agent_site_id := l_db_ipyv_rec.agent_site_id;
5477           END IF;
5478           IF (x_ipyv_rec.adjusted_by_id = OKC_API.G_MISS_NUM)
5479           THEN
5480             x_ipyv_rec.adjusted_by_id := l_db_ipyv_rec.adjusted_by_id;
5481           END IF;
5482           IF (x_ipyv_rec.territory_code = OKC_API.G_MISS_CHAR)
5483           THEN
5484             x_ipyv_rec.territory_code := l_db_ipyv_rec.territory_code;
5485           END IF;
5486           IF (x_ipyv_rec.attribute_category = OKC_API.G_MISS_CHAR)
5487           THEN
5488             x_ipyv_rec.attribute_category := l_db_ipyv_rec.attribute_category;
5489           END IF;
5490           IF (x_ipyv_rec.attribute1 = OKC_API.G_MISS_CHAR)
5491           THEN
5492             x_ipyv_rec.attribute1 := l_db_ipyv_rec.attribute1;
5493           END IF;
5494           IF (x_ipyv_rec.attribute2 = OKC_API.G_MISS_CHAR)
5495           THEN
5496             x_ipyv_rec.attribute2 := l_db_ipyv_rec.attribute2;
5497           END IF;
5498           IF (x_ipyv_rec.attribute3 = OKC_API.G_MISS_CHAR)
5499           THEN
5500             x_ipyv_rec.attribute3 := l_db_ipyv_rec.attribute3;
5501           END IF;
5502           IF (x_ipyv_rec.attribute4 = OKC_API.G_MISS_CHAR)
5503           THEN
5504             x_ipyv_rec.attribute4 := l_db_ipyv_rec.attribute4;
5505           END IF;
5506           IF (x_ipyv_rec.attribute5 = OKC_API.G_MISS_CHAR)
5507           THEN
5508             x_ipyv_rec.attribute5 := l_db_ipyv_rec.attribute5;
5509           END IF;
5510           IF (x_ipyv_rec.attribute6 = OKC_API.G_MISS_CHAR)
5511           THEN
5512             x_ipyv_rec.attribute6 := l_db_ipyv_rec.attribute6;
5513           END IF;
5514           IF (x_ipyv_rec.attribute7 = OKC_API.G_MISS_CHAR)
5515           THEN
5516             x_ipyv_rec.attribute7 := l_db_ipyv_rec.attribute7;
5517           END IF;
5518           IF (x_ipyv_rec.attribute8 = OKC_API.G_MISS_CHAR)
5519           THEN
5520             x_ipyv_rec.attribute8 := l_db_ipyv_rec.attribute8;
5521           END IF;
5522           IF (x_ipyv_rec.attribute9 = OKC_API.G_MISS_CHAR)
5523           THEN
5524             x_ipyv_rec.attribute9 := l_db_ipyv_rec.attribute9;
5525           END IF;
5526           IF (x_ipyv_rec.attribute10 = OKC_API.G_MISS_CHAR)
5527           THEN
5528             x_ipyv_rec.attribute10 := l_db_ipyv_rec.attribute10;
5529           END IF;
5530           IF (x_ipyv_rec.attribute11 = OKC_API.G_MISS_CHAR)
5531           THEN
5532             x_ipyv_rec.attribute11 := l_db_ipyv_rec.attribute11;
5533           END IF;
5534           IF (x_ipyv_rec.attribute12 = OKC_API.G_MISS_CHAR)
5535           THEN
5536             x_ipyv_rec.attribute12 := l_db_ipyv_rec.attribute12;
5537           END IF;
5538           IF (x_ipyv_rec.attribute13 = OKC_API.G_MISS_CHAR)
5539           THEN
5540             x_ipyv_rec.attribute13 := l_db_ipyv_rec.attribute13;
5541           END IF;
5542           IF (x_ipyv_rec.attribute14 = OKC_API.G_MISS_CHAR)
5543           THEN
5544             x_ipyv_rec.attribute14 := l_db_ipyv_rec.attribute14;
5545           END IF;
5546           IF (x_ipyv_rec.attribute15 = OKC_API.G_MISS_CHAR)
5547           THEN
5548             x_ipyv_rec.attribute15 := l_db_ipyv_rec.attribute15;
5549           END IF;
5550           IF (x_ipyv_rec.program_id = OKC_API.G_MISS_NUM)
5551           THEN
5552             x_ipyv_rec.program_id := l_db_ipyv_rec.program_id;
5553           END IF;
5554           IF (x_ipyv_rec.org_id = OKC_API.G_MISS_NUM)
5555           THEN
5556             x_ipyv_rec.org_id := l_db_ipyv_rec.org_id;
5557           END IF;
5558           IF (x_ipyv_rec.program_update_date = OKC_API.G_MISS_DATE)
5559           THEN
5560             x_ipyv_rec.program_update_date := l_db_ipyv_rec.program_update_date;
5561           END IF;
5562           IF (x_ipyv_rec.program_application_id = OKC_API.G_MISS_NUM)
5563           THEN
5564             x_ipyv_rec.program_application_id := l_db_ipyv_rec.program_application_id;
5565           END IF;
5566           IF (x_ipyv_rec.request_id = OKC_API.G_MISS_NUM)
5567           THEN
5568             x_ipyv_rec.request_id := l_db_ipyv_rec.request_id;
5569           END IF;
5570           IF (x_ipyv_rec.created_by = OKC_API.G_MISS_NUM)
5571           THEN
5572             x_ipyv_rec.created_by := l_db_ipyv_rec.created_by;
5573           END IF;
5574           IF (x_ipyv_rec.creation_date = OKC_API.G_MISS_DATE)
5575           THEN
5576             x_ipyv_rec.creation_date := l_db_ipyv_rec.creation_date;
5577           END IF;
5578           IF (x_ipyv_rec.last_updated_by = OKC_API.G_MISS_NUM)
5579           THEN
5580             x_ipyv_rec.last_updated_by := l_db_ipyv_rec.last_updated_by;
5581           END IF;
5582           IF (x_ipyv_rec.last_update_date = OKC_API.G_MISS_DATE)
5583           THEN
5584             x_ipyv_rec.last_update_date := l_db_ipyv_rec.last_update_date;
5585           END IF;
5586           IF (x_ipyv_rec.last_update_login = OKC_API.G_MISS_NUM)
5587           THEN
5588             x_ipyv_rec.last_update_login := l_db_ipyv_rec.last_update_login;
5589           END IF;
5590 -- Bug: 4567777 PAGARG new column for Lease Application Functionality impact
5591           IF (x_ipyv_rec.lease_application_id = OKC_API.G_MISS_NUM)
5592           THEN
5593             x_ipyv_rec.lease_application_id := l_db_ipyv_rec.lease_application_id;
5594           END IF;
5595           IF (x_ipyv_rec.legal_entity_id = OKC_API.G_MISS_NUM)
5596           THEN
5597             x_ipyv_rec.legal_entity_id := l_db_ipyv_rec.legal_entity_id;
5598           END IF;
5599         END IF;
5600         RETURN(l_return_status);
5601       END populate_new_record;
5602       -------------------------------------------
5603       -- Set_Attributes for:OKL_INS_POLICIES_V --
5604       -------------------------------------------
5605       FUNCTION Set_Attributes (
5606         p_ipyv_rec IN ipyv_rec_type,
5607         x_ipyv_rec OUT NOCOPY ipyv_rec_type
5608       ) RETURN VARCHAR2 IS
5609         l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5610       BEGIN
5611         x_ipyv_rec := p_ipyv_rec;
5612         SELECT NVL(DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,FND_GLOBAL.CONC_REQUEST_ID),l_ipyv_rec.request_id),
5613 	                         NVL(DECODE(FND_GLOBAL.PROG_APPL_ID,-1,NULL,FND_GLOBAL.PROG_APPL_ID),l_ipyv_rec.program_application_id),
5614 	                         NVL(DECODE(FND_GLOBAL.CONC_PROGRAM_ID,-1,NULL,FND_GLOBAL.CONC_PROGRAM_ID),l_ipyv_rec.program_id),
5615 	                         DECODE(DECODE(FND_GLOBAL.CONC_REQUEST_ID,-1,NULL,SYSDATE),NULL,l_ipyv_rec.program_update_date,SYSDATE),
5616 	                        MO_GLOBAL.GET_CURRENT_ORG_ID() INTO x_ipyv_rec.request_id,
5617 	                                                                            x_ipyv_rec.program_application_id,
5618 	                                                                            x_ipyv_rec.program_id,
5619 	                                                                            x_ipyv_rec.program_update_date,
5620 	                                                                            x_ipyv_rec.org_id FROM dual;
5621 
5622         RETURN(l_return_status);
5623       END Set_Attributes;
5624     BEGIN
5625       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5626                                                 G_PKG_NAME,
5627                                                 p_init_msg_list,
5628                                                 l_api_version,
5629                                                 p_api_version,
5630                                                 '_PVT',
5631                                                 x_return_status);
5632       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5633         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5634       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5635         RAISE OKC_API.G_EXCEPTION_ERROR;
5636       END IF;
5637       --- Setting item attributes
5638       l_return_status := Set_Attributes(
5639         p_ipyv_rec,                        -- IN
5640         x_ipyv_rec);                       -- OUT
5641       --- If any errors happen abort API
5642       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5643         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5644       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5645         RAISE OKC_API.G_EXCEPTION_ERROR;
5646       END IF;
5647       l_return_status := populate_new_record(l_ipyv_rec, l_def_ipyv_rec);
5648       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5649         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5650       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5651         RAISE OKC_API.G_EXCEPTION_ERROR;
5652       END IF;
5653       l_def_ipyv_rec := fill_who_columns(l_def_ipyv_rec);
5654       --- Validate all non-missing attributes (Item Level Validation)
5655       l_return_status := Validate_Attributes(l_def_ipyv_rec);
5656       --- If any errors happen abort API
5657       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5658         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5659       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5660         RAISE OKC_API.G_EXCEPTION_ERROR;
5661       END IF;
5662       --l_return_status := Validate_Record(l_def_ipyv_rec, l_db_ipyv_rec);
5663       l_return_status := Validate_Record(l_def_ipyv_rec);
5664       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5665         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5666       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5667         RAISE OKC_API.G_EXCEPTION_ERROR;
5668       END IF;
5669       -- Lock the Record
5670       lock_row(
5671         p_api_version                  => p_api_version,
5672         p_init_msg_list                => p_init_msg_list,
5673         x_return_status                => l_return_status,
5674         x_msg_count                    => x_msg_count,
5675         x_msg_data                     => x_msg_data,
5676         p_ipyv_rec                     => p_ipyv_rec);
5677       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5678         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5679       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5680         RAISE OKC_API.G_EXCEPTION_ERROR;
5681       END IF;
5682       -----------------------------------------
5683       -- Move VIEW record to "Child" records --
5684       -----------------------------------------
5685       migrate(l_def_ipyv_rec, l_ipy_rec);
5686       migrate(l_def_ipyv_rec, l_okl_ins_policies_tl_rec);
5687       -----------------------------------------------
5688       -- Call the UPDATE_ROW for each child record --
5689       -----------------------------------------------
5690       update_row(
5691         p_init_msg_list,
5692         l_return_status,
5693         x_msg_count,
5694         x_msg_data,
5695         l_ipy_rec,
5696         lx_ipy_rec
5697       );
5698       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5699         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5700       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5701         RAISE OKC_API.G_EXCEPTION_ERROR;
5702       END IF;
5703       migrate(lx_ipy_rec, l_def_ipyv_rec);
5704       update_row(
5705         p_init_msg_list,
5706         l_return_status,
5707         x_msg_count,
5708         x_msg_data,
5709         l_okl_ins_policies_tl_rec,
5710         lx_okl_ins_policies_tl_rec
5711       );
5712       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5713         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5714       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5715         RAISE OKC_API.G_EXCEPTION_ERROR;
5716       END IF;
5717       migrate(lx_okl_ins_policies_tl_rec, l_def_ipyv_rec);
5718       x_ipyv_rec := l_def_ipyv_rec;
5719       x_return_status := l_return_status;
5720       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5721     EXCEPTION
5722       WHEN OKC_API.G_EXCEPTION_ERROR THEN
5723         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5724         (
5725           l_api_name,
5726           G_PKG_NAME,
5727           'OKC_API.G_RET_STS_ERROR',
5728           x_msg_count,
5729           x_msg_data,
5730           '_PVT'
5731         );
5732       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5733         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5734         (
5735           l_api_name,
5736           G_PKG_NAME,
5737           'OKC_API.G_RET_STS_UNEXP_ERROR',
5738           x_msg_count,
5739           x_msg_data,
5740           '_PVT'
5741         );
5742       WHEN OTHERS THEN
5743         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5744         (
5745           l_api_name,
5746           G_PKG_NAME,
5747           'OTHERS',
5748           x_msg_count,
5749           x_msg_data,
5750           '_PVT'
5751         );
5752     END update_row;
5753     ----------------------------------------
5754     -- PL/SQL TBL update_row for:ipyv_tbl --
5755     ----------------------------------------
5756     PROCEDURE update_row(
5757       p_api_version                  IN NUMBER,
5758       p_init_msg_list                IN VARCHAR2 ,
5759       x_return_status                OUT NOCOPY VARCHAR2,
5760       x_msg_count                    OUT NOCOPY NUMBER,
5761       x_msg_data                     OUT NOCOPY VARCHAR2,
5762       p_ipyv_tbl                     IN ipyv_tbl_type,
5763       x_ipyv_tbl                     OUT NOCOPY ipyv_tbl_type,
5764       px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
5765       l_api_version                  CONSTANT NUMBER := 1;
5766       l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
5767       i                              NUMBER := 0;
5768     BEGIN
5769       OKC_API.init_msg_list(p_init_msg_list);
5770       -- Make sure PL/SQL table has records in it before passing
5771       IF (p_ipyv_tbl.COUNT > 0) THEN
5772         i := p_ipyv_tbl.FIRST;
5773         LOOP
5774           DECLARE
5775             l_error_rec         OKL_API.ERROR_REC_TYPE;
5776           BEGIN
5777             l_error_rec.api_name := l_api_name;
5778             l_error_rec.api_package := G_PKG_NAME;
5779             l_error_rec.idx := i;
5780             update_row (
5781               p_api_version                  => p_api_version,
5782               p_init_msg_list                => OKC_API.G_FALSE,
5783               x_return_status                => l_error_rec.error_type,
5784               x_msg_count                    => l_error_rec.msg_count,
5785               x_msg_data                     => l_error_rec.msg_data,
5786               p_ipyv_rec                     => p_ipyv_tbl(i),
5787               x_ipyv_rec                     => x_ipyv_tbl(i));
5788             IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
5789               l_error_rec.sqlcode := SQLCODE;
5790               load_error_tbl(l_error_rec, px_error_tbl);
5791             ELSE
5792               x_msg_count := l_error_rec.msg_count;
5793               x_msg_data := l_error_rec.msg_data;
5794             END IF;
5795           EXCEPTION
5796             WHEN OKC_API.G_EXCEPTION_ERROR THEN
5797               l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
5798               l_error_rec.sqlcode := SQLCODE;
5799               load_error_tbl(l_error_rec, px_error_tbl);
5800             WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5801               l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
5802               l_error_rec.sqlcode := SQLCODE;
5803               load_error_tbl(l_error_rec, px_error_tbl);
5804             WHEN OTHERS THEN
5805               l_error_rec.error_type := 'OTHERS';
5806               l_error_rec.sqlcode := SQLCODE;
5807               load_error_tbl(l_error_rec, px_error_tbl);
5808           END;
5809           EXIT WHEN (i = p_ipyv_tbl.LAST);
5810           i := p_ipyv_tbl.NEXT(i);
5811         END LOOP;
5812       END IF;
5813       -- Loop through the error_tbl to find the error with the highest severity
5814       -- and return it.
5815       x_return_status := find_highest_exception(px_error_tbl);
5816       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5817     EXCEPTION
5818       WHEN OKC_API.G_EXCEPTION_ERROR THEN
5819         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5820         (
5821           l_api_name,
5822           G_PKG_NAME,
5823           'OKC_API.G_RET_STS_ERROR',
5824           x_msg_count,
5825           x_msg_data,
5826           '_PVT'
5827         );
5828       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5829         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5830         (
5831           l_api_name,
5832           G_PKG_NAME,
5833           'OKC_API.G_RET_STS_UNEXP_ERROR',
5834           x_msg_count,
5835           x_msg_data,
5836           '_PVT'
5837         );
5838       WHEN OTHERS THEN
5839         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5840         (
5841           l_api_name,
5842           G_PKG_NAME,
5843           'OTHERS',
5844           x_msg_count,
5845           x_msg_data,
5846           '_PVT'
5847         );
5848     END update_row;
5849     ----------------------------------------
5850     -- PL/SQL TBL update_row for:IPYV_TBL --
5851     ----------------------------------------
5852     PROCEDURE update_row(
5853       p_api_version                  IN NUMBER,
5854       p_init_msg_list                IN VARCHAR2 ,
5855       x_return_status                OUT NOCOPY VARCHAR2,
5856       x_msg_count                    OUT NOCOPY NUMBER,
5857       x_msg_data                     OUT NOCOPY VARCHAR2,
5858       p_ipyv_tbl                     IN ipyv_tbl_type,
5859       x_ipyv_tbl                     OUT NOCOPY ipyv_tbl_type) IS
5860       l_api_version                  CONSTANT NUMBER := 1;
5861       l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
5862       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5863       l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
5864     BEGIN
5865       OKC_API.init_msg_list(p_init_msg_list);
5866       -- Make sure PL/SQL table has records in it before passing
5867       IF (p_ipyv_tbl.COUNT > 0) THEN
5868         update_row (
5869           p_api_version                  => p_api_version,
5870           p_init_msg_list                => OKC_API.G_FALSE,
5871           x_return_status                => x_return_status,
5872           x_msg_count                    => x_msg_count,
5873           x_msg_data                     => x_msg_data,
5874           p_ipyv_tbl                     => p_ipyv_tbl,
5875           x_ipyv_tbl                     => x_ipyv_tbl,
5876           px_error_tbl                   => l_error_tbl);
5877       END IF;
5878       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5879     EXCEPTION
5880       WHEN OKC_API.G_EXCEPTION_ERROR THEN
5881         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5882         (
5883           l_api_name,
5884           G_PKG_NAME,
5885           'OKC_API.G_RET_STS_ERROR',
5886           x_msg_count,
5887           x_msg_data,
5888           '_PVT'
5889         );
5890       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5891         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5892         (
5893           l_api_name,
5894           G_PKG_NAME,
5895           'OKC_API.G_RET_STS_UNEXP_ERROR',
5896           x_msg_count,
5897           x_msg_data,
5898           '_PVT'
5899         );
5900       WHEN OTHERS THEN
5901         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5902         (
5903           l_api_name,
5904           G_PKG_NAME,
5905           'OTHERS',
5906           x_msg_count,
5907           x_msg_data,
5908           '_PVT'
5909         );
5910     END update_row;
5911     ---------------------------------------------------------------------------
5912     -- PROCEDURE delete_row
5913     ---------------------------------------------------------------------------
5914     ---------------------------------------
5915     -- delete_row for:OKL_INS_POLICIES_B --
5916     ---------------------------------------
5917     PROCEDURE delete_row(
5918       p_init_msg_list                IN VARCHAR2 ,
5919       x_return_status                OUT NOCOPY VARCHAR2,
5920       x_msg_count                    OUT NOCOPY NUMBER,
5921       x_msg_data                     OUT NOCOPY VARCHAR2,
5922       p_ipy_rec                      IN ipy_rec_type) IS
5923       l_api_version                  CONSTANT NUMBER := 1;
5924       l_api_name                     CONSTANT VARCHAR2(30) := 'B_delete_row';
5925       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5926       l_ipy_rec                      ipy_rec_type := p_ipy_rec;
5927       l_row_notfound                 BOOLEAN := TRUE;
5928     BEGIN
5929       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5930                                                 p_init_msg_list,
5931                                                 '_PVT',
5932                                                 x_return_status);
5933       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5934         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5935       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5936         RAISE OKC_API.G_EXCEPTION_ERROR;
5937       END IF;
5938       DELETE FROM OKL_INS_POLICIES_B
5939        WHERE ID = p_ipy_rec.id;
5940       x_return_status := l_return_status;
5941       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
5942     EXCEPTION
5943       WHEN OKC_API.G_EXCEPTION_ERROR THEN
5944         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5945         (
5946           l_api_name,
5947           G_PKG_NAME,
5948           'OKC_API.G_RET_STS_ERROR',
5949           x_msg_count,
5950           x_msg_data,
5951           '_PVT'
5952         );
5953       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5954         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5955         (
5956           l_api_name,
5957           G_PKG_NAME,
5958           'OKC_API.G_RET_STS_UNEXP_ERROR',
5959           x_msg_count,
5960           x_msg_data,
5961           '_PVT'
5962         );
5963       WHEN OTHERS THEN
5964         x_return_status := OKC_API.HANDLE_EXCEPTIONS
5965         (
5966           l_api_name,
5967           G_PKG_NAME,
5968           'OTHERS',
5969           x_msg_count,
5970           x_msg_data,
5971           '_PVT'
5972         );
5973     END delete_row;
5974     ----------------------------------------
5975     -- delete_row for:OKL_INS_POLICIES_TL --
5976     ----------------------------------------
5977     PROCEDURE delete_row(
5978       p_init_msg_list                IN VARCHAR2 ,
5979       x_return_status                OUT NOCOPY VARCHAR2,
5980       x_msg_count                    OUT NOCOPY NUMBER,
5981       x_msg_data                     OUT NOCOPY VARCHAR2,
5982       p_okl_ins_policies_tl_rec      IN okl_ins_policies_tl_rec_type) IS
5983       l_api_version                  CONSTANT NUMBER := 1;
5984       l_api_name                     CONSTANT VARCHAR2(30) := 'TL_delete_row';
5985       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
5986       l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type := p_okl_ins_policies_tl_rec;
5987       l_row_notfound                 BOOLEAN := TRUE;
5988     BEGIN
5989       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
5990                                                 p_init_msg_list,
5991                                                 '_PVT',
5992                                                 x_return_status);
5993       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
5994         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
5995       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
5996         RAISE OKC_API.G_EXCEPTION_ERROR;
5997       END IF;
5998       DELETE FROM OKL_INS_POLICIES_TL
5999        WHERE ID = p_okl_ins_policies_tl_rec.id;
6000       x_return_status := l_return_status;
6001       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
6002     EXCEPTION
6003       WHEN OKC_API.G_EXCEPTION_ERROR THEN
6004         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6005         (
6006           l_api_name,
6007           G_PKG_NAME,
6008           'OKC_API.G_RET_STS_ERROR',
6009           x_msg_count,
6010           x_msg_data,
6011           '_PVT'
6012         );
6013       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6014         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6015         (
6016           l_api_name,
6017           G_PKG_NAME,
6018           'OKC_API.G_RET_STS_UNEXP_ERROR',
6019           x_msg_count,
6020           x_msg_data,
6021           '_PVT'
6022         );
6023       WHEN OTHERS THEN
6024         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6025         (
6026           l_api_name,
6027           G_PKG_NAME,
6028           'OTHERS',
6029           x_msg_count,
6030           x_msg_data,
6031           '_PVT'
6032         );
6033     END delete_row;
6034     ---------------------------------------
6035     -- delete_row for:OKL_INS_POLICIES_V --
6036     ---------------------------------------
6037     PROCEDURE delete_row(
6038       p_api_version                  IN NUMBER,
6039       p_init_msg_list                IN VARCHAR2 ,
6040       x_return_status                OUT NOCOPY VARCHAR2,
6041       x_msg_count                    OUT NOCOPY NUMBER,
6042       x_msg_data                     OUT NOCOPY VARCHAR2,
6043       p_ipyv_rec                     IN ipyv_rec_type) IS
6044       l_api_version                  CONSTANT NUMBER := 1;
6045       l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
6046       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6047       l_ipyv_rec                     ipyv_rec_type := p_ipyv_rec;
6048       l_okl_ins_policies_tl_rec      okl_ins_policies_tl_rec_type;
6049       l_ipy_rec                      ipy_rec_type;
6050     BEGIN
6051       l_return_status := OKC_API.START_ACTIVITY(l_api_name,
6052                                                 G_PKG_NAME,
6053                                                 p_init_msg_list,
6054                                                 l_api_version,
6055                                                 p_api_version,
6056                                                 '_PVT',
6057                                                 x_return_status);
6058       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6059         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6060       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6061         RAISE OKC_API.G_EXCEPTION_ERROR;
6062       END IF;
6063       -----------------------------------------
6064       -- Move VIEW record to "Child" records --
6065       -----------------------------------------
6066       migrate(l_ipyv_rec, l_okl_ins_policies_tl_rec);
6067       migrate(l_ipyv_rec, l_ipy_rec);
6068       -----------------------------------------------
6069       -- Call the DELETE_ROW for each child record --
6070       -----------------------------------------------
6071       delete_row(
6072         p_init_msg_list,
6073         l_return_status,
6074         x_msg_count,
6075         x_msg_data,
6076         l_okl_ins_policies_tl_rec
6077       );
6078       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6079         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6080       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6081         RAISE OKC_API.G_EXCEPTION_ERROR;
6082       END IF;
6083       delete_row(
6084         p_init_msg_list,
6085         l_return_status,
6086         x_msg_count,
6087         x_msg_data,
6088         l_ipy_rec
6089       );
6090       IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
6091         RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
6092       ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
6093         RAISE OKC_API.G_EXCEPTION_ERROR;
6094       END IF;
6095       x_return_status := l_return_status;
6096       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
6097     EXCEPTION
6098       WHEN OKC_API.G_EXCEPTION_ERROR THEN
6099         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6100         (
6101           l_api_name,
6102           G_PKG_NAME,
6103           'OKC_API.G_RET_STS_ERROR',
6104           x_msg_count,
6105           x_msg_data,
6106           '_PVT'
6107         );
6108       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6109         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6110         (
6111           l_api_name,
6112           G_PKG_NAME,
6113           'OKC_API.G_RET_STS_UNEXP_ERROR',
6114           x_msg_count,
6115           x_msg_data,
6116           '_PVT'
6117         );
6118       WHEN OTHERS THEN
6119         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6120         (
6121           l_api_name,
6122           G_PKG_NAME,
6123           'OTHERS',
6124           x_msg_count,
6125           x_msg_data,
6126           '_PVT'
6127         );
6128     END delete_row;
6129     --------------------------------------------------
6130     -- PL/SQL TBL delete_row for:OKL_INS_POLICIES_V --
6131     --------------------------------------------------
6132     PROCEDURE delete_row(
6133       p_api_version                  IN NUMBER,
6134       p_init_msg_list                IN VARCHAR2 ,
6135       x_return_status                OUT NOCOPY VARCHAR2,
6136       x_msg_count                    OUT NOCOPY NUMBER,
6137       x_msg_data                     OUT NOCOPY VARCHAR2,
6138       p_ipyv_tbl                     IN ipyv_tbl_type,
6139       px_error_tbl                   IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
6140       l_api_version                  CONSTANT NUMBER := 1;
6141       l_api_name                     CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
6142       i                              NUMBER := 0;
6143     BEGIN
6144       OKC_API.init_msg_list(p_init_msg_list);
6145       -- Make sure PL/SQL table has records in it before passing
6146       IF (p_ipyv_tbl.COUNT > 0) THEN
6147         i := p_ipyv_tbl.FIRST;
6148         LOOP
6149           DECLARE
6150             l_error_rec         OKL_API.ERROR_REC_TYPE;
6151           BEGIN
6152             l_error_rec.api_name := l_api_name;
6153             l_error_rec.api_package := G_PKG_NAME;
6154             l_error_rec.idx := i;
6155             delete_row (
6156               p_api_version                  => p_api_version,
6157               p_init_msg_list                => OKC_API.G_FALSE,
6158               x_return_status                => l_error_rec.error_type,
6159               x_msg_count                    => l_error_rec.msg_count,
6160               x_msg_data                     => l_error_rec.msg_data,
6161               p_ipyv_rec                     => p_ipyv_tbl(i));
6162             IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
6163               l_error_rec.sqlcode := SQLCODE;
6164               load_error_tbl(l_error_rec, px_error_tbl);
6165             ELSE
6166               x_msg_count := l_error_rec.msg_count;
6167               x_msg_data := l_error_rec.msg_data;
6168             END IF;
6169           EXCEPTION
6170             WHEN OKC_API.G_EXCEPTION_ERROR THEN
6171               l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
6172               l_error_rec.sqlcode := SQLCODE;
6173               load_error_tbl(l_error_rec, px_error_tbl);
6174             WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6175               l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
6176               l_error_rec.sqlcode := SQLCODE;
6177               load_error_tbl(l_error_rec, px_error_tbl);
6178             WHEN OTHERS THEN
6179               l_error_rec.error_type := 'OTHERS';
6180               l_error_rec.sqlcode := SQLCODE;
6181               load_error_tbl(l_error_rec, px_error_tbl);
6182           END;
6183           EXIT WHEN (i = p_ipyv_tbl.LAST);
6184           i := p_ipyv_tbl.NEXT(i);
6185         END LOOP;
6186       END IF;
6187       -- Loop through the error_tbl to find the error with the highest severity
6188       -- and return it.
6189       x_return_status := find_highest_exception(px_error_tbl);
6190       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
6191     EXCEPTION
6192       WHEN OKC_API.G_EXCEPTION_ERROR THEN
6193         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6194         (
6195           l_api_name,
6196           G_PKG_NAME,
6197           'OKC_API.G_RET_STS_ERROR',
6198           x_msg_count,
6199           x_msg_data,
6200           '_PVT'
6201         );
6202       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6203         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6204         (
6205           l_api_name,
6206           G_PKG_NAME,
6207           'OKC_API.G_RET_STS_UNEXP_ERROR',
6208           x_msg_count,
6209           x_msg_data,
6210           '_PVT'
6211         );
6212       WHEN OTHERS THEN
6213         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6214         (
6215           l_api_name,
6216           G_PKG_NAME,
6217           'OTHERS',
6218           x_msg_count,
6219           x_msg_data,
6220           '_PVT'
6221         );
6222     END delete_row;
6223     --------------------------------------------------
6224     -- PL/SQL TBL delete_row for:OKL_INS_POLICIES_V --
6225     --------------------------------------------------
6226     PROCEDURE delete_row(
6227       p_api_version                  IN NUMBER,
6228       p_init_msg_list                IN VARCHAR2 ,
6229       x_return_status                OUT NOCOPY VARCHAR2,
6230       x_msg_count                    OUT NOCOPY NUMBER,
6231       x_msg_data                     OUT NOCOPY VARCHAR2,
6232       p_ipyv_tbl                     IN ipyv_tbl_type) IS
6233       l_api_version                  CONSTANT NUMBER := 1;
6234       l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
6235       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
6236       l_error_tbl                    OKL_API.ERROR_TBL_TYPE;
6237     BEGIN
6238       OKC_API.init_msg_list(p_init_msg_list);
6239       -- Make sure PL/SQL table has records in it before passing
6240       IF (p_ipyv_tbl.COUNT > 0) THEN
6241         delete_row (
6242           p_api_version                  => p_api_version,
6243           p_init_msg_list                => OKC_API.G_FALSE,
6244           x_return_status                => x_return_status,
6245           x_msg_count                    => x_msg_count,
6246           x_msg_data                     => x_msg_data,
6247           p_ipyv_tbl                     => p_ipyv_tbl,
6248           px_error_tbl                   => l_error_tbl);
6249       END IF;
6250       OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
6251     EXCEPTION
6252       WHEN OKC_API.G_EXCEPTION_ERROR THEN
6253         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6254         (
6255           l_api_name,
6256           G_PKG_NAME,
6257           'OKC_API.G_RET_STS_ERROR',
6258           x_msg_count,
6259           x_msg_data,
6260           '_PVT'
6261         );
6262       WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6263         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6264         (
6265           l_api_name,
6266           G_PKG_NAME,
6267           'OKC_API.G_RET_STS_UNEXP_ERROR',
6268           x_msg_count,
6269           x_msg_data,
6270           '_PVT'
6271         );
6272       WHEN OTHERS THEN
6273         x_return_status := OKC_API.HANDLE_EXCEPTIONS
6274         (
6275           l_api_name,
6276           G_PKG_NAME,
6277           'OTHERS',
6278           x_msg_count,
6279           x_msg_data,
6280           '_PVT'
6281         );
6282     END delete_row;
6283   END OKL_IPY_PVT;