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