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