DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_COVERAGES_PVT

Source


1 PACKAGE BODY OKS_COVERAGES_PVT AS
2 /* $Header: OKSRMCVB.pls 120.21 2010/04/16 07:13:00 spingali ship $*/
3 
4    ---------------------------------------------------------------------------
5   -- PROCEDURE Validate_svc_line_id
6   ---------------------------------------------------------------------------
7 
8   l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
9 
10 
11   PROCEDURE Validate_svc_cle_id(
12     p_ac_rec            IN ac_rec_type,
13     x_return_status 	OUT NOCOPY VARCHAR2) IS
14     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
15   BEGIN
16     IF p_ac_rec.Svc_Cle_id = OKC_API.G_MISS_NUM OR
17        p_ac_rec.Svc_Cle_id IS NULL
18     THEN
19       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Svc_Cle_id');
20 
21       l_return_status := OKC_API.G_RET_STS_ERROR;
22     END IF;
23     x_return_status := l_return_status;
24   EXCEPTION
25     WHEN OTHERS THEN
26       -- store SQL error message on message stack for caller
27       OKC_API.set_message(G_APP_NAME,
28 			  G_UNEXPECTED_ERROR,
29 			  G_SQLCODE_TOKEN,
30 			  SQLCODE,
31 			  G_SQLERRM_TOKEN,
32 			  SQLERRM);
33       -- notify caller of an UNEXPECTED error
34       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
35   END validate_svc_Cle_id;
36 
37   ---------------------------------------------------------------------------
38   -- PROCEDURE Validate_Line_id
39   ---------------------------------------------------------------------------
40   PROCEDURE Validate_Line_id(
41     p_line_id          IN NUMBER,
42     x_return_status 	OUT NOCOPY VARCHAR2) IS
43     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
44     l_Count   NUMBER;
45     CURSOR Cur_Line(P_Line_Id IN NUMBER) IS
46     SELECT COUNT(*) FROM OKC_K_LINES_V
47     WHERE id=P_Line_Id;
48   BEGIN
49     IF P_Line_id = OKC_API.G_MISS_NUM OR
50        P_Line_Id IS NULL
51     THEN
52       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'P_Line_Id');
53 
54       l_return_status := OKC_API.G_RET_STS_ERROR;
55     END IF;
56 
57     OPEN Cur_Line(P_LIne_Id);
58     FETCH Cur_Line INTO l_Count;
59     CLOSE Cur_Line;
60     IF NOT l_Count = 1
61     THEN
62       OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'P_Line_Id');
63 
64       l_return_status := OKC_API.G_RET_STS_ERROR;
65     END IF;
66     x_return_status := l_return_status;
67   EXCEPTION
68     WHEN OTHERS THEN
69       -- store SQL error message on message stack for caller
70       OKC_API.set_message(G_APP_NAME,
71 			 G_UNEXPECTED_ERROR,
72 			 G_SQLCODE_TOKEN,
73 			 SQLCODE,
74 			 G_SQLERRM_TOKEN,
75 			 SQLERRM);
76       -- notify caller of an UNEXPECTED error
77       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
78   END Validate_Line_id;
79   PROCEDURE Validate_tmp_cle_id(
80     p_ac_rec          IN ac_rec_type,
81     x_template_yn       OUT NOCOPY VARCHAR2,
82     x_return_status 	OUT NOCOPY VARCHAR2) IS
83 
84     CURSOR check_cov_tmpl(p_cov_id IN Number) IS
85     SELECT count(*) FROM OKC_K_LINES_B
86     WHERE id = p_cov_id
87     AND lse_id in (2,15,20)
88     and dnz_chr_id < 0;
89 
90     l_Count Number :=0;
91     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
92   BEGIN
93     IF p_ac_rec.tmp_cle_id = OKC_API.G_MISS_NUM OR
94        p_ac_rec.tmp_cle_id IS NULL
95     THEN
96       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'Tmp_cle_Id');
97 
98       l_return_status := OKC_API.G_RET_STS_ERROR;
99     END IF;
100 
101     OPEN check_cov_tmpl(p_ac_rec.tmp_cle_id);
102     FETCH check_cov_tmpl INTO l_Count;
103     CLOSE check_cov_tmpl;
104     IF l_Count > 0
105     THEN
106     x_template_yn := 'Y';
107     Else
108     x_template_yn := 'N';
109     END IF;
110     x_return_status := l_return_status;
111   EXCEPTION
112     WHEN OTHERS THEN
113       -- store SQL error message on message stack for caller
114       OKC_API.set_message(G_APP_NAME,
115 			 G_UNEXPECTED_ERROR,
116 			 G_SQLCODE_TOKEN,
117 			 SQLCODE,
118 			 G_SQLERRM_TOKEN,
119 			 SQLERRM);
120       -- notify caller of an UNEXPECTED error
121       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
122   END Validate_tmp_cle_id;
123 
124 PROCEDURE Init_Clev(P_Clev_Tbl_In_Out IN OUT NOCOPY OKC_Contract_Pub.Clev_Tbl_type) IS
125 
126 BEGIN
127 IF NOT P_Clev_Tbl_In_Out.COUNT=0
128 THEN
129 FOR v_Index IN P_Clev_Tbl_in_Out.FIRST .. P_Clev_Tbl_in_Out.LAST
130 LOOP
131 p_clev_tbl_IN_out(v_Index).line_number	:=NULL;
132 p_clev_tbl_IN_out(v_Index).chr_id		:=NULL;
133 p_clev_tbl_IN_out(v_Index).cle_id       	:=NULL;
134 p_clev_tbl_IN_out(v_Index).lse_id       	:=NULL;
135 p_clev_tbl_IN_out(v_Index).display_sequence	:=NULL;
136 p_clev_tbl_IN_out(v_Index).sts_code		:=NULL;
137 p_clev_tbl_IN_out(v_Index).trn_code		:=NULL;
138 p_clev_tbl_IN_out(v_Index).dnz_chr_id		:=NULL;
139 p_clev_tbl_IN_out(v_Index).exception_yn	:=NULL;
140 p_clev_tbl_IN_out(v_Index).object_version_number:=NULL;
141 p_clev_tbl_IN_out(v_Index).created_by		:=NULL;
142 p_clev_tbl_IN_out(v_Index).creation_date	:=NULL;
143 p_clev_tbl_IN_out(v_Index).last_updated_by	:=NULL;
144 p_clev_tbl_IN_out(v_Index).last_update_date	:=NULL;
145 p_clev_tbl_IN_out(v_Index).hidden_ind		:=NULL;
146 p_clev_tbl_IN_out(v_Index).price_negotiated	:=NULL;
147 p_clev_tbl_IN_out(v_Index).price_level_ind	:=NULL;
148 p_clev_tbl_IN_out(v_Index).invoice_line_level_ind:=NULL;
149 p_clev_tbl_IN_out(v_Index).dpas_rating	:=NULL;
150 p_clev_tbl_IN_out(v_Index).template_used	:='Y';
151 p_clev_tbl_IN_out(v_Index).price_type		:=NULL;
152 p_clev_tbl_IN_out(v_Index).currency_code	:=NULL;
153 p_clev_tbl_IN_out(v_Index).last_update_login	:=NULL;
154 p_clev_tbl_IN_out(v_Index).date_terminated	:=NULL;
155 p_clev_tbl_IN_out(v_Index).start_date		:=NULL;
156 p_clev_tbl_IN_out(v_Index).end_date 		:=NULL;
157 p_clev_tbl_IN_out(v_Index).attribute_category	:=NULL;
158 p_clev_tbl_IN_out(v_Index).attribute1		:=NULL;
159 p_clev_tbl_IN_out(v_Index).attribute2		:=NULL;
160 p_clev_tbl_IN_out(v_Index).attribute3		:=NULL;
161 p_clev_tbl_IN_out(v_Index).attribute4		:=NULL;
162 p_clev_tbl_IN_out(v_Index).attribute5		:=NULL;
163 p_clev_tbl_IN_out(v_Index).attribute6		:=NULL;
164 p_clev_tbl_IN_out(v_Index).attribute7		:=NULL;
165 p_clev_tbl_IN_out(v_Index).attribute8		:=NULL;
166 p_clev_tbl_IN_out(v_Index).attribute9		:=NULL;
167 p_clev_tbl_IN_out(v_Index).attribute10	:=NULL;
168 p_clev_tbl_IN_out(v_Index).attribute11	:=NULL;
169 p_clev_tbl_IN_out(v_Index).attribute12	:=NULL;
170 p_clev_tbl_IN_out(v_Index).attribute13	:=NULL;
171 p_clev_tbl_IN_out(v_Index).attribute14	:=NULL;
172 p_clev_tbl_IN_out(v_Index).attribute15	:=NULL;
173 END LOOP;
174 END IF;
175 END INIT_CLEV;
176 
177 PROCEDURE Init_RGPV(P_RGPV_tbl_in_Out IN OUT NOCOPY okc_Rule_Pub.Rgpv_tbl_type)
178 IS
179 
180 BEGIN
181 IF NOT P_Rgpv_Tbl_In_Out.COUNT=0
182 THEN
183 FOR v_Index IN P_Rgpv_Tbl_in_Out.FIRST .. P_Rgpv_Tbl_in_Out.LAST
184 LOOP
185 p_rgpv_tbl_IN_out(v_Index).id    :=NULL;
186 p_rgpv_tbl_IN_out(v_Index).rgd_code:=NULL;
187 p_rgpv_tbl_IN_out(v_Index).chr_id  :=NULL;
188 p_rgpv_tbl_IN_out(v_Index).cle_id  :=NULL;
189 p_rgpv_tbl_IN_out(v_Index).dnz_chr_id :=NULL;
190 p_rgpv_tbl_IN_out(v_Index).parent_rgp_id  :=NULL;
191 p_rgpv_tbl_IN_out(v_Index).object_version_number:=NULL;
192 p_rgpv_tbl_IN_out(v_Index).created_by           :=NULL;
193 p_rgpv_tbl_IN_out(v_Index).creation_date        :=NULL;
194 p_rgpv_tbl_IN_out(v_Index).last_updated_by      :=NULL;
195 p_rgpv_tbl_IN_out(v_Index).last_update_date     :=NULL;
196 p_rgpv_tbl_IN_out(v_Index).last_update_login    :=NULL;
197 p_rgpv_tbl_IN_out(v_Index).attribute_category   :=NULL;
198 p_rgpv_tbl_IN_out(v_Index).attribute1           :=NULL;
199 p_rgpv_tbl_IN_out(v_Index).attribute2           :=NULL;
200 p_rgpv_tbl_IN_out(v_Index).attribute3           :=NULL;
201 p_rgpv_tbl_IN_out(v_Index).attribute4           :=NULL;
202 p_rgpv_tbl_IN_out(v_Index).attribute5           :=NULL;
203 p_rgpv_tbl_IN_out(v_Index).attribute6           :=NULL;
204 p_rgpv_tbl_IN_out(v_Index).attribute7           :=NULL;
205 p_rgpv_tbl_IN_out(v_Index).attribute8           :=NULL;
206 p_rgpv_tbl_IN_out(v_Index).attribute9           :=NULL;
207 p_rgpv_tbl_IN_out(v_Index).attribute10          :=NULL;
208 p_rgpv_tbl_IN_out(v_Index).attribute11          :=NULL;
209 p_rgpv_tbl_IN_out(v_Index).attribute12          :=NULL;
210 p_rgpv_tbl_IN_out(v_Index).attribute13          :=NULL;
211 p_rgpv_tbl_IN_out(v_Index).attribute14          :=NULL;
212 p_rgpv_tbl_IN_out(v_Index).attribute15          :=NULL;
213 p_rgpv_tbl_IN_out(v_Index).rgp_type             :=NULL;
214 END LOOP;
215 END IF;
216 END INIT_RGPV;
217 PROCEDURE Init_RGPV(P_RGPV_rec_in_Out IN OUT NOCOPY okc_Rule_Pub.Rgpv_rec_type)
218 IS
219 
220 BEGIN
221 p_rgpv_rec_IN_out.id    :=NULL;
222 p_rgpv_rec_IN_out.rgd_code:=NULL;
223 p_rgpv_rec_IN_out.chr_id  :=NULL;
224 p_rgpv_rec_IN_out.cle_id  :=NULL;
225 p_rgpv_rec_IN_out.dnz_chr_id :=NULL;
226 p_rgpv_rec_IN_out.parent_rgp_id  :=NULL;
227 p_rgpv_rec_IN_out.object_version_number:=NULL;
228 p_rgpv_rec_IN_out.created_by           :=NULL;
229 p_rgpv_rec_IN_out.creation_date        :=NULL;
230 p_rgpv_rec_IN_out.last_updated_by      :=NULL;
231 p_rgpv_rec_IN_out.last_update_date     :=NULL;
232 p_rgpv_rec_IN_out.last_update_login    :=NULL;
233 p_rgpv_rec_IN_out.attribute_category   :=NULL;
234 p_rgpv_rec_IN_out.attribute1           :=NULL;
235 p_rgpv_rec_IN_out.attribute2           :=NULL;
236 p_rgpv_rec_IN_out.attribute3           :=NULL;
237 p_rgpv_rec_IN_out.attribute4           :=NULL;
238 p_rgpv_rec_IN_out.attribute5           :=NULL;
239 p_rgpv_rec_IN_out.attribute6           :=NULL;
240 p_rgpv_rec_IN_out.attribute7           :=NULL;
241 p_rgpv_rec_IN_out.attribute8           :=NULL;
242 p_rgpv_rec_IN_out.attribute9           :=NULL;
243 p_rgpv_rec_IN_out.attribute10          :=NULL;
244 p_rgpv_rec_IN_out.attribute11          :=NULL;
245 p_rgpv_rec_IN_out.attribute12          :=NULL;
246 p_rgpv_rec_IN_out.attribute13          :=NULL;
247 p_rgpv_rec_IN_out.attribute14          :=NULL;
248 p_rgpv_rec_IN_out.attribute15          :=NULL;
249 p_rgpv_rec_IN_out.rgp_type             :=NULL;
250 END INIT_RGPV;
251 
252 
253 
254 PROCEDURE Init_RULV(P_RULV_tbl_in_Out IN OUT NOCOPY okc_Rule_Pub.Rulv_tbl_type)
255 IS
256 
257 BEGIN
258 IF NOT P_RULV_tbl_in_Out.COUNT=0
259 THEN
260 FOR v_Index IN P_RULV_tbl_in_Out.FIRST .. P_RULV_tbl_in_Out.LAST
261 LOOP
262 p_rulv_tbl_IN_out(v_Index).id:=NULL;
263 p_rulv_tbl_IN_out(v_Index).rgp_id :=NULL;
264 p_rulv_tbl_IN_out(v_Index).object1_id1 :=NULL;
265 p_rulv_tbl_IN_out(v_Index).object2_id1 :=NULL;
266 p_rulv_tbl_IN_out(v_Index).object3_id1 :=NULL;
267 p_rulv_tbl_IN_out(v_Index).object1_id2 :=NULL;
268 p_rulv_tbl_IN_out(v_Index).object2_id2 :=NULL;
269 p_rulv_tbl_IN_out(v_Index).object3_id2 :=NULL;
270 p_rulv_tbl_IN_out(v_Index).jtot_object1_Code:=NULL;
271 p_rulv_tbl_IN_out(v_Index).jtot_object2_Code:=NULL;
272 p_rulv_tbl_IN_out(v_Index).jtot_object3_Code:=NULL;
273 p_rulv_tbl_IN_out(v_Index).dnz_chr_id:=NULL;
274 p_rulv_tbl_IN_out(v_Index).std_template_yn:=NULL;
275 p_rulv_tbl_IN_out(v_Index).warn_yn:=NULL;
276 p_rulv_tbl_IN_out(v_Index).priority:=NULL;
277 p_rulv_tbl_IN_out(v_Index).object_version_number:=NULL;
278 p_rulv_tbl_IN_out(v_Index).created_by:=NULL;
279 p_rulv_tbl_IN_out(v_Index).creation_date:=NULL;
280 p_rulv_tbl_IN_out(v_Index).last_updated_by:=NULL;
281 p_rulv_tbl_IN_out(v_Index).last_update_date:=NULL;
282 p_rulv_tbl_IN_out(v_Index).last_update_login:=NULL;
283 p_rulv_tbl_IN_out(v_Index).attribute_category:=NULL;
284 p_rulv_tbl_IN_out(v_Index).attribute1    :=NULL;
285 p_rulv_tbl_IN_out(v_Index).attribute2    :=NULL;
286 p_rulv_tbl_IN_out(v_Index).attribute3    :=NULL;
287 p_rulv_tbl_IN_out(v_Index).attribute4    :=NULL;
288 p_rulv_tbl_IN_out(v_Index).attribute5    :=NULL;
289 p_rulv_tbl_IN_out(v_Index).attribute6    :=NULL;
290 p_rulv_tbl_IN_out(v_Index).attribute7    :=NULL;
291 p_rulv_tbl_IN_out(v_Index).attribute8    :=NULL;
292 p_rulv_tbl_IN_out(v_Index).attribute9    :=NULL;
293 p_rulv_tbl_IN_out(v_Index).attribute10   :=NULL;
294 p_rulv_tbl_IN_out(v_Index).attribute11   :=NULL;
295 p_rulv_tbl_IN_out(v_Index).attribute12   :=NULL;
296 p_rulv_tbl_IN_out(v_Index).attribute13   :=NULL;
297 p_rulv_tbl_IN_out(v_Index).attribute14   :=NULL;
298 p_rulv_tbl_IN_out(v_Index).attribute15   :=NULL;
299 p_rulv_tbl_IN_out(v_Index).Rule_Information_category:=NULL;
300 p_rulv_tbl_IN_out(v_Index).Rule_Information1:=NULL;
301 p_rulv_tbl_IN_out(v_Index).Rule_Information2:=NULL;
302 p_rulv_tbl_IN_out(v_Index).Rule_Information3:=NULL;
303 p_rulv_tbl_IN_out(v_Index).Rule_Information4:=NULL;
304 p_rulv_tbl_IN_out(v_Index).Rule_Information5:=NULL;
305 p_rulv_tbl_IN_out(v_Index).Rule_Information6:=NULL;
306 p_rulv_tbl_IN_out(v_Index).Rule_Information7:=NULL;
307 p_rulv_tbl_IN_out(v_Index).Rule_Information8:=NULL;
308 p_rulv_tbl_IN_out(v_Index).Rule_Information9:=NULL;
309 p_rulv_tbl_IN_out(v_Index).Rule_Information10:=NULL;
310 p_rulv_tbl_IN_out(v_Index).Rule_Information11:=NULL;
311 p_rulv_tbl_IN_out(v_Index).Rule_Information12:=NULL;
312 p_rulv_tbl_IN_out(v_Index).Rule_Information13:=NULL;
313 p_rulv_tbl_IN_out(v_Index).Rule_Information14:=NULL;
314 p_rulv_tbl_IN_out(v_Index).Rule_Information15:=NULL;
315 END LOOP;
316 END IF;
317 END INIT_RULV;
318 
319 
320 
321 PROCEDURE Init_CTCV(P_CTCV_tbl_In_Out IN OUT NOCOPY okc_contract_party_pub.Ctcv_tbl_type) IS
322 BEGIN
323 IF P_CTCV_tbl_In_Out.COUNT > 0 THEN
324     FOR v_Index IN  P_CTCV_tbl_In_Out.FIRST .. P_CTCV_tbl_In_Out.LAST LOOP
325 		P_CTCV_tbl_In_Out(v_Index).ID  := NULL;
326 		P_CTCV_tbl_In_Out(v_Index).OBJECT_VERSION_NUMBER := NULL;
327 		P_CTCV_tbl_In_Out(v_Index).CPL_ID  := NULL;
328 		P_CTCV_tbl_In_Out(v_Index).CRO_CODE  := NULL;
329 		P_CTCV_tbl_In_Out(v_Index).DNZ_CHR_ID  := NULL;
330 		P_CTCV_tbl_In_Out(v_Index).CONTACT_SEQUENCE  := NULL;
331 		P_CTCV_tbl_In_Out(v_Index).OBJECT1_ID1 := NULL;
332 		P_CTCV_tbl_In_Out(v_Index).OBJECT1_ID2 := NULL;
333 		P_CTCV_tbl_In_Out(v_Index).JTOT_OBJECT1_CODE := NULL;
334 		--P_CTCV_tbl_In_Out(v_Index).ROLE  := NULL;
335 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE_CATEGORY  := NULL;
336 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE1  := NULL;
337 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE2  := NULL;
338 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE3  := NULL;
339 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE4  := NULL;
340 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE5  := NULL;
341 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE6  := NULL;
342 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE7  := NULL;
343 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE8  := NULL;
344 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE9  := NULL;
345 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE10 := NULL;
346 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE11 := NULL;
347 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE12 := NULL;
348 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE13 := NULL;
349 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE14 := NULL;
350 		P_CTCV_tbl_In_Out(v_Index).ATTRIBUTE15 := NULL;
351 		P_CTCV_tbl_In_Out(v_Index).CREATED_BY  := NULL;
352 		P_CTCV_tbl_In_Out(v_Index).CREATION_DATE := NULL;
353 		P_CTCV_tbl_In_Out(v_Index).LAST_UPDATED_BY := NULL;
354 		P_CTCV_tbl_In_Out(v_Index).LAST_UPDATE_DATE  := NULL;
355 		P_CTCV_tbl_In_Out(v_Index).LAST_UPDATE_LOGIN := NULL;
356 		P_CTCV_tbl_In_Out(v_Index).START_DATE  := NULL;
357 		P_CTCV_tbl_In_Out(v_Index).END_DATE  := NULL;
358 		P_CTCV_tbl_In_Out(v_Index).PRIMARY_YN  := NULL;
359 		P_CTCV_tbl_In_Out(v_Index).RESOURCE_CLASS  := NULL;
360 		P_CTCV_tbl_In_Out(v_Index).SALES_GROUP_ID := NULL;
361 
362     END LOOP;
363 END IF;
364 END;
365 
366 PROCEDURE Init_CIMV(P_CIMV_tbl_In_Out IN OUT NOCOPY okc_contract_item_pub.Cimv_tbl_type) IS
367 
368 BEGIN
369 IF P_CIMV_tbl_In_Out.COUNT > 0 THEN
370     FOR v_Index IN P_CIMV_tbl_In_Out.FIRST .. P_CIMV_tbl_In_Out.LAST LOOP
371 
372 		 P_CIMV_tbl_In_Out(v_Index).ID  := NULL;
373 		 P_CIMV_tbl_In_Out(v_Index).CLE_ID  := NULL;
374 		 P_CIMV_tbl_In_Out(v_Index).CHR_ID  := NULL;
375 		 P_CIMV_tbl_In_Out(v_Index).CLE_ID_FOR  := NULL;
376 		 P_CIMV_tbl_In_Out(v_Index).DNZ_CHR_ID  := NULL;
377 		 P_CIMV_tbl_In_Out(v_Index).OBJECT1_ID1 := NULL;
378 		 P_CIMV_tbl_In_Out(v_Index).OBJECT1_ID2 := NULL;
379 		 P_CIMV_tbl_In_Out(v_Index).JTOT_OBJECT1_CODE := NULL;
380 		 P_CIMV_tbl_In_Out(v_Index).UOM_CODE  := NULL;
381 		 P_CIMV_tbl_In_Out(v_Index).EXCEPTION_YN  := NULL;
382 		 P_CIMV_tbl_In_Out(v_Index).NUMBER_OF_ITEMS := NULL;
383 		 P_CIMV_tbl_In_Out(v_Index).PRICED_ITEM_YN  := NULL;
384 		 P_CIMV_tbl_In_Out(v_Index).OBJECT_VERSION_NUMBER := NULL;
385 		 P_CIMV_tbl_In_Out(v_Index).CREATED_BY  := NULL;
386 		 P_CIMV_tbl_In_Out(v_Index).CREATION_DATE := NULL;
387 		 P_CIMV_tbl_In_Out(v_Index).LAST_UPDATED_BY := NULL;
388 		 P_CIMV_tbl_In_Out(v_Index).LAST_UPDATE_DATE  := NULL;
389 		 P_CIMV_tbl_In_Out(v_Index).LAST_UPDATE_LOGIN := NULL;
390 		 --P_CIMV_tbl_In_Out(v_Index).SECURITY_GROUP_ID := NULL;
391 		 P_CIMV_tbl_In_Out(v_Index).UPG_ORIG_SYSTEM_REF := NULL;
392 		 P_CIMV_tbl_In_Out(v_Index).UPG_ORIG_SYSTEM_REF_ID  := NULL;
393 		 P_CIMV_tbl_In_Out(v_Index).PROGRAM_APPLICATION_ID  := NULL;
394 		 P_CIMV_tbl_In_Out(v_Index).PROGRAM_ID  := NULL;
395 		 P_CIMV_tbl_In_Out(v_Index).PROGRAM_UPDATE_DATE := NULL;
396 		 P_CIMV_tbl_In_Out(v_Index).REQUEST_ID  := NULL;
397 
398     END LOOP;
399 END IF;
400 END;
401 
402 
403 
404 -- ******************************************************************************************
405 
406 PROCEDURE CREATE_ACTUAL_COVERAGE(
407     p_api_version     IN NUMBER,
408     p_init_msg_list         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
409     x_return_status         OUT NOCOPY VARCHAR2,
410     x_msg_count             OUT NOCOPY NUMBER,
411     x_msg_data              OUT NOCOPY VARCHAR2,
412     p_ac_rec_in             IN  ac_rec_type,
413     p_restricted_update     IN VARCHAR2 DEFAULT 'F',
414     x_Actual_coverage_id    OUT NOCOPY NUMBER) IS
415 
416   CURSOR Cur_LineDet (P_Line_Id IN NUMBER) IS
417   SELECT SFWT_FLAG,
418          CHR_ID,
419          START_DATE,
420          END_DATE,
421          LSE_ID,
422          LINE_NUMBER,
423          DISPLAY_SEQUENCE,
424          NAME,
425          ITEM_DESCRIPTION,
426          EXCEPTION_YN,
427          PRICE_LIST_ID,
428          ATTRIBUTE_CATEGORY,
429          ATTRIBUTE1,
430          ATTRIBUTE2,
431          ATTRIBUTE3,
432          ATTRIBUTE4,
433          ATTRIBUTE5,
434          ATTRIBUTE6,
435          ATTRIBUTE7,
436          ATTRIBUTE8,
437          ATTRIBUTE9,
438          ATTRIBUTE10,
439          ATTRIBUTE11,
440          ATTRIBUTE12,
441          ATTRIBUTE13,
442          ATTRIBUTE14,
443          ATTRIBUTE15
444   FROM OKC_K_LINES_v
445   WHERE ID= P_Line_Id;
446   --------------------------
447   CURSOR Cur_LineDet3 (P_Line_Id IN NUMBER) IS
448   SELECT SFWT_FLAG,
449          CHR_ID,
450          START_DATE,
451          END_DATE,
452          LSE_ID,
453          LINE_NUMBER,
454          DISPLAY_SEQUENCE,
455          NAME,
456          ITEM_DESCRIPTION,
457          EXCEPTION_YN,
458          PRICE_LIST_ID,
459          ATTRIBUTE_CATEGORY,
460          ATTRIBUTE1,
461          ATTRIBUTE2,
462          ATTRIBUTE3,
463          ATTRIBUTE4,
464          ATTRIBUTE5,
465          ATTRIBUTE6,
466          ATTRIBUTE7,
467          ATTRIBUTE8,
468          ATTRIBUTE9,
469          ATTRIBUTE10,
470          ATTRIBUTE11,
471          ATTRIBUTE12,
472          ATTRIBUTE13,
473          ATTRIBUTE14,
474          ATTRIBUTE15
475    FROM OKC_K_LINES_v
476   WHERE ID= P_Line_Id;
477   --------------------------
478   LineDet_Rec3 Cur_LineDet3%ROWTYPE;
479   LineDet_Rec Cur_LineDet%ROWTYPE;
480   LineDet_Rec1 Cur_LineDet%ROWTYPE;
481   LineDet_Rec2 Cur_LineDet%ROWTYPE;
482 
483 
484   CURSOR Cur_childline(P_cle_Id IN NUMBER,
485                      P_lse_Id IN NUMBER) IS
486   SELECT ID
487   FROM OKC_K_LINES_B
488   WHERE  cle_Id=P_cle_Id
489   AND    lse_Id=P_lse_Id;
490   -------------------------------------
491 
492   CURSOR Cur_childline_br(P_cle_Id IN NUMBER,
493                      P_lse_Id IN NUMBER) IS
494   SELECT ID,
495          EXCEPTION_YN,
496          ATTRIBUTE_CATEGORY,
497          ATTRIBUTE1,
498          ATTRIBUTE2,
499          ATTRIBUTE3,
500          ATTRIBUTE4,
501          ATTRIBUTE5,
502          ATTRIBUTE6,
503          ATTRIBUTE7,
504          ATTRIBUTE8,
505          ATTRIBUTE9,
506          ATTRIBUTE10,
507          ATTRIBUTE11,
508          ATTRIBUTE12,
509          ATTRIBUTE13,
510          ATTRIBUTE14,
511          ATTRIBUTE15
512   FROM OKC_K_LINES_B
513   WHERE  cle_Id=P_cle_Id
514   AND    lse_Id=P_lse_Id;
515   ---------------------------------------
516 
517   CURSOR Cur_childline_bt(P_cle_Id IN NUMBER,
518                      P_lse_Id IN NUMBER) IS
519   SELECT ID
520   FROM OKC_K_LINES_B
521   WHERE  cle_Id=P_cle_Id
522   AND    lse_Id=P_lse_Id;
523   ----------------------------------------
524 
525   CURSOR Cur_childline1(P_cle_Id IN NUMBER,
526                      P_lse_Id IN NUMBER) IS
527   SELECT ID
528   FROM OKC_K_LINES_B
529   WHERE  cle_Id=P_cle_Id
530   AND    lse_Id=P_lse_Id;
531   -----------------------------------------
532 
533 
534   CURSOR Cur_PTRLDet(P_Cle_Id IN NUMBER,
535                    P_role_Code IN varchar2) IS
536   SELECT
537     	pr.ID,
538     	pr.SFWT_FLAG,
539 	pr.OBJECT1_ID1,
540 	pr.OBJECT1_ID2,
541 	pr.JTOT_OBJECT1_CODE,
542 	pr.CODE,
543 	pr.FACILITY,
544 	pr.MINORITY_GROUP_LOOKUP_CODE,
545 	pr.SMALL_BUSINESS_FLAG,
546 	pr.WOMEN_OWNED_FLAG
547   FROM  OKC_K_Party_Roles_V pr,
548 	   OKC_K_LINES_B lv
549   WHERE pr.cle_ID=p_cle_Id
550   AND   pr.Rle_Code=P_Role_Code
551   AND   pr.cle_id = lv.id
552   AND   pr.dnz_chr_id = lv.dnz_chr_id ;
553   PtrlDet_Rec     Cur_PTRLDet%ROWTYPE;
554   ------------------------------------------
555 
556   CURSOR Cur_contactDet(P_cpl_id IN NUMBER) IS
557   SELECT
558 	CRO_CODE,
559     	CONTACT_SEQUENCE,
560 	OBJECT1_ID1,
561 	OBJECT1_ID2,
562 	JTOT_OBJECT1_CODE,
563     resource_class
564   FROM OKC_CONTACTS_V
565   WHERE cpl_id=P_cpl_Id;
566   --------------------------------------------
567 
568   CURSOR CUR_ItemDet(P_Id IN NUMBER) IS
569   SELECT object1_id1,
570 	 object1_id2,
571 	 JTOT_OBJECT1_CODE,
572 	 number_of_items,
573 	 exception_yn
574   FROM OKC_K_ITEMS_V
575   WHERE cle_Id=P_Id;
576 
577   --------------------------------------------------
578 
579   CURSOR CUR_GET_BILLRATE_SCHEDULES(p_cle_id IN NUMBER) IS
580   SELECT ID,
581          CLE_ID,
582          BT_CLE_ID,
583          DNZ_CHR_ID,
584          START_HOUR,
585          START_MINUTE,
586          END_HOUR,
587          END_MINUTE,
588          MONDAY_FLAG,
589          TUESDAY_FLAG,
590          WEDNESDAY_FLAG,
591          THURSDAY_FLAG,
592          FRIDAY_FLAG,
593          SATURDAY_FLAG,
594          SUNDAY_FLAG,
595          OBJECT1_ID1,
596          OBJECT1_ID2,
597          JTOT_OBJECT1_CODE,
598          BILL_RATE_CODE,
599          FLAT_RATE,
600          UOM,
601          HOLIDAY_YN,
602          PERCENT_OVER_LIST_PRICE,
603          PROGRAM_APPLICATION_ID,
604          PROGRAM_ID,
605          PROGRAM_UPDATE_DATE,
606          REQUEST_ID,
607          CREATED_BY,
608          CREATION_DATE,
609          LAST_UPDATED_BY,
610          LAST_UPDATE_DATE,
611          LAST_UPDATE_LOGIN,
612          SECURITY_GROUP_ID,
613          object_version_number --Added
614   FROM OKS_BILLRATE_SCHEDULES
615   WHERE CLE_ID = p_cle_id ;
616 
617   -------------------------------------------------
618 
619    CURSOR CUR_GET_OKS_LINE(p_cle_id IN NUMBER) IS
620    SELECT
621      id
622     ,cle_id
623     ,dnz_chr_id
624     ,discount_list
625     ,coverage_type
626     ,exception_cov_id
627     ,limit_uom_quantified
628     ,discount_amount
629     ,discount_percent
630     ,offset_duration
631     ,offset_period
632     ,incident_severity_id
633     ,pdf_id
634     ,work_thru_yn
635     ,react_active_yn
636     ,transfer_option
637     ,prod_upgrade_yn
638     ,inheritance_type
639     ,pm_program_id
640     ,pm_conf_req_yn
641     ,pm_sch_exists_yn
642     ,allow_bt_discount
643     ,apply_default_timezone
644     ,sync_date_install
645     ,sfwt_flag
646     ,react_time_name
647     ,object_version_number
648     ,security_group_id
649     ,request_id
650     ,created_by
651     ,creation_date
652     ,last_updated_by
653     ,last_update_date
654     ,last_update_login
655   FROM OKS_K_LINES_V
656   WHERE cle_id = p_cle_id;
657 
658   -------------------------------------------------
659 
660   -- FOR NOTES BARORA 07/31/03
661 
662   CURSOR CUR_GET_NOTES(p_source_object_id IN NUMBER) IS
663   SELECT jtf_note_id,
664          parent_note_id,
665          source_object_code,
666          source_number,
667          notes,  --
668          notes_detail,
669          note_status,
670          source_object_meaning,
671          note_type,
672          note_type_meaning,
673          attribute1,
674          attribute2,
675          attribute3,
676          attribute4,
677          attribute5,
678          attribute6,
679          attribute7,
680          attribute8,
681          attribute9,
682          attribute10,
683          attribute11,
684          attribute12,
685          attribute13,
686          attribute14,
687          attribute15,
688          note_status_meaning,
689          decoded_source_code,
690          decoded_source_meaning,
691          context
692   FROM JTF_NOTES_VL
693   WHERE source_object_id = p_source_object_id
694   AND   source_object_code = 'OKS_COVTMPL_NOTE'
695   AND   note_status <> 'P';
696 -------------------------------------------------------------------------------
697   -- get the pm_program_id associated with the service line added by jvorugan for R12 bug:4610449
698    CURSOR CUR_GET_PROGRAM_ID(p_contract_line_id IN NUMBER) IS
699     SELECT PM_PROGRAM_ID
700     FROM OKS_K_LINES_B
701     WHERE cle_id =p_contract_line_id;
702 
703 -------------------------------------------------------------------------------
704 CURSOR Get_cov_timezones(p_cle_id IN Number) IS
705 SELECT
706      ID
707     ,CLE_ID
708     ,DEFAULT_YN
709     ,TIMEZONE_ID
710 FROM oks_coverage_timezones
711 WHERE cle_id = p_cle_id;
712 -------------------------------------------------------------------------------
713 CURSOR Get_cov_times(p_cov_tz_id IN Number) IS
714 SELECT
715 ID
716 ,COV_TZE_LINE_ID
717 ,DNZ_CHR_ID
718 ,START_HOUR
719 ,START_MINUTE
720 ,END_HOUR
721 ,END_MINUTE
722 ,MONDAY_YN
723 ,TUESDAY_YN
724 ,WEDNESDAY_YN
725 ,THURSDAY_YN
726 ,FRIDAY_YN
727 ,SATURDAY_YN
728 ,SUNDAY_YN
729 FROM oks_coverage_times
730 WHERE  COV_TZE_LINE_ID = p_cov_tz_id;
731 -------------------------------------------------------------------------------
732 
733 
734 CURSOR CUR_GET_ACTION_TYPES(p_cle_id IN NUMBER) IS
735 SELECT ID,
736       ACTION_TYPE_CODE
737 FROM OKS_ACTION_TIME_TYPES
738 WHERE cle_id = p_cle_id ;
739 
740 
741 CURSOR CUR_GET_ACTION_TIMES(p_cov_act_type_id IN NUMBER) IS
742 SELECT ID,
743        UOM_CODE,
744        SUN_DURATION,
745        MON_DURATION,
746        TUE_DURATION,
747        WED_DURATION,
748        THU_DURATION,
749        FRI_DURATION,
750        SAT_DURATION
751 FROM OKS_ACTION_TIMES
752 WHERE cov_action_type_id = p_cov_act_type_id ;
753 -------------------------------------------------------------------------------
754 -- Fix for Bug:4703431. Modified by jvorugan
755 CURSOR CUR_GET_ORG_ID(p_contract_id IN NUMBER) is
756 SELECT ORG_ID
757 FROM okc_k_headers_all_b
758 WHERE id=p_contract_id;
759 
760 
761   l_jtf_note_id             NUMBER;
762   l_Notes_detail            VARCHAR2(32767);
763   l_pm_program_id           NUMBER;
764   l_object_id               NUMBER;
765 
766 
767   g_start_date 	DATE;
768   g_End_date	DATE;
769   l_clev_rec            okc_contract_pub.clev_rec_type;
770   l_clev_tbl_in         okc_contract_pub.clev_tbl_type;
771   l_clev_tbl_out        okc_contract_pub.clev_tbl_type;
772   l_lsl_id          NUMBER;
773   c_cle_id		    NUMBER;
774   txg_cle_id		NUMBER;
775   crt_cle_id		NUMBER;
776   bt_cle_id		    NUMBER;
777   br_cle_id		    NUMBER;
778   tmp_txg_cle_id	NUMBER;
779   tmp_crt_cle_id	NUMBER;
780   tmp_bt_cle_id		NUMBER;
781   tmp_br_cle_id		NUMBER;
782   g_Chr_Id          NUMBER;
783   l_ctiv_tbl_in		okc_rule_pub.ctiv_tbl_type;
784   l_ctiv_tbl_out	okc_rule_pub.ctiv_tbl_type;
785   l_contact_Id          Number;
786   l_bill_rate_tbl_in   OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE;
787   x_bill_rate_tbl_out  OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE;
788   --
789   l_api_version		    CONSTANT	NUMBER     := 1.0;
790   l_init_msg_list	    CONSTANT	VARCHAR2(1):= 'F';
791   l_return_status	    VARCHAR2(1);
792   l_msg_count		    NUMBER;
793   l_msg_data		    VARCHAR2(2000):=null;
794   l_msg_index_out       NUMBER;
795   l_Service_line_Id	    NUMBER;
796   l_Template_Line_Id    NUMBER;
797   l_Actual_coverage_id  NUMBER;
798   l_api_name            CONSTANT VARCHAR2(30) := 'Create_Actual_Coverage';
799    --
800   --l_catv_rec_in		okc_k_article_pub.catv_rec_type;
801   --l_catv_rec_out	okc_k_article_pub.catv_rec_type;
802   --l_article_id        NUMBER;
803   --v_clob              CLOB;
804   --v_Text              varchar2(2000);
805   --v_Length            BINARY_INTEGER;
806   --
807 
808   --
809   l_cimv_tbl_in         okc_Contract_Item_Pub.cimv_tbl_TYPE;
810   l_cimv_tbl_out        okc_Contract_Item_Pub.cimv_tbl_TYPE;
811   --
812   l_ctcv_tbl_in		okc_contract_party_pub.ctcv_tbl_type;
813   l_ctcv_tbl_out	okc_contract_party_pub.ctcv_tbl_type;
814   l_cplv_tbl_in		okc_contract_party_pub.cplv_tbl_type;
815   l_cplv_tbl_out	okc_contract_party_pub.cplv_tbl_type;
816   l_cpl_id		    NUMBER;
817   tmp_cpl_id        NUMBER;
818   l_Parent_lse_Id   NUMBER;
819   tmp_lse_id        NUMBER;
820   l_bt_lse_Id       NUMBER;
821   l_br_lse_Id       NUMBER;
822   l_rle_code        VARCHAR2(30);
823 
824 
825       l_klnv_tbl_in            oks_kln_pvt.klnv_tbl_type;
826       l_klnv_tbl_out           oks_kln_pvt.klnv_tbl_type;
827 
828       l_covtz_tbl_in            oks_ctz_pvt.OksCoverageTimezonesVTblType;
829       l_covtz_tbl_out           oks_ctz_pvt.OksCoverageTimezonesVTblType;
830 
831       l_covtz_rec_in            oks_ctz_pvt.OksCoverageTimezonesVRecType;
832       l_covtz_rec_out           oks_ctz_pvt.OksCoverageTimezonesVRecType;
833 
834       l_covtim_tbl_in           oks_cvt_pvt.oks_coverage_times_v_tbl_type;
835       l_covtim_tbl_out          oks_cvt_pvt.oks_coverage_times_v_tbl_type;
836 
837       l_act_type_tbl_in         OKS_ACT_PVT.OksActionTimeTypesVTblType;
838       l_act_type_tbl_out        OKS_ACT_PVT.OksActionTimeTypesVTblType;
839 
840       l_act_time_tbl_in        OKS_ACM_PVT.oks_action_times_v_tbl_type;
841       l_act_time_tbl_out       OKS_ACM_PVT.oks_action_times_v_tbl_type;
842 
843       covtim_ctr   NUMBER := 0;
844       acttim_ctr   NUMBER := 0;
845       l_cov_templ_yn VARCHAR2(1) := 'Y';
846 
847       l_rt_cle_id            NUMBER := 0;
848       l_act_type_line_id     NUMBER := 0;
849       l_cov_act_type_line_id NUMBER := 0;
850       act_time_ctr           NUMBER := 0;
851 
852      l_Exists		    Number;
853      l_start_date		Date;
854      l_Currency        VARCHAR2(15) := NULL;
855      l_type_msmtch     CONSTANT varchar2(200) := 'OKS_COV_TYPE_MSMTCH';
856  -----------------------------------
857  CURSOR Check_Cur(P_Line_Id IN NUMBER) IS
858  SELECT COUNT(1) FROM OKC_K_LINES_B
859  WHERE  cle_Id=P_Line_Id
860  AND    lse_Id IN (2,15,20);
861 
862  ------------------------------------
863  FUNCTION GetCurrency (P_ID IN NUMBER)
864  RETURN Varchar2
865  IS
866    CURSOR Currency_Cur IS
867    SELECT Currency_Code FROM OKC_K_LINES_B
868    WHERE ID=P_Id;
869 
870  BEGIN
871 	OPEN Currency_Cur;
872 	FETCH Currency_Cur INTO l_Currency;
873 	CLOSE Currency_Cur;
874 	RETURN l_Currency;
875 	END GetCurrency;
876 	FUNCTION GetStatus (P_ID IN NUMBER)
877 	RETURN Varchar2 IS
878 		l_sts   OKC_K_LINES_B.sts_Code%Type:= NULL;
879 	   CURSOR sts_Cur IS
880 	   SELECT sts_Code FROM OKC_K_LINES_B
881 	   WHERE ID=P_Id;
882 	BEGIN
883 	OPEN sts_Cur;
884 	FETCH sts_Cur INTO l_sts;
885 	CLOSE sts_Cur;
886 	RETURN l_sts;
887 END GetStatus;
888 -----------------------------------------
889 BEGIN
890 
891 IF (G_DEBUG_ENABLED = 'Y') THEN
892 		okc_debug.Set_Indentation('Create_Actual_Coverage');
893 		okc_debug.log('Entered Create_Actual_Coverage', 2);
894 END IF;
895 
896   l_Service_Line_Id:=P_Ac_Rec_In.SVc_Cle_Id;
897   l_Template_Line_Id:=P_Ac_Rec_In.Tmp_Cle_Id;
898   l_rle_code:= NVL(P_AC_REC_IN.RLE_CODE,'VENDOR');
899 
900   Validate_svc_cle_id(
901     p_ac_rec            =>  P_ac_rec_in,
902     x_return_status 	=>  l_return_status);
903 
904   IF NOT l_Return_status = OKC_API.G_RET_STS_SUCCESS
905   THEN
906     OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'Error in Service Line Validation');
907     RAISE G_EXCEPTION_HALT_VALIDATION;
908   END IF;
909 
910   Validate_Tmp_cle_id(
911     p_ac_rec            =>  P_ac_rec_in,
912     x_template_yn       => l_cov_templ_yn,
913     x_return_status 	=>  l_return_status);
914 
915   IF NOT l_Return_status = OKC_API.G_RET_STS_SUCCESS
916   THEN
917     OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'Error in Coverage Template Line Validation');
918      RAISE G_EXCEPTION_HALT_VALIDATION;
919   END IF;
920 
921   IF NOT (sysdate BETWEEN LineDet_Rec.Start_Date AND
922                           LineDet_Rec.End_Date)
923   THEN
924 
925     OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'Coverage Template_dates');
926          x_return_status := OKC_API.G_RET_STS_ERROR;
927     RETURN;
928   END IF;
929 
930 
931   OPEN  Check_Cur(l_service_Line_Id);
932   FETCH Check_Cur INTO l_Exists;
933   CLOSE Check_Cur;
934 
935   IF NOT l_Exists=0
936   THEN  l_Msg_data:='Coverage already Exists';
937     OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'Coverage Exists');
938      x_return_status := OKC_API.G_RET_STS_ERROR;
939     RETURN;
940   END IF;
941 
942   -- Contract Line for the Service Line
943   OPEN Cur_LineDet(l_Service_line_Id);
944   FETCH Cur_LineDet INTO LineDet_Rec;
945   IF Cur_LineDet%FOUND
946   THEN
947     l_Parent_lse_Id:=LineDet_Rec.lse_Id;
948     g_chr_Id:=LineDet_Rec.chr_Id;
949   ELSE
950     OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'Given Service or Warranty does not exist');
951     CLOSE Cur_LineDet;
952     l_return_status := OKC_API.G_RET_STS_ERROR;
953     RAISE G_EXCEPTION_HALT_VALIDATION;
954   END IF;
955   CLOSE Cur_LineDet;
956 
957   -- Coverage for that Service Line
958 
959   OPEN Cur_LineDet(l_Template_line_Id);
960   FETCH Cur_LineDet INTO LineDet_Rec;
961   IF Cur_LineDet%FOUND
962   THEN
963      tmp_lse_id:=LineDet_Rec.lse_Id;
964   ELSE
965     OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'Coverage Template does not exist');
966     CLOSE Cur_LineDet;
967     l_return_status := OKC_API.G_RET_STS_ERROR;
968     RAISE G_EXCEPTION_HALT_VALIDATION;
969   END IF;
970   CLOSE Cur_LineDet;
971 
972  -- commented for NEW  ER ; warranty to be opened up for bill types and bill rates
973  -- added additional check tmp_lse_id NOT IN (2,20) for bug # 3378148
974 
975   IF (l_Parent_lse_id in (1,19)) THEN
976      IF (tmp_lse_id NOT IN (2,20)) THEN
977         OKC_API.set_message(G_APP_NAME, l_type_msmtch);
978         l_return_status := OKC_API.G_RET_STS_ERROR;
979         RAISE G_EXCEPTION_HALT_VALIDATION;
980      END IF;
981   ELSIF (l_Parent_lse_id = 14) THEN
982      IF (tmp_lse_id <> 15) THEN
983         OKC_API.set_message(G_APP_NAME, l_type_msmtch);
984         l_return_status := OKC_API.G_RET_STS_ERROR;
985         RAISE G_EXCEPTION_HALT_VALIDATION;
986      END IF;
987  -- commented on 15-Jan-2004 SMOHAPAT
988  /*  ELSIF (l_Parent_lse_id = 19) THEN
989      IF (tmp_lse_id <> 20) THEN
990         OKC_API.set_message(G_APP_NAME, l_type_msmtch);
991         l_return_status := OKC_API.G_RET_STS_ERROR;
992         RAISE G_EXCEPTION_HALT_VALIDATION;
993      END IF;
994   */
995   END IF;
996 
997 
998    -- Create Coverage line
999   Init_Clev(l_clev_tbl_in);
1000 
1001   l_clev_tbl_in(1).chr_id 	            := Null;
1002   l_clev_tbl_in(1).cle_id 	            := l_Service_Line_Id;
1003   l_clev_tbl_in(1).dnz_chr_id           := g_chr_id;
1004   l_clev_tbl_in(1).sfwt_flag	        := LineDet_Rec.sfwt_flag;
1005   l_clev_tbl_in(1).lse_id	            := l_Parent_lse_Id+1; --LineDet_Rec.lse_id
1006   l_clev_tbl_in(1).sts_code	            := GetStatus( l_Service_Line_Id);
1007   l_clev_tbl_in(1).Currency_code        := GetCurrency( l_Service_Line_Id);
1008   l_clev_tbl_in(1).display_sequence     := LineDet_Rec.Display_Sequence;
1009   l_clev_tbl_in(1).line_number          := nvl(LineDet_Rec.Line_Number,1);
1010   l_clev_tbl_in(1).exception_yn         := nvl(LineDet_Rec.exception_yn,'N');
1011   l_clev_tbl_in(1).item_description     := LineDet_Rec.item_description;
1012   l_clev_tbl_in(1).name		            := LineDet_Rec.name;
1013   l_clev_tbl_in(1).start_date	        := P_ac_rec_in.start_date;
1014   l_clev_tbl_in(1).end_date	            := P_ac_rec_in.end_date;
1015   l_clev_tbl_in(1).attribute_category   := LineDet_Rec.attribute_category;
1016   l_clev_tbl_in(1).attribute1           := LineDet_Rec.attribute1;
1017   l_clev_tbl_in(1).attribute2           := LineDet_Rec.attribute2;
1018   l_clev_tbl_in(1).attribute3           := LineDet_Rec.attribute3;
1019   l_clev_tbl_in(1).attribute4           := LineDet_Rec.attribute4;
1020   l_clev_tbl_in(1).attribute5           := LineDet_Rec.attribute5;
1021   l_clev_tbl_in(1).attribute6           := LineDet_Rec.attribute6;
1022   l_clev_tbl_in(1).attribute7           := LineDet_Rec.attribute7;
1023   l_clev_tbl_in(1).attribute8           := LineDet_Rec.attribute8;
1024   l_clev_tbl_in(1).attribute9           := LineDet_Rec.attribute9;
1025   l_clev_tbl_in(1).attribute10          := LineDet_Rec.attribute10;
1026   l_clev_tbl_in(1).attribute11          := LineDet_Rec.attribute11;
1027   l_clev_tbl_in(1).attribute12          := LineDet_Rec.attribute12;
1028   l_clev_tbl_in(1).attribute13          := LineDet_Rec.attribute13;
1029   l_clev_tbl_in(1).attribute14          := LineDet_Rec.attribute14;
1030   l_clev_tbl_in(1).attribute15          := LineDet_Rec.attribute15;
1031 
1032 
1033 
1034   okc_contract_pub.create_contract_line (
1035    	  p_api_version			=> l_api_version,
1036   	  p_init_msg_list		=> l_init_msg_list,
1037   	  x_return_status		=> l_return_status,
1038       x_msg_count			=> l_msg_count,
1039       x_msg_data			=> l_msg_data,
1040       p_restricted_update           => p_restricted_update,
1041       p_clev_tbl			=> l_clev_tbl_in,
1042   	  x_clev_tbl			=> l_clev_tbl_out
1043       );
1044 
1045 
1046   IF (G_DEBUG_ENABLED = 'Y') THEN
1047       okc_debug.log('After okc_contract_pub create_contract_line', 2);
1048   END IF;
1049 
1050   IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1051         RAISE G_EXCEPTION_HALT_VALIDATION;
1052   ELSE
1053       c_cle_id := l_clev_tbl_out(1).Id;
1054   END IF;
1055 
1056 -- Create record in OKS_K_LINES (new for 11.5.10)
1057 
1058 FOR oks_cov_rec IN CUR_GET_OKS_LINE(l_Template_Line_Id)
1059 LOOP
1060 
1061 INIT_OKS_K_LINE(l_klnv_tbl_in);
1062 
1063     l_klnv_tbl_in(1).cle_id                         := c_cle_id ;
1064     l_klnv_tbl_in(1).dnz_chr_id                     := g_chr_id;
1065     l_klnv_tbl_in(1).coverage_type                  := oks_cov_rec.coverage_type;
1066     l_klnv_tbl_in(1).exception_cov_id               := oks_cov_rec.exception_cov_id;
1067     l_klnv_tbl_in(1).transfer_option                := oks_cov_rec.transfer_option;
1068     l_klnv_tbl_in(1).prod_upgrade_yn                := oks_cov_rec.prod_upgrade_yn;
1069     l_klnv_tbl_in(1).inheritance_type               := oks_cov_rec.inheritance_type;
1070    /* Commented by Jvorugan for R12. Bugno:4610449  l_klnv_tbl_in(1).pm_program_id := oks_cov_rec.pm_program_id;
1071     l_klnv_tbl_in(1).pm_conf_req_yn                 := oks_cov_rec.pm_conf_req_yn;
1072     l_klnv_tbl_in(1).pm_sch_exists_yn               := oks_cov_rec.pm_sch_exists_yn;  */
1073     l_klnv_tbl_in(1).sync_date_install              := oks_cov_rec.sync_date_install;
1074     l_klnv_tbl_in(1).sfwt_flag                      := oks_cov_rec.sfwt_flag;
1075     l_klnv_tbl_in(1).object_version_number          := 1; --oks_cov_rec.object_version_number;
1076     l_klnv_tbl_in(1).security_group_id              := oks_cov_rec.security_group_id;
1077 
1078                           OKS_CONTRACT_LINE_PUB.CREATE_LINE(p_api_version    => l_api_version,
1079                                                         	p_init_msg_list	 => l_init_msg_list,
1080                                                             x_return_status	 => l_return_status,
1081                                                             x_msg_count	     => l_msg_count,
1082                                                             x_msg_data		 => l_msg_data,
1083                                                             p_klnv_tbl       => l_klnv_tbl_in,
1084                                                             x_klnv_tbl       => l_klnv_tbl_out,
1085                                                             p_validate_yn    => 'N');
1086 
1087 
1088 
1089   IF (G_DEBUG_ENABLED = 'Y') THEN
1090       okc_debug.log('After OKS_CONTRACT_LINE_PUB.CREATE_LINE', 2);
1091   END IF;
1092 
1093 
1094   IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1095     RAISE G_EXCEPTION_HALT_VALIDATION;
1096   END IF;
1097 END LOOP;
1098 
1099 
1100 /* Commented by jvorugan. Since notes and pm creation will be done by create_k_coverage_ext
1101    during renual consolidation,it should not be created.
1102 --Create Notes and PM schedule only if it is invoked from CREATE_ADJUSTED_COVERAGE based on 12.0 design
1103 IF l_cov_templ_yn = 'N' then
1104   -- create notes for actual coverage from the template
1105   FOR notes_rec IN CUR_GET_NOTES(l_Template_Line_Id) LOOP
1106 
1107       JTF_NOTES_PUB.writeLobToData(notes_rec.JTF_NOTE_ID,L_Notes_detail);
1108 
1109       JTF_NOTES_PUB.CREATE_NOTE(p_parent_note_id        => notes_rec.parent_note_id ,
1110                                 p_api_version           => l_api_version,
1111                                 p_init_msg_list         =>  l_init_msg_list,
1112                                 p_commit                => 'F',
1113                                 p_validation_level      => 100,
1114                                 x_return_status         => l_return_status ,
1115                                 x_msg_count             => l_msg_count,
1116                                 x_msg_data              => l_msg_data ,
1117                                 p_org_id                =>  NULL,
1118                                 p_source_object_id      => l_Service_Line_Id,
1119                                 p_source_object_code    => 'OKS_COV_NOTE',
1120                                 p_notes                 =>notes_rec.notes,
1121                                 p_notes_detail          => L_Notes_detail,
1122                                 p_note_status           =>  notes_rec.note_status,
1123                                 p_entered_by            =>  FND_GLOBAL.USER_ID,
1124                                 p_entered_date          => SYSDATE ,
1125                                 x_jtf_note_id           => l_jtf_note_id,
1126                                 p_last_update_date      => sysdate,
1127                                 p_last_updated_by       => FND_GLOBAL.USER_ID,
1128                                 p_creation_date         => SYSDATE,
1129                                 p_created_by            => FND_GLOBAL.USER_ID,
1130                                 p_last_update_login     => FND_GLOBAL.LOGIN_ID,
1131                                 p_attribute1            => notes_rec.ATTRIBUTE1,
1132                                 p_attribute2            => notes_rec.ATTRIBUTE2,
1133                                 p_attribute3            => notes_rec.ATTRIBUTE3,
1134                                 p_attribute4            => notes_rec.ATTRIBUTE4,
1135                                 p_attribute5            => notes_rec.ATTRIBUTE5,
1136                                 p_attribute6            => notes_rec.ATTRIBUTE6,
1137                                 p_attribute7            => notes_rec.ATTRIBUTE7,
1138                                 p_attribute8            => notes_rec.ATTRIBUTE8,
1139                                 p_attribute9            => notes_rec.ATTRIBUTE9,
1140                                 p_attribute10           => notes_rec.ATTRIBUTE10,
1141                                 p_attribute11           => notes_rec.ATTRIBUTE11,
1142                                 p_attribute12           => notes_rec.ATTRIBUTE12,
1143                                 p_attribute13           => notes_rec.ATTRIBUTE13,
1144                                 p_attribute14           => notes_rec.ATTRIBUTE14,
1145                                 p_attribute15           => notes_rec.ATTRIBUTE15,
1146                                 p_context               => notes_rec.CONTEXT,
1147                                 p_note_type             => notes_rec.NOTE_TYPE);
1148 
1149         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1150           RAISE G_EXCEPTION_HALT_VALIDATION;
1151       END IF;
1152    END LOOP;
1153 
1154   OPEN  CUR_GET_PROGRAM_ID(l_Service_Line_Id);
1155   FETCH CUR_GET_PROGRAM_ID INTO l_pm_program_id;
1156   CLOSE CUR_GET_PROGRAM_ID;
1157 
1158 -- Commented by Jvorugan for R12 bugno:4610449
1159 --IF l_klnv_tbl_in(1).pm_program_id IS NOT NULL then -- No need to call PM schedule instantiation if there is no program id
1160   IF l_pm_program_id IS NOT NULL then
1161 
1162  OKS_PM_PROGRAMS_PVT. CREATE_PM_PROGRAM_SCHEDULE(
1163     p_api_version        => l_api_version,
1164     p_init_msg_list      => l_init_msg_list,
1165     x_return_status      => l_return_status,
1166     x_msg_count          => l_msg_count,
1167     x_msg_data           => l_msg_data,
1168     p_template_cle_id    => l_Template_Line_Id,
1169     p_cle_id             => l_Service_Line_Id, --c_cle_id, --instantiated cle id
1170     p_cov_start_date     => P_ac_rec_in.start_date,
1171     p_cov_end_date       => P_ac_rec_in.end_date);
1172 
1173 
1174 
1175   IF (G_DEBUG_ENABLED = 'Y') THEN
1176       okc_debug.log('After OKS_PM_PROGRAMS_PVT. CREATE_PM_PROGRAM_SCHEDULE'||l_return_status, 2);
1177   END IF;
1178 
1179 
1180   IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1181      RAISE G_EXCEPTION_HALT_VALIDATION;
1182   END IF;
1183  END IF;
1184 END IF; -- end of IF condition if l_cov_templ_yn = N
1185 
1186 */ -- End of changes by Jvorugan
1187          l_klnv_tbl_in.delete;
1188   -- FOR THE BUSINESS PROCESSES UNDER COVERAGE TEMPLATE
1189 
1190 
1191   FOR Childline_Rec1 IN Cur_Childline(l_template_line_id,tmp_lse_id+1)
1192   LOOP                                                                --L1
1193     tmp_txg_cle_id:=ChildLine_rec1.Id;
1194 
1195     -- FOR ALL THE LINES UNDER BUSINESS PROCESS
1196 
1197     FOR LineDet_Rec1 IN Cur_LineDet(tmp_txg_cle_Id)
1198     LOOP
1199 
1200        FOR oks_bp_rec IN CUR_GET_OKS_LINE(tmp_txg_cle_id)
1201        LOOP
1202         -- Offset Period Logic for Start date and End date
1203       IF oks_bp_rec.offset_duration IS NOT NULL
1204       AND oks_bp_rec.offset_period IS NOT NULL
1205       THEN
1206 
1207         l_start_date:=OKC_Time_Util_Pub.get_enddate
1208                         (P_ac_Rec_In.Start_date,
1209                         oks_bp_rec.offset_period,
1210                         oks_bp_rec.offset_Duration);
1211 
1212         IF oks_bp_rec.offset_duration > 0
1213         THEN
1214           l_start_date := l_start_date + 1;
1215         END IF;
1216 
1217         IF NOT l_start_date>P_Ac_Rec_In.End_Date
1218         THEN
1219           g_start_date:=l_start_date;
1220           g_end_date:= P_Ac_Rec_In.End_Date;
1221         ELSE
1222           g_start_date:= P_Ac_Rec_In.End_Date;
1223           g_end_date:= P_Ac_Rec_In.End_Date;
1224         END IF;
1225      ELSE
1226           g_start_date:= P_Ac_Rec_In.Start_Date;
1227           g_end_date:= P_Ac_Rec_In.End_Date;
1228      END IF;
1229 
1230       -- Create Contract Line for the (Business Process) of Actual Coverage
1231       Init_Clev(l_clev_tbl_in);
1232       l_clev_tbl_in(1).dnz_chr_id	        := g_chr_id;
1233       l_clev_tbl_in(1).cle_id		        := c_cle_id;
1234       l_clev_tbl_in(1).chr_id               := Null;
1235       l_clev_tbl_in(1).sfwt_flag	        := LineDet_Rec1.sfwt_flag;
1236       l_clev_tbl_in(1).lse_id		        := l_Parent_lse_Id+2; -- LineDet_Rec1.lse_id;
1237       l_clev_tbl_in(1).display_sequence     := LineDet_Rec1.Display_Sequence;
1238       l_clev_tbl_in(1).Name		            := LineDet_Rec1.Name;
1239       l_clev_tbl_in(1).exception_yn	        := LineDet_Rec1.exception_yn;
1240       l_clev_tbl_in(1).start_date	        := g_start_date;
1241       l_clev_tbl_in(1).end_date	            := g_end_date;
1242       l_clev_tbl_in(1).sts_code	            := GetStatus( l_Service_Line_Id);
1243       l_clev_tbl_in(1).Currency_code	    := GetCurrency( l_Service_Line_Id);
1244       l_clev_tbl_in(1).attribute_category   := LineDet_Rec1.attribute_category;
1245       l_clev_tbl_in(1).attribute1           := LineDet_Rec1.attribute1;
1246       l_clev_tbl_in(1).attribute2           := LineDet_Rec1.attribute2;
1247       l_clev_tbl_in(1).attribute3           := LineDet_Rec1.attribute3;
1248       l_clev_tbl_in(1).attribute4           := LineDet_Rec1.attribute4;
1249       l_clev_tbl_in(1).attribute5           := LineDet_Rec1.attribute5;
1250       l_clev_tbl_in(1).attribute6           := LineDet_Rec1.attribute6;
1251       l_clev_tbl_in(1).attribute7           := LineDet_Rec1.attribute7;
1252       l_clev_tbl_in(1).attribute8           := LineDet_Rec1.attribute8;
1253       l_clev_tbl_in(1).attribute9           := LineDet_Rec1.attribute9;
1254       l_clev_tbl_in(1).attribute10          := LineDet_Rec1.attribute10;
1255       l_clev_tbl_in(1).attribute11          := LineDet_Rec1.attribute11;
1256       l_clev_tbl_in(1).attribute12          := LineDet_Rec1.attribute12;
1257       l_clev_tbl_in(1).attribute13          := LineDet_Rec1.attribute13;
1258       l_clev_tbl_in(1).attribute14          := LineDet_Rec1.attribute14;
1259       l_clev_tbl_in(1).attribute15          := LineDet_Rec1.attribute15;
1260       l_clev_tbl_in(1).price_list_id        := LineDet_Rec1.price_list_id;
1261 
1262            okc_contract_pub.create_contract_line(p_api_version			=> l_api_version,
1263                                            	     p_init_msg_list		=> l_init_msg_list,
1264      	                                         x_return_status		=> l_return_status,
1265                                                  x_msg_count			=> l_msg_count,
1266                                                  x_msg_data			    => l_msg_data,
1267                                                  p_restricted_update    => p_restricted_update,
1268                                                  p_clev_tbl			    => l_clev_tbl_in,
1269     	                                         x_clev_tbl			    => l_clev_tbl_out);
1270 
1271 
1272 
1273 
1274       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1275         RAISE G_EXCEPTION_HALT_VALIDATION;
1276       ELSE
1277      	txg_cle_Id:=l_clev_tbl_out(1).ID;
1278       END IF;
1279 
1280       FOR ItemDet_Rec IN CUR_ItemDet(tmp_txg_cle_Id)
1281       LOOP                                                    --L3
1282         --  Create a Contract ITEM FOR BUSINESS PROCESS (ACTUAL COVERAGE)
1283         Init_Cimv(l_cimv_tbl_in);
1284 	l_cimv_tbl_in(1).cle_id		        := txg_cle_Id;
1285 	l_cimv_tbl_in(1).chr_id		        := null;
1286 	l_cimv_tbl_in(1).cle_id_for	        := Null;
1287 	l_cimv_tbl_in(1).object1_id1	    := ItemDet_Rec.object1_id1;
1288   	l_cimv_tbl_in(1).object1_id2	    := ItemDet_Rec.object1_id2;
1289 	l_cimv_tbl_in(1).JTOT_OBJECT1_CODE  := ItemDet_Rec.JTOT_OBJECT1_CODE;
1290 	l_cimv_tbl_in(1).exception_yn	    := ItemDet_Rec.exception_yn;
1291 	l_cimv_tbl_in(1).number_of_items    := ItemDet_Rec.number_of_items;
1292 	l_cimv_tbl_in(1).dnz_chr_id	        := g_chr_id;
1293 
1294         okc_contract_item_pub.create_contract_item (
1295    	  p_api_version			=> l_api_version,
1296   	  p_init_msg_list		=> l_init_msg_list,
1297   	  x_return_status		=> l_return_status,
1298       x_msg_count			=> l_msg_count,
1299       x_msg_data			=> l_msg_data,
1300       p_cimv_tbl			=> l_cimv_tbl_in,
1301   	  x_cimv_tbl			=> l_cimv_tbl_out);
1302 
1303       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1304          RAISE G_EXCEPTION_HALT_VALIDATION;
1305       END IF;
1306     END LOOP;
1307 
1308        -- Create record in OKS_K_LINES
1309 
1310    INIT_OKS_K_LINE(l_klnv_tbl_in);
1311 
1312     l_klnv_tbl_in(1).cle_id                         := txg_cle_id ;
1313     l_klnv_tbl_in(1).dnz_chr_id                     := g_chr_id;
1314     l_klnv_tbl_in(1).discount_list                  := oks_bp_rec.discount_list;
1315     l_klnv_tbl_in(1).offset_duration                := oks_bp_rec.offset_duration;
1316     l_klnv_tbl_in(1).offset_period                  := oks_bp_rec.offset_period;
1317     l_klnv_tbl_in(1).allow_bt_discount              := oks_bp_rec.allow_bt_discount;
1318     l_klnv_tbl_in(1).apply_default_timezone         := oks_bp_rec.apply_default_timezone;
1319     l_klnv_tbl_in(1).sfwt_flag                      := oks_bp_rec.sfwt_flag;
1320     l_klnv_tbl_in(1).object_version_number          := 1; --oks_cov_rec.object_version_number;
1321     l_klnv_tbl_in(1).security_group_id              := oks_bp_rec.security_group_id;
1322 
1323            OKS_CONTRACT_LINE_PUB.CREATE_LINE(p_api_version   => l_api_version,
1324                                            	 p_init_msg_list => l_init_msg_list,
1325                                              x_return_status => l_return_status,
1326                                              x_msg_count	 => l_msg_count,
1327                                              x_msg_data		 => l_msg_data,
1328                                              p_klnv_tbl      => l_klnv_tbl_in,
1329                                              x_klnv_tbl      => l_klnv_tbl_out,
1330                                              p_validate_yn   => 'N');
1331 
1332                 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1333                       RAISE G_EXCEPTION_HALT_VALIDATION;
1334                 END IF;
1335            l_klnv_tbl_in.delete;
1336    -- Create Cover Time Rule For BUS PROC FOR ACTUAL COVERAGE
1337 
1338    FOR cov_tz_rec IN Get_cov_timezones(tmp_txg_cle_Id)
1339    LOOP
1340 
1341     INIT_OKS_TIMEZONE_LINE(l_covtz_tbl_in);
1342 
1343       l_covtz_tbl_in(1).cle_id                         := txg_cle_id;
1344       l_covtz_tbl_in(1).default_yn                     := cov_tz_rec.default_yn;
1345       l_covtz_tbl_in(1).timezone_id                    := cov_tz_rec.timezone_id;
1346       l_covtz_tbl_in(1).dnz_chr_id                     := g_chr_id;
1347                OKS_CTZ_PVT.insert_row(
1348                                       p_api_version      => l_api_version,
1349                                       p_init_msg_list	 => l_init_msg_list,
1350                                       x_return_status	 => l_return_status,
1351                                       x_msg_count	     => l_msg_count,
1352                                       x_msg_data		 => l_msg_data,
1353                                       p_oks_coverage_timezones_v_tbl => l_covtz_tbl_in,
1354                                       x_oks_coverage_timezones_v_tbl => l_covtz_tbl_out);
1355 
1356 
1357        IF (G_DEBUG_ENABLED = 'Y') THEN
1358            okc_debug.log('After OKS_CTZ_PVT insert_row'||l_return_status, 2);
1359        END IF;
1360 
1361 
1362       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1363         RAISE G_EXCEPTION_HALT_VALIDATION;
1364       END IF;
1365 
1366 
1367     covtim_ctr := 0;
1368 
1369     INIT_OKS_COVER_TIME_LINE(l_covtim_tbl_in);
1370 
1371    FOR cov_times_rec IN Get_cov_times(cov_tz_rec.id)
1372    LOOP
1373        covtim_ctr := covtim_ctr + 1;
1374     l_covtim_tbl_in(covtim_ctr).dnz_chr_id                     := g_chr_id;
1375     l_covtim_tbl_in(covtim_ctr).cov_tze_line_id                := l_covtz_tbl_out(1).id;
1376     l_covtim_tbl_in(covtim_ctr).start_hour                     := cov_times_rec.start_hour;
1377     l_covtim_tbl_in(covtim_ctr).start_minute                   := cov_times_rec.start_minute;
1378     l_covtim_tbl_in(covtim_ctr).end_hour                       := cov_times_rec.end_hour;
1379     l_covtim_tbl_in(covtim_ctr).end_minute                     := cov_times_rec.end_minute;
1380     l_covtim_tbl_in(covtim_ctr).monday_yn                      := cov_times_rec.monday_yn;
1381     l_covtim_tbl_in(covtim_ctr).tuesday_yn                     := cov_times_rec.tuesday_yn;
1382     l_covtim_tbl_in(covtim_ctr).wednesday_yn                   := cov_times_rec.wednesday_yn;
1383     l_covtim_tbl_in(covtim_ctr).thursday_yn                    := cov_times_rec.thursday_yn;
1384     l_covtim_tbl_in(covtim_ctr).friday_yn                      := cov_times_rec.friday_yn;
1385     l_covtim_tbl_in(covtim_ctr).saturday_yn                    := cov_times_rec.saturday_yn;
1386     l_covtim_tbl_in(covtim_ctr).sunday_yn                      := cov_times_rec.sunday_yn;
1387     l_covtim_tbl_in(covtim_ctr).security_group_id              := oks_bp_rec.security_group_id;
1388     l_covtim_tbl_in(covtim_ctr).program_application_id         := NULL;
1389     l_covtim_tbl_in(covtim_ctr).program_id                     := NULL;
1390     l_covtim_tbl_in(covtim_ctr).program_update_date            := NULL;
1391     l_covtim_tbl_in(covtim_ctr).request_id                     := NULL;
1392    END LOOP;
1393 
1394       OKS_CVT_PVT.insert_row(
1395                 p_api_version    => l_api_version,
1396                 p_init_msg_list	 => l_init_msg_list,
1397                 x_return_status	 => l_return_status,
1398                 x_msg_count	     => l_msg_count,
1399                 x_msg_data		 => l_msg_data,
1400                 p_oks_coverage_times_v_tbl  => l_covtim_tbl_in,
1401                 x_oks_coverage_times_v_tbl  => l_covtim_tbl_out);
1402      END LOOP;
1403 
1404 
1405        IF (G_DEBUG_ENABLED = 'Y') THEN
1406            okc_debug.log('After OKS_CVT_PVT insert_row'||l_return_status, 2);
1407        END IF;
1408 
1409 
1410       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1411         RAISE G_EXCEPTION_HALT_VALIDATION;
1412       END IF;
1413    END LOOP;  -- End loop for OKS_BP_REC
1414 
1415    -- Done Business Process
1416 
1417    -- For all Reaction Times in Template
1418       FOR tmp_crt_rec IN Cur_ChildLine1(tmp_txg_cle_Id,(tmp_lse_Id+2))
1419       LOOP
1420       tmp_crt_cle_id:=tmp_crt_rec.ID;
1421 
1422        OPEN Cur_Linedet3(tmp_crt_cle_id);
1423        FETCH Cur_Linedet3 INTO LineDet_Rec3;
1424        CLOSE Cur_LineDet3;
1425 
1426      -- Create same for Actual Coverage
1427      Init_clev(l_clev_tbl_in);
1428      l_clev_tbl_in(1).cle_id       	       := txg_cle_id;
1429      l_clev_tbl_in(1).chr_id       	       := null;
1430      l_clev_tbl_in(1).dnz_chr_id   	       := g_chr_id;
1431      l_clev_tbl_in(1).sfwt_flag	           := LineDet_Rec3.sfwt_flag;
1432      l_clev_tbl_in(1).lse_id	           := l_Parent_lse_Id+3; -- LineDet_Rec3.lse_id;
1433      l_clev_tbl_in(1).start_date	       := g_start_date;
1434      l_clev_tbl_in(1).end_date	           := g_end_date;
1435      l_clev_tbl_in(1).sts_code	           := GetStatus( l_Service_Line_Id);
1436      l_clev_tbl_in(1).Currency_code	       := GetCurrency( l_Service_Line_Id);
1437      l_clev_tbl_in(1).display_sequence     := LineDet_Rec3.Display_Sequence;
1438      l_clev_tbl_in(1).item_description     := LineDet_Rec3.Item_Description;
1439      l_clev_tbl_in(1).Name	               := LineDet_Rec3.Name;
1440      l_clev_tbl_in(1).exception_yn	       := LineDet_Rec3.exception_yn;
1441      l_clev_tbl_in(1).attribute_category   := LineDet_Rec3.attribute_category;
1442      l_clev_tbl_in(1).attribute1           := LineDet_Rec3.attribute1;
1443      l_clev_tbl_in(1).attribute2           := LineDet_Rec3.attribute2;
1444      l_clev_tbl_in(1).attribute3           := LineDet_Rec3.attribute3;
1445      l_clev_tbl_in(1).attribute4           := LineDet_Rec3.attribute4;
1446      l_clev_tbl_in(1).attribute5           := LineDet_Rec3.attribute5;
1447      l_clev_tbl_in(1).attribute6           := LineDet_Rec3.attribute6;
1448      l_clev_tbl_in(1).attribute7           := LineDet_Rec3.attribute7;
1449      l_clev_tbl_in(1).attribute8           := LineDet_Rec3.attribute8;
1450      l_clev_tbl_in(1).attribute9           := LineDet_Rec3.attribute9;
1451      l_clev_tbl_in(1).attribute10          := LineDet_Rec3.attribute10;
1452      l_clev_tbl_in(1).attribute11          := LineDet_Rec3.attribute11;
1453      l_clev_tbl_in(1).attribute12          := LineDet_Rec3.attribute12;
1454      l_clev_tbl_in(1).attribute13          := LineDet_Rec3.attribute13;
1455      l_clev_tbl_in(1).attribute14          := LineDet_Rec3.attribute14;
1456      l_clev_tbl_in(1).attribute15          := LineDet_Rec3.attribute15;
1457 
1458      okc_contract_pub.create_contract_line (
1459                                        	   p_api_version	    => l_api_version,
1460                                    	       p_init_msg_list		=> l_init_msg_list,
1461                                            x_return_status		=> l_return_status,
1462                                            x_msg_count			=> l_msg_count,
1463                                            x_msg_data			=> l_msg_data,
1464                                            p_restricted_update  => p_restricted_update,
1465                                            p_clev_tbl			=> l_clev_tbl_in,
1466                                        	   x_clev_tbl			=> l_clev_tbl_out);
1467 
1468      IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1469           RAISE G_EXCEPTION_HALT_VALIDATION;
1470      ELSE
1471           crt_cle_id:=l_clev_tbl_out(1).ID;
1472      END IF;
1473 
1474     -- Create record in OKS_K_LINES
1475 
1476 
1477 
1478          FOR oks_react_rec IN CUR_GET_OKS_LINE(tmp_crt_cle_id)
1479          LOOP
1480 
1481               INIT_OKS_K_LINE(l_klnv_tbl_in) ;
1482 
1483                 l_klnv_tbl_in(1).cle_id                         := crt_cle_id ;
1484                 l_klnv_tbl_in(1).dnz_chr_id                     := g_chr_id;
1485                 l_klnv_tbl_in(1).react_time_name                := oks_react_rec.react_time_name;
1486                 l_klnv_tbl_in(1).incident_severity_id           := oks_react_rec.incident_severity_id;
1487                 l_klnv_tbl_in(1).pdf_id                         := oks_react_rec.pdf_id;
1488                 l_klnv_tbl_in(1).work_thru_yn                   := oks_react_rec.work_thru_yn;
1489                 l_klnv_tbl_in(1).react_active_yn                := oks_react_rec.react_active_yn;
1490                 l_klnv_tbl_in(1).sfwt_flag                      := oks_react_rec.sfwt_flag;
1491                 l_klnv_tbl_in(1).object_version_number          := 1; --oks_cov_rec.object_version_number;
1492                 l_klnv_tbl_in(1).security_group_id              := oks_react_rec.security_group_id;
1493 
1494                        OKS_CONTRACT_LINE_PUB.create_line(
1495                                             p_api_version     => l_api_version,
1496                                             p_init_msg_list	  => l_init_msg_list,
1497                                             x_return_status	  => l_return_status,
1498                                             x_msg_count	      => l_msg_count,
1499                                             x_msg_data	      => l_msg_data,
1500                                             p_klnv_tbl        => l_klnv_tbl_in,
1501                                             x_klnv_tbl        => l_klnv_tbl_out,
1502                                             p_validate_yn     => 'N');
1503 
1504                  IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1505                    RAISE G_EXCEPTION_HALT_VALIDATION;
1506                END IF;
1507                     l_rt_cle_id := l_klnv_tbl_out(1).id ;
1508           END LOOP;  -- end loop for oks_react_rec
1509 
1510 
1511   FOR act_type_rec IN CUR_GET_ACTION_TYPES(tmp_crt_cle_id)
1512   LOOP
1513 
1514   INIT_OKS_ACT_TYPE(l_act_type_tbl_in);
1515 
1516   l_act_type_line_id := act_type_rec.id ;
1517 
1518   l_act_type_tbl_in(1).cle_id           := crt_cle_id; --l_rt_cle_id ;
1519   l_act_type_tbl_in(1).dnz_chr_id       := g_chr_id;
1520   l_act_type_tbl_in(1).action_type_code := act_type_rec.action_type_code;
1521 
1522    OKS_ACT_PVT.INSERT_ROW(p_api_version   => l_api_version,
1523                           p_init_msg_list => l_init_msg_list,
1524                           x_return_status => l_return_status,
1525                           x_msg_count     => l_msg_count,
1526                           x_msg_data      => l_msg_data,
1527                           p_oks_action_time_types_v_tbl => l_act_type_tbl_in,
1528                           x_oks_action_time_types_v_tbl => l_act_type_tbl_out);
1529 
1530        IF (G_DEBUG_ENABLED = 'Y') THEN
1531            okc_debug.log('After OKS_ACT_PVT INSERT_ROW'||l_return_status, 2);
1532        END IF;
1533 
1534 
1535 
1536     IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1537        RAISE G_EXCEPTION_HALT_VALIDATION;
1538     END IF;
1539             l_cov_act_type_line_id := l_act_type_tbl_out(1).id ;
1540 
1541             act_time_ctr:= 0;
1542 
1543       FOR act_time_rec IN CUR_GET_ACTION_TIMES(l_act_type_line_id)
1544       LOOP
1545        act_time_ctr := act_time_ctr + 1 ;
1546 
1547       INIT_OKS_ACT_TIME(l_act_time_tbl_in);
1548       l_act_time_tbl_in(act_time_ctr).cov_action_type_id  := l_cov_act_type_line_id ;
1549       l_act_time_tbl_in(act_time_ctr).cle_id              := crt_cle_id; --l_rt_cle_id;
1550       l_act_time_tbl_in(act_time_ctr).dnz_chr_id          := g_chr_id;
1551       l_act_time_tbl_in(act_time_ctr).uom_code            := act_time_rec.uom_code;
1552       l_act_time_tbl_in(act_time_ctr).sun_duration        := act_time_rec.sun_duration;
1553       l_act_time_tbl_in(act_time_ctr).mon_duration        := act_time_rec.mon_duration;
1554       l_act_time_tbl_in(act_time_ctr).tue_duration        := act_time_rec.tue_duration;
1555       l_act_time_tbl_in(act_time_ctr).wed_duration        := act_time_rec.wed_duration;
1556       l_act_time_tbl_in(act_time_ctr).thu_duration        := act_time_rec.thu_duration;
1557       l_act_time_tbl_in(act_time_ctr).fri_duration        := act_time_rec.fri_duration;
1558       l_act_time_tbl_in(act_time_ctr).sat_duration        := act_time_rec.sat_duration;
1559     END LOOP ; -- END LOOP FOR ACT_TIME_REC
1560 
1561                            OKS_ACM_PVT.insert_row(p_api_version     => l_api_version,
1562                                                  p_init_msg_list   =>  l_init_msg_list,
1563                                                  x_return_status   => l_return_status,
1564                                                  x_msg_count       => l_msg_count,
1565                                                  x_msg_data        => l_msg_data,
1566                                                  p_oks_action_times_v_tbl => l_act_time_tbl_in,
1567                                                  x_oks_action_times_v_tbl => l_act_time_tbl_out);
1568 
1569        IF (G_DEBUG_ENABLED = 'Y') THEN
1570            okc_debug.log('After OKS_ACM_PVT insert_row'||l_return_status, 2);
1571        END IF;
1572 
1573        IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1574           RAISE G_EXCEPTION_HALT_VALIDATION;
1575        END IF;
1576     END LOOP ;  -- END LOOP FOR ACT_TYPE_REC
1577    END LOOP;
1578 
1579   -- Preferred Engineers
1580 
1581   OPEN Cur_PTRLDet(Tmp_txg_cle_Id,'VENDOR');
1582   FETCH Cur_PTRLDet INTO PTRLDet_Rec;
1583   IF NOT Cur_PTRLDet%FOUND
1584   THEN
1585     tmp_cpl_id:=NULL;
1586   ELSE
1587     tmp_cpl_id:=PtrlDet_Rec.Id;
1588   END IF;
1589   CLOSE Cur_PTRLDet;
1590 
1591   -- If it's there in Template, create it for Actual Coverage
1592   IF NOT tmp_cpl_id IS NULL
1593   THEN
1594     --Init_Cplv(l_cplv_tbl_in);
1595     l_cplv_tbl_in(1).sfwt_flag		:='N';
1596     l_cplv_tbl_in(1).cle_id		:= txg_cle_id;
1597     l_cplv_tbl_in(1).dnz_chr_id	:= g_chr_id;
1598     l_cplv_tbl_in(1).rle_code          := l_rle_code ; --'VENDOR';
1599    -- l_cplv_tbl_in(1).object1_id1       :=PtrlDet_Rec.object1_id1;
1600    --  l_cplv_tbl_in(1).object1_id2       :=PtrlDet_Rec.object1_id2;
1601    --  l_cplv_tbl_in(1).jtot_object1_code :=PtrlDet_Rec.jtot_object1_code;
1602 
1603 -- Fix for Bug:4703431. Modified by Jvorugan
1604       open CUR_GET_ORG_ID(g_chr_id);
1605       fetch CUR_GET_ORG_ID INTO l_object_id;
1606       close CUR_GET_ORG_ID;
1607 
1608        l_cplv_tbl_in(1).object1_id1       :=l_object_id;
1609        l_cplv_tbl_in(1).object1_id2       := '#';
1610        l_cplv_tbl_in(1).jtot_object1_code :='OKX_OPERUNIT';
1611  -- End of changes for  Bug:4703431.
1612 
1613 
1614     OKC_CONTRACT_PARTY_PUB.Create_k_Party_Role(
1615 	p_api_version			=> l_api_version,
1616 	p_init_msg_list			=> l_init_msg_list,
1617 	x_return_status			=> l_return_status,
1618 	x_msg_count			=> l_msg_count,
1619 	x_msg_data			=> l_msg_data,
1620 	p_cplv_tbl			=> l_cplv_tbl_in,
1621 	x_cplv_tbl			=> l_cplv_tbl_out);
1622 
1623     IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1624       RAISE G_EXCEPTION_HALT_VALIDATION;
1625     ELSE
1626       l_cpl_id	:=l_cplv_tbl_out(1).Id;
1627     END IF;
1628 
1629     FOR ContactDet_Rec IN Cur_ContactDet(tmp_cpl_Id)
1630     LOOP
1631       -- To Create Contact
1632       Init_CTCV(l_ctcv_tbl_in);
1633       l_ctcv_tbl_in(1).cpl_id		 := l_cpl_id;
1634       l_ctcv_tbl_in(1).cro_code		 := ContactDet_rec.cro_code;
1635       l_ctcv_tbl_in(1).dnz_chr_id	 := g_chr_id;
1636       l_ctcv_tbl_in(1).contact_sequence  :=ContactDet_rec.contact_sequence;
1637       l_ctcv_tbl_in(1).object1_id1	 := ContactDet_Rec.Object1_id1;
1638       l_ctcv_tbl_in(1).object1_id2	 := ContactDet_Rec.Object1_id2;
1639       l_ctcv_tbl_in(1).JTOT_OBJECT1_CODE := ContactDet_Rec.JTOT_OBJECT1_CODE;
1640       l_ctcv_tbl_in(1).resource_class        := ContactDet_Rec.resource_class;
1641 
1642       OKC_CONTRACT_PARTY_PUB.Create_Contact(
1643 	   p_api_version		=> l_api_version,
1644 	   p_init_msg_list		=> l_init_msg_list,
1645 	   x_return_status		=> l_return_status,
1646 	   x_msg_count			=> l_msg_count,
1647 	   x_msg_data			=> l_msg_data,
1648 	   p_ctcv_tbl			=> l_ctcv_tbl_in,
1649 	   x_ctcv_tbl			=> l_ctcv_tbl_out);
1650 
1651 
1652       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1653          RAISE G_EXCEPTION_HALT_VALIDATION;
1654       ELSE
1655         l_contact_id	:=l_ctcv_tbl_out(1).Id;
1656       END IF;
1657     END LOOP;
1658   END IF;
1659   -- Done Preferred Engineer
1660 
1661   -- For all the Bill Types in Template, create the same for ACTUAL COVERAGE
1662 
1663   IF l_Parent_Lse_Id =14
1664     THEN
1665       l_bt_lse_Id:=59;
1666   ELSE
1667       l_bt_lse_Id:=tmp_lse_id+3;
1668   END IF;
1669 
1670 
1671  -- FOR tmp_bt_Rec IN Cur_ChildLine_bt(tmp_txg_cle_Id,tmp_lse_id+3)
1672   FOR tmp_bt_Rec IN Cur_ChildLine_bt(tmp_txg_cle_Id,l_bt_lse_Id)
1673   LOOP
1674     tmp_bt_cle_id:=tmp_bt_Rec.Id;
1675 
1676     -- For Warranty
1677     -- commented for NEW  ER ; warranty to be opened up for bill types and bill rates
1678 /*
1679     IF l_Parent_Lse_Id =14
1680     THEN
1681       tmp_bt_cle_Id:=NULL;
1682     END IF;
1683 */
1684 
1685     IF NOT tmp_bt_cle_id IS NULL
1686     THEN
1687       OPEN Cur_Linedet3(tmp_bt_cle_id);
1688       FETCH Cur_Linedet3 INTO LineDet_Rec3;
1689       CLOSE Cur_LineDet3;
1690 
1691       Init_Clev(l_clev_tbl_in);
1692       l_clev_tbl_in(1).cle_id       	    := txg_cle_id;
1693       l_clev_tbl_in(1).chr_id       	    := null;
1694       l_clev_tbl_in(1).dnz_chr_id   	    := g_chr_id;
1695       l_clev_tbl_in(1).sfwt_flag	    :=LineDet_Rec3.sfwt_flag;
1696 
1697 -- changed for NEW  ER ; warranty to be opened up for bill types and bill rates
1698 
1699       IF l_Parent_Lse_Id in (1,19) THEN
1700         l_clev_tbl_in(1).lse_id		    :=l_Parent_lse_Id+4;--LineDet_Rec3.lse_id ;
1701       ELSIF l_Parent_Lse_Id in (14) THEN
1702         l_clev_tbl_in(1).lse_id		    := 59; --l_Parent_lse_Id+4;--LineDet_Rec3.lse_id ;
1703       END IF;
1704 
1705       l_clev_tbl_in(1).start_date	    := g_start_date;
1706       l_clev_tbl_in(1).end_date	            := g_end_date;
1707       l_clev_tbl_in(1).sts_code	            := GetStatus( l_Service_Line_Id);
1708       l_clev_tbl_in(1).Currency_code	    := GetCurrency( l_Service_Line_Id);
1709       l_clev_tbl_in(1).display_sequence     := LineDet_Rec3.Display_sequence;
1710       l_clev_tbl_in(1).item_description     := LineDet_Rec3.Item_Description;
1711       l_clev_tbl_in(1).Name		    := LineDet_Rec3.Name;
1712       l_clev_tbl_in(1).exception_yn	    := LineDet_Rec3.exception_yn;
1713       l_clev_tbl_in(1).attribute_category   := LineDet_Rec3.attribute_category;
1714       l_clev_tbl_in(1).attribute1           := LineDet_Rec3.attribute1;
1715       l_clev_tbl_in(1).attribute2           := LineDet_Rec3.attribute2;
1716       l_clev_tbl_in(1).attribute3           := LineDet_Rec3.attribute3;
1717       l_clev_tbl_in(1).attribute4           := LineDet_Rec3.attribute4;
1718       l_clev_tbl_in(1).attribute5           := LineDet_Rec3.attribute5;
1719       l_clev_tbl_in(1).attribute6           := LineDet_Rec3.attribute6;
1720       l_clev_tbl_in(1).attribute7           := LineDet_Rec3.attribute7;
1721       l_clev_tbl_in(1).attribute8           := LineDet_Rec3.attribute8;
1722       l_clev_tbl_in(1).attribute9           := LineDet_Rec3.attribute9;
1723       l_clev_tbl_in(1).attribute10          := LineDet_Rec3.attribute10;
1724       l_clev_tbl_in(1).attribute11          := LineDet_Rec3.attribute11;
1725       l_clev_tbl_in(1).attribute12          := LineDet_Rec3.attribute12;
1726       l_clev_tbl_in(1).attribute13          := LineDet_Rec3.attribute13;
1727       l_clev_tbl_in(1).attribute14          := LineDet_Rec3.attribute14;
1728       l_clev_tbl_in(1).attribute15          := LineDet_Rec3.attribute15;
1729 
1730 
1731       okc_contract_pub.create_contract_line (
1732    	p_api_version			=> l_api_version,
1733   	p_init_msg_list			=> l_init_msg_list,
1734      	x_return_status			=> l_return_status,
1735         x_msg_count			=> l_msg_count,
1736         x_msg_data			=> l_msg_data,
1737         p_restricted_update             => p_restricted_update,
1738         p_clev_tbl			=> l_clev_tbl_in,
1739     	x_clev_tbl			=> l_clev_tbl_out);
1740 
1741 
1742       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1743         RAISE G_EXCEPTION_HALT_VALIDATION;
1744       ELSE
1745         bt_cle_id:=l_clev_tbl_out(1).ID;
1746       END IF;
1747     -- Create record in OKS_K_LINES
1748  FOR oks_bt_rec IN CUR_GET_OKS_LINE(tmp_bt_cle_id)
1749  LOOP
1750  INIT_OKS_K_LINE(l_klnv_tbl_in);
1751     l_klnv_tbl_in(1).cle_id                         := bt_cle_id ;
1752     l_klnv_tbl_in(1).dnz_chr_id                     := g_chr_id;
1753     l_klnv_tbl_in(1).limit_uom_quantified           := oks_bt_rec.limit_uom_quantified;
1754     l_klnv_tbl_in(1).discount_amount                := oks_bt_rec.discount_amount;
1755     l_klnv_tbl_in(1).discount_percent               := oks_bt_rec.discount_percent;
1756     l_klnv_tbl_in(1).work_thru_yn                   := oks_bt_rec.work_thru_yn;
1757     l_klnv_tbl_in(1).react_active_yn                := oks_bt_rec.react_active_yn;
1758     l_klnv_tbl_in(1).sfwt_flag                      := oks_bt_rec.sfwt_flag;
1759     l_klnv_tbl_in(1).object_version_number          := 1; --oks_cov_rec.object_version_number;
1760     l_klnv_tbl_in(1).security_group_id              := oks_bt_rec.security_group_id;
1761 
1762  OKS_CONTRACT_LINE_PUB.CREATE_LINE(p_api_version    => l_api_version,
1763                                                         	p_init_msg_list	 => l_init_msg_list,
1764                                                             x_return_status	 => l_return_status,
1765                                                             x_msg_count	     => l_msg_count,
1766                                                             x_msg_data		 => l_msg_data,
1767                                                             p_klnv_tbl       => l_klnv_tbl_in,
1768                                                             x_klnv_tbl       => l_klnv_tbl_out,
1769                                                             p_validate_yn    => 'N');
1770 
1771 
1772   IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1773     RAISE G_EXCEPTION_HALT_VALIDATION;
1774   END IF;
1775   END LOOP;
1776       -- For all the Contract Item for BILL TYPE in TEMPLATE, create the same for Actual Coverage
1777       FOR ItemDet_Rec IN CUR_ItemDet(tmp_bt_cle_Id)
1778       LOOP                                                    --L3
1779         INIT_CIMV(l_cimv_tbl_in);
1780 	l_cimv_tbl_in(1).cle_id		    := bt_cle_Id;
1781 	l_cimv_tbl_in(1).chr_id		    := null;
1782 	l_cimv_tbl_in(1).cle_id_for	    := Null;
1783 	l_cimv_tbl_in(1).object1_id1	    := ItemDet_Rec.object1_id1;
1784   	l_cimv_tbl_in(1).object1_id2	    := ItemDet_Rec.object1_id2;
1785 	l_cimv_tbl_in(1).JTOT_OBJECT1_CODE  := ItemDet_Rec.JTOT_OBJECT1_CODE;
1786 	l_cimv_tbl_in(1).exception_yn	    := ItemDet_Rec.exception_yn;
1787 	l_cimv_tbl_in(1).number_of_items    := ItemDet_Rec.number_of_items;
1788 	l_cimv_tbl_in(1).dnz_chr_id	    := g_chr_id;
1789 
1790         okc_contract_item_pub.create_contract_item (
1791    	  p_api_version			=> l_api_version,
1792   	  p_init_msg_list		=> l_init_msg_list,
1793      	  x_return_status		=> l_return_status,
1794           x_msg_count			=> l_msg_count,
1795           x_msg_data			=> l_msg_data,
1796           p_cimv_tbl			=> l_cimv_tbl_in,
1797     	  x_cimv_tbl			=> l_cimv_tbl_out);
1798 
1799        IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1800           RAISE G_EXCEPTION_HALT_VALIDATION;
1801         END IF;
1802       END LOOP;
1803 
1804       -- For all the Bill Rate in Template, create the same in Actual
1805 
1806       IF l_Parent_Lse_Id =14
1807         THEN
1808           l_br_lse_Id:=60;
1809       ELSE
1810           l_br_lse_Id:=tmp_lse_id+4;
1811       END IF;
1812 
1813 --      FOR tmp_br_Rec IN Cur_ChildLine_br(tmp_bt_cle_id,tmp_lse_id+4)
1814       FOR tmp_br_Rec IN Cur_ChildLine_br(tmp_bt_cle_id,l_br_lse_Id)
1815       LOOP
1816          tmp_br_cle_id:=tmp_br_Rec.Id;
1817         IF NOT tmp_br_cle_id IS NULL
1818         THEN
1819           Init_clev(l_clev_tbl_in);
1820           l_clev_tbl_in(1).cle_id               := bt_cle_id;
1821           l_clev_tbl_in(1).chr_id               := null;
1822           l_clev_tbl_in(1).dnz_chr_id           := g_chr_id;
1823     	  l_clev_tbl_in(1).sfwt_flag	        := LineDet_Rec.sfwt_flag;
1824 
1825       -- changed for NEW  ER ; warranty to be opened up for bill types and bill rates
1826 
1827       IF l_Parent_Lse_Id in (1,19) THEN
1828         l_clev_tbl_in(1).lse_id		    :=l_Parent_lse_Id+5;-- tmp_br_rec.lse_id;
1829       ELSIF l_Parent_Lse_Id in (14) THEN
1830         l_clev_tbl_in(1).lse_id		    := 60; -- tmp_br_rec.lse_id;
1831       END IF;
1832 
1833 	  l_clev_tbl_in(1).start_date	        := g_start_date;
1834    	  l_clev_tbl_in(1).end_date	            := g_end_date;
1835 	  l_clev_tbl_in(1).sts_code	            := GetStatus( l_Service_Line_Id);
1836       l_clev_tbl_in(1).Currency_code        := GetCurrency( l_Service_Line_Id);
1837 	  l_clev_tbl_in(1).display_sequence     := LineDet_Rec.Display_Sequence;
1838 	  l_clev_tbl_in(1).item_description     := LineDet_Rec.Item_Description;
1839 	  l_clev_tbl_in(1).Name		            := LineDet_Rec.Name;
1840 	  l_clev_tbl_in(1).exception_yn	        := tmp_br_Rec.exception_yn;
1841 	  l_clev_tbl_in(1).attribute_category   := tmp_br_Rec.attribute_category;
1842       l_clev_tbl_in(1).attribute1           := tmp_br_Rec.attribute1;
1843       l_clev_tbl_in(1).attribute2           := tmp_br_Rec.attribute2;
1844       l_clev_tbl_in(1).attribute3           := tmp_br_Rec.attribute3;
1845       l_clev_tbl_in(1).attribute4           := tmp_br_Rec.attribute4;
1846       l_clev_tbl_in(1).attribute5           := tmp_br_Rec.attribute5;
1847       l_clev_tbl_in(1).attribute6           := tmp_br_Rec.attribute6;
1848       l_clev_tbl_in(1).attribute7           := tmp_br_Rec.attribute7;
1849       l_clev_tbl_in(1).attribute8           := tmp_br_Rec.attribute8;
1850       l_clev_tbl_in(1).attribute9           := tmp_br_Rec.attribute9;
1851       l_clev_tbl_in(1).attribute10          := tmp_br_Rec.attribute10;
1852       l_clev_tbl_in(1).attribute11          := tmp_br_Rec.attribute11;
1853       l_clev_tbl_in(1).attribute12          := tmp_br_Rec.attribute12;
1854       l_clev_tbl_in(1).attribute13          := tmp_br_Rec.attribute13;
1855       l_clev_tbl_in(1).attribute14          := tmp_br_Rec.attribute14;
1856       l_clev_tbl_in(1).attribute15          := tmp_br_Rec.attribute15;
1857 
1858 
1859           okc_contract_pub.create_contract_line (
1860 	                                              p_api_version			=> l_api_version,
1861   	                                              p_init_msg_list		=> l_init_msg_list,
1862      	                                          x_return_status	    => l_return_status,
1863                                                   x_msg_count			=> l_msg_count,
1864                                                   x_msg_data			=> l_msg_data,
1865                                                   p_restricted_update   => p_restricted_update,
1866                                                   p_clev_tbl			=> l_clev_tbl_in,
1867     	                                          x_clev_tbl			=> l_clev_tbl_out);
1868 
1869           IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1870             RAISE G_EXCEPTION_HALT_VALIDATION;
1871           ELSE
1872             br_cle_id:=l_clev_tbl_out(1).ID;
1873           END IF;
1874 
1875            FOR brs_rec IN CUR_GET_BILLRATE_SCHEDULES(tmp_br_cle_id)
1876            LOOP
1877 
1878               INIT_BILL_RATE_LINE(l_bill_rate_tbl_in);
1879 
1880             l_bill_rate_tbl_in(1).cle_id              := br_cle_id;
1881             l_bill_rate_tbl_in(1).bt_cle_id           := bt_cle_id ;
1882             l_bill_rate_tbl_in(1).dnz_chr_id          := g_chr_id ;
1883             l_bill_rate_tbl_in(1).start_hour          := brs_rec.start_hour;
1884             l_bill_rate_tbl_in(1).start_minute        := brs_rec.start_minute;
1885             l_bill_rate_tbl_in(1).end_hour            := brs_rec.end_hour;
1886             l_bill_rate_tbl_in(1).end_minute          := brs_rec.end_minute;
1887             l_bill_rate_tbl_in(1).monday_flag         := brs_rec.monday_flag;
1888             l_bill_rate_tbl_in(1).tuesday_flag        := brs_rec.tuesday_flag;
1889             l_bill_rate_tbl_in(1).wednesday_flag      := brs_rec.wednesday_flag;
1890             l_bill_rate_tbl_in(1).thursday_flag       := brs_rec.thursday_flag;
1891             l_bill_rate_tbl_in(1).friday_flag         := brs_rec.friday_flag;
1892             l_bill_rate_tbl_in(1).saturday_flag       := brs_rec.saturday_flag;
1893             l_bill_rate_tbl_in(1).sunday_flag         := brs_rec.sunday_flag;
1894             l_bill_rate_tbl_in(1).object1_id1         := brs_rec.object1_id1;
1895             l_bill_rate_tbl_in(1).object1_id2         := brs_rec.object1_id2;
1896             l_bill_rate_tbl_in(1).bill_rate_code      := brs_rec.bill_rate_code;
1897             l_bill_rate_tbl_in(1).flat_rate           := brs_rec.flat_rate;
1898             l_bill_rate_tbl_in(1).uom                 := brs_rec.uom;
1899             l_bill_rate_tbl_in(1).holiday_yn                 := brs_rec.holiday_yn;
1900             l_bill_rate_tbl_in(1).percent_over_list_price    := brs_rec.percent_over_list_price;
1901             l_bill_rate_tbl_in(1).program_application_id := brs_rec.program_application_id;
1902             l_bill_rate_tbl_in(1).program_id   := brs_rec.program_id;
1903             l_bill_rate_tbl_in(1).program_update_date := brs_rec.program_update_date;
1904             l_bill_rate_tbl_in(1).request_id := brs_rec.request_id ;
1905             l_bill_rate_tbl_in(1).created_by             := NULL;
1906             l_bill_rate_tbl_in(1).creation_date          := NULL;
1907             l_bill_rate_tbl_in(1).last_updated_by        := NULL;
1908             l_bill_rate_tbl_in(1).last_update_date       := NULL;
1909             l_bill_rate_tbl_in(1).last_update_login      := NULL;
1910             l_bill_rate_tbl_in(1).security_group_id      := brs_rec.security_group_id;
1911             l_bill_rate_tbl_in(1).object_version_number      := brs_rec.object_version_number;
1912 
1913             OKS_BRS_PVT.INSERT_ROW(p_api_version      => l_api_version,
1914                         p_init_msg_list    => l_init_msg_list,
1915                         x_return_status    => l_return_status,
1916                         x_msg_count        => l_msg_count,
1917                         x_msg_data         => l_msg_data,
1918                         p_oks_billrate_schedules_v_tbl => l_bill_rate_tbl_in,
1919                         x_oks_billrate_schedules_v_tbl => x_bill_rate_tbl_out);
1920 
1921 IF (G_DEBUG_ENABLED = 'Y') THEN
1922 		okc_debug.log('Exiting Create_Actual_Coverage', 2);
1923 		okc_debug.Reset_Indentation;
1924 END IF;
1925 
1926                         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
1927                             RAISE G_EXCEPTION_HALT_VALIDATION;
1928                        END IF ;
1929                 END LOOP ;
1930              END IF;
1931       END LOOP;
1932     END IF;
1933   END LOOP;
1934 END LOOP;
1935 
1936 END LOOP;
1937 
1938 IF (G_DEBUG_ENABLED = 'Y') THEN
1939 		okc_debug.log('Exiting Create_Actual_Coverage', 2);
1940 		okc_debug.Reset_Indentation;
1941 END IF;
1942 
1943   x_actual_coverage_id :=c_cle_id;
1944   x_return_status := l_return_status ;
1945   x_msg_count :=l_msg_count;
1946   x_msg_data:=l_msg_data;
1947 
1948   EXCEPTION
1949     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1950         x_return_status := l_return_status ;
1951   /*    x_msg_count :=l_msg_count;
1952       x_msg_data:=l_msg_data;
1953       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1954       (
1955         l_api_name,
1956         'Create_actual_coverage',
1957         'OKC_API.G_RET_STS_ERROR',
1958         x_msg_count,
1959         x_msg_data,
1960         '_PVT'
1961       );
1962     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1963       x_msg_count :=l_msg_count;
1964       x_msg_data:=l_msg_data;
1965       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1966       (
1967         l_api_name,
1968         'Create_actual_coverage',
1969         'OKC_API.G_RET_STS_ERROR',
1970         x_msg_count,
1971         x_msg_data,
1972         '_PVT'
1973       );
1974     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1975       x_msg_count :=l_msg_count;
1976       x_msg_data:=l_msg_data;
1977       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1978       (
1979         l_api_name,
1980         'Create_actual_coverage',
1981         'OKC_API.G_RET_STS_UNEXP_ERROR',
1982         x_msg_count,
1983         x_msg_data,
1984         '_PVT'
1985       );
1986       */
1987 
1988 IF (G_DEBUG_ENABLED = 'Y') THEN
1989 		okc_debug.log('Exiting Create_Actual_Coverage'||l_return_Status, 2);
1990 		okc_debug.Reset_Indentation;
1991 END IF;
1992 
1993 
1994     WHEN OTHERS THEN
1995       OKC_API.SET_MESSAGE(
1996         p_app_name        => g_app_name,
1997         p_msg_name        => g_unexpected_error,
1998         p_token1	        => g_sqlcode_token,
1999         p_token1_value    => sqlcode,
2000         p_token2          => g_sqlerrm_token,
2001         p_token2_value    => sqlerrm);
2002        -- notify caller of an error as UNEXPETED error
2003         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2004         x_msg_count :=l_msg_count;
2005 
2006 IF (G_DEBUG_ENABLED = 'Y') THEN
2007 		okc_debug.log('Exiting Create_Actual_Coverage'||SQLERRM, 2);
2008 		okc_debug.Reset_Indentation;
2009 END IF;
2010 
2011          END create_actual_coverage;
2012 
2013 -- ******************************************************************************************
2014 PROCEDURE Undo_Header(
2015     p_api_version	    IN  NUMBER,
2016     p_init_msg_list         IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
2017     x_return_status         OUT NOCOPY VARCHAR2,
2018     x_msg_count             OUT NOCOPY NUMBER,
2019     x_msg_data              OUT NOCOPY VARCHAR2,
2020     P_Header_id    	    IN NUMBER) IS
2021 
2022 CURSOR Cur_Line (P_Chr_Id IN NUMBER) IS
2023 SELECT ID FROM OKC_K_Lines_v
2024 WHERE chr_ID=p_chr_Id;
2025 
2026 CURSOR Cur_gov (P_chr_Id IN NUMBER) IS
2027 SELECT ID FROM OKC_Governances_v
2028 WHERE dnz_chr_ID=p_chr_Id
2029 And   cle_id Is Null;
2030 
2031   l_chrv_rec         okc_contract_pub.chrv_rec_type;
2032   l_Line_Id              NUMBER;
2033   --
2034   l_api_version		CONSTANT	NUMBER     := 1.0;
2035   l_init_msg_list	CONSTANT	VARCHAR2(1):= 'T';
2036   l_return_status	VARCHAR2(1);
2037   l_msg_count		NUMBER;
2038   l_msg_data		VARCHAR2(2000):=null;
2039   l_msg_index_out       Number;
2040   l_api_name            CONSTANT VARCHAR2(30) := 'UNDO Header';
2041    --
2042   l_gvev_tbl_in     okc_contract_pub.gvev_tbl_type;
2043   e_error               Exception;
2044   n     NUMBER;
2045   m     NUMBER;
2046   v_Index   NUMBER;
2047 TYPE line_Tbl_Type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
2048 l_Line_tbl line_tbl_Type;
2049 BEGIN
2050 
2051 IF P_Header_Id IS NULL
2052 THEN l_msg_data:= 'Header_id Can not be Null';
2053      l_return_status := OKC_API.G_RET_STS_ERROR;
2054     RAISE e_Error;
2055 END IF;
2056  l_chrv_rec.id 	:= P_Header_Id;
2057 
2058 n:=1;
2059 FOR Line_Rec IN Cur_Line(P_Header_Id)
2060 LOOP
2061 l_line_tbl(n):=Line_Rec.Id;
2062 n:=n+1;
2063 END LOOP;
2064 
2065 n:=1;
2066 FOR Gov_Rec IN Cur_gov(P_header_Id)
2067 LOOP
2068 l_gvev_tbl_in(n).Id:=Gov_Rec.Id;
2069 n:=n+1;
2070 END LOOP;
2071 
2072 IF NOT l_gvev_tbl_In.COUNT=0
2073 THEN
2074   okc_Contract_pub.delete_governance(
2075    	p_api_version			=> l_api_version,
2076   	p_init_msg_list			=> l_init_msg_list,
2077      	x_return_status			=> l_return_status,
2078         x_msg_count			=> l_msg_count,
2079         x_msg_data			=> l_msg_data,
2080         p_gvev_tbl			=> l_gvev_tbl_in);
2081   if not (l_return_status = OKC_API.G_RET_STS_SUCCESS) then
2082 	l_msg_data:= 'Error while deleting governance -'||l_msg_data;
2083       return;
2084   end if;
2085 END IF;
2086 IF NOT l_line_tbl.COUNT=0
2087 THEN
2088 v_Index:=l_line_tbl.COUNT;
2089 FOR v_Index IN l_line_tbl.FIRST .. l_line_tbl.LAST
2090 LOOP
2091 l_Line_Id:=l_line_tbl(v_Index);
2092   Undo_Counters( P_KLine_Id     => l_Line_Id,
2093      	x_return_status			=> l_return_status,
2094         x_msg_data			=> l_msg_data);
2095   if not (l_return_status = OKC_API.G_RET_STS_SUCCESS) then
2096 	l_msg_data:= 'Error while deleting Counters -'||l_msg_data;
2097       return;
2098   end if;
2099 END LOOP;
2100 END IF;
2101 OKC_DELETE_CONTRACT_PUB.delete_contract(
2102 	p_api_version 		=>l_api_version,
2103 	p_init_msg_list 	=>l_init_msg_list,
2104 	x_return_status	    =>l_return_status,
2105 	x_msg_count		    =>l_msg_count,
2106 	x_msg_data		    =>l_msg_data,
2107      p_chrv_rec         =>l_chrv_rec);
2108   if not (l_return_status = OKC_API.G_RET_STS_SUCCESS) then
2109 	l_msg_data:= 'Error while deleting Header -'||l_msg_data;
2110       return;
2111   end if;
2112 x_return_status:=l_return_status;
2113 EXCEPTION
2114     WHEN e_Error THEN
2115   x_msg_count :=l_msg_count;
2116 x_msg_data:=l_msg_data;
2117 x_return_status:=l_return_status;
2118 
2119       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2120       (
2121         l_api_name,
2122         'Undo_Header',
2123         'OKC_API.G_RET_STS_ERROR',
2124         x_msg_count,
2125         x_msg_data,
2126         '_PVT'
2127       );
2128     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2129 x_msg_count :=l_msg_count;
2130 x_msg_data:=l_msg_data;
2131 
2132       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2133       (
2134         l_api_name,
2135         'Undo_Header',
2136         'OKC_API.G_RET_STS_ERROR',
2137         x_msg_count,
2138         x_msg_data,
2139         '_PVT'
2140       );
2141     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2142 x_msg_count :=l_msg_count;
2143 x_msg_data:=l_msg_data;
2144       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2145       (
2146         l_api_name,
2147         'Undo_Header',
2148         'OKC_API.G_RET_STS_UNEXP_ERROR',
2149         x_msg_count,
2150         x_msg_data,
2151         '_PVT'
2152       );
2153     WHEN OTHERS THEN
2154 
2155     OKC_API.SET_MESSAGE(
2156       p_app_name        => g_app_name,
2157       p_msg_name        => g_unexpected_Error,
2158       p_token1	        => g_sqlcode_token,
2159       p_token1_value    => sqlcode,
2160       p_token2          => g_sqlerrm_token,
2161       p_token2_value    => sqlerrm);
2162     -- notify caller of an error as UNEXPETED error
2163     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2164 x_msg_count :=l_msg_count;
2165 END Undo_Header;
2166 
2167 PROCEDURE Undo_Line(
2168     p_api_version     IN NUMBER,
2169     p_init_msg_list         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2170     x_return_status         OUT NOCOPY VARCHAR2,
2171     x_msg_count             OUT NOCOPY NUMBER,
2172     x_msg_data              OUT NOCOPY VARCHAR2,
2173     P_Line_Id               IN NUMBER) IS
2174 
2175    l_Cov_cle_Id NUMBER;
2176    l_Item_id     NUMBER;
2177    l_contact_Id NUMBER;
2178    l_RGP_Id     NUMBER;
2179    l_Rule_Id    NUMBER;
2180    l_cle_Id     NUMBER;
2181    v_Index   Binary_Integer;
2182 
2183     G_APP_NAME                              CONSTANT VARCHAR2(3)   :=OKC_API.G_APP_NAME;
2184     G_REQUIRED_VALUE                        CONSTANT VARCHAR2(200) :=OKC_API.G_REQUIRED_VALUE;
2185     G_COL_NAME_TOKEN                        CONSTANT VARCHAR2(200) :=OKC_API.G_COL_NAME_TOKEN;
2186     G_UNEXPECTED_ERROR                      CONSTANT VARCHAR2(200) :='OKS_UNEXP_ERROR';
2187     G_SQLERRM_TOKEN                         CONSTANT VARCHAR2(200) :='SQLerrm';
2188     G_SQLCODE_TOKEN                         CONSTANT VARCHAR2(200) :='SQLcode';
2189 
2190 
2191  CURSOR line_det_Cur(P_cle_Id IN NUMBER)
2192  IS SELECT id, start_date, lse_id
2193  FROM   Okc_K_Lines_b
2194  WHERE  Id=P_cle_Id;
2195 
2196  CURSOR Child_Cur(P_cle_Id IN NUMBER)
2197  IS SELECT DNZ_CHR_ID, ID
2198  FROM   Okc_K_Lines_b
2199  WHERE  cle_Id=P_cle_Id;
2200 
2201  CURSOR Child_Cur1(P_Parent_Id IN NUMBER)
2202  IS SELECT ID,DNZ_CHR_ID
2203     FROM   Okc_K_Lines_b
2204     WHERE  cle_Id=P_Parent_Id;
2205 
2206  CURSOR Child_Cur2(P_Parent_Id IN NUMBER)
2207  IS SELECT ID,DNZ_CHR_ID
2208     FROM   Okc_K_Lines_b
2209     WHERE  cle_Id=P_Parent_Id;
2210  CURSOR Child_Cur3(P_Parent_Id IN NUMBER)
2211  IS SELECT ID,DNZ_CHR_ID
2212     FROM   Okc_K_Lines_b
2213     WHERE  cle_Id=P_Parent_Id;
2214  CURSOR Child_Cur4(P_Parent_Id IN NUMBER)
2215  IS SELECT ID,DNZ_CHR_ID
2216     FROM   Okc_K_Lines_b
2217     WHERE  cle_Id=P_Parent_Id;
2218  CURSOR Child_Cur5(P_Parent_Id IN NUMBER)
2219  IS SELECT ID,DNZ_CHR_ID
2220     FROM   Okc_K_Lines_b
2221     WHERE  cle_Id=P_Parent_Id;
2222 
2223  CURSOR Item_Cur(P_Line_Id IN NUMBER)
2224  IS SELECT ID
2225     FROM   Okc_K_ITEMS
2226     WHERE  cle_Id=P_Line_Id;
2227 
2228  CURSOR  RT_Cur(P_Rule_Id IN NUMBER)
2229  IS SELECT Tve_ID
2230     FROM   OKC_React_Intervals
2231     WHERE  Rul_Id =P_Rule_Id;
2232 
2233  CURSOR Kprl_Cur(P_cle_Id IN NUMBER) IS
2234  SELECT pr.ID FROM OKC_K_PARTY_ROLES_B pr
2235    ,OKC_K_LINES_V lv
2236  WHERE  pr.cle_Id=P_cle_Id
2237  And    pr.cle_id = lv.id
2238  And    pr.dnz_chr_id = lv.dnz_chr_id;
2239 
2240  CURSOR Contact_Cur(P_cpl_Id IN NUMBER) IS
2241  SELECT ID FROM OKC_CONTACTS
2242  WHERE  cpl_Id=P_cpl_Id;
2243 
2244 /*
2245  CURSOR TRule_Cur( P_Rgp_Id IN NUMBER,
2246                    P_Rule_Type IN Varchar2) IS
2247   SELECT ID FROM OKC_RULES_B
2248   WHERE  Rgp_Id=P_Rgp_Id
2249   AND    Rule_Information_category=P_rule_Type;
2250 
2251  CURSOR Rl_Cur(P_Rgp_Id IN NUMBER) IS
2252   SELECT ID FROM OKC_RULES_B
2253   WHERE  Rgp_Id=P_Rgp_Id;
2254 
2255  CURSOR Rgp_Cur(P_cle_Id IN NUMBER) IS
2256   SELECT ID FROM OKC_RULE_GROUPS_B
2257   WHERE  cle_Id=P_Cle_Id;
2258 */
2259 
2260  CURSOR  Relobj_Cur(P_Cle_Id IN NUMBER) IS
2261   SELECT Id FROM OKC_K_REL_OBJS_V
2262   WHERE  cle_Id = P_cle_Id;
2263 
2264  CURSOR  OrderDetails_Cur(P_CHR_ID IN NUMBER,P_Cle_Id IN NUMBER) IS
2265   SELECT Id FROM OKS_K_ORDER_DETAILS_V
2266   WHERE chr_id = p_chr_id
2267   AND   cle_Id = P_cle_Id;
2268 
2269  CURSOR  SalesCredits_Cur(P_Cle_Id IN NUMBER) IS
2270   SELECT Id FROM OKS_K_SALES_CREDITS_V
2271   WHERE  cle_Id = P_cle_Id;
2272 
2273  CURSOR  OrderContacts_Cur(P_Cod_Id IN NUMBER) IS
2274   SELECT Id FROM OKS_K_Order_Contacts_V
2275   WHERE  cod_Id = P_cod_Id;
2276 
2277 --03/16/04 chkrishn removed for rules rearchitecture
2278 /*    CURSOR CUR_GET_SCH(p_cov_id IN NUMBER) IS
2279     SELECT ID FROM OKS_PM_SCHEDULES
2280     WHERE CLE_ID = p_cov_id;
2281 
2282    l_pm_schedules_v_tbl  OKS_PMS_PVT.oks_pm_schedules_v_tbl_type ;
2283    l_sch_index NUMBER := 0;*/
2284 
2285    CURSOR CUR_GET_BRS_ID(p_service_line_id IN NUMBER) IS
2286     SELECT  BRS.ID BRS_LINE_ID
2287     FROM    OKC_K_LINES_B LINES1,
2288             OKC_K_LINES_B LINES2,
2289             OKC_K_LINES_B LINES3,
2290             OKC_K_LINES_B LINES4,
2291             OKS_BILLRATE_SCHEDULES BRS
2292     WHERE   LINES1.CLE_ID = p_service_line_id
2293     AND     lines2.cle_id = lines1.id
2294     AND     lines3.cle_id = lines2.id
2295     AND     lines4.cle_id = lines3.id
2296     AND     lines1.lse_id in (2,15,20)
2297     AND     lines2.lse_id in (3,16,21)
2298     AND     lines3.lse_id in (5,23,59)
2299     AND     lines4.lse_id in (6,24,60)
2300     AND     brs.cle_id = lines4.id
2301     AND     brs.dnz_chr_id = lines1.dnz_chr_id ;
2302 
2303 --05/17/04 chkrishn Added for deleting notes
2304 -- Commented by Jvorugan
2305 -- Bugno:4535339.
2306 -- From R12, notes and PM will be deleted when the serviceline id is deleted and not with the coverage.
2307 /*
2308     CURSOR Cur_Service_line(p_cle_id IN NUMBER) IS
2309     SELECT cle_id
2310     from okc_k_lines_b
2311     where id=p_cle_id
2312     and lse_id in (2,15,20);
2313 
2314     l_service_line_id NUMBER;
2315 
2316     CURSOR Cur_Get_notes(p_source_object_id IN Number) IS
2317       SELECT jtf_note_id
2318       FROM JTF_NOTES_VL
2319       WHERE source_object_id = p_source_object_id
2320       AND   source_object_code = 'OKS_COV_NOTE';
2321  */
2322 -- End of Bug:4535339 by Jvorugan
2323 
2324     CURSOR k_line_cur(p_ID IN NUMBER,p_DNZ_CHR_ID IN NUMBER) IS
2325         SELECT ID,DNZ_CHR_ID
2326         FROM    oks_k_lines_b
2327         WHERE   cle_id = p_Id
2328         AND     dnz_chr_id = p_dnz_chr_id;
2329 
2330     CURSOR  Time_Zone_Csr (p_ID IN NUMBER,p_DNZ_CHR_ID IN NUMBER) IS
2331             SELECT  ID,CLE_ID,DNZ_CHR_ID
2332             FROM    oks_coverage_timezones
2333             WHERE   cle_id  =   p_iD
2334             AND     dnz_chr_id =p_dnz_chr_id;
2335 
2336 
2337     CURSOR Cov_Time_Csr (p_ID IN NUMBER,p_DNZ_CHR_ID IN NUMBER) IS
2338             SELECT ID,DNZ_CHR_ID
2339             FROM    OKS_COVERAGE_TIMES
2340             WHERE   COV_TZE_LINE_ID = p_id
2341             AND     dnz_chr_id =p_dnz_chr_id;
2342 
2343     CURSOR Action_type_Csr (p_ID IN NUMBER,p_DNZ_CHR_ID IN NUMBER) IS
2344             SELECT  ID,DNZ_CHR_ID
2345             FROM    OKS_ACTION_TIME_TYPES
2346             WHERE   cle_id  =   p_iD
2347             AND     dnz_chr_id =p_dnz_chr_id;
2348 
2349     CURSOR Action_times_Csr (p_ID IN NUMBER,p_DNZ_CHR_ID IN NUMBER) IS
2350             SELECT  ID,DNZ_CHR_ID
2351             FROM    OKS_ACTION_TIMES
2352             WHERE   COV_ACTION_TYPE_ID  = p_id
2353             AND     dnz_chr_id =p_dnz_chr_id;
2354 
2355     CURSOR  Bill_Rate_Csr (p_ID IN NUMBER,p_DNZ_CHR_ID IN NUMBER) IS
2356             SELECT  ID,DNZ_CHR_ID
2357             FROM    OKS_BILLRATE_SCHEDULES
2358             WHERE   CLE_ID  = p_id
2359             AND     dnz_chr_id =p_dnz_chr_id;
2360 
2361 l_brs_tbl_in   OKS_BRS_PVT.OksBillrateSchedulesVTblType;
2362 
2363 l_brs_id     NUMBER;
2364 l_line_id    NUMBER;
2365 
2366 
2367 
2368   n NUMBER:=0;
2369   l_cov_id  NUMBER;
2370   line_det_rec          line_det_Cur%ROWTYPE;
2371   line_det_rec2          line_det_Cur%ROWTYPE;
2372   l_child_cur_rec       Child_cur%rowtype;
2373   l_clev_tbl_in         okc_contract_pub.clev_tbl_type;
2374   l_clev_tbl_tmp        okc_contract_pub.clev_tbl_type;
2375 
2376   l_cimv_tbl_in         okc_Contract_Item_Pub.cimv_tbl_TYPE;
2377   l_ctcv_tbl_in  okc_contract_party_pub.ctcv_tbl_type;
2378   l_cplv_tbl_in  okc_contract_party_pub.cplv_tbl_type;
2379   l_crjv_tbl_in  okc_k_rel_objs_pub.crjv_tbl_type;
2380   l_cocv_tbl_in         oks_Order_Contacts_Pub.cocv_tbl_TYPE;
2381   l_codv_tbl_in  oks_Order_Details_pub.codv_tbl_type;
2382   l_scrv_tbl_in  oks_Sales_Credit_pub.scrv_tbl_type;
2383 
2384   l_klev_tbl_in     oks_kln_pvt.klnv_tbl_type;
2385   l_tzev_tbl_in     OKS_CTZ_PVT.OksCoverageTimezonesVTblType;
2386   l_cvtv_tbl_in     OKS_CVT_PVT.oks_coverage_times_v_tbl_type;
2387   l_actv_tbl_in     OKS_ACT_PVT.OksActionTimeTypesVTblType;
2388   l_acmv_tbl_in     OKS_ACM_PVT.oks_action_times_v_tbl_type;
2389   l_brsv_tbl_in     OKS_BRS_PVT.OksBillrateSchedulesVTblType;
2390 
2391 
2392   l_api_version  CONSTANT NUMBER      := 1.0;
2393   l_init_msg_list CONSTANT VARCHAR2(1) := 'T';
2394   l_return_status VARCHAR2(1);
2395   l_msg_count  NUMBER;
2396   l_msg_data  VARCHAR2(2000):=null;
2397   l_msg_index_out       Number;
2398   l_api_name            CONSTANT VARCHAR2(30) := 'Undo Line';
2399   --l_catv_tbl_in  okc_k_article_pub.catv_tbl_type;
2400   e_error               Exception;
2401 
2402   c_clev NUMBER:=1;
2403   c_rulv NUMBER:=1;
2404   c_rgpv NUMBER:=1;
2405   c_cimv NUMBER:=1;
2406   c_ctcv NUMBER:=1;
2407   c_catv NUMBER:=1;
2408   c_cplv NUMBER:=1;
2409   c_crjv NUMBER:=1;
2410   l_lse_Id NUMBER;
2411   c_cocv NUMBER:=1;
2412   c_codv NUMBER:=1;
2413   c_scrv NUMBER:=1;
2414 
2415   k_clev NUMBER:=1;
2416   l_tzev NUMBER:=1;
2417   l_cvtv NUMBER:=1;
2418   l_actv NUMBER:=1;
2419   l_acmv NUMBER:=1;
2420   l_brsv NUMBER:=1;
2421   l_id   NUMBER;
2422   l_pm_cle_id  NUMBER := NULL;
2423 
2424   l_dummy_terminate_date  DATE;
2425   l_line_type             NUMBER;
2426 
2427  FUNCTION Bp_Check(P_rgp_Id IN NUMBER)
2428  RETURN BOOLEAN  IS
2429    CURSOR GetLse_Cur IS
2430    SELECT kl.lse_ID
2431    from okc_k_Lines_v kl,
2432         okc_rule_groups_v rg
2433    where kl.id = rg.cle_id
2434    and   rg.id = P_rgp_Id;
2435 
2436 
2437  BEGIN
2438 
2439    OPEN GetLse_Cur;
2440    FETCH GetLse_Cur INTO l_Lse_Id;
2441     IF NOT GetLse_Cur%FOUND
2442     THEN l_Lse_Id:=NULL;
2443     END IF;
2444    CLOSE GetLse_Cur;
2445    IF l_lse_Id IN (3,16,21)
2446     THEN RETURN TRUE;
2447    ELSE RETURN FALSE;
2448    END IF;
2449  END Bp_Check;
2450 
2451 
2452 BEGIN
2453 
2454 IF (G_DEBUG_ENABLED = 'Y') THEN
2455          okc_debug.Set_Indentation('Undo_Line');
2456          okc_debug.log('Entered Undo_Line', 2);
2457 END IF;
2458 
2459 
2460 
2461 -- Commented by Jvorugan for Coverage Rearchitecture.
2462 -- From R12, notes and PM will be deleted when the serviceline id is deleted and not with the coverage.
2463 -- Bugno:4535339
2464 /*    OPEN line_det_cur(p_line_id);
2465         FETCH line_det_cur INTO line_det_rec2;
2466             IF (line_det_rec2.lse_id = 2) OR (line_det_rec2.lse_id = 14)
2467             THEN
2468                 l_pm_cle_id := line_det_rec2.ID;
2469             END IF;
2470     CLOSE line_det_cur;
2471  */
2472 -- End of Bug:4535339 by Jvorugan
2473 
2474 x_return_status:=OKC_API.G_Ret_Sts_Success;
2475 
2476 OKS_COVERAGES_PVT.Validate_Line_id(p_line_id,l_return_status);
2477 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
2478 -- IF NOT l_Return_Status ='S' THEN
2479      RETURN;
2480 END IF;
2481 
2482 l_clev_tbl_tmp(c_clev).ID:=P_Line_Id;
2483 
2484 
2485  l_line_id := p_line_id ;
2486 
2487 --05/17/2004 chkrishn added for deleting notes
2488 -- Commented by Jvorugan for Coverage Rearchitecture.
2489 -- From R12, notes and PM will be deleted when the serviceline id is deleted and not with the coverage.
2490 -- Bugno:4535339
2491 /*
2492  OPEN Cur_Service_line(p_line_id);
2493  FETCH Cur_Service_line INTO l_service_line_id;
2494  CLOSE  Cur_Service_line;
2495 
2496  FOR note_rec IN Cur_Get_notes(l_service_line_id)
2497 LOOP
2498 JTF_NOTES_PUB.Secure_Delete_note
2499 ( p_api_version           => l_api_version,
2500   p_init_msg_list         =>  l_init_msg_list,   --         VARCHAR2 DEFAULT 'F'
2501   p_commit                => 'F',  --IN            VARCHAR2 DEFAULT 'F'
2502   p_validation_level     => 100, --IN            NUMBER   DEFAULT 100
2503   x_return_status        => l_return_status , -- OUT NOCOPY VARCHAR2
2504   x_msg_count            => l_msg_count, -- OUT NOCOPY NUMBER
2505   x_msg_data             => l_msg_data , --  OUT NOCOPY VARCHAR2
2506   p_jtf_note_id          => note_rec.jtf_note_id,
2507   p_use_AOL_security     => 'F' --IN            VARCHAR2 DEFAULT 'T'
2508 );
2509 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
2510    RAISE e_Error;
2511 END IF;
2512 END LOOP;
2513 
2514 */
2515 
2516 -- End of Bug:4535339 by Jvorugan
2517 
2518 IF (G_DEBUG_ENABLED = 'Y') THEN
2519          okc_debug.log('Before BRS_REC', 2);
2520 END IF;
2521 
2522 
2523 FOR BRS_REC IN CUR_GET_BRS_ID(l_line_id) LOOP
2524 
2525 OKS_COVERAGES_PVT.INIT_BILL_RATE_LINE(l_brs_tbl_in);
2526 l_brs_id:= brs_rec.brs_line_id ;
2527 l_brs_tbl_in(1).id := l_brs_id ;
2528 
2529 
2530 
2531 
2532 
2533 OKS_BRS_PVT.delete_row(
2534     p_api_version                   => l_api_version,
2535     p_init_msg_list                 => l_init_msg_list,
2536     x_return_status                 => l_return_status,
2537     x_msg_count                     => l_msg_count,
2538     x_msg_data                      => l_msg_data,
2539     p_oks_billrate_schedules_v_tbl  => l_brs_tbl_in);
2540 
2541     if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)   then
2542         RAISE e_Error;
2543     end if;
2544 
2545 
2546 END LOOP ;
2547 
2548 IF (G_DEBUG_ENABLED = 'Y') THEN
2549          okc_debug.log('After OKS_BRS_PVT delete_row', 2);
2550 END IF;
2551 
2552 OPEN Child_Cur(P_line_id);
2553 
2554 FETCH Child_Cur into l_child_cur_rec;
2555 l_clev_tbl_tmp(c_clev).DNZ_CHR_ID := l_child_cur_rec.dnz_chr_id;
2556 l_cov_id:= l_child_cur_rec.id ;
2557 
2558 CLOSE Child_cur;
2559 
2560 c_clev:=c_clev+1;
2561     FOR Child_Rec1 IN Child_Cur1(P_Line_Id) LOOP
2562         l_clev_tbl_tmp(c_clev).ID:=Child_Rec1.ID;
2563         l_clev_tbl_tmp(c_clev).DNZ_CHR_ID:=Child_Rec1.DNZ_CHR_ID;
2564         c_clev:=c_clev+1;
2565     FOR Child_Rec2 IN Child_Cur2(Child_Rec1.Id)  LOOP
2566          l_clev_tbl_tmp(c_clev).ID:=Child_Rec2.Id;
2567          l_clev_tbl_tmp(c_clev).DNZ_CHR_ID:=Child_Rec2.DNZ_CHR_ID;
2568          c_clev:=c_clev+1;
2569     FOR Child_Rec3 IN Child_Cur3(Child_Rec2.Id) LOOP
2570         l_clev_tbl_tmp(c_clev).ID:=Child_Rec3.Id;
2571         l_clev_tbl_tmp(c_clev).DNZ_CHR_ID:=Child_Rec3.DNZ_CHR_ID;
2572         c_clev:=c_clev+1;
2573     FOR Child_Rec4 IN Child_Cur4(Child_Rec3.Id)  LOOP
2574        l_clev_tbl_tmp(c_clev).ID:=Child_Rec4.Id;
2575        l_clev_tbl_tmp(c_clev).DNZ_CHR_ID:=Child_Rec4.DNZ_CHR_ID;
2576               c_clev:=c_clev+1;
2577     FOR Child_Rec5 IN Child_Cur5(Child_Rec4.Id)      LOOP
2578                 l_clev_tbl_tmp(c_clev).ID:=Child_Rec5.Id;
2579                 l_clev_tbl_tmp(c_clev).DNZ_CHR_ID:=Child_Rec5.DNZ_CHR_ID;
2580                 c_clev:=c_clev+1;
2581     END LOOP;
2582     END LOOP;
2583     END LOOP;
2584     END LOOP;
2585 END LOOP;
2586 c_clev:=1;
2587 
2588 FOR v_Index IN REVERSE l_clev_tbl_tmp.FIRST .. l_clev_tbl_tmp.LAST LOOP
2589 
2590     l_clev_tbl_in(c_clev).ID            :=  l_clev_tbl_tmp(v_Index).ID;
2591     l_clev_tbl_in(c_clev).DNZ_CHR_ID    :=  l_clev_tbl_tmp(v_Index).DNZ_CHR_ID;
2592     c_clev:=c_Clev+1;
2593 END LOOP;
2594 
2595 --==============================================================================
2596 
2597 FOR k_index IN l_clev_tbl_in.FIRST .. l_clev_tbl_in.LAST LOOP
2598 
2599     FOR k_line_rec in k_line_cur(l_clev_tbl_in(k_index).ID,l_clev_tbl_in(k_index).DNZ_CHR_ID)
2600 LOOP
2601 
2602         l_klev_tbl_in(k_clev).ID:= k_line_rec.ID;
2603         l_klev_tbl_in(k_clev).DNZ_CHR_ID:= k_line_rec.DNZ_CHR_ID;
2604         k_clev := k_clev + 1;
2605 
2606     END LOOP;
2607 
2608 
2609 END LOOP;
2610 
2611 FOR TZ_index IN l_clev_tbl_in.FIRST .. l_clev_tbl_in.LAST LOOP
2612 
2613     FOR Time_Zone_Rec IN Time_Zone_Csr
2614 (l_clev_tbl_in(TZ_index).ID,l_clev_tbl_in(TZ_index).DNZ_CHR_ID)  LOOP
2615 
2616         l_tzev_tbl_in(l_tzev).ID            :=  Time_Zone_Rec.ID;
2617         l_tzev_tbl_in(l_tzev).DNZ_CHR_ID    :=  Time_Zone_Rec.DNZ_CHR_ID;
2618 
2619         l_tzev  := l_tzev + 1;
2620     END LOOP;
2621 END LOOP;
2622 
2623 
2624 IF l_tzev_tbl_in.COUNT > 0 THEN
2625     FOR TI_index IN l_tzev_tbl_in.FIRST .. l_tzev_tbl_in.LAST LOOP
2626 
2627         FOR Cov_Time_Rec IN Cov_Time_Csr(l_tzev_tbl_in(TI_index).Id,l_tzev_tbl_in(TI_index).DNZ_CHR_Id) LOOP
2628             l_cvtv_tbl_in(l_cvtv).ID            :=  Cov_Time_Rec.ID;
2629             l_cvtv_tbl_in(l_cvtv).DNZ_CHR_ID    :=  Cov_Time_Rec.DNZ_CHR_ID;
2630             l_cvtv := l_cvtv + 1;
2631         END LOOP;
2632 
2633     END LOOP;
2634 
2635 
2636 END IF;
2637 
2638 
2639 
2640 FOR Ac_index IN l_clev_tbl_in.FIRST .. l_clev_tbl_in.LAST LOOP
2641 
2642     FOR Action_type_Rec IN Action_type_Csr(l_clev_tbl_in(Ac_index).ID,l_clev_tbl_in(Ac_index).DNZ_CHR_ID)  LOOP
2643 
2644         l_actv_tbl_in(l_actv).ID            :=  Action_type_Rec.ID;
2645         l_actv_tbl_in(l_actv).DNZ_CHR_ID    :=  Action_type_Rec.DNZ_CHR_ID;
2646 
2647         l_actv   := l_actv  + 1;
2648     END LOOP;
2649 END LOOP;
2650 
2651 IF l_actv_tbl_in.COUNT > 0 THEN
2652     FOR At_index IN l_actv_tbl_in.FIRST .. l_actv_tbl_in.LAST LOOP
2653         FOR Action_times_Rec IN Action_times_Csr(l_actv_tbl_in(At_index).ID,l_actv_tbl_in(At_index).DNZ_CHR_ID)  LOOP
2654 
2655             l_acmv_tbl_in(l_acmv).ID            :=  Action_times_Rec.ID;
2656             l_acmv_tbl_in(l_acmv).DNZ_CHR_ID    :=  Action_times_Rec.DNZ_CHR_ID;
2657 
2658             l_acmv   := l_acmv  + 1;
2659 
2660         END LOOP;
2661 
2662     END LOOP;
2663 
2664 END IF;
2665 
2666 
2667 
2668 IF l_clev_tbl_in.COUNT > 0 THEN
2669 
2670     FOR Br_index IN l_clev_tbl_in.FIRST .. l_clev_tbl_in.LAST LOOP
2671 
2672 
2673         FOR Bill_Rate_Rec IN Bill_Rate_Csr
2674 (l_clev_tbl_in(Br_index).Id,l_clev_tbl_in(Br_index).DNZ_CHR_Id) LOOP
2675 
2676       l_brsv_tbl_in(l_brsv).ID    :=  Bill_Rate_Rec.ID;
2677             l_brsv_tbl_in(l_brsv).DNZ_CHR_ID    :=
2678 Bill_Rate_Rec.DNZ_CHR_ID;
2679             l_brsv := l_brsv + 1;
2680 
2681         END LOOP;
2682 
2683     END LOOP;
2684 
2685 
2686 END IF;
2687 
2688 -- Commented by Jvorugan for Coverage Rearchitecture.
2689 -- From R12, notes and PM will be deleted when the serviceline id is deleted and not with the coverage.
2690 -- Bugno:4535339
2691 
2692 /*
2693 
2694 IF (G_DEBUG_ENABLED = 'Y') THEN
2695         okc_debug.log('BEFORE OKS_PM_PROGRAMS_PVT UNDO_PM_LINE', 2);
2696 
2697 END IF;
2698 
2699 
2700 
2701 
2702 IF l_pm_cle_id IS NOT NULL THEN
2703 
2704 
2705         OKS_PM_PROGRAMS_PVT.UNDO_PM_LINE(
2706         p_api_version                   =>l_api_version,
2707         p_init_msg_list                 =>l_init_msg_list,
2708         x_return_status                 =>l_return_status,
2709         x_msg_count                     =>l_msg_count,
2710         x_msg_data                      =>l_msg_data,
2711         p_cle_id                        =>l_pm_cle_id);
2712 
2713 --chkrishn 03/17/04 exception handling
2714     IF  NOT (l_return_status = OKC_API.G_RET_STS_SUCCESS)   then
2715       return;
2716     END IF;
2717 
2718 
2719 END IF;
2720 
2721 */
2722 -- End of Bug:4535339 by Jvorugan
2723 
2724 IF l_brsv_tbl_in.COUNT > 0 THEN
2725 
2726         OKS_BRS_PVT.delete_row(
2727                 p_api_version                   => l_api_version,
2728                 p_init_msg_list                 => l_init_msg_list,
2729                 x_return_status                 => l_return_status,
2730                 x_msg_count                     => l_msg_count,
2731                 x_msg_data                      => l_msg_data,
2732                 p_oks_billrate_schedules_v_tbl  => l_brsv_tbl_in);
2733 
2734 
2735 
2736     IF  NOT (l_return_status = OKC_API.G_RET_STS_SUCCESS)   then
2737       return;
2738     END IF;
2739 
2740 END IF;
2741 
2742 
2743 IF l_klev_tbl_in.COUNT > 0 THEN
2744 
2745 OKS_KLN_PVT.delete_row(
2746                     p_api_version   => l_api_version,
2747                     p_init_msg_list  => l_init_msg_list,
2748                     x_return_status  => l_return_status,
2749                     x_msg_count   => l_msg_count,
2750                     x_msg_data   => l_msg_data,
2751                     p_klnv_tbl      =>  l_klev_tbl_in);
2752 
2753 
2754     IF  NOT (l_return_status = OKC_API.G_RET_STS_SUCCESS)   then
2755       return;
2756     END IF;
2757 
2758 END IF;
2759 
2760 IF l_cvtv_tbl_in.COUNT > 0 THEN
2761 
2762     OKS_CVT_PVT.delete_row(
2763                 p_api_version                   =>l_api_version,
2764                 p_init_msg_list                 =>l_init_msg_list,
2765                 x_return_status                 =>l_return_status,
2766                 x_msg_count                     => l_msg_count,
2767                 x_msg_data                      => l_msg_data,
2768                 p_oks_coverage_times_v_tbl      =>l_cvtv_tbl_in);
2769 
2770 
2771 
2772     IF  NOT (l_return_status = OKC_API.G_RET_STS_SUCCESS)   then
2773       return;
2774     END IF;
2775 END IF;
2776 
2777 IF l_tzev_tbl_in.COUNT > 0 THEN
2778     OKS_CTZ_PVT.delete_row(
2779                 p_api_version                   =>  l_api_version,
2780                 p_init_msg_list                 =>  l_init_msg_list,
2781                 x_return_status                 =>  l_return_status,
2782                 x_msg_count                     =>  l_msg_count,
2783                 x_msg_data                      =>  l_msg_data,
2784                 p_oks_coverage_timezones_v_tbl  =>  l_tzev_tbl_in);
2785 
2786 
2787     IF  NOT (l_return_status = OKC_API.G_RET_STS_SUCCESS)   then
2788       return;
2789     END IF;
2790 
2791 END IF;
2792 
2793 IF (G_DEBUG_ENABLED = 'Y') THEN
2794         okc_debug.log('AFTER OKS_CTZ_PVT  delete_row', 2);
2795 
2796 END IF;
2797 
2798 
2799 IF l_acmv_tbl_in.COUNT > 0 THEN
2800 
2801         OKS_ACM_PVT.delete_row(
2802         p_api_version                   =>  l_api_version,
2803         p_init_msg_list                 =>  l_init_msg_list,
2804         x_return_status                 =>  l_return_status,
2805         x_msg_count                     =>  l_msg_count,
2806         x_msg_data                      =>  l_msg_data,
2807         p_oks_action_times_v_tbl        =>  l_acmv_tbl_in);
2808 
2809 
2810     IF  NOT (l_return_status = OKC_API.G_RET_STS_SUCCESS)   then
2811       return;
2812     END IF;
2813 END IF;
2814 
2815 
2816 IF (G_DEBUG_ENABLED = 'Y') THEN
2817         okc_debug.log('AFTER OKS_ACM_PVT  delete_row', 2);
2818 
2819 END IF;
2820 
2821 IF l_actv_tbl_in.COUNT > 0 THEN
2822 
2823         OKS_ACT_PVT.delete_row(
2824                 p_api_version                   =>  l_api_version,
2825                 p_init_msg_list                 =>  l_init_msg_list,
2826                 x_return_status                 =>  l_return_status,
2827                 x_msg_count                     =>  l_msg_count,
2828                 x_msg_data                      =>  l_msg_data,
2829                 p_oks_action_time_types_v_tbl   =>  l_actv_tbl_in);
2830 
2831 
2832 
2833     IF  NOT (l_return_status = OKC_API.G_RET_STS_SUCCESS)   then
2834       return;
2835     END IF;
2836 
2837 IF (G_DEBUG_ENABLED = 'Y') THEN
2838         okc_debug.log('AFTER OKS_ACT_PVT  delete_row', 2);
2839 
2840 END IF;
2841 
2842 END IF;
2843 --=============================================================================
2844 
2845 -- Get Relational Objects Linked to the lines
2846 FOR v_Index IN l_clev_tbl_in.FIRST .. l_clev_tbl_in.LAST
2847 LOOP
2848   FOR RelObj_REC IN RelObj_Cur(l_clev_tbl_in(v_Index).ID)
2849   LOOP
2850       l_crjv_tbl_in(c_crjv).ID:= RelObj_Rec.Id;
2851       c_crjv:=c_crjv+1;
2852   END LOOP;
2853 
2854   FOR OrderDetails_REC IN
2855 OrderDetails_Cur(l_clev_tbl_in(v_Index).DNZ_CHR_ID,l_clev_tbl_in(v_Index).ID)
2856 
2857   LOOP
2858       l_codv_tbl_in(c_codv).ID:= OrderDetails_Rec.Id;
2859       FOR OrderContacts_REC IN
2860 OrderContacts_Cur(l_codv_tbl_in(c_codv).ID)
2861       LOOP
2862           l_cocv_tbl_in(c_cocv).ID:= OrderContacts_Rec.Id;
2863           c_cocv:=c_cocv+1;
2864       END LOOP;
2865       c_codv:=c_codv+1;
2866   END LOOP;
2867   FOR SalesCredits_REC IN SalesCredits_Cur(l_clev_tbl_in(v_Index).ID)
2868   LOOP
2869       l_scrv_tbl_in(c_scrv).ID:= SalesCredits_Rec.Id;
2870       c_scrv:=c_scrv+1;
2871   END LOOP;
2872 
2873 END LOOP;
2874 
2875 
2876 
2877 -- Get Items
2878 FOR v_Index IN l_clev_tbl_in.FIRST .. l_clev_tbl_in.LAST
2879 LOOP
2880   FOR ITEM_REC IN Item_Cur(l_clev_tbl_in(v_Index).ID)
2881   LOOP
2882       l_cimv_tbl_in(c_cimv).ID:= Item_Rec.Id;
2883       c_cimv:=c_cimv+1;
2884   END LOOP;
2885 END LOOP;
2886 -- GET K Party Roles and Contacts
2887 FOR v_Index IN l_clev_tbl_in.FIRST .. l_clev_tbl_in.LAST
2888 LOOP
2889   FOR Kprl_REC IN Kprl_Cur(l_clev_tbl_in(v_Index).ID)
2890   LOOP
2891       l_cplv_tbl_in(c_cplv).id:=Kprl_Rec.ID;
2892       c_cplv:=c_cplv+1;
2893       FOR Contact_Rec IN Contact_Cur(Kprl_Rec.id)
2894       LOOP
2895        l_ctcv_tbl_in(c_ctcv).id:= Contact_Rec.Id;
2896        c_ctcv:=c_ctcv+1;
2897       END LOOP;
2898   END LOOP;
2899 END LOOP;
2900 
2901 IF NOT l_cocv_tbl_in.COUNT=0 THEN
2902 
2903 OKS_ORDER_CONTACTS_PUB.Delete_Order_Contact(
2904       p_api_version   => l_api_version,
2905      p_init_msg_list  => l_init_msg_list,
2906         x_return_status  => l_return_status,
2907           x_msg_count   => l_msg_count,
2908           x_msg_data   => l_msg_data,
2909           p_cocv_tbl   => l_cocv_tbl_in);
2910 
2911    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
2912    then
2913       return;
2914    end if;
2915 END IF;
2916 
2917 
2918 IF (G_DEBUG_ENABLED = 'Y') THEN
2919         okc_debug.log('AFTER OKS_ORDER_CONTACTS_PUB  delete_order_contract', 2);
2920 
2921 END IF;
2922 
2923 
2924 IF NOT l_codv_tbl_in.COUNT=0
2925 THEN
2926 
2927 OKS_ORDER_DETAILS_PUB.Delete_Order_Detail(
2928       p_api_version   => l_api_version,
2929      p_init_msg_list  => l_init_msg_list,
2930         x_return_status  => l_return_status,
2931           x_msg_count   => l_msg_count,
2932           x_msg_data   => l_msg_data,
2933           p_codv_tbl   => l_codv_tbl_in);
2934 
2935    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
2936    then
2937       return;
2938    end if;
2939 END IF;
2940 
2941 
2942 IF (G_DEBUG_ENABLED = 'Y') THEN
2943         okc_debug.log('AFTER OKS_ORDER_DETAILS_PUB  delete_order_detail', 2);
2944 
2945 END IF;
2946 
2947 
2948 IF NOT l_scrv_tbl_in.COUNT=0
2949 THEN
2950 
2951 OKS_SALES_CREDIT_PUB.Delete_Sales_Credit(
2952       p_api_version   => l_api_version,
2953      p_init_msg_list  => l_init_msg_list,
2954         x_return_status  => l_return_status,
2955           x_msg_count   => l_msg_count,
2956           x_msg_data   => l_msg_data,
2957           p_scrv_tbl   => l_scrv_tbl_in);
2958 
2959    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
2960    then
2961       return;
2962    end if;
2963 END IF;
2964 
2965 
2966 
2967 IF (G_DEBUG_ENABLED = 'Y') THEN
2968         okc_debug.log('AFTER OKS_SALES_CREDIT_PUB Delete_Sales_Credit', 2);
2969 
2970 END IF;
2971 
2972 
2973 IF NOT l_crjv_tbl_in.COUNT=0
2974 THEN
2975 
2976 OKC_K_REL_OBJS_PUB.Delete_Row(
2977       p_api_version   => l_api_version,
2978      p_init_msg_list  => l_init_msg_list,
2979         x_return_status  => l_return_status,
2980           x_msg_count   => l_msg_count,
2981           x_msg_data   => l_msg_data,
2982           p_crjv_tbl   => l_crjv_tbl_in);
2983 
2984    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
2985    then
2986       return;
2987    end if;
2988 END IF;
2989 
2990 IF (G_DEBUG_ENABLED = 'Y') THEN
2991         okc_debug.log('AFTER OKC_K_REL_OBJS_PUB Delete_Row', 2);
2992 
2993 END IF;
2994 
2995 
2996 
2997 IF NOT l_ctcv_tbl_in.COUNT=0
2998 THEN
2999 OKC_CONTRACT_PARTY_PUB.Delete_Contact(
3000       p_api_version   => l_api_version,
3001      p_init_msg_list  => l_init_msg_list,
3002         x_return_status  => l_return_status,
3003           x_msg_count   => l_msg_count,
3004           x_msg_data   => l_msg_data,
3005           p_ctcv_tbl   => l_ctcv_tbl_in);
3006 
3007    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
3008    then
3009       return;
3010    end if;
3011 END IF;
3012 IF NOT l_cplv_tbl_in.COUNT=0
3013 THEN
3014 OKC_CONTRACT_PARTY_PUB.Delete_k_Party_Role(
3015       p_api_version   => l_api_version,
3016      p_init_msg_list  => l_init_msg_list,
3017         x_return_status  => l_return_status,
3018           x_msg_count   => l_msg_count,
3019           x_msg_data   => l_msg_data,
3020           p_cplv_tbl   => l_cplv_tbl_in);
3021 
3022    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
3023    then
3024       return;
3025    end if;
3026 END IF;
3027 
3028 
3029 --IF NOT l_rulv_tbl_in.COUNT=0 THEN
3030   -------delete level elements before deleting rules.
3031 
3032   OPEN line_det_cur(p_line_id);
3033   FETCH line_det_cur INTO line_det_rec;
3034 
3035   l_dummy_terminate_date := line_det_rec.start_date - 1;
3036 
3037   IF line_det_rec.lse_id = 1 OR line_det_rec.lse_id = 12 OR
3038 line_det_rec.lse_id = 14
3039     OR line_det_rec.lse_id = 19 THEN
3040 
3041     l_line_type := 1;             --1 for TOP line
3042   ELSE
3043 
3044     l_line_type := 2;             --2 for covered level
3045   END IF;
3046 
3047   CLOSE line_det_cur;
3048 
3049   OKS_BILL_UTIL_PUB.pre_del_level_elements(
3050                             p_api_version       => l_api_version,
3051                             p_terminated_date   =>
3052 l_dummy_terminate_date,
3053                             p_id                => P_line_id ,
3054                             p_flag              => l_line_type,
3055                             x_return_status     => l_return_status);
3056 
3057   IF NOT nvl(l_return_status,'S') = OKC_API.G_RET_STS_SUCCESS THEN
3058      x_return_status := OKC_API.G_RET_STS_ERROR;
3059 
3060 OKC_API.Set_Message(G_APP_NAME,G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'ERROR
3061 IN DELETING LEVEL_ELEMENTS');
3062      RETURN;
3063   END IF;
3064 
3065 
3066 --03/16/04 chkrishn removed for rules rearchitecture. Replaced with call to oks_pm_programs_pvt.undo_pm_line
3067   -- call the schedule deletion API
3068 
3069 /*
3070 FOR C1 IN CUR_GET_SCH(l_cov_id)
3071  LOOP
3072   l_sch_index:= l_sch_index + 1 ;
3073   l_pm_schedules_v_tbl(l_sch_index).id:= C1.ID;
3074   END LOOP ;
3075 
3076 IF l_pm_schedules_v_tbl.count  <> 0 then
3077   OKS_PMS_PVT.delete_row(
3078     p_api_version   => l_api_version,
3079     p_init_msg_list  => l_init_msg_list,
3080     x_return_status  => l_return_status,
3081     x_msg_count   => l_msg_count,
3082     x_msg_data   => l_msg_data,
3083     p_oks_pm_schedules_v_tbl    =>   l_pm_schedules_v_tbl);
3084 END IF ;
3085 
3086   IF NOT nvl(l_return_status,'S') = OKC_API.G_RET_STS_SUCCESS THEN
3087      x_return_status := OKC_API.G_RET_STS_ERROR;
3088 
3089 OKC_API.Set_Message(G_APP_NAME,G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'ERROR
3090 IN DELETING PM_SCHEDULES');
3091      RETURN;
3092   END IF;
3093 */
3094 
3095 IF NOT l_cimv_tbl_in.COUNT=0
3096 THEN
3097   okc_contract_ITEM_pub.delete_Contract_ITEM (
3098       p_api_version   => l_api_version,
3099      p_init_msg_list  => l_init_msg_list,
3100         x_return_status  => l_return_status,
3101           x_msg_count   => l_msg_count,
3102           x_msg_data   => l_msg_data,
3103           p_cimv_tbl   => l_cimv_tbl_in);
3104 
3105 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
3106   RAISE e_Error;
3107 END IF;
3108 END IF;
3109 
3110 
3111 IF (G_DEBUG_ENABLED = 'Y') THEN
3112         okc_debug.log('AFTER okc_contract_ITEM_pub.delete_Contract_ITEM', 2);
3113 
3114 END IF;
3115 
3116 IF NOT l_clev_tbl_in.COUNT=0
3117 THEN
3118   okc_contract_pub.delete_contract_line (
3119       p_api_version   => l_api_version,
3120      p_init_msg_list  => l_init_msg_list,
3121         x_return_status  => l_return_status,
3122           x_msg_count   => l_msg_count,
3123           x_msg_data   => l_msg_data,
3124           p_clev_tbl   => l_clev_tbl_in);
3125 
3126 
3127             IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
3128                 RAISE e_Error;
3129             END IF;
3130 END IF;
3131 
3132 
3133 Oks_Coverages_Pvt.UNDO_EVENTS (P_line_Id ,
3134    l_Return_Status ,
3135    l_msg_data )  ;
3136    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)   then
3137       RAISE e_Error;
3138    end if;
3139 
3140 Oks_Coverages_Pvt.UNDO_Counters (P_line_Id ,
3141    l_Return_Status ,
3142    l_msg_data )  ;
3143    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)   then
3144       RAISE e_Error;
3145    end if;
3146 x_Return_status:=l_Return_status;
3147 
3148 IF (G_DEBUG_ENABLED = 'Y') THEN
3149         okc_debug.log('End of  Undo Line', 2);
3150         okc_debug.Reset_Indentation;
3151 END IF;
3152 
3153 
3154 
3155 EXCEPTION
3156     WHEN e_Error THEN
3157 
3158        IF (G_DEBUG_ENABLED = 'Y') THEN
3159            okc_debug.log('Exception of  Undo Line  e_Error'||SQLERRM, 2);
3160            okc_debug.Reset_Indentation;
3161        END IF;
3162 
3163 
3164     x_msg_count :=l_msg_count;
3165 x_msg_data:=l_msg_data;
3166 x_Return_status:=l_Return_status;
3167 
3168     WHEN OTHERS THEN
3169 
3170        IF (G_DEBUG_ENABLED = 'Y') THEN
3171            okc_debug.log('Exception of  Undo Line  when_others'||SQLERRM, 2);
3172            okc_debug.Reset_Indentation;
3173        END IF;
3174 
3175 x_msg_count :=l_msg_count;
3176     OKC_API.SET_MESSAGE(
3177       p_app_name        => g_app_name,
3178       p_msg_name        => g_unexpected_error,
3179       p_token1         => g_sqlcode_token,
3180       p_token1_value    => sqlcode,
3181       p_token2          => g_sqlerrm_token,
3182       p_token2_value    => sqlerrm);
3183     -- notify caller of an error as UNEXPETED error
3184     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3185 
3186 END Undo_Line;
3187 
3188 
3189 
3190 -- *************************************************************************************************
3191 PROCEDURE UNDO_EVENTS	(P_Kline_Id 	IN 	NUMBER,
3192 			x_Return_Status	OUT NOCOPY	VARCHAR2,
3193 			x_msg_data	OUT NOCOPY	VARCHAR2)  IS
3194 l_cnhv_tbl		okc_conditions_pub.cnhv_tbl_type;
3195 l_cnlv_tbl		okc_conditions_pub.cnlv_tbl_type;
3196 l_coev_tbl		okc_conditions_pub.coev_tbl_type;
3197 l_aavv_tbl		okc_conditions_pub.aavv_tbl_type;
3198 l_ocev_tbl		okc_outcome_pub.ocev_tbl_type;
3199 l_oatv_tbl		okc_outcome_pub.oatv_tbl_type;
3200 c_Cnhv		Number:=1;
3201 c_Cnlv		Number:=1;
3202 c_aavv		Number:=1;
3203 c_Ocev		Number:=1;
3204 c_Oatv		Number:=1;
3205 c_Coev		Number:=1;
3206   l_api_version		CONSTANT	NUMBER     := 1.0;
3207   l_init_msg_list	CONSTANT	VARCHAR2(1):= 'T';
3208   l_return_status	VARCHAR2(3);
3209   l_msg_count		NUMBER;
3210   l_msg_data		VARCHAR2(2000):=null;
3211   l_msg_index_out       Number;
3212   l_api_name            CONSTANT VARCHAR2(30) := 'UNDO EVENT';
3213 
3214 CURSOR Cur_Cnh(P_KLine_Id IN NUMBER) IS
3215 SELECT id FROM OKC_Condition_Headers_v where Object_Id=P_KLine_Id
3216 				             and JTOT_Object_Code='OKC_K_LINE';
3217 CURSOR Cur_Coe (P_Cnh_Id IN NUMBER) IS
3218 SELECT id FROM  OKC_Condition_Occurs_v where Cnh_Id=P_Cnh_Id;
3219 CURSOR Cur_aav (P_Coe_Id IN NUMBER) IS
3220 SELECT aae_Id,coe_id FROM Okc_Action_att_vals_v  WHERE coe_id=P_Coe_Id;
3221 CURSOR Cur_Cnl (P_Cnh_Id IN NUMBER) IS
3222 SELECT id FROM OKC_Condition_Lines_v WHERE Cnh_Id = P_Cnh_Id;
3223 CURSOR Cur_oce (P_Cnh_Id IN NUMBER) IS
3224 SELECT id FROM OKC_OUTCOMES_V WHERE cnh_Id=P_Cnh_Id;
3225 CURSOR Cur_oat (P_oce_Id IN NUMBER) IS
3226 SELECT id FROM okc_outcome_arguments_v WHERE oce_id=P_Oce_Id;
3227 BEGIN
3228 x_Return_Status := OKC_API.G_RET_STS_SUCCESS;
3229 FOR Cnh_Rec IN Cur_Cnh(P_KLine_Id)
3230 LOOP
3231 	l_cnhv_tbl(c_Cnhv).Id:= Cnh_Rec.Id;
3232 	c_Cnhv		 := c_Cnhv+1;
3233 	FOR Coe_Rec IN Cur_Coe(l_cnhv_tbl(c_Cnhv-1).Id)
3234 	LOOP
3235 		l_coev_tbl(c_Coev).Id:= Coe_Rec.Id;
3236 		c_Coev:=c_Coev+1;
3237 		FOR Aav_Rec IN Cur_Aav(l_coev_tbl(c_Coev-1).Id)
3238 		LOOP
3239 			l_aavv_tbl(c_Aavv).aae_Id:=Aav_Rec.Aae_Id;
3240 			l_aavv_tbl(c_Aavv).coe_Id:=Aav_Rec.coe_Id;
3241 			c_Aavv:=c_Aavv+1;
3242 		END LOOP;
3243 	END LOOP;
3244 	FOR Cnl_Rec IN Cur_Cnl(l_cnhv_tbl(c_Cnhv-1).Id)
3245 	LOOP
3246 		l_cnlv_tbl(c_Cnlv).Id:=Cnl_Rec.Id;
3247 		c_Cnlv:=c_Cnlv+1;
3248 	END LOOP;
3249 	FOR Oce_Rec IN Cur_Oce((l_cnhv_tbl(c_Cnhv-1).Id))
3250 	LOOP
3251 		l_ocev_tbl(c_Ocev).Id:=Oce_Rec.Id;
3252 		c_Ocev:=c_Ocev+1;
3253 		FOR Oat_Rec IN Cur_Oat(l_ocev_tbl(c_Ocev-1).Id)
3254 		LOOP
3255 			l_oatv_tbl(c_Oatv).Id:=Oat_Rec.Id;
3256 			c_Oatv:=c_Oatv+1;
3257 		END LOOP;
3258 	END LOOP;
3259 END LOOP;
3260 IF NOT l_Oatv_tbl.COUNT=0
3261 THEN
3262 OKC_OUTCOME_PUB.delete_out_arg(
3263    	p_api_version		=> l_api_version,
3264   	p_init_msg_list		=> l_init_msg_list,
3265      	x_return_status		=> l_return_status,
3266           	x_msg_count		=> l_msg_count,
3267           	x_msg_data		=> l_msg_data,
3268     	p_oatv_tbl                     	=> l_Oatv_tbl);
3269    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
3270    then x_Return_Status:=l_Return_status;
3271       return;
3272    end if;
3273 END IF;
3274 IF NOT l_ocev_tbl.Count=0
3275 THEN
3276 OKC_OUTCOME_PUB. delete_outcome(
3277    	p_api_version		=> l_api_version,
3278   	p_init_msg_list		=> l_init_msg_list,
3279      	x_return_status		=> l_return_status,
3280           	x_msg_count		=> l_msg_count,
3281           	x_msg_data		=> l_msg_data,
3282     	p_ocev_tbl                     	=> l_Ocev_tbl);
3283    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
3284    then x_Return_Status:=l_Return_status;
3285       return;
3286    end if;
3287 END IF;
3288 IF NOT l_aavv_tbl.Count=0
3289 THEN
3290 OKC_CONDITIONS_PUB.delete_act_att_vals(
3291    	p_api_version		=> l_api_version,
3292   	p_init_msg_list		=> l_init_msg_list,
3293      	x_return_status		=> l_return_status,
3294           	x_msg_count		=> l_msg_count,
3295           	x_msg_data		=> l_msg_data,
3296     	p_aavv_tbl                     	=> l_aavv_tbl);
3297    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
3298    then x_Return_Status:=l_Return_status;
3299       return;
3300    end if;
3301 END IF;
3302 IF NOT l_Coev_tbl.Count=0
3303 THEN
3304 OKC_CONDITIONS_PUB. delete_cond_occurs(
3305    	p_api_version		=> l_api_version,
3306   	p_init_msg_list		=> l_init_msg_list,
3307      	x_return_status		=> l_return_status,
3308           	x_msg_count		=> l_msg_count,
3309           	x_msg_data		=> l_msg_data,
3310     	p_coev_tbl                     	=> l_Coev_tbl);
3311    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
3312    then x_Return_Status:=l_Return_status;
3313       return;
3314    end if;
3315 END IF;
3316 IF NOT l_cnlv_tbl.Count=0
3317 THEN
3318 OKC_CONDITIONS_PUB.delete_cond_lines(
3319    	p_api_version		=> l_api_version,
3320   	p_init_msg_list		=> l_init_msg_list,
3321     x_return_status		=> l_return_status,
3322     x_msg_count		    => l_msg_count,
3323     x_msg_data		    => l_msg_data,
3324     p_cnlv_tbl          => l_cnlv_tbl);
3325    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
3326    then x_Return_Status:=l_Return_status;
3327       return;
3328    end if;
3329 END IF;
3330 IF NOT l_cnhv_tbl.Count=0
3331 THEN
3332 OKC_CONDITIONS_PUB. delete_cond_hdrs(
3333    	p_api_version		=> l_api_version,
3334   	p_init_msg_list		=> l_init_msg_list,
3335      	x_return_status		=> l_return_status,
3336           	x_msg_count		=> l_msg_count,
3337           	x_msg_data		=> l_msg_data,
3338     	p_cnhv_tbl                     	=> l_cnhv_tbl);
3339    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
3340    then x_Return_Status:=l_Return_status;
3341       return;
3342    end if;
3343 END IF;
3344 x_Return_Status:=OKC_API.G_RET_STS_SUCCESS;
3345 EXCEPTION
3346 WHEN OTHERS
3347 THEN x_Return_Status:=l_Return_status;
3348      x_msg_data:=sqlcode||'-'||sqlerrm;
3349 END Undo_Events;
3350 -- Temporary Fix for Undo Counters by updating end_date_active to sysdate
3351 -- To be attended to later
3352 
3353 -- *************************************************************************************************
3354 PROCEDURE UNDO_COUNTERS(P_Kline_Id 	IN 	NUMBER,
3355 			x_Return_Status	OUT NOCOPY	VARCHAR2,
3356 			x_msg_data	OUT NOCOPY	VARCHAR2)  IS
3357 
3358 CURSOR Cur_Cgp (P_KLine_Id IN NUMBER) IS
3359 SELECT Counter_Group_id FROM OKX_Counter_Groups_V WHERE Source_Object_Id=P_KLine_Id
3360 
3361 				and Source_Object_Code='CONTRACT_LINE';
3362 
3363 CURSOR Cur_OVN (P_CtrGrp_Id IN NUMBER) IS
3364 SELECT Object_Version_Number FROM Cs_Counter_Groups
3365 WHERE Counter_group_Id=P_CtrGrp_Id;
3366 
3367 TYPE t_IdTable IS TABLE OF NUMBER(35)
3368 INDEX BY BINARY_Integer;
3369 l_cgp_tbl		t_IdTable;
3370 c_Cgp		Number:=1;
3371 l_Ctr_grp_id          NUMBER;
3372 x_Object_Version_Number     NUMBER;
3373 l_Object_Version_Number     NUMBER;
3374   l_api_version		CONSTANT	NUMBER     := 1.0;
3375   l_init_msg_list	CONSTANT	VARCHAR2(1):= 'T';
3376   l_return_status	VARCHAR2(1);
3377   l_msg_count		NUMBER;
3378   l_msg_data		VARCHAR2(2000):=null;
3379   l_msg_index_out       Number;
3380   l_api_name            CONSTANT VARCHAR2(30) := 'UNDO COUNTERS';
3381   l_Commit          Varchar2(3) ;
3382   l_Ctr_Grp_Rec		CS_Counters_Pub.CtrGrp_Rec_Type;
3383   l_cascade_upd_to_instances Varchar2(1);
3384 BEGIN
3385 x_Return_Status := OKC_API.G_RET_STS_SUCCESS;
3386 FOR Cgp_Rec IN Cur_Cgp(P_KLine_Id)
3387 LOOP
3388     l_cgp_tbl(c_Cgp):=Cgp_Rec.counter_group_Id;
3389 	c_Cgp:=c_Cgp+1;
3390 	FOR i in 1 .. l_Cgp_tbl.COUNT
3391 	LOOP
3392 		l_Ctr_grp_Id:=l_Cgp_tbl(i);
3393 		l_Ctr_Grp_Rec.end_date_active:=sysdate;
3394 		OPEN Cur_OVN(l_ctr_Grp_Id);
3395 		FETCH  Cur_OVN INTO l_Object_version_Number;
3396 		CLOSE Cur_OVN;
3397 		CS_Counters_PUB.Update_Ctr_Grp
3398 (
3399 	p_api_version		=>l_api_version,
3400 	p_init_msg_list		=>l_init_msg_list,
3401 	p_commit			=>l_commit,
3402 	x_return_status		=>l_return_status,
3403 	x_msg_count			=>l_msg_count,
3404 	x_msg_data			=>l_msg_data,
3405 	p_ctr_grp_id	      =>l_ctr_grp_id,
3406  	p_object_version_number	=>	l_object_version_number,
3407 	p_ctr_grp_rec			=>l_ctr_grp_rec,
3408 	p_cascade_upd_to_instances	=>l_cascade_upd_to_instances,
3409 	x_object_version_number	=>	x_object_version_number
3410 );
3411 	END LOOP;
3412    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
3413    then x_Return_Status:=l_Return_status;
3414       return;
3415    end if;
3416 END LOOP;
3417 x_Return_Status:=OKC_API.G_RET_STS_SUCCESS;
3418 
3419 
3420 EXCEPTION
3421 WHEN OTHERS
3422 THEN x_Return_Status:=l_Return_status;
3423      x_msg_data:=sqlerrm;
3424 
3425 END Undo_Counters;
3426 
3427 -- *************************************************************************************************
3428 
3429 
3430 PROCEDURE Update_COVERAGE_Effectivity(
3431   p_api_version     IN NUMBER,
3432   p_init_msg_list   IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3433   x_return_status   OUT NOCOPY VARCHAR2,
3434   x_msg_count       OUT NOCOPY NUMBER,
3435   x_msg_data        OUT NOCOPY VARCHAR2,
3436   p_service_Line_Id IN  NUMBER,
3437   p_New_Start_Date  IN DATE,
3438   p_New_End_Date    IN DATE)  IS
3439 
3440   l_api_version	    CONSTANT	NUMBER     := 1.0;
3441   l_init_msg_list   CONSTANT	VARCHAR2(1):= 'T';
3442   l_return_status   VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3443   l_msg_count	    NUMBER;
3444   l_message			VARCHAR2(2000):=null;
3445   l_msg_data	    VARCHAR2(2000):=null;
3446   l_msg_index_out   Number;
3447   l_api_name        CONSTANT VARCHAR2(30) := 'Update_cov_eff';
3448   e_Error	    EXCEPTION;
3449   NO_COV_ERROR      EXCEPTION;
3450   g_chr_Id	    NUMBER;
3451   l_Clev_Tbl_In     OKC_CONTRACT_PUB.clev_tbl_type;
3452   l_Clev_Tbl_Out    OKC_CONTRACT_PUB.clev_tbl_type;
3453   l_Cov_Id	    NUMBER;
3454   l_Bp_Id	    NUMBER;
3455   l_Id		    NUMBER;
3456   i		    NUMBER:= 0;
3457   l_Start_Date	DATE;
3458   g_Start_Date	DATE;
3459   g_End_Date	DATE;
3460   l_lse_id      NUMBER;
3461 
3462    -- Cursor for Coverage
3463    CURSOR Linecov_Cur(P_ID IN NUMBER) IS
3464    SELECT ID,
3465          LSE_ID,
3466          START_DATE,
3467          END_DATE
3468     FROM OKC_K_LINES_V
3469    WHERE cle_ID= P_Id and lse_id in (2,14,15,20,13,19);
3470 
3471    Linecov_Rec Linecov_Cur%ROWTYPE;
3472    ----------------------------------------------
3473    -- Cursor for Business Process
3474    CURSOR Linedet_Cur(P_ID IN NUMBER) IS
3475    SELECT ID, START_DATE, END_DATE
3476    FROM OKC_K_LINES_V
3477    WHERE cle_ID= P_Id ;
3478 
3479    LineDet_Rec LineDet_Cur%ROWTYPE;
3480 
3481   -- Cursor for getting offset period for BP from OKS
3482   CURSOR cur_get_offset_bp(p_cle_id IN NUMBER) IS
3483   SELECT ID, OFFSET_DURATION, OFFSET_PERIOD
3484   FROM OKS_K_LINES_B
3485   WHERE CLE_ID = p_cle_id ;
3486 
3487   oks_offset_rec CUR_GET_OFFSET_BP%ROWTYPE;
3488    ------------------------------------------------
3489    -- Cursor for Bill Type/Reaction Time
3490    CURSOR LineDet1_Cur(P_ID IN NUMBER) IS
3491    SELECT ID FROM OKC_K_LINES_V
3492    WHERE cle_ID= P_Id;
3493    ------------------------------------------------
3494    --Cursor for Bill Rate
3495    CURSOR LineDet2_Cur(P_ID IN NUMBER) IS
3496    SELECT ID FROM OKC_K_LINES_V
3497    WHERE cle_ID= P_Id;
3498    ------------------------------------------------
3499    CURSOR dnz_Cur IS
3500    SELECT Chr_Id FROM OKC_K_LINES_V
3501    WHERE Id=P_Service_Line_ID;
3502 
3503    l_bp_offset_duration  NUMBER := NULL;
3504    l_bp_offset_period    VARCHAR2(3) := NULL;
3505 
3506 BEGIN
3507 
3508 DBMS_TRANSACTION.SAVEPOINT(l_api_name);
3509 
3510 IF (G_DEBUG_ENABLED = 'Y') THEN
3511        okc_debug.Set_Indentation('Update Coverage Effectivity');
3512        okc_debug.log('Entered Update Coverage Effectivity', 2);
3513 END IF;
3514 
3515   OPEN dnz_Cur;
3516      FETCH dnz_Cur INTO g_chr_Id;
3517   CLOSE dnz_Cur;
3518 
3519   -- Populate Line TBL for Coverage
3520 
3521            For Linecov_Rec in Linecov_Cur(P_Service_Line_Id)
3522            LOOP
3523                 i:=i+1;
3524                 l_Cov_Id                    :=Linecov_Rec.Id;
3525                 l_Clev_tbl_In(i).Id         :=l_Cov_Id;
3526                 l_Clev_tbl_In(i).Start_Date :=P_New_Start_Date;
3527                 l_Clev_tbl_In(i).End_Date   :=P_New_End_Date;
3528                 l_lse_id                    := linecov_rec.lse_id;
3529            END LOOP ;
3530 
3531   -- Effectivity for Business Process
3532    IF l_lse_id <> 13 Then
3533 
3534   FOR LineDet_Rec IN LineDet_Cur(l_Cov_Id)
3535   LOOP
3536    i:=i+1;
3537    l_Bp_Id:=LineDet_Rec.Id;
3538 
3539    -- Populate Line TBL for Business Process
3540    l_Clev_tbl_In(i).Id:=l_Bp_Id;
3541 
3542    -- fetch OFS rule for Business Process
3543 
3544 
3545            OPEN  CUR_GET_OFFSET_BP(l_bp_id);
3546            FETCH cur_get_offset_bp into oks_offset_rec;
3547            IF cur_get_offset_bp%found then
3548               l_bp_offset_period   := oks_offset_rec.offset_period;
3549               l_bp_offset_duration := oks_offset_rec.offset_duration;
3550           END IF ;
3551          CLOSE cur_get_offset_bp ;
3552 
3553     IF l_bp_offset_period IS NOT NULL
3554       AND l_bp_offset_duration IS NOT NULL
3555       THEN
3556 
3557         l_start_date:=OKC_Time_Util_Pub.get_enddate
3558                         (P_New_Start_date,
3559                         l_bp_offset_period,
3560                         l_bp_offset_duration);
3561 
3562         IF l_bp_offset_duration > 0
3563         THEN
3564           l_start_date := l_start_date + 1;
3565         END IF;
3566 
3567         IF l_start_date < P_New_End_date
3568         THEN
3569           g_start_date:=l_start_date;
3570           g_end_date:= P_New_End_date;
3571         ELSE
3572           g_start_date:= P_New_End_date;
3573           g_end_date  := P_New_End_date;
3574         END IF;
3575      ELSE
3576           g_start_date:= P_New_Start_date;
3577           g_end_date  := P_New_End_date;
3578      END IF;
3579 
3580 
3581 
3582    -- Calculate Line Start Date for Business Process
3583    /*
3584    l_start_date:=OKC_Time_Util_Pub.get_enddate
3585                                         (P_New_Start_date,
3586 					                     l_bp_offset_period,
3587 					                     l_bp_offset_duration);
3588 
3589               IF  l_bp_offset_duration IS NOT NULL
3590                   AND l_bp_offset_duration  > 0
3591               THEN
3592                  l_start_date := l_start_date + 1;
3593               END IF;
3594 
3595    -- IF Line Start Date is later that End Date
3596              IF l_start_date > P_New_End_Date
3597              THEN
3598                    l_return_status:=OKC_API.G_RET_STS_ERROR;
3599                    RAISE e_error;
3600              END IF;
3601 
3602    -- If there is no Offset, Coverage Start Date will be start date for Business Process
3603               IF l_start_date is NOT NULL
3604               THEN
3605                    g_start_date:=l_start_date;
3606               ELSE
3607                     g_start_date:=p_new_start_date;
3608              END IF;
3609                 g_end_date:= P_New_End_Date;
3610 */
3611 
3612 --   IF NOT l_start_date > P_New_End_Date
3613 --   THEN
3614 
3615    -- Populate Line TBL for Business Process
3616    l_clev_tbl_In(i).start_Date:=g_Start_Date;
3617    l_clev_tbl_In(i).end_Date:=g_end_Date;
3618 
3619    -- Fetch Bill Types/ Reaction Times
3620 
3621    FOR LineDet_Rec1 IN LineDet1_CUR(l_bp_Id)
3622    LOOP
3623      -- Populate Line TBL for Bill Types /Reaction Times
3624      i:=i+1;
3625      l_Clev_tbl_In(i).Id:=LineDet_Rec1.Id;
3626      l_clev_tbl_In(i).start_Date:=g_Start_Date;
3627      l_clev_tbl_In(i).end_Date:=g_end_Date;
3628 
3629      -- Fetch Bill Rate
3630      FOR LineDet_Rec2 IN LineDet2_CUR(LineDet_Rec1.Id)
3631      LOOP
3632        -- Populate Line TBL for Bill Rate
3633        i:=i+1;
3634        l_Clev_tbl_In(i).Id:=LineDet_Rec2.Id;
3635        l_clev_tbl_In(i).start_Date:=g_Start_Date;
3636        l_clev_tbl_In(i).end_Date:=g_end_Date;
3637      END LOOP; -- Bill Rate
3638      END LOOP; -- Bill Type/Reaction Times
3639 --     END IF ;
3640  END LOOP; -- Business process
3641  END IF ;
3642 
3643  -- Update Line with all the data for Coverage, Business process, React Times, Bill Types, Bill Rate
3644 
3645 IF (G_DEBUG_ENABLED = 'Y') THEN
3646        okc_debug.log('Before  okc_contract_pub.Update_Contract_Line', 2);
3647 END IF;
3648              IF  l_clev_tbl_in.COUNT > 0 Then
3649 
3650                  okc_contract_pub.Update_Contract_Line(
3651 	                                                    p_api_version		=> l_api_version,
3652 	                                                    p_init_msg_list		=> l_init_msg_list,
3653 	                                                    x_return_status		=> l_return_status,
3654 	                                                    x_msg_count			=> l_msg_count,
3655 	                                                    x_msg_data			=> l_msg_data,
3656                                                         p_restricted_update => 'T',
3657 	                                                    p_clev_tbl			=> l_clev_tbl_in,
3658 	                                                    x_clev_tbl			=> l_clev_tbl_out);
3659 
3660 
3661               IF (G_DEBUG_ENABLED = 'Y') THEN
3662                          okc_debug.log('After  okc_contract_pub.Update_Contract_Line'||l_return_status, 2);
3663               END IF;
3664 
3665                       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
3666 
3667                             IF l_msg_count > 0      THEN
3668                                 FOR i in 1..l_msg_count  LOOP
3669                                     fnd_msg_pub.get (p_msg_index     => -1,
3670                                          p_encoded       => 'T', -- OKC$APPLICATION.GET_FALSE,
3671                                          p_data          => l_message,
3672                                          p_msg_index_out => l_msg_index_out);
3673 
3674                                 l_msg_data := l_msg_data ||'  '||l_message;
3675 
3676                                END LOOP;
3677                             END IF;
3678 
3679 
3680                          RAISE e_Error;
3681                      END IF;
3682         END IF;
3683   x_return_status := l_return_status;
3684 
3685 
3686   IF (G_DEBUG_ENABLED = 'Y') THEN
3687          okc_debug.log('End of Update_Coverage_Effectivity'||l_return_status, 2);
3688          okc_debug.Reset_Indentation;
3689   END IF;
3690 
3691 
3692 EXCEPTION
3693   WHEN NO_COV_ERROR THEN
3694 
3695   IF (G_DEBUG_ENABLED = 'Y') THEN
3696          okc_debug.log('Exp of Update_Coverage_Effectivity'||SQLERRM, 2);
3697          okc_debug.Reset_Indentation;
3698   END IF;
3699 
3700 
3701     DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name );
3702     --ROLLBACK ;
3703     OKC_API.SET_MESSAGE(g_app_name,'OKSMIS_REQUIRED_FIELD','FIELD_NAME','Coverage to run effectivity adjustment');
3704     x_return_status := 'E';
3705 
3706   WHEN e_Error THEN
3707 
3708     IF (G_DEBUG_ENABLED = 'Y') THEN
3709          okc_debug.log('Exp of Update_Coverage_Effectivity e_Error'||SQLERRM, 2);
3710          okc_debug.Reset_Indentation;
3711     END IF;
3712 
3713     DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name );
3714     --ROLLBACK ;
3715       x_msg_count :=l_msg_count;
3716       x_msg_data:=l_msg_data;
3717     x_return_status := 'E';
3718 
3719   WHEN OKC_API.G_EXCEPTION_ERROR THEN
3720 
3721     IF (G_DEBUG_ENABLED = 'Y') THEN
3722          okc_debug.log('Exp of Update_Coverage_Effectivity '||SQLERRM, 2);
3723          okc_debug.Reset_Indentation;
3724     END IF;
3725      DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name );
3726      --ROLLBACK ;
3727       x_msg_count :=l_msg_count;
3728       x_msg_data:=l_msg_data;
3729     x_return_status := 'E';
3730 
3731 
3732   WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3733 
3734     IF (G_DEBUG_ENABLED = 'Y') THEN
3735          okc_debug.log('Exp of Update_Coverage_Effectivity '||SQLERRM, 2);
3736          okc_debug.Reset_Indentation;
3737     END IF;
3738       DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name );
3739       --ROLLBACK ;
3740       x_msg_count :=l_msg_count;
3741       x_msg_data:=l_msg_data;
3742     x_return_status := 'E';
3743 
3744   WHEN OTHERS THEN
3745 
3746     IF (G_DEBUG_ENABLED = 'Y') THEN
3747          okc_debug.log('Exp of Update_Coverage_Effectivity '||SQLERRM, 2);
3748          okc_debug.Reset_Indentation;
3749     END IF;
3750 
3751       DBMS_TRANSACTION.ROLLBACK_SAVEPOINT(l_api_name );
3752         --ROLLBACK ;
3753         OKC_API.SET_MESSAGE(
3754       p_app_name        => g_app_name,
3755       p_msg_name        => g_unexpected_error,
3756       p_token1	        => g_sqlcode_token,
3757       p_token1_value    => sqlcode,
3758       p_token2          => g_sqlerrm_token,
3759       p_token2_value    => sqlerrm);
3760     -- notify caller of an error as UNEXPETED error
3761     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3762     x_msg_count :=l_msg_count;
3763 
3764 END Update_Coverage_Effectivity;
3765 
3766 
3767 PROCEDURE Undo_Line(
3768     p_api_version	    IN NUMBER,
3769     p_init_msg_list         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3770     p_validate_status       IN VARCHAR2 DEFAULT 'N',
3771     x_return_status         OUT NOCOPY VARCHAR2,
3772     x_msg_count             OUT NOCOPY NUMBER,
3773     x_msg_data              OUT NOCOPY VARCHAR2,
3774     P_Line_Id               IN NUMBER) IS
3775 
3776    l_Cov_cle_Id NUMBER;
3777    l_Item_id     NUMBER;
3778    l_contact_Id NUMBER;
3779    l_RGP_Id     NUMBER;
3780    l_Rule_Id    NUMBER;
3781    l_cle_Id     NUMBER;
3782    v_Index   Binary_Integer;
3783 
3784 
3785  CURSOR line_det_Cur(P_cle_Id IN NUMBER)
3786  IS SELECT id, start_date, lse_id
3787  FROM   Okc_K_Lines_b
3788  WHERE  Id=P_cle_Id;
3789 
3790  CURSOR Child_Cur(P_cle_Id IN NUMBER)
3791  IS SELECT DNZ_CHR_ID
3792  FROM   Okc_K_Lines_b
3793  WHERE  cle_Id=P_cle_Id;
3794 
3795  CURSOR Child_Cur1(P_Parent_Id IN NUMBER)
3796  IS SELECT ID,DNZ_CHR_ID
3797     FROM   Okc_K_Lines_b
3798     WHERE  cle_Id=P_Parent_Id;
3799 
3800  CURSOR Child_Cur2(P_Parent_Id IN NUMBER)
3801  IS SELECT ID,DNZ_CHR_ID
3802     FROM   Okc_K_Lines_b
3803     WHERE  cle_Id=P_Parent_Id;
3804  CURSOR Child_Cur3(P_Parent_Id IN NUMBER)
3805  IS SELECT ID,DNZ_CHR_ID
3806     FROM   Okc_K_Lines_b
3807     WHERE  cle_Id=P_Parent_Id;
3808  CURSOR Child_Cur4(P_Parent_Id IN NUMBER)
3809  IS SELECT ID,DNZ_CHR_ID
3810     FROM   Okc_K_Lines_b
3811     WHERE  cle_Id=P_Parent_Id;
3812  CURSOR Child_Cur5(P_Parent_Id IN NUMBER)
3813  IS SELECT ID,DNZ_CHR_ID
3814     FROM   Okc_K_Lines_b
3815     WHERE  cle_Id=P_Parent_Id;
3816 
3817  CURSOR Item_Cur(P_Line_Id IN NUMBER)
3818  IS SELECT ID
3819     FROM   Okc_K_ITEMS
3820     WHERE  cle_Id=P_Line_Id;
3821 
3822  CURSOR  RT_Cur(P_Rule_Id IN NUMBER)
3823  IS SELECT Tve_ID
3824     FROM   OKC_React_Intervals
3825     WHERE  Rul_Id =P_Rule_Id;
3826 
3827  CURSOR Kprl_Cur(P_cle_Id IN NUMBER) IS
3828  SELECT pr.ID FROM OKC_K_PARTY_ROLES_B pr
3829 			,OKC_K_LINES_V lv
3830  WHERE  pr.cle_Id=P_cle_Id
3831  And    pr.cle_id = lv.id
3832  And    pr.dnz_chr_id = lv.dnz_chr_id;
3833 
3834  CURSOR Contact_Cur(P_cpl_Id IN NUMBER) IS
3835  SELECT ID FROM OKC_CONTACTS
3836  WHERE  cpl_Id=P_cpl_Id;
3837 
3838  CURSOR TRule_Cur( P_Rgp_Id IN NUMBER,
3839                    P_Rule_Type IN Varchar2) IS
3840   SELECT ID FROM OKC_RULES_B
3841   WHERE  Rgp_Id=P_Rgp_Id
3842   AND    Rule_Information_category=P_rule_Type;
3843 
3844  CURSOR Rl_Cur(P_Rgp_Id IN NUMBER) IS
3845   SELECT ID FROM OKC_RULES_B
3846   WHERE  Rgp_Id=P_Rgp_Id;
3847 
3848  CURSOR Rgp_Cur(P_cle_Id IN NUMBER) IS
3849   SELECT ID FROM OKC_RULE_GROUPS_B
3850   WHERE  cle_Id=P_Cle_Id;
3851 
3852  CURSOR  Relobj_Cur(P_Cle_Id IN NUMBER) IS
3853   SELECT Id FROM OKC_K_REL_OBJS_V
3854   WHERE  cle_Id = P_cle_Id;
3855 
3856  CURSOR  OrderDetails_Cur(P_CHR_ID IN NUMBER,P_Cle_Id IN NUMBER) IS
3857   SELECT Id FROM OKS_K_ORDER_DETAILS_V
3858   WHERE chr_id = p_chr_id
3859   AND   cle_Id = P_cle_Id;
3860 
3861  CURSOR  SalesCredits_Cur(P_Cle_Id IN NUMBER) IS
3862   SELECT Id FROM OKS_K_SALES_CREDITS_V
3863   WHERE  cle_Id = P_cle_Id;
3864 
3865  CURSOR  OrderContacts_Cur(P_Cod_Id IN NUMBER) IS
3866   SELECT Id FROM OKS_K_Order_Contacts_V
3867   WHERE  cod_Id = P_cod_Id;
3868 
3869   n NUMBER:=0;
3870 
3871   line_det_rec          line_det_Cur%ROWTYPE;
3872   l_child_cur_rec       Child_cur%rowtype;
3873   l_clev_tbl_in         okc_contract_pub.clev_tbl_type;
3874   l_clev_tbl_tmp        okc_contract_pub.clev_tbl_type;
3875   l_rgpv_tbl_in         okc_rule_pub.rgpv_tbl_type;
3876   l_rulv_tbl_in         okc_rule_pub.rulv_tbl_type;
3877   l_cimv_tbl_in         okc_Contract_Item_Pub.cimv_tbl_TYPE;
3878   l_ctcv_tbl_in		okc_contract_party_pub.ctcv_tbl_type;
3879   l_cplv_tbl_in		okc_contract_party_pub.cplv_tbl_type;
3880   l_crjv_tbl_in		okc_k_rel_objs_pub.crjv_tbl_type;
3881   l_cocv_tbl_in         oks_Order_Contacts_Pub.cocv_tbl_TYPE;
3882   l_codv_tbl_in		oks_Order_Details_pub.codv_tbl_type;
3883   l_scrv_tbl_in		oks_Sales_Credit_pub.scrv_tbl_type;
3884 
3885   l_api_version		CONSTANT	NUMBER     	:= 1.0;
3886   l_init_msg_list	CONSTANT	VARCHAR2(1) := 'T';
3887   l_return_status	VARCHAR2(1);
3888   l_msg_count		NUMBER;
3889   l_msg_data		VARCHAR2(2000):=null;
3890   l_msg_index_out       Number;
3891   l_api_name            CONSTANT VARCHAR2(30) := 'Undo Line';
3892   --l_catv_tbl_in		okc_k_article_pub.catv_tbl_type;
3893   e_error               Exception;
3894   c_clev NUMBER:=1;
3895   c_rulv NUMBER:=1;
3896   c_rgpv NUMBER:=1;
3897   c_cimv NUMBER:=1;
3898   c_ctcv NUMBER:=1;
3899   c_catv NUMBER:=1;
3900   c_cplv NUMBER:=1;
3901   c_crjv NUMBER:=1;
3902   l_lse_Id NUMBER;
3903   c_cocv NUMBER:=1;
3904   c_codv NUMBER:=1;
3905   c_scrv NUMBER:=1;
3906   l_dummy_terminate_date  DATE;
3907   l_line_type             NUMBER;
3908 
3909  FUNCTION Bp_Check(P_rgp_Id IN NUMBER)
3910  RETURN BOOLEAN  IS
3911    CURSOR GetLse_Cur IS
3912    SELECT kl.lse_ID
3913    from okc_k_Lines_v kl,
3914         okc_rule_groups_v rg
3915    where kl.id = rg.cle_id
3916    and   rg.id = P_rgp_Id;
3917 
3918 
3919  BEGIN
3920 
3921    OPEN GetLse_Cur;
3922    FETCH GetLse_Cur INTO l_Lse_Id;
3923     IF NOT GetLse_Cur%FOUND
3924     THEN l_Lse_Id:=NULL;
3925     END IF;
3926    CLOSE GetLse_Cur;
3927    IF l_lse_Id IN (3,16,21)
3928     THEN RETURN TRUE;
3929    ELSE RETURN FALSE;
3930    END IF;
3931  END Bp_Check;
3932 
3933 
3934 BEGIN
3935 x_return_status:=OKC_API.G_Ret_Sts_Success;
3936 
3937 Validate_Line_id(p_line_id,l_return_status);
3938 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
3939 -- IF NOT l_Return_Status ='S' THEN
3940      RETURN;
3941 END IF;
3942 
3943 l_clev_tbl_tmp(c_clev).ID:=P_Line_Id;
3944 
3945 OPEN Child_Cur(P_line_id);
3946 FETCH Child_Cur into l_child_cur_rec;
3947 l_clev_tbl_tmp(c_clev).DNZ_CHR_ID := l_child_cur_rec.dnz_chr_id;
3948 
3949 CLOSE Child_cur;
3950 
3951 c_clev:=c_clev+1;
3952 FOR Child_Rec1 IN Child_Cur1(P_Line_Id)
3953 LOOP
3954 l_clev_tbl_tmp(c_clev).ID:=Child_Rec1.ID;
3955 l_clev_tbl_tmp(c_clev).DNZ_CHR_ID:=Child_Rec1.DNZ_CHR_ID;
3956 c_clev:=c_clev+1;
3957   FOR Child_Rec2 IN Child_Cur2(Child_Rec1.Id)
3958   LOOP
3959 	l_clev_tbl_tmp(c_clev).ID:=Child_Rec2.Id;
3960 	l_clev_tbl_tmp(c_clev).DNZ_CHR_ID:=Child_Rec2.DNZ_CHR_ID;
3961         c_clev:=c_clev+1;
3962      FOR Child_Rec3 IN Child_Cur3(Child_Rec2.Id)
3963      LOOP
3964 	   l_clev_tbl_tmp(c_clev).ID:=Child_Rec3.Id;
3965 	   l_clev_tbl_tmp(c_clev).DNZ_CHR_ID:=Child_Rec3.DNZ_CHR_ID;
3966            c_clev:=c_clev+1;
3967 	 FOR Child_Rec4 IN Child_Cur4(Child_Rec3.Id)
3968 	 LOOP
3969 	      l_clev_tbl_tmp(c_clev).ID:=Child_Rec4.Id;
3970 	      l_clev_tbl_tmp(c_clev).DNZ_CHR_ID:=Child_Rec4.DNZ_CHR_ID;
3971               c_clev:=c_clev+1;
3972              FOR Child_Rec5 IN Child_Cur5(Child_Rec4.Id)
3973 	     LOOP
3974 	  	l_clev_tbl_tmp(c_clev).ID:=Child_Rec5.Id;
3975 	  	l_clev_tbl_tmp(c_clev).DNZ_CHR_ID:=Child_Rec5.DNZ_CHR_ID;
3976            	c_clev:=c_clev+1;
3977              END LOOP;
3978 	 END LOOP;
3979      END LOOP;
3980   END LOOP;
3981 END LOOP;
3982 c_clev:=1;
3983 FOR v_Index IN REVERSE l_clev_tbl_tmp.FIRST .. l_clev_tbl_tmp.LAST
3984 LOOP
3985 l_clev_tbl_in(c_clev).ID:= l_clev_tbl_tmp(v_Index).ID;
3986 l_clev_tbl_in(c_clev).DNZ_CHR_ID:= l_clev_tbl_tmp(v_Index).DNZ_CHR_ID;
3987 c_clev:=c_Clev+1;
3988 END LOOP;
3989 
3990 -- Get Relational Objects Linked to the lines
3991 FOR v_Index IN l_clev_tbl_in.FIRST .. l_clev_tbl_in.LAST
3992 LOOP
3993   FOR RelObj_REC IN RelObj_Cur(l_clev_tbl_in(v_Index).ID)
3994   LOOP
3995       l_crjv_tbl_in(c_crjv).ID:= RelObj_Rec.Id;
3996       c_crjv:=c_crjv+1;
3997   END LOOP;
3998 
3999   FOR OrderDetails_REC IN OrderDetails_Cur(l_clev_tbl_in(v_Index).DNZ_CHR_ID,l_clev_tbl_in(v_Index).ID)
4000   LOOP
4001       l_codv_tbl_in(c_codv).ID:= OrderDetails_Rec.Id;
4002       FOR OrderContacts_REC IN OrderContacts_Cur(l_codv_tbl_in(c_codv).ID)
4003       LOOP
4004           l_cocv_tbl_in(c_cocv).ID:= OrderContacts_Rec.Id;
4005           c_cocv:=c_cocv+1;
4006       END LOOP;
4007       c_codv:=c_codv+1;
4008   END LOOP;
4009   FOR SalesCredits_REC IN SalesCredits_Cur(l_clev_tbl_in(v_Index).ID)
4010   LOOP
4011       l_scrv_tbl_in(c_scrv).ID:= SalesCredits_Rec.Id;
4012       c_scrv:=c_scrv+1;
4013   END LOOP;
4014 
4015 END LOOP;
4016 
4017 -- Get Rule Groups and Rules
4018 FOR v_index IN l_clev_tbl_in.FIRST .. l_clev_tbl_In.LAST
4019 LOOP
4020 OPEN Rgp_Cur(l_clev_tbl_in(v_index).id);
4021 FETCH Rgp_Cur INTO l_Rgp_Id;
4022 IF Rgp_Cur%NOTFOUND
4023 THEN l_rgp_Id:=Null;
4024 END IF;
4025 IF NOT l_Rgp_Id IS NULL
4026 THEN
4027   l_rgpv_tbl_in(c_rgpv).Id:=l_Rgp_Id;
4028   c_rgpv:=c_Rgpv+1;
4029     FOR Rl_Rec IN Rl_Cur(l_Rgp_Id)
4030     LOOP
4031     l_Rulv_tbl_in(c_rulv).ID:=Rl_Rec.ID;
4032     c_rulv:=c_rulv+1;
4033     END LOOP;
4034 END IF;
4035 IF Rgp_Cur%ISOPEN
4036 THEN
4037 CLOSE Rgp_Cur;
4038 END IF;
4039 END LOOP;
4040 
4041 -- Get Items
4042 FOR v_Index IN l_clev_tbl_in.FIRST .. l_clev_tbl_in.LAST
4043 LOOP
4044   FOR ITEM_REC IN Item_Cur(l_clev_tbl_in(v_Index).ID)
4045   LOOP
4046       l_cimv_tbl_in(c_cimv).ID:= Item_Rec.Id;
4047       c_cimv:=c_cimv+1;
4048   END LOOP;
4049 END LOOP;
4050 -- GET K Party Roles and Contacts
4051 FOR v_Index IN l_clev_tbl_in.FIRST .. l_clev_tbl_in.LAST
4052 LOOP
4053   FOR Kprl_REC IN Kprl_Cur(l_clev_tbl_in(v_Index).ID)
4054   LOOP
4055       l_cplv_tbl_in(c_cplv).id:=Kprl_Rec.ID;
4056       c_cplv:=c_cplv+1;
4057       FOR Contact_Rec IN Contact_Cur(Kprl_Rec.id)
4058       LOOP
4059        l_ctcv_tbl_in(c_ctcv).id:= Contact_Rec.Id;
4060        c_ctcv:=c_ctcv+1;
4061       END LOOP;
4062   END LOOP;
4063 END LOOP;
4064 
4065 IF NOT l_cocv_tbl_in.COUNT=0 THEN
4066 
4067 OKS_ORDER_CONTACTS_PUB.Delete_Order_Contact(
4068    	  p_api_version			=> l_api_version,
4069   	  p_init_msg_list		=> l_init_msg_list,
4070      	  x_return_status		=> l_return_status,
4071           x_msg_count			=> l_msg_count,
4072           x_msg_data			=> l_msg_data,
4073           p_cocv_tbl			=> l_cocv_tbl_in);
4074 
4075    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
4076    then
4077       return;
4078    end if;
4079 END IF;
4080 
4081 IF NOT l_codv_tbl_in.COUNT=0
4082 THEN
4083 
4084 OKS_ORDER_DETAILS_PUB.Delete_Order_Detail(
4085    	  p_api_version			=> l_api_version,
4086   	  p_init_msg_list		=> l_init_msg_list,
4087      	  x_return_status		=> l_return_status,
4088           x_msg_count			=> l_msg_count,
4089           x_msg_data			=> l_msg_data,
4090           p_codv_tbl			=> l_codv_tbl_in);
4091 
4092    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
4093    then
4094       return;
4095    end if;
4096 END IF;
4097 
4098 IF NOT l_scrv_tbl_in.COUNT=0
4099 THEN
4100 
4101 OKS_SALES_CREDIT_PUB.Delete_Sales_Credit(
4102    	  p_api_version			=> l_api_version,
4103   	  p_init_msg_list		=> l_init_msg_list,
4104      	  x_return_status		=> l_return_status,
4105           x_msg_count			=> l_msg_count,
4106           x_msg_data			=> l_msg_data,
4107           p_scrv_tbl			=> l_scrv_tbl_in);
4108 
4109    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
4110    then
4111       return;
4112    end if;
4113 END IF;
4114 
4115 IF NOT l_crjv_tbl_in.COUNT=0
4116 THEN
4117 
4118 OKC_K_REL_OBJS_PUB.Delete_Row(
4119    	  p_api_version			=> l_api_version,
4120   	  p_init_msg_list		=> l_init_msg_list,
4121      	  x_return_status		=> l_return_status,
4122           x_msg_count			=> l_msg_count,
4123           x_msg_data			=> l_msg_data,
4124           p_crjv_tbl			=> l_crjv_tbl_in);
4125 
4126    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
4127    then
4128       return;
4129    end if;
4130 END IF;
4131 IF NOT l_ctcv_tbl_in.COUNT=0
4132 THEN
4133 OKC_CONTRACT_PARTY_PUB.Delete_Contact(
4134    	  p_api_version			=> l_api_version,
4135   	  p_init_msg_list		=> l_init_msg_list,
4136      	  x_return_status		=> l_return_status,
4137           x_msg_count			=> l_msg_count,
4138           x_msg_data			=> l_msg_data,
4139           p_ctcv_tbl			=> l_ctcv_tbl_in);
4140 
4141    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
4142    then
4143       return;
4144    end if;
4145 END IF;
4146 IF NOT l_cplv_tbl_in.COUNT=0
4147 THEN
4148 OKC_CONTRACT_PARTY_PUB.Delete_k_Party_Role(
4149    	  p_api_version			=> l_api_version,
4150   	  p_init_msg_list		=> l_init_msg_list,
4151      	  x_return_status		=> l_return_status,
4152           x_msg_count			=> l_msg_count,
4153           x_msg_data			=> l_msg_data,
4154           p_cplv_tbl			=> l_cplv_tbl_in);
4155 
4156    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
4157    then
4158       return;
4159    end if;
4160 END IF;
4161 /*
4162 IF NOT l_rulv_tbl_in.COUNT=0 THEN
4163   -------delete level elements before deleting rules.
4164 
4165   OPEN line_det_cur(p_line_id);
4166   FETCH line_det_cur INTO line_det_rec;
4167 
4168   l_dummy_terminate_date := line_det_rec.start_date - 1;
4169 
4170   IF line_det_rec.lse_id = 1 OR line_det_rec.lse_id = 12 OR line_det_rec.lse_id = 14
4171     OR line_det_rec.lse_id = 19 THEN
4172 
4173     l_line_type := 1;             --1 for TOP line
4174   ELSE
4175 
4176     l_line_type := 2;             --2 for covered level
4177   END IF;
4178 
4179   CLOSE line_det_cur;
4180 
4181   ------ERROROUT_AD('l_line_lse_id = ' || TO_CHAR(line_det_rec.lse_id));
4182   ------ERROROUT_AD('l_line_type = ' || TO_CHAR(l_line_type));
4183   ------ERROROUT_AD('l_dummy_terminate_date = ' || TO_CHAR(l_dummy_terminate_date));
4184   ------ERROROUT_AD('P_line_id = '|| TO_CHAR(P_line_id));
4185   ------ERROROUT_AD('CALLING pre_del_level_elements');
4186 
4187   OKS_BILL_UTIL_PUB.pre_del_level_elements(
4188                             p_api_version       => l_api_version,
4189                             p_terminated_date   => l_dummy_terminate_date,
4190                             p_id                => P_line_id ,
4191                             p_flag              => l_line_type,
4192                             x_return_status     => l_return_status);
4193 
4194   IF NOT nvl(l_return_status,'S') = OKC_API.G_RET_STS_SUCCESS THEN
4195      x_return_status := OKC_API.G_RET_STS_ERROR;
4196      OKC_API.Set_Message(G_APP_NAME,G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'ERROR IN DELETING LEVEL_ELEMENTS');
4197      RETURN;
4198   END IF;
4199 
4200   okc_Rule_pub.delete_Rule (
4201    	  p_api_version			=> l_api_version,
4202   	  p_init_msg_list		=> l_init_msg_list,
4203      	  x_return_status		=> l_return_status,
4204           x_msg_count			=> l_msg_count,
4205           x_msg_data			=> l_msg_data,
4206           p_rulv_tbl			=> l_rulv_tbl_in);
4207 /---if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
4208 THEN
4209 
4210    	IF l_msg_count > 0
4211       THEN
4212        FOR i in 1..l_msg_count
4213        LOOP
4214         fnd_msg_pub.get (p_msg_index     => -1,
4215                          p_encoded       => 'T', -- OKC$APPLICATION.GET_FALSE,
4216                          p_data          => l_msg_data,
4217                          p_msg_index_out => l_msg_index_out);
4218        END LOOP;
4219       END IF;---/
4220 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
4221    RAISE e_Error;
4222 END IF;
4223 END IF;
4224 
4225 IF NOT l_rgpv_tbl_in.COUNT=0
4226 THEN
4227   okc_Rule_pub.delete_Rule_group (
4228    	  p_api_version			=> l_api_version,
4229   	  p_init_msg_list		=> l_init_msg_list,
4230      	  x_return_status		=> l_return_status,
4231           x_msg_count			=> l_msg_count,
4232           x_msg_data			=> l_msg_data,
4233           p_rgpv_tbl			=> l_rgpv_tbl_in);
4234 
4235    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
4236    then
4237       return;
4238    end if;
4239 END IF;
4240 */
4241 IF NOT l_cimv_tbl_in.COUNT=0
4242 THEN
4243   okc_contract_ITEM_pub.delete_Contract_ITEM (
4244    	  p_api_version			=> l_api_version,
4245   	  p_init_msg_list		=> l_init_msg_list,
4246      	  x_return_status		=> l_return_status,
4247           x_msg_count			=> l_msg_count,
4248           x_msg_data			=> l_msg_data,
4249           p_cimv_tbl			=> l_cimv_tbl_in);
4250 /* IF nvl(l_return_status,'*') <> 'S'
4251 THEN
4252    	IF l_msg_count > 0
4253       THEN
4254        FOR i in 1..l_msg_count
4255        LOOP
4256         fnd_msg_pub.get (p_msg_index     => -1,
4257                          p_encoded       => 'T', -- OKC$APPLICATION.GET_FALSE,
4258                          p_data          => l_msg_data,
4259                          p_msg_index_out => l_msg_index_out);
4260        END LOOP;
4261       END IF;
4262       RAISE e_Error; */
4263 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
4264   RAISE e_Error;
4265 END IF;
4266 END IF;
4267 
4268 IF NOT l_clev_tbl_in.COUNT=0
4269 THEN
4270 if (p_validate_status = 'Y') then
4271   okc_contract_pub.delete_contract_line (
4272    	  p_api_version			=> l_api_version,
4273   	  p_init_msg_list		=> l_init_msg_list,
4274      	  x_return_status		=> l_return_status,
4275           x_msg_count			=> l_msg_count,
4276           x_msg_data			=> l_msg_data,
4277           p_clev_tbl			=> l_clev_tbl_in);
4278 else
4279     for i in l_clev_tbl_in.first .. l_clev_tbl_in.last
4280     loop
4281 	BEGIN
4282         delete okc_k_lines_tl where
4283             id =l_clev_tbl_in(i).id;
4284         delete okc_k_lines_b where
4285             id =l_clev_tbl_in(i).id;
4286 
4287   EXCEPTION
4288     WHEN OTHERS THEN
4289       -- store SQL error message on message stack for caller
4290       OKC_API.set_message(G_APP_NAME,
4291 			  G_UNEXPECTED_ERROR,
4292 			  G_SQLCODE_TOKEN,
4293 			  SQLCODE,
4294 			  G_SQLERRM_TOKEN,
4295 			  SQLERRM);
4296       -- notify caller of an UNEXPECTED error
4297       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
4298 	END;
4299     end loop;
4300 end if;
4301 
4302 /* IF nvl(l_return_status,'*') <> 'S'
4303 THEN
4304    	IF l_msg_count > 0
4305       THEN
4306        FOR i in 1..l_msg_count
4307        LOOP
4308         fnd_msg_pub.get (p_msg_index     => -1,
4309                          p_encoded       => 'T', -- OKC$APPLICATION.GET_FALSE,
4310                          p_data          => l_msg_data,
4311                          p_msg_index_out => l_msg_index_out);
4312        END LOOP;
4313       END IF;
4314       RAISE e_Error;*/
4315 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
4316   RAISE e_Error;
4317 END IF;
4318 END IF;
4319 
4320 
4321 Oks_Coverages_Pvt.UNDO_EVENTS	(P_line_Id ,
4322 			l_Return_Status	,
4323 			l_msg_data	)  ;
4324    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
4325    then
4326       RAISE e_Error;
4327    end if;
4328 
4329 Oks_Coverages_Pvt.UNDO_Counters	(P_line_Id ,
4330 			l_Return_Status	,
4331 			l_msg_data	)  ;
4332    if not (l_return_status = OKC_API.G_RET_STS_SUCCESS)
4333    then
4334       RAISE e_Error;
4335    end if;
4336 x_Return_status:=l_Return_status;
4337 
4338 EXCEPTION
4339     WHEN e_Error THEN
4340     -- notify caller of an error as UNEXPETED error
4341     x_msg_count :=l_msg_count;
4342 x_msg_data:=l_msg_data;
4343 x_Return_status:=l_Return_status;
4344 /*      x_return_status := OKC_API.HANDLE_EXCEPTIONS
4345       (
4346         l_api_name,
4347         'Undo_Line',
4348         'OKC_API.G_RET_STS_ERROR',
4349         l_msg_count,
4350         l_msg_data,
4351         '_PVT'
4352       );
4353     WHEN OKC_API.G_EXCEPTION_ERROR THEN
4354 x_msg_count :=l_msg_count;
4355 x_msg_data:=l_msg_data;
4356       x_return_status := OKC_API.HANDLE_EXCEPTIONS
4357       (
4358         l_api_name,
4359         'Undo_Line',
4360         'OKC_API.G_RET_STS_ERROR',
4361         l_msg_count,
4362         l_msg_data,
4363         '_PVT'
4364       );
4365     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4366 x_msg_count :=l_msg_count;
4367 x_msg_data:=l_msg_data;
4368       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
4369       (
4370         l_api_name,
4371         'Undo_Line',
4372         'OKC_API.G_RET_STS_UNEXP_ERROR',
4373         l_msg_count,
4374         l_msg_data,
4375         '_PVT'
4376       );*/
4377     WHEN OTHERS THEN
4378 x_msg_count :=l_msg_count;
4379     OKC_API.SET_MESSAGE(
4380       p_app_name        => g_app_name,
4381       p_msg_name        => g_unexpected_error,
4382       p_token1	        => g_sqlcode_token,
4383       p_token1_value    => sqlcode,
4384       p_token2          => g_sqlerrm_token,
4385       p_token2_value    => sqlerrm);
4386     -- notify caller of an error as UNEXPETED error
4387     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
4388 
4389 END Undo_Line;
4390 
4391 
4392 Procedure CHECK_COVERAGE_MATCH
4393    ( p_api_version	        IN NUMBER,
4394     p_init_msg_list         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
4395     x_return_status         OUT NOCOPY VARCHAR2,
4396     x_msg_count             OUT NOCOPY NUMBER,
4397     x_msg_data              OUT NOCOPY VARCHAR2,
4398     P_Source_contract_Line_Id       IN NUMBER,
4399     P_Target_contract_Line_Id       IN NUMBER,
4400     x_coverage_match         OUT  NOCOPY VARCHAR2) IS
4401 
4402 
4403 --  First compare coverage
4404    Cursor Cur_get_cov_info(p_contract_line_id NUMBER) IS
4405     SELECT coverage_id, standard_cov_yn
4406     FROM OKS_K_LINES_B
4407     WHERE cle_id = p_contract_line_id;
4408 --  get the coverage info
4409 
4410    Cursor Cur_Get_Cov_details(p_cov_line_id NUMBER) IS
4411    SELECT NAME, ITEM_DESCRIPTION,
4412 	EXCEPTION_YN
4413 	FROM OKC_K_LINES_V
4414    	WHERE id = p_cov_line_id
4415   	AND   lse_id in (2,15,20);
4416 
4417    Cursor Get_Coverage_rules(p_cov_line_id NUMBER) IS
4418    Select   COVERAGE_TYPE,
4419             EXCEPTION_COV_ID,
4420             INHERITANCE_TYPE,
4421             TRANSFER_OPTION,
4422             PROD_UPGRADE_YN
4423           /* COmmented by Jvorugan for Bug:4610449  NVL(PM_PROGRAM_ID,0) PM_PROGRAM_ID,
4424                                                     NVL(PM_CONF_REQ_YN,0) PM_CONF_REQ_YN,
4425                                                     NVL(PM_SCH_EXISTS_YN,0) PM_SCH_EXISTS_YN */
4426     FROM    OKS_K_LINES_B
4427     WHERE   CLE_ID = p_cov_line_id;
4428 
4429     Source_Coverage_rules   Get_Coverage_rules%ROWTYPE;
4430     Target_Coverage_rules   Get_Coverage_rules%ROWTYPE;
4431 
4432 --Added by Jvorugan for Bug:4610449
4433 -- Cursor to get the PM info. With R12, PM info will be stored with oks_k_lines_b record for the topline
4434    Cursor Get_PM_rules(p_contract_line_id NUMBER) IS
4435    Select   NVL(PM_PROGRAM_ID,0) PM_PROGRAM_ID,
4436             NVL(PM_CONF_REQ_YN,0) PM_CONF_REQ_YN,
4437             NVL(PM_SCH_EXISTS_YN,0) PM_SCH_EXISTS_YN
4438     FROM    OKS_K_LINES_B
4439     WHERE   CLE_ID = p_contract_line_id;
4440 
4441     Source_PM_rules   Get_PM_rules%ROWTYPE;
4442     Target_PM_rules   Get_PM_rules%ROWTYPE;
4443 
4444 
4445     Cursor Cur_Get_BussProc(p_cle_id NUMBER) IS
4446     SELECT lines.id,
4447     -- lines.start_date start_date,
4448     -- lines.end_date end_date,
4449     items.object1_id1
4450     FROM OKC_K_LINES_V lines, OKC_K_ITEMS_V items
4451     WHERE lines.cle_id  = p_cle_id
4452     AND lines.lse_id IN(3,16,21)
4453     AND items.JTOT_OBJECT1_CODE = 'OKX_BUSIPROC'
4454     AND items.cle_id = lines.id ;
4455 
4456     -- PRE AND DST RULES FOR A BP
4457 
4458 CURSOR CUR_GET_OKS_BP(p_cle_id NUMBER) IS
4459 SELECT lines.id 		bp_line_id,
4460        NVL(lines.price_list_id,0)		price_list_id,
4461        items.object1_id1 		object1_id1,
4462        NVL(kines.discount_list,0)		discount_list,
4463        NVL(kines.offset_duration,0)	offset_duration,
4464        NVL(kines.offset_period,0)		offset_period,
4465        NVL(kines.allow_bt_discount,0)	allow_bt_discount,
4466        NVL(kines.apply_default_timezone,0)	apply_default_timezone
4467  FROM  OKC_K_LINES_B lines,
4468        OKC_K_ITEMS   items,
4469        OKS_K_LINES_B kines
4470 WHERE lines.cle_id = p_cle_id
4471 AND lines.id = items.cle_id
4472 AND items.jtot_object1_code = 'OKX_BUSIPROC'
4473 AND lines.lse_id in (3,16,21)
4474 AND kines.cle_id = lines.id
4475 AND lines.dnz_chr_id = kines.dnz_chr_id
4476 AND lines.dnz_chr_id = items.dnz_chr_id;
4477 
4478 
4479     -- COVER TIMES FOR BUSINESS PROCESS
4480 
4481 Cursor Cur_Get_Cover_times(p_id NUMBER, p_bp_id NUMBER) IS
4482     SELECT lines.id,
4483            items.object1_id1   object1_id1,
4484            covtz.timezone_id   timezone_id,
4485            covtz.default_yn    default_yn,
4486            covtm.start_hour    start_hour,
4487            covtm.start_minute  start_minute,
4488            covtm.end_hour      end_hour,
4489            covtm.end_minute    end_minute,
4490            covtm.monday_yn     monday_yn,
4491            covtm.tuesday_yn    tuesday_yn,
4492            covtm.wednesday_yn  wednesday_yn,
4493            covtm.thursday_yn   thursday_yn,
4494            covtm.friday_yn     friday_yn,
4495            covtm.saturday_yn   saturday_yn,
4496            covtm.sunday_yn     sunday_yn
4497     FROM    OKC_K_LINES_B lines,
4498             OKC_K_ITEMS items,
4499             OKS_COVERAGE_TIMEZONES covtz,
4500             OKS_COVERAGE_TIMES covtm
4501     WHERE   lines.id = p_id
4502     AND     lines.lse_id IN (3,16,21)
4503     AND     lines.dnz_chr_id = items.dnz_chr_id
4504     AND     items.cle_id = lines.id
4505     AND     items.object1_id1 = p_bp_id
4506     AND     items.jtot_object1_code = 'OKX_BUSIPROC'
4507     AND     items.dnz_chr_id = lines.dnz_chr_id
4508     AND     covtz.cle_id = lines.id
4509     AND     covtz.dnz_chr_id = lines.dnz_chr_id
4510     AND     covtm.cov_tze_line_id = covtz.id
4511    ORDER BY to_number(items.object1_id1), covtz.timezone_id ;
4512 
4513 --    REACTION  TIMES FOR A BUSINESS PROCESS
4514 
4515    Cursor Cur_Get_React_Times(p_cle_id NUMBER) IS
4516    SELECT lines.id react_time_line_id,
4517           oksl.id  oks_react_line_id,
4518           NVL(oksl.incident_severity_id,0) incident_severity_id,
4519           NVL(oksl.pdf_id,0) pdf_id,
4520           NVL(oksl.work_thru_yn,'N') work_thru_yn,
4521           NVL(oksl.react_active_yn, 'N') react_active_yn,
4522           oksl.react_time_name  react_time_name,
4523           act.id act_type_line_id,
4524           act.action_type_code action_type_code,
4525           acm.uom_code uom_code,
4526           NVL(acm.sun_duration,0) sun_duration,
4527           NVL(acm.mon_duration,0) mon_duration,
4528           NVL(acm.tue_duration,0) tue_duration,
4529           NVL(acm.wed_duration,0) wed_duration,
4530           NVL(acm.thu_duration,0) thu_duration,
4531           NVL(acm.fri_duration,0) fri_duration,
4532           NVL(acm.sat_duration,0) sat_duration
4533    FROM   OKC_K_LINES_B lines,
4534           OKS_K_LINES_V oksl,
4535           OKS_ACTION_TIME_TYPES act,
4536           OKS_ACTION_TIMES acm
4537    WHERE lines.cle_id = p_cle_id
4538    AND   lines.lse_id IN (4,17,22)
4539    AND   oksl.cle_id = lines.id
4540    AND   act.cle_id =  lines.id
4541    AND   act.dnz_chr_id = lines.dnz_chr_id
4542    AND   acm.cov_action_type_id = act.id
4543    AND   acm.dnz_chr_id =   act.dnz_chr_id;
4544 
4545   -- RESOLUTION TIMES FOR A BUSINES PROCESS
4546 
4547  -- RESOURCES FOR A BUSINES PROCESS
4548 
4549     Cursor Cur_get_resources(p_bp_line_id NUMBER, p_bp_id NUMBER) IS
4550     SELECT  lines.id lines_id,
4551             party.id party_id,
4552             items.object1_id1 BP_ID,
4553             ocv.cro_code cro_code,
4554             ocv.object1_id1 res_id,
4555             ocv.resource_class resource_class
4556     FROM OKC_K_LINES_V lines,
4557          OKC_K_PARTY_ROLES_B party,
4558          OKC_CONTACTS_V ocv,
4559          OKC_K_ITEMS_V items
4560     WHERE lines.id = p_bp_line_id
4561     AND lines.lse_id IN (3,16,21)
4562     AND party.cle_id = lines.id
4563     AND items.cle_id = lines.id
4564     AND items.object1_id1 = p_bp_id
4565     AND items.jtot_object1_code = 'OKX_BUSIPROC'
4566     AND party.id = ocv.cpl_id
4567     AND lines.dnz_chr_id = party.dnz_chr_id ;
4568 
4569 
4570 
4571 -- BILLING TYPES  FOR A BUSINESS PROCESS
4572 
4573   Cursor Cur_Get_Bill_Types(p_cle_id NUMBER) IS
4574    SELECT    lines.id bill_type_line_id,
4575             items.object1_id1 object1_id1,
4576             oksl.discount_amount  discount_amount,
4577             oksl.discount_percent discount_percent,
4578             txn.billing_type billing_type
4579     FROM OKC_K_LINES_V lines,
4580          OKS_K_LINES_B oksl,
4581          OKC_K_ITEMS_V items,
4582          okx_txn_billing_types_v txn
4583    WHERE lines.cle_id = p_cle_id
4584    AND   oksl.cle_id = lines.id
4585    AND   oksl.dnz_chr_id = lines.dnz_chr_id
4586    AND   items.cle_id = lines.id
4587    AND  lines.lse_id IN (5,23,59)
4588    AND  items.jtot_object1_code = 'OKX_BILLTYPE'
4589    AND  items.object1_id1 = txn.id1;
4590 
4591    -- BILL RATES FOR A BUSINES PROCESS
4592 
4593 -- code changed for new bill rate schedules, 02/24/2003
4594 
4595 
4596     CURSOR CUR_GET_BRS(p_bt_cle_id NUMBER) IS
4597    SELECT  NVL(brs.START_HOUR,0) START_HOUR,
4598  NVL(brs.START_MINUTE,0) START_MINUTE,
4599  NVL(brs.END_HOUR,0) END_HOUR,
4600  NVL(brs.END_MINUTE,0)END_MINUTE,
4601  NVL(brs.MONDAY_FLAG,'N') MONDAY_FLAG,
4602  NVL(brs.TUESDAY_FLAG,'N')TUESDAY_FLAG,
4603  NVL(brs.WEDNESDAY_FLAG,'N')WEDNESDAY_FLAG,
4604  NVL(brs.THURSDAY_FLAG,'N')THURSDAY_FLAG,
4605  NVL(brs.FRIDAY_FLAG,'N')FRIDAY_FLAG,
4606  NVL(brs.SATURDAY_FLAG,'N')SATURDAY_FLAG,
4607  NVL(brs.SUNDAY_FLAG,'N')SUNDAY_FLAG,
4608  NVL(brs.OBJECT1_ID1,'N')OBJECT1_ID1,
4609  NVL(brs.OBJECT1_ID2,'N')OBJECT1_ID2,
4610  NVL(brs.JTOT_OBJECT1_CODE,'N')JTOT_OBJECT1_CODE,
4611  NVL(brs.BILL_RATE_CODE,'N')BILL_RATE_CODE,
4612  NVL(brs.FLAT_RATE,0)FLAT_RATE,
4613  NVL(brs.UOM,'N') UOM,
4614  NVL(brs.HOLIDAY_YN,'N') HOLIDAY_YN,
4615  NVL(brs.PERCENT_OVER_LIST_PRICE,0) PERC_OVER_LIST_PRICE
4616  FROM OKS_BILLRATE_SCHEDULES brs
4617  WHERE brs.bt_cle_id = p_bt_cle_id ;
4618 
4619 
4620    i                         NUMBER:= 0 ;
4621    j                         NUMBER:= 0 ;
4622    k                         NUMBER:= 0 ;
4623    src_cvr_index             NUMBER:= 0;
4624    tgt_cvr_index             NUMBER:= 0;
4625    l_source_start_date       Date;
4626    l_source_end_date         Date;
4627    l_target_start_date       Date;
4628    l_target_end_date         Date;
4629    l_source_exp              OKC_K_LINES_V.EXCEPTION_YN%TYPE;
4630    l_target_exp              OKC_K_LINES_V.EXCEPTION_YN%TYPE;
4631    l_src_cov_id              NUMBER;
4632    l_tgt_cov_id              NUMBER;
4633    G_MISMATCH                EXCEPTION ;
4634    l_return                  BOOLEAN:= TRUE;
4635    v_bp_found                BOOLEAN := FALSE;
4636    l_bp                      VARCHAR2(100);
4637    src_index                 NUMBER;
4638    tgt_index                 NUMBER;
4639    src_res_index             NUMBER;
4640    tgt_res_index             NUMBER:= 0;
4641    l_param                   NUMBER:= 0;
4642    l_param2                  NUMBER:= 0;
4643    src_cvr_index1            NUMBER:= 0;
4644    tgt_cvr_index1            NUMBER:= 0;
4645    src_rcn_index             NUMBER:= 0;
4646    tgt_rcn_index             NUMBER:= 0;
4647    src_rcn_index1            NUMBER:= 0;
4648    tgt_rcn_index1            NUMBER:= 0;
4649    l_rcn                     NUMBER:= 0;
4650    l_rsn                     NUMBER:= 0;
4651    src_rsn_index             NUMBER:= 0;
4652    tgt_rsn_index             NUMBER:= 0;
4653    src_rsn_index1            NUMBER:= 0;
4654    tgt_rsn_index1            NUMBER:= 0;
4655    src_bill_type_index       NUMBER:= 0;
4656    tgt_bill_type_index       NUMBER:= 0;
4657    src_bill_type_index1      NUMBER:= 0;
4658    tgt_bill_type_index1      NUMBER:= 0;
4659    l_bill_type               NUMBER:= 0;
4660    l_bill_rate_type          VARCHAR2(10);
4661    src_bill_rate_index       NUMBER:= 0;
4662    tgt_bill_rate_index       NUMBER:= 0;
4663    l_src_bill_rate_line_id   NUMBER:= 0;
4664    l_tgt_bill_rate_line_id   NUMBER:= 0;
4665    src_bill_rate_index1      NUMBER:= 0;
4666    tgt_bill_rate_index1      NUMBER:= 0;
4667    l_bill_rate               NUMBER:= 0;
4668    src_bp_rule_index         NUMBER:= 0;
4669    tgt_bp_rule_index         NUMBER:= 0;
4670    src_bp_rule_index1        NUMBER:= 0;
4671    tgt_bp_rule_index1        NUMBER:= 0;
4672    l_bp_rule                 NUMBER:= 0;
4673    source_res_index             NUMBER:= 0;
4674     target_res_index             NUMBER:= 0;
4675   -- x_return_status           VARCHAR2(1);
4676   l_msg_count 	             NUMBER;
4677   l_msg_data		     VARCHAR2(2000):=null;
4678   l_source_cov_name          VARCHAR2(150);
4679   l_target_cov_name          VARCHAR2(150);
4680   l_source_cov_desc          OKC_K_LINES_V.ITEM_DESCRIPTION%TYPE;
4681   l_target_cov_desc          OKC_K_LINES_V.ITEM_DESCRIPTION%TYPE;
4682   l_pml_src_index            NUMBER:= 0;
4683   l_pml_tgt_index            NUMBER:= 0;
4684  -- l_src_pml_index1           NUMBER:= 0;
4685  -- l_tgt_pml_index1           NUMBER:= 0;
4686   l_pml_param                NUMBER:= 0;
4687   l_src_pml_index            NUMBER;
4688   src_pma_index1            NUMBER;
4689   tgt_pma_index1            NUMBER;
4690   l_pma_rule                VARCHAR2(1);
4691   src_pma_index             NUMBER:= 0;
4692   tgt_pma_index            NUMBER:= 0;
4693   -- GLOBAL VARIABLES
4694   l_api_version		    CONSTANT	NUMBER     := 1.0;
4695   l_init_msg_list	    CONSTANT	VARCHAR2(1):= 'F';
4696   l_return_status	    VARCHAR2(1);
4697     l_pm_match 			VARCHAR2(1);
4698     l_src_std_cov_yn    VARCHAR2(1);
4699     l_tgt_std_cov_yn    VARCHAR2(1);
4700 
4701 BEGIN
4702 -- R12 changes start
4703  Open Cur_get_cov_info(p_source_contract_line_id) ;
4704  Fetch Cur_get_cov_info INTO l_src_cov_id,l_src_std_cov_yn;
4705  Close Cur_get_cov_info;
4706 
4707  Open Cur_get_cov_info(p_target_contract_line_id) ;
4708  Fetch Cur_get_cov_info INTO l_tgt_cov_id,l_tgt_std_cov_yn;
4709  Close Cur_get_cov_info;
4710 -- If one standard coverage and the other one customized coverage, raise mismatch
4711 IF l_src_std_cov_yn <> l_tgt_std_cov_yn
4712 Then
4713      Raise G_MISMATCH;
4714 END IF ;
4715 -- If both are standard coverage and are not same, raise mismatch
4716 IF l_src_std_cov_yn = 'Y'
4717 and l_src_cov_id <> l_tgt_cov_id
4718 then
4719      Raise G_MISMATCH;
4720 END IF ;
4721 
4722  Open Cur_Get_Cov_details(l_src_cov_id) ;
4723  Fetch Cur_Get_Cov_details Into l_source_cov_name, l_source_cov_desc,
4724                             --l_source_start_date, l_source_end_date,
4725 	                      l_source_exp;
4726  Close Cur_Get_Cov_details;
4727 
4728  Open  Cur_Get_Cov_details(l_tgt_cov_id) ;
4729  Fetch Cur_Get_Cov_details Into l_target_cov_name, l_target_cov_desc,
4730                             --l_target_start_date, l_target_end_date,
4731 			      l_target_exp;
4732  Close Cur_Get_Cov_details;
4733 
4734 -- R12 changes end
4735 
4736  IF l_source_cov_name <> l_target_cov_name
4737     OR l_source_cov_desc <> l_target_cov_desc
4738     --OR l_source_start_date <> l_target_start_date
4739     --OR l_source_end_date <> l_target_end_date
4740     OR l_source_exp <> l_target_exp   Then
4741      Raise G_MISMATCH;
4742  END IF ;
4743 
4744     OPEN Get_Coverage_Rules(l_src_cov_id)   ;
4745     FETCH Get_Coverage_rules INTO Source_Coverage_rules;
4746     CLOSE Get_Coverage_Rules ;
4747 
4748     OPEN Get_Coverage_Rules(l_tgt_cov_id)   ;
4749     FETCH Get_Coverage_rules INTO Target_Coverage_rules;
4750     CLOSE Get_Coverage_Rules ;
4751 
4752     IF  ( (Source_Coverage_rules.COVERAGE_TYPE     <> Target_Coverage_rules.COVERAGE_TYPE)
4753      OR  (Source_Coverage_rules.EXCEPTION_COV_ID  <> Target_Coverage_rules.EXCEPTION_COV_ID)
4754      OR  (Source_Coverage_rules.TRANSFER_OPTION   <> Target_Coverage_rules.TRANSFER_OPTION     )
4755      OR  (Source_Coverage_rules.PROD_UPGRADE_YN   <> Target_Coverage_rules.PROD_UPGRADE_YN)
4756      OR  (Source_Coverage_rules.INHERITANCE_TYPE  <> Target_Coverage_rules.INHERITANCE_TYPE))
4757     /* Commented by Jvorugan for Bug:4610449. With R12 Pm info will be stored with oks_k_lines_b
4758        record associated with the service line.
4759         OR  (Source_Coverage_rules.PM_PROGRAM_ID     <> Target_Coverage_rules.PM_PROGRAM_ID )
4760         OR  (Source_Coverage_rules.PM_CONF_REQ_YN    <> Target_Coverage_rules.PM_CONF_REQ_YN   )
4761         OR  (Source_Coverage_rules.PM_SCH_EXISTS_YN  <> Target_Coverage_rules.PM_SCH_EXISTS_YN)) */
4762    Then
4763 
4764        Raise G_MISMATCH;
4765   END IF ;
4766    -- Added by Jvorugan for Bug:4610449. R12 Changes start
4767     OPEN Get_PM_rules(P_Source_contract_Line_Id);
4768     FETCH Get_PM_rules INTO Source_PM_rules;
4769     CLOSE Get_PM_rules ;
4770 
4771     OPEN Get_PM_rules(P_Target_contract_Line_Id);
4772     FETCH Get_PM_rules INTO Target_PM_rules;
4773     CLOSE Get_PM_rules ;
4774 
4775     IF ((Source_PM_rules.PM_PROGRAM_ID     <> Target_PM_rules.PM_PROGRAM_ID)
4776     OR  (Source_PM_rules.PM_CONF_REQ_YN    <> Target_PM_rules.PM_CONF_REQ_YN)
4777     OR  (Source_PM_rules.PM_SCH_EXISTS_YN  <> Target_PM_rules.PM_SCH_EXISTS_YN))
4778 
4779     THEN
4780         Raise G_MISMATCH;
4781     END IF;
4782 
4783 IF ((Source_PM_rules.PM_PROGRAM_ID IS NOT NULL) AND
4784 	(Target_PM_rules.PM_PROGRAM_ID IS NOT NULL)) THEN
4785 
4786  OKS_PM_PROGRAMS_PVT.check_pm_match
4787        ( p_api_version                  => l_api_version,
4788         p_init_msg_list                 => l_init_msg_list,
4789         x_return_status                 => l_return_status,
4790         x_msg_count                     => l_msg_count,
4791         x_msg_data                      => l_msg_data,
4792         P_Source_coverage_Line_Id       => P_Source_contract_Line_Id,  -- l_src_cov_id,commented by Jvorugan
4793         P_Target_coverage_Line_Id       => P_Target_contract_Line_Id,  -- l_tgt_cov_id,
4794         x_pm_match                      => l_pm_match);
4795 
4796 IF l_pm_match <> 'Y' THEN
4797 	Raise G_MISMATCH;
4798 END IF;
4799 
4800 END IF;
4801 
4802 -- End of Changes for R12 by Jvorugan
4803 -------------------------Business Process ------------------------------
4804 
4805     FOR C1 IN Cur_Get_BussProc(l_src_cov_id)    LOOP
4806        i:= i + 1;
4807        x_source_bp_tbl_type(i).object1_id1:= C1.object1_id1 ;
4808        x_source_bp_tbl_type(i).bp_line_id:= C1.id ;
4809        --x_source_bp_tbl_type(i).start_date:= C1.start_date;
4810        --x_source_bp_tbl_type(i).end_date:= C1.end_date;
4811     END LOOP ;
4812 
4813 
4814     FOR C2 IN Cur_Get_BussProc(l_tgt_cov_id) LOOP
4815        j:= j + 1;
4816        x_target_bp_tbl_type(j).object1_id1:= C2.object1_id1 ;
4817        x_target_bp_tbl_type(j).bp_line_id:= C2.id ;
4818        --x_target_bp_tbl_type(j).start_date:= C2.start_date;
4819        --x_target_bp_tbl_type(j).end_date:= C2.end_date;
4820     END LOOP ;
4821 
4822     IF x_source_bp_tbl_type.count <> x_target_bp_tbl_type.count Then
4823 
4824             RAISE G_MISMATCH ;
4825     END IF ;
4826 
4827 IF x_source_bp_tbl_type.count > 0 Then
4828        FOR src_index in x_source_bp_tbl_type.FIRST..x_source_bp_tbl_type.LAST   LOOP
4829 
4830         FOR tgt_index in x_target_bp_tbl_type.FIRST..x_target_bp_tbl_type.LAST  LOOP
4831 
4832                 IF x_source_bp_tbl_type(src_index).object1_id1 = x_target_bp_tbl_type(tgt_index).object1_id1 THEN
4833                /*
4834                     IF   ((x_source_bp_tbl_type(src_index).end_date <> x_target_bp_tbl_type(tgt_index).end_date)
4835                         OR (x_source_bp_tbl_type(src_index).start_date <> x_target_bp_tbl_type(tgt_index).start_date)) THEN
4836 
4837 
4838                         RAISE G_MISMATCH ;
4839                    END IF;
4840               */
4841                             v_bp_found := TRUE;
4842                             k := k+1;
4843                             l_bp_tbl(k).bp_id          := x_source_bp_tbl_type(src_index).object1_id1;
4844                             l_bp_tbl(k).src_bp_line_id := x_source_bp_tbl_type(src_index).bp_line_id;
4845                             l_bp_tbl(k).tgt_bp_line_id := x_target_bp_tbl_type(tgt_index).bp_line_id;
4846                             EXIT ;
4847                     END IF ;
4848         END LOOP ;
4849 
4850                 IF NOT v_bp_found  then
4851                     RAISE G_MISMATCH ;
4852                 END IF;
4853                v_bp_found := FALSE;
4854 
4855         END LOOP ;
4856 END IF;
4857     -------resource---
4858 
4859 IF l_bp_tbl.count > 0 Then -- IF 1
4860 
4861     FOR bp_index in l_bp_tbl.FIRST..l_bp_tbl.LAST LOOP -- LOOP 1
4862 
4863    source_res_index := 0;
4864 
4865     FOR C1 IN Cur_get_resources(l_bp_tbl(bp_index).src_bp_line_id,to_number(l_bp_tbl(bp_index).bp_id))  LOOP -- LOOP 2
4866      source_res_index := source_res_index + 1;
4867      x_source_res_tbl_type(source_res_index).bp_id:= C1.BP_ID;
4868      x_source_res_tbl_type(source_res_index).cro_code:= C1.CRO_CODE;
4869      x_source_res_tbl_type(source_res_index).object1_id1:= C1.res_id;
4870      x_source_res_tbl_type(source_res_index).resource_class:= C1.RESOURCE_CLASS;
4871     END LOOP; -- LOOP 2
4872 
4873   target_res_index := 0;
4874 
4875     FOR C2 IN Cur_get_resources(l_bp_tbl(bp_index).tgt_bp_line_id,to_number(l_bp_tbl(bp_index).bp_id))  LOOP -- LOOP 3
4876      target_res_index:= target_res_index + 1;
4877      x_target_res_tbl_type(target_res_index).bp_id:= C2.BP_ID;
4878      x_target_res_tbl_type(target_res_index).cro_code:= C2.CRO_CODE;
4879      x_target_res_tbl_type(target_res_index).object1_id1:= C2.res_id;
4880      x_target_res_tbl_type(target_res_index).resource_class:= C2.RESOURCE_CLASS;
4881     END LOOP ; -- LOOP 3
4882 
4883     IF  x_source_res_tbl_type.count <> x_target_res_tbl_type.count Then --IF 2
4884 
4885         RAISE G_MISMATCH ;
4886     END IF; --IF 2
4887 
4888 IF x_source_res_tbl_type.count > 0 Then --IF 3
4889     FOR src_res_index IN x_source_res_tbl_type.FIRST..x_source_res_tbl_type.LAST   LOOP --LOOP 4
4890 
4891     tgt_res_index:= x_target_res_tbl_type.FIRST ;
4892 
4893     LOOP --LOOP 5
4894 
4895     IF x_source_res_tbl_type(src_res_index).cro_code = x_target_res_tbl_type(tgt_res_index).cro_code
4896       AND  x_source_res_tbl_type(src_res_index).object1_id1 = x_target_res_tbl_type(tgt_res_index).object1_id1
4897       AND  x_source_res_tbl_type(src_res_index).resource_class  = x_target_res_tbl_type(tgt_res_index).resource_class THEN
4898 
4899         l_param := 1 ;
4900         EXIT ;
4901 
4902     ELSE
4903       l_param := 2 ;
4904     END IF ;
4905 
4906     EXIT WHEN (tgt_res_index = x_target_res_tbl_type.LAST) ;
4907     tgt_res_index:= x_target_res_tbl_type.NEXT(tgt_res_index);
4908 
4909     END LOOP ; --LOOP 5
4910 
4911         IF  l_param = 2 THEN
4912             RAISE G_MISMATCH ;
4913         END IF ;
4914     END LOOP ;  --LOOP 4
4915 
4916 END IF ;
4917 END LOOP; -- LOOP 1
4918 END IF;
4919 
4920     ---EnD resource---
4921 ------------------Buss Process OKS LINES--------------------
4922 
4923     FOR source_bp_rec IN CUR_GET_OKS_BP(l_src_cov_id)   LOOP
4924      src_bp_rule_index := src_bp_rule_index + 1 ;
4925 
4926       x_source_bp_tbl(src_bp_rule_index).PRICE_LIST_ID            := source_bp_rec.price_list_id;
4927       x_source_bp_tbl(src_bp_rule_index).OBJECT1_ID1              := source_bp_rec.object1_id1;
4928       x_source_bp_tbl(src_bp_rule_index).DISCOUNT_LIST            := source_bp_rec.discount_list;
4929       x_source_bp_tbl(src_bp_rule_index).OFFSET_DURATION          := source_bp_rec.offset_duration;
4930       x_source_bp_tbl(src_bp_rule_index).OFFSET_PERIOD            := source_bp_rec.offset_period;
4931       x_source_bp_tbl(src_bp_rule_index).ALLOW_BT_DISCOUNT        := source_bp_rec.allow_bt_discount;
4932       x_source_bp_tbl(src_bp_rule_index).APPLY_DEFAULT_TIMEZONE   := source_bp_rec.apply_default_timezone;
4933     END LOOP ;
4934 
4935 
4936     FOR target_bp_rec IN CUR_GET_OKS_BP(l_tgt_cov_id)   LOOP
4937 
4938      tgt_bp_rule_index := tgt_bp_rule_index + 1 ;
4939 
4940       x_target_bp_tbl(tgt_bp_rule_index).PRICE_LIST_ID            := target_bp_rec.price_list_id;
4941       x_target_bp_tbl(tgt_bp_rule_index).OBJECT1_ID1              := target_bp_rec.object1_id1;
4942       x_target_bp_tbl(tgt_bp_rule_index).DISCOUNT_LIST            := target_bp_rec.discount_list;
4943       x_target_bp_tbl(tgt_bp_rule_index).OFFSET_DURATION          := target_bp_rec.offset_duration;
4944       x_target_bp_tbl(tgt_bp_rule_index).OFFSET_PERIOD            := target_bp_rec.offset_period;
4945       x_target_bp_tbl(tgt_bp_rule_index).ALLOW_BT_DISCOUNT        := target_bp_rec.allow_bt_discount;
4946       x_target_bp_tbl(tgt_bp_rule_index).APPLY_DEFAULT_TIMEZONE   := target_bp_rec.apply_default_timezone;
4947 
4948     END LOOP ;
4949 
4950   IF x_source_bp_tbl.count <> x_target_bp_tbl.count Then
4951 
4952     RAISE G_MISMATCH ;
4953 END IF;
4954 
4955 IF x_source_bp_tbl.count > 0 then --x_source_bp_tbl.count > 0
4956     FOR src_bp_rule_index1 IN x_source_bp_tbl.FIRST..x_source_bp_tbl.LAST
4957     LOOP
4958        tgt_bp_rule_index1:= x_target_bp_tbl.FIRST ;
4959 
4960        LOOP
4961 
4962          IF     x_source_bp_tbl(src_bp_rule_index1).object1_id1      = x_target_bp_tbl(tgt_bp_rule_index1).object1_id1
4963          AND    x_source_bp_tbl(src_bp_rule_index1).price_list_id    = x_target_bp_tbl(tgt_bp_rule_index1).price_list_id
4964          AND    x_source_bp_tbl(src_bp_rule_index1).discount_list    = x_target_bp_tbl(tgt_bp_rule_index1).discount_list
4965          AND    x_source_bp_tbl(src_bp_rule_index1).offset_duration  = x_target_bp_tbl(tgt_bp_rule_index1).offset_duration
4966          AND    x_source_bp_tbl(src_bp_rule_index1).offset_period    = x_target_bp_tbl(tgt_bp_rule_index1).offset_period
4967          AND    x_source_bp_tbl(src_bp_rule_index1).allow_bt_discount = x_target_bp_tbl(tgt_bp_rule_index1).allow_bt_discount
4968          AND    x_source_bp_tbl(src_bp_rule_index1).apply_default_timezone = x_target_bp_tbl(tgt_bp_rule_index1).apply_default_timezone
4969         THEN
4970              l_bp_rule:= 1 ;
4971                   EXIT ;
4972              ELSE
4973              l_bp_rule:= 2 ;
4974         END IF ;
4975 
4976          EXIT WHEN(tgt_bp_rule_index1 = x_target_bp_tbl.LAST);
4977          tgt_bp_rule_index1:= x_target_bp_tbl.NEXT(tgt_bp_rule_index1);
4978 
4979          END LOOP ;
4980 
4981          IF l_bp_rule = 2 THEN
4982             RAISE G_MISMATCH;
4983          END IF ;
4984 
4985     END LOOP ;
4986 
4987 End IF; --x_source_bp_tbl.count > 0
4988 
4989 ------------------Buss Process OKS LINES--------------------
4990 
4991 ------------------Coverage Times-------------------------
4992 
4993 src_cvr_index:= 0;
4994 
4995 FOR I IN l_bp_tbl.FIRST .. l_bp_tbl.LAST LOOP
4996     FOR C1 IN CUR_GET_COVER_TIMES(l_bp_tbl(I).src_bp_line_id,l_bp_tbl(I).bp_id)   LOOP
4997 
4998     src_cvr_index:= src_cvr_index + 1 ;
4999 
5000   x_source_bp_cover_time_tbl(src_cvr_index).object1_id1  := c1.object1_id1;
5001   x_source_bp_cover_time_tbl(src_cvr_index).timezone_id  := c1.timezone_id;
5002   x_source_bp_cover_time_tbl(src_cvr_index).default_yn   := c1.default_yn;
5003   x_source_bp_cover_time_tbl(src_cvr_index).start_hour   := c1.start_hour;
5004   x_source_bp_cover_time_tbl(src_cvr_index).start_minute := c1.start_minute;
5005   x_source_bp_cover_time_tbl(src_cvr_index).end_hour     := c1.end_hour;
5006   x_source_bp_cover_time_tbl(src_cvr_index).end_minute   := c1.end_minute;
5007   x_source_bp_cover_time_tbl(src_cvr_index).monday_yn    := c1.monday_yn;
5008   x_source_bp_cover_time_tbl(src_cvr_index).tuesday_yn   := c1.tuesday_yn;
5009   x_source_bp_cover_time_tbl(src_cvr_index).wednesday_yn := c1.wednesday_yn;
5010   x_source_bp_cover_time_tbl(src_cvr_index).thursday_yn  := c1.thursday_yn;
5011   x_source_bp_cover_time_tbl(src_cvr_index).friday_yn    := c1.friday_yn;
5012   x_source_bp_cover_time_tbl(src_cvr_index).saturday_yn  := c1.saturday_yn;
5013   x_source_bp_cover_time_tbl(src_cvr_index).sunday_yn    := c1.sunday_yn;
5014   END LOOP ;
5015 END LOOP;
5016 
5017   tgt_cvr_index:= 0;
5018 FOR I IN l_bp_tbl.FIRST .. l_bp_tbl.LAST LOOP
5019   FOR C2 IN CUR_GET_COVER_TIMES(l_bp_tbl(I).tgt_bp_line_id,l_bp_tbl(I).bp_id) LOOP
5020   tgt_cvr_index:= tgt_cvr_index + 1 ;
5021 
5022   x_target_bp_cover_time_tbl(tgt_cvr_index).object1_id1  := c2.object1_id1;
5023   x_target_bp_cover_time_tbl(tgt_cvr_index).timezone_id  := c2.timezone_id;
5024   x_target_bp_cover_time_tbl(tgt_cvr_index).default_yn   := c2.default_yn;
5025   x_target_bp_cover_time_tbl(tgt_cvr_index).start_hour   := c2.start_hour;
5026   x_target_bp_cover_time_tbl(tgt_cvr_index).start_minute := c2.start_minute;
5027   x_target_bp_cover_time_tbl(tgt_cvr_index).end_hour     := c2.end_hour;
5028   x_target_bp_cover_time_tbl(tgt_cvr_index).end_minute   := c2.end_minute;
5029   x_target_bp_cover_time_tbl(tgt_cvr_index).monday_yn    := c2.monday_yn;
5030   x_target_bp_cover_time_tbl(tgt_cvr_index).tuesday_yn   := c2.tuesday_yn;
5031   x_target_bp_cover_time_tbl(tgt_cvr_index).wednesday_yn := c2.wednesday_yn;
5032   x_target_bp_cover_time_tbl(tgt_cvr_index).thursday_yn  := c2.thursday_yn;
5033   x_target_bp_cover_time_tbl(tgt_cvr_index).friday_yn    := c2.friday_yn;
5034   x_target_bp_cover_time_tbl(tgt_cvr_index).saturday_yn  := c2.saturday_yn;
5035   x_target_bp_cover_time_tbl(tgt_cvr_index).sunday_yn    := c2.sunday_yn;
5036 
5037   END LOOP ;
5038 END LOOP;
5039     IF x_source_bp_cover_time_tbl.count <> x_target_bp_cover_time_tbl.count Then
5040 
5041         RAISE G_MISMATCH ;
5042     END IF;
5043 
5044     IF x_source_bp_cover_time_tbl.count > 0 Then
5045       FOR src_cvr_index1 IN x_source_bp_cover_time_tbl.FIRST..x_source_bp_cover_time_tbl.LAST   LOOP
5046 
5047         tgt_cvr_index1:= x_target_bp_cover_time_tbl.FIRST ;
5048 
5049         LOOP
5050 
5051         IF  x_source_bp_cover_time_tbl(src_cvr_index1).object1_id1  =  x_target_bp_cover_time_tbl(tgt_cvr_index1).object1_id1
5052         AND x_source_bp_cover_time_tbl(src_cvr_index1).timezone_id  =  x_target_bp_cover_time_tbl(tgt_cvr_index1).timezone_id
5053         AND x_source_bp_cover_time_tbl(src_cvr_index1).default_yn   =  x_target_bp_cover_time_tbl(tgt_cvr_index1).default_yn
5054         AND x_source_bp_cover_time_tbl(src_cvr_index1).start_hour   =  x_target_bp_cover_time_tbl(tgt_cvr_index1).start_hour
5055         AND x_source_bp_cover_time_tbl(src_cvr_index1).start_minute =  x_target_bp_cover_time_tbl(tgt_cvr_index1).start_minute
5056         AND x_source_bp_cover_time_tbl(src_cvr_index1).end_hour     =  x_target_bp_cover_time_tbl(tgt_cvr_index1).end_hour
5057         AND x_source_bp_cover_time_tbl(src_cvr_index1).end_minute   =  x_target_bp_cover_time_tbl(tgt_cvr_index1).end_minute
5058         AND x_source_bp_cover_time_tbl(src_cvr_index1).monday_yn    =  x_target_bp_cover_time_tbl(tgt_cvr_index1).monday_yn
5059         AND x_source_bp_cover_time_tbl(src_cvr_index1).tuesday_yn   =  x_target_bp_cover_time_tbl(tgt_cvr_index1).tuesday_yn
5060         AND x_source_bp_cover_time_tbl(src_cvr_index1).wednesday_yn =  x_target_bp_cover_time_tbl(tgt_cvr_index1).wednesday_yn
5061         AND x_source_bp_cover_time_tbl(src_cvr_index1).thursday_yn  =  x_target_bp_cover_time_tbl(tgt_cvr_index1).thursday_yn
5062         AND x_source_bp_cover_time_tbl(src_cvr_index1).friday_yn    =  x_target_bp_cover_time_tbl(tgt_cvr_index1).friday_yn
5063         AND x_source_bp_cover_time_tbl(src_cvr_index1).saturday_yn  =  x_target_bp_cover_time_tbl(tgt_cvr_index1).saturday_yn
5064         AND x_source_bp_cover_time_tbl(src_cvr_index1).sunday_yn    =  x_target_bp_cover_time_tbl(tgt_cvr_index1).sunday_yn
5065         Then
5066                 l_param2:= 1 ;
5067                 EXIT ;
5068          ELSE
5069                 l_param2:= 2;
5070         END IF ;
5071 
5072          EXIT WHEN (tgt_cvr_index1 = x_target_bp_cover_time_tbl.LAST);
5073          tgt_cvr_index1:= x_target_bp_cover_time_tbl.NEXT(tgt_cvr_index1);
5074 
5075          END LOOP ;
5076 
5077             IF l_param2 = 2 Then
5078 
5079                 Raise G_Mismatch ;
5080             END IF ;
5081 
5082 
5083       END LOOP ;
5084     END IF;
5085 
5086 ------------------ END Coverage Times-------------------------
5087 ------------------Reaction Times-------------------------
5088 
5089       src_rcn_index:= 0;
5090     FOR I IN  l_bp_tbl.FIRST .. l_bp_tbl.LAST LOOP
5091       FOR C1 IN CUR_GET_REACT_TIMES(l_bp_tbl(I).src_bp_line_id)  LOOP
5092        src_rcn_index:= src_rcn_index + 1 ;
5093 
5094        x_source_react_time_tbl(src_rcn_index).incident_severity_id    := C1.INCIDENT_SEVERITY_ID;
5095        x_source_react_time_tbl(src_rcn_index).pdf_id                  := C1.PDF_ID;
5096        x_source_react_time_tbl(src_rcn_index).work_thru_yn            := C1.WORK_THRU_YN;
5097        x_source_react_time_tbl(src_rcn_index).react_active_yn         := C1.REACT_ACTIVE_YN;
5098        x_source_react_time_tbl(src_rcn_index).react_time_name         := C1.REACT_TIME_NAME;
5099        x_source_react_time_tbl(src_rcn_index).action_type_code        := C1.ACTION_TYPE_CODE;
5100        x_source_react_time_tbl(src_rcn_index).uom_code                := C1.UOM_CODE;
5101        x_source_react_time_tbl(src_rcn_index).sun_duration            := C1.SUN_DURATION;
5102        x_source_react_time_tbl(src_rcn_index).mon_duration            := C1.MON_DURATION;
5103        x_source_react_time_tbl(src_rcn_index).tue_duration            := C1.TUE_DURATION;
5104        x_source_react_time_tbl(src_rcn_index).wed_duration            := C1.WED_DURATION;
5105        x_source_react_time_tbl(src_rcn_index).thu_duration            := C1.THU_DURATION;
5106        x_source_react_time_tbl(src_rcn_index).fri_duration            := C1.FRI_DURATION;
5107        x_source_react_time_tbl(src_rcn_index).sat_duration            := C1.WED_DURATION;
5108 
5109       END LOOP ;
5110     END LOOP;
5111 
5112         tgt_rcn_index:= 0;
5113     FOR I IN  l_bp_tbl.FIRST .. l_bp_tbl.LAST LOOP
5114       FOR C2 IN CUR_GET_REACT_TIMES(l_bp_tbl(I).tgt_bp_line_id)  LOOP
5115       tgt_rcn_index := tgt_rcn_index + 1;
5116 
5117        x_target_react_time_tbl(tgt_rcn_index).incident_severity_id    := C2.INCIDENT_SEVERITY_ID;
5118        x_target_react_time_tbl(tgt_rcn_index).pdf_id                  := C2.PDF_ID;
5119        x_target_react_time_tbl(tgt_rcn_index).work_thru_yn            := C2.WORK_THRU_YN;
5120        x_target_react_time_tbl(tgt_rcn_index).react_active_yn         := C2.REACT_ACTIVE_YN;
5121        x_target_react_time_tbl(tgt_rcn_index).react_time_name         := C2.REACT_TIME_NAME;
5122        x_target_react_time_tbl(tgt_rcn_index).action_type_code        := C2.ACTION_TYPE_CODE;
5123        x_target_react_time_tbl(tgt_rcn_index).uom_code                := C2.UOM_CODE;
5124        x_target_react_time_tbl(tgt_rcn_index).sun_duration            := C2.SUN_DURATION;
5125        x_target_react_time_tbl(tgt_rcn_index).mon_duration            := C2.MON_DURATION;
5126        x_target_react_time_tbl(tgt_rcn_index).tue_duration            := C2.TUE_DURATION;
5127        x_target_react_time_tbl(tgt_rcn_index).wed_duration            := C2.WED_DURATION;
5128        x_target_react_time_tbl(tgt_rcn_index).thu_duration            := C2.THU_DURATION;
5129        x_target_react_time_tbl(tgt_rcn_index).fri_duration            := C2.FRI_DURATION;
5130        x_target_react_time_tbl(tgt_rcn_index).sat_duration            := C2.WED_DURATION;
5131 
5132       END LOOP ;
5133     END LOOP;
5134 
5135    -- NOW COMPARE THE SOURCE AND TARGET RCN TABLES
5136 
5137    IF x_source_react_time_tbl.count <> x_target_react_time_tbl.count Then
5138          RAISE G_MISMATCH ;
5139    END IF ;
5140 If x_source_react_time_tbl.count > 0 Then
5141  FOR src_rcn_index1 IN x_source_react_time_tbl.FIRST..x_source_react_time_tbl.LAST
5142  LOOP
5143     tgt_rcn_index1:= x_target_react_time_tbl.FIRST;
5144     LOOP
5145 
5146       IF x_source_react_time_tbl(src_rcn_index1).incident_severity_id = x_target_react_time_tbl(tgt_rcn_index1).incident_severity_id
5147       AND x_source_react_time_tbl(src_rcn_index1).pdf_id              = x_target_react_time_tbl(tgt_rcn_index1).pdf_id
5148       AND x_source_react_time_tbl(src_rcn_index1).work_thru_yn        = x_target_react_time_tbl(tgt_rcn_index1).work_thru_yn
5149       AND x_source_react_time_tbl(src_rcn_index1).react_active_yn     = x_target_react_time_tbl(tgt_rcn_index1).react_active_yn
5150       AND x_source_react_time_tbl(src_rcn_index1).react_time_name     = x_target_react_time_tbl(tgt_rcn_index1).react_time_name
5151       AND x_source_react_time_tbl(src_rcn_index1).action_type_code    = x_target_react_time_tbl(tgt_rcn_index1).action_type_code
5152       AND x_source_react_time_tbl(src_rcn_index1).uom_code            = x_target_react_time_tbl(tgt_rcn_index1).uom_code
5153       AND x_source_react_time_tbl(src_rcn_index1).sun_duration        = x_target_react_time_tbl(tgt_rcn_index1).sun_duration
5154       AND x_source_react_time_tbl(src_rcn_index1).mon_duration        = x_target_react_time_tbl(tgt_rcn_index1).mon_duration
5155       AND x_source_react_time_tbl(src_rcn_index1).tue_duration        = x_target_react_time_tbl(tgt_rcn_index1).tue_duration
5156       AND x_source_react_time_tbl(src_rcn_index1).wed_duration        = x_target_react_time_tbl(tgt_rcn_index1).wed_duration
5157       AND x_source_react_time_tbl(src_rcn_index1).thu_duration        = x_target_react_time_tbl(tgt_rcn_index1).thu_duration
5158       AND x_source_react_time_tbl(src_rcn_index1).fri_duration        = x_target_react_time_tbl(tgt_rcn_index1).fri_duration
5159       AND x_source_react_time_tbl(src_rcn_index1).sat_duration        = x_target_react_time_tbl(tgt_rcn_index1).sat_duration
5160        Then
5161          l_rcn:= 1 ;
5162              EXIT ;
5163 
5164          ELSE
5165            l_rcn:= 2 ;
5166          END IF ;
5167 
5168           EXIT WHEN(tgt_rcn_index1 = x_target_react_time_tbl.LAST);
5169           tgt_rcn_index1:= x_target_react_time_tbl.NEXT(tgt_rcn_index1);
5170 
5171 
5172             END LOOP ; -- inner loop
5173 
5174           IF l_rcn = 2 Then
5175               Raise G_Mismatch ;
5176             END IF ;
5177        END LOOP ;
5178 End If;
5179 ------------------ END Reaction Times-------------------------
5180 
5181 -------------------BILL TYPES/RATES--------------------------
5182 
5183 
5184    src_bill_type_index:= 0 ;
5185     FOR I IN   l_bp_tbl.FIRST .. l_bp_tbl.LAST LOOP
5186         FOR C1 IN CUR_GET_BILL_TYPES(l_bp_tbl(I).src_bp_line_id)   LOOP
5187 
5188             src_bill_type_index:= src_bill_type_index + 1 ;
5189 
5190             x_source_bill_tbl(src_bill_type_index).object1_id1       := C1.OBJECT1_ID1;
5191             x_source_bill_tbl(src_bill_type_index).bill_type_line_id := C1.BILL_TYPE_LINE_ID;
5192             x_source_bill_tbl(src_bill_type_index).billing_type      := C1.BILLING_TYPE;
5193             x_source_bill_tbl(src_bill_type_index).discount_amount   := C1.DISCOUNT_AMOUNT;
5194             x_source_bill_tbl(src_bill_type_index).discount_percent  := C1.DISCOUNT_PERCENT;
5195         END LOOP ;
5196     END LOOP;
5197 
5198      tgt_bill_type_index:= 0;
5199 
5200     FOR I IN   l_bp_tbl.FIRST .. l_bp_tbl.LAST LOOP
5201         FOR C2 IN CUR_GET_BILL_TYPES(l_bp_tbl(I).tgt_bp_line_id)   LOOP
5202         tgt_bill_type_index:= tgt_bill_type_index + 1 ;
5203         x_target_bill_tbl(tgt_bill_type_index).object1_id1       := C2.OBJECT1_ID1;
5204         x_target_bill_tbl(tgt_bill_type_index).bill_type_line_id := C2.BILL_TYPE_LINE_ID;
5205         x_target_bill_tbl(tgt_bill_type_index).billing_type      := C2.BILLING_TYPE;
5206         x_target_bill_tbl(tgt_bill_type_index).discount_amount   := C2.DISCOUNT_AMOUNT;
5207         x_target_bill_tbl(tgt_bill_type_index).discount_percent   := C2.DISCOUNT_PERCENT;
5208         END LOOP ;
5209     END LOOP;
5210 
5211 
5212 IF x_source_bill_tbl.count <> x_target_bill_tbl.count Then
5213 
5214      RAISE G_MISMATCH ;
5215 END IF ;
5216 
5217 IF x_source_bill_tbl.count > 0 Then
5218    FOR  src_bill_type_index1 IN x_source_bill_tbl.FIRST..x_source_bill_tbl.LAST   LOOP
5219 
5220          tgt_bill_type_index1:= x_target_bill_tbl.FIRST ;
5221 
5222          LOOP
5223 
5224          IF  ((x_source_bill_tbl(src_bill_type_index1).object1_id1     = x_target_bill_tbl(tgt_bill_type_index1).object1_id1)
5225          AND (x_source_bill_tbl(src_bill_type_index1).billing_type    = x_target_bill_tbl(tgt_bill_type_index1).billing_type)
5226          AND (x_source_bill_tbl(src_bill_type_index1).discount_amount = x_target_bill_tbl(tgt_bill_type_index1).discount_amount)
5227          AND (x_source_bill_tbl(src_bill_type_index1).discount_percent = x_target_bill_tbl(tgt_bill_type_index1).discount_percent))
5228          Then
5229 
5230               l_bill_type:= 1 ;
5231 
5232               IF x_source_bill_tbl(src_bill_type_index1).billing_type = 'L' THEN
5233                   l_src_bill_rate_line_id:= x_source_bill_tbl(src_bill_type_index1).bill_type_line_id ;
5234 
5235                  src_bill_rate_index:= 0;
5236 
5237 
5238                FOR src_brs_rec IN CUR_GET_BRS(l_src_bill_rate_line_id)  LOOP
5239               src_bill_rate_index:= src_bill_rate_index + 1 ;
5240 
5241               x_source_brs_tbl(src_bill_rate_index).START_HOUR        := src_brs_rec.START_HOUR;
5242               x_source_brs_tbl(src_bill_rate_index).START_MINUTE      := src_brs_rec.START_MINUTE;
5243               x_source_brs_tbl(src_bill_rate_index).END_HOUR          := src_brs_rec.END_HOUR;
5244               x_source_brs_tbl(src_bill_rate_index).END_MINUTE        := src_brs_rec.END_MINUTE;
5245               x_source_brs_tbl(src_bill_rate_index).MONDAY_FLAG       := src_brs_rec.MONDAY_FLAG;
5246               x_source_brs_tbl(src_bill_rate_index).TUESDAY_FLAG      := src_brs_rec.TUESDAY_FLAG;
5247               x_source_brs_tbl(src_bill_rate_index).WEDNESDAY_FLAG    := src_brs_rec.WEDNESDAY_FLAG;
5248               x_source_brs_tbl(src_bill_rate_index).THURSDAY_FLAG     := src_brs_rec.THURSDAY_FLAG;
5249               x_source_brs_tbl(src_bill_rate_index).FRIDAY_FLAG       := src_brs_rec.FRIDAY_FLAG;
5250               x_source_brs_tbl(src_bill_rate_index).SATURDAY_FLAG     := src_brs_rec.SATURDAY_FLAG;
5251               x_source_brs_tbl(src_bill_rate_index).SUNDAY_FLAG       := src_brs_rec.SUNDAY_FLAG;
5252               x_source_brs_tbl(src_bill_rate_index).OBJECT1_ID1       := src_brs_rec.OBJECT1_ID1;
5253               x_source_brs_tbl(src_bill_rate_index).OBJECT1_ID2       := src_brs_rec.OBJECT1_ID2;
5254               x_source_brs_tbl(src_bill_rate_index).JTOT_OBJECT1_CODE := src_brs_rec.JTOT_OBJECT1_CODE;
5255               x_source_brs_tbl(src_bill_rate_index).BILL_RATE_CODE    := src_brs_rec.BILL_RATE_CODE;
5256               x_source_brs_tbl(src_bill_rate_index).FLAT_RATE         := src_brs_rec.FLAT_RATE;
5257               x_source_brs_tbl(src_bill_rate_index).UOM               := src_brs_rec.UOM;
5258               x_source_brs_tbl(src_bill_rate_index).HOLIDAY_YN        := src_brs_rec.HOLIDAY_YN;
5259               x_source_brs_tbl(src_bill_rate_index).PERCENT_OVER_LIST_PRICE  := src_brs_rec.PERC_OVER_LIST_PRICE;
5260 
5261                 END LOOP ;
5262 
5263           l_tgt_bill_rate_line_id:= x_target_bill_tbl(tgt_bill_type_index1).bill_type_line_id ;
5264 
5265              tgt_bill_rate_index:= 0;
5266 
5267              FOR tgt_brs_rec IN CUR_GET_BRS(l_tgt_bill_rate_line_id)    LOOP
5268              tgt_bill_rate_index:= tgt_bill_rate_index + 1 ;
5269 
5270               x_target_brs_tbl(tgt_bill_rate_index).START_HOUR        := tgt_brs_rec.START_HOUR;
5271               x_target_brs_tbl(tgt_bill_rate_index).START_MINUTE      := tgt_brs_rec.START_MINUTE;
5272               x_target_brs_tbl(tgt_bill_rate_index).END_HOUR          := tgt_brs_rec.END_HOUR;
5273               x_target_brs_tbl(tgt_bill_rate_index).END_MINUTE        := tgt_brs_rec.END_MINUTE;
5274               x_target_brs_tbl(tgt_bill_rate_index).MONDAY_FLAG       := tgt_brs_rec.MONDAY_FLAG;
5275               x_target_brs_tbl(tgt_bill_rate_index).TUESDAY_FLAG      := tgt_brs_rec.TUESDAY_FLAG;
5276               x_target_brs_tbl(tgt_bill_rate_index).WEDNESDAY_FLAG    := tgt_brs_rec.WEDNESDAY_FLAG;
5277               x_target_brs_tbl(tgt_bill_rate_index).THURSDAY_FLAG     := tgt_brs_rec.THURSDAY_FLAG;
5278               x_target_brs_tbl(tgt_bill_rate_index).FRIDAY_FLAG       := tgt_brs_rec.FRIDAY_FLAG;
5279               x_target_brs_tbl(tgt_bill_rate_index).SATURDAY_FLAG     := tgt_brs_rec.SATURDAY_FLAG;
5280               x_target_brs_tbl(tgt_bill_rate_index).SUNDAY_FLAG       := tgt_brs_rec.SUNDAY_FLAG;
5281               x_target_brs_tbl(tgt_bill_rate_index).OBJECT1_ID1       := tgt_brs_rec.OBJECT1_ID1;
5282               x_target_brs_tbl(tgt_bill_rate_index).OBJECT1_ID2       := tgt_brs_rec.OBJECT1_ID2;
5283               x_target_brs_tbl(tgt_bill_rate_index).JTOT_OBJECT1_CODE := tgt_brs_rec.JTOT_OBJECT1_CODE;
5284               x_target_brs_tbl(tgt_bill_rate_index).BILL_RATE_CODE    := tgt_brs_rec.BILL_RATE_CODE;
5285               x_target_brs_tbl(tgt_bill_rate_index).FLAT_RATE         := tgt_brs_rec.FLAT_RATE;
5286               x_target_brs_tbl(tgt_bill_rate_index).UOM               := tgt_brs_rec.UOM;
5287               x_target_brs_tbl(tgt_bill_rate_index).HOLIDAY_YN        := tgt_brs_rec.HOLIDAY_YN;
5288               x_target_brs_tbl(tgt_bill_rate_index).PERCENT_OVER_LIST_PRICE  := tgt_brs_rec.PERC_OVER_LIST_PRICE;
5289 
5290           END LOOP ;
5291 
5292               IF   x_source_brs_tbl.count <> x_target_brs_tbl.count Then
5293 
5294                   RAISE G_MISMATCH ;
5295              END IF ;
5296 
5297 
5298 
5299          IF x_source_brs_tbl.count > 0 Then
5300          FOR  src_bill_rate_index1 IN x_source_brs_tbl.FIRST..x_source_brs_tbl.LAST
5301          LOOP
5302          tgt_bill_rate_index1:= x_target_brs_tbl.FIRST ;
5303 
5304             LOOP
5305                IF x_source_brs_tbl(src_bill_rate_index1).START_HOUR = x_target_brs_tbl(tgt_bill_rate_index1).START_HOUR
5306           AND x_source_brs_tbl(src_bill_rate_index1).START_MINUTE = x_target_brs_tbl(tgt_bill_rate_index1).START_MINUTE
5307           AND x_source_brs_tbl(src_bill_rate_index1).END_HOUR = x_target_brs_tbl(tgt_bill_rate_index1).END_HOUR
5308           AND x_source_brs_tbl(src_bill_rate_index1).END_MINUTE = x_target_brs_tbl(tgt_bill_rate_index1).END_MINUTE
5309           AND x_source_brs_tbl(src_bill_rate_index1).MONDAY_FLAG = x_target_brs_tbl(tgt_bill_rate_index1).MONDAY_FLAG
5310           AND x_source_brs_tbl(src_bill_rate_index1).TUESDAY_FLAG = x_target_brs_tbl(tgt_bill_rate_index1).TUESDAY_FLAG
5311           AND x_source_brs_tbl(src_bill_rate_index1).WEDNESDAY_FLAG = x_target_brs_tbl(tgt_bill_rate_index1).WEDNESDAY_FLAG
5312           AND x_source_brs_tbl(src_bill_rate_index1).THURSDAY_FLAG = x_target_brs_tbl(tgt_bill_rate_index1).THURSDAY_FLAG
5313           AND x_source_brs_tbl(src_bill_rate_index1).FRIDAY_FLAG = x_target_brs_tbl(tgt_bill_rate_index1).FRIDAY_FLAG
5314           AND x_source_brs_tbl(src_bill_rate_index1).SATURDAY_FLAG = x_target_brs_tbl(tgt_bill_rate_index1).SATURDAY_FLAG
5315           AND x_source_brs_tbl(src_bill_rate_index1).SUNDAY_FLAG = x_target_brs_tbl(tgt_bill_rate_index1).SUNDAY_FLAG
5316           AND x_source_brs_tbl(src_bill_rate_index1).OBJECT1_ID1 = x_target_brs_tbl(tgt_bill_rate_index1).OBJECT1_ID1
5317           AND x_source_brs_tbl(src_bill_rate_index1).OBJECT1_ID2 = x_target_brs_tbl(tgt_bill_rate_index1).OBJECT1_ID2
5318           AND x_source_brs_tbl(src_bill_rate_index1).JTOT_OBJECT1_CODE = x_target_brs_tbl(tgt_bill_rate_index1).JTOT_OBJECT1_CODE
5319           AND x_source_brs_tbl(src_bill_rate_index1).BILL_RATE_CODE = x_target_brs_tbl(tgt_bill_rate_index1).BILL_RATE_CODE
5320           AND x_source_brs_tbl(src_bill_rate_index1).FLAT_RATE = x_target_brs_tbl(tgt_bill_rate_index1).FLAT_RATE
5321           AND x_source_brs_tbl(src_bill_rate_index1).UOM = x_target_brs_tbl(tgt_bill_rate_index1).UOM
5322           AND x_source_brs_tbl(src_bill_rate_index1).HOLIDAY_YN = x_target_brs_tbl(tgt_bill_rate_index1).HOLIDAY_YN
5323           AND x_source_brs_tbl(src_bill_rate_index1).PERCENT_OVER_LIST_PRICE = x_target_brs_tbl(tgt_bill_rate_index1).PERCENT_OVER_LIST_PRICE
5324           Then
5325 
5326           l_bill_rate:= 1 ;
5327 
5328           EXIT ;
5329 
5330           ELSE
5331            l_bill_rate:= 2 ;
5332        END IF ;
5333 
5334        EXIT WHEN(tgt_bill_rate_index1 = x_target_brs_tbl.LAST);
5335        tgt_bill_rate_index1:= x_target_brs_tbl.NEXT(tgt_bill_rate_index1);
5336 
5337        END LOOP ;
5338        IF l_bill_rate =  2 Then
5339 
5340             RAISE G_MISMATCH ;
5341         END IF ;
5342        END LOOP ;
5343        End if;
5344           END IF ;  -- for labor type = 'L'
5345         EXIT ;
5346 
5347             ELSE
5348             l_bill_type:= 2 ;
5349       END IF ;
5350 
5351        EXIT WHEN(tgt_bill_type_index1 = x_target_bill_tbl.LAST);
5352                  tgt_bill_type_index1:= x_target_bill_tbl.NEXT(tgt_bill_type_index1);
5353 
5354            END LOOP ;      -- INNER LOOP
5355       IF l_bill_type = 2 Then
5356 
5357          Raise G_Mismatch ;
5358     END IF ;
5359        END LOOP ; -- outer loop
5360   End If;
5361 
5362 -------------------END BILL TYPES/RATES--------------------------
5363 
5364 x_source_bp_tbl.DELETE;
5365 x_target_bp_tbl.DELETE;
5366 x_source_res_tbl_type.DELETE;
5367 x_target_res_tbl_type.DELETE;
5368 x_source_bp_cover_time_tbl.DELETE;
5369 x_target_bp_cover_time_tbl.DELETE;
5370 x_source_react_time_tbl.DELETE;
5371 x_target_react_time_tbl.DELETE;
5372 x_source_bill_tbl.DELETE;
5373 x_target_bill_tbl.DELETE;
5374 x_source_brs_tbl.DELETE;
5375 x_target_brs_tbl.DELETE;
5376 
5377 
5378 
5379      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
5380      x_coverage_match:= 'Y';
5381 
5382  Exception
5383 
5384   When G_MISMATCH THEN
5385      x_coverage_match:= 'N';
5386      x_return_status:= OKC_API.G_RET_STS_SUCCESS;
5387 
5388    WHEN OTHERS THEN
5389      OKC_API.set_message(G_APP_NAME,
5390 			  G_UNEXPECTED_ERROR,
5391 			  G_SQLCODE_TOKEN,
5392 			  SQLCODE,
5393 			  G_SQLERRM_TOKEN,
5394 			  SQLERRM);
5395       -- notify caller of an UNEXPECTED error
5396       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
5397       x_coverage_match:= 'E';
5398 
5399 
5400 END CHECK_COVERAGE_MATCH;
5401 
5402 Procedure CHECK_TimeZone_Exists
5403    ( p_api_version	        IN NUMBER,
5404     p_init_msg_list         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
5405     x_return_status         OUT NOCOPY VARCHAR2,
5406     x_msg_count             OUT NOCOPY NUMBER,
5407     x_msg_data              OUT NOCOPY VARCHAR2,
5408     P_BP_Line_ID	   	    IN NUMBER,
5409     P_TimeZone_Id  			IN NUMBER,
5410     x_TimeZone_Exists       OUT NOCOPY VARCHAR2) IS
5411 
5412 		l_Cle_ID        NUMBER;
5413 		l_timezone_id   NUMBER;
5414 		l_dummy         VARCHAR2(1) := NULL;
5415 
5416 		CURSOR Check_CovTime_Zone(l_cle_id IN NUMBER,l_timezone_id IN NUMBER) IS
5417 		SELECT 'X'
5418 		FROM    OKS_COVERAGE_TIMEZONES
5419 		WHERE   cle_id = l_cle_id
5420 		AND     timezone_id = l_timezone_id;
5421 
5422 BEGIN
5423 
5424 		l_Cle_ID := P_BP_Line_ID;
5425 		l_timezone_id := P_TimeZone_Id;
5426 
5427 		OPEN Check_CovTime_Zone(l_Cle_ID,l_timezone_id);
5428 			FETCH Check_CovTime_Zone INTO l_dummy;
5429 		CLOSE Check_CovTime_Zone;
5430 
5431 				IF l_dummy = 'X' THEN
5432 					x_TimeZone_Exists := 'Y';
5433 				ELSE
5434    		 			x_TimeZone_Exists := 'N';
5435 				END IF;
5436 
5437      	x_return_status:= OKC_API.G_RET_STS_SUCCESS;
5438 
5439 EXCEPTION
5440     WHEN OTHERS THEN
5441 
5442     OKC_API.SET_MESSAGE(
5443       p_app_name        => g_app_name,
5444       p_msg_name        => g_unexpected_error,
5445       p_token1	        => g_sqlcode_token,
5446       p_token1_value    => sqlcode,
5447       p_token2          => g_sqlerrm_token,
5448       p_token2_value    => sqlerrm);
5449 
5450     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
5451 
5452 
5453 END CHECK_TimeZone_Exists;
5454 
5455 
5456 
5457 
5458 PROCEDURE  CREATE_ADJUSTED_COVERAGE(
5459     p_api_version     IN NUMBER,
5460     p_init_msg_list         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
5461     x_return_status         OUT NOCOPY VARCHAR2,
5462     x_msg_count             OUT NOCOPY NUMBER,
5463     x_msg_data              OUT NOCOPY VARCHAR2,
5464     P_Source_contract_Line_Id       IN NUMBER,
5465     P_Target_contract_Line_Id       IN NUMBER,
5466     x_Actual_coverage_id    OUT NOCOPY NUMBER) IS
5467 
5468   CURSOR Cur_LineDet (P_Line_Id IN NUMBER) IS
5469   SELECT ID FROM OKC_K_LINES_v
5470   WHERE CLE_ID= P_Line_Id
5471   AND   LSE_ID in (2,15,20);
5472 
5473   CURSOR Cur_LineDet1 (P_Line_Id IN NUMBER) IS
5474   SELECT Start_Date,End_Date FROM OKC_K_LINES_v
5475   WHERE ID= P_Line_Id;
5476 
5477   l_cov_id                         OKC_K_LINES_V.ID%TYPE;
5478   l_start_date                     OKC_K_LINES_V.START_DATE%TYPE;
5479   l_end_date                       OKC_K_LINES_V.END_DATE%TYPE;
5480 
5481   l_api_version		               CONSTANT	NUMBER     := 1.0;
5482   l_init_msg_list	               CONSTANT	VARCHAR2(1):= 'F';
5483   l_return_status	               VARCHAR2(1);
5484   l_msg_count		               NUMBER;
5485   l_msg_data		               VARCHAR2(2000):=null;
5486   l_msg_index_out                  Number;
5487   l_Source_contract_Line_Id        CONSTANT	NUMBER     := P_Source_contract_Line_Id;
5488   l_Target_contract_Line_Id        CONSTANT	NUMBER     := P_Target_contract_Line_Id;
5489   l_Actual_coverage_id             NUMBER;
5490   l_api_name                       CONSTANT VARCHAR2(30) := 'create_adjusted_coverage';
5491   l_ac_rec_in                      OKS_COVERAGES_PVT.ac_rec_type;
5492 
5493 -----------------------------------------
5494 BEGIN
5495 
5496 
5497   IF (G_DEBUG_ENABLED = 'Y') THEN
5498         okc_debug.Set_Indentation('Create_Adjusted_Coverage');
5499         okc_debug.log('Entered Create_Adjusted_Coverage', 2);
5500   END IF;
5501 
5502   l_ac_rec_in.svc_cle_id    := l_Target_contract_Line_Id;
5503 
5504 
5505   OPEN Cur_LineDet(l_Source_contract_Line_Id);
5506   FETCH Cur_LineDet INTO l_cov_Id;
5507   IF Cur_LineDet%FOUND
5508   THEN
5509      l_ac_rec_in.tmp_cle_id := l_cov_Id;
5510   ELSE
5511     OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'Coverage does not exist');
5512     CLOSE Cur_LineDet;
5513     l_return_status := OKC_API.G_RET_STS_ERROR;
5514     RAISE G_EXCEPTION_HALT_VALIDATION;
5515   END IF;
5516   CLOSE Cur_LineDet;
5517 
5518   OPEN Cur_LineDet1(l_Target_contract_Line_Id);
5519   FETCH Cur_LineDet1 INTO l_start_date,l_end_date;
5520   IF Cur_LineDet1%FOUND
5521   THEN
5522      l_ac_rec_in.Start_date := l_Start_date;
5523      l_ac_rec_in.End_date   := l_End_date;
5524   ELSE
5525     OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'Target contract line does not exist');
5526     CLOSE Cur_LineDet1;
5527     l_return_status := OKC_API.G_RET_STS_ERROR;
5528     RAISE G_EXCEPTION_HALT_VALIDATION;
5529   END IF;
5530   CLOSE Cur_LineDet1;
5531 
5532   IF (G_DEBUG_ENABLED = 'Y') THEN
5533             okc_debug.log('Before create_actual_coverage', 2);
5534   END IF;
5535 
5536     OKS_COVERAGES_PVT.CREATE_ACTUAL_COVERAGE(
5537                 p_api_version           => l_api_version,
5538                 p_init_msg_list         => 'F',
5539                 x_return_status         => l_return_status,
5540                 x_msg_count             => l_msg_count,
5541                 x_msg_data              => l_msg_data,
5542                 p_ac_rec_in             => l_ac_rec_in,
5543                 p_restricted_update     => 'T',   -- 'F', modified based on bug 5493713
5544                 x_Actual_coverage_id    => l_Actual_coverage_id);
5545 
5546   IF (G_DEBUG_ENABLED = 'Y') THEN
5547             okc_debug.log('After create_actual_coverage '||l_return_status, 2);
5548   END IF;
5549 
5550    /*  IF nvl(l_return_status,'*') <> 'S'
5551       THEN
5552         IF l_msg_count > 0
5553         THEN
5554           FOR i in 1..l_msg_count
5555           LOOP
5556             fnd_msg_pub.get (p_msg_index     => -1,
5557                          p_encoded       => 'T', -- OKC$APPLICATION.GET_FALSE,
5558                          p_data          => l_msg_data,
5559                          p_msg_index_out => l_msg_index_out);
5560           END LOOP;
5561         END IF;*/
5562 
5563       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
5564         RAISE G_EXCEPTION_HALT_VALIDATION;
5565       END IF;
5566 
5567       x_return_status         := l_return_status;
5568       x_Actual_coverage_id    := l_Actual_coverage_id;
5569 
5570 
5571 
5572       IF (G_DEBUG_ENABLED = 'Y') THEN
5573            okc_debug.log('End of CREATE_ADJUSTED_COVERAGE'||l_return_status, 2);
5574            okc_debug.Reset_Indentation;
5575       END IF;
5576 
5577 EXCEPTION
5578   WHEN G_EXCEPTION_HALT_VALIDATION THEN
5579 
5580       IF (G_DEBUG_ENABLED = 'Y') THEN
5581            okc_debug.log('Exp of CREATE_ADJUSTED_COVERAGE'||SQLERRM, 2);
5582            okc_debug.Reset_Indentation;
5583       END IF;
5584       x_return_status := l_return_status ;
5585   /*    x_msg_count :=l_msg_count;
5586       x_msg_data:=l_msg_data;
5587       x_return_status := OKC_API.HANDLE_EXCEPTIONS
5588       (
5589         l_api_name,
5590         'Create_actual_coverage',
5591         'OKC_API.G_RET_STS_ERROR',
5592         x_msg_count,
5593         x_msg_data,
5594         '_PVT'
5595       );
5596     WHEN OKC_API.G_EXCEPTION_ERROR THEN
5597       x_msg_count :=l_msg_count;
5598       x_msg_data:=l_msg_data;
5599       x_return_status := OKC_API.HANDLE_EXCEPTIONS
5600       (
5601         l_api_name,
5602         'Create_actual_coverage',
5603         'OKC_API.G_RET_STS_ERROR',
5604         x_msg_count,
5605         x_msg_data,
5606         '_PVT'
5607       );
5608     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5609       x_msg_count :=l_msg_count;
5610       x_msg_data:=l_msg_data;
5611       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
5612       (
5613         l_api_name,
5614         'Create_actual_coverage',
5615         'OKC_API.G_RET_STS_UNEXP_ERROR',
5616         x_msg_count,
5617         x_msg_data,
5618         '_PVT'
5619       );
5620       */
5621 
5622  WHEN OTHERS THEN
5623 
5624       IF (G_DEBUG_ENABLED = 'Y') THEN
5625            okc_debug.log('Exp of CREATE_ADJUSTED_COVERAGE'||SQLERRM, 2);
5626            okc_debug.Reset_Indentation;
5627       END IF;
5628 
5629       OKC_API.SET_MESSAGE(
5630         p_app_name        => g_app_name,
5631         p_msg_name        => g_unexpected_error,
5632         p_token1	        => g_sqlcode_token,
5633         p_token1_value    => sqlcode,
5634         p_token2          => g_sqlerrm_token,
5635         p_token2_value    => sqlerrm);
5636        -- notify caller of an error as UNEXPETED error
5637         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
5638         x_msg_count :=l_msg_count;
5639  END CREATE_ADJUSTED_COVERAGE;
5640 
5641  --=============================================================================
5642 
5643  PROCEDURE INIT_BILL_RATE_LINE(x_bill_rate_tbl OUT  NOCOPY OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE)
5644 IS
5645 
5646 BEGIN
5647 
5648 x_bill_rate_tbl(1).id        := okc_api.g_miss_num ;
5649 x_bill_rate_tbl(1).cle_id    := okc_api.g_miss_num ;
5650 x_bill_rate_tbl(1).bt_cle_id    := okc_api.g_miss_num ;
5651 x_bill_rate_tbl(1).dnz_chr_id   := okc_api.g_miss_num;
5652 x_bill_rate_tbl(1).start_hour    := okc_api.g_miss_num ;
5653 x_bill_rate_tbl(1).start_minute    := okc_api.g_miss_num ;
5654 x_bill_rate_tbl(1).end_hour    := okc_api.g_miss_num ;
5655 x_bill_rate_tbl(1).end_minute    := okc_api.g_miss_num ;
5656 x_bill_rate_tbl(1).monday_flag    := okc_api.g_miss_char ;
5657 x_bill_rate_tbl(1).tuesday_flag    := okc_api.g_miss_char ;
5658 x_bill_rate_tbl(1).wednesday_flag    := okc_api.g_miss_char ;
5659 x_bill_rate_tbl(1).thursday_flag    := okc_api.g_miss_char ;
5660 x_bill_rate_tbl(1).friday_flag    := okc_api.g_miss_char ;
5661 x_bill_rate_tbl(1).saturday_flag    := okc_api.g_miss_char ;
5662 x_bill_rate_tbl(1).sunday_flag    := okc_api.g_miss_char ;
5663 x_bill_rate_tbl(1).object1_id1    := okc_api.g_miss_char ;
5664 x_bill_rate_tbl(1).object1_id2    := okc_api.g_miss_char ;
5665 x_bill_rate_tbl(1).jtot_object1_code    := okc_api.g_miss_char ;
5666 x_bill_rate_tbl(1).bill_rate_code    := okc_api.g_miss_char ;
5667 x_bill_rate_tbl(1).flat_rate    := okc_api.g_miss_num ;
5668 x_bill_rate_tbl(1).uom    := okc_api.g_miss_char ;
5669 x_bill_rate_tbl(1).holiday_yn    := okc_api.g_miss_char ;
5670 x_bill_rate_tbl(1).percent_over_list_price    := okc_api.g_miss_num ;
5671 x_bill_rate_tbl(1).program_application_id := okc_api.g_miss_num ;
5672 x_bill_rate_tbl(1).program_id                  := okc_api.g_miss_num ;
5673 x_bill_rate_tbl(1).program_update_date     := okc_api.g_miss_date ;
5674 x_bill_rate_tbl(1).request_id              := okc_api.g_miss_num ;
5675 x_bill_rate_tbl(1).created_by    := okc_api.g_miss_num ;
5676 x_bill_rate_tbl(1).creation_date    := okc_api.g_miss_date ;
5677 x_bill_rate_tbl(1).last_updated_by    := okc_api.g_miss_num ;
5678 x_bill_rate_tbl(1).last_update_date    := okc_api.g_miss_date ;
5679 x_bill_rate_tbl(1).last_update_login    := okc_api.g_miss_num ;
5680 x_bill_rate_tbl(1).security_group_id    := okc_api.g_miss_num ;
5681 
5682 END ;
5683 --===========================================================================================
5684 
5685 PROCEDURE Validate_billrate_schedule(p_billtype_line_id IN NUMBER,
5686                                      p_holiday_yn IN varchar2,
5687                                      x_days_overlap OUT  NOCOPY billrate_day_overlap_type,
5688                                      x_return_status OUT  NOCOPY VARCHAR2)
5689 IS
5690 
5691 TYPE billrate_schedule_rec IS RECORD
5692  (start_time NUMBER,
5693   end_time NUMBER);
5694 TYPE billrate_schedule_tbl_type IS TABLE OF billrate_schedule_rec
5695 INDEX BY BINARY_INTEGER;
5696 i number := 0;
5697 l_overlap_yn varchar2(1);
5698 l_overlap_message   VARCHAR2(200);
5699 
5700 l_time_tbl   billrate_schedule_tbl_type;
5701 l_api_name VARCHAR2(50):= 'VALIDATE_BILLRATE_SCHEDULE';
5702 x_msg_count NUMBER;
5703 x_msg_data VARCHAR2(2000);
5704 l_overlap_days varchar2(1000) := NULL;
5705 
5706 CURSOR Cur_monday(l_bt_id IN NUMBER, l_holiday IN Varchar2) IS
5707 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
5708        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
5709 FROM OKS_BILLRATE_SCHEDULES_V
5710 WHERE BT_CLE_ID = l_bt_id
5711 AND MONDAY_FLAG = 'Y'
5712 AND holiday_yn = l_holiday;
5713 
5714 CURSOR Cur_tuesday(l_bt_id IN NUMBER, l_holiday IN Varchar2) IS
5715 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
5716        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
5717 FROM OKS_BILLRATE_SCHEDULES_V
5718 WHERE BT_CLE_ID = l_bt_id
5719 AND TUESDAY_FLAG = 'Y'
5720 AND holiday_yn = l_holiday;
5721 
5722 CURSOR Cur_wednesday(l_bt_id IN NUMBER, l_holiday IN Varchar2) IS
5723 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
5724        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
5725 FROM OKS_BILLRATE_SCHEDULES_V
5726 WHERE BT_CLE_ID = l_bt_id
5727 AND WEDNESDAY_FLAG = 'Y'
5728 AND holiday_yn = l_holiday;
5729 
5730 CURSOR Cur_thursday(l_bt_id IN NUMBER, l_holiday IN Varchar2) IS
5731 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
5732        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
5733 FROM OKS_BILLRATE_SCHEDULES_V
5734 WHERE BT_CLE_ID = l_bt_id
5735 AND THURSDAY_FLAG = 'Y'
5736 AND holiday_yn = l_holiday;
5737 
5738 CURSOR Cur_friday(l_bt_id IN NUMBER, l_holiday IN Varchar2) IS
5739 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
5740        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
5741 FROM OKS_BILLRATE_SCHEDULES_V
5742 WHERE BT_CLE_ID = l_bt_id
5743 AND FRIDAY_FLAG = 'Y'
5744 AND holiday_yn = l_holiday;
5745 
5746 CURSOR Cur_saturday(l_bt_id IN NUMBER, l_holiday IN Varchar2) IS
5747 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
5748        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
5749 FROM OKS_BILLRATE_SCHEDULES_V
5750 WHERE BT_CLE_ID = l_bt_id
5751 AND SATURDAY_FLAG = 'Y'
5752 AND holiday_yn = l_holiday;
5753 
5754 CURSOR Cur_sunday(l_bt_id IN NUMBER, l_holiday IN Varchar2) IS
5755 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
5756        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
5757 FROM OKS_BILLRATE_SCHEDULES_V
5758 WHERE BT_CLE_ID = l_bt_id
5759 AND SUNDAY_FLAG = 'Y'
5760 AND holiday_yn = l_holiday;
5761 
5762 --Define cursors for other days.
5763 FUNCTION get_day_meaning (p_day_code IN varchar2)
5764 RETURN varchar2
5765 IS
5766 CURSOR Get_day IS
5767 SELECT meaning from fnd_lookups where lookup_type = 'DAY_NAME'
5768 and lookup_code = p_day_code;
5769 l_day_meaning VARCHAR2(100);
5770 
5771 BEGIN
5772   OPEN Get_day;
5773   FETCH Get_day INTO l_day_meaning;
5774   CLOSE Get_day;
5775   return nvl(l_day_meaning,NULL);
5776 end get_day_meaning ;
5777 
5778 PROCEDURE Check_overlap(p_time_tbl IN billrate_schedule_tbl_type,
5779                         p_overlap_yn OUT NOCOPY Varchar2)
5780 IS
5781 
5782 l_start NUMBER;
5783 l_end   NUMBER;
5784 
5785 l_start_new NUMBER;
5786 l_end_new   NUMBER;
5787 j number := 0;
5788 k number := 0;
5789 
5790 BEGIN
5791 p_overlap_yn := 'N';
5792 FOR j in 1 .. p_time_tbl.COUNT
5793 LOOP
5794 l_start := p_time_tbl(j).start_time;
5795 l_end := p_time_tbl(j).end_time;
5796 
5797   FOR k in 1 .. p_time_tbl.COUNT
5798   LOOP
5799         l_start_new := p_time_tbl(k).start_time;
5800         l_end_new := p_time_tbl(k).end_time;
5801         IF j <> k then
5802                 IF (l_start_new <= l_end and l_start_new >= l_start)
5803             OR (l_end_new >= l_start and l_end_new <=  l_end) then
5804 
5805             IF (l_start_new = l_end )
5806                    OR (l_end_new = l_start ) then
5807                     IF p_overlap_yn <> 'Y' then
5808                        p_overlap_yn := 'N';
5809                     END IF ;
5810                  else
5811                     p_overlap_yn := 'Y';
5812              END IF ;
5813 
5814 
5815           END IF;
5816         END IF;
5817   END LOOP;
5818 
5819 END LOOP;
5820 
5821 
5822 --write the validation logic
5823 END Check_overlap;
5824 
5825 
5826 BEGIN
5827 --l_overlap_message := 'The following days have overlap :';
5828 -- Validating for Monday.
5829 x_return_status         := OKC_API.G_RET_STS_SUCCESS;
5830 l_time_tbl.DELETE;
5831 FOR monday_rec IN Cur_monday(p_billtype_line_id, p_holiday_yn)
5832 LOOP
5833 
5834 i := i + 1;
5835 l_time_tbl(i).start_time := monday_rec.start_time;
5836 l_time_tbl(i).end_time := monday_rec.end_time;
5837 END LOOP;
5838 l_overlap_yn := 'N';
5839 
5840 IF l_time_tbl.COUNT > 0 then
5841 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.monday_overlap);
5842 
5843    IF x_days_overlap.monday_overlap = 'Y' then
5844       l_overlap_days := get_day_meaning('MON')||',';
5845    END IF;
5846 
5847 end if;
5848 
5849 -- Validating for Tuesday.
5850 
5851 l_time_tbl.DELETE;
5852 i := 0;
5853 
5854 FOR tuesday_rec IN Cur_tuesday(p_billtype_line_id, p_holiday_yn)
5855 LOOP
5856 i := i + 1;
5857 l_time_tbl(i).start_time := tuesday_rec.start_time;
5858 l_time_tbl(i).end_time := tuesday_rec.end_time;
5859 END LOOP;
5860 l_overlap_yn := 'N';
5861 IF l_time_tbl.COUNT > 0 then
5862 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.tuesday_overlap);
5863    IF x_days_overlap.tuesday_overlap = 'Y' then
5864       l_overlap_days := l_overlap_days||get_day_meaning('TUE')||',';
5865    END IF;
5866 
5867 end if;
5868 
5869 -- Validating for wednesday.
5870 
5871 l_time_tbl.DELETE;
5872 i := 0;
5873 
5874 FOR wednesday_rec IN Cur_wednesday(p_billtype_line_id, p_holiday_yn)
5875 LOOP
5876 i := i + 1;
5877 l_time_tbl(i).start_time := wednesday_rec.start_time;
5878 l_time_tbl(i).end_time := wednesday_rec.end_time;
5879 END LOOP;
5880 l_overlap_yn := 'N';
5881 IF l_time_tbl.COUNT > 0 then
5882 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.wednesday_overlap);
5883    IF x_days_overlap.wednesday_overlap = 'Y' then
5884       l_overlap_days := l_overlap_days||get_day_meaning('WED')||',';
5885    END IF;
5886 
5887 end if;
5888 
5889 -- Validating for thursday.
5890 
5891 l_time_tbl.DELETE;
5892 i := 0;
5893 
5894 FOR thursday_rec IN Cur_thursday(p_billtype_line_id, p_holiday_yn)
5895 LOOP
5896 i := i + 1;
5897 l_time_tbl(i).start_time := thursday_rec.start_time;
5898 l_time_tbl(i).end_time := thursday_rec.end_time;
5899 END LOOP;
5900 l_overlap_yn := 'N';
5901 IF l_time_tbl.COUNT > 0 then
5902 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.thursday_overlap);
5903    IF x_days_overlap.thursday_overlap = 'Y' then
5904       l_overlap_days := l_overlap_days||get_day_meaning('THU')||',';
5905    END IF;
5906 
5907 end if;
5908 
5909 -- Validating for friday.
5910 
5911 l_time_tbl.DELETE;
5912 i := 0;
5913 
5914 FOR friday_rec IN Cur_friday(p_billtype_line_id, p_holiday_yn)
5915 LOOP
5916 i := i + 1;
5917 l_time_tbl(i).start_time := friday_rec.start_time;
5918 l_time_tbl(i).end_time := friday_rec.end_time;
5919 END LOOP;
5920 l_overlap_yn := 'N';
5921 IF l_time_tbl.COUNT > 0 then
5922 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.friday_overlap);
5923    IF x_days_overlap.friday_overlap = 'Y' then
5924       l_overlap_days := l_overlap_days||get_day_meaning('FRI')||',';
5925    END IF;
5926 
5927 end if;
5928 
5929 -- Validating for saturday.
5930 
5931 l_time_tbl.DELETE;
5932 i := 0;
5933 
5934 FOR saturday_rec IN Cur_saturday(p_billtype_line_id, p_holiday_yn)
5935 LOOP
5936 i := i + 1;
5937 l_time_tbl(i).start_time := saturday_rec.start_time;
5938 l_time_tbl(i).end_time := saturday_rec.end_time;
5939 END LOOP;
5940 l_overlap_yn := 'N';
5941 IF l_time_tbl.COUNT > 0 then
5942 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.saturday_overlap);
5943    IF x_days_overlap.saturday_overlap = 'Y' then
5944       l_overlap_days := l_overlap_days||get_day_meaning('SAT')||',';
5945    END IF;
5946 
5947 end if;
5948 
5949 -- Validating for sunday.
5950 
5951 l_time_tbl.DELETE;
5952 i := 0;
5953 
5954 FOR sunday_rec IN Cur_sunday(p_billtype_line_id, p_holiday_yn)
5955 LOOP
5956 i := i + 1;
5957 l_time_tbl(i).start_time := sunday_rec.start_time;
5958 l_time_tbl(i).end_time := sunday_rec.end_time;
5959 END LOOP;
5960 l_overlap_yn := 'N';
5961 IF l_time_tbl.COUNT > 0 then
5962 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.sunday_overlap);
5963    IF x_days_overlap.sunday_overlap = 'Y' then
5964       l_overlap_days := l_overlap_days||get_day_meaning('SUN')||',';
5965    END IF;
5966 
5967 END IF;
5968 
5969    IF l_overlap_days IS not null then
5970             fnd_message.set_name('OKS','OKS_BILLRATE_DAYS_OVERLAP');
5971             fnd_message.set_token('DAYS', l_overlap_days);
5972    END IF;
5973 
5974 x_return_status         := OKC_API.G_RET_STS_SUCCESS;
5975 
5976 EXCEPTION
5977 
5978 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
5979       x_return_status := OKC_API.HANDLE_EXCEPTIONS
5980       (
5981         l_api_name,
5982         G_PKG_NAME,
5983         'OKC_API.G_RET_STS_UNEXP_ERROR',
5984         x_msg_count,
5985         x_msg_data,
5986         '_PVT'
5987       );
5988       ROLLBACK;
5989     WHEN OTHERS THEN
5990       x_return_status := OKC_API.HANDLE_EXCEPTIONS
5991       (
5992         l_api_name,
5993         G_PKG_NAME,
5994         'OTHERS',
5995         x_msg_count,
5996         x_msg_data,
5997         '_PVT'
5998       );
5999       ROLLBACK ;
6000 
6001 END; -- Validate_billrate_schedule;
6002 
6003 
6004 --=======================================================================================
6005 PROCEDURE INIT_CONTRACT_LINE (x_clev_tbl OUT NOCOPY  OKC_CONTRACT_PUB.clev_tbl_type)
6006 IS
6007 BEGIN
6008 
6009     x_clev_tbl(1).id := NULL;
6010     x_clev_tbl(1).object_version_number := NULL;
6011     x_clev_tbl(1).sfwt_flag := NULL;
6012     x_clev_tbl(1).chr_id := NULL ;
6013     x_clev_tbl(1).cle_id := NULL ;
6014     x_clev_tbl(1).lse_id := NULL ;
6015     x_clev_tbl(1).line_number := NULL ;
6016     x_clev_tbl(1).sts_code := NULL ;
6017     x_clev_tbl(1).display_sequence := NULL ;
6018     x_clev_tbl(1).trn_code := NULL ;
6019     x_clev_tbl(1).name := NULL ;
6020     x_clev_tbl(1).comments := NULL ;
6021     x_clev_tbl(1).item_description := NULL ;
6022     x_clev_tbl(1).hidden_ind := NULL ;
6023     x_clev_tbl(1).price_negotiated := NULL ;
6024     x_clev_tbl(1).price_level_ind := NULL ;
6025     x_clev_tbl(1).dpas_rating := NULL ;
6026     x_clev_tbl(1).block23text := NULL ;
6027     x_clev_tbl(1).exception_yn := NULL ;
6028     x_clev_tbl(1).template_used := NULL ;
6029     x_clev_tbl(1).date_terminated := NULL ;
6030     x_clev_tbl(1).start_date := NULL ;
6031     x_clev_tbl(1).attribute_category := NULL ;
6032     x_clev_tbl(1).attribute1 := NULL ;
6033     x_clev_tbl(1).attribute2 := NULL ;
6034     x_clev_tbl(1).attribute3 := NULL ;
6035     x_clev_tbl(1).attribute4 := NULL ;
6036     x_clev_tbl(1).attribute5 := NULL ;
6037     x_clev_tbl(1).attribute6 := NULL ;
6038     x_clev_tbl(1).attribute7 := NULL ;
6039     x_clev_tbl(1).attribute8 := NULL ;
6040     x_clev_tbl(1).attribute9 := NULL ;
6041     x_clev_tbl(1).attribute10 := NULL ;
6042     x_clev_tbl(1).attribute11 := NULL ;
6043     x_clev_tbl(1).attribute12 := NULL ;
6044     x_clev_tbl(1).attribute13 := NULL ;
6045     x_clev_tbl(1).attribute14 := NULL ;
6046     x_clev_tbl(1).attribute15 := NULL ;
6047     x_clev_tbl(1).created_by := NULL ;
6048     x_clev_tbl(1).creation_date := NULL ;
6049     x_clev_tbl(1).last_updated_by := NULL ;
6050     x_clev_tbl(1).last_update_date := NULL ;
6051     x_clev_tbl(1).price_type:= NULL ;
6052     x_clev_tbl(1).currency_code := NULL ;
6053     x_clev_tbl(1).last_update_login := NULL ;
6054     x_clev_tbl(1).dnz_chr_id := NULL ;
6055 
6056     END ; -- INIT_CONTRACT_LINE
6057     --=================================================
6058 
6059 
6060 PROCEDURE  OKS_MIGRATE_BILLRATES(
6061     p_api_version                   IN NUMBER,
6062     p_init_msg_list                 IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
6063     x_return_status                 OUT NOCOPY VARCHAR2,
6064     x_msg_count                     OUT NOCOPY NUMBER,
6065     x_msg_data                      OUT NOCOPY VARCHAR2)
6066     IS
6067 
6068     CURSOR CUR_GET_BILLRATES IS
6069 
6070      SELECT lines1.id billtype_line_id,
6071             lines2.id billrate_line_id,
6072             orgb.id  rule_group_id,
6073             rules.id rule_id,
6074             rules.dnz_chr_id rule_dnz_chr_id,
6075             rules.created_by,
6076             rules.creation_date,
6077             rules.last_updated_by,
6078             rules.last_update_date,
6079             rules.last_update_login,
6080             rules.rule_information_category,
6081             rules.rule_information1 uom, -- uom
6082             rules.rule_information2 flat_rate, -- flat_rate
6083             rules.rule_information3 percent_over_list_price, -- %over_list_price
6084             rules.rule_information4 bill_rate_code,          -- bill_rate_code
6085             NVL(rules.TEMPLATE_YN,'N') TEMPLATE_YN
6086             FROM
6087             OKC_K_LINES_B lines1,
6088             OKC_K_LINES_B lines2,
6089             OKC_RULE_GROUPS_B orgb,
6090             OKC_RULES_B rules
6091             WHERE
6092 				lines1.lse_id IN (5,23,59)
6093             AND lines2.lse_id IN (6,24,60)
6094 			AND lines1.dnz_chr_id = lines2.dnz_chr_id
6095             AND lines2.cle_id = lines1.id
6096             AND lines2.id = orgb.cle_id
6097             AND lines2.dnz_chr_id = orgb.dnz_chr_id
6098             AND  rules.rgp_id = orgb.id
6099             AND  rules.dnz_chr_id = orgb.dnz_chr_id
6100             AND rules.rule_information_category = 'RSL'
6101             AND rules.rule_information9 IS NULL ; -- upgrade_flag
6102 
6103    l_bill_rate_tbl_in     OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE ;
6104    x_bill_rate_tbl_out    OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE ;
6105 
6106     l_check_Flag  VARCHAR2(1) := 'N';
6107   l_api_version		CONSTANT	NUMBER     := 1.0;
6108   l_init_msg_list	CONSTANT	VARCHAR2(1):= 'F';
6109   l_return_status	VARCHAR2(1);
6110   l_msg_count		NUMBER;
6111   l_msg_data		VARCHAR2(2000):=null;
6112   l_api_name VARCHAR2(80):= 'OKS_MIGRATE_BILLRATES';
6113   G_PKG_NAME VARCHAR2(80):= 'OKS_COVERAGES_PVT' ;
6114 
6115   l_rulv_tbl_in        okc_rule_pub.rulv_tbl_type ;
6116   l_rulv_tbl_out       okc_rule_pub.rulv_tbl_type ;
6117 BEGIN
6118 
6119  FOR br_rec IN CUR_GET_BILLRATES
6120  LOOP
6121     l_check_Flag := 'Y';
6122 
6123    INIT_BILL_RATE_LINE (l_bill_rate_tbl_in) ;
6124 
6125     l_bill_rate_tbl_in(1).cle_id := br_rec.billrate_line_id ;
6126     l_bill_rate_tbl_in(1).bt_cle_id := br_rec.billtype_line_id ;
6127     l_bill_rate_tbl_in(1).dnz_chr_id := br_rec.rule_dnz_chr_id;
6128     l_bill_rate_tbl_in(1).start_hour := NULL ;
6129     l_bill_rate_tbl_in(1).start_minute := NULL;
6130     l_bill_rate_tbl_in(1).end_hour := NULL ;
6131     l_bill_rate_tbl_in(1).end_minute := NULL;
6132     l_bill_rate_tbl_in(1).monday_flag := NULL;
6133     l_bill_rate_tbl_in(1).tuesday_flag := NULL;
6134     l_bill_rate_tbl_in(1).wednesday_flag := NULL;
6135     l_bill_rate_tbl_in(1).thursday_flag := NULL;
6136     l_bill_rate_tbl_in(1).friday_flag := NULL;
6137     l_bill_rate_tbl_in(1).saturday_flag := NULL;
6138     l_bill_rate_tbl_in(1).sunday_flag := NULL;
6139     l_bill_rate_tbl_in(1).object1_id1    := NULL;
6140     l_bill_rate_tbl_in(1).object1_id2    := NULL;
6141     l_bill_rate_tbl_in(1).bill_rate_code    := br_rec.bill_rate_code;
6142     l_bill_rate_tbl_in(1).flat_rate    := br_rec.flat_rate ;
6143     l_bill_rate_tbl_in(1).uom    := br_rec.uom;
6144     l_bill_rate_tbl_in(1).holiday_yn    := 'N';
6145     l_bill_rate_tbl_in(1).percent_over_list_price    := br_rec.percent_over_list_price;
6146     l_bill_rate_tbl_in(1).program_application_id := NULL;
6147     l_bill_rate_tbl_in(1).program_id := NULL;
6148     l_bill_rate_tbl_in(1).program_update_date := NULL;
6149     l_bill_rate_tbl_in(1).request_id := NULL;
6150     l_bill_rate_tbl_in(1).created_by    := br_rec.created_by ;
6151     l_bill_rate_tbl_in(1).creation_date    := br_rec.creation_date;
6152     l_bill_rate_tbl_in(1).last_updated_by    := br_rec.last_updated_by;
6153     l_bill_rate_tbl_in(1).last_update_date    := br_rec.last_update_date;
6154     l_bill_rate_tbl_in(1).last_update_login    := br_rec.last_update_login;
6155     l_bill_rate_tbl_in(1).security_group_id    := NULL;
6156     l_bill_rate_tbl_in(1).object_version_number    := 1; --Added
6157 
6158 
6159  OKS_BRS_PVT.INSERT_ROW(
6160     p_api_version      => l_api_version,
6161     p_init_msg_list    => l_init_msg_list,
6162     x_return_status    => l_return_status,
6163     x_msg_count        => l_msg_count,
6164     x_msg_data         => l_msg_data,
6165     p_oks_billrate_schedules_v_tbl => l_bill_rate_tbl_in,
6166     x_oks_billrate_schedules_v_tbl => x_bill_rate_tbl_out);
6167 
6168 
6169     IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
6170          RAISE G_EXCEPTION_HALT_VALIDATION;
6171     END IF;
6172 
6173       x_return_status         := l_return_status;
6174 
6175  UPDATE okc_rules_b
6176  SET rule_information9 = 'Y'
6177  WHERE id = br_rec.rule_id ;
6178 
6179 END LOOP ;
6180 
6181     IF l_check_Flag = 'N' THEN --Added
6182 
6183         UPDATE  OKS_BILLRATE_SCHEDULES
6184         SET     object_version_number = 1 ;
6185 
6186     END IF;
6187 
6188 x_return_status         := OKC_API.G_RET_STS_SUCCESS;
6189 EXCEPTION
6190 
6191 
6192 WHEN  G_EXCEPTION_RULE_UPDATE THEN
6193  x_return_status := OKC_API.HANDLE_EXCEPTIONS
6194        ( l_api_name,
6195         G_PKG_NAME,
6196         'OKC_API.G_RET_STS_ERROR',
6197         x_msg_count,
6198         x_msg_data,
6199         '_PVT'
6200       );
6201       ROLLBACK ;
6202 
6203    WHEN G_EXCEPTION_HALT_VALIDATION THEN
6204       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6205       (
6206         l_api_name,
6207         G_PKG_NAME,
6208         'OKC_API.G_RET_STS_ERROR',
6209         x_msg_count,
6210         x_msg_data,
6211         '_PVT'
6212       );
6213       ROLLBACK ;
6214     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6215       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6216       (
6217         l_api_name,
6218         G_PKG_NAME,
6219         'OKC_API.G_RET_STS_UNEXP_ERROR',
6220         x_msg_count,
6221         x_msg_data,
6222         '_PVT'
6223       );
6224       ROLLBACK;
6225     WHEN OTHERS THEN
6226       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6227       (
6228         l_api_name,
6229         G_PKG_NAME,
6230         'OTHERS',
6231         x_msg_count,
6232         x_msg_data,
6233         '_PVT'
6234       );
6235       ROLLBACK ;
6236 
6237 END    oks_migrate_billrates;
6238 
6239 --==========================================================================
6240 PROCEDURE OKS_BILLRATE_MAPPING(
6241                                 p_api_version           IN NUMBER ,
6242                                 p_init_msg_list         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
6243                                 p_business_process_id   IN NUMBER,
6244                                 p_time_labor_tbl_in     IN time_labor_tbl,
6245                                 x_return_status         OUT NOCOPY VARCHAR2,
6246                                 x_msg_count             OUT NOCOPY NUMBER,
6247                                 x_msg_data              OUT NOCOPY VARCHAR2) IS
6248 
6249   i                               NUMBER:= 0;
6250   j                               NUMBER:= 0;
6251   l_bus_proc_id                   NUMBER;
6252   l_holiday_flag                  VARCHAR2(1);
6253   l_api_version		CONSTANT	NUMBER     := 1.0;
6254   l_init_msg_list	CONSTANT	VARCHAR2(1):= 'F';
6255   l_return_status	VARCHAR2(1);
6256   l_msg_count		NUMBER;
6257   l_msg_data		VARCHAR2(2000):=null;
6258   l_api_name VARCHAR2(80):= 'OKS_BILLRATE_MAPPING';
6259   G_PKG_NAME VARCHAR2(80):= 'OKS_COVERAGES_PVT' ;
6260 
6261    l_bill_rate_tbl_in     OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE ;
6262    x_bill_rate_tbl_out    OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE ;
6263    l_clev_tbl_in          OKC_CONTRACT_PUB.clev_tbl_type ;
6264    l_clev_tbl_out         OKC_CONTRACT_PUB.clev_tbl_type ;
6265    l_rulv_tbl_in          okc_rule_pub.rulv_tbl_type ;
6266   l_rulv_tbl_out          okc_rule_pub.rulv_tbl_type ;
6267    l_cle_id               NUMBER;
6268    l_bill_rate_code       VARCHAR2(30);
6269 
6270    l_conc_request_id      NUMBER;
6271    l_prog_appl_id         NUMBER;
6272    l_conc_program_id      NUMBER;
6273    l_program_update_date  DATE;
6274 
6275 
6276 
6277 
6278     CURSOR CUR_GET_ALL_BILL_RATE_CODES(p_business_process_id IN NUMBER) IS
6279     SELECT lines1.id bp_line_id, lines2.id bill_type_line_id,lines2.lse_id bt_lse_id,
6280     lines3.id bill_rate_line_id, lines3.lse_id br_lse_id,lines3.sts_code sts_code,
6281     lines3.dnz_chr_id br_dnz_chr_id,
6282     orgb.id rule_group_id,
6283     rules.id rule_id,
6284     rules.template_yn template_yn,
6285     rules.rule_information4 rule_information4,
6286     items.object1_id1, -- bp_id
6287     bills.id  billrate_sch_id,
6288     bills.cle_id  br_line_id,
6289     bills.bt_cle_id bt_cle_id,
6290     bills.bill_rate_code  bill_rate_code,
6291     bills.flat_rate flat_rate,
6292     bills.uom uom,
6293     bills.percent_over_list_price percent_over_list_price,
6294     bills.created_by created_by,
6295     bills.creation_date creation_date,
6296     bills.last_updated_by last_updated_by,
6297     bills.last_update_date last_update_date,
6298     bills.last_update_login last_update_login,
6299     bills.security_group_id  security_group_id,
6300     bills.object_version_number object_version_number--Added
6301     FROM
6302     OKC_K_LINES_B lines1,
6303     OKC_K_LINES_B lines2,
6304     OKC_K_LINES_B lines3,
6305     OKC_K_ITEMS items,
6306     OKC_RULE_GROUPS_B orgb,
6307     OKC_RULES_B rules,
6308     OKS_BILLRATE_SCHEDULES bills
6309     WHERE
6310     lines1.lse_id IN (3,16,21)
6311     and lines2.lse_id IN (5,23,59)
6312     and lines3.lse_id IN (6,24,60)
6313     and lines2.cle_id = lines1.id
6314     and lines3.cle_id = lines2.id
6315     and orgb.cle_id = lines3.id
6316     and rules.rgp_id = orgb.id
6317     and items.cle_id = lines1.id
6318     and bills.bt_cle_id = lines2.id
6319     and bills.cle_id = lines3.id
6320     and lines2.dnz_chr_id = lines1.dnz_chr_id
6321     and lines3.dnz_chr_id = lines2.dnz_chr_id
6322     and rules.rule_information10 IS NULL
6323     and items.object1_id1 = to_char(p_business_process_id) ;
6324   --  and rules.rule_information_category = 'RSL' ;
6325   -- and bills.start_time and end time is null;
6326 
6327    l_bill_rate_exists  VARCHAR2(1) := 'N';
6328 
6329 /*    CURSOR CUR_GET_TIME_INFO(p_bus_proc_id IN NUMBER, p_holiday_flag IN VARCHAR2,p_labor_code IN VARCHAR2) IS
6330     SELECT TO_CHAR(START_TIME,'HH24') START_HOUR,TO_CHAR(START_TIME,'MI')START_MINUTE,
6331            TO_CHAR(END_TIME,'HH24')END_HOUR,TO_CHAR(END_TIME,'MI')END_MINUTE,
6332            MONDAY_FLAG,TUESDAY_FLAG,WEDNESDAY_FLAG,THURSDAY_FLAG,FRIDAY_FLAG,
6333            SATURDAY_FLAG,SUNDAY_FLAG, INVENTORY_ITEM_ID, LABOR_CODE
6334            FROM  CS_TM_LABOR_SCHEDULES
6335            WHERE BUSINESS_PROCESS_ID = p_bus_proc_id
6336            AND  HOLIDAY_FLAG = p_holiday_flag
6337            AND LABOR_CODE = p_labor_code; */
6338 
6339     BEGIN
6340 
6341     FOR bill_rate_rec IN CUR_GET_ALL_BILL_RATE_CODES(p_business_process_id)
6342      LOOP
6343 
6344      If (OKC_ASSENT_PUB.HEADER_OPERATION_ALLOWED(bill_rate_rec.br_dnz_chr_id, 'UPDATE') = 'T') then -- status and operations check
6345 
6346       i:= i + 1 ;
6347 
6348      l_bus_proc_id       := to_number(bill_rate_rec.object1_id1) ;
6349      l_holiday_flag      := 'N';
6350      l_bill_rate_code    := bill_rate_rec.rule_information4;
6351 
6352         l_conc_request_id := fnd_global.conc_request_id ;
6353 
6354       IF l_conc_request_id <> -1 THEN
6355          l_prog_appl_id := fnd_global.prog_appl_id ;
6356          l_conc_program_id := fnd_global.conc_program_id;
6357          l_program_update_date := sysdate;
6358      ELSE
6359          l_prog_appl_id := NULL;
6360          l_conc_program_id := NULL;
6361          l_program_update_date := NULL;
6362          l_conc_request_id := NULL;
6363       END IF ;
6364 
6365          IF fnd_global.conc_request_id <> -1 THEN
6366                fnd_file.put_line(FND_FILE.LOG, 'PROGRAM_APPLICATION_ID....'||l_prog_appl_id);
6367                fnd_file.put_line(FND_FILE.LOG, 'PROGRAM_ID...'||l_conc_program_id);
6368                fnd_file.put_line(FND_FILE.LOG, 'PROGRAM_UPDATE_DATE...'||l_program_update_date);
6369                fnd_file.put_line(FND_FILE.LOG, 'REQUEST_ID...'||l_conc_request_id);
6370                fnd_file.put_line(FND_FILE.LOG, 'Processing for BP_LINE_ID.....'||bill_rate_rec.bp_line_id);
6371          END IF;
6372 
6373 
6374        l_bill_rate_exists := 'N' ;
6375 
6376 
6377        FOR  j IN p_time_labor_tbl_in.FIRST .. p_time_labor_tbl_in.LAST
6378        LOOP
6379 
6380 
6381      IF p_time_labor_tbl_in(j).holiday_flag = 'N' and p_time_labor_tbl_in(j).labor_code = l_bill_rate_code
6382      THEN
6383 
6384       IF   l_bill_rate_exists = 'N' THEN
6385            l_bill_rate_exists := 'Y';
6386 
6387          INIT_BILL_RATE_LINE (l_bill_rate_tbl_in) ;
6388 
6389 
6390         l_bill_rate_tbl_in(1).id               := bill_rate_rec.billrate_sch_id ;
6391         l_bill_rate_tbl_in(1).cle_id           := bill_rate_rec.br_line_id ;
6392         l_bill_rate_tbl_in(1).bt_cle_id        := bill_rate_rec.bt_cle_id ;
6393         l_bill_rate_tbl_in(1).start_hour       := TO_NUMBER(TO_CHAR(p_time_labor_tbl_in(j).START_TIME,'HH24')) ;
6394         l_bill_rate_tbl_in(1).start_minute     := TO_NUMBER(TO_CHAR(p_time_labor_tbl_in(j).START_TIME,'MI'));
6395         l_bill_rate_tbl_in(1).end_hour         := TO_NUMBER(TO_CHAR(p_time_labor_tbl_in(j).END_TIME,'HH24'));
6396         l_bill_rate_tbl_in(1).end_minute       := TO_NUMBER(TO_CHAR(p_time_labor_tbl_in(j).END_TIME,'MI'));
6397         l_bill_rate_tbl_in(1).monday_flag      := p_time_labor_tbl_in(j).monday_flag ;
6398         l_bill_rate_tbl_in(1).tuesday_flag     := p_time_labor_tbl_in(j).tuesday_flag ;
6399         l_bill_rate_tbl_in(1).wednesday_flag   := p_time_labor_tbl_in(j).wednesday_flag;
6400         l_bill_rate_tbl_in(1).thursday_flag    := p_time_labor_tbl_in(j).thursday_flag;
6401         l_bill_rate_tbl_in(1).friday_flag      := p_time_labor_tbl_in(j).friday_flag;
6402         l_bill_rate_tbl_in(1).saturday_flag    := p_time_labor_tbl_in(j).saturday_flag;
6403         l_bill_rate_tbl_in(1).sunday_flag      := p_time_labor_tbl_in(j).sunday_flag;
6404         l_bill_rate_tbl_in(1).object1_id1      := p_time_labor_tbl_in(j).inventory_item_id ;
6405         l_bill_rate_tbl_in(1).object1_id2      := '#';
6406         l_bill_rate_tbl_in(1).bill_rate_code   := bill_rate_rec.bill_rate_code;
6407         l_bill_rate_tbl_in(1).flat_rate        := bill_rate_rec.flat_rate ;
6408         l_bill_rate_tbl_in(1).uom              := bill_rate_rec.uom;
6409         l_bill_rate_tbl_in(1).holiday_yn       := 'N';
6410         l_bill_rate_tbl_in(1).percent_over_list_price     := bill_rate_rec.percent_over_list_price;
6411         l_bill_rate_tbl_in(1).program_application_id      := l_prog_appl_id;
6412         l_bill_rate_tbl_in(1).program_id                  := l_conc_program_id;
6413         l_bill_rate_tbl_in(1).program_update_date         := l_program_update_date;
6414         l_bill_rate_tbl_in(1).request_id                  := l_conc_request_id;
6415         l_bill_rate_tbl_in(1).created_by                 := bill_rate_rec.created_by ;
6416         l_bill_rate_tbl_in(1).creation_date              := bill_rate_rec.creation_date;
6417         l_bill_rate_tbl_in(1).last_updated_by            := bill_rate_rec.last_updated_by;
6418         l_bill_rate_tbl_in(1).last_update_date           := bill_rate_rec.last_update_date;
6419         l_bill_rate_tbl_in(1).last_update_login          := bill_rate_rec.last_update_login;
6420         l_bill_rate_tbl_in(1).security_group_id          := bill_rate_rec.security_group_id;
6421         l_bill_rate_tbl_in(1).object_version_number      := bill_rate_rec.object_version_number;--Added
6422 
6423              OKS_BRS_PVT.update_row(
6424                              p_api_version          => l_api_version,
6425                              p_init_msg_list        => p_init_msg_list,
6426                              x_return_status        => l_return_status,
6427                              x_msg_count            => l_msg_count,
6428                              x_msg_data             => l_msg_data,
6429                              p_oks_billrate_schedules_v_tbl => l_bill_rate_tbl_in,
6430                              x_oks_billrate_schedules_v_tbl => x_bill_rate_tbl_out);
6431 
6432         IF fnd_global.conc_request_id <> -1 THEN
6433                fnd_file.put_line(FND_FILE.LOG, 'AFTER OKS_BRS_PVT.UPDATE_ROW......');
6434                fnd_file.put_line(FND_FILE.LOG, 'Return Status from OKS_BRS_PVT.UPDATE_ROW API...'||l_return_status);
6435          END IF;
6436 
6437 
6438 
6439                   IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
6440                        RAISE G_EXCEPTION_BRS_UPDATE ;
6441                   END IF;
6442 
6443     ELSE -- create lines in okc_k_lines_b, oks_billrate_schedules
6444 
6445                   INIT_CONTRACT_LINE(l_clev_tbl_in);
6446                   INIT_BILL_RATE_LINE(l_bill_rate_tbl_in) ;
6447 
6448                   l_clev_tbl_in(1).cle_id := bill_rate_rec.bill_type_line_id;
6449                   l_clev_tbl_in(1).lse_id := bill_rate_rec.br_lse_id;
6450                   l_clev_tbl_in(1).sfwt_flag := 'N';
6451                   l_clev_tbl_in(1).exception_yn := 'N';
6452                   l_clev_tbl_in(1).sts_code:= bill_rate_rec.sts_code ;
6453                   l_clev_tbl_in(1).dnz_chr_id:= bill_rate_rec.br_dnz_chr_id ;
6454                   l_clev_tbl_in(1).display_sequence:= 1 ;
6455 
6456 
6457 
6458                   OKC_CONTRACT_PUB.CREATE_CONTRACT_LINE(p_api_version => l_api_version,
6459                                                         p_init_msg_list => l_init_msg_list,
6460                                                         x_return_status => l_return_status,
6461                                                         x_msg_count    => l_msg_count,
6462                                                         x_msg_data  => l_msg_data,
6463                                                         p_restricted_update => 'F',
6464                                                         p_clev_tbl => l_clev_tbl_in,
6465                                                         x_clev_tbl => l_clev_tbl_out  );
6466 
6467                           x_return_status         := l_return_status;
6468 
6469 
6470 
6471         IF fnd_global.conc_request_id <> -1 THEN
6472                fnd_file.put_line(FND_FILE.LOG, 'AFTER OKC_CONTRACT_PUB.CREATE_CONTRACT_LINE......');
6473                fnd_file.put_line(FND_FILE.LOG, 'Return Status from OKC_CONTRACT_PUB.CREATE_CONTRACT_LINE API...'||l_return_status);
6474          END IF;
6475 
6476 
6477                    IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
6478                        RAISE G_EXCEPTION_HALT_VALIDATION ;
6479                   END IF;
6480 
6481                   l_cle_id := l_clev_tbl_out(1).id ;
6482 
6483                    l_bill_rate_tbl_in(1).cle_id := l_cle_id; --C1.billrate_line_id ;
6484                    l_bill_rate_tbl_in(1).bt_cle_id := bill_rate_rec.bill_type_line_id ;
6485                    l_bill_rate_tbl_in(1).start_hour       := TO_NUMBER(TO_CHAR(p_time_labor_tbl_in(j).START_TIME,'HH24')) ;
6486                    l_bill_rate_tbl_in(1).start_minute     := TO_NUMBER(TO_CHAR(p_time_labor_tbl_in(j).START_TIME,'MI'));
6487                    l_bill_rate_tbl_in(1).end_hour         := TO_NUMBER(TO_CHAR(p_time_labor_tbl_in(j).END_TIME,'HH24'));
6488                    l_bill_rate_tbl_in(1).end_minute       := TO_NUMBER(TO_CHAR(p_time_labor_tbl_in(j).END_TIME,'MI'));
6489                    l_bill_rate_tbl_in(1).monday_flag := p_time_labor_tbl_in(j).monday_flag;
6490                    l_bill_rate_tbl_in(1).tuesday_flag := p_time_labor_tbl_in(j).tuesday_flag;
6491                    l_bill_rate_tbl_in(1).wednesday_flag := p_time_labor_tbl_in(j).wednesday_flag;
6492                    l_bill_rate_tbl_in(1).thursday_flag := p_time_labor_tbl_in(j).thursday_flag;
6493                    l_bill_rate_tbl_in(1).friday_flag := p_time_labor_tbl_in(j).friday_flag;
6494                    l_bill_rate_tbl_in(1).saturday_flag := p_time_labor_tbl_in(j).saturday_flag;
6495                    l_bill_rate_tbl_in(1).sunday_flag := p_time_labor_tbl_in(j).sunday_flag;
6496                    l_bill_rate_tbl_in(1).object1_id1    := p_time_labor_tbl_in(j).inventory_item_id;
6497                    l_bill_rate_tbl_in(1).object1_id2    := '#';
6498                    l_bill_rate_tbl_in(1).bill_rate_code    := p_time_labor_tbl_in(j).labor_code;
6499                    l_bill_rate_tbl_in(1).flat_rate    := NULL;
6500                    l_bill_rate_tbl_in(1).uom    := NULL;
6501                    l_bill_rate_tbl_in(1).holiday_yn    := 'N';
6502                    l_bill_rate_tbl_in(1).percent_over_list_price    := NULL;
6503                    l_bill_rate_tbl_in(1).program_application_id      := l_prog_appl_id;
6504                    l_bill_rate_tbl_in(1).program_id                  := l_conc_program_id;
6505                    l_bill_rate_tbl_in(1).program_update_date         := l_program_update_date;
6506                    l_bill_rate_tbl_in(1).request_id                  := l_conc_request_id;
6507                    l_bill_rate_tbl_in(1).created_by                 := bill_rate_rec.created_by ;
6508                    l_bill_rate_tbl_in(1).creation_date              := bill_rate_rec.creation_date;
6509                    l_bill_rate_tbl_in(1).last_updated_by            := bill_rate_rec.last_updated_by;
6510                    l_bill_rate_tbl_in(1).last_update_date           := bill_rate_rec.last_update_date;
6511                    l_bill_rate_tbl_in(1).last_update_login          := bill_rate_rec.last_update_login;
6512                    l_bill_rate_tbl_in(1).security_group_id          := bill_rate_rec.security_group_id;
6513                    l_bill_rate_tbl_in(1).object_version_number      := bill_rate_rec.object_version_number;--Added
6514 
6515 
6516               OKS_BRS_PVT.INSERT_ROW(
6517                                     p_api_version      => l_api_version,
6518                                     p_init_msg_list    => l_init_msg_list,
6519                                     x_return_status    => l_return_status,
6520                                     x_msg_count        => l_msg_count,
6521                                     x_msg_data         => l_msg_data,
6522                                     p_oks_billrate_schedules_v_tbl => l_bill_rate_tbl_in,
6523                                     x_oks_billrate_schedules_v_tbl => x_bill_rate_tbl_out);
6524 
6525                         x_return_status         := l_return_status;
6526 
6527 
6528          IF fnd_global.conc_request_id <> -1 THEN
6529                fnd_file.put_line(FND_FILE.LOG, 'AFTER OKS_BRS_PVT.INSERT_ROW......');
6530                fnd_file.put_line(FND_FILE.LOG, 'Return Status from OKS_BRS_PVT.INSERT_ROW API...'||l_return_status);
6531          END IF;
6532 
6533 
6534 
6535     IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
6536          RAISE G_EXCEPTION_HALT_VALIDATION;
6537     END IF;
6538 
6539 
6540    END IF ;
6541    END IF ;
6542       END LOOP ;
6543 
6544        -- update the rule line with mapped status to Y
6545 
6546 
6547  -- code commented to fix bug#2954917 for charges integration
6548  UPDATE okc_rules_b
6549  SET rule_information9 = 'Y'
6550  WHERE id = bill_rate_rec.rule_id ;
6551 
6552   /*  l_rulv_tbl_in(1).id := bill_rate_rec.rule_id ;
6553     l_rulv_tbl_in(1).rule_information10 := 'Y';
6554     l_rulv_tbl_in(1).template_yn := bill_rate_rec.template_yn;
6555 
6556 
6557       OKC_RULE_PUB.UPDATE_RULE(p_api_version      => l_api_version,
6558                                p_init_msg_list    => l_init_msg_list,
6559                                x_return_status    => l_return_status,
6560                                x_msg_count        => l_msg_count,
6561                                x_msg_data         => l_msg_data,
6562                                p_rulv_tbl         => l_rulv_tbl_in,
6563                                x_rulv_tbl         => l_rulv_tbl_out); */
6564 
6565            IF fnd_global.conc_request_id <> -1 THEN
6566                fnd_file.put_line(FND_FILE.LOG, 'AFTER OKC_RULE_PUB.UPDATE_RULE......Updating RULE_INFORMATION10 to Y');
6567              --  fnd_file.put_line(FND_FILE.LOG, 'Return Status from OKC_RULE_PUB.UPDATE_RULE API...'||l_return_status);
6568          END IF;
6569 
6570 
6571 
6572 
6573   end if; -- status and operations check
6574 
6575 END LOOP ;
6576   x_return_status := OKC_API.G_RET_STS_SUCCESS;
6577 
6578       IF fnd_global.conc_request_id <> -1 THEN
6579          fnd_file.put_line(FND_FILE.LOG, 'Return Status from API...'||x_return_status);
6580       END IF;
6581 
6582 
6583 EXCEPTION
6584 WHEN G_EXCEPTION_RULE_UPDATE THEN
6585  x_return_status := OKC_API.HANDLE_EXCEPTIONS
6586        ( l_api_name,
6587         G_PKG_NAME,
6588         'OKC_API.G_RET_STS_ERROR',
6589         x_msg_count,
6590         x_msg_data,
6591         '_PVT'
6592       );
6593       ROLLBACK ;
6594       IF fnd_global.conc_request_id <> -1 THEN
6595          fnd_file.put_line(FND_FILE.LOG, 'Raised Exception...||G_EXCEPTION_RULE_UPDATE');
6596       END IF;
6597 
6598 
6599 
6600 WHEN  G_EXCEPTION_BRS_UPDATE THEN
6601  x_return_status := OKC_API.HANDLE_EXCEPTIONS
6602        ( l_api_name,
6603         G_PKG_NAME,
6604         'OKC_API.G_RET_STS_ERROR',
6605         x_msg_count,
6606         x_msg_data,
6607         '_PVT'
6608       );
6609       ROLLBACK ;
6610       IF fnd_global.conc_request_id <> -1 THEN
6611          fnd_file.put_line(FND_FILE.LOG, 'Raised Exception...||G_EXCEPTION_BRS_UPDATE');
6612       END IF;
6613 
6614    WHEN G_EXCEPTION_HALT_VALIDATION THEN
6615       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6616       (
6617         l_api_name,
6618         G_PKG_NAME,
6619         'OKC_API.G_RET_STS_ERROR',
6620         x_msg_count,
6621         x_msg_data,
6622         '_PVT'
6623       );
6624       ROLLBACK ;
6625 
6626        IF fnd_global.conc_request_id <> -1 THEN
6627          fnd_file.put_line(FND_FILE.LOG, 'Raised Exception...||G_EXCEPTION_HALT_VALIDATION');
6628       END IF;
6629 
6630     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
6631       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6632       (
6633         l_api_name,
6634         G_PKG_NAME,
6635         'OKC_API.G_RET_STS_UNEXP_ERROR',
6636         x_msg_count,
6637         x_msg_data,
6638         '_PVT'
6639       );
6640       ROLLBACK;
6641        IF fnd_global.conc_request_id <> -1 THEN
6642          fnd_file.put_line(FND_FILE.LOG, 'Raised Exception...||G_EXCEPTION_UNEXPECTED_ERROR');
6643       END IF;
6644 
6645 
6646     WHEN OTHERS THEN
6647       x_return_status := OKC_API.HANDLE_EXCEPTIONS
6648       (
6649         l_api_name,
6650         G_PKG_NAME,
6651         'OTHERS',
6652         x_msg_count,
6653         x_msg_data,
6654         '_PVT'
6655       );
6656       ROLLBACK ;
6657        IF fnd_global.conc_request_id <> -1 THEN
6658          fnd_file.put_line(FND_FILE.LOG, 'Raised Exception...||OTHERS');
6659       END IF;
6660 
6661 
6662     END  oks_billrate_mapping ;
6663 
6664 
6665    --==========================================================================================
6666 
6667 PROCEDURE     Get_Notes_Details(P_source_object_id      IN NUMBER,
6668                                     X_Notes_TBL             OUT nocopy jtf_note_tbl_type,
6669                                     X_Return_Status         OUT nocopy VARCHAR2,
6670                                     P_source_object_code    IN VARCHAR2) IS -- Bug:5944200
6671 
6672         CURSOR GET_NOTES_DETAILS_CUR(l_id IN NUMBER) IS
6673         SELECT  B.JTF_NOTE_ID JTF_NOTE_ID,
6674                 B.SOURCE_OBJECT_CODE SOURCE_OBJECT_CODE,
6675                 B.NOTE_STATUS NOTE_STATUS,
6676                 B.NOTE_TYPE NOTE_TYPE,
6677                 B.NOTES NOTES,
6678                 B.NOTES_DETAIL NOTES_DETAIL,
6679            -- Modified by Jvorugan for Bug:4489214 who columns not to be populated from old contract
6680                 B.Entered_by Entered_by,
6681                 B.Entered_date Entered_date
6682            -- End of changes for Bug:4489214
6683         FROM    JTF_NOTES_VL B
6684         WHERE   B.SOURCE_OBJECT_ID = l_id
6685         AND     B.SOURCE_OBJECT_CODE = P_source_object_code ; -- Bug:5944200
6686 
6687 
6688 i   NUMBER := 0;
6689 
6690     BEGIN
6691 
6692         I := 0;
6693         L_Notes_TBL.DELETE;
6694 
6695 
6696         FOR GET_NOTES_DETAILS_REC IN GET_NOTES_DETAILS_CUR(P_source_object_id) LOOP
6697 
6698 
6699             L_Notes_TBL(i).source_object_code  := GET_NOTES_DETAILS_REC.SOURCE_OBJECT_CODE;
6700             L_Notes_TBL(i).Notes               := GET_NOTES_DETAILS_REC.NOTES;
6701             JTF_NOTES_PUB.writeLobToData(GET_NOTES_DETAILS_REC.JTF_NOTE_ID,L_Notes_TBL(i).Notes_detail);
6702             --GET_NOTES_DETAILS_REC.NOTES_DETAIL;
6703             L_Notes_TBL(i).note_status           := GET_NOTES_DETAILS_REC.NOTE_STATUS;
6704             L_Notes_TBL(i).note_type             := GET_NOTES_DETAILS_REC.NOTE_TYPE;
6705            -- Modified by Jvorugan for Bug:4489214 who columns not to be populated from old contract
6706             L_Notes_TBL(i).entered_by             := GET_NOTES_DETAILS_REC.ENTERED_BY;
6707             L_Notes_TBL(i).entered_date           := GET_NOTES_DETAILS_REC.ENTERED_DATE;
6708            -- End of changes for Bug:4489214
6709 
6710 
6711 
6712             I := I +1 ;
6713         END LOOP;
6714             X_RETURN_STATUS         := 'S';
6715 EXCEPTION
6716 	WHEN OTHERS THEN
6717    	X_RETURN_STATUS := 'E';
6718    OKC_API.set_message(G_APP_NAME,
6719                           G_UNEXPECTED_ERROR,
6720                           G_SQLCODE_TOKEN,
6721                           SQLCODE,
6722                           G_SQLERRM_TOKEN,
6723                           SQLERRM);
6724 END Get_Notes_Details;
6725 
6726 
6727 
6728 
6729 PROCEDURE COPY_NOTES
6730            (p_api_version           IN NUMBER ,
6731             p_init_msg_list         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
6732             p_line_id               IN NUMBER,
6733             x_return_status         OUT NOCOPY VARCHAR2,
6734             x_msg_count             OUT NOCOPY NUMBER,
6735             x_msg_data              OUT NOCOPY VARCHAR2) IS
6736 
6737     L_line_Id   NUMBER :=   P_line_id;
6738     L_FIRST_REC VARCHAR2(1) := 'N';
6739 
6740 		l_created_by            Number := NULL;
6741 		l_last_updated_by       Number := NULL;
6742 		l_last_update_login     Number := NULL;
6743 
6744 
6745     CURSOR get_orig_contract_CUR(l_id IN NUMBER) IS
6746     SELECT  lines2.id orig_line_id,lines2.dnz_chr_id  orig_dnz_chr_id,
6747             lines1.Id New_line_ID,lines1.chr_Id New_Chr_Id,
6748             lines1.created_by,
6749             lines1.last_updated_by,
6750             lines1.last_update_login
6751     FROM    -- okc_k_lines_v lines1, --new_id
6752             -- okc_k_lines_v lines2  -- old_id
6753 	    okc_k_lines_b lines1,  --Modified by Jvorugan for Bug:4560735
6754 	    okc_k_lines_b lines2
6755     WHERE   lines1.id =l_id
6756     AND     lines1.ORIG_SYSTEM_ID1 = lines2.ID;
6757     --AND     lines1.lse_id =1
6758     --AND     lines2.lse_id = 1;
6759 
6760 
6761     l_source_object_code      JTF_NOTES_B.SOURCE_OBJECT_CODE%TYPE;
6762     l_source_object_id        JTF_NOTES_B.SOURCE_OBJECT_ID%TYPE;
6763     l_note_type               JTF_NOTES_B.NOTE_TYPE%TYPE;
6764     l_note_status             JTF_NOTES_B.NOTE_STATUS%TYPE;
6765     l_notes                   JTF_NOTES_TL.NOTES%TYPE;
6766     l_Notes_detail            VARCHAR2(32767);
6767 
6768     l_Return_Status         VARCHAR2(1) := NULL;
6769     l_msg_count             NUMBER;
6770     l_msg_data              VARCHAR2(1000);
6771     l_jtf_note_id           NUMBER;
6772     l_jtf_note_contexts_tab jtf_notes_pub.jtf_note_contexts_tbl_type;
6773 
6774 
6775 BEGIN
6776 
6777     x_return_status := OKC_API.G_RET_STS_SUCCESS;
6778 
6779     FOR get_orig_contract_REC IN get_orig_contract_CUR(l_line_ID) LOOP
6780 
6781       /* Commented by Jvorugan for Bug:4489214 who columns not to be populated from old contract
6782 	l_created_by            :=  get_orig_contract_REC.created_by;
6783         l_last_updated_by       :=  get_orig_contract_REC.last_updated_by;
6784         l_last_update_login     :=  get_orig_contract_REC.last_update_login; */
6785 
6786 
6787 
6788          Get_Notes_Details( P_source_object_id   =>  get_orig_contract_REC.orig_line_id,
6789                             X_Notes_TBL          =>  l_Notes_TBL,
6790                             X_Return_Status      =>  l_Return_Status,
6791                             P_source_object_code =>  'OKS_COV_NOTE'); -- Bug:5944200
6792 
6793         IF    l_Return_Status = 'S' THEN
6794             IF   (l_Notes_TBL.COUNT > 0) THEN
6795                 FOR I IN l_Notes_TBL.FIRST .. l_Notes_TBL.LAST LOOP
6796 
6797                 JTF_NOTES_PUB.create_note
6798                   ( p_jtf_note_id           => NULL--:JTF_NOTES.JTF_NOTE_ID
6799                   , p_api_version           => 1.0
6800                   , p_init_msg_list         => 'F'
6801                   , p_commit                => 'F'
6802                   , p_validation_level      => 0
6803                   , x_return_status         => l_return_status
6804                   , x_msg_count             => l_msg_count
6805                   , x_msg_data              => l_msg_data
6806                   , p_source_object_code    => l_Notes_TBL(i).source_object_code
6807                   , p_source_object_id      => get_orig_contract_REC.New_line_ID
6808                   , p_notes                 => l_Notes_TBL(i).notes
6809                   , p_notes_detail          => l_Notes_TBL(i).notes_Detail
6810                   , p_note_status           => l_Notes_TBL(i).note_status
6811                   , p_note_type             => l_Notes_TBL(i).note_type
6812                   , p_entered_by            => l_Notes_TBL(i).entered_by   -- -1 Modified for Bug:4489214
6813                   , p_entered_date          => l_Notes_TBL(i).entered_date -- SYSDATE Modified for Bug:4489214
6814                   , x_jtf_note_id           => l_jtf_note_id
6815                   , p_creation_date         => SYSDATE
6816                   , p_created_by            => FND_GLOBAL.USER_ID        --  created_by Modified for Bug:4489214
6817                   , p_last_update_date      => SYSDATE
6818                   , p_last_updated_by       => FND_GLOBAL.USER_ID        -- l_last_updated_by Modified for Bug:4489214
6819                   , p_last_update_login     => FND_GLOBAL.LOGIN_ID       -- l_last_update_login Modified for Bug:4489214
6820                   , p_attribute1            => NULL
6821                   , p_attribute2            => NULL
6822                   , p_attribute3            => NULL
6823                   , p_attribute4            => NULL
6824                   , p_attribute5            => NULL
6825                   , p_attribute6            => NULL
6826                   , p_attribute7            => NULL
6827                   , p_attribute8            => NULL
6828                   , p_attribute9            => NULL
6829                   , p_attribute10           => NULL
6830                   , p_attribute11           => NULL
6831                   , p_attribute12           => NULL
6832                   , p_attribute13           => NULL
6833                   , p_attribute14           => NULL
6834                   , p_attribute15           => NULL
6835                   , p_context               => NULL
6836                   , p_jtf_note_contexts_tab => l_jtf_note_contexts_tab);--l_jtf_note_contexts_tab  );
6837 
6838                 END LOOP;
6839             END IF;
6840 
6841             END IF;
6842         END LOOP;
6843 -- COMMIT;  -- There should not be any COMMIT in any API
6844 EXCEPTION
6845 
6846   WHEN OTHERS THEN
6847 
6848       OKC_API.set_message(G_APP_NAME,
6849                           G_UNEXPECTED_ERROR,
6850                           G_SQLCODE_TOKEN,
6851                           SQLCODE,
6852                           G_SQLERRM_TOKEN,
6853                           SQLERRM);
6854       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
6855 
6856 END COPY_NOTES;
6857 
6858 PROCEDURE Copy_Coverage(p_api_version         IN     NUMBER,
6859                           p_init_msg_list     IN     VARCHAR2 DEFAULT OKC_API.G_FALSE,
6860                           x_return_status     OUT    NOCOPY    VARCHAR2,
6861                           x_msg_count         OUT    NOCOPY    NUMBER,
6862                           x_msg_data          OUT    NOCOPY   VARCHAR2,
6863                           p_contract_line_id  IN     NUMBER) IS
6864 
6865 
6866 
6867      l_klnv_tbl_in            oks_kln_pvt.klnv_tbl_type;
6868      l_klnv_tbl_out           oks_kln_pvt.klnv_tbl_type;
6869      l_billrate_sch_tbl_in    oks_brs_pvt.OksBillrateSchedulesVTblType;
6870      l_billrate_sch_tbl_out   oks_brs_pvt.OksBillrateSchedulesVTblType;
6871 
6872      l_timezone_tbl_in        oks_ctz_pvt.OksCoverageTimezonesVTblType;
6873      l_timezone_tbl_out       oks_ctz_pvt.OksCoverageTimezonesVTblType;
6874 
6875      l_cover_time_tbl_in     oks_cvt_pvt.oks_coverage_times_v_tbl_type;
6876      l_cover_time_tbl_out    oks_cvt_pvt.oks_coverage_times_v_tbl_type;
6877 
6878      l_act_pvt_tbl_in       oks_act_pvt.OksActionTimeTypesVTblType;
6879      l_act_pvt_tbl_out       oks_act_pvt.OksActionTimeTypesVTblType;
6880 
6881      l_acm_pvt_tbl_in       oks_acm_pvt.oks_action_times_v_tbl_type;
6882      l_acm_pvt_tbl_out       oks_acm_pvt.oks_action_times_v_tbl_type;
6883 
6884     l_new_Bp_line_Id NUMBER  := NULL;
6885     l_new_TimeZone_Id   NUMBER  := NULL;
6886      l_new_contract_line_id  NUMBER;
6887      l_new_cov_line_id       NUMBER;
6888      l_new_cov_start_date    DATE;
6889      l_new_cov_end_date      DATE;
6890      l_new_dnz_chr_id        NUMBER;
6891      l_old_dnz_chr_id        NUMBER;
6892 
6893      l_old_contract_line_id  NUMBER;
6894      l_old_cov_line_id       NUMBER;
6895      l_old_cov_start_date    DATE;
6896      l_old_cov_end_date      DATE;
6897 
6898      l_old_Time_Zone_Id NUMBER;
6899      l_old_Time_Zone_Dnz_Chr_Id NUMBER;
6900 
6901   l_api_version             CONSTANT    NUMBER     := 1.0;
6902   l_init_msg_list           CONSTANT    VARCHAR2(1):= 'F';
6903   l_return_status           VARCHAR2(1);
6904   l_msg_count               NUMBER;
6905 
6906   l_message                     VARCHAR2(2000):=null;
6907   l_msg_index_out   Number;
6908 
6909   l_msg_data            VARCHAR2(2000):=null;
6910   l_api_name            VARCHAR2(80):= 'OKS_COPY_COVERAGE';
6911   G_PKG_NAME            VARCHAR2(80):= 'OKS_COVERAGES_PVT' ;
6912   l_validate_yn         VARCHAR2(1):= 'N';
6913   l_orig_sys_id1        NUMBER;
6914   i                     NUMBER:= 0;
6915   l_bp_id               NUMBER;
6916   l_old_bp_line_id      NUMBER;
6917   l_old_busi_proc_id    NUMBER;
6918   j                     NUMBER;
6919   l_tze_id              NUMBER;
6920   l_bp_line_id          NUMBER  := NULL;
6921   l_cov_tze_line_id     NUMBER;
6922 l_line_NUMBER   NUMBER;
6923 l_RT_ID         NUMBER;
6924 l_rt_dnz_chr_id NUMBER;
6925 M               NUMBER;
6926 N               NUMBER;
6927 L               NUMBER  := 0;
6928 k               NUMBER  := 0;
6929 F               NUMBER  := 0;
6930 l_line_id_four  NUMBER  := 0;
6931 l_act_pvt_ID    NUMBER  := 0;
6932 l_act_pvt_new_ID    NUMBER  := 0;
6933 l_act_pvt_dnz_chr_ID    NUMBER  := 0;
6934 l_Act_pvt_cle_id        NUMBER  := 0;
6935 
6936 l_old_bill_type_ID      NUMBER  := 0;
6937 l_bill_Type_ID          NUMBER  := 0;
6938 l_bill_Type_Dnz_Chr_ID  NUMBER  := 0;
6939 
6940 l_old_object1_id1       NUMBER  := 0;
6941 l_old_line_number       NUMBER  := 0;
6942 l_new_Bp_Object1_ID1    NUMBER  := 0;
6943 -- get the original system_id1 from okc_k_lines_b
6944 
6945      CURSOR CUR_GET_ORIG_SYS_ID1(p_id IN NUMBER) IS
6946      SELECT ORIG_SYSTEM_ID1
6947      FROM OKC_K_LINES_B
6948      WHERE ID = p_id ;
6949 -- get the coverage details for the coverage line added by jvorugan
6950    CURSOR CUR_GET_COV_DET(p_id IN NUMBER) IS
6951     SELECT ID,DNZ_CHR_ID, START_DATE, END_DATE
6952     FROM OKC_K_LINES_B
6953     WHERE id = p_id;
6954 
6955     cr_cov_det   CUR_GET_COV_DET%ROWTYPE;
6956 
6957  -- get the pm_program_id associated with the service line added by jvorugan
6958    CURSOR CUR_GET_PROGRAM_ID(p_contract_line_id IN NUMBER) IS
6959     SELECT PM_PROGRAM_ID
6960     FROM OKS_K_LINES_B
6961     WHERE cle_id =p_contract_line_id;
6962 
6963 
6964 -- check whether the coverage is template   added by jvorugan
6965    CURSOR check_cov_tmpl(p_cov_id IN Number) IS
6966     SELECT count(*) FROM OKC_K_LINES_B
6967     WHERE id = p_cov_id
6968     AND lse_id in (2,15,20)
6969     and dnz_chr_id < 0;
6970 
6971 -- get the coverage id for the service line
6972 
6973     CURSOR CUR_GET_COV_LINE_ID(p_contract_line_id IN NUMBER) IS
6974     SELECT ID,DNZ_CHR_ID, START_DATE, END_DATE
6975     FROM OKC_K_LINES_B
6976     WHERE cle_id = p_contract_line_id
6977     AND lse_id  IN (2,15,20);
6978 
6979     cr_cov_line   cur_get_cov_line_id%ROWTYPE;
6980 
6981 -- get the coverage line attributes from oks_k_lines_b
6982    CURSOR CUR_GET_COV_ATTR(p_cle_id IN NUMBER) IS
6983    SELECT ID, CLE_ID,
6984    COVERAGE_TYPE,EXCEPTION_COV_ID,SYNC_DATE_INSTALL,
6985    TRANSFER_OPTION, PROD_UPGRADE_YN,INHERITANCE_TYPE,
6986    PM_PROGRAM_ID,
6987    PM_CONF_REQ_YN,PM_SCH_EXISTS_YN,object_version_number
6988    FROM OKS_K_LINES_B
6989    WHERE cle_id = p_cle_id ;
6990 
6991 -- get the old and new business process line details
6992 /*
6993   CURSOR CUR_GET_OLD_BP(p_cle_id IN NUMBER) IS
6994   SELECT lines1.id bp_line_id, lines1.start_date start_date, lines1.end_date end_date,
6995          to_number(items.object1_id1) object1_id1,
6996          oks.discount_list discount_list,
6997          oks.offset_period offset_period,
6998          oks.offset_duration offset_duration,
6999          oks.allow_bt_discount allow_bt_discount,
7000          oks.apply_default_timezone apply_default_timezone,
7001          oks.OBJECT_VERSION_NUMBER OBJECT_VERSION_NUMBER
7002          FROM okc_k_lines_b lines1,
7003               oks_k_lines_b oks,
7004               okc_k_items items
7005          WHERE lines1.cle_id = p_cle_id
7006          AND items.cle_id = lines1.id
7007          AND items.jtot_object1_code = 'OKX_BUSIPROC'
7008          AND oks.cle_id = lines1.id
7009          AND lines1.lse_id IN (3,16,21)
7010          ORDER BY items.object1_id1, lines1.start_date, lines1.end_date;
7011 */
7012 
7013 -- CURSOR CUR_GET_OLD_BP modified for bug#4155384 - smohapat
7014   CURSOR CUR_GET_OLD_BP(p_cle_id IN NUMBER) IS
7015   SELECT lines1.id bp_line_id,
7016          lines1.start_date start_date,
7017          lines1.end_date end_date,
7018          oks.discount_list discount_list,
7019          oks.offset_period offset_period,
7020          oks.offset_duration offset_duration,
7021          oks.allow_bt_discount allow_bt_discount,
7022          oks.apply_default_timezone apply_default_timezone,
7023          oks.OBJECT_VERSION_NUMBER OBJECT_VERSION_NUMBER
7024          FROM okc_k_lines_b lines1,
7025               oks_k_lines_b oks
7026          WHERE lines1.cle_id = p_cle_id
7027          AND oks.cle_id = lines1.id
7028          AND lines1.lse_id IN (3,16,21);
7029 /*
7030   CURSOR CUR_GET_NEW_BP(p_cle_id IN NUMBER ,P_Object1_Id1 IN NUMBER , p_old_bp_id in number) IS
7031   SELECT lines1.id bp_line_id, lines1.dnz_chr_id dnz_chr_id,lines1.start_date start_date, lines1.end_date end_date,
7032          to_number(items.object1_id1) object1_id1
7033           FROM okc_k_lines_b lines1,
7034                okc_k_items items
7035          WHERE lines1.cle_id = p_cle_id
7036          AND items.cle_id = lines1.id
7037          AND items.jtot_object1_code = 'OKX_BUSIPROC'
7038          AND to_number(items.object1_id1) = p_object1_id1
7039          AND lines1.lse_id IN (3,16,21)
7040          AND lines1.orig_system_id1 = p_old_bp_id --New check added to allow duplicate BP
7041          ORDER BY items.object1_id1, lines1.start_date, lines1.end_date;
7042 */
7043 -- CURSOR CUR_GET_NEW_BP modified for bug#4155384 - smohapat
7044 
7045            CURSOR CUR_GET_NEW_BP(p_cle_id IN NUMBER , p_old_bp_id in number) IS
7046            SELECT lines1.id bp_line_id, lines1.dnz_chr_id dnz_chr_id,lines1.start_date start_date, lines1.end_date end_date
7047            FROM okc_k_lines_b lines1
7048            WHERE lines1.cle_id = p_cle_id
7049            AND lines1.lse_id IN (3,16,21)
7050            AND lines1.orig_system_id1 = p_old_bp_id ;
7051 
7052 -- Get Old And New Reaction Times
7053   CURSOR CUR_GET_OLD_RT(p_cle_id IN NUMBER) IS
7054     SELECT  lines1.id rt_line_id,
7055             lines1.dnz_chr_id rt_dnz_chr_id,
7056             lines1.line_number  rt_line_number,
7057             lines1.start_date start_date,
7058             lines1.end_date end_date,
7059             oks.INCIDENT_SEVERITY_ID,
7060             oks.WORK_THRU_YN,
7061             oks.REACT_ACTIVE_YN,
7062             oks.SFWT_FLAG,
7063             oks.REACT_TIME_NAME,
7064             oks.discount_list discount_list,
7065             oks.offset_period offset_period,
7066             oks.offset_duration offset_duration,
7067             oks.allow_bt_discount allow_bt_discount,
7068             oks.apply_default_timezone apply_default_timezone,
7069             oks.OBJECT_VERSION_NUMBER OBJECT_VERSION_NUMBER
7070     FROM    okc_k_lines_b lines1,
7071             oks_k_lines_v oks
7072     WHERE   lines1.cle_id =  p_cle_id
7073     AND     oks.cle_id = lines1.id
7074     AND     lines1.lse_id IN (4,17,22)
7075     ORDER BY lines1.line_number,lines1.start_date, lines1.end_date;
7076 
7077 /*
7078   CURSOR  CUR_GET_NEW_RT(P_Bp_line_Id IN NUMBER,P_new_dnz_chr_id IN NUMBER,l_new_Bp_Object1_ID1 IN NUMBER,
7079                                                         l_orig_system_id1 IN NUMBER) IS
7080 
7081     SELECT RT.ID,
7082            RT.DNZ_CHR_ID
7083     FROM   okc_k_lines_b   BT,
7084            okc_k_lines_B    RT,
7085            okc_k_items      BT_Item
7086     WHERE   BT.id =   P_Bp_line_Id
7087     AND     BT.dnz_chr_id = P_new_dnz_chr_id
7088     AND    BT.lse_id IN (3,16,21)
7089     AND    BT.ID = RT.cle_id
7090     AND    RT.lse_id in(4,17,22)
7091     AND    BT_ITEM.cle_id =    BT.id
7092     AND    BT_ITEM.DNZ_CHR_ID =BT.DNZ_CHR_ID
7093     AND    to_number(BT_ITEM.Object1_id1) =l_new_Bp_Object1_ID1 --1000
7094     AND    RT.dnz_chr_id = BT_ITEM.dnz_chr_id
7095         AND        RT.orig_system_id1   = l_orig_system_id1;
7096     */
7097 
7098  -- CURSOR CUR_GET_NEW_RT modified for bug#4155384 - smohapat
7099     CURSOR  CUR_GET_NEW_RT(p_bp_line_id IN NUMBER,p_old_rt_id in number) IS
7100     SELECT RT.ID,
7101            RT.DNZ_CHR_ID
7102     FROM   okc_k_lines_b   RT
7103     WHERE  RT.cle_id = p_bp_line_id
7104     AND    RT.lse_id in(4,17,22)
7105         AND        RT.orig_system_id1   = p_old_rt_id;
7106 
7107 
7108 
7109     CURSOR Get_Old_Act_Time_Types(P_RT_ID   IN NUMBER,P_DNZ_CHR_ID IN NUMBER)  IS
7110     SELECT  ID,
7111             DNZ_CHR_ID,
7112             ACTION_TYPE_CODE,
7113             OBJECT_VERSION_NUMBER
7114     FROM    OKS_ACTION_TIME_TYPES
7115     WHERE   CLE_ID =  P_RT_ID
7116     AND     DNZ_CHR_ID  =    P_DNZ_CHR_ID;
7117 
7118     CURSOR Get_Old_Act_Times_Cur    (p_act_pvt_ID   IN NUMBER,P_Act_Dnz_Chr_ID  IN NUMBER) IS
7119     SELECT      ID,
7120                 COV_ACTION_TYPE_ID,
7121                 CLE_ID,
7122                 DNZ_CHR_ID,
7123                 UOM_CODE,
7124                 SUN_DURATION,
7125                 MON_DURATION,
7126                 TUE_DURATION,
7127                 WED_DURATION,
7128                 THU_DURATION,
7129                 FRI_DURATION,
7130                 SAT_DURATION,
7131                 SECURITY_GROUP_ID,
7132                 OBJECT_VERSION_NUMBER
7133     FROM        OKS_ACTION_TIMES
7134     WHERE       COV_ACTION_TYPE_ID  =   p_act_pvt_ID
7135     AND         DNZ_CHR_ID          =   P_Act_Dnz_Chr_ID;
7136 
7137  -- Get Old And new Billing Types
7138 /*
7139  CURSOR CUR_GET_OLD_BT(p_id IN NUMBER) IS
7140  SELECT lines1.id bp_line_id, lines1.start_date start_date, lines1.end_date end_date,
7141         lines2.id bt_line_id, lines2.dnz_chr_id dnz_chr_id,
7142         lines2.object_version_number object_version_number,
7143         lines2.line_number line_number,
7144          to_number(items1.object1_id1) busi_proc_id,
7145          to_number(items2.object1_id1) bill_type_id,
7146          oks.discount_amount  discount_amount,
7147          oks.discount_percent discount_percent
7148          FROM okc_k_lines_b lines1,
7149               okc_k_lines_b lines2,
7150               oks_k_lines_b oks,
7151               okc_k_items items1,
7152               okc_k_items items2
7153          WHERE lines1.id = p_id
7154          AND   lines2.cle_id = lines1.id
7155          AND items1.cle_id = lines1.id
7156          AND items2.cle_id = lines2.id
7157          AND items1.jtot_object1_code = 'OKX_BUSIPROC'
7158          AND items2.jtot_object1_code = 'OKX_BILLTYPE'
7159          AND oks.cle_id = lines2.id
7160          AND items1.dnz_chr_id = lines1.dnz_chr_id
7161          AND items2.dnz_chr_id = lines2.dnz_chr_id
7162          AND lines1.lse_id IN (3,16,21)
7163          AND lines2.lse_id IN (5,23,59)
7164          ORDER BY busi_proc_id, bill_type_id, lines1.start_date, lines1.end_date;
7165 */
7166 
7167  -- CURSOR CUR_GET_OLD_BT modified for bug#4155384 - smohapat
7168 
7169  CURSOR CUR_GET_OLD_BT(p_bp_id IN NUMBER) IS
7170  SELECT lines1.id bt_line_id, lines1.start_date start_date, lines1.end_date end_date,
7171         lines2.dnz_chr_id dnz_chr_id,
7172         lines2.object_version_number object_version_number,
7173         lines1.line_number line_number,
7174         lines2.discount_amount  discount_amount,
7175         lines2.discount_percent discount_percent
7176   FROM  okc_k_lines_b lines1,
7177         oks_k_lines_b lines2
7178   WHERE lines1.cle_id = p_bp_id
7179   AND   lines2.cle_id = lines1.id
7180   AND   lines1.lse_id IN (5,23,59);
7181 
7182 
7183 /*
7184  CURSOR CUR_GET_NEW_BT(p_id IN NUMBER,p_object2_id IN NUMBER) IS
7185  SELECT lines1.id bp_line_id, lines1.start_date start_date, lines1.end_date end_date,
7186         lines2.id bt_line_id, lines2.dnz_chr_id dnz_chr_id,
7187         lines2.object_version_number object_version_number,
7188          to_number(items1.object1_id1) busi_proc_id,
7189          to_number(items2.object1_id1) bill_type_id
7190          FROM okc_k_lines_b lines1,
7191               okc_k_lines_b lines2,
7192               okc_k_items items1,
7193               okc_k_items items2
7194          WHERE lines1.id = p_id
7195          AND   lines2.cle_id = lines1.id
7196 --         AND   lines2.line_number = p_line_number
7197          AND items1.cle_id = lines1.id
7198          AND items2.cle_id = lines2.id
7199          AND items1.jtot_object1_code = 'OKX_BUSIPROC'
7200          AND items2.jtot_object1_code = 'OKX_BILLTYPE'
7201          AND to_number(items2.object1_id1) = p_object2_id
7202          AND items1.dnz_chr_id = lines1.dnz_chr_id
7203          AND items2.dnz_chr_id = lines2.dnz_chr_id
7204          AND lines1.lse_id IN (3,16,21)
7205          AND lines2.lse_id IN (5,23,59)
7206          ORDER BY busi_proc_id, bill_type_id, lines1.start_date, lines1.end_date;
7207 
7208 
7209 */
7210 
7211         -- CURSOR CUR_GET_NEW_BT modified for bug#4155384 - smohapat
7212 
7213         CURSOR CUR_GET_NEW_BT(p_bp_line_id IN NUMBER,p_old_bt_id in number) IS
7214         SELECT BT.id bt_line_id, BT.start_date start_date,BT.dnz_chr_id,
7215                BT.end_date end_date,BT.object_version_number
7216         FROM okc_k_lines_b BT
7217         WHERE BT.cle_id = p_bp_line_id
7218         AND BT.lse_id IN (5,23,59)
7219         AND BT.orig_system_id1  = p_old_bt_id;
7220 
7221 
7222    -- get the old and new bill rates
7223    /*
7224     CURSOR CUR_GET_OLD_BILL_RATE(p_id IN NUMBER,p_object1_id1 IN NUMBER)IS
7225     SELECT BTY.id BT_LINE_ID,
7226            BTY.start_date start_date,
7227            BTY.end_date end_date,
7228            BRT.id BR_LINE_ID,
7229            BRT.line_number line_number,
7230            TO_NUMBER(BTY_ITEM.object1_id1) bill_type_id,
7231            BRS.start_hour start_hour,
7232            BRS.start_minute start_minute,
7233            BRS.end_hour end_hour,
7234            BRS.end_minute end_minute,
7235            BRS.monday_flag monday_flag,
7236            BRS.tuesday_flag tuesday_flag,
7237            BRS.wednesday_flag wednesday_flag,
7238            BRS.thursday_flag thursday_flag,
7239            BRS.friday_flag friday_flag,
7240            BRS.saturday_flag saturday_flag,
7241            BRS.sunday_flag sunday_flag,
7242            BRS.object1_id1 object1_id1,
7243            BRS.object1_id2 object1_id2,
7244            BRS.jtot_object1_code jtot_object1_code,
7245            BRS.bill_rate_code bill_rate_code,
7246            BRS.flat_rate flat_rate,
7247            BRS.uom uom,
7248            BRS.holiday_yn holiday_yn,
7249            BRS.percent_over_list_price percent_over_list_price,
7250            BRS.object_version_number object_version_number --Added
7251     FROM   okc_k_lines_b BTY,
7252            okc_k_lines_b BRT,
7253            okc_k_items   BTY_ITEM,
7254            oks_billrate_schedules BRS
7255     WHERE  BTY.id = p_id --274672627862321176435113785401106834939--
7256     AND    BTY.lse_id IN (5,23,59)
7257 --    AND    BRT.line_number = p_line_number
7258     AND    BTY_ITEM.cle_id = BTY.id
7259     AND    BTY_ITEM.dnz_chr_id = BTY.dnz_chr_id
7260     AND    BTY_ITEM.jtot_object1_code = 'OKX_BILLTYPE'
7261     AND    TO_NUMBER(BTY_ITEM.object1_id1) = p_object1_id1
7262     AND    BTY.id = BRT.cle_id
7263     AND    BRT.lse_id IN (6,24,60)
7264     AND    BRS.cle_id = BRT.id
7265     ORDER BY  BRT.line_number ,BTY.start_date,BTY.end_date,bill_type_id;
7266 
7267     */
7268 
7269      -- CURSOR CUR_GET_OLD_BILL_RATE modified for bug#4155384 - smohapat
7270      CURSOR CUR_GET_OLD_BILL_RATE(p_id IN NUMBER)IS
7271      SELECT
7272            BRS.cle_id,
7273            BRS.start_hour start_hour,
7274            BRS.start_minute start_minute,
7275            BRS.end_hour end_hour,
7276            BRS.end_minute end_minute,
7277            BRS.monday_flag monday_flag,
7278            BRS.tuesday_flag tuesday_flag,
7279            BRS.wednesday_flag wednesday_flag,
7280            BRS.thursday_flag thursday_flag,
7281            BRS.friday_flag friday_flag,
7282            BRS.saturday_flag saturday_flag,
7283            BRS.sunday_flag sunday_flag,
7284            BRS.object1_id1 object1_id1,
7285            BRS.object1_id2 object1_id2,
7286            BRS.jtot_object1_code jtot_object1_code,
7287            BRS.bill_rate_code bill_rate_code,
7288            BRS.flat_rate flat_rate,
7289            BRS.uom uom,
7290            BRS.holiday_yn holiday_yn,
7291            BRS.percent_over_list_price percent_over_list_price,
7292            BRS.object_version_number object_version_number --Added
7293     FROM   oks_billrate_schedules BRS
7294     WHERE  BRS.bt_cle_id = p_id ;
7295 
7296 
7297 
7298 /*
7299     CURSOR CUR_GET_NEW_BILL_RATE(p_id IN NUMBER,p_object1_id1 IN NUMBER)IS
7300     SELECT BTY.ID BT_LINE_ID,
7301            BTY.start_date start_date,
7302            BTY.end_date end_date,
7303            BTY.line_number line_number,
7304            BRT.ID BR_LINE_ID,
7305            BRT.dnz_chr_id dnz_chr_id,
7306            TO_NUMBER(BTY_ITEM.object1_id1) bill_type_id
7307     FROM   okc_k_lines_b BTY,
7308            okc_k_lines_b BRT,
7309            okc_k_items   BTY_ITEM
7310     WHERE  BTY.id =p_id
7311   --  AND    BTY.line_Number = p_line_number
7312     AND    BTY.lse_id IN (5,23,59)
7313     AND    BTY.id = BTY_ITEM.cle_id
7314     AND    BTY_ITEM.dnz_chr_id = BTY.dnz_chr_id
7315     AND    BTY_ITEM.jtot_object1_code = 'OKX_BILLTYPE'
7316     AND    BRT.cle_id = BTY.id
7317     AND    BRT.lse_id IN (6,24,60)
7318     AND    TO_NUMBER(BTY_ITEM.object1_id1) = p_object1_id1
7319     ORDER BY  BTY.start_date,BTY.end_date,bill_type_id;
7320 */
7321 
7322      -- CURSOR CUR_GET_NEW_BILL_RATE modified for bug#4155384 - smohapat
7323 
7324     CURSOR CUR_GET_NEW_BILL_RATE(p_bt_id IN NUMBER,p_old_brs_id IN NUMBER)IS
7325     SELECT BRT.ID BRS_LINE_ID,
7326            BRT.CLE_ID BRS_CLE_LINE_ID,
7327            BRT.dnz_chr_id dnz_chr_id
7328     FROM   okc_k_lines_b BRT
7329     WHERE  BRT.cle_id = p_bt_id
7330     AND    BRT.lse_id IN (6,24,60)
7331     AND    BRT.orig_system_id1  = p_old_brs_id;
7332 
7333 
7334     -- get the old and new coverage timezones and covered times for the business process
7335 
7336     CURSOR CUR_GET_OLD_BUSI_PROC(p_cle_id IN NUMBER)
7337     IS
7338      SELECT lines1.id OLD_BP_LINE_ID,
7339             to_number(items.object1_id1) old_busi_proc_id
7340      FROM   okc_k_lines_b lines1,
7341             okc_k_items items
7342      WHERE  lines1.cle_id = p_cle_id
7343      AND    lines1.lse_id IN (3,16,21)
7344      AND    items.cle_id = lines1.id
7345      AND    items.jtot_object1_code = 'OKX_BUSIPROC'
7346      AND    items.dnz_chr_id = lines1.dnz_chr_id;
7347 
7348 /*
7349 
7350 CURSOR CUR_GET_OLD_COV_TZ(p_id IN NUMBER,p_cle_id IN NUMBER)    IS
7351      SELECT tze.id timezone_line_id, tze.cle_id timezone_cle_id,
7352             tze.timezone_id timezone_id,tze.default_yn default_yn,
7353             tze.dnz_chr_id tze_dnz_chr_id,tze.object_version_number tze_object_version_number,
7354             to_number(items.object1_id1) busi_proc_id
7355      FROM   OKC_K_LINES_B lines1,
7356                         okc_k_items items,
7357             oks_coverage_timezones tze
7358      WHERE  lines1.id     = p_id
7359      AND    lines1.cle_id = p_cle_id
7360      AND    lines1.lse_id IN (3,16,21)
7361      AND    items.cle_id = lines1.id
7362      and    items.jtot_object1_code = 'OKX_BUSIPROC'
7363      And    items.dnz_chr_id = lines1.dnz_chr_id
7364      And    lines1.dnz_chr_id = tze.dnz_chr_id
7365      AND    tze.cle_id = lines1.id
7366      ORDER BY   to_number(items.object1_id1),
7367                                 lines1.start_date, lines1.end_date, tze.timezone_id;
7368 
7369 */
7370      -- CURSOR CUR_GET_OLD_COV_TZ modified for bug#4155384 - smohapat
7371      CURSOR CUR_GET_OLD_COV_TZ(p_bp_line_id IN NUMBER)    IS
7372      SELECT tze.id timezone_line_id, tze.cle_id timezone_cle_id,
7373             tze.timezone_id timezone_id,tze.default_yn default_yn,
7374             tze.dnz_chr_id tze_dnz_chr_id,tze.object_version_number tze_object_version_number
7375      FROM   oks_coverage_timezones tze
7376      WHERE  tze.cle_id = p_bp_line_id;
7377 
7378 
7379 
7380 CURSOR CUR_GET_OLD_Times(p_cle_id IN NUMBER,p_dnz_chr_id IN NUMBER)    IS
7381 
7382     SELECT          times.id cover_time_line_id,
7383                     times.dnz_chr_id times_dnz_chr_id,
7384                     times.start_hour start_hour,
7385                     times.start_minute start_minute,
7386                     times.end_hour end_hour,
7387                     times.end_minute end_minute,
7388                     times.monday_yn monday_yn,
7389                     times.tuesday_yn tuesday_yn,
7390                     times.wednesday_yn wednesday_yn,
7391                     times.thursday_yn thursday_yn,
7392                     times.friday_yn friday_yn,
7393                     times.saturday_yn saturday_yn,
7394                     times.sunday_yn sunday_yn,
7395                     times.object_version_number object_version_number
7396      FROM           OKS_COVERAGE_TIMES TIMES
7397      WHERE          TIMES.COV_TZE_LINE_ID = p_cle_id
7398      AND            TIMES.DNZ_CHR_ID      = p_dnz_chr_id;
7399 
7400    CURSOR CUR_GET_NEW_BUSI_PROC_ID(p_cle_id IN NUMBER, p_busi_proc_id IN NUMBER)
7401     IS
7402      SELECT lines1.id NEW_BP_LINE_ID, lines1.dnz_chr_id new_dnz_chr_id,
7403             to_number(items1.object1_id1) busi_proc_id
7404      FROM   okc_k_lines_b lines1,
7405             okc_k_items items1
7406      WHERE  lines1.cle_id = p_cle_id
7407      AND    lines1.lse_id IN (3,16,21)
7408      AND    items1.cle_id = lines1.id
7409      AND    items1.jtot_object1_code = 'OKX_BUSIPROC'
7410      AND    to_number(items1.object1_id1) = p_busi_proc_id
7411      ORDER BY to_number(items1.object1_id1), lines1.start_date, lines1.end_date ;
7412 
7413        cu_get_new_busi_proc_id cur_get_new_busi_proc_id%ROWTYPE ;
7414 
7415     CURSOR  Bill_rate_CUR (P_ID IN NUMBER,P_Dnz_Chr_ID IN NUMBER) IS
7416     SELECT  id,
7417             dnz_chr_id
7418     FROM    okc_k_lines_b
7419     WHERE   cle_id  = p_id
7420     AND     dnz_chr_id = P_Dnz_Chr_ID;
7421 
7422 
7423       l_new_bp_exists   BOOLEAN   := FALSE;
7424       l_new_br_exists   BOOLEAN   := FALSE;
7425       l_new_bt_exists   BOOLEAN   := FALSE;
7426       l_cov_time_exists BOOLEAN   := FALSE;
7427       l_Count           Number :=0;
7428       l_cov_templ_yn    varchar2(1);
7429       l_pm_program_id   NUMBER;
7430       l_oks_exist       VARCHAR2(1);
7431 
7432 /* Added by jvorugan as part of Copy API Redesign,this function
7433    checks if oks_k_lines_b record already exists and returns the status */
7434    FUNCTION CHECK_OKSLINE_EXIST(p_new_cle_id NUMBER,
7435                                 x_oks_exist OUT NOCOPY VARCHAR2) return varchar2  is
7436 
7437     CURSOR check_line_exist IS
7438     SELECT 1 FROM OKS_K_LINES_B
7439     WHERE cle_id = p_new_cle_id
7440     AND rownum=1;
7441 
7442     l_Count     Number := 0;
7443     x_return_status   VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
7444 
7445     BEGIN
7446         OPEN check_line_exist;
7447         FETCH check_line_exist INTO l_Count;
7448         CLOSE check_line_exist;
7449 
7450         IF l_Count >0
7451         THEN
7452            x_oks_exist := 'Y';
7453         ELSE
7454            x_oks_exist := 'N';
7455         END IF;
7456         RETURN (x_return_status);
7457 
7458     EXCEPTION
7459     WHEN OTHERS THEN
7460         OKC_API.set_message(G_APP_NAME,
7461                             G_UNEXPECTED_ERROR,
7462                             G_SQLCODE_TOKEN,
7463                             SQLCODE,
7464                             G_SQLERRM_TOKEN,
7465                             SQLERRM);
7466         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
7467 	RETURN (x_return_status);
7468 
7469    END CHECK_OKSLINE_EXIST;
7470 
7471 
7472       BEGIN
7473 
7474       IF (G_DEBUG_ENABLED = 'Y') THEN
7475              okc_debug.Set_Indentation('Create_Actual_Coverage');
7476              okc_debug.log('Entered Copy_Coverage', 2);
7477       END IF;
7478 
7479 
7480       l_new_contract_line_id:= p_contract_line_id ;
7481 
7482       OPEN CUR_GET_ORIG_SYS_ID1(l_new_contract_line_id);
7483       FETCH cur_get_orig_sys_id1 INTO l_orig_sys_id1;
7484       CLOSE cur_get_orig_sys_id1;
7485 
7486     -- Added by jvorugan for copyying template
7487       OPEN check_cov_tmpl(l_new_contract_line_id);
7488       FETCH check_cov_tmpl INTO l_Count;
7489       CLOSE check_cov_tmpl;
7490       IF l_Count > 0
7491       THEN
7492           l_cov_templ_yn := 'Y';
7493       Else
7494          l_cov_templ_yn := 'N';
7495       END IF;
7496 
7497       IF l_cov_templ_yn ='N'  -- Get values associated with service line
7498       THEN
7499          OPEN CUR_GET_COV_LINE_ID(l_orig_sys_id1);
7500          FETCH cur_get_cov_line_id INTO cr_cov_line ;
7501          IF cur_get_cov_line_id%FOUND      THEN
7502            l_old_cov_line_id    := cr_cov_line.id;
7503            l_old_dnz_chr_id     := cr_cov_line.dnz_chr_id;
7504            l_old_cov_start_date := cr_cov_line.start_date;
7505            l_old_cov_end_date   := cr_cov_line.end_date;
7506          END IF ;
7507          CLOSE cur_get_cov_line_id ;
7508 
7509         OPEN CUR_GET_COV_LINE_ID(l_new_contract_line_id);
7510         FETCH cur_get_cov_line_id INTO cr_cov_line ;
7511         IF cur_get_cov_line_id%FOUND      THEN
7512            l_new_cov_line_id    := cr_cov_line.id;
7513            l_new_dnz_chr_id     := cr_cov_line.dnz_chr_id;
7514            l_new_cov_start_date := cr_cov_line.start_date;
7515            l_new_cov_end_date   := cr_cov_line.end_date;
7516         END IF ;
7517         CLOSE cur_get_cov_line_id;
7518 
7519       ELSE   -- Get values associated with template
7520          OPEN CUR_GET_COV_DET(l_orig_sys_id1);
7521          FETCH CUR_GET_COV_DET INTO cr_cov_det ;
7522          IF CUR_GET_COV_DET%FOUND      THEN
7523            l_old_cov_line_id    := cr_cov_det.id;
7524            l_old_dnz_chr_id     := cr_cov_det.dnz_chr_id;
7525            l_old_cov_start_date := cr_cov_det.start_date;
7526            l_old_cov_end_date   := cr_cov_det.end_date;
7527          END IF ;
7528          CLOSE CUR_GET_COV_DET ;
7529 
7530          OPEN CUR_GET_COV_DET(l_new_contract_line_id);
7531          FETCH CUR_GET_COV_DET INTO cr_cov_det ;
7532          IF CUR_GET_COV_DET%FOUND      THEN
7533            l_new_cov_line_id    := cr_cov_det.id;
7534            l_new_dnz_chr_id     := cr_cov_det.dnz_chr_id;
7535            l_new_cov_start_date := cr_cov_det.start_date;
7536            l_new_cov_end_date   := cr_cov_det.end_date;
7537          END IF ;
7538          CLOSE CUR_GET_COV_DET;
7539 
7540       END IF;
7541 
7542 
7543       IF l_old_cov_line_id IS NOT NULL AND l_new_cov_line_id IS NOT NULL   THEN        ---1
7544       -- Added by Jvorugan if oks_k_lines_b record already exists,then not created
7545       l_return_status := CHECK_OKSLINE_EXIST(p_new_cle_id =>l_new_cov_line_id,
7546                                              x_oks_exist  =>l_oks_exist);
7547       IF (G_DEBUG_ENABLED = 'Y') THEN
7548               okc_debug.log('AFTER  CHECK_OKSLINE_EXIST1'||l_return_status, 2);
7549       END IF;
7550 
7551       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7552         RAISE G_EXCEPTION_HALT_VALIDATION;
7553       END IF;
7554       x_return_status         := l_return_status;
7555       IF l_oks_exist = 'N'
7556       THEN
7557            FOR cov_attr_rec IN CUR_GET_COV_ATTR(l_old_cov_line_id)      LOOP
7558       INIT_OKS_K_LINE(l_klnv_tbl_in) ;
7559 
7560      l_klnv_tbl_in(1).cle_id             :=  l_new_cov_line_id;
7561      l_klnv_tbl_in(1).dnz_chr_id         :=  l_new_dnz_chr_id;
7562      l_klnv_tbl_in(1).coverage_type      :=  cov_attr_rec.coverage_type;
7563      l_klnv_tbl_in(1).exception_cov_id   :=  cov_attr_rec.exception_cov_id;
7564      l_klnv_tbl_in(1).transfer_option    :=  cov_attr_rec.transfer_option;
7565      l_klnv_tbl_in(1).prod_upgrade_yn    :=  cov_attr_rec.prod_upgrade_yn;
7566      l_klnv_tbl_in(1).inheritance_type   :=  cov_attr_rec.inheritance_type;
7567      l_klnv_tbl_in(1).sfwt_flag          :=  'N';
7568      l_klnv_tbl_in(1).sync_date_install  := cov_attr_rec.sync_date_install;
7569      l_klnv_tbl_in(1).pm_program_id      := cov_attr_rec.pm_program_id;
7570      l_klnv_tbl_in(1).pm_conf_req_yn     := cov_attr_rec.pm_conf_req_yn;
7571      l_klnv_tbl_in(1).pm_sch_exists_yn   := cov_attr_rec.pm_sch_exists_yn;
7572      l_klnv_tbl_in(1).object_version_number := cov_attr_rec.object_version_number;
7573 
7574      OKS_CONTRACT_LINE_PUB.CREATE_LINE(
7575                                    p_api_version    => l_api_version,
7576                                    p_init_msg_list  => l_init_msg_list,
7577                                    x_return_status  => l_return_status,
7578                                    x_msg_count      => l_msg_count,
7579                                    x_msg_data       => l_msg_data,
7580                                    p_klnv_tbl       => l_klnv_tbl_in,
7581                                    x_klnv_tbl       => l_klnv_tbl_out,
7582                                    p_validate_yn    => l_validate_yn);
7583 
7584 
7585       IF (G_DEBUG_ENABLED = 'Y') THEN
7586               okc_debug.log('After OKS_CONTRACT_LINE_PUB.CREATE_LINE'||l_return_status, 2);
7587       END IF;
7588 
7589 
7590       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7591         RAISE G_EXCEPTION_HALT_VALIDATION;
7592       END IF;
7593       x_return_status         := l_return_status;
7594 
7595     IF l_klnv_tbl_in(1).pm_program_id IS NOT NULL THEN -- Copy PM for coverage template
7596        IF l_cov_templ_yn ='Y'
7597        THEN
7598            OKS_PM_PROGRAMS_PVT.Copy_pm_template(
7599                                               p_api_version  => l_api_version,
7600                                               p_init_msg_list     =>'T',
7601                                               x_return_status     => l_return_status,
7602                                               x_msg_count         => x_msg_count,
7603                                               x_msg_data          =>  x_msg_data,
7604                                               p_old_coverage_id   => l_old_cov_line_id,
7605                                               p_new_coverage_id   => l_new_cov_line_id);
7606 	   IF (G_DEBUG_ENABLED = 'Y') THEN
7607               okc_debug.log('AFTER CALLING OKS_PM_PROGRAMS_PVT.Copy_pm_template'||l_return_status, 2);
7608            END IF;
7609 
7610            IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7611                                 RAISE G_EXCEPTION_HALT_VALIDATION;
7612            END  IF;
7613        END IF;
7614 
7615 
7616     END IF; -- PM Ends
7617 
7618   END LOOP ; -- Coverage End
7619  END IF; -- End  for oks_line_exist check
7620 
7621 
7622  -- BP STARTS HERE
7623 
7624   INIT_OKS_K_LINE(l_klnv_tbl_in) ;
7625   i:= 0 ;
7626    FOR old_bp_rec IN CUR_GET_OLD_BP(l_old_cov_line_id)   LOOP  -- OLD BP
7627     l_klnv_tbl_in.DELETE;
7628     i:= i + 1 ;
7629     l_old_bp_line_id                             := old_bp_rec.bp_line_Id;
7630    -- Added by jvorugan as a part of Copy API Redesign
7631     FOR new_bp_rec IN CUR_GET_NEW_BP(l_new_cov_line_id , OLD_BP_REC.BP_LINE_ID)    LOOP
7632         l_new_bp_exists := TRUE;
7633         l_new_Bp_line_Id            :=  new_bp_rec.bp_line_id;
7634         l_klnv_tbl_in(i).CLE_ID      := new_bp_rec.bp_line_id;
7635         l_klnv_tbl_in(i).DNZ_CHR_ID  := new_bp_rec.dnz_chr_id;
7636 
7637     END LOOP ;
7638       -- Added by Jvorugan if oks_k_lines_b record already exists,then not created
7639       l_return_status := CHECK_OKSLINE_EXIST(p_new_cle_id =>l_new_Bp_line_Id,
7640                                              x_oks_exist  =>l_oks_exist);
7641       IF (G_DEBUG_ENABLED = 'Y') THEN
7642               okc_debug.log('AFTER  CHECK_OKSLINE_EXIST2'||l_return_status, 2);
7643       END IF;
7644 
7645       IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7646         RAISE G_EXCEPTION_HALT_VALIDATION;
7647       END IF;
7648       x_return_status         := l_return_status;
7649       IF l_oks_exist = 'N'
7650       THEN
7651         l_klnv_tbl_in(i).DISCOUNT_LIST               := old_bp_rec.discount_list;
7652         l_klnv_tbl_in(i).OFFSET_DURATION             := old_bp_rec.offset_duration;
7653         l_klnv_tbl_in(i).OFFSET_PERIOD               := old_bp_rec.offset_period;
7654         l_klnv_tbl_in(i).ALLOW_BT_DISCOUNT           := old_bp_rec.allow_bt_discount;
7655         l_klnv_tbl_in(i).APPLY_DEFAULT_TIMEZONE      := old_bp_rec.apply_default_timezone;
7656         l_klnv_tbl_in(i).OBJECT_VERSION_NUMBER      :=  old_bp_rec.OBJECT_VERSION_NUMBER;
7657 
7658 --   i:= 0;
7659 
7660   /*    FOR new_bp_rec IN CUR_GET_NEW_BP(l_new_cov_line_id , OLD_BP_REC.BP_LINE_ID)    LOOP
7661         l_new_bp_exists := TRUE;
7662         l_new_Bp_line_Id            :=  new_bp_rec.bp_line_id;
7663         l_klnv_tbl_in(i).CLE_ID      := new_bp_rec.bp_line_id;
7664         l_klnv_tbl_in(i).DNZ_CHR_ID  := new_bp_rec.dnz_chr_id;
7665 
7666      END LOOP ; */ --commented by JVORUGAN
7667 
7668          IF l_klnv_tbl_in.COUNT > 0 AND (l_new_bp_exists = TRUE) THEN  -- 2
7669 
7670                OKS_CONTRACT_LINE_PUB.CREATE_LINE(p_api_version    => l_api_version,
7671                                                  p_init_msg_list  => l_init_msg_list,
7672                                                  x_return_status  => l_return_status,
7673                                                  x_msg_count      => l_msg_count,
7674                                                  x_msg_data       => l_msg_data,
7675                                                  p_klnv_tbl       => l_klnv_tbl_in,
7676                                                  x_klnv_tbl       => l_klnv_tbl_out,
7677                                                  p_validate_yn    => l_validate_yn);
7678 
7679                 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7680                     RAISE G_EXCEPTION_HALT_VALIDATION;
7681                 END IF;
7682         x_return_status         := l_return_status;
7683         END IF ; -- 2 -- BP ENDS HERE
7684       END IF; -- End  for oks_line_exist check
7685 
7686 /****************************************************/
7687 
7688 
7689         IF l_return_status = OKC_API.G_RET_STS_SUCCESS THEN  ---- For Time Zones
7690 
7691         INIT_OKS_TIMEZONE_LINE(l_timezone_tbl_in);
7692         INIT_OKS_COVER_TIME_LINE(l_cover_time_tbl_in);
7693 
7694          m:= 0 ;
7695          n:= 0 ;
7696 
7697         FOR old_times_rec IN CUR_GET_OLD_COV_TZ(l_old_bp_line_id)      LOOP -- TZ LOOP
7698 
7699 
7700             m:= m + 1 ;
7701             l_cov_time_exists := TRUE;
7702 
7703                  --   IF i = 1 OR ((l_tze_id <> old_times_rec.timezone_id) OR(l_bp_id  <> old_times_rec.busi_proc_id))then
7704                   l_old_Time_Zone_ID                        := old_times_rec.timezone_line_id;
7705                   l_old_Time_Zone_Dnz_Chr_Id                := old_times_rec.tze_dnz_chr_id;
7706                   l_timezone_tbl_in(m).DEFAULT_YN       := old_times_rec.default_yn;
7707                   l_timezone_tbl_in(m).TIMEZONE_ID      := old_times_rec.timezone_id;
7708                   l_timezone_tbl_in(m).object_version_number    := old_times_rec.tze_object_version_number;
7709 
7710 
7711                   l_timezone_tbl_in(m).CLE_ID           := l_new_Bp_line_Id;
7712                   l_timezone_tbl_in(m).DNZ_CHR_ID       := l_new_dnz_chr_id;
7713 
7714 
7715                   -- create the time zone record here
7716                     OKS_CTZ_PVT.INSERT_ROW(p_api_version                  => l_api_version,
7717                                            p_init_msg_list                => l_init_msg_list,
7718                                            x_return_status                => l_return_status,
7719                                            x_msg_count                    => l_msg_count,
7720                                            x_msg_data                     => l_msg_data,
7721                                            p_oks_coverage_timezones_v_tbl => l_timezone_tbl_in,
7722                                            x_oks_coverage_timezones_v_tbl => l_timezone_tbl_out);
7723 
7724 
7725                 IF (G_DEBUG_ENABLED = 'Y') THEN
7726                          okc_debug.log('After OKS_CTZ_PVT INSERT_ROW'||l_return_status, 2);
7727                 END IF;
7728 
7729                             IF  l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7730                                 IF l_timezone_tbl_out.COUNT > 0 THEN
7731                                     FOR I IN l_timezone_tbl_out.FIRST .. l_timezone_tbl_out.LAST LOOP
7732                                         l_new_TimeZone_Id :=l_timezone_tbl_out(m).ID;
7733                                     END LOOP;
7734                                 ELSE
7735                                     RAISE G_EXCEPTION_HALT_VALIDATION;
7736                                 END IF;
7737                             ELSE
7738                                RAISE G_EXCEPTION_HALT_VALIDATION;
7739                             END IF;
7740 
7741 
7742             IF l_new_TimeZone_Id IS NOT NULL THEN
7743                 FOR CUR_GET_OLD_Times_Rec IN CUR_GET_OLD_Times(l_old_Time_Zone_ID,l_old_Time_Zone_Dnz_Chr_Id) LOOP
7744                   n := n + 1;
7745                   l_cover_time_tbl_in(n).COV_TZE_LINE_ID        := l_new_TimeZone_Id;
7746                   l_cover_time_tbl_in(n).DNZ_CHR_ID             := l_new_dnz_chr_id;
7747                   l_cover_time_tbl_in(n).START_HOUR             := CUR_GET_OLD_Times_Rec.start_hour;
7748                   l_cover_time_tbl_in(n).START_MINUTE           := CUR_GET_OLD_Times_Rec.start_minute;
7749                   l_cover_time_tbl_in(n).END_HOUR               := CUR_GET_OLD_Times_Rec.end_hour;
7750                   l_cover_time_tbl_in(n).END_MINUTE             := CUR_GET_OLD_Times_Rec.end_minute;
7751                   l_cover_time_tbl_in(n).MONDAY_YN              := CUR_GET_OLD_Times_Rec.monday_yn;
7752                   l_cover_time_tbl_in(n).TUESDAY_YN             := CUR_GET_OLD_Times_Rec.tuesday_yn;
7753                   l_cover_time_tbl_in(n).WEDNESDAY_YN           := CUR_GET_OLD_Times_Rec.wednesday_yn;
7754                   l_cover_time_tbl_in(n).THURSDAY_YN            := CUR_GET_OLD_Times_Rec.thursday_yn;
7755                   l_cover_time_tbl_in(n).FRIDAY_YN              := CUR_GET_OLD_Times_Rec.friday_yn;
7756                   l_cover_time_tbl_in(n).SATURDAY_YN            := CUR_GET_OLD_Times_Rec.saturday_yn;
7757                   l_cover_time_tbl_in(n).SUNDAY_YN              := CUR_GET_OLD_Times_Rec.sunday_yn;
7758                   l_cover_time_tbl_in(n).Object_version_number  := CUR_GET_OLD_Times_Rec.Object_version_number;
7759                 END LOOP;
7760 
7761                  IF l_Cover_time_tbl_in.COUNT > 0 Then
7762 
7763                   OKS_CVT_PVT.INSERT_ROW(p_api_version               => l_api_version,
7764                                          p_init_msg_list             => l_init_msg_list,
7765                                          x_return_status             => l_return_status,
7766                                          x_msg_count                 => l_msg_count,
7767                                          x_msg_data                  => l_msg_data,
7768                                          p_oks_coverage_times_v_tbl  => l_cover_time_tbl_in,
7769                                          x_oks_coverage_times_v_tbl  => l_cover_time_tbl_out);
7770 
7771                 END IF;
7772 
7773                     IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7774                         RAISE G_EXCEPTION_HALT_VALIDATION;
7775                     ELSE
7776                     l_timezone_tbl_in.DELETE;
7777                     l_cover_time_tbl_in.DELETE;
7778                     END IF;
7779 
7780             END IF;
7781 
7782 
7783         END LOOP;-- TZ LOOP
7784       END IF ; --For Time Zones
7785 
7786 /************************************************************************************/
7787 -- RT Starts HERE
7788 
7789         FOR REC_GET_OLD_RT IN CUR_GET_OLD_RT(l_old_bp_line_id)   LOOP  -- OLD RT
7790         l := 0;
7791         l_klnv_tbl_in.DELETE;
7792          l := l + 1;
7793 
7794         l_line_NUMBER   :=    REC_GET_OLD_RT.rt_line_number;
7795         l_RT_ID         :=    REC_GET_OLD_RT.rt_line_id;
7796         l_rt_dnz_chr_id :=    REC_GET_OLD_RT.rt_dnz_chr_id;
7797 
7798 	--Added by JVORUGAN as a part of COPY API Redesign
7799 	FOR new_bp_rec IN CUR_GET_NEW_RT(l_new_Bp_line_Id,REC_GET_OLD_RT.Rt_Line_ID) LOOP --2
7800 
7801             l_klnv_tbl_in(l).CLE_ID      := new_bp_rec.id;
7802             l_klnv_tbl_in(l).DNZ_CHR_ID  := new_bp_rec.dnz_chr_id;
7803 
7804         END LOOP ; --2
7805 	-- Added by Jvorugan if oks_k_lines_b record already exists,then not created
7806         l_return_status := CHECK_OKSLINE_EXIST(p_new_cle_id =>l_klnv_tbl_in(l).CLE_ID,
7807                                                x_oks_exist  =>l_oks_exist);
7808 
7809         IF (G_DEBUG_ENABLED = 'Y') THEN
7810               okc_debug.log('AFTER  CHECK_OKSLINE_EXIST3'||l_return_status, 2);
7811         END IF;
7812 
7813         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7814           RAISE G_EXCEPTION_HALT_VALIDATION;
7815         END IF;
7816         x_return_status         := l_return_status;
7817         IF l_oks_exist = 'N'
7818         THEN
7819 
7820         l_klnv_tbl_in(l).DISCOUNT_LIST               := REC_GET_OLD_RT.discount_list;
7821         l_klnv_tbl_in(l).OFFSET_DURATION             := REC_GET_OLD_RT.offset_duration;
7822         l_klnv_tbl_in(l).OFFSET_PERIOD               := REC_GET_OLD_RT.offset_period;
7823         l_klnv_tbl_in(l).ALLOW_BT_DISCOUNT           := REC_GET_OLD_RT.allow_bt_discount;
7824         l_klnv_tbl_in(l).APPLY_DEFAULT_TIMEZONE      := REC_GET_OLD_RT.apply_default_timezone;
7825         l_klnv_tbl_in(l).OBJECT_VERSION_NUMBER      :=  REC_GET_OLD_RT.OBJECT_VERSION_NUMBER;
7826         l_klnv_tbl_in(l).INCIDENT_SEVERITY_ID:=      REC_GET_OLD_RT.INCIDENT_SEVERITY_ID;
7827         l_klnv_tbl_in(l).WORK_THRU_YN:=  REC_GET_OLD_RT.WORK_THRU_YN;
7828         l_klnv_tbl_in(l).REACT_ACTIVE_YN:=  REC_GET_OLD_RT.REACT_ACTIVE_YN;
7829         l_klnv_tbl_in(l).SFWT_FLAG:=REC_GET_OLD_RT.SFWT_FLAG;
7830         l_klnv_tbl_in(l).REACT_TIME_NAME:= REC_GET_OLD_RT.REACT_TIME_NAME;
7831 
7832 
7833         /*        FOR new_bp_rec IN CUR_GET_NEW_RT(l_new_Bp_line_Id,REC_GET_OLD_RT.Rt_Line_ID) LOOP --2
7834 
7835             l_klnv_tbl_in(l).CLE_ID      := new_bp_rec.id;
7836             l_klnv_tbl_in(l).DNZ_CHR_ID  := new_bp_rec.dnz_chr_id;
7837 
7838             END LOOP ; --2  */ --commented by Jvorugan
7839          IF l_klnv_tbl_in.COUNT > 0 THEN  -- 2
7840 
7841                OKS_CONTRACT_LINE_PUB.CREATE_LINE(p_api_version    => l_api_version,
7842                                                  p_init_msg_list  => l_init_msg_list,
7843                                                  x_return_status  => l_return_status,
7844                                                  x_msg_count      => l_msg_count,
7845                                                  x_msg_data       => l_msg_data,
7846                                                  p_klnv_tbl       => l_klnv_tbl_in,
7847                                                  x_klnv_tbl       => l_klnv_tbl_out,
7848                                                  p_validate_yn    => l_validate_yn);
7849 
7850 
7851                 IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7852                     RAISE G_EXCEPTION_HALT_VALIDATION;
7853                 ELSE
7854                     l_klnv_tbl_in.DELETE;
7855                     FOR I IN  l_klnv_tbl_out.FIRST .. l_klnv_tbl_out.LAST LOOP
7856                         l_line_id_four   :=  l_klnv_tbl_out(I).Cle_ID;
7857                     END LOOP;
7858                 END IF;
7859             x_return_status         := l_return_status;
7860          END IF ; -- 2
7861         /*added by spingali for bug 9341570*/
7862         ELSE
7863             l_line_id_four :=l_klnv_tbl_in(l).CLE_ID;
7864             /*added by spingali for bug 9341570*/
7865         END IF; -- End  for oks_line_exist check
7866 
7867                 FOR Get_Old_Act_Time_Types_Rec IN   Get_Old_Act_Time_Types(l_RT_ID,l_rt_dnz_chr_id) LOOP --3
7868                 l_act_pvt_tbl_in.DELETE;
7869                 k := k + 1;
7870                     l_act_pvt_ID        :=  Get_Old_Act_Time_Types_Rec.ID;
7871 
7872                     l_act_pvt_tbl_in(k).cle_id                  := l_line_id_four;
7873                     l_act_pvt_tbl_in(k).DNZ_CHR_ID              := l_new_dnz_chr_id ; --Get_Old_Act_Time_Types_Rec.Dnz_Chr_ID;
7874                     l_act_pvt_tbl_in(k).ACTION_TYPE_CODE        :=Get_Old_Act_Time_Types_Rec.ACTION_TYPE_CODE;
7875                     l_act_pvt_tbl_in(k).OBJECT_VERSION_NUMBER   :=  Get_Old_Act_Time_Types_Rec.OBJECT_VERSION_NUMBER;
7876 
7877                     oks_act_pvt.insert_row(
7878                                             p_api_version                   =>      l_api_version,
7879                                             p_init_msg_list                 =>      l_init_msg_list,
7880                                             x_return_status                 =>      l_return_status,
7881                                             x_msg_count                     =>      l_msg_count,
7882                                             x_msg_data                      =>      l_msg_data,
7883                                             p_oks_action_time_types_v_tbl   =>      l_act_pvt_tbl_in,
7884                                             x_oks_action_time_types_v_tbl   =>      l_act_pvt_tbl_out);
7885 
7886                 IF (G_DEBUG_ENABLED = 'Y') THEN
7887                          okc_debug.log('After oks_act_pvt insert_row'||l_return_status, 2);
7888                 END IF;
7889 
7890                     IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7891                         RAISE G_EXCEPTION_HALT_VALIDATION;
7892                     ELSE
7893                         FOR I IN  l_act_pvt_tbl_out.FIRST .. l_act_pvt_tbl_out.LAST LOOP
7894                             l_act_pvt_new_id        :=  l_act_pvt_tbl_out(I).ID;
7895                             l_act_pvt_dnz_chr_id        :=  l_act_pvt_tbl_out(I).dnz_chr_ID;
7896                             l_Act_pvt_cle_id            :=  l_act_pvt_tbl_out(I).cle_ID;
7897                         END LOOP;
7898                     END IF;
7899 
7900 
7901                      FOR Get_Old_Act_Times_Rec IN   Get_Old_Act_Times_Cur(l_act_pvt_ID,Get_Old_Act_Time_Types_Rec.Dnz_Chr_ID) LOOP --4
7902                      l_acm_pvt_tbl_in.DELETE;
7903                         F := F + 1;
7904                         l_acm_pvt_tbl_in(f).COV_ACTION_TYPE_ID := l_act_pvt_new_id;
7905                         l_acm_pvt_tbl_in(f).CLE_ID      :=    l_Act_pvt_cle_id;
7906                         l_acm_pvt_tbl_in(f).DNZ_CHR_ID  :=    l_act_pvt_dnz_chr_id;
7907                         l_acm_pvt_tbl_in(f).UOM_CODE    :=      Get_Old_Act_Times_Rec.UOM_CODE;
7908                         l_acm_pvt_tbl_in(f).SUN_DURATION:=  Get_Old_Act_Times_Rec.SUN_DURATION;
7909                         l_acm_pvt_tbl_in(f).MON_DURATION:=  Get_Old_Act_Times_Rec.MON_DURATION;
7910                         l_acm_pvt_tbl_in(f).TUE_DURATION:=  Get_Old_Act_Times_Rec.TUE_DURATION;
7911                         l_acm_pvt_tbl_in(f).WED_DURATION:=  Get_Old_Act_Times_Rec.WED_DURATION;
7912                         l_acm_pvt_tbl_in(f).THU_DURATION:=  Get_Old_Act_Times_Rec.THU_DURATION;
7913                         l_acm_pvt_tbl_in(f).FRI_DURATION:=  Get_Old_Act_Times_Rec.FRI_DURATION;
7914                         l_acm_pvt_tbl_in(f).SAT_DURATION:=  Get_Old_Act_Times_Rec.SAT_DURATION;
7915                         l_acm_pvt_tbl_in(f).SECURITY_GROUP_ID:= Get_Old_Act_Times_Rec.SECURITY_GROUP_ID;
7916                         l_acm_pvt_tbl_in(f).OBJECT_VERSION_NUMBER := Get_Old_Act_Times_Rec.OBJECT_VERSION_NUMBER;
7917 
7918 
7919                              OKS_ACM_PVT.insert_row(
7920                                             p_api_version                   =>      l_api_version,
7921                                             p_init_msg_list                 =>      l_init_msg_list,
7922                                             x_return_status                 =>      l_return_status,
7923                                             x_msg_count                     =>      l_msg_count,
7924                                             x_msg_data                      =>      l_msg_data,
7925                                             p_oks_action_times_v_tbl        =>      l_acm_pvt_tbl_in,
7926                                             x_oks_action_times_v_tbl        =>      l_acm_pvt_tbl_out);
7927 
7928                 IF (G_DEBUG_ENABLED = 'Y') THEN
7929                          okc_debug.log('After OKS_ACM_PVT insert_row'||l_return_status, 2);
7930                 END IF;
7931 
7932                         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7933                             RAISE G_EXCEPTION_HALT_VALIDATION;
7934                         ELSE
7935                             l_acm_pvt_tbl_in.DELETE;
7936                             l_act_pvt_tbl_in.DELETE;
7937                             l_klnv_tbl_in.DELETE;
7938                         END IF;
7939 
7940 
7941                      END LOOP; --4
7942                      x_return_status         := l_return_status;
7943                 END LOOP;  --3
7944            END LOOP;  -- OLD RT
7945 
7946 
7947 -- RT Ends HERE
7948 
7949 /******************************************************************************/
7950        -- BT STARTS HERE
7951 
7952     INIT_OKS_K_LINE(l_klnv_tbl_in) ;
7953 
7954      i := 0;
7955 
7956 --FOR old_bt_rec IN CUR_GET_OLD_BT(l_old_cov_line_id)     LOOP --BT LOOP
7957    FOR old_bt_rec IN CUR_GET_OLD_BT(l_old_bp_line_id)
7958    LOOP --l_old_bp_line_id)  LOOP
7959                 l_klnv_tbl_in.DELETE;
7960        i:= i + 1 ;
7961 
7962 
7963         l_old_bill_type_ID := old_bt_rec.bt_line_id;
7964         l_old_line_number   := old_bt_rec.line_number;
7965 
7966        l_klnv_tbl_in(i).DISCOUNT_AMOUNT    := old_bt_rec.discount_amount;
7967        l_klnv_tbl_in(i).DISCOUNT_PERCENT   := old_bt_rec.discount_percent;
7968        l_klnv_tbl_in(i).object_version_number   := old_bt_rec.object_version_number;
7969 
7970             FOR new_bt_rec IN CUR_GET_NEW_BT(l_new_Bp_line_Id,old_bt_rec.bt_line_id)    LOOP
7971                 l_klnv_tbl_in(i).cle_id       := new_bt_rec.bt_line_id;
7972                 l_klnv_tbl_in(i).dnz_chr_id   := new_bt_rec.dnz_chr_id;
7973                 l_klnv_tbl_in(i).object_version_number   := new_bt_rec.object_version_number;
7974 
7975             END LOOP ;
7976             -- Added by Jvorugan if oks_k_lines_b record already exists,then not created
7977        l_return_status := CHECK_OKSLINE_EXIST(p_new_cle_id =>l_klnv_tbl_in(i).cle_id,
7978                                               x_oks_exist  =>l_oks_exist);
7979       IF (G_DEBUG_ENABLED = 'Y') THEN
7980               okc_debug.log('AFTER  CHECK_OKSLINE_EXIST4'||l_return_status, 2);
7981       END IF;
7982 
7983        IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7984             RAISE G_EXCEPTION_HALT_VALIDATION;
7985        END IF;
7986        x_return_status         := l_return_status;
7987        IF l_oks_exist = 'N'
7988        THEN
7989 
7990 
7991                OKS_CONTRACT_LINE_PUB.CREATE_LINE(p_api_version    => l_api_version,
7992                                                  p_init_msg_list  => l_init_msg_list,
7993                                                  x_return_status  => l_return_status,
7994                                                  x_msg_count      => l_msg_count,
7995                                                  x_msg_data       => l_msg_data,
7996                                                  p_klnv_tbl       => l_klnv_tbl_in,
7997                                                  x_klnv_tbl       => l_klnv_tbl_out,
7998                                                  p_validate_yn    => l_validate_yn);
7999 
8000         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8001             RAISE G_EXCEPTION_HALT_VALIDATION;
8002         ELSE
8003         l_klnv_tbl_in.DELETE;
8004             FOR I IN l_klnv_tbl_out.FIRST .. l_klnv_tbl_out.LAST LOOP
8005                 l_bill_Type_ID :=  l_klnv_tbl_out(I).CLE_ID;
8006                 l_bill_Type_Dnz_Chr_ID := l_klnv_tbl_out(I).DNZ_CHR_ID;
8007             END LOOP;
8008         END IF;
8009          /*added by spingali for bug 9341570*/
8010         ELSE
8011            l_bill_Type_ID :=  l_klnv_tbl_in(i).cle_id;
8012            l_bill_Type_Dnz_Chr_ID := l_klnv_tbl_in(i).dnz_chr_id ;
8013         /*added by spingali for bug 9341570*/
8014 
8015        END IF; -- End  for oks_line_exist check
8016 
8017 /****************************************************************************/
8018 l_klnv_tbl_in.DELETE;
8019 
8020 FOR Bill_rate_REC IN Bill_rate_CUR (l_bill_Type_ID,l_bill_Type_Dnz_Chr_ID) LOOP
8021     l_klnv_tbl_in(I).CLE_ID := Bill_rate_REC.ID;
8022     l_klnv_tbl_in(I).DNZ_CHR_ID := Bill_rate_REC.DNZ_CHR_ID;
8023     -- Added by Jvorugan if oks_k_lines_b record already exists,then not created
8024     l_return_status := CHECK_OKSLINE_EXIST(p_new_cle_id =>l_klnv_tbl_in(I).CLE_ID,
8025                                            x_oks_exist  =>l_oks_exist);
8026     IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8027         RAISE G_EXCEPTION_HALT_VALIDATION;
8028     END IF;
8029     x_return_status         := l_return_status;
8030     IF l_oks_exist = 'N'
8031     THEN
8032 
8033                OKS_CONTRACT_LINE_PUB.CREATE_LINE(p_api_version    => l_api_version,
8034                                                  p_init_msg_list  => l_init_msg_list,
8035                                                  x_return_status  => l_return_status,
8036                                                  x_msg_count      => l_msg_count,
8037                                                  x_msg_data       => l_msg_data,
8038                                                  p_klnv_tbl       => l_klnv_tbl_in,
8039                                                  x_klnv_tbl       => l_klnv_tbl_out,
8040                                                  p_validate_yn    => l_validate_yn);
8041 
8042 
8043 
8044         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8045             RAISE G_EXCEPTION_HALT_VALIDATION;
8046         END IF;
8047     END IF; -- End  for oks_line_exist check
8048  END LOOP;
8049 
8050 /*****************************************************************************/
8051 
8052   INIT_BILL_RATE_LINE(l_billrate_sch_tbl_in) ;
8053 
8054      i := 0;
8055         l_billrate_sch_tbl_in.DELETE;
8056 
8057       FOR old_brs_rec IN CUR_GET_OLD_BILL_RATE(l_old_bill_type_ID)      LOOP
8058          i:= i + 1 ;
8059 
8060         l_billrate_sch_tbl_in(i).start_hour                 := old_brs_rec.start_hour;
8061         l_billrate_sch_tbl_in(i).start_minute               := old_brs_rec.start_minute;
8062         l_billrate_sch_tbl_in(i).end_hour                   := old_brs_rec.end_hour;
8063         l_billrate_sch_tbl_in(i).end_minute                 := old_brs_rec.end_minute;
8064         l_billrate_sch_tbl_in(i).monday_flag                := old_brs_rec.monday_flag;
8065         l_billrate_sch_tbl_in(i).tuesday_flag               := old_brs_rec.tuesday_flag;
8066         l_billrate_sch_tbl_in(i).wednesday_flag             := old_brs_rec.wednesday_flag;
8067         l_billrate_sch_tbl_in(i).thursday_flag              := old_brs_rec.thursday_flag;
8068         l_billrate_sch_tbl_in(i).friday_flag                := old_brs_rec.friday_flag;
8069         l_billrate_sch_tbl_in(i).saturday_flag              := old_brs_rec.saturday_flag;
8070         l_billrate_sch_tbl_in(i).sunday_flag                := old_brs_rec.sunday_flag;
8071         l_billrate_sch_tbl_in(i).object1_id1                := old_brs_rec.object1_id1;
8072         l_billrate_sch_tbl_in(i).object1_id2                := old_brs_rec.object1_id2;
8073         l_billrate_sch_tbl_in(i).jtot_object1_code          := old_brs_rec.jtot_object1_code;
8074         l_billrate_sch_tbl_in(i).bill_rate_code             := old_brs_rec.bill_rate_code;
8075         l_billrate_sch_tbl_in(i).uom                        := old_brs_rec.uom;
8076         l_billrate_sch_tbl_in(i).flat_rate                  := old_brs_rec.flat_rate;
8077         l_billrate_sch_tbl_in(i).holiday_yn                 := old_brs_rec.holiday_yn ;
8078         l_billrate_sch_tbl_in(i).percent_over_list_price    := old_brs_rec.percent_over_list_price;
8079         l_billrate_sch_tbl_in(i).object_version_number      := old_brs_rec.object_version_number;
8080 
8081 
8082           FOR new_brs_rec IN CUR_GET_NEW_BILL_RATE(l_bill_type_ID ,old_brs_rec.cle_id )   LOOP
8083                 l_billrate_sch_tbl_in(i).cle_id         := new_brs_rec.BRS_LINE_ID;
8084                 l_billrate_sch_tbl_in(i).bt_cle_id      := new_brs_rec.BRS_CLE_LINE_ID;
8085                 l_billrate_sch_tbl_in(i).dnz_chr_id     := new_brs_rec.dnz_chr_id;
8086           END LOOP ;
8087       END LOOP ;
8088 
8089            IF l_billrate_sch_tbl_in.count > 0 then
8090 
8091                         oks_brs_pvt.insert_row(p_api_version                  => l_api_version,
8092                                                p_init_msg_list                => l_init_msg_list,
8093                                                x_return_status                => l_return_status,
8094                                                x_msg_count                    => l_msg_count,
8095                                                x_msg_data                     => l_msg_data,
8096                                                p_oks_billrate_schedules_v_tbl => l_billrate_sch_tbl_in,
8097                                                x_oks_billrate_schedules_v_tbl => l_billrate_sch_tbl_out);
8098 
8099 
8100                 IF (G_DEBUG_ENABLED = 'Y') THEN
8101                          okc_debug.log('After oks_brs_pvt insert_row'||l_return_status, 2);
8102                 END IF;
8103 
8104          IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8105                RAISE G_EXCEPTION_HALT_VALIDATION;
8106          END IF;
8107 
8108             x_return_status := l_return_status;
8109        END IF ;
8110 
8111       -- BR ENDs HERE
8112 
8113       x_return_status         := l_return_status;
8114 
8115 /****************************************************************************/
8116 END LOOP ;  --BT LOOP
8117 /****************************************************************/
8118 
8119        x_return_status   := l_return_status;
8120 
8121 
8122  END LOOP;   -- OLD BP --BP ENDS
8123 
8124 END IF; ---1
8125 
8126 COPY_NOTES (p_api_version           =>  l_api_version,
8127             p_init_msg_list         =>  l_init_msg_list,
8128             p_line_id               =>  l_new_contract_line_id,
8129             x_return_status         =>  l_return_status,
8130             x_msg_count             =>  l_msg_count,
8131             x_msg_data              =>  l_msg_data);
8132       IF (G_DEBUG_ENABLED = 'Y') THEN
8133               okc_debug.log('AFTER  COPY_NOTES'||l_return_status, 2);
8134       END IF;
8135 
8136 
8137          IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8138                RAISE G_EXCEPTION_HALT_VALIDATION;
8139          END IF;
8140 
8141 -- Added as part of R12 coverage Rearchitecture,create Pm schedule and associate with the service line but not coverage line
8142  IF l_cov_templ_yn ='N'  -- Create pm schedule only if it's not a coverage template
8143  THEN
8144     OPEN CUR_GET_PROGRAM_ID(l_orig_sys_id1);
8145     FETCH CUR_GET_PROGRAM_ID INTO l_pm_program_id;
8146     CLOSE CUR_GET_PROGRAM_ID;
8147 
8148     IF l_pm_program_id IS NOT NULL   --Generate schedule only if pm_program_id exists
8149     THEN
8150          OKS_PM_PROGRAMS_PVT.RENEW_PM_PROGRAM_SCHEDULE(
8151                                                         p_api_version    => l_api_version,
8152                                                         p_init_msg_list  => l_init_msg_list,
8153                                                         x_return_status  => l_return_status,
8154                                                         x_msg_count      => l_msg_count,
8155                                                         x_msg_data       => l_msg_data,
8156                                                         p_contract_line_id => l_new_contract_line_id);
8157 
8158 
8159            IF (G_DEBUG_ENABLED = 'Y') THEN
8160                  okc_debug.log('After RENEW_PM_PROGRAM_SCHEDULE'||l_return_status, 2);
8161            END IF;
8162 
8163 
8164            IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8165                                 RAISE G_EXCEPTION_HALT_VALIDATION;
8166            END  IF;
8167     END IF;
8168  END IF;
8169 -- End changes for coverage Rearchitecture by jvorugan
8170 
8171 x_return_status:= OKC_API.G_RET_STS_SUCCESS;
8172 l_klnv_tbl_in.DELETE;
8173 l_billrate_sch_tbl_in.DELETE;
8174 l_timezone_tbl_in.DELETE;
8175 l_cover_time_tbl_in.DELETE;
8176 
8177 
8178          IF (G_DEBUG_ENABLED = 'Y') THEN
8179                      okc_debug.log('End of Copy_Coverage'||l_return_status, 2);
8180                      okc_debug.Reset_Indentation;
8181          END IF;
8182 
8183       EXCEPTION
8184 
8185         WHEN G_EXCEPTION_HALT_VALIDATION THEN
8186 
8187          IF (G_DEBUG_ENABLED = 'Y') THEN
8188                      okc_debug.log('Exp of Copy_Coverage'||SQLERRM, 2);
8189                      okc_debug.Reset_Indentation;
8190          END IF;
8191       x_return_status := l_return_status ;
8192       x_msg_count :=l_msg_count;
8193       x_msg_data:=l_msg_data;
8194       x_return_status := OKC_API.HANDLE_EXCEPTIONS
8195       (
8196         l_api_name,
8197         'OKS_COPY_COVERAGE',
8198         'OKC_API.G_RET_STS_ERROR',
8199         x_msg_count,
8200         x_msg_data,
8201         '_PVT'
8202       );
8203     WHEN OKC_API.G_EXCEPTION_ERROR THEN
8204          IF (G_DEBUG_ENABLED = 'Y') THEN
8205                      okc_debug.log('Exp of Copy_Coverage'||SQLERRM, 2);
8206                      okc_debug.Reset_Indentation;
8207          END IF;
8208       x_msg_count :=l_msg_count;
8209       x_msg_data:=l_msg_data;
8210       x_return_status := OKC_API.HANDLE_EXCEPTIONS
8211       (
8212         l_api_name,
8213         'OKS_COPY_COVERAGE',
8214         'OKC_API.G_RET_STS_ERROR',
8215         x_msg_count,
8216         x_msg_data,
8217         '_PVT'
8218       );
8219     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8220 
8221          IF (G_DEBUG_ENABLED = 'Y') THEN
8222                      okc_debug.log('Exp of Copy_Coverage'||SQLERRM, 2);
8223                      okc_debug.Reset_Indentation;
8224          END IF;
8225       x_msg_count :=l_msg_count;
8226       x_msg_data:=l_msg_data;
8227       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
8228       (
8229         l_api_name,
8230         'OKS_COPY_COVERAGE',
8231         'OKC_API.G_RET_STS_UNEXP_ERROR',
8232         x_msg_count,
8233         x_msg_data,
8234         '_PVT'
8235       );
8236 
8237     WHEN OTHERS THEN
8238 
8239          IF (G_DEBUG_ENABLED = 'Y') THEN
8240                      okc_debug.log('Exp of Copy_Coverage'||SQLERRM, 2);
8241                      okc_debug.Reset_Indentation;
8242          END IF;
8243       OKC_API.SET_MESSAGE(
8244         p_app_name        => g_app_name,
8245         p_msg_name        => g_unexpected_error,
8246         p_token1          => g_sqlcode_token,
8247         p_token1_value    => sqlcode,
8248         p_token2          => g_sqlerrm_token,
8249         p_token2_value    => sqlerrm);
8250        -- notify caller of an error as UNEXPETED error
8251         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
8252         x_msg_count :=l_msg_count;
8253 
8254 
8255 END Copy_Coverage;
8256 
8257 --===========================================================================================
8258 
8259    PROCEDURE INIT_OKS_K_LINE(x_klnv_tbl  OUT NOCOPY OKS_KLN_PVT.klnv_tbl_type)
8260 IS
8261 
8262 
8263 BEGIN
8264 
8265 
8266  x_klnv_tbl(1).ID                     :=  OKC_API.G_MISS_NUM;
8267  x_klnv_tbl(1).CLE_ID                 :=  OKC_API.G_MISS_NUM;
8268  x_klnv_tbl(1).DNZ_CHR_ID             :=  OKC_API.G_MISS_NUM;
8269  x_klnv_tbl(1).DISCOUNT_LIST          :=  OKC_API.G_MISS_NUM;
8270  x_klnv_tbl(1).ACCT_RULE_ID           :=  OKC_API.G_MISS_NUM;
8271  x_klnv_tbl(1).PAYMENT_TYPE           :=  OKC_API.G_MISS_CHAR;
8272  x_klnv_tbl(1).CC_NO                  :=  OKC_API.G_MISS_CHAR;
8273  x_klnv_tbl(1).CC_EXPIRY_DATE         :=  OKC_API.G_MISS_DATE;
8274  x_klnv_tbl(1).CC_BANK_ACCT_ID        :=  OKC_API.G_MISS_NUM;
8275  x_klnv_tbl(1).CC_AUTH_CODE           :=  OKC_API.G_MISS_CHAR;
8276  x_klnv_tbl(1).COMMITMENT_ID          :=  OKC_API.G_MISS_NUM;
8277  x_klnv_tbl(1).LOCKED_PRICE_LIST_ID   :=  OKC_API.G_MISS_NUM;
8278  x_klnv_tbl(1).USAGE_EST_YN           :=  OKC_API.G_MISS_CHAR;
8279  x_klnv_tbl(1).USAGE_EST_METHOD       :=  OKC_API.G_MISS_CHAR;
8280  x_klnv_tbl(1).USAGE_EST_START_DATE   :=  OKC_API.G_MISS_DATE;
8281  x_klnv_tbl(1).TERMN_METHOD           :=  OKC_API.G_MISS_CHAR;
8282  x_klnv_tbl(1).UBT_AMOUNT             :=  OKC_API.G_MISS_NUM;
8283  x_klnv_tbl(1).CREDIT_AMOUNT          :=  OKC_API.G_MISS_NUM;
8284  x_klnv_tbl(1).SUPPRESSED_CREDIT      :=  OKC_API.G_MISS_NUM;
8285  x_klnv_tbl(1).OVERRIDE_AMOUNT        :=  OKC_API.G_MISS_NUM;
8286  x_klnv_tbl(1).GRACE_DURATION         :=  OKC_API.G_MISS_NUM;
8287  x_klnv_tbl(1).GRACE_PERIOD           :=  OKC_API.G_MISS_CHAR;
8288  x_klnv_tbl(1).INV_PRINT_FLAG         :=  OKC_API.G_MISS_CHAR;
8289  x_klnv_tbl(1).PRICE_UOM              :=  OKC_API.G_MISS_CHAR;
8290  x_klnv_tbl(1).TAX_AMOUNT             :=  OKC_API.G_MISS_NUM;
8291  x_klnv_tbl(1).TAX_INCLUSIVE_YN       :=  OKC_API.G_MISS_CHAR;
8292  x_klnv_tbl(1).TAX_STATUS             :=  OKC_API.G_MISS_CHAR;
8293  x_klnv_tbl(1).TAX_CODE               :=  OKC_API.G_MISS_NUM;
8294  x_klnv_tbl(1).TAX_EXEMPTION_ID       :=  OKC_API.G_MISS_NUM;
8295  x_klnv_tbl(1).IB_TRANS_TYPE          :=  OKC_API.G_MISS_CHAR;
8296  x_klnv_tbl(1).IB_TRANS_DATE          :=  OKC_API.G_MISS_DATE;
8297  x_klnv_tbl(1).PROD_PRICE             :=  OKC_API.G_MISS_NUM;
8298  x_klnv_tbl(1).SERVICE_PRICE          :=  OKC_API.G_MISS_NUM;
8299  x_klnv_tbl(1).CLVL_LIST_PRICE        :=  OKC_API.G_MISS_NUM;
8300  x_klnv_tbl(1).CLVL_QUANTITY          :=  OKC_API.G_MISS_NUM;
8301  x_klnv_tbl(1).CLVL_EXTENDED_AMT      :=  OKC_API.G_MISS_NUM;
8302  x_klnv_tbl(1).CLVL_UOM_CODE          :=  OKC_API.G_MISS_CHAR;
8303  x_klnv_tbl(1).TOPLVL_OPERAND_CODE    :=  OKC_API.G_MISS_CHAR;
8304  x_klnv_tbl(1).TOPLVL_OPERAND_VAL     :=  OKC_API.G_MISS_NUM;
8305  x_klnv_tbl(1).TOPLVL_QUANTITY        :=  OKC_API.G_MISS_NUM;
8306  x_klnv_tbl(1).TOPLVL_UOM_CODE        :=  OKC_API.G_MISS_CHAR;
8307  x_klnv_tbl(1).TOPLVL_ADJ_PRICE       :=  OKC_API.G_MISS_NUM;
8308  x_klnv_tbl(1).TOPLVL_PRICE_QTY       :=  OKC_API.G_MISS_NUM;
8309  x_klnv_tbl(1).AVERAGING_INTERVAL     :=  OKC_API.G_MISS_NUM;
8310  x_klnv_tbl(1).SETTLEMENT_INTERVAL    :=  OKC_API.G_MISS_CHAR;
8311  x_klnv_tbl(1).MINIMUM_QUANTITY       :=  OKC_API.G_MISS_NUM;
8312  x_klnv_tbl(1).DEFAULT_QUANTITY       :=  OKC_API.G_MISS_NUM;
8313  x_klnv_tbl(1).AMCV_FLAG              :=  OKC_API.G_MISS_CHAR;
8314  x_klnv_tbl(1).FIXED_QUANTITY         :=  OKC_API.G_MISS_NUM;
8315  x_klnv_tbl(1).USAGE_DURATION         :=  OKC_API.G_MISS_NUM;
8316  x_klnv_tbl(1).USAGE_PERIOD           :=  OKC_API.G_MISS_CHAR;
8317  x_klnv_tbl(1).LEVEL_YN               :=  OKC_API.G_MISS_CHAR;
8318  x_klnv_tbl(1).USAGE_TYPE             :=  OKC_API.G_MISS_CHAR;
8319  x_klnv_tbl(1).UOM_QUANTIFIED         :=  OKC_API.G_MISS_CHAR;
8320  x_klnv_tbl(1).BASE_READING           :=  OKC_API.G_MISS_NUM;
8321  x_klnv_tbl(1).BILLING_SCHEDULE_TYPE  :=  OKC_API.G_MISS_CHAR;
8322  x_klnv_tbl(1).COVERAGE_TYPE          :=  OKC_API.G_MISS_CHAR;
8323  x_klnv_tbl(1).EXCEPTION_COV_ID       :=  OKC_API.G_MISS_NUM;
8324  x_klnv_tbl(1).LIMIT_UOM_QUANTIFIED   :=  OKC_API.G_MISS_CHAR;
8325  x_klnv_tbl(1).DISCOUNT_AMOUNT        :=  OKC_API.G_MISS_NUM;
8326  x_klnv_tbl(1).DISCOUNT_PERCENT       :=  OKC_API.G_MISS_NUM;
8327  x_klnv_tbl(1).OFFSET_DURATION        :=  OKC_API.G_MISS_NUM;
8328  x_klnv_tbl(1).OFFSET_PERIOD          :=  OKC_API.G_MISS_CHAR;
8329  x_klnv_tbl(1).INCIDENT_SEVERITY_ID   :=  OKC_API.G_MISS_NUM;
8330  x_klnv_tbl(1).PDF_ID                 :=  OKC_API.G_MISS_NUM;
8331  x_klnv_tbl(1).WORK_THRU_YN           :=  OKC_API.G_MISS_CHAR;
8332  x_klnv_tbl(1).REACT_ACTIVE_YN        :=  OKC_API.G_MISS_CHAR;
8333  x_klnv_tbl(1).TRANSFER_OPTION        :=  OKC_API.G_MISS_CHAR;
8334  x_klnv_tbl(1).PROD_UPGRADE_YN        :=  OKC_API.G_MISS_CHAR;
8335  x_klnv_tbl(1).INHERITANCE_TYPE       :=  OKC_API.G_MISS_CHAR;
8336  x_klnv_tbl(1).PM_PROGRAM_ID          :=  OKC_API.G_MISS_NUM;
8337  x_klnv_tbl(1).PM_CONF_REQ_YN         :=  OKC_API.G_MISS_CHAR;
8338  x_klnv_tbl(1).PM_SCH_EXISTS_YN       :=  OKC_API.G_MISS_CHAR;
8339  x_klnv_tbl(1).ALLOW_BT_DISCOUNT      :=  OKC_API.G_MISS_CHAR;
8340  x_klnv_tbl(1).APPLY_DEFAULT_TIMEZONE :=  OKC_API.G_MISS_CHAR;
8341  x_klnv_tbl(1).SYNC_DATE_INSTALL      :=  OKC_API.G_MISS_CHAR;
8342  x_klnv_tbl(1).SFWT_FLAG              :=  OKC_API.G_MISS_CHAR;
8343  x_klnv_tbl(1).OBJECT_VERSION_NUMBER  :=  OKC_API.G_MISS_NUM;
8344  x_klnv_tbl(1).SECURITY_GROUP_ID      :=  OKC_API.G_MISS_NUM;
8345  x_klnv_tbl(1).REQUEST_ID             :=  OKC_API.G_MISS_NUM;
8346  x_klnv_tbl(1).CREATED_BY             :=  OKC_API.G_MISS_NUM;
8347  x_klnv_tbl(1).CREATION_DATE          :=  OKC_API.G_MISS_DATE;
8348  x_klnv_tbl(1).LAST_UPDATED_BY        :=  OKC_API.G_MISS_NUM;
8349  x_klnv_tbl(1).LAST_UPDATE_DATE       :=  OKC_API.G_MISS_DATE;
8350  x_klnv_tbl(1).LAST_UPDATE_LOGIN      :=  OKC_API.G_MISS_NUM;
8351 END  ;
8352 
8353 --================================================================================
8354 PROCEDURE INIT_OKS_TIMEZONE_LINE(x_timezone_tbl OUT NOCOPY oks_ctz_pvt.OksCoverageTimezonesVTblType)
8355 IS
8356 
8357 BEGIN
8358                   x_timezone_tbl(1).ID                     := OKC_API.G_MISS_NUM;
8359                   x_timezone_tbl(1).CLE_ID                 := OKC_API.G_MISS_NUM;
8360                   x_timezone_tbl(1).DEFAULT_YN             := OKC_API.G_MISS_CHAR;
8361                   x_timezone_tbl(1).TIMEZONE_ID            := OKC_API.G_MISS_NUM;
8362                   x_timezone_tbl(1).DNZ_CHR_ID             := OKC_API.G_MISS_NUM;
8363                   x_timezone_tbl(1).CREATED_BY             := OKC_API.G_MISS_NUM;
8364                   x_timezone_tbl(1).CREATION_DATE          := OKC_API.G_MISS_DATE;
8365                   x_timezone_tbl(1).LAST_UPDATED_BY        := OKC_API.G_MISS_NUM;
8366                   x_timezone_tbl(1).LAST_UPDATE_DATE       := OKC_API.G_MISS_DATE;
8367                   x_timezone_tbl(1).LAST_UPDATE_LOGIN      := OKC_API.G_MISS_NUM;
8368                   x_timezone_tbl(1).SECURITY_GROUP_ID      := OKC_API.G_MISS_NUM;
8369                   x_timezone_tbl(1).PROGRAM_APPLICATION_ID := OKC_API.G_MISS_NUM;
8370                   x_timezone_tbl(1).PROGRAM_ID             := OKC_API.G_MISS_NUM;
8371                   x_timezone_tbl(1).PROGRAM_UPDATE_DATE    := OKC_API.G_MISS_DATE;
8372                   x_timezone_tbl(1).REQUEST_ID             := OKC_API.G_MISS_NUM;
8373 
8374 END ;
8375 --=================================================================================
8376 PROCEDURE INIT_OKS_COVER_TIME_LINE(x_cover_time_tbl OUT NOCOPY oks_cvt_pvt.oks_coverage_times_v_tbl_type)
8377 
8378 IS
8379      BEGIN
8380                x_cover_time_tbl(1).ID                     := OKC_API.G_MISS_NUM;
8381                x_cover_time_tbl(1).COV_TZE_LINE_ID        := OKC_API.G_MISS_NUM;
8382                x_cover_time_tbl(1).DNZ_CHR_ID             := OKC_API.G_MISS_NUM;
8383                x_cover_time_tbl(1).START_HOUR             := OKC_API.G_MISS_NUM;
8384                x_cover_time_tbl(1).START_MINUTE           := OKC_API.G_MISS_NUM;
8385                x_cover_time_tbl(1).END_HOUR               := OKC_API.G_MISS_NUM;
8386                x_cover_time_tbl(1).END_MINUTE             := OKC_API.G_MISS_NUM;
8387                x_cover_time_tbl(1).MONDAY_YN              := OKC_API.G_MISS_CHAR;
8388                x_cover_time_tbl(1).TUESDAY_YN             := OKC_API.G_MISS_CHAR;
8389                x_cover_time_tbl(1).WEDNESDAY_YN           := OKC_API.G_MISS_CHAR;
8390                x_cover_time_tbl(1).THURSDAY_YN            := OKC_API.G_MISS_CHAR;
8391                x_cover_time_tbl(1).FRIDAY_YN              := OKC_API.G_MISS_CHAR;
8392                x_cover_time_tbl(1).SATURDAY_YN            := OKC_API.G_MISS_CHAR;
8393                x_cover_time_tbl(1).SUNDAY_YN              := OKC_API.G_MISS_CHAR;
8394                x_cover_time_tbl(1).CREATED_BY             := OKC_API.G_MISS_NUM;
8395                x_cover_time_tbl(1).CREATION_DATE          := OKC_API.G_MISS_DATE;
8396                x_cover_time_tbl(1).LAST_UPDATED_BY        := OKC_API.G_MISS_NUM;
8397                x_cover_time_tbl(1).LAST_UPDATE_DATE       := OKC_API.G_MISS_DATE;
8398                x_cover_time_tbl(1).LAST_UPDATE_LOGIN      := OKC_API.G_MISS_NUM;
8399                x_cover_time_tbl(1).SECURITY_GROUP_ID      := OKC_API.G_MISS_NUM;
8400                x_cover_time_tbl(1).PROGRAM_APPLICATION_ID := OKC_API.G_MISS_NUM;
8401                x_cover_time_tbl(1).PROGRAM_ID             := OKC_API.G_MISS_NUM;
8402                x_cover_time_tbl(1).PROGRAM_UPDATE_DATE    := OKC_API.G_MISS_DATE;
8403                x_cover_time_tbl(1).REQUEST_ID             := OKC_API.G_MISS_NUM;
8404 
8405 END ;
8406 --==========================================================================
8407 
8408  PROCEDURE INIT_OKS_ACT_TYPE(x_act_time_tbl OUT NOCOPY OKS_ACT_PVT.OksActionTimeTypesVTblType)
8409  IS
8410   BEGIN
8411 
8412     x_act_time_tbl(1).id                              := OKC_API.G_MISS_NUM;
8413     x_act_time_tbl(1).cle_id                          := OKC_API.G_MISS_NUM;
8414     x_act_time_tbl(1).dnz_chr_id                      := OKC_API.G_MISS_NUM;
8415     x_act_time_tbl(1).action_type_code                := OKC_API.G_MISS_CHAR;
8416     x_act_time_tbl(1).security_group_id               := OKC_API.G_MISS_NUM;
8417     x_act_time_tbl(1).program_application_id          := OKC_API.G_MISS_NUM;
8418     x_act_time_tbl(1).program_id                      := OKC_API.G_MISS_NUM;
8419     x_act_time_tbl(1).program_update_date             := OKC_API.G_MISS_DATE;
8420     x_act_time_tbl(1).request_id                      := OKC_API.G_MISS_NUM;
8421     x_act_time_tbl(1).created_by                      := OKC_API.G_MISS_NUM;
8422     x_act_time_tbl(1).creation_date                   := OKC_API.G_MISS_DATE;
8423     x_act_time_tbl(1).last_updated_by                 := OKC_API.G_MISS_NUM;
8424     x_act_time_tbl(1).last_update_date                := OKC_API.G_MISS_DATE;
8425     x_act_time_tbl(1).last_update_login               := OKC_API.G_MISS_NUM;
8426 END ;
8427 --===============================================================================
8428 PROCEDURE INIT_OKS_ACT_TIME(x_act_type_tbl OUT NOCOPY OKS_ACM_PVT.oks_action_times_v_tbl_type)
8429 
8430 IS
8431    BEGIN
8432 
8433     x_act_type_tbl(1).id                         := OKC_API.G_MISS_NUM;
8434     x_act_type_tbl(1).cov_action_type_id         := OKC_API.G_MISS_NUM;
8435     x_act_type_tbl(1).cle_id                     := OKC_API.G_MISS_NUM;
8436     x_act_type_tbl(1).dnz_chr_id                 := OKC_API.G_MISS_NUM;
8437     x_act_type_tbl(1).uom_code                   := OKC_API.G_MISS_CHAR;
8438     x_act_type_tbl(1).sun_duration               := OKC_API.G_MISS_NUM;
8439     x_act_type_tbl(1).mon_duration               := OKC_API.G_MISS_NUM;
8440     x_act_type_tbl(1).tue_duration               := OKC_API.G_MISS_NUM;
8441     x_act_type_tbl(1).wed_duration               := OKC_API.G_MISS_NUM;
8442     x_act_type_tbl(1).thu_duration               := OKC_API.G_MISS_NUM;
8443     x_act_type_tbl(1).fri_duration               := OKC_API.G_MISS_NUM;
8444     x_act_type_tbl(1).sat_duration               := OKC_API.G_MISS_NUM;
8445     x_act_type_tbl(1).security_group_id          := OKC_API.G_MISS_NUM;
8446     x_act_type_tbl(1).program_application_id     := OKC_API.G_MISS_NUM;
8447     x_act_type_tbl(1).program_id                 := OKC_API.G_MISS_NUM;
8448     x_act_type_tbl(1).program_update_date        := OKC_API.G_MISS_DATE;
8449     x_act_type_tbl(1).request_id                 := OKC_API.G_MISS_NUM;
8450     x_act_type_tbl(1).created_by                 := OKC_API.G_MISS_NUM;
8451     x_act_type_tbl(1).creation_date              := OKC_API.G_MISS_DATE;
8452     x_act_type_tbl(1).last_updated_by            := OKC_API.G_MISS_NUM;
8453     x_act_type_tbl(1).last_update_date           := OKC_API.G_MISS_DATE;
8454     x_act_type_tbl(1).last_update_login          := OKC_API.G_MISS_NUM;
8455 
8456  END ;
8457  --============================================================================
8458 
8459 PROCEDURE VALIDATE_COVERTIME(p_tze_line_id   IN NUMBER,
8460                                  x_days_overlap  OUT  NOCOPY oks_coverages_pvt.billrate_day_overlap_type,
8461                                  x_return_status OUT  NOCOPY VARCHAR2)
8462 IS
8463 G_PKG_NAME VARCHAR2(40):= 'OKS_COVERAGES_PVT';
8464 
8465 TYPE covertime_schedule_rec IS RECORD
8466  (start_time NUMBER,
8467   end_time NUMBER);
8468 
8469 TYPE covertime_schedule_tbl_type IS TABLE OF covertime_schedule_rec
8470 INDEX BY BINARY_INTEGER;
8471 
8472 i number := 0;
8473 l_overlap_yn        VARCHAR2(1);
8474 l_overlap_message   VARCHAR2(200);
8475 
8476 l_time_tbl   covertime_schedule_tbl_type;
8477 l_api_name      VARCHAR2(50):= 'VALIDATE_COVERTIME_SCHEDULE';
8478 x_msg_count     NUMBER;
8479 x_msg_data      VARCHAR2(2000);
8480 l_overlap_days  VARCHAR2(1000) := NULL;
8481 
8482 CURSOR Cur_monday(l_tze_id IN NUMBER) IS
8483 
8484 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8485        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8486 FROM OKS_COVERAGE_TIMES_V
8487 WHERE COV_TZE_LINE_ID = l_tze_id
8488 AND MONDAY_YN = 'Y' ;
8489 
8490 
8491 
8492 CURSOR Cur_tuesday(l_tze_id IN NUMBER) IS
8493 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8494        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8495 FROM OKS_COVERAGE_TIMES_V
8496 WHERE COV_TZE_LINE_ID = l_tze_id
8497 AND TUESDAY_YN = 'Y' ;
8498 
8499 
8500 CURSOR Cur_wednesday(l_tze_id IN NUMBER) IS
8501 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8502        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8503 FROM OKS_COVERAGE_TIMES_V
8504 WHERE COV_TZE_LINE_ID = l_tze_id
8505 AND WEDNESDAY_YN = 'Y' ;
8506 
8507 
8508 CURSOR Cur_thursday(l_tze_id IN NUMBER) IS
8509 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8510        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8511 FROM OKS_COVERAGE_TIMES_V
8512 WHERE COV_TZE_LINE_ID = l_tze_id
8513 AND THURSDAY_YN = 'Y' ;
8514 
8515 
8516 CURSOR Cur_friday(l_tze_id IN NUMBER) IS
8517 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8518        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8519 FROM OKS_COVERAGE_TIMES_V
8520 WHERE COV_TZE_LINE_ID = l_tze_id
8521 AND FRIDAY_YN = 'Y' ;
8522 
8523 
8524 
8525 CURSOR Cur_saturday(l_tze_id IN NUMBER) IS
8526 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8527        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8528 FROM OKS_COVERAGE_TIMES_V
8529 WHERE COV_TZE_LINE_ID = l_tze_id
8530 AND SATURDAY_YN = 'Y' ;
8531 
8532 
8533 CURSOR Cur_sunday(l_tze_id IN NUMBER) IS
8534 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8535        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8536 FROM OKS_COVERAGE_TIMES_V
8537 WHERE COV_TZE_LINE_ID = l_tze_id
8538 AND SUNDAY_YN = 'Y' ;
8539 
8540 --Define cursors for other days.
8541 FUNCTION get_day_meaning (p_day_code IN varchar2)
8542 RETURN varchar2
8543 IS
8544 CURSOR Get_day IS
8545 SELECT meaning from fnd_lookups where lookup_type = 'DAY_NAME'
8546 and lookup_code = p_day_code;
8547 l_day_meaning VARCHAR2(100);
8548 
8549 BEGIN
8550   OPEN Get_day;
8551   FETCH Get_day INTO l_day_meaning;
8552   CLOSE Get_day;
8553   return nvl(l_day_meaning,NULL);
8554 end get_day_meaning ;
8555 
8556 PROCEDURE Check_overlap(p_time_tbl IN covertime_schedule_tbl_type,
8557                         p_overlap_yn OUT NOCOPY Varchar2)
8558 IS
8559 
8560 l_start       NUMBER;
8561 l_end         NUMBER;
8562 l_start_new   NUMBER;
8563 l_end_new     NUMBER;
8564 j             NUMBER:= 0;
8565 k             NUMBER:= 0;
8566 
8567 BEGIN
8568 p_overlap_yn := 'N';
8569 FOR j in 1 .. p_time_tbl.COUNT
8570 LOOP
8571 l_start := p_time_tbl(j).start_time;
8572 l_end := p_time_tbl(j).end_time;
8573 
8574   FOR k in 1 .. p_time_tbl.COUNT
8575   LOOP
8576         l_start_new := p_time_tbl(k).start_time;
8577         l_end_new := p_time_tbl(k).end_time;
8578         IF j <> k then
8579                 IF (l_start_new <= l_end and l_start_new >= l_start)
8580             OR (l_end_new >= l_start and l_end_new <=  l_end) then
8581 
8582             IF (l_start_new = l_end )
8583                    OR (l_end_new = l_start ) then
8584                    IF p_overlap_yn <> 'Y' then
8585                       p_overlap_yn := 'N';
8586                    END IF ;
8587                  else
8588                     p_overlap_yn := 'Y';
8589              END IF ;
8590 
8591 
8592           END IF;
8593         END IF;
8594   END LOOP;
8595 
8596 END LOOP;
8597 
8598 
8599 --write the validation logic
8600 END Check_overlap;
8601 
8602 
8603 BEGIN
8604 
8605 x_return_status         := OKC_API.G_RET_STS_SUCCESS;
8606 l_time_tbl.DELETE;
8607 FOR monday_rec IN Cur_monday(p_tze_line_id)
8608 LOOP
8609 
8610 i := i + 1;
8611 l_time_tbl(i).start_time := monday_rec.start_time;
8612 l_time_tbl(i).end_time := monday_rec.end_time;
8613 END LOOP;
8614 l_overlap_yn := 'N';
8615 
8616 IF l_time_tbl.COUNT > 0 then
8617 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.monday_overlap);
8618 
8619    IF x_days_overlap.monday_overlap = 'Y' then
8620       l_overlap_days := get_day_meaning('MON')||',';
8621    END IF;
8622 
8623 end if;
8624 
8625 -- Validating for Tuesday.
8626 
8627 l_time_tbl.DELETE;
8628 i := 0;
8629 
8630 FOR tuesday_rec IN Cur_tuesday(p_tze_line_id)
8631 LOOP
8632 i := i + 1;
8633 l_time_tbl(i).start_time := tuesday_rec.start_time;
8634 l_time_tbl(i).end_time := tuesday_rec.end_time;
8635 END LOOP;
8636 l_overlap_yn := 'N';
8637 IF l_time_tbl.COUNT > 0 then
8638 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.tuesday_overlap);
8639    IF x_days_overlap.tuesday_overlap = 'Y' then
8640       l_overlap_days := l_overlap_days||get_day_meaning('TUE')||',';
8641    END IF;
8642 
8643 end if;
8644 
8645 -- Validating for wednesday.
8646 
8647 l_time_tbl.DELETE;
8648 i := 0;
8649 
8650 FOR wednesday_rec IN Cur_wednesday(p_tze_line_id)
8651 LOOP
8652 i := i + 1;
8653 l_time_tbl(i).start_time := wednesday_rec.start_time;
8654 l_time_tbl(i).end_time := wednesday_rec.end_time;
8655 END LOOP;
8656 l_overlap_yn := 'N';
8657 IF l_time_tbl.COUNT > 0 then
8658 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.wednesday_overlap);
8659    IF x_days_overlap.wednesday_overlap = 'Y' then
8660       l_overlap_days := l_overlap_days||get_day_meaning('WED')||',';
8661    END IF;
8662 
8663 end if;
8664 
8665 -- Validating for thursday.
8666 
8667 l_time_tbl.DELETE;
8668 i := 0;
8669 
8670 FOR thursday_rec IN Cur_thursday(p_tze_line_id)
8671 LOOP
8672 i := i + 1;
8673 l_time_tbl(i).start_time := thursday_rec.start_time;
8674 l_time_tbl(i).end_time := thursday_rec.end_time;
8675 END LOOP;
8676 l_overlap_yn := 'N';
8677 IF l_time_tbl.COUNT > 0 then
8678 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.thursday_overlap);
8679    IF x_days_overlap.thursday_overlap = 'Y' then
8680       l_overlap_days := l_overlap_days||get_day_meaning('THU')||',';
8681    END IF;
8682 
8683 end if;
8684 
8685 -- Validating for friday.
8686 
8687 l_time_tbl.DELETE;
8688 i := 0;
8689 
8690 FOR friday_rec IN Cur_friday(p_tze_line_id)
8691 LOOP
8692 i := i + 1;
8693 l_time_tbl(i).start_time := friday_rec.start_time;
8694 l_time_tbl(i).end_time := friday_rec.end_time;
8695 END LOOP;
8696 l_overlap_yn := 'N';
8697 IF l_time_tbl.COUNT > 0 then
8698 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.friday_overlap);
8699    IF x_days_overlap.friday_overlap = 'Y' then
8700       l_overlap_days := l_overlap_days||get_day_meaning('FRI')||',';
8701    END IF;
8702 
8703 end if;
8704 
8705 -- Validating for saturday.
8706 
8707 l_time_tbl.DELETE;
8708 i := 0;
8709 
8710 FOR saturday_rec IN Cur_saturday(p_tze_line_id)
8711 LOOP
8712 i := i + 1;
8713 l_time_tbl(i).start_time := saturday_rec.start_time;
8714 l_time_tbl(i).end_time := saturday_rec.end_time;
8715 END LOOP;
8716 l_overlap_yn := 'N';
8717 IF l_time_tbl.COUNT > 0 then
8718 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.saturday_overlap);
8719    IF x_days_overlap.saturday_overlap = 'Y' then
8720       l_overlap_days := l_overlap_days||get_day_meaning('SAT')||',';
8721    END IF;
8722 
8723 end if;
8724 
8725 -- Validating for sunday.
8726 
8727 l_time_tbl.DELETE;
8728 i := 0;
8729 
8730 FOR sunday_rec IN Cur_sunday(p_tze_line_id)
8731 LOOP
8732 i := i + 1;
8733 l_time_tbl(i).start_time := sunday_rec.start_time;
8734 l_time_tbl(i).end_time := sunday_rec.end_time;
8735 END LOOP;
8736 l_overlap_yn := 'N';
8737 IF l_time_tbl.COUNT > 0 then
8738 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.sunday_overlap);
8739    IF x_days_overlap.sunday_overlap = 'Y' then
8740       l_overlap_days := l_overlap_days||get_day_meaning('SUN')||',';
8741    END IF;
8742 
8743 END IF;
8744 
8745    IF l_overlap_days IS not null then
8746             fnd_message.set_name('OKS','OKS_BILLRATE_DAYS_OVERLAP');
8747             fnd_message.set_token('DAYS', l_overlap_days);
8748    END IF;
8749 
8750 x_return_status         := OKC_API.G_RET_STS_SUCCESS;
8751 
8752 EXCEPTION
8753 
8754 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8755       x_return_status := OKC_API.HANDLE_EXCEPTIONS
8756       (
8757         l_api_name,
8758         G_PKG_NAME,
8759         'OKC_API.G_RET_STS_UNEXP_ERROR',
8760         x_msg_count,
8761         x_msg_data,
8762         '_PVT'
8763       );
8764       ROLLBACK;
8765     WHEN OTHERS THEN
8766       x_return_status := OKC_API.HANDLE_EXCEPTIONS
8767       (
8768         l_api_name,
8769         G_PKG_NAME,
8770         'OTHERS',
8771         x_msg_count,
8772         x_msg_data,
8773         '_PVT'
8774       );
8775       ROLLBACK ;
8776 
8777 END; -- Validate_covertime;
8778 
8779 --===========================================================================
8780 PROCEDURE  MIGRATE_PRIMARY_RESOURCES(p_api_version                   IN NUMBER,
8781                                           p_init_msg_list                 IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
8782                                           x_return_status                 OUT NOCOPY VARCHAR2,
8783                                           x_msg_count                     OUT NOCOPY NUMBER,
8784                                           x_msg_data                      OUT NOCOPY VARCHAR2)IS
8785 
8786 
8787 
8788     BEGIN
8789 
8790 -- Stubing out this procedure since no more in use.
8791     Null ;
8792 
8793 
8794 END MIGRATE_PRIMARY_RESOURCES;
8795 
8796 
8797 PROCEDURE Version_Coverage(
8798 				p_api_version                  IN NUMBER,
8799 				p_init_msg_list                IN VARCHAR2,
8800 				x_return_status                OUT NOCOPY VARCHAR2,
8801                 x_msg_count                    OUT NOCOPY NUMBER,
8802                 x_msg_data                     OUT NOCOPY VARCHAR2,
8803                 p_chr_id                          IN NUMBER,
8804                 p_major_version                IN NUMBER) IS
8805 
8806 l_chr_id CONSTANT NUMBER  := p_chr_id;
8807 l_major_version CONSTANT NUMBER  := p_major_version;
8808 l_return_Status VARCHAR2(1);
8809 
8810 l_msg_count     NUMBER;
8811 l_msg_data      VARCHAR2(1000);
8812 l_api_version           NUMBER:= 1 ;
8813 l_init_msg_list         VARCHAR2(1):= OKC_API.G_FALSE;
8814 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
8815 
8816 BEGIN
8817 
8818 
8819 l_return_Status := OKS_ACT_PVT.Create_Version(
8820                             p_id  => l_chr_id,
8821                             p_major_version  =>l_major_version);
8822 
8823 IF l_return_Status <> 'S' THEN
8824         RAISE G_EXCEPTION_HALT_VALIDATION;
8825 END IF;
8826 l_return_Status := OKS_ACM_PVT.Create_Version(
8827                             p_id  => l_chr_id,
8828                             p_major_version  =>l_major_version);
8829 
8830 IF l_return_Status <> 'S' THEN
8831         RAISE G_EXCEPTION_HALT_VALIDATION;
8832 END IF;
8833 l_return_Status := OKS_CVT_PVT.Create_Version(
8834                             p_id  => l_chr_id,
8835                             p_major_version  =>l_major_version);
8836 
8837 IF l_return_Status <> 'S' THEN
8838         RAISE G_EXCEPTION_HALT_VALIDATION;
8839 END IF;
8840 l_return_Status := OKS_CTZ_PVT.Create_Version(
8841                             p_id  => l_chr_id,
8842                             p_major_version  =>l_major_version);
8843 IF l_return_Status <> 'S' THEN
8844         RAISE G_EXCEPTION_HALT_VALIDATION;
8845 END IF;
8846 
8847 l_return_Status := OKS_BRS_PVT.Create_Version(
8848                             p_id  => l_chr_id,
8849                             p_major_version  =>l_major_version);
8850 
8851 IF l_return_Status <> 'S' THEN
8852         RAISE G_EXCEPTION_HALT_VALIDATION;
8853 END IF;
8854 
8855 OKS_PM_PROGRAMS_PVT.version_PM(
8856                 p_api_version       =>  l_api_version,
8857                 p_init_msg_list     =>  l_init_msg_list,
8858                 x_return_status     =>  l_return_status,
8859                 x_msg_count         =>  l_msg_count,
8860                 x_msg_data          =>  l_msg_data,
8861                 p_chr_id            =>  l_chr_id,
8862                 p_major_version     =>  l_major_version);
8863 
8864 
8865     IF l_return_Status = 'S' THEN
8866         x_return_status :=  OKC_API.G_RET_STS_SUCCESS;
8867     ELSE
8868         RAISE G_EXCEPTION_HALT_VALIDATION;
8869     END IF;
8870 
8871 EXCEPTION
8872    WHEN G_EXCEPTION_HALT_VALIDATION THEN
8873 
8874        OKC_API.SET_MESSAGE(
8875         p_app_name        => g_app_name,
8876         p_msg_name        => g_unexpected_error,
8877         p_token1                => g_sqlcode_token,
8878         p_token1_value    => sqlcode,
8879         p_token2          => g_sqlerrm_token,
8880         p_token2_value    => sqlerrm);
8881        -- notify caller of an error as UNEXPETED error
8882         x_return_status := OKC_API.G_RET_STS_ERROR;
8883         x_msg_count :=l_msg_count;
8884 
8885     WHEN OTHERS THEN
8886 
8887        OKC_API.SET_MESSAGE(
8888         p_app_name        => g_app_name,
8889         p_msg_name        => g_unexpected_error,
8890         p_token1                => g_sqlcode_token,
8891         p_token1_value    => sqlcode,
8892         p_token2          => g_sqlerrm_token,
8893         p_token2_value    => sqlerrm);
8894 
8895         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
8896 
8897 END Version_Coverage;
8898 
8899 
8900 PROCEDURE Restore_Coverage(
8901 				p_api_version                  IN NUMBER,
8902 				p_init_msg_list                IN VARCHAR2,
8903 				x_return_status                OUT NOCOPY VARCHAR2,
8904                 x_msg_count                    OUT NOCOPY NUMBER,
8905                 x_msg_data                     OUT NOCOPY VARCHAR2,
8906                 p_chr_id                          IN NUMBER) IS
8907 
8908 l_chr_id CONSTANT NUMBER  := p_chr_id;
8909 l_major_version CONSTANT NUMBER  := -1;
8910 l_return_Status VARCHAR2(1);
8911 
8912 l_msg_count     NUMBER;
8913 l_msg_data      VARCHAR2(1000);
8914 l_api_version           NUMBER:= 1 ;
8915 l_init_msg_list         VARCHAR2(1):= OKC_API.G_FALSE;
8916 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
8917 
8918 BEGIN
8919 
8920 
8921 l_return_Status := OKS_ACT_PVT.Restore_Version(
8922                             p_id  => l_chr_id,
8923                             p_major_version  =>l_major_version);
8924 
8925 IF l_return_Status <> 'S' THEN
8926         RAISE G_EXCEPTION_HALT_VALIDATION;
8927 END IF;
8928 
8929 l_return_Status := OKS_ACM_PVT.Restore_Version(
8930                             p_id  => l_chr_id,
8931                             p_major_version  =>l_major_version);
8932 
8933 IF l_return_Status <> 'S' THEN
8934         RAISE G_EXCEPTION_HALT_VALIDATION;
8935 END IF;
8936 l_return_Status := OKS_CVT_PVT.Restore_Version(
8937                             p_id  => l_chr_id,
8938                             p_major_version  =>l_major_version);
8939 
8940 IF l_return_Status <> 'S' THEN
8941         RAISE G_EXCEPTION_HALT_VALIDATION;
8942 END IF;
8943 l_return_Status := OKS_CTZ_PVT.Restore_Version(
8944                             p_id  => l_chr_id,
8945                             p_major_version  =>l_major_version);
8946 
8947 IF l_return_Status <> 'S' THEN
8948         RAISE G_EXCEPTION_HALT_VALIDATION;
8949 END IF;
8950 l_return_Status := OKS_BRS_PVT.Restore_Version(
8951                             p_id  => l_chr_id,
8952                             p_major_version  =>l_major_version);
8953 
8954 IF l_return_Status <> 'S' THEN
8955         RAISE G_EXCEPTION_HALT_VALIDATION;
8956 END IF;
8957 
8958 OKS_PM_PROGRAMS_PVT.restore_PM(
8959                 p_api_version       =>  l_api_version,
8960                 p_init_msg_list     =>  l_init_msg_list,
8961                 x_return_status     =>  l_return_status,
8962                 x_msg_count         =>  l_msg_count,
8963                 x_msg_data          =>  l_msg_data,
8964                 p_chr_id            =>  l_chr_id);
8965 
8966 
8967     IF l_return_Status = 'S' THEN
8968         x_return_status :=  OKC_API.G_RET_STS_SUCCESS;
8969     ELSE
8970         RAISE G_EXCEPTION_HALT_VALIDATION;
8971     END IF;
8972 
8973 EXCEPTION
8974 
8975    WHEN G_EXCEPTION_HALT_VALIDATION THEN
8976 
8977        OKC_API.SET_MESSAGE(
8978         p_app_name        => g_app_name,
8979         p_msg_name        => g_unexpected_error,
8980         p_token1                => g_sqlcode_token,
8981         p_token1_value    => sqlcode,
8982         p_token2          => g_sqlerrm_token,
8983         p_token2_value    => sqlerrm);
8984        -- notify caller of an error as UNEXPETED error
8985         x_return_status := OKC_API.G_RET_STS_ERROR;
8986         x_msg_count :=l_msg_count;
8987 
8988     WHEN OTHERS THEN
8989 
8990        OKC_API.SET_MESSAGE(
8991         p_app_name        => g_app_name,
8992         p_msg_name        => g_unexpected_error,
8993         p_token1                => g_sqlcode_token,
8994         p_token1_value    => sqlcode,
8995         p_token2          => g_sqlerrm_token,
8996         p_token2_value    => sqlerrm);
8997 
8998         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
8999 
9000 END Restore_Coverage;
9001 
9002 
9003 
9004 PROCEDURE	Delete_History(
9005     			p_api_version                  IN NUMBER,
9006     			p_init_msg_list                IN VARCHAR2,
9007     			x_return_status                OUT NOCOPY VARCHAR2,
9008     			x_msg_count                    OUT NOCOPY NUMBER,
9009     			x_msg_data                     OUT NOCOPY VARCHAR2,
9010     			p_chr_id                       IN NUMBER) IS
9011 
9012 l_chr_id CONSTANT NUMBER  := p_chr_id;
9013 l_return_Status VARCHAR2(1);
9014 
9015 l_msg_count     NUMBER;
9016 l_msg_data      VARCHAR2(1000);
9017 l_api_version           NUMBER:= 1 ;
9018 l_init_msg_list         VARCHAR2(1):= OKC_API.G_FALSE;
9019 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
9020 
9021 BEGIN
9022 
9023 DELETE OKS_ACTION_TIME_TYPES_H
9024 WHERE dnz_chr_id = l_chr_id;
9025 
9026 DELETE OKS_ACTION_TIMES_H
9027 WHERE dnz_chr_id = l_chr_id;
9028 
9029 DELETE OKS_COVERAGE_TIMES_H
9030 WHERE dnz_chr_id = l_chr_id;
9031 
9032 DELETE OKS_COVERAGE_TIMEZONES_H
9033 WHERE dnz_chr_id = l_chr_id;
9034 
9035 DELETE OKS_BILLRATE_SCHEDULES_H
9036 WHERE dnz_chr_id = l_chr_id;
9037 
9038 
9039 OKS_PM_PROGRAMS_PVT.Delete_PMHistory(
9040                 p_api_version       =>  l_api_version,
9041                 p_init_msg_list     =>  l_init_msg_list,
9042                 x_return_status     =>  l_return_status,
9043                 x_msg_count         =>  l_msg_count,
9044                 x_msg_data          =>  l_msg_data,
9045                 p_chr_id            =>  l_chr_id);
9046 
9047 
9048     IF l_return_Status = 'S' THEN
9049         x_return_status :=  OKC_API.G_RET_STS_SUCCESS;
9050     ELSE
9051         RAISE G_EXCEPTION_HALT_VALIDATION;
9052     END IF;
9053 
9054 EXCEPTION
9055 
9056    WHEN G_EXCEPTION_HALT_VALIDATION THEN
9057 
9058        OKC_API.SET_MESSAGE(
9059         p_app_name        => g_app_name,
9060         p_msg_name        => g_unexpected_error,
9061         p_token1                => g_sqlcode_token,
9062         p_token1_value    => sqlcode,
9063         p_token2          => g_sqlerrm_token,
9064         p_token2_value    => sqlerrm);
9065        -- notify caller of an error as UNEXPETED error
9066         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9067         x_msg_count :=l_msg_count;
9068     WHEN OTHERS THEN
9069 
9070        OKC_API.SET_MESSAGE(
9071         p_app_name        => g_app_name,
9072         p_msg_name        => g_unexpected_error,
9073         p_token1                => g_sqlcode_token,
9074         p_token1_value    => sqlcode,
9075         p_token2          => g_sqlerrm_token,
9076         p_token2_value    => sqlerrm);
9077 
9078         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9079 
9080 END Delete_History;
9081 
9082 
9083 
9084 
9085 PROCEDURE Delete_Saved_Version(
9086     p_api_version                  IN NUMBER,
9087     p_init_msg_list                IN VARCHAR2,
9088     x_return_status                OUT NOCOPY VARCHAR2,
9089     x_msg_count                    OUT NOCOPY NUMBER,
9090     x_msg_data                     OUT NOCOPY VARCHAR2,
9091     p_chr_id                       IN NUMBER) IS
9092 
9093  l_api_version   			NUMBER := 1;
9094 l_init_msg_list            	VARCHAR2(1) DEFAULT OKC_API.G_FALSE;
9095 l_return_status            	VARCHAR2(1);
9096 l_return_msg               	VARCHAR2(2000);
9097 l_msg_count                	NUMBER;
9098 l_msg_data                 	VARCHAR2(2000);
9099 l_api_name                 	VARCHAR2(30):= 'Delete_Saved_Version';
9100 l_chr_id					CONSTANT NUMBER  := p_chr_id;
9101 
9102 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
9103 BEGIN
9104 
9105     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
9106 					           p_init_msg_list,
9107 					                    '_PUB',
9108                                          x_return_status);
9109 
9110     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR)
9111     THEN
9112       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
9113     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR)
9114     THEN
9115       raise OKC_API.G_EXCEPTION_ERROR;
9116     ELSIF l_return_status IS NULL
9117     THEN
9118        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
9119     END IF;
9120 
9121 
9122 				DELETE OKS_ACTION_TIME_TYPES_H
9123 				WHERE dnz_chr_id = l_chr_id
9124 				And major_version = -1;
9125 
9126 				DELETE OKS_ACTION_TIMES_H
9127 				WHERE dnz_chr_id = l_chr_id
9128 				And major_version = -1;
9129 
9130 				DELETE OKS_COVERAGE_TIMES_H
9131 				WHERE dnz_chr_id = l_chr_id
9132 				And major_version = -1;
9133 
9134 				DELETE OKS_COVERAGE_TIMEZONES_H
9135 				WHERE dnz_chr_id = l_chr_id
9136 				And major_version = -1;
9137 
9138 				DELETE OKS_BILLRATE_SCHEDULES_H
9139 				WHERE dnz_chr_id = l_chr_id
9140 				And major_version = -1;
9141 
9142 
9143 
9144 
9145 OKS_PM_PROGRAMS_PVT.Delete_PMSaved_Version(
9146                 p_api_version       =>  l_api_version,
9147                 p_init_msg_list     =>  l_init_msg_list,
9148                 x_return_status     =>  l_return_status,
9149                 x_msg_count         =>  l_msg_count,
9150                 x_msg_data          =>  l_msg_data,
9151                 p_chr_id            =>  l_chr_id);
9152 
9153 
9154     IF l_return_Status = 'S' THEN
9155         x_return_status :=  OKC_API.G_RET_STS_SUCCESS;
9156     ELSE
9157         RAISE G_EXCEPTION_HALT_VALIDATION;
9158     END IF;
9159 
9160 EXCEPTION
9161 
9162    WHEN G_EXCEPTION_HALT_VALIDATION THEN
9163 
9164        OKC_API.SET_MESSAGE(
9165         p_app_name        => g_app_name,
9166         p_msg_name        => g_unexpected_error,
9167         p_token1                => g_sqlcode_token,
9168         p_token1_value    => sqlcode,
9169         p_token2          => g_sqlerrm_token,
9170         p_token2_value    => sqlerrm);
9171        -- notify caller of an error as UNEXPETED error
9172         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9173         x_msg_count :=l_msg_count;
9174 
9175 
9176 
9177     WHEN OKC_API.G_EXCEPTION_ERROR THEN
9178       x_return_status := OKC_API.HANDLE_EXCEPTIONS
9179       (l_api_name,
9180        G_PKG_NAME,
9181        'OKC_API.G_RET_STS_ERROR',
9182        x_msg_count,
9183        x_msg_data,
9184        '_PUB');
9185     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9186       x_return_status := OKC_API.HANDLE_EXCEPTIONS
9187       (l_api_name,
9188        G_PKG_NAME,
9189        'OKC_API.G_RET_STS_UNEXP_ERROR',
9190        x_msg_count,
9191        x_msg_data,
9192        '_PUB');
9193     WHEN OTHERS THEN
9194       OKC_API.set_message(p_app_name      => g_app_name,
9195                           p_msg_name      => g_unexpected_error,
9196                           p_token1        => g_sqlcode_token,
9197                           p_token1_value  => sqlcode,
9198                           p_token2        => g_sqlerrm_token,
9199                           p_token2_value  => sqlerrm);
9200       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9201     ROLLBACK ;
9202 END Delete_Saved_Version;
9203 --===========================================================================
9204 
9205 PROCEDURE COPY_K_HDR_NOTES
9206            (p_api_version           IN NUMBER ,
9207             p_init_msg_list         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
9208             p_chr_id               IN NUMBER,
9209             x_return_status         OUT NOCOPY VARCHAR2,
9210             x_msg_count             OUT NOCOPY NUMBER,
9211             x_msg_data              OUT NOCOPY VARCHAR2) IS
9212 
9213 l_created_by NUMBER         := NULL;
9214 l_last_updated_by NUMBER    := NULL;
9215 l_last_update_login NUMBER  := NULL;
9216 l_old_Chr_ID    NUMBER := 0;
9217 
9218 
9219 l_Return_Status Varchar2(1);
9220 l_msg_count             NUMBER;
9221 l_msg_data              VARCHAR2(1000);
9222 l_jtf_note_id           NUMBER;
9223 l_jtf_note_contexts_tab jtf_notes_pub.jtf_note_contexts_tbl_type;
9224 
9225 CURSOR Get_Orig_System_Id_Cur(l_chr_id IN NUMBER) IS
9226 SELECT ORIG_SYSTEM_ID1, Created_By,LAst_Updated_By,Last_Update_Login
9227 FROM   OKC_K_HEADERS_B
9228 WHERE   ID = l_chr_id;
9229 
9230 
9231 
9232 BEGIN
9233 
9234         --For Get_Orig_System_Id_Rec IN Get_Orig_System_Id_Cur(P_source_object_id) LOOP
9235         For Get_Orig_System_Id_Rec IN Get_Orig_System_Id_Cur(P_chr_id) LOOP
9236             l_old_Chr_ID := Get_Orig_System_Id_Rec.ORIG_SYSTEM_ID1;
9237           /* Modified by Jvorugan for Bug:4489214 who columns not to be populated from old contract
9238 	    l_created_by := Get_Orig_System_Id_Rec.created_by;
9239             l_last_updated_by := Get_Orig_System_Id_Rec.last_updated_by;
9240             l_last_update_login := Get_Orig_System_Id_Rec.last_update_login;  */
9241         END LOOP;
9242 
9243          Get_Notes_Details( P_source_object_id   =>  l_old_chr_id,
9244                             X_Notes_TBL          =>  l_Notes_TBL,
9245                             X_Return_Status      =>  l_Return_Status,
9246                             P_source_object_code =>  'OKS_HDR_NOTE'); -- Bug:5944200
9247 
9248 
9249 
9250         IF    l_Return_Status = 'S' THEN
9251 
9252             IF   (l_Notes_TBL.COUNT > 0) THEN
9253                 FOR I IN l_Notes_TBL.FIRST .. l_Notes_TBL.LAST LOOP
9254 
9255                 JTF_NOTES_PUB.create_note
9256                   ( p_jtf_note_id           => NULL--:JTF_NOTES.JTF_NOTE_ID
9257                   , p_api_version           => 1.0
9258                   , p_init_msg_list         => 'F'
9259                   , p_commit                => 'F'
9260                   , p_validation_level      => 0
9261                   , x_return_status         => l_return_status
9262                   , x_msg_count             => l_msg_count
9263                   , x_msg_data              => l_msg_data
9264                   , p_source_object_code    => l_Notes_TBL(i).source_object_code
9265                   , p_source_object_id      => p_chr_id
9266                   , p_notes                 => l_Notes_TBL(i).notes
9267                   , p_notes_detail          => l_Notes_TBL(i).notes_Detail
9268                   , p_note_status           => l_Notes_TBL(i).note_status
9269                   , p_note_type             => l_Notes_TBL(i).note_type
9270                   , p_entered_by            => l_Notes_TBL(i).entered_by   -- -1 Modified for Bug:4489214
9271                   , p_entered_date          => l_Notes_TBL(i).entered_date -- SYSDATE Modified for Bug:4489214
9272                   , x_jtf_note_id           => l_jtf_note_id
9273                   , p_creation_date         => SYSDATE
9274                   , p_created_by            => FND_GLOBAL.USER_ID        --  created_by Modified for Bug:4489214
9275                   , p_last_update_date      => SYSDATE
9276                   , p_last_updated_by       => FND_GLOBAL.USER_ID        -- l_last_updated_by Modified for Bug:4489214
9277                   , p_last_update_login     => FND_GLOBAL.LOGIN_ID       -- l_last_update_login Modified for Bug:4489214
9278                   , p_attribute1            => NULL
9279                   , p_attribute2            => NULL
9280                   , p_attribute3            => NULL
9281                   , p_attribute4            => NULL
9282                   , p_attribute5            => NULL
9283                   , p_attribute6            => NULL
9284                   , p_attribute7            => NULL
9285                   , p_attribute8            => NULL
9286                   , p_attribute9            => NULL
9287                   , p_attribute10           => NULL
9288                   , p_attribute11           => NULL
9289                   , p_attribute12           => NULL
9290                   , p_attribute13           => NULL
9291                   , p_attribute14           => NULL
9292                   , p_attribute15           => NULL
9293                   , p_context               => NULL
9294                   , p_jtf_note_contexts_tab => l_jtf_note_contexts_tab);
9295 
9296                 END LOOP;
9297             END IF;
9298 
9299         END IF;
9300 
9301       x_return_status := OKC_API.G_RET_STS_SUCCESS;
9302 
9303 EXCEPTION
9304 
9305   WHEN OTHERS THEN
9306 
9307       OKC_API.set_message(G_APP_NAME,
9308                           G_UNEXPECTED_ERROR,
9309                           G_SQLCODE_TOKEN,
9310                           SQLCODE,
9311                           G_SQLERRM_TOKEN,
9312                           SQLERRM);
9313 
9314       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9315 
9316 END COPY_K_HDR_NOTES;
9317 
9318 PROCEDURE Update_dnz_chr_id
9319            (p_coverage_id          IN NUMBER ,
9320             p_dnz_chr_id           IN NUMBER) IS
9321 
9322  -- coverage --
9323    l_clev_tbl_in             okc_contract_pub.clev_tbl_type;
9324    l_clev_tbl_out            okc_contract_pub.clev_tbl_type;
9325  -- End --
9326   -- OKC_K_ITEMS
9327   l_cimv_tbl_in             okc_contract_item_pub.cimv_tbl_type;
9328   l_cimv_tbl_out            okc_contract_item_pub.cimv_tbl_type;
9329   --
9330   -- OKS_K_LINES_B
9331      l_klnv_tbl_in            oks_contract_line_pub.klnv_tbl_type ;
9332     l_klnv_tbl_out           oks_contract_line_pub.klnv_tbl_type ;
9333 
9334   l_timezone_tbl_in    OKS_CTZ_PVT.OksCoverageTimezonesVTblType ;
9335   l_timezone_tbl_out   OKS_CTZ_PVT.OksCoverageTimezonesVTblType ;
9336 
9337  l_cov_time_tbl_in     OKS_CVT_PVT.oks_coverage_times_v_tbl_type;
9338  l_cov_time_tbl_out    OKS_CVT_PVT.oks_coverage_times_v_tbl_type;
9339  --  END
9340 
9341 -- Reaction Time --
9342   l_act_type_tbl_in         OKS_ACT_PVT.OksActionTimeTypesVTblType;
9343   l_act_type_tbl_out        OKS_ACT_PVT.OksActionTimeTypesVTblType;
9344 
9345   l_act_time_tbl_in         OKS_ACM_PVT.OKS_ACTION_TIMES_V_TBL_TYPE;
9346   l_act_time_tbl_out        OKS_ACM_PVT.OKS_ACTION_TIMES_V_TBL_TYPE;
9347 
9348 -- End Reaction Time  --
9349 
9350 -- Preffered Resource  --
9351    l_cplv_tbl_in             okc_contract_party_pub.cplv_tbl_type;
9352   l_cplv_tbl_out            okc_contract_party_pub.cplv_tbl_type;
9353   --
9354    l_ctcv_tbl_in             okc_contract_party_pub.ctcv_tbl_type;
9355   l_ctcv_tbl_out            okc_contract_party_pub.ctcv_tbl_type;
9356  -- end Resource --
9357 
9358  -- Bill Rate  --
9359  l_bill_rate_tbl_in        OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE;
9360  l_bill_rate_tbl_out       OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE;
9361 
9362  -- End Bill Rate --
9363 
9364  -- Preventive Maintainance --
9365  -- OKs_Pm_stream_levels
9366  l_pmlv_tbl_in   	    OKS_PML_PVT.PMLV_TBL_TYPE;
9367   l_pmlv_tbl_out   	    OKS_PML_PVT.PMLV_TBL_TYPE;
9368   -- Oks_pm_stream_levels
9369   -- OKs_Pm_schedules
9370  l_pms_tbl_in  oks_pms_pvt.oks_pm_schedules_v_tbl_type;
9371  l_pms_tbl_out oks_pms_pvt.oks_pm_schedules_v_tbl_type;
9372   -- Oks_Pm_schedules
9373   -- OKS_PM_ACTIVITIES --
9374   l_pmav_tbl_in		    OKS_PMA_PVT.pmav_tbl_type;
9375   l_pmav_tbl_out	    OKS_PMA_PVT.pmav_tbl_type;
9376   -- OKS_PM_ACTIVITIES --
9377  -- End Preventive Maintainance --
9378 
9379 Cursor Cur_react_time (p_id NUMBER) IS
9380 Select id,dnz_chr_id from OKC_K_LINES_B
9381 Where cle_id = p_id
9382 And Lse_id  in (4,17);
9383 
9384 Cursor cur_act_times (p_id NUMBER) IS
9385 Select id,dnz_chr_id,object_version_number from OKS_ACTION_TIMES
9386 where  COV_ACTION_TYPE_ID = p_id;
9387 
9388 
9389 
9390 cursor cur_act_time_type (p_id NUMBER) IS
9391 Select id,dnz_chr_id,object_version_number  from OKS_ACTION_TIME_TYPES
9392 where cle_id = p_id
9393 AND ACTION_TYPE_CODE IN ('RCN', 'RSN');
9394 
9395 
9396 Cursor cur_oks_id (p_id NUMBER) IS
9397 Select id,dnz_chr_id,cle_id,sfwt_flag,object_version_number from OKS_K_LINES_V
9398 where cle_id = p_id;
9399 
9400 
9401 
9402 -- Time Zone  --
9403   CURSOR 	csr_TZ_id(l_cle_id NUMBER) IS
9404           	SELECT id,dnz_chr_id,object_version_number from OKS_COVERAGE_TIMEZONES
9405           	WHERE  cle_id = l_cle_id;
9406   CURSOR 	csr_Times_id(l_cle_id NUMBER) IS
9407           	SELECT id,dnz_chr_id,object_version_number from OKS_COVERAGE_TIMES
9408           	WHERE  cov_tze_line_id = l_cle_id;
9409 
9410 -- End Time Zone --
9411 
9412 -- Business Process --
9413 
9414       CURSOR 	csr_BP_id(l_cle_id NUMBER) IS
9415           	SELECT id,dnz_chr_id from okc_k_lines_b
9416           	WHERE  cle_id = l_cle_id
9417 		AND LSE_ID IN (3,16);
9418 
9419 -- End Business Process--
9420 
9421 
9422 Cursor cur_party (P_id NUMBER) IS
9423 Select id,dnz_chr_id,chr_id,cpl_id,primary_yn,small_business_flag,women_owned_flag,cle_id,
9424 JTOT_OBJECT1_CODE,object1_id1,rle_code from OKC_K_PARTY_ROLES_V
9425 Where cle_id = p_id
9426 And   dnz_chr_id = p_dnz_chr_id;
9427 
9428 
9429 Cursor cur_contact (P_id NUMBER) IS
9430 Select id,dnz_chr_id,cro_code,cpl_id,primary_yn,resource_class from OKC_CONTACTS
9431 Where cpl_id = p_id;
9432 
9433 -- Billing Type  --
9434 Cursor cur_bill_type (p_id NUMBER) IS
9435 Select id,dnz_chr_id from OKC_K_LINES_B
9436 where cle_id=p_id
9437 and lse_id in ( 5,59,23);
9438 
9439 Cursor cur_item (p_id NUMBER) IS
9440 Select id,dnz_chr_id,jtot_object1_code,object1_id1,cle_id,chr_id,cle_id_for,exception_yn,
9441 PRICED_ITEM_YN,uom_code from OKC_K_ITEMS
9442 where cle_id = p_id;
9443 
9444 
9445 -- End Billing Type --
9446 
9447 -- Bill Rate  --
9448 Cursor cur_bill_sch (p_id NUMBER) IS
9449 Select id,dnz_chr_id,object_version_number from OKS_BILLRATE_SCHEDULES
9450 Where CLE_ID =p_id;
9451 
9452 Cursor cur_bill_rate (p_id NUMBER) IS
9453 Select id,dnz_chr_id from OKC_K_LINES_B
9454 where cle_id=p_id
9455 and lse_id in (6,60,24);
9456 -- End Bill Rate --
9457 -- Coverage_id --
9458 Cursor Cur_Coverage (p_id NUMBER) IS
9459 Select dnz_chr_id from OKC_K_LINES_B
9460 where id =p_id ;
9461 -- End Coverage id --
9462 
9463 
9464 --  Variable Used --
9465 l_coverage_id     NUMBER;
9466 l_dnz_chr_id     NUMBER:= -1;
9467 l_oks_line_id     NUMBER;
9468 l_cle_id          NUMBER;
9469 l_api_version		CONSTANT	NUMBER	:= 1.0;
9470 l_init_msg_list	        CONSTANT	VARCHAR2(1) := OKC_API.G_TRUE;
9471 l_return_status		    	        VARCHAR2(1) := 'S';
9472 l_msg_count  				Number;
9473 l_msg_data   				Varchar2(240);
9474 l_validate_yn                           VARCHAR2(1) := 'N';
9475 cnt                           NUMBER;
9476 cnt1                          NUMBER;
9477 
9478 
9479 
9480 -- End --
9481 -- Preventive Maintainance --
9482 Cursor cur_pm_act (p_id NUMBER) IS
9483 Select id,dnz_chr_id ,object_version_number
9484 from OKS_PM_ACTIVITIES
9485 Where cle_id=p_id;
9486 
9487 cursor cur_pm_sch (p_id NUMBER) IS
9488 Select id , dnz_chr_id,OBJECT_VERSION_NUMBER
9489 from  OKS_PM_SCHEDULES
9490 Where cle_id=p_id;
9491 
9492 Cursor cur_pm_stream (p_id NUMBER) IS
9493 Select id,dnz_chr_id ,OBJECT_VERSION_NUMBER
9494 from OKS_PM_STREAM_LEVELS
9495 Where cle_id=p_id;
9496 -- Preventive Maintanance --
9497 
9498 
9499 Begin
9500 
9501 
9502 
9503 -- Check the Status of Warranty_YN Check Box
9504 -- If checked then set dnz_chr_id = -2
9505 -- else set dnz_chr_id = -1
9506 
9507 l_coverage_id  :=p_coverage_id;
9508 l_dnz_chr_id := p_dnz_chr_id;
9509 cnt :=0;
9510 cnt1 :=0;
9511  Open Cur_Coverage(p_coverage_id);
9512  fetch Cur_Coverage into l_dnz_chr_id ;
9513  close Cur_Coverage;
9514 
9515 IF l_dnz_chr_id <> p_dnz_chr_id then
9516  -- Coverage --
9517   l_clev_tbl_in(1).id                := l_coverage_id;
9518   l_clev_tbl_in(1).dnz_chr_id 		 := p_dnz_chr_id;
9519 
9520   okc_contract_pub.update_contract_line (
9521    	  p_api_version						    => l_api_version,
9522   	  p_init_msg_list					    => l_init_msg_list,
9523       x_return_status					    => l_return_status,
9524       x_msg_count							=> l_msg_count,
9525       x_msg_data							=> l_msg_data,
9526       p_restricted_update                   => 'F',
9527       p_clev_tbl							=> l_clev_tbl_in,
9528       x_clev_tbl							=> l_clev_tbl_out
9529       );
9530 
9531  End if ;
9532 
9533  For rec_line in  cur_oks_id (l_coverage_id) LOOP
9534   IF rec_line.dnz_chr_id <> p_dnz_chr_id then
9535 
9536     l_klnv_tbl_in(cnt).id                    :=  rec_line.id;
9537     l_klnv_tbl_in(cnt).dnz_chr_id            :=  p_dnz_chr_id;
9538     l_klnv_tbl_in(cnt).cle_id                :=  rec_line.cle_id;
9539     l_klnv_tbl_in(cnt).sfwt_flag            :=  rec_line.sfwt_flag;
9540     l_klnv_tbl_in(cnt).object_version_number :=  rec_line.object_version_number;
9541 
9542 
9543     cnt :=cnt+1;
9544     End if;
9545  End LOOP;
9546   if cnt>0 then
9547 
9548        OKS_CONTRACT_LINE_PUB.UPDATE_LINE(
9549                                    p_api_version     => l_api_version,
9550                                    p_init_msg_list   => l_init_msg_list,
9551                                    x_return_status   => l_return_status,
9552                                    x_msg_count       => l_msg_count,
9553                                    x_msg_data        => l_msg_data,
9554                                    p_klnv_tbl        => l_klnv_tbl_in,
9555                                    x_klnv_tbl        => l_klnv_tbl_out,
9556                                    p_validate_yn     => l_validate_yn);
9557    End if;
9558 -- coverage End --
9559 
9560  cnt :=0;
9561 
9562  -- Preventive Maintainance  --
9563  For rec_pma in  cur_pm_act (l_coverage_id) LOOP
9564    IF rec_pma.dnz_chr_id <> p_dnz_chr_id then
9565      l_pmav_tbl_in(cnt).id         := rec_pma.id;
9566      l_pmav_tbl_in(cnt).dnz_chr_id := p_dnz_chr_id;
9567      l_pmav_tbl_in(cnt).object_version_number := rec_pma.object_version_number;
9568      cnt :=cnt+1;
9569    End if;
9570  End LOOP;
9571  If cnt>0 Then
9572  -- OKS_PM_ACTIVITIES
9573    oks_pma_pvt.update_row (
9574   p_api_version     => l_api_version,
9575              p_init_msg_list   => l_init_msg_list,
9576              x_return_status   => l_return_status,
9577           x_msg_count				=> l_msg_count,
9578           x_msg_data				=> l_msg_data,
9579           p_pmav_tbl				=> l_pmav_tbl_in,
9580     	  x_pmav_tbl				=> l_pmav_tbl_out);
9581  End if;
9582 
9583  cnt:=0;
9584  For rec_sch in  cur_pm_sch (l_coverage_id) LOOP
9585    IF rec_sch.dnz_chr_id <> p_dnz_chr_id then
9586       l_pms_tbl_in(cnt).id         := rec_sch.id;
9587       l_pms_tbl_in(cnt).dnz_chr_id := p_dnz_chr_id;
9588       l_pms_tbl_in(cnt).OBJECT_VERSION_NUMBER   :=rec_sch.OBJECT_VERSION_NUMBER;
9589       cnt :=cnt+1;
9590    End if;
9591  End LOOP;
9592  If cnt>0 Then
9593     -- OKS_PM_SCHEDULES --
9594     OKS_PMS_PVT.update_row(
9595  p_api_version     => l_api_version,
9596  p_init_msg_list   => l_init_msg_list,
9597  x_return_status   => l_return_status,
9598     x_msg_count		=> l_msg_count ,
9599     x_msg_data		=> l_msg_data  ,
9600     p_oks_pm_schedules_v_tbl => l_pms_tbl_in,
9601     x_oks_pm_schedules_v_tbl =>l_pms_tbl_out);
9602  End IF;
9603 
9604  cnt :=0;
9605  For rec_stream in  cur_pm_stream (l_coverage_id) LOOP
9606   IF rec_stream.dnz_chr_id <> p_dnz_chr_id then
9607       l_pmlv_tbl_in(cnt).id :=rec_stream.id;
9608       l_pmlv_tbl_in(cnt).dnz_chr_id :=p_dnz_chr_id;
9609       l_pmlv_tbl_in(cnt).OBJECT_VERSION_NUMBER :=rec_stream.OBJECT_VERSION_NUMBER;
9610       cnt :=cnt+1;
9611    End if;
9612  End LOOP;
9613  If cnt>0 Then
9614       -- OKS_PM_STRAM_LEVELS
9615      oks_pml_pvt.update_row (
9616    	  p_api_version     => l_api_version,
9617       p_init_msg_list   => l_init_msg_list,
9618       x_return_status   => l_return_status,
9619           x_msg_count				=> l_msg_count,
9620           x_msg_data				=> l_msg_data,
9621           p_pmlv_tbl				=> l_pmlv_tbl_in,
9622     	  x_pmlv_tbl				=> l_pmlv_tbl_out
9623     );
9624  End if;
9625 
9626 
9627  -- End Preventive Maintainance --
9628 
9629 
9630 
9631 
9632 cnt:=0;
9633 -- Business Process  --
9634 --oksaucvt_tool_box.init_contract_line (l_clev_tbl_in);
9635 FOR rec_bp in csr_bp_id(l_coverage_id) LOOP
9636 
9637  IF rec_bp.dnz_chr_id <> p_dnz_chr_id then
9638 
9639 	l_clev_tbl_in(cnt).id	                 := rec_bp.id;
9640 	l_clev_tbl_in(cnt).dnz_chr_id            :=p_dnz_chr_id;
9641 	cnt :=cnt+1;
9642  End If;
9643 -- Contract Item
9644 
9645    --oksaucvt_tool_box.init_contract_item (l_cimv_tbl_in);
9646 
9647 FOR rec_item in cur_item(rec_bp.id) LOOP
9648  IF rec_item.dnz_chr_id <>p_dnz_chr_id Then
9649    l_cimv_tbl_in(cnt1).id	    	       := rec_item.id;
9650    l_cimv_tbl_in(cnt1).cle_id		       := rec_item.cle_id;
9651    l_cimv_tbl_in(cnt1).dnz_chr_id         := p_dnz_chr_id;
9652    l_cimv_tbl_in(cnt1).jtot_object1_code  := rec_item.jtot_object1_code;
9653    l_cimv_tbl_in(cnt1).cle_id_for         := rec_item.cle_id_for;
9654     l_cimv_tbl_in(cnt1).PRICED_ITEM_YN  := rec_item.PRICED_ITEM_YN;
9655    l_cimv_tbl_in(cnt1).chr_id         := rec_item.chr_id;
9656    l_cimv_tbl_in(cnt1).exception_yn  := rec_item.exception_yn;
9657    l_cimv_tbl_in(cnt1).object1_id1  := rec_item.object1_id1;
9658 
9659    cnt1 :=cnt1+1;
9660   End if;
9661 End LOOP;
9662 If cnt1>0 then
9663    okc_contract_item_pub.update_contract_item (
9664    	 p_api_version     => l_api_version,
9665      p_init_msg_list   => l_init_msg_list,
9666      x_return_status   => l_return_status,
9667      x_msg_count	   => l_msg_count,
9668      x_msg_data		   => l_msg_data,
9669      p_cimv_tbl		   => l_cimv_tbl_in,
9670      x_cimv_tbl	       => l_cimv_tbl_out );
9671  End if;
9672 -- End Contract Item
9673 -- OKS_K_LINES_B
9674 cnt1 :=0;
9675   For rec_line in  cur_oks_id (rec_bp.id) LOOP
9676 
9677      If rec_line.dnz_chr_id <>p_dnz_chr_id then
9678 	  l_klnv_tbl_in(cnt1).id                    :=  rec_line.id;
9679     l_klnv_tbl_in(cnt1).dnz_chr_id            :=  p_dnz_chr_id;
9680     l_klnv_tbl_in(cnt1).cle_id                :=  rec_line.cle_id;
9681     l_klnv_tbl_in(cnt1).sfwt_flag            :=  rec_line.sfwt_flag;
9682     l_klnv_tbl_in(cnt1).object_version_number :=  rec_line.object_version_number;
9683 	   cnt1 :=cnt1+1;
9684     End if;
9685 
9686   End LOOP;
9687 If cnt1>0 Then
9688  OKS_CONTRACT_LINE_PUB.UPDATE_LINE(
9689                   p_api_version     => l_api_version,
9690                   p_init_msg_list   => l_init_msg_list,
9691                   x_return_status   => l_return_status,
9692                   x_msg_count       => l_msg_count,
9693                   x_msg_data        => l_msg_data,
9694                   p_klnv_tbl        => l_klnv_tbl_in,
9695                   x_klnv_tbl        => l_klnv_tbl_out,
9696                   p_validate_yn     => l_validate_yn);
9697 End if ;
9698   -- End OKS_K_LINES_B --
9699  cnt1 :=0;
9700 
9701 End Loop; -- end Loop BP
9702 
9703 If  cnt>0 Then
9704       okc_contract_pub.update_contract_line (
9705    	  p_api_version						    => l_api_version,
9706   	  p_init_msg_list					    => l_init_msg_list,
9707       x_return_status					    => l_return_status,
9708       x_msg_count							=> l_msg_count,
9709       x_msg_data							=> l_msg_data,
9710       p_restricted_update                   => 'F',
9711       p_clev_tbl							=> l_clev_tbl_in,
9712       x_clev_tbl							=> l_clev_tbl_out);
9713 End if;
9714 
9715 -- End Business process--
9716 cnt :=0;
9717 
9718 
9719 -- Reaction Time  --
9720 FOR rec_bp in csr_bp_id(l_coverage_id ) LOOP
9721       FOR rec_react IN cur_react_time (rec_bp.id) LOOP
9722 
9723  If rec_react.dnz_chr_id<>p_dnz_chr_id then
9724    	 l_clev_tbl_in(cnt).dnz_chr_id	 := p_dnz_chr_id;
9725 	 l_clev_tbl_in(cnt).id			 := rec_react.id;
9726     cnt :=cnt+1;
9727   End If;
9728    -- Fetch OKS_K_LINES id
9729   cnt1 :=0;
9730   For rec_line in  cur_oks_id (rec_react.id) LOOP
9731 
9732   IF rec_line.dnz_chr_id<>p_dnz_chr_id then
9733       l_klnv_tbl_in(cnt1).id                    :=  rec_line.id;
9734     l_klnv_tbl_in(cnt1).dnz_chr_id            :=  p_dnz_chr_id;
9735     l_klnv_tbl_in(cnt1).cle_id                :=  rec_line.cle_id;
9736     l_klnv_tbl_in(cnt1).sfwt_flag            :=  rec_line.sfwt_flag;
9737     l_klnv_tbl_in(cnt1).object_version_number :=  rec_line.object_version_number;
9738      cnt1 :=cnt1+1;
9739    End if ;
9740   End Loop;
9741  If cnt1>0 then
9742        OKS_CONTRACT_LINE_PUB.UPDATE_LINE(
9743                    	  p_api_version						    => l_api_version,
9744   	  p_init_msg_list					    => l_init_msg_list,
9745       x_return_status					    => l_return_status,
9746       x_msg_count							=> l_msg_count,
9747       x_msg_data							=> l_msg_data,
9748                     p_klnv_tbl        => l_klnv_tbl_in,
9749                     x_klnv_tbl        => l_klnv_tbl_out,
9750                     p_validate_yn     => l_validate_yn);
9751  End if;
9752   -- update the oks_action_types line
9753 cnt1 :=0;
9754 for rec_type in cur_act_time_type ( rec_react.id) LOOP
9755 
9756   if rec_type.dnz_chr_id<>p_dnz_chr_id THEN
9757     l_act_type_tbl_in(cnt1).dnz_chr_id        := p_dnz_chr_id;
9758     l_act_type_tbl_in(cnt1).id                := rec_type.id;
9759     l_act_type_tbl_in(cnt1).object_version_number := rec_type.object_version_number;
9760     cnt1 := cnt1+1;
9761 
9762    End if;
9763  End LOOP;
9764  If cnt1>0  Then
9765  OKS_ACT_PVT.Update_ROW(
9766       p_api_version						    => l_api_version,
9767   	  p_init_msg_list					    => l_init_msg_list,
9768       x_return_status					    => l_return_status,
9769       x_msg_count							=> l_msg_count,
9770       x_msg_data							=> l_msg_data,
9771                         p_oks_action_time_types_v_tbl => l_act_type_tbl_in,
9772                         x_oks_action_time_types_v_tbl => l_act_type_tbl_out);
9773   End if;
9774 
9775      cnt1 :=0;
9776    -- End Update oks_action_types line
9777     -- Update the oks_action_times_line
9778  for rec_type in cur_act_time_type ( rec_react.id) LOOP
9779   for rec_time in cur_act_times (rec_type.id) LOOP
9780 
9781    If rec_time.dnz_chr_id <>p_dnz_chr_id then
9782 
9783 	  l_act_time_tbl_in(cnt1).dnz_chr_id             :=p_dnz_chr_id;
9784 	  l_act_time_tbl_in(cnt1).id                     :=rec_time.id;
9785      l_act_time_tbl_in(cnt1).object_version_number   :=rec_time.object_version_number;
9786       cnt1 :=cnt1+1;
9787 
9788     End if;
9789    End LOOP;
9790   End LOOP;
9791   If cnt1>0 Then
9792      OKS_ACM_PVT.UPDATE_ROW(  	  p_api_version						    => l_api_version,
9793   	  p_init_msg_list					    => l_init_msg_list,
9794       x_return_status					    => l_return_status,
9795       x_msg_count							=> l_msg_count,
9796       x_msg_data							=> l_msg_data,
9797                          p_oks_action_times_v_tbl => l_act_time_tbl_in,
9798                          x_oks_action_times_v_tbl => l_act_time_tbl_out);
9799   End if;
9800     -- End oks_action_times_line
9801 cnt1:=0;
9802       END LOOP;	-- Reaction Time
9803  End LOOP; -- BP
9804  if cnt>0 Then
9805    okc_contract_pub.update_contract_line (
9806    	  p_api_version						    => l_api_version,
9807   	  p_init_msg_list					    => l_init_msg_list,
9808       x_return_status					    => l_return_status,
9809       x_msg_count							=> l_msg_count,
9810       x_msg_data							=> l_msg_data,
9811       p_restricted_update                   => 'F',
9812       p_clev_tbl							=> l_clev_tbl_in,
9813       x_clev_tbl							=> l_clev_tbl_out );
9814   End if;
9815 -- End Reaction Time --
9816 
9817 cnt :=0;
9818 
9819 -- Resource --
9820  FOR rec_bp in csr_bp_id(p_coverage_id) LOOP
9821    For rec_part in Cur_party (rec_bp.id) LOOP
9822    IF rec_part.dnz_chr_id <>p_dnz_chr_id Then
9823        l_cplv_tbl_in(cnt).dnz_chr_id                := p_dnz_chr_id;
9824        l_cplv_tbl_in(cnt).id                        :=  rec_part.id;
9825        l_cplv_tbl_in(cnt).chr_id                    :=  rec_part.chr_id;
9826        l_cplv_tbl_in(cnt).cle_id                        :=  rec_part.cle_id;
9827        l_cplv_tbl_in(cnt).cpl_id                        :=  rec_part.cpl_id;
9828        l_cplv_tbl_in(cnt).small_business_flag           :=  rec_part.small_business_flag;
9829        l_cplv_tbl_in(cnt).women_owned_flag                        :=  rec_part.women_owned_flag;
9830        l_cplv_tbl_in(cnt).primary_yn                        :=  rec_part.primary_yn;
9831          l_cplv_tbl_in(cnt).JTOT_OBJECT1_CODE           :=  rec_part.JTOT_OBJECT1_CODE;
9832        l_cplv_tbl_in(cnt).object1_id1                        :=  rec_part.object1_id1;
9833        l_cplv_tbl_in(cnt).rle_code                        :=  rec_part.rle_code;
9834 
9835        cnt :=cnt+1;
9836    End if;
9837   -- OKC_CONTACTS --
9838   cnt1 :=0;
9839    For rec_con in cur_contact (rec_part.id) LOOP
9840      If rec_con.dnz_chr_id <>p_dnz_chr_id then
9841     	l_ctcv_tbl_in(cnt1).id           := rec_con.id;
9842     	l_ctcv_tbl_in(cnt1).dnz_chr_id   := p_dnz_chr_id;
9843      l_ctcv_tbl_in(cnt1).cro_code           := rec_con.cro_code;
9844      l_ctcv_tbl_in(cnt1).cpl_id           := rec_con.cpl_id;
9845      l_ctcv_tbl_in(cnt1).primary_yn           := rec_con.primary_yn;
9846      l_ctcv_tbl_in(cnt1).resource_class           := rec_con.resource_class;
9847         cnt1 :=cnt1+1;
9848       End if;
9849    End LOOP;
9850  If cnt1>0 Then
9851     okc_contract_party_pub.update_contact (
9852    	  p_api_version						    => l_api_version,
9853   	  p_init_msg_list					    => l_init_msg_list,
9854       x_return_status					    => l_return_status,
9855       x_msg_count							=> l_msg_count,
9856       x_msg_data							=> l_msg_data,
9857       p_ctcv_tbl							=> l_ctcv_tbl_in,
9858     	x_ctcv_tbl							=> l_ctcv_tbl_out );
9859  End if;
9860  -- OKC_CONTACTS --
9861    End LOOP; -- End Party Roles
9862  End LOOP; -- End Bp
9863  If cnt>0 then
9864  okc_contract_party_pub.update_k_party_role (
9865   p_api_version						    => l_api_version,
9866   	  p_init_msg_list					    => l_init_msg_list,
9867       x_return_status					    => l_return_status,
9868       x_msg_count					=> l_msg_count,
9869       x_msg_data					=> l_msg_data,
9870       p_cplv_tbl					=> l_cplv_tbl_in,
9871       x_cplv_tbl					=> l_cplv_tbl_out );
9872  End if;
9873 
9874 -- End Prefered Resource --
9875 cnt :=0;
9876 
9877 -- Billing Type --
9878 FOR rec_bp in csr_bp_id(l_coverage_id ) LOOP
9879 	For rec_bill in cur_bill_type( rec_bp.id) LOOP
9880  -- Contract Line for Billing Type
9881  If rec_bill.dnz_chr_id<>p_dnz_chr_id then
9882    l_clev_tbl_in(cnt).dnz_chr_id			 := p_dnz_chr_id;
9883    l_clev_tbl_in(cnt).id			         := rec_bill.id;
9884    cnt := cnt +1;
9885  End if;
9886  cnt1 :=0;
9887 
9888   For rec_item in cur_item (rec_bill.id) LOOP
9889 	  -- Contract Item
9890 	IF rec_item.dnz_chr_id<>p_dnz_chr_id then
9891   l_cimv_tbl_in(cnt1).id	    	       := rec_item.id;
9892    l_cimv_tbl_in(cnt1).cle_id		       := rec_item.cle_id;
9893    l_cimv_tbl_in(cnt1).dnz_chr_id         := p_dnz_chr_id;
9894    l_cimv_tbl_in(cnt1).jtot_object1_code  := rec_item.jtot_object1_code;
9895    l_cimv_tbl_in(cnt1).cle_id_for         := rec_item.cle_id_for;
9896     l_cimv_tbl_in(cnt1).PRICED_ITEM_YN  := rec_item.PRICED_ITEM_YN;
9897    l_cimv_tbl_in(cnt1).chr_id         := rec_item.chr_id;
9898    l_cimv_tbl_in(cnt1).exception_yn  := rec_item.exception_yn;
9899    l_cimv_tbl_in(cnt1).object1_id1  := rec_item.object1_id1;
9900     cnt1 :=cnt1+1;
9901     End If;
9902   End LOOP;
9903 If cnt1>0 Then
9904    okc_contract_item_pub.update_contract_item (
9905    	 p_api_version     => l_api_version,
9906      p_init_msg_list   => l_init_msg_list,
9907      x_return_status   => l_return_status,
9908      x_msg_count	   => l_msg_count,
9909      x_msg_data		   => l_msg_data,
9910      p_cimv_tbl		   => l_cimv_tbl_in,
9911      x_cimv_tbl	       => l_cimv_tbl_out );
9912      -- End OKC_K_ITEMS
9913 End if;
9914      cnt1:=0;
9915  For rec_oks_line in cur_oks_id (rec_bill.id) LOOP
9916 
9917    if rec_oks_line.dnz_chr_id<>p_dnz_chr_id then
9918      l_klnv_tbl_in(cnt1).id                    :=  rec_oks_line.id;
9919     l_klnv_tbl_in(cnt1).dnz_chr_id            :=  p_dnz_chr_id;
9920     l_klnv_tbl_in(cnt1).cle_id                :=  rec_oks_line.cle_id;
9921     l_klnv_tbl_in(cnt1).sfwt_flag            :=  rec_oks_line.sfwt_flag;
9922     l_klnv_tbl_in(cnt1).object_version_number :=  rec_oks_line.object_version_number;
9923      cnt1:=cnt1+1;
9924    End if;
9925  End LOOP;
9926 If cnt1>0 Then
9927        OKS_CONTRACT_LINE_PUB.UPDATE_LINE(
9928               p_api_version     => l_api_version,
9929      p_init_msg_list   => l_init_msg_list,
9930      x_return_status   => l_return_status,
9931      x_msg_count	   => l_msg_count,
9932      x_msg_data		   => l_msg_data,
9933               p_klnv_tbl        => l_klnv_tbl_in,
9934               x_klnv_tbl        => l_klnv_tbl_out,
9935               p_validate_yn     => l_validate_yn);
9936  end if;
9937         End LOOP;
9938 End LOOP; -- BP --
9939 If cnt>0 then
9940    okc_contract_pub.update_contract_line (
9941    	  p_api_version						    => l_api_version,
9942   	  p_init_msg_list					    => l_init_msg_list,
9943       x_return_status					    => l_return_status,
9944       x_msg_count							=> l_msg_count,
9945       x_msg_data							=> l_msg_data,
9946       p_restricted_update                   => 'F',
9947       p_clev_tbl							=> l_clev_tbl_in,
9948       x_clev_tbl							=> l_clev_tbl_out  );
9949  End if;
9950 -- BILLING Tpye ---
9951 
9952 cnt :=0;
9953 
9954 -- Billing Rate --
9955 FOR rec_bp in csr_bp_id(l_coverage_id) LOOP
9956 	For rec_bill in cur_bill_type( rec_bp.id) LOOP
9957 	   For rec_billrate in cur_bill_rate ( rec_bill.id) LOOP
9958 
9959    If rec_billrate.dnz_chr_id <> p_dnz_chr_id Then
9960 	    l_clev_tbl_in(cnt).id			 := rec_billrate.id;
9961 	    l_clev_tbl_in(cnt).dnz_chr_id		 := p_dnz_chr_id;
9962         cnt:=cnt +1;
9963    End if;
9964 	  cnt1 :=0;
9965 	  For rec_oks_line in cur_oks_id (rec_bill.id) LOOP
9966 	     If rec_oks_line.dnz_chr_id<>p_dnz_chr_id then
9967           l_klnv_tbl_in(cnt1).id                    :=  rec_oks_line.id;
9968     l_klnv_tbl_in(cnt1).dnz_chr_id            :=  p_dnz_chr_id;
9969     l_klnv_tbl_in(cnt1).cle_id                :=  rec_oks_line.cle_id;
9970     l_klnv_tbl_in(cnt1).sfwt_flag            :=  rec_oks_line.sfwt_flag;
9971     l_klnv_tbl_in(cnt1).object_version_number :=  rec_oks_line.object_version_number;
9972            cnt1 := cnt1+1;
9973          End if;
9974       End LOOP; -- End OKS_LINES
9975    If cnt1>0 Then
9976            OKS_CONTRACT_LINE_PUB.UPDATE_LINE(
9977                                 p_api_version     => l_api_version,
9978                    p_init_msg_list   => l_init_msg_list,
9979                    x_return_status   => l_return_status,
9980                    x_msg_count       => l_msg_count,
9981                    x_msg_data        => l_msg_data,
9982                                    p_klnv_tbl        => l_klnv_tbl_in,
9983                                    x_klnv_tbl        => l_klnv_tbl_out,
9984                                    p_validate_yn     => l_validate_yn);
9985    End if;
9986         cnt1:=0;
9987 
9988 
9989 	  For rec_billsch in cur_bill_sch (rec_billrate.id) LOOP
9990 
9991        If rec_billsch.dnz_chr_id <>p_dnz_chr_id then
9992 	    l_bill_rate_tbl_in(cnt1).id                :=   rec_billsch.id ;
9993 	    l_bill_rate_tbl_in(cnt1).dnz_chr_id        :=   p_dnz_chr_id;
9994         l_bill_rate_tbl_in(cnt1).object_version_number                :=   rec_billsch.object_version_number ;
9995 
9996         cnt1 :=cnt1+1;
9997 	   End if;
9998      End LOOP; -- Billsch
9999 
10000   If cnt1>0 Then
10001 
10002      OKS_BRS_PVT.UPDATE_ROW(p_api_version     => l_api_version,
10003                    p_init_msg_list   => l_init_msg_list,
10004                    x_return_status   => l_return_status,
10005                    x_msg_count       => l_msg_count,
10006                    x_msg_data        => l_msg_data,
10007                    p_oks_billrate_schedules_v_tbl => l_bill_rate_tbl_in ,
10008                    x_oks_billrate_schedules_v_tbl => l_bill_rate_tbl_out);
10009     End If;
10010    cnt1 :=0;
10011 
10012       End LOOP; -- billrate
10013     End LOOP;
10014 End LOOP; -- BP
10015 If cnt>0 Then
10016   okc_contract_pub.update_contract_line (
10017    	  p_api_version						    => l_api_version,
10018   	  p_init_msg_list					    => l_init_msg_list,
10019       x_return_status					    => l_return_status,
10020       x_msg_count							=> l_msg_count,
10021       x_msg_data							=> l_msg_data,
10022       p_restricted_update                   => 'F',
10023       p_clev_tbl							=> l_clev_tbl_in,
10024       x_clev_tbl							=> l_clev_tbl_out);
10025  End if ;
10026  cnt :=0;
10027       -- End Billing Rate --
10028 
10029 
10030  -- TimeZone--
10031  FOR rec_bp in csr_bp_id(l_coverage_id) LOOP
10032      For rec_covtz in csr_TZ_id( rec_bp.id) LOOP
10033 
10034 If rec_covtz.dnz_chr_id<>p_dnz_chr_id Then
10035   l_timezone_tbl_in(cnt).id             := rec_covtz.id;
10036   l_timezone_tbl_in(cnt).dnz_chr_id     := p_dnz_chr_id;
10037   l_timezone_tbl_in(cnt).object_version_number :=rec_covtz.object_version_number;
10038 
10039   cnt:=cnt+1;
10040 End if;
10041          End LOOP;
10042  End LOOP;
10043  if cnt>0 then
10044 
10045  OKS_CTZ_PVT.UPDATE_ROW(
10046       p_api_version						    => l_api_version,
10047   	  p_init_msg_list					    => l_init_msg_list,
10048       x_return_status					    => l_return_status,
10049       x_msg_count							=> l_msg_count,
10050       x_msg_data							=> l_msg_data,
10051       p_oks_coverage_timezones_v_tbl  => l_timezone_tbl_in,
10052       x_oks_coverage_timezones_v_tbl  => l_timezone_tbl_out);
10053  End if ;
10054  cnt:=0;
10055 
10056  -- End Time Zone--
10057  -- Times --
10058  FOR rec_bp in csr_bp_id(l_coverage_id) LOOP
10059      For rec_covtz in csr_TZ_id( rec_bp.id) LOOP
10060        For rec_times in csr_Times_id (rec_covtz.id) LOOP
10061  -- If rec_times.dnz_chr_id<>p_dnz_chr_id Then
10062      l_cov_time_tbl_in(cnt).id              := rec_times.id;
10063      l_cov_time_tbl_in(cnt).dnz_chr_id      := p_dnz_chr_id;
10064      l_cov_time_tbl_in(cnt).object_version_number :=rec_times.object_version_number;
10065 
10066      cnt :=cnt+1;
10067  -- End if;
10068        End LOOP;
10069      End LOOP;
10070  End LOOP;
10071   --If cnt>0 Then
10072     OKS_CVT_PVT.update_row(
10073                            p_api_version					    => l_api_version,
10074                            p_init_msg_list					    => l_init_msg_list,
10075                            x_return_status					    => l_return_status,
10076                            x_msg_count							=> l_msg_count,
10077                            x_msg_data							=> l_msg_data,
10078                            p_oks_coverage_times_v_tbl      => l_cov_time_tbl_in,
10079                            x_oks_coverage_times_v_tbl      =>l_cov_time_tbl_out);
10080  -- End if;
10081    -- End Times --
10082 
10083 
10084 
10085 
10086  End Update_dnz_chr_id;
10087 
10088 /* This procedure is used for creation of  PM and notes.
10089    Parameters :         p_standard_cov_id : Id of the source coverage or source contract line
10090                         p_contract_line_id : Id of the target contract line
10091    Create_K_coverage_ext can be called during the creation of service line from authoring or from renewal
10092    consolidation flow.
10093  */
10094 PROCEDURE Create_K_coverage_ext(p_api_version          IN   NUMBER,
10095                                 p_init_msg_list        IN   VARCHAR2 DEFAULT OKC_API.G_FALSE,
10096                                 p_src_line_id          IN   NUMBER,
10097                                 p_tgt_line_id          IN   NUMBER,
10098                                 x_return_status        OUT  NOCOPY   VARCHAR2,
10099                                 x_msg_count            OUT  NOCOPY   NUMBER,
10100                                 x_msg_data             OUT  NOCOPY   VARCHAR2) IS
10101 
10102 --Cursor definition
10103 /*  Modified by Jvorugan .Added p_source_object_code as input parameter.
10104     This  differentiates whether notes is associated with a standard coverage
10105     or a service line  */
10106 
10107   CURSOR CUR_GET_NOTES(p_source_object_id IN NUMBER,p_source_object_code IN VARCHAR2)
10108   IS
10109   SELECT jtf_note_id,
10110          parent_note_id,
10111          source_object_code,
10112          source_number,
10113          notes,  --
10114          notes_detail,
10115          note_status,
10116          source_object_meaning,
10117          note_type,
10118          note_type_meaning,
10119          attribute1,
10120          attribute2,
10121          attribute3,
10122          attribute4,
10123          attribute5,
10124          attribute6,
10125          attribute7,
10126          attribute8,
10127          attribute9,
10128          attribute10,
10129          attribute11,
10130          attribute12,
10131          attribute13,
10132          attribute14,
10133          attribute15,
10134          note_status_meaning,
10135          decoded_source_code,
10136          decoded_source_meaning,
10137          context
10138   FROM JTF_NOTES_VL
10139   WHERE source_object_id = p_source_object_id
10140   AND   source_object_code = p_source_object_code       --  'OKS_COVTMPL_NOTE'
10141   AND   note_status <> (case when p_source_object_code ='OKS_COVTMPL_NOTE' THEN 'P' ELSE '!' END);
10142        -- Commented by Jvorugan. note_status <> 'P';
10143 
10144 CURSOR CUR_GET_LINE_DATES IS
10145 SELECT  start_date,
10146         end_date
10147 FROM    OKC_K_LINES_B
10148 WHERE   ID = p_tgt_line_id; --p_contract_line_id;
10149 
10150 -- Modified by Jvorugan for Bug:4610475. Added pm_sch_exists_yn,pm_conf_req_yn
10151 CURSOR CUR_CHECK_PM_PROG IS
10152 SELECT  pm_program_id,pm_sch_exists_yn,pm_conf_req_yn
10153 FROM    OKS_K_LINES_B
10154 WHERE   CLE_ID = p_src_line_id; --p_standard_cov_id;  -- modified by Jvorugan Bug:4535339  ID = p_standard_cov_id;
10155 
10156 -- Added by Jvorugan
10157 CURSOR CUR_GET_LSE_ID IS
10158 SELECT  lse_id
10159 FROM    OKC_K_LINES_B
10160 WHERE   ID = p_src_line_id; --p_standard_cov_id;
10161 
10162 GET_LSE_ID_REC  CUR_GET_LSE_ID%ROWTYPE;
10163 
10164   l_start_date              DATE;
10165   l_end_date                DATE;
10166   l_pm_prog_id              NUMBER;
10167   l_jtf_note_id             NUMBER;
10168   l_Notes_detail            VARCHAR2(32767);
10169 
10170   l_api_version		    CONSTANT	NUMBER     := 1.0;
10171   l_init_msg_list	    CONSTANT	VARCHAR2(1):= 'F';
10172   l_return_status	    VARCHAR2(1);
10173   l_msg_count		    NUMBER;
10174   l_msg_data		    VARCHAR2(2000):=null;
10175   l_msg_index_out           NUMBER;
10176   l_api_name               CONSTANT VARCHAR2(30) := 'Create_K_coverage_ext';
10177 
10178 -- Added by Jvorugan for Bug: 4610475.
10179   l_pm_sch_exists_yn        VARCHAR2(1);
10180   l_pm_conf_req_yn          VARCHAR2(1);
10181   l_source_object_code      JTF_NOTES_B.SOURCE_OBJECT_CODE%type;
10182   l_source_line_id          NUMBER;
10183 
10184 BEGIN
10185   l_return_status := 'S';
10186   IF (G_DEBUG_ENABLED = 'Y') THEN
10187       okc_debug.Set_Indentation('Create_K_Coverage_Ext');
10188       okc_debug.log('BEGIN  CREATE_K_COVERAGE_EXT'||l_return_status, 2);
10189   END IF;
10190 
10191 SAVEPOINT Create_K_coverage_ext_PVT;
10192 
10193 -- Added by Jvorugan. Depending on  lse_id, l_source_object_code is populated.
10194   open  CUR_GET_LSE_ID;
10195   fetch CUR_GET_LSE_ID into GET_LSE_ID_REC;
10196   close CUR_GET_LSE_ID;
10197 
10198   l_source_line_id := p_src_line_id; --p_standard_cov_id;
10199   IF GET_LSE_ID_REC.lse_id in (1,14,19) THEN
10200   l_source_object_code := 'OKS_COV_NOTE';
10201   ELSE
10202   l_source_object_code := 'OKS_COVTMPL_NOTE';
10203   END IF;
10204 -- End of changes by Jvorugan
10205 FOR GET_LINE_DATES_REC in CUR_GET_LINE_DATES
10206 LOOP
10207  l_start_date   := GET_LINE_DATES_REC.start_date;
10208  l_end_date     := GET_LINE_DATES_REC.end_date;
10209 END LOOP;
10210 FOR CHECK_PM_PROG_REC in CUR_CHECK_PM_PROG
10211 LOOP
10212 l_pm_prog_id      :=CHECK_PM_PROG_REC.pm_program_id;
10213 l_pm_sch_exists_yn:=CHECK_PM_PROG_REC.pm_sch_exists_yn;   -- Added by Jvorugan for Bug:4610475
10214 l_pm_conf_req_yn  :=CHECK_PM_PROG_REC.pm_conf_req_yn;
10215 
10216 end LOOP;
10217   -- create notes for actual coverage from the template
10218 -- pass coverage_template_id as (p_source_object_id IN parameter )in the cursor below
10219   IF (G_DEBUG_ENABLED = 'Y') THEN
10220       okc_debug.log('BEFORE CALLING JTF_NOTES_PUB.CREATE_NOTE'||l_return_status, 2);
10221   END IF;
10222 
10223 -- Added l_source_object_code,l_source_line_id as input parameters for CUR_GET_NOTES
10224   FOR notes_rec IN CUR_GET_NOTES (l_source_line_id,l_source_object_code) LOOP
10225       JTF_NOTES_PUB.writeLobToData(notes_rec.JTF_NOTE_ID,L_Notes_detail);
10226 
10227       JTF_NOTES_PUB.CREATE_NOTE(p_parent_note_id        => notes_rec.parent_note_id ,
10228                                 p_api_version           => l_api_version,
10229                                 p_init_msg_list         =>  l_init_msg_list,
10230                                 p_commit                => 'F',
10231                                 p_validation_level      => 100,
10232                                 x_return_status         => l_return_status ,
10233                                 x_msg_count             => l_msg_count,
10234                                 x_msg_data              => l_msg_data ,
10235                                 p_org_id                =>  NULL,
10236                                 p_source_object_id      => p_tgt_line_id, -- p_contract_line_id,
10237                                 p_source_object_code    => 'OKS_COV_NOTE',
10238                                 p_notes                 =>notes_rec.notes,
10239                                 p_notes_detail          => L_Notes_detail,
10240                                 p_note_status           =>  notes_rec.note_status,
10241                                 p_entered_by            =>  FND_GLOBAL.USER_ID,
10242                                 p_entered_date          => SYSDATE ,
10243                                 x_jtf_note_id           => l_jtf_note_id,
10244                                 p_last_update_date      => sysdate,
10245                                 p_last_updated_by       => FND_GLOBAL.USER_ID,
10246                                 p_creation_date         => SYSDATE,
10247                                 p_created_by            => FND_GLOBAL.USER_ID,
10248                                 p_last_update_login     => FND_GLOBAL.LOGIN_ID,
10249                                 p_attribute1            => notes_rec.ATTRIBUTE1,
10250                                 p_attribute2            => notes_rec.ATTRIBUTE2,
10251                                 p_attribute3            => notes_rec.ATTRIBUTE3,
10252                                 p_attribute4            => notes_rec.ATTRIBUTE4,
10253                                 p_attribute5            => notes_rec.ATTRIBUTE5,
10254                                 p_attribute6            => notes_rec.ATTRIBUTE6,
10255                                 p_attribute7            => notes_rec.ATTRIBUTE7,
10256                                 p_attribute8            => notes_rec.ATTRIBUTE8,
10257                                 p_attribute9            => notes_rec.ATTRIBUTE9,
10258                                 p_attribute10           => notes_rec.ATTRIBUTE10,
10259                                 p_attribute11           => notes_rec.ATTRIBUTE11,
10260                                 p_attribute12           => notes_rec.ATTRIBUTE12,
10261                                 p_attribute13           => notes_rec.ATTRIBUTE13,
10262                                 p_attribute14           => notes_rec.ATTRIBUTE14,
10263                                 p_attribute15           => notes_rec.ATTRIBUTE15,
10264                                 p_context               => notes_rec.CONTEXT,
10265                                 p_note_type             => notes_rec.NOTE_TYPE);
10266 
10267   IF (G_DEBUG_ENABLED = 'Y') THEN
10268       okc_debug.log('AFTER CALLING JTF_NOTES_PUB.CREATE_NOTE'||l_return_status, 2);
10269   END IF;
10270 
10271 
10272         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
10273           RAISE G_EXCEPTION_HALT_VALIDATION;
10274       END IF;
10275    END LOOP;
10276 --errorout_ad('before'||l_return_status);
10277 
10278 --IF l_klnv_tbl_in(1).pm_program_id IS NOT NULL then -- No need to call PM schedule instantiation if there is no program id.
10279 --(Now I am going to add this validation (IF condition) into CREATE_PM_PROGRAM_SCHEDULE for simplicity)
10280 IF l_pm_prog_id is not null then
10281 -- Added by Jvorugan for Bug:4610475
10282 -- From R12, PM will always be associated with service line instead of coverage.
10283 -- Update oks_k_lines_b record of the service line  with the pm information.
10284 update oks_k_lines_b set   pm_program_id   =l_pm_prog_id,
10285                            pm_sch_exists_yn=l_pm_sch_exists_yn,
10286                            pm_conf_req_yn  =l_pm_conf_req_yn
10287                      where cle_id          = p_tgt_line_id; --p_contract_line_id;
10288 
10289 
10290  OKS_PM_PROGRAMS_PVT.CREATE_PM_PROGRAM_SCHEDULE(
10291     p_api_version        => l_api_version,
10292     p_init_msg_list      => l_init_msg_list,
10293     x_return_status          => l_return_status,
10294     x_msg_count          => l_msg_count,
10295     x_msg_data               => l_msg_data,
10296     p_template_cle_id    => p_src_line_id, --p_standard_cov_id,
10297     p_cle_id             => p_tgt_line_id, --p_contract_line_id,
10298     p_cov_start_date     => l_start_date,
10299     p_cov_end_date       => l_end_date);
10300 --errorout_ad('after'||l_return_status);
10301 
10302   IF (G_DEBUG_ENABLED = 'Y') THEN
10303       okc_debug.log('After OKS_PM_PROGRAMS_PVT. CREATE_PM_PROGRAM_SCHEDULE'||l_return_status, 2);
10304   END IF;
10305 
10306 
10307   IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
10308      RAISE G_EXCEPTION_HALT_VALIDATION;
10309   END IF;
10310   END IF;
10311       x_return_status := l_return_status ;
10312 EXCEPTION
10313 
10314         WHEN G_EXCEPTION_HALT_VALIDATION THEN
10315          IF (G_DEBUG_ENABLED = 'Y') THEN
10316                      okc_debug.log('Create_K_coverage_ext'||SQLERRM, 2);
10317                      okc_debug.Reset_Indentation;
10318          END IF;
10319       x_return_status := l_return_status ;
10320       x_msg_count :=l_msg_count;
10321       x_msg_data:=l_msg_data;
10322       x_return_status := OKC_API.HANDLE_EXCEPTIONS
10323       (
10324         l_api_name,
10325         'Create_K_coverage_ext',
10326         'OKC_API.G_RET_STS_ERROR',
10327         x_msg_count,
10328         x_msg_data,
10329         '_PVT'
10330       );
10331     WHEN OKC_API.G_EXCEPTION_ERROR THEN
10332          IF (G_DEBUG_ENABLED = 'Y') THEN
10333                      okc_debug.log('Create_K_coverage_ext'||SQLERRM, 2);
10334                      okc_debug.Reset_Indentation;
10335          END IF;
10336       x_msg_count :=l_msg_count;
10337       x_msg_data:=l_msg_data;
10338       x_return_status := OKC_API.HANDLE_EXCEPTIONS
10339       (
10340         l_api_name,
10341         'Create_K_coverage_ext',
10342         'OKC_API.G_RET_STS_ERROR',
10343         x_msg_count,
10344         x_msg_data,
10345         '_PVT'
10346       );
10347     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10348 
10349          IF (G_DEBUG_ENABLED = 'Y') THEN
10350                      okc_debug.log('Create_K_coverage_ext'||SQLERRM, 2);
10351                      okc_debug.Reset_Indentation;
10352          END IF;
10353       x_msg_count :=l_msg_count;
10354       x_msg_data:=l_msg_data;
10355       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
10356       (
10357         l_api_name,
10358         'Create_K_coverage_ext',
10359         'OKC_API.G_RET_STS_UNEXP_ERROR',
10360         x_msg_count,
10361         x_msg_data,
10362         '_PVT'
10363       );
10364     WHEN OTHERS THEN
10365 
10366          IF (G_DEBUG_ENABLED = 'Y') THEN
10367                      okc_debug.log('Create_K_coverage_ext'||SQLERRM, 2);
10368                      okc_debug.Reset_Indentation;
10369          END IF;
10370       OKC_API.SET_MESSAGE(
10371         p_app_name        => g_app_name,
10372         p_msg_name        => g_unexpected_error,
10373         p_token1	        => g_sqlcode_token,
10374         p_token1_value    => sqlcode,
10375         p_token2          => g_sqlerrm_token,
10376         p_token2_value    => sqlerrm);
10377        -- notify caller of an error as UNEXPETED error
10378         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
10379         x_msg_count :=l_msg_count;
10380 
10381 END Create_K_coverage_ext;
10382 
10383 
10384 /* This procedure is used for Copying the standard coverage template.
10385    Parameters:
10386               P_old_coverage_id    --  ID of the source coverage
10387               P_new_coverage_name  --  Name of the Target coverage
10388               x_new_coverage_id    -- New Id of the copied coverage    */
10389 PROCEDURE  COPY_STANDARD_COVERAGE(
10390     p_api_version                   IN NUMBER,
10391     p_init_msg_list                 IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
10392     x_return_status                 OUT NOCOPY VARCHAR2,
10393     x_msg_count                     OUT NOCOPY NUMBER,
10394     x_msg_data                      OUT NOCOPY VARCHAR2,
10395     P_old_coverage_id               IN NUMBER,
10396     P_new_coverage_name             IN VARCHAR2,
10397     x_new_coverage_id               OUT NOCOPY NUMBER) IS
10398 
10399 -----------------------------------------------
10400 CURSOR CUR_GET_LINE_ID(p_cle_id NUMBER) is
10401  SELECT id from okc_k_lines_b
10402  where cle_id=p_cle_id;
10403 
10404 -----------------------------------------------
10405  CURSOR Cur_childline(P_cle_Id IN NUMBER)
10406                      IS
10407   SELECT ID,lse_id
10408   FROM OKC_K_LINES_B
10409   WHERE  cle_Id=P_cle_Id;
10410 -----------------------------------------------
10411 CURSOR CUR_ItemDet(P_Id IN NUMBER) IS
10412   SELECT ID
10413   FROM OKC_K_ITEMS_V
10414   WHERE cle_Id=P_Id;
10415 ------------------------------------------------
10416  CURSOR Cur_childline1(P_cle_Id IN NUMBER) IS
10417   SELECT ID,lse_id
10418   FROM OKC_K_LINES_B
10419   WHERE  cle_Id=P_cle_Id ;
10420 -------------------------------------------------
10421 CURSOR Cur_PTRLDet(P_Cle_Id IN NUMBER,
10422                    P_role_Code IN varchar2) IS
10423   SELECT pr.ID
10424   FROM  OKC_K_Party_Roles_V pr,
10425             OKC_K_LINES_B lv
10426   WHERE pr.cle_ID=p_cle_Id
10427   AND   pr.Rle_Code=P_Role_Code
10428   AND   pr.cle_id = lv.id
10429   AND   pr.dnz_chr_id = lv.dnz_chr_id ;
10430 
10431   cr_ptrl_det   Cur_PTRLDet%rowtype;
10432  -------------------------------------------------
10433 CURSOR Cur_contactDet(P_cpl_id IN NUMBER) IS
10434   SELECT ID
10435   FROM OKC_CONTACTS_V
10436   WHERE cpl_id=P_cpl_Id;
10437 -------------------------------------------------
10438 CURSOR Cur_childline_br(P_cle_Id IN NUMBER) IS
10439   SELECT ID
10440   FROM OKC_K_LINES_B
10441   WHERE  cle_Id=P_cle_Id;
10442 -------------------------------------------------
10443 l_old_coverage_id           OKC_K_LINES_B.ID%TYPE;
10444 l_new_coverage_id           OKC_K_LINES_B.ID%TYPE;
10445 l_old_bp_id                 OKC_K_LINES_B.ID%TYPE;
10446 l_new_bp_id                 OKC_K_LINES_B.ID%TYPE;
10447 l_old_bp_item_id            OKC_K_ITEMS.ID%TYPE;
10448 l_new_bp_item_id            OKC_K_ITEMS.ID%TYPE;
10449 l_old_rt_id                 OKC_K_LINES_B.ID%TYPE;
10450 l_new_rt_id                 OKC_K_LINES_B.ID%TYPE;
10451 l_new_rt_item_id            OKC_K_ITEMS.ID%TYPE;
10452 l_old_rt_item_id            OKC_K_ITEMS.ID%TYPE;
10453 l_old_party_id              OKC_K_PARTY_ROLES_B.ID%TYPE;
10454 l_new_party_id              OKC_K_PARTY_ROLES_B.ID%TYPE;
10455 l_old_contact_id            OKC_CONTACTS.ID%TYPE;
10456 l_new_contact_id            OKC_CONTACTS.ID%TYPE;
10457 l_old_bt_id                 OKC_K_LINES_B.ID%TYPE;
10458 l_new_bt_id                 OKC_K_LINES_B.ID%TYPE;
10459 l_old_br_id                 OKC_K_LINES_B.ID%TYPE;
10460 l_new_br_id                 OKC_K_LINES_B.ID%TYPE;
10461 l_cov_flag                  NUMBER;
10462 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
10463 
10464 -- This function is called by copy_standard_coverage for insertion into okc_k_lines_b table
10465 FUNCTION CREATE_OKC_LINE(p_new_line_id NUMBER,
10466                          p_old_line_id NUMBER,
10467                          p_flag        NUMBER,
10468                          p_cle_id      NUMBER DEFAULT NULL) return VARCHAR2 IS
10469 
10470 x_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
10471 l_start_date DATE;
10472 l_coverage_name VARCHAR2(150);
10473 
10474 BEGIN
10475  -- If flag is 1, then call is made for creating the top coverage line.
10476  -- so, we need to default sysdate as the start date
10477  IF p_flag =1
10478  THEN
10479     l_start_date := trunc(sysdate);
10480     l_coverage_name :=P_new_coverage_name;
10481  ELSE
10482     l_start_date :=NULL;
10483     l_coverage_name := NULL;
10484  END IF;
10485 
10486  INSERT INTO okc_k_lines_b
10487    (
10488      ID,
10489      LINE_NUMBER,
10490      CHR_ID,
10491      CLE_ID,
10492      CLE_ID_RENEWED,
10493      DNZ_CHR_ID,
10494      DISPLAY_SEQUENCE,
10495      STS_CODE,
10496      TRN_CODE,
10497      LSE_ID,
10498      EXCEPTION_YN,
10499      OBJECT_VERSION_NUMBER,
10500      CREATED_BY,
10501      CREATION_DATE,
10502      LAST_UPDATED_BY,
10503      LAST_UPDATE_DATE,
10504      HIDDEN_IND,
10505      PRICE_NEGOTIATED,
10506      PRICE_LEVEL_IND,
10507      PRICE_UNIT,
10508      PRICE_UNIT_PERCENT,
10509      INVOICE_LINE_LEVEL_IND,
10510      DPAS_RATING,
10511      TEMPLATE_USED,
10512      PRICE_TYPE,
10513      CURRENCY_CODE,
10514      LAST_UPDATE_LOGIN,
10515      DATE_TERMINATED,
10516      START_DATE,
10517      END_DATE,
10518      ATTRIBUTE_CATEGORY,
10519      ATTRIBUTE1,
10520      ATTRIBUTE2,
10521      ATTRIBUTE3,
10522      ATTRIBUTE4,
10523      ATTRIBUTE5,
10524      ATTRIBUTE6,
10525      ATTRIBUTE7,
10526      ATTRIBUTE8,
10527      ATTRIBUTE9,
10528      ATTRIBUTE10,
10529      ATTRIBUTE11,
10530      ATTRIBUTE12,
10531      ATTRIBUTE13,
10532      ATTRIBUTE14,
10533      ATTRIBUTE15,
10534      SECURITY_GROUP_ID,
10535      CLE_ID_RENEWED_TO,
10536      PRICE_NEGOTIATED_RENEWED,
10537      CURRENCY_CODE_RENEWED,
10538      UPG_ORIG_SYSTEM_REF,
10539      UPG_ORIG_SYSTEM_REF_ID,
10540      DATE_RENEWED,
10541      ORIG_SYSTEM_SOURCE_CODE,
10542      ORIG_SYSTEM_ID1,
10543      ORIG_SYSTEM_REFERENCE1,
10544      PROGRAM_APPLICATION_ID,
10545      PROGRAM_ID,
10546      PROGRAM_UPDATE_DATE,
10547      REQUEST_ID,
10548      PRICE_LIST_ID,
10549      PRICE_LIST_LINE_ID,
10550      LINE_LIST_PRICE,
10551      ITEM_TO_PRICE_YN,
10552      PRICING_DATE,
10553      PRICE_BASIS_YN,
10554      CONFIG_HEADER_ID,
10555      CONFIG_REVISION_NUMBER,
10556      CONFIG_COMPLETE_YN,
10557      CONFIG_VALID_YN,
10558      CONFIG_TOP_MODEL_LINE_ID,
10559      CONFIG_ITEM_TYPE,
10560      CONFIG_ITEM_ID,
10561      SERVICE_ITEM_YN,
10562      PH_PRICING_TYPE,
10563      PH_PRICE_BREAK_BASIS,
10564      PH_MIN_QTY,
10565      PH_MIN_AMT,
10566      PH_QP_REFERENCE_ID,
10567      PH_VALUE,
10568      PH_ENFORCE_PRICE_LIST_YN,
10569      PH_ADJUSTMENT,
10570      PH_INTEGRATED_WITH_QP,
10571      CUST_ACCT_ID,
10572      BILL_TO_SITE_USE_ID,
10573      INV_RULE_ID,
10574      LINE_RENEWAL_TYPE_CODE,
10575      SHIP_TO_SITE_USE_ID,
10576      PAYMENT_TERM_ID,
10577      DATE_CANCELLED,
10578   -- CANC_REASON_CODE,
10579   -- TRXN_EXTENSION_ID,
10580      TERM_CANCEL_SOURCE,
10581      ANNUALIZED_FACTOR )
10582   SELECT
10583      p_new_line_id ID,
10584      LINE_NUMBER,
10585      CHR_ID,
10586      p_cle_id CLE_ID,
10587      CLE_ID_RENEWED,
10588      DNZ_CHR_ID,
10589      DISPLAY_SEQUENCE,
10590      STS_CODE,
10591      TRN_CODE,
10592      LSE_ID,
10593      EXCEPTION_YN,
10594      1 OBJECT_VERSION_NUMBER,
10595      FND_GLOBAL.USER_ID CREATED_BY,
10596      SYSDATE CREATION_DATE,
10597      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
10598      SYSDATE LAST_UPDATE_DATE,
10599      HIDDEN_IND,
10600      PRICE_NEGOTIATED,
10601      PRICE_LEVEL_IND,
10602      PRICE_UNIT,
10603      PRICE_UNIT_PERCENT,
10604      INVOICE_LINE_LEVEL_IND,
10605      DPAS_RATING,
10606      TEMPLATE_USED,
10607      PRICE_TYPE,
10608      CURRENCY_CODE,
10609      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
10610      DATE_TERMINATED,
10611      l_start_date START_DATE,
10612      NULL END_DATE,
10613      ATTRIBUTE_CATEGORY,
10614      ATTRIBUTE1,
10615      ATTRIBUTE2,
10616      ATTRIBUTE3,
10617      ATTRIBUTE4,
10618      ATTRIBUTE5,
10619      ATTRIBUTE6,
10620      ATTRIBUTE7,
10621      ATTRIBUTE8,
10622      ATTRIBUTE9,
10623      ATTRIBUTE10,
10624      ATTRIBUTE11,
10625      ATTRIBUTE12,
10626      ATTRIBUTE13,
10627      ATTRIBUTE14,
10628      ATTRIBUTE15,
10629      SECURITY_GROUP_ID,
10630      CLE_ID_RENEWED_TO,
10631      PRICE_NEGOTIATED_RENEWED,
10632      CURRENCY_CODE_RENEWED,
10633      UPG_ORIG_SYSTEM_REF,
10634      UPG_ORIG_SYSTEM_REF_ID,
10635      DATE_RENEWED,
10636      ORIG_SYSTEM_SOURCE_CODE,  -- CHECK IF THIS NEED TO BE POPULATED
10637      p_old_line_id ORIG_SYSTEM_ID1,
10638      ORIG_SYSTEM_REFERENCE1,
10639      PROGRAM_APPLICATION_ID,
10640      PROGRAM_ID,
10641      PROGRAM_UPDATE_DATE,
10642      REQUEST_ID,
10643      PRICE_LIST_ID,
10644      PRICE_LIST_LINE_ID,
10645      LINE_LIST_PRICE,
10646      ITEM_TO_PRICE_YN,
10647      PRICING_DATE,
10648      PRICE_BASIS_YN,
10649      CONFIG_HEADER_ID,
10650      CONFIG_REVISION_NUMBER,
10651      CONFIG_COMPLETE_YN,
10652      CONFIG_VALID_YN,
10653      CONFIG_TOP_MODEL_LINE_ID,
10654      CONFIG_ITEM_TYPE,
10655      CONFIG_ITEM_ID,
10656      SERVICE_ITEM_YN,
10657      PH_PRICING_TYPE,
10658      PH_PRICE_BREAK_BASIS,
10659      PH_MIN_QTY,
10660      PH_MIN_AMT,
10661      PH_QP_REFERENCE_ID,
10662      PH_VALUE,
10663      PH_ENFORCE_PRICE_LIST_YN,
10664      PH_ADJUSTMENT,
10665      PH_INTEGRATED_WITH_QP,
10666      CUST_ACCT_ID,
10667      BILL_TO_SITE_USE_ID,
10668      INV_RULE_ID,
10669      LINE_RENEWAL_TYPE_CODE,
10670      SHIP_TO_SITE_USE_ID,
10671      PAYMENT_TERM_ID,
10672      DATE_CANCELLED,
10673   -- CANC_REASON_CODE,
10674   -- TRXN_EXTENSION_ID,
10675      TERM_CANCEL_SOURCE,
10676      ANNUALIZED_FACTOR
10677   FROM okc_k_lines_b
10678  WHERE id = p_old_line_id;
10679 
10680 INSERT INTO okc_k_lines_tl
10681    ( ID,
10682      LANGUAGE,
10683      SOURCE_LANG,
10684      SFWT_FLAG,
10685       NAME,
10686      COMMENTS,
10687      ITEM_DESCRIPTION,
10688      BLOCK23TEXT,
10689      CREATED_BY,
10690      CREATION_DATE,
10691      LAST_UPDATED_BY,
10692      LAST_UPDATE_DATE,
10693      LAST_UPDATE_LOGIN,
10694      SECURITY_GROUP_ID,
10695      OKE_BOE_DESCRIPTION,
10696      COGNOMEN )
10697 SELECT
10698      p_new_line_id ID,
10699      LANGUAGE,
10700      SOURCE_LANG,
10701      SFWT_FLAG,
10702      l_coverage_name NAME,
10703      COMMENTS,
10704      ITEM_DESCRIPTION,
10705      BLOCK23TEXT,
10706      FND_GLOBAL.USER_ID CREATED_BY,
10707      SYSDATE CREATION_DATE,
10708      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
10709      SYSDATE LAST_UPDATE_DATE,
10710      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
10711      SECURITY_GROUP_ID,
10712      OKE_BOE_DESCRIPTION,
10713      COGNOMEN
10714   FROM okc_k_lines_tl
10715   where id=p_old_line_id;
10716 
10717 
10718 RETURN x_return_status;
10719 
10720 EXCEPTION
10721 when others then
10722 OKC_API.set_message(G_APP_NAME,
10723                           G_UNEXPECTED_ERROR,
10724                           G_SQLCODE_TOKEN,
10725                           SQLCODE,
10726                           G_SQLERRM_TOKEN,
10727                           SQLERRM);
10728 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
10729 return x_return_status;
10730 
10731 END CREATE_OKC_LINE;
10732 
10733 
10734 -- This function is called by copy_standard_coverage for insertion into okc_k_items table
10735 FUNCTION CREATE_OKC_ITEM(p_new_item_id NUMBER,
10736                          p_old_item_id NUMBER,
10737                          p_cle_id      NUMBER) return VARCHAR2 IS
10738 
10739 x_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
10740 
10741 BEGIN
10742 
10743  INSERT INTO okc_k_items
10744    ( ID,
10745      CLE_ID,
10746      CHR_ID,
10747      CLE_ID_FOR,
10748      DNZ_CHR_ID,
10749      OBJECT1_ID1,
10750      OBJECT1_ID2,
10751      JTOT_OBJECT1_CODE,
10752      UOM_CODE,
10753      EXCEPTION_YN,
10754      NUMBER_OF_ITEMS,
10755      PRICED_ITEM_YN,
10756      OBJECT_VERSION_NUMBER,
10757      CREATED_BY,
10758      CREATION_DATE,
10759      LAST_UPDATED_BY,
10760      LAST_UPDATE_DATE,
10761      LAST_UPDATE_LOGIN,
10762      SECURITY_GROUP_ID,
10763      UPG_ORIG_SYSTEM_REF,
10764      UPG_ORIG_SYSTEM_REF_ID,
10765      PROGRAM_APPLICATION_ID,
10766      PROGRAM_ID,
10767      PROGRAM_UPDATE_DATE,
10768      REQUEST_ID )
10769   SELECT
10770      p_new_item_id ID,
10771      p_cle_id CLE_ID,
10772      CHR_ID,
10773      CLE_ID_FOR,
10774      DNZ_CHR_ID,
10775      OBJECT1_ID1,
10776      OBJECT1_ID2,
10777      JTOT_OBJECT1_CODE,
10778      UOM_CODE,
10779      EXCEPTION_YN,
10780      NUMBER_OF_ITEMS,
10781      PRICED_ITEM_YN,
10782      1 OBJECT_VERSION_NUMBER,
10783      FND_GLOBAL.USER_ID CREATED_BY,
10784      SYSDATE CREATION_DATE,
10785      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
10786      SYSDATE LAST_UPDATE_DATE,
10787      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
10788      SECURITY_GROUP_ID,
10789      UPG_ORIG_SYSTEM_REF,
10790      p_old_item_id UPG_ORIG_SYSTEM_REF_ID,
10791      PROGRAM_APPLICATION_ID,
10792      PROGRAM_ID,
10793      PROGRAM_UPDATE_DATE,
10794      REQUEST_ID
10795   FROM OKC_K_ITEMS
10796   WHERE ID= p_old_item_id;
10797 
10798 RETURN x_return_status;
10799 
10800 EXCEPTION
10801 when others then
10802 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
10803 OKC_API.set_message(G_APP_NAME,
10804                           G_UNEXPECTED_ERROR,
10805                           G_SQLCODE_TOKEN,
10806                           SQLCODE,
10807                           G_SQLERRM_TOKEN,
10808                           SQLERRM);
10809 
10810 return x_return_status;
10811 
10812 END CREATE_OKC_ITEM;
10813 
10814 -- This function is called by copy_standard_coverage for insertion into okc_k_party_roles_b table
10815 FUNCTION CREATE_OKC_PARTY(p_new_party_id NUMBER,
10816                           p_old_party_id NUMBER,
10817                           p_cle_id      NUMBER) return VARCHAR2 IS
10818 
10819 x_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
10820 
10821 BEGIN
10822 
10823  INSERT INTO okc_k_party_roles_b
10824    ( ID,
10825      CHR_ID,
10826      CLE_ID,
10827      DNZ_CHR_ID,
10828      RLE_CODE,
10829      OBJECT1_ID1,
10830      OBJECT1_ID2,
10831      JTOT_OBJECT1_CODE,
10832      OBJECT_VERSION_NUMBER,
10833      CREATED_BY,
10834      CREATION_DATE,
10835      LAST_UPDATED_BY,
10836      LAST_UPDATE_DATE,
10837      CODE,
10838      FACILITY,
10839      MINORITY_GROUP_LOOKUP_CODE,
10840      SMALL_BUSINESS_FLAG,
10841      WOMEN_OWNED_FLAG,
10842      LAST_UPDATE_LOGIN,
10843      ATTRIBUTE_CATEGORY,
10844      ATTRIBUTE1,
10845      ATTRIBUTE2,
10846      ATTRIBUTE3,
10847      ATTRIBUTE4,
10848      ATTRIBUTE5,
10849      ATTRIBUTE6,
10850      ATTRIBUTE7,
10851      ATTRIBUTE8,
10852      ATTRIBUTE9,
10853      ATTRIBUTE10,
10854      ATTRIBUTE11,
10855      ATTRIBUTE12,
10856      ATTRIBUTE13,
10857      ATTRIBUTE14,
10858      ATTRIBUTE15,
10859      SECURITY_GROUP_ID,
10860      CPL_ID,
10861      PRIMARY_YN,
10862      BILL_TO_SITE_USE_ID,
10863      CUST_ACCT_ID,
10864      ORIG_SYSTEM_ID1,
10865      ORIG_SYSTEM_REFERENCE1,
10866      ORIG_SYSTEM_SOURCE_CODE)
10867   SELECT
10868      p_new_party_id ID,
10869      CHR_ID,
10870      p_cle_id CLE_ID,
10871      DNZ_CHR_ID,
10872      RLE_CODE,
10873      OBJECT1_ID1,
10874      OBJECT1_ID2,
10875      JTOT_OBJECT1_CODE,
10876      OBJECT_VERSION_NUMBER,
10877      FND_GLOBAL.USER_ID CREATED_BY,
10878      SYSDATE CREATION_DATE,
10879      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
10880      SYSDATE LAST_UPDATE_DATE,
10881      CODE,
10882      FACILITY,
10883      MINORITY_GROUP_LOOKUP_CODE,
10884      SMALL_BUSINESS_FLAG,
10885      WOMEN_OWNED_FLAG,
10886      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
10887      ATTRIBUTE_CATEGORY,
10888      ATTRIBUTE1,
10889      ATTRIBUTE2,
10890      ATTRIBUTE3,
10891      ATTRIBUTE4,
10892      ATTRIBUTE5,
10893      ATTRIBUTE6,
10894      ATTRIBUTE7,
10895      ATTRIBUTE8,
10896      ATTRIBUTE9,
10897      ATTRIBUTE10,
10898      ATTRIBUTE11,
10899      ATTRIBUTE12,
10900      ATTRIBUTE13,
10901      ATTRIBUTE14,
10902      ATTRIBUTE15,
10903      SECURITY_GROUP_ID,
10904      CPL_ID,
10905      PRIMARY_YN,
10906      BILL_TO_SITE_USE_ID,
10907      CUST_ACCT_ID,
10908      p_old_party_id ORIG_SYSTEM_ID1,
10909      ORIG_SYSTEM_REFERENCE1,
10910      ORIG_SYSTEM_SOURCE_CODE
10911   FROM OKC_K_PARTY_ROLES_B
10912   WHERE ID= p_old_party_id;
10913 
10914  -- insert into tl table
10915   INSERT INTO okc_k_party_roles_tl
10916    ( ID,
10917      LANGUAGE,
10918      SOURCE_LANG,
10919      SFWT_FLAG,
10920      CREATED_BY,
10921      CREATION_DATE,
10922      LAST_UPDATED_BY,
10923      LAST_UPDATE_DATE,
10924      COGNOMEN,
10925      ALIAS,
10926      LAST_UPDATE_LOGIN,
10927      SECURITY_GROUP_ID
10928       )
10929 SELECT
10930      p_new_party_id ID,
10931      LANGUAGE,
10932      SOURCE_LANG,
10933      SFWT_FLAG,
10934      FND_GLOBAL.USER_ID CREATED_BY,
10935      SYSDATE CREATION_DATE,
10936      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
10937      SYSDATE LAST_UPDATE_DATE,
10938      COGNOMEN,
10939      ALIAS,
10940      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
10941      SECURITY_GROUP_ID
10942   FROM okc_k_party_roles_tl
10943   where id=p_old_party_id;
10944 
10945 RETURN x_return_status;
10946 
10947 EXCEPTION
10948 when others then
10949 OKC_API.set_message(G_APP_NAME,
10950                           G_UNEXPECTED_ERROR,
10951                           G_SQLCODE_TOKEN,
10952                           SQLCODE,
10953                           G_SQLERRM_TOKEN,
10954                           SQLERRM);
10955 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
10956 return x_return_status;
10957 END CREATE_OKC_PARTY;
10958 
10959 -- This function is called by copy_standard_coverage for insertion into okc_contacts table
10960 FUNCTION CREATE_OKC_CONTACT(p_new_cpl_id NUMBER,
10961                             p_old_cpl_id NUMBER) return VARCHAR2 IS
10962 
10963 
10964 x_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
10965 
10966 BEGIN
10967 
10968 /*cgopinee bugfix for 6882512-Addded dnz_ste_code*/
10969 
10970  INSERT INTO okc_contacts
10971    ( ID,
10972      CPL_ID,
10973      CRO_CODE,
10974      DNZ_CHR_ID,
10975      OBJECT1_ID1,
10976      OBJECT1_ID2,
10977      JTOT_OBJECT1_CODE,
10978      OBJECT_VERSION_NUMBER,
10979      CREATED_BY,
10980      CREATION_DATE,
10981      LAST_UPDATED_BY,
10982      LAST_UPDATE_DATE,
10983      CONTACT_SEQUENCE,
10984      LAST_UPDATE_LOGIN,
10985      ATTRIBUTE_CATEGORY,
10986      ATTRIBUTE1,
10987      ATTRIBUTE2,
10988      ATTRIBUTE3,
10989      ATTRIBUTE4,
10990      ATTRIBUTE5,
10991      ATTRIBUTE6,
10992      ATTRIBUTE7,
10993      ATTRIBUTE8,
10994      ATTRIBUTE9,
10995      ATTRIBUTE10,
10996      ATTRIBUTE11,
10997      ATTRIBUTE12,
10998      ATTRIBUTE13,
10999      ATTRIBUTE14,
11000      ATTRIBUTE15,
11001      SECURITY_GROUP_ID,
11002      START_DATE,
11003      END_DATE,
11004      PRIMARY_YN,
11005      RESOURCE_CLASS,
11006      SALES_GROUP_ID,
11007      DNZ_STE_CODE)
11008      --ORIG_SYSTEM_ID)
11009   SELECT
11010      okc_p_util.raw_to_number(sys_guid()),
11011      p_new_cpl_id CPL_ID, -- new party id (CPL_ID)
11012      CRO_CODE,
11013      DNZ_CHR_ID,
11014      OBJECT1_ID1,
11015      OBJECT1_ID2,
11016      JTOT_OBJECT1_CODE,
11017      OBJECT_VERSION_NUMBER,
11018      FND_GLOBAL.USER_ID CREATED_BY,
11019      SYSDATE CREATION_DATE,
11020      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
11021      SYSDATE LAST_UPDATE_DATE,
11022      CONTACT_SEQUENCE,
11023      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
11024      ATTRIBUTE_CATEGORY,
11025      ATTRIBUTE1,
11026      ATTRIBUTE2,
11027      ATTRIBUTE3,
11028      ATTRIBUTE4,
11029      ATTRIBUTE5,
11030      ATTRIBUTE6,
11031      ATTRIBUTE7,
11032      ATTRIBUTE8,
11033      ATTRIBUTE9,
11034      ATTRIBUTE10,
11035      ATTRIBUTE11,
11036      ATTRIBUTE12,
11037      ATTRIBUTE13,
11038      ATTRIBUTE14,
11039      ATTRIBUTE15,
11040      SECURITY_GROUP_ID,
11041      START_DATE,
11042      END_DATE,
11043      PRIMARY_YN,
11044      RESOURCE_CLASS,
11045      SALES_GROUP_ID,
11046      DNZ_STE_CODE
11047      --ID --ORIG_SYSTEM_ID
11048  FROM OKC_CONTACTS
11049  WHERE cpl_id = p_old_cpl_id;
11050 
11051 
11052 RETURN x_return_status;
11053 
11054 EXCEPTION
11055 WHEN others THEN
11056 OKC_API.set_message(G_APP_NAME,
11057                           G_UNEXPECTED_ERROR,
11058                           G_SQLCODE_TOKEN,
11059                           SQLCODE,
11060                           G_SQLERRM_TOKEN,
11061                           SQLERRM);
11062 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
11063 return x_return_status;
11064 
11065 END CREATE_OKC_CONTACT;
11066 
11067 
11068 BEGIN
11069 
11070 SAVEPOINT copy_standard_coverage;
11071  l_old_coverage_id := P_old_coverage_id;
11072 
11073  IF (G_DEBUG_ENABLED = 'Y') THEN
11074       okc_debug.Set_Indentation('Copy_Standard_Coverage');
11075       okc_debug.log('BEGIN COPY_STANDARD_COVERAGE'||l_return_status, 2);
11076  END IF;
11077 
11078  -- Create Coverage line
11079  l_new_coverage_id :=okc_p_util.raw_to_number(sys_guid());
11080  l_cov_flag :=1;
11081  l_return_status := CREATE_OKC_LINE(l_new_coverage_id,l_old_coverage_id,l_cov_flag);
11082   IF (G_DEBUG_ENABLED = 'Y') THEN
11083       okc_debug.log('AFTER CREATE_OKC_LINE FOR COVERAGE'||l_return_status, 2);
11084  END IF;
11085 
11086  IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11087  THEN
11088     RAISE G_EXCEPTION_HALT_VALIDATION;
11089  END IF;
11090 
11091  -- Create business process line
11092 FOR Childline_Rec1 IN Cur_Childline(l_old_coverage_id)    --Loop1
11093 LOOP
11094     l_old_bp_id := ChildLine_rec1.Id;
11095     l_new_bp_id := okc_p_util.raw_to_number(sys_guid());
11096     l_cov_flag := 2;
11097     l_return_status := CREATE_OKC_LINE(l_new_bp_id,l_old_bp_id,l_cov_flag,l_new_coverage_id);
11098     IF (G_DEBUG_ENABLED = 'Y') THEN
11099       okc_debug.log('AFTER CREATE_OKC_LINE FOR BP'||l_return_status, 2);
11100     END IF;
11101 
11102     IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11103     THEN
11104        RAISE G_EXCEPTION_HALT_VALIDATION;
11105     END IF;
11106 
11107      -- Create  a Contract ITEM FOR BUSINESS PROCESS
11108     open CUR_ItemDet(l_old_bp_id);
11109     fetch CUR_ItemDet into l_old_bp_item_id;
11110     close CUR_ItemDet;
11111     l_new_bp_item_id :=okc_p_util.raw_to_number(sys_guid());
11112     l_return_status := CREATE_OKC_ITEM(l_new_bp_item_id,l_old_bp_item_id,l_new_bp_id);
11113     IF (G_DEBUG_ENABLED = 'Y') THEN
11114       okc_debug.log('AFTER CREATE_OKC_ITEM'||l_return_status, 2);
11115     END IF;
11116 
11117     IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11118     THEN
11119        RAISE G_EXCEPTION_HALT_VALIDATION;
11120     END IF;
11121     -- Done Business Process
11122 
11123      -- Create Reaction times line  Billtypes
11124     FOR tmp_crt_rec IN Cur_ChildLine1(l_old_bp_id)
11125     LOOP
11126        l_old_rt_id := tmp_crt_rec.ID;
11127        l_new_rt_id := okc_p_util.raw_to_number(sys_guid());
11128        l_cov_flag := 3;
11129        l_return_status := CREATE_OKC_LINE(l_new_rt_id,l_old_rt_id,l_cov_flag,l_new_bp_id);
11130        IF (G_DEBUG_ENABLED = 'Y') THEN
11131        okc_debug.log('AFTER CREATE_OKC_LINE FOR RT'||l_return_status, 2);
11132        END IF;
11133 
11134        IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11135        THEN
11136           RAISE G_EXCEPTION_HALT_VALIDATION;
11137        END IF;
11138        IF tmp_crt_rec.lse_id in (5,59) -- For Billtypes
11139        THEN
11140          --Create entry in okc_k_items
11141          open CUR_ItemDet(l_old_rt_id);
11142          fetch CUR_ItemDet into l_old_rt_item_id;
11143          close CUR_ItemDet;
11144          l_new_rt_item_id :=okc_p_util.raw_to_number(sys_guid());
11145          l_return_status := CREATE_OKC_ITEM(l_new_rt_item_id,l_old_rt_item_id,l_new_rt_id);
11146 	 IF (G_DEBUG_ENABLED = 'Y') THEN
11147          okc_debug.log('AFTER CREATE_OKC_ITEM FOR RT'||l_return_status, 2);
11148          END IF;
11149 
11150          IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11151          THEN
11152             RAISE G_EXCEPTION_HALT_VALIDATION;
11153          END IF;
11154          --Create bill rate lines
11155          FOR tmp_br_Rec IN Cur_ChildLine_br(l_old_rt_id)
11156          LOOP
11157             l_old_br_id := tmp_br_Rec.ID;
11158             IF NOT l_old_br_id IS NULL
11159             THEN
11160                l_new_br_id := okc_p_util.raw_to_number(sys_guid());
11161                l_cov_flag := 4;
11162                l_return_status := CREATE_OKC_LINE(l_new_br_id,l_old_br_id,l_cov_flag,l_new_rt_id);
11163 	       IF (G_DEBUG_ENABLED = 'Y') THEN
11164                    okc_debug.log('AFTER CREATE_OKC_LINE FOR BR'||l_return_status, 2);
11165                END IF;
11166 
11167                IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11168                THEN
11169                   RAISE G_EXCEPTION_HALT_VALIDATION;
11170                END IF;
11171              END IF;
11172          END LOOP;   --End loop for billrates
11173        END IF;
11174     END LOOP;
11175         -- Done Reaction times  billtypes
11176 
11177     -- Preferred Engineers
11178     OPEN Cur_PTRLDet(l_old_bp_id,'VENDOR');
11179     FETCH Cur_PTRLDet INTO cr_ptrl_det;
11180     IF Cur_PTRLDet % FOUND
11181     THEN
11182         l_old_party_id := cr_ptrl_det.id;
11183         l_new_party_id :=okc_p_util.raw_to_number(sys_guid());
11184         l_return_status := CREATE_OKC_PARTY(l_new_party_id,l_old_party_id,l_new_bp_id);
11185         IF (G_DEBUG_ENABLED = 'Y') THEN
11186             okc_debug.log('AFTER CREATE_OKC_PARTY'||l_return_status, 2);
11187         END IF;
11188 
11189         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11190         THEN
11191            RAISE G_EXCEPTION_HALT_VALIDATION;
11192         END IF;
11193            -- okc_contacts
11194         l_return_status := CREATE_OKC_CONTACT(l_new_party_id,l_old_party_id);
11195         IF (G_DEBUG_ENABLED = 'Y') THEN
11196             okc_debug.log('AFTER CREATE_OKC_CONTACT'||l_return_status, 2);
11197         END IF;
11198 
11199         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11200         THEN
11201            RAISE G_EXCEPTION_HALT_VALIDATION;
11202         END IF;
11203     END IF;
11204     CLOSE Cur_PTRLDet;
11205 
11206         -- Done Preferred Engineers
11207 
11208 
11209 END LOOP;  -- End loop for bp
11210 -- Create oks components
11211           Copy_Coverage
11212          (p_api_version       => 1.0,
11213           p_init_msg_list     => OKC_API.G_FALSE,
11214           x_return_status     => l_return_status,
11215           x_msg_count         => x_msg_count,
11216           x_msg_data          => x_msg_data,
11217           p_contract_line_id  => l_new_coverage_id);
11218 
11219  IF (G_DEBUG_ENABLED = 'Y') THEN
11220      okc_debug.log('AFTER Copy_Coverage'||l_return_status, 2);
11221  END IF;
11222 
11223 
11224  IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
11225              Raise G_EXCEPTION_HALT_VALIDATION;
11226  End If;
11227 
11228  x_new_coverage_id := l_new_coverage_id;
11229  x_return_status   := l_return_status;
11230 
11231  EXCEPTION
11232   WHEN G_EXCEPTION_HALT_VALIDATION THEN
11233         x_return_status := l_return_status ;
11234         ROLLBACK  to copy_standard_coverage;
11235   WHEN OTHERS THEN
11236        OKC_API.set_message(G_APP_NAME,
11237                           G_UNEXPECTED_ERROR,
11238                           G_SQLCODE_TOKEN,
11239                           SQLCODE,
11240                           G_SQLERRM_TOKEN,
11241                           SQLERRM);
11242        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
11243        ROLLBACK  to copy_standard_coverage;
11244 
11245  END COPY_STANDARD_COVERAGE;
11246 END OKS_COVERAGES_PVT;
11247