DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_COVERAGES_PVT

Source


1 PACKAGE BODY OKS_COVERAGES_PVT AS
2 /* $Header: OKSRMCVB.pls 120.18.12000000.2 2007/03/26 21:21:50 hmnair 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         END IF; -- End  for oks_line_exist check
7862 
7863                 FOR Get_Old_Act_Time_Types_Rec IN   Get_Old_Act_Time_Types(l_RT_ID,l_rt_dnz_chr_id) LOOP --3
7864                 l_act_pvt_tbl_in.DELETE;
7865                 k := k + 1;
7866                     l_act_pvt_ID        :=  Get_Old_Act_Time_Types_Rec.ID;
7867 
7868                     l_act_pvt_tbl_in(k).cle_id                  := l_line_id_four;
7869                     l_act_pvt_tbl_in(k).DNZ_CHR_ID              := l_new_dnz_chr_id ; --Get_Old_Act_Time_Types_Rec.Dnz_Chr_ID;
7870                     l_act_pvt_tbl_in(k).ACTION_TYPE_CODE        :=Get_Old_Act_Time_Types_Rec.ACTION_TYPE_CODE;
7871                     l_act_pvt_tbl_in(k).OBJECT_VERSION_NUMBER   :=  Get_Old_Act_Time_Types_Rec.OBJECT_VERSION_NUMBER;
7872 
7873                     oks_act_pvt.insert_row(
7874                                             p_api_version                   =>      l_api_version,
7875                                             p_init_msg_list                 =>      l_init_msg_list,
7876                                             x_return_status                 =>      l_return_status,
7877                                             x_msg_count                     =>      l_msg_count,
7878                                             x_msg_data                      =>      l_msg_data,
7879                                             p_oks_action_time_types_v_tbl   =>      l_act_pvt_tbl_in,
7880                                             x_oks_action_time_types_v_tbl   =>      l_act_pvt_tbl_out);
7881 
7882                 IF (G_DEBUG_ENABLED = 'Y') THEN
7883                          okc_debug.log('After oks_act_pvt insert_row'||l_return_status, 2);
7884                 END IF;
7885 
7886                     IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7887                         RAISE G_EXCEPTION_HALT_VALIDATION;
7888                     ELSE
7889                         FOR I IN  l_act_pvt_tbl_out.FIRST .. l_act_pvt_tbl_out.LAST LOOP
7890                             l_act_pvt_new_id        :=  l_act_pvt_tbl_out(I).ID;
7891                             l_act_pvt_dnz_chr_id        :=  l_act_pvt_tbl_out(I).dnz_chr_ID;
7892                             l_Act_pvt_cle_id            :=  l_act_pvt_tbl_out(I).cle_ID;
7893                         END LOOP;
7894                     END IF;
7895 
7896 
7897                      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
7898                      l_acm_pvt_tbl_in.DELETE;
7899                         F := F + 1;
7900                         l_acm_pvt_tbl_in(f).COV_ACTION_TYPE_ID := l_act_pvt_new_id;
7901                         l_acm_pvt_tbl_in(f).CLE_ID      :=    l_Act_pvt_cle_id;
7902                         l_acm_pvt_tbl_in(f).DNZ_CHR_ID  :=    l_act_pvt_dnz_chr_id;
7903                         l_acm_pvt_tbl_in(f).UOM_CODE    :=      Get_Old_Act_Times_Rec.UOM_CODE;
7904                         l_acm_pvt_tbl_in(f).SUN_DURATION:=  Get_Old_Act_Times_Rec.SUN_DURATION;
7905                         l_acm_pvt_tbl_in(f).MON_DURATION:=  Get_Old_Act_Times_Rec.MON_DURATION;
7906                         l_acm_pvt_tbl_in(f).TUE_DURATION:=  Get_Old_Act_Times_Rec.TUE_DURATION;
7907                         l_acm_pvt_tbl_in(f).WED_DURATION:=  Get_Old_Act_Times_Rec.WED_DURATION;
7908                         l_acm_pvt_tbl_in(f).THU_DURATION:=  Get_Old_Act_Times_Rec.THU_DURATION;
7909                         l_acm_pvt_tbl_in(f).FRI_DURATION:=  Get_Old_Act_Times_Rec.FRI_DURATION;
7910                         l_acm_pvt_tbl_in(f).SAT_DURATION:=  Get_Old_Act_Times_Rec.SAT_DURATION;
7911                         l_acm_pvt_tbl_in(f).SECURITY_GROUP_ID:= Get_Old_Act_Times_Rec.SECURITY_GROUP_ID;
7912                         l_acm_pvt_tbl_in(f).OBJECT_VERSION_NUMBER := Get_Old_Act_Times_Rec.OBJECT_VERSION_NUMBER;
7913 
7914 
7915                              OKS_ACM_PVT.insert_row(
7916                                             p_api_version                   =>      l_api_version,
7917                                             p_init_msg_list                 =>      l_init_msg_list,
7918                                             x_return_status                 =>      l_return_status,
7919                                             x_msg_count                     =>      l_msg_count,
7920                                             x_msg_data                      =>      l_msg_data,
7921                                             p_oks_action_times_v_tbl        =>      l_acm_pvt_tbl_in,
7922                                             x_oks_action_times_v_tbl        =>      l_acm_pvt_tbl_out);
7923 
7924                 IF (G_DEBUG_ENABLED = 'Y') THEN
7925                          okc_debug.log('After OKS_ACM_PVT insert_row'||l_return_status, 2);
7926                 END IF;
7927 
7928                         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7929                             RAISE G_EXCEPTION_HALT_VALIDATION;
7930                         ELSE
7931                             l_acm_pvt_tbl_in.DELETE;
7932                             l_act_pvt_tbl_in.DELETE;
7933                             l_klnv_tbl_in.DELETE;
7934                         END IF;
7935 
7936 
7937                      END LOOP; --4
7938                      x_return_status         := l_return_status;
7939                 END LOOP;  --3
7940            END LOOP;  -- OLD RT
7941 
7942 
7943 -- RT Ends HERE
7944 
7945 /******************************************************************************/
7946        -- BT STARTS HERE
7947 
7948     INIT_OKS_K_LINE(l_klnv_tbl_in) ;
7949 
7950      i := 0;
7951 
7952 --FOR old_bt_rec IN CUR_GET_OLD_BT(l_old_cov_line_id)     LOOP --BT LOOP
7953    FOR old_bt_rec IN CUR_GET_OLD_BT(l_old_bp_line_id)
7954    LOOP --l_old_bp_line_id)  LOOP
7955                 l_klnv_tbl_in.DELETE;
7956        i:= i + 1 ;
7957 
7958 
7959         l_old_bill_type_ID := old_bt_rec.bt_line_id;
7960         l_old_line_number   := old_bt_rec.line_number;
7961 
7962        l_klnv_tbl_in(i).DISCOUNT_AMOUNT    := old_bt_rec.discount_amount;
7963        l_klnv_tbl_in(i).DISCOUNT_PERCENT   := old_bt_rec.discount_percent;
7964        l_klnv_tbl_in(i).object_version_number   := old_bt_rec.object_version_number;
7965 
7966             FOR new_bt_rec IN CUR_GET_NEW_BT(l_new_Bp_line_Id,old_bt_rec.bt_line_id)    LOOP
7967                 l_klnv_tbl_in(i).cle_id       := new_bt_rec.bt_line_id;
7968                 l_klnv_tbl_in(i).dnz_chr_id   := new_bt_rec.dnz_chr_id;
7969                 l_klnv_tbl_in(i).object_version_number   := new_bt_rec.object_version_number;
7970 
7971             END LOOP ;
7972             -- Added by Jvorugan if oks_k_lines_b record already exists,then not created
7973        l_return_status := CHECK_OKSLINE_EXIST(p_new_cle_id =>l_klnv_tbl_in(i).cle_id,
7974                                               x_oks_exist  =>l_oks_exist);
7975       IF (G_DEBUG_ENABLED = 'Y') THEN
7976               okc_debug.log('AFTER  CHECK_OKSLINE_EXIST4'||l_return_status, 2);
7977       END IF;
7978 
7979        IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7980             RAISE G_EXCEPTION_HALT_VALIDATION;
7981        END IF;
7982        x_return_status         := l_return_status;
7983        IF l_oks_exist = 'N'
7984        THEN
7985 
7986 
7987                OKS_CONTRACT_LINE_PUB.CREATE_LINE(p_api_version    => l_api_version,
7988                                                  p_init_msg_list  => l_init_msg_list,
7989                                                  x_return_status  => l_return_status,
7990                                                  x_msg_count      => l_msg_count,
7991                                                  x_msg_data       => l_msg_data,
7992                                                  p_klnv_tbl       => l_klnv_tbl_in,
7993                                                  x_klnv_tbl       => l_klnv_tbl_out,
7994                                                  p_validate_yn    => l_validate_yn);
7995 
7996         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
7997             RAISE G_EXCEPTION_HALT_VALIDATION;
7998         ELSE
7999         l_klnv_tbl_in.DELETE;
8000             FOR I IN l_klnv_tbl_out.FIRST .. l_klnv_tbl_out.LAST LOOP
8001                 l_bill_Type_ID :=  l_klnv_tbl_out(I).CLE_ID;
8002                 l_bill_Type_Dnz_Chr_ID := l_klnv_tbl_out(I).DNZ_CHR_ID;
8003             END LOOP;
8004         END IF;
8005        END IF; -- End  for oks_line_exist check
8006 
8007 /****************************************************************************/
8008 l_klnv_tbl_in.DELETE;
8009 
8010 FOR Bill_rate_REC IN Bill_rate_CUR (l_bill_Type_ID,l_bill_Type_Dnz_Chr_ID) LOOP
8011     l_klnv_tbl_in(I).CLE_ID := Bill_rate_REC.ID;
8012     l_klnv_tbl_in(I).DNZ_CHR_ID := Bill_rate_REC.DNZ_CHR_ID;
8013     -- Added by Jvorugan if oks_k_lines_b record already exists,then not created
8014     l_return_status := CHECK_OKSLINE_EXIST(p_new_cle_id =>l_klnv_tbl_in(I).CLE_ID,
8015                                            x_oks_exist  =>l_oks_exist);
8016     IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8017         RAISE G_EXCEPTION_HALT_VALIDATION;
8018     END IF;
8019     x_return_status         := l_return_status;
8020     IF l_oks_exist = 'N'
8021     THEN
8022 
8023                OKS_CONTRACT_LINE_PUB.CREATE_LINE(p_api_version    => l_api_version,
8024                                                  p_init_msg_list  => l_init_msg_list,
8025                                                  x_return_status  => l_return_status,
8026                                                  x_msg_count      => l_msg_count,
8027                                                  x_msg_data       => l_msg_data,
8028                                                  p_klnv_tbl       => l_klnv_tbl_in,
8029                                                  x_klnv_tbl       => l_klnv_tbl_out,
8030                                                  p_validate_yn    => l_validate_yn);
8031 
8032 
8033 
8034         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8035             RAISE G_EXCEPTION_HALT_VALIDATION;
8036         END IF;
8037     END IF; -- End  for oks_line_exist check
8038  END LOOP;
8039 
8040 /*****************************************************************************/
8041 
8042   INIT_BILL_RATE_LINE(l_billrate_sch_tbl_in) ;
8043 
8044      i := 0;
8045         l_billrate_sch_tbl_in.DELETE;
8046 
8047       FOR old_brs_rec IN CUR_GET_OLD_BILL_RATE(l_old_bill_type_ID)      LOOP
8048          i:= i + 1 ;
8049 
8050         l_billrate_sch_tbl_in(i).start_hour                 := old_brs_rec.start_hour;
8051         l_billrate_sch_tbl_in(i).start_minute               := old_brs_rec.start_minute;
8052         l_billrate_sch_tbl_in(i).end_hour                   := old_brs_rec.end_hour;
8053         l_billrate_sch_tbl_in(i).end_minute                 := old_brs_rec.end_minute;
8054         l_billrate_sch_tbl_in(i).monday_flag                := old_brs_rec.monday_flag;
8055         l_billrate_sch_tbl_in(i).tuesday_flag               := old_brs_rec.tuesday_flag;
8056         l_billrate_sch_tbl_in(i).wednesday_flag             := old_brs_rec.wednesday_flag;
8057         l_billrate_sch_tbl_in(i).thursday_flag              := old_brs_rec.thursday_flag;
8058         l_billrate_sch_tbl_in(i).friday_flag                := old_brs_rec.friday_flag;
8059         l_billrate_sch_tbl_in(i).saturday_flag              := old_brs_rec.saturday_flag;
8060         l_billrate_sch_tbl_in(i).sunday_flag                := old_brs_rec.sunday_flag;
8061         l_billrate_sch_tbl_in(i).object1_id1                := old_brs_rec.object1_id1;
8062         l_billrate_sch_tbl_in(i).object1_id2                := old_brs_rec.object1_id2;
8063         l_billrate_sch_tbl_in(i).jtot_object1_code          := old_brs_rec.jtot_object1_code;
8064         l_billrate_sch_tbl_in(i).bill_rate_code             := old_brs_rec.bill_rate_code;
8065         l_billrate_sch_tbl_in(i).uom                        := old_brs_rec.uom;
8066         l_billrate_sch_tbl_in(i).flat_rate                  := old_brs_rec.flat_rate;
8067         l_billrate_sch_tbl_in(i).holiday_yn                 := old_brs_rec.holiday_yn ;
8068         l_billrate_sch_tbl_in(i).percent_over_list_price    := old_brs_rec.percent_over_list_price;
8069         l_billrate_sch_tbl_in(i).object_version_number      := old_brs_rec.object_version_number;
8070 
8071 
8072           FOR new_brs_rec IN CUR_GET_NEW_BILL_RATE(l_bill_type_ID ,old_brs_rec.cle_id )   LOOP
8073                 l_billrate_sch_tbl_in(i).cle_id         := new_brs_rec.BRS_LINE_ID;
8074                 l_billrate_sch_tbl_in(i).bt_cle_id      := new_brs_rec.BRS_CLE_LINE_ID;
8075                 l_billrate_sch_tbl_in(i).dnz_chr_id     := new_brs_rec.dnz_chr_id;
8076           END LOOP ;
8077       END LOOP ;
8078 
8079            IF l_billrate_sch_tbl_in.count > 0 then
8080 
8081                         oks_brs_pvt.insert_row(p_api_version                  => l_api_version,
8082                                                p_init_msg_list                => l_init_msg_list,
8083                                                x_return_status                => l_return_status,
8084                                                x_msg_count                    => l_msg_count,
8085                                                x_msg_data                     => l_msg_data,
8086                                                p_oks_billrate_schedules_v_tbl => l_billrate_sch_tbl_in,
8087                                                x_oks_billrate_schedules_v_tbl => l_billrate_sch_tbl_out);
8088 
8089 
8090                 IF (G_DEBUG_ENABLED = 'Y') THEN
8091                          okc_debug.log('After oks_brs_pvt insert_row'||l_return_status, 2);
8092                 END IF;
8093 
8094          IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8095                RAISE G_EXCEPTION_HALT_VALIDATION;
8096          END IF;
8097 
8098             x_return_status := l_return_status;
8099        END IF ;
8100 
8101       -- BR ENDs HERE
8102 
8103       x_return_status         := l_return_status;
8104 
8105 /****************************************************************************/
8106 END LOOP ;  --BT LOOP
8107 /****************************************************************/
8108 
8109        x_return_status   := l_return_status;
8110 
8111 
8112  END LOOP;   -- OLD BP --BP ENDS
8113 
8114 END IF; ---1
8115 
8116 COPY_NOTES (p_api_version           =>  l_api_version,
8117             p_init_msg_list         =>  l_init_msg_list,
8118             p_line_id               =>  l_new_contract_line_id,
8119             x_return_status         =>  l_return_status,
8120             x_msg_count             =>  l_msg_count,
8121             x_msg_data              =>  l_msg_data);
8122       IF (G_DEBUG_ENABLED = 'Y') THEN
8123               okc_debug.log('AFTER  COPY_NOTES'||l_return_status, 2);
8124       END IF;
8125 
8126 
8127          IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8128                RAISE G_EXCEPTION_HALT_VALIDATION;
8129          END IF;
8130 
8131 -- Added as part of R12 coverage Rearchitecture,create Pm schedule and associate with the service line but not coverage line
8132  IF l_cov_templ_yn ='N'  -- Create pm schedule only if it's not a coverage template
8133  THEN
8134     OPEN CUR_GET_PROGRAM_ID(l_orig_sys_id1);
8135     FETCH CUR_GET_PROGRAM_ID INTO l_pm_program_id;
8136     CLOSE CUR_GET_PROGRAM_ID;
8137 
8138     IF l_pm_program_id IS NOT NULL   --Generate schedule only if pm_program_id exists
8139     THEN
8140          OKS_PM_PROGRAMS_PVT.RENEW_PM_PROGRAM_SCHEDULE(
8141                                                         p_api_version    => l_api_version,
8142                                                         p_init_msg_list  => l_init_msg_list,
8143                                                         x_return_status  => l_return_status,
8144                                                         x_msg_count      => l_msg_count,
8145                                                         x_msg_data       => l_msg_data,
8146                                                         p_contract_line_id => l_new_contract_line_id);
8147 
8148 
8149            IF (G_DEBUG_ENABLED = 'Y') THEN
8150                  okc_debug.log('After RENEW_PM_PROGRAM_SCHEDULE'||l_return_status, 2);
8151            END IF;
8152 
8153 
8154            IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
8155                                 RAISE G_EXCEPTION_HALT_VALIDATION;
8156            END  IF;
8157     END IF;
8158  END IF;
8159 -- End changes for coverage Rearchitecture by jvorugan
8160 
8161 x_return_status:= OKC_API.G_RET_STS_SUCCESS;
8162 l_klnv_tbl_in.DELETE;
8163 l_billrate_sch_tbl_in.DELETE;
8164 l_timezone_tbl_in.DELETE;
8165 l_cover_time_tbl_in.DELETE;
8166 
8167 
8168          IF (G_DEBUG_ENABLED = 'Y') THEN
8169                      okc_debug.log('End of Copy_Coverage'||l_return_status, 2);
8170                      okc_debug.Reset_Indentation;
8171          END IF;
8172 
8173       EXCEPTION
8174 
8175         WHEN G_EXCEPTION_HALT_VALIDATION THEN
8176 
8177          IF (G_DEBUG_ENABLED = 'Y') THEN
8178                      okc_debug.log('Exp of Copy_Coverage'||SQLERRM, 2);
8179                      okc_debug.Reset_Indentation;
8180          END IF;
8181       x_return_status := l_return_status ;
8182       x_msg_count :=l_msg_count;
8183       x_msg_data:=l_msg_data;
8184       x_return_status := OKC_API.HANDLE_EXCEPTIONS
8185       (
8186         l_api_name,
8187         'OKS_COPY_COVERAGE',
8188         'OKC_API.G_RET_STS_ERROR',
8189         x_msg_count,
8190         x_msg_data,
8191         '_PVT'
8192       );
8193     WHEN OKC_API.G_EXCEPTION_ERROR THEN
8194          IF (G_DEBUG_ENABLED = 'Y') THEN
8195                      okc_debug.log('Exp of Copy_Coverage'||SQLERRM, 2);
8196                      okc_debug.Reset_Indentation;
8197          END IF;
8198       x_msg_count :=l_msg_count;
8199       x_msg_data:=l_msg_data;
8200       x_return_status := OKC_API.HANDLE_EXCEPTIONS
8201       (
8202         l_api_name,
8203         'OKS_COPY_COVERAGE',
8204         'OKC_API.G_RET_STS_ERROR',
8205         x_msg_count,
8206         x_msg_data,
8207         '_PVT'
8208       );
8209     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8210 
8211          IF (G_DEBUG_ENABLED = 'Y') THEN
8212                      okc_debug.log('Exp of Copy_Coverage'||SQLERRM, 2);
8213                      okc_debug.Reset_Indentation;
8214          END IF;
8215       x_msg_count :=l_msg_count;
8216       x_msg_data:=l_msg_data;
8217       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
8218       (
8219         l_api_name,
8220         'OKS_COPY_COVERAGE',
8221         'OKC_API.G_RET_STS_UNEXP_ERROR',
8222         x_msg_count,
8223         x_msg_data,
8224         '_PVT'
8225       );
8226 
8227     WHEN OTHERS THEN
8228 
8229          IF (G_DEBUG_ENABLED = 'Y') THEN
8230                      okc_debug.log('Exp of Copy_Coverage'||SQLERRM, 2);
8231                      okc_debug.Reset_Indentation;
8232          END IF;
8233       OKC_API.SET_MESSAGE(
8234         p_app_name        => g_app_name,
8235         p_msg_name        => g_unexpected_error,
8236         p_token1          => g_sqlcode_token,
8237         p_token1_value    => sqlcode,
8238         p_token2          => g_sqlerrm_token,
8239         p_token2_value    => sqlerrm);
8240        -- notify caller of an error as UNEXPETED error
8241         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
8242         x_msg_count :=l_msg_count;
8243 
8244 
8245 END Copy_Coverage;
8246 
8247 --===========================================================================================
8248 
8249    PROCEDURE INIT_OKS_K_LINE(x_klnv_tbl  OUT NOCOPY OKS_KLN_PVT.klnv_tbl_type)
8250 IS
8251 
8252 
8253 BEGIN
8254 
8255 
8256  x_klnv_tbl(1).ID                     :=  OKC_API.G_MISS_NUM;
8257  x_klnv_tbl(1).CLE_ID                 :=  OKC_API.G_MISS_NUM;
8258  x_klnv_tbl(1).DNZ_CHR_ID             :=  OKC_API.G_MISS_NUM;
8259  x_klnv_tbl(1).DISCOUNT_LIST          :=  OKC_API.G_MISS_NUM;
8260  x_klnv_tbl(1).ACCT_RULE_ID           :=  OKC_API.G_MISS_NUM;
8261  x_klnv_tbl(1).PAYMENT_TYPE           :=  OKC_API.G_MISS_CHAR;
8262  x_klnv_tbl(1).CC_NO                  :=  OKC_API.G_MISS_CHAR;
8263  x_klnv_tbl(1).CC_EXPIRY_DATE         :=  OKC_API.G_MISS_DATE;
8264  x_klnv_tbl(1).CC_BANK_ACCT_ID        :=  OKC_API.G_MISS_NUM;
8265  x_klnv_tbl(1).CC_AUTH_CODE           :=  OKC_API.G_MISS_CHAR;
8266  x_klnv_tbl(1).COMMITMENT_ID          :=  OKC_API.G_MISS_NUM;
8267  x_klnv_tbl(1).LOCKED_PRICE_LIST_ID   :=  OKC_API.G_MISS_NUM;
8268  x_klnv_tbl(1).USAGE_EST_YN           :=  OKC_API.G_MISS_CHAR;
8269  x_klnv_tbl(1).USAGE_EST_METHOD       :=  OKC_API.G_MISS_CHAR;
8270  x_klnv_tbl(1).USAGE_EST_START_DATE   :=  OKC_API.G_MISS_DATE;
8271  x_klnv_tbl(1).TERMN_METHOD           :=  OKC_API.G_MISS_CHAR;
8272  x_klnv_tbl(1).UBT_AMOUNT             :=  OKC_API.G_MISS_NUM;
8273  x_klnv_tbl(1).CREDIT_AMOUNT          :=  OKC_API.G_MISS_NUM;
8274  x_klnv_tbl(1).SUPPRESSED_CREDIT      :=  OKC_API.G_MISS_NUM;
8275  x_klnv_tbl(1).OVERRIDE_AMOUNT        :=  OKC_API.G_MISS_NUM;
8276  x_klnv_tbl(1).GRACE_DURATION         :=  OKC_API.G_MISS_NUM;
8277  x_klnv_tbl(1).GRACE_PERIOD           :=  OKC_API.G_MISS_CHAR;
8278  x_klnv_tbl(1).INV_PRINT_FLAG         :=  OKC_API.G_MISS_CHAR;
8279  x_klnv_tbl(1).PRICE_UOM              :=  OKC_API.G_MISS_CHAR;
8280  x_klnv_tbl(1).TAX_AMOUNT             :=  OKC_API.G_MISS_NUM;
8281  x_klnv_tbl(1).TAX_INCLUSIVE_YN       :=  OKC_API.G_MISS_CHAR;
8282  x_klnv_tbl(1).TAX_STATUS             :=  OKC_API.G_MISS_CHAR;
8283  x_klnv_tbl(1).TAX_CODE               :=  OKC_API.G_MISS_NUM;
8284  x_klnv_tbl(1).TAX_EXEMPTION_ID       :=  OKC_API.G_MISS_NUM;
8285  x_klnv_tbl(1).IB_TRANS_TYPE          :=  OKC_API.G_MISS_CHAR;
8286  x_klnv_tbl(1).IB_TRANS_DATE          :=  OKC_API.G_MISS_DATE;
8287  x_klnv_tbl(1).PROD_PRICE             :=  OKC_API.G_MISS_NUM;
8288  x_klnv_tbl(1).SERVICE_PRICE          :=  OKC_API.G_MISS_NUM;
8289  x_klnv_tbl(1).CLVL_LIST_PRICE        :=  OKC_API.G_MISS_NUM;
8290  x_klnv_tbl(1).CLVL_QUANTITY          :=  OKC_API.G_MISS_NUM;
8291  x_klnv_tbl(1).CLVL_EXTENDED_AMT      :=  OKC_API.G_MISS_NUM;
8292  x_klnv_tbl(1).CLVL_UOM_CODE          :=  OKC_API.G_MISS_CHAR;
8293  x_klnv_tbl(1).TOPLVL_OPERAND_CODE    :=  OKC_API.G_MISS_CHAR;
8294  x_klnv_tbl(1).TOPLVL_OPERAND_VAL     :=  OKC_API.G_MISS_NUM;
8295  x_klnv_tbl(1).TOPLVL_QUANTITY        :=  OKC_API.G_MISS_NUM;
8296  x_klnv_tbl(1).TOPLVL_UOM_CODE        :=  OKC_API.G_MISS_CHAR;
8297  x_klnv_tbl(1).TOPLVL_ADJ_PRICE       :=  OKC_API.G_MISS_NUM;
8298  x_klnv_tbl(1).TOPLVL_PRICE_QTY       :=  OKC_API.G_MISS_NUM;
8299  x_klnv_tbl(1).AVERAGING_INTERVAL     :=  OKC_API.G_MISS_NUM;
8300  x_klnv_tbl(1).SETTLEMENT_INTERVAL    :=  OKC_API.G_MISS_CHAR;
8301  x_klnv_tbl(1).MINIMUM_QUANTITY       :=  OKC_API.G_MISS_NUM;
8302  x_klnv_tbl(1).DEFAULT_QUANTITY       :=  OKC_API.G_MISS_NUM;
8303  x_klnv_tbl(1).AMCV_FLAG              :=  OKC_API.G_MISS_CHAR;
8304  x_klnv_tbl(1).FIXED_QUANTITY         :=  OKC_API.G_MISS_NUM;
8305  x_klnv_tbl(1).USAGE_DURATION         :=  OKC_API.G_MISS_NUM;
8306  x_klnv_tbl(1).USAGE_PERIOD           :=  OKC_API.G_MISS_CHAR;
8307  x_klnv_tbl(1).LEVEL_YN               :=  OKC_API.G_MISS_CHAR;
8308  x_klnv_tbl(1).USAGE_TYPE             :=  OKC_API.G_MISS_CHAR;
8309  x_klnv_tbl(1).UOM_QUANTIFIED         :=  OKC_API.G_MISS_CHAR;
8310  x_klnv_tbl(1).BASE_READING           :=  OKC_API.G_MISS_NUM;
8311  x_klnv_tbl(1).BILLING_SCHEDULE_TYPE  :=  OKC_API.G_MISS_CHAR;
8312  x_klnv_tbl(1).COVERAGE_TYPE          :=  OKC_API.G_MISS_CHAR;
8313  x_klnv_tbl(1).EXCEPTION_COV_ID       :=  OKC_API.G_MISS_NUM;
8314  x_klnv_tbl(1).LIMIT_UOM_QUANTIFIED   :=  OKC_API.G_MISS_CHAR;
8315  x_klnv_tbl(1).DISCOUNT_AMOUNT        :=  OKC_API.G_MISS_NUM;
8316  x_klnv_tbl(1).DISCOUNT_PERCENT       :=  OKC_API.G_MISS_NUM;
8317  x_klnv_tbl(1).OFFSET_DURATION        :=  OKC_API.G_MISS_NUM;
8318  x_klnv_tbl(1).OFFSET_PERIOD          :=  OKC_API.G_MISS_CHAR;
8319  x_klnv_tbl(1).INCIDENT_SEVERITY_ID   :=  OKC_API.G_MISS_NUM;
8320  x_klnv_tbl(1).PDF_ID                 :=  OKC_API.G_MISS_NUM;
8321  x_klnv_tbl(1).WORK_THRU_YN           :=  OKC_API.G_MISS_CHAR;
8322  x_klnv_tbl(1).REACT_ACTIVE_YN        :=  OKC_API.G_MISS_CHAR;
8323  x_klnv_tbl(1).TRANSFER_OPTION        :=  OKC_API.G_MISS_CHAR;
8324  x_klnv_tbl(1).PROD_UPGRADE_YN        :=  OKC_API.G_MISS_CHAR;
8325  x_klnv_tbl(1).INHERITANCE_TYPE       :=  OKC_API.G_MISS_CHAR;
8326  x_klnv_tbl(1).PM_PROGRAM_ID          :=  OKC_API.G_MISS_NUM;
8327  x_klnv_tbl(1).PM_CONF_REQ_YN         :=  OKC_API.G_MISS_CHAR;
8328  x_klnv_tbl(1).PM_SCH_EXISTS_YN       :=  OKC_API.G_MISS_CHAR;
8329  x_klnv_tbl(1).ALLOW_BT_DISCOUNT      :=  OKC_API.G_MISS_CHAR;
8330  x_klnv_tbl(1).APPLY_DEFAULT_TIMEZONE :=  OKC_API.G_MISS_CHAR;
8331  x_klnv_tbl(1).SYNC_DATE_INSTALL      :=  OKC_API.G_MISS_CHAR;
8332  x_klnv_tbl(1).SFWT_FLAG              :=  OKC_API.G_MISS_CHAR;
8333  x_klnv_tbl(1).OBJECT_VERSION_NUMBER  :=  OKC_API.G_MISS_NUM;
8334  x_klnv_tbl(1).SECURITY_GROUP_ID      :=  OKC_API.G_MISS_NUM;
8335  x_klnv_tbl(1).REQUEST_ID             :=  OKC_API.G_MISS_NUM;
8336  x_klnv_tbl(1).CREATED_BY             :=  OKC_API.G_MISS_NUM;
8337  x_klnv_tbl(1).CREATION_DATE          :=  OKC_API.G_MISS_DATE;
8338  x_klnv_tbl(1).LAST_UPDATED_BY        :=  OKC_API.G_MISS_NUM;
8339  x_klnv_tbl(1).LAST_UPDATE_DATE       :=  OKC_API.G_MISS_DATE;
8340  x_klnv_tbl(1).LAST_UPDATE_LOGIN      :=  OKC_API.G_MISS_NUM;
8341 END  ;
8342 
8343 --================================================================================
8344 PROCEDURE INIT_OKS_TIMEZONE_LINE(x_timezone_tbl OUT NOCOPY oks_ctz_pvt.OksCoverageTimezonesVTblType)
8345 IS
8346 
8347 BEGIN
8348                   x_timezone_tbl(1).ID                     := OKC_API.G_MISS_NUM;
8349                   x_timezone_tbl(1).CLE_ID                 := OKC_API.G_MISS_NUM;
8350                   x_timezone_tbl(1).DEFAULT_YN             := OKC_API.G_MISS_CHAR;
8351                   x_timezone_tbl(1).TIMEZONE_ID            := OKC_API.G_MISS_NUM;
8352                   x_timezone_tbl(1).DNZ_CHR_ID             := OKC_API.G_MISS_NUM;
8353                   x_timezone_tbl(1).CREATED_BY             := OKC_API.G_MISS_NUM;
8354                   x_timezone_tbl(1).CREATION_DATE          := OKC_API.G_MISS_DATE;
8355                   x_timezone_tbl(1).LAST_UPDATED_BY        := OKC_API.G_MISS_NUM;
8356                   x_timezone_tbl(1).LAST_UPDATE_DATE       := OKC_API.G_MISS_DATE;
8357                   x_timezone_tbl(1).LAST_UPDATE_LOGIN      := OKC_API.G_MISS_NUM;
8358                   x_timezone_tbl(1).SECURITY_GROUP_ID      := OKC_API.G_MISS_NUM;
8359                   x_timezone_tbl(1).PROGRAM_APPLICATION_ID := OKC_API.G_MISS_NUM;
8360                   x_timezone_tbl(1).PROGRAM_ID             := OKC_API.G_MISS_NUM;
8361                   x_timezone_tbl(1).PROGRAM_UPDATE_DATE    := OKC_API.G_MISS_DATE;
8362                   x_timezone_tbl(1).REQUEST_ID             := OKC_API.G_MISS_NUM;
8363 
8364 END ;
8365 --=================================================================================
8366 PROCEDURE INIT_OKS_COVER_TIME_LINE(x_cover_time_tbl OUT NOCOPY oks_cvt_pvt.oks_coverage_times_v_tbl_type)
8367 
8368 IS
8369      BEGIN
8370                x_cover_time_tbl(1).ID                     := OKC_API.G_MISS_NUM;
8371                x_cover_time_tbl(1).COV_TZE_LINE_ID        := OKC_API.G_MISS_NUM;
8372                x_cover_time_tbl(1).DNZ_CHR_ID             := OKC_API.G_MISS_NUM;
8373                x_cover_time_tbl(1).START_HOUR             := OKC_API.G_MISS_NUM;
8374                x_cover_time_tbl(1).START_MINUTE           := OKC_API.G_MISS_NUM;
8375                x_cover_time_tbl(1).END_HOUR               := OKC_API.G_MISS_NUM;
8376                x_cover_time_tbl(1).END_MINUTE             := OKC_API.G_MISS_NUM;
8377                x_cover_time_tbl(1).MONDAY_YN              := OKC_API.G_MISS_CHAR;
8378                x_cover_time_tbl(1).TUESDAY_YN             := OKC_API.G_MISS_CHAR;
8379                x_cover_time_tbl(1).WEDNESDAY_YN           := OKC_API.G_MISS_CHAR;
8380                x_cover_time_tbl(1).THURSDAY_YN            := OKC_API.G_MISS_CHAR;
8381                x_cover_time_tbl(1).FRIDAY_YN              := OKC_API.G_MISS_CHAR;
8382                x_cover_time_tbl(1).SATURDAY_YN            := OKC_API.G_MISS_CHAR;
8383                x_cover_time_tbl(1).SUNDAY_YN              := OKC_API.G_MISS_CHAR;
8384                x_cover_time_tbl(1).CREATED_BY             := OKC_API.G_MISS_NUM;
8385                x_cover_time_tbl(1).CREATION_DATE          := OKC_API.G_MISS_DATE;
8386                x_cover_time_tbl(1).LAST_UPDATED_BY        := OKC_API.G_MISS_NUM;
8387                x_cover_time_tbl(1).LAST_UPDATE_DATE       := OKC_API.G_MISS_DATE;
8388                x_cover_time_tbl(1).LAST_UPDATE_LOGIN      := OKC_API.G_MISS_NUM;
8389                x_cover_time_tbl(1).SECURITY_GROUP_ID      := OKC_API.G_MISS_NUM;
8390                x_cover_time_tbl(1).PROGRAM_APPLICATION_ID := OKC_API.G_MISS_NUM;
8391                x_cover_time_tbl(1).PROGRAM_ID             := OKC_API.G_MISS_NUM;
8392                x_cover_time_tbl(1).PROGRAM_UPDATE_DATE    := OKC_API.G_MISS_DATE;
8393                x_cover_time_tbl(1).REQUEST_ID             := OKC_API.G_MISS_NUM;
8394 
8395 END ;
8396 --==========================================================================
8397 
8398  PROCEDURE INIT_OKS_ACT_TYPE(x_act_time_tbl OUT NOCOPY OKS_ACT_PVT.OksActionTimeTypesVTblType)
8399  IS
8400   BEGIN
8401 
8402     x_act_time_tbl(1).id                              := OKC_API.G_MISS_NUM;
8403     x_act_time_tbl(1).cle_id                          := OKC_API.G_MISS_NUM;
8404     x_act_time_tbl(1).dnz_chr_id                      := OKC_API.G_MISS_NUM;
8405     x_act_time_tbl(1).action_type_code                := OKC_API.G_MISS_CHAR;
8406     x_act_time_tbl(1).security_group_id               := OKC_API.G_MISS_NUM;
8407     x_act_time_tbl(1).program_application_id          := OKC_API.G_MISS_NUM;
8408     x_act_time_tbl(1).program_id                      := OKC_API.G_MISS_NUM;
8409     x_act_time_tbl(1).program_update_date             := OKC_API.G_MISS_DATE;
8410     x_act_time_tbl(1).request_id                      := OKC_API.G_MISS_NUM;
8411     x_act_time_tbl(1).created_by                      := OKC_API.G_MISS_NUM;
8412     x_act_time_tbl(1).creation_date                   := OKC_API.G_MISS_DATE;
8413     x_act_time_tbl(1).last_updated_by                 := OKC_API.G_MISS_NUM;
8414     x_act_time_tbl(1).last_update_date                := OKC_API.G_MISS_DATE;
8415     x_act_time_tbl(1).last_update_login               := OKC_API.G_MISS_NUM;
8416 END ;
8417 --===============================================================================
8418 PROCEDURE INIT_OKS_ACT_TIME(x_act_type_tbl OUT NOCOPY OKS_ACM_PVT.oks_action_times_v_tbl_type)
8419 
8420 IS
8421    BEGIN
8422 
8423     x_act_type_tbl(1).id                         := OKC_API.G_MISS_NUM;
8424     x_act_type_tbl(1).cov_action_type_id         := OKC_API.G_MISS_NUM;
8425     x_act_type_tbl(1).cle_id                     := OKC_API.G_MISS_NUM;
8426     x_act_type_tbl(1).dnz_chr_id                 := OKC_API.G_MISS_NUM;
8427     x_act_type_tbl(1).uom_code                   := OKC_API.G_MISS_CHAR;
8428     x_act_type_tbl(1).sun_duration               := OKC_API.G_MISS_NUM;
8429     x_act_type_tbl(1).mon_duration               := OKC_API.G_MISS_NUM;
8430     x_act_type_tbl(1).tue_duration               := OKC_API.G_MISS_NUM;
8431     x_act_type_tbl(1).wed_duration               := OKC_API.G_MISS_NUM;
8432     x_act_type_tbl(1).thu_duration               := OKC_API.G_MISS_NUM;
8433     x_act_type_tbl(1).fri_duration               := OKC_API.G_MISS_NUM;
8434     x_act_type_tbl(1).sat_duration               := OKC_API.G_MISS_NUM;
8435     x_act_type_tbl(1).security_group_id          := OKC_API.G_MISS_NUM;
8436     x_act_type_tbl(1).program_application_id     := OKC_API.G_MISS_NUM;
8437     x_act_type_tbl(1).program_id                 := OKC_API.G_MISS_NUM;
8438     x_act_type_tbl(1).program_update_date        := OKC_API.G_MISS_DATE;
8439     x_act_type_tbl(1).request_id                 := OKC_API.G_MISS_NUM;
8440     x_act_type_tbl(1).created_by                 := OKC_API.G_MISS_NUM;
8441     x_act_type_tbl(1).creation_date              := OKC_API.G_MISS_DATE;
8442     x_act_type_tbl(1).last_updated_by            := OKC_API.G_MISS_NUM;
8443     x_act_type_tbl(1).last_update_date           := OKC_API.G_MISS_DATE;
8444     x_act_type_tbl(1).last_update_login          := OKC_API.G_MISS_NUM;
8445 
8446  END ;
8447  --============================================================================
8448 
8449 PROCEDURE VALIDATE_COVERTIME(p_tze_line_id   IN NUMBER,
8450                                  x_days_overlap  OUT  NOCOPY oks_coverages_pvt.billrate_day_overlap_type,
8451                                  x_return_status OUT  NOCOPY VARCHAR2)
8452 IS
8453 G_PKG_NAME VARCHAR2(40):= 'OKS_COVERAGES_PVT';
8454 
8455 TYPE covertime_schedule_rec IS RECORD
8456  (start_time NUMBER,
8457   end_time NUMBER);
8458 
8459 TYPE covertime_schedule_tbl_type IS TABLE OF covertime_schedule_rec
8460 INDEX BY BINARY_INTEGER;
8461 
8462 i number := 0;
8463 l_overlap_yn        VARCHAR2(1);
8464 l_overlap_message   VARCHAR2(200);
8465 
8466 l_time_tbl   covertime_schedule_tbl_type;
8467 l_api_name      VARCHAR2(50):= 'VALIDATE_COVERTIME_SCHEDULE';
8468 x_msg_count     NUMBER;
8469 x_msg_data      VARCHAR2(2000);
8470 l_overlap_days  VARCHAR2(1000) := NULL;
8471 
8472 CURSOR Cur_monday(l_tze_id IN NUMBER) IS
8473 
8474 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8475        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8476 FROM OKS_COVERAGE_TIMES_V
8477 WHERE COV_TZE_LINE_ID = l_tze_id
8478 AND MONDAY_YN = 'Y' ;
8479 
8480 
8481 
8482 CURSOR Cur_tuesday(l_tze_id IN NUMBER) IS
8483 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8484        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8485 FROM OKS_COVERAGE_TIMES_V
8486 WHERE COV_TZE_LINE_ID = l_tze_id
8487 AND TUESDAY_YN = 'Y' ;
8488 
8489 
8490 CURSOR Cur_wednesday(l_tze_id IN NUMBER) IS
8491 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8492        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8493 FROM OKS_COVERAGE_TIMES_V
8494 WHERE COV_TZE_LINE_ID = l_tze_id
8495 AND WEDNESDAY_YN = 'Y' ;
8496 
8497 
8498 CURSOR Cur_thursday(l_tze_id IN NUMBER) IS
8499 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8500        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8501 FROM OKS_COVERAGE_TIMES_V
8502 WHERE COV_TZE_LINE_ID = l_tze_id
8503 AND THURSDAY_YN = 'Y' ;
8504 
8505 
8506 CURSOR Cur_friday(l_tze_id IN NUMBER) IS
8507 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8508        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8509 FROM OKS_COVERAGE_TIMES_V
8510 WHERE COV_TZE_LINE_ID = l_tze_id
8511 AND FRIDAY_YN = 'Y' ;
8512 
8513 
8514 
8515 CURSOR Cur_saturday(l_tze_id IN NUMBER) IS
8516 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8517        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8518 FROM OKS_COVERAGE_TIMES_V
8519 WHERE COV_TZE_LINE_ID = l_tze_id
8520 AND SATURDAY_YN = 'Y' ;
8521 
8522 
8523 CURSOR Cur_sunday(l_tze_id IN NUMBER) IS
8524 SELECT to_number(START_HOUR||decode(LENGTH(START_MINUTE),1,'0'||START_MINUTE,START_MINUTE)) start_time,
8525        to_number(END_HOUR||decode(LENGTH(END_MINUTE),1,'0'||END_MINUTE,END_MINUTE)) end_time
8526 FROM OKS_COVERAGE_TIMES_V
8527 WHERE COV_TZE_LINE_ID = l_tze_id
8528 AND SUNDAY_YN = 'Y' ;
8529 
8530 --Define cursors for other days.
8531 FUNCTION get_day_meaning (p_day_code IN varchar2)
8532 RETURN varchar2
8533 IS
8534 CURSOR Get_day IS
8535 SELECT meaning from fnd_lookups where lookup_type = 'DAY_NAME'
8536 and lookup_code = p_day_code;
8537 l_day_meaning VARCHAR2(100);
8538 
8539 BEGIN
8540   OPEN Get_day;
8541   FETCH Get_day INTO l_day_meaning;
8542   CLOSE Get_day;
8543   return nvl(l_day_meaning,NULL);
8544 end get_day_meaning ;
8545 
8546 PROCEDURE Check_overlap(p_time_tbl IN covertime_schedule_tbl_type,
8547                         p_overlap_yn OUT NOCOPY Varchar2)
8548 IS
8549 
8550 l_start       NUMBER;
8551 l_end         NUMBER;
8552 l_start_new   NUMBER;
8553 l_end_new     NUMBER;
8554 j             NUMBER:= 0;
8555 k             NUMBER:= 0;
8556 
8557 BEGIN
8558 p_overlap_yn := 'N';
8559 FOR j in 1 .. p_time_tbl.COUNT
8560 LOOP
8561 l_start := p_time_tbl(j).start_time;
8562 l_end := p_time_tbl(j).end_time;
8563 
8564   FOR k in 1 .. p_time_tbl.COUNT
8565   LOOP
8566         l_start_new := p_time_tbl(k).start_time;
8567         l_end_new := p_time_tbl(k).end_time;
8568         IF j <> k then
8569                 IF (l_start_new <= l_end and l_start_new >= l_start)
8570             OR (l_end_new >= l_start and l_end_new <=  l_end) then
8571 
8572             IF (l_start_new = l_end )
8573                    OR (l_end_new = l_start ) then
8574                    IF p_overlap_yn <> 'Y' then
8575                       p_overlap_yn := 'N';
8576                    END IF ;
8577                  else
8578                     p_overlap_yn := 'Y';
8579              END IF ;
8580 
8581 
8582           END IF;
8583         END IF;
8584   END LOOP;
8585 
8586 END LOOP;
8587 
8588 
8589 --write the validation logic
8590 END Check_overlap;
8591 
8592 
8593 BEGIN
8594 
8595 x_return_status         := OKC_API.G_RET_STS_SUCCESS;
8596 l_time_tbl.DELETE;
8597 FOR monday_rec IN Cur_monday(p_tze_line_id)
8598 LOOP
8599 
8600 i := i + 1;
8601 l_time_tbl(i).start_time := monday_rec.start_time;
8602 l_time_tbl(i).end_time := monday_rec.end_time;
8603 END LOOP;
8604 l_overlap_yn := 'N';
8605 
8606 IF l_time_tbl.COUNT > 0 then
8607 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.monday_overlap);
8608 
8609    IF x_days_overlap.monday_overlap = 'Y' then
8610       l_overlap_days := get_day_meaning('MON')||',';
8611    END IF;
8612 
8613 end if;
8614 
8615 -- Validating for Tuesday.
8616 
8617 l_time_tbl.DELETE;
8618 i := 0;
8619 
8620 FOR tuesday_rec IN Cur_tuesday(p_tze_line_id)
8621 LOOP
8622 i := i + 1;
8623 l_time_tbl(i).start_time := tuesday_rec.start_time;
8624 l_time_tbl(i).end_time := tuesday_rec.end_time;
8625 END LOOP;
8626 l_overlap_yn := 'N';
8627 IF l_time_tbl.COUNT > 0 then
8628 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.tuesday_overlap);
8629    IF x_days_overlap.tuesday_overlap = 'Y' then
8630       l_overlap_days := l_overlap_days||get_day_meaning('TUE')||',';
8631    END IF;
8632 
8633 end if;
8634 
8635 -- Validating for wednesday.
8636 
8637 l_time_tbl.DELETE;
8638 i := 0;
8639 
8640 FOR wednesday_rec IN Cur_wednesday(p_tze_line_id)
8641 LOOP
8642 i := i + 1;
8643 l_time_tbl(i).start_time := wednesday_rec.start_time;
8644 l_time_tbl(i).end_time := wednesday_rec.end_time;
8645 END LOOP;
8646 l_overlap_yn := 'N';
8647 IF l_time_tbl.COUNT > 0 then
8648 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.wednesday_overlap);
8649    IF x_days_overlap.wednesday_overlap = 'Y' then
8650       l_overlap_days := l_overlap_days||get_day_meaning('WED')||',';
8651    END IF;
8652 
8653 end if;
8654 
8655 -- Validating for thursday.
8656 
8657 l_time_tbl.DELETE;
8658 i := 0;
8659 
8660 FOR thursday_rec IN Cur_thursday(p_tze_line_id)
8661 LOOP
8662 i := i + 1;
8663 l_time_tbl(i).start_time := thursday_rec.start_time;
8664 l_time_tbl(i).end_time := thursday_rec.end_time;
8665 END LOOP;
8666 l_overlap_yn := 'N';
8667 IF l_time_tbl.COUNT > 0 then
8668 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.thursday_overlap);
8669    IF x_days_overlap.thursday_overlap = 'Y' then
8670       l_overlap_days := l_overlap_days||get_day_meaning('THU')||',';
8671    END IF;
8672 
8673 end if;
8674 
8675 -- Validating for friday.
8676 
8677 l_time_tbl.DELETE;
8678 i := 0;
8679 
8680 FOR friday_rec IN Cur_friday(p_tze_line_id)
8681 LOOP
8682 i := i + 1;
8683 l_time_tbl(i).start_time := friday_rec.start_time;
8684 l_time_tbl(i).end_time := friday_rec.end_time;
8685 END LOOP;
8686 l_overlap_yn := 'N';
8687 IF l_time_tbl.COUNT > 0 then
8688 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.friday_overlap);
8689    IF x_days_overlap.friday_overlap = 'Y' then
8690       l_overlap_days := l_overlap_days||get_day_meaning('FRI')||',';
8691    END IF;
8692 
8693 end if;
8694 
8695 -- Validating for saturday.
8696 
8697 l_time_tbl.DELETE;
8698 i := 0;
8699 
8700 FOR saturday_rec IN Cur_saturday(p_tze_line_id)
8701 LOOP
8702 i := i + 1;
8703 l_time_tbl(i).start_time := saturday_rec.start_time;
8704 l_time_tbl(i).end_time := saturday_rec.end_time;
8705 END LOOP;
8706 l_overlap_yn := 'N';
8707 IF l_time_tbl.COUNT > 0 then
8708 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.saturday_overlap);
8709    IF x_days_overlap.saturday_overlap = 'Y' then
8710       l_overlap_days := l_overlap_days||get_day_meaning('SAT')||',';
8711    END IF;
8712 
8713 end if;
8714 
8715 -- Validating for sunday.
8716 
8717 l_time_tbl.DELETE;
8718 i := 0;
8719 
8720 FOR sunday_rec IN Cur_sunday(p_tze_line_id)
8721 LOOP
8722 i := i + 1;
8723 l_time_tbl(i).start_time := sunday_rec.start_time;
8724 l_time_tbl(i).end_time := sunday_rec.end_time;
8725 END LOOP;
8726 l_overlap_yn := 'N';
8727 IF l_time_tbl.COUNT > 0 then
8728 Check_overlap(p_time_tbl => l_time_tbl, p_overlap_yn => x_days_overlap.sunday_overlap);
8729    IF x_days_overlap.sunday_overlap = 'Y' then
8730       l_overlap_days := l_overlap_days||get_day_meaning('SUN')||',';
8731    END IF;
8732 
8733 END IF;
8734 
8735    IF l_overlap_days IS not null then
8736             fnd_message.set_name('OKS','OKS_BILLRATE_DAYS_OVERLAP');
8737             fnd_message.set_token('DAYS', l_overlap_days);
8738    END IF;
8739 
8740 x_return_status         := OKC_API.G_RET_STS_SUCCESS;
8741 
8742 EXCEPTION
8743 
8744 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
8745       x_return_status := OKC_API.HANDLE_EXCEPTIONS
8746       (
8747         l_api_name,
8748         G_PKG_NAME,
8749         'OKC_API.G_RET_STS_UNEXP_ERROR',
8750         x_msg_count,
8751         x_msg_data,
8752         '_PVT'
8753       );
8754       ROLLBACK;
8755     WHEN OTHERS THEN
8756       x_return_status := OKC_API.HANDLE_EXCEPTIONS
8757       (
8758         l_api_name,
8759         G_PKG_NAME,
8760         'OTHERS',
8761         x_msg_count,
8762         x_msg_data,
8763         '_PVT'
8764       );
8765       ROLLBACK ;
8766 
8767 END; -- Validate_covertime;
8768 
8769 --===========================================================================
8770 PROCEDURE  MIGRATE_PRIMARY_RESOURCES(p_api_version                   IN NUMBER,
8771                                           p_init_msg_list                 IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
8772                                           x_return_status                 OUT NOCOPY VARCHAR2,
8773                                           x_msg_count                     OUT NOCOPY NUMBER,
8774                                           x_msg_data                      OUT NOCOPY VARCHAR2)IS
8775 
8776 
8777 
8778     BEGIN
8779 
8780 -- Stubing out this procedure since no more in use.
8781     Null ;
8782 
8783 
8784 END MIGRATE_PRIMARY_RESOURCES;
8785 
8786 
8787 PROCEDURE Version_Coverage(
8788 				p_api_version                  IN NUMBER,
8789 				p_init_msg_list                IN VARCHAR2,
8790 				x_return_status                OUT NOCOPY VARCHAR2,
8791                 x_msg_count                    OUT NOCOPY NUMBER,
8792                 x_msg_data                     OUT NOCOPY VARCHAR2,
8793                 p_chr_id                          IN NUMBER,
8794                 p_major_version                IN NUMBER) IS
8795 
8796 l_chr_id CONSTANT NUMBER  := p_chr_id;
8797 l_major_version CONSTANT NUMBER  := p_major_version;
8798 l_return_Status VARCHAR2(1);
8799 
8800 l_msg_count     NUMBER;
8801 l_msg_data      VARCHAR2(1000);
8802 l_api_version           NUMBER:= 1 ;
8803 l_init_msg_list         VARCHAR2(1):= OKC_API.G_FALSE;
8804 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
8805 
8806 BEGIN
8807 
8808 
8809 l_return_Status := OKS_ACT_PVT.Create_Version(
8810                             p_id  => l_chr_id,
8811                             p_major_version  =>l_major_version);
8812 
8813 IF l_return_Status <> 'S' THEN
8814         RAISE G_EXCEPTION_HALT_VALIDATION;
8815 END IF;
8816 l_return_Status := OKS_ACM_PVT.Create_Version(
8817                             p_id  => l_chr_id,
8818                             p_major_version  =>l_major_version);
8819 
8820 IF l_return_Status <> 'S' THEN
8821         RAISE G_EXCEPTION_HALT_VALIDATION;
8822 END IF;
8823 l_return_Status := OKS_CVT_PVT.Create_Version(
8824                             p_id  => l_chr_id,
8825                             p_major_version  =>l_major_version);
8826 
8827 IF l_return_Status <> 'S' THEN
8828         RAISE G_EXCEPTION_HALT_VALIDATION;
8829 END IF;
8830 l_return_Status := OKS_CTZ_PVT.Create_Version(
8831                             p_id  => l_chr_id,
8832                             p_major_version  =>l_major_version);
8833 IF l_return_Status <> 'S' THEN
8834         RAISE G_EXCEPTION_HALT_VALIDATION;
8835 END IF;
8836 
8837 l_return_Status := OKS_BRS_PVT.Create_Version(
8838                             p_id  => l_chr_id,
8839                             p_major_version  =>l_major_version);
8840 
8841 IF l_return_Status <> 'S' THEN
8842         RAISE G_EXCEPTION_HALT_VALIDATION;
8843 END IF;
8844 
8845 OKS_PM_PROGRAMS_PVT.version_PM(
8846                 p_api_version       =>  l_api_version,
8847                 p_init_msg_list     =>  l_init_msg_list,
8848                 x_return_status     =>  l_return_status,
8849                 x_msg_count         =>  l_msg_count,
8850                 x_msg_data          =>  l_msg_data,
8851                 p_chr_id            =>  l_chr_id,
8852                 p_major_version     =>  l_major_version);
8853 
8854 
8855     IF l_return_Status = 'S' THEN
8856         x_return_status :=  OKC_API.G_RET_STS_SUCCESS;
8857     ELSE
8858         RAISE G_EXCEPTION_HALT_VALIDATION;
8859     END IF;
8860 
8861 EXCEPTION
8862    WHEN G_EXCEPTION_HALT_VALIDATION THEN
8863 
8864        OKC_API.SET_MESSAGE(
8865         p_app_name        => g_app_name,
8866         p_msg_name        => g_unexpected_error,
8867         p_token1                => g_sqlcode_token,
8868         p_token1_value    => sqlcode,
8869         p_token2          => g_sqlerrm_token,
8870         p_token2_value    => sqlerrm);
8871        -- notify caller of an error as UNEXPETED error
8872         x_return_status := OKC_API.G_RET_STS_ERROR;
8873         x_msg_count :=l_msg_count;
8874 
8875     WHEN OTHERS THEN
8876 
8877        OKC_API.SET_MESSAGE(
8878         p_app_name        => g_app_name,
8879         p_msg_name        => g_unexpected_error,
8880         p_token1                => g_sqlcode_token,
8881         p_token1_value    => sqlcode,
8882         p_token2          => g_sqlerrm_token,
8883         p_token2_value    => sqlerrm);
8884 
8885         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
8886 
8887 END Version_Coverage;
8888 
8889 
8890 PROCEDURE Restore_Coverage(
8891 				p_api_version                  IN NUMBER,
8892 				p_init_msg_list                IN VARCHAR2,
8893 				x_return_status                OUT NOCOPY VARCHAR2,
8894                 x_msg_count                    OUT NOCOPY NUMBER,
8895                 x_msg_data                     OUT NOCOPY VARCHAR2,
8896                 p_chr_id                          IN NUMBER) IS
8897 
8898 l_chr_id CONSTANT NUMBER  := p_chr_id;
8899 l_major_version CONSTANT NUMBER  := -1;
8900 l_return_Status VARCHAR2(1);
8901 
8902 l_msg_count     NUMBER;
8903 l_msg_data      VARCHAR2(1000);
8904 l_api_version           NUMBER:= 1 ;
8905 l_init_msg_list         VARCHAR2(1):= OKC_API.G_FALSE;
8906 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
8907 
8908 BEGIN
8909 
8910 
8911 l_return_Status := OKS_ACT_PVT.Restore_Version(
8912                             p_id  => l_chr_id,
8913                             p_major_version  =>l_major_version);
8914 
8915 IF l_return_Status <> 'S' THEN
8916         RAISE G_EXCEPTION_HALT_VALIDATION;
8917 END IF;
8918 
8919 l_return_Status := OKS_ACM_PVT.Restore_Version(
8920                             p_id  => l_chr_id,
8921                             p_major_version  =>l_major_version);
8922 
8923 IF l_return_Status <> 'S' THEN
8924         RAISE G_EXCEPTION_HALT_VALIDATION;
8925 END IF;
8926 l_return_Status := OKS_CVT_PVT.Restore_Version(
8927                             p_id  => l_chr_id,
8928                             p_major_version  =>l_major_version);
8929 
8930 IF l_return_Status <> 'S' THEN
8931         RAISE G_EXCEPTION_HALT_VALIDATION;
8932 END IF;
8933 l_return_Status := OKS_CTZ_PVT.Restore_Version(
8934                             p_id  => l_chr_id,
8935                             p_major_version  =>l_major_version);
8936 
8937 IF l_return_Status <> 'S' THEN
8938         RAISE G_EXCEPTION_HALT_VALIDATION;
8939 END IF;
8940 l_return_Status := OKS_BRS_PVT.Restore_Version(
8941                             p_id  => l_chr_id,
8942                             p_major_version  =>l_major_version);
8943 
8944 IF l_return_Status <> 'S' THEN
8945         RAISE G_EXCEPTION_HALT_VALIDATION;
8946 END IF;
8947 
8948 OKS_PM_PROGRAMS_PVT.restore_PM(
8949                 p_api_version       =>  l_api_version,
8950                 p_init_msg_list     =>  l_init_msg_list,
8951                 x_return_status     =>  l_return_status,
8952                 x_msg_count         =>  l_msg_count,
8953                 x_msg_data          =>  l_msg_data,
8954                 p_chr_id            =>  l_chr_id);
8955 
8956 
8957     IF l_return_Status = 'S' THEN
8958         x_return_status :=  OKC_API.G_RET_STS_SUCCESS;
8959     ELSE
8960         RAISE G_EXCEPTION_HALT_VALIDATION;
8961     END IF;
8962 
8963 EXCEPTION
8964 
8965    WHEN G_EXCEPTION_HALT_VALIDATION THEN
8966 
8967        OKC_API.SET_MESSAGE(
8968         p_app_name        => g_app_name,
8969         p_msg_name        => g_unexpected_error,
8970         p_token1                => g_sqlcode_token,
8971         p_token1_value    => sqlcode,
8972         p_token2          => g_sqlerrm_token,
8973         p_token2_value    => sqlerrm);
8974        -- notify caller of an error as UNEXPETED error
8975         x_return_status := OKC_API.G_RET_STS_ERROR;
8976         x_msg_count :=l_msg_count;
8977 
8978     WHEN OTHERS THEN
8979 
8980        OKC_API.SET_MESSAGE(
8981         p_app_name        => g_app_name,
8982         p_msg_name        => g_unexpected_error,
8983         p_token1                => g_sqlcode_token,
8984         p_token1_value    => sqlcode,
8985         p_token2          => g_sqlerrm_token,
8986         p_token2_value    => sqlerrm);
8987 
8988         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
8989 
8990 END Restore_Coverage;
8991 
8992 
8993 
8994 PROCEDURE	Delete_History(
8995     			p_api_version                  IN NUMBER,
8996     			p_init_msg_list                IN VARCHAR2,
8997     			x_return_status                OUT NOCOPY VARCHAR2,
8998     			x_msg_count                    OUT NOCOPY NUMBER,
8999     			x_msg_data                     OUT NOCOPY VARCHAR2,
9000     			p_chr_id                       IN NUMBER) IS
9001 
9002 l_chr_id CONSTANT NUMBER  := p_chr_id;
9003 l_return_Status VARCHAR2(1);
9004 
9005 l_msg_count     NUMBER;
9006 l_msg_data      VARCHAR2(1000);
9007 l_api_version           NUMBER:= 1 ;
9008 l_init_msg_list         VARCHAR2(1):= OKC_API.G_FALSE;
9009 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
9010 
9011 BEGIN
9012 
9013 DELETE OKS_ACTION_TIME_TYPES_H
9014 WHERE dnz_chr_id = l_chr_id;
9015 
9016 DELETE OKS_ACTION_TIMES_H
9017 WHERE dnz_chr_id = l_chr_id;
9018 
9019 DELETE OKS_COVERAGE_TIMES_H
9020 WHERE dnz_chr_id = l_chr_id;
9021 
9022 DELETE OKS_COVERAGE_TIMEZONES_H
9023 WHERE dnz_chr_id = l_chr_id;
9024 
9025 DELETE OKS_BILLRATE_SCHEDULES_H
9026 WHERE dnz_chr_id = l_chr_id;
9027 
9028 
9029 OKS_PM_PROGRAMS_PVT.Delete_PMHistory(
9030                 p_api_version       =>  l_api_version,
9031                 p_init_msg_list     =>  l_init_msg_list,
9032                 x_return_status     =>  l_return_status,
9033                 x_msg_count         =>  l_msg_count,
9034                 x_msg_data          =>  l_msg_data,
9035                 p_chr_id            =>  l_chr_id);
9036 
9037 
9038     IF l_return_Status = 'S' THEN
9039         x_return_status :=  OKC_API.G_RET_STS_SUCCESS;
9040     ELSE
9041         RAISE G_EXCEPTION_HALT_VALIDATION;
9042     END IF;
9043 
9044 EXCEPTION
9045 
9046    WHEN G_EXCEPTION_HALT_VALIDATION THEN
9047 
9048        OKC_API.SET_MESSAGE(
9049         p_app_name        => g_app_name,
9050         p_msg_name        => g_unexpected_error,
9051         p_token1                => g_sqlcode_token,
9052         p_token1_value    => sqlcode,
9053         p_token2          => g_sqlerrm_token,
9054         p_token2_value    => sqlerrm);
9055        -- notify caller of an error as UNEXPETED error
9056         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9057         x_msg_count :=l_msg_count;
9058     WHEN OTHERS THEN
9059 
9060        OKC_API.SET_MESSAGE(
9061         p_app_name        => g_app_name,
9062         p_msg_name        => g_unexpected_error,
9063         p_token1                => g_sqlcode_token,
9064         p_token1_value    => sqlcode,
9065         p_token2          => g_sqlerrm_token,
9066         p_token2_value    => sqlerrm);
9067 
9068         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9069 
9070 END Delete_History;
9071 
9072 
9073 
9074 
9075 PROCEDURE Delete_Saved_Version(
9076     p_api_version                  IN NUMBER,
9077     p_init_msg_list                IN VARCHAR2,
9078     x_return_status                OUT NOCOPY VARCHAR2,
9079     x_msg_count                    OUT NOCOPY NUMBER,
9080     x_msg_data                     OUT NOCOPY VARCHAR2,
9081     p_chr_id                       IN NUMBER) IS
9082 
9083  l_api_version   			NUMBER := 1;
9084 l_init_msg_list            	VARCHAR2(1) DEFAULT OKC_API.G_FALSE;
9085 l_return_status            	VARCHAR2(1);
9086 l_return_msg               	VARCHAR2(2000);
9087 l_msg_count                	NUMBER;
9088 l_msg_data                 	VARCHAR2(2000);
9089 l_api_name                 	VARCHAR2(30):= 'Delete_Saved_Version';
9090 l_chr_id					CONSTANT NUMBER  := p_chr_id;
9091 
9092 G_EXCEPTION_HALT_VALIDATION EXCEPTION;
9093 BEGIN
9094 
9095     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
9096 					           p_init_msg_list,
9097 					                    '_PUB',
9098                                          x_return_status);
9099 
9100     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR)
9101     THEN
9102       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
9103     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR)
9104     THEN
9105       raise OKC_API.G_EXCEPTION_ERROR;
9106     ELSIF l_return_status IS NULL
9107     THEN
9108        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
9109     END IF;
9110 
9111 
9112 				DELETE OKS_ACTION_TIME_TYPES_H
9113 				WHERE dnz_chr_id = l_chr_id
9114 				And major_version = -1;
9115 
9116 				DELETE OKS_ACTION_TIMES_H
9117 				WHERE dnz_chr_id = l_chr_id
9118 				And major_version = -1;
9119 
9120 				DELETE OKS_COVERAGE_TIMES_H
9121 				WHERE dnz_chr_id = l_chr_id
9122 				And major_version = -1;
9123 
9124 				DELETE OKS_COVERAGE_TIMEZONES_H
9125 				WHERE dnz_chr_id = l_chr_id
9126 				And major_version = -1;
9127 
9128 				DELETE OKS_BILLRATE_SCHEDULES_H
9129 				WHERE dnz_chr_id = l_chr_id
9130 				And major_version = -1;
9131 
9132 
9133 
9134 
9135 OKS_PM_PROGRAMS_PVT.Delete_PMSaved_Version(
9136                 p_api_version       =>  l_api_version,
9137                 p_init_msg_list     =>  l_init_msg_list,
9138                 x_return_status     =>  l_return_status,
9139                 x_msg_count         =>  l_msg_count,
9140                 x_msg_data          =>  l_msg_data,
9141                 p_chr_id            =>  l_chr_id);
9142 
9143 
9144     IF l_return_Status = 'S' THEN
9145         x_return_status :=  OKC_API.G_RET_STS_SUCCESS;
9146     ELSE
9147         RAISE G_EXCEPTION_HALT_VALIDATION;
9148     END IF;
9149 
9150 EXCEPTION
9151 
9152    WHEN G_EXCEPTION_HALT_VALIDATION THEN
9153 
9154        OKC_API.SET_MESSAGE(
9155         p_app_name        => g_app_name,
9156         p_msg_name        => g_unexpected_error,
9157         p_token1                => g_sqlcode_token,
9158         p_token1_value    => sqlcode,
9159         p_token2          => g_sqlerrm_token,
9160         p_token2_value    => sqlerrm);
9161        -- notify caller of an error as UNEXPETED error
9162         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9163         x_msg_count :=l_msg_count;
9164 
9165 
9166 
9167     WHEN OKC_API.G_EXCEPTION_ERROR THEN
9168       x_return_status := OKC_API.HANDLE_EXCEPTIONS
9169       (l_api_name,
9170        G_PKG_NAME,
9171        'OKC_API.G_RET_STS_ERROR',
9172        x_msg_count,
9173        x_msg_data,
9174        '_PUB');
9175     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
9176       x_return_status := OKC_API.HANDLE_EXCEPTIONS
9177       (l_api_name,
9178        G_PKG_NAME,
9179        'OKC_API.G_RET_STS_UNEXP_ERROR',
9180        x_msg_count,
9181        x_msg_data,
9182        '_PUB');
9183     WHEN OTHERS THEN
9184       OKC_API.set_message(p_app_name      => g_app_name,
9185                           p_msg_name      => g_unexpected_error,
9186                           p_token1        => g_sqlcode_token,
9187                           p_token1_value  => sqlcode,
9188                           p_token2        => g_sqlerrm_token,
9189                           p_token2_value  => sqlerrm);
9190       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9191     ROLLBACK ;
9192 END Delete_Saved_Version;
9193 --===========================================================================
9194 
9195 PROCEDURE COPY_K_HDR_NOTES
9196            (p_api_version           IN NUMBER ,
9197             p_init_msg_list         IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
9198             p_chr_id               IN NUMBER,
9199             x_return_status         OUT NOCOPY VARCHAR2,
9200             x_msg_count             OUT NOCOPY NUMBER,
9201             x_msg_data              OUT NOCOPY VARCHAR2) IS
9202 
9203 l_created_by NUMBER         := NULL;
9204 l_last_updated_by NUMBER    := NULL;
9205 l_last_update_login NUMBER  := NULL;
9206 l_old_Chr_ID    NUMBER := 0;
9207 
9208 
9209 l_Return_Status Varchar2(1);
9210 l_msg_count             NUMBER;
9211 l_msg_data              VARCHAR2(1000);
9212 l_jtf_note_id           NUMBER;
9213 l_jtf_note_contexts_tab jtf_notes_pub.jtf_note_contexts_tbl_type;
9214 
9215 CURSOR Get_Orig_System_Id_Cur(l_chr_id IN NUMBER) IS
9216 SELECT ORIG_SYSTEM_ID1, Created_By,LAst_Updated_By,Last_Update_Login
9217 FROM   OKC_K_HEADERS_B
9218 WHERE   ID = l_chr_id;
9219 
9220 
9221 
9222 BEGIN
9223 
9224         --For Get_Orig_System_Id_Rec IN Get_Orig_System_Id_Cur(P_source_object_id) LOOP
9225         For Get_Orig_System_Id_Rec IN Get_Orig_System_Id_Cur(P_chr_id) LOOP
9226             l_old_Chr_ID := Get_Orig_System_Id_Rec.ORIG_SYSTEM_ID1;
9227           /* Modified by Jvorugan for Bug:4489214 who columns not to be populated from old contract
9228 	    l_created_by := Get_Orig_System_Id_Rec.created_by;
9229             l_last_updated_by := Get_Orig_System_Id_Rec.last_updated_by;
9230             l_last_update_login := Get_Orig_System_Id_Rec.last_update_login;  */
9231         END LOOP;
9232 
9233          Get_Notes_Details( P_source_object_id   =>  l_old_chr_id,
9234                             X_Notes_TBL          =>  l_Notes_TBL,
9235                             X_Return_Status      =>  l_Return_Status,
9236                             P_source_object_code =>  'OKS_HDR_NOTE'); -- Bug:5944200
9237 
9238 
9239 
9240         IF    l_Return_Status = 'S' THEN
9241 
9242             IF   (l_Notes_TBL.COUNT > 0) THEN
9243                 FOR I IN l_Notes_TBL.FIRST .. l_Notes_TBL.LAST LOOP
9244 
9245                 JTF_NOTES_PUB.create_note
9246                   ( p_jtf_note_id           => NULL--:JTF_NOTES.JTF_NOTE_ID
9247                   , p_api_version           => 1.0
9248                   , p_init_msg_list         => 'F'
9249                   , p_commit                => 'F'
9250                   , p_validation_level      => 0
9251                   , x_return_status         => l_return_status
9252                   , x_msg_count             => l_msg_count
9253                   , x_msg_data              => l_msg_data
9254                   , p_source_object_code    => l_Notes_TBL(i).source_object_code
9255                   , p_source_object_id      => p_chr_id
9256                   , p_notes                 => l_Notes_TBL(i).notes
9257                   , p_notes_detail          => l_Notes_TBL(i).notes_Detail
9258                   , p_note_status           => l_Notes_TBL(i).note_status
9259                   , p_note_type             => l_Notes_TBL(i).note_type
9260                   , p_entered_by            => l_Notes_TBL(i).entered_by   -- -1 Modified for Bug:4489214
9261                   , p_entered_date          => l_Notes_TBL(i).entered_date -- SYSDATE Modified for Bug:4489214
9262                   , x_jtf_note_id           => l_jtf_note_id
9263                   , p_creation_date         => SYSDATE
9264                   , p_created_by            => FND_GLOBAL.USER_ID        --  created_by Modified for Bug:4489214
9265                   , p_last_update_date      => SYSDATE
9266                   , p_last_updated_by       => FND_GLOBAL.USER_ID        -- l_last_updated_by Modified for Bug:4489214
9267                   , p_last_update_login     => FND_GLOBAL.LOGIN_ID       -- l_last_update_login Modified for Bug:4489214
9268                   , p_attribute1            => NULL
9269                   , p_attribute2            => NULL
9270                   , p_attribute3            => NULL
9271                   , p_attribute4            => NULL
9272                   , p_attribute5            => NULL
9273                   , p_attribute6            => NULL
9274                   , p_attribute7            => NULL
9275                   , p_attribute8            => NULL
9276                   , p_attribute9            => NULL
9277                   , p_attribute10           => NULL
9278                   , p_attribute11           => NULL
9279                   , p_attribute12           => NULL
9280                   , p_attribute13           => NULL
9281                   , p_attribute14           => NULL
9282                   , p_attribute15           => NULL
9283                   , p_context               => NULL
9284                   , p_jtf_note_contexts_tab => l_jtf_note_contexts_tab);
9285 
9286                 END LOOP;
9287             END IF;
9288 
9289         END IF;
9290 
9291       x_return_status := OKC_API.G_RET_STS_SUCCESS;
9292 
9293 EXCEPTION
9294 
9295   WHEN OTHERS THEN
9296 
9297       OKC_API.set_message(G_APP_NAME,
9298                           G_UNEXPECTED_ERROR,
9299                           G_SQLCODE_TOKEN,
9300                           SQLCODE,
9301                           G_SQLERRM_TOKEN,
9302                           SQLERRM);
9303 
9304       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
9305 
9306 END COPY_K_HDR_NOTES;
9307 
9308 PROCEDURE Update_dnz_chr_id
9309            (p_coverage_id          IN NUMBER ,
9310             p_dnz_chr_id           IN NUMBER) IS
9311 
9312  -- coverage --
9313    l_clev_tbl_in             okc_contract_pub.clev_tbl_type;
9314    l_clev_tbl_out            okc_contract_pub.clev_tbl_type;
9315  -- End --
9316   -- OKC_K_ITEMS
9317   l_cimv_tbl_in             okc_contract_item_pub.cimv_tbl_type;
9318   l_cimv_tbl_out            okc_contract_item_pub.cimv_tbl_type;
9319   --
9320   -- OKS_K_LINES_B
9321      l_klnv_tbl_in            oks_contract_line_pub.klnv_tbl_type ;
9322     l_klnv_tbl_out           oks_contract_line_pub.klnv_tbl_type ;
9323 
9324   l_timezone_tbl_in    OKS_CTZ_PVT.OksCoverageTimezonesVTblType ;
9325   l_timezone_tbl_out   OKS_CTZ_PVT.OksCoverageTimezonesVTblType ;
9326 
9327  l_cov_time_tbl_in     OKS_CVT_PVT.oks_coverage_times_v_tbl_type;
9328  l_cov_time_tbl_out    OKS_CVT_PVT.oks_coverage_times_v_tbl_type;
9329  --  END
9330 
9331 -- Reaction Time --
9332   l_act_type_tbl_in         OKS_ACT_PVT.OksActionTimeTypesVTblType;
9333   l_act_type_tbl_out        OKS_ACT_PVT.OksActionTimeTypesVTblType;
9334 
9335   l_act_time_tbl_in         OKS_ACM_PVT.OKS_ACTION_TIMES_V_TBL_TYPE;
9336   l_act_time_tbl_out        OKS_ACM_PVT.OKS_ACTION_TIMES_V_TBL_TYPE;
9337 
9338 -- End Reaction Time  --
9339 
9340 -- Preffered Resource  --
9341    l_cplv_tbl_in             okc_contract_party_pub.cplv_tbl_type;
9342   l_cplv_tbl_out            okc_contract_party_pub.cplv_tbl_type;
9343   --
9344    l_ctcv_tbl_in             okc_contract_party_pub.ctcv_tbl_type;
9345   l_ctcv_tbl_out            okc_contract_party_pub.ctcv_tbl_type;
9346  -- end Resource --
9347 
9348  -- Bill Rate  --
9349  l_bill_rate_tbl_in        OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE;
9350  l_bill_rate_tbl_out       OKS_BRS_PVT.OKSBILLRATESCHEDULESVTBLTYPE;
9351 
9352  -- End Bill Rate --
9353 
9354  -- Preventive Maintainance --
9355  -- OKs_Pm_stream_levels
9356  l_pmlv_tbl_in   	    OKS_PML_PVT.PMLV_TBL_TYPE;
9357   l_pmlv_tbl_out   	    OKS_PML_PVT.PMLV_TBL_TYPE;
9358   -- Oks_pm_stream_levels
9359   -- OKs_Pm_schedules
9360  l_pms_tbl_in  oks_pms_pvt.oks_pm_schedules_v_tbl_type;
9361  l_pms_tbl_out oks_pms_pvt.oks_pm_schedules_v_tbl_type;
9362   -- Oks_Pm_schedules
9363   -- OKS_PM_ACTIVITIES --
9364   l_pmav_tbl_in		    OKS_PMA_PVT.pmav_tbl_type;
9365   l_pmav_tbl_out	    OKS_PMA_PVT.pmav_tbl_type;
9366   -- OKS_PM_ACTIVITIES --
9367  -- End Preventive Maintainance --
9368 
9369 Cursor Cur_react_time (p_id NUMBER) IS
9370 Select id,dnz_chr_id from OKC_K_LINES_B
9371 Where cle_id = p_id
9372 And Lse_id  in (4,17);
9373 
9374 Cursor cur_act_times (p_id NUMBER) IS
9375 Select id,dnz_chr_id,object_version_number from OKS_ACTION_TIMES
9376 where  COV_ACTION_TYPE_ID = p_id;
9377 
9378 
9379 
9380 cursor cur_act_time_type (p_id NUMBER) IS
9381 Select id,dnz_chr_id,object_version_number  from OKS_ACTION_TIME_TYPES
9382 where cle_id = p_id
9383 AND ACTION_TYPE_CODE IN ('RCN', 'RSN');
9384 
9385 
9386 Cursor cur_oks_id (p_id NUMBER) IS
9387 Select id,dnz_chr_id,cle_id,sfwt_flag,object_version_number from OKS_K_LINES_V
9388 where cle_id = p_id;
9389 
9390 
9391 
9392 -- Time Zone  --
9393   CURSOR 	csr_TZ_id(l_cle_id NUMBER) IS
9394           	SELECT id,dnz_chr_id,object_version_number from OKS_COVERAGE_TIMEZONES
9395           	WHERE  cle_id = l_cle_id;
9396   CURSOR 	csr_Times_id(l_cle_id NUMBER) IS
9397           	SELECT id,dnz_chr_id,object_version_number from OKS_COVERAGE_TIMES
9398           	WHERE  cov_tze_line_id = l_cle_id;
9399 
9400 -- End Time Zone --
9401 
9402 -- Business Process --
9403 
9404       CURSOR 	csr_BP_id(l_cle_id NUMBER) IS
9405           	SELECT id,dnz_chr_id from okc_k_lines_b
9406           	WHERE  cle_id = l_cle_id
9407 		AND LSE_ID IN (3,16);
9408 
9409 -- End Business Process--
9410 
9411 
9412 Cursor cur_party (P_id NUMBER) IS
9413 Select id,dnz_chr_id,chr_id,cpl_id,primary_yn,small_business_flag,women_owned_flag,cle_id,
9414 JTOT_OBJECT1_CODE,object1_id1,rle_code from OKC_K_PARTY_ROLES_V
9415 Where cle_id = p_id
9416 And   dnz_chr_id = p_dnz_chr_id;
9417 
9418 
9419 Cursor cur_contact (P_id NUMBER) IS
9420 Select id,dnz_chr_id,cro_code,cpl_id,primary_yn,resource_class from OKC_CONTACTS
9421 Where cpl_id = p_id;
9422 
9423 -- Billing Type  --
9424 Cursor cur_bill_type (p_id NUMBER) IS
9425 Select id,dnz_chr_id from OKC_K_LINES_B
9426 where cle_id=p_id
9427 and lse_id in ( 5,59,23);
9428 
9429 Cursor cur_item (p_id NUMBER) IS
9430 Select id,dnz_chr_id,jtot_object1_code,object1_id1,cle_id,chr_id,cle_id_for,exception_yn,
9431 PRICED_ITEM_YN,uom_code from OKC_K_ITEMS
9432 where cle_id = p_id;
9433 
9434 
9435 -- End Billing Type --
9436 
9437 -- Bill Rate  --
9438 Cursor cur_bill_sch (p_id NUMBER) IS
9439 Select id,dnz_chr_id,object_version_number from OKS_BILLRATE_SCHEDULES
9440 Where CLE_ID =p_id;
9441 
9442 Cursor cur_bill_rate (p_id NUMBER) IS
9443 Select id,dnz_chr_id from OKC_K_LINES_B
9444 where cle_id=p_id
9445 and lse_id in (6,60,24);
9446 -- End Bill Rate --
9447 -- Coverage_id --
9448 Cursor Cur_Coverage (p_id NUMBER) IS
9449 Select dnz_chr_id from OKC_K_LINES_B
9450 where id =p_id ;
9451 -- End Coverage id --
9452 
9453 
9454 --  Variable Used --
9455 l_coverage_id     NUMBER;
9456 l_dnz_chr_id     NUMBER:= -1;
9457 l_oks_line_id     NUMBER;
9458 l_cle_id          NUMBER;
9459 l_api_version		CONSTANT	NUMBER	:= 1.0;
9460 l_init_msg_list	        CONSTANT	VARCHAR2(1) := OKC_API.G_TRUE;
9461 l_return_status		    	        VARCHAR2(1) := 'S';
9462 l_msg_count  				Number;
9463 l_msg_data   				Varchar2(240);
9464 l_validate_yn                           VARCHAR2(1) := 'N';
9465 cnt                           NUMBER;
9466 cnt1                          NUMBER;
9467 
9468 
9469 
9470 -- End --
9471 -- Preventive Maintainance --
9472 Cursor cur_pm_act (p_id NUMBER) IS
9473 Select id,dnz_chr_id ,object_version_number
9474 from OKS_PM_ACTIVITIES
9475 Where cle_id=p_id;
9476 
9477 cursor cur_pm_sch (p_id NUMBER) IS
9478 Select id , dnz_chr_id,OBJECT_VERSION_NUMBER
9479 from  OKS_PM_SCHEDULES
9480 Where cle_id=p_id;
9481 
9482 Cursor cur_pm_stream (p_id NUMBER) IS
9483 Select id,dnz_chr_id ,OBJECT_VERSION_NUMBER
9484 from OKS_PM_STREAM_LEVELS
9485 Where cle_id=p_id;
9486 -- Preventive Maintanance --
9487 
9488 
9489 Begin
9490 
9491 
9492 
9493 -- Check the Status of Warranty_YN Check Box
9494 -- If checked then set dnz_chr_id = -2
9495 -- else set dnz_chr_id = -1
9496 
9497 l_coverage_id  :=p_coverage_id;
9498 l_dnz_chr_id := p_dnz_chr_id;
9499 cnt :=0;
9500 cnt1 :=0;
9501  Open Cur_Coverage(p_coverage_id);
9502  fetch Cur_Coverage into l_dnz_chr_id ;
9503  close Cur_Coverage;
9504 
9505 IF l_dnz_chr_id <> p_dnz_chr_id then
9506  -- Coverage --
9507   l_clev_tbl_in(1).id                := l_coverage_id;
9508   l_clev_tbl_in(1).dnz_chr_id 		 := p_dnz_chr_id;
9509 
9510   okc_contract_pub.update_contract_line (
9511    	  p_api_version						    => l_api_version,
9512   	  p_init_msg_list					    => l_init_msg_list,
9513       x_return_status					    => l_return_status,
9514       x_msg_count							=> l_msg_count,
9515       x_msg_data							=> l_msg_data,
9516       p_restricted_update                   => 'F',
9517       p_clev_tbl							=> l_clev_tbl_in,
9518       x_clev_tbl							=> l_clev_tbl_out
9519       );
9520 
9521  End if ;
9522 
9523  For rec_line in  cur_oks_id (l_coverage_id) LOOP
9524   IF rec_line.dnz_chr_id <> p_dnz_chr_id then
9525 
9526     l_klnv_tbl_in(cnt).id                    :=  rec_line.id;
9527     l_klnv_tbl_in(cnt).dnz_chr_id            :=  p_dnz_chr_id;
9528     l_klnv_tbl_in(cnt).cle_id                :=  rec_line.cle_id;
9529     l_klnv_tbl_in(cnt).sfwt_flag            :=  rec_line.sfwt_flag;
9530     l_klnv_tbl_in(cnt).object_version_number :=  rec_line.object_version_number;
9531 
9532 
9533     cnt :=cnt+1;
9534     End if;
9535  End LOOP;
9536   if cnt>0 then
9537 
9538        OKS_CONTRACT_LINE_PUB.UPDATE_LINE(
9539                                    p_api_version     => l_api_version,
9540                                    p_init_msg_list   => l_init_msg_list,
9541                                    x_return_status   => l_return_status,
9542                                    x_msg_count       => l_msg_count,
9543                                    x_msg_data        => l_msg_data,
9544                                    p_klnv_tbl        => l_klnv_tbl_in,
9545                                    x_klnv_tbl        => l_klnv_tbl_out,
9546                                    p_validate_yn     => l_validate_yn);
9547    End if;
9548 -- coverage End --
9549 
9550  cnt :=0;
9551 
9552  -- Preventive Maintainance  --
9553  For rec_pma in  cur_pm_act (l_coverage_id) LOOP
9554    IF rec_pma.dnz_chr_id <> p_dnz_chr_id then
9555      l_pmav_tbl_in(cnt).id         := rec_pma.id;
9556      l_pmav_tbl_in(cnt).dnz_chr_id := p_dnz_chr_id;
9557      l_pmav_tbl_in(cnt).object_version_number := rec_pma.object_version_number;
9558      cnt :=cnt+1;
9559    End if;
9560  End LOOP;
9561  If cnt>0 Then
9562  -- OKS_PM_ACTIVITIES
9563    oks_pma_pvt.update_row (
9564   p_api_version     => l_api_version,
9565              p_init_msg_list   => l_init_msg_list,
9566              x_return_status   => l_return_status,
9567           x_msg_count				=> l_msg_count,
9568           x_msg_data				=> l_msg_data,
9569           p_pmav_tbl				=> l_pmav_tbl_in,
9570     	  x_pmav_tbl				=> l_pmav_tbl_out);
9571  End if;
9572 
9573  cnt:=0;
9574  For rec_sch in  cur_pm_sch (l_coverage_id) LOOP
9575    IF rec_sch.dnz_chr_id <> p_dnz_chr_id then
9576       l_pms_tbl_in(cnt).id         := rec_sch.id;
9577       l_pms_tbl_in(cnt).dnz_chr_id := p_dnz_chr_id;
9578       l_pms_tbl_in(cnt).OBJECT_VERSION_NUMBER   :=rec_sch.OBJECT_VERSION_NUMBER;
9579       cnt :=cnt+1;
9580    End if;
9581  End LOOP;
9582  If cnt>0 Then
9583     -- OKS_PM_SCHEDULES --
9584     OKS_PMS_PVT.update_row(
9585  p_api_version     => l_api_version,
9586  p_init_msg_list   => l_init_msg_list,
9587  x_return_status   => l_return_status,
9588     x_msg_count		=> l_msg_count ,
9589     x_msg_data		=> l_msg_data  ,
9590     p_oks_pm_schedules_v_tbl => l_pms_tbl_in,
9591     x_oks_pm_schedules_v_tbl =>l_pms_tbl_out);
9592  End IF;
9593 
9594  cnt :=0;
9595  For rec_stream in  cur_pm_stream (l_coverage_id) LOOP
9596   IF rec_stream.dnz_chr_id <> p_dnz_chr_id then
9597       l_pmlv_tbl_in(cnt).id :=rec_stream.id;
9598       l_pmlv_tbl_in(cnt).dnz_chr_id :=p_dnz_chr_id;
9599       l_pmlv_tbl_in(cnt).OBJECT_VERSION_NUMBER :=rec_stream.OBJECT_VERSION_NUMBER;
9600       cnt :=cnt+1;
9601    End if;
9602  End LOOP;
9603  If cnt>0 Then
9604       -- OKS_PM_STRAM_LEVELS
9605      oks_pml_pvt.update_row (
9606    	  p_api_version     => l_api_version,
9607       p_init_msg_list   => l_init_msg_list,
9608       x_return_status   => l_return_status,
9609           x_msg_count				=> l_msg_count,
9610           x_msg_data				=> l_msg_data,
9611           p_pmlv_tbl				=> l_pmlv_tbl_in,
9612     	  x_pmlv_tbl				=> l_pmlv_tbl_out
9613     );
9614  End if;
9615 
9616 
9617  -- End Preventive Maintainance --
9618 
9619 
9620 
9621 
9622 cnt:=0;
9623 -- Business Process  --
9624 --oksaucvt_tool_box.init_contract_line (l_clev_tbl_in);
9625 FOR rec_bp in csr_bp_id(l_coverage_id) LOOP
9626 
9627  IF rec_bp.dnz_chr_id <> p_dnz_chr_id then
9628 
9629 	l_clev_tbl_in(cnt).id	                 := rec_bp.id;
9630 	l_clev_tbl_in(cnt).dnz_chr_id            :=p_dnz_chr_id;
9631 	cnt :=cnt+1;
9632  End If;
9633 -- Contract Item
9634 
9635    --oksaucvt_tool_box.init_contract_item (l_cimv_tbl_in);
9636 
9637 FOR rec_item in cur_item(rec_bp.id) LOOP
9638  IF rec_item.dnz_chr_id <>p_dnz_chr_id Then
9639    l_cimv_tbl_in(cnt1).id	    	       := rec_item.id;
9640    l_cimv_tbl_in(cnt1).cle_id		       := rec_item.cle_id;
9641    l_cimv_tbl_in(cnt1).dnz_chr_id         := p_dnz_chr_id;
9642    l_cimv_tbl_in(cnt1).jtot_object1_code  := rec_item.jtot_object1_code;
9643    l_cimv_tbl_in(cnt1).cle_id_for         := rec_item.cle_id_for;
9644     l_cimv_tbl_in(cnt1).PRICED_ITEM_YN  := rec_item.PRICED_ITEM_YN;
9645    l_cimv_tbl_in(cnt1).chr_id         := rec_item.chr_id;
9646    l_cimv_tbl_in(cnt1).exception_yn  := rec_item.exception_yn;
9647    l_cimv_tbl_in(cnt1).object1_id1  := rec_item.object1_id1;
9648 
9649    cnt1 :=cnt1+1;
9650   End if;
9651 End LOOP;
9652 If cnt1>0 then
9653    okc_contract_item_pub.update_contract_item (
9654    	 p_api_version     => l_api_version,
9655      p_init_msg_list   => l_init_msg_list,
9656      x_return_status   => l_return_status,
9657      x_msg_count	   => l_msg_count,
9658      x_msg_data		   => l_msg_data,
9659      p_cimv_tbl		   => l_cimv_tbl_in,
9660      x_cimv_tbl	       => l_cimv_tbl_out );
9661  End if;
9662 -- End Contract Item
9663 -- OKS_K_LINES_B
9664 cnt1 :=0;
9665   For rec_line in  cur_oks_id (rec_bp.id) LOOP
9666 
9667      If rec_line.dnz_chr_id <>p_dnz_chr_id then
9668 	  l_klnv_tbl_in(cnt1).id                    :=  rec_line.id;
9669     l_klnv_tbl_in(cnt1).dnz_chr_id            :=  p_dnz_chr_id;
9670     l_klnv_tbl_in(cnt1).cle_id                :=  rec_line.cle_id;
9671     l_klnv_tbl_in(cnt1).sfwt_flag            :=  rec_line.sfwt_flag;
9672     l_klnv_tbl_in(cnt1).object_version_number :=  rec_line.object_version_number;
9673 	   cnt1 :=cnt1+1;
9674     End if;
9675 
9676   End LOOP;
9677 If cnt1>0 Then
9678  OKS_CONTRACT_LINE_PUB.UPDATE_LINE(
9679                   p_api_version     => l_api_version,
9680                   p_init_msg_list   => l_init_msg_list,
9681                   x_return_status   => l_return_status,
9682                   x_msg_count       => l_msg_count,
9683                   x_msg_data        => l_msg_data,
9684                   p_klnv_tbl        => l_klnv_tbl_in,
9685                   x_klnv_tbl        => l_klnv_tbl_out,
9686                   p_validate_yn     => l_validate_yn);
9687 End if ;
9688   -- End OKS_K_LINES_B --
9689  cnt1 :=0;
9690 
9691 End Loop; -- end Loop BP
9692 
9693 If  cnt>0 Then
9694       okc_contract_pub.update_contract_line (
9695    	  p_api_version						    => l_api_version,
9696   	  p_init_msg_list					    => l_init_msg_list,
9697       x_return_status					    => l_return_status,
9698       x_msg_count							=> l_msg_count,
9699       x_msg_data							=> l_msg_data,
9700       p_restricted_update                   => 'F',
9701       p_clev_tbl							=> l_clev_tbl_in,
9702       x_clev_tbl							=> l_clev_tbl_out);
9703 End if;
9704 
9705 -- End Business process--
9706 cnt :=0;
9707 
9708 
9709 -- Reaction Time  --
9710 FOR rec_bp in csr_bp_id(l_coverage_id ) LOOP
9711       FOR rec_react IN cur_react_time (rec_bp.id) LOOP
9712 
9713  If rec_react.dnz_chr_id<>p_dnz_chr_id then
9714    	 l_clev_tbl_in(cnt).dnz_chr_id	 := p_dnz_chr_id;
9715 	 l_clev_tbl_in(cnt).id			 := rec_react.id;
9716     cnt :=cnt+1;
9717   End If;
9718    -- Fetch OKS_K_LINES id
9719   cnt1 :=0;
9720   For rec_line in  cur_oks_id (rec_react.id) LOOP
9721 
9722   IF rec_line.dnz_chr_id<>p_dnz_chr_id then
9723       l_klnv_tbl_in(cnt1).id                    :=  rec_line.id;
9724     l_klnv_tbl_in(cnt1).dnz_chr_id            :=  p_dnz_chr_id;
9725     l_klnv_tbl_in(cnt1).cle_id                :=  rec_line.cle_id;
9726     l_klnv_tbl_in(cnt1).sfwt_flag            :=  rec_line.sfwt_flag;
9727     l_klnv_tbl_in(cnt1).object_version_number :=  rec_line.object_version_number;
9728      cnt1 :=cnt1+1;
9729    End if ;
9730   End Loop;
9731  If cnt1>0 then
9732        OKS_CONTRACT_LINE_PUB.UPDATE_LINE(
9733                    	  p_api_version						    => l_api_version,
9734   	  p_init_msg_list					    => l_init_msg_list,
9735       x_return_status					    => l_return_status,
9736       x_msg_count							=> l_msg_count,
9737       x_msg_data							=> l_msg_data,
9738                     p_klnv_tbl        => l_klnv_tbl_in,
9739                     x_klnv_tbl        => l_klnv_tbl_out,
9740                     p_validate_yn     => l_validate_yn);
9741  End if;
9742   -- update the oks_action_types line
9743 cnt1 :=0;
9744 for rec_type in cur_act_time_type ( rec_react.id) LOOP
9745 
9746   if rec_type.dnz_chr_id<>p_dnz_chr_id THEN
9747     l_act_type_tbl_in(cnt1).dnz_chr_id        := p_dnz_chr_id;
9748     l_act_type_tbl_in(cnt1).id                := rec_type.id;
9749     l_act_type_tbl_in(cnt1).object_version_number := rec_type.object_version_number;
9750     cnt1 := cnt1+1;
9751 
9752    End if;
9753  End LOOP;
9754  If cnt1>0  Then
9755  OKS_ACT_PVT.Update_ROW(
9756       p_api_version						    => l_api_version,
9757   	  p_init_msg_list					    => l_init_msg_list,
9758       x_return_status					    => l_return_status,
9759       x_msg_count							=> l_msg_count,
9760       x_msg_data							=> l_msg_data,
9761                         p_oks_action_time_types_v_tbl => l_act_type_tbl_in,
9762                         x_oks_action_time_types_v_tbl => l_act_type_tbl_out);
9763   End if;
9764 
9765      cnt1 :=0;
9766    -- End Update oks_action_types line
9767     -- Update the oks_action_times_line
9768  for rec_type in cur_act_time_type ( rec_react.id) LOOP
9769   for rec_time in cur_act_times (rec_type.id) LOOP
9770 
9771    If rec_time.dnz_chr_id <>p_dnz_chr_id then
9772 
9773 	  l_act_time_tbl_in(cnt1).dnz_chr_id             :=p_dnz_chr_id;
9774 	  l_act_time_tbl_in(cnt1).id                     :=rec_time.id;
9775      l_act_time_tbl_in(cnt1).object_version_number   :=rec_time.object_version_number;
9776       cnt1 :=cnt1+1;
9777 
9778     End if;
9779    End LOOP;
9780   End LOOP;
9781   If cnt1>0 Then
9782      OKS_ACM_PVT.UPDATE_ROW(  	  p_api_version						    => l_api_version,
9783   	  p_init_msg_list					    => l_init_msg_list,
9784       x_return_status					    => l_return_status,
9785       x_msg_count							=> l_msg_count,
9786       x_msg_data							=> l_msg_data,
9787                          p_oks_action_times_v_tbl => l_act_time_tbl_in,
9788                          x_oks_action_times_v_tbl => l_act_time_tbl_out);
9789   End if;
9790     -- End oks_action_times_line
9791 cnt1:=0;
9792       END LOOP;	-- Reaction Time
9793  End LOOP; -- BP
9794  if cnt>0 Then
9795    okc_contract_pub.update_contract_line (
9796    	  p_api_version						    => l_api_version,
9797   	  p_init_msg_list					    => l_init_msg_list,
9798       x_return_status					    => l_return_status,
9799       x_msg_count							=> l_msg_count,
9800       x_msg_data							=> l_msg_data,
9801       p_restricted_update                   => 'F',
9802       p_clev_tbl							=> l_clev_tbl_in,
9803       x_clev_tbl							=> l_clev_tbl_out );
9804   End if;
9805 -- End Reaction Time --
9806 
9807 cnt :=0;
9808 
9809 -- Resource --
9810  FOR rec_bp in csr_bp_id(p_coverage_id) LOOP
9811    For rec_part in Cur_party (rec_bp.id) LOOP
9812    IF rec_part.dnz_chr_id <>p_dnz_chr_id Then
9813        l_cplv_tbl_in(cnt).dnz_chr_id                := p_dnz_chr_id;
9814        l_cplv_tbl_in(cnt).id                        :=  rec_part.id;
9815        l_cplv_tbl_in(cnt).chr_id                    :=  rec_part.chr_id;
9816        l_cplv_tbl_in(cnt).cle_id                        :=  rec_part.cle_id;
9817        l_cplv_tbl_in(cnt).cpl_id                        :=  rec_part.cpl_id;
9818        l_cplv_tbl_in(cnt).small_business_flag           :=  rec_part.small_business_flag;
9819        l_cplv_tbl_in(cnt).women_owned_flag                        :=  rec_part.women_owned_flag;
9820        l_cplv_tbl_in(cnt).primary_yn                        :=  rec_part.primary_yn;
9821          l_cplv_tbl_in(cnt).JTOT_OBJECT1_CODE           :=  rec_part.JTOT_OBJECT1_CODE;
9822        l_cplv_tbl_in(cnt).object1_id1                        :=  rec_part.object1_id1;
9823        l_cplv_tbl_in(cnt).rle_code                        :=  rec_part.rle_code;
9824 
9825        cnt :=cnt+1;
9826    End if;
9827   -- OKC_CONTACTS --
9828   cnt1 :=0;
9829    For rec_con in cur_contact (rec_part.id) LOOP
9830      If rec_con.dnz_chr_id <>p_dnz_chr_id then
9831     	l_ctcv_tbl_in(cnt1).id           := rec_con.id;
9832     	l_ctcv_tbl_in(cnt1).dnz_chr_id   := p_dnz_chr_id;
9833      l_ctcv_tbl_in(cnt1).cro_code           := rec_con.cro_code;
9834      l_ctcv_tbl_in(cnt1).cpl_id           := rec_con.cpl_id;
9835      l_ctcv_tbl_in(cnt1).primary_yn           := rec_con.primary_yn;
9836      l_ctcv_tbl_in(cnt1).resource_class           := rec_con.resource_class;
9837         cnt1 :=cnt1+1;
9838       End if;
9839    End LOOP;
9840  If cnt1>0 Then
9841     okc_contract_party_pub.update_contact (
9842    	  p_api_version						    => l_api_version,
9843   	  p_init_msg_list					    => l_init_msg_list,
9844       x_return_status					    => l_return_status,
9845       x_msg_count							=> l_msg_count,
9846       x_msg_data							=> l_msg_data,
9847       p_ctcv_tbl							=> l_ctcv_tbl_in,
9848     	x_ctcv_tbl							=> l_ctcv_tbl_out );
9849  End if;
9850  -- OKC_CONTACTS --
9851    End LOOP; -- End Party Roles
9852  End LOOP; -- End Bp
9853  If cnt>0 then
9854  okc_contract_party_pub.update_k_party_role (
9855   p_api_version						    => l_api_version,
9856   	  p_init_msg_list					    => l_init_msg_list,
9857       x_return_status					    => l_return_status,
9858       x_msg_count					=> l_msg_count,
9859       x_msg_data					=> l_msg_data,
9860       p_cplv_tbl					=> l_cplv_tbl_in,
9861       x_cplv_tbl					=> l_cplv_tbl_out );
9862  End if;
9863 
9864 -- End Prefered Resource --
9865 cnt :=0;
9866 
9867 -- Billing Type --
9868 FOR rec_bp in csr_bp_id(l_coverage_id ) LOOP
9869 	For rec_bill in cur_bill_type( rec_bp.id) LOOP
9870  -- Contract Line for Billing Type
9871  If rec_bill.dnz_chr_id<>p_dnz_chr_id then
9872    l_clev_tbl_in(cnt).dnz_chr_id			 := p_dnz_chr_id;
9873    l_clev_tbl_in(cnt).id			         := rec_bill.id;
9874    cnt := cnt +1;
9875  End if;
9876  cnt1 :=0;
9877 
9878   For rec_item in cur_item (rec_bill.id) LOOP
9879 	  -- Contract Item
9880 	IF rec_item.dnz_chr_id<>p_dnz_chr_id then
9881   l_cimv_tbl_in(cnt1).id	    	       := rec_item.id;
9882    l_cimv_tbl_in(cnt1).cle_id		       := rec_item.cle_id;
9883    l_cimv_tbl_in(cnt1).dnz_chr_id         := p_dnz_chr_id;
9884    l_cimv_tbl_in(cnt1).jtot_object1_code  := rec_item.jtot_object1_code;
9885    l_cimv_tbl_in(cnt1).cle_id_for         := rec_item.cle_id_for;
9886     l_cimv_tbl_in(cnt1).PRICED_ITEM_YN  := rec_item.PRICED_ITEM_YN;
9887    l_cimv_tbl_in(cnt1).chr_id         := rec_item.chr_id;
9888    l_cimv_tbl_in(cnt1).exception_yn  := rec_item.exception_yn;
9889    l_cimv_tbl_in(cnt1).object1_id1  := rec_item.object1_id1;
9890     cnt1 :=cnt1+1;
9891     End If;
9892   End LOOP;
9893 If cnt1>0 Then
9894    okc_contract_item_pub.update_contract_item (
9895    	 p_api_version     => l_api_version,
9896      p_init_msg_list   => l_init_msg_list,
9897      x_return_status   => l_return_status,
9898      x_msg_count	   => l_msg_count,
9899      x_msg_data		   => l_msg_data,
9900      p_cimv_tbl		   => l_cimv_tbl_in,
9901      x_cimv_tbl	       => l_cimv_tbl_out );
9902      -- End OKC_K_ITEMS
9903 End if;
9904      cnt1:=0;
9905  For rec_oks_line in cur_oks_id (rec_bill.id) LOOP
9906 
9907    if rec_oks_line.dnz_chr_id<>p_dnz_chr_id then
9908      l_klnv_tbl_in(cnt1).id                    :=  rec_oks_line.id;
9909     l_klnv_tbl_in(cnt1).dnz_chr_id            :=  p_dnz_chr_id;
9910     l_klnv_tbl_in(cnt1).cle_id                :=  rec_oks_line.cle_id;
9911     l_klnv_tbl_in(cnt1).sfwt_flag            :=  rec_oks_line.sfwt_flag;
9912     l_klnv_tbl_in(cnt1).object_version_number :=  rec_oks_line.object_version_number;
9913      cnt1:=cnt1+1;
9914    End if;
9915  End LOOP;
9916 If cnt1>0 Then
9917        OKS_CONTRACT_LINE_PUB.UPDATE_LINE(
9918               p_api_version     => l_api_version,
9919      p_init_msg_list   => l_init_msg_list,
9920      x_return_status   => l_return_status,
9921      x_msg_count	   => l_msg_count,
9922      x_msg_data		   => l_msg_data,
9923               p_klnv_tbl        => l_klnv_tbl_in,
9924               x_klnv_tbl        => l_klnv_tbl_out,
9925               p_validate_yn     => l_validate_yn);
9926  end if;
9927         End LOOP;
9928 End LOOP; -- BP --
9929 If cnt>0 then
9930    okc_contract_pub.update_contract_line (
9931    	  p_api_version						    => l_api_version,
9932   	  p_init_msg_list					    => l_init_msg_list,
9933       x_return_status					    => l_return_status,
9934       x_msg_count							=> l_msg_count,
9935       x_msg_data							=> l_msg_data,
9936       p_restricted_update                   => 'F',
9937       p_clev_tbl							=> l_clev_tbl_in,
9938       x_clev_tbl							=> l_clev_tbl_out  );
9939  End if;
9940 -- BILLING Tpye ---
9941 
9942 cnt :=0;
9943 
9944 -- Billing Rate --
9945 FOR rec_bp in csr_bp_id(l_coverage_id) LOOP
9946 	For rec_bill in cur_bill_type( rec_bp.id) LOOP
9947 	   For rec_billrate in cur_bill_rate ( rec_bill.id) LOOP
9948 
9949    If rec_billrate.dnz_chr_id <> p_dnz_chr_id Then
9950 	    l_clev_tbl_in(cnt).id			 := rec_billrate.id;
9951 	    l_clev_tbl_in(cnt).dnz_chr_id		 := p_dnz_chr_id;
9952         cnt:=cnt +1;
9953    End if;
9954 	  cnt1 :=0;
9955 	  For rec_oks_line in cur_oks_id (rec_bill.id) LOOP
9956 	     If rec_oks_line.dnz_chr_id<>p_dnz_chr_id then
9957           l_klnv_tbl_in(cnt1).id                    :=  rec_oks_line.id;
9958     l_klnv_tbl_in(cnt1).dnz_chr_id            :=  p_dnz_chr_id;
9959     l_klnv_tbl_in(cnt1).cle_id                :=  rec_oks_line.cle_id;
9960     l_klnv_tbl_in(cnt1).sfwt_flag            :=  rec_oks_line.sfwt_flag;
9961     l_klnv_tbl_in(cnt1).object_version_number :=  rec_oks_line.object_version_number;
9962            cnt1 := cnt1+1;
9963          End if;
9964       End LOOP; -- End OKS_LINES
9965    If cnt1>0 Then
9966            OKS_CONTRACT_LINE_PUB.UPDATE_LINE(
9967                                 p_api_version     => l_api_version,
9968                    p_init_msg_list   => l_init_msg_list,
9969                    x_return_status   => l_return_status,
9970                    x_msg_count       => l_msg_count,
9971                    x_msg_data        => l_msg_data,
9972                                    p_klnv_tbl        => l_klnv_tbl_in,
9973                                    x_klnv_tbl        => l_klnv_tbl_out,
9974                                    p_validate_yn     => l_validate_yn);
9975    End if;
9976         cnt1:=0;
9977 
9978 
9979 	  For rec_billsch in cur_bill_sch (rec_billrate.id) LOOP
9980 
9981        If rec_billsch.dnz_chr_id <>p_dnz_chr_id then
9982 	    l_bill_rate_tbl_in(cnt1).id                :=   rec_billsch.id ;
9983 	    l_bill_rate_tbl_in(cnt1).dnz_chr_id        :=   p_dnz_chr_id;
9984         l_bill_rate_tbl_in(cnt1).object_version_number                :=   rec_billsch.object_version_number ;
9985 
9986         cnt1 :=cnt1+1;
9987 	   End if;
9988      End LOOP; -- Billsch
9989 
9990   If cnt1>0 Then
9991 
9992      OKS_BRS_PVT.UPDATE_ROW(p_api_version     => l_api_version,
9993                    p_init_msg_list   => l_init_msg_list,
9994                    x_return_status   => l_return_status,
9995                    x_msg_count       => l_msg_count,
9996                    x_msg_data        => l_msg_data,
9997                    p_oks_billrate_schedules_v_tbl => l_bill_rate_tbl_in ,
9998                    x_oks_billrate_schedules_v_tbl => l_bill_rate_tbl_out);
9999     End If;
10000    cnt1 :=0;
10001 
10002       End LOOP; -- billrate
10003     End LOOP;
10004 End LOOP; -- BP
10005 If cnt>0 Then
10006   okc_contract_pub.update_contract_line (
10007    	  p_api_version						    => l_api_version,
10008   	  p_init_msg_list					    => l_init_msg_list,
10009       x_return_status					    => l_return_status,
10010       x_msg_count							=> l_msg_count,
10011       x_msg_data							=> l_msg_data,
10012       p_restricted_update                   => 'F',
10013       p_clev_tbl							=> l_clev_tbl_in,
10014       x_clev_tbl							=> l_clev_tbl_out);
10015  End if ;
10016  cnt :=0;
10017       -- End Billing Rate --
10018 
10019 
10020  -- TimeZone--
10021  FOR rec_bp in csr_bp_id(l_coverage_id) LOOP
10022      For rec_covtz in csr_TZ_id( rec_bp.id) LOOP
10023 
10024 If rec_covtz.dnz_chr_id<>p_dnz_chr_id Then
10025   l_timezone_tbl_in(cnt).id             := rec_covtz.id;
10026   l_timezone_tbl_in(cnt).dnz_chr_id     := p_dnz_chr_id;
10027   l_timezone_tbl_in(cnt).object_version_number :=rec_covtz.object_version_number;
10028 
10029   cnt:=cnt+1;
10030 End if;
10031          End LOOP;
10032  End LOOP;
10033  if cnt>0 then
10034 
10035  OKS_CTZ_PVT.UPDATE_ROW(
10036       p_api_version						    => l_api_version,
10037   	  p_init_msg_list					    => l_init_msg_list,
10038       x_return_status					    => l_return_status,
10039       x_msg_count							=> l_msg_count,
10040       x_msg_data							=> l_msg_data,
10041       p_oks_coverage_timezones_v_tbl  => l_timezone_tbl_in,
10042       x_oks_coverage_timezones_v_tbl  => l_timezone_tbl_out);
10043  End if ;
10044  cnt:=0;
10045 
10046  -- End Time Zone--
10047  -- Times --
10048  FOR rec_bp in csr_bp_id(l_coverage_id) LOOP
10049      For rec_covtz in csr_TZ_id( rec_bp.id) LOOP
10050        For rec_times in csr_Times_id (rec_covtz.id) LOOP
10051  -- If rec_times.dnz_chr_id<>p_dnz_chr_id Then
10052      l_cov_time_tbl_in(cnt).id              := rec_times.id;
10053      l_cov_time_tbl_in(cnt).dnz_chr_id      := p_dnz_chr_id;
10054      l_cov_time_tbl_in(cnt).object_version_number :=rec_times.object_version_number;
10055 
10056      cnt :=cnt+1;
10057  -- End if;
10058        End LOOP;
10059      End LOOP;
10060  End LOOP;
10061   --If cnt>0 Then
10062     OKS_CVT_PVT.update_row(
10063                            p_api_version					    => l_api_version,
10064                            p_init_msg_list					    => l_init_msg_list,
10065                            x_return_status					    => l_return_status,
10066                            x_msg_count							=> l_msg_count,
10067                            x_msg_data							=> l_msg_data,
10068                            p_oks_coverage_times_v_tbl      => l_cov_time_tbl_in,
10069                            x_oks_coverage_times_v_tbl      =>l_cov_time_tbl_out);
10070  -- End if;
10071    -- End Times --
10072 
10073 
10074 
10075 
10076  End Update_dnz_chr_id;
10077 
10078 /* This procedure is used for creation of  PM and notes.
10079    Parameters :         p_standard_cov_id : Id of the source coverage or source contract line
10080                         p_contract_line_id : Id of the target contract line
10081    Create_K_coverage_ext can be called during the creation of service line from authoring or from renewal
10082    consolidation flow.
10083  */
10084 PROCEDURE Create_K_coverage_ext(p_api_version          IN   NUMBER,
10085                                 p_init_msg_list        IN   VARCHAR2 DEFAULT OKC_API.G_FALSE,
10086                                 p_src_line_id          IN   NUMBER,
10087                                 p_tgt_line_id          IN   NUMBER,
10088                                 x_return_status        OUT  NOCOPY   VARCHAR2,
10089                                 x_msg_count            OUT  NOCOPY   NUMBER,
10090                                 x_msg_data             OUT  NOCOPY   VARCHAR2) IS
10091 
10092 --Cursor definition
10093 /*  Modified by Jvorugan .Added p_source_object_code as input parameter.
10094     This  differentiates whether notes is associated with a standard coverage
10095     or a service line  */
10096 
10097   CURSOR CUR_GET_NOTES(p_source_object_id IN NUMBER,p_source_object_code IN VARCHAR2)
10098   IS
10099   SELECT jtf_note_id,
10100          parent_note_id,
10101          source_object_code,
10102          source_number,
10103          notes,  --
10104          notes_detail,
10105          note_status,
10106          source_object_meaning,
10107          note_type,
10108          note_type_meaning,
10109          attribute1,
10110          attribute2,
10111          attribute3,
10112          attribute4,
10113          attribute5,
10114          attribute6,
10115          attribute7,
10116          attribute8,
10117          attribute9,
10118          attribute10,
10119          attribute11,
10120          attribute12,
10121          attribute13,
10122          attribute14,
10123          attribute15,
10124          note_status_meaning,
10125          decoded_source_code,
10126          decoded_source_meaning,
10127          context
10128   FROM JTF_NOTES_VL
10129   WHERE source_object_id = p_source_object_id
10130   AND   source_object_code = p_source_object_code       --  'OKS_COVTMPL_NOTE'
10131   AND   note_status <> (case when p_source_object_code ='OKS_COVTMPL_NOTE' THEN 'P' ELSE '!' END);
10132        -- Commented by Jvorugan. note_status <> 'P';
10133 
10134 CURSOR CUR_GET_LINE_DATES IS
10135 SELECT  start_date,
10136         end_date
10137 FROM    OKC_K_LINES_B
10138 WHERE   ID = p_tgt_line_id; --p_contract_line_id;
10139 
10140 -- Modified by Jvorugan for Bug:4610475. Added pm_sch_exists_yn,pm_conf_req_yn
10141 CURSOR CUR_CHECK_PM_PROG IS
10142 SELECT  pm_program_id,pm_sch_exists_yn,pm_conf_req_yn
10143 FROM    OKS_K_LINES_B
10144 WHERE   CLE_ID = p_src_line_id; --p_standard_cov_id;  -- modified by Jvorugan Bug:4535339  ID = p_standard_cov_id;
10145 
10146 -- Added by Jvorugan
10147 CURSOR CUR_GET_LSE_ID IS
10148 SELECT  lse_id
10149 FROM    OKC_K_LINES_B
10150 WHERE   ID = p_src_line_id; --p_standard_cov_id;
10151 
10152 GET_LSE_ID_REC  CUR_GET_LSE_ID%ROWTYPE;
10153 
10154   l_start_date              DATE;
10155   l_end_date                DATE;
10156   l_pm_prog_id              NUMBER;
10157   l_jtf_note_id             NUMBER;
10158   l_Notes_detail            VARCHAR2(32767);
10159 
10160   l_api_version		    CONSTANT	NUMBER     := 1.0;
10161   l_init_msg_list	    CONSTANT	VARCHAR2(1):= 'F';
10162   l_return_status	    VARCHAR2(1);
10163   l_msg_count		    NUMBER;
10164   l_msg_data		    VARCHAR2(2000):=null;
10165   l_msg_index_out           NUMBER;
10166   l_api_name               CONSTANT VARCHAR2(30) := 'Create_K_coverage_ext';
10167 
10168 -- Added by Jvorugan for Bug: 4610475.
10169   l_pm_sch_exists_yn        VARCHAR2(1);
10170   l_pm_conf_req_yn          VARCHAR2(1);
10171   l_source_object_code      JTF_NOTES_B.SOURCE_OBJECT_CODE%type;
10172   l_source_line_id          NUMBER;
10173 
10174 BEGIN
10175   l_return_status := 'S';
10176   IF (G_DEBUG_ENABLED = 'Y') THEN
10177       okc_debug.Set_Indentation('Create_K_Coverage_Ext');
10178       okc_debug.log('BEGIN  CREATE_K_COVERAGE_EXT'||l_return_status, 2);
10179   END IF;
10180 
10181 SAVEPOINT Create_K_coverage_ext_PVT;
10182 
10183 -- Added by Jvorugan. Depending on  lse_id, l_source_object_code is populated.
10184   open  CUR_GET_LSE_ID;
10185   fetch CUR_GET_LSE_ID into GET_LSE_ID_REC;
10186   close CUR_GET_LSE_ID;
10187 
10188   l_source_line_id := p_src_line_id; --p_standard_cov_id;
10189   IF GET_LSE_ID_REC.lse_id in (1,14,19) THEN
10190   l_source_object_code := 'OKS_COV_NOTE';
10191   ELSE
10192   l_source_object_code := 'OKS_COVTMPL_NOTE';
10193   END IF;
10194 -- End of changes by Jvorugan
10195 FOR GET_LINE_DATES_REC in CUR_GET_LINE_DATES
10196 LOOP
10197  l_start_date   := GET_LINE_DATES_REC.start_date;
10198  l_end_date     := GET_LINE_DATES_REC.end_date;
10199 END LOOP;
10200 FOR CHECK_PM_PROG_REC in CUR_CHECK_PM_PROG
10201 LOOP
10202 l_pm_prog_id      :=CHECK_PM_PROG_REC.pm_program_id;
10203 l_pm_sch_exists_yn:=CHECK_PM_PROG_REC.pm_sch_exists_yn;   -- Added by Jvorugan for Bug:4610475
10204 l_pm_conf_req_yn  :=CHECK_PM_PROG_REC.pm_conf_req_yn;
10205 
10206 end LOOP;
10207   -- create notes for actual coverage from the template
10208 -- pass coverage_template_id as (p_source_object_id IN parameter )in the cursor below
10209   IF (G_DEBUG_ENABLED = 'Y') THEN
10210       okc_debug.log('BEFORE CALLING JTF_NOTES_PUB.CREATE_NOTE'||l_return_status, 2);
10211   END IF;
10212 
10213 -- Added l_source_object_code,l_source_line_id as input parameters for CUR_GET_NOTES
10214   FOR notes_rec IN CUR_GET_NOTES (l_source_line_id,l_source_object_code) LOOP
10215       JTF_NOTES_PUB.writeLobToData(notes_rec.JTF_NOTE_ID,L_Notes_detail);
10216 
10217       JTF_NOTES_PUB.CREATE_NOTE(p_parent_note_id        => notes_rec.parent_note_id ,
10218                                 p_api_version           => l_api_version,
10219                                 p_init_msg_list         =>  l_init_msg_list,
10220                                 p_commit                => 'F',
10221                                 p_validation_level      => 100,
10222                                 x_return_status         => l_return_status ,
10223                                 x_msg_count             => l_msg_count,
10224                                 x_msg_data              => l_msg_data ,
10225                                 p_org_id                =>  NULL,
10226                                 p_source_object_id      => p_tgt_line_id, -- p_contract_line_id,
10227                                 p_source_object_code    => 'OKS_COV_NOTE',
10228                                 p_notes                 =>notes_rec.notes,
10229                                 p_notes_detail          => L_Notes_detail,
10230                                 p_note_status           =>  notes_rec.note_status,
10231                                 p_entered_by            =>  FND_GLOBAL.USER_ID,
10232                                 p_entered_date          => SYSDATE ,
10233                                 x_jtf_note_id           => l_jtf_note_id,
10234                                 p_last_update_date      => sysdate,
10235                                 p_last_updated_by       => FND_GLOBAL.USER_ID,
10236                                 p_creation_date         => SYSDATE,
10237                                 p_created_by            => FND_GLOBAL.USER_ID,
10238                                 p_last_update_login     => FND_GLOBAL.LOGIN_ID,
10239                                 p_attribute1            => notes_rec.ATTRIBUTE1,
10240                                 p_attribute2            => notes_rec.ATTRIBUTE2,
10241                                 p_attribute3            => notes_rec.ATTRIBUTE3,
10242                                 p_attribute4            => notes_rec.ATTRIBUTE4,
10243                                 p_attribute5            => notes_rec.ATTRIBUTE5,
10244                                 p_attribute6            => notes_rec.ATTRIBUTE6,
10245                                 p_attribute7            => notes_rec.ATTRIBUTE7,
10246                                 p_attribute8            => notes_rec.ATTRIBUTE8,
10247                                 p_attribute9            => notes_rec.ATTRIBUTE9,
10248                                 p_attribute10           => notes_rec.ATTRIBUTE10,
10249                                 p_attribute11           => notes_rec.ATTRIBUTE11,
10250                                 p_attribute12           => notes_rec.ATTRIBUTE12,
10251                                 p_attribute13           => notes_rec.ATTRIBUTE13,
10252                                 p_attribute14           => notes_rec.ATTRIBUTE14,
10253                                 p_attribute15           => notes_rec.ATTRIBUTE15,
10254                                 p_context               => notes_rec.CONTEXT,
10255                                 p_note_type             => notes_rec.NOTE_TYPE);
10256 
10257   IF (G_DEBUG_ENABLED = 'Y') THEN
10258       okc_debug.log('AFTER CALLING JTF_NOTES_PUB.CREATE_NOTE'||l_return_status, 2);
10259   END IF;
10260 
10261 
10262         IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
10263           RAISE G_EXCEPTION_HALT_VALIDATION;
10264       END IF;
10265    END LOOP;
10266 --errorout_ad('before'||l_return_status);
10267 
10268 --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.
10269 --(Now I am going to add this validation (IF condition) into CREATE_PM_PROGRAM_SCHEDULE for simplicity)
10270 IF l_pm_prog_id is not null then
10271 -- Added by Jvorugan for Bug:4610475
10272 -- From R12, PM will always be associated with service line instead of coverage.
10273 -- Update oks_k_lines_b record of the service line  with the pm information.
10274 update oks_k_lines_b set   pm_program_id   =l_pm_prog_id,
10275                            pm_sch_exists_yn=l_pm_sch_exists_yn,
10276                            pm_conf_req_yn  =l_pm_conf_req_yn
10277                      where cle_id          = p_tgt_line_id; --p_contract_line_id;
10278 
10279 
10280  OKS_PM_PROGRAMS_PVT.CREATE_PM_PROGRAM_SCHEDULE(
10281     p_api_version        => l_api_version,
10282     p_init_msg_list      => l_init_msg_list,
10283     x_return_status          => l_return_status,
10284     x_msg_count          => l_msg_count,
10285     x_msg_data               => l_msg_data,
10286     p_template_cle_id    => p_src_line_id, --p_standard_cov_id,
10287     p_cle_id             => p_tgt_line_id, --p_contract_line_id,
10288     p_cov_start_date     => l_start_date,
10289     p_cov_end_date       => l_end_date);
10290 --errorout_ad('after'||l_return_status);
10291 
10292   IF (G_DEBUG_ENABLED = 'Y') THEN
10293       okc_debug.log('After OKS_PM_PROGRAMS_PVT. CREATE_PM_PROGRAM_SCHEDULE'||l_return_status, 2);
10294   END IF;
10295 
10296 
10297   IF NOT l_return_status = OKC_API.G_RET_STS_SUCCESS THEN
10298      RAISE G_EXCEPTION_HALT_VALIDATION;
10299   END IF;
10300   END IF;
10301       x_return_status := l_return_status ;
10302 EXCEPTION
10303 
10304         WHEN G_EXCEPTION_HALT_VALIDATION THEN
10305          IF (G_DEBUG_ENABLED = 'Y') THEN
10306                      okc_debug.log('Create_K_coverage_ext'||SQLERRM, 2);
10307                      okc_debug.Reset_Indentation;
10308          END IF;
10309       x_return_status := l_return_status ;
10310       x_msg_count :=l_msg_count;
10311       x_msg_data:=l_msg_data;
10312       x_return_status := OKC_API.HANDLE_EXCEPTIONS
10313       (
10314         l_api_name,
10315         'Create_K_coverage_ext',
10316         'OKC_API.G_RET_STS_ERROR',
10317         x_msg_count,
10318         x_msg_data,
10319         '_PVT'
10320       );
10321     WHEN OKC_API.G_EXCEPTION_ERROR THEN
10322          IF (G_DEBUG_ENABLED = 'Y') THEN
10323                      okc_debug.log('Create_K_coverage_ext'||SQLERRM, 2);
10324                      okc_debug.Reset_Indentation;
10325          END IF;
10326       x_msg_count :=l_msg_count;
10327       x_msg_data:=l_msg_data;
10328       x_return_status := OKC_API.HANDLE_EXCEPTIONS
10329       (
10330         l_api_name,
10331         'Create_K_coverage_ext',
10332         'OKC_API.G_RET_STS_ERROR',
10333         x_msg_count,
10334         x_msg_data,
10335         '_PVT'
10336       );
10337     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
10338 
10339          IF (G_DEBUG_ENABLED = 'Y') THEN
10340                      okc_debug.log('Create_K_coverage_ext'||SQLERRM, 2);
10341                      okc_debug.Reset_Indentation;
10342          END IF;
10343       x_msg_count :=l_msg_count;
10344       x_msg_data:=l_msg_data;
10345       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
10346       (
10347         l_api_name,
10348         'Create_K_coverage_ext',
10349         'OKC_API.G_RET_STS_UNEXP_ERROR',
10350         x_msg_count,
10351         x_msg_data,
10352         '_PVT'
10353       );
10354     WHEN OTHERS THEN
10355 
10356          IF (G_DEBUG_ENABLED = 'Y') THEN
10357                      okc_debug.log('Create_K_coverage_ext'||SQLERRM, 2);
10358                      okc_debug.Reset_Indentation;
10359          END IF;
10360       OKC_API.SET_MESSAGE(
10361         p_app_name        => g_app_name,
10362         p_msg_name        => g_unexpected_error,
10363         p_token1	        => g_sqlcode_token,
10364         p_token1_value    => sqlcode,
10365         p_token2          => g_sqlerrm_token,
10366         p_token2_value    => sqlerrm);
10367        -- notify caller of an error as UNEXPETED error
10368         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
10369         x_msg_count :=l_msg_count;
10370 
10371 END Create_K_coverage_ext;
10372 
10373 
10374 /* This procedure is used for Copying the standard coverage template.
10375    Parameters:
10376               P_old_coverage_id    --  ID of the source coverage
10377               P_new_coverage_name  --  Name of the Target coverage
10378               x_new_coverage_id    -- New Id of the copied coverage    */
10379 PROCEDURE  COPY_STANDARD_COVERAGE(
10380     p_api_version                   IN NUMBER,
10381     p_init_msg_list                 IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
10382     x_return_status                 OUT NOCOPY VARCHAR2,
10383     x_msg_count                     OUT NOCOPY NUMBER,
10384     x_msg_data                      OUT NOCOPY VARCHAR2,
10385     P_old_coverage_id               IN NUMBER,
10386     P_new_coverage_name             IN VARCHAR2,
10387     x_new_coverage_id               OUT NOCOPY NUMBER) IS
10388 
10389 -----------------------------------------------
10390 CURSOR CUR_GET_LINE_ID(p_cle_id NUMBER) is
10391  SELECT id from okc_k_lines_b
10392  where cle_id=p_cle_id;
10393 
10394 -----------------------------------------------
10395  CURSOR Cur_childline(P_cle_Id IN NUMBER)
10396                      IS
10397   SELECT ID,lse_id
10398   FROM OKC_K_LINES_B
10399   WHERE  cle_Id=P_cle_Id;
10400 -----------------------------------------------
10401 CURSOR CUR_ItemDet(P_Id IN NUMBER) IS
10402   SELECT ID
10403   FROM OKC_K_ITEMS_V
10404   WHERE cle_Id=P_Id;
10405 ------------------------------------------------
10406  CURSOR Cur_childline1(P_cle_Id IN NUMBER) IS
10407   SELECT ID,lse_id
10408   FROM OKC_K_LINES_B
10409   WHERE  cle_Id=P_cle_Id ;
10410 -------------------------------------------------
10411 CURSOR Cur_PTRLDet(P_Cle_Id IN NUMBER,
10412                    P_role_Code IN varchar2) IS
10413   SELECT pr.ID
10414   FROM  OKC_K_Party_Roles_V pr,
10415             OKC_K_LINES_B lv
10416   WHERE pr.cle_ID=p_cle_Id
10417   AND   pr.Rle_Code=P_Role_Code
10418   AND   pr.cle_id = lv.id
10419   AND   pr.dnz_chr_id = lv.dnz_chr_id ;
10420 
10421   cr_ptrl_det   Cur_PTRLDet%rowtype;
10422  -------------------------------------------------
10423 CURSOR Cur_contactDet(P_cpl_id IN NUMBER) IS
10424   SELECT ID
10425   FROM OKC_CONTACTS_V
10426   WHERE cpl_id=P_cpl_Id;
10427 -------------------------------------------------
10428 CURSOR Cur_childline_br(P_cle_Id IN NUMBER) IS
10429   SELECT ID
10430   FROM OKC_K_LINES_B
10431   WHERE  cle_Id=P_cle_Id;
10432 -------------------------------------------------
10433 l_old_coverage_id           OKC_K_LINES_B.ID%TYPE;
10434 l_new_coverage_id           OKC_K_LINES_B.ID%TYPE;
10435 l_old_bp_id                 OKC_K_LINES_B.ID%TYPE;
10436 l_new_bp_id                 OKC_K_LINES_B.ID%TYPE;
10437 l_old_bp_item_id            OKC_K_ITEMS.ID%TYPE;
10438 l_new_bp_item_id            OKC_K_ITEMS.ID%TYPE;
10439 l_old_rt_id                 OKC_K_LINES_B.ID%TYPE;
10440 l_new_rt_id                 OKC_K_LINES_B.ID%TYPE;
10441 l_new_rt_item_id            OKC_K_ITEMS.ID%TYPE;
10442 l_old_rt_item_id            OKC_K_ITEMS.ID%TYPE;
10443 l_old_party_id              OKC_K_PARTY_ROLES_B.ID%TYPE;
10444 l_new_party_id              OKC_K_PARTY_ROLES_B.ID%TYPE;
10445 l_old_contact_id            OKC_CONTACTS.ID%TYPE;
10446 l_new_contact_id            OKC_CONTACTS.ID%TYPE;
10447 l_old_bt_id                 OKC_K_LINES_B.ID%TYPE;
10448 l_new_bt_id                 OKC_K_LINES_B.ID%TYPE;
10449 l_old_br_id                 OKC_K_LINES_B.ID%TYPE;
10450 l_new_br_id                 OKC_K_LINES_B.ID%TYPE;
10451 l_cov_flag                  NUMBER;
10452 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
10453 
10454 -- This function is called by copy_standard_coverage for insertion into okc_k_lines_b table
10455 FUNCTION CREATE_OKC_LINE(p_new_line_id NUMBER,
10456                          p_old_line_id NUMBER,
10457                          p_flag        NUMBER,
10458                          p_cle_id      NUMBER DEFAULT NULL) return VARCHAR2 IS
10459 
10460 x_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
10461 l_start_date DATE;
10462 l_coverage_name VARCHAR2(150);
10463 
10464 BEGIN
10465  -- If flag is 1, then call is made for creating the top coverage line.
10466  -- so, we need to default sysdate as the start date
10467  IF p_flag =1
10468  THEN
10469     l_start_date := trunc(sysdate);
10470     l_coverage_name :=P_new_coverage_name;
10471  ELSE
10472     l_start_date :=NULL;
10473     l_coverage_name := NULL;
10474  END IF;
10475 
10476  INSERT INTO okc_k_lines_b
10477    (
10478      ID,
10479      LINE_NUMBER,
10480      CHR_ID,
10481      CLE_ID,
10482      CLE_ID_RENEWED,
10483      DNZ_CHR_ID,
10484      DISPLAY_SEQUENCE,
10485      STS_CODE,
10486      TRN_CODE,
10487      LSE_ID,
10488      EXCEPTION_YN,
10489      OBJECT_VERSION_NUMBER,
10490      CREATED_BY,
10491      CREATION_DATE,
10492      LAST_UPDATED_BY,
10493      LAST_UPDATE_DATE,
10494      HIDDEN_IND,
10495      PRICE_NEGOTIATED,
10496      PRICE_LEVEL_IND,
10497      PRICE_UNIT,
10498      PRICE_UNIT_PERCENT,
10499      INVOICE_LINE_LEVEL_IND,
10500      DPAS_RATING,
10501      TEMPLATE_USED,
10502      PRICE_TYPE,
10503      CURRENCY_CODE,
10504      LAST_UPDATE_LOGIN,
10505      DATE_TERMINATED,
10506      START_DATE,
10507      END_DATE,
10508      ATTRIBUTE_CATEGORY,
10509      ATTRIBUTE1,
10510      ATTRIBUTE2,
10511      ATTRIBUTE3,
10512      ATTRIBUTE4,
10513      ATTRIBUTE5,
10514      ATTRIBUTE6,
10515      ATTRIBUTE7,
10516      ATTRIBUTE8,
10517      ATTRIBUTE9,
10518      ATTRIBUTE10,
10519      ATTRIBUTE11,
10520      ATTRIBUTE12,
10521      ATTRIBUTE13,
10522      ATTRIBUTE14,
10523      ATTRIBUTE15,
10524      SECURITY_GROUP_ID,
10525      CLE_ID_RENEWED_TO,
10526      PRICE_NEGOTIATED_RENEWED,
10527      CURRENCY_CODE_RENEWED,
10528      UPG_ORIG_SYSTEM_REF,
10529      UPG_ORIG_SYSTEM_REF_ID,
10530      DATE_RENEWED,
10531      ORIG_SYSTEM_SOURCE_CODE,
10532      ORIG_SYSTEM_ID1,
10533      ORIG_SYSTEM_REFERENCE1,
10534      PROGRAM_APPLICATION_ID,
10535      PROGRAM_ID,
10536      PROGRAM_UPDATE_DATE,
10537      REQUEST_ID,
10538      PRICE_LIST_ID,
10539      PRICE_LIST_LINE_ID,
10540      LINE_LIST_PRICE,
10541      ITEM_TO_PRICE_YN,
10542      PRICING_DATE,
10543      PRICE_BASIS_YN,
10544      CONFIG_HEADER_ID,
10545      CONFIG_REVISION_NUMBER,
10546      CONFIG_COMPLETE_YN,
10547      CONFIG_VALID_YN,
10548      CONFIG_TOP_MODEL_LINE_ID,
10549      CONFIG_ITEM_TYPE,
10550      CONFIG_ITEM_ID,
10551      SERVICE_ITEM_YN,
10552      PH_PRICING_TYPE,
10553      PH_PRICE_BREAK_BASIS,
10554      PH_MIN_QTY,
10555      PH_MIN_AMT,
10556      PH_QP_REFERENCE_ID,
10557      PH_VALUE,
10558      PH_ENFORCE_PRICE_LIST_YN,
10559      PH_ADJUSTMENT,
10560      PH_INTEGRATED_WITH_QP,
10561      CUST_ACCT_ID,
10562      BILL_TO_SITE_USE_ID,
10563      INV_RULE_ID,
10564      LINE_RENEWAL_TYPE_CODE,
10565      SHIP_TO_SITE_USE_ID,
10566      PAYMENT_TERM_ID,
10567      DATE_CANCELLED,
10568   -- CANC_REASON_CODE,
10569   -- TRXN_EXTENSION_ID,
10570      TERM_CANCEL_SOURCE,
10571      ANNUALIZED_FACTOR )
10572   SELECT
10573      p_new_line_id ID,
10574      LINE_NUMBER,
10575      CHR_ID,
10576      p_cle_id CLE_ID,
10577      CLE_ID_RENEWED,
10578      DNZ_CHR_ID,
10579      DISPLAY_SEQUENCE,
10580      STS_CODE,
10581      TRN_CODE,
10582      LSE_ID,
10583      EXCEPTION_YN,
10584      1 OBJECT_VERSION_NUMBER,
10585      FND_GLOBAL.USER_ID CREATED_BY,
10586      SYSDATE CREATION_DATE,
10587      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
10588      SYSDATE LAST_UPDATE_DATE,
10589      HIDDEN_IND,
10590      PRICE_NEGOTIATED,
10591      PRICE_LEVEL_IND,
10592      PRICE_UNIT,
10593      PRICE_UNIT_PERCENT,
10594      INVOICE_LINE_LEVEL_IND,
10595      DPAS_RATING,
10596      TEMPLATE_USED,
10597      PRICE_TYPE,
10598      CURRENCY_CODE,
10599      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
10600      DATE_TERMINATED,
10601      l_start_date START_DATE,
10602      NULL END_DATE,
10603      ATTRIBUTE_CATEGORY,
10604      ATTRIBUTE1,
10605      ATTRIBUTE2,
10606      ATTRIBUTE3,
10607      ATTRIBUTE4,
10608      ATTRIBUTE5,
10609      ATTRIBUTE6,
10610      ATTRIBUTE7,
10611      ATTRIBUTE8,
10612      ATTRIBUTE9,
10613      ATTRIBUTE10,
10614      ATTRIBUTE11,
10615      ATTRIBUTE12,
10616      ATTRIBUTE13,
10617      ATTRIBUTE14,
10618      ATTRIBUTE15,
10619      SECURITY_GROUP_ID,
10620      CLE_ID_RENEWED_TO,
10621      PRICE_NEGOTIATED_RENEWED,
10622      CURRENCY_CODE_RENEWED,
10623      UPG_ORIG_SYSTEM_REF,
10624      UPG_ORIG_SYSTEM_REF_ID,
10625      DATE_RENEWED,
10626      ORIG_SYSTEM_SOURCE_CODE,  -- CHECK IF THIS NEED TO BE POPULATED
10627      p_old_line_id ORIG_SYSTEM_ID1,
10628      ORIG_SYSTEM_REFERENCE1,
10629      PROGRAM_APPLICATION_ID,
10630      PROGRAM_ID,
10631      PROGRAM_UPDATE_DATE,
10632      REQUEST_ID,
10633      PRICE_LIST_ID,
10634      PRICE_LIST_LINE_ID,
10635      LINE_LIST_PRICE,
10636      ITEM_TO_PRICE_YN,
10637      PRICING_DATE,
10638      PRICE_BASIS_YN,
10639      CONFIG_HEADER_ID,
10640      CONFIG_REVISION_NUMBER,
10641      CONFIG_COMPLETE_YN,
10642      CONFIG_VALID_YN,
10643      CONFIG_TOP_MODEL_LINE_ID,
10644      CONFIG_ITEM_TYPE,
10645      CONFIG_ITEM_ID,
10646      SERVICE_ITEM_YN,
10647      PH_PRICING_TYPE,
10648      PH_PRICE_BREAK_BASIS,
10649      PH_MIN_QTY,
10650      PH_MIN_AMT,
10651      PH_QP_REFERENCE_ID,
10652      PH_VALUE,
10653      PH_ENFORCE_PRICE_LIST_YN,
10654      PH_ADJUSTMENT,
10655      PH_INTEGRATED_WITH_QP,
10656      CUST_ACCT_ID,
10657      BILL_TO_SITE_USE_ID,
10658      INV_RULE_ID,
10659      LINE_RENEWAL_TYPE_CODE,
10660      SHIP_TO_SITE_USE_ID,
10661      PAYMENT_TERM_ID,
10662      DATE_CANCELLED,
10663   -- CANC_REASON_CODE,
10664   -- TRXN_EXTENSION_ID,
10665      TERM_CANCEL_SOURCE,
10666      ANNUALIZED_FACTOR
10667   FROM okc_k_lines_b
10668  WHERE id = p_old_line_id;
10669 
10670 INSERT INTO okc_k_lines_tl
10671    ( ID,
10672      LANGUAGE,
10673      SOURCE_LANG,
10674      SFWT_FLAG,
10675       NAME,
10676      COMMENTS,
10677      ITEM_DESCRIPTION,
10678      BLOCK23TEXT,
10679      CREATED_BY,
10680      CREATION_DATE,
10681      LAST_UPDATED_BY,
10682      LAST_UPDATE_DATE,
10683      LAST_UPDATE_LOGIN,
10684      SECURITY_GROUP_ID,
10685      OKE_BOE_DESCRIPTION,
10686      COGNOMEN )
10687 SELECT
10688      p_new_line_id ID,
10689      LANGUAGE,
10690      SOURCE_LANG,
10691      SFWT_FLAG,
10692      l_coverage_name NAME,
10693      COMMENTS,
10694      ITEM_DESCRIPTION,
10695      BLOCK23TEXT,
10696      FND_GLOBAL.USER_ID CREATED_BY,
10697      SYSDATE CREATION_DATE,
10698      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
10699      SYSDATE LAST_UPDATE_DATE,
10700      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
10701      SECURITY_GROUP_ID,
10702      OKE_BOE_DESCRIPTION,
10703      COGNOMEN
10704   FROM okc_k_lines_tl
10705   where id=p_old_line_id;
10706 
10707 
10708 RETURN x_return_status;
10709 
10710 EXCEPTION
10711 when others then
10712 OKC_API.set_message(G_APP_NAME,
10713                           G_UNEXPECTED_ERROR,
10714                           G_SQLCODE_TOKEN,
10715                           SQLCODE,
10716                           G_SQLERRM_TOKEN,
10717                           SQLERRM);
10718 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
10719 return x_return_status;
10720 
10721 END CREATE_OKC_LINE;
10722 
10723 
10724 -- This function is called by copy_standard_coverage for insertion into okc_k_items table
10725 FUNCTION CREATE_OKC_ITEM(p_new_item_id NUMBER,
10726                          p_old_item_id NUMBER,
10727                          p_cle_id      NUMBER) return VARCHAR2 IS
10728 
10729 x_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
10730 
10731 BEGIN
10732 
10733  INSERT INTO okc_k_items
10734    ( ID,
10735      CLE_ID,
10736      CHR_ID,
10737      CLE_ID_FOR,
10738      DNZ_CHR_ID,
10739      OBJECT1_ID1,
10740      OBJECT1_ID2,
10741      JTOT_OBJECT1_CODE,
10742      UOM_CODE,
10743      EXCEPTION_YN,
10744      NUMBER_OF_ITEMS,
10745      PRICED_ITEM_YN,
10746      OBJECT_VERSION_NUMBER,
10747      CREATED_BY,
10748      CREATION_DATE,
10749      LAST_UPDATED_BY,
10750      LAST_UPDATE_DATE,
10751      LAST_UPDATE_LOGIN,
10752      SECURITY_GROUP_ID,
10753      UPG_ORIG_SYSTEM_REF,
10754      UPG_ORIG_SYSTEM_REF_ID,
10755      PROGRAM_APPLICATION_ID,
10756      PROGRAM_ID,
10757      PROGRAM_UPDATE_DATE,
10758      REQUEST_ID )
10759   SELECT
10760      p_new_item_id ID,
10761      p_cle_id CLE_ID,
10762      CHR_ID,
10763      CLE_ID_FOR,
10764      DNZ_CHR_ID,
10765      OBJECT1_ID1,
10766      OBJECT1_ID2,
10767      JTOT_OBJECT1_CODE,
10768      UOM_CODE,
10769      EXCEPTION_YN,
10770      NUMBER_OF_ITEMS,
10771      PRICED_ITEM_YN,
10772      1 OBJECT_VERSION_NUMBER,
10773      FND_GLOBAL.USER_ID CREATED_BY,
10774      SYSDATE CREATION_DATE,
10775      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
10776      SYSDATE LAST_UPDATE_DATE,
10777      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
10778      SECURITY_GROUP_ID,
10779      UPG_ORIG_SYSTEM_REF,
10780      p_old_item_id UPG_ORIG_SYSTEM_REF_ID,
10781      PROGRAM_APPLICATION_ID,
10782      PROGRAM_ID,
10783      PROGRAM_UPDATE_DATE,
10784      REQUEST_ID
10785   FROM OKC_K_ITEMS
10786   WHERE ID= p_old_item_id;
10787 
10788 RETURN x_return_status;
10789 
10790 EXCEPTION
10791 when others then
10792 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
10793 OKC_API.set_message(G_APP_NAME,
10794                           G_UNEXPECTED_ERROR,
10795                           G_SQLCODE_TOKEN,
10796                           SQLCODE,
10797                           G_SQLERRM_TOKEN,
10798                           SQLERRM);
10799 
10800 return x_return_status;
10801 
10802 END CREATE_OKC_ITEM;
10803 
10804 -- This function is called by copy_standard_coverage for insertion into okc_k_party_roles_b table
10805 FUNCTION CREATE_OKC_PARTY(p_new_party_id NUMBER,
10806                           p_old_party_id NUMBER,
10807                           p_cle_id      NUMBER) return VARCHAR2 IS
10808 
10809 x_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
10810 
10811 BEGIN
10812 
10813  INSERT INTO okc_k_party_roles_b
10814    ( ID,
10815      CHR_ID,
10816      CLE_ID,
10817      DNZ_CHR_ID,
10818      RLE_CODE,
10819      OBJECT1_ID1,
10820      OBJECT1_ID2,
10821      JTOT_OBJECT1_CODE,
10822      OBJECT_VERSION_NUMBER,
10823      CREATED_BY,
10824      CREATION_DATE,
10825      LAST_UPDATED_BY,
10826      LAST_UPDATE_DATE,
10827      CODE,
10828      FACILITY,
10829      MINORITY_GROUP_LOOKUP_CODE,
10830      SMALL_BUSINESS_FLAG,
10831      WOMEN_OWNED_FLAG,
10832      LAST_UPDATE_LOGIN,
10833      ATTRIBUTE_CATEGORY,
10834      ATTRIBUTE1,
10835      ATTRIBUTE2,
10836      ATTRIBUTE3,
10837      ATTRIBUTE4,
10838      ATTRIBUTE5,
10839      ATTRIBUTE6,
10840      ATTRIBUTE7,
10841      ATTRIBUTE8,
10842      ATTRIBUTE9,
10843      ATTRIBUTE10,
10844      ATTRIBUTE11,
10845      ATTRIBUTE12,
10846      ATTRIBUTE13,
10847      ATTRIBUTE14,
10848      ATTRIBUTE15,
10849      SECURITY_GROUP_ID,
10850      CPL_ID,
10851      PRIMARY_YN,
10852      BILL_TO_SITE_USE_ID,
10853      CUST_ACCT_ID,
10854      ORIG_SYSTEM_ID1,
10855      ORIG_SYSTEM_REFERENCE1,
10856      ORIG_SYSTEM_SOURCE_CODE)
10857   SELECT
10858      p_new_party_id ID,
10859      CHR_ID,
10860      p_cle_id CLE_ID,
10861      DNZ_CHR_ID,
10862      RLE_CODE,
10863      OBJECT1_ID1,
10864      OBJECT1_ID2,
10865      JTOT_OBJECT1_CODE,
10866      OBJECT_VERSION_NUMBER,
10867      FND_GLOBAL.USER_ID CREATED_BY,
10868      SYSDATE CREATION_DATE,
10869      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
10870      SYSDATE LAST_UPDATE_DATE,
10871      CODE,
10872      FACILITY,
10873      MINORITY_GROUP_LOOKUP_CODE,
10874      SMALL_BUSINESS_FLAG,
10875      WOMEN_OWNED_FLAG,
10876      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
10877      ATTRIBUTE_CATEGORY,
10878      ATTRIBUTE1,
10879      ATTRIBUTE2,
10880      ATTRIBUTE3,
10881      ATTRIBUTE4,
10882      ATTRIBUTE5,
10883      ATTRIBUTE6,
10884      ATTRIBUTE7,
10885      ATTRIBUTE8,
10886      ATTRIBUTE9,
10887      ATTRIBUTE10,
10888      ATTRIBUTE11,
10889      ATTRIBUTE12,
10890      ATTRIBUTE13,
10891      ATTRIBUTE14,
10892      ATTRIBUTE15,
10893      SECURITY_GROUP_ID,
10894      CPL_ID,
10895      PRIMARY_YN,
10896      BILL_TO_SITE_USE_ID,
10897      CUST_ACCT_ID,
10898      p_old_party_id ORIG_SYSTEM_ID1,
10899      ORIG_SYSTEM_REFERENCE1,
10900      ORIG_SYSTEM_SOURCE_CODE
10901   FROM OKC_K_PARTY_ROLES_B
10902   WHERE ID= p_old_party_id;
10903 
10904  -- insert into tl table
10905   INSERT INTO okc_k_party_roles_tl
10906    ( ID,
10907      LANGUAGE,
10908      SOURCE_LANG,
10909      SFWT_FLAG,
10910      CREATED_BY,
10911      CREATION_DATE,
10912      LAST_UPDATED_BY,
10913      LAST_UPDATE_DATE,
10914      COGNOMEN,
10915      ALIAS,
10916      LAST_UPDATE_LOGIN,
10917      SECURITY_GROUP_ID
10918       )
10919 SELECT
10920      p_new_party_id ID,
10921      LANGUAGE,
10922      SOURCE_LANG,
10923      SFWT_FLAG,
10924      FND_GLOBAL.USER_ID CREATED_BY,
10925      SYSDATE CREATION_DATE,
10926      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
10927      SYSDATE LAST_UPDATE_DATE,
10928      COGNOMEN,
10929      ALIAS,
10930      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
10931      SECURITY_GROUP_ID
10932   FROM okc_k_party_roles_tl
10933   where id=p_old_party_id;
10934 
10935 RETURN x_return_status;
10936 
10937 EXCEPTION
10938 when others then
10939 OKC_API.set_message(G_APP_NAME,
10940                           G_UNEXPECTED_ERROR,
10941                           G_SQLCODE_TOKEN,
10942                           SQLCODE,
10943                           G_SQLERRM_TOKEN,
10944                           SQLERRM);
10945 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
10946 return x_return_status;
10947 END CREATE_OKC_PARTY;
10948 
10949 -- This function is called by copy_standard_coverage for insertion into okc_contacts table
10950 FUNCTION CREATE_OKC_CONTACT(p_new_cpl_id NUMBER,
10951                             p_old_cpl_id NUMBER) return VARCHAR2 IS
10952 
10953 
10954 x_return_status VARCHAR2(1):= OKC_API.G_RET_STS_SUCCESS;
10955 
10956 BEGIN
10957 
10958  INSERT INTO okc_contacts
10959    ( ID,
10960      CPL_ID,
10961      CRO_CODE,
10962      DNZ_CHR_ID,
10963      OBJECT1_ID1,
10964      OBJECT1_ID2,
10965      JTOT_OBJECT1_CODE,
10966      OBJECT_VERSION_NUMBER,
10967      CREATED_BY,
10968      CREATION_DATE,
10969      LAST_UPDATED_BY,
10970      LAST_UPDATE_DATE,
10971      CONTACT_SEQUENCE,
10972      LAST_UPDATE_LOGIN,
10973      ATTRIBUTE_CATEGORY,
10974      ATTRIBUTE1,
10975      ATTRIBUTE2,
10976      ATTRIBUTE3,
10977      ATTRIBUTE4,
10978      ATTRIBUTE5,
10979      ATTRIBUTE6,
10980      ATTRIBUTE7,
10981      ATTRIBUTE8,
10982      ATTRIBUTE9,
10983      ATTRIBUTE10,
10984      ATTRIBUTE11,
10985      ATTRIBUTE12,
10986      ATTRIBUTE13,
10987      ATTRIBUTE14,
10988      ATTRIBUTE15,
10989      SECURITY_GROUP_ID,
10990      START_DATE,
10991      END_DATE,
10992      PRIMARY_YN,
10993      RESOURCE_CLASS,
10994      SALES_GROUP_ID)
10995      --ORIG_SYSTEM_ID)
10996   SELECT
10997      okc_p_util.raw_to_number(sys_guid()),
10998      p_new_cpl_id CPL_ID, -- new party id (CPL_ID)
10999      CRO_CODE,
11000      DNZ_CHR_ID,
11001      OBJECT1_ID1,
11002      OBJECT1_ID2,
11003      JTOT_OBJECT1_CODE,
11004      OBJECT_VERSION_NUMBER,
11005      FND_GLOBAL.USER_ID CREATED_BY,
11006      SYSDATE CREATION_DATE,
11007      FND_GLOBAL.USER_ID LAST_UPDATED_BY,
11008      SYSDATE LAST_UPDATE_DATE,
11009      CONTACT_SEQUENCE,
11010      FND_GLOBAL.LOGIN_ID LAST_UPDATE_LOGIN,
11011      ATTRIBUTE_CATEGORY,
11012      ATTRIBUTE1,
11013      ATTRIBUTE2,
11014      ATTRIBUTE3,
11015      ATTRIBUTE4,
11016      ATTRIBUTE5,
11017      ATTRIBUTE6,
11018      ATTRIBUTE7,
11019      ATTRIBUTE8,
11020      ATTRIBUTE9,
11021      ATTRIBUTE10,
11022      ATTRIBUTE11,
11023      ATTRIBUTE12,
11024      ATTRIBUTE13,
11025      ATTRIBUTE14,
11026      ATTRIBUTE15,
11027      SECURITY_GROUP_ID,
11028      START_DATE,
11029      END_DATE,
11030      PRIMARY_YN,
11031      RESOURCE_CLASS,
11032      SALES_GROUP_ID
11033      --ID --ORIG_SYSTEM_ID
11034  FROM OKC_CONTACTS
11035  WHERE cpl_id = p_old_cpl_id;
11036 
11037 
11038 RETURN x_return_status;
11039 
11040 EXCEPTION
11041 WHEN others THEN
11042 OKC_API.set_message(G_APP_NAME,
11043                           G_UNEXPECTED_ERROR,
11044                           G_SQLCODE_TOKEN,
11045                           SQLCODE,
11046                           G_SQLERRM_TOKEN,
11047                           SQLERRM);
11048 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
11049 return x_return_status;
11050 
11051 END CREATE_OKC_CONTACT;
11052 
11053 
11054 BEGIN
11055 
11056 SAVEPOINT copy_standard_coverage;
11057  l_old_coverage_id := P_old_coverage_id;
11058 
11059  IF (G_DEBUG_ENABLED = 'Y') THEN
11060       okc_debug.Set_Indentation('Copy_Standard_Coverage');
11061       okc_debug.log('BEGIN COPY_STANDARD_COVERAGE'||l_return_status, 2);
11062  END IF;
11063 
11064  -- Create Coverage line
11065  l_new_coverage_id :=okc_p_util.raw_to_number(sys_guid());
11066  l_cov_flag :=1;
11067  l_return_status := CREATE_OKC_LINE(l_new_coverage_id,l_old_coverage_id,l_cov_flag);
11068   IF (G_DEBUG_ENABLED = 'Y') THEN
11069       okc_debug.log('AFTER CREATE_OKC_LINE FOR COVERAGE'||l_return_status, 2);
11070  END IF;
11071 
11072  IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11073  THEN
11074     RAISE G_EXCEPTION_HALT_VALIDATION;
11075  END IF;
11076 
11077  -- Create business process line
11078 FOR Childline_Rec1 IN Cur_Childline(l_old_coverage_id)    --Loop1
11079 LOOP
11080     l_old_bp_id := ChildLine_rec1.Id;
11081     l_new_bp_id := okc_p_util.raw_to_number(sys_guid());
11082     l_cov_flag := 2;
11083     l_return_status := CREATE_OKC_LINE(l_new_bp_id,l_old_bp_id,l_cov_flag,l_new_coverage_id);
11084     IF (G_DEBUG_ENABLED = 'Y') THEN
11085       okc_debug.log('AFTER CREATE_OKC_LINE FOR BP'||l_return_status, 2);
11086     END IF;
11087 
11088     IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11089     THEN
11090        RAISE G_EXCEPTION_HALT_VALIDATION;
11091     END IF;
11092 
11093      -- Create  a Contract ITEM FOR BUSINESS PROCESS
11094     open CUR_ItemDet(l_old_bp_id);
11095     fetch CUR_ItemDet into l_old_bp_item_id;
11096     close CUR_ItemDet;
11097     l_new_bp_item_id :=okc_p_util.raw_to_number(sys_guid());
11098     l_return_status := CREATE_OKC_ITEM(l_new_bp_item_id,l_old_bp_item_id,l_new_bp_id);
11099     IF (G_DEBUG_ENABLED = 'Y') THEN
11100       okc_debug.log('AFTER CREATE_OKC_ITEM'||l_return_status, 2);
11101     END IF;
11102 
11103     IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11104     THEN
11105        RAISE G_EXCEPTION_HALT_VALIDATION;
11106     END IF;
11107     -- Done Business Process
11108 
11109      -- Create Reaction times line  Billtypes
11110     FOR tmp_crt_rec IN Cur_ChildLine1(l_old_bp_id)
11111     LOOP
11112        l_old_rt_id := tmp_crt_rec.ID;
11113        l_new_rt_id := okc_p_util.raw_to_number(sys_guid());
11114        l_cov_flag := 3;
11115        l_return_status := CREATE_OKC_LINE(l_new_rt_id,l_old_rt_id,l_cov_flag,l_new_bp_id);
11116        IF (G_DEBUG_ENABLED = 'Y') THEN
11117        okc_debug.log('AFTER CREATE_OKC_LINE FOR RT'||l_return_status, 2);
11118        END IF;
11119 
11120        IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11121        THEN
11122           RAISE G_EXCEPTION_HALT_VALIDATION;
11123        END IF;
11124        IF tmp_crt_rec.lse_id in (5,59) -- For Billtypes
11125        THEN
11126          --Create entry in okc_k_items
11127          open CUR_ItemDet(l_old_rt_id);
11128          fetch CUR_ItemDet into l_old_rt_item_id;
11129          close CUR_ItemDet;
11130          l_new_rt_item_id :=okc_p_util.raw_to_number(sys_guid());
11131          l_return_status := CREATE_OKC_ITEM(l_new_rt_item_id,l_old_rt_item_id,l_new_rt_id);
11132 	 IF (G_DEBUG_ENABLED = 'Y') THEN
11133          okc_debug.log('AFTER CREATE_OKC_ITEM FOR RT'||l_return_status, 2);
11134          END IF;
11135 
11136          IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11137          THEN
11138             RAISE G_EXCEPTION_HALT_VALIDATION;
11139          END IF;
11140          --Create bill rate lines
11141          FOR tmp_br_Rec IN Cur_ChildLine_br(l_old_rt_id)
11142          LOOP
11143             l_old_br_id := tmp_br_Rec.ID;
11144             IF NOT l_old_br_id IS NULL
11145             THEN
11146                l_new_br_id := okc_p_util.raw_to_number(sys_guid());
11147                l_cov_flag := 4;
11148                l_return_status := CREATE_OKC_LINE(l_new_br_id,l_old_br_id,l_cov_flag,l_new_rt_id);
11149 	       IF (G_DEBUG_ENABLED = 'Y') THEN
11150                    okc_debug.log('AFTER CREATE_OKC_LINE FOR BR'||l_return_status, 2);
11151                END IF;
11152 
11153                IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11154                THEN
11155                   RAISE G_EXCEPTION_HALT_VALIDATION;
11156                END IF;
11157              END IF;
11158          END LOOP;   --End loop for billrates
11159        END IF;
11160     END LOOP;
11161         -- Done Reaction times  billtypes
11162 
11163     -- Preferred Engineers
11164     OPEN Cur_PTRLDet(l_old_bp_id,'VENDOR');
11165     FETCH Cur_PTRLDet INTO cr_ptrl_det;
11166     IF Cur_PTRLDet % FOUND
11167     THEN
11168         l_old_party_id := cr_ptrl_det.id;
11169         l_new_party_id :=okc_p_util.raw_to_number(sys_guid());
11170         l_return_status := CREATE_OKC_PARTY(l_new_party_id,l_old_party_id,l_new_bp_id);
11171         IF (G_DEBUG_ENABLED = 'Y') THEN
11172             okc_debug.log('AFTER CREATE_OKC_PARTY'||l_return_status, 2);
11173         END IF;
11174 
11175         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11176         THEN
11177            RAISE G_EXCEPTION_HALT_VALIDATION;
11178         END IF;
11179            -- okc_contacts
11180         l_return_status := CREATE_OKC_CONTACT(l_new_party_id,l_old_party_id);
11181         IF (G_DEBUG_ENABLED = 'Y') THEN
11182             okc_debug.log('AFTER CREATE_OKC_CONTACT'||l_return_status, 2);
11183         END IF;
11184 
11185         IF l_return_status <> OKC_API.G_RET_STS_SUCCESS
11186         THEN
11187            RAISE G_EXCEPTION_HALT_VALIDATION;
11188         END IF;
11189     END IF;
11190     CLOSE Cur_PTRLDet;
11191 
11192         -- Done Preferred Engineers
11193 
11194 
11195 END LOOP;  -- End loop for bp
11196 -- Create oks components
11197           Copy_Coverage
11198          (p_api_version       => 1.0,
11199           p_init_msg_list     => OKC_API.G_FALSE,
11200           x_return_status     => l_return_status,
11201           x_msg_count         => x_msg_count,
11202           x_msg_data          => x_msg_data,
11203           p_contract_line_id  => l_new_coverage_id);
11204 
11205  IF (G_DEBUG_ENABLED = 'Y') THEN
11206      okc_debug.log('AFTER Copy_Coverage'||l_return_status, 2);
11207  END IF;
11208 
11209 
11210  IF l_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
11211              Raise G_EXCEPTION_HALT_VALIDATION;
11212  End If;
11213 
11214  x_new_coverage_id := l_new_coverage_id;
11215  x_return_status   := l_return_status;
11216 
11217  EXCEPTION
11218   WHEN G_EXCEPTION_HALT_VALIDATION THEN
11219         x_return_status := l_return_status ;
11220         ROLLBACK  to copy_standard_coverage;
11221   WHEN OTHERS THEN
11222        OKC_API.set_message(G_APP_NAME,
11223                           G_UNEXPECTED_ERROR,
11224                           G_SQLCODE_TOKEN,
11225                           SQLCODE,
11226                           G_SQLERRM_TOKEN,
11227                           SQLERRM);
11228        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
11229        ROLLBACK  to copy_standard_coverage;
11230 
11231  END COPY_STANDARD_COVERAGE;
11232 END OKS_COVERAGES_PVT;
11233