[Home] [Help]
PACKAGE BODY: APPS.OKS_ENTITLEMENTS_PVT
Source
1 PACKAGE BODY OKS_ENTITLEMENTS_PVT AS
2 /* $Header: OKSRENTB.pls 120.35.12020000.10 2013/05/16 10:01:31 mchandak ship $ */
3
4 covd_account_party_id VARCHAR2(40) := NULL; -- 4690940
5 set_account_party_id VARCHAR2(1) := 'F'; -- 4690940
6
7 -- Bug Fix #5546615 hmnair
8 G_Rel_Sun VARCHAR2(15) := Get_NLS_Day_Of_Week('SUN');
9 G_Rel_Mon VARCHAR2(15) := Get_NLS_Day_Of_Week('MON');
10 G_Rel_Tue VARCHAR2(15) := Get_NLS_Day_Of_Week('TUE');
11 G_Rel_Wed VARCHAR2(15) := Get_NLS_Day_Of_Week('WED');
12 G_Rel_Thu VARCHAR2(15) := Get_NLS_Day_Of_Week('THU');
13 G_Rel_Fri VARCHAR2(15) := Get_NLS_Day_Of_Week('FRI');
14 G_Rel_Sat VARCHAR2(15) := Get_NLS_Day_Of_Week('SAT');
15
16 PROCEDURE Validate_Required_NumValue
17 (P_Num_Value IN NUMBER
18 ,P_Set_ExcepionStack IN Gx_Boolean
19 ,P_ExcepionMsg IN Gx_ExceptionMsg
20 ,X_Result out nocopy Gx_Boolean
21 ,X_Return_Status out nocopy Gx_Ret_Sts)
22 IS
23
24 Ln_Num_Value CONSTANT NUMBER := P_Num_Value;
25 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
26 Lx_ExcepionMsg CONSTANT Gx_ExceptionMsg := P_ExcepionMsg;
27
28 Lx_Result Gx_Boolean;
29 Lx_Return_Status Gx_Ret_Sts;
30
31 L_EXCEP_NULL_VALUE EXCEPTION;
32
33 BEGIN
34
35 Lx_Result := G_TRUE;
36 Lx_Return_Status := G_RET_STS_SUCCESS;
37
38
39 IF (Ln_Num_Value IS NULL) --OR (Ln_Num_Value = G_MISS_NUM)
40 THEN
41
42 RAISE L_EXCEP_NULL_VALUE;
43
44 END IF;
45
46 X_Result := Lx_Result;
47 X_Return_Status := Lx_Return_Status;
48
49 EXCEPTION
50
51 WHEN L_EXCEP_NULL_VALUE THEN
52
53 Lx_Result := G_FALSE;
54
55 IF Lx_Set_ExcepionStack = G_TRUE THEN
56
57 OKC_API.Set_Message
58 (P_App_Name => G_APP_NAME_OKC
59 ,P_Msg_Name => G_REQUIRED_VALUE
60 ,P_Token1 => G_COL_NAME_TOKEN
61 ,P_Token1_Value => Lx_ExcepionMsg);
62
63 Lx_Return_Status := G_RET_STS_ERROR;
64
65 END IF;
66
67 X_Result := Lx_Result;
68 X_Return_Status := Lx_Return_Status;
69
70 WHEN OTHERS THEN
71
72 OKC_API.SET_MESSAGE
73 (P_App_Name => G_APP_NAME_OKC
74 ,P_Msg_Name => G_UNEXPECTED_ERROR
75 ,P_Token1 => G_SQLCODE_TOKEN
76 ,P_Token1_Value => SQLCODE
77 ,P_Token2 => G_SQLERRM_TOKEN
78 ,P_Token2_Value => SQLERRM);
79
80 OKC_API.SET_MESSAGE
81 (P_App_Name => G_APP_NAME_OKC
82 ,P_Msg_Name => G_DEBUG_TOKEN
83 ,P_Token1 => G_PACKAGE_TOKEN
84 ,P_Token1_Value => G_PKG_NAME
85 ,P_Token2 => G_PROGRAM_TOKEN
86 ,P_Token2_Value => 'Validate_Required_NumValue');
87
88 X_Result := G_FALSE;
89 X_Return_Status := G_RET_STS_UNEXP_ERROR;
90
91 END Validate_Required_NumValue;
92
93 -----------------------------------------------------------------------------------------------------------------------*
94
95 PROCEDURE Validate_Required_DateValue
96 (P_Date_Value IN DATE
97 ,P_Set_ExcepionStack IN Gx_Boolean
98 ,P_ExcepionMsg IN Gx_ExceptionMsg
99 ,X_Result out nocopy Gx_Boolean
100 ,X_Return_Status out nocopy Gx_Ret_Sts)
101 IS
102
103 Ld_Date_Value CONSTANT DATE := P_Date_Value;
104 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
105 Lx_ExcepionMsg CONSTANT Gx_ExceptionMsg := P_ExcepionMsg;
106
107 Lx_Result Gx_Boolean;
108 Lx_Return_Status Gx_Ret_Sts;
109
110 L_EXCEP_NULL_VALUE EXCEPTION;
111
112 BEGIN
113
114 Lx_Result := G_TRUE;
115 Lx_Return_Status := G_RET_STS_SUCCESS;
116
117 IF (Ld_Date_Value IS NULL) --OR (Ld_Date_Value = G_MISS_DATE)
118 THEN
119
120 RAISE L_EXCEP_NULL_VALUE;
121
122 END IF;
123
124 X_Result := Lx_Result;
125 X_Return_Status := Lx_Return_Status;
126
127 EXCEPTION
128
129 WHEN L_EXCEP_NULL_VALUE THEN
130
131 Lx_Result := G_FALSE;
132
133 IF Lx_Set_ExcepionStack = G_TRUE THEN
134
135 OKC_API.Set_Message
136 (P_App_Name => G_APP_NAME_OKC
137 ,P_Msg_Name => G_REQUIRED_VALUE
138 ,P_Token1 => G_COL_NAME_TOKEN
139 ,P_Token1_Value => Lx_ExcepionMsg);
140
141 Lx_Return_Status := G_RET_STS_ERROR;
142
143 END IF;
144
145 X_Result := Lx_Result;
146 X_Return_Status := Lx_Return_Status;
147
148 WHEN OTHERS THEN
149
150 OKC_API.SET_MESSAGE
151 (P_App_Name => G_APP_NAME_OKC
152 ,P_Msg_Name => G_UNEXPECTED_ERROR
153 ,P_Token1 => G_SQLCODE_TOKEN
154 ,P_Token1_Value => SQLCODE
155 ,P_Token2 => G_SQLERRM_TOKEN
156 ,P_Token2_Value => SQLERRM);
157
158 OKC_API.SET_MESSAGE
159 (P_App_Name => G_APP_NAME_OKC
160 ,P_Msg_Name => G_DEBUG_TOKEN
161 ,P_Token1 => G_PACKAGE_TOKEN
162 ,P_Token1_Value => G_PKG_NAME
163 ,P_Token2 => G_PROGRAM_TOKEN
164 ,P_Token2_Value => 'Validate_Required_DateValue');
165
166 X_Result := G_FALSE;
167 X_Return_Status := G_RET_STS_UNEXP_ERROR;
168
169 END Validate_Required_DateValue;
170
171 -----------------------------------------------------------------------------------------------------------------------*
172
173 PROCEDURE Validate_Required_CharValue
174 (P_Char_Value IN VARCHAR2
175 ,P_Set_ExcepionStack IN Gx_Boolean
176 ,P_ExcepionMsg IN Gx_ExceptionMsg
177 ,X_Result out nocopy Gx_Boolean
178 ,X_Return_Status out nocopy Gx_Ret_Sts)
179 IS
180
181 Lv_Char_Value CONSTANT VARCHAR2(10000) := P_Char_Value;
182 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
183 Lx_ExcepionMsg CONSTANT Gx_ExceptionMsg := P_ExcepionMsg;
184
185 Lx_Result Gx_Boolean;
186 Lx_Return_Status Gx_Ret_Sts;
187
188 L_EXCEP_NULL_VALUE EXCEPTION;
189
190 BEGIN
191
192 Lx_Result := G_TRUE;
193 Lx_Return_Status := G_RET_STS_SUCCESS;
194
195 IF (Lv_Char_Value IS NULL) --OR (Lv_Char_Value = G_MISS_CHAR)
196 THEN
197
198 RAISE L_EXCEP_NULL_VALUE;
199
200 END IF;
201
202 X_Result := Lx_Result;
203 X_Return_Status := Lx_Return_Status;
204
205 EXCEPTION
206
207 WHEN L_EXCEP_NULL_VALUE THEN
208
209 Lx_Result := G_FALSE;
210
211 IF Lx_Set_ExcepionStack = G_TRUE THEN
212
213 OKC_API.Set_Message
214 (P_App_Name => G_APP_NAME_OKC
215 ,P_Msg_Name => G_REQUIRED_VALUE
216 ,P_Token1 => G_COL_NAME_TOKEN
217 ,P_Token1_Value => Lx_ExcepionMsg);
218
219 Lx_Return_Status := G_RET_STS_ERROR;
220
221 END IF;
222
223 X_Result := Lx_Result;
224 X_Return_Status := Lx_Return_Status;
225
226 WHEN OTHERS THEN
227
228 OKC_API.SET_MESSAGE
229 (P_App_Name => G_APP_NAME_OKC
230 ,P_Msg_Name => G_UNEXPECTED_ERROR
231 ,P_Token1 => G_SQLCODE_TOKEN
232 ,P_Token1_Value => SQLCODE
233 ,P_Token2 => G_SQLERRM_TOKEN
234 ,P_Token2_Value => SQLERRM);
235
236 OKC_API.SET_MESSAGE
237 (P_App_Name => G_APP_NAME_OKC
238 ,P_Msg_Name => G_DEBUG_TOKEN
239 ,P_Token1 => G_PACKAGE_TOKEN
240 ,P_Token1_Value => G_PKG_NAME
241 ,P_Token2 => G_PROGRAM_TOKEN
242 ,P_Token2_Value => 'Validate_Required_CharValue');
243
244 X_Result := G_FALSE;
245 X_Return_Status := G_RET_STS_UNEXP_ERROR;
246
247 END Validate_Required_CharValue;
248
249 -----------------------------------------------------------------------------------------------------------------------*
250
251 PROCEDURE Validate_Required_RT_Tokens
252 (P_SVL_Id IN Gx_OKS_Id
253 ,P_BusiProc_Id IN Gx_BusProcess_Id
254 ,P_Severity_Id IN Gx_Severity_Id
255 ,P_Request_Date IN DATE
256 ,P_Request_TZone_id IN Gx_TimeZoneId
257 ,P_template_YN in varchar2 -- for default coverage functionality
258 ,P_Set_ExcepionStack IN Gx_Boolean
259 ,X_Result out nocopy Gx_Boolean
260 ,X_Return_Status out nocopy Gx_Ret_Sts
261 )
262 IS
263
264 Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
265 Lx_BusiProc_id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
266 Lx_Severity_Id CONSTANT Gx_Severity_Id := P_Severity_Id;
267 Ld_Request_Date CONSTANT DATE := P_Request_Date;
268 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
269 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
270 Lx_Template_YN CONSTANT Varchar2(1) := p_template_yn;
271
272 Lx_Result Gx_Boolean;
273 Lx_Return_Status Gx_Ret_Sts;
274
275 L_EXCEP_NULL_VALUE EXCEPTION;
276
277 BEGIN
278
279 Lx_Result := G_TRUE;
280 Lx_Return_Status := G_RET_STS_SUCCESS;
281
282 IF Lx_Template_YN = 'N' then
283
284 Validate_Required_NumValue
285 (P_Num_Value => Lx_SVL_Id
286 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
287 ,P_ExcepionMsg => 'Contract Line'
288 ,X_Result => Lx_result
289 ,X_Return_Status => Lx_Return_Status);
290
291 IF Lx_result <> G_TRUE THEN
292 RAISE L_EXCEP_NULL_VALUE;
293 END IF;
294
295 ELSE
296
297 Validate_Required_NumValue
298 (P_Num_Value => Lx_SVL_Id
299 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
300 ,P_ExcepionMsg => 'Coverage Template Line'
301 ,X_Result => Lx_result
302 ,X_Return_Status => Lx_Return_Status);
303
304 IF Lx_result <> G_TRUE THEN
305 RAISE L_EXCEP_NULL_VALUE;
306 END IF;
307
308 END IF;
309
310 Validate_Required_NumValue
311 (P_Num_Value => Lx_BusiProc_id
312 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
313 ,P_ExcepionMsg => 'Business Process'
314 ,X_Result => Lx_result
315 ,X_Return_Status => Lx_Return_Status);
316
317 IF Lx_result <> G_TRUE THEN
318 RAISE L_EXCEP_NULL_VALUE;
319 END IF;
320
321 Validate_Required_NumValue
322 (P_Num_Value => Lx_Severity_Id
323 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
324 ,P_ExcepionMsg => 'Severity'
325 ,X_Result => Lx_result
326 ,X_Return_Status => Lx_Return_Status);
327
328 IF Lx_result <> G_TRUE THEN
329 RAISE L_EXCEP_NULL_VALUE;
330 END IF;
331
332 Validate_Required_NumValue
333 (P_Num_Value => Lx_Request_TZone_Id
334 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
335 ,P_ExcepionMsg => 'Time Zone'
336 ,X_Result => Lx_result
337 ,X_Return_Status => Lx_Return_Status);
338
339 IF Lx_result <> G_TRUE THEN
340 RAISE L_EXCEP_NULL_VALUE;
341 END IF;
342
343 Validate_Required_DateValue
344 (P_Date_Value => Ld_Request_Date
345 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
346 ,P_ExcepionMsg => 'Request Date'
347 ,X_Result => Lx_result
348 ,X_Return_Status => Lx_Return_Status);
349
350 IF Lx_result <> G_TRUE THEN
351 RAISE L_EXCEP_NULL_VALUE;
352 END IF;
353
354 X_Result := Lx_Result;
355 X_Return_Status := Lx_Return_Status;
356
357 EXCEPTION
358
359 WHEN L_EXCEP_NULL_VALUE THEN
360
361 X_Result := Lx_Result;
362 X_Return_Status := Lx_Return_Status;
363
364 WHEN OTHERS THEN
365
366 OKC_API.SET_MESSAGE
367 (P_App_Name => G_APP_NAME_OKC
368 ,P_Msg_Name => G_UNEXPECTED_ERROR
369 ,P_Token1 => G_SQLCODE_TOKEN
370 ,P_Token1_Value => SQLCODE
371 ,P_Token2 => G_SQLERRM_TOKEN
372 ,P_Token2_Value => SQLERRM);
373
374 OKC_API.SET_MESSAGE
375 (P_App_Name => G_APP_NAME_OKC
376 ,P_Msg_Name => G_DEBUG_TOKEN
377 ,P_Token1 => G_PACKAGE_TOKEN
378 ,P_Token1_Value => G_PKG_NAME
379 ,P_Token2 => G_PROGRAM_TOKEN
380 ,P_Token2_Value => 'Validate_Required_RT_Tokens');
381
382 X_Result := G_FALSE;
383 X_Return_Status := G_RET_STS_UNEXP_ERROR;
384
385 END Validate_Required_RT_Tokens;
386
387 -----------------------------------------------------------------------------------------------------------------------*
388
389 FUNCTION Get_End_Date_Time
390 (P_Date_Value IN DATE) Return Date
391 IS
392
393 l_trunc_date Varchar2(30);
394 l_date_value Date;
395
396 BEGIN
397
398 If P_Date_Value is Not Null Then
399 l_trunc_date := to_char(P_Date_Value,'MM-DD-YYYY')||' '||'23:59:59';
400 l_Date_Value := to_date(l_trunc_date,'MM-DD-YYYY HH24:MI:SS');
401 Return(l_Date_Value);
402 Else
403 Return(P_Date_Value);
404 End If;
405
406 END Get_End_Date_Time;
407
408 -----------------------------------------------------------------------------------------------------------------------*
409
410 PROCEDURE Validate_Service_Line
411 (P_SVL_Id IN Gx_OKS_Id
412 ,P_Set_ExcepionStack IN Gx_Boolean
413 ,X_CVL_Id OUT nocopy NUMBER -- Added for 12.0 Coverage Rearch project (JVARGHES)
414 ,X_Std_Cov_YN OUT nocopy VARCHAR2 -- Added for 12.0 Coverage Rearch project (JVARGHES)
415 ,X_SVL_Start out nocopy DATE
416 ,X_SVL_End out nocopy DATE
417 ,X_SVL_Terminated out nocopy DATE
418 ,X_Result out nocopy Gx_Boolean
419 ,X_Return_Status out nocopy Gx_Ret_Sts)
420 IS
421
422 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
423
424 CURSOR Lx_Csr_SVL(Cx_SVL_Id IN Gx_OKS_Id) IS
425 SELECT SVL.Start_Date
426 ,Get_End_Date_Time(SVL.End_Date) End_Date
427 ,Get_End_Date_Time(SVL.Date_Terminated) Date_Terminated
428 ,KSL.Coverage_Id
429 ,KSL.Standard_Cov_YN
430 FROM Okc_K_Lines_B SVL
431 ,Oks_K_Lines_B KSL
432 WHERE SVL.Id = Cx_SVL_Id
433 AND SVL.Id = KSL.Cle_ID
434 AND SVL.Lse_Id IN (G_LINE_STYLE_SERVICE
435 ,G_LINE_STYLE_WARRANTY
436 ,G_LINE_STYLE_EXT_WARRANTY) ;
437 --
438
439 Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
440 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
441
442 -- Added for 12.0 Coverage Rearch project (JVARGHES)
443 Ln_CVL_Id NUMBER;
444 Lv_Std_Cov_YN VARCHAR2(1);
445 --
446
447 Ld_SVL_Start DATE;
448 Ld_SVL_End DATE;
449 Ld_SVL_Terminated DATE;
450 Lx_Result Gx_Boolean;
451 Lx_Return_Status Gx_Ret_Sts;
452 Lx_ExcepionMsg Gx_ExceptionMsg;
453
454 L_EXCEP_NO_DATA_FOUND EXCEPTION;
455
456 BEGIN
457
458 Lx_Result := G_TRUE;
459 Lx_Return_Status := G_RET_STS_SUCCESS;
460
461 OPEN Lx_Csr_SVL(Lx_SVL_Id);
462 FETCH Lx_Csr_SVL INTO Ld_SVL_Start,Ld_SVL_End,Ld_SVL_Terminated,Ln_CVL_Id,Lv_Std_Cov_YN;
463
464 IF Lx_Csr_SVL%NOTFOUND THEN
465
466 CLOSE Lx_Csr_SVL;
467
468 Lx_ExcepionMsg := 'Contract Line';
469 RAISE L_EXCEP_NO_DATA_FOUND;
470
471 END IF;
472
473 CLOSE Lx_Csr_SVL;
474
475 -- Added for 12.0 Coverage Rearch project (JVARGHES)
476 X_CVL_Id := Ln_CVL_Id;
477 X_Std_Cov_YN := Lv_Std_Cov_YN;
478 --
479
480 X_SVL_Start := Ld_SVL_Start;
481 X_SVL_End := Ld_SVL_End;
482 X_SVL_Terminated := Ld_SVL_Terminated;
483 X_Result := Lx_Result;
484 X_Return_Status := Lx_Return_Status;
485
486 EXCEPTION
487
488 WHEN L_EXCEP_NO_DATA_FOUND THEN
489
490 Lx_Result := G_FALSE;
491
492 IF Lx_Set_ExcepionStack = G_TRUE THEN
493
494 OKC_API.SET_MESSAGE
495 (p_app_name => G_APP_NAME_OKC
496 ,p_msg_name => G_INVALID_VALUE
497 ,p_token1 => G_COL_NAME_TOKEN
498 ,p_token1_value => Lx_ExcepionMsg);
499
500 Lx_Return_Status := G_RET_STS_ERROR;
501
502 END IF;
503
504 X_Result := Lx_Result;
505 X_Return_Status := Lx_Return_Status;
506
507 WHEN OTHERS THEN
508
509 IF Lx_Csr_SVL%ISOPEN THEN
510 CLOSE Lx_Csr_SVL;
511 END IF;
512
513 OKC_API.SET_MESSAGE
514 (P_App_Name => G_APP_NAME_OKC
515 ,P_Msg_Name => G_UNEXPECTED_ERROR
516 ,P_Token1 => G_SQLCODE_TOKEN
517 ,P_Token1_Value => SQLCODE
518 ,P_Token2 => G_SQLERRM_TOKEN
519 ,P_Token2_Value => SQLERRM);
520
521 OKC_API.SET_MESSAGE
522 (P_App_Name => G_APP_NAME_OKC
523 ,P_Msg_Name => G_DEBUG_TOKEN
524 ,P_Token1 => G_PACKAGE_TOKEN
525 ,P_Token1_Value => G_PKG_NAME
526 ,P_Token2 => G_PROGRAM_TOKEN
527 ,P_Token2_Value => 'Validate_Service_Line');
528
529 X_Result := G_FALSE;
530 X_Return_Status := G_RET_STS_UNEXP_ERROR;
531
532 END Validate_Service_Line;
533
534 -----------------------------------------------------------------------------------------------------------------------*
535
536 PROCEDURE Validate_Coverage_Line
537 (P_CVL_Id IN Gx_OKS_Id -- Added for 12.0 Coverage Rearch project (JVARGHES)
538 --,P_SVL_Id IN Gx_OKS_Id -- Modified for 12.0 Coverage Rearch project (JVARGHES)
539 --,P_Template_YN IN varchar2 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
540 ,P_Set_ExcepionStack IN Gx_Boolean
541 --,X_CVL_Id out nocopy Gx_OKS_Id -- Modified for 12.0 Coverage Rearch project (JVARGHES)
542 ,X_CVL_Start out nocopy DATE
543 ,X_CVL_End out nocopy DATE
544 ,X_CVL_Terminated out nocopy DATE
545 ,X_Result out nocopy Gx_Boolean
546 ,X_Return_Status out nocopy Gx_Ret_Sts)
547
548 IS
549
550 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
551 --
552 --CURSOR Lx_Csr_CVL(Cx_SVL_Id IN Gx_OKS_Id) IS
553 --SELECT CVL.Id
554 -- , CVL.Start_Date
555 -- , Get_End_Date_Time(CVL.End_Date) End_Date
556 -- , Get_End_Date_Time(CVL.Date_Terminated) Date_Terminated
557 -- FROM Okc_K_Lines_B CVL
558 -- WHERE CVL.Cle_id = Cx_SVL_Id
559 -- AND Lse_Id IN (G_LINE_STYLE_SRV_COVERAGE
560 -- ,G_LINE_STYLE_WAR_COVERAGE
561 -- ,G_LINE_STYLE_EWT_COVERAGE);
562 --
563 --CURSOR Lx_Csr_Temp_CVL(Cx_COV_Id IN Gx_OKS_Id) IS
564 --SELECT CVL.Id
565 -- , CVL.Start_Date
566 -- , Get_End_Date_Time(CVL.End_Date) End_Date
567 -- , Get_End_Date_Time(CVL.Date_Terminated) Date_Terminated
568 -- FROM Okc_K_Lines_B CVL
569 -- WHERE CVL.Id = Cx_COV_Id
570 -- AND Lse_Id IN (G_LINE_STYLE_SRV_COVERAGE
571 -- ,G_LINE_STYLE_WAR_COVERAGE
572 -- ,G_LINE_STYLE_EWT_COVERAGE);
573 --
574 -- Added for 12.0 Coverage Rearch project (JVARGHES)
575 --
576
577 CURSOR Lx_Csr_CVL(Cx_CVL_Id IN Gx_OKS_Id) IS
578 SELECT CVL.Start_Date
579 ,Get_End_Date_Time(CVL.End_Date) End_Date
580 ,Get_End_Date_Time(CVL.Date_Terminated) Date_Terminated
581 FROM Okc_K_Lines_B CVL
582 WHERE CVL.Id = Cx_CVL_Id
583 AND Lse_Id IN (G_LINE_STYLE_SRV_COVERAGE
584 ,G_LINE_STYLE_WAR_COVERAGE
585 ,G_LINE_STYLE_EWT_COVERAGE);
586
587 --
588
589 -- Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id; -- Modified for 12.0 Coverage Rearch project (JVARGHES)
590
591 Lx_CVL_Id CONSTANT Gx_OKS_Id := P_CVL_Id;
592 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
593
594 -- Lx_CVL_Id Gx_OKS_Id; -- Modified for1 2.0 Coverage Rearch project (JVARGHES)
595 -- Lx_Template_YN CONSTANT varchar2(1) := P_Template_YN; -- Modified for 12.0 Coverage Rearch project (JVARGHES)
596
597 Ld_CVL_Start DATE;
598 Ld_CVL_End DATE;
599 Ld_CVL_Terminated DATE;
600
601 Lx_Result Gx_Boolean;
602 Lx_Return_Status Gx_Ret_Sts;
603 Lx_ExcepionMsg Gx_ExceptionMsg;
604
605 L_EXCEP_NO_DATA_FOUND EXCEPTION;
606
607 BEGIN
608
609 Lx_Result := G_TRUE;
610 Lx_Return_Status := G_RET_STS_SUCCESS;
611
612 --
613 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
614 --
615 --IF Lx_Template_YN = 'N' THEN
616 --
617 -- OPEN Lx_Csr_CVL(Lx_SVL_Id);
618 -- FETCH Lx_Csr_CVL INTO Lx_CVL_Id,Ld_CVL_Start,Ld_CVL_End,Ld_CVL_Terminated;
619 --
620 -- IF Lx_Csr_CVL%NOTFOUND THEN
621 --
622 -- CLOSE Lx_Csr_CVL;
623 -- Lx_ExcepionMsg := 'Coverage';
624 -- RAISE L_EXCEP_NO_DATA_FOUND;
625 --
626 -- END IF;
627 --
628 -- CLOSE Lx_Csr_CVL;
629 --
630 --ELSE
631 --
632 -- OPEN Lx_Csr_Temp_CVL(Lx_SVL_Id);
633 -- FETCH Lx_Csr_Temp_CVL INTO Lx_CVL_Id,Ld_CVL_Start,Ld_CVL_End,Ld_CVL_Terminated;
634 --
635 -- IF Lx_Csr_Temp_CVL%NOTFOUND THEN
636 --
637 -- CLOSE Lx_Csr_Temp_CVL;
638 -- Lx_ExcepionMsg := 'Coverage Template ';
639 -- RAISE L_EXCEP_NO_DATA_FOUND;
640 --
641 -- END IF;
642 --
643 -- CLOSE Lx_Csr_Temp_CVL;
644 --
645 --END IF;
646
647 -- Added for 12.0 Coverage Rearch project (JVARGHES)
648
649 OPEN Lx_Csr_CVL(Lx_CVL_Id);
650 FETCH Lx_Csr_CVL INTO Ld_CVL_Start,Ld_CVL_End,Ld_CVL_Terminated;
651
652 IF Lx_Csr_CVL%NOTFOUND THEN
653
654 CLOSE Lx_Csr_CVL;
655 Lx_ExcepionMsg := 'Coverage';
656 RAISE L_EXCEP_NO_DATA_FOUND;
657
658 END IF;
659
660 CLOSE Lx_Csr_CVL;
661
662 --
663 -- X_CVL_Id := Lx_CVL_Id; --Modified for 12.0 Coverage Rearch project (JVARGHES)
664
665 X_CVL_Start := Ld_CVL_Start;
666 X_CVL_End := Ld_CVL_End;
667 X_CVL_Terminated := Ld_CVL_Terminated;
668
669 X_Result := Lx_Result;
670 X_Return_Status := Lx_Return_Status;
671
672 EXCEPTION
673
674 WHEN L_EXCEP_NO_DATA_FOUND THEN
675
676 Lx_Result := G_FALSE;
677
678 IF Lx_Set_ExcepionStack = G_TRUE THEN
679
680 OKC_API.SET_MESSAGE
681 (P_App_Name => G_APP_NAME_OKC
682 ,P_Msg_Name => G_REQUIRED_VALUE
683 ,P_Token1 => G_COL_NAME_TOKEN
684 ,P_Token1_Value => Lx_ExcepionMsg);
685
686 Lx_Return_Status := G_RET_STS_ERROR;
687
688 END IF;
689
690 X_Result := Lx_Result;
691 X_Return_Status := Lx_Return_Status;
692
693 WHEN OTHERS THEN
694
695 IF Lx_Csr_CVL%ISOPEN THEN
696 CLOSE Lx_Csr_CVL;
697 END IF;
698
699 OKC_API.SET_MESSAGE
700 (P_App_Name => G_APP_NAME_OKC
701 ,P_Msg_Name => G_UNEXPECTED_ERROR
702 ,P_Token1 => G_SQLCODE_TOKEN
703 ,P_Token1_Value => SQLCODE
704 ,P_Token2 => G_SQLERRM_TOKEN
705 ,P_Token2_Value => SQLERRM);
706
707 OKC_API.SET_MESSAGE
708 (P_App_Name => G_APP_NAME_OKC
709 ,P_Msg_Name => G_DEBUG_TOKEN
710 ,P_Token1 => G_PACKAGE_TOKEN
711 ,P_Token1_Value => G_PKG_NAME
712 ,P_Token2 => G_PROGRAM_TOKEN
713 ,P_Token2_Value => 'Validate_Coverage_Line');
714
715 X_Result := G_FALSE;
716 X_Return_Status := G_RET_STS_UNEXP_ERROR;
717
718 END Validate_Coverage_Line;
719
720 -----------------------------------------------------------------------------------------------------------------------*
721 --
722 -- Added for 12.0 Coverage Rearch project (JVARGHES)
723 --
724
725 PROCEDURE Get_BP_Line_Start_Offset
726 (P_BPL_Id IN Gx_OKS_Id
727 ,P_SVL_Start IN DATE
728 ,X_BPL_OFS_Start OUT NOCOPY DATE
729 ,X_BPL_OFS_Duration OUT NOCOPY NUMBER
730 ,X_BPL_OFS_UOM OUT NOCOPY VARCHAR2
731 ,X_Return_Status out nocopy Gx_Ret_Sts)
732 IS
733
734 CURSOR Lx_Csr_BPL(Cx_BPL_Id IN Gx_OKS_Id) IS
735 SELECT BPL.Offset_Duration
736 ,BPL.Offset_period
737 FROM Oks_K_Lines_B BPL
738 WHERE BPL.Cle_Id = Cx_BPL_Id;
739
740 Lx_BPL_Id CONSTANT Gx_OKS_Id := P_BPL_Id;
741 Ld_SVL_Start CONSTANT DATE := P_SVL_Start;
742
743 Ld_BPL_OFS_Start DATE;
744 Ln_BPL_OFS_Duration NUMBER;
745 Lv_BPL_OFS_UOM VARCHAR2(100);
746
747 Lx_Return_Status Gx_Ret_Sts;
748
749 BEGIN
750
751 Lx_Return_Status := G_RET_STS_SUCCESS;
752
753 OPEN Lx_Csr_BPL(Lx_BPL_Id);
754 FETCH Lx_Csr_BPL INTO Ln_BPL_OFS_Duration,Lv_BPL_OFS_UOM;
755
756 CLOSE Lx_Csr_BPL;
757
758 IF (Lv_BPL_OFS_UOM IS NOT NULL) AND (Ln_BPL_OFS_Duration IS NOT NULL) THEN
759
760 Ld_BPL_OFS_Start := OKC_Time_Util_Pub.Get_EndDate(P_Start_Date => Ld_SVL_Start
761 ,P_Timeunit => Lv_BPL_OFS_UOM
762 ,P_Duration => Ln_BPL_OFS_Duration);
763 Ld_BPL_OFS_Start := Ld_BPL_OFS_Start + 1;
764
765 ELSE
766
767 Ld_BPL_OFS_Start := Ld_SVL_Start;
768
769 END IF;
770
771 X_BPL_OFS_Start := Ld_BPL_OFS_Start;
772 X_BPL_OFS_Duration := Ln_BPL_OFS_Duration;
773 X_BPL_OFS_UOM := Lv_BPL_OFS_UOM;
774 X_Return_Status := Lx_Return_Status;
775
776 EXCEPTION
777
778 WHEN OTHERS THEN
779
780 IF Lx_Csr_BPL%ISOPEN THEN
781 CLOSE Lx_Csr_BPL;
782 END IF;
783
784 OKC_API.SET_MESSAGE
785 (P_App_Name => G_APP_NAME_OKC
786 ,P_Msg_Name => G_UNEXPECTED_ERROR
787 ,P_Token1 => G_SQLCODE_TOKEN
788 ,P_Token1_Value => SQLCODE
789 ,P_Token2 => G_SQLERRM_TOKEN
790 ,P_Token2_Value => SQLERRM);
791
792 OKC_API.SET_MESSAGE
793 (P_App_Name => G_APP_NAME_OKC
794 ,P_Msg_Name => G_DEBUG_TOKEN
795 ,P_Token1 => G_PACKAGE_TOKEN
796 ,P_Token1_Value => G_PKG_NAME
797 ,P_Token2 => G_PROGRAM_TOKEN
798 ,P_Token2_Value => 'Get_BP_Line_Start_Offset');
799
800 X_Return_Status := G_RET_STS_UNEXP_ERROR;
801
802 END Get_BP_Line_Start_Offset;
803
804 -----------------------------------------------------------------------------------------------------------------------*
805
806
807 PROCEDURE Validate_BusinessProcess_Line
808 (P_BPL_Id IN Gx_OKS_Id
809 ,P_Set_ExcepionStack IN Gx_Boolean
810 ,X_BPL_Start out nocopy DATE
811 ,X_BPL_End out nocopy DATE
812 ,X_BPL_Terminated out nocopy DATE
813 ,X_Result out nocopy Gx_Boolean
814 ,X_Return_Status out nocopy Gx_Ret_Sts)
815 IS
816
817 CURSOR Lx_Csr_BPL(Cx_BPL_Id IN Gx_OKS_Id) IS
818 SELECT BPL.Start_Date
819 ,Get_End_Date_Time(BPL.End_Date) End_Date
820 ,Get_End_Date_Time(BPL.Date_Terminated) Date_Terminated
821 FROM Okc_K_Lines_B BPL
822 WHERE BPL.Id = Cx_BPL_Id
823 AND BPL.Lse_Id IN (3,16,21);
824
825 Lx_BPL_Id CONSTANT Gx_OKS_Id := P_BPL_Id;
826 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
827
828 Ld_BPL_Start DATE;
829 Ld_BPL_End DATE;
830 Ld_BPL_Terminated DATE;
831 Lx_Result Gx_Boolean;
832 Lx_Return_Status Gx_Ret_Sts;
833 Lx_ExcepionMsg Gx_ExceptionMsg;
834
835 L_EXCEP_NO_DATA_FOUND EXCEPTION;
836
837 BEGIN
838
839 Lx_Result := G_TRUE;
840 Lx_Return_Status := G_RET_STS_SUCCESS;
841
842 OPEN Lx_Csr_BPL(Lx_BPL_Id);
843 FETCH Lx_Csr_BPL INTO Ld_BPL_Start,Ld_BPL_End,Ld_BPL_Terminated;
844
845 IF Lx_Csr_BPL%NOTFOUND THEN
846
847 CLOSE Lx_Csr_BPL;
848
849 Lx_ExcepionMsg := 'Contract Business Process Line';
850 RAISE L_EXCEP_NO_DATA_FOUND;
851
852 END IF;
853
854 CLOSE Lx_Csr_BPL;
855
856 X_BPL_Start := Ld_BPL_Start;
857 X_BpL_End := Ld_BPL_End;
858 X_BPL_Terminated := Ld_BPL_Terminated;
859 X_Result := Lx_Result;
860 X_Return_Status := Lx_Return_Status;
861
862 EXCEPTION
863
864 WHEN L_EXCEP_NO_DATA_FOUND THEN
865
866 Lx_Result := G_FALSE;
867
868 IF Lx_Set_ExcepionStack = G_TRUE THEN
869
870 OKC_API.SET_MESSAGE
871 (p_app_name => G_APP_NAME_OKC
872 ,p_msg_name => G_INVALID_VALUE
873 ,p_token1 => G_COL_NAME_TOKEN
874 ,p_token1_value => Lx_ExcepionMsg);
875
876 Lx_Return_Status := G_RET_STS_ERROR;
877
878 END IF;
879
880 X_Result := Lx_Result;
881 X_Return_Status := Lx_Return_Status;
882
883 WHEN OTHERS THEN
884
885 IF Lx_Csr_BPL%ISOPEN THEN
886 CLOSE Lx_Csr_BPL;
887 END IF;
888
889 OKC_API.SET_MESSAGE
890 (P_App_Name => G_APP_NAME_OKC
891 ,P_Msg_Name => G_UNEXPECTED_ERROR
892 ,P_Token1 => G_SQLCODE_TOKEN
893 ,P_Token1_Value => SQLCODE
894 ,P_Token2 => G_SQLERRM_TOKEN
895 ,P_Token2_Value => SQLERRM);
896
897 OKC_API.SET_MESSAGE
898 (P_App_Name => G_APP_NAME_OKC
899 ,P_Msg_Name => G_DEBUG_TOKEN
900 ,P_Token1 => G_PACKAGE_TOKEN
901 ,P_Token1_Value => G_PKG_NAME
902 ,P_Token2 => G_PROGRAM_TOKEN
903 ,P_Token2_Value => 'Validate_BusinessProcess_Line');
904
905 X_Result := G_FALSE;
906 X_Return_Status := G_RET_STS_UNEXP_ERROR;
907
908 END Validate_BusinessProcess_Line;
909
910 -----------------------------------------------------------------------------------------------------------------------*
911
912 PROCEDURE Validate_Contract_BP
913 (P_CVL_Id IN Gx_OKS_Id --P_SVL_Id IN Gx_OKS_Id
914 ,P_BP_Id IN Gx_BusProcess_Id
915 ,P_BP_ObjCode IN Gx_JTOT_ObjCode
916 ,P_Set_ExcepionStack IN Gx_Boolean
917 ,P_REQ_DATE IN DATE --ansraj 13795417
918 ,X_BPL_Id OUT nocopy Gx_OKS_Id
919 ,X_BPL_Start OUT nocopy DATE
920 ,X_BPL_End OUT nocopy DATE
921 ,X_BPL_Terminated OUT nocopy DATE
922 ,X_Result OUT nocopy Gx_Boolean
923 ,X_Return_Status OUT nocopy Gx_Ret_Sts)
924 IS
925
926 /**
927 bug 3202650: The purpose is to suppress index on ITM.object1_id1,ITM.jtot_object1_code and let
928 index on ITM.cle_id be used to improve the cardinality on OKC_K_ITEMS during row source operation.
929
930 **/
931
932 CURSOR Lx_Csr_BPL(Cx_CVL_Id IN Gx_OKS_Id,Cx_BP_Id IN Gx_BusProcess_Id,Cx_BP_ObjCode IN Gx_JTOT_ObjCode,Cx_Req_Date IN DATE) IS --ansraj
933 SELECT BPL.Id
934 ,BPL.Start_Date
935 ,Get_End_Date_Time(BPL.End_Date) End_Date
936 ,Get_End_Date_Time(BPL.Date_Terminated) Date_Terminated
937 FROM Okc_K_Lines_B BPL,
938 Okc_K_Lines_B CVL
939 WHERE CVL.id = Cx_CVL_Id
940 AND BPL.Cle_Id = CVL.Id
941 AND EXISTS ( SELECT '*'
942 FROM Okc_K_Items ITM
943 WHERE ITM.Cle_id = BPL.Id
944 AND ITM.Object1_Id1 = Cx_BP_Id -- TO_CHAR(Cx_BP_Id) commented due to bug 3202650
945 AND ITM.Object1_Id2 = '#'
946 AND ITM.Jtot_Object1_Code = Cx_BP_ObjCode)
947 AND Cx_Req_Date BETWEEN nvl(BPL.Start_Date,Cx_Req_Date) AND nvl(BPL.End_Date,Cx_Req_Date); --- ansraj 13795417
948
949
950 --Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
951 Lx_CVL_Id CONSTANT Gx_OKS_Id := P_CVL_Id;
952 Lx_BP_Id CONSTANT Gx_BusProcess_Id := P_BP_Id;
953 Lx_BP_ObjCode CONSTANT Gx_JTOT_ObjCode := P_BP_ObjCode;
954 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
955
956 Lx_BPL_Id Gx_OKS_Id;
957 Ld_BPL_Start DATE;
958 Ld_BPL_End DATE;
959 Ld_BPL_Terminated DATE;
960
961 Lx_Result Gx_Boolean;
962 Lx_Return_Status Gx_Ret_Sts;
963
964 Lx_ExcepionMsg Gx_ExceptionMsg;
965
966 L_EXCEP_NO_DATA_FOUND EXCEPTION;
967
968 BEGIN
969
970 Lx_Result := G_TRUE;
971 Lx_Return_Status := G_RET_STS_SUCCESS;
972
973 -- OPEN Lx_Csr_BPL(Lx_SVL_Id,Lx_BP_Id,Lx_BP_ObjCode);
974 OPEN Lx_Csr_BPL(Lx_CVL_Id,Lx_BP_Id,Lx_BP_ObjCode,P_REQ_DATE);--ansraj bug 13795417
975 FETCH Lx_Csr_BPL INTO Lx_BPL_Id,Ld_BPL_Start,Ld_BPL_End,Ld_BPL_Terminated;
976
977 IF Lx_Csr_BPL%NOTFOUND THEN
978
979 CLOSE Lx_Csr_BPL;
980 Lx_ExcepionMsg := 'Business Process';
981 RAISE L_EXCEP_NO_DATA_FOUND;
982
983 END IF;
984
985 CLOSE Lx_Csr_BPL;
986
987 X_BPL_Id := Lx_BPL_Id;
988 X_BPL_Start := Ld_BPL_Start;
989 X_BPL_End := Ld_BPL_End;
990 X_BPL_Terminated := Ld_BPL_Terminated;
991 X_Result := Lx_Result;
992 X_Return_Status := Lx_Return_Status;
993
994 EXCEPTION
995
996 WHEN L_EXCEP_NO_DATA_FOUND THEN
997
998 Lx_Result := G_FALSE;
999
1000 IF Lx_Set_ExcepionStack = G_TRUE THEN
1001
1002 OKC_API.SET_MESSAGE
1003 (p_app_name => G_APP_NAME_OKC
1004 ,p_msg_name => G_INVALID_VALUE
1005 ,p_token1 => G_COL_NAME_TOKEN
1006 ,p_token1_value => Lx_ExcepionMsg);
1007
1008 Lx_Return_Status := G_RET_STS_ERROR;
1009
1010 END IF;
1011
1012 X_Result := Lx_Result;
1013 X_Return_Status := Lx_Return_Status;
1014
1015 WHEN OTHERS THEN
1016
1017 IF Lx_Csr_BPL%ISOPEN THEN
1018 CLOSE Lx_Csr_BPL;
1019 END IF;
1020
1021 OKC_API.SET_MESSAGE
1022 (P_App_Name => G_APP_NAME_OKC
1023 ,P_Msg_Name => G_UNEXPECTED_ERROR
1024 ,P_Token1 => G_SQLCODE_TOKEN
1025 ,P_Token1_Value => SQLCODE
1026 ,P_Token2 => G_SQLERRM_TOKEN
1027 ,P_Token2_Value => SQLERRM);
1028
1029 OKC_API.SET_MESSAGE
1030 (P_App_Name => G_APP_NAME_OKC
1031 ,P_Msg_Name => G_DEBUG_TOKEN
1032 ,P_Token1 => G_PACKAGE_TOKEN
1033 ,P_Token1_Value => G_PKG_NAME
1034 ,P_Token2 => G_PROGRAM_TOKEN
1035 ,P_Token2_Value => 'Validate_Contract_BP');
1036
1037 X_Result := G_FALSE;
1038 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1039
1040 END Validate_Contract_BP;
1041
1042 -----------------------------------------------------------------------------------------------------------------------
1043
1044 PROCEDURE Get_Effective_End_Date
1045 (P_Start_Date IN DATE
1046 ,P_End_Date IN DATE
1047 ,P_Termination_Date IN DATE
1048 ,P_EndDate_Required IN Gx_Boolean
1049 ,P_Set_ExcepionStack IN Gx_Boolean
1050 ,P_ExcepionMsg IN Gx_ExceptionMsg
1051 ,X_EffEnd_Date out nocopy DATE
1052 ,X_Result out nocopy Gx_Boolean
1053 ,X_Return_Status out nocopy Gx_Ret_Sts)
1054
1055 IS
1056
1057 Ld_Start_Date CONSTANT DATE:= P_Start_Date;
1058 Ld_End_Date CONSTANT DATE:= P_End_Date;
1059 Ld_Termination_Date CONSTANT DATE:= P_Termination_Date;
1060 Ld_EndDate_Required CONSTANT Gx_Boolean := P_EndDate_Required;
1061 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1062
1063 Lx_ExcepionMsg CONSTANT Gx_ExceptionMsg := P_ExcepionMsg;
1064 Lx_Final_Msg Gx_ExceptionMsg;
1065
1066 Ld_EffEnd_Date DATE;
1067 Lx_Result Gx_Boolean;
1068 Lx_Return_Status Gx_Ret_Sts;
1069
1070 Lx_End_Date_Null Gx_Boolean;
1071 Lx_Termination_Date_Null Gx_Boolean;
1072
1073 L_EXCEP_NULL_VALUE EXCEPTION ;
1074 L_EXCEP_UNEXPECTED_ERR EXCEPTION ;
1075
1076 BEGIN
1077
1078 Lx_Result := G_TRUE;
1079 Lx_Return_Status := G_RET_STS_SUCCESS;
1080
1081 Lx_End_Date_Null := G_FALSE;
1082 Lx_Termination_Date_Null := G_FALSE;
1083
1084 Lx_Final_Msg := Lx_ExcepionMsg||' Start Date';
1085
1086 Validate_Required_DateValue
1087 (P_Date_Value => Ld_Start_Date
1088 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
1089 ,P_ExcepionMsg => Lx_Final_Msg
1090 ,X_Result => Lx_Result
1091 ,X_Return_Status => Lx_Return_Status);
1092
1093 IF Lx_result <> G_TRUE THEN
1094 RAISE L_EXCEP_NULL_VALUE;
1095 END IF;
1096
1097 Lx_Final_Msg := Lx_ExcepionMsg||' End Date';
1098
1099 Validate_Required_DateValue
1100 (P_Date_Value => Ld_End_Date
1101 ,P_Set_ExcepionStack => G_FALSE
1102 ,P_ExcepionMsg => Lx_Final_Msg
1103 ,X_Result => Lx_Result
1104 ,X_Return_Status => Lx_Return_Status);
1105
1106 IF Lx_result <> G_TRUE THEN
1107
1108 Lx_End_Date_Null := G_TRUE;
1109
1110 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
1111 RAISE L_EXCEP_UNEXPECTED_ERR;
1112 END IF;
1113
1114 END IF;
1115
1116 Lx_Final_Msg := Lx_ExcepionMsg||' Termination Date';
1117
1118 Validate_Required_DateValue
1119 (P_Date_Value => Ld_Termination_Date
1120 ,P_Set_ExcepionStack => G_FALSE
1121 ,P_ExcepionMsg => Lx_Final_Msg
1122 ,X_Result => Lx_Result
1123 ,X_Return_Status => Lx_Return_Status);
1124
1125 IF Lx_result <> G_TRUE THEN
1126
1127 Lx_Termination_Date_Null := G_TRUE;
1128
1129 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
1130 RAISE L_EXCEP_UNEXPECTED_ERR;
1131 END IF;
1132
1133 END IF;
1134
1135 IF Lx_Termination_Date_Null <> G_TRUE THEN
1136 -- grace period is not allowed if the line is terminated
1137 IF Lx_End_Date_Null = G_TRUE THEN
1138 Ld_EffEnd_Date := Ld_Termination_Date;
1139 ELSE
1140
1141 IF Ld_Termination_Date < Ld_End_Date THEN
1142 Ld_EffEnd_Date := Ld_Termination_Date;
1143 ELSE
1144 Ld_EffEnd_Date := Ld_End_Date;
1145 END IF;
1146
1147 END IF;
1148
1149 ELSE
1150 Ld_EffEnd_Date := Ld_End_Date;
1151
1152 -- grace period changes starts
1153
1154 IF G_GRACE_PROFILE_SET = 'Y' THEN
1155
1156 -- grace period changes are done only if line end date matches contract end date
1157
1158 IF trunc(Ld_EffEnd_Date) = trunc(G_CONTRACT_END_DATE) AND Ld_Termination_Date IS NULL THEN
1159 Ld_EffEnd_Date := Get_Final_End_Date(G_CONTRACT_ID,Ld_EffEnd_Date);
1160 END IF;
1161
1162 END IF;
1163
1164 -- grace period changes ends
1165
1166 END IF;
1167
1168 IF Ld_EndDate_Required = G_TRUE THEN
1169
1170 Lx_Final_Msg := Lx_ExcepionMsg||' End date or Termination date';
1171
1172 Validate_Required_DateValue
1173 (P_Date_Value => Ld_EffEnd_Date
1174 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
1175 ,P_ExcepionMsg => Lx_Final_Msg
1176 ,X_Result => Lx_result
1177 ,X_Return_Status => Lx_Return_Status);
1178
1179 IF Lx_result <> G_TRUE THEN
1180 RAISE L_EXCEP_NULL_VALUE;
1181 END IF;
1182
1183 END IF;
1184
1185 Lx_Result := G_TRUE;
1186 Lx_Return_Status := G_RET_STS_SUCCESS;
1187
1188 X_EffEnd_Date := Ld_EffEnd_Date;
1189 X_Result := Lx_Result;
1190 X_Return_Status := Lx_Return_Status;
1191
1192 EXCEPTION
1193
1194 WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_UNEXPECTED_ERR THEN
1195
1196 X_Result := Lx_Result;
1197 X_Return_Status := Lx_Return_Status;
1198
1199 WHEN OTHERS THEN
1200
1201 OKC_API.SET_MESSAGE
1202 (P_App_Name => G_APP_NAME_OKC
1203 ,P_Msg_Name => G_UNEXPECTED_ERROR
1204 ,P_Token1 => G_SQLCODE_TOKEN
1205 ,P_Token1_Value => SQLCODE
1206 ,P_Token2 => G_SQLERRM_TOKEN
1207 ,P_Token2_Value => SQLERRM);
1208
1209 OKC_API.SET_MESSAGE
1210 (P_App_Name => G_APP_NAME_OKC
1211 ,P_Msg_Name => G_DEBUG_TOKEN
1212 ,P_Token1 => G_PACKAGE_TOKEN
1213 ,P_Token1_Value => G_PKG_NAME
1214 ,P_Token2 => G_PROGRAM_TOKEN
1215 ,P_Token2_Value => 'Get_Effective_End_Date');
1216
1217 X_Result := G_FALSE;
1218 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1219
1220 END Get_Effective_End_Date;
1221
1222 -----------------------------------------------------------------------------------------------------------------------*
1223
1224 PROCEDURE Get_BP_CoverTimeZone_Line
1225 (P_BPL_Id IN Gx_OKS_Id
1226 ,P_Set_ExcepionStack IN Gx_Boolean
1227 ,X_BP_CVTLine_Id out nocopy Gx_OKS_Id
1228 ,X_BP_Tz_Id out nocopy Gx_TimeZoneId
1229 ,X_Result out nocopy Gx_Boolean
1230 ,X_Return_Status out nocopy Gx_Ret_Sts)
1231 IS
1232
1233 CURSOR Lx_Csr_BP_CVT(Cx_BPL_Id IN Gx_OKS_Id) IS
1234 SELECT OCT.Id
1235 ,OCT.TimeZone_Id BP_Tzone_Id
1236 FROM Oks_Coverage_Timezones OCT
1237 WHERE OCT.CLE_ID = Cx_BPL_Id
1238 AND OCT.Default_YN = 'Y';
1239
1240 Lx_BPL_Id CONSTANT Gx_OKS_Id := P_BPL_Id;
1241 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1242
1243 Lx_BP_CVTLine_Id Gx_OKS_Id;
1244 Lx_BP_Tz_Id Gx_TimeZoneId;
1245 Lx_Result Gx_Boolean;
1246 Lx_Return_Status Gx_Ret_Sts;
1247 Lx_ExcepionMsg Gx_ExceptionMsg;
1248
1249 L_EXCEP_NO_DATA_FOUND EXCEPTION;
1250 L_EXCEP_NULL_VALUE EXCEPTION;
1251
1252 BEGIN
1253
1254 Lx_Result := G_TRUE;
1255 Lx_Return_Status := G_RET_STS_SUCCESS;
1256
1257 OPEN Lx_Csr_BP_CVT(Lx_BPL_Id);
1258 FETCH Lx_Csr_BP_CVT INTO Lx_BP_CVTLine_Id,Lx_BP_Tz_Id;
1259
1260 IF Lx_Csr_BP_CVT%NOTFOUND THEN
1261
1262 Lx_ExcepionMsg := 'Cover Time';
1263 RAISE L_EXCEP_NO_DATA_FOUND;
1264
1265 ELSE
1266
1267 Validate_Required_NumValue
1268 (P_Num_Value => Lx_BP_Tz_Id
1269 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
1270 ,P_ExcepionMsg => 'Cover Time - Time Zone'
1271 ,X_Result => Lx_result
1272 ,X_Return_Status => Lx_Return_Status);
1273
1274 IF Lx_Result <> G_TRUE THEN
1275 RAISE L_EXCEP_NULL_VALUE;
1276 END IF;
1277
1278 END IF;
1279
1280 CLOSE Lx_Csr_BP_CVT;
1281
1282 X_BP_CVTLine_Id := Lx_BP_CVTLine_Id;
1283 X_BP_Tz_Id := Lx_BP_Tz_Id;
1284 X_Result := Lx_Result;
1285 X_Return_Status := Lx_Return_Status;
1286
1287 EXCEPTION
1288
1289 WHEN L_EXCEP_NO_DATA_FOUND THEN
1290
1291 IF Lx_Csr_BP_CVT%ISOPEN THEN
1292 CLOSE Lx_Csr_BP_CVT;
1293 END IF;
1294
1295 Lx_Result := G_FALSE;
1296
1297 IF Lx_Set_ExcepionStack = G_TRUE THEN
1298
1299 OKC_API.SET_MESSAGE
1300 (P_app_name => G_APP_NAME_OKC
1301 ,P_msg_name => G_REQUIRED_VALUE
1302 ,P_token1 => G_COL_NAME_TOKEN
1303 ,P_token1_value => Lx_ExcepionMsg);
1304
1305 Lx_Return_Status := G_RET_STS_ERROR;
1306
1307 END IF;
1308
1309 X_Result := Lx_Result;
1310 X_Return_Status := Lx_Return_Status;
1311
1312 WHEN L_EXCEP_NULL_VALUE THEN
1313
1314 IF Lx_Csr_BP_CVT%ISOPEN THEN
1315 CLOSE Lx_Csr_BP_CVT;
1316 END IF;
1317
1318 X_Result := Lx_Result;
1319 X_Return_Status := Lx_Return_Status;
1320
1321 WHEN OTHERS THEN
1322
1323 IF Lx_Csr_BP_CVT%ISOPEN THEN
1324 CLOSE Lx_Csr_BP_CVT;
1325 END IF;
1326
1327 OKC_API.SET_MESSAGE
1328 (P_App_Name => G_APP_NAME_OKC
1329 ,P_Msg_Name => G_UNEXPECTED_ERROR
1330 ,P_Token1 => G_SQLCODE_TOKEN
1331 ,P_Token1_Value => SQLCODE
1332 ,P_Token2 => G_SQLERRM_TOKEN
1333 ,P_Token2_Value => SQLERRM);
1334
1335 OKC_API.SET_MESSAGE
1336 (P_App_Name => G_APP_NAME_OKC
1337 ,P_Msg_Name => G_DEBUG_TOKEN
1338 ,P_Token1 => G_PACKAGE_TOKEN
1339 ,P_Token1_Value => G_PKG_NAME
1340 ,P_Token2 => G_PROGRAM_TOKEN
1341 ,P_Token2_Value => 'Get_BP_CoverTimeZone_Line');
1342
1343 X_Result := G_FALSE;
1344 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1345
1346 END Get_BP_CoverTimeZone_Line;
1347
1348 -----------------------------------------------------------------------------------------------------------------------*
1349
1350 PROCEDURE Convert_TimeZone
1351 (P_API_Version IN NUMBER
1352 ,P_Init_Msg_List IN VARCHAR2
1353 ,p_Source_Date IN DATE
1354 ,P_Source_Tz_Id IN Gx_TimeZoneId
1355 ,P_Dest_Tz_Id IN Gx_TimeZoneId
1356 ,X_Dest_Date out nocopy DATE
1357 ,X_Msg_Count out nocopy NUMBER
1358 ,X_Msg_Data out nocopy VARCHAR2
1359 ,X_Return_Status out nocopy Gx_Ret_Sts)
1360
1361 IS
1362 BEGIN
1363
1364 OKX_GATEWAY.OKX_TIMEZONE_GETTIME
1365 (P_API_Version => P_API_Version
1366 ,P_Init_Msg_List => P_Init_Msg_List
1367 ,P_Source_Tz_Id => P_Source_Tz_Id
1368 ,P_Dest_Ts_Id => P_Dest_Tz_Id
1369 ,P_Source_Day_Time => p_Source_Date
1370 ,X_Dest_Day_Time => X_Dest_Date
1371 ,X_Return_Status => X_Return_Status
1372 ,X_Msg_Count => X_Msg_Count
1373 ,X_Msg_Data => X_Msg_Data);
1374
1375 EXCEPTION
1376
1377 WHEN OTHERS THEN
1378
1379 OKC_API.SET_MESSAGE
1380 (P_App_Name => G_APP_NAME_OKC
1381 ,P_Msg_Name => G_UNEXPECTED_ERROR
1382 ,P_Token1 => G_SQLCODE_TOKEN
1383 ,P_Token1_Value => SQLCODE
1384 ,P_Token2 => G_SQLERRM_TOKEN
1385 ,P_Token2_Value => SQLERRM);
1386
1387 OKC_API.SET_MESSAGE
1388 (P_App_Name => G_APP_NAME_OKC
1389 ,P_Msg_Name => G_DEBUG_TOKEN
1390 ,P_Token1 => G_PACKAGE_TOKEN
1391 ,P_Token1_Value => G_PKG_NAME
1392 ,P_Token2 => G_PROGRAM_TOKEN
1393 ,P_Token2_Value => 'Convert_TimeZone');
1394
1395 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1396
1397 END Convert_TimeZone;
1398
1399 -----------------------------------------------------------------------------------------------------------------------*
1400
1401 PROCEDURE Validate_Effectivity
1402 (P_Request_Date IN DATE
1403 ,P_Start_DateTime IN DATE
1404 ,P_End_DateTime IN DATE
1405 ,P_Set_ExcepionStack IN Gx_Boolean
1406 ,P_CL_Msg_TokenValue IN Gx_ExceptionMsg
1407 ,X_Result out nocopy Gx_Boolean
1408 ,X_Return_Status out nocopy Gx_Ret_Sts)
1409
1410 IS
1411
1412 Ld_Request_Date CONSTANT DATE := P_Request_Date;
1413 Ld_Start_DateTime CONSTANT DATE := P_Start_DateTime;
1414 Ld_End_DateTime CONSTANT DATE := P_End_DateTime;
1415 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1416 Lx_CL_Msg_TokenValue CONSTANT Gx_ExceptionMsg := P_CL_Msg_TokenValue;
1417
1418 Lx_Result Gx_Boolean;
1419 Lx_Return_Status Gx_Ret_Sts;
1420 Lx_Msg_TokenVal_Start Gx_ExceptionMsg;
1421 Lx_Msg_TokenVal_End Gx_ExceptionMsg;
1422
1423 L_EXCEP_NOT_EFFECTIVE EXCEPTION;
1424
1425 BEGIN
1426
1427 Lx_Result := G_TRUE;
1428 Lx_Return_Status := G_RET_STS_SUCCESS;
1429
1430 IF Ld_Request_Date BETWEEN Ld_Start_DateTime AND Ld_End_DateTime THEN
1431
1432 NULL;
1433
1434 ELSE
1435
1436 Lx_Msg_TokenVal_Start := Lx_CL_Msg_TokenValue||' Start Date/Time';
1437 Lx_Msg_TokenVal_End := ' End Date/Time';
1438
1439 RAISE L_EXCEP_NOT_EFFECTIVE;
1440
1441 END IF;
1442
1443 X_Result := Lx_Result;
1444 X_Return_Status := Lx_Return_Status;
1445
1446 EXCEPTION
1447
1448 WHEN L_EXCEP_NOT_EFFECTIVE THEN
1449
1450 Lx_Result := G_FALSE;
1451
1452 IF Lx_Set_ExcepionStack = G_TRUE THEN
1453
1454 OKC_API.SET_MESSAGE
1455 (p_app_name => G_APP_NAME_OKS
1456 ,p_msg_name => 'OKS_INVALID_REQ_DT'
1457 ,p_token1 => 'DATE1'
1458 ,p_token1_value => ''''||TO_CHAR(Ld_Request_Date,'YYYY/MM/DD HH24:MI:SS')||''''
1459 ,p_token2 => 'STARTDATE'
1460 ,p_token2_value => Lx_Msg_TokenVal_Start
1461 ,p_token3 => 'DATE2'
1462 ,p_token3_value => ''''||TO_CHAR(Ld_Start_DateTime,'YYYY/MM/DD HH24:MI:SS')||''''
1463 ,p_token4 => 'ENDDATE'
1464 ,p_token4_value => Lx_Msg_TokenVal_End
1465 ,p_token5 => 'DATE3'
1466 ,p_token5_value => ''''||TO_CHAR(Ld_End_DateTime,'YYYY/MM/DD HH24:MI:SS')||'''');
1467
1468 Lx_Return_Status := G_RET_STS_ERROR;
1469
1470 END IF;
1471
1472 X_Result := Lx_Result;
1473 X_Return_Status := Lx_Return_Status;
1474
1475 WHEN OTHERS THEN
1476
1477 OKC_API.SET_MESSAGE
1478 (P_App_Name => G_APP_NAME_OKC
1479 ,P_Msg_Name => G_UNEXPECTED_ERROR
1480 ,P_Token1 => G_SQLCODE_TOKEN
1481 ,P_Token1_Value => SQLCODE
1482 ,P_Token2 => G_SQLERRM_TOKEN
1483 ,P_Token2_Value => SQLERRM);
1484
1485 OKC_API.SET_MESSAGE
1486 (P_App_Name => G_APP_NAME_OKC
1487 ,P_Msg_Name => G_DEBUG_TOKEN
1488 ,P_Token1 => G_PACKAGE_TOKEN
1489 ,P_Token1_Value => G_PKG_NAME
1490 ,P_Token2 => G_PROGRAM_TOKEN
1491 ,P_Token2_Value => 'Validate_Effectivity');
1492
1493 X_Result := G_FALSE;
1494 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1495
1496 END Validate_Effectivity;
1497
1498 -----------------------------------------------------------------------------------------------------------------------*
1499
1500 -- 11.5.10 rule rearchitecture changes ...the procedure will get only reaction time line id and not rule_id
1501
1502 PROCEDURE Get_BP_ReactResolTime_Line
1503 (P_BPL_Id IN Gx_OKS_Id
1504 ,P_Severity_Id IN Gx_Severity_Id
1505 ,P_TimeType_Category IN Varchar2 --Gx_TimeType_Category
1506 ,P_Active_YN IN Gx_YesNo
1507 ,P_Set_ExcepionStack IN Gx_Boolean
1508 ,X_RTL_Id out nocopy Gx_OKS_Id
1509 ,X_RTL_Start out nocopy DATE
1510 ,X_RTL_End out nocopy DATE
1511 ,X_RTL_Terminated out nocopy DATE
1512 ,X_RTL_Line_Id out nocopy Gx_OKS_Id
1513 ,X_RTL_WT_YN out nocopy Gx_YesNo
1514 ,X_Result out nocopy Gx_Boolean
1515 ,X_Return_Status out nocopy Gx_Ret_Sts)
1516
1517 IS
1518
1519 CURSOR Lx_Csr_RTL_Line(Cx_BPL_Id IN Gx_OKS_Id
1520 ,Cx_Severity_Id IN Gx_Severity_Id
1521 ,Cx_TimeType_Category IN Varchar2
1522 ,Cx_Active_YN IN Gx_YesNo
1523 )
1524 IS
1525 SELECT RTL.Id
1526 ,RTL.Start_Date
1527 ,Get_End_Date_Time(RTL.End_Date) End_Date
1528 ,Get_End_Date_Time(RTL.Date_Terminated) Date_Terminated
1529 ,OKSRTL.Work_Thru_YN Work_Through_YN
1530 FROM Okc_K_Lines_B RTL
1531 ,Okc_K_Lines_B BPL
1532 ,oks_k_lines_b OKSRTL
1533 ,oks_action_time_types ACT
1534 ,oks_action_times ACM
1535 WHERE BPL.Id = Cx_BPL_Id
1536 AND RTL.Cle_Id = BPL.Id
1537 AND OKSRTL.Cle_Id = RTL.Id
1538 AND RTL.lse_id in (4,17,22)
1539 AND OKSRTL.incident_severity_id = Cx_Severity_Id
1540 AND OKSRTL.react_active_yn = Cx_Active_YN
1541 AND ACT.cle_id = RTL.id
1542 AND ACT.action_type_code = Cx_TimeType_Category
1543 and ACT.id = ACM.cov_action_type_id
1544 and (ACM.sun_duration is not null or
1545 ACM.mon_duration is not null or
1546 ACM.tue_duration is not null or
1547 ACM.wed_duration is not null or
1548 ACM.thu_duration is not null or
1549 ACM.fri_duration is not null or
1550 ACM.sat_duration is not null);
1551
1552
1553
1554 Lx_BPL_Id CONSTANT Gx_OKS_Id := P_BPL_Id;
1555 Lx_Severity_Id CONSTANT Gx_Severity_Id := P_Severity_Id;
1556 Lx_TimeType_Category CONSTANT Varchar2(30) := P_TimeType_Category; --Gx_Rule_Category := P_Rule_Category;
1557 Lx_Active_YN CONSTANT Gx_YesNo := P_Active_YN;
1558
1559 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1560
1561 Lx_RTL_Id Gx_OKS_Id;
1562 Ld_RTL_Start DATE;
1563 Ld_RTL_End DATE;
1564 Ld_RTL_Terminated DATE;
1565 Lx_RTL_WT_YN Gx_YesNo;
1566
1567 Lx_Result Gx_Boolean;
1568 Lx_Return_Status Gx_Ret_Sts;
1569 Lx_ExcepionMsg Gx_ExceptionMsg;
1570
1571 L_EXCEP_NO_DATA_FOUND EXCEPTION;
1572
1573 BEGIN
1574
1575 Lx_Result := G_TRUE;
1576 Lx_Return_Status := G_RET_STS_SUCCESS;
1577
1578 OPEN Lx_Csr_RTL_Line(Lx_BPL_Id,Lx_Severity_Id,Lx_TimeType_Category,Lx_Active_YN);
1579
1580 FETCH Lx_Csr_RTL_Line INTO Lx_RTL_Id,Ld_RTL_Start,LD_RTL_End,Ld_RTL_Terminated,Lx_RTL_WT_YN;
1581
1582 IF Lx_Csr_RTL_Line%NOTFOUND THEN
1583
1584 CLOSE Lx_Csr_RTL_Line;
1585
1586 IF Lx_TimeType_Category = G_RUL_CATEGORY_REACTION THEN
1587 Lx_ExcepionMsg := 'Reaction Time - Severity';
1588 ELSE
1589 Lx_ExcepionMsg := 'Resolution Time - Severity';
1590 END IF;
1591
1592 RAISE L_EXCEP_NO_DATA_FOUND;
1593
1594 END IF;
1595
1596 CLOSE Lx_Csr_RTL_Line;
1597
1598 X_RTL_Id := Lx_RTL_Id;
1599 X_RTL_Start := Ld_RTL_Start;
1600 X_RTL_End := Ld_RTL_End;
1601 X_RTL_Terminated := Ld_RTL_Terminated;
1602 X_RTL_Line_Id := Lx_RTL_Id;
1603 X_RTL_WT_YN := Lx_RTL_WT_YN;
1604 X_Result := Lx_Result;
1605 X_Return_Status := Lx_Return_Status;
1606
1607 EXCEPTION
1608
1609 WHEN L_EXCEP_NO_DATA_FOUND THEN
1610
1611 Lx_Result := G_FALSE;
1612
1613 IF Lx_Set_ExcepionStack = G_TRUE THEN
1614
1615 OKC_API.SET_MESSAGE
1616 (P_app_name => G_APP_NAME_OKC
1617 ,P_msg_name => G_REQUIRED_VALUE
1618 ,P_token1 => G_COL_NAME_TOKEN
1619 ,P_token1_value => Lx_ExcepionMsg);
1620
1621 Lx_Return_Status := G_RET_STS_ERROR;
1622
1623 END IF;
1624
1625 X_Result := Lx_Result;
1626 X_Return_Status := Lx_Return_Status;
1627
1628 WHEN OTHERS THEN
1629
1630 IF Lx_Csr_RTL_Line%ISOPEN THEN
1631 CLOSE Lx_Csr_RTL_Line;
1632 END IF;
1633
1634 OKC_API.SET_MESSAGE
1635 (P_App_Name => G_APP_NAME_OKC
1636 ,P_Msg_Name => G_UNEXPECTED_ERROR
1637 ,P_Token1 => G_SQLCODE_TOKEN
1638 ,P_Token1_Value => SQLCODE
1639 ,P_Token2 => G_SQLERRM_TOKEN
1640 ,P_Token2_Value => SQLERRM);
1641
1642 OKC_API.SET_MESSAGE
1643 (P_App_Name => G_APP_NAME_OKC
1644 ,P_Msg_Name => G_DEBUG_TOKEN
1645 ,P_Token1 => G_PACKAGE_TOKEN
1646 ,P_Token1_Value => G_PKG_NAME
1647 ,P_Token2 => G_PROGRAM_TOKEN
1648 ,P_Token2_Value => 'Get_BP_ReactResolTime_Line');
1649
1650 X_Result := G_FALSE;
1651 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1652
1653 END Get_BP_ReactResolTime_Line;
1654
1655 -----------------------------------------------------------------------------------------------------------------------
1656
1657 PROCEDURE Get_Cont_Effective_Dates
1658 (P_SVL_Start IN DATE
1659 ,P_SVL_End IN DATE
1660 ,P_CVL_Start IN DATE
1661 ,P_CVL_End IN DATE
1662 ,P_BPL_Start IN DATE
1663 ,P_BPL_End IN DATE
1664 ,P_RTL_Start IN DATE
1665 ,P_RTL_End IN DATE
1666 ,P_Set_ExcepionStack IN Gx_Boolean
1667 ,X_Cont_EffStart out nocopy DATE
1668 ,X_Cont_EffEnd out nocopy DATE
1669 ,X_Result out nocopy Gx_Boolean
1670 ,X_Return_Status out nocopy Gx_Ret_Sts)
1671 IS
1672
1673 CURSOR Lx_Csr_RTL_EffDates(Cd_SVL_Start IN DATE
1674 ,Cd_SVL_End IN DATE
1675 ,Cd_CVL_Start IN DATE
1676 ,Cd_CVL_End IN DATE
1677 ,Cd_BPL_Start IN DATE
1678 ,Cd_BPL_End IN DATE
1679 ,Cd_RTL_Start IN DATE
1680 ,Cd_RTL_End IN DATE)
1681 IS
1682 SELECT MAX(Start_Date), MIN(End_Date)
1683 FROM ( SELECT Cd_SVL_Start Start_Date, Cd_SVL_End End_Date FROM DUAL
1684 UNION
1685 SELECT Cd_CVL_Start Start_Date, Cd_CVL_End End_Date FROM DUAL
1686 UNION
1687 SELECT Cd_BPL_Start Start_Date, Cd_BPL_End End_Date FROM DUAL
1688 UNION
1689 SELECT Cd_RTL_Start Start_Date, Cd_RTL_End End_Date FROM DUAL);
1690
1691 Ld_SVL_Start CONSTANT DATE := P_SVL_Start;
1692 Ld_SVL_End CONSTANT DATE := P_SVL_End;
1693 Ld_CVL_Start CONSTANT DATE := P_CVL_Start;
1694 Ld_CVL_End CONSTANT DATE := P_CVL_End;
1695 Ld_BPL_Start CONSTANT DATE := P_BPL_Start;
1696 Ld_BPL_End CONSTANT DATE := P_BPL_End;
1697 Ld_RTL_Start CONSTANT DATE := P_RTL_Start;
1698 Ld_RTL_End CONSTANT DATE := P_RTL_End ;
1699
1700 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1701
1702 Ld_Cont_EffStart DATE;
1703 Ld_Cont_EffEnd DATE;
1704 Lx_Result Gx_Boolean;
1705 Lx_Return_Status Gx_Ret_Sts;
1706
1707 Lx_Msg_TokenVal Gx_ExceptionMsg;
1708
1709 L_EXCEP_NO_DATA_FOUND EXCEPTION;
1710 L_EXCEP_NO_EFF_DATE EXCEPTION;
1711
1712 BEGIN
1713
1714 Lx_Result := G_TRUE;
1715 Lx_Return_Status := G_RET_STS_SUCCESS;
1716
1717 OPEN Lx_Csr_RTL_EffDates(Ld_SVL_Start,Ld_SVL_End,Ld_CVL_Start,Ld_CVL_End
1718 ,Ld_BPL_Start,Ld_BPL_End,Ld_RTL_Start,Ld_RTL_End);
1719
1720 FETCH Lx_Csr_RTL_EffDates INTO Ld_Cont_EffStart,Ld_Cont_EffEnd;
1721
1722 IF Lx_Csr_RTL_EffDates%NOTFOUND THEN
1723
1724 Lx_Msg_TokenVal := 'Contract - Effectivity Dates';
1725 RAISE L_EXCEP_NO_DATA_FOUND;
1726
1727 ELSE
1728
1729 Lx_Msg_TokenVal := 'Contract - Effective Start Date';
1730
1731 Validate_Required_DateValue
1732 (P_Date_Value => Ld_Cont_EffStart
1733 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
1734 ,P_ExcepionMsg => Lx_Msg_TokenVal
1735 ,X_Result => Lx_result
1736 ,X_Return_Status => Lx_Return_Status);
1737
1738 IF Lx_Result <> G_TRUE THEN
1739 RAISE L_EXCEP_NO_EFF_DATE;
1740 END IF;
1741
1742 Lx_Msg_TokenVal := 'Contract - Effective End Date';
1743
1744 Validate_Required_DateValue
1745 (P_Date_Value => Ld_Cont_EffEnd
1746 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
1747 ,P_ExcepionMsg => Lx_Msg_TokenVal
1748 ,X_Result => Lx_result
1749 ,X_Return_Status => Lx_Return_Status);
1750
1751 IF Lx_Result <> G_TRUE THEN
1752 RAISE L_EXCEP_NO_EFF_DATE;
1753 END IF;
1754
1755 END IF;
1756
1757 CLOSE Lx_Csr_RTL_EffDates;
1758
1759 X_Cont_EffStart := Ld_Cont_EffStart;
1760 X_Cont_EffEnd := Ld_Cont_EffEnd;
1761 X_Result := Lx_Result;
1762 X_Return_Status := Lx_Return_Status;
1763
1764 EXCEPTION
1765
1766 WHEN L_EXCEP_NO_DATA_FOUND THEN
1767
1768 IF Lx_Csr_RTL_EffDates%ISOPEN THEN
1769 CLOSE Lx_Csr_RTL_EffDates;
1770 END IF;
1771
1772 Lx_Result := G_FALSE;
1773
1774 IF Lx_Set_ExcepionStack = G_TRUE THEN
1775
1776 OKC_API.SET_MESSAGE
1777 (P_app_name => G_APP_NAME_OKC
1778 ,P_msg_name => G_REQUIRED_VALUE
1779 ,P_token1 => G_COL_NAME_TOKEN
1780 ,P_token1_value => Lx_Msg_TokenVal);
1781
1782 Lx_Return_Status := G_RET_STS_ERROR;
1783
1784 END IF;
1785
1786 X_Result := Lx_Result;
1787 X_Return_Status := Lx_Return_Status;
1788
1789 WHEN L_EXCEP_NO_EFF_DATE THEN
1790
1791 IF Lx_Csr_RTL_EffDates%ISOPEN THEN
1792 CLOSE Lx_Csr_RTL_EffDates;
1793 END IF;
1794
1795 X_Result := Lx_Result;
1796 X_Return_Status := Lx_Return_Status;
1797
1798 WHEN OTHERS THEN
1799
1800 IF Lx_Csr_RTL_EffDates%ISOPEN THEN
1801 CLOSE Lx_Csr_RTL_EffDates;
1802 END IF;
1803
1804 OKC_API.SET_MESSAGE
1805 (P_App_Name => G_APP_NAME_OKC
1806 ,P_Msg_Name => G_UNEXPECTED_ERROR
1807 ,P_Token1 => G_SQLCODE_TOKEN
1808 ,P_Token1_Value => SQLCODE
1809 ,P_Token2 => G_SQLERRM_TOKEN
1810 ,P_Token2_Value => SQLERRM);
1811
1812 OKC_API.SET_MESSAGE
1813 (P_App_Name => G_APP_NAME_OKC
1814 ,P_Msg_Name => G_DEBUG_TOKEN
1815 ,P_Token1 => G_PACKAGE_TOKEN
1816 ,P_Token1_Value => G_PKG_NAME
1817 ,P_Token2 => G_PROGRAM_TOKEN
1818 ,P_Token2_Value => 'Get_Cont_Effective_Dates');
1819
1820 X_Result := G_FALSE;
1821 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1822
1823 END Get_Cont_Effective_Dates;
1824
1825 -----------------------------------------------------------------------------------------------------------------------*
1826 /*vgujarat - modified for access hour ER 9675504*/
1827 PROCEDURE Get_BP_Cover_Times
1828 (P_BP_CVTLine_Id IN Gx_OKS_Id
1829 ,P_Request_Date IN DATE
1830 ,P_CovDay_DispFmt IN VARCHAR2
1831 ,P_Set_ExcepionStack IN Gx_Boolean
1832 ,X_BP_CovTimes out nocopy Gt_Bp_CoverTimes
1833 ,X_Result out nocopy Gx_Boolean
1834 ,X_Return_Status out nocopy Gx_Ret_Sts
1835 ,P_cust_id IN NUMBER DEFAULT NULL
1836 ,P_cust_site_id IN NUMBER DEFAULT NULL
1837 ,P_cust_loc_id IN NUMBER DEFAULT NULL)
1838 IS
1839
1840 CURSOR Lx_Csr_BP_CovTimes(Cx_BP_CVTLine_Id IN Gx_OKS_Id,
1841 Cx_sunday_flag in varchar2,
1842 Cx_monday_flag in varchar2,
1843 Cx_tuesday_flag in varchar2,
1844 Cx_wednesday_flag in varchar2,
1845 Cx_thursday_flag in varchar2,
1846 Cx_friday_flag in varchar2,
1847 Cx_saturday_flag in varchar2)
1848 IS
1849 SELECT LPAD(TO_CHAR(CVT.START_HOUR), 2, '0')||LPAD(TO_CHAR(CVT.START_MINUTE), 2, '0') BP_Cover_From
1850 ,LPAD(TO_CHAR(CVT.END_HOUR), 2, '0')||LPAD(TO_CHAR(CVT.END_MINUTE), 2, '0') BP_Cover_To
1851 ,((CVT.START_HOUR)*60+(CVT.START_MINUTE)) BP_Cover_From_num
1852 FROM Oks_Coverage_Times CVT
1853 WHERE CVT.cov_tze_line_id = Cx_BP_CVTLine_Id
1854 And (
1855 decode(Cx_sunday_flag,'Y',CVT.sunday_yn,'N','#') = decode(Cx_sunday_flag,'Y','Y','N','#')
1856 and decode(Cx_monday_flag,'Y', CVT.monday_yn,'N','#') = decode(Cx_monday_flag,'Y','Y','N','#')
1857 and decode(Cx_tuesday_flag,'Y', CVT.tuesday_yn,'N','#') = decode(Cx_tuesday_flag,'Y','Y','N','#')
1858 and decode(Cx_wednesday_flag,'Y', CVT.wednesday_yn,'N','#') = decode(Cx_wednesday_flag,'Y','Y','N','#')
1859 and decode(Cx_thursday_flag,'Y', CVT.thursday_yn,'N','#') = decode(Cx_thursday_flag,'Y','Y','N','#')
1860 and decode(Cx_friday_flag,'Y', CVT.friday_yn,'N','#') = decode(Cx_friday_flag,'Y','Y','N','#')
1861 and decode(Cx_saturday_flag,'Y', CVT.saturday_yn,'N','#') = decode(Cx_saturday_flag,'Y','Y','N','#')
1862 )
1863 order by BP_Cover_From_num;
1864
1865
1866 Lx_BP_CVTLine_Id CONSTANT Gx_OKS_Id := P_BP_CVTLine_Id;
1867 Ld_Request_Date CONSTANT DATE := P_Request_Date;
1868 Lv_CovDay_DispFmt CONSTANT VARCHAR2(15) := P_CovDay_DispFmt;
1869 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1870
1871 /*vgujarat - modified for access hour ER 9675504*/
1872 Lx_cust_id CONSTANT NUMBER := P_cust_id;
1873 Lx_cust_site_id CONSTANT NUMBER := P_cust_site_id;
1874 Lx_cust_loc_id CONSTANT NUMBER := P_cust_loc_id;
1875
1876 Lx_BP_CovTimes Gt_Bp_CoverTimes;
1877 Lx_Result Gx_Boolean;
1878 Lx_Return_Status Gx_Ret_Sts;
1879 Lx_ExcepionMsg Gx_ExceptionMsg;
1880
1881 Li_TableIdx BINARY_INTEGER;
1882 Li_RowCount INTEGER(10);
1883
1884 Lx_Request_date_Num number;
1885
1886 -- Added by JVARGHES
1887
1888 Ld_Run_Date DATE;
1889 Ln_CoverDay_Num NUMBER;
1890 Lv_CoverDay_NLS_Char VARCHAR2(30);
1891 Lv_CoverDay_USA_DY_Char VARCHAR2(30);
1892 Ln_ReqDay_Relative NUMBER;
1893 --
1894
1895 Lx_sunday_flag varchar2(1);
1896 Lx_monday_flag varchar2(1);
1897 Lx_tuesday_flag varchar2(1);
1898 Lx_wednesday_flag varchar2(1);
1899 Lx_thursday_flag varchar2(1);
1900 Lx_friday_flag varchar2(1);
1901 Lx_saturday_flag varchar2(1);
1902
1903 week_ctr number;
1904
1905 L_EXCEP_NO_COVER_TIME EXCEPTION;
1906
1907 /*vgujarat - modified for access hour ER 9675504*/
1908
1909 l_access_hours CSF_MAP_ACC_HRS_PKG.access_hours_rec;
1910
1911 l_sw_first_start varchar2(4);
1912 l_sw_first_end varchar2(4);
1913 l_sw_second_start varchar2(4);
1914 l_sw_second_end varchar2(4);
1915
1916 l_ah_first_start_hrsmin varchar2(4);
1917 l_ah_first_end_hrsmin varchar2(4);
1918 l_ah_second_start_hrsmin varchar2(4);
1919 l_ah_second_end_hrsmin varchar2(4);
1920
1921 l_day_first_start varchar2(50);
1922 l_day_first_end varchar2(50);
1923 l_day_second_start varchar2(50);
1924 l_day_second_end varchar2(50);
1925
1926 l_day varchar2(15);
1927
1928
1929 TYPE ah_time_rec IS RECORD
1930 (access_day INTEGER(1)
1931 ,first_start VARCHAR2(4)
1932 ,first_end VARCHAR2(4)
1933 ,second_start VARCHAR2(4)
1934 ,second_end VARCHAR2(4)
1935 );
1936
1937 TYPE ah_time_tbl_type IS TABLE OF ah_time_rec INDEX BY BINARY_INTEGER;
1938
1939 ah_time_tbl ah_time_tbl_type ;
1940
1941 TYPE ah_window_rec IS RECORD
1942 (ah_cover_from VARCHAR2(4)
1943 ,ah_cover_to VARCHAR2(4)
1944 );
1945
1946 TYPE ah_window_tbl_type IS TABLE OF ah_window_rec INDEX BY BINARY_INTEGER;
1947
1948 ah_window_tbl ah_window_tbl_type ;
1949
1950 temp_start VARCHAR2(4);
1951 temp_end VARCHAR2(4);
1952 final_bp_cover_from VARCHAR2(4);
1953 final_bp_cover_to VARCHAR2(4);
1954
1955 /*vgujarat - modified for access hour ER 9675504*/
1956
1957 BEGIN
1958
1959 Lx_Result := G_TRUE;
1960 Lx_Return_Status := G_RET_STS_SUCCESS;
1961
1962 Li_RowCount := 0;
1963
1964 Lx_sunday_flag := 'N';
1965 Lx_monday_flag := 'N';
1966 Lx_tuesday_flag := 'N';
1967 Lx_wednesday_flag := 'N';
1968 Lx_thursday_flag := 'N';
1969 Lx_friday_flag := 'N';
1970 Lx_saturday_flag := 'N';
1971
1972 week_ctr := 0;
1973
1974 Li_TableIdx := 0;
1975
1976 while week_ctr < 7 loop
1977
1978 /* -- Commented out JVARGHES on Mar 07, 2005.
1979 -- for the resolution of Bug# 4191909.
1980
1981 Lx_Request_date_Num := to_number(to_char(Ld_Request_Date+week_ctr,'D'));
1982
1983 Lx_sunday_flag := 'N';
1984 Lx_monday_flag := 'N';
1985 Lx_tuesday_flag := 'N';
1986 Lx_wednesday_flag := 'N';
1987 Lx_thursday_flag := 'N';
1988 Lx_friday_flag := 'N';
1989 Lx_saturday_flag := 'N';
1990
1991 if Lx_Request_date_Num = 1 then
1992 Lx_sunday_flag := 'Y';
1993 elsif Lx_Request_date_Num = 2 then
1994 Lx_monday_flag := 'Y';
1995 elsif Lx_Request_date_Num = 3 then
1996 Lx_tuesday_flag := 'Y';
1997 elsif Lx_Request_date_Num = 4 then
1998 Lx_wednesday_flag := 'Y';
1999 elsif Lx_Request_date_Num = 5 then
2000 Lx_thursday_flag := 'Y';
2001 elsif Lx_Request_date_Num = 6 then
2002 Lx_friday_flag := 'Y';
2003 elsif Lx_Request_date_Num = 7 then
2004 Lx_saturday_flag := 'Y';
2005 end if;
2006 */
2007
2008 -- Added by JVARGHES on Mar 07, 2005.
2009 -- for the resolution of Bug# 4191909.
2010
2011 Lx_Sunday_Flag := 'N';
2012 Lx_Monday_Flag := 'N';
2013 Lx_Tuesday_Flag := 'N';
2014 Lx_Wednesday_Flag := 'N';
2015 Lx_Thursday_Flag := 'N';
2016 Lx_Friday_Flag := 'N';
2017 Lx_Saturday_Flag := 'N';
2018
2019 Ld_Run_Date := Ld_Request_Date+Week_Ctr;
2020 Ln_CoverDay_Num := TO_NUMBER(TO_CHAR(Ld_Run_Date,'D'));
2021 Lv_CoverDay_NLS_Char := TO_CHAR(Ld_Run_Date,Lv_CovDay_DispFmt);
2022 Lv_CoverDay_USA_DY_Char := TO_CHAR(Ld_Run_Date,'DY','NLS_DATE_LANGUAGE = AMERICAN');
2023
2024 IF Lv_CoverDay_USA_DY_Char = 'SUN' THEN
2025 Lx_Sunday_Flag := 'Y';
2026 ELSIF Lv_CoverDay_USA_DY_Char = 'MON' THEN
2027 Lx_Monday_Flag := 'Y';
2028 ELSIF Lv_CoverDay_USA_DY_Char = 'TUE' THEN
2029 Lx_Tuesday_Flag := 'Y';
2030 ELSIF Lv_CoverDay_USA_DY_Char = 'WED' THEN
2031 Lx_Wednesday_Flag := 'Y';
2032 ELSIF Lv_CoverDay_USA_DY_Char = 'THU' THEN
2033 Lx_Thursday_Flag := 'Y';
2034 ELSIF Lv_CoverDay_USA_DY_Char = 'FRI' THEN
2035 Lx_Friday_Flag := 'Y';
2036 ELSIF Lv_CoverDay_USA_DY_Char = 'SAT' THEN
2037 Lx_Saturday_Flag := 'Y';
2038 END IF;
2039
2040 Ln_ReqDay_Relative := Week_Ctr+1;
2041
2042 --
2043
2044 /*vgujarat - modified for access hour ER 9675504*/
2045 ----------------------------Access Hours Code Change starts here --------------------------------------
2046 /*
2047 Reg :The application should take the access hours into account when calculating SLAs on the SR.
2048
2049 The Respond by and Resolve by dates should be pushed out when customer site is unavailable between the time the service request is logged and the Respond by time.
2050
2051 1.Get the Access Hour information from the api CSF_MAP_ACC_HRS_PKG.Query_ROW
2052 2.For each and every day concatenate the hour and minute portion of first_start,first_end,second_start and second_end
2053 ex) if 09:30 = > 0930
2054 3.Calculate the Service Window which is derived from the covered time and the access hours
2055 4.Pass this calculated service window to the OUT variable X_BP_CovTimes
2056
2057 */
2058
2059
2060 -- If the newly added profile 'Service: Include Access Hours in SLA' is set to Yes then access hours is taken into consideration
2061
2062 If (fnd_profile.value('CS_SR_INCLUDE_ACCESS_HOURS_IN_SLA') = 'Y') AND (Lx_cust_id IS NOT NULL OR Lx_cust_site_id IS NOT NULL OR Lx_cust_loc_id IS NOT NULL) THEN
2063
2064
2065
2066 -- Calling the Field Service API to get the Access Hours detail
2067 CSF_MAP_ACC_HRS_PKG.Query_ROW(
2068 p_customer_id => Lx_cust_id,
2069 p_customer_site_id => Lx_cust_site_id,
2070 p_customer_location_id => Lx_cust_loc_id,
2071 x_access_hours => l_access_hours
2072 );
2073
2074 FOR i in 1..7 LOOP
2075
2076
2077 if i=1 then
2078 l_day := 'SUNDAY';
2079
2080 l_ah_first_start_hrsmin := to_char(l_access_hours.SUNDAY_FIRST_START,'hh24') ||
2081 to_char(l_access_hours.SUNDAY_FIRST_START,'mi');
2082
2083 l_ah_first_end_hrsmin := to_char(l_access_hours.SUNDAY_FIRST_END,'hh24') ||
2084 to_char(l_access_hours.SUNDAY_FIRST_END,'mi');
2085
2086
2087 l_ah_second_start_hrsmin := to_char(l_access_hours.SUNDAY_SECOND_START,'hh24') ||
2088 to_char(l_access_hours.SUNDAY_SECOND_START,'mi');
2089
2090 l_ah_second_end_hrsmin := to_char(l_access_hours.SUNDAY_SECOND_END,'hh24') ||
2091 to_char(l_access_hours.SUNDAY_SECOND_END,'mi');
2092
2093 ah_time_tbl(i).access_day := i;
2094 ah_time_tbl(i).first_start := l_ah_first_start_hrsmin;
2095 ah_time_tbl(i).first_end := l_ah_first_end_hrsmin;
2096 ah_time_tbl(i).second_start := l_ah_second_start_hrsmin;
2097 ah_time_tbl(i).second_end := l_ah_second_end_hrsmin;
2098
2099 end if;
2100
2101 if i=2 then l_day := 'MONDAY';
2102
2103 l_ah_first_start_hrsmin := to_char(l_access_hours.MONDAY_FIRST_START,'hh24') ||
2104 to_char(l_access_hours.MONDAY_FIRST_START,'mi');
2105
2106 l_ah_first_end_hrsmin := to_char(l_access_hours.MONDAY_FIRST_END,'hh24') ||
2107 to_char(l_access_hours.MONDAY_FIRST_END,'mi');
2108
2109
2110 l_ah_second_start_hrsmin := to_char(l_access_hours.MONDAY_SECOND_START,'hh24') ||
2111 to_char(l_access_hours.MONDAY_SECOND_START,'mi');
2112
2113 l_ah_second_end_hrsmin := to_char(l_access_hours.MONDAY_SECOND_END,'hh24') ||
2114 to_char(l_access_hours.MONDAY_SECOND_END,'mi');
2115
2116 ah_time_tbl(i).access_day := i;
2117 ah_time_tbl(i).first_start := l_ah_first_start_hrsmin;
2118 ah_time_tbl(i).first_end := l_ah_first_end_hrsmin;
2119 ah_time_tbl(i).second_start := l_ah_second_start_hrsmin;
2120 ah_time_tbl(i).second_end := l_ah_second_end_hrsmin;
2121
2122 end if;
2123
2124 if i=3 then l_day := 'TUESDAY';
2125
2126 l_ah_first_start_hrsmin := to_char(l_access_hours.TUESDAY_FIRST_START,'hh24') ||
2127 to_char(l_access_hours.TUESDAY_FIRST_START,'mi');
2128
2129 l_ah_first_end_hrsmin := to_char(l_access_hours.TUESDAY_FIRST_END,'hh24') ||
2130 to_char(l_access_hours.TUESDAY_FIRST_END,'mi');
2131
2132
2133 l_ah_second_start_hrsmin := to_char(l_access_hours.TUESDAY_SECOND_START,'hh24') ||
2134 to_char(l_access_hours.TUESDAY_SECOND_START,'mi');
2135
2136 l_ah_second_end_hrsmin := to_char(l_access_hours.TUESDAY_SECOND_END,'hh24') ||
2137 to_char(l_access_hours.TUESDAY_SECOND_END,'mi');
2138
2139 ah_time_tbl(i).access_day := i;
2140 ah_time_tbl(i).first_start := l_ah_first_start_hrsmin;
2141 ah_time_tbl(i).first_end := l_ah_first_end_hrsmin;
2142 ah_time_tbl(i).second_start := l_ah_second_start_hrsmin;
2143 ah_time_tbl(i).second_end := l_ah_second_end_hrsmin;
2144
2145 end if;
2146
2147 if i=4 then l_day := 'WEDNESDAY';
2148 l_ah_first_start_hrsmin := to_char(l_access_hours.WEDNESDAY_FIRST_START,'hh24') ||
2149 to_char(l_access_hours.WEDNESDAY_FIRST_START,'mi');
2150
2151 l_ah_first_end_hrsmin := to_char(l_access_hours.WEDNESDAY_FIRST_END,'hh24') ||
2152 to_char(l_access_hours.WEDNESDAY_FIRST_END,'mi');
2153
2154
2155 l_ah_second_start_hrsmin := to_char(l_access_hours.WEDNESDAY_SECOND_START,'hh24') ||
2156 to_char(l_access_hours.WEDNESDAY_SECOND_START,'mi');
2157
2158 l_ah_second_end_hrsmin := to_char(l_access_hours.WEDNESDAY_SECOND_END,'hh24') ||
2159 to_char(l_access_hours.WEDNESDAY_SECOND_END,'mi');
2160
2161 ah_time_tbl(i).access_day := i;
2162 ah_time_tbl(i).first_start := l_ah_first_start_hrsmin;
2163 ah_time_tbl(i).first_end := l_ah_first_end_hrsmin;
2164 ah_time_tbl(i).second_start := l_ah_second_start_hrsmin;
2165 ah_time_tbl(i).second_end := l_ah_second_end_hrsmin;
2166
2167 end if;
2168
2169 if i=5 then l_day := 'THURSDAY';
2170 l_ah_first_start_hrsmin := to_char(l_access_hours.THURSDAY_FIRST_START,'hh24') ||
2171 to_char(l_access_hours.THURSDAY_FIRST_START,'mi');
2172
2173 l_ah_first_end_hrsmin := to_char(l_access_hours.THURSDAY_FIRST_END,'hh24') ||
2174 to_char(l_access_hours.THURSDAY_FIRST_END,'mi');
2175
2176
2177 l_ah_second_start_hrsmin := to_char(l_access_hours.THURSDAY_SECOND_START,'hh24') ||
2178 to_char(l_access_hours.THURSDAY_SECOND_START,'mi');
2179
2180 l_ah_second_end_hrsmin := to_char(l_access_hours.THURSDAY_SECOND_END,'hh24') ||
2181 to_char(l_access_hours.THURSDAY_SECOND_END,'mi');
2182
2183 ah_time_tbl(i).access_day := i;
2184 ah_time_tbl(i).first_start := l_ah_first_start_hrsmin;
2185 ah_time_tbl(i).first_end := l_ah_first_end_hrsmin;
2186 ah_time_tbl(i).second_start := l_ah_second_start_hrsmin;
2187 ah_time_tbl(i).second_end := l_ah_second_end_hrsmin;
2188
2189 end if;
2190
2191 if i=6 then l_day := 'FRIDAY';
2192 l_ah_first_start_hrsmin := to_char(l_access_hours.FRIDAY_FIRST_START,'hh24') ||
2193 to_char(l_access_hours.FRIDAY_FIRST_START,'mi');
2194
2195 l_ah_first_end_hrsmin := to_char(l_access_hours.FRIDAY_FIRST_END,'hh24') ||
2196 to_char(l_access_hours.FRIDAY_FIRST_END,'mi');
2197
2198
2199 l_ah_second_start_hrsmin := to_char(l_access_hours.FRIDAY_SECOND_START,'hh24') ||
2200 to_char(l_access_hours.FRIDAY_SECOND_START,'mi');
2201
2202 l_ah_second_end_hrsmin := to_char(l_access_hours.FRIDAY_SECOND_END,'hh24') ||
2203 to_char(l_access_hours.FRIDAY_SECOND_END,'mi');
2204
2205 ah_time_tbl(i).access_day := i;
2206 ah_time_tbl(i).first_start := l_ah_first_start_hrsmin;
2207 ah_time_tbl(i).first_end := l_ah_first_end_hrsmin;
2208 ah_time_tbl(i).second_start := l_ah_second_start_hrsmin;
2209 ah_time_tbl(i).second_end := l_ah_second_end_hrsmin;
2210 end if;
2211
2212 if i=7 then l_day := 'SATURDAY';
2213
2214 l_ah_first_start_hrsmin := to_char(l_access_hours.SATURDAY_FIRST_START,'hh24') ||
2215 to_char(l_access_hours.SATURDAY_FIRST_START,'mi');
2216
2217 l_ah_first_end_hrsmin := to_char(l_access_hours.SATURDAY_FIRST_END,'hh24') ||
2218 to_char(l_access_hours.SATURDAY_FIRST_END,'mi');
2219
2220
2221 l_ah_second_start_hrsmin := to_char(l_access_hours.SATURDAY_SECOND_START,'hh24') ||
2222 to_char(l_access_hours.SATURDAY_SECOND_START,'mi');
2223
2224 l_ah_second_end_hrsmin := to_char(l_access_hours.SATURDAY_SECOND_END,'hh24') ||
2225 to_char(l_access_hours.SATURDAY_SECOND_END,'mi');
2226
2227 ah_time_tbl(i).access_day := i;
2228 ah_time_tbl(i).first_start := l_ah_first_start_hrsmin;
2229 ah_time_tbl(i).first_end := l_ah_first_end_hrsmin;
2230 ah_time_tbl(i).second_start := l_ah_second_start_hrsmin;
2231 ah_time_tbl(i).second_end := l_ah_second_end_hrsmin;
2232 end if;
2233 END LOOP;
2234
2235
2236
2237 FOR Idx IN Lx_Csr_BP_CovTimes(Lx_BP_CVTLine_Id,
2238 Lx_sunday_flag,Lx_monday_flag,Lx_tuesday_flag,
2239 Lx_wednesday_flag,Lx_thursday_flag,Lx_friday_flag,
2240 Lx_saturday_flag) LOOP
2241
2242 Li_TableIdx := Li_TableIdx + 1;
2243
2244 -- Modified by JVARGHES on Mar 07, 2005.
2245 -- for the resolution of Bug# 4191909
2246
2247 -- Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_Day := to_char(Ld_Request_Date+week_ctr,Lv_CovDay_DispFmt); --Idx.BP_CoverDay_Char;
2248 -- Lx_BP_CovTimes(Li_TableIdx).Ri_Cover_Day := Lx_Request_date_Num; --Idx.BP_CoverDay_Num;
2249 -- Lx_BP_CovTimes(Li_TableIdx).Ri_ReqDay_Relative := week_ctr+1; --Idx.BP_ReqDay_Ralative;
2250 /*access hour window to be considered*/
2251 /*logic starts here*/
2252 if Lx_sunday_flag = 'Y' then
2253
2254 ah_window_tbl(1).ah_cover_from := ah_time_tbl(1).first_start;
2255 ah_window_tbl(1).ah_cover_to := ah_time_tbl(1).first_end;
2256 ah_window_tbl(2).ah_cover_from := ah_time_tbl(1).second_start;
2257 ah_window_tbl(2).ah_cover_to := ah_time_tbl(1).second_end;
2258
2259 elsif Lx_monday_flag = 'Y' then
2260 ah_window_tbl(1).ah_cover_from := ah_time_tbl(2).first_start;
2261 ah_window_tbl(1).ah_cover_to := ah_time_tbl(2).first_end;
2262 ah_window_tbl(2).ah_cover_from := ah_time_tbl(2).second_start;
2263 ah_window_tbl(2).ah_cover_to := ah_time_tbl(2).second_end;
2264
2265 elsif Lx_tuesday_flag = 'Y' then
2266 ah_window_tbl(1).ah_cover_from := ah_time_tbl(3).first_start;
2267 ah_window_tbl(1).ah_cover_to := ah_time_tbl(3).first_end;
2268 ah_window_tbl(2).ah_cover_from := ah_time_tbl(3).second_start;
2269 ah_window_tbl(2).ah_cover_to := ah_time_tbl(3).second_end;
2270
2271 elsif Lx_wednesday_flag = 'Y' then
2272 ah_window_tbl(1).ah_cover_from := ah_time_tbl(4).first_start;
2273 ah_window_tbl(1).ah_cover_to := ah_time_tbl(4).first_end;
2274 ah_window_tbl(2).ah_cover_from := ah_time_tbl(4).second_start;
2275 ah_window_tbl(2).ah_cover_to := ah_time_tbl(4).second_end;
2276
2277 elsif Lx_thursday_flag = 'Y' then
2278 ah_window_tbl(1).ah_cover_from := ah_time_tbl(5).first_start;
2279 ah_window_tbl(1).ah_cover_to := ah_time_tbl(5).first_end;
2280 ah_window_tbl(2).ah_cover_from := ah_time_tbl(5).second_start;
2281 ah_window_tbl(2).ah_cover_to := ah_time_tbl(5).second_end;
2282
2283 elsif Lx_friday_flag = 'Y' then
2284 ah_window_tbl(1).ah_cover_from := ah_time_tbl(6).first_start;
2285 ah_window_tbl(1).ah_cover_to := ah_time_tbl(6).first_end;
2286 ah_window_tbl(2).ah_cover_from := ah_time_tbl(6).second_start;
2287 ah_window_tbl(2).ah_cover_to := ah_time_tbl(6).second_end;
2288
2289 elsif Lx_saturday_flag = 'Y' then
2290 ah_window_tbl(1).ah_cover_from := ah_time_tbl(7).first_start;
2291 ah_window_tbl(1).ah_cover_to := ah_time_tbl(7).first_end;
2292 ah_window_tbl(2).ah_cover_from := ah_time_tbl(7).second_start;
2293 ah_window_tbl(2).ah_cover_to := ah_time_tbl(7).second_end;
2294 end if;
2295
2296 for j in ah_window_tbl.first..ah_window_tbl.last loop
2297 temp_start := Greatest(Idx.bp_cover_from,ah_window_tbl(j).ah_cover_from);
2298 if ah_window_tbl(j).ah_cover_from IS NOT NULL AND temp_start = ah_window_tbl(j).ah_cover_from then
2299 if temp_start <= Idx.bp_cover_to then
2300 final_bp_cover_from := temp_start;
2301
2302 temp_end := least(Idx.bp_cover_to,ah_window_tbl(j).ah_cover_to);
2303 final_bp_cover_to := temp_end;
2304 end if;
2305 else
2306 if ah_window_tbl(j).ah_cover_to IS NOT NULL AND temp_start <= ah_window_tbl(j).ah_cover_to THEN
2307 final_bp_cover_from := temp_start;
2308
2309 temp_end := least(Idx.bp_cover_to,ah_window_tbl(j).ah_cover_to);
2310 final_bp_cover_to := temp_end;
2311 end if;
2312 end if;
2313 IF final_bp_cover_from IS NOT NULL THEN
2314 Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_Day := Lv_CoverDay_NLS_Char;
2315 Lx_BP_CovTimes(Li_TableIdx).Ri_Cover_Day := Ln_CoverDay_Num;
2316 Lx_BP_CovTimes(Li_TableIdx).Ri_ReqDay_Relative := Ln_ReqDay_Relative;
2317 Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_From := final_bp_cover_from;
2318 Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_To := final_bp_cover_to;
2319 Lx_BP_CovTimes(Li_TableIdx).Rx_Cover_TZoneId := null; -- Idx.BP_Tzone_Id; not required because already fetched
2320
2321 Li_RowCount := Li_TableIdx;
2322
2323 final_bp_cover_from := NULL;
2324 final_bp_cover_to := NULL;
2325
2326 END IF;
2327 end loop;
2328
2329 /*logic ends here*/
2330
2331 END LOOP;
2332
2333 ELSE /*If fnd_profile.value('CS_SR_INCLUDE_ACCESS_HOURS_IN_SLA') = 'Yes'*/
2334 FOR Idx IN Lx_Csr_BP_CovTimes(Lx_BP_CVTLine_Id,
2335 Lx_sunday_flag,Lx_monday_flag,Lx_tuesday_flag,
2336 Lx_wednesday_flag,Lx_thursday_flag,Lx_friday_flag,
2337 Lx_saturday_flag) LOOP
2338
2339 Li_TableIdx := Li_TableIdx + 1;
2340
2341 -- Modified by JVARGHES on Mar 07, 2005.
2342 -- for the resolution of Bug# 4191909
2343
2344 -- Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_Day := to_char(Ld_Request_Date+week_ctr,Lv_CovDay_DispFmt); --Idx.BP_CoverDay_Char;
2345 -- Lx_BP_CovTimes(Li_TableIdx).Ri_Cover_Day := Lx_Request_date_Num; --Idx.BP_CoverDay_Num;
2346 -- Lx_BP_CovTimes(Li_TableIdx).Ri_ReqDay_Relative := week_ctr+1; --Idx.BP_ReqDay_Ralative;
2347
2348
2349 Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_Day := Lv_CoverDay_NLS_Char;
2350 Lx_BP_CovTimes(Li_TableIdx).Ri_Cover_Day := Ln_CoverDay_Num;
2351 Lx_BP_CovTimes(Li_TableIdx).Ri_ReqDay_Relative := Ln_ReqDay_Relative;
2352 Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_From := Idx.BP_Cover_From;
2353 Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_To := Idx.BP_Cover_To;
2354 Lx_BP_CovTimes(Li_TableIdx).Rx_Cover_TZoneId := null; -- Idx.BP_Tzone_Id; not required because already fetched
2355
2356 Li_RowCount := Li_TableIdx;
2357
2358 END LOOP;
2359 END IF; /*If fnd_profile.value('CS_SR_INCLUDE_ACCESS_HOURS_IN_SLA') = 'Yes'*/
2360 /*vgujarat - modified for access hour ER 9675504*/
2361 week_ctr := week_ctr+1;
2362
2363 end loop;
2364
2365 IF Li_RowCount = 0 THEN
2366
2367 Lx_ExcepionMsg := 'Cover Time';
2368 RAISE L_EXCEP_NO_COVER_TIME;
2369
2370 END IF;
2371
2372 X_BP_CovTimes := Lx_BP_CovTimes;
2373 X_Result := Lx_Result;
2374 X_Return_Status := Lx_Return_Status;
2375
2376 EXCEPTION
2377
2378 WHEN L_EXCEP_NO_COVER_TIME THEN
2379
2380 Lx_Result := G_FALSE;
2381
2382 IF Lx_Set_ExcepionStack = G_TRUE THEN
2383
2384 OKC_API.SET_MESSAGE
2385 (P_App_Name => G_APP_NAME_OKC
2386 ,P_Msg_Name => G_REQUIRED_VALUE
2387 ,P_Token1 => G_COL_NAME_TOKEN
2388 ,P_Token1_Value => Lx_ExcepionMsg);
2389
2390 Lx_Return_Status := G_RET_STS_ERROR;
2391
2392 END IF;
2393
2394 X_Result := Lx_Result;
2395 X_Return_Status := Lx_Return_Status;
2396
2397 WHEN OTHERS THEN
2398
2399 OKC_API.SET_MESSAGE
2400 (P_App_Name => G_APP_NAME_OKC
2401 ,P_Msg_Name => G_UNEXPECTED_ERROR
2402 ,P_Token1 => G_SQLCODE_TOKEN
2403 ,P_Token1_Value => SQLCODE
2404 ,P_Token2 => G_SQLERRM_TOKEN
2405 ,P_Token2_Value => SQLERRM);
2406
2407 OKC_API.SET_MESSAGE
2408 (P_App_Name => G_APP_NAME_OKC
2409 ,P_Msg_Name => G_DEBUG_TOKEN
2410 ,P_Token1 => G_PACKAGE_TOKEN
2411 ,P_Token1_Value => G_PKG_NAME
2412 ,P_Token2 => G_PROGRAM_TOKEN
2413 ,P_Token2_Value => 'Get_BP_Cover_Times');
2414
2415 X_Result := G_FALSE;
2416 X_Return_Status := G_RET_STS_UNEXP_ERROR;
2417
2418 END Get_BP_Cover_Times;
2419
2420 -----------------------------------------------------------------------------------------------------------------------*
2421
2422 PROCEDURE Get_BP_Reaction_Times
2423 (P_RTL_Line_Id IN Gx_OKS_Id
2424 ,P_Request_Date IN DATE
2425 ,P_TimeType_Category IN Varchar2 --Gx_TimeType_Category
2426 ,P_ReactDay_DispFmt IN VARCHAR2
2427 ,P_Set_ExcepionStack IN Gx_Boolean
2428 ,X_Reaction_Attribs out nocopy GT_Bp_Reactions
2429 ,X_Result out nocopy Gx_Boolean
2430 ,X_Return_Status out nocopy Gx_Ret_Sts)
2431 IS
2432
2433 CURSOR Lx_Csr_React_Attribs(Cx_RTLLine_Id IN Gx_OKS_Id,Cx_TimeType_Category IN Varchar2) IS
2434 SELECT OAT.SUN_DURATION SUN_DURATION,
2435 OAT.MON_DURATION MON_DURATION,
2436 OAT.TUE_DURATION TUE_DURATION,
2437 OAT.WED_DURATION WED_DURATION,
2438 OAT.THU_DURATION THU_DURATION,
2439 OAT.FRI_DURATION FRI_DURATION,
2440 OAT.SAT_DURATION SAT_DURATION,
2441 OAT.UOM_CODE UOM_CODE
2442 FROM Oks_action_time_types OATT
2443 ,Oks_action_times OAT
2444 WHERE OATT.Cle_Id = Cx_RTLLine_Id
2445 AND OATT.action_type_code = Cx_TimeType_Category
2446 AND OAT.cov_action_type_id = OATT.Id;
2447
2448 -- Added by JVARGHES on Mar 07, 2005.
2449 -- for the resolution of Bug# 4191909.
2450 -- Created seperate Cursor for bug fix #5546615 hmnair
2451 /* CURSOR c_NLS_Day(Cd_Request_Date IN DATE, Cv_USA_DY_Char IN VARCHAR2) IS
2452 SELECT TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'DY')React_Day_Char
2453 ,TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'D') React_Day_Num
2454 , DECODE(SIGN((TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D')))+1),1
2455 ,TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D'))
2456 ,TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D')) + 7) ReqDay_Relative
2457 FROM DUAL; */
2458
2459 CURSOR c_NLS_Day(Cd_Request_Date IN DATE, Cv_USA_DY_Char IN VARCHAR2) IS
2460 SELECT TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'DY')React_Day_Char
2461 ,TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'D') React_Day_Num
2462 , DECODE(SIGN((TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D')))+1),1
2463 ,TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D'))
2464 ,TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D')) + 7) ReqDay_Relative
2465 FROM DUAL;
2466
2467
2468 --
2469
2470 Lx_RTL_Line_Id CONSTANT Gx_OKS_Id := P_RTL_Line_Id;
2471 Ld_Request_Date CONSTANT DATE := P_Request_Date;
2472 Lx_TimeType_Category CONSTANT varchar2(30) := P_TimeType_Category;
2473 Lv_CovDay_DispFmt CONSTANT VARCHAR2(15) := P_ReactDay_DispFmt;
2474 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
2475
2476 Lx_Reaction_Attribs GT_Bp_Reactions;
2477 Lx_Result Gx_Boolean;
2478 Lx_Return_Status Gx_Ret_Sts;
2479 Lx_ExcepionMsg Gx_ExceptionMsg;
2480
2481 Li_TableIdx BINARY_INTEGER;
2482 Lx_Request_date_Num number;
2483 Li_RowCount INTEGER(10);
2484 week_ctr number;
2485
2486 -- Added by JVARGHES on Mar 07, 2005.
2487 -- for the resolution of Bug# 4191909.
2488
2489 Lv_React_Day_NLS_Char VARCHAR2(30);
2490 Ln_React_Day_Num NUMBER;
2491 Ln_Req_Day_Relative NUMBER;
2492
2493 --
2494
2495 Lx_Sort_Tab GT_Bp_Reactions;
2496
2497 Li_TableIdx_Out BINARY_INTEGER;
2498 Li_TableIdx_In BINARY_INTEGER;
2499
2500 Lx_Temp_ReacAttribs GR_Bp_Reaction;
2501
2502 Lv_Composit_Val1 number;
2503 Lv_Composit_Val2 number;
2504
2505 L_EXCEP_NO_REACT_TIME EXCEPTION;
2506
2507 BEGIN
2508
2509 G_Rel_Sun := Get_NLS_Day_Of_Week('SUN');
2510 G_Rel_Mon := Get_NLS_Day_Of_Week('MON');
2511 G_Rel_Tue := Get_NLS_Day_Of_Week('TUE');
2512 G_Rel_Wed := Get_NLS_Day_Of_Week('WED');
2513 G_Rel_Thu := Get_NLS_Day_Of_Week('THU');
2514 G_Rel_Fri := Get_NLS_Day_Of_Week('FRI');
2515 G_Rel_Sat := Get_NLS_Day_Of_Week('SAT');
2516
2517 Lx_Result := G_TRUE;
2518 Lx_Return_Status := G_RET_STS_SUCCESS;
2519
2520 Lx_Request_date_Num := 0;
2521 Li_RowCount := 0;
2522 week_ctr := 0;
2523
2524 Li_TableIdx := 0;
2525
2526 Lx_Request_date_Num := to_number(to_char(Ld_Request_Date,'D'));
2527
2528 FOR Idx IN Lx_Csr_React_Attribs(Lx_RTL_Line_Id,Lx_TimeType_Category) LOOP
2529
2530 if Idx.Sun_Duration is not null then
2531
2532 Li_TableIdx := Li_TableIdx + 1;
2533
2534 -- Added by JVARGHES on Mar 07, 2005.
2535 -- for the resolution of Bug# 4191909.
2536
2537 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Sun);
2538 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2539 CLOSE c_NLS_Day;
2540
2541 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+1,'DY'); --Idx.React_Day_Char;
2542 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2543 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Sun_Duration;
2544 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2545 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 1; --Idx.React_Day_Num;
2546 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2547 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2548
2549 /*
2550 if Lx_Request_date_Num <= 1 then
2551 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 1-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2552 else
2553 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-1);
2554 end if;
2555 */
2556
2557 end if;
2558
2559 if Idx.Mon_Duration is not null then
2560
2561 Li_TableIdx := Li_TableIdx + 1;
2562
2563 -- Added by JVARGHES on Mar 07, 2005.
2564 -- for the resolution of Bug# 4191909.
2565
2566 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Mon);
2567 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2568 CLOSE c_NLS_Day;
2569
2570 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+2,'DY'); --Idx.React_Day_Char;
2571 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2572 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Mon_Duration;
2573 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2574 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 2; --Idx.React_Day_Num;
2575 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2576 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2577
2578 /*
2579 if Lx_Request_date_Num <= 2 then
2580 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 2-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2581 else
2582 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-2);
2583 end if;
2584 */
2585
2586 end if;
2587
2588 if Idx.Tue_Duration is not null then
2589
2590 Li_TableIdx := Li_TableIdx + 1;
2591
2592 -- Added by JVARGHES on Mar 07, 2005.
2593 -- for the resolution of Bug# 4191909.
2594
2595 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Tue);
2596 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2597 CLOSE c_NLS_Day;
2598
2599 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+3,'DY'); --Idx.React_Day_Char;
2600 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2601 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Tue_Duration;
2602 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2603 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 3; --Idx.React_Day_Num;
2604 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2605 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2606
2607 /*
2608 if Lx_Request_date_Num <= 3 then
2609 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 3-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2610 else
2611 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-3);
2612 end if;
2613 */
2614
2615
2616 end if;
2617
2618 if Idx.Wed_Duration is not null then
2619
2620 Li_TableIdx := Li_TableIdx + 1;
2621
2622 -- Added by JVARGHES on Mar 07, 2005.
2623 -- for the resolution of Bug# 4191909.
2624
2625 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Wed);
2626 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2627 CLOSE c_NLS_Day;
2628
2629 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+4,'DY'); --Idx.React_Day_Char;
2630 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2631 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Wed_Duration;
2632 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2633 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 4; --Idx.React_Day_Num;
2634 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2635 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2636
2637 /*
2638 if Lx_Request_date_Num <= 4 then
2639 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 4-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2640 else
2641 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-4);
2642 end if;
2643 */
2644
2645 end if;
2646
2647 if Idx.Thu_Duration is not null then
2648
2649 Li_TableIdx := Li_TableIdx + 1;
2650
2651 -- Added by JVARGHES on Mar 07, 2005.
2652 -- for the resolution of Bug# 4191909.
2653
2654 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Thu);
2655 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2656 CLOSE c_NLS_Day;
2657
2658 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+5,'DY'); --Idx.React_Day_Char;
2659 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2660 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Thu_Duration;
2661 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2662 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 5; --Idx.React_Day_Num;
2663 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2664 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2665
2666 /*
2667 if Lx_Request_date_Num <= 5 then
2668 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 5-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2669 else
2670 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-5);
2671 end if;
2672 */
2673
2674 end if;
2675
2676 if Idx.Fri_Duration is not null then
2677
2678 Li_TableIdx := Li_TableIdx + 1;
2679
2680 -- Added by JVARGHES on Mar 07, 2005.
2681 -- for the resolution of Bug# 4191909.
2682
2683 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Fri);
2684 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2685 CLOSE c_NLS_Day;
2686
2687 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+6,'DY'); --Idx.React_Day_Char;
2688 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2689 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Fri_Duration;
2690 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2691 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 6; --Idx.React_Day_Num;
2692 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2693 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2694
2695 /*
2696 if Lx_Request_date_Num <= 6 then
2697 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 6-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2698 else
2699 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-6);
2700 end if;
2701
2702 */
2703
2704 end if;
2705
2706 if Idx.Sat_Duration is not null then
2707
2708 Li_TableIdx := Li_TableIdx + 1;
2709
2710 -- Added by JVARGHES on Mar 07, 2005.
2711 -- for the resolution of Bug# 4191909.
2712
2713 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Sat);
2714 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2715 CLOSE c_NLS_Day;
2716
2717 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+7,'DY'); --Idx.React_Day_Char;
2718 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2719 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Sat_Duration;
2720 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2721 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 7; --Idx.React_Day_Num;
2722 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2723 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2724
2725 /*
2726 if Lx_Request_date_Num <= 7 then
2727 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2728 else
2729 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-7);
2730 end if;
2731
2732 */
2733
2734 end if;
2735
2736 Li_RowCount := Li_TableIdx;
2737
2738 END LOOP;
2739
2740 IF (Li_RowCount = 0 ) THEN
2741
2742 Lx_ExcepionMsg := 'Reaction Time';
2743 RAISE L_EXCEP_NO_REACT_TIME;
2744
2745 END IF;
2746
2747 -- sorting based on relative to request date (Ri_ReqDay_Relative)
2748
2749 Lx_Sort_Tab := Lx_Reaction_Attribs;
2750 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
2751
2752 WHILE Li_TableIdx_Out IS NOT NULL LOOP
2753 Li_TableIdx_In := Li_TableIdx_Out;
2754 WHILE Li_TableIdx_In IS NOT NULL LOOP
2755 Lv_Composit_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Ri_ReqDay_Relative;
2756 Lv_Composit_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Ri_ReqDay_Relative;
2757
2758 IF Lv_Composit_Val1 > Lv_Composit_Val2 THEN
2759 Lx_Temp_ReacAttribs := Lx_Sort_Tab(Li_TableIdx_Out);
2760 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
2761 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ReacAttribs;
2762 END IF;
2763
2764 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
2765 END LOOP;
2766 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
2767 END LOOP;
2768
2769 Lx_Reaction_Attribs.DELETE;
2770 Lx_Reaction_Attribs := Lx_Sort_Tab;
2771
2772 X_Reaction_Attribs := Lx_Reaction_Attribs;
2773 X_Result := Lx_Result;
2774 X_Return_Status := Lx_Return_Status;
2775
2776 EXCEPTION
2777
2778 WHEN L_EXCEP_NO_REACT_TIME THEN
2779
2780 Lx_Result := G_FALSE;
2781
2782 IF Lx_Set_ExcepionStack = G_TRUE THEN
2783
2784 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME_OKC
2785 ,p_msg_name => G_REQUIRED_VALUE
2786 ,p_token1 => G_COL_NAME_TOKEN
2787 ,p_token1_value => Lx_ExcepionMsg);
2788
2789 Lx_Return_Status := G_RET_STS_ERROR;
2790
2791 END IF;
2792
2793 X_Result := Lx_Result;
2794 X_Return_Status := Lx_Return_Status;
2795
2796 WHEN OTHERS THEN
2797
2798 OKC_API.SET_MESSAGE
2799 (P_App_Name => G_APP_NAME_OKC
2800 ,P_Msg_Name => G_UNEXPECTED_ERROR
2801 ,P_Token1 => G_SQLCODE_TOKEN
2802 ,P_Token1_Value => SQLCODE
2803 ,P_Token2 => G_SQLERRM_TOKEN
2804 ,P_Token2_Value => SQLERRM);
2805
2806 OKC_API.SET_MESSAGE
2807 (P_App_Name => G_APP_NAME_OKC
2808 ,P_Msg_Name => G_DEBUG_TOKEN
2809 ,P_Token1 => G_PACKAGE_TOKEN
2810 ,P_Token1_Value => G_PKG_NAME
2811 ,P_Token2 => G_PROGRAM_TOKEN
2812 ,P_Token2_Value => 'Get_BP_Reaction_Times');
2813
2814 X_Result := G_FALSE;
2815 X_Return_Status := G_RET_STS_UNEXP_ERROR;
2816
2817 END Get_BP_Reaction_Times;
2818
2819 -----------------------------------------------------------------------------------------------------------------------*
2820
2821 PROCEDURE Get_Reactn_Durn_In_Days
2822 (P_React_Durn IN Gx_ReactDurn
2823 ,P_React_UOM IN Gx_ReactUOM
2824 ,P_Set_ExcepionStack IN Gx_Boolean
2825 ,X_React_Durn_In_Days out nocopy NUMBER
2826 ,X_Result out nocopy Gx_Boolean
2827 ,X_Return_Status out nocopy Gx_Ret_Sts)
2828 IS
2829
2830 CURSOR Lx_Csr_React_Tce_code(Lx_React_UOM IN VARCHAR2) IS
2831 SELECT TCU.TCE_CODE Tce_Code
2832 FROM Okx_Units_Of_Measure_V UOM
2833 ,Okc_Time_Code_Units_V TCU
2834 WHERE UOM.UOM_CODE = Lx_React_UOM
2835 AND TCU.UOM_CODE = UOM.UOM_CODE
2836 AND TCU.quantity = 1
2837 AND TCU.tce_code = 'MINUTE';
2838
2839
2840
2841 Lx_React_Durn CONSTANT Gx_ReactDurn := NVL(P_React_Durn,0);
2842 Lx_React_UOM CONSTANT Gx_ReactUOM := P_React_UOM;
2843 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
2844
2845 Ln_React_Durn_In_Days NUMBER;
2846 Lx_Result Gx_Boolean;
2847 Lx_Return_Status Gx_Ret_Sts;
2848 Lx_ExcepionMsg Gx_ExceptionMsg;
2849 Lx_count NUMBER;
2850
2851 L_EXCEP_UNKNOWN_UOM EXCEPTION;
2852
2853
2854
2855 BEGIN
2856
2857 Lx_Result := G_TRUE;
2858 Lx_Return_Status := G_RET_STS_SUCCESS;
2859
2860 Lx_count := 0;
2861
2862 FOR Lx_Csr_Rec in Lx_Csr_React_Tce_code(Lx_React_UOM) LOOP
2863
2864 Lx_count := Lx_count + 1;
2865
2866 END LOOP;
2867
2868 IF Lx_count > 0 THEN
2869
2870 Ln_React_Durn_In_Days := Lx_React_Durn/(24*60);
2871
2872 ELSE
2873
2874 RAISE L_EXCEP_UNKNOWN_UOM;
2875
2876 END IF;
2877
2878 X_React_Durn_In_Days := Ln_React_Durn_In_Days;
2879 X_Result := Lx_Result;
2880 X_Return_Status := Lx_Return_Status;
2881
2882 EXCEPTION
2883
2884 WHEN L_EXCEP_UNKNOWN_UOM THEN
2885
2886 Lx_Result := G_FALSE;
2887
2888 IF Lx_Set_ExcepionStack = G_TRUE THEN
2889
2890 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME_OKC
2891 ,p_msg_name => G_INVALID_VALUE
2892 ,p_token1 => G_COL_NAME_TOKEN
2893 ,p_token1_value => Lx_ExcepionMsg);
2894
2895 Lx_Return_Status := G_RET_STS_ERROR;
2896
2897 END IF;
2898
2899 X_Result := Lx_Result;
2900 X_Return_Status := Lx_Return_Status;
2901
2902 WHEN OTHERS THEN
2903
2904 OKC_API.SET_MESSAGE
2905 (P_App_Name => G_APP_NAME_OKC
2906 ,P_Msg_Name => G_UNEXPECTED_ERROR
2907 ,P_Token1 => G_SQLCODE_TOKEN
2908 ,P_Token1_Value => SQLCODE
2909 ,P_Token2 => G_SQLERRM_TOKEN
2910 ,P_Token2_Value => SQLERRM);
2911
2912 OKC_API.SET_MESSAGE
2913 (P_App_Name => G_APP_NAME_OKC
2914 ,P_Msg_Name => G_DEBUG_TOKEN
2915 ,P_Token1 => G_PACKAGE_TOKEN
2916 ,P_Token1_Value => G_PKG_NAME
2917 ,P_Token2 => G_PROGRAM_TOKEN
2918 ,P_Token2_Value => 'Get_Reactn_Durn_In_Days');
2919
2920 X_Result := G_FALSE;
2921 X_Return_Status := G_RET_STS_UNEXP_ERROR;
2922
2923 END Get_Reactn_Durn_In_Days;
2924
2925 -----------------------------------------------------------------------------------------------------------------------*
2926
2927 PROCEDURE Get_Cover_Day_Attribs
2928 (P_BP_CovTimes IN GT_Bp_CoverTimes
2929 ,P_Req_Cover_Date IN DATE --P_Req_Cover_Day IN INTEGER
2930 ,P_Set_ExcepionStack IN Gx_Boolean
2931 ,P_Check_Day IN Varchar2-- default 'N'
2932 ,X_Day_Cover_tbl out nocopy Day_Cover_Tbl
2933 ,X_Result out nocopy Gx_Boolean
2934 ,X_Return_Status out nocopy Gx_Ret_Sts)
2935 IS
2936 Lx_BP_CovTimes GT_Bp_CoverTimes;
2937 Li_Req_Cover_Day INTEGER(1);
2938 Li_Req_Cover_Date CONSTANT DATE := P_Req_Cover_Date;
2939
2940 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
2941 Li_Check_Day CONSTANT VARCHAR2(1) := nvl(P_Check_Day,'N');
2942
2943 Lv_Day_Cover_From VARCHAR2(25);
2944 Lv_Day_Cover_To VARCHAR2(25);
2945 Li_Cover_Day INTEGER(1);
2946
2947 Lv_Day_Cover_Tbl Day_Cover_Tbl; --VARCHAR2(6);
2948 Lv_DayCov_Ctr number;
2949
2950 Li_Coverage_Exists varchar2(1);
2951 Li_Req_Cover_Date_Num NUMBER;
2952
2953 Lx_Result Gx_Boolean;
2954 Lx_Return_Status Gx_Ret_Sts;
2955 Li_Bp_CoverTbl_Idx BINARY_INTEGER;
2956
2957 Lx_Msg_TokenVal Gx_ExceptionMsg;
2958 L_EXCEP_NO_COVER_TIME EXCEPTION;
2959 L_EXCEP_NULL_VALUE EXCEPTION;
2960
2961 BEGIN
2962
2963 Lx_BP_CovTimes := P_BP_CovTimes;
2964 Lv_DayCov_Ctr := 0;
2965 Li_Coverage_Exists := 'N';
2966
2967 Lx_Result := G_TRUE;
2968 Lx_Return_Status := G_RET_STS_SUCCESS;
2969
2970 Li_Req_Cover_Day := to_number(to_char(Li_Req_Cover_Date,'D'));
2971 Li_Bp_CoverTbl_Idx := Lx_BP_CovTimes.FIRST;
2972
2973 WHILE Li_Bp_CoverTbl_Idx IS NOT NULL LOOP
2974
2975 IF Li_Check_Day = 'N' THEN
2976
2977 IF Li_Coverage_Exists = 'N' then
2978
2979 Li_Req_Cover_Date_Num := to_number(LPAD(to_char(Li_Req_Cover_Date,'HH24'),2,'0')||
2980 LPAD(to_char(Li_Req_Cover_Date,'MI'),2,'0'));
2981 /*
2982 IF ((Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day)
2983 and (Li_Req_Cover_Date_Num >= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From))
2984 and (Li_Req_Cover_Date_Num <= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To))) THEN
2985 */
2986 IF ((Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day)
2987 and (Li_Req_Cover_Date_Num >= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From))
2988 and (Li_Req_Cover_Date_Num <= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To))) OR
2989 ((Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day)
2990 and (Li_Req_Cover_Date_Num <= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From))) THEN
2991
2992 Li_Coverage_Exists := 'Y';
2993
2994 Lv_DayCov_Ctr := Lv_DayCov_Ctr + 1;
2995
2996 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_From := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From;
2997 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_To := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To;
2998
2999 END IF;
3000
3001 ELSE -- IF Li_Coverage_Exists = 'Y' then
3002
3003 IF (Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day) THEN
3004
3005 Li_Coverage_Exists := 'Y';
3006
3007 Lv_DayCov_Ctr := Lv_DayCov_Ctr + 1;
3008
3009 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_From := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From;
3010 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_To := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To;
3011
3012 END IF;
3013
3014 END IF;
3015
3016 ELSE -- IF Li_Check_Day = 'Y' THEN
3017
3018 IF (Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day) THEN
3019
3020 Li_Coverage_Exists := 'Y';
3021
3022 Lv_DayCov_Ctr := Lv_DayCov_Ctr + 1;
3023
3024 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_From := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From;
3025 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_To := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To;
3026
3027
3028 END IF;
3029
3030 END IF;
3031
3032
3033 Li_Bp_CoverTbl_Idx := Lx_BP_CovTimes.NEXT(Li_Bp_CoverTbl_Idx);
3034
3035 END LOOP;
3036
3037
3038 IF Li_Coverage_Exists = 'N' THEN
3039
3040 Lx_Msg_TokenVal := 'Day Cover Time';
3041 RAISE L_EXCEP_NO_COVER_TIME;
3042
3043 END IF;
3044
3045 X_Day_Cover_Tbl := Lv_Day_Cover_Tbl;
3046 X_Result := Lx_Result;
3047 X_Return_Status := Lx_Return_Status;
3048
3049 EXCEPTION
3050
3051 WHEN L_EXCEP_NO_COVER_TIME THEN
3052
3053 Lx_Result := G_FALSE;
3054
3055 IF Lx_Set_ExcepionStack = G_TRUE THEN
3056
3057 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME_OKC
3058 ,p_msg_name => G_REQUIRED_VALUE
3059 ,p_token1 => G_COL_NAME_TOKEN
3060 ,p_token1_value => Lx_Msg_TokenVal);
3061
3062 Lx_Return_Status := G_RET_STS_ERROR;
3063
3064 END IF;
3065
3066 X_Result := Lx_Result;
3067 X_Return_Status := Lx_Return_Status;
3068
3069 WHEN L_EXCEP_NULL_VALUE THEN
3070
3071 X_Result := Lx_Result;
3072 X_Return_Status := Lx_Return_Status;
3073
3074 WHEN OTHERS THEN
3075
3076 OKC_API.SET_MESSAGE
3077 (P_App_Name => G_APP_NAME_OKC
3078 ,P_Msg_Name => G_UNEXPECTED_ERROR
3079 ,P_Token1 => G_SQLCODE_TOKEN
3080 ,P_Token1_Value => SQLCODE
3081 ,P_Token2 => G_SQLERRM_TOKEN
3082 ,P_Token2_Value => SQLERRM);
3083
3084 OKC_API.SET_MESSAGE
3085 (P_App_Name => G_APP_NAME_OKC
3086 ,P_Msg_Name => G_DEBUG_TOKEN
3087 ,P_Token1 => G_PACKAGE_TOKEN
3088 ,P_Token1_Value => G_PKG_NAME
3089 ,P_Token2 => G_PROGRAM_TOKEN
3090 ,P_Token2_Value => 'Get_Cover_Day_Attribs');
3091
3092 X_Result := G_FALSE;
3093 X_Return_Status := G_RET_STS_UNEXP_ERROR;
3094
3095 END Get_Cover_Day_Attribs;
3096
3097 -----------------------------------------------------------------------------------------------------------------------*
3098 PROCEDURE Compute_Day_React_By_DateTime
3099 (P_Req_DateTime IN DATE
3100 ,P_Cover_EffStart IN DATE
3101 ,P_Cover_EffEnd IN DATE
3102 ,P_BP_Work_Through IN Gx_YesNo
3103 ,P_BP_Cover_Times IN GT_Bp_CoverTimes
3104 ,P_React_Durn_In_Days IN NUMBER
3105 ,P_Template_YN IN VARCHAR2
3106 ,P_Set_ExcepionStack IN Gx_Boolean
3107 ,P_Check_Day IN Varchar2
3108 ,X_React_By_DateTime out nocopy DATE
3109 ,X_React_Start_DateTime out nocopy DATE
3110 ,X_Result out nocopy Gx_Boolean
3111 ,X_Return_Status out nocopy Gx_Ret_Sts)
3112 IS
3113
3114 Ld_Req_DateTime CONSTANT DATE := P_Req_DateTime;
3115 Ld_Cover_EffStart CONSTANT DATE := P_Cover_EffStart;
3116 Ld_Cover_EffEnd CONSTANT DATE := P_Cover_EffEnd;
3117 Lx_BP_Work_Through CONSTANT Gx_YesNo := P_BP_Work_Through;
3118 Ln_React_Durn_In_Days CONSTANT NUMBER := P_React_Durn_In_Days;
3119 Lx_BP_Cover_Times GT_Bp_CoverTimes;
3120 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
3121 Lv_Template_YN VARCHAR2(1);
3122 Lv_Check_Day VARCHAR2(1);
3123
3124 Ld_React_By_DateTime DATE;
3125 Ld_React_Start_DateTime DATE;
3126 Lx_Result Gx_Boolean;
3127 Lx_Return_Status Gx_Ret_Sts;
3128
3129 Lv_Day_Cover_From VARCHAR2(25);
3130 Lv_Day_Cover_To VARCHAR2(25);
3131 Lv_Day_Cover_Tbl Day_Cover_Tbl; -- 11.5.10 mutiple time zone changes
3132 Lv_DayCov_Idx BINARY_INTEGER; -- 11.5.10 mutiple time zone changes
3133
3134 Ld_Day_Reactn_Start DATE;
3135 Ld_Day_Reactn_End DATE;
3136 Ld_Day_Reactn_EffStart DATE;
3137
3138 Li_Balance_ReactTime NUMBER;
3139 Ld_Run_DateTime DATE;
3140 Li_Run_React_Day INTEGER(1);
3141
3142 Li_LoopCount INTEGER(1);
3143
3144 L_EXCEP_NO_COVER_REMAINS EXCEPTION;
3145 L_EXCEP_NO_COVER_DEFINED EXCEPTION;
3146 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
3147
3148 BEGIN
3149
3150 Lx_BP_Cover_Times := P_BP_Cover_Times;
3151 Lv_Check_Day := nvl(P_Check_Day,'N');
3152 Lv_Template_YN := nvl(P_Template_YN,'N');
3153
3154 Lx_Result := G_TRUE;
3155 Lx_Return_Status := G_RET_STS_SUCCESS;
3156
3157 Li_Balance_ReactTime := Ln_React_Durn_In_Days;
3158 Ld_Run_DateTime := Ld_Req_DateTime;
3159
3160 Li_LoopCount := 0;
3161
3162 -- dbms_output.put_line('Value of Ld_Run_DateTime='||to_char(Ld_Run_DateTime,'dd-mon-yyyy hh24:mi'));
3163
3164 WHILE Li_Balance_ReactTime > 0 LOOP
3165
3166 -- dbms_output.put_line('Value of Li_Balance_ReactTime='||Li_Balance_ReactTime);
3167
3168 Get_Cover_Day_Attribs
3169 (P_BP_CovTimes => Lx_BP_Cover_Times
3170 ,P_Req_Cover_Date => Ld_Run_DateTime --Li_Run_React_Day
3171 ,P_Set_ExcepionStack => G_FALSE
3172 ,P_Check_Day => Lv_Check_Day
3173 ,X_Day_Cover_tbl => Lv_Day_Cover_Tbl
3174 ,X_Result => Lx_Result
3175 ,X_Return_Status => Lx_Return_Status);
3176
3177
3178 IF Lx_Result = G_TRUE THEN
3179
3180 --dbms_output.put_line('Value of Li_LoopCount='||Li_LoopCount);
3181
3182 Li_LoopCount := 0;
3183 Lv_DayCov_Idx := Lv_Day_Cover_Tbl.FIRST;
3184
3185 --dbms_output.put_line('Value of Lv_DayCov_Idx='||Lv_DayCov_Idx);
3186
3187 while Lv_DayCov_Idx is not null loop
3188
3189
3190 Ld_Day_Reactn_Start := TO_DATE(TO_CHAR(Ld_Run_DateTime,'YYYYMMDD')||
3191 Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_From,'YYYYMMDDHH24MISS');
3192 Ld_Day_Reactn_End := TO_DATE(TO_CHAR(Ld_Run_DateTime,'YYYYMMDD')||
3193 Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_To,'YYYYMMDDHH24MISS');
3194
3195
3196 --dbms_output.put_line('Value of Ld_Run_DateTime='||to_char(Ld_Run_DateTime,'dd-mon-yyyy hh24:mi'));
3197 --dbms_output.put_line('Value of Ld_Day_Reactn_Start='||to_char(Ld_Day_Reactn_Start,'dd-mon-yyyy hh24:mi'));
3198 --dbms_output.put_line('Value of Ld_Day_Reactn_End='||to_char(Ld_Day_Reactn_End,'dd-mon-yyyy hh24:mi'));
3199
3200
3201 IF Ld_Run_DateTime <= Ld_Day_Reactn_End THEN
3202
3203 IF Ld_React_Start_DateTime IS NULL THEN
3204
3205 IF Ld_Run_DateTime < Ld_Day_Reactn_Start THEN
3206
3207 Ld_Day_Reactn_EffStart := Ld_Day_Reactn_Start;
3208
3209 ELSE
3210
3211 Ld_Day_Reactn_EffStart := Ld_Run_DateTime;
3212
3213 END IF;
3214
3215 ELSE
3216
3217 Ld_Day_Reactn_EffStart := Ld_Day_Reactn_Start;
3218
3219 END IF;
3220
3221 --dbms_output.put_line('Value of Li_Balance_ReactTime='||Li_Balance_ReactTime);
3222
3223 Ld_React_By_DateTime := Ld_Day_Reactn_EffStart + Li_Balance_ReactTime;
3224
3225 IF NVL(Lx_BP_Work_Through,G_NO) = G_YES THEN
3226
3227 Li_Balance_ReactTime := 0;
3228
3229 ELSE
3230
3231 IF Ld_React_By_DateTime > Ld_Day_Reactn_End THEN
3232
3233 Li_Balance_ReactTime := Ld_React_By_DateTime - Ld_Day_Reactn_End;
3234 Ld_React_By_DateTime := Ld_Day_Reactn_End;
3235
3236 ELSE
3237 Li_Balance_ReactTime := 0;
3238 END IF;
3239
3240 END IF;
3241
3242 --dbms_output.put_line('Value of Ld_Day_Reactn_EffStart='||to_char(Ld_Day_Reactn_EffStart,'dd-mon-yyyy hh24:mi'));
3243 --dbms_output.put_line('Value of Ld_React_By_DateTime='||to_char(Ld_React_By_DateTime,'dd-mon-yyyy hh24:mi'));
3244
3245 --dbms_output.put_line('Value of Lv_Template_YN='||Lv_Template_YN);
3246
3247 IF Lv_Template_YN = 'N' and nvl(FND_PROFILE.VALUE('OKS_VALIDATE_REACT_RESOL_TIME'),'Y') = 'Y' THEN -- for default coverage functionality /*Added profile condition for bug 13772324*/
3248
3249 Validate_Effectivity
3250 (P_Request_Date => Ld_React_By_DateTime
3251 ,P_Start_DateTime => Ld_Cover_EffStart
3252 ,P_End_DateTime => Ld_Cover_EffEnd
3253 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3254 ,P_CL_Msg_TokenValue => 'Coverage'
3255 ,X_Result => Lx_result
3256 ,X_Return_Status => Lx_Return_Status);
3257
3258 IF Lx_result <> G_TRUE THEN
3259 RAISE L_EXCEP_NO_COVER_REMAINS;
3260 END IF;
3261
3262 END IF;
3263
3264 IF Ld_React_Start_DateTime IS NULL THEN
3265
3266 Ld_React_Start_DateTime := Ld_Day_Reactn_EffStart;
3267
3268 END IF;
3269
3270 END IF;
3271
3272
3273 if Li_Balance_ReactTime > 0 then
3274 Lv_DayCov_Idx := Lv_Day_Cover_Tbl.NEXT(Lv_DayCov_Idx);
3275 else
3276 exit; -- from loop
3277 end if;
3278 end loop;
3279
3280 ELSE
3281
3282 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
3283 RAISE L_EXCEP_UNEXPECTED_ERR;
3284 END IF;
3285
3286 Li_LoopCount := Li_LoopCount + 1;
3287
3288 IF Li_LoopCount > 7 THEN
3289
3290 RAISE L_EXCEP_NO_COVER_DEFINED;
3291
3292 END IF;
3293
3294 END IF;
3295
3296 Ld_Run_DateTime := TRUNC(Ld_Run_DateTime,'DD') + 1;
3297 Lv_Check_Day := 'Y';
3298
3299 END LOOP;
3300
3301 IF Li_Balance_ReactTime > 0 THEN
3302
3303 RAISE L_EXCEP_NO_COVER_DEFINED;
3304
3305 END IF;
3306
3307 X_React_By_DateTime := Ld_React_By_DateTime;
3308 X_React_Start_DateTime := Ld_React_Start_DateTime;
3309 X_Result := Lx_Result;
3310 X_Return_Status := Lx_Return_Status;
3311
3312 EXCEPTION
3313
3314 WHEN L_EXCEP_UNEXPECTED_ERR OR L_EXCEP_NO_COVER_REMAINS THEN
3315
3316 X_Result := Lx_Result;
3317 X_Return_Status := Lx_Return_Status;
3318
3319 WHEN L_EXCEP_NO_COVER_DEFINED THEN
3320
3321 Lx_Result := G_FALSE;
3322
3323 IF Lx_Set_ExcepionStack = G_TRUE THEN
3324
3325 OKC_API.SET_MESSAGE
3326 (p_app_name => G_APP_NAME_OKC
3327 ,p_msg_name => G_REQUIRED_VALUE
3328 ,p_token1 => G_COL_NAME_TOKEN
3329 ,p_token1_value => 'Day Cover Time');
3330
3331 Lx_Return_Status := G_RET_STS_ERROR;
3332
3333 END IF;
3334
3335 X_Result := Lx_Result;
3336 X_Return_Status := Lx_Return_Status;
3337
3338 WHEN OTHERS THEN
3339
3340 OKC_API.SET_MESSAGE
3341 (P_App_Name => G_APP_NAME_OKC
3342 ,P_Msg_Name => G_UNEXPECTED_ERROR
3343 ,P_Token1 => G_SQLCODE_TOKEN
3344 ,P_Token1_Value => SQLCODE
3345 ,P_Token2 => G_SQLERRM_TOKEN
3346 ,P_Token2_Value => SQLERRM);
3347
3348 OKC_API.SET_MESSAGE
3349 (P_App_Name => G_APP_NAME_OKC
3350 ,P_Msg_Name => G_DEBUG_TOKEN
3351 ,P_Token1 => G_PACKAGE_TOKEN
3352 ,P_Token1_Value => G_PKG_NAME
3353 ,P_Token2 => G_PROGRAM_TOKEN
3354 ,P_Token2_Value => 'Compute_Day_React_By_DateTime');
3355
3356 X_Result := G_FALSE;
3357 X_Return_Status := G_RET_STS_UNEXP_ERROR;
3358
3359 END Compute_Day_React_By_DateTime;
3360
3361 -----------------------------------------------------------------------------------------------------------------------*
3362 PROCEDURE Compute_React_By_DateTime
3363 (P_Request_DateTime IN DATE
3364 ,P_Cover_EffStart IN DATE
3365 ,P_Cover_EffEnd IN DATE
3366 ,P_BP_Work_Through IN Gx_YesNo
3367 ,P_BP_Cover_Times IN GT_Bp_CoverTimes
3368 ,P_Reaction_Attribs IN GT_Bp_Reactions
3369 ,P_Option IN VARCHAR2
3370 ,P_Template_YN IN VARCHAR2
3371 ,P_Set_ExcepionStack IN Gx_Boolean
3372 ,X_React_Durn out nocopy Gx_ReactDurn
3373 ,X_React_UOM out nocopy Gx_ReactUOM
3374 ,X_React_Day out nocopy VARCHAR2
3375 ,X_React_By_DateTime out nocopy DATE
3376 ,X_React_Start_DateTime out nocopy DATE
3377 ,X_Result out nocopy Gx_Boolean
3378 ,X_Return_Status out nocopy Gx_Ret_Sts)
3379 IS
3380
3381 Ld_Request_DateTime CONSTANT DATE := P_Request_DateTime;
3382 Ld_Cover_EffStart CONSTANT DATE := P_Cover_EffStart;
3383 Ld_Cover_EffEnd CONSTANT DATE := P_Cover_EffEnd;
3384 Lx_BP_Work_Through CONSTANT Gx_YesNo := P_BP_Work_Through;
3385 Lv_Option CONSTANT VARCHAR2(10) := P_Option;
3386 Lv_Template_YN VARCHAR2(1);
3387 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
3388
3389 Lx_Reaction_Attribs GT_Bp_Reactions;
3390 Lx_BP_Cover_Times GT_Bp_CoverTimes;
3391
3392 Lx_React_Durn Gx_ReactDurn;
3393 Lx_React_UOM Gx_ReactUOM;
3394 Lv_React_Day VARCHAR2(25);
3395 Ld_React_By_DateTime DATE;
3396 Ld_React_Start_DateTime DATE;
3397
3398 Lx_React_Durn_X Gx_ReactDurn;
3399 Lx_React_UOM_X Gx_ReactUOM;
3400 Lv_React_Day_X VARCHAR2(25);
3401 Ld_React_By_DateTime_X DATE;
3402 Ld_React_Start_DateTime_X DATE;
3403
3404 Lx_Result Gx_Boolean;
3405 Lx_Return_Status Gx_Ret_Sts;
3406
3407 Li_React_Day INTEGER(1);
3408 Li_ReqDay_Relative INTEGER(1);
3409
3410 Li_Bp_RactTbl_Idx BINARY_INTEGER;
3411 Ld_Run_DateTime DATE;
3412
3413 Li_React_Durn_Days NUMBER;
3414 Lv_Check_Day VARCHAR2(1);
3415
3416 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
3417 L_EXCEP_NO_COVER_REMAINS EXCEPTION;
3418 L_EXCEP_NO_REACTION_TIME EXCEPTION;
3419
3420 BEGIN
3421
3422 Lv_Template_YN := nvl(P_Template_YN,'N');
3423
3424 Lx_Reaction_Attribs := P_Reaction_Attribs;
3425 Lx_BP_Cover_Times := P_BP_Cover_Times;
3426
3427 Lx_Result := G_TRUE;
3428 Lx_Return_Status := G_RET_STS_SUCCESS;
3429
3430 Li_Bp_RactTbl_Idx := Lx_Reaction_Attribs.FIRST;
3431 Ld_Run_DateTime := Ld_Request_DateTime;
3432
3433 WHILE Li_Bp_RactTbl_Idx IS NOT NULL LOOP
3434
3435 Lx_React_Durn := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Rx_React_Durn;
3436 Lx_React_UOM := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Rx_React_UOM;
3437 Li_React_Day := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Ri_React_Day;
3438 Li_ReqDay_Relative := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Ri_ReqDay_Relative;
3439 Lv_React_Day := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Rv_React_Day;
3440
3441 -- dbms_output.put_line('Value of Li_ReqDay_Relative='||Li_ReqDay_Relative);
3442
3443 IF Li_React_Day IS NOT NULL AND Lx_React_Durn IS NOT NULL AND Lx_React_UOM IS NOT NULL THEN
3444
3445 Get_Reactn_Durn_In_Days
3446 (P_React_Durn => Lx_React_Durn
3447 ,P_React_UOM => Lx_React_UOM
3448 ,P_Set_ExcepionStack => G_FALSE
3449 ,X_React_Durn_In_Days => Li_React_Durn_Days
3450 ,X_Result => Lx_Result
3451 ,X_Return_Status => Lx_Return_Status);
3452
3453 IF Lx_Result = G_TRUE THEN
3454
3455 IF Li_ReqDay_Relative > 0 THEN
3456 Ld_Run_DateTime := TRUNC(Ld_Run_DateTime,'DD') + Li_ReqDay_Relative;
3457 Lv_Check_Day := 'Y';
3458 ELSE
3459 Lv_Check_Day := 'N';
3460 END IF;
3461
3462 EXIT WHEN Ld_React_By_DateTime_X <= Ld_Run_DateTime;
3463
3464
3465 IF Lv_Template_YN = 'N' THEN -- for default coverage functionality
3466
3467 Validate_Effectivity
3468 (P_Request_Date => Ld_Run_DateTime
3469 ,P_Start_DateTime => Ld_Cover_EffStart
3470 ,P_End_DateTime => Ld_Cover_EffEnd
3471 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3472 ,P_CL_Msg_TokenValue => 'Coverage'
3473 ,X_Result => Lx_result
3474 ,X_Return_Status => Lx_Return_Status);
3475
3476 IF Lx_result <> G_TRUE THEN
3477 RAISE L_EXCEP_NO_COVER_REMAINS;
3478 END IF;
3479
3480 END IF;
3481
3482 --dbms_output.put_line('Value of Ld_Run_DateTime='||to_char(Ld_Run_DateTime,'dd-mon-yyyy hh24:mi'));
3483 --dbms_output.put_line('Value of Ld_Cover_EffStart='||to_char(Ld_Cover_EffStart,'dd-mon-yyyy hh24:mi'));
3484 --dbms_output.put_line('Value of Ld_Cover_EffEnd='||to_char(Ld_Cover_EffEnd,'dd-mon-yyyy hh24:mi'));
3485 --dbms_output.put_line('Value of Lx_BP_Work_Through='||Lx_BP_Work_Through);
3486 --dbms_output.put_line('Value of Li_React_Durn_Days='||Li_React_Durn_Days);
3487 --dbms_output.put_line('Value of Lv_Template_YN='||Lv_Template_YN);
3488
3489 Compute_Day_React_By_DateTime
3490 (P_Req_DateTime => Ld_Run_DateTime
3491 ,P_Cover_EffStart => Ld_Cover_EffStart
3492 ,P_Cover_EffEnd => Ld_Cover_EffEnd
3493 ,P_BP_Work_Through => Lx_BP_Work_Through
3494 ,P_BP_Cover_Times => Lx_BP_Cover_Times
3495 ,P_React_Durn_In_Days => Li_React_Durn_Days
3496 ,P_Template_YN => Lv_Template_YN -- for default coverage functionality
3497 ,P_Set_ExcepionStack => G_FALSE
3498 ,P_Check_Day => Lv_Check_Day
3499 ,X_React_By_DateTime => Ld_React_By_DateTime
3500 ,X_React_Start_DateTime => Ld_React_Start_DateTime
3501 ,X_Result => Lx_Result
3502 ,X_Return_Status => Lx_Return_Status);
3503
3504 --dbms_output.put_line('Value of Ld_React_By_DateTime='||to_char(Ld_React_By_DateTime,'dd-mon-yyyy hh24:mi'));
3505 --dbms_output.put_line('Value of Ld_React_Start_DateTime='||to_char(Ld_React_Start_DateTime,'dd-mon-yyyy hh24:mi'));
3506
3507
3508 IF Lx_Result <> G_TRUE THEN
3509 RAISE L_EXCEP_UNEXPECTED_ERR;
3510 END IF;
3511
3512 IF Ld_React_By_DateTime < Ld_React_By_DateTime_X OR Ld_React_By_DateTime_X IS NULL THEN
3513 Lx_React_Durn_X := Lx_React_Durn;
3514 Lx_React_UOM_X := Lx_React_UOM;
3515 Lv_React_Day_X := Lv_React_Day;
3516 Ld_React_By_DateTime_X := Ld_React_By_DateTime;
3517 Ld_React_Start_DateTime_X := Ld_React_Start_DateTime;
3518 END IF;
3519
3520 IF Lv_Option = G_FIRST THEN
3521 EXIT;
3522 END IF;
3523
3524 END IF;
3525 END IF;
3526
3527 Li_Bp_RactTbl_Idx := Lx_Reaction_Attribs.NEXT(Li_Bp_RactTbl_Idx);
3528
3529 END LOOP;
3530
3531 IF (Ld_React_By_DateTime_X IS NULL)
3532 THEN
3533 RAISE L_EXCEP_NO_REACTION_TIME;
3534 END IF;
3535
3536 X_React_Durn := Lx_React_Durn_X;
3537 X_React_UOM := Lx_React_UOM_X;
3538 X_React_Day := Lv_React_Day_X;
3539 X_React_By_DateTime := Ld_React_By_DateTime_X;
3540 X_React_Start_DateTime := Ld_React_Start_DateTime_X;
3541 X_Result := Lx_Result;
3542 X_Return_Status := Lx_Return_Status;
3543
3544 EXCEPTION
3545
3546 WHEN L_EXCEP_UNEXPECTED_ERR OR L_EXCEP_NO_COVER_REMAINS THEN
3547
3548 X_Result := Lx_Result;
3549 X_Return_Status := Lx_Return_Status;
3550
3551 WHEN L_EXCEP_NO_REACTION_TIME THEN
3552
3553 Lx_Result := G_FALSE;
3554
3555 IF Lx_Set_ExcepionStack = G_TRUE THEN
3556
3557 OKC_API.SET_MESSAGE
3558 (p_app_name => G_APP_NAME_OKC
3559 ,p_msg_name => G_REQUIRED_VALUE
3560 ,p_token1 => G_COL_NAME_TOKEN
3561 ,p_token1_value => 'Day Reaction Time');
3562
3563 Lx_Return_Status := G_RET_STS_ERROR;
3564
3565 END IF;
3566
3567 X_Result := Lx_Result;
3568 X_Return_Status := Lx_Return_Status;
3569
3570 WHEN OTHERS THEN
3571
3572 OKC_API.SET_MESSAGE
3573 (P_App_Name => G_APP_NAME_OKC
3574 ,P_Msg_Name => G_UNEXPECTED_ERROR
3575 ,P_Token1 => G_SQLCODE_TOKEN
3576 ,P_Token1_Value => SQLCODE
3577 ,P_Token2 => G_SQLERRM_TOKEN
3578 ,P_Token2_Value => SQLERRM);
3579
3580 OKC_API.SET_MESSAGE
3581 (P_App_Name => G_APP_NAME_OKC
3582 ,P_Msg_Name => G_DEBUG_TOKEN
3583 ,P_Token1 => G_PACKAGE_TOKEN
3584 ,P_Token1_Value => G_PKG_NAME
3585 ,P_Token2 => G_PROGRAM_TOKEN
3586 ,P_Token2_Value => 'Compute_React_By_DateTime');
3587
3588 X_Result := G_FALSE;
3589 X_Return_Status := G_RET_STS_UNEXP_ERROR;
3590
3591 END Compute_React_By_DateTime;
3592
3593 -----------------------------------------------------------------------------------------------------------------------*
3594 /*vgujarat - modified for access hour ER 9675504*/
3595 PROCEDURE Get_ReactResol_By_DateTime
3596 (P_API_Version IN NUMBER
3597 ,P_Init_Msg_List IN VARCHAR2
3598 ,P_SVL_Id IN Gx_OKS_Id -- can be service line id or coverage line id depending on P_Template_YN is 'N' or, 'Y'
3599 ,P_BusiProc_Id IN Gx_BusProcess_Id
3600 ,P_Severity_Id IN Gx_Severity_Id
3601 ,P_Request_Date IN DATE
3602 ,P_Request_TZone_id IN Gx_TimeZoneId
3603 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
3604 ,P_template_YN IN VARCHAR2 -- for default coverage enhancement
3605 ,P_Option IN VARCHAR2
3606 ,P_Rcn_Rsn_Flag IN VARCHAR2
3607 ,P_Set_ExcepionStack IN Gx_Boolean
3608 ,X_React_Durn out nocopy Gx_ReactDurn
3609 ,X_React_UOM out nocopy Gx_ReactUOM
3610 ,X_React_Day out nocopy VARCHAR2
3611 ,X_React_By_DateTime out nocopy DATE
3612 ,X_React_Start_DateTime out nocopy DATE
3613 ,X_Resolve_Durn out nocopy Gx_ReactDurn
3614 ,X_Resolve_UOM out nocopy Gx_ReactUOM
3615 ,X_Resolve_Day out nocopy VARCHAR2
3616 ,X_Resolve_By_DateTime out nocopy DATE
3617 ,X_Resolve_Start_DateTime out nocopy DATE
3618 ,X_Msg_count OUT NOCOPY Number
3619 ,X_Msg_data OUT NOCOPY Varchar2
3620 ,X_Result out nocopy Gx_Boolean
3621 ,X_Return_Status out nocopy Gx_Ret_Sts
3622 ,P_cust_id IN NUMBER DEFAULT NULL
3623 ,P_cust_site_id IN NUMBER DEFAULT NULL
3624 ,P_cust_loc_id IN NUMBER DEFAULT NULL)
3625 IS
3626
3627 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3628
3629 CURSOR Get_Cov_Timezones(P_BPL_Id in number) IS
3630 select oct.id,
3631 oct.timezone_id,
3632 oct.default_yn,
3633 okslb.APPLY_DEFAULT_TIMEZONE
3634 from okc_k_lines_b okclb,
3635 oks_k_lines_b okslb,
3636 oks_coverage_timezones oct
3637 where okclb.id = P_BPL_Id
3638 and okslb.cle_id = okclb.id
3639 and oct.cle_id = okclb.id;
3640
3641 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3642
3643 Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
3644 Lx_BusiProc_Id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
3645 Lx_Severity_Id CONSTANT Gx_Severity_Id := P_Severity_Id;
3646 Ld_Request_Date DATE;
3647 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
3648 Lx_ReactReso_ObjCode CONSTANT Gx_JTOT_ObjCode := G_JTOT_OBJ_REACTIME;
3649 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
3650 Lv_Option CONSTANT VARCHAR2(10) := P_Option;
3651 Lv_Rcn_Rsn_Flag CONSTANT Gx_Rule_Category := NVL(P_Rcn_Rsn_Flag,G_RUL_CATEGORY_REACT_RESOLVE);
3652 Lv_Template_YN VARCHAR2(1); -- default coverage functionality
3653
3654 /*vgujarat - modified for access hour ER 9675504*/
3655 Lx_cust_id CONSTANT NUMBER := P_cust_id;
3656 Lx_cust_site_id CONSTANT NUMBER := P_cust_site_id;
3657 Lx_cust_loc_id CONSTANT NUMBER := P_cust_loc_id;
3658
3659 Lx_React_Durn Gx_ReactDurn;
3660 Lx_React_UOM Gx_ReactUOM;
3661 Lv_React_Day VARCHAR2(25);
3662 Ld_React_By_DateTime DATE;
3663 Ld_React_Start_DateTime DATE;
3664 Ld_TZ_React_By_DateTime DATE;
3665 Ld_TZ_React_Start_DateTime DATE;
3666
3667 Lx_Resolve_Durn Gx_ReactDurn;
3668 Lx_Resolve_UOM Gx_ReactUOM;
3669 Lv_Resolve_Day VARCHAR2(25);
3670 Ld_Resolve_By_DateTime DATE;
3671 Ld_Resolve_Start_DateTime DATE;
3672 Ld_TZ_Resolve_By_DateTime DATE;
3673 Ld_TZ_Resolve_Start_DateTime DATE;
3674
3675 Lx_Result Gx_Boolean;
3676 Lx_Result1 Gx_Boolean;
3677 Lx_Result2 Gx_Boolean;
3678 Lx_Result3 Gx_Boolean;
3679 Lx_Result4 Gx_Boolean;
3680
3681 Lx_Return_Status Gx_Ret_Sts;
3682
3683 Ld_SVL_Start DATE;
3684 Ld_SVL_End DATE;
3685 Ld_SVL_Terminated DATE;
3686 Ld_SVL_EffEnd_Date DATE;
3687
3688 Lx_CVL_Id Gx_OKS_Id;
3689 Ld_CVL_Start DATE;
3690 Ld_CVL_End DATE;
3691 Ld_CVL_Terminated DATE;
3692 Ld_CVL_EffEnd_Date DATE;
3693
3694 Lx_BPL_Id Gx_OKS_Id;
3695 Ld_BPL_Start DATE;
3696 Ld_BPL_End DATE;
3697 Ld_BPL_Terminated DATE;
3698 Ld_BPL_EffEnd_Date DATE;
3699
3700 -- Lx_BP_CVTRule_Id Gx_Rule_Id;
3701 Lx_BP_CVTLine_Id Gx_OKS_Id;
3702 Lx_BP_Tz_Id Gx_TimeZoneId;
3703
3704 Ld_TzCont_Req_Date DATE;
3705
3706 Lx_RTL_Id Gx_OKS_Id;
3707 Ld_RTL_Start DATE;
3708 Ld_RTL_End DATE;
3709 Ld_RTL_Terminated DATE;
3710
3711 -- Lx_RTL_RCN_Rule_Id Gx_Rule_Id;
3712 Lx_RTL_RCN_Line_Id Gx_OKS_Id; -- 11.5.10 addition for enhancements
3713 Lx_RTL_RCN_WT_YN Gx_YesNo;
3714 Lx_RTL_RCN_Id Gx_OKS_Id;
3715 Ld_RTL_RCN_Start DATE;
3716 Ld_RTL_RCN_End DATE;
3717 Ld_RTL_RCN_Terminated DATE;
3718
3719 -- Lx_RTL_RSN_Rule_Id Gx_Rule_Id;
3720 Lx_RTL_RSN_Line_Id Gx_OKS_Id; -- 11.5.10 addition for enhancements
3721 Lx_RTL_RSN_WT_YN Gx_YesNo;
3722 Lx_RTL_RSN_Id Gx_OKS_Id;
3723 Ld_RTL_RSN_Start DATE;
3724 Ld_RTL_RSN_End DATE;
3725 Ld_RTL_RSN_Terminated DATE;
3726
3727 Ld_RTL_EffEnd_Date DATE;
3728
3729 Ld_Cont_EffStart DATE;
3730 Ld_Cont_EffEnd DATE;
3731
3732 Lx_BP_CovTimes GT_Bp_CoverTimes;
3733 Lx_Reaction_Attribs GT_Bp_Reactions;
3734 Lx_Resolution_Attribs GT_Bp_Reactions;
3735
3736 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3737 Lx_Use_TZE_Id number;
3738 Lx_TZE_Mtch_Exists varchar2(1);
3739 Lx_Def_TZE_Id number;
3740 Lx_Apply_Def_Tze varchar2(1);
3741 Lx_Use_TZE_Line_Id number;
3742 Lx_Def_TZE_Line_Id number;
3743 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3744
3745 L_EXCEP_NULL_VALUE EXCEPTION;
3746 L_EXCEP_NO_DATA_FOUND EXCEPTION;
3747 L_EXCEP_NOT_EFFECTIVE EXCEPTION;
3748 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
3749
3750 -- Added for 12.0 ENT-TZ project (JVARGHES)
3751
3752 ln_Param_DatesTZ NUMBER;
3753 ln_CovTZ NUMBER;
3754
3755 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3756
3757 Lv_Std_Cov_YN VARCHAR2(10);
3758
3759 Ld_BPL_OFS_Start DATE;
3760 Ln_BPL_OFS_Duration NUMBER;
3761 Lv_BPL_OFS_UOM VARCHAR2(100);
3762 --
3763
3764 BEGIN
3765
3766 Ld_Request_Date := nvl(P_Request_Date,sysdate);
3767 Lv_Template_YN := nvl(P_template_YN,'N'); -- default coverage functionality
3768
3769 Lx_Result := G_TRUE;
3770 Lx_Result1 := G_FALSE;
3771 Lx_Result2 := G_FALSE;
3772 Lx_Result3 := G_FALSE;
3773 Lx_Result4 := G_FALSE;
3774
3775 Lx_Return_Status := G_RET_STS_SUCCESS;
3776
3777 Validate_Required_RT_Tokens
3778 (P_SVL_Id => Lx_SVL_Id -- Lx_SVL_Id
3779 ,P_BusiProc_Id => Lx_BusiProc_id
3780 ,P_Severity_Id => Lx_Severity_Id
3781 ,P_Request_Date => Ld_Request_Date
3782 ,P_Request_TZone_id => Lx_Request_TZone_Id
3783 ,P_template_YN => Lv_Template_YN -- for default coverage functionality
3784 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3785 ,X_Result => Lx_Result
3786 ,X_Return_Status => Lx_Return_Status);
3787
3788 IF Lx_Result <> G_TRUE THEN
3789 RAISE L_EXCEP_NULL_VALUE;
3790 END IF;
3791
3792 IF Lv_Template_YN = 'N' THEN
3793
3794 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
3795 --
3796 -- Validate_Service_Line
3797 -- (P_SVL_Id => Lx_SVL_Id --Lx_SVL_Id
3798 -- ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3799 -- ,X_SVL_Start => Ld_SVL_Start
3800 -- ,X_SVL_End => Ld_SVL_End
3801 -- ,X_SVL_Terminated => Ld_SVL_Terminated
3802 -- ,X_Result => Lx_Result
3803 -- ,X_Return_Status => Lx_Return_Status);
3804 --
3805 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3806 --
3807
3808 Validate_Service_Line
3809 (P_SVL_Id => Lx_SVL_Id
3810 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3811 ,X_CVL_Id => Lx_CVL_Id
3812 ,X_Std_Cov_YN => Lv_Std_Cov_YN
3813 ,X_SVL_Start => Ld_SVL_Start
3814 ,X_SVL_End => Ld_SVL_End
3815 ,X_SVL_Terminated => Ld_SVL_Terminated
3816 ,X_Result => Lx_Result
3817 ,X_Return_Status => Lx_Return_Status);
3818
3819 --
3820
3821 IF Lx_Result <> G_TRUE THEN
3822 RAISE L_EXCEP_NO_DATA_FOUND;
3823 END IF;
3824
3825 Get_Effective_End_Date
3826 (P_Start_Date => Ld_SVL_Start
3827 ,P_End_Date => Ld_SVL_End
3828 ,P_Termination_Date => Ld_SVL_Terminated
3829 ,P_EndDate_Required => G_TRUE
3830 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3831 ,P_ExcepionMsg => 'Service Line'
3832 ,X_EffEnd_Date => Ld_SVL_EffEnd_Date
3833 ,X_Result => Lx_Result
3834 ,X_Return_Status => Lx_Return_Status);
3835
3836 IF Lx_Result <> G_TRUE THEN
3837 RAISE L_EXCEP_NULL_VALUE;
3838 END IF;
3839
3840 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3841
3842 ELSE
3843
3844 Lx_CVL_Id := Lx_SVL_Id;
3845
3846 END IF;
3847 --
3848 --
3849 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
3850 --
3851 -- Validate_Coverage_Line
3852 -- (P_SVL_Id => Lx_SVL_Id --Lx_SVL_Id
3853 -- ,P_Template_YN => Lv_Template_YN -- for default coverage functionality
3854 -- ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3855 -- ,X_CVL_Id => Lx_CVL_Id
3856 -- ,X_CVL_Start => Ld_CVL_Start
3857 -- ,X_CVL_End => Ld_CVL_End
3858 -- ,X_CVL_Terminated => Ld_CVL_Terminated
3859 -- ,X_Result => Lx_Result
3860 -- ,X_Return_Status => Lx_Return_Status);
3861 --
3862 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3863 --
3864
3865 Validate_Coverage_Line
3866 (P_CVL_Id => Lx_CVL_Id
3867 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3868 ,X_CVL_Start => Ld_CVL_Start
3869 ,X_CVL_End => Ld_CVL_End
3870 ,X_CVL_Terminated => Ld_CVL_Terminated
3871 ,X_Result => Lx_Result
3872 ,X_Return_Status => Lx_Return_Status);
3873
3874 IF Lx_Result <> G_TRUE THEN
3875 RAISE L_EXCEP_NO_DATA_FOUND;
3876 END IF;
3877
3878 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
3879 THEN
3880
3881 Ld_CVL_Start := Ld_SVL_Start;
3882 Ld_CVL_End := Ld_SVL_End;
3883 Ld_CVL_Terminated := Ld_SVL_Terminated;
3884
3885 END IF;
3886
3887 --
3888 --
3889
3890 IF Lv_Template_YN = 'N' THEN -- for default coverage fucntionality
3891
3892 Get_Effective_End_Date
3893 (P_Start_Date => Ld_CVL_Start
3894 ,P_End_Date => Ld_CVL_End
3895 ,P_Termination_Date => Ld_CVL_Terminated
3896 ,P_EndDate_Required => G_TRUE
3897 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3898 ,P_ExcepionMsg => 'Coverage Line'
3899 ,X_EffEnd_Date => Ld_CVL_EffEnd_Date
3900 ,X_Result => Lx_Result
3901 ,X_Return_Status => Lx_Return_Status);
3902
3903 IF Lx_Result <> G_TRUE THEN
3904 RAISE L_EXCEP_NULL_VALUE;
3905 END IF;
3906
3907 END IF;
3908
3909
3910 Validate_Contract_BP
3911 (P_CVL_Id => Lx_CVL_Id -- P_SVL_Id => Lx_SVL_Id
3912 ,P_BP_Id => Lx_BusiProc_Id
3913 ,P_BP_ObjCode => G_JTOT_OBJ_BUSIPROC
3914 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3915 ,P_REQ_DATE => Ld_Request_Date ------ansraj bug 13795417
3916 ,X_BPL_Id => Lx_BPL_Id
3917 ,X_BPL_Start => Ld_BPL_Start
3918 ,X_BPL_End => Ld_BPL_End
3919 ,X_BPL_Terminated => Ld_BPL_Terminated
3920 ,X_Result => Lx_Result
3921 ,X_Return_Status => Lx_Return_Status);
3922
3923 IF Lx_Result <> G_TRUE THEN
3924 RAISE L_EXCEP_NO_DATA_FOUND;
3925 END IF;
3926
3927 --
3928 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3929 --
3930
3931 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
3932 THEN
3933
3934 Get_BP_Line_Start_Offset
3935 (P_BPL_Id => Lx_BPL_Id
3936 ,P_SVL_Start => Ld_SVL_Start
3937 ,X_BPL_OFS_Start => Ld_BPL_Start
3938 ,X_BPL_OFS_Duration => Ln_BPL_OFS_Duration
3939 ,X_BPL_OFS_UOM => Lv_BPL_OFS_UOM
3940 ,X_Return_Status => Lx_Return_Status);
3941
3942 IF X_Return_Status <> G_RET_STS_SUCCESS THEN
3943 RAISE L_EXCEP_NO_DATA_FOUND;
3944 END IF;
3945
3946 Ld_BPL_End := Ld_SVL_End;
3947 Ld_BPL_Terminated := Ld_SVL_Terminated;
3948
3949 END IF;
3950
3951 --
3952
3953 IF Lv_Template_YN = 'N' THEN -- for default coverage fucntionality
3954
3955 Get_Effective_End_Date
3956 (P_Start_Date => Ld_BPL_Start
3957 ,P_End_Date => Ld_BPL_End
3958 ,P_Termination_Date => Ld_BPL_Terminated
3959 ,P_EndDate_Required => G_TRUE
3960 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3961 ,P_ExcepionMsg => 'Business Process Line'
3962 ,X_EffEnd_Date => Ld_BPL_EffEnd_Date
3963 ,X_Result => Lx_Result
3964 ,X_Return_Status => Lx_Return_Status);
3965
3966 IF Lx_Result <> G_TRUE THEN
3967 RAISE L_EXCEP_NULL_VALUE;
3968 END IF;
3969
3970 END IF;
3971
3972 ----------------------------11.5.10 select coverage time zone starts -------------------
3973
3974 Lx_Use_TZE_Id := null;
3975 Lx_TZE_Mtch_Exists := 'N';
3976 Lx_Def_TZE_Id := null;
3977 Lx_Apply_Def_Tze := null;
3978 Lx_Use_TZE_Line_Id := null;
3979 Lx_Def_TZE_Line_Id := null;
3980
3981 for Cov_Timezones_rec in Get_Cov_Timezones(Lx_BPL_Id) loop
3982
3983 if Lx_Request_TZone_Id = Cov_Timezones_rec.timezone_id then
3984
3985 Lx_Use_TZE_Id := Lx_Request_TZone_Id;
3986 Lx_TZE_Mtch_Exists := 'Y';
3987 Lx_Use_TZE_Line_Id := Cov_Timezones_rec.id;
3988
3989 exit;
3990
3991 end if;
3992
3993 if Cov_Timezones_rec.default_yn = 'Y' then
3994
3995 Lx_Def_TZE_Id := Cov_Timezones_rec.timezone_id;
3996 Lx_Def_TZE_Line_Id := Cov_Timezones_rec.id;
3997
3998 end if;
3999
4000 Lx_Apply_Def_Tze := Cov_Timezones_rec.APPLY_DEFAULT_TIMEZONE;
4001
4002 end loop;
4003
4004 if Lx_Use_TZE_Id is null then
4005
4006 if Lx_Apply_Def_Tze = 'Y' then
4007
4008 -- Lx_Use_TZE_Id := Lx_Def_TZE_Id; -- Bug# 5137665
4009 Lx_Use_TZE_Id := Lx_Request_TZone_Id; -- Bug# 5137665
4010 Lx_TZE_Mtch_Exists := 'Y';
4011 Lx_Use_TZE_Line_Id := Lx_Def_TZE_Line_Id;
4012
4013 end if;
4014
4015 end if;
4016
4017 if Lx_Use_TZE_Line_Id is null then
4018
4019 Lx_Use_TZE_Line_Id := Lx_Def_TZE_Line_Id;
4020
4021 end if;
4022
4023 -- Commented for 12.0 ENT-TZ project (JVARGHES)
4024 --
4025 --if Lx_Use_TZE_Id is null then
4026 --
4027 -- Convert_TimeZone
4028 -- (P_API_Version => P_API_Version
4029 -- ,P_Init_Msg_List => P_Init_Msg_List
4030 -- ,P_Source_Date => Ld_Request_Date
4031 -- ,P_Source_Tz_Id => Lx_Request_TZone_Id
4032 -- ,P_Dest_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id --11.5.10 multiple coverage time zone enhancements
4033 -- ,X_Dest_Date => Ld_TzCont_Req_Date
4034 -- ,X_Msg_Count => X_Msg_count
4035 -- ,X_Msg_Data => X_Msg_Data
4036 -- ,X_Return_Status => Lx_Return_Status);
4037 --
4038 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4039 -- RAISE L_EXCEP_NO_DATA_FOUND;
4040 -- END IF;
4041 --
4042 -- else
4043 --
4044 -- Ld_TzCont_Req_Date := Ld_Request_Date;
4045 --
4046 -- end if;
4047 --
4048 -- Added for 12.0 ENT-TZ project (JVARGHES)
4049 --
4050
4051 IF NVL(P_DATES_IN_INPUT_TZ,'Y') = 'N' THEN
4052 ln_Param_DatesTZ := fnd_profile.VALUE ('SERVER_TIMEZONE_ID');
4053 ELSE
4054 ln_Param_DatesTZ := Lx_Request_TZone_id;
4055 END IF;
4056
4057 ln_CovTZ := NVL(Lx_Use_TZE_Id, Lx_Def_TZE_Id);
4058
4059 IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11) THEN
4060
4061 Ld_TzCont_Req_Date := Ld_Request_Date;
4062
4063 ELSE
4064
4065 Convert_TimeZone
4066 (P_API_Version => P_API_Version
4067 ,P_Init_Msg_List => P_Init_Msg_List
4068 ,P_Source_Date => Ld_Request_Date
4069 ,P_Source_Tz_Id => ln_Param_DatesTZ
4070 ,P_Dest_Tz_Id => ln_CovTZ
4071 ,X_Dest_Date => Ld_TzCont_Req_Date
4072 ,X_Msg_Count => X_Msg_count
4073 ,X_Msg_Data => X_Msg_Data
4074 ,X_Return_Status => Lx_Return_Status);
4075
4076 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4077 RAISE L_EXCEP_NO_DATA_FOUND;
4078 END IF;
4079
4080 END IF;
4081
4082 --
4083 --
4084 ----------------------------11.5.10 select coverage time zone ends -------------------
4085
4086 IF Lv_Template_YN = 'N' THEN -- for default coverage functionality
4087
4088 Validate_Effectivity
4089 (P_Request_Date => Ld_TzCont_Req_Date
4090 ,P_Start_DateTime => Ld_SVL_Start
4091 ,P_End_DateTime => Ld_SVL_EffEnd_Date
4092 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4093 ,P_CL_Msg_TokenValue => 'Service Line'
4094 ,X_Result => Lx_Result
4095 ,X_Return_Status => Lx_Return_Status);
4096
4097 IF Lx_Result <> G_TRUE THEN
4098 RAISE L_EXCEP_NOT_EFFECTIVE;
4099 END IF;
4100
4101 Validate_Effectivity
4102 (P_Request_Date => Ld_TzCont_Req_Date
4103 ,P_Start_DateTime => Ld_CVL_Start
4104 ,P_End_DateTime => Ld_CVL_EffEnd_Date
4105 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4106 ,P_CL_Msg_TokenValue => 'Coverage Line'
4107 ,X_Result => Lx_Result
4108 ,X_Return_Status => Lx_Return_Status);
4109
4110 IF Lx_Result <> G_TRUE THEN
4111 RAISE L_EXCEP_NOT_EFFECTIVE;
4112 END IF;
4113
4114 Validate_Effectivity
4115 (P_Request_Date => Ld_TzCont_Req_Date
4116 ,P_Start_DateTime => Ld_BPL_Start
4117 ,P_End_DateTime => Ld_BPL_EffEnd_Date
4118 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4119 ,P_CL_Msg_TokenValue => 'Business Process Line'
4120 ,X_Result => Lx_Result
4121 ,X_Return_Status => Lx_Return_Status);
4122
4123 IF Lx_Result <> G_TRUE THEN
4124 RAISE L_EXCEP_NOT_EFFECTIVE;
4125 END IF;
4126
4127 END IF;
4128
4129 IF Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_REACTION OR Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_REACT_RESOLVE THEN
4130
4131 Get_BP_ReactResolTime_Line
4132 (P_BPL_Id => Lx_BPL_Id
4133 ,P_Severity_Id => Lx_Severity_Id
4134 ,P_TimeType_Category => G_RUL_CATEGORY_REACTION
4135 ,P_Active_YN => G_YES
4136 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4137 ,X_RTL_Id => Lx_RTL_RCN_Id
4138 ,X_RTL_Start => Ld_RTL_RCN_Start
4139 ,X_RTL_End => Ld_RTL_RCN_End
4140 ,X_RTL_Terminated => Ld_RTL_RCN_Terminated
4141 ,X_RTL_Line_Id => Lx_RTL_RCN_Line_Id
4142 ,X_RTL_WT_YN => Lx_RTL_RCN_WT_YN
4143 ,X_Result => Lx_Result1
4144 ,X_Return_Status => Lx_Return_Status);
4145
4146 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
4147 Lx_Result := Lx_Result1;
4148 RAISE L_EXCEP_UNEXPECTED_ERR;
4149 END IF;
4150
4151 END IF;
4152
4153 IF Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_RESOLUTION OR Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_REACT_RESOLVE THEN
4154
4155 Get_BP_ReactResolTime_Line
4156 (P_BPL_Id => Lx_BPL_Id
4157 ,P_Severity_Id => Lx_Severity_Id
4158 ,P_TimeType_Category => G_RUL_CATEGORY_RESOLUTION
4159 ,P_Active_YN => G_YES
4160 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4161 ,X_RTL_Id => Lx_RTL_RSN_Id
4162 ,X_RTL_Start => Ld_RTL_RSN_Start
4163 ,X_RTL_End => Ld_RTL_RSN_End
4164 ,X_RTL_Terminated => Ld_RTL_RSN_Terminated
4165 ,X_RTL_Line_Id => Lx_RTL_RSN_Line_Id
4166 ,X_RTL_WT_YN => Lx_RTL_RSN_WT_YN
4167 ,X_Result => Lx_Result2
4168 ,X_Return_Status => Lx_Return_Status);
4169
4170 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
4171 Lx_Result := Lx_Result2;
4172 RAISE L_EXCEP_UNEXPECTED_ERR;
4173 END IF;
4174
4175 END IF;
4176
4177 IF Lx_Result1 = G_FALSE AND Lx_Result2 = G_FALSE THEN
4178 Lx_Result := G_FALSE;
4179 RAISE L_EXCEP_NO_DATA_FOUND;
4180 ELSE
4181 Lx_Result := G_TRUE;
4182 --Lx_Return_Status := G_RET_STS_SUCCESS;
4183 END IF;
4184
4185 IF Lx_Result1 = G_TRUE THEN
4186
4187 Lx_RTL_Id := Lx_RTL_RCN_Id;
4188 Ld_RTL_Start := Ld_RTL_RCN_Start;
4189 Ld_RTL_End := Ld_RTL_RCN_End;
4190 Ld_RTL_Terminated := Ld_RTL_RCN_Terminated;
4191
4192 ELSIF Lx_Result2 = G_TRUE THEN
4193
4194 Lx_RTL_Id := Lx_RTL_RSN_Id;
4195 Ld_RTL_Start := Ld_RTL_RSN_Start;
4196 Ld_RTL_End := Ld_RTL_RSN_End;
4197 Ld_RTL_Terminated := Ld_RTL_RSN_Terminated;
4198
4199 END IF;
4200
4201 --
4202 -- Added for 12.0 Coverage Rearch project (JVARGHES)
4203 --
4204
4205 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
4206 THEN
4207
4208 Ld_RTL_Start := Ld_BPL_Start;
4209 Ld_RTL_End := Ld_BPL_End ;
4210 Ld_RTL_Terminated := Ld_BPL_Terminated;
4211
4212 END IF;
4213
4214 --
4215
4216 IF Lv_Template_YN = 'N' THEN -- for default coverage functionality
4217
4218 Get_Effective_End_Date
4219 (P_Start_Date => Ld_RTL_Start
4220 ,P_End_Date => Ld_RTL_End
4221 ,P_Termination_Date => Ld_RTL_Terminated
4222 ,P_EndDate_Required => G_FALSE
4223 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4224 ,P_ExcepionMsg => 'Reaction/Resolution Time Line'
4225 ,X_EffEnd_Date => Ld_RTL_EffEnd_Date
4226 ,X_Result => Lx_Result
4227 ,X_Return_Status => Lx_Return_Status);
4228
4229 IF Lx_Result <> G_TRUE THEN
4230 RAISE L_EXCEP_NULL_VALUE;
4231 END IF;
4232
4233 Validate_Effectivity
4234 (P_Request_Date => Ld_TzCont_Req_Date
4235 ,P_Start_DateTime => Ld_RTL_Start
4236 ,P_End_DateTime => Ld_RTL_EffEnd_Date
4237 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4238 ,P_CL_Msg_TokenValue => 'Reaction/Resolution Time Line'
4239 ,X_Result => Lx_Result
4240 ,X_Return_Status => Lx_Return_Status);
4241
4242 IF Lx_Result <> G_TRUE THEN
4243 RAISE L_EXCEP_NOT_EFFECTIVE;
4244 END IF;
4245
4246 Get_Cont_Effective_Dates
4247 (P_SVL_Start => Ld_SVL_Start
4248 ,P_SVL_End => Ld_SVL_EffEnd_Date
4249 ,P_CVL_Start => Ld_CVL_Start
4250 ,P_CVL_End => Ld_CVL_EffEnd_Date
4251 ,P_BPL_Start => Ld_BPL_Start
4252 ,P_BPL_End => Ld_BPL_EffEnd_Date
4253 ,P_RTL_Start => Ld_RTL_Start
4254 ,P_RTL_End => Ld_RTL_EffEnd_Date
4255 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4256 ,X_Cont_EffStart => Ld_Cont_EffStart
4257 ,X_Cont_EffEnd => Ld_Cont_EffEnd
4258 ,X_Result => Lx_Result
4259 ,X_Return_Status => Lx_Return_Status);
4260
4261 IF Lx_Result <> G_TRUE THEN
4262 RAISE L_EXCEP_NOT_EFFECTIVE;
4263 END IF;
4264
4265 END IF;
4266
4267 -- to include multiple time zones enhancement and architecture changes in 11.5.10
4268 -- Lx_BP_CVTRule_Id is replaced by Lx_Use_TZE_Line_Id
4269
4270 /*vgujarat - modified for access hour ER 9675504*/
4271 Get_BP_Cover_Times
4272 (P_BP_CVTLine_Id => Lx_Use_TZE_Line_Id -- Lx_BP_CVTRule_Id
4273 ,P_Request_Date => Ld_TzCont_Req_Date
4274 ,P_CovDay_DispFmt => 'DY'
4275 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4276 ,X_BP_CovTimes => Lx_BP_CovTimes
4277 ,X_Result => Lx_Result
4278 ,X_Return_Status => Lx_Return_Status
4279 ,P_cust_id => Lx_cust_id
4280 ,P_cust_site_id => Lx_cust_site_id
4281 ,P_cust_loc_id => Lx_cust_loc_id);
4282 IF Lx_Result <> G_TRUE THEN
4283 RAISE L_EXCEP_NO_DATA_FOUND;
4284 END IF;
4285
4286 --**Push Requset date to Next available Cover Day and Time.
4287
4288 IF Lx_RTL_RCN_Line_Id IS NOT NULL THEN
4289
4290 Get_BP_Reaction_Times
4291 (P_RTL_Line_Id => Lx_RTL_RCN_Line_Id -- P_RTL_Rule_Id => Lx_RTL_RCN_Rule_Id-- 11.5.10 changes
4292 ,P_Request_Date => Ld_TzCont_Req_Date
4293 ,P_TimeType_Category => 'RCN' -- 11.5.10 new addition
4294 ,P_ReactDay_DispFmt => 'DY'
4295 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4296 ,X_Reaction_Attribs => Lx_Reaction_Attribs
4297 ,X_Result => Lx_Result3
4298 ,X_Return_Status => Lx_Return_Status);
4299
4300
4301 IF Lx_Result3 = G_TRUE THEN
4302
4303 Compute_React_By_DateTime
4304 (P_Request_DateTime => Ld_TzCont_Req_Date
4305 ,P_Cover_EffStart => Ld_Cont_EffStart
4306 ,P_Cover_EffEnd => Ld_Cont_EffEnd
4307 ,P_BP_Work_Through => Lx_RTL_RCN_WT_YN
4308 ,P_BP_Cover_Times => Lx_BP_CovTimes
4309 ,P_Reaction_Attribs => Lx_Reaction_Attribs
4310 ,P_Option => Lv_Option
4311 ,P_Template_YN => Lv_template_YN -- default coverage
4312 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4313 ,X_React_Durn => Lx_React_Durn
4314 ,X_React_UOM => Lx_React_UOM
4315 ,X_React_Day => Lv_React_Day
4316 ,X_React_By_DateTime => Ld_React_By_DateTime
4317 ,X_React_Start_DateTime => Ld_React_Start_DateTime
4318 ,X_Result => Lx_Result
4319 ,X_Return_Status => Lx_Return_Status);
4320
4321 IF Lx_Result <> G_TRUE THEN
4322 RAISE L_EXCEP_NO_DATA_FOUND;
4323 END IF;
4324
4325 --
4326 -- Commented out for 12.0 ENT-TZ project (JVARGHES)
4327 --
4328 -- IF Lx_TZE_Mtch_Exists = 'N' then -- 11.5.10 multiple time zone enhancement
4329 --
4330 -- Convert_TimeZone
4331 -- (P_API_Version => P_API_Version
4332 -- ,P_Init_Msg_List => P_Init_Msg_List
4333 -- ,P_Source_Date => Ld_React_By_DateTime
4334 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
4335 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
4336 -- ,X_Dest_Date => Ld_TZ_React_By_DateTime
4337 -- ,X_Msg_Count => X_Msg_count
4338 -- ,X_Msg_Data => X_Msg_Data
4339 -- ,X_Return_Status => Lx_Return_Status);
4340 --
4341 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4342 -- RAISE L_EXCEP_NO_DATA_FOUND;
4343 -- END IF;
4344 --
4345 -- Convert_TimeZone
4346 -- (P_API_Version => P_API_Version
4347 -- ,P_Init_Msg_List => P_Init_Msg_List
4348 -- ,P_Source_Date => Ld_React_Start_DateTime
4349 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
4350 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
4351 -- ,X_Dest_Date => Ld_TZ_React_Start_DateTime
4352 -- ,X_Msg_Count => X_Msg_count
4353 -- ,X_Msg_Data => X_Msg_Data
4354 -- ,X_Return_Status => Lx_Return_Status);
4355 --
4356 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4357 -- RAISE L_EXCEP_NO_DATA_FOUND;
4358 -- END IF;
4359 --
4360 -- ELSE -- 11.5.10 multiple time zone enhancement
4361 --
4362 -- Ld_TZ_React_Start_DateTime := Ld_React_Start_DateTime;
4363 -- Ld_TZ_React_By_DateTime := Ld_React_By_DateTime;
4364 --
4365 -- END IF;
4366 --
4367 -- Added for 12.0 ENT-TZ project (JVARGHES)
4368 --
4369
4370 IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11) THEN
4371
4372 Ld_TZ_React_By_DateTime := Ld_React_By_DateTime;
4373 Ld_TZ_React_Start_DateTime := Ld_React_Start_DateTime;
4374
4375 ELSE
4376
4377 Convert_TimeZone
4378 (P_API_Version => P_API_Version
4379 ,P_Init_Msg_List => P_Init_Msg_List
4380 ,P_Source_Date => Ld_React_By_DateTime
4381 ,P_Source_Tz_Id => ln_CovTZ
4382 ,P_Dest_Tz_Id => ln_Param_DatesTZ
4383 ,X_Dest_Date => Ld_TZ_React_By_DateTime
4384 ,X_Msg_Count => X_Msg_count
4385 ,X_Msg_Data => X_Msg_Data
4386 ,X_Return_Status => Lx_Return_Status);
4387
4388 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4389 RAISE L_EXCEP_NO_DATA_FOUND;
4390 END IF;
4391
4392 Convert_TimeZone
4393 (P_API_Version => P_API_Version
4394 ,P_Init_Msg_List => P_Init_Msg_List
4395 ,P_Source_Date => Ld_React_Start_DateTime
4396 ,P_Source_Tz_Id => ln_CovTZ
4397 ,P_Dest_Tz_Id => ln_Param_DatesTZ
4398 ,X_Dest_Date => Ld_TZ_React_Start_DateTime
4399 ,X_Msg_Count => X_Msg_count
4400 ,X_Msg_Data => X_Msg_Data
4401 ,X_Return_Status => Lx_Return_Status);
4402
4403 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4404 RAISE L_EXCEP_NO_DATA_FOUND;
4405 END IF;
4406
4407 END IF;
4408
4409 --
4410 --
4411
4412 ELSE
4413
4414 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
4415 RAISE L_EXCEP_UNEXPECTED_ERR;
4416 END IF;
4417
4418 END IF;
4419
4420 END IF;
4421
4422 IF Lx_RTL_RSN_Line_Id IS NOT NULL THEN
4423
4424 Get_BP_Reaction_Times
4425 (P_RTL_Line_Id => Lx_RTL_RSN_Line_Id -- P_RTL_Rule_Id => Lx_RTL_RSN_Rule_Id -- 11.5.10 changes
4426 ,P_Request_Date => Ld_TzCont_Req_Date
4427 ,P_TimeType_Category => 'RSN' -- 11.5.10 new addition
4428 ,P_ReactDay_DispFmt => 'DY'
4429 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4430 ,X_Reaction_Attribs => Lx_Resolution_Attribs
4431 ,X_Result => Lx_Result4
4432 ,X_Return_Status => Lx_Return_Status);
4433
4434 IF Lx_Result4 = G_TRUE THEN
4435
4436 Compute_React_By_DateTime
4437 (P_Request_DateTime => Ld_TzCont_Req_Date
4438 ,P_Cover_EffStart => Ld_Cont_EffStart
4439 ,P_Cover_EffEnd => Ld_Cont_EffEnd
4440 ,P_BP_Work_Through => Lx_RTL_RSN_WT_YN
4441 ,P_BP_Cover_Times => Lx_BP_CovTimes
4442 ,P_Reaction_Attribs => Lx_Resolution_Attribs
4443 ,P_Option => Lv_Option
4444 ,P_Template_YN => Lv_template_YN -- default coverage
4445 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4446 ,X_React_Durn => Lx_Resolve_Durn
4447 ,X_React_UOM => Lx_Resolve_UOM
4448 ,X_React_Day => Lv_Resolve_Day
4449 ,X_React_By_DateTime => Ld_Resolve_By_DateTime
4450 ,X_React_Start_DateTime => Ld_Resolve_Start_DateTime
4451 ,X_Result => Lx_Result
4452 ,X_Return_Status => Lx_Return_Status);
4453
4454 IF Lx_Result <> G_TRUE THEN
4455 RAISE L_EXCEP_NO_DATA_FOUND;
4456 END IF;
4457
4458
4459 --
4460 -- Commented out for 12.0 ENT-TZ project (JVARGHES)
4461 --
4462 --
4463 -- IF Lx_TZE_Mtch_Exists = 'N' then -- 11.5.10 multiple time zone enhancement
4464 --
4465 -- Convert_TimeZone
4466 -- (P_API_Version => P_API_Version
4467 -- ,P_Init_Msg_List => P_Init_Msg_List
4468 -- ,P_Source_Date => Ld_Resolve_By_DateTime
4469 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
4470 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
4471 -- ,X_Dest_Date => Ld_TZ_Resolve_By_DateTime
4472 -- ,X_Msg_Count => X_Msg_count
4473 -- ,X_Msg_Data => X_Msg_Data
4474 -- ,X_Return_Status => Lx_Return_Status);
4475 --
4476 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4477 -- RAISE L_EXCEP_NO_DATA_FOUND;
4478 -- END IF;
4479 --
4480 -- Convert_TimeZone
4481 -- (P_API_Version => P_API_Version
4482 -- ,P_Init_Msg_List => P_Init_Msg_List
4483 -- ,P_Source_Date => Ld_Resolve_Start_DateTime
4484 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
4485 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
4486 -- ,X_Dest_Date => Ld_TZ_Resolve_Start_DateTime
4487 -- ,X_Msg_Count => X_Msg_count
4488 -- ,X_Msg_Data => X_Msg_Data
4489 -- ,X_Return_Status => Lx_Return_Status);
4490 --
4491 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4492 -- RAISE L_EXCEP_NO_DATA_FOUND;
4493 -- END IF;
4494 --
4495 -- ELSE -- 11.5.10 multiple time zone enhancement
4496 --
4497 -- Ld_TZ_Resolve_Start_DateTime := Ld_Resolve_Start_DateTime;
4498 -- Ld_TZ_Resolve_By_DateTime := Ld_Resolve_By_DateTime;
4499 --
4500 -- END IF;
4501 --
4502 --
4503 -- Added for 12.0 ENT-TZ project (JVARGHES)
4504 --
4505
4506 IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11) THEN
4507
4508 Ld_TZ_Resolve_By_DateTime := Ld_Resolve_By_DateTime;
4509 Ld_TZ_Resolve_Start_DateTime := Ld_Resolve_Start_DateTime;
4510
4511
4512 ELSE
4513
4514 Convert_TimeZone
4515 (P_API_Version => P_API_Version
4516 ,P_Init_Msg_List => P_Init_Msg_List
4517 ,P_Source_Date => Ld_Resolve_By_DateTime
4518 ,P_Source_Tz_Id => ln_CovTZ
4519 ,P_Dest_Tz_Id => ln_Param_DatesTZ
4520 ,X_Dest_Date => Ld_TZ_Resolve_By_DateTime
4521 ,X_Msg_Count => X_Msg_count
4522 ,X_Msg_Data => X_Msg_Data
4523 ,X_Return_Status => Lx_Return_Status);
4524
4525 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4526 RAISE L_EXCEP_NO_DATA_FOUND;
4527 END IF;
4528
4529 Convert_TimeZone
4530 (P_API_Version => P_API_Version
4531 ,P_Init_Msg_List => P_Init_Msg_List
4532 ,P_Source_Date => Ld_Resolve_Start_DateTime
4533 ,P_Source_Tz_Id => ln_CovTZ
4534 ,P_Dest_Tz_Id => ln_Param_DatesTZ
4535 ,X_Dest_Date => Ld_TZ_Resolve_Start_DateTime
4536 ,X_Msg_Count => X_Msg_count
4537 ,X_Msg_Data => X_Msg_Data
4538 ,X_Return_Status => Lx_Return_Status);
4539
4540 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4541 RAISE L_EXCEP_NO_DATA_FOUND;
4542 END IF;
4543
4544 END IF;
4545
4546 --
4547 --
4548 ELSE
4549
4550 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
4551 RAISE L_EXCEP_UNEXPECTED_ERR;
4552 END IF;
4553
4554 END IF;
4555
4556 END IF;
4557
4558 IF Lx_Result3 = G_FALSE AND Lx_Result4 = G_FALSE THEN
4559 Lx_Result := G_FALSE;
4560 RAISE L_EXCEP_NO_DATA_FOUND;
4561 END IF;
4562
4563 X_React_Durn := Lx_React_Durn;
4564 X_React_UOM := Lx_React_UOM;
4565 X_React_Day := Lv_React_Day;
4566 X_React_By_DateTime := Ld_TZ_React_By_DateTime;
4567 X_React_Start_DateTime := Ld_TZ_React_Start_DateTime;
4568
4569 X_Resolve_Durn := Lx_Resolve_Durn;
4570 X_Resolve_UOM := Lx_Resolve_UOM;
4571 X_Resolve_Day := Lv_Resolve_Day;
4572 X_Resolve_By_DateTime := Ld_TZ_Resolve_By_DateTime;
4573 X_Resolve_Start_DateTime := Ld_TZ_Resolve_Start_DateTime;
4574
4575 X_Result := Lx_Result;
4576 X_Return_Status := Lx_Return_Status;
4577
4578 EXCEPTION
4579
4580 WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_NO_DATA_FOUND OR L_EXCEP_NOT_EFFECTIVE OR L_EXCEP_UNEXPECTED_ERR THEN
4581
4582 X_Result := Lx_Result;
4583 X_Return_Status := Lx_Return_Status;
4584
4585 WHEN OTHERS THEN
4586
4587 OKC_API.SET_MESSAGE
4588 (P_App_Name => G_APP_NAME_OKC
4589 ,P_Msg_Name => G_UNEXPECTED_ERROR
4590 ,P_Token1 => G_SQLCODE_TOKEN
4591 ,P_Token1_Value => SQLCODE
4592 ,P_Token2 => G_SQLERRM_TOKEN
4593 ,P_Token2_Value => SQLERRM);
4594
4595 OKC_API.SET_MESSAGE
4596 (P_App_Name => G_APP_NAME_OKC
4597 ,P_Msg_Name => G_DEBUG_TOKEN
4598 ,P_Token1 => G_PACKAGE_TOKEN
4599 ,P_Token1_Value => G_PKG_NAME
4600 ,P_Token2 => G_PROGRAM_TOKEN
4601 ,P_Token2_Value => 'Get_ReactResol_By_DateTime');
4602
4603 X_Result := G_FALSE;
4604 X_Return_Status := G_RET_STS_UNEXP_ERROR;
4605
4606 END Get_ReactResol_By_DateTime;
4607
4608 -----------------------------------------------------------------------------------------------------------------------*
4609 /*vgujarat - modified for access hour ER 9675504*/
4610 PROCEDURE Check_Reaction_Times
4611 (P_API_Version IN NUMBER
4612 ,P_Init_Msg_List IN VARCHAR2
4613 ,P_Business_Process_Id IN NUMBER
4614 ,P_Request_Date IN DATE
4615 ,P_Sr_Severity IN NUMBER
4616 ,P_Time_Zone_Id IN NUMBER
4617 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
4618 ,P_Contract_Line_Id IN NUMBER
4619 ,X_Return_Status OUT NOCOPY VARCHAR2
4620 ,X_Msg_Count OUT NOCOPY NUMBER
4621 ,X_Msg_Data OUT NOCOPY VARCHAR2
4622 ,X_React_Within OUT NOCOPY NUMBER
4623 ,X_React_TUOM OUT NOCOPY VARCHAR2
4624 ,X_React_By_Date OUT NOCOPY DATE
4625 ,P_cust_id IN NUMBER DEFAULT NULL
4626 ,P_cust_site_id IN NUMBER DEFAULT NULL
4627 ,P_cust_loc_id IN NUMBER DEFAULT NULL)
4628 IS
4629
4630 Lv_React_Day VARCHAR2(20);
4631 Ld_React_Start_DateTime DATE;
4632
4633 /*vgujarat - modified for access hour ER 9675504*/
4634 Lx_cust_id CONSTANT NUMBER := P_cust_id;
4635 Lx_cust_site_id CONSTANT NUMBER := P_cust_site_id;
4636 Lx_cust_loc_id CONSTANT NUMBER := P_cust_loc_id;
4637
4638 Lx_Resolve_Durn Gx_ReactDurn;
4639 Lx_Resolve_UOM Gx_ReactUOM;
4640 Lv_Resolve_Day VARCHAR2(20);
4641 Ld_Resolve_By_DateTime DATE;
4642 Ld_Resolve_Start_DateTime DATE;
4643
4644 Lx_Result Gx_Boolean;
4645
4646 BEGIN
4647
4648 Lx_Result := G_TRUE;
4649 /*vgujarat - modified for access hour ER 9675504*/
4650 Get_ReactResol_By_DateTime
4651 (P_API_Version => P_API_Version
4652 ,P_Init_Msg_List => P_Init_Msg_List
4653 ,P_SVL_Id => P_Contract_Line_Id
4654 ,P_BusiProc_Id => P_Business_Process_Id
4655 ,P_Severity_Id => P_Sr_Severity
4656 ,P_Request_Date => P_Request_Date
4657 ,P_Request_TZone_id => P_Time_Zone_Id
4658 ,P_Dates_In_Input_TZ => P_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
4659 ,P_template_YN => 'N'
4660 ,P_Option => G_FIRST
4661 ,P_Rcn_Rsn_Flag => G_RUL_CATEGORY_REACTION
4662 ,P_Set_ExcepionStack => G_TRUE
4663 ,X_React_Durn => X_React_Within
4664 ,X_React_UOM => X_React_TUOM
4665 ,X_React_Day => Lv_React_Day
4666 ,X_React_By_DateTime => X_React_By_Date
4667 ,X_React_Start_DateTime => Ld_React_Start_DateTime
4668 ,X_Resolve_Durn => Lx_Resolve_Durn
4669 ,X_Resolve_UOM => Lx_Resolve_UOM
4670 ,X_Resolve_Day => Lv_Resolve_Day
4671 ,X_Resolve_By_DateTime => Ld_Resolve_By_DateTime
4672 ,X_Resolve_Start_DateTime => Ld_Resolve_Start_DateTime
4673 ,X_Msg_count => X_Msg_Count
4674 ,X_Msg_Data => X_Msg_Data
4675 ,X_Result => Lx_Result
4676 ,X_Return_Status => X_Return_Status
4677 ,P_cust_id => Lx_cust_id
4678 ,P_cust_site_id => Lx_cust_site_id
4679 ,P_cust_loc_id => Lx_cust_loc_id);
4680
4681 EXCEPTION
4682
4683 WHEN OTHERS THEN
4684
4685 OKC_API.SET_MESSAGE
4686 (P_App_Name => G_APP_NAME_OKC
4687 ,P_Msg_Name => G_UNEXPECTED_ERROR
4688 ,P_Token1 => G_SQLCODE_TOKEN
4689 ,P_Token1_Value => SQLCODE
4690 ,P_Token2 => G_SQLERRM_TOKEN
4691 ,P_Token2_Value => SQLERRM);
4692
4693 OKC_API.SET_MESSAGE
4694 (P_App_Name => G_APP_NAME_OKC
4695 ,P_Msg_Name => G_DEBUG_TOKEN
4696 ,P_Token1 => G_PACKAGE_TOKEN
4697 ,P_Token1_Value => G_PKG_NAME
4698 ,P_Token2 => G_PROGRAM_TOKEN
4699 ,P_Token2_Value => 'Check_Reaction_Times');
4700
4701 X_Return_Status := G_RET_STS_UNEXP_ERROR;
4702
4703 END Check_Reaction_Times;
4704
4705 -----------------------------------------------------------------------------------------------------------------------*
4706 /*vgujarat - modified for access hour ER 9675504*/
4707 PROCEDURE get_react_resolve_by_time
4708 (p_api_version in number
4709 ,p_init_msg_list in varchar2
4710 ,p_inp_rec in grt_inp_rec_type
4711 ,x_return_status out nocopy varchar2
4712 ,x_msg_count out nocopy number
4713 ,x_msg_data out nocopy varchar2
4714 ,x_react_rec out nocopy rcn_rsn_rec_type
4715 ,x_resolve_rec out nocopy rcn_rsn_rec_type)
4716
4717 IS
4718
4719 Lx_SVL_Id CONSTANT Gx_OKS_Id := p_inp_rec.Contract_Line_Id;
4720 Lx_BusiProc_Id CONSTANT Gx_BusProcess_Id := p_inp_rec.Business_Process_Id;
4721 Lx_Severity_Id CONSTANT Gx_Severity_Id := p_inp_rec.Severity_id;
4722 Ld_Request_Date CONSTANT DATE := nvl(p_inp_rec.Request_Date,sysdate);
4723 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := p_inp_rec.Time_Zone_Id;
4724 Lx_ReactReso_ObjCode CONSTANT Gx_JTOT_ObjCode := G_JTOT_OBJ_REACTIME;
4725 Lx_ReactReso_Category CONSTANT Gx_Rule_Category := p_inp_rec.category_rcn_rsn;
4726 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := G_TRUE;
4727 Lv_Option CONSTANT VARCHAR2(10) := p_inp_rec.compute_option;
4728
4729 /*vgujarat - modified for access hour ER 9675504*/
4730 Lx_cust_id CONSTANT NUMBER := p_inp_rec.cust_id;
4731 Lx_cust_site_id CONSTANT NUMBER := p_inp_rec.cust_site_id;
4732 Lx_cust_loc_id CONSTANT NUMBER := p_inp_rec.cust_loc_id;
4733
4734 Lx_React_Durn Gx_ReactDurn;
4735 Lx_React_UOM Gx_ReactUOM;
4736 Lv_React_Day VARCHAR2(9);
4737 Ld_React_By_DateTime DATE;
4738 Ld_React_Start_DateTime DATE;
4739
4740 Lx_Resol_Durn Gx_ReactDurn;
4741 Lx_Resol_UOM Gx_ReactUOM;
4742 Lv_Resol_Day VARCHAR2(9);
4743 Ld_Resol_By_DateTime DATE;
4744 Ld_Resol_Start_DateTime DATE;
4745
4746 Lx_Result Gx_Boolean;
4747 Lx_Return_Status Gx_Ret_Sts;
4748
4749 -- Added for 12.0 ENT-TZ project (JVARGHES)
4750
4751 Lv_Dates_In_Input_TZ CONSTANT VARCHAR2(1) := p_inp_rec.Dates_In_Input_TZ;
4752 --
4753
4754 BEGIN
4755
4756 Lx_Result := G_TRUE;
4757 Lx_Return_Status := G_RET_STS_SUCCESS;
4758 /*vgujarat - modified for access hour ER 9675504*/
4759 Get_ReactResol_By_DateTime
4760 (P_API_Version => P_API_Version
4761 ,P_Init_Msg_List => P_Init_Msg_List
4762 ,P_SVL_Id => Lx_SVL_Id
4763 ,P_BusiProc_Id => Lx_BusiProc_Id
4764 ,P_Severity_Id => Lx_Severity_Id
4765 ,P_Request_Date => Ld_Request_Date
4766 ,P_Request_TZone_Id => Lx_Request_TZone_Id
4767 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
4768 ,P_template_YN => 'N'
4769 ,P_Option => Lv_Option
4770 ,P_Rcn_Rsn_Flag => Lx_ReactReso_Category
4771 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4772 ,X_React_Durn => Lx_React_Durn
4773 ,X_React_UOM => Lx_React_UOM
4774 ,X_React_Day => Lv_React_Day
4775 ,X_React_By_DateTime => Ld_React_By_DateTime
4776 ,X_React_Start_DateTime => Ld_React_Start_DateTime
4777 ,X_Resolve_Durn => Lx_Resol_Durn
4778 ,X_Resolve_UOM => Lx_Resol_UOM
4779 ,X_Resolve_Day => Lv_Resol_Day
4780 ,X_Resolve_By_DateTime => Ld_Resol_By_DateTime
4781 ,X_Resolve_Start_DateTime => Ld_Resol_Start_DateTime
4782 ,X_Msg_count => X_Msg_Count
4783 ,X_Msg_Data => X_Msg_Data
4784 ,X_Result => Lx_Result
4785 ,X_Return_Status => Lx_Return_Status
4786 ,P_cust_id => Lx_cust_id
4787 ,P_cust_site_id => Lx_cust_site_id
4788 ,P_cust_loc_id => Lx_cust_loc_id);
4789
4790 x_react_rec.duration := Lx_React_Durn;
4791 x_react_rec.uom := Lx_React_UOM;
4792 x_react_rec.by_date_start := Ld_React_Start_DateTime;
4793 x_react_rec.by_date_end := Ld_React_By_DateTime;
4794
4795 x_resolve_rec.duration := Lx_Resol_Durn;
4796 x_resolve_rec.uom := Lx_Resol_UOM;
4797 x_resolve_rec.by_date_start := Ld_Resol_Start_DateTime;
4798 x_resolve_rec.by_date_end := Ld_Resol_By_DateTime;
4799
4800 x_return_status := Lx_Return_Status;
4801
4802 EXCEPTION
4803
4804 WHEN OTHERS THEN
4805
4806 OKC_API.SET_MESSAGE
4807 (P_App_Name => G_APP_NAME_OKC
4808 ,P_Msg_Name => G_UNEXPECTED_ERROR
4809 ,P_Token1 => G_SQLCODE_TOKEN
4810 ,P_Token1_Value => SQLCODE
4811 ,P_Token2 => G_SQLERRM_TOKEN
4812 ,P_Token2_Value => SQLERRM);
4813
4814 OKC_API.SET_MESSAGE
4815 (P_App_Name => G_APP_NAME_OKC
4816 ,P_Msg_Name => G_DEBUG_TOKEN
4817 ,P_Token1 => G_PACKAGE_TOKEN
4818 ,P_Token1_Value => G_PKG_NAME
4819 ,P_Token2 => G_PROGRAM_TOKEN
4820 ,P_Token2_Value => 'get_react_resolve_by_time');
4821
4822 X_Return_Status := G_RET_STS_UNEXP_ERROR;
4823
4824 END get_react_resolve_by_time;
4825
4826 -----------------------------------------------------------------------------------------------------------------------*
4827
4828 PROCEDURE Validate_Required_CT_Tokens
4829 (P_SVL_Id IN Gx_OKS_Id
4830 ,P_BusiProc_Id IN Gx_BusProcess_Id
4831 ,P_Request_Date IN DATE
4832 ,P_Request_TZone_id IN Gx_TimeZoneId
4833 ,P_Set_ExcepionStack IN Gx_Boolean
4834 ,X_Result out nocopy Gx_Boolean
4835 ,X_Return_Status out nocopy Gx_Ret_Sts)
4836 IS
4837
4838 Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
4839 Lx_BusiProc_id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
4840 Ld_Request_Date DATE;
4841 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
4842 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
4843
4844 Lx_Result Gx_Boolean;
4845 Lx_Return_Status Gx_Ret_Sts;
4846
4847 L_EXCEP_NULL_VALUE EXCEPTION;
4848
4849 BEGIN
4850
4851 Ld_Request_Date := nvl(P_Request_Date,sysdate);
4852
4853 Lx_Result := G_TRUE;
4854 Lx_Return_Status := G_RET_STS_SUCCESS;
4855
4856 Validate_Required_NumValue
4857 (P_Num_Value => Lx_SVL_Id
4858 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4859 ,P_ExcepionMsg => 'Contract Line'
4860 ,X_Result => Lx_result
4861 ,X_Return_Status => Lx_Return_Status);
4862
4863 IF Lx_result <> G_TRUE THEN
4864 RAISE L_EXCEP_NULL_VALUE;
4865 END IF;
4866
4867 Validate_Required_NumValue
4868 (P_Num_Value => Lx_BusiProc_Id
4869 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4870 ,P_ExcepionMsg => 'Business Process'
4871 ,X_Result => Lx_result
4872 ,X_Return_Status => Lx_Return_Status);
4873
4874 IF Lx_result <> G_TRUE THEN
4875 RAISE L_EXCEP_NULL_VALUE;
4876 END IF;
4877
4878 Validate_Required_NumValue
4879 (P_Num_Value => Lx_Request_TZone_Id
4880 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4881 ,P_ExcepionMsg => 'Time Zone'
4882 ,X_Result => Lx_result
4883 ,X_Return_Status => Lx_Return_Status);
4884
4885 IF Lx_result <> G_TRUE THEN
4886 RAISE L_EXCEP_NULL_VALUE;
4887 END IF;
4888
4889 Validate_Required_DateValue
4890 (P_Date_Value => Ld_Request_Date
4891 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4892 ,P_ExcepionMsg => 'Request Date'
4893 ,X_Result => Lx_result
4894 ,X_Return_Status => Lx_Return_Status);
4895
4896 IF Lx_result <> G_TRUE THEN
4897 RAISE L_EXCEP_NULL_VALUE;
4898 END IF;
4899
4900 X_Result := Lx_Result;
4901 X_Return_Status := Lx_Return_Status;
4902
4903 EXCEPTION
4904
4905 WHEN L_EXCEP_NULL_VALUE THEN
4906
4907 X_Result := Lx_Result;
4908 X_Return_Status := Lx_Return_Status;
4909
4910 WHEN OTHERS THEN
4911
4912 OKC_API.SET_MESSAGE
4913 (P_App_Name => G_APP_NAME_OKC
4914 ,P_Msg_Name => G_UNEXPECTED_ERROR
4915 ,P_Token1 => G_SQLCODE_TOKEN
4916 ,P_Token1_Value => SQLCODE
4917 ,P_Token2 => G_SQLERRM_TOKEN
4918 ,P_Token2_Value => SQLERRM);
4919
4920 OKC_API.SET_MESSAGE
4921 (P_App_Name => G_APP_NAME_OKC
4922 ,P_Msg_Name => G_DEBUG_TOKEN
4923 ,P_Token1 => G_PACKAGE_TOKEN
4924 ,P_Token1_Value => G_PKG_NAME
4925 ,P_Token2 => G_PROGRAM_TOKEN
4926 ,P_Token2_Value => 'Validate_Required_CT_Tokens');
4927
4928 X_Result := G_FALSE;
4929 X_Return_Status := G_RET_STS_UNEXP_ERROR;
4930
4931 END Validate_Required_CT_Tokens;
4932
4933 -----------------------------------------------------------------------------------------------------------------------*
4934
4935 PROCEDURE Get_Coverage_Times
4936 (P_API_Version IN NUMBER
4937 ,P_Init_Msg_List IN VARCHAR2
4938 ,P_SVL_Id IN Gx_OKS_Id
4939 ,P_BusiProc_Id IN Gx_BusProcess_Id
4940 ,P_Request_Date IN DATE
4941 ,P_Request_TZone_id IN Gx_TimeZoneId
4942 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
4943 ,P_Set_ExcepionStack IN Gx_Boolean
4944 ,X_Day_Cover_From out nocopy DATE
4945 ,X_Day_Cover_To out nocopy DATE
4946 ,X_Covered out nocopy Gx_Boolean
4947 ,X_Msg_count OUT NOCOPY NUMBER
4948 ,X_Msg_data OUT NOCOPY VARCHAR2
4949 ,X_Result out nocopy Gx_Boolean
4950 ,X_Return_Status out nocopy Gx_Ret_Sts)
4951 IS
4952
4953
4954 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
4955
4956 CURSOR Get_Cov_Timezones(P_BPL_Id in number) IS
4957 select oct.id,
4958 oct.timezone_id,
4959 oct.default_yn,
4960 okslb.APPLY_DEFAULT_TIMEZONE
4961 from okc_k_lines_b okclb,
4962 oks_k_lines_b okslb,
4963 oks_coverage_timezones oct
4964 where okclb.id = P_BPL_Id
4965 and okslb.cle_id = okclb.id
4966 and oct.cle_id = okclb.id;
4967
4968 Lx_Use_TZE_Id number;
4969 Lx_TZE_Mtch_Exists varchar2(1);
4970 Lx_Def_TZE_Id number;
4971 Lx_Apply_Def_Tze varchar2(1);
4972 Lx_Use_TZE_Line_Id number;
4973 Lx_Def_TZE_Line_Id number;
4974
4975 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
4976
4977 Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
4978 Lx_BusiProc_Id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
4979 Ld_Request_Date DATE;
4980 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
4981 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
4982 Lv_Check_Day VARCHAR2(1);
4983
4984 Lv_Day_Cover_Tbl Day_Cover_Tbl; -- 11.5.10 mutiple time zone changes
4985 Lv_DayCov_Idx BINARY_INTEGER; -- 11.5.10 mutiple time zone changes
4986
4987
4988 Lv_Day_Cover_From VARCHAR2(25);
4989 Lv_Day_Cover_To VARCHAR2(25);
4990
4991 Ld_Day_Cover_From DATE;
4992 Ld_Day_Cover_To DATE;
4993 Ld_Day_Cover_EffFrom DATE;
4994 Ld_Day_Cover_EffTo DATE;
4995
4996 Ld_Tz_Day_Cover_From DATE;
4997 Ld_Tz_Day_Cover_To DATE;
4998
4999 Lx_Covered Gx_Boolean;
5000
5001 Lx_Result Gx_Boolean;
5002 Lx_Return_Status Gx_Ret_Sts;
5003
5004 Ld_SVL_Start DATE;
5005 Ld_SVL_End DATE;
5006 Ld_SVL_Terminated DATE;
5007 Ld_SVL_EffEnd_Date DATE;
5008
5009 Lx_CVL_Id Gx_OKS_Id;
5010 Ld_CVL_Start DATE;
5011 Ld_CVL_End DATE;
5012 Ld_CVL_Terminated DATE;
5013 Ld_CVL_EffEnd_Date DATE;
5014
5015 Lx_BPL_Id Gx_OKS_Id;
5016 Ld_BPL_Start DATE;
5017 Ld_BPL_End DATE;
5018 Ld_BPL_Terminated DATE;
5019 Ld_BPL_EffEnd_Date DATE;
5020
5021 -- Lx_BP_CVTRule_Id Gx_Rule_Id;
5022 Lx_BP_Tz_Id Gx_TimeZoneId;
5023 Ld_TzCont_Req_Date DATE;
5024 Li_TzCont_Req_Date INTEGER(1);
5025
5026 Ld_Cont_EffStart DATE;
5027 Ld_Cont_EffEnd DATE;
5028
5029 Lx_BP_CovTimes GT_Bp_CoverTimes;
5030
5031 Lx_ExcepionMsg Gx_ExceptionMsg;
5032
5033 L_EXCEP_NULL_VALUE EXCEPTION;
5034 L_EXCEP_NO_DATA_FOUND EXCEPTION;
5035 L_EXCEP_NOT_EFFECTIVE EXCEPTION;
5036 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
5037 L_EXCEP_NO_DAY_COVER EXCEPTION;
5038
5039 -- Added for 12.0 ENT-TZ project (JVARGHES)
5040
5041 ln_Param_DatesTZ NUMBER;
5042 ln_CovTZ NUMBER;
5043
5044 -- Added for 12.0 Coverage Rearch project (JVARGHES)
5045
5046 Lv_Std_Cov_YN VARCHAR2(10);
5047 Ld_BPL_OFS_Start DATE;
5048 Ln_BPL_OFS_Duration NUMBER;
5049 Lv_BPL_OFS_UOM VARCHAR2(100);
5050 --
5051
5052 BEGIN
5053
5054 Ld_Request_Date := nvl(P_Request_Date,sysdate);
5055 Lv_Check_Day := 'N';
5056
5057 Lx_Result := G_TRUE;
5058 Lx_Return_Status := G_RET_STS_SUCCESS;
5059
5060 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
5061
5062 Validate_Required_CT_Tokens
5063 (P_SVL_Id => Lx_SVL_Id
5064 ,P_BusiProc_Id => Lx_BusiProc_id
5065 ,P_Request_Date => Ld_Request_Date
5066 ,P_Request_TZone_id => Lx_Request_TZone_Id
5067 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5068 ,X_Result => Lx_Result
5069 ,X_Return_Status => Lx_Return_Status);
5070
5071 IF Lx_Result <> G_TRUE THEN
5072 RAISE L_EXCEP_NULL_VALUE;
5073 END IF;
5074
5075 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
5076 --
5077 -- Validate_Service_Line
5078 -- (P_SVL_Id => Lx_SVL_Id
5079 -- ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5080 -- ,X_SVL_Start => Ld_SVL_Start
5081 -- ,X_SVL_End => Ld_SVL_End
5082 -- ,X_SVL_Terminated => Ld_SVL_Terminated
5083 -- ,X_Result => Lx_Result
5084 -- ,X_Return_Status => Lx_Return_Status);
5085 --
5086 -- Added for 12.0 Coverage Rearch project (JVARGHES)
5087 --
5088
5089 Validate_Service_Line
5090 (P_SVL_Id => Lx_SVL_Id
5091 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5092 ,X_CVL_Id => Lx_CVL_Id
5093 ,X_Std_Cov_YN => Lv_Std_Cov_YN
5094 ,X_SVL_Start => Ld_SVL_Start
5095 ,X_SVL_End => Ld_SVL_End
5096 ,X_SVL_Terminated => Ld_SVL_Terminated
5097 ,X_Result => Lx_Result
5098 ,X_Return_Status => Lx_Return_Status);
5099
5100 --
5101
5102 IF Lx_Result <> G_TRUE THEN
5103 RAISE L_EXCEP_NO_DATA_FOUND;
5104 END IF;
5105
5106 Get_Effective_End_Date
5107 (P_Start_Date => Ld_SVL_Start
5108 ,P_End_Date => Ld_SVL_End
5109 ,P_Termination_Date => Ld_SVL_Terminated
5110 ,P_EndDate_Required => G_TRUE
5111 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5112 ,P_ExcepionMsg => 'Service Line'
5113 ,X_EffEnd_Date => Ld_SVL_EffEnd_Date
5114 ,X_Result => Lx_Result
5115 ,X_Return_Status => Lx_Return_Status);
5116
5117
5118 IF Lx_Result <> G_TRUE THEN
5119 RAISE L_EXCEP_NULL_VALUE;
5120 END IF;
5121
5122 --
5123 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
5124 --
5125 --
5126 --Validate_Coverage_Line
5127 -- (P_SVL_Id => Lx_SVL_Id
5128 -- ,P_template_YN => 'N'
5129 -- ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5130 -- ,X_CVL_Id => Lx_CVL_Id
5131 -- ,X_CVL_Start => Ld_CVL_Start
5132 -- ,X_CVL_End => Ld_CVL_End
5133 -- ,X_CVL_Terminated => Ld_CVL_Terminated
5134 -- ,X_Result => Lx_Result
5135 -- ,X_Return_Status => Lx_Return_Status);
5136 --
5137 -- Added for 12.0 Coverage Rearch project (JVARGHES)
5138 --
5139
5140 Validate_Coverage_Line
5141 (P_CVL_Id => Lx_CVL_Id
5142 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5143 ,X_CVL_Start => Ld_CVL_Start
5144 ,X_CVL_End => Ld_CVL_End
5145 ,X_CVL_Terminated => Ld_CVL_Terminated
5146 ,X_Result => Lx_Result
5147 ,X_Return_Status => Lx_Return_Status);
5148
5149 IF Lx_Result <> G_TRUE THEN
5150 RAISE L_EXCEP_NO_DATA_FOUND;
5151 END IF;
5152
5153 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
5154 THEN
5155
5156 Ld_CVL_Start := Ld_SVL_Start;
5157 Ld_CVL_End := Ld_SVL_End;
5158 Ld_CVL_Terminated := Ld_SVL_Terminated;
5159
5160 END IF;
5161
5162 --
5163 --
5164
5165 Get_Effective_End_Date
5166 (P_Start_Date => Ld_CVL_Start
5167 ,P_End_Date => Ld_CVL_End
5168 ,P_Termination_Date => Ld_CVL_Terminated
5169 ,P_EndDate_Required => G_TRUE
5170 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5171 ,P_ExcepionMsg => 'Coverage Line'
5172 ,X_EffEnd_Date => Ld_CVL_EffEnd_Date
5173 ,X_Result => Lx_Result
5174 ,X_Return_Status => Lx_Return_Status);
5175
5176 IF Lx_Result <> G_TRUE THEN
5177 RAISE L_EXCEP_NULL_VALUE;
5178 END IF;
5179
5180 Validate_Contract_BP
5181 (P_CVL_Id => Lx_CVL_Id --P_SVL_Id => Lx_SVL_Id
5182 ,P_BP_Id => Lx_BusiProc_Id
5183 ,P_BP_ObjCode => G_JTOT_OBJ_BUSIPROC
5184 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5185 ,P_REQ_DATE => Ld_Request_Date --ansraj bug 13795417
5186 ,X_BPL_Id => Lx_BPL_Id
5187 ,X_BPL_Start => Ld_BPL_Start
5188 ,X_BPL_End => Ld_BPL_End
5189 ,X_BPL_Terminated => Ld_BPL_Terminated
5190 ,X_Result => Lx_Result
5191 ,X_Return_Status => Lx_Return_Status);
5192
5193 IF Lx_Result <> G_TRUE THEN
5194 RAISE L_EXCEP_NO_DATA_FOUND;
5195 END IF;
5196
5197 --
5198 -- Added for 12.0 Coverage Rearch project (JVARGHES)
5199 --
5200
5201 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
5202 THEN
5203
5204 Get_BP_Line_Start_Offset
5205 (P_BPL_Id => Lx_BPL_Id
5206 ,P_SVL_Start => Ld_SVL_Start
5207 ,X_BPL_OFS_Start => Ld_BPL_Start
5208 ,X_BPL_OFS_Duration => Ln_BPL_OFS_Duration
5209 ,X_BPL_OFS_UOM => Lv_BPL_OFS_UOM
5210 ,X_Return_Status => Lx_Return_Status);
5211
5212 IF X_Return_Status <> G_RET_STS_SUCCESS THEN
5213 RAISE L_EXCEP_NO_DATA_FOUND;
5214 END IF;
5215
5216 Ld_BPL_End := Ld_SVL_End;
5217 Ld_BPL_Terminated := Ld_SVL_Terminated;
5218
5219 END IF;
5220
5221 --
5222
5223 Get_Effective_End_Date
5224 (P_Start_Date => Ld_BPL_Start
5225 ,P_End_Date => Ld_BPL_End
5226 ,P_Termination_Date => Ld_BPL_Terminated
5227 ,P_EndDate_Required => G_TRUE
5228 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5229 ,P_ExcepionMsg => 'Business Process Line'
5230 ,X_EffEnd_Date => Ld_BPL_EffEnd_Date
5231 ,X_Result => Lx_Result
5232 ,X_Return_Status => Lx_Return_Status);
5233
5234 IF Lx_Result <> G_TRUE THEN
5235 RAISE L_EXCEP_NULL_VALUE;
5236 END IF;
5237
5238 ----------------------------11.5.10 select coverage time zone starts -------------------
5239
5240 Lx_Use_TZE_Id := null;
5241 Lx_TZE_Mtch_Exists := 'N';
5242 Lx_Def_TZE_Id := null;
5243 Lx_Apply_Def_Tze := null;
5244 Lx_Use_TZE_Line_Id := null;
5245 Lx_Def_TZE_Line_Id := null;
5246
5247
5248 for Cov_Timezones_rec in Get_Cov_Timezones(Lx_BPL_Id) loop
5249
5250 if Lx_Request_TZone_Id = Cov_Timezones_rec.timezone_id then
5251
5252 Lx_Use_TZE_Id := Lx_Request_TZone_Id;
5253 Lx_TZE_Mtch_Exists := 'Y';
5254 Lx_Use_TZE_Line_Id := Cov_Timezones_rec.id;
5255 exit;
5256
5257 end if;
5258
5259 if Cov_Timezones_rec.default_yn = 'Y' then
5260
5261 Lx_Def_TZE_Id := Cov_Timezones_rec.timezone_id;
5262 Lx_Def_TZE_Line_Id := Cov_Timezones_rec.id;
5263
5264 end if;
5265
5266 Lx_Apply_Def_Tze := Cov_Timezones_rec.APPLY_DEFAULT_TIMEZONE;
5267
5268 end loop;
5269
5270 if Lx_Use_TZE_Id is null then
5271
5272 if Lx_Apply_Def_Tze = 'Y' then
5273
5274 -- Lx_Use_TZE_Id := Lx_Def_TZE_Id; -- Bug# 5137665
5275 Lx_Use_TZE_Id := Lx_Request_TZone_Id;
5276 Lx_TZE_Mtch_Exists := 'Y';
5277 Lx_Use_TZE_Line_Id := Lx_Def_TZE_Line_Id;
5278 end if;
5279
5280 end if;
5281
5282 if Lx_Use_TZE_Line_Id is null then
5283
5284 Lx_Use_TZE_Line_Id := Lx_Def_TZE_Line_Id;
5285
5286 end if;
5287
5288 --
5289 -- Commented out for 12.0 ENT-TZ project (JVARGHES)
5290 --
5291 --
5292 -- if Lx_Use_TZE_Id is null then
5293 --
5294 -- Convert_TimeZone
5295 -- (P_API_Version => P_API_Version
5296 -- ,P_Init_Msg_List => P_Init_Msg_List
5297 -- ,P_Source_Date => Ld_Request_Date
5298 -- ,P_Source_Tz_Id => Lx_Request_TZone_Id
5299 -- ,P_Dest_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id --11.5.10 multiple coverage time zone enhancements
5300 -- ,X_Dest_Date => Ld_TzCont_Req_Date
5301 -- ,X_Msg_Count => X_Msg_count
5302 -- ,X_Msg_Data => X_Msg_Data
5303 -- ,X_Return_Status => Lx_Return_Status);
5304 --
5305 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
5306 -- RAISE L_EXCEP_NO_DATA_FOUND;
5307 -- END IF;
5308 --
5309 -- else
5310 --
5311 -- Ld_TzCont_Req_Date := Ld_Request_Date;
5312 --
5313 -- end if;
5314 --
5315 --
5316 --
5317 -- Added for 12.0 ENT-TZ project (JVARGHES)
5318 --
5319
5320 IF NVL(P_DATES_IN_INPUT_TZ,'Y') = 'N' THEN
5321 ln_Param_DatesTZ := fnd_profile.VALUE ('SERVER_TIMEZONE_ID');
5322 ELSE
5323 ln_Param_DatesTZ := Lx_Request_TZone_id;
5324 END IF;
5325
5326 ln_CovTZ := NVL(Lx_Use_TZE_Id, Lx_Def_TZE_Id);
5327
5328 IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11) THEN
5329
5330 Ld_TzCont_Req_Date := Ld_Request_Date;
5331
5332 ELSE
5333
5334 Convert_TimeZone
5335 (P_API_Version => P_API_Version
5336 ,P_Init_Msg_List => P_Init_Msg_List
5337 ,P_Source_Date => Ld_Request_Date
5338 ,P_Source_Tz_Id => ln_Param_DatesTZ
5339 ,P_Dest_Tz_Id => ln_CovTZ
5340 ,X_Dest_Date => Ld_TzCont_Req_Date
5341 ,X_Msg_Count => X_Msg_count
5342 ,X_Msg_Data => X_Msg_Data
5343 ,X_Return_Status => Lx_Return_Status);
5344
5345 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
5346 RAISE L_EXCEP_NO_DATA_FOUND;
5347 END IF;
5348
5349 END IF;
5350
5351 --
5352 --
5353
5354 Validate_Effectivity
5355 (P_Request_Date => Ld_TzCont_Req_Date
5356 ,P_Start_DateTime => Ld_SVL_Start
5357 ,P_End_DateTime => Ld_SVL_EffEnd_Date
5358 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5359 ,P_CL_Msg_TokenValue => 'Service Line'
5360 ,X_Result => Lx_Result
5361 ,X_Return_Status => Lx_Return_Status);
5362
5363 IF Lx_Result <> G_TRUE THEN
5364 RAISE L_EXCEP_NOT_EFFECTIVE;
5365 END IF;
5366
5367 Validate_Effectivity
5368 (P_Request_Date => Ld_TzCont_Req_Date
5369 ,P_Start_DateTime => Ld_CVL_Start
5370 ,P_End_DateTime => Ld_CVL_EffEnd_Date
5371 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5372 ,P_CL_Msg_TokenValue => 'Coverage Line'
5373 ,X_Result => Lx_Result
5374 ,X_Return_Status => Lx_Return_Status);
5375
5376 IF Lx_Result <> G_TRUE THEN
5377 RAISE L_EXCEP_NOT_EFFECTIVE;
5378 END IF;
5379
5380 Validate_Effectivity
5381 (P_Request_Date => Ld_TzCont_Req_Date
5382 ,P_Start_DateTime => Ld_BPL_Start
5383 ,P_End_DateTime => Ld_BPL_EffEnd_Date
5384 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5385 ,P_CL_Msg_TokenValue => 'Business Process Line'
5386 ,X_Result => Lx_Result
5387 ,X_Return_Status => Lx_Return_Status);
5388
5389 IF Lx_Result <> G_TRUE THEN
5390 RAISE L_EXCEP_NOT_EFFECTIVE;
5391 END IF;
5392
5393 Get_BP_Cover_Times
5394 (P_BP_CVTLine_Id => Lx_Use_TZE_Line_Id -- Lx_BP_CVTRule_Id
5395 ,P_Request_Date => Ld_TzCont_Req_Date
5396 ,P_CovDay_DispFmt => 'DY'
5397 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5398 ,X_BP_CovTimes => Lx_BP_CovTimes
5399 ,X_Result => Lx_Result
5400 ,X_Return_Status => Lx_Return_Status);
5401
5402 IF Lx_Result <> G_TRUE THEN
5403 RAISE L_EXCEP_NO_DATA_FOUND;
5404 END IF;
5405
5406
5407 Get_Cover_Day_Attribs
5408 (P_BP_CovTimes => Lx_BP_CovTimes
5409 ,P_Req_Cover_Date => Ld_TzCont_Req_Date --Li_Run_React_Day
5410 ,P_Set_ExcepionStack => G_FALSE
5411 ,P_Check_Day => Lv_Check_Day
5412 ,X_Day_Cover_tbl => Lv_Day_Cover_Tbl
5413 ,X_Result => Lx_Result
5414 ,X_Return_Status => Lx_Return_Status);
5415
5416 IF Lx_Result <> G_TRUE THEN
5417 RAISE L_EXCEP_NO_DATA_FOUND;
5418 END IF;
5419
5420 Lv_DayCov_Idx := Lv_Day_Cover_Tbl.FIRST;
5421
5422 Ld_Day_Cover_From := TO_DATE(TO_CHAR(Ld_TzCont_Req_Date,'YYYYMMDD')||Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_From,'YYYYMMDDHH24MISS');
5423 Ld_Day_Cover_To := TO_DATE(TO_CHAR(Ld_TzCont_Req_Date,'YYYYMMDD')||Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_To,'YYYYMMDDHH24MISS');
5424
5425 Get_Cont_Effective_Dates
5426 (P_SVL_Start => Ld_SVL_Start
5427 ,P_SVL_End => Ld_SVL_EffEnd_Date
5428 ,P_CVL_Start => Ld_CVL_Start
5429 ,P_CVL_End => Ld_CVL_EffEnd_Date
5430 ,P_BPL_Start => Ld_BPL_Start
5431 ,P_BPL_End => Ld_BPL_EffEnd_Date
5432 ,P_RTL_Start => NULL
5433 ,P_RTL_End => NULL
5434 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5435 ,X_Cont_EffStart => Ld_Cont_EffStart
5436 ,X_Cont_EffEnd => Ld_Cont_EffEnd
5437 ,X_Result => Lx_Result
5438 ,X_Return_Status => Lx_Return_Status);
5439
5440 IF Lx_Result <> G_TRUE THEN
5441 RAISE L_EXCEP_NOT_EFFECTIVE;
5442 END IF;
5443
5444 IF Ld_Day_Cover_From > Ld_Cont_EffEnd THEN
5445
5446 Lx_Covered := G_FALSE;
5447 Lx_ExcepionMsg := 'Business Process - Cover Time';
5448
5449 RAISE L_EXCEP_NO_DAY_COVER;
5450
5451 ELSE
5452
5453 IF Ld_Day_Cover_From > Ld_Cont_EffStart THEN
5454 Ld_Day_Cover_EffFrom := Ld_Day_Cover_From;
5455 ELSE
5456 Ld_Day_Cover_EffFrom := Ld_Cont_EffStart;
5457 END IF;
5458
5459 IF Ld_Day_Cover_To < Ld_Cont_EffEnd THEN
5460 Ld_Day_Cover_EffTo := Ld_Day_Cover_To;
5461 ELSE
5462 Ld_Day_Cover_EffTo := Ld_Cont_EffEnd;
5463 END IF;
5464
5465 END IF;
5466
5467 Validate_Effectivity
5468 (P_Request_Date => Ld_TzCont_Req_Date
5469 ,P_Start_DateTime => Ld_Day_Cover_EffFrom
5470 ,P_End_DateTime => Ld_Day_Cover_EffTo
5471 ,P_Set_ExcepionStack => G_FALSE
5472 ,P_CL_Msg_TokenValue => 'Business Process'
5473 ,X_Result => Lx_Result
5474 ,X_Return_Status => Lx_Return_Status);
5475
5476 IF Lx_Result = G_TRUE THEN
5477
5478 Lx_Covered := G_TRUE;
5479
5480 ELSE
5481
5482 Lx_Covered := G_FALSE;
5483
5484 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
5485 RAISE L_EXCEP_UNEXPECTED_ERR;
5486 END IF;
5487
5488 END IF;
5489
5490
5491 --
5492 -- Commented out for 12.0 ENT-TZ project (JVARGHES)
5493 --
5494 --
5495 -- IF Lx_TZE_Mtch_Exists = 'N' then -- 11.5.10 multiple time zone enhancement
5496 --
5497 -- Convert_TimeZone
5498 -- (P_API_Version => P_API_Version
5499 -- ,P_Init_Msg_List => P_Init_Msg_List
5500 -- ,P_Source_Date => Ld_Day_Cover_EffFrom
5501 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
5502 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
5503 -- ,X_Dest_Date => Ld_Tz_Day_Cover_From
5504 -- ,X_Msg_Count => X_Msg_count
5505 -- ,X_Msg_Data => X_Msg_Data
5506 -- ,X_Return_Status => Lx_Return_Status);
5507 --
5508 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
5509 -- RAISE L_EXCEP_NO_DATA_FOUND;
5510 -- END IF;
5511 --
5512 -- Convert_TimeZone
5513 -- (P_API_Version => P_API_Version
5514 -- ,P_Init_Msg_List => P_Init_Msg_List
5515 -- ,P_Source_Date => Ld_Day_Cover_EffTo
5516 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
5517 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
5518 -- ,X_Dest_Date => Ld_Tz_Day_Cover_To
5519 -- ,X_Msg_Count => X_Msg_count
5520 -- ,X_Msg_Data => X_Msg_Data
5521 -- ,X_Return_Status => Lx_Return_Status);
5522 --
5523 --
5524 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
5525 -- RAISE L_EXCEP_NO_DATA_FOUND;
5526 -- END IF;
5527 --
5528 -- ELSE -- 11.5.10 multiple time zone enhancement
5529 --
5530 -- Ld_Tz_Day_Cover_From := Ld_Day_Cover_EffFrom;
5531 -- Ld_Tz_Day_Cover_To := Ld_Day_Cover_EffTo;
5532 --
5533 -- END IF;
5534 --
5535 --
5536 -- Added for 12.0 ENT-TZ project (JVARGHES)
5537 --
5538 IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11) THEN
5539
5540 Ld_Tz_Day_Cover_From := Ld_Day_Cover_EffFrom;
5541 Ld_Tz_Day_Cover_To := Ld_Day_Cover_EffTo;
5542
5543 ELSE
5544
5545 Convert_TimeZone
5546 (P_API_Version => P_API_Version
5547 ,P_Init_Msg_List => P_Init_Msg_List
5548 ,P_Source_Date => Ld_Day_Cover_EffFrom
5549 ,P_Source_Tz_Id => ln_CovTZ
5550 ,P_Dest_Tz_Id => ln_Param_DatesTZ
5551 ,X_Dest_Date => Ld_Tz_Day_Cover_From
5552 ,X_Msg_Count => X_Msg_count
5553 ,X_Msg_Data => X_Msg_Data
5554 ,X_Return_Status => Lx_Return_Status);
5555
5556 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
5557 RAISE L_EXCEP_NO_DATA_FOUND;
5558 END IF;
5559
5560 Convert_TimeZone
5561 (P_API_Version => P_API_Version
5562 ,P_Init_Msg_List => P_Init_Msg_List
5563 ,P_Source_Date => Ld_Day_Cover_EffTo
5564 ,P_Source_Tz_Id => ln_CovTZ
5565 ,P_Dest_Tz_Id => ln_Param_DatesTZ
5566 ,X_Dest_Date => Ld_Tz_Day_Cover_To
5567 ,X_Msg_Count => X_Msg_count
5568 ,X_Msg_Data => X_Msg_Data
5569 ,X_Return_Status => Lx_Return_Status);
5570
5571 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
5572 RAISE L_EXCEP_NO_DATA_FOUND;
5573 END IF;
5574
5575 END IF;
5576
5577 --
5578 --
5579
5580 X_Day_Cover_From := Ld_Tz_Day_Cover_From;
5581 X_Day_Cover_To := Ld_Tz_Day_Cover_To;
5582 X_Covered := Lx_Covered;
5583 X_Result := Lx_Result;
5584 X_Return_Status := Lx_Return_Status;
5585
5586 EXCEPTION
5587
5588 WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_NO_DATA_FOUND OR L_EXCEP_NOT_EFFECTIVE OR L_EXCEP_UNEXPECTED_ERR THEN
5589
5590 X_Result := Lx_Result;
5591 X_Return_Status := Lx_Return_Status;
5592
5593 WHEN L_EXCEP_NO_DAY_COVER THEN
5594
5595 Lx_Result := G_FALSE;
5596
5597 IF Lx_Set_ExcepionStack = G_TRUE THEN
5598
5599 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME_OKC
5600 ,p_msg_name => G_REQUIRED_VALUE
5601 ,p_token1 => G_COL_NAME_TOKEN
5602 ,p_token1_value => Lx_ExcepionMsg);
5603
5604 Lx_Return_Status := G_RET_STS_ERROR;
5605
5606 END IF;
5607
5608 X_Result := Lx_Result;
5609 X_Return_Status := Lx_Return_Status;
5610
5611 WHEN OTHERS THEN
5612
5613 OKC_API.SET_MESSAGE
5614 (P_App_Name => G_APP_NAME_OKC
5615 ,P_Msg_Name => G_UNEXPECTED_ERROR
5616 ,P_Token1 => G_SQLCODE_TOKEN
5617 ,P_Token1_Value => SQLCODE
5618 ,P_Token2 => G_SQLERRM_TOKEN
5619 ,P_Token2_Value => SQLERRM);
5620
5621 OKC_API.SET_MESSAGE
5622 (P_App_Name => G_APP_NAME_OKC
5623 ,P_Msg_Name => G_DEBUG_TOKEN
5624 ,P_Token1 => G_PACKAGE_TOKEN
5625 ,P_Token1_Value => G_PKG_NAME
5626 ,P_Token2 => G_PROGRAM_TOKEN
5627 ,P_Token2_Value => 'Get_Coverage_Times');
5628
5629 X_Result := G_FALSE;
5630 X_Return_Status := G_RET_STS_UNEXP_ERROR;
5631
5632 END Get_Coverage_Times;
5633
5634 -----------------------------------------------------------------------------------------------------------------------*
5635
5636 PROCEDURE Check_Coverage_Times
5637 (P_API_Version IN NUMBER
5638 ,P_Init_Msg_List IN VARCHAR2
5639 ,P_Business_Process_Id IN NUMBER
5640 ,P_Request_Date IN DATE
5641 ,P_Time_Zone_Id IN NUMBER
5642 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
5643 ,P_Contract_Line_Id IN NUMBER
5644 ,X_Return_Status OUT NOCOPY VARCHAR2
5645 ,X_Msg_Count OUT NOCOPY NUMBER
5646 ,X_Msg_Data OUT NOCOPY VARCHAR2
5647 ,X_Covered_YN OUT NOCOPY VARCHAR2)
5648 IS
5649
5650 Ld_Day_Cover_From DATE;
5651 Ld_Day_Cover_To DATE;
5652 Lx_Covered Gx_Boolean;
5653 Lx_Result Gx_Boolean;
5654
5655 BEGIN
5656
5657 Get_Coverage_Times
5658 (P_API_Version => P_API_Version
5659 ,P_Init_Msg_List => P_Init_Msg_List
5660 ,P_SVL_Id => P_Contract_Line_Id
5661 ,P_BusiProc_Id => P_Business_Process_Id
5662 ,P_Request_Date => NVL(P_Request_Date,SYSDATE)
5663 ,P_Request_TZone_id => P_Time_Zone_Id
5664 ,P_Dates_In_Input_TZ => P_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
5665 ,P_Set_ExcepionStack => G_TRUE
5666 ,X_Day_Cover_From => Ld_Day_Cover_From
5667 ,X_Day_Cover_To => Ld_Day_Cover_To
5668 ,X_Covered => Lx_Covered
5669 ,X_Msg_Count => X_Msg_Count
5670 ,X_Msg_Data => X_Msg_Data
5671 ,X_Result => Lx_Result
5672 ,X_Return_Status => X_Return_Status);
5673
5674 IF Lx_Covered = G_TRUE THEN
5675 X_Covered_YN := G_YES;
5676 ELSE
5677 X_Covered_YN := G_NO;
5678 END IF;
5679
5680
5681 EXCEPTION
5682
5683 WHEN OTHERS THEN
5684
5685 OKC_API.SET_MESSAGE
5686 (P_App_Name => G_APP_NAME_OKC
5687 ,P_Msg_Name => G_UNEXPECTED_ERROR
5688 ,P_Token1 => G_SQLCODE_TOKEN
5689 ,P_Token1_Value => SQLCODE
5690 ,P_Token2 => G_SQLERRM_TOKEN
5691 ,P_Token2_Value => SQLERRM);
5692
5693 OKC_API.SET_MESSAGE
5694 (P_App_Name => G_APP_NAME_OKC
5695 ,P_Msg_Name => G_DEBUG_TOKEN
5696 ,P_Token1 => G_PACKAGE_TOKEN
5697 ,P_Token1_Value => G_PKG_NAME
5698 ,P_Token2 => G_PROGRAM_TOKEN
5699 ,P_Token2_Value => 'Check_Coverage_Times');
5700
5701 --X_Result := G_FALSE;
5702 X_Return_Status := G_RET_STS_UNEXP_ERROR;
5703
5704 END Check_Coverage_Times;
5705
5706 -----------------------------------------------------------------------------------------------------------------------*
5707
5708 PROCEDURE Get_Contract_Header_Details
5709 (P_API_Version IN NUMBER
5710 ,P_Init_Msg_List IN VARCHAR2
5711 ,P_Chr_Id IN Gx_OKS_Id
5712 ,P_Chr_Sts_Code IN Gx_Chr_StsCode
5713 ,P_Chr_Type IN Gx_Chr_Type
5714 ,P_Chr_EndDate IN DATE
5715 ,P_Chr_PartyId IN Gx_Chr_PartyId
5716 ,X_Contract_Headers OUT NOCOPY Hdr_Tbl_Type
5717 ,X_Msg_Count OUT NOCOPY NUMBER
5718 ,X_Msg_Data OUT NOCOPY VARCHAR2
5719 ,X_Result out nocopy Gx_Boolean
5720 ,X_Return_Status out nocopy Gx_Ret_Sts)
5721 IS
5722
5723
5724
5725 CURSOR Lx_Csr_Chr(Cx_Chr_Id IN Gx_OKS_Id, Cx_Chr_Sts_Code IN Gx_Chr_StsCode, Cx_Chr_Type IN Gx_Chr_Type
5726 ,Cd_Chr_EndDate IN DATE, Cx_Chr_PartyId IN Gx_Chr_PartyId) IS
5727 SELECT AUTHORING_ORG_ID
5728 ,HDR.ID
5729 ,HDR.CONTRACT_NUMBER
5730 ,HDR.CONTRACT_NUMBER_MODIFIER
5731 ,HDT.SHORT_DESCRIPTION
5732 ,HDR.STS_CODE
5733 ,HDR.CHR_TYPE
5734 ,HDR.TEMPLATE_YN
5735 ,HDR.TEMPLATE_USED
5736 ,HDR.START_DATE
5737 ,Get_End_Date_Time(HDR.END_DATE) End_Date
5738 ,HDR.CHR_ID_AWARD
5739 ,HDR.CUST_PO_NUMBER
5740 ,HDR.AUTO_RENEW_DAYS
5741 ,HDR.QCL_ID
5742 ,HDR.ESTIMATED_AMOUNT -- 11.5.10 changes
5743 ,PTY.OBJECT1_ID1 PARTY_ID
5744 ,HDR.bill_to_site_use_id bill_to_site_use_id -- 11.5.10 changes
5745 ,HDR.ship_to_site_use_id ship_to_site_use_id -- 11.5.10 changes
5746 ,HDR.currency_code currency_code -- 11.5.10 changes
5747 ,OKSHDR.acct_rule_id acct_rule_id -- 11.5.10 changes
5748 ,HDR.inv_rule_id inv_rule_id -- 11.5.10 changes
5749 ,HDR.payment_term_id payment_term_id -- 11.5.10 changes
5750 ,OKSHDR.billing_profile_id billing_profile_id -- 11.5.10 changes
5751 ,OKSHDR.tax_exemption_id tax_exemption_id -- 11.5.10 changes
5752 ,OKSHDR.tax_status tax_status -- 11.5.10 changes
5753 ,HDR.conversion_type conversion_type -- 11.5.10 changes
5754 FROM OKC_K_PARTY_ROLES_B PTY
5755 ,OKC_K_HEADERS_TL HDT
5756 ,OKC_K_HEADERS_ALL_B HDR --,OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
5757 ,OKS_K_HEADERS_B OKSHDR -- 11.5.10 changes
5758 WHERE HDR.ID = NVL(Cx_Chr_Id,HDR.ID)
5759 AND HDR.END_DATE = NVL(Cd_Chr_EndDate,HDR.END_DATE)
5760 AND HDR.STS_CODE = NVL(Cx_Chr_Sts_Code,HDR.STS_CODE)
5761 AND HDR.CHR_TYPE = NVL(Cx_Chr_Type,HDR.CHR_TYPE)
5762 AND HDR.START_DATE IS NOT NULL
5763 AND HDR.END_DATE IS NOT NULL
5764 AND HDR.TEMPLATE_YN = G_NO
5765 AND HDT.ID = HDR.ID
5766 AND HDT.LANGUAGE = USERENV('LANG')
5767 AND PTY.CHR_ID = HDR.ID
5768 AND PTY.OBJECT1_ID1 = NVL(Cx_Chr_PartyId, PTY.OBJECT1_ID1)
5769 AND HDR.ID = OKSHDR.CHR_ID
5770 AND PTY.JTOT_OBJECT1_CODE = G_JTOT_OBJ_PARTY;
5771
5772
5773 Lx_Chr_Id CONSTANT Gx_OKS_Id := P_Chr_Id;
5774 Lx_Chr_Sts_Code CONSTANT Gx_Chr_StsCode := P_Chr_Sts_Code;
5775 Lx_Chr_Type CONSTANT Gx_Chr_Type := P_Chr_Type;
5776 Ld_Chr_EndDate CONSTANT DATE := P_Chr_EndDate;
5777 Lx_Chr_PartyId CONSTANT Gx_Chr_PartyId := P_Chr_PartyId;
5778
5779 Lx_Contract_Headers Hdr_Tbl_Type;
5780 Lx_Result Gx_Boolean;
5781 Lx_Return_Status Gx_Ret_Sts;
5782
5783 Li_TableIdx BINARY_INTEGER;
5784
5785 BEGIN
5786
5787 Lx_Result := G_TRUE;
5788 Lx_Return_Status := G_RET_STS_SUCCESS;
5789
5790 Li_TableIdx := 0;
5791
5792 FOR Idx IN Lx_Csr_Chr(Lx_Chr_Id, Lx_Chr_Sts_Code, Lx_Chr_Type, Ld_Chr_EndDate, Lx_Chr_PartyId ) LOOP
5793
5794 Li_TableIdx := Li_TableIdx + 1;
5795
5796 Lx_Contract_Headers(Li_TableIdx).Org_Id := Idx.Authoring_Org_Id;
5797 Lx_Contract_Headers(Li_TableIdx).Contract_Id := Idx.Id;
5798 Lx_Contract_Headers(Li_TableIdx).Contract_Number := Idx.Contract_Number;
5799 Lx_Contract_Headers(Li_TableIdx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
5800 Lx_Contract_Headers(Li_TableIdx).Short_Description := Idx.Short_Description;
5801 Lx_Contract_Headers(Li_TableIdx).Contract_Amount := Idx.Estimated_amount; --11.5.10 changes..OKS_ENT_UTIL_PVT.Get_Contract_Amount(Idx.Id);
5802 Lx_Contract_Headers(Li_TableIdx).Contract_Status_Code := Idx.Sts_Code;
5803 Lx_Contract_Headers(Li_TableIdx).Contract_Type := Idx.Chr_Type;
5804 Lx_Contract_Headers(Li_TableIdx).Party_Id := TO_NUMBER(Idx.Party_Id);
5805 Lx_Contract_Headers(Li_TableIdx).Template_YN := Idx.Template_YN;
5806 Lx_Contract_Headers(Li_TableIdx).Template_Used := Idx.Template_Used;
5807 Lx_Contract_Headers(Li_TableIdx).Duration := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
5808 (Idx.Start_Date,Idx.End_Date,'D'));
5809 Lx_Contract_Headers(Li_TableIdx).Period_Code := OKS_ENT_UTIL_PVT.Get_Duration_Period
5810 (Idx.Start_Date,Idx.End_Date,'P');
5811 Lx_Contract_Headers(Li_TableIdx).Start_Date_Active := Idx.Start_Date;
5812 Lx_Contract_Headers(Li_TableIdx).End_Date_Active := Idx.End_Date;
5813 Lx_Contract_Headers(Li_TableIdx).Bill_To_Site_Use_Id := Idx.bill_to_site_use_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto(Idx.Id,NULL,'OKX_BILLTO')); --from okc_k_headers_b
5814 Lx_Contract_Headers(Li_TableIdx).Ship_To_Site_Use_Id := Idx.ship_to_site_use_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto(Idx.Id,NULL,'OKX_SHIPTO')); --from okc_k_headers_b
5815 Lx_Contract_Headers(Li_TableIdx).Agreement_Id := OKS_ENT_UTIL_PVT.Get_Agreement(Idx.Id);
5816 Lx_Contract_Headers(Li_TableIdx).Price_List_Id := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(Idx.Id,NULL,'P')); --from okc_k_headers_b.price_list_id
5817 Lx_Contract_Headers(Li_TableIdx).Modifier := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Discount(Idx.Id,NULL));
5818 Lx_Contract_Headers(Li_TableIdx).Currency_Code := Idx.Currency_code; --SUBSTR(OKS_ENT_UTIL_PVT.Get_PriceList(Idx.Id,NULL,'C'),1,30); -- from okc_k_headers_b.currency_code
5819 Lx_Contract_Headers(Li_TableIdx).Accounting_Rule_Id := Idx.acct_rule_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Acc_Rule(Idx.Id,NULL)); -- oks_k_headers_b.acct_rule_id
5820 Lx_Contract_Headers(Li_TableIdx).Invoicing_Rule_Id := Idx.inv_rule_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Inv_Rule(Idx.Id,NULL)); -- okc_k_headers_b.inv_rule_id
5821 Lx_Contract_Headers(Li_TableIdx).Terms_Id := Idx.payment_term_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Terms(Idx.Id,NULL)); --okc_k_headers_b.payment_term_id
5822 Lx_Contract_Headers(Li_TableIdx).PO_Number := Idx.Cust_PO_Number;
5823 Lx_Contract_Headers(Li_TableIdx).Billing_Profile_Id := Idx.Billing_profile_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingProfile(Idx.Id,NULL)); --oks_k_header_b.billing_profile_id
5824 Lx_Contract_Headers(Li_TableIdx).Billing_Frequency := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(Idx.Id,NULL,'F'),1,25); --null
5825 Lx_Contract_Headers(Li_TableIdx).Billing_Method := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(Idx.Id,NULL,'M'),1,3); --null
5826 Lx_Contract_Headers(Li_TableIdx).Regular_Offset_Days := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingSchedule(Idx.Id,NULL,'R'));--null
5827 Lx_Contract_Headers(Li_TableIdx).First_Bill_To := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5828 --(Idx.Id,NULL,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
5829 Lx_Contract_Headers(Li_TableIdx).First_Bill_On := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5830 ---(Idx.Id,NULL,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
5831 Lx_Contract_Headers(Li_TableIdx).Auto_Renew_Before_Days := Idx.Auto_Renew_Days;
5832 Lx_Contract_Headers(Li_TableIdx).QA_Check_List_Id := Idx.Qcl_Id;
5833 Lx_Contract_Headers(Li_TableIdx).Renewal_Note := OKS_ENT_UTIL_PVT.Get_RenterNotes(Idx.Id,'RENEW');
5834 Lx_Contract_Headers(Li_TableIdx).Termination_Note := OKS_ENT_UTIL_PVT.Get_RenterNotes(Idx.Id,'TER');
5835 Lx_Contract_Headers(Li_TableIdx).Tax_Exemption := Idx.tax_exemption_id; --OKS_ENT_UTIL_PVT.Get_TaxRule(Idx.Id,'TE'); --oks_k_headers_b.tax_exemption_id
5836 Lx_Contract_Headers(Li_TableIdx).Tax_Status := Idx.tax_status; --OKS_ENT_UTIL_PVT.Get_TaxRule(Idx.Id,'TS'); --oks_k_headers_b.tax_status
5837 Lx_Contract_Headers(Li_TableIdx).Conversion_Type := Idx.conversion_type; --OKS_ENT_UTIL_PVT.Get_ConvRule(Idx.Id); --okc_k_headers_b.conversion_type
5838
5839 END LOOP;
5840
5841 X_Contract_Headers := Lx_Contract_Headers;
5842 X_Result := Lx_Result;
5843 X_Return_Status := Lx_Return_Status;
5844
5845 EXCEPTION
5846
5847 WHEN OTHERS THEN
5848
5849 OKC_API.SET_MESSAGE
5850 (P_App_Name => G_APP_NAME_OKC
5851 ,P_Msg_Name => G_UNEXPECTED_ERROR
5852 ,P_Token1 => G_SQLCODE_TOKEN
5853 ,P_Token1_Value => SQLCODE
5854 ,P_Token2 => G_SQLERRM_TOKEN
5855 ,P_Token2_Value => SQLERRM);
5856
5857 OKC_API.SET_MESSAGE
5858 (P_App_Name => G_APP_NAME_OKC
5859 ,P_Msg_Name => G_DEBUG_TOKEN
5860 ,P_Token1 => G_PACKAGE_TOKEN
5861 ,P_Token1_Value => G_PKG_NAME
5862 ,P_Token2 => G_PROGRAM_TOKEN
5863 ,P_Token2_Value => 'Get_Contract_Header_Details');
5864
5865 X_Result := G_FALSE;
5866 X_Return_Status := G_RET_STS_UNEXP_ERROR;
5867
5868 END Get_Contract_Header_Details;
5869
5870 -----------------------------------------------------------------------------------------------------------------------*
5871
5872 PROCEDURE Get_All_Contracts
5873 (P_API_Version IN NUMBER
5874 ,P_Init_Msg_List IN VARCHAR2
5875 ,P_Inp_Rec IN Inp_Rec_Type
5876 ,X_Return_Status out nocopy VARCHAR2
5877 ,X_Msg_Count out nocopy NUMBER
5878 ,X_Msg_Data out nocopy VARCHAR2
5879 ,X_All_Contracts out nocopy Hdr_Tbl_Type)
5880 IS
5881
5882 Lx_Result Gx_Boolean;
5883 Lx_Inp_Rec Inp_Rec_Type;
5884
5885 BEGIN
5886
5887 Lx_Inp_Rec := P_Inp_Rec;
5888
5889 Get_Contract_Header_Details
5890 (P_API_Version => P_API_Version
5891 ,P_Init_Msg_List => P_Init_Msg_List
5892 ,P_Chr_Id => Lx_Inp_Rec.Contract_Id
5893 ,P_Chr_Sts_Code => Lx_Inp_Rec.Contract_Status_Code
5894 ,P_Chr_Type => Lx_Inp_Rec.Contract_Type_Code
5895 ,P_Chr_EndDate => Lx_Inp_Rec.End_Date_Active
5896 ,P_Chr_PartyId => Lx_Inp_Rec.Party_Id
5897 ,X_Contract_Headers => X_All_Contracts
5898 ,X_Msg_Count => X_Msg_Count
5899 ,X_Msg_Data => X_Msg_Data
5900 ,X_Result => Lx_Result
5901 ,X_Return_Status => X_Return_Status);
5902
5903 EXCEPTION
5904
5905 WHEN OTHERS THEN
5906
5907 OKC_API.SET_MESSAGE
5908 (P_App_Name => G_APP_NAME_OKC
5909 ,P_Msg_Name => G_UNEXPECTED_ERROR
5910 ,P_Token1 => G_SQLCODE_TOKEN
5911 ,P_Token1_Value => SQLCODE
5912 ,P_Token2 => G_SQLERRM_TOKEN
5913 ,P_Token2_Value => SQLERRM);
5914
5915 OKC_API.SET_MESSAGE
5916 (P_App_Name => G_APP_NAME_OKC
5917 ,P_Msg_Name => G_DEBUG_TOKEN
5918 ,P_Token1 => G_PACKAGE_TOKEN
5919 ,P_Token1_Value => G_PKG_NAME
5920 ,P_Token2 => G_PROGRAM_TOKEN
5921 ,P_Token2_Value => 'Get_All_Contracts');
5922
5923 --X_Result := G_FALSE;
5924 X_Return_Status := G_RET_STS_UNEXP_ERROR;
5925
5926 END Get_All_Contracts;
5927
5928 -----------------------------------------------------------------------------------------------------------------------*
5929
5930 PROCEDURE Get_Contract_Line_Details
5931 (P_API_Version IN NUMBER
5932 ,P_Init_Msg_List IN VARCHAR2
5933 ,P_Cle_Id IN Gx_OKS_Id
5934 ,X_Contract_Lines OUT NOCOPY Line_Tbl_Type
5935 ,X_Msg_Count OUT NOCOPY NUMBER
5936 ,X_Msg_Data OUT NOCOPY VARCHAR2
5937 ,X_Result out nocopy Gx_Boolean
5938 ,X_Return_Status out nocopy Gx_Ret_Sts)
5939 IS
5940
5941 CURSOR Lx_Csr_Cle(Cx_Cle_Id IN Gx_OKS_Id) IS
5942 SELECT LIN.ID
5943 ,LIN.CLE_ID
5944 ,LIN.DNZ_CHR_ID
5945 ,LIN.STS_CODE
5946 ,LIN.START_DATE
5947 ,Get_End_Date_Time(LIN.END_DATE) End_Date
5948 ,Get_End_Date_Time(LIN.DATE_TERMINATED) Date_Terminated
5949 ,LIN.PRICE_NEGOTIATED
5950 ,STL.NAME
5951 ,LIN.bill_to_site_use_id bill_to_site_use_id -- 11.5.10 changes
5952 ,LIN.ship_to_site_use_id ship_to_site_use_id -- 11.5.10 changes
5953 ,OKSLIN.discount_list discount_list -- 11.5.10 changes
5954 ,LIN.price_list_id price_list_id -- 11.5.10 changes
5955 FROM OKC_K_HEADERS_ALL_B HDR -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
5956 ,OKC_LINE_STYLES_V STL
5957 ,OKC_K_LINES_B LIN
5958 ,OKS_K_LINES_B OKSLIN -- 11.5.10 changes
5959 WHERE LIN.ID = Cx_Cle_Id --Commented by Jvorugan NVL(Cx_Cle_Id, LIN.ID)
5960 AND LIN.START_DATE IS NOT NULL
5961 AND LIN.END_DATE IS NOT NULL
5962 AND STL.ID = LIN.LSE_ID
5963 AND HDR.ID = LIN.DNZ_CHR_ID
5964 AND HDR.TEMPLATE_YN = G_NO
5965 AND OKSLIN.CLE_ID = LIN.Id;
5966
5967 -- Added by Jvorugan for Bug:4998337
5968 CURSOR Lx_Csr_noCle IS
5969 SELECT LIN.ID
5970 ,LIN.CLE_ID
5971 ,LIN.DNZ_CHR_ID
5972 ,LIN.STS_CODE
5973 ,LIN.START_DATE
5974 ,Get_End_Date_Time(LIN.END_DATE) End_Date
5975 ,Get_End_Date_Time(LIN.DATE_TERMINATED) Date_Terminated
5976 ,LIN.PRICE_NEGOTIATED
5977 ,STL.NAME
5978 ,LIN.bill_to_site_use_id bill_to_site_use_id -- 11.5.10 changes
5979 ,LIN.ship_to_site_use_id ship_to_site_use_id -- 11.5.10 changes
5980 ,OKSLIN.discount_list discount_list -- 11.5.10 changes
5981 ,LIN.price_list_id price_list_id -- 11.5.10 changes
5982 FROM OKC_K_HEADERS_ALL_B HDR -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
5983 ,OKC_LINE_STYLES_V STL
5984 ,OKC_K_LINES_B LIN
5985 ,OKS_K_LINES_B OKSLIN -- 11.5.10 changes
5986 WHERE -- LIN.ID = NVL(Cx_Cle_Id, LIN.ID)
5987 LIN.START_DATE IS NOT NULL
5988 AND LIN.END_DATE IS NOT NULL
5989 AND STL.ID = LIN.LSE_ID
5990 AND HDR.ID = LIN.DNZ_CHR_ID
5991 AND HDR.TEMPLATE_YN = G_NO
5992 AND OKSLIN.CLE_ID = LIN.Id;
5993
5994
5995 Lx_Cle_Id CONSTANT Gx_OKS_Id := P_Cle_Id;
5996
5997 Lx_Contract_Lines Line_Tbl_Type;
5998 Lx_Result Gx_Boolean;
5999 Lx_Return_Status Gx_Ret_Sts;
6000
6001 Li_TableIdx BINARY_INTEGER;
6002
6003 BEGIN
6004
6005 Lx_Result := G_TRUE;
6006 Lx_Return_Status := G_RET_STS_SUCCESS;
6007
6008 Li_TableIdx := 0;
6009
6010 /* Added by Jvorugan for perf bug:4998337.
6011 If lx_cle_id is not null then only passing the value.
6012 This is to avoid full table scan on okc_k_headers_all_b, okc_k_lines_b, oks_k_lines_b
6013 */
6014
6015 IF Lx_Cle_Id IS NULL
6016 THEN
6017 FOR Idx IN Lx_Csr_noCle LOOP
6018
6019 Li_TableIdx := Li_TableIdx + 1;
6020
6021 Lx_Contract_Lines(Li_TableIdx).Contract_Line_Id := Idx.Id;
6022 Lx_Contract_Lines(Li_TableIdx).Contract_Parent_Line_Id := Idx.Cle_Id;
6023 Lx_Contract_Lines(Li_TableIdx).Contract_Id := Idx.Dnz_Chr_Id;
6024 Lx_Contract_Lines(Li_TableIdx).Line_Status_Code := Idx.Sts_Code;
6025 Lx_Contract_Lines(Li_TableIdx).Duration := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
6026 (Idx.Start_Date,Idx.End_Date,'D'));
6027 Lx_Contract_Lines(Li_TableIdx).Period_Code := OKS_ENT_UTIL_PVT.Get_Duration_Period
6028 (Idx.Start_Date,Idx.End_Date,'P');
6029 Lx_Contract_Lines(Li_TableIdx).Start_Date_Active := Idx.Start_Date;
6030 Lx_Contract_Lines(Li_TableIdx).End_Date_Active := Idx.End_Date;
6031 Lx_Contract_Lines(Li_TableIdx).Line_Name := Idx.Name;
6032 Lx_Contract_Lines(Li_TableIdx).Bill_To_Site_Use_Id := Idx.Bill_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6033 --(NULL,Idx.Id,'OKX_BILLTO')); -- okc_k_lines_b.bill_to_site_use_id
6034 Lx_Contract_Lines(Li_TableIdx).Ship_To_Site_Use_Id := Idx.Ship_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6035 --(NULL,Idx.Id,'OKX_SHIPTO')); --okc_k_lines_b.ship_to_site_use_id
6036 Lx_Contract_Lines(Li_TableIdx).Modifier := Idx.discount_list; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Discount(NULL,Idx.Id)); --oks_k_lines_b.discount_list
6037 Lx_Contract_Lines(Li_TableIdx).Price_List_Id := Idx.price_list_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P')); --okc_k_lines_b.price_list_id
6038 Lx_Contract_Lines(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
6039 Lx_Contract_Lines(Li_TableIdx).Billing_Profile_Id := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingProfile(NULL,Idx.Id)); --null
6040 Lx_Contract_Lines(Li_TableIdx).Billing_Frequency := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'F'),1,25); --null
6041 Lx_Contract_Lines(Li_TableIdx).Billing_Method := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'M'),1,3); --null
6042 Lx_Contract_Lines(Li_TableIdx).Regular_Offset_Days := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'R')); --null
6043 Lx_Contract_Lines(Li_TableIdx).First_Bill_To := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6044 --(NULL,Idx.Id,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
6045 Lx_Contract_Lines(Li_TableIdx).First_Bill_On := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6046 --(NULL,Idx.Id,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
6047 Lx_Contract_Lines(Li_TableIdx).Termination_Date := Idx.Date_Terminated;
6048
6049 END LOOP;
6050
6051 ELSE
6052
6053 FOR Idx IN Lx_Csr_Cle(Lx_Cle_Id) LOOP
6054
6055 Li_TableIdx := Li_TableIdx + 1;
6056
6057 Lx_Contract_Lines(Li_TableIdx).Contract_Line_Id := Idx.Id;
6058 Lx_Contract_Lines(Li_TableIdx).Contract_Parent_Line_Id := Idx.Cle_Id;
6059 Lx_Contract_Lines(Li_TableIdx).Contract_Id := Idx.Dnz_Chr_Id;
6060 Lx_Contract_Lines(Li_TableIdx).Line_Status_Code := Idx.Sts_Code;
6061 Lx_Contract_Lines(Li_TableIdx).Duration := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
6062 (Idx.Start_Date,Idx.End_Date,'D'));
6063 Lx_Contract_Lines(Li_TableIdx).Period_Code := OKS_ENT_UTIL_PVT.Get_Duration_Period
6064 (Idx.Start_Date,Idx.End_Date,'P');
6065 Lx_Contract_Lines(Li_TableIdx).Start_Date_Active := Idx.Start_Date;
6066 Lx_Contract_Lines(Li_TableIdx).End_Date_Active := Idx.End_Date;
6067 Lx_Contract_Lines(Li_TableIdx).Line_Name := Idx.Name;
6068 Lx_Contract_Lines(Li_TableIdx).Bill_To_Site_Use_Id := Idx.Bill_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6069 --(NULL,Idx.Id,'OKX_BILLTO')); -- okc_k_lines_b.bill_to_site_use_id
6070 Lx_Contract_Lines(Li_TableIdx).Ship_To_Site_Use_Id := Idx.Ship_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6071 --(NULL,Idx.Id,'OKX_SHIPTO')); --okc_k_lines_b.ship_to_site_use_id
6072 Lx_Contract_Lines(Li_TableIdx).Modifier := Idx.discount_list; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Discount(NULL,Idx.Id)); --oks_k_lines_b.discount_list
6073 Lx_Contract_Lines(Li_TableIdx).Price_List_Id := Idx.price_list_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P')); --okc_k_lines_b.price_list_id
6074 Lx_Contract_Lines(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
6075 Lx_Contract_Lines(Li_TableIdx).Billing_Profile_Id := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingProfile(NULL,Idx.Id)); --null
6076 Lx_Contract_Lines(Li_TableIdx).Billing_Frequency := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'F'),1,25); --null
6077 Lx_Contract_Lines(Li_TableIdx).Billing_Method := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'M'),1,3); --null
6078 Lx_Contract_Lines(Li_TableIdx).Regular_Offset_Days := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'R')); --null
6079 Lx_Contract_Lines(Li_TableIdx).First_Bill_To := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6080 --(NULL,Idx.Id,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
6081 Lx_Contract_Lines(Li_TableIdx).First_Bill_On := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6082 --(NULL,Idx.Id,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
6083 Lx_Contract_Lines(Li_TableIdx).Termination_Date := Idx.Date_Terminated;
6084
6085 END LOOP;
6086
6087 END IF; -- lx_Cle_id is null
6088
6089 /* Commented by Jvorugan for Bug:4998337
6090 FOR Idx IN Lx_Csr_Cle(Lx_Cle_Id) LOOP
6091
6092 Li_TableIdx := Li_TableIdx + 1;
6093
6094 Lx_Contract_Lines(Li_TableIdx).Contract_Line_Id := Idx.Id;
6095 Lx_Contract_Lines(Li_TableIdx).Contract_Parent_Line_Id := Idx.Cle_Id;
6096 Lx_Contract_Lines(Li_TableIdx).Contract_Id := Idx.Dnz_Chr_Id;
6097 Lx_Contract_Lines(Li_TableIdx).Line_Status_Code := Idx.Sts_Code;
6098 Lx_Contract_Lines(Li_TableIdx).Duration := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
6099 (Idx.Start_Date,Idx.End_Date,'D'));
6100 Lx_Contract_Lines(Li_TableIdx).Period_Code := OKS_ENT_UTIL_PVT.Get_Duration_Period
6101 (Idx.Start_Date,Idx.End_Date,'P');
6102 Lx_Contract_Lines(Li_TableIdx).Start_Date_Active := Idx.Start_Date;
6103 Lx_Contract_Lines(Li_TableIdx).End_Date_Active := Idx.End_Date;
6104 Lx_Contract_Lines(Li_TableIdx).Line_Name := Idx.Name;
6105 Lx_Contract_Lines(Li_TableIdx).Bill_To_Site_Use_Id := Idx.Bill_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6106 --(NULL,Idx.Id,'OKX_BILLTO')); -- okc_k_lines_b.bill_to_site_use_id
6107 Lx_Contract_Lines(Li_TableIdx).Ship_To_Site_Use_Id := Idx.Ship_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6108 --(NULL,Idx.Id,'OKX_SHIPTO')); --okc_k_lines_b.ship_to_site_use_id
6109 Lx_Contract_Lines(Li_TableIdx).Modifier := Idx.discount_list; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Discount(NULL,Idx.Id)); --oks_k_lines_b.discount_list
6110 Lx_Contract_Lines(Li_TableIdx).Price_List_Id := Idx.price_list_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P')); --okc_k_lines_b.price_list_id
6111 Lx_Contract_Lines(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
6112 Lx_Contract_Lines(Li_TableIdx).Billing_Profile_Id := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingProfile(NULL,Idx.Id)); --null
6113 Lx_Contract_Lines(Li_TableIdx).Billing_Frequency := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'F'),1,25); --null
6114 Lx_Contract_Lines(Li_TableIdx).Billing_Method := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'M'),1,3); --null
6115 Lx_Contract_Lines(Li_TableIdx).Regular_Offset_Days := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'R')); --null
6116 Lx_Contract_Lines(Li_TableIdx).First_Bill_To := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6117 --(NULL,Idx.Id,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
6118 Lx_Contract_Lines(Li_TableIdx).First_Bill_On := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6119 --(NULL,Idx.Id,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
6120 Lx_Contract_Lines(Li_TableIdx).Termination_Date := Idx.Date_Terminated;
6121
6122 END LOOP;
6123
6124 */
6125
6126 X_Contract_Lines := Lx_Contract_Lines;
6127 X_Result := Lx_Result;
6128 X_Return_Status := Lx_Return_Status;
6129
6130 EXCEPTION
6131
6132 WHEN OTHERS THEN
6133
6134 OKC_API.SET_MESSAGE
6135 (P_App_Name => G_APP_NAME_OKC
6136 ,P_Msg_Name => G_UNEXPECTED_ERROR
6137 ,P_Token1 => G_SQLCODE_TOKEN
6138 ,P_Token1_Value => SQLCODE
6139 ,P_Token2 => G_SQLERRM_TOKEN
6140 ,P_Token2_Value => SQLERRM);
6141
6142 OKC_API.SET_MESSAGE
6143 (P_App_Name => G_APP_NAME_OKC
6144 ,P_Msg_Name => G_DEBUG_TOKEN
6145 ,P_Token1 => G_PACKAGE_TOKEN
6146 ,P_Token1_Value => G_PKG_NAME
6147 ,P_Token2 => G_PROGRAM_TOKEN
6148 ,P_Token2_Value => 'Get_Contract_Line_Details');
6149
6150 X_Result := G_FALSE;
6151 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6152
6153 END Get_Contract_Line_Details;
6154
6155 -----------------------------------------------------------------------------------------------------------------------*
6156
6157 PROCEDURE Get_Contract_Details
6158 (P_API_Version IN NUMBER
6159 ,P_Init_Msg_List IN VARCHAR2
6160 ,P_Contract_Line_Id IN NUMBER
6161 ,X_Return_Status OUT NOCOPY VARCHAR2
6162 ,X_Msg_Count OUT NOCOPY NUMBER
6163 ,X_Msg_Data OUT NOCOPY VARCHAR2
6164 ,X_All_Lines OUT NOCOPY Line_Tbl_Type)
6165 IS
6166
6167 Lx_Result Gx_Boolean;
6168
6169 BEGIN
6170
6171 Get_Contract_Line_Details
6172 (P_API_Version => P_API_Version
6173 ,P_Init_Msg_List => P_Init_Msg_List
6174 ,P_Cle_Id => P_Contract_Line_Id
6175 ,X_Contract_Lines => X_All_Lines
6176 ,X_Msg_Count => X_Msg_Count
6177 ,X_Msg_Data => X_Msg_Data
6178 ,X_Result => Lx_Result
6179 ,X_Return_Status => X_Return_Status);
6180
6181 EXCEPTION
6182
6183 WHEN OTHERS THEN
6184
6185 OKC_API.SET_MESSAGE
6186 (P_App_Name => G_APP_NAME_OKC
6187 ,P_Msg_Name => G_UNEXPECTED_ERROR
6188 ,P_Token1 => G_SQLCODE_TOKEN
6189 ,P_Token1_Value => SQLCODE
6190 ,P_Token2 => G_SQLERRM_TOKEN
6191 ,P_Token2_Value => SQLERRM);
6192
6193 OKC_API.SET_MESSAGE
6194 (P_App_Name => G_APP_NAME_OKC
6195 ,P_Msg_Name => G_DEBUG_TOKEN
6196 ,P_Token1 => G_PACKAGE_TOKEN
6197 ,P_Token1_Value => G_PKG_NAME
6198 ,P_Token2 => G_PROGRAM_TOKEN
6199 ,P_Token2_Value => 'Get_Contract_Details');
6200
6201 --X_Result := G_FALSE;
6202 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6203
6204 END Get_Contract_Details;
6205
6206 -----------------------------------------------------------------------------------------------------------------------*
6207
6208 PROCEDURE Get_Coverage_Level_Details
6209 (P_API_Version IN NUMBER
6210 ,P_Init_Msg_List IN VARCHAR2
6211 ,P_Cle_Id IN Gx_OKS_Id
6212 ,X_Covered_Levels out nocopy Clvl_Tbl_Type
6213 ,X_Msg_Count OUT NOCOPY NUMBER
6214 ,X_Msg_Data OUT NOCOPY VARCHAR2
6215 ,X_Result out nocopy Gx_Boolean
6216 ,X_Return_Status out nocopy Gx_Ret_Sts)
6217 IS
6218
6219 CURSOR Lx_Csr_CovLvl(Cx_Cle_Id IN Gx_OKS_Id) IS
6220 SELECT LIN.ROWID
6221 ,LIN.ID
6222 ,LIN.DNZ_CHR_ID
6223 ,LIN.CLE_ID
6224 ,LIN.PRICE_NEGOTIATED
6225 ,STL.NAME
6226 ,HDR.AUTHORING_ORG_ID ORG_ID
6227 ,HDR.INV_ORGANIZATION_ID ORGANIZATION_ID
6228 FROM OKC_K_HEADERS_ALL_B HDR -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
6229 ,OKC_LINE_STYLES_V STL
6230 ,OKC_K_LINES_B LIN
6231 ,OKS_K_LINES_B OKSLIN --11.5.10 changes
6232 WHERE LIN.ID = Cx_Cle_Id -- COmmented by Jvorugan for bug:4998337 NVL(Cx_Cle_Id, LIN.ID)
6233 AND LIN.LSE_ID IN (7, 8, 9, 10, 11, 13, 18, 25, 35)
6234 AND STL.ID = LIN.LSE_ID
6235 AND HDR.ID = LIN.DNZ_CHR_ID
6236 AND OKSLIN.CLE_ID = LIN.ID;
6237
6238 -- Added by Jvorugan for perf bug:4998337
6239 CURSOR Lx_Csr_CovLvl_noCle_id IS
6240 SELECT LIN.ROWID
6241 ,LIN.ID
6242 ,LIN.DNZ_CHR_ID
6243 ,LIN.CLE_ID
6244 ,LIN.PRICE_NEGOTIATED
6245 ,STL.NAME
6246 ,HDR.AUTHORING_ORG_ID ORG_ID
6247 ,HDR.INV_ORGANIZATION_ID ORGANIZATION_ID
6248 FROM OKC_K_HEADERS_ALL_B HDR -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
6249 ,OKC_LINE_STYLES_V STL
6250 ,OKC_K_LINES_B LIN
6251 ,OKS_K_LINES_B OKSLIN --11.5.10 changes
6252 WHERE -- LIN.ID = NVL(Cx_Cle_Id, LIN.ID)
6253 LIN.LSE_ID IN (7, 8, 9, 10, 11, 13, 18, 25, 35)
6254 AND STL.ID = LIN.LSE_ID
6255 AND HDR.ID = LIN.DNZ_CHR_ID
6256 AND OKSLIN.CLE_ID = LIN.ID;
6257
6258
6259 ----CSI schema change uptake----
6260 /*
6261 CURSOR Lx_Csr_CovProd(Cn_Prod_Id NUMBER,Cn_Org_Id NUMBER,Ln_Organization_Id NUMBER) IS
6262 SELECT CP.Name
6263 FROM OKX_CUSTOMER_PRODUCTS_V CP
6264 WHERE CP.Id1 = Cn_Prod_Id
6265 AND CP.Org_Id = Cn_Org_Id
6266 AND CP.Organization_Id = Ln_Organization_Id;
6267 */
6268
6269 CURSOR Lx_Csr_CovProd(Cn_Prod_Id NUMBER,Cn_Org_Id NUMBER,Ln_Organization_Id NUMBER) IS
6270 SELECT MSI.DESCRIPTION Name
6271 FROM CSI_ITEM_INSTANCES CSI,
6272 CSI_I_ORG_ASSIGNMENTS CIOA,
6273 MTL_SYSTEM_ITEMS_B_KFV MSI
6274 WHERE CSI.INSTANCE_ID = Cn_Prod_Id
6275 AND CSI.INSTANCE_ID = CIOA.INSTANCE_ID(+)
6276 AND CIOA.RELATIONSHIP_TYPE_CODE (+) = 'SOLD_FROM'
6277 AND CSI.INVENTORY_ITEM_ID = MSI.INVENTORY_ITEM_ID
6278 AND CIOA.OPERATING_UNIT_ID = Cn_Org_Id
6279 AND CSI.INV_MASTER_ORGANIZATION_ID = Ln_Organization_Id;
6280
6281 Lx_Cle_Id CONSTANT Gx_OKS_Id := P_Cle_Id;
6282 Lx_Covered_Levels Clvl_Tbl_Type;
6283
6284 Lx_Prod_Rec OKS_ENT_UTIL_PVT.L_Pdt_Rec;
6285 Lx_Item_Rec OKS_ENT_UTIL_PVT.L_Inv_Rec;
6286 Lx_Sys_Rec OKS_ENT_UTIL_PVT.L_Sys_Rec;
6287 Lx_Party_Rec OKS_ENT_UTIL_PVT.L_Party_Rec;
6288 Lx_CustAc_Rec OKS_ENT_UTIL_PVT.L_Cust_Rec;
6289 Lx_Site_Rec OKS_ENT_UTIL_PVT.L_Site_Rec;
6290 Lx_QtyRate_Rec OKS_ENT_UTIL_PVT.L_QtyRate_Rec;
6291
6292 Lx_Result Gx_Boolean;
6293 Lx_Return_Status Gx_Ret_Sts;
6294
6295 --Lv_Prod_Name OKX_CUSTOMER_PRODUCTS_V.Name%TYPE; --VARCHAR2(500);
6296 Lv_Prod_Name MTL_SYSTEM_ITEMS_B_KFV.description%TYPE; --VARCHAR2(500);
6297 Ln_ListPrice NUMBER;
6298 Li_TableIdx BINARY_INTEGER;
6299
6300 BEGIN
6301
6302 Lx_Result := G_TRUE;
6303 Lx_Return_Status := G_RET_STS_SUCCESS;
6304
6305 Li_TableIdx := 0;
6306
6307 /* Modified by Jvorugan for perg bug:4998337.
6308 If lx_cle_id is not null, then only passing the value.
6309 This is to avoid full table scan on okc_k_headers_all_b,okc_k_lines_b due to nvl condition
6310 */
6311
6312 IF Lx_Cle_Id IS NULL
6313 THEN
6314 FOR Idx IN Lx_Csr_CovLvl_noCle_id LOOP
6315
6316 Li_TableIdx := Li_TableIdx + 1;
6317
6318 Lv_Prod_Name := NULL;
6319 Lx_Prod_Rec := OKS_ENT_UTIL_PVT.Get_Product(Idx.Id);
6320
6321 IF Lx_Prod_Rec.Product_Id IS NOT NULL THEN
6322 OPEN Lx_Csr_CovProd (Lx_Prod_Rec.Product_Id,Idx.Org_Id,Idx.Organization_Id);
6323 FETCH Lx_Csr_CovProd INTO Lv_Prod_Name;
6324 CLOSE Lx_Csr_CovProd;
6325 END IF;
6326
6327 Lx_Item_Rec := OKS_ENT_UTIL_PVT.Get_InvItem(Idx.Id,Idx.Organization_Id);
6328 Lx_Sys_Rec := OKS_ENT_UTIL_PVT.Get_System(Idx.Id,Idx.Org_Id);
6329
6330 Lx_Party_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Party(Idx.Id);
6331 Lx_CustAc_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Customer(Idx.Id);
6332 Lx_Site_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Site(Idx.Id, Idx.Org_Id);
6333
6334 -- Lx_QtyRate_Rec := OKS_ENT_UTIL_PVT.Get_QtyRate_Rule(Idx.Id); --null oks_k_lines_b , okc_k_lines_b
6335 -- Ln_ListPrice := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P'));
6336
6337 Lx_Covered_Levels(Li_TableIdx).Row_Id := Idx.RowId;
6338 Lx_Covered_Levels(Li_TableIdx).Line_Id := Idx.Id;
6339 Lx_Covered_Levels(Li_TableIdx).Header_Id := Idx.Dnz_Chr_Id;
6340 Lx_Covered_Levels(Li_TableIdx).Parent_Line_Id := Idx.Cle_Id;
6341 Lx_Covered_Levels(Li_TableIdx).Line_Level := Idx.Name;
6342 Lx_Covered_Levels(Li_TableIdx).Cp_Id := Lx_Prod_Rec.Product_Id;
6343 Lx_Covered_Levels(Li_TableIdx).Quantity := Lx_Prod_Rec.Product_Qty;
6344 Lx_Covered_Levels(Li_TableIdx).Cp_Name := Lv_Prod_Name;
6345 Lx_Covered_Levels(Li_TableIdx).Inv_Item_Id := Lx_Item_Rec.Inv_Item_Id;
6346 Lx_Covered_Levels(Li_TableIdx).item_name := Lx_Item_Rec.Item_name;
6347 Lx_Covered_Levels(Li_TableIdx).system_id := Lx_Sys_Rec.System_Id;
6348 Lx_Covered_Levels(Li_TableIdx).system_name := Lx_Sys_Rec.System_Name;
6349 Lx_Covered_Levels(Li_TableIdx).Site_Id := Lx_Site_Rec.Site_Id;
6350 Lx_Covered_Levels(Li_TableIdx).Site_Name := Lx_Site_Rec.Site_Name;
6351 Lx_Covered_Levels(Li_TableIdx).Party_Id := Lx_Party_Rec.Party_Id;
6352 Lx_Covered_Levels(Li_TableIdx).Party_Name := Lx_Party_Rec.Party_Name;
6353 Lx_Covered_Levels(Li_TableIdx).Customer_Id := Lx_CustAc_Rec.Customer_Id;
6354 Lx_Covered_Levels(Li_TableIdx).Customer_Name := Lx_CustAc_Rec.Customer_Name;
6355 Lx_Covered_Levels(Li_TableIdx).List_Price := Ln_ListPrice;
6356 Lx_Covered_Levels(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
6357 Lx_Covered_Levels(Li_TableIdx).Line_Name := Idx.Name;
6358 Lx_Covered_Levels(Li_TableIdx).Default_AMCV_Flag := Lx_QtyRate_Rec.Default_AMCV_Flag;
6359 Lx_Covered_Levels(Li_TableIdx).Default_Qty := Lx_QtyRate_Rec.Default_Qty;
6360 Lx_Covered_Levels(Li_TableIdx).Default_UOM := Lx_QtyRate_Rec.Default_UOM;
6361 Lx_Covered_Levels(Li_TableIdx).Default_Duration := Lx_QtyRate_Rec.Default_Duration;
6362 Lx_Covered_Levels(Li_TableIdx).Default_Period := Lx_QtyRate_Rec.Default_Period;
6363 Lx_Covered_Levels(Li_TableIdx).Minimum_Qty := Lx_QtyRate_Rec.Minimum_Qty;
6364 Lx_Covered_Levels(Li_TableIdx).Minimum_UOM := Lx_QtyRate_Rec.Minimum_UOM;
6365 Lx_Covered_Levels(Li_TableIdx).Minimum_Duration := Lx_QtyRate_Rec.Minimum_Duration;
6366 Lx_Covered_Levels(Li_TableIdx).Minimum_Period := Lx_QtyRate_Rec.Minimum_Period;
6367 Lx_Covered_Levels(Li_TableIdx).Fixed_Qty := Lx_QtyRate_Rec.Fixed_Qty;
6368 Lx_Covered_Levels(Li_TableIdx).Fixed_UOM := Lx_QtyRate_Rec.Fixed_UOM;
6369 Lx_Covered_Levels(Li_TableIdx).Fixed_Duration := Lx_QtyRate_Rec.Fixed_Duration;
6370 Lx_Covered_Levels(Li_TableIdx).Fixed_Period := Lx_QtyRate_Rec.Fixed_Period;
6371 Lx_Covered_Levels(Li_TableIdx).Level_Flag := Lx_QtyRate_Rec.Level_Flag;
6372
6373 END LOOP;
6374
6375 ELSE -- if lx_cle_id is not null
6376
6377 FOR Idx IN Lx_Csr_CovLvl(Lx_Cle_Id) LOOP
6378
6379 Li_TableIdx := Li_TableIdx + 1;
6380
6381 Lv_Prod_Name := NULL;
6382 Lx_Prod_Rec := OKS_ENT_UTIL_PVT.Get_Product(Idx.Id);
6383
6384 IF Lx_Prod_Rec.Product_Id IS NOT NULL THEN
6385 OPEN Lx_Csr_CovProd (Lx_Prod_Rec.Product_Id,Idx.Org_Id,Idx.Organization_Id);
6386 FETCH Lx_Csr_CovProd INTO Lv_Prod_Name;
6387 CLOSE Lx_Csr_CovProd;
6388 END IF;
6389
6390 Lx_Item_Rec := OKS_ENT_UTIL_PVT.Get_InvItem(Idx.Id,Idx.Organization_Id);
6391 Lx_Sys_Rec := OKS_ENT_UTIL_PVT.Get_System(Idx.Id,Idx.Org_Id);
6392
6393 Lx_Party_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Party(Idx.Id);
6394 Lx_CustAc_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Customer(Idx.Id);
6395 Lx_Site_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Site(Idx.Id, Idx.Org_Id);
6396
6397 -- Lx_QtyRate_Rec := OKS_ENT_UTIL_PVT.Get_QtyRate_Rule(Idx.Id); --null oks_k_lines_b , okc_k_lines_b
6398 -- Ln_ListPrice := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P'));
6399
6400 Lx_Covered_Levels(Li_TableIdx).Row_Id := Idx.RowId;
6401 Lx_Covered_Levels(Li_TableIdx).Line_Id := Idx.Id;
6402 Lx_Covered_Levels(Li_TableIdx).Header_Id := Idx.Dnz_Chr_Id;
6403 Lx_Covered_Levels(Li_TableIdx).Parent_Line_Id := Idx.Cle_Id;
6404 Lx_Covered_Levels(Li_TableIdx).Line_Level := Idx.Name;
6405 Lx_Covered_Levels(Li_TableIdx).Cp_Id := Lx_Prod_Rec.Product_Id;
6406 Lx_Covered_Levels(Li_TableIdx).Quantity := Lx_Prod_Rec.Product_Qty;
6407 Lx_Covered_Levels(Li_TableIdx).Cp_Name := Lv_Prod_Name;
6408 Lx_Covered_Levels(Li_TableIdx).Inv_Item_Id := Lx_Item_Rec.Inv_Item_Id;
6409 Lx_Covered_Levels(Li_TableIdx).item_name := Lx_Item_Rec.Item_name;
6410 Lx_Covered_Levels(Li_TableIdx).system_id := Lx_Sys_Rec.System_Id;
6411 Lx_Covered_Levels(Li_TableIdx).system_name := Lx_Sys_Rec.System_Name;
6412 Lx_Covered_Levels(Li_TableIdx).Site_Id := Lx_Site_Rec.Site_Id;
6413 Lx_Covered_Levels(Li_TableIdx).Site_Name := Lx_Site_Rec.Site_Name;
6414 Lx_Covered_Levels(Li_TableIdx).Party_Id := Lx_Party_Rec.Party_Id;
6415 Lx_Covered_Levels(Li_TableIdx).Party_Name := Lx_Party_Rec.Party_Name;
6416 Lx_Covered_Levels(Li_TableIdx).Customer_Id := Lx_CustAc_Rec.Customer_Id;
6417 Lx_Covered_Levels(Li_TableIdx).Customer_Name := Lx_CustAc_Rec.Customer_Name;
6418 Lx_Covered_Levels(Li_TableIdx).List_Price := Ln_ListPrice;
6419 Lx_Covered_Levels(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
6420 Lx_Covered_Levels(Li_TableIdx).Line_Name := Idx.Name;
6421 Lx_Covered_Levels(Li_TableIdx).Default_AMCV_Flag := Lx_QtyRate_Rec.Default_AMCV_Flag;
6422 Lx_Covered_Levels(Li_TableIdx).Default_Qty := Lx_QtyRate_Rec.Default_Qty;
6423 Lx_Covered_Levels(Li_TableIdx).Default_UOM := Lx_QtyRate_Rec.Default_UOM;
6424 Lx_Covered_Levels(Li_TableIdx).Default_Duration := Lx_QtyRate_Rec.Default_Duration;
6425 Lx_Covered_Levels(Li_TableIdx).Default_Period := Lx_QtyRate_Rec.Default_Period;
6426 Lx_Covered_Levels(Li_TableIdx).Minimum_Qty := Lx_QtyRate_Rec.Minimum_Qty;
6427 Lx_Covered_Levels(Li_TableIdx).Minimum_UOM := Lx_QtyRate_Rec.Minimum_UOM;
6428 Lx_Covered_Levels(Li_TableIdx).Minimum_Duration := Lx_QtyRate_Rec.Minimum_Duration;
6429 Lx_Covered_Levels(Li_TableIdx).Minimum_Period := Lx_QtyRate_Rec.Minimum_Period;
6430 Lx_Covered_Levels(Li_TableIdx).Fixed_Qty := Lx_QtyRate_Rec.Fixed_Qty;
6431 Lx_Covered_Levels(Li_TableIdx).Fixed_UOM := Lx_QtyRate_Rec.Fixed_UOM;
6432 Lx_Covered_Levels(Li_TableIdx).Fixed_Duration := Lx_QtyRate_Rec.Fixed_Duration;
6433 Lx_Covered_Levels(Li_TableIdx).Fixed_Period := Lx_QtyRate_Rec.Fixed_Period;
6434 Lx_Covered_Levels(Li_TableIdx).Level_Flag := Lx_QtyRate_Rec.Level_Flag;
6435
6436 END LOOP;
6437 END IF; -- End of lx_cle_id is null
6438
6439 /* Commented by Jvorugan for Bug:4998337
6440 FOR Idx IN Lx_Csr_CovLvl(Lx_Cle_Id) LOOP
6441
6442 Li_TableIdx := Li_TableIdx + 1;
6443
6444 Lv_Prod_Name := NULL;
6445 Lx_Prod_Rec := OKS_ENT_UTIL_PVT.Get_Product(Idx.Id);
6446
6447 IF Lx_Prod_Rec.Product_Id IS NOT NULL THEN
6448 OPEN Lx_Csr_CovProd (Lx_Prod_Rec.Product_Id,Idx.Org_Id,Idx.Organization_Id);
6449 FETCH Lx_Csr_CovProd INTO Lv_Prod_Name;
6450 CLOSE Lx_Csr_CovProd;
6451 END IF;
6452
6453 Lx_Item_Rec := OKS_ENT_UTIL_PVT.Get_InvItem(Idx.Id,Idx.Organization_Id);
6454 Lx_Sys_Rec := OKS_ENT_UTIL_PVT.Get_System(Idx.Id,Idx.Org_Id);
6455
6456 Lx_Party_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Party(Idx.Id);
6457 Lx_CustAc_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Customer(Idx.Id);
6458 Lx_Site_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Site(Idx.Id, Idx.Org_Id);
6459
6460 -- Lx_QtyRate_Rec := OKS_ENT_UTIL_PVT.Get_QtyRate_Rule(Idx.Id); --null oks_k_lines_b , okc_k_lines_b
6461 -- Ln_ListPrice := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P'));
6462
6463 Lx_Covered_Levels(Li_TableIdx).Row_Id := Idx.RowId;
6464 Lx_Covered_Levels(Li_TableIdx).Line_Id := Idx.Id;
6465 Lx_Covered_Levels(Li_TableIdx).Header_Id := Idx.Dnz_Chr_Id;
6466 Lx_Covered_Levels(Li_TableIdx).Parent_Line_Id := Idx.Cle_Id;
6467 Lx_Covered_Levels(Li_TableIdx).Line_Level := Idx.Name;
6468 Lx_Covered_Levels(Li_TableIdx).Cp_Id := Lx_Prod_Rec.Product_Id;
6469 Lx_Covered_Levels(Li_TableIdx).Quantity := Lx_Prod_Rec.Product_Qty;
6470 Lx_Covered_Levels(Li_TableIdx).Cp_Name := Lv_Prod_Name;
6471 Lx_Covered_Levels(Li_TableIdx).Inv_Item_Id := Lx_Item_Rec.Inv_Item_Id;
6472 Lx_Covered_Levels(Li_TableIdx).item_name := Lx_Item_Rec.Item_name;
6473 Lx_Covered_Levels(Li_TableIdx).system_id := Lx_Sys_Rec.System_Id;
6474 Lx_Covered_Levels(Li_TableIdx).system_name := Lx_Sys_Rec.System_Name;
6475 Lx_Covered_Levels(Li_TableIdx).Site_Id := Lx_Site_Rec.Site_Id;
6476 Lx_Covered_Levels(Li_TableIdx).Site_Name := Lx_Site_Rec.Site_Name;
6477 Lx_Covered_Levels(Li_TableIdx).Party_Id := Lx_Party_Rec.Party_Id;
6478 Lx_Covered_Levels(Li_TableIdx).Party_Name := Lx_Party_Rec.Party_Name;
6479 Lx_Covered_Levels(Li_TableIdx).Customer_Id := Lx_CustAc_Rec.Customer_Id;
6480 Lx_Covered_Levels(Li_TableIdx).Customer_Name := Lx_CustAc_Rec.Customer_Name;
6481 Lx_Covered_Levels(Li_TableIdx).List_Price := Ln_ListPrice;
6482 Lx_Covered_Levels(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
6483 Lx_Covered_Levels(Li_TableIdx).Line_Name := Idx.Name;
6484 Lx_Covered_Levels(Li_TableIdx).Default_AMCV_Flag := Lx_QtyRate_Rec.Default_AMCV_Flag;
6485 Lx_Covered_Levels(Li_TableIdx).Default_Qty := Lx_QtyRate_Rec.Default_Qty;
6486 Lx_Covered_Levels(Li_TableIdx).Default_UOM := Lx_QtyRate_Rec.Default_UOM;
6487 Lx_Covered_Levels(Li_TableIdx).Default_Duration := Lx_QtyRate_Rec.Default_Duration;
6488 Lx_Covered_Levels(Li_TableIdx).Default_Period := Lx_QtyRate_Rec.Default_Period;
6489 Lx_Covered_Levels(Li_TableIdx).Minimum_Qty := Lx_QtyRate_Rec.Minimum_Qty;
6490 Lx_Covered_Levels(Li_TableIdx).Minimum_UOM := Lx_QtyRate_Rec.Minimum_UOM;
6491 Lx_Covered_Levels(Li_TableIdx).Minimum_Duration := Lx_QtyRate_Rec.Minimum_Duration;
6492 Lx_Covered_Levels(Li_TableIdx).Minimum_Period := Lx_QtyRate_Rec.Minimum_Period;
6493 Lx_Covered_Levels(Li_TableIdx).Fixed_Qty := Lx_QtyRate_Rec.Fixed_Qty;
6494 Lx_Covered_Levels(Li_TableIdx).Fixed_UOM := Lx_QtyRate_Rec.Fixed_UOM;
6495 Lx_Covered_Levels(Li_TableIdx).Fixed_Duration := Lx_QtyRate_Rec.Fixed_Duration;
6496 Lx_Covered_Levels(Li_TableIdx).Fixed_Period := Lx_QtyRate_Rec.Fixed_Period;
6497 Lx_Covered_Levels(Li_TableIdx).Level_Flag := Lx_QtyRate_Rec.Level_Flag;
6498
6499 END LOOP;
6500 */
6501
6502 X_Covered_Levels := Lx_Covered_Levels;
6503 X_Result := Lx_Result;
6504 X_Return_Status := Lx_Return_Status;
6505
6506 EXCEPTION
6507
6508 WHEN OTHERS THEN
6509
6510 OKC_API.SET_MESSAGE
6511 (P_App_Name => G_APP_NAME_OKC
6512 ,P_Msg_Name => G_UNEXPECTED_ERROR
6513 ,P_Token1 => G_SQLCODE_TOKEN
6514 ,P_Token1_Value => SQLCODE
6515 ,P_Token2 => G_SQLERRM_TOKEN
6516 ,P_Token2_Value => SQLERRM);
6517
6518 OKC_API.SET_MESSAGE
6519 (P_App_Name => G_APP_NAME_OKC
6520 ,P_Msg_Name => G_DEBUG_TOKEN
6521 ,P_Token1 => G_PACKAGE_TOKEN
6522 ,P_Token1_Value => G_PKG_NAME
6523 ,P_Token2 => G_PROGRAM_TOKEN
6524 ,P_Token2_Value => 'Get_Coverage_Level_Details');
6525
6526 X_Result := G_FALSE;
6527 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6528
6529 END Get_Coverage_Level_Details;
6530
6531 -----------------------------------------------------------------------------------------------------------------------*
6532
6533 PROCEDURE Get_Coverage_Levels
6534 (P_API_Version IN NUMBER
6535 ,P_Init_Msg_List IN VARCHAR2
6536 ,P_Contract_Line_Id IN NUMBER
6537 ,X_Return_Status OUT NOCOPY VARCHAR2
6538 ,X_Msg_Count OUT NOCOPY NUMBER
6539 ,X_Msg_Data OUT NOCOPY VARCHAR2
6540 ,X_Covered_Levels OUT NOCOPY Clvl_Tbl_Type)
6541 IS
6542
6543 Lx_Result Gx_Boolean;
6544
6545 BEGIN
6546
6547 Get_Coverage_Level_Details
6548 (P_API_Version => P_API_Version
6549 ,P_Init_Msg_List => P_Init_Msg_List
6550 ,P_Cle_Id => P_Contract_Line_Id
6551 ,X_Covered_Levels => X_Covered_Levels
6552 ,X_Msg_Count => X_Msg_Count
6553 ,X_Msg_Data => X_Msg_Data
6554 ,X_Result => Lx_Result
6555 ,X_Return_Status => X_Return_Status);
6556
6557 EXCEPTION
6558
6559 WHEN OTHERS THEN
6560
6561 OKC_API.SET_MESSAGE
6562 (P_App_Name => G_APP_NAME_OKC
6563 ,P_Msg_Name => G_UNEXPECTED_ERROR
6564 ,P_Token1 => G_SQLCODE_TOKEN
6565 ,P_Token1_Value => SQLCODE
6566 ,P_Token2 => G_SQLERRM_TOKEN
6567 ,P_Token2_Value => SQLERRM);
6568
6569 OKC_API.SET_MESSAGE
6570 (P_App_Name => G_APP_NAME_OKC
6571 ,P_Msg_Name => G_DEBUG_TOKEN
6572 ,P_Token1 => G_PACKAGE_TOKEN
6573 ,P_Token1_Value => G_PKG_NAME
6574 ,P_Token2 => G_PROGRAM_TOKEN
6575 ,P_Token2_Value => 'Get_Coverage_Levels');
6576
6577 --X_Result := G_FALSE;
6578 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6579
6580 END Get_Coverage_Levels;
6581
6582 -----------------------------------------------------------------------------------------------------------------------*
6583
6584 PROCEDURE Get_Coverage_Type_Attribs
6585 (P_CVL_Id IN Gx_OKS_Id
6586 ,P_Set_ExcepionStack IN Gx_Boolean
6587 ,X_Cov_Type_Code out nocopy VARCHAR2
6588 ,X_Cov_Type_Meaning out nocopy VARCHAR2
6589 ,X_Cov_Type_Description out nocopy VARCHAR2
6590 ,X_Cov_Type_Imp_Level out nocopy VARCHAR2
6591 ,X_Result out nocopy Gx_Boolean
6592 ,X_Return_Status out nocopy Gx_Ret_Sts)
6593 IS
6594
6595 CURSOR Lx_Csr_CovType(Cx_CVL_Id IN Gx_OKS_Id) IS
6596 SELECT CVT.Code
6597 ,CVT.Meaning
6598 ,CVT.Description
6599 ,CVT.Importance_Level
6600 FROM OKS_K_Lines_B OKSLB
6601 ,OKS_Cov_Types_V CVT
6602 WHERE OKSLB.Cle_Id = Cx_CVL_Id
6603 AND OKSLB.Coverage_Type = CVT.Code;
6604
6605 Lx_CVL_Id CONSTANT Gx_OKS_Id := P_CVL_Id;
6606 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
6607
6608 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
6609 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
6610 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
6611 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
6612
6613 Lx_Result Gx_Boolean;
6614 Lx_Return_Status Gx_Ret_Sts;
6615
6616 L_EXCEP_NO_DATA_FOUND EXCEPTION;
6617
6618 BEGIN
6619
6620 Lx_Result := G_TRUE;
6621 Lx_Return_Status := G_RET_STS_SUCCESS;
6622
6623 OPEN Lx_Csr_CovType(Lx_CVL_Id);
6624 FETCH Lx_Csr_CovType INTO Lx_Cov_Type_Code,Lx_Cov_Type_Meaning,Lx_Cov_Type_Description,Lx_Cov_Type_Imp_Level;
6625
6626 IF Lx_Csr_CovType%NOTFOUND THEN
6627
6628 CLOSE Lx_Csr_CovType;
6629 RAISE L_EXCEP_NO_DATA_FOUND;
6630
6631 END IF;
6632
6633 CLOSE Lx_Csr_CovType;
6634
6635 X_Cov_Type_Code := Lx_Cov_Type_Code;
6636 X_Cov_Type_Meaning := Lx_Cov_Type_Meaning;
6637 X_Cov_Type_Description := Lx_Cov_Type_Description;
6638 X_Cov_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
6639
6640 X_Result := Lx_Result;
6641 X_Return_Status := Lx_Return_Status;
6642
6643 EXCEPTION
6644
6645 WHEN L_EXCEP_NO_DATA_FOUND THEN
6646
6647 Lx_Result := G_FALSE;
6648
6649 IF Lx_Set_ExcepionStack = G_TRUE THEN
6650
6651 OKC_API.SET_MESSAGE
6652 (p_app_name => G_APP_NAME_OKC
6653 ,p_msg_name => G_INVALID_VALUE
6654 ,p_token1 => G_COL_NAME_TOKEN
6655 ,p_token1_value => 'Coverage Type');
6656
6657 Lx_Return_Status := G_RET_STS_ERROR;
6658
6659 END IF;
6660
6661 X_Result := Lx_Result;
6662 X_Return_Status := Lx_Return_Status;
6663
6664 WHEN OTHERS THEN
6665
6666 IF Lx_Csr_CovType%ISOPEN THEN
6667 CLOSE Lx_Csr_CovType;
6668 END IF;
6669
6670 OKC_API.SET_MESSAGE
6671 (P_App_Name => G_APP_NAME_OKC
6672 ,P_Msg_Name => G_UNEXPECTED_ERROR
6673 ,P_Token1 => G_SQLCODE_TOKEN
6674 ,P_Token1_Value => SQLCODE
6675 ,P_Token2 => G_SQLERRM_TOKEN
6676 ,P_Token2_Value => SQLERRM);
6677
6678 OKC_API.SET_MESSAGE
6679 (P_App_Name => G_APP_NAME_OKC
6680 ,P_Msg_Name => G_DEBUG_TOKEN
6681 ,P_Token1 => G_PACKAGE_TOKEN
6682 ,P_Token1_Value => G_PKG_NAME
6683 ,P_Token2 => G_PROGRAM_TOKEN
6684 ,P_Token2_Value => 'Get_Coverage_Type_Attribs');
6685
6686 X_Result := G_FALSE;
6687 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6688
6689 END Get_Coverage_Type_Attribs;
6690
6691 -----------------------------------------------------------------------------------------------------------------------*
6692
6693 PROCEDURE Get_Cont_Coverage_Type
6694 (P_API_Version IN NUMBER
6695 ,P_Init_Msg_List IN VARCHAR2
6696 ,P_SVL_Id IN Gx_OKS_Id
6697 ,P_Set_ExcepionStack IN Gx_Boolean
6698 ,X_Coverage_Type out nocopy CovType_Rec_Type
6699 ,X_Msg_Count OUT NOCOPY NUMBER
6700 ,X_Msg_Data OUT NOCOPY VARCHAR2
6701 ,X_Result out nocopy Gx_Boolean
6702 ,X_Return_Status out nocopy Gx_Ret_Sts)
6703 IS
6704
6705 Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
6706 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
6707
6708 Ld_SVL_Start DATE;
6709 Ld_SVL_End DATE;
6710 Ld_SVL_Terminated DATE;
6711
6712 Lx_CVL_Id Gx_OKS_Id;
6713 Ld_CVL_Start DATE;
6714 Ld_CVL_End DATE;
6715 Ld_CVL_Terminated DATE;
6716
6717 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
6718 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
6719 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
6720 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
6721
6722 Lx_Result Gx_Boolean;
6723 Lx_Return_Status Gx_Ret_Sts;
6724
6725 L_EXCEP_NULL_VALUE EXCEPTION;
6726 L_EXCEP_NO_DATA_FOUND EXCEPTION;
6727
6728 -- Added for 12.0 Coverage Rearch project (JVARGHES)
6729
6730 Lv_Std_Cov_YN VARCHAR2(10);
6731
6732 --
6733
6734 BEGIN
6735
6736 Lx_Result := G_TRUE;
6737 Lx_Return_Status := G_RET_STS_SUCCESS;
6738
6739 Validate_Required_NumValue
6740 (P_Num_Value => Lx_SVL_Id
6741 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
6742 ,P_ExcepionMsg => 'Contract Line'
6743 ,X_Result => Lx_result
6744 ,X_Return_Status => Lx_Return_Status);
6745
6746 IF Lx_result <> G_TRUE THEN
6747 RAISE L_EXCEP_NULL_VALUE;
6748 END IF;
6749
6750 --
6751 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6752 --
6753 --Validate_Service_Line
6754 -- (P_SVL_Id => Lx_SVL_Id
6755 -- ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
6756 -- ,X_SVL_Start => Ld_SVL_Start
6757 -- ,X_SVL_End => Ld_SVL_End
6758 -- ,X_SVL_Terminated => Ld_SVL_Terminated
6759 -- ,X_Result => Lx_Result
6760 -- ,X_Return_Status => Lx_Return_Status);
6761 --
6762 -- Added for 12.0 Coverage Rearch project (JVARGHES)
6763 --
6764 --
6765
6766 Validate_Service_Line
6767 (P_SVL_Id => Lx_SVL_Id
6768 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
6769 ,X_CVL_Id => Lx_CVL_Id
6770 ,X_Std_Cov_YN => Lv_Std_Cov_YN
6771 ,X_SVL_Start => Ld_SVL_Start
6772 ,X_SVL_End => Ld_SVL_End
6773 ,X_SVL_Terminated => Ld_SVL_Terminated
6774 ,X_Result => Lx_Result
6775 ,X_Return_Status => Lx_Return_Status);
6776
6777 --
6778
6779 IF Lx_Result <> G_TRUE THEN
6780 RAISE L_EXCEP_NO_DATA_FOUND;
6781 END IF;
6782
6783 --
6784 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6785 --
6786 --Validate_Coverage_Line
6787 -- (P_SVL_Id => Lx_SVL_Id
6788 -- ,P_template_YN => 'N'
6789 -- ,P_Set_ExcepionStack => G_FALSE
6790 -- ,X_CVL_Id => Lx_CVL_Id
6791 -- ,X_CVL_Start => Ld_CVL_Start
6792 -- ,X_CVL_End => Ld_CVL_End
6793 -- ,X_CVL_Terminated => Ld_CVL_Terminated
6794 -- ,X_Result => Lx_Result
6795 -- ,X_Return_Status => Lx_Return_Status);
6796 --
6797 --
6798 -- Added for 12.0 Coverage Rearch project (JVARGHES)
6799 --
6800
6801 Validate_Coverage_Line
6802 (P_CVL_Id => Lx_CVL_Id
6803 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
6804 ,X_CVL_Start => Ld_CVL_Start
6805 ,X_CVL_End => Ld_CVL_End
6806 ,X_CVL_Terminated => Ld_CVL_Terminated
6807 ,X_Result => Lx_Result
6808 ,X_Return_Status => Lx_Return_Status);
6809
6810 IF Lx_Result <> G_TRUE THEN
6811 RAISE L_EXCEP_NO_DATA_FOUND;
6812 END IF;
6813
6814 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
6815 THEN
6816
6817 Ld_CVL_Start := Ld_SVL_Start;
6818 Ld_CVL_End := Ld_SVL_End;
6819 Ld_CVL_Terminated := Ld_SVL_Terminated;
6820
6821 END IF;
6822
6823 --
6824 --
6825
6826 Get_Coverage_Type_Attribs
6827 (P_CVL_Id => Lx_CVL_Id
6828 ,P_Set_ExcepionStack => G_FALSE
6829 ,X_Cov_Type_Code => Lx_Cov_Type_Code
6830 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
6831 ,X_Cov_Type_Description => Lx_Cov_Type_Description
6832 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
6833 ,X_Result => Lx_Result
6834 ,X_Return_Status => Lx_Return_Status);
6835
6836 IF Lx_Result <> G_TRUE THEN
6837 RAISE L_EXCEP_NO_DATA_FOUND;
6838 END IF;
6839
6840 X_Coverage_Type.Code := Lx_Cov_Type_Code;
6841 X_Coverage_Type.Meaning := Lx_Cov_Type_Meaning;
6842 X_Coverage_Type.Importance_Level := Lx_Cov_Type_Imp_Level;
6843
6844 X_Result := Lx_Result;
6845 X_Return_Status := Lx_Return_Status;
6846
6847 EXCEPTION
6848
6849 WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_NO_DATA_FOUND THEN
6850
6851 X_Result := Lx_Result;
6852 X_Return_Status := Lx_Return_Status;
6853
6854 WHEN OTHERS THEN
6855
6856 OKC_API.SET_MESSAGE
6857 (P_App_Name => G_APP_NAME_OKC
6858 ,P_Msg_Name => G_UNEXPECTED_ERROR
6859 ,P_Token1 => G_SQLCODE_TOKEN
6860 ,P_Token1_Value => SQLCODE
6861 ,P_Token2 => G_SQLERRM_TOKEN
6862 ,P_Token2_Value => SQLERRM);
6863
6864 OKC_API.SET_MESSAGE
6865 (P_App_Name => G_APP_NAME_OKC
6866 ,P_Msg_Name => G_DEBUG_TOKEN
6867 ,P_Token1 => G_PACKAGE_TOKEN
6868 ,P_Token1_Value => G_PKG_NAME
6869 ,P_Token2 => G_PROGRAM_TOKEN
6870 ,P_Token2_Value => 'Get_Cont_Coverage_Type');
6871
6872 X_Result := G_FALSE;
6873 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6874
6875 END Get_Cont_Coverage_Type;
6876
6877 -----------------------------------------------------------------------------------------------------------------------*
6878
6879 PROCEDURE Get_Coverage_Type
6880 (P_API_Version IN NUMBER
6881 ,P_Init_Msg_List IN VARCHAR2
6882 ,P_Contract_Line_Id IN NUMBER
6883 ,X_Return_Status OUT NOCOPY VARCHAR2
6884 ,X_Msg_Count out nocopy NUMBER
6885 ,X_Msg_Data out nocopy VARCHAR2
6886 ,X_Coverage_Type OUT NOCOPY CovType_Rec_Type)
6887
6888 IS
6889
6890 Lx_Result Gx_Boolean;
6891
6892 BEGIN
6893
6894 Get_Cont_Coverage_Type
6895 (P_API_Version => P_API_Version
6896 ,P_Init_Msg_List => P_Init_Msg_List
6897 ,P_SVL_Id => P_Contract_Line_Id
6898 ,P_Set_ExcepionStack => G_TRUE
6899 ,X_Coverage_Type => X_Coverage_Type
6900 ,X_Msg_Count => X_Msg_Count
6901 ,X_Msg_Data => X_Msg_Data
6902 ,X_Result => Lx_Result
6903 ,X_Return_Status => X_Return_Status);
6904
6905 EXCEPTION
6906
6907 WHEN OTHERS THEN
6908
6909 OKC_API.SET_MESSAGE
6910 (P_App_Name => G_APP_NAME_OKC
6911 ,P_Msg_Name => G_UNEXPECTED_ERROR
6912 ,P_Token1 => G_SQLCODE_TOKEN
6913 ,P_Token1_Value => SQLCODE
6914 ,P_Token2 => G_SQLERRM_TOKEN
6915 ,P_Token2_Value => SQLERRM);
6916
6917 OKC_API.SET_MESSAGE
6918 (P_App_Name => G_APP_NAME_OKC
6919 ,P_Msg_Name => G_DEBUG_TOKEN
6920 ,P_Token1 => G_PACKAGE_TOKEN
6921 ,P_Token1_Value => G_PKG_NAME
6922 ,P_Token2 => G_PROGRAM_TOKEN
6923 ,P_Token2_Value => 'Get_Coverage_Type');
6924
6925 --X_Result := G_FALSE;
6926 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6927
6928 END Get_Coverage_Type;
6929
6930 -----------------------------------------------------------------------------------------------------------------------*
6931
6932 PROCEDURE Get_Cont_Preferred_Engineers
6933 (P_API_Version IN NUMBER
6934 ,P_Init_Msg_List IN VARCHAR2
6935 ,P_SVL_Id IN Gx_OKS_Id
6936 ,P_business_process_id IN NUMBER -- added for 11.5.9 (patchset I) enhancement # 2467065
6937 ,P_request_date IN DATE -- added for 11.5.9 (patchset I) enhancement # 2467065
6938 ,P_Set_ExcepionStack IN Gx_Boolean
6939 ,X_Pref_Engineers OUT NOCOPY PrfEng_Tbl_Type
6940 ,X_Msg_Count OUT NOCOPY NUMBER
6941 ,X_Msg_Data OUT NOCOPY VARCHAR2
6942 ,X_Result out nocopy Gx_Boolean
6943 ,X_Return_Status out nocopy Gx_Ret_Sts)
6944 IS
6945
6946 --
6947 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6948 --
6949
6950 /*
6951 CURSOR Lx_Csr_PrefEngrs(Cx_SBL_Id IN Gx_OKS_Id,Ld_Request_Date IN Date) IS
6952 SELECT RSC.resource_id Resource_Id
6953 ,decode(RSC.category,'EMPLOYEE','RS_EMPLOYEE',RSC.category) Resource_Type
6954 -- ,decode(RSC.Resource_Type,'EMPLOYEE','RS_EMPLOYEE',RSC.Resource_Type) Resource_Type
6955 ,cimbp.object1_id1
6956 ,con.primary_yn
6957 ,con.resource_class
6958 FROM JTF_RS_RESOURCE_EXTNS RSC --OKX_Resources_V RSC
6959 ,OKC_Contacts CON
6960 ,OKC_K_Party_Roles_B ROL
6961 ,OKC_K_Lines_B BPL
6962 ,OKC_K_Lines_B SBL
6963 ,OKC_K_Lines_B COV
6964 ,okc_k_items cimbp
6965 WHERE SBL.Id = Cx_SBL_Id
6966 AND SBL.Lse_Id IN (1,14,19)
6967 and cov.cle_id = sbl.id
6968 and cov.lse_id in (2,15,20)
6969 AND BPL.cle_id = COV.id
6970 AND BPL.Lse_Id IN (3,16,21)
6971 and bpl.id = cimbp.cle_id
6972 and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
6973 AND trunc(nvl(Ld_Request_Date,sysdate)) >= trunc(bpl.start_date)
6974 and trunc(nvl(Ld_Request_Date,sysdate)) <= trunc(oks_entitlements_pvt.get_final_end_date(bpl.dnz_chr_id,bpl.end_date)) -- uptake grace period
6975 AND ROL.Cle_Id = BPL.Id
6976 AND CON.Cpl_Id = ROL.Id
6977 AND CON.Jtot_Object1_Code = 'OKX_RESOURCE'
6978 AND RSC.resource_id = CON.Object1_Id1
6979 AND SBL.dnz_chr_id = BPL.dnz_chr_id
6980 AND SBL.dnz_chr_id = COV.dnz_chr_id
6981 AND BPL.dnz_chr_id = ROL.dnz_chr_id
6982 AND ROL.dnz_chr_id = CON.dnz_chr_id
6983
6984 UNION ALL
6985
6986 SELECT RSG.Id1 Resource_Id
6987 ,RSG.Resource_Type Resource_Type
6988 ,cimbp.object1_id1
6989 ,con.primary_yn
6990 ,con.resource_class
6991 FROM OKS_Resource_Groups_V RSG
6992 ,OKC_Contacts CON
6993 ,OKC_K_Party_Roles_B ROL
6994 ,OKC_K_Lines_B BPL
6995 ,OKC_K_Lines_B SBL
6996 ,OKC_K_Lines_B COV
6997 ,okc_k_items cimbp
6998 WHERE SBL.Id = Cx_SBL_Id
6999 AND SBL.Lse_Id IN (1,14,19)
7000 and cov.cle_id = sbl.id
7001 and cov.lse_id in (2,15,20)
7002 AND BPL.cle_id = COV.id
7003 AND BPL.Lse_Id IN (3,16,21)
7004 and bpl.id = cimbp.cle_id
7005 and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
7006 AND trunc(nvl(Ld_Request_Date,sysdate)) >= trunc(bpl.start_date)
7007 and trunc(nvl(Ld_Request_Date,sysdate)) <= trunc(get_final_end_date(bpl.dnz_chr_id,bpl.end_date)) -- uptake grace period
7008 AND ROL.Cle_Id = BPL.Id
7009 AND CON.Cpl_Id = ROL.Id
7010 AND CON.Jtot_Object1_Code = 'OKS_RSCGROUP'
7011 AND RSG.Id1 = CON.Object1_Id1
7012 AND RSG.Id2 = CON.Object1_Id2
7013 AND SBL.dnz_chr_id = BPL.dnz_chr_id
7014 AND SBL.dnz_chr_id = COV.dnz_chr_id
7015 AND BPL.dnz_chr_id = ROL.dnz_chr_id
7016 AND ROL.dnz_chr_id = CON.dnz_chr_id;
7017 */
7018
7019 --
7020 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
7021 --
7022
7023 CURSOR Lx_Csr_PrefEngrs(Cx_SBL_Id IN Gx_OKS_Id) IS
7024 SELECT RSC.resource_id Resource_Id
7025 ,decode(RSC.category,'EMPLOYEE','RS_EMPLOYEE',RSC.category) Resource_Type
7026 -- ,decode(RSC.Resource_Type,'EMPLOYEE','RS_EMPLOYEE',RSC.Resource_Type) Resource_Type
7027 ,cimbp.object1_id1
7028 ,con.primary_yn
7029 ,con.resource_class
7030 ,bpl.start_date bpl_start_date
7031 ,bpl.end_date bpl_end_date
7032 ,ksl.Standard_Cov_YN Standard_Cov_YN
7033 ,bpl.id bpl_id
7034 ,ksl.dnz_chr_id ksl_dnz_chr_id
7035
7036 FROM JTF_RS_RESOURCE_EXTNS RSC --OKX_Resources_V RSC
7037 ,OKC_Contacts CON
7038 ,OKC_K_Party_Roles_B ROL
7039 ,OKC_K_Lines_B BPL
7040 ,okc_k_items cimbp
7041 ,oks_k_lines_b ksl
7042 WHERE ksl.cle_id = Cx_SBL_Id
7043 AND BPL.cle_id = ksl.Coverage_Id
7044 AND BPL.Lse_Id IN (3,16,21)
7045 and bpl.id = cimbp.cle_id
7046 and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
7047 AND ROL.Cle_Id = BPL.Id
7048 AND CON.Cpl_Id = ROL.Id
7049 AND CON.Jtot_Object1_Code = 'OKX_RESOURCE'
7050 AND RSC.resource_id = CON.Object1_Id1
7051 -- AND BPL.dnz_chr_id = COV.dnz_chr_id
7052 AND BPL.dnz_chr_id = ROL.dnz_chr_id
7053 AND ROL.dnz_chr_id = CON.dnz_chr_id
7054
7055 UNION ALL
7056
7057 SELECT RSG.Id1 Resource_Id
7058 ,RSG.Resource_Type Resource_Type
7059 ,cimbp.object1_id1
7060 ,con.primary_yn
7061 ,con.resource_class
7062 ,bpl.start_date bpl_start_date
7063 ,bpl.end_date bpl_end_date
7064 ,ksl.Standard_Cov_YN Standard_Cov_YN
7065 ,bpl.id bpl_id
7066 ,ksl.dnz_chr_id ksl_dnz_chr_id
7067
7068 FROM OKS_Resource_Groups_V RSG
7069 ,OKC_Contacts CON
7070 ,OKC_K_Party_Roles_B ROL
7071 ,OKC_K_Lines_B BPL
7072 ,okc_k_items cimbp
7073 ,oks_k_lines_b ksl
7074 WHERE ksl.cle_id = Cx_SBL_Id
7075 AND BPL.cle_id = ksl.Coverage_Id
7076 AND BPL.Lse_Id IN (3,16,21)
7077 and bpl.id = cimbp.cle_id
7078 and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
7079 AND ROL.Cle_Id = BPL.Id
7080 AND CON.Cpl_Id = ROL.Id
7081 AND CON.Jtot_Object1_Code = 'OKS_RSCGROUP'
7082 AND RSG.Id1 = CON.Object1_Id1
7083 AND RSG.Id2 = CON.Object1_Id2
7084 -- AND BPL.dnz_chr_id = COV.dnz_chr_id
7085 AND BPL.dnz_chr_id = ROL.dnz_chr_id
7086 AND ROL.dnz_chr_id = CON.dnz_chr_id;
7087
7088 --
7089 --
7090
7091 Lx_SBL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
7092 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
7093 Ld_Request_Date CONSTANT Date := nvl(P_request_date,sysdate);
7094 Lx_Pref_Engineers PrfEng_Tbl_Type;
7095
7096 Li_TableIdx BINARY_INTEGER;
7097
7098 Ld_SVL_Start DATE;
7099 Ld_SVL_End DATE;
7100 Ld_SVL_Terminated DATE;
7101
7102 Ld_BPL_Start DATE;
7103 Ld_BPL_End DATE;
7104 Ld_BPL_Terminated DATE;
7105
7106 Lx_Result Gx_Boolean;
7107 Lx_Return_Status Gx_Ret_Sts;
7108
7109 L_EXCEP_NULL_VALUE EXCEPTION;
7110 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
7111 L_EXCEP_INVALID_CONTRACT_LINE EXCEPTION;
7112
7113 --
7114 -- Added for 12.0 Coverage Rearch project (JVARGHES)
7115 --
7116
7117 Ln_CVL_Id NUMBER;
7118 Lv_Std_Cov_YN VARCHAR2(10);
7119
7120 --
7121 -- Added for 12.0 Coverage Rearch project (JVARGHES)
7122 --
7123
7124 Ld_BPL_OFS_Start DATE;
7125 Ln_BPL_OFS_Duration NUMBER;
7126 Lv_BPL_OFS_UOM VARCHAR2(100);
7127
7128 L_EXCEP_NO_DATA_FOUND EXCEPTION;
7129 --
7130
7131 BEGIN
7132
7133 Lx_Result := G_TRUE;
7134 Lx_Return_Status := G_RET_STS_SUCCESS;
7135
7136 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
7137
7138 Validate_Required_NumValue
7139 (P_Num_Value => Lx_SBL_Id
7140 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
7141 ,P_ExcepionMsg => 'Contract - Service/Business Process Line'
7142 ,X_Result => Lx_result
7143 ,X_Return_Status => Lx_Return_Status);
7144
7145 IF Lx_result <> G_TRUE THEN
7146 RAISE L_EXCEP_NULL_VALUE;
7147 END IF;
7148
7149 --
7150 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
7151 --
7152 -- Validate_Service_Line
7153 -- (P_SVL_Id => Lx_SBL_Id
7154 -- ,P_Set_ExcepionStack => G_FALSE
7155 -- ,X_SVL_Start => Ld_SVL_Start
7156 -- ,X_SVL_End => Ld_SVL_End
7157 -- ,X_SVL_Terminated => Ld_SVL_Terminated
7158 -- ,X_Result => Lx_result
7159 -- ,X_Return_Status => Lx_Return_Status );
7160 --
7161 --
7162 -- Added for 12.0 Coverage Rearch project (JVARGHES)
7163 --
7164 Validate_Service_Line
7165 (P_SVL_Id => Lx_SBL_Id
7166 ,P_Set_ExcepionStack => G_FALSE
7167 ,X_CVL_Id => Ln_CVL_Id
7168 ,X_Std_Cov_YN => Lv_Std_Cov_YN
7169 ,X_SVL_Start => Ld_SVL_Start
7170 ,X_SVL_End => Ld_SVL_End
7171 ,X_SVL_Terminated => Ld_SVL_Terminated
7172 ,X_Result => Lx_result
7173 ,X_Return_Status => Lx_Return_Status );
7174
7175 --
7176 --
7177
7178 IF Lx_result <> G_TRUE THEN
7179 RAISE L_EXCEP_NULL_VALUE;
7180 END IF;
7181
7182 Li_TableIdx := 0;
7183
7184 FOR Idx IN Lx_Csr_PrefEngrs(Lx_SBL_Id) LOOP
7185
7186 --
7187 -- Added for 12.0 Coverage Rearch project (JVARGHES)
7188 --
7189
7190 IF Idx.Standard_Cov_YN = 'Y' THEN
7191
7192 Get_BP_Line_Start_Offset
7193 (P_BPL_Id => Idx.BPL_Id
7194 ,P_SVL_Start => Ld_SVL_Start
7195 ,X_BPL_OFS_Start => Ld_BPL_Start
7196 ,X_BPL_OFS_Duration => Ln_BPL_OFS_Duration
7197 ,X_BPL_OFS_UOM => Lv_BPL_OFS_UOM
7198 ,X_Return_Status => Lx_Return_Status);
7199
7200 IF Lx_Return_Status<> G_RET_STS_SUCCESS THEN
7201 RAISE L_EXCEP_NO_DATA_FOUND;
7202 END IF;
7203
7204 Ld_BPL_End := Ld_SVL_End;
7205
7206 ELSE
7207
7208 Ld_BPL_Start := Idx.BPL_Start_date;
7209 Ld_BPL_End := Idx.BPL_End_Date;
7210
7211 END IF;
7212
7213 ld_bpl_end := oks_entitlements_pvt.get_final_end_date(idx.ksl_dnz_chr_id,Ld_BPL_End );
7214
7215 --
7216
7217 IF trunc(nvl(Ld_Request_Date,sysdate)) between trunc(Ld_BPL_Start) and trunc(ld_bpl_end) then -- Added for Coverage Rearch project (JVARGHES)
7218
7219 Li_TableIdx := Li_TableIdx + 1;
7220
7221 Lx_Pref_Engineers(Li_TableIdx).Engineer_Id := Idx.Resource_Id;
7222 Lx_Pref_Engineers(Li_TableIdx).Resource_Type := Idx.Resource_Type;
7223 Lx_Pref_Engineers(Li_TableIdx).business_process_id := to_number(Idx.object1_id1);
7224 Lx_Pref_Engineers(Li_TableIdx).primary_flag := Idx.primary_yn;
7225 Lx_Pref_Engineers(Li_TableIdx).resource_class := Idx.resource_class;
7226
7227 END IF; -- Coverage Rearch project (JVARGHES)
7228
7229 END LOOP;
7230
7231 X_Pref_Engineers := Lx_Pref_Engineers;
7232 X_Result := Lx_Result;
7233 X_Return_Status := Lx_Return_Status;
7234
7235 EXCEPTION
7236
7237 WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_UNEXPECTED_ERR THEN
7238
7239 X_Result := Lx_Result;
7240 X_Return_Status := Lx_Return_Status;
7241
7242 WHEN L_EXCEP_INVALID_CONTRACT_LINE THEN
7243
7244 Lx_Result := G_FALSE;
7245
7246 IF Lx_Set_ExcepionStack = G_TRUE THEN
7247
7248 OKC_API.SET_MESSAGE
7249 (P_App_Name => G_APP_NAME_OKC
7250 ,P_Msg_Name => G_INVALID_VALUE
7251 ,P_Token1 => G_COL_NAME_TOKEN
7252 ,P_Token1_Value => 'Contract - Service/Business Process Line');
7253
7254 Lx_Return_Status := G_RET_STS_ERROR;
7255
7256 END IF;
7257
7258 X_Result := Lx_Result;
7259 X_Return_Status := Lx_Return_Status;
7260
7261 WHEN OTHERS THEN
7262
7263 OKC_API.SET_MESSAGE
7264 (P_App_Name => G_APP_NAME_OKC
7265 ,P_Msg_Name => G_UNEXPECTED_ERROR
7266 ,P_Token1 => G_SQLCODE_TOKEN
7267 ,P_Token1_Value => SQLCODE
7268 ,P_Token2 => G_SQLERRM_TOKEN
7269 ,P_Token2_Value => SQLERRM);
7270
7271 OKC_API.SET_MESSAGE
7272 (P_App_Name => G_APP_NAME_OKC
7273 ,P_Msg_Name => G_DEBUG_TOKEN
7274 ,P_Token1 => G_PACKAGE_TOKEN
7275 ,P_Token1_Value => G_PKG_NAME
7276 ,P_Token2 => G_PROGRAM_TOKEN
7277 ,P_Token2_Value => 'Get_Cont_Preferred_Engineers');
7278
7279 X_Result := G_FALSE;
7280 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7281
7282 END Get_Cont_Preferred_Engineers;
7283
7284 -----------------------------------------------------------------------------------------------------------------------*
7285
7286 PROCEDURE get_preferred_engineers
7287 (p_api_version IN Number
7288 ,p_init_msg_list IN Varchar2
7289 ,p_contract_line_id IN Number
7290 ,P_business_process_id IN NUMBER -- added for 11.5.9 (patchset I) enhancement # 2467065
7291 ,P_request_date IN DATE -- added for 11.5.9 (patchset I) enhancement # 2467065
7292 ,x_return_status out nocopy Varchar2
7293 ,x_msg_count out nocopy Number
7294 ,x_msg_data out nocopy Varchar2
7295 ,x_prf_engineers out nocopy prfeng_tbl_type)
7296 IS
7297 Lx_Result Gx_Boolean;
7298 BEGIN
7299
7300 Get_Cont_Preferred_Engineers
7301 (P_API_Version => P_API_Version
7302 ,P_Init_Msg_List => P_Init_Msg_List
7303 ,P_SVL_Id => P_Contract_Line_Id
7304 ,P_business_process_id => P_business_process_id -- added for 11.5.9 (patchset I) enhancement # 2467065
7305 ,P_request_date => P_request_date -- added for 11.5.9 (patchset I) enhancement # 2467065
7306 ,P_Set_ExcepionStack => G_TRUE
7307 ,X_Pref_Engineers => X_Prf_Engineers
7308 ,X_Msg_Count => X_Msg_Count
7309 ,X_Msg_Data => X_Msg_Data
7310 ,X_Result => Lx_Result
7311 ,X_Return_Status => X_Return_Status);
7312
7313 EXCEPTION
7314
7315 WHEN OTHERS THEN
7316
7317 OKC_API.SET_MESSAGE
7318 (P_App_Name => G_APP_NAME_OKC
7319 ,P_Msg_Name => G_UNEXPECTED_ERROR
7320 ,P_Token1 => G_SQLCODE_TOKEN
7321 ,P_Token1_Value => SQLCODE
7322 ,P_Token2 => G_SQLERRM_TOKEN
7323 ,P_Token2_Value => SQLERRM);
7324
7325 OKC_API.SET_MESSAGE
7326 (P_App_Name => G_APP_NAME_OKC
7327 ,P_Msg_Name => G_DEBUG_TOKEN
7328 ,P_Token1 => G_PACKAGE_TOKEN
7329 ,P_Token1_Value => G_PKG_NAME
7330 ,P_Token2 => G_PROGRAM_TOKEN
7331 ,P_Token2_Value => 'Get_Preferred_Engineers');
7332
7333 --X_Result := G_FALSE;
7334 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7335
7336 END Get_Preferred_Engineers;
7337
7338 -----------------------------------------------------------------------------------------------------------------------*
7339
7340 PROCEDURE Get_Contract_Contacts
7341 (P_API_Version IN NUMBER
7342 ,P_Init_Msg_List IN VARCHAR2
7343 ,P_Chr_Id IN Gx_OKS_Id
7344 ,P_Cle_Id IN Gx_OKS_Id
7345 ,X_Cont_Contacts OUT NOCOPY Ent_Contact_Tbl
7346 ,X_Msg_Count OUT NOCOPY NUMBER
7347 ,X_Msg_Data OUT NOCOPY VARCHAR2
7348 ,X_Result out nocopy Gx_Boolean
7349 ,X_Return_Status out nocopy Gx_Ret_Sts)
7350 IS
7351
7352 -- getting resource based contacts for contract id.
7353
7354 CURSOR Lx_Csr_Chr_RscContacts(Cx_Chr_Id IN Gx_OKS_Id) IS
7355 SELECT PR.DNZ_CHR_ID CONTRACT_ID
7356 ,CS.RESOURCE_ID CONTACT_ID
7357 ,CS.CATEGORY RSC_CATEGORY
7358 ,NULL CONTACT_NAME
7359 ,PR.ID CONTACT_ROLE_ID
7360 ,CO.CRO_CODE CONTACT_ROLE_CODE
7361 ,HDR.ORG_ID ORG_ID -- Modified for 12.0 MOAC project (JVARGHES)
7362 FROM JTF_RS_RESOURCE_EXTNS CS --OKX_RESOURCES_V CS
7363 ,OKC_CONTACTS CO
7364 ,OKC_K_PARTY_ROLES_B PR
7365 ,OKC_K_HEADERS_ALL_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
7366 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7367
7368 -- Modified for 12.0 MOAC project (JVARGHES)
7369 AND HDR.ID = Cx_Chr_Id
7370 AND HDR.ID = PR.Dnz_Chr_Id
7371
7372 and co.dnz_chr_id = pr.dnz_chr_id
7373 AND CO.CPL_ID = PR.ID
7374 AND CO.OBJECT1_ID1 = CS.RESOURCE_ID --CS.ID1
7375 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7376 AND CO.JTOT_OBJECT1_CODE = 'OKX_RESOURCE';
7377
7378 -- getting po agents based contacts for contract id.
7379
7380 CURSOR Lx_Csr_Chr_POAContacts(Cx_Chr_Id IN Gx_OKS_Id) IS
7381 SELECT PR.DNZ_CHR_ID CONTRACT_ID
7382 ,POA.AGENT_ID CONTACT_ID
7383 ,'PO_AGENT' RSC_CATEGORY
7384 ,PER.FULL_NAME CONTACT_NAME
7385 ,PR.ID CONTACT_ROLE_ID
7386 ,CO.CRO_CODE CONTACT_ROLE_CODE
7387 FROM PO_AGENTS POA --OKX_BUYERS_V CS
7388 ,PER_ALL_PEOPLE_F PER
7389 ,OKC_CONTACTS CO
7390 ,OKC_K_PARTY_ROLES_B PR
7391 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7392 and co.dnz_chr_id = pr.dnz_chr_id
7393 AND CO.CPL_ID = PR.ID
7394 AND CO.OBJECT1_ID1 = POA.AGENT_ID --CS.ID1
7395 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7396 AND CO.JTOT_OBJECT1_CODE = 'OKX_BUYER'
7397 and POA.AGENT_ID = PER.PERSON_ID
7398 and PER.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_PEOPLE_F A
7399 WHERE A.PERSON_ID = PER.PERSON_ID);
7400
7401 -- getting sales persons based contacts for contract id.
7402
7403 CURSOR Lx_Csr_Chr_SRPContacts(Cx_Chr_Id IN Gx_OKS_Id) IS
7404 SELECT PR.DNZ_CHR_ID CONTRACT_ID
7405 ,S.SALESREP_ID CONTACT_ID
7406 ,CS.CATEGORY RSC_CATEGORY
7407 ,TL.RESOURCE_NAME CONTACT_NAME
7408 ,PR.ID CONTACT_ROLE_ID
7409 ,CO.CRO_CODE CONTACT_ROLE_CODE
7410 FROM JTF_RS_RESOURCE_EXTNS CS
7411 ,JTF_RS_SALESREPS S
7412 ,JTF_RS_RESOURCE_EXTNS_TL TL -- Bug Fix #5442182 hmnair
7413 ,OKC_CONTACTS CO
7414 ,OKC_K_PARTY_ROLES_B PR
7415 ,OKC_K_HEADERS_ALL_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
7416 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7417 AND co.dnz_chr_id = pr.dnz_chr_id
7418 AND CO.CPL_ID = PR.ID
7419 AND CO.OBJECT1_ID1 = S.SALESREP_ID --CS.ID1
7420 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7421 AND CO.JTOT_OBJECT1_CODE = 'OKX_SALEPERS'
7422
7423 -- Modified for 12.0 MOAC project (JVARGHES)
7424 AND HDR.ID = Cx_Chr_Id
7425 AND HDR.ID = PR.Dnz_Chr_Id
7426 AND S.ORG_ID = HDR.ORG_ID
7427 -- AND (S.ORG_ID = SYS_CONTEXT('OKC_CONTEXT','ORG_ID') OR NVL(SYS_CONTEXT('OKC_CONTEXT','ORG_ID'),-99) = -99)
7428 AND S.RESOURCE_ID = CS.RESOURCE_ID
7429 AND CS.CATEGORY in ('EMPLOYEE','OTHER','PARTY','PARTNER','SUPPLIER_CONTACT')
7430 AND TL.RESOURCE_ID = CS.RESOURCE_ID -- Bug Fix #5442182 hmnair
7431 AND TL.LANGUAGE = USERENV('LANG')
7432 AND TL.CATEGORY = CS.CATEGORY;
7433
7434 -- getting resource based contacts for contract line id.
7435
7436 CURSOR Lx_Csr_Cle_RscContacts(Cx_Cle_Id IN Gx_OKS_Id,Cx_Chr_Id IN Gx_OKS_Id) IS
7437 SELECT PR.DNZ_CHR_ID CONTRACT_ID
7438 ,CS.RESOURCE_ID CONTACT_ID
7439 ,CS.CATEGORY RSC_CATEGORY
7440 ,NULL CONTACT_NAME
7441 ,PR.ID CONTACT_ROLE_ID
7442 ,CO.CRO_CODE CONTACT_ROLE_CODE
7443 ,HDR.ORG_ID ORG_ID -- Modified for 12.0 MOAC project (JVARGHES)
7444 FROM JTF_RS_RESOURCE_EXTNS CS --OKX_RESOURCES_V CS
7445 ,OKC_CONTACTS CO
7446 ,OKC_K_PARTY_ROLES_B PR
7447 ,OKC_K_HEADERS_ALL_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
7448 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7449 and PR.CLE_ID = Cx_Cle_Id
7450
7451 -- Modified for 12.0 MOAC project (JVARGHES)
7452 AND HDR.ID = Cx_Chr_Id
7453 AND HDR.ID = PR.Dnz_Chr_Id
7454 --
7455 and co.dnz_chr_id = pr.dnz_chr_id
7456 AND CO.CPL_ID = PR.ID
7457 AND CO.OBJECT1_ID1 = CS.RESOURCE_ID --CS.ID1
7458 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7459 AND CO.JTOT_OBJECT1_CODE = 'OKX_RESOURCE';
7460
7461 -- getting po agents based contacts for contract line id.
7462
7463 CURSOR Lx_Csr_Cle_POAContacts(Cx_Cle_Id IN Gx_OKS_Id,Cx_Chr_Id IN Gx_OKS_Id) IS
7464 SELECT PR.DNZ_CHR_ID CONTRACT_ID
7465 ,POA.AGENT_ID CONTACT_ID
7466 ,'PO_AGENT' RSC_CATEGORY
7467 ,PER.FULL_NAME CONTACT_NAME
7468 ,PR.ID CONTACT_ROLE_ID
7469 ,CO.CRO_CODE CONTACT_ROLE_CODE
7470 FROM PO_AGENTS POA --OKX_BUYERS_V CS
7471 ,PER_ALL_PEOPLE_F PER
7472 ,OKC_CONTACTS CO
7473 ,OKC_K_PARTY_ROLES_B PR
7474 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7475 and PR.CLE_ID = Cx_Cle_Id
7476 and co.dnz_chr_id = pr.dnz_chr_id
7477 AND CO.CPL_ID = PR.ID
7478 AND CO.OBJECT1_ID1 = POA.AGENT_ID --CS.ID1
7479 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7480 AND CO.JTOT_OBJECT1_CODE = 'OKX_BUYER'
7481 and POA.AGENT_ID = PER.PERSON_ID
7482 and PER.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_PEOPLE_F A
7483 WHERE A.PERSON_ID = PER.PERSON_ID);
7484
7485
7486 -- getting sales persons based contacts for contract line id.
7487
7488 CURSOR Lx_Csr_Cle_SRPContacts(Cx_Cle_Id IN Gx_OKS_Id,Cx_Chr_Id IN Gx_OKS_Id) IS
7489 SELECT PR.DNZ_CHR_ID CONTRACT_ID
7490 ,S.SALESREP_ID CONTACT_ID
7491 ,CS.CATEGORY RSC_CATEGORY
7492 ,TL.RESOURCE_NAME CONTACT_NAME -- Bug Fix #5442182 hmnair
7493 ,PR.ID CONTACT_ROLE_ID
7494 ,CO.CRO_CODE CONTACT_ROLE_CODE
7495 FROM JTF_RS_RESOURCE_EXTNS CS
7496 ,JTF_RS_SALESREPS S
7497 ,JTF_RS_RESOURCE_EXTNS_TL TL -- Bug Fix #5442182 hmnair
7498 ,OKC_CONTACTS CO
7499 ,OKC_K_PARTY_ROLES_B PR
7500 ,OKC_K_HEADERS_ALL_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
7501 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7502 and PR.CLE_ID = Cx_Cle_Id
7503 and co.dnz_chr_id = pr.dnz_chr_id
7504 AND CO.CPL_ID = PR.ID
7505 AND CO.OBJECT1_ID1 = S.SALESREP_ID --CS.ID1
7506 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7507 AND CO.JTOT_OBJECT1_CODE = 'OKX_SALEPERS'
7508
7509 -- Modified for 12.0 MOAC project (JVARGHES)
7510 AND HDR.ID = Cx_Chr_Id
7511 AND HDR.ID = PR.Dnz_Chr_Id
7512 AND S.ORG_ID = HDR.Org_ID
7513 -- AND (S.ORG_ID = SYS_CONTEXT('OKC_CONTEXT','ORG_ID') OR NVL(SYS_CONTEXT('OKC_CONTEXT','ORG_ID'),-99) = -99)
7514 AND S.RESOURCE_ID = CS.RESOURCE_ID
7515 AND CS.CATEGORY in ('EMPLOYEE','OTHER','PARTY','PARTNER','SUPPLIER_CONTACT')
7516 AND TL.RESOURCE_ID = CS.RESOURCE_ID -- Bug Fix #5442182 hmnair
7517 AND TL.LANGUAGE = USERENV('LANG')
7518 AND TL.CATEGORY = CS.CATEGORY;
7519
7520
7521 CURSOR Lx_Csr_dnz_Chr(Cx_Cle_Id IN Gx_OKS_Id) IS
7522 SELECT CLE.DNZ_CHR_ID CONTRACT_ID
7523 FROM Okc_K_lines_B cle
7524 WHERE cle.id = Cx_Cle_Id
7525 AND rownum = 1;
7526
7527 -- for category 'SUPPLIER_CONTACT'
7528
7529 CURSOR Lx_Csr_vndr_name(Cx_Resource_Id IN number, cn_org_id in number) IS
7530 SELECT C.LAST_NAME NAME
7531 FROM JTF_RS_RESOURCE_EXTNS RSC ,
7532 PO_VENDOR_SITES_ALL S ,
7533 PO_VENDOR_CONTACTS C
7534 WHERE RSC.RESOURCE_ID = Cx_Resource_Id
7535 and C.VENDOR_CONTACT_ID = RSC.SOURCE_ID
7536 and S.VENDOR_SITE_ID = C.VENDOR_SITE_ID
7537 AND S.ORG_ID = cn_org_id ; -- Modified for 12.0 MOAC project (JVARGHES)
7538 -- AND S.ORG_ID = sys_context('OKC_CONTEXT','ORG_ID'); -- Modified for 12.0 MOAC project (JVARGHES)
7539
7540 -- for category 'EMPLOYEE'
7541
7542 CURSOR Lx_Csr_emp_name(Cx_Resource_Id IN number) IS
7543 SELECT PER.FULL_NAME NAME
7544 FROM JTF_RS_RESOURCE_EXTNS RSC ,
7545 FND_USER U ,
7546 PER_ALL_PEOPLE_F PER
7547 WHERE PER.PERSON_ID = RSC.SOURCE_ID
7548 and U.USER_ID = RSC.USER_ID
7549 and RSC.RESOURCE_ID = Cx_Resource_Id
7550 and PER.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_PEOPLE_F A
7551 WHERE A.PERSON_ID = PER.PERSON_ID);
7552
7553 -- for category 'PARTNER', 'PARTY'
7554
7555 CURSOR Lx_Csr_pty_name(Cx_Resource_Id IN number) IS
7556 SELECT PARTY.PARTY_NAME NAME
7557 FROM JTF_RS_RESOURCE_EXTNS RSC ,
7558 FND_USER U ,
7559 HZ_PARTIES PARTY
7560 WHERE RSC.CATEGORY IN ( 'PARTNER', 'PARTY')
7561 AND PARTY.PARTY_ID = RSC.SOURCE_ID
7562 AND U.USER_ID = RSC.USER_ID
7563 and RSC.RESOURCE_ID = Cx_Resource_Id;
7564
7565
7566 -- for category 'OTHER'
7567
7568 CURSOR Lx_Csr_oth_name(Cx_Resource_Id IN number, cn_org_id in number) IS
7569 SELECT TL.RESOURCE_NAME NAME -- Bug Fix #5442182 hmnair
7570 FROM JTF_RS_RESOURCE_EXTNS RSC ,
7571 FND_USER U ,
7572 JTF_RS_SALESREPS SRP
7573 ,JTF_RS_RESOURCE_EXTNS_TL TL -- Bug Fix #5442182 hmnair
7574 WHERE RSC.CATEGORY = 'OTHER'
7575 AND SRP.RESOURCE_ID = RSC.RESOURCE_ID
7576 AND U.USER_ID = RSC.USER_ID
7577 AND SRP.Org_ID = Cn_Org_Id -- Modified for 12.0 MOAC project (JVARGHES)
7578 --AND SRP.ORG_ID = sys_context ('OKC_CONTEXT', 'ORG_ID') -- Modified for 12.0 MOAC project (JVARGHES)
7579 AND TL.RESOURCE_ID = RSC.RESOURCE_ID -- Bug Fix #5442182 hmnair
7580 AND TL.LANGUAGE = USERENV('LANG')
7581 AND TL.CATEGORY = RSC.CATEGORY
7582 and RSC.RESOURCE_ID = Cx_Resource_Id;
7583
7584 -- cursor for building role meanings plsql table
7585
7586 CURSOR Lx_Csr_Rle_lkup IS
7587 SELECT LU.LOOKUP_CODE CODE,
7588 LU.MEANING MEANING
7589 FROM fnd_lookups lu
7590 WHERE LU.LOOKUP_TYPE = 'OKC_CONTACT_ROLE';
7591
7592
7593 Lx_Chr_Id CONSTANT Gx_OKS_Id := P_Chr_Id;
7594 Lx_Cle_Id CONSTANT Gx_OKS_Id := P_Cle_Id;
7595
7596 Lx_Dnz_Chr_Id Gx_OKS_Id ;
7597
7598 Lx_Cont_Contacts Ent_Contact_Tbl;
7599 Lx_Result Gx_Boolean;
7600 Lx_Return_Status Gx_Ret_Sts;
7601 l_Rle_Lkup_TBL Rle_Lkup_TBL;
7602
7603 Li_TableIdx BINARY_INTEGER;
7604 i BINARY_INTEGER;
7605
7606 BEGIN
7607
7608 Lx_Result := G_TRUE;
7609 Lx_Return_Status := G_RET_STS_SUCCESS;
7610
7611 i := 0;
7612
7613 -- getting dnz_chr_id if cle_id passed to be used in sqls for performance reasons
7614
7615 IF Lx_Cle_Id IS NOT NULL THEN
7616
7617 FOR Idx IN Lx_Csr_dnz_Chr(Lx_Cle_Id) LOOP
7618
7619 Lx_Dnz_Chr_Id := Idx.Contract_Id;
7620
7621 END LOOP;
7622
7623 END IF;
7624
7625 -- building role meaning plsql table for performance reasons.
7626
7627 for Rle_lkup in Lx_Csr_Rle_lkup loop
7628 i := i + 1;
7629 l_Rle_Lkup_TBL(i).code := Rle_lkup.code;
7630 l_Rle_Lkup_TBL(i).meaning := Rle_lkup.meaning;
7631
7632 end loop;
7633
7634 -- actual processing starts here..
7635
7636 Li_TableIdx := 0;
7637
7638 -- building contacts output plsql table for jtf resource based contacts
7639 IF Lx_Cle_Id IS NOT NULL THEN
7640
7641 FOR Idx IN Lx_Csr_Cle_RscContacts(Lx_Cle_Id,Lx_Dnz_Chr_Id) LOOP
7642
7643 if Idx.Rsc_Category = 'SUPPLIER_CONTACT' then
7644 for Lx_Rec_vndr_name in Lx_Csr_vndr_name(Idx.Contact_Id, idx.org_id) loop
7645 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7646 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7647 Li_TableIdx := Li_TableIdx + 1;
7648 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7649 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7650 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_Rec_vndr_name.name;
7651 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7652 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7653 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7654 end if;
7655 end loop;
7656 end loop;
7657 end if;
7658
7659 if Idx.Rsc_Category = 'EMPLOYEE' then
7660 for Lx_rec_emp_name in Lx_Csr_emp_name(Idx.Contact_Id) loop
7661 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7662 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7663 Li_TableIdx := Li_TableIdx + 1;
7664 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7665 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7666 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_emp_name.name;
7667 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7668 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7669 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7670 end if;
7671 end loop;
7672 end loop;
7673 end if;
7674
7675
7676 if Idx.Rsc_Category in ('PARTNER','PARTY') then
7677 for Lx_rec_pty_name in Lx_Csr_pty_name(Idx.Contact_Id) loop
7678 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7679 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7680 Li_TableIdx := Li_TableIdx + 1;
7681 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7682 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7683 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_pty_name.name;
7684 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7685 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7686 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7687 end if;
7688 end loop;
7689 end loop;
7690 end if;
7691
7692 if Idx.Rsc_Category = ('OTHER') then
7693 for Lx_rec_oth_name in Lx_Csr_oth_name(Idx.Contact_Id, idx.org_id) loop
7694 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7695 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7696 Li_TableIdx := Li_TableIdx + 1;
7697 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7698 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7699 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_oth_name.name;
7700 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7701 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7702 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7703 end if;
7704 end loop;
7705 end loop;
7706 end if;
7707
7708 END LOOP;
7709
7710 -- building contacts output plsql table for buyers based contacts
7711
7712 FOR Idx IN Lx_Csr_Cle_POAContacts(Lx_Cle_Id,Lx_Dnz_Chr_Id) LOOP
7713 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7714 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7715 Li_TableIdx := Li_TableIdx + 1;
7716 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7717 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7718 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Idx.contact_name;
7719 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7720 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7721 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7722 end if;
7723 end loop;
7724 END LOOP;
7725
7726 -- building contacts output plsql table for sales persons based contacts
7727
7728 FOR Idx IN Lx_Csr_Cle_SRPContacts(Lx_Cle_Id,Lx_Dnz_Chr_Id) LOOP
7729 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7730 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7731 Li_TableIdx := Li_TableIdx + 1;
7732 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7733 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7734 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Idx.contact_name;
7735 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7736 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7737 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7738 end if;
7739 end loop;
7740 END LOOP;
7741
7742 else
7743
7744 FOR Idx IN Lx_Csr_Chr_RscContacts(Lx_Chr_Id) LOOP
7745
7746 if Idx.Rsc_Category = 'SUPPLIER_CONTACT' then
7747 for Lx_Rec_vndr_name in Lx_Csr_vndr_name(Idx.Contact_Id, idx.org_id) loop
7748 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7749 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7750 Li_TableIdx := Li_TableIdx + 1;
7751 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7752 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7753 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_Rec_vndr_name.name;
7754 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7755 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7756 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7757 end if;
7758 end loop;
7759 end loop;
7760 end if;
7761
7762 if Idx.Rsc_Category = 'EMPLOYEE' then
7763 for Lx_rec_emp_name in Lx_Csr_emp_name(Idx.Contact_Id) loop
7764 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7765 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7766 Li_TableIdx := Li_TableIdx + 1;
7767 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7768 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7769 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_emp_name.name;
7770 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7771 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7772 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7773 end if;
7774 end loop;
7775 end loop;
7776 end if;
7777
7778
7779 if Idx.Rsc_Category in ('PARTNER','PARTY') then
7780 for Lx_rec_pty_name in Lx_Csr_pty_name(Idx.Contact_Id) loop
7781 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7782 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7783 Li_TableIdx := Li_TableIdx + 1;
7784 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7785 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7786 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_pty_name.name;
7787 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7788 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7789 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7790 end if;
7791 end loop;
7792 end loop;
7793 end if;
7794
7795 if Idx.Rsc_Category = ('OTHER') then
7796 for Lx_rec_oth_name in Lx_Csr_oth_name(Idx.Contact_Id, idx.org_id) loop
7797 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7798 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7799 Li_TableIdx := Li_TableIdx + 1;
7800 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7801 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7802 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_oth_name.name;
7803 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7804 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7805 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7806 end if;
7807 end loop;
7808 end loop;
7809 end if;
7810
7811 END LOOP;
7812
7813 -- building contacts output plsql table for buyers based contacts
7814
7815 FOR Idx IN Lx_Csr_Chr_POAContacts(Lx_Chr_Id) LOOP
7816 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7817 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7818 Li_TableIdx := Li_TableIdx + 1;
7819 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7820 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7821 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Idx.contact_name;
7822 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7823 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7824 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7825 end if;
7826 end loop;
7827 END LOOP;
7828
7829 -- building contacts output plsql table for sales persons based contacts
7830
7831 FOR Idx IN Lx_Csr_Chr_SRPContacts(Lx_Chr_Id) LOOP
7832 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7833 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7834 Li_TableIdx := Li_TableIdx + 1;
7835 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7836 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7837 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Idx.contact_name;
7838 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7839 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7840 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7841 end if;
7842 end loop;
7843 END LOOP;
7844
7845 end if;
7846
7847 X_Cont_Contacts := Lx_Cont_Contacts;
7848 X_Result := Lx_Result;
7849 X_Return_Status := Lx_Return_Status;
7850
7851 EXCEPTION
7852
7853 WHEN OTHERS THEN
7854
7855 OKC_API.SET_MESSAGE
7856 (P_App_Name => G_APP_NAME_OKC
7857 ,P_Msg_Name => G_UNEXPECTED_ERROR
7858 ,P_Token1 => G_SQLCODE_TOKEN
7859 ,P_Token1_Value => SQLCODE
7860 ,P_Token2 => G_SQLERRM_TOKEN
7861 ,P_Token2_Value => SQLERRM);
7862
7863 OKC_API.SET_MESSAGE
7864 (P_App_Name => G_APP_NAME_OKC
7865 ,P_Msg_Name => G_DEBUG_TOKEN
7866 ,P_Token1 => G_PACKAGE_TOKEN
7867 ,P_Token1_Value => G_PKG_NAME
7868 ,P_Token2 => G_PROGRAM_TOKEN
7869 ,P_Token2_Value => 'Get_Contract_Contacts');
7870
7871 X_Result := G_FALSE;
7872 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7873
7874 END Get_Contract_Contacts;
7875
7876 -----------------------------------------------------------------------------------------------------------------------*
7877
7878 PROCEDURE Get_Contacts
7879 (P_API_Version IN NUMBER
7880 ,P_Init_Msg_List IN VARCHAR2
7881 ,P_Contract_Id IN NUMBER
7882 ,P_Contract_Line_Id IN NUMBER
7883 ,X_Return_Status OUT NOCOPY VARCHAR2
7884 ,X_Msg_Count OUT NOCOPY NUMBER
7885 ,X_Msg_Data OUT NOCOPY VARCHAR2
7886 ,X_Ent_Contacts OUT NOCOPY Ent_Contact_Tbl)
7887 IS
7888
7889 Lx_Result Gx_Boolean;
7890
7891 BEGIN
7892
7893 Get_Contract_Contacts
7894 (P_API_Version => P_API_Version
7895 ,P_Init_Msg_List => P_Init_Msg_List
7896 ,P_Chr_Id => P_Contract_Id
7897 ,P_Cle_Id => P_Contract_Line_Id
7898 ,X_Cont_Contacts => X_Ent_Contacts
7899 ,X_Msg_Count => X_Msg_Count
7900 ,X_Msg_Data => X_Msg_Data
7901 ,X_Result => Lx_Result
7902 ,X_Return_Status => X_Return_Status);
7903
7904 EXCEPTION
7905
7906 WHEN OTHERS THEN
7907
7908 OKC_API.SET_MESSAGE
7909 (P_App_Name => G_APP_NAME_OKC
7910 ,P_Msg_Name => G_UNEXPECTED_ERROR
7911 ,P_Token1 => G_SQLCODE_TOKEN
7912 ,P_Token1_Value => SQLCODE
7913 ,P_Token2 => G_SQLERRM_TOKEN
7914 ,P_Token2_Value => SQLERRM);
7915
7916 OKC_API.SET_MESSAGE
7917 (P_App_Name => G_APP_NAME_OKC
7918 ,P_Msg_Name => G_DEBUG_TOKEN
7919 ,P_Token1 => G_PACKAGE_TOKEN
7920 ,P_Token1_Value => G_PKG_NAME
7921 ,P_Token2 => G_PROGRAM_TOKEN
7922 ,P_Token2_Value => 'Get_Contacts');
7923
7924 --X_Result := G_FALSE;
7925 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7926
7927 END Get_Contacts;
7928
7929 -----------------------------------------------------------------------------------------------------------------------*
7930
7931 PROCEDURE Append_ContItem_PlSql_Table
7932 (P_Input_Tab IN GT_ContItem_Ref
7933 ,P_Append_Tab IN GT_ContItem_Ref
7934 ,X_Output_Tab out nocopy GT_ContItem_Ref
7935 ,X_Result out nocopy Gx_Boolean
7936 ,X_Return_Status out nocopy Gx_Ret_Sts)
7937 IS
7938
7939 Lx_Input_Tab GT_ContItem_Ref;
7940 Lx_Output_Tab GT_ContItem_Ref;
7941
7942 Li_In_TableIdx BINARY_INTEGER;
7943 Li_Out_TableIdx BINARY_INTEGER;
7944
7945 Lx_Result Gx_Boolean;
7946 Lx_Return_Status Gx_Ret_Sts;
7947
7948 BEGIN
7949
7950 Lx_Input_Tab := P_Input_Tab;
7951 Lx_Output_Tab := P_Append_Tab;
7952
7953 Lx_Result := G_TRUE;
7954 Lx_Return_Status := G_RET_STS_SUCCESS;
7955
7956 Li_In_TableIdx := Lx_Input_Tab.FIRST;
7957 Li_Out_TableIdx := NVL(Lx_Output_Tab.LAST,0);
7958
7959 WHILE Li_In_TableIdx IS NOT NULL LOOP
7960
7961 Li_Out_TableIdx := Li_Out_TableIdx + 1;
7962 Lx_Output_Tab(Li_Out_TableIdx) := Lx_Input_Tab(Li_In_TableIdx);
7963 Li_In_TableIdx := Lx_Input_Tab.NEXT(Li_In_TableIdx);
7964
7965 END LOOP;
7966
7967 X_Output_Tab := Lx_Output_Tab;
7968
7969 X_Result := Lx_Result;
7970 X_Return_Status := Lx_Return_Status;
7971
7972 EXCEPTION
7973
7974 WHEN OTHERS THEN
7975
7976 OKC_API.SET_MESSAGE
7977 (P_App_Name => G_APP_NAME_OKC
7978 ,P_Msg_Name => G_UNEXPECTED_ERROR
7979 ,P_Token1 => G_SQLCODE_TOKEN
7980 ,P_Token1_Value => SQLCODE
7981 ,P_Token2 => G_SQLERRM_TOKEN
7982 ,P_Token2_Value => SQLERRM);
7983
7984 OKC_API.SET_MESSAGE
7985 (P_App_Name => G_APP_NAME_OKC
7986 ,P_Msg_Name => G_DEBUG_TOKEN
7987 ,P_Token1 => G_PACKAGE_TOKEN
7988 ,P_Token1_Value => G_PKG_NAME
7989 ,P_Token2 => G_PROGRAM_TOKEN
7990 ,P_Token2_Value => 'Append_ContItem_PlSql_Table');
7991
7992 X_Result := G_FALSE;
7993 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7994
7995 END Append_ContItem_PlSql_Table;
7996
7997 -----------------------------------------------------------------------------------------------------------------------*
7998
7999 PROCEDURE Get_Item_CovLevels
8000 (P_CovItem_Obj_Id IN Gx_OKS_Id
8001 ,P_Organization_Id IN NUMBER
8002 ,X_Item_CovLevels out nocopy GT_ContItem_Ref
8003 ,X_Result out nocopy Gx_Boolean
8004 ,X_Return_Status out nocopy Gx_Ret_Sts)
8005 IS
8006
8007 CURSOR Lx_Csr_CovItem(Cx_CovItem_Id IN Gx_OKS_Id
8008 ,Cn_Organization_Id IN NUMBER) IS
8009 SELECT '*'
8010 FROM Okx_System_Items_V CI
8011 WHERE CI.Id1 = Cx_CovItem_Id
8012 -- AND CI.Id2 = Cn_Organization_Id -- Bug# 4735542
8013 AND CI.Serviceable_Product_Flag ='Y';
8014 -- AND CI.Organization_Id = Cn_Organization_Id; -- Bug# 4735542
8015
8016 Lx_CovItem_Obj_Id CONSTANT Gx_OKS_Id := P_CovItem_Obj_Id;
8017 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
8018
8019 Lx_Item_CovLevels GT_ContItem_Ref;
8020 Lv_Dummy VARCHAR2(1);
8021 Lx_Result Gx_Boolean;
8022 Lx_Return_Status Gx_Ret_Sts;
8023 Li_TableIdx BINARY_INTEGER;
8024
8025 L_EXCEP_NO_DATA_FOUND EXCEPTION;
8026
8027 BEGIN
8028
8029 Lx_Result := G_TRUE;
8030 Lx_Return_Status := G_RET_STS_SUCCESS;
8031
8032 OPEN Lx_Csr_CovItem(Lx_CovItem_Obj_Id,Ln_organization_Id);
8033 FETCH Lx_Csr_CovItem INTO Lv_Dummy;
8034
8035 IF Lx_Csr_CovItem%NOTFOUND THEN
8036 RAISE L_EXCEP_NO_DATA_FOUND;
8037 END IF;
8038
8039 CLOSE Lx_Csr_CovItem;
8040
8041 Li_TableIdx := 1;
8042
8043 Lx_Item_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Lx_CovItem_Obj_Id;
8044 Lx_Item_CovLevels(Li_TableIdx).Rx_Obj1Id2 := Ln_organization_Id;
8045 Lx_Item_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_COVITEM';
8046
8047 X_Item_CovLevels := Lx_Item_CovLevels;
8048 X_Result := Lx_Result;
8049 X_Return_Status := Lx_Return_Status;
8050
8051 EXCEPTION
8052
8053 WHEN L_EXCEP_NO_DATA_FOUND THEN
8054
8055 IF Lx_Csr_CovItem%ISOPEN THEN
8056 CLOSE Lx_Csr_CovItem;
8057 END IF;
8058
8059 X_Result := G_TRUE;
8060 X_Return_Status := G_TRUE;
8061
8062 WHEN OTHERS THEN
8063
8064 OKC_API.SET_MESSAGE
8065 (P_App_Name => G_APP_NAME_OKC
8066 ,P_Msg_Name => G_UNEXPECTED_ERROR
8067 ,P_Token1 => G_SQLCODE_TOKEN
8068 ,P_Token1_Value => SQLCODE
8069 ,P_Token2 => G_SQLERRM_TOKEN
8070 ,P_Token2_Value => SQLERRM);
8071
8072 OKC_API.SET_MESSAGE
8073 (P_App_Name => G_APP_NAME_OKC
8074 ,P_Msg_Name => G_DEBUG_TOKEN
8075 ,P_Token1 => G_PACKAGE_TOKEN
8076 ,P_Token1_Value => G_PKG_NAME
8077 ,P_Token2 => G_PROGRAM_TOKEN
8078 ,P_Token2_Value => 'Get_Item_CovLevels');
8079
8080 X_Result := G_FALSE;
8081 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8082
8083 END Get_Item_CovLevels;
8084
8085 -----------------------------------------------------------------------------------------------------------------------*
8086
8087 PROCEDURE Get_Party_CovLevels
8088 (P_CovParty_Obj_Id IN Gx_OKS_Id
8089 ,X_Party_CovLevels out nocopy GT_ContItem_Ref
8090 ,X_Result out nocopy Gx_Boolean
8091 ,X_Return_Status out nocopy Gx_Ret_Sts)
8092 IS
8093
8094 CURSOR Lx_Csr_CovParty(Cx_CovParty_Id IN Gx_OKS_Id ) IS
8095 SELECT '*'
8096 FROM Okx_Parties_V PY
8097 WHERE PY.Id1 = Cx_CovParty_Id
8098 AND PY.Id2 = '#';
8099
8100 Lx_CovParty_Obj_Id CONSTANT Gx_OKS_Id := P_CovParty_Obj_Id;
8101
8102 Lx_Party_CovLevels GT_ContItem_Ref;
8103 Lv_Dummy VARCHAR2(1);
8104 Lx_Result Gx_Boolean;
8105 Lx_Return_Status Gx_Ret_Sts;
8106
8107 Li_TableIdx BINARY_INTEGER;
8108 L_EXCEP_NO_DATA_FOUND EXCEPTION;
8109
8110 BEGIN
8111
8112 Lx_Result := G_TRUE;
8113 Lx_Return_Status := G_RET_STS_SUCCESS;
8114
8115 OPEN Lx_Csr_CovParty(Lx_CovParty_Obj_Id);
8116 FETCH Lx_Csr_CovParty INTO Lv_Dummy;
8117
8118 IF Lx_Csr_CovParty%NOTFOUND THEN
8119 RAISE L_EXCEP_NO_DATA_FOUND;
8120 END IF;
8121
8122 CLOSE Lx_Csr_CovParty;
8123
8124 Li_TableIdx := 1;
8125
8126 Lx_Party_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Lx_CovParty_Obj_Id;
8127 Lx_Party_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
8128 Lx_Party_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_PARTY';
8129
8130 X_Party_CovLevels := Lx_Party_CovLevels;
8131 X_Result := Lx_Result;
8132 X_Return_Status := Lx_Return_Status;
8133
8134 EXCEPTION
8135
8136 WHEN L_EXCEP_NO_DATA_FOUND THEN
8137
8138 IF Lx_Csr_CovParty%ISOPEN THEN
8139 CLOSE Lx_Csr_CovParty;
8140 END IF;
8141
8142 X_Result := G_TRUE;
8143 X_Return_Status := G_TRUE;
8144
8145 WHEN OTHERS THEN
8146
8147 OKC_API.SET_MESSAGE
8148 (P_App_Name => G_APP_NAME_OKC
8149 ,P_Msg_Name => G_UNEXPECTED_ERROR
8150 ,P_Token1 => G_SQLCODE_TOKEN
8151 ,P_Token1_Value => SQLCODE
8152 ,P_Token2 => G_SQLERRM_TOKEN
8153 ,P_Token2_Value => SQLERRM);
8154
8155 OKC_API.SET_MESSAGE
8156 (P_App_Name => G_APP_NAME_OKC
8157 ,P_Msg_Name => G_DEBUG_TOKEN
8158 ,P_Token1 => G_PACKAGE_TOKEN
8159 ,P_Token1_Value => G_PKG_NAME
8160 ,P_Token2 => G_PROGRAM_TOKEN
8161 ,P_Token2_Value => 'Get_Party_CovLevels');
8162
8163 X_Result := G_FALSE;
8164 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8165
8166 END Get_Party_CovLevels;
8167
8168 -----------------------------------------------------------------------------------------------------------------------*
8169
8170 PROCEDURE Get_Customer_CovLevels
8171 (P_CovCust_Obj_Id IN Gx_OKS_Id
8172 ,X_Party_Id out nocopy Gx_OKS_Id
8173 ,X_Customer_CovLevels out nocopy GT_ContItem_Ref
8174 ,X_Result out nocopy Gx_Boolean
8175 ,X_Return_Status out nocopy Gx_Ret_Sts)
8176 IS
8177
8178 CURSOR Lx_Csr_CovCust(Cx_CovCust_Id IN Gx_OKS_Id) IS
8179 SELECT CA.Party_Id
8180 FROM Okx_Customer_Accounts_V CA
8181 WHERE CA.Id1 = Cx_CovCust_Id
8182 AND CA.Id2 = '#';
8183
8184 Lx_CovCust_Obj_Id CONSTANT Gx_OKS_Id := P_CovCust_Obj_Id;
8185
8186 Lx_Customer_CovLevels GT_ContItem_Ref;
8187 Lx_Customer_CovLevels_Out GT_ContItem_Ref;
8188 Lx_Customer_Party GT_ContItem_Ref;
8189
8190 Lx_Result Gx_Boolean;
8191 Lx_Return_Status Gx_Ret_Sts;
8192
8193 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
8194
8195 Li_TableIdx BINARY_INTEGER;
8196 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
8197 L_EXCEP_NO_DATA_FOUND EXCEPTION;
8198
8199 BEGIN
8200
8201 Lx_Result := G_TRUE;
8202 Lx_Return_Status := G_RET_STS_SUCCESS;
8203
8204 OPEN Lx_Csr_CovCust(Lx_CovCust_Obj_Id);
8205 FETCH Lx_Csr_CovCust INTO Lx_Party_Id;
8206
8207 IF Lx_Csr_CovCust%NOTFOUND THEN
8208 RAISE L_EXCEP_NO_DATA_FOUND;
8209 END IF;
8210
8211 CLOSE Lx_Csr_CovCust;
8212
8213 Li_TableIdx := 1;
8214 Lx_Customer_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Lx_CovCust_Obj_Id;
8215 Lx_Customer_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
8216 Lx_Customer_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_CUSTACCT';
8217
8218 IF (set_account_party_id = 'T') THEN
8219 covd_account_party_id := Lx_Party_Id; -- store the account_party_id to compare with site party_id #4690940
8220 END IF;
8221
8222 Get_Party_CovLevels
8223 (P_CovParty_Obj_Id => Lx_Party_Id
8224 ,X_Party_CovLevels => Lx_Customer_Party
8225 ,X_Result => Lx_Result
8226 ,X_Return_Status => Lx_Return_Status);
8227
8228 IF Lx_Result <> G_TRUE THEN
8229 RAISE L_EXCEP_UNEXPECTED_ERR;
8230 END IF;
8231
8232 Append_ContItem_PlSql_Table
8233 (P_Input_Tab => Lx_Customer_Party
8234 ,P_Append_Tab => Lx_Customer_CovLevels
8235 ,X_Output_Tab => Lx_Customer_CovLevels_Out
8236 ,X_Result => Lx_Result
8237 ,X_Return_Status => Lx_Return_Status);
8238
8239 IF Lx_Result <> G_TRUE THEN
8240 RAISE L_EXCEP_UNEXPECTED_ERR;
8241 END IF;
8242
8243 Lx_Customer_CovLevels := Lx_Customer_CovLevels_Out;
8244
8245 X_Party_Id := Lx_Party_Id;
8246 X_Customer_CovLevels := Lx_Customer_CovLevels;
8247 X_Result := Lx_Result;
8248 X_Return_Status := Lx_Return_Status;
8249
8250 EXCEPTION
8251
8252 WHEN L_EXCEP_NO_DATA_FOUND THEN
8253
8254 IF Lx_Csr_CovCust%ISOPEN THEN
8255 CLOSE Lx_Csr_CovCust;
8256 END IF;
8257
8258 X_Result := G_TRUE;
8259 X_Return_Status := G_TRUE;
8260
8261 WHEN L_EXCEP_UNEXPECTED_ERR THEN
8262
8263 X_Result := Lx_Result;
8264 X_Return_Status := Lx_Return_Status;
8265
8266 WHEN OTHERS THEN
8267
8268 OKC_API.SET_MESSAGE
8269 (P_App_Name => G_APP_NAME_OKC
8270 ,P_Msg_Name => G_UNEXPECTED_ERROR
8271 ,P_Token1 => G_SQLCODE_TOKEN
8272 ,P_Token1_Value => SQLCODE
8273 ,P_Token2 => G_SQLERRM_TOKEN
8274 ,P_Token2_Value => SQLERRM);
8275
8276 OKC_API.SET_MESSAGE
8277 (P_App_Name => G_APP_NAME_OKC
8278 ,P_Msg_Name => G_DEBUG_TOKEN
8279 ,P_Token1 => G_PACKAGE_TOKEN
8280 ,P_Token1_Value => G_PKG_NAME
8281 ,P_Token2 => G_PROGRAM_TOKEN
8282 ,P_Token2_Value => 'Get_Customer_CovLevels');
8283
8284 X_Result := G_FALSE;
8285 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8286
8287 END Get_Customer_CovLevels;
8288
8289 -----------------------------------------------------------------------------------------------------------------------*
8290
8291 PROCEDURE Get_Site_CovLevels
8292 (P_CovSite_Obj_Id IN Gx_OKS_Id
8293 ,P_Org_Id IN NUMBER
8294 ,X_Site_CovLevels out nocopy GT_ContItem_Ref
8295 ,X_Result out nocopy Gx_Boolean
8296 ,X_Return_Status out nocopy Gx_Ret_Sts)
8297 IS
8298
8299
8300 CURSOR Lx_Csr_CovSite(Cx_CovSite_Id IN Gx_OKS_Id
8301 ,Cn_Org_Id IN NUMBER) IS
8302 SELECT PS.Id1
8303 ,PS.Id2
8304 ,PS.Party_Id
8305 FROM Okx_Party_Sites_V PS
8306 WHERE PS.Id1 = Cx_CovSite_Id;
8307
8308 Lx_CovSite_Obj_Id CONSTANT Gx_OKS_Id := P_CovSite_Obj_Id;
8309 Ln_Org_Id CONSTANT NUMBER := P_Org_Id;
8310
8311 Lx_Site_CovLevels GT_ContItem_Ref;
8312 Lx_Site_CovLevels_Out GT_ContItem_Ref;
8313 Lx_Site_Customer GT_ContItem_Ref;
8314 Lx_Site_Party GT_ContItem_Ref;
8315
8316 Lx_Result Gx_Boolean;
8317 Lx_Return_Status Gx_Ret_Sts;
8318
8319 Lx_Cust_Account_Id Okx_Cust_Site_Uses_V.Cust_Account_Id%TYPE;
8320 Lx_Party_Id Okx_Cust_Site_Uses_V.Party_Id%TYPE;
8321 Lx_Party_Id_Dummy Okx_Customer_Accounts_V.Party_Id%TYPE;
8322
8323 Li_TableIdx BINARY_INTEGER;
8324
8325 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
8326
8327 BEGIN
8328
8329 Lx_Result := G_TRUE;
8330 Lx_Return_Status := G_RET_STS_SUCCESS;
8331
8332 FOR IDX IN Lx_Csr_CovSite(Lx_CovSite_Obj_Id,Ln_Org_Id) LOOP
8333
8334 Li_TableIdx := NVL(Lx_Site_CovLevels.LAST,0) + 1;
8335
8336 Lx_Site_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Idx.Id1;
8337 Lx_Site_CovLevels(Li_TableIdx).Rx_Obj1Id2 := Idx.Id2;
8338 Lx_Site_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_PARTYSITE';
8339
8340 -- Get_Party_CovLevels
8341 -- (P_CovParty_Obj_Id => Idx.Party_Id
8342 -- ,X_Party_CovLevels => Lx_Site_Party
8343 -- ,X_Result => Lx_Result
8344 -- ,X_Return_Status => Lx_Return_Status);
8345 --
8346 --
8347
8348 IF covd_account_party_id IS NOT NULL THEN -- #4690940 start
8349 IF covd_account_party_id <> Idx.Party_Id THEN
8350 Get_Party_CovLevels
8351 (P_CovParty_Obj_Id => Idx.Party_Id
8352 ,X_Party_CovLevels => Lx_Site_Party
8353 ,X_Result => Lx_Result
8354 ,X_Return_Status => Lx_Return_Status);
8355 END IF;
8356 ELSE
8357 Get_Party_CovLevels
8358 (P_CovParty_Obj_Id => Idx.Party_Id
8359 ,X_Party_CovLevels => Lx_Site_Party
8360 ,X_Result => Lx_Result
8361 ,X_Return_Status => Lx_Return_Status);
8362 END IF; --#4690940 end
8363
8364 --
8365
8366 IF Lx_Result <> G_TRUE THEN
8367 RAISE L_EXCEP_UNEXPECTED_ERR;
8368 END IF;
8369
8370 Append_ContItem_PlSql_Table
8371 (P_Input_Tab => Lx_Site_Party
8372 ,P_Append_Tab => Lx_Site_CovLevels
8373 ,X_Output_Tab => Lx_Site_CovLevels_Out
8374 ,X_Result => Lx_Result
8375 ,X_Return_Status => Lx_Return_Status);
8376
8377 IF Lx_Result <> G_TRUE THEN
8378 RAISE L_EXCEP_UNEXPECTED_ERR;
8379 END IF;
8380
8381 Lx_Site_CovLevels := Lx_Site_CovLevels_Out;
8382
8383 END LOOP;
8384
8385 X_Site_CovLevels := Lx_Site_CovLevels;
8386 X_Result := Lx_Result;
8387 X_Return_Status := Lx_Return_Status;
8388
8389 EXCEPTION
8390
8391 WHEN L_EXCEP_UNEXPECTED_ERR THEN
8392
8393 X_Result := Lx_Result;
8394 X_Return_Status := Lx_Return_Status;
8395
8396 WHEN OTHERS THEN
8397
8398 OKC_API.SET_MESSAGE
8399 (P_App_Name => G_APP_NAME_OKC
8400 ,P_Msg_Name => G_UNEXPECTED_ERROR
8401 ,P_Token1 => G_SQLCODE_TOKEN
8402 ,P_Token1_Value => SQLCODE
8403 ,P_Token2 => G_SQLERRM_TOKEN
8404 ,P_Token2_Value => SQLERRM);
8405
8406 OKC_API.SET_MESSAGE
8407 (P_App_Name => G_APP_NAME_OKC
8408 ,P_Msg_Name => G_DEBUG_TOKEN
8409 ,P_Token1 => G_PACKAGE_TOKEN
8410 ,P_Token1_Value => G_PKG_NAME
8411 ,P_Token2 => G_PROGRAM_TOKEN
8412 ,P_Token2_Value => 'Get_Site_CovLevels');
8413
8414 X_Result := G_FALSE;
8415 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8416
8417 END Get_Site_CovLevels;
8418
8419 -----------------------------------------------------------------------------------------------------------------------*
8420
8421 PROCEDURE Get_System_CovLevels
8422 (P_CovSys_Obj_Id IN Gx_OKS_Id
8423 ,P_Org_Id IN NUMBER
8424 ,X_System_CovLevels out nocopy GT_ContItem_Ref
8425 ,X_Result out nocopy Gx_Boolean
8426 ,X_Return_Status out nocopy Gx_Ret_Sts)
8427 IS
8428
8429 CURSOR Lx_Csr_CovSys(Cx_CovSys_Id IN Gx_OKS_Id --Modified for New Install Base.
8430 ,Cn_Org_Id IN NUMBER) IS
8431 SELECT CSISYS.System_Id System_Id,
8432 CSISYS.Customer_Id,
8433 CSISYS.Install_Site_Use_Id
8434 FROM CSI_SYSTEMS_B CSISYS
8435 connect by prior parent_system_id = system_id
8436 start with system_id = Cx_CovSys_Id;
8437
8438 Lx_CovSys_Obj_Id CONSTANT Gx_OKS_Id := P_CovSys_Obj_Id;
8439 Ln_org_Id CONSTANT NUMBER := P_Org_Id;
8440
8441 Lx_System_CovLevels GT_ContItem_Ref;
8442 Lx_System_CovLevels_Out GT_ContItem_Ref;
8443
8444 Lx_System_Customer GT_ContItem_Ref;
8445 Lx_System_Site GT_ContItem_Ref;
8446
8447 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
8448
8449 Lx_Result Gx_Boolean;
8450 Lx_Return_Status Gx_Ret_Sts;
8451
8452 Li_TableIdx BINARY_INTEGER;
8453 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
8454
8455 BEGIN
8456
8457 Lx_Result := G_TRUE;
8458 Lx_Return_Status := G_RET_STS_SUCCESS;
8459
8460 FOR Idx IN Lx_Csr_CovSys(Lx_CovSys_Obj_Id,Ln_Org_Id) LOOP
8461
8462 Li_TableIdx := NVL(Lx_System_CovLevels.LAST,0) + 1;
8463
8464 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Idx.System_Id;
8465 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
8466 Lx_System_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_COVSYST';
8467
8468 Get_Customer_CovLevels
8469 (P_CovCust_Obj_Id => Idx.Customer_Id
8470 ,X_Party_Id => Lx_Party_Id
8471 ,X_Customer_CovLevels => Lx_System_Customer
8472 ,X_Result => Lx_Result
8473 ,X_Return_Status => Lx_Return_Status);
8474
8475 IF Lx_Result <> G_TRUE THEN
8476 RAISE L_EXCEP_UNEXPECTED_ERR;
8477 END IF;
8478
8479 Append_ContItem_PlSql_Table
8480 (P_Input_Tab => Lx_System_Customer
8481 ,P_Append_Tab => Lx_System_CovLevels
8482 ,X_Output_Tab => Lx_System_CovLevels_Out
8483 ,X_Result => Lx_Result
8484 ,X_Return_Status => Lx_Return_Status);
8485
8486 IF Lx_Result <> G_TRUE THEN
8487 RAISE L_EXCEP_UNEXPECTED_ERR;
8488 END IF;
8489
8490 Lx_System_CovLevels := Lx_System_CovLevels_Out;
8491
8492 Get_Site_CovLevels
8493 (P_CovSite_Obj_Id => Idx.Install_Site_Use_Id
8494 ,P_Org_Id => Ln_org_Id
8495 ,X_Site_CovLevels => Lx_System_Site
8496 ,X_Result => Lx_Result
8497 ,X_Return_Status => Lx_Return_Status);
8498
8499 IF Lx_Result <> G_TRUE THEN
8500 RAISE L_EXCEP_UNEXPECTED_ERR;
8501 END IF;
8502
8503 Append_ContItem_PlSql_Table
8504 (P_Input_Tab => Lx_System_Site
8505 ,P_Append_Tab => Lx_System_CovLevels
8506 ,X_Output_Tab => Lx_System_CovLevels_out
8507 ,X_Result => Lx_Result
8508 ,X_Return_Status => Lx_Return_Status);
8509
8510 IF Lx_Result <> G_TRUE THEN
8511 RAISE L_EXCEP_UNEXPECTED_ERR;
8512 END IF;
8513
8514 Lx_System_CovLevels := Lx_System_CovLevels_Out;
8515
8516 END LOOP;
8517
8518 X_System_CovLevels := Lx_System_CovLevels;
8519 X_Result := Lx_Result;
8520 X_Return_Status := Lx_Return_Status;
8521
8522 EXCEPTION
8523
8524 WHEN L_EXCEP_UNEXPECTED_ERR THEN
8525
8526 X_Result := Lx_Result;
8527 X_Return_Status := Lx_Return_Status;
8528
8529 WHEN OTHERS THEN
8530
8531 OKC_API.SET_MESSAGE
8532 (P_App_Name => G_APP_NAME_OKC
8533 ,P_Msg_Name => G_UNEXPECTED_ERROR
8534 ,P_Token1 => G_SQLCODE_TOKEN
8535 ,P_Token1_Value => SQLCODE
8536 ,P_Token2 => G_SQLERRM_TOKEN
8537 ,P_Token2_Value => SQLERRM);
8538
8539 OKC_API.SET_MESSAGE
8540 (P_App_Name => G_APP_NAME_OKC
8541 ,P_Msg_Name => G_DEBUG_TOKEN
8542 ,P_Token1 => G_PACKAGE_TOKEN
8543 ,P_Token1_Value => G_PKG_NAME
8544 ,P_Token2 => G_PROGRAM_TOKEN
8545 ,P_Token2_Value => 'Get_System_CovLevels');
8546
8547 X_Result := G_FALSE;
8548 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8549
8550 END Get_System_CovLevels;
8551
8552 -----------------------------------------------------------------------------------------------------------------------*
8553
8554 /**********************************************************
8555 ** This Procedure gets all the parents traversing up **
8556 ** for a given child(subject) with the relationship type **
8557 ** COMPONENT-OF. It stops traversing when the top-most **
8558 ** is reached or the relationship is broken. **
8559 ***********************************************************/
8560
8561 -- added procedure Get_All_Parents to fix bug 3583486.
8562
8563 PROCEDURE Get_All_Parents
8564 (
8565 p_api_version IN NUMBER,
8566 p_commit IN VARCHAR2,
8567 p_init_msg_list IN VARCHAR2,
8568 p_validation_level IN NUMBER,
8569 p_subject_id IN NUMBER,
8570 x_rel_tbl OUT NOCOPY ii_relationship_tbl,
8571 x_return_status OUT NOCOPY VARCHAR2,
8572 x_msg_count OUT NOCOPY NUMBER,
8573 x_msg_data OUT NOCOPY VARCHAR2
8574 ) IS
8575
8576 l_api_version CONSTANT NUMBER := 1.0;
8577 l_api_name CONSTANT VARCHAR2(30) := 'GET_ALL_PARENTS';
8578 l_ctr NUMBER;
8579 l_object_id NUMBER;
8580 l_subject_id NUMBER;
8581 l_exists VARCHAR2(1);
8582 l_relationship_id NUMBER;
8583 l_rel_type_code CONSTANT VARCHAR2(30) := 'COMPONENT-OF';
8584
8585 L_EXCEP_CYCLIC_DATA EXCEPTION;
8586 Lx_ExcepionMsg Varchar2(1000);
8587 Lx_Return_Status Varchar2(1);
8588
8589 BEGIN
8590
8591 l_ctr := 0;
8592
8593 -- Check for freeze_flag in csi_install_parameters is set to 'Y', not required.
8594 -- csi_utility_grp.check_ib_active;
8595
8596 x_return_status := FND_API.G_RET_STS_SUCCESS;
8597
8598 l_subject_id := p_subject_id;
8599
8600 LOOP
8601 Begin
8602 select relationship_id,object_id
8603 into l_relationship_id,l_object_id
8604 from CSI_II_RELATIONSHIPS
8605 where subject_id = l_subject_id
8606 and relationship_type_code = l_rel_type_code
8607 and ((active_end_date is null) or (active_end_date > sysdate));
8608 --
8609 l_ctr := l_ctr + 1;
8610 x_rel_tbl(l_ctr).subject_id := l_subject_id;
8611 x_rel_tbl(l_ctr).object_id := l_object_id;
8612 x_rel_tbl(l_ctr).relationship_id := l_relationship_id;
8613 x_rel_tbl(l_ctr).relationship_type_code := l_rel_type_code;
8614 --
8615 -- Just in case a cycle exists because of bad data the following check will break
8616 -- the loop.
8617 l_exists := 'N';
8618 IF x_rel_tbl.count > 0 THEN
8619 FOR j in x_rel_tbl.FIRST .. x_rel_tbl.LAST Loop
8620 IF l_object_id = x_rel_tbl(j).subject_id THEN
8621 l_exists := 'Y';
8622 Lx_ExcepionMsg := 'OBJECT_ID in Relationship Id: '||x_rel_tbl(l_ctr).relationship_id||
8623 ' and SUBJECT_ID in Relationship Id: '||x_rel_tbl(j).relationship_id||
8624 ' is in a cyclic relationship';
8625 exit;
8626 END IF;
8627 End Loop;
8628 END IF;
8629 --
8630 IF l_exists = 'Y' THEN
8631 -- exit;
8632 RAISE L_EXCEP_CYCLIC_DATA;
8633 END IF;
8634 --
8635 l_subject_id := l_object_id;
8636 Exception
8637 when no_data_found then
8638 exit;
8639 End;
8640 END LOOP;
8641 -- End of API body
8642
8643
8644 EXCEPTION
8645
8646 WHEN L_EXCEP_CYCLIC_DATA THEN
8647
8648 OKC_API.SET_MESSAGE
8649 (p_app_name => G_APP_NAME_OKC
8650 ,p_msg_name => G_INVALID_VALUE
8651 ,p_token1 => G_COL_NAME_TOKEN
8652 ,p_token1_value => Lx_ExcepionMsg);
8653
8654 Lx_Return_Status := G_RET_STS_ERROR;
8655
8656 WHEN OTHERS THEN
8657
8658 OKC_API.SET_MESSAGE
8659 (P_App_Name => G_APP_NAME_OKC
8660 ,P_Msg_Name => G_UNEXPECTED_ERROR
8661 ,P_Token1 => G_SQLCODE_TOKEN
8662 ,P_Token1_Value => SQLCODE
8663 ,P_Token2 => G_SQLERRM_TOKEN
8664 ,P_Token2_Value => SQLERRM);
8665
8666 OKC_API.SET_MESSAGE
8667 (P_App_Name => G_APP_NAME_OKC
8668 ,P_Msg_Name => G_DEBUG_TOKEN
8669 ,P_Token1 => G_PACKAGE_TOKEN
8670 ,P_Token1_Value => G_PKG_NAME
8671 ,P_Token2 => G_PROGRAM_TOKEN
8672 ,P_Token2_Value => 'Get_All_Parents');
8673
8674 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8675
8676 END Get_All_Parents;
8677
8678 ------------------------------------------------------------------------------------------------------
8679
8680 PROCEDURE Get_Product_CovLevels
8681 (P_CovProd_Obj_Id IN Gx_OKS_Id
8682 ,P_Organization_Id IN NUMBER
8683 ,P_Org_Id IN NUMBER
8684 ,X_Party_Id out nocopy Gx_OKS_Id
8685 ,X_Product_CovLevels out nocopy GT_ContItem_Ref
8686 ,X_Result out nocopy Gx_Boolean
8687 ,X_Return_Status out nocopy Gx_Ret_Sts)
8688 IS
8689
8690 /*
8691 CURSOR Lx_Csr_PARPROD (Cx_CovProd_Id IN Gx_OKS_Id ) IS
8692 SELECT object_id,
8693 subject_id
8694 FROM csi_ii_relationships
8695 connect by prior object_id = subject_id
8696 start with subject_id = Cx_CovProd_Id
8697 UNION
8698 SELECT instance_id object_id,
8699 -- null subject_id
8700 -1 subject_id --bug 2740241
8701 FROM csi_item_instances
8702 where instance_id = Cx_CovProd_Id;
8703 */
8704
8705 CURSOR Lx_Csr_CovProd(Cx_CovProd_Id IN Gx_OKS_Id
8706 ,Cn_Organization_Id IN NUMBER
8707 ,Cn_Org_Id IN NUMBER) IS
8708 SELECT CSI.Inventory_item_id Inventory_item_id,
8709 CSI.System_id System_id,
8710 CSI.Owner_party_account_id Owner_party_account_id, --CSI.Owner_party_id Owner_party_id
8711 CSI.install_location_id install_location_id,
8712 CSI.INSTALL_LOCATION_TYPE_CODE install_location_type_code
8713 FROM CSI_ITEM_INSTANCES CSI
8714 WHERE CSI.INSTANCE_ID = Cx_CovProd_Id;
8715
8716
8717
8718
8719
8720 Lx_CovProd_Obj_Id CONSTANT Gx_OKS_Id := P_CovProd_Obj_Id;
8721 Ln_organization_Id CONSTANT NUMBER := P_Organization_Id;
8722 Ln_Org_Id CONSTANT NUMBER := P_Org_Id;
8723
8724 Lx_Product_CovLevels GT_ContItem_Ref;
8725 Lx_Product_CovLevels_Out GT_ContItem_Ref;
8726 Lx_Product_Customer GT_ContItem_Ref;
8727 Lx_Product_Site GT_ContItem_Ref;
8728 Lx_Product_Item GT_ContItem_Ref;
8729 Lx_Product_System GT_ContItem_Ref;
8730
8731 Lx_Result Gx_Boolean;
8732 Lx_Return_Status Gx_Ret_Sts;
8733
8734 /* ---CSI Uptake ----
8735 Lx_Inv_Item_Id Okx_Customer_Products_V.Inventory_Item_Id%TYPE;
8736 Lx_System_Id Okx_Customer_Products_V.System_Id%TYPE;
8737 Lx_Customer_Id Okx_Customer_Products_V.Customer_Id%TYPE;
8738 Lx_Site_Id Okx_Customer_Products_V.Install_Site_Use_Id%TYPE;
8739 */
8740
8741 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
8742 Lx_Inv_Item_Id CSI_ITEM_INSTANCES.Inventory_Item_Id%TYPE;
8743 Lx_System_Id CSI_ITEM_INSTANCES.System_Id%TYPE;
8744 Lx_Customer_Id CSI_ITEM_INSTANCES.Owner_Party_Id%TYPE;
8745 Lx_Site_Id CSI_ITEM_INSTANCES.Install_location_id%TYPE;
8746 Lx_Site_Type_Code CSI_ITEM_INSTANCES.Install_location_type_code%TYPE;
8747
8748 Lx_PARENT_OBJ GT_PARENT_Ref;
8749 Li_PAR_Idx BINARY_INTEGER;
8750
8751 Lx_INSTANCES GT_INSTANCES;
8752 Li_INST_Idx BINARY_INTEGER;
8753
8754 L_rel_tbl ii_relationship_tbl;
8755 Li_RelTbl_Idx BINARY_INTEGER;
8756 L_msg_count number;
8757 L_msg_data VARCHAR2(1000);
8758 Li_TableIdx BINARY_INTEGER;
8759
8760 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
8761 L_EXCEP_NO_DATA_FOUND EXCEPTION;
8762
8763 BEGIN
8764
8765 Lx_Result := G_TRUE;
8766 Lx_Return_Status := G_RET_STS_SUCCESS;
8767
8768 /*
8769 Li_PAR_Idx := 0;
8770
8771 FOR Lx_Csr_PARPROD_REC in Lx_Csr_PARPROD(Lx_CovProd_Obj_Id) LOOP
8772
8773
8774 Li_PAR_Idx := Li_PAR_Idx + 1;
8775 Lx_PARENT_OBJ(Li_PAR_Idx).Rx_object_id := Lx_Csr_PARPROD_REC.object_id;
8776
8777 Lx_PARENT_OBJ(Li_PAR_Idx).Rx_subject_id := Lx_Csr_PARPROD_REC.subject_id;
8778
8779 END LOOP;
8780 */
8781
8782 Li_INST_Idx := 1;
8783
8784 Lx_INSTANCES(Li_INST_Idx).RX_Inst_ID := Lx_CovProd_Obj_Id;
8785
8786 -- call to get_all_parents to add the parent instances to Lx_INSTANCES
8787
8788 Get_All_Parents
8789 (
8790 p_api_version => 1.0,
8791 p_commit => G_FALSE,
8792 p_init_msg_list => 'T',
8793 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
8794 p_subject_id => Lx_CovProd_Obj_Id,
8795 x_rel_tbl => L_rel_tbl,
8796 x_return_status => Lx_return_status,
8797 x_msg_count => L_msg_count,
8798 x_msg_data => L_msg_data
8799 );
8800
8801 IF Lx_return_status <> 'S' THEN
8802 RAISE L_EXCEP_UNEXPECTED_ERR;
8803 END IF;
8804
8805 IF L_rel_tbl.count > 0 THEN
8806
8807 Li_RelTbl_Idx := L_rel_tbl.FIRST;
8808
8809 WHILE Li_RelTbl_Idx IS NOT NULL LOOP
8810
8811 Li_INST_Idx := Li_INST_Idx + 1;
8812
8813 Lx_INSTANCES(Li_INST_Idx).RX_Inst_ID := L_rel_tbl(Li_RelTbl_Idx).object_id;
8814
8815 Li_RelTbl_Idx := L_rel_tbl.NEXT(Li_RelTbl_Idx);
8816
8817 END LOOP;
8818
8819 END IF;
8820
8821 Li_TableIdx := 1;
8822
8823 IF Lx_INSTANCES.COUNT > 0 THEN -- added while fixing bug 2740241
8824
8825 FOR i in Lx_INSTANCES.FIRST .. Lx_INSTANCES.LAST LOOP
8826
8827 OPEN Lx_Csr_CovProd(Lx_INSTANCES(i).RX_Inst_ID,Ln_organization_Id,Ln_Org_Id);
8828
8829 FETCH Lx_Csr_CovProd INTO Lx_Inv_Item_Id,Lx_System_Id,Lx_Customer_Id,Lx_Site_Id,Lx_Site_Type_Code;
8830
8831 IF Lx_Csr_CovProd%NOTFOUND THEN
8832 RAISE L_EXCEP_NO_DATA_FOUND;
8833 END IF;
8834
8835 Lx_Product_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Lx_INSTANCES(i).RX_Inst_ID;
8836 Lx_Product_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
8837 Lx_Product_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_CUSTPROD';
8838
8839 Get_Item_CovLevels
8840 (P_CovItem_Obj_Id => Lx_Inv_Item_Id
8841 ,P_Organization_Id => Ln_Organization_Id
8842 ,X_Item_CovLevels => Lx_Product_Item
8843 ,X_Result => Lx_Result
8844 ,X_Return_Status => Lx_Return_Status);
8845
8846 IF Lx_Result <> G_TRUE THEN
8847 RAISE L_EXCEP_UNEXPECTED_ERR;
8848 END IF;
8849
8850 Append_ContItem_PlSql_Table
8851 (P_Input_Tab => Lx_Product_Item
8852 ,P_Append_Tab => Lx_Product_CovLevels
8853 ,X_Output_Tab => Lx_Product_CovLevels_Out
8854 ,X_Result => Lx_Result
8855 ,X_Return_Status => Lx_Return_Status);
8856
8857 IF Lx_Result <> G_TRUE THEN
8858 RAISE L_EXCEP_UNEXPECTED_ERR;
8859 END IF;
8860
8861 Lx_Product_CovLevels := Lx_Product_CovLevels_Out;
8862
8863 Get_System_CovLevels
8864 (P_CovSys_Obj_Id => Lx_System_Id
8865 ,P_Org_Id => Ln_Org_Id
8866 ,X_System_CovLevels => Lx_Product_System
8867 ,X_Result => Lx_Result
8868 ,X_Return_Status => Lx_Return_Status);
8869
8870 IF Lx_Result <> G_TRUE THEN
8871 RAISE L_EXCEP_UNEXPECTED_ERR;
8872 END IF;
8873
8874 Append_ContItem_PlSql_Table
8875 (P_Input_Tab => Lx_Product_System
8876 ,P_Append_Tab => Lx_Product_CovLevels
8877 ,X_Output_Tab => Lx_Product_CovLevels_Out
8878 ,X_Result => Lx_Result
8879 ,X_Return_Status => Lx_Return_Status);
8880
8881 IF Lx_Result <> G_TRUE THEN
8882 RAISE L_EXCEP_UNEXPECTED_ERR;
8883 END IF;
8884
8885 Lx_Product_CovLevels := Lx_Product_CovLevels_Out;
8886
8887 Get_Customer_CovLevels
8888 (P_CovCust_Obj_Id => Lx_Customer_Id
8889 ,X_Party_Id => Lx_Party_Id
8890 ,X_Customer_CovLevels => Lx_Product_Customer
8891 ,X_Result => Lx_Result
8892 ,X_Return_Status => Lx_Return_Status);
8893
8894 IF Lx_Result <> G_TRUE THEN
8895 RAISE L_EXCEP_UNEXPECTED_ERR;
8896 END IF;
8897
8898 Append_ContItem_PlSql_Table
8899 (P_Input_Tab => Lx_Product_Customer
8900 ,P_Append_Tab => Lx_Product_CovLevels
8901 ,X_Output_Tab => Lx_Product_CovLevels_Out
8902 ,X_Result => Lx_Result
8903 ,X_Return_Status => Lx_Return_Status);
8904
8905 IF Lx_Result <> G_TRUE THEN
8906 RAISE L_EXCEP_UNEXPECTED_ERR;
8907 END IF;
8908
8909 Lx_Product_CovLevels := Lx_Product_CovLevels_Out;
8910
8911 If Lx_Site_Type_Code = 'HZ_PARTY_SITES' Then
8912
8913 Get_Site_CovLevels
8914 (P_CovSite_Obj_Id => Lx_Site_Id
8915 ,P_Org_Id => Ln_Org_Id
8916 ,X_Site_CovLevels => Lx_Product_Site
8917 ,X_Result => Lx_Result
8918 ,X_Return_Status => Lx_Return_Status);
8919
8920 IF Lx_Result <> G_TRUE THEN
8921 RAISE L_EXCEP_UNEXPECTED_ERR;
8922 END IF;
8923
8924 Append_ContItem_PlSql_Table
8925 (P_Input_Tab => Lx_Product_Site
8926 ,P_Append_Tab => Lx_Product_CovLevels
8927 ,X_Output_Tab => Lx_Product_CovLevels_Out
8928 ,X_Result => Lx_Result
8929 ,X_Return_Status => Lx_Return_Status);
8930
8931 IF Lx_Result <> G_TRUE THEN
8932 RAISE L_EXCEP_UNEXPECTED_ERR;
8933 END IF;
8934
8935 Lx_Product_CovLevels := Lx_Product_CovLevels_Out;
8936
8937 END IF; -- Lx_Site_Type_Code = 'HZ_PARTY_SITES'
8938
8939 Li_TableIdx := Lx_Product_CovLevels.LAST + 1;
8940
8941 CLOSE Lx_Csr_CovProd;
8942
8943 END LOOP;
8944
8945 END IF;
8946
8947 Lx_Product_CovLevels := Lx_Product_CovLevels_Out;
8948
8949 X_Party_Id := Lx_Party_Id;
8950 X_Product_CovLevels := Lx_Product_CovLevels;
8951 X_Result := Lx_Result;
8952 X_Return_Status := Lx_Return_Status;
8953
8954 EXCEPTION
8955
8956 WHEN L_EXCEP_NO_DATA_FOUND THEN
8957
8958 IF Lx_Csr_CovProd%ISOPEN THEN
8959 CLOSE Lx_Csr_CovProd;
8960 END IF;
8961
8962 X_Result := G_TRUE;
8963 X_Return_Status := G_TRUE;
8964
8965 WHEN L_EXCEP_UNEXPECTED_ERR THEN
8966
8967 X_Result := Lx_Result;
8968 X_Return_Status := Lx_Return_Status;
8969
8970 WHEN OTHERS THEN
8971
8972 OKC_API.SET_MESSAGE
8973 (P_App_Name => G_APP_NAME_OKC
8974 ,P_Msg_Name => G_UNEXPECTED_ERROR
8975 ,P_Token1 => G_SQLCODE_TOKEN
8976 ,P_Token1_Value => SQLCODE
8977 ,P_Token2 => G_SQLERRM_TOKEN
8978 ,P_Token2_Value => SQLERRM);
8979
8980 OKC_API.SET_MESSAGE
8981 (P_App_Name => G_APP_NAME_OKC
8982 ,P_Msg_Name => G_DEBUG_TOKEN
8983 ,P_Token1 => G_PACKAGE_TOKEN
8984 ,P_Token1_Value => G_PKG_NAME
8985 ,P_Token2 => G_PROGRAM_TOKEN
8986 ,P_Token2_Value => 'Get_Product_CovLevels');
8987
8988 X_Result := G_FALSE;
8989 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8990
8991 END Get_Product_CovLevels;
8992
8993 /*--------------------------------------------------*/
8994
8995
8996 PROCEDURE Sort_Asc_ContItem_PlSql_Table
8997 (P_Input_Tab IN GT_ContItem_Ref
8998 ,X_Output_Tab out nocopy GT_ContItem_Ref
8999 ,X_Result out nocopy Gx_Boolean
9000 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
9001
9002 Lx_Sort_Tab GT_ContItem_Ref;
9003 Lx_Result Gx_Boolean;
9004 Lx_Return_Status Gx_Ret_Sts;
9005
9006 Li_TableIdx_Out BINARY_INTEGER;
9007 Li_TableIdx_In BINARY_INTEGER;
9008
9009 Lx_Temp_ContItem GR_ContItem_Ref;
9010
9011 Lv_Composit_Val1 VARCHAR2(300);
9012 Lv_Composit_Val2 VARCHAR2(300);
9013
9014 BEGIN
9015
9016 Lx_Sort_Tab := P_Input_Tab;
9017 Lx_Result := G_TRUE;
9018 Lx_Return_Status := G_RET_STS_SUCCESS;
9019
9020 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
9021
9022 WHILE Li_TableIdx_Out IS NOT NULL LOOP
9023
9024 Li_TableIdx_In := Li_TableIdx_Out;
9025
9026 WHILE Li_TableIdx_In IS NOT NULL LOOP
9027
9028 Lv_Composit_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Rx_ObjCode||Lx_Sort_Tab(Li_TableIdx_Out).Rx_Obj1Id1
9029 ||Lx_Sort_Tab(Li_TableIdx_Out).Rx_Obj1Id2;
9030
9031 Lv_Composit_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Rx_ObjCode||Lx_Sort_Tab(Li_TableIdx_In).Rx_Obj1Id1
9032 ||Lx_Sort_Tab(Li_TableIdx_In).Rx_Obj1Id2;
9033
9034 IF Lv_Composit_Val1 > Lv_Composit_Val2 THEN
9035
9036 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
9037 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
9038 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
9039
9040 END IF;
9041
9042 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
9043
9044 END LOOP;
9045
9046 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
9047
9048 END LOOP;
9049
9050 X_Output_Tab := Lx_Sort_Tab;
9051 X_Result := Lx_Result;
9052 X_Return_Status := Lx_Return_Status;
9053
9054 EXCEPTION
9055
9056 WHEN OTHERS THEN
9057
9058 OKC_API.SET_MESSAGE
9059 (P_App_Name => G_APP_NAME_OKC
9060 ,P_Msg_Name => G_UNEXPECTED_ERROR
9061 ,P_Token1 => G_SQLCODE_TOKEN
9062 ,P_Token1_Value => SQLCODE
9063 ,P_Token2 => G_SQLERRM_TOKEN
9064 ,P_Token2_Value => SQLERRM);
9065
9066 OKC_API.SET_MESSAGE
9067 (P_App_Name => G_APP_NAME_OKC
9068 ,P_Msg_Name => G_DEBUG_TOKEN
9069 ,P_Token1 => G_PACKAGE_TOKEN
9070 ,P_Token1_Value => G_PKG_NAME
9071 ,P_Token2 => G_PROGRAM_TOKEN
9072 ,P_Token2_Value => 'Sort_Asc_ContItem_PlSql_Table');
9073
9074 X_Result := G_FALSE;
9075 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9076
9077 END Sort_Asc_ContItem_PlSql_Table;
9078
9079 -----------------------------------------------------------------------------------------------------------------------*
9080
9081 PROCEDURE Dedup_ContItem_PlSql_Table
9082 (P_Input_Tab IN GT_ContItem_Ref
9083 ,X_Output_Tab out nocopy GT_ContItem_Ref
9084 ,X_Result out nocopy Gx_Boolean
9085 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
9086
9087 Lx_DeDup_Tab GT_ContItem_Ref;
9088 Lx_Result Gx_Boolean;
9089 Lx_Return_Status Gx_Ret_Sts;
9090
9091 Li_TableIdx BINARY_INTEGER;
9092
9093 Lx_Temp_ContItem GR_ContItem_Ref;
9094
9095 Lv_Composit_Val1 VARCHAR2(300);
9096 Lv_Composit_Val2 VARCHAR2(300);
9097
9098 BEGIN
9099
9100 Lx_DeDup_Tab := P_Input_Tab;
9101 Lx_Result := G_TRUE;
9102 Lx_Return_Status := G_RET_STS_SUCCESS;
9103
9104 Li_TableIdx := Lx_DeDup_Tab.FIRST;
9105
9106 WHILE Li_TableIdx IS NOT NULL LOOP
9107
9108 Lv_Composit_Val1 := Lx_DeDup_Tab(Li_TableIdx).Rx_ObjCode||Lx_DeDup_Tab(Li_TableIdx).Rx_Obj1Id1
9109 ||Lx_DeDup_Tab(Li_TableIdx).Rx_Obj1Id2;
9110
9111 Lv_Composit_Val2 := Lx_Temp_ContItem.Rx_ObjCode||Lx_Temp_ContItem.Rx_Obj1Id1||Lx_Temp_ContItem.Rx_Obj1Id2;
9112
9113 IF Lv_Composit_Val1 = Lv_Composit_Val2 THEN
9114 Lx_DeDup_Tab.DELETE(Li_TableIdx);
9115 ELSE
9116 Lx_Temp_ContItem := Lx_DeDup_Tab(Li_TableIdx);
9117 END IF;
9118
9119 Li_TableIdx := Lx_DeDup_Tab.NEXT(Li_TableIdx);
9120
9121 END LOOP;
9122
9123 X_Output_Tab := Lx_DeDup_Tab;
9124 X_Result := Lx_Result;
9125 X_Return_Status := Lx_Return_Status;
9126
9127 EXCEPTION
9128
9129 WHEN OTHERS THEN
9130
9131 OKC_API.SET_MESSAGE
9132 (P_App_Name => G_APP_NAME_OKC
9133 ,P_Msg_Name => G_UNEXPECTED_ERROR
9134 ,P_Token1 => G_SQLCODE_TOKEN
9135 ,P_Token1_Value => SQLCODE
9136 ,P_Token2 => G_SQLERRM_TOKEN
9137 ,P_Token2_Value => SQLERRM);
9138
9139 OKC_API.SET_MESSAGE
9140 (P_App_Name => G_APP_NAME_OKC
9141 ,P_Msg_Name => G_DEBUG_TOKEN
9142 ,P_Token1 => G_PACKAGE_TOKEN
9143 ,P_Token1_Value => G_PKG_NAME
9144 ,P_Token2 => G_PROGRAM_TOKEN
9145 ,P_Token2_Value => 'Dedup_ContItem_PlSql_Table');
9146
9147 X_Result := G_FALSE;
9148 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9149
9150 END Dedup_ContItem_PlSql_Table;
9151
9152 -----------------------------------------------------------------------------------------------------------------------*
9153
9154 PROCEDURE Get_CovLevel_Contracts
9155 (P_CovLevel_Items IN GT_ContItem_Ref
9156 ,P_Party_Id IN Gx_OKS_Id
9157 ,X_CovLevel_Contracts OUT NOCOPY GT_Contract_Ref
9158 ,X_Result OUT nocopy Gx_Boolean
9159 ,X_Return_Status OUT nocopy Gx_Ret_Sts)
9160 IS
9161
9162 -- bug 3045667 needed resolution as pre filtering records based on party id
9163 -- if the object_code = 'OKX_COVITEM' for performance improvements. used exists clause.
9164
9165
9166 CURSOR Lx_Csr_CovLvlOthr_Contracts(Cx_CovLevel_Obj_Id1 IN Gx_OKS_Id
9167 ,Cv_CovLevel_Obj_Id2 IN VARCHAR2
9168 ,Cx_CovLevel_Obj_Code IN Gx_JTOT_ObjCode) IS
9169 SELECT DISTINCT IT.Dnz_Chr_Id Dnz_Chr_Id, IT.Cle_Id
9170 FROM OKC_K_ITEMS IT
9171 WHERE IT.Object1_Id1 = TO_CHAR(Cx_CovLevel_Obj_Id1)
9172 AND (IT.Object1_Id2 = Cv_CovLevel_Obj_Id2 OR Cv_CovLevel_Obj_Id2 = '#')
9173 AND IT.Jtot_Object1_Code = Cx_CovLevel_Obj_Code;
9174
9175 --bug 9083530 Added hints to the query to improve performance.
9176 CURSOR Lx_Csr_CovLvlItem_Contracts(Cx_CovLevel_Obj_Id1 IN Gx_OKS_Id
9177 ,Cv_CovLevel_Obj_Id2 IN VARCHAR2
9178 ,Cx_CovLevel_Obj_Code IN Gx_JTOT_ObjCode) IS
9179 SELECT /*+ index(IT OKC_K_ITEMS_N2) */ DISTINCT IT.Dnz_Chr_Id Dnz_Chr_Id, IT.Cle_Id
9180 FROM OKC_K_ITEMS IT
9181 WHERE IT.Object1_Id1 = TO_CHAR(Cx_CovLevel_Obj_Id1)
9182 -- AND (IT.Object1_Id2 = Cv_CovLevel_Obj_Id2 OR Cv_CovLevel_Obj_Id2 = '#') -- BUG# 4735542
9183 AND IT.Jtot_Object1_Code = Cx_CovLevel_Obj_Code
9184 AND EXISTS (SELECT/*+ push_subq no_unnest */ '*'
9185 FROM OKC_K_PARTY_ROLES_B PR
9186 WHERE PR.CHR_ID = IT.DNZ_CHR_ID
9187 AND PR.CLE_ID IS NULL
9188 AND PR.DNZ_CHR_ID = IT.DNZ_CHR_ID
9189 AND PR.OBJECT1_ID1 = TO_CHAR(p_party_id)
9190 AND PR.OBJECT1_ID2 = '#'
9191 AND PR.JTOT_OBJECT1_CODE = 'OKX_PARTY'
9192 AND PR.RLE_CODE <> 'VENDOR');
9193
9194 CURSOR Lx_Csr_CovLvlItem_Contracts1(Cx_CovLevel_Obj_Id1 IN Gx_OKS_Id
9195 ,Cv_CovLevel_Obj_Id2 IN VARCHAR2
9196 ,Cx_CovLevel_Obj_Code IN Gx_JTOT_ObjCode) IS
9197 SELECT /*+ index(IT OKC_K_ITEMS_N2) */ DISTINCT IT.Dnz_Chr_Id Dnz_Chr_Id, IT.Cle_Id
9198 FROM OKC_K_ITEMS IT
9199 WHERE IT.Object1_Id1 = TO_CHAR(Cx_CovLevel_Obj_Id1)
9200 -- AND (IT.Object1_Id2 = Cv_CovLevel_Obj_Id2 OR Cv_CovLevel_Obj_Id2 = '#') -- BUG# 4735542
9201 AND IT.Jtot_Object1_Code = Cx_CovLevel_Obj_Code
9202 AND EXISTS (SELECT/*+ push_subq no_unnest */ '*'
9203 FROM OKC_K_PARTY_ROLES_B PR
9204 WHERE PR.CHR_ID = IT.DNZ_CHR_ID
9205 AND PR.CLE_ID IS NULL
9206 AND PR.DNZ_CHR_ID = IT.DNZ_CHR_ID
9207 AND PR.OBJECT1_ID1 = TO_CHAR(p_party_id)
9208 AND PR.OBJECT1_ID2 = '#'
9209 AND PR.JTOT_OBJECT1_CODE = 'OKX_PARTY'
9210 AND PR.RLE_CODE not in ('VENDOR','MERCHANT')); ---Modified condition for ER9681794
9211
9212 Lx_Party_Id CONSTANT Gx_OKS_Id := P_Party_Id;
9213 Lx_CovLevel_Items GT_ContItem_Ref;
9214 Lx_CovLevel_SortItems GT_ContItem_Ref;
9215 Lx_CovLevel_DeDupItems GT_ContItem_Ref;
9216
9217 Lx_CovLvlOth_DeDupItems GT_ContItem_Ref;
9218 Lx_CovLvlItem_DeDupItems GT_ContItem_Ref;
9219
9220 Lx_CovLevel_Obj_Id1 Gx_OKS_Id ;
9221 Lv_CovLevel_Obj_Id2 VARCHAR2(200) ;
9222 Lx_CovLevel_Obj_Code Gx_JTOT_ObjCode ;
9223
9224 Lx_CovLevel_Contracts GT_Contract_Ref;
9225
9226 Lx_Result Gx_Boolean;
9227 Lx_Return_Status Gx_Ret_Sts;
9228
9229 Li_TableIdx BINARY_INTEGER;
9230 Li_TabIdx_DeDup BINARY_INTEGER;
9231
9232 j number;
9233 k number;
9234
9235 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9236
9237 BEGIN
9238
9239 Lx_CovLevel_Items := P_CovLevel_Items;
9240
9241 Lx_Result := G_TRUE;
9242 Lx_Return_Status := G_RET_STS_SUCCESS;
9243
9244 Li_TableIdx := 0;
9245 j := 0;
9246 k := 0;
9247
9248 Sort_Asc_ContItem_PlSql_Table
9249 (P_Input_Tab => Lx_CovLevel_Items
9250 ,X_Output_Tab => Lx_CovLevel_SortItems
9251 ,X_Result => Lx_Result
9252 ,X_Return_Status => Lx_Return_Status);
9253
9254 IF Lx_Result <> G_TRUE THEN
9255 RAISE L_EXCEP_UNEXPECTED_ERR;
9256 END IF;
9257
9258 Dedup_ContItem_PlSql_Table
9259 (P_Input_Tab => Lx_CovLevel_SortItems
9260 ,X_Output_Tab => Lx_CovLevel_DeDupItems
9261 ,X_Result => Lx_Result
9262 ,X_Return_Status => Lx_Return_Status);
9263
9264 IF Lx_Result <> G_TRUE THEN
9265 RAISE L_EXCEP_UNEXPECTED_ERR;
9266 END IF;
9267
9268 -- added due to bug 3045667
9269 -- IF Lx_CovLevel_DeDupItems.COUNT > 0 THEN -- fixed dated july 30, 2003
9270 -- FOR i in Lx_CovLevel_DeDupItems.first..Lx_CovLevel_DeDupItems.last LOOP
9271
9272 Li_TabIdx_DeDup := Lx_CovLevel_DeDupItems.FIRST;
9273 Li_TableIdx := 0; --NVL(Lx_CovLevel_Contracts.FIRST,0);
9274
9275 WHILE Li_TabIdx_DeDup IS NOT NULL LOOP
9276
9277 Li_TableIdx := Li_TableIdx + 1;
9278
9279 IF Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode = 'OKX_COVITEM' THEN
9280 Lx_CovLvlItem_DeDupItems(Li_TableIdx).Rx_Obj1Id1 := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
9281 Lx_CovLvlItem_DeDupItems(Li_TableIdx).Rx_Obj1Id2 := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
9282 Lx_CovLvlItem_DeDupItems(Li_TableIdx).Rx_ObjCode := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
9283 ELSE
9284 Lx_CovLvlOth_DeDupItems(Li_TableIdx).Rx_Obj1Id1 := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
9285 Lx_CovLvlOth_DeDupItems(Li_TableIdx).Rx_Obj1Id2 := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
9286 Lx_CovLvlOth_DeDupItems(Li_TableIdx).Rx_ObjCode := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
9287 END IF;
9288
9289 Li_TabIdx_DeDup := Lx_CovLevel_DeDupItems.NEXT(Li_TabIdx_DeDup);
9290
9291 END LOOP;
9292
9293 -- END LOOP;
9294 -- END IF;
9295
9296 IF Lx_CovLvlOth_DeDupItems.count > 0 THEN -- bug 3045667
9297
9298 Li_TabIdx_DeDup := Lx_CovLvlOth_DeDupItems.FIRST;
9299 Li_TableIdx := 0; --NVL(Lx_CovLevel_Contracts.FIRST,0);
9300
9301 WHILE Li_TabIdx_DeDup IS NOT NULL LOOP
9302
9303 Lx_CovLevel_Obj_Id1 := Lx_CovLvlOth_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
9304 Lv_CovLevel_Obj_Id2 := Lx_CovLvlOth_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
9305 Lx_CovLevel_Obj_Code := Lx_CovLvlOth_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
9306
9307 FOR Idx IN Lx_Csr_CovLvlOthr_Contracts(Lx_CovLevel_Obj_Id1,Lv_CovLevel_Obj_Id2,Lx_CovLevel_Obj_Code) LOOP
9308
9309 Li_TableIdx := Li_TableIdx + 1;
9310 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
9311 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Cle_Id;
9312
9313 IF Lx_CovLevel_Obj_Code = 'OKX_COVITEM' THEN
9314 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := Lx_Party_Id;
9315 ELSE
9316 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9317 END IF;
9318
9319 END LOOP;
9320
9321 Li_TabIdx_DeDup := Lx_CovLvlOth_DeDupItems.NEXT(Li_TabIdx_DeDup);
9322
9323 END LOOP;
9324
9325 END IF;
9326
9327 IF Lx_CovLvlItem_DeDupItems.count > 0 THEN
9328
9329 Li_TabIdx_DeDup := Lx_CovLvlItem_DeDupItems.FIRST;
9330 Li_TableIdx := nvl(Li_TableIdx,0); --NVL(Lx_covLevel_Contracts.LAST,0);
9331
9332 WHILE Li_TabIdx_DeDup IS NOT NULL LOOP
9333
9334 Lx_CovLevel_Obj_Id1 := Lx_CovLvlItem_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
9335 Lv_CovLevel_Obj_Id2 := Lx_CovLvlItem_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
9336 Lx_CovLevel_Obj_Code := Lx_CovLvlItem_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
9337
9338 /*added for ER9681794*/
9339
9340 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N') ='Y' then
9341
9342 FOR Idx IN Lx_Csr_CovLvlItem_Contracts1(Lx_CovLevel_Obj_Id1,Lv_CovLevel_Obj_Id2,Lx_CovLevel_Obj_Code) LOOP
9343
9344 Li_TableIdx := Li_TableIdx + 1;
9345 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
9346 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Cle_Id;
9347
9348 IF Lx_CovLevel_Obj_Code = 'OKX_COVITEM' THEN
9349 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := Lx_Party_Id;
9350 ELSE
9351 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9352 END IF;
9353
9354 END LOOP;
9355
9356 ELSE
9357
9358 /*added for ER9681794*/
9359
9360 FOR Idx IN Lx_Csr_CovLvlItem_Contracts(Lx_CovLevel_Obj_Id1,Lv_CovLevel_Obj_Id2,Lx_CovLevel_Obj_Code) LOOP
9361
9362 Li_TableIdx := Li_TableIdx + 1;
9363 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
9364 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Cle_Id;
9365
9366 IF Lx_CovLevel_Obj_Code = 'OKX_COVITEM' THEN
9367 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := Lx_Party_Id;
9368 ELSE
9369 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9370 END IF;
9371
9372 END LOOP;
9373
9374 END IF; /*added for ER9681794*/
9375
9376 Li_TabIdx_DeDup := Lx_CovLvlItem_DeDupItems.NEXT(Li_TabIdx_DeDup);
9377
9378 END LOOP;
9379
9380 END IF;
9381
9382
9383 X_CovLevel_Contracts := Lx_CovLevel_Contracts;
9384 X_Result := Lx_Result;
9385 X_Return_Status := Lx_Return_Status;
9386
9387 EXCEPTION
9388
9389 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9390
9391 X_Result := Lx_Result;
9392 X_Return_Status := Lx_Return_Status;
9393
9394 WHEN OTHERS THEN
9395
9396 OKC_API.SET_MESSAGE
9397 (P_App_Name => G_APP_NAME_OKC
9398 ,P_Msg_Name => G_UNEXPECTED_ERROR
9399 ,P_Token1 => G_SQLCODE_TOKEN
9400 ,P_Token1_Value => SQLCODE
9401 ,P_Token2 => G_SQLERRM_TOKEN
9402 ,P_Token2_Value => SQLERRM);
9403
9404 OKC_API.SET_MESSAGE
9405 (P_App_Name => G_APP_NAME_OKC
9406 ,P_Msg_Name => G_DEBUG_TOKEN
9407 ,P_Token1 => G_PACKAGE_TOKEN
9408 ,P_Token1_Value => G_PKG_NAME
9409 ,P_Token2 => G_PROGRAM_TOKEN
9410 ,P_Token2_Value => 'Get_CovLevel_Contracts');
9411
9412 X_Result := G_FALSE;
9413 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9414
9415 END Get_CovLevel_Contracts;
9416
9417 -----------------------------------------------------------------------------------------------------------------------*
9418
9419 PROCEDURE Get_CovProd_Contracts
9420 (P_CovProd_Obj_Id IN Gx_OKS_Id
9421 ,P_Organization_Id IN NUMBER
9422 ,P_Org_Id IN NUMBER
9423 ,X_CovProd_Contracts out nocopy GT_Contract_Ref
9424 ,X_Result out nocopy Gx_Boolean
9425 ,X_Return_Status out nocopy Gx_Ret_Sts)
9426 IS
9427
9428 Lx_CovProd_Obj_Id CONSTANT Gx_OKS_Id := P_CovProd_Obj_Id;
9429 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
9430 Ln_Org_Id CONSTANT NUMBER := P_Org_Id;
9431
9432 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
9433
9434 Lx_Product_CovLevels GT_ContItem_Ref;
9435 Lx_CovProd_Contracts GT_Contract_Ref;
9436
9437 Lx_Result Gx_Boolean;
9438 Lx_Return_Status Gx_Ret_Sts;
9439
9440 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9441
9442 BEGIN
9443
9444 Lx_Result := G_TRUE;
9445 Lx_Return_Status := G_RET_STS_SUCCESS;
9446
9447 Get_Product_CovLevels
9448 (P_CovProd_Obj_Id => Lx_CovProd_Obj_Id
9449 ,P_Organization_Id => Ln_Organization_Id
9450 ,P_Org_Id => Ln_Org_Id
9451 ,X_Party_Id => Lx_Party_Id
9452 ,X_Product_CovLevels => Lx_Product_CovLevels
9453 ,X_Result => Lx_Result
9454 ,X_Return_Status => Lx_Return_Status);
9455
9456 IF Lx_Result <> G_TRUE THEN
9457 RAISE L_EXCEP_UNEXPECTED_ERR;
9458 END IF;
9459
9460 Get_CovLevel_Contracts
9461 (P_CovLevel_Items => Lx_Product_CovLevels
9462 ,P_Party_Id => Lx_Party_Id
9463 ,X_CovLevel_Contracts => Lx_CovProd_Contracts
9464 ,X_Result => Lx_Result
9465 ,X_Return_Status => Lx_Return_Status);
9466
9467 IF Lx_Result <> G_TRUE THEN
9468 RAISE L_EXCEP_UNEXPECTED_ERR;
9469 END IF;
9470
9471 X_CovProd_Contracts := Lx_CovProd_Contracts;
9472 X_Result := Lx_Result;
9473 X_Return_Status := Lx_Return_Status;
9474
9475 EXCEPTION
9476
9477 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9478
9479 X_Result := Lx_Result;
9480 X_Return_Status := Lx_Return_Status;
9481
9482 WHEN OTHERS THEN
9483
9484 OKC_API.SET_MESSAGE
9485 (P_App_Name => G_APP_NAME_OKC
9486 ,P_Msg_Name => G_UNEXPECTED_ERROR
9487 ,P_Token1 => G_SQLCODE_TOKEN
9488 ,P_Token1_Value => SQLCODE
9489 ,P_Token2 => G_SQLERRM_TOKEN
9490 ,P_Token2_Value => SQLERRM);
9491
9492 OKC_API.SET_MESSAGE
9493 (P_App_Name => G_APP_NAME_OKC
9494 ,P_Msg_Name => G_DEBUG_TOKEN
9495 ,P_Token1 => G_PACKAGE_TOKEN
9496 ,P_Token1_Value => G_PKG_NAME
9497 ,P_Token2 => G_PROGRAM_TOKEN
9498 ,P_Token2_Value => 'Get_CovProd_Contracts');
9499
9500 X_Result := G_FALSE;
9501 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9502
9503 END Get_CovProd_Contracts;
9504
9505 -----------------------------------------------------------------------------------------------------------------------*
9506
9507 PROCEDURE Get_CovItem_Contracts
9508 (P_CovItem_Obj_Id IN Gx_OKS_Id
9509 ,P_Organization_Id IN NUMBER
9510 ,P_Party_Id IN Gx_OKS_Id
9511 ,X_CovItem_Contracts out nocopy GT_Contract_Ref
9512 ,X_Result out nocopy Gx_Boolean
9513 ,X_Return_Status out nocopy Gx_Ret_Sts)
9514 IS
9515
9516 Lx_CovItem_Obj_Id CONSTANT Gx_OKS_Id := P_CovItem_Obj_Id;
9517 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
9518 Lx_Party_Id CONSTANT Gx_OKS_Id := P_Party_Id;
9519
9520 Lx_Item_CovLevels GT_ContItem_Ref;
9521 Lx_CovItem_Contracts GT_Contract_Ref;
9522
9523 Lx_Result Gx_Boolean;
9524 Lx_Return_Status Gx_Ret_Sts;
9525
9526 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9527
9528 BEGIN
9529
9530 Lx_Result := G_TRUE;
9531 Lx_Return_Status := G_RET_STS_SUCCESS;
9532
9533 Get_Item_CovLevels
9534 (P_CovItem_Obj_Id => Lx_CovItem_Obj_Id
9535 ,P_Organization_Id => Ln_Organization_Id
9536 ,X_Item_CovLevels => Lx_Item_CovLevels
9537 ,X_Result => Lx_Result
9538 ,X_Return_Status => Lx_Return_Status);
9539
9540 IF Lx_Result <> G_TRUE THEN
9541 RAISE L_EXCEP_UNEXPECTED_ERR;
9542 END IF;
9543
9544 Get_CovLevel_Contracts
9545 (P_CovLevel_Items => Lx_Item_CovLevels
9546 ,P_Party_Id => Lx_Party_Id
9547 ,X_CovLevel_Contracts => Lx_CovItem_Contracts
9548 ,X_Result => Lx_Result
9549 ,X_Return_Status => Lx_Return_Status);
9550
9551 IF Lx_Result <> G_TRUE THEN
9552 RAISE L_EXCEP_UNEXPECTED_ERR;
9553 END IF;
9554
9555 X_CovItem_Contracts := Lx_CovItem_Contracts;
9556 X_Result := Lx_Result;
9557 X_Return_Status := Lx_Return_Status;
9558
9559 EXCEPTION
9560
9561 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9562
9563 X_Result := Lx_Result;
9564 X_Return_Status := Lx_Return_Status;
9565
9566 WHEN OTHERS THEN
9567
9568 OKC_API.SET_MESSAGE
9569 (P_App_Name => G_APP_NAME_OKC
9570 ,P_Msg_Name => G_UNEXPECTED_ERROR
9571 ,P_Token1 => G_SQLCODE_TOKEN
9572 ,P_Token1_Value => SQLCODE
9573 ,P_Token2 => G_SQLERRM_TOKEN
9574 ,P_Token2_Value => SQLERRM);
9575
9576 OKC_API.SET_MESSAGE
9577 (P_App_Name => G_APP_NAME_OKC
9578 ,P_Msg_Name => G_DEBUG_TOKEN
9579 ,P_Token1 => G_PACKAGE_TOKEN
9580 ,P_Token1_Value => G_PKG_NAME
9581 ,P_Token2 => G_PROGRAM_TOKEN
9582 ,P_Token2_Value => 'Get_CovItem_Contracts');
9583
9584 X_Result := G_FALSE;
9585 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9586
9587 END Get_CovItem_Contracts;
9588
9589 -----------------------------------------------------------------------------------------------------------------------*
9590
9591 PROCEDURE Get_CovSys_Contracts
9592 (P_CovSys_Obj_Id IN Gx_OKS_Id
9593 ,P_Org_Id IN NUMBER
9594 ,X_CovSys_Contracts out nocopy GT_Contract_Ref
9595 ,X_Result out nocopy Gx_Boolean
9596 ,X_Return_Status out nocopy Gx_Ret_Sts)
9597 IS
9598
9599 Lx_CovSys_Obj_Id CONSTANT Gx_OKS_Id := P_CovSys_Obj_Id;
9600 Ln_Org_Id CONSTANT NUMBER := P_Org_Id;
9601
9602 Lx_System_CovLevels GT_ContItem_Ref;
9603 Lx_CovSys_Contracts GT_Contract_Ref;
9604
9605 Lx_Result Gx_Boolean;
9606 Lx_Return_Status Gx_Ret_Sts;
9607
9608 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9609
9610 BEGIN
9611
9612 Lx_Result := G_TRUE;
9613 Lx_Return_Status := G_RET_STS_SUCCESS;
9614
9615 Get_System_CovLevels
9616 (P_CovSys_Obj_Id => Lx_CovSys_Obj_Id
9617 ,P_Org_Id => Ln_Org_Id
9618 ,X_System_CovLevels => Lx_System_CovLevels
9619 ,X_Result => Lx_Result
9620 ,X_Return_Status => Lx_Return_Status );
9621
9622 IF Lx_Result <> G_TRUE THEN
9623 RAISE L_EXCEP_UNEXPECTED_ERR;
9624 END IF;
9625
9626 Get_CovLevel_Contracts
9627 (P_CovLevel_Items => Lx_System_CovLevels
9628 ,P_Party_Id => NULL
9629 ,X_CovLevel_Contracts => Lx_CovSys_Contracts
9630 ,X_Result => Lx_Result
9631 ,X_Return_Status => Lx_Return_Status);
9632
9633 IF Lx_Result <> G_TRUE THEN
9634 RAISE L_EXCEP_UNEXPECTED_ERR;
9635 END IF;
9636
9637 X_CovSys_Contracts := Lx_CovSys_Contracts;
9638 X_Result := Lx_Result;
9639 X_Return_Status := Lx_Return_Status;
9640
9641 EXCEPTION
9642
9643 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9644
9645 X_Result := Lx_Result;
9646 X_Return_Status := Lx_Return_Status;
9647
9648 WHEN OTHERS THEN
9649
9650 OKC_API.SET_MESSAGE
9651 (P_App_Name => G_APP_NAME_OKC
9652 ,P_Msg_Name => G_UNEXPECTED_ERROR
9653 ,P_Token1 => G_SQLCODE_TOKEN
9654 ,P_Token1_Value => SQLCODE
9655 ,P_Token2 => G_SQLERRM_TOKEN
9656 ,P_Token2_Value => SQLERRM);
9657
9658 OKC_API.SET_MESSAGE
9659 (P_App_Name => G_APP_NAME_OKC
9660 ,P_Msg_Name => G_DEBUG_TOKEN
9661 ,P_Token1 => G_PACKAGE_TOKEN
9662 ,P_Token1_Value => G_PKG_NAME
9663 ,P_Token2 => G_PROGRAM_TOKEN
9664 ,P_Token2_Value => 'Get_CovSys_Contracts');
9665
9666 X_Result := G_FALSE;
9667 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9668
9669 END Get_CovSys_Contracts;
9670
9671 -----------------------------------------------------------------------------------------------------------------------*
9672
9673 PROCEDURE Get_CovSite_Contracts
9674 (P_CovSite_Obj_Id IN Gx_OKS_Id
9675 ,P_Org_Id IN NUMBER
9676 ,X_CovSite_Contracts out nocopy GT_Contract_Ref
9677 ,X_Result out nocopy Gx_Boolean
9678 ,X_Return_Status out nocopy Gx_Ret_Sts)
9679 IS
9680
9681 Lx_CovSite_Obj_Id CONSTANT Gx_OKS_Id := P_CovSite_Obj_Id;
9682 Ln_Org_Id CONSTANT NUMBER := P_Org_Id;
9683
9684 Lx_Site_CovLevels GT_ContItem_Ref;
9685 Lx_CovSite_Contracts GT_Contract_Ref;
9686
9687 Lx_Result Gx_Boolean;
9688 Lx_Return_Status Gx_Ret_Sts;
9689
9690 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9691
9692 BEGIN
9693
9694 Lx_Result := G_TRUE;
9695 Lx_Return_Status := G_RET_STS_SUCCESS;
9696
9697 Get_Site_CovLevels
9698 (P_CovSite_Obj_Id => Lx_CovSite_Obj_Id
9699 ,P_Org_Id => Ln_Org_Id
9700 ,X_Site_CovLevels => Lx_Site_CovLevels
9701 ,X_Result => Lx_Result
9702 ,X_Return_Status => Lx_Return_Status );
9703
9704 IF Lx_Result <> G_TRUE THEN
9705 RAISE L_EXCEP_UNEXPECTED_ERR;
9706 END IF;
9707
9708 Get_CovLevel_Contracts
9709 (P_CovLevel_Items => Lx_Site_CovLevels
9710 ,P_Party_Id => NULL
9711 ,X_CovLevel_Contracts => Lx_CovSite_Contracts
9712 ,X_Result => Lx_Result
9713 ,X_Return_Status => Lx_Return_Status);
9714
9715 IF Lx_Result <> G_TRUE THEN
9716 RAISE L_EXCEP_UNEXPECTED_ERR;
9717 END IF;
9718
9719 X_CovSite_Contracts := Lx_CovSite_Contracts;
9720 X_Result := Lx_Result;
9721 X_Return_Status := Lx_Return_Status;
9722
9723 EXCEPTION
9724
9725 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9726
9727 X_Result := Lx_Result;
9728 X_Return_Status := Lx_Return_Status;
9729
9730 WHEN OTHERS THEN
9731
9732 OKC_API.SET_MESSAGE
9733 (P_App_Name => G_APP_NAME_OKC
9734 ,P_Msg_Name => G_UNEXPECTED_ERROR
9735 ,P_Token1 => G_SQLCODE_TOKEN
9736 ,P_Token1_Value => SQLCODE
9737 ,P_Token2 => G_SQLERRM_TOKEN
9738 ,P_Token2_Value => SQLERRM);
9739
9740 OKC_API.SET_MESSAGE
9741 (P_App_Name => G_APP_NAME_OKC
9742 ,P_Msg_Name => G_DEBUG_TOKEN
9743 ,P_Token1 => G_PACKAGE_TOKEN
9744 ,P_Token1_Value => G_PKG_NAME
9745 ,P_Token2 => G_PROGRAM_TOKEN
9746 ,P_Token2_Value => 'Get_CovSite_Contracts');
9747
9748 X_Result := G_FALSE;
9749 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9750
9751 END Get_CovSite_Contracts;
9752
9753 -----------------------------------------------------------------------------------------------------------------------*
9754
9755 PROCEDURE Get_CovCust_Contracts
9756 (P_CovCust_Obj_Id IN Gx_OKS_Id
9757 ,X_CovCust_Contracts out nocopy GT_Contract_Ref
9758 ,X_Result out nocopy Gx_Boolean
9759 ,X_Return_Status out nocopy Gx_Ret_Sts)
9760 IS
9761
9762 Lx_CovCust_Obj_Id CONSTANT Gx_OKS_Id := P_CovCust_Obj_Id;
9763
9764 Lx_Cust_CovLevels GT_ContItem_Ref;
9765 Lx_CovCust_Contracts GT_Contract_Ref;
9766
9767 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
9768
9769 Lx_Result Gx_Boolean;
9770 Lx_Return_Status Gx_Ret_Sts;
9771
9772 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9773
9774 BEGIN
9775
9776 Lx_Result := G_TRUE;
9777 Lx_Return_Status := G_RET_STS_SUCCESS;
9778
9779 Get_Customer_CovLevels
9780 (P_CovCust_Obj_Id => Lx_CovCust_Obj_Id
9781 ,X_Party_Id => Lx_Party_Id
9782 ,X_Customer_CovLevels => Lx_Cust_CovLevels
9783 ,X_Result => Lx_Result
9784 ,X_Return_Status => Lx_Return_Status );
9785
9786 IF Lx_Result <> G_TRUE THEN
9787 RAISE L_EXCEP_UNEXPECTED_ERR;
9788 END IF;
9789
9790 Get_CovLevel_Contracts
9791 (P_CovLevel_Items => Lx_Cust_CovLevels
9792 ,P_Party_Id => NULL
9793 ,X_CovLevel_Contracts => Lx_CovCust_Contracts
9794 ,X_Result => Lx_Result
9795 ,X_Return_Status => Lx_Return_Status);
9796
9797 IF Lx_Result <> G_TRUE THEN
9798 RAISE L_EXCEP_UNEXPECTED_ERR;
9799 END IF;
9800
9801 X_CovCust_Contracts := Lx_CovCust_Contracts;
9802 X_Result := Lx_Result;
9803 X_Return_Status := Lx_Return_Status;
9804
9805 EXCEPTION
9806
9807 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9808
9809 X_Result := Lx_Result;
9810 X_Return_Status := Lx_Return_Status;
9811
9812 WHEN OTHERS THEN
9813
9814 OKC_API.SET_MESSAGE
9815 (P_App_Name => G_APP_NAME_OKC
9816 ,P_Msg_Name => G_UNEXPECTED_ERROR
9817 ,P_Token1 => G_SQLCODE_TOKEN
9818 ,P_Token1_Value => SQLCODE
9819 ,P_Token2 => G_SQLERRM_TOKEN
9820 ,P_Token2_Value => SQLERRM);
9821
9822 OKC_API.SET_MESSAGE
9823 (P_App_Name => G_APP_NAME_OKC
9824 ,P_Msg_Name => G_DEBUG_TOKEN
9825 ,P_Token1 => G_PACKAGE_TOKEN
9826 ,P_Token1_Value => G_PKG_NAME
9827 ,P_Token2 => G_PROGRAM_TOKEN
9828 ,P_Token2_Value => 'Get_CovCust_Contracts');
9829
9830 X_Result := G_FALSE;
9831 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9832
9833 END Get_CovCust_Contracts;
9834
9835 -----------------------------------------------------------------------------------------------------------------------*
9836
9837 PROCEDURE Get_CovParty_Contracts
9838 (P_CovParty_Obj_Id IN Gx_OKS_Id
9839 ,X_CovParty_Contracts out nocopy GT_Contract_Ref
9840 ,X_Result out nocopy Gx_Boolean
9841 ,X_Return_Status out nocopy Gx_Ret_Sts)
9842 IS
9843
9844 Lx_CovParty_Obj_Id CONSTANT Gx_OKS_Id := P_CovParty_Obj_Id;
9845
9846 Lx_Party_CovLevels GT_ContItem_Ref;
9847 Lx_CovParty_Contracts GT_Contract_Ref;
9848
9849 Lx_Result Gx_Boolean;
9850 Lx_Return_Status Gx_Ret_Sts;
9851
9852 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9853
9854 BEGIN
9855
9856 Lx_Result := G_TRUE;
9857 Lx_Return_Status := G_RET_STS_SUCCESS;
9858
9859 Get_Party_CovLevels
9860 (P_CovParty_Obj_Id => Lx_CovParty_Obj_Id
9861 ,X_Party_CovLevels => Lx_Party_CovLevels
9862 ,X_Result => Lx_Result
9863 ,X_Return_Status => Lx_Return_Status );
9864
9865 IF Lx_Result <> G_TRUE THEN
9866 RAISE L_EXCEP_UNEXPECTED_ERR;
9867 END IF;
9868
9869 Get_CovLevel_Contracts
9870 (P_CovLevel_Items => Lx_Party_CovLevels
9871 ,P_Party_Id => NULL
9872 ,X_CovLevel_Contracts => Lx_CovParty_Contracts
9873 ,X_Result => Lx_Result
9874 ,X_Return_Status => Lx_Return_Status);
9875
9876 IF Lx_Result <> G_TRUE THEN
9877 RAISE L_EXCEP_UNEXPECTED_ERR;
9878 END IF;
9879
9880 X_CovParty_Contracts := Lx_CovParty_Contracts;
9881 X_Result := Lx_Result;
9882 X_Return_Status := Lx_Return_Status;
9883
9884 EXCEPTION
9885
9886 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9887
9888 X_Result := Lx_Result;
9889 X_Return_Status := Lx_Return_Status;
9890
9891 WHEN OTHERS THEN
9892
9893 OKC_API.SET_MESSAGE
9894 (P_App_Name => G_APP_NAME_OKC
9895 ,P_Msg_Name => G_UNEXPECTED_ERROR
9896 ,P_Token1 => G_SQLCODE_TOKEN
9897 ,P_Token1_Value => SQLCODE
9898 ,P_Token2 => G_SQLERRM_TOKEN
9899 ,P_Token2_Value => SQLERRM);
9900
9901 OKC_API.SET_MESSAGE
9902 (P_App_Name => G_APP_NAME_OKC
9903 ,P_Msg_Name => G_DEBUG_TOKEN
9904 ,P_Token1 => G_PACKAGE_TOKEN
9905 ,P_Token1_Value => G_PKG_NAME
9906 ,P_Token2 => G_PROGRAM_TOKEN
9907 ,P_Token2_Value => 'Get_CovParty_Contracts');
9908
9909 X_Result := G_FALSE;
9910 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9911
9912 END Get_CovParty_Contracts;
9913
9914 -----------------------------------------------------------------------------------------------------------------------*
9915
9916 PROCEDURE Get_CovLvlLine_Contracts
9917 (P_CovLvlLine_Id IN Gx_OKS_Id
9918 ,X_Contracts out nocopy GT_Contract_Ref
9919 ,X_Result out nocopy Gx_Boolean
9920 ,X_Return_Status out nocopy Gx_Ret_Sts)
9921 IS
9922
9923 CURSOR Lx_Csr_Contracts(Cx_CovLvlLine_Id IN Gx_OKS_Id) IS
9924 SELECT Dnz_Chr_Id, Id
9925 FROM Okc_K_Lines_B
9926 WHERE Id = Cx_CovLvlLine_Id
9927 AND Lse_Id In (7,8,9,10,11,35,18,25);
9928
9929 Lx_CovLvlLine_Id CONSTANT Gx_OKS_Id := P_CovLvlLine_Id;
9930
9931 Lx_Contracts GT_Contract_Ref;
9932 Li_TableIdx BINARY_INTEGER;
9933
9934 Lx_Result Gx_Boolean;
9935 Lx_Return_Status Gx_Ret_Sts;
9936
9937 BEGIN
9938
9939 Lx_Result := G_TRUE;
9940 Lx_Return_Status := G_RET_STS_SUCCESS;
9941
9942 Li_TableIdx := 0;
9943
9944 FOR Idx IN Lx_Csr_Contracts(Lx_CovLvlLine_Id) LOOP
9945
9946 Li_TableIdx := Li_TableIdx + 1;
9947 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
9948 Lx_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Id;
9949 Lx_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9950
9951 END LOOP;
9952
9953 X_Contracts := Lx_Contracts;
9954 X_Result := Lx_Result;
9955 X_Return_Status := Lx_Return_Status;
9956
9957 EXCEPTION
9958
9959 WHEN OTHERS THEN
9960
9961 OKC_API.SET_MESSAGE
9962 (P_App_Name => G_APP_NAME_OKC
9963 ,P_Msg_Name => G_UNEXPECTED_ERROR
9964 ,P_Token1 => G_SQLCODE_TOKEN
9965 ,P_Token1_Value => SQLCODE
9966 ,P_Token2 => G_SQLERRM_TOKEN
9967 ,P_Token2_Value => SQLERRM);
9968
9969 OKC_API.SET_MESSAGE
9970 (P_App_Name => G_APP_NAME_OKC
9971 ,P_Msg_Name => G_DEBUG_TOKEN
9972 ,P_Token1 => G_PACKAGE_TOKEN
9973 ,P_Token1_Value => G_PKG_NAME
9974 ,P_Token2 => G_PROGRAM_TOKEN
9975 ,P_Token2_Value => 'Get_CovLvlLine_Contracts');
9976
9977 X_Result := G_FALSE;
9978 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9979
9980 END Get_CovLvlLine_Contracts;
9981
9982 -----------------------------------------------------------------------------------------------------------------------*
9983
9984 PROCEDURE Get_SrvLine_Contracts
9985 (P_SrvLine_Id IN Gx_OKS_Id
9986 ,X_Contracts out nocopy GT_Contract_Ref
9987 ,X_Result out nocopy Gx_Boolean
9988 ,X_Return_Status out nocopy Gx_Ret_Sts)
9989 IS
9990
9991 CURSOR Lx_Csr_Contracts(Cx_SrvLine_Id IN Gx_OKS_Id) IS
9992 SELECT Dnz_Chr_Id, Id
9993 FROM Okc_K_Lines_B
9994 WHERE Id = Cx_SrvLine_Id
9995 AND Lse_Id In (1,14,19);
9996
9997 Lx_SrvLine_Id CONSTANT Gx_OKS_Id := P_SrvLine_Id;
9998 Lx_Contracts GT_Contract_Ref;
9999 Li_TableIdx BINARY_INTEGER;
10000
10001 Lx_Result Gx_Boolean;
10002 Lx_Return_Status Gx_Ret_Sts;
10003
10004 BEGIN
10005
10006 Lx_Result := G_TRUE;
10007 Lx_Return_Status := G_RET_STS_SUCCESS;
10008
10009 Li_TableIdx := 0;
10010
10011 FOR Idx IN Lx_Csr_Contracts(Lx_SrvLine_Id) LOOP
10012
10013 Li_TableIdx := Li_TableIdx + 1;
10014 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
10015 Lx_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Id;
10016 Lx_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
10017
10018 END LOOP;
10019
10020 X_Contracts := Lx_Contracts;
10021 X_Result := Lx_Result;
10022 X_Return_Status := Lx_Return_Status;
10023
10024 EXCEPTION
10025
10026 WHEN OTHERS THEN
10027
10028 OKC_API.SET_MESSAGE
10029 (P_App_Name => G_APP_NAME_OKC
10030 ,P_Msg_Name => G_UNEXPECTED_ERROR
10031 ,P_Token1 => G_SQLCODE_TOKEN
10032 ,P_Token1_Value => SQLCODE
10033 ,P_Token2 => G_SQLERRM_TOKEN
10034 ,P_Token2_Value => SQLERRM);
10035
10036 OKC_API.SET_MESSAGE
10037 (P_App_Name => G_APP_NAME_OKC
10038 ,P_Msg_Name => G_DEBUG_TOKEN
10039 ,P_Token1 => G_PACKAGE_TOKEN
10040 ,P_Token1_Value => G_PKG_NAME
10041 ,P_Token2 => G_PROGRAM_TOKEN
10042 ,P_Token2_Value => 'Get_SrvLine_Contracts');
10043
10044 X_Result := G_FALSE;
10045 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10046
10047 END Get_SrvLine_Contracts;
10048
10049 -----------------------------------------------------------------------------------------------------------------------*
10050
10051 PROCEDURE Get_Contracts_Id
10052 (P_Contract_Num IN VARCHAR2
10053 ,P_Contract_Num_Modifier IN VARCHAR2
10054 ,X_Contracts out nocopy GT_Contract_Ref
10055 ,X_Result out nocopy Gx_Boolean
10056 ,X_Return_Status out nocopy Gx_Ret_Sts)
10057 IS
10058
10059 -- cursor modified to fix bug 3041443
10060
10061 CURSOR Lx_Csr_Contracts(Cv_Contract_Num IN VARCHAR2, Cv_Contract_Num_Modifier IN VARCHAR2) IS
10062 SELECT Id
10063 FROM OKC_K_HEADERS_ALL_B -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
10064 WHERE Contract_Number = Cv_Contract_Num
10065 --AND (Cv_Contract_Num_Modifier IS NULL OR Contract_Number_Modifier = Cv_Contract_Num_Modifier);
10066 --AND nvl(Contract_Number_Modifier,-99) = nvl(Cv_Contract_Num_Modifier,-99)
10067 AND nvl(Contract_Number_Modifier,'#') = nvl(Cv_Contract_Num_Modifier,nvl(Contract_Number_Modifier,'#'));
10068
10069 Lv_Contract_Num CONSTANT VARCHAR2(120) := P_Contract_Num;
10070 Lv_Contract_Num_Modifier CONSTANT VARCHAR2(120) := P_Contract_Num_Modifier;
10071
10072 Lx_Contracts GT_Contract_Ref;
10073 Li_TableIdx BINARY_INTEGER;
10074
10075 Lx_Result Gx_Boolean;
10076 Lx_Return_Status Gx_Ret_Sts;
10077
10078 BEGIN
10079
10080 Lx_Result := G_TRUE;
10081 Lx_Return_Status := G_RET_STS_SUCCESS;
10082
10083 Li_TableIdx := 0;
10084
10085 FOR Idx IN Lx_Csr_Contracts(Lv_Contract_Num, Lv_Contract_Num_Modifier) LOOP
10086
10087 Li_TableIdx := Li_TableIdx + 1;
10088 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
10089 Lx_Contracts(Li_TableIdx).Rx_Cle_Id := NULL;
10090 Lx_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
10091
10092 END LOOP;
10093
10094 X_Contracts := Lx_Contracts;
10095 X_Result := Lx_Result;
10096 X_Return_Status := Lx_Return_Status;
10097
10098 EXCEPTION
10099
10100 WHEN OTHERS THEN
10101
10102 OKC_API.SET_MESSAGE
10103 (P_App_Name => G_APP_NAME_OKC
10104 ,P_Msg_Name => G_UNEXPECTED_ERROR
10105 ,P_Token1 => G_SQLCODE_TOKEN
10106 ,P_Token1_Value => SQLCODE
10107 ,P_Token2 => G_SQLERRM_TOKEN
10108 ,P_Token2_Value => SQLERRM);
10109
10110 OKC_API.SET_MESSAGE
10111 (P_App_Name => G_APP_NAME_OKC
10112 ,P_Msg_Name => G_DEBUG_TOKEN
10113 ,P_Token1 => G_PACKAGE_TOKEN
10114 ,P_Token1_Value => G_PKG_NAME
10115 ,P_Token2 => G_PROGRAM_TOKEN
10116 ,P_Token2_Value => 'Get_Contracts_Id');
10117
10118 X_Result := G_FALSE;
10119 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10120
10121 END Get_Contracts_Id;
10122
10123 -----------------------------------------------------------------------------------------------------------------------*
10124
10125 PROCEDURE Get_Service_Line_Details
10126 (P_SrvLine_Id IN Gx_OKS_Id
10127 ,P_Organization_Id IN NUMBER
10128 ,X_Name out nocopy VARCHAR2
10129 ,X_Description out nocopy VARCHAR2
10130 ,X_Start_Date out nocopy DATE
10131 ,X_End_Date out nocopy DATE
10132 ,X_Date_Terminated out nocopy DATE
10133 ,X_Eff_End_Date out nocopy DATE
10134 ,X_Result out nocopy Gx_Boolean
10135 ,X_Return_Status out nocopy Gx_Ret_Sts)
10136 IS
10137
10138 CURSOR Lx_Csr_SrvItem (Cx_SrvLine_Id In Gx_OKS_Id, Cn_Organization_Id IN NUMBER) IS
10139 SELECT XI.Name
10140 ,XI.Description
10141 ,SV.Start_Date
10142 ,Get_End_Date_Time(SV.End_Date) End_Date
10143 ,Get_End_Date_Time(SV.Date_Terminated) Date_Terminated
10144 FROM Okx_System_Items_V XI
10145 ,Okc_K_Items IT
10146 ,Okc_K_Lines_B SV
10147 WHERE SV.Id = Cx_SrvLine_Id
10148 AND SV.Lse_Id IN (1,14,19)
10149 AND IT.Cle_Id = SV.Id
10150 -- AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
10151 AND XI.Id1 = IT.Object1_Id1
10152 AND XI.Id2 = IT.Object1_Id2
10153 AND XI.Service_Item_Flag = 'Y'
10154 AND XI.Organization_Id = Cn_Organization_Id;
10155
10156 Lx_SrvLine_Id CONSTANT Gx_OKS_Id := P_SrvLine_Id;
10157 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
10158 Lv_Name Okx_System_Items_V.Name%TYPE; --VARCHAR2(240);
10159 Lv_Description Okx_System_Items_V.Description%TYPE; --VARCHAR2(40);
10160 Ld_Start_Date DATE;
10161 Ld_End_Date DATE;
10162 Ld_Date_Terminated DATE;
10163 Ld_Eff_End_Date DATE;
10164
10165 Lx_Result Gx_Boolean;
10166 Lx_Return_Status Gx_Ret_Sts;
10167
10168 BEGIN
10169
10170 Lx_Result := G_TRUE;
10171 Lx_Return_Status := G_RET_STS_SUCCESS;
10172
10173 OPEN Lx_Csr_SrvItem (Lx_SrvLine_Id,Ln_Organization_Id);
10174 FETCH Lx_Csr_SrvItem INTO Lv_Name, Lv_Description,Ld_Start_Date,Ld_End_Date,Ld_Date_Terminated;
10175 CLOSE Lx_Csr_SrvItem;
10176
10177 IF Ld_Date_Terminated < Ld_End_Date THEN
10178 Ld_Eff_End_Date := Ld_Date_Terminated;
10179 -- grace period not allowed for terminated line
10180 ELSE
10181 Ld_Eff_End_Date := Ld_End_Date;
10182
10183 -- grace period changes starts
10184 IF G_GRACE_PROFILE_SET = 'Y' AND Ld_Date_Terminated IS NULL THEN
10185 -- grace period changes are done only if line end date matches contract end date
10186 IF trunc(Ld_Eff_End_Date) = trunc(G_CONTRACT_END_DATE) THEN
10187 Ld_Eff_End_Date := Get_Final_End_Date(G_CONTRACT_ID,Ld_Eff_End_Date);
10188 END IF;
10189
10190 END IF;
10191 -- grace period changes ends
10192
10193 END IF;
10194
10195 X_Name := Lv_Name;
10196 X_Description := Lv_Description;
10197
10198 X_Start_Date := Ld_Start_Date;
10199 X_End_Date := Ld_End_Date;
10200 X_Date_Terminated := Ld_Date_Terminated;
10201 X_Eff_End_Date := Ld_Eff_End_Date;
10202
10203 X_Result := Lx_Result;
10204 X_Return_Status := Lx_Return_Status;
10205
10206 EXCEPTION
10207
10208 WHEN OTHERS THEN
10209
10210 OKC_API.SET_MESSAGE
10211 (P_App_Name => G_APP_NAME_OKC
10212 ,P_Msg_Name => G_UNEXPECTED_ERROR
10213 ,P_Token1 => G_SQLCODE_TOKEN
10214 ,P_Token1_Value => SQLCODE
10215 ,P_Token2 => G_SQLERRM_TOKEN
10216 ,P_Token2_Value => SQLERRM);
10217
10218 OKC_API.SET_MESSAGE
10219 (P_App_Name => G_APP_NAME_OKC
10220 ,P_Msg_Name => G_DEBUG_TOKEN
10221 ,P_Token1 => G_PACKAGE_TOKEN
10222 ,P_Token1_Value => G_PKG_NAME
10223 ,P_Token2 => G_PROGRAM_TOKEN
10224 ,P_Token2_Value => 'Get_Service_Line_Details');
10225
10226 X_Result := G_FALSE;
10227 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10228
10229 END Get_Service_Line_Details;
10230
10231 -----------------------------------------------------------------------------------------------------------------------*
10232
10233 PROCEDURE Get_Coverage_Line_Details
10234 (P_SrvLine_Id IN Gx_OKS_Id
10235 ,P_Organization_Id IN NUMBER
10236 ,X_Cov_Id out nocopy Gx_OKS_Id
10237 ,X_Name out nocopy VARCHAR2
10238 ,X_Description out nocopy VARCHAR2
10239 ,X_Start_Date out nocopy DATE
10240 ,X_End_Date out nocopy DATE
10241 ,X_Date_Terminated out nocopy DATE
10242 ,X_Eff_End_Date out nocopy DATE
10243 ,X_Result out nocopy Gx_Boolean
10244 ,X_Return_Status out nocopy Gx_Ret_Sts)
10245
10246 IS
10247 --
10248 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
10249 --
10250 --
10251 --CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN Gx_OKS_Id) IS
10252 -- SELECT Id
10253 -- ,Name
10254 -- ,Item_Description
10255 -- ,Start_Date
10256 -- ,Get_End_Date_Time(End_Date) End_Date
10257 -- ,Get_End_Date_Time(Date_Terminated) Date_Terminated
10258 -- FROM Okc_K_Lines_V
10259 -- WHERE Cle_Id = Cx_SrvLine_Id
10260 -- AND Lse_Id IN (2,15,20);
10261 --
10262 -- Added for 12.0 Coverage Rearch project (JVARGHES)
10263 --
10264 --
10265 CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN Gx_OKS_Id) IS
10266 SELECT COV.Id
10267 ,COV.Name
10268 ,COV.Item_Description
10269 ,COV.Start_Date
10270 ,Get_End_Date_Time(COV.End_Date) End_Date
10271 ,Get_End_Date_Time(COV.Date_Terminated) Date_Terminated
10272 ,KSL.Standard_COV_YN
10273 ,SVL.Start_Date
10274 ,Get_End_Date_Time(SVL.End_Date) End_Date
10275 ,Get_End_Date_Time(SVL.Date_Terminated) Date_Terminated
10276 FROM Okc_K_Lines_B SVL
10277 ,Oks_K_Lines_B KSL
10278 ,Okc_K_Lines_V COV
10279 WHERE SVL.Id = Cx_SrvLine_Id
10280 AND SVL.Lse_Id in (1,14,19)
10281 AND KSL.Cle_Id = SVL.Id
10282 AND COV.ID = KSL.Coverage_Id
10283 AND COV.Lse_Id IN (2,15,20);
10284 --
10285
10286 Lx_SrvLine_Id CONSTANT Gx_OKS_Id := P_SrvLine_Id;
10287 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
10288 Lx_Cov_Id Gx_OKS_Id;
10289 Lv_Name Okc_K_Lines_V.Name%TYPE; --VARCHAR2(240);
10290 Lv_Description Okc_K_Lines_V.Item_Description%TYPE; --VARCHAR2(1995);
10291 Ld_Start_Date DATE;
10292 Ld_End_Date DATE;
10293 Ld_Date_Terminated DATE;
10294 Ld_Eff_End_Date DATE;
10295
10296 Lx_Result Gx_Boolean;
10297 Lx_Return_Status Gx_Ret_Sts;
10298
10299 -- Added for 12.0 Coverage Rearch project (JVARGHES)
10300
10301 Lv_Std_Cov_YN VARCHAR2(10);
10302
10303 Ld_SVL_Start_Date DATE;
10304 Ld_SVL_End_Date DATE;
10305 Ld_SVL_Date_Terminated DATE;
10306
10307 --
10308
10309 BEGIN
10310
10311 Lx_Result := G_TRUE;
10312 Lx_Return_Status := G_RET_STS_SUCCESS;
10313
10314 OPEN Lx_Csr_CovItem (Lx_SrvLine_Id);
10315
10316 --
10317 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
10318 --
10319 -- FETCH Lx_Csr_CovItem INTO Lx_Cov_Id,Lv_Name,Lv_Description
10320 -- ,Ld_Start_Date,Ld_End_Date,Ld_Date_Terminated;
10321 --
10322 --
10323 FETCH Lx_Csr_CovItem INTO Lx_Cov_Id,Lv_Name,Lv_Description
10324 ,Ld_Start_Date,Ld_End_Date,Ld_Date_Terminated,Lv_Std_Cov_YN
10325 ,Ld_SVL_Start_Date,Ld_SVL_End_Date,Ld_SVL_Date_Terminated;
10326
10327 --
10328 --
10329 CLOSE Lx_Csr_CovItem;
10330
10331 --
10332 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
10333 --
10334
10335 IF NVL(Lv_Std_Cov_YN,'*') = 'Y' THEN
10336
10337 Ld_Start_Date := Ld_SVL_Start_Date;
10338 Ld_End_Date := Ld_SVL_End_Date;
10339 Ld_Date_Terminated := Ld_SVL_Date_Terminated;
10340
10341 END IF;
10342
10343 --
10344
10345 IF Ld_Date_Terminated < Ld_End_Date THEN
10346 Ld_Eff_End_Date := Ld_Date_Terminated;
10347 -- grace period changes not allowed for terminated line
10348 ELSE
10349 Ld_Eff_End_Date := Ld_End_Date;
10350
10351 -- grace period changes starts
10352
10353 IF G_GRACE_PROFILE_SET = 'Y' AND Ld_Date_Terminated IS NULL THEN
10354 -- grace period changes are done only if line end date matches contract end date
10355
10356 IF trunc(Ld_Eff_End_Date) = trunc(G_CONTRACT_END_DATE) THEN
10357 Ld_Eff_End_Date := Get_Final_End_Date(G_CONTRACT_ID,Ld_Eff_End_Date);
10358 END IF;
10359
10360 END IF;
10361 -- grace period changes ends
10362
10363 END IF;
10364
10365 X_Cov_Id := Lx_Cov_Id;
10366 X_Name := Lv_Name;
10367 X_Description := Lv_Description;
10368 X_Start_Date := Ld_Start_Date;
10369 X_End_Date := Ld_End_Date;
10370 X_Date_Terminated := Ld_Date_Terminated;
10371 X_Eff_End_Date := Ld_Eff_End_Date;
10372
10373 X_Result := Lx_Result;
10374 X_Return_Status := Lx_Return_Status;
10375
10376 EXCEPTION
10377
10378 WHEN OTHERS THEN
10379
10380 OKC_API.SET_MESSAGE
10381 (P_App_Name => G_APP_NAME_OKC
10382 ,P_Msg_Name => G_UNEXPECTED_ERROR
10383 ,P_Token1 => G_SQLCODE_TOKEN
10384 ,P_Token1_Value => SQLCODE
10385 ,P_Token2 => G_SQLERRM_TOKEN
10386 ,P_Token2_Value => SQLERRM);
10387
10388 OKC_API.SET_MESSAGE
10389 (P_App_Name => G_APP_NAME_OKC
10390 ,P_Msg_Name => G_DEBUG_TOKEN
10391 ,P_Token1 => G_PACKAGE_TOKEN
10392 ,P_Token1_Value => G_PKG_NAME
10393 ,P_Token2 => G_PROGRAM_TOKEN
10394 ,P_Token2_Value => 'Get_Coverage_Line_Details');
10395
10396 X_Result := G_FALSE;
10397 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10398
10399 END Get_Coverage_Line_Details;
10400
10401 -----------------------------------------------------------------------------------------------------------------------*
10402
10403 PROCEDURE Sort_Asc_GetContracts_01
10404 (P_Input_Tab IN Ent_Cont_Tbl
10405 ,X_Output_Tab out nocopy Ent_Cont_Tbl
10406 ,X_Result out nocopy Gx_Boolean
10407 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
10408
10409 Lx_Sort_Tab Ent_Cont_Tbl;
10410
10411 Li_TableIdx_Out BINARY_INTEGER;
10412 Li_TableIdx_In BINARY_INTEGER;
10413
10414 Lx_Temp_ContItem Ent_Cont_Rec;
10415
10416 Lv_Composit_Val1 VARCHAR2(1000); --VARCHAR2(600);
10417 Lv_Composit_Val2 VARCHAR2(1000); --VARCHAR2(600);
10418
10419 Lx_Result Gx_Boolean;
10420 Lx_Return_Status Gx_Ret_Sts;
10421
10422 BEGIN
10423
10424 Lx_Sort_Tab := P_Input_Tab;
10425 Lx_Result := G_TRUE;
10426 Lx_Return_Status := G_RET_STS_SUCCESS;
10427
10428 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
10429
10430 WHILE Li_TableIdx_Out IS NOT NULL LOOP
10431
10432 Li_TableIdx_In := Li_TableIdx_Out;
10433
10434 WHILE Li_TableIdx_In IS NOT NULL LOOP
10435
10436 Lv_Composit_Val1 := RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Contract_Number,120,' ')
10437 ||RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Service_Name,250,' ') --150
10438 ||RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Term_Name,250,' ') --150
10439 ||RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Level,250,' '); --150
10440
10441 Lv_Composit_Val2 := RPAD(Lx_Sort_Tab(Li_TableIdx_In).Contract_Number,120,' ')
10442 ||RPAD(Lx_Sort_Tab(Li_TableIdx_In).Service_Name,250,' ') --150
10443 ||RPAD(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Term_Name,250,' ') --150
10444 ||RPAD(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Level,250,' '); --150
10445
10446 IF Lv_Composit_Val1 > Lv_Composit_Val2 THEN
10447
10448 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
10449 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
10450 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
10451
10452 END IF;
10453
10454 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
10455
10456 END LOOP;
10457
10458 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
10459
10460 END LOOP;
10461
10462 X_Output_Tab := Lx_Sort_Tab;
10463 X_Result := Lx_Result;
10464 X_Return_Status := Lx_Return_Status;
10465
10466 EXCEPTION
10467
10468 WHEN OTHERS THEN
10469
10470 OKC_API.SET_MESSAGE
10471 (P_App_Name => G_APP_NAME_OKC
10472 ,P_Msg_Name => G_UNEXPECTED_ERROR
10473 ,P_Token1 => G_SQLCODE_TOKEN
10474 ,P_Token1_Value => SQLCODE
10475 ,P_Token2 => G_SQLERRM_TOKEN
10476 ,P_Token2_Value => SQLERRM);
10477
10478 OKC_API.SET_MESSAGE
10479 (P_App_Name => G_APP_NAME_OKC
10480 ,P_Msg_Name => G_DEBUG_TOKEN
10481 ,P_Token1 => G_PACKAGE_TOKEN
10482 ,P_Token1_Value => G_PKG_NAME
10483 ,P_Token2 => G_PROGRAM_TOKEN
10484 ,P_Token2_Value => 'Sort_Asc_GetContracts_01');
10485
10486 X_Result := G_FALSE;
10487 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10488
10489 END Sort_Asc_GetContracts_01;
10490
10491 -----------------------------------------------------------------------------------------------------------------------*
10492
10493 PROCEDURE Get_Prof_Service_Name_And_Desc
10494 (P_Profile_Value IN VARCHAR2
10495 ,P_Db_Srv_Name IN VARCHAR2
10496 ,P_Db_Srv_Desc IN VARCHAR2
10497 ,X_Prof_Srv_Name out nocopy VARCHAR2
10498 ,X_Prof_Srv_Desc out nocopy VARCHAR2
10499 ,X_Result out nocopy Gx_Boolean
10500 ,X_Return_Status out nocopy Gx_Ret_Sts)
10501 IS
10502
10503 Lv_Prof_Value CONSTANT VARCHAR2(300) := P_Profile_Value;
10504 Lv_Db_Srv_Name CONSTANT VARCHAR2(300) := P_Db_Srv_Name;
10505 Lv_Db_Srv_Desc CONSTANT VARCHAR2(300) := P_Db_Srv_Desc;
10506
10507 Lv_Prof_Srv_Name VARCHAR2(300);
10508 Lv_Prof_Srv_Desc VARCHAR2(300);
10509
10510 Lx_Result Gx_Boolean;
10511 Lx_Return_Status Gx_Ret_Sts;
10512
10513 BEGIN
10514
10515 Lx_Result := G_TRUE;
10516 Lx_Return_Status := G_RET_STS_SUCCESS;
10517
10518 IF Lv_Prof_Value = 'DISPLAY_NAME' THEN
10519
10520 Lv_Prof_Srv_Name := Lv_Db_Srv_Name;--Lv_Db_Srv_Desc;-- no swapping to be done anymore
10521 Lv_Prof_Srv_Desc := Lv_Db_Srv_Desc;--Lv_Db_Srv_Name;-- no swapping to be done anymore
10522
10523 ELSE
10524
10525 Lv_Prof_Srv_Name := Lv_Db_Srv_Name;
10526 Lv_Prof_Srv_Desc := Lv_Db_Srv_Desc;
10527
10528 END IF;
10529
10530 X_Prof_Srv_Name := Lv_Prof_Srv_Name;
10531 X_Prof_Srv_Desc := Lv_Prof_Srv_Desc;
10532 X_Result := Lx_Result;
10533 X_Return_Status := Lx_Return_Status;
10534
10535 EXCEPTION
10536
10537 WHEN OTHERS THEN
10538
10539 OKC_API.SET_MESSAGE
10540 (P_App_Name => G_APP_NAME_OKC
10541 ,P_Msg_Name => G_UNEXPECTED_ERROR
10542 ,P_Token1 => G_SQLCODE_TOKEN
10543 ,P_Token1_Value => SQLCODE
10544 ,P_Token2 => G_SQLERRM_TOKEN
10545 ,P_Token2_Value => SQLERRM);
10546
10547 OKC_API.SET_MESSAGE
10548 (P_App_Name => G_APP_NAME_OKC
10549 ,P_Msg_Name => G_DEBUG_TOKEN
10550 ,P_Token1 => G_PACKAGE_TOKEN
10551 ,P_Token1_Value => G_PKG_NAME
10552 ,P_Token2 => G_PROGRAM_TOKEN
10553 ,P_Token2_Value => 'Get_Prof_Service_Name_And_Desc');
10554
10555 X_Result := G_FALSE;
10556 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10557
10558 END Get_Prof_Service_Name_And_Desc;
10559
10560 -----------------------------------------------------------------------------------------------------------------------*
10561
10562 PROCEDURE Get_Contracts_01_Format
10563 (P_Contracts IN GT_Contract_Ref
10564 ,P_Request_Date IN DATE
10565 ,P_Validate_Flag IN VARCHAR2
10566 ,P_Chr_Id_Flag IN VARCHAR2 --Bug# 4719510 (JVARGHES)
10567 ,X_Contracts_01 out nocopy Ent_Cont_Tbl
10568 ,X_Result out nocopy Gx_Boolean
10569 ,X_Return_Status out nocopy Gx_Ret_Sts)
10570 IS
10571
10572 CURSOR Lx_Csr_Contracts(Cx_Chr_Id IN Gx_OKS_Id, Cx_Cle_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
10573 ,Cx_Lang in VARCHAR2) IS
10574 SELECT HD.Id Contract_Id
10575 ,HD.Contract_Number
10576 ,HD.Contract_Number_Modifier
10577 ,HD.Authoring_Org_Id
10578 ,HD.Inv_Organization_Id
10579 ,HD.End_Date HDR_End_Date --grace period changes
10580 ,CL.Cle_Id Service_Line_Id
10581 ,CL.Id Coverage_Level_Line_Id
10582 ,SB.Lty_Code Coverage_Level_Code
10583 ,ST.Name Coverage_Level
10584 ,CL.Start_Date
10585 ,Get_End_Date_Time(CL.End_Date) End_Date
10586 ,Get_End_Date_Time(CL.Date_Terminated) Date_Terminated
10587 ,IT.Object1_Id1 Coverage_Level_Id
10588 ,DECODE(SB.Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
10589 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
10590 ,Okc_Line_Styles_B SB
10591 ,Okc_Line_Styles_TL ST
10592 ,Okc_K_Items IT
10593 ,Okc_K_Lines_B CL
10594 WHERE CL.Id = NVL(Cx_Cle_Id, CL.Id)
10595 AND CL.Dnz_Chr_Id = Cx_Chr_Id
10596 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
10597 AND IT.Cle_Id = CL.Id
10598 AND SB.Id = CL.Lse_Id
10599 AND ST.Id = SB.Id
10600 and st.language = Cx_Lang
10601 AND HD.Id = CL.Dnz_Chr_Id
10602 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
10603 AND HD.Id > -1
10604 AND HD.Template_YN <> 'Y'
10605 AND (Cv_Cont_Pty_Id IS NULL
10606 OR
10607 EXISTS (SELECT '*'
10608 FROM Okc_K_Party_Roles_B PR
10609 WHERE PR.Chr_Id = HD.Id
10610 AND PR.Cle_Id IS NULL
10611 AND PR.Dnz_Chr_Id = HD.Id
10612 AND PR.Object1_Id1 = Cv_Cont_Pty_Id
10613 AND PR.Object1_Id2 = '#'
10614 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
10615 AND PR.RLE_CODE <> 'VENDOR'));
10616
10617 CURSOR Lx_Csr_Contracts_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_Cle_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
10618 ,Cx_Lang in VARCHAR2) IS
10619 SELECT HD.Id Contract_Id
10620 ,HD.Contract_Number
10621 ,HD.Contract_Number_Modifier
10622 ,HD.Authoring_Org_Id
10623 ,HD.Inv_Organization_Id
10624 ,HD.End_Date HDR_End_Date --grace period changes
10625 ,CL.Cle_Id Service_Line_Id
10626 ,CL.Id Coverage_Level_Line_Id
10627 ,SB.Lty_Code Coverage_Level_Code
10628 ,ST.Name Coverage_Level
10629 ,CL.Start_Date
10630 ,Get_End_Date_Time(CL.End_Date) End_Date
10631 ,Get_End_Date_Time(CL.Date_Terminated) Date_Terminated
10632 ,IT.Object1_Id1 Coverage_Level_Id
10633 ,DECODE(SB.Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
10634 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
10635 ,Okc_Line_Styles_B SB
10636 ,Okc_Line_Styles_TL ST
10637 ,Okc_K_Items IT
10638 ,Okc_K_Lines_B CL
10639 WHERE CL.Id = NVL(Cx_Cle_Id, CL.Id)
10640 AND CL.Dnz_Chr_Id = Cx_Chr_Id
10641 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
10642 AND IT.Cle_Id = CL.Id
10643 AND SB.Id = CL.Lse_Id
10644 AND ST.Id = SB.Id
10645 and st.language = Cx_Lang
10646 AND HD.Id = CL.Dnz_Chr_Id
10647 AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION') ---Modified condition for ER9681794
10648 AND HD.Id > -1
10649 AND HD.Template_YN <> 'Y'
10650 AND (Cv_Cont_Pty_Id IS NULL
10651 OR
10652 EXISTS (SELECT '*'
10653 FROM Okc_K_Party_Roles_B PR
10654 WHERE PR.Chr_Id = HD.Id
10655 AND PR.Cle_Id IS NULL
10656 AND PR.Dnz_Chr_Id = HD.Id
10657 AND PR.Object1_Id1 = Cv_Cont_Pty_Id
10658 AND PR.Object1_Id2 = '#'
10659 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
10660 AND PR.RLE_CODE not in ('VENDOR','MERCHANT'))); ---Modified condition for ER9681794
10661
10662 Lx_Contracts GT_Contract_Ref;
10663 Ld_Request_Date DATE;
10664 Lv_Validate_Flag VARCHAR2(1);
10665
10666 Lv_Cont_Pty_Id VARCHAR2(100);
10667
10668 Lx_Contracts_01 Ent_Cont_Tbl;
10669 Lx_Contracts_01_Out Ent_Cont_Tbl;
10670
10671 Li_TableIdx BINARY_INTEGER;
10672 Li_OutTab_Idx BINARY_INTEGER;
10673 Lv_Entile_Flag VARCHAR2(1);
10674 Lv_Effective_Falg VARCHAR2(1);
10675
10676 Ld_CovLvl_Eff_End_Date DATE;
10677
10678 Lv_Srv_Name Okx_System_Items_V.Name%TYPE; --VARCHAR2(150) ;
10679 Lv_Srv_Description Okx_System_Items_V.Description%TYPE; --VARCHAR2(1995);
10680 Lv_Prof_Srv_Name VARCHAR2(300) ;
10681 Lv_Prof_Srv_Desc VARCHAR2(300);
10682
10683 Ld_Srv_Start_Date DATE;
10684 Ld_Srv_End_Date DATE;
10685 Ld_Srv_Date_Terminated DATE;
10686 Ld_Srv_Eff_End_Date DATE;
10687
10688 Lx_Cov_Id Gx_OKS_Id;
10689 Lv_Cov_Name Okc_K_Lines_V.Name%TYPE; --VARCHAR2(150) ;
10690 Lv_Cov_Description Okc_K_Lines_V.Item_Description%TYPE; --VARCHAR2(1995);
10691 Ld_Cov_Start_Date DATE;
10692 Ld_Cov_End_Date DATE;
10693 Ld_Cov_Date_Terminated DATE;
10694 Ld_Cov_Eff_End_Date DATE;
10695
10696 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
10697 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
10698 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
10699 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
10700
10701 Lv_Prof_Name CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
10702 Lv_Prof_Value VARCHAR2(300);
10703
10704 Lx_Lang CONSTANT VARCHAR2(30) := userenv('LANG');
10705
10706 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
10707
10708 Lx_Result Gx_Boolean;
10709 Lx_Return_Status Gx_Ret_Sts;
10710
10711 BEGIN
10712
10713 Lx_Result := G_FALSE; -- #5092665 hmnair /*Bug:6767455*/
10714 Lx_Return_Status := G_RET_STS_SUCCESS;
10715
10716 Lx_Contracts := P_Contracts;
10717
10718 Lv_Validate_Flag := nvl(P_Validate_Flag,'N');
10719 Li_OutTab_Idx := 0;
10720
10721 Ld_Request_Date := nvl(P_Request_Date,sysdate);
10722
10723 --
10724 IF Lv_Validate_Flag = 'Y' THEN
10725 Lv_Validate_Flag := 'T';
10726 END IF;
10727 --
10728 FND_PROFILE.Get(Lv_Prof_Name, Lv_Prof_Value);
10729 --
10730
10731 Li_TableIdx := Lx_Contracts.FIRST;
10732
10733 WHILE Li_TableIdx IS NOT NULL LOOP
10734
10735 Lv_Cont_Pty_Id := TO_CHAR(Lx_Contracts(Li_TableIdx).Rx_Pty_Id);
10736
10737 /*Added for ER9681794*/
10738 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
10739
10740 FOR Idx IN Lx_Csr_Contracts_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id, Lx_Contracts(Li_TableIdx).Rx_Cle_Id,
10741 Lv_Cont_Pty_Id,Lx_Lang) LOOP
10742
10743 Lv_Srv_Name := NULL;
10744 Lv_Srv_Description := NULL;
10745 Ld_Srv_Start_Date := NULL;
10746 Ld_Srv_End_Date := NULL;
10747 Ld_Srv_Date_Terminated := NULL;
10748 Ld_Srv_Eff_End_Date := NULL;
10749
10750 Lx_Cov_Id := NULL;
10751 Lv_Cov_Name := NULL;
10752 Lv_Cov_Description := NULL;
10753 Ld_Cov_Start_Date := NULL;
10754 Ld_Cov_End_Date := NULL;
10755 Ld_Cov_Date_Terminated := NULL;
10756 Ld_Cov_Eff_End_Date := NULL;
10757
10758 IF Idx.Date_Terminated < Idx.End_Date THEN
10759 -- grace period not allowed for terminated line
10760 Ld_CovLvl_Eff_End_Date := Idx.Date_Terminated;
10761 ELSE
10762 Ld_CovLvl_Eff_End_Date := Idx.End_Date;
10763 -- grace period changes starts
10764
10765 IF G_GRACE_PROFILE_SET = 'Y' AND Idx.Date_Terminated IS NULL THEN
10766 -- grace period changes are done only if line end date matches contract end date
10767
10768 G_CONTRACT_END_DATE := Idx.HDR_End_Date;
10769 G_CONTRACT_ID := Idx.Contract_Id;
10770
10771 IF trunc(Ld_CovLvl_Eff_End_Date) = trunc(Idx.HDR_End_Date) THEN
10772 Ld_CovLvl_Eff_End_Date := Get_Final_End_Date(Idx.Contract_Id,Ld_CovLvl_Eff_End_Date);
10773 END IF;
10774
10775 END IF;
10776 -- grace period changes ends
10777 END IF;
10778 --following procedure modified for grace period changes
10779
10780 Get_Service_Line_Details
10781 (P_SrvLine_Id => Idx.Service_Line_Id
10782 ,P_Organization_Id => Idx.Inv_Organization_Id
10783 ,X_Name => Lv_Srv_Name
10784 ,X_Description => Lv_Srv_Description
10785 ,X_Start_Date => Ld_Srv_Start_Date
10786 ,X_End_Date => Ld_Srv_End_Date
10787 ,X_Date_Terminated => Ld_Srv_Date_Terminated
10788 ,X_Eff_End_Date => Ld_Srv_Eff_End_Date
10789 ,X_Result => Lx_Result
10790 ,X_Return_Status => Lx_Return_Status);
10791
10792 IF Lx_Result <> G_TRUE THEN
10793 RAISE L_EXCEP_UNEXPECTED_ERR;
10794 END IF;
10795 --following procedure modified for grace period changes
10796
10797 Get_Coverage_Line_Details
10798 (P_SrvLine_Id => Idx.Service_Line_Id
10799 ,P_Organization_Id => Idx.Inv_Organization_Id
10800 ,X_Cov_Id => Lx_Cov_Id
10801 ,X_Name => Lv_Cov_Name
10802 ,X_Description => Lv_Cov_Description
10803 ,X_Start_Date => Ld_Cov_Start_Date
10804 ,X_End_Date => Ld_Cov_End_Date
10805 ,X_Date_Terminated => Ld_Cov_Date_Terminated
10806 ,X_Eff_End_Date => Ld_Cov_Eff_End_Date
10807 ,X_Result => Lx_Result
10808 ,X_Return_Status => Lx_Return_Status);
10809
10810 IF Lx_Result <> G_TRUE THEN
10811 RAISE L_EXCEP_UNEXPECTED_ERR;
10812 END IF;
10813
10814 IF (Ld_Request_Date BETWEEN Ld_Srv_Start_Date AND Ld_Srv_Eff_End_Date)
10815 AND
10816 (Ld_Request_Date BETWEEN Idx.Start_Date AND Ld_CovLvl_Eff_End_Date)
10817 AND
10818 (Ld_Request_Date BETWEEN Ld_Cov_Start_Date AND Ld_Cov_Eff_End_Date) THEN
10819
10820 Lv_Effective_Falg := 'T';
10821 ELSE
10822 Lv_Effective_Falg := 'F';
10823 END IF;
10824
10825 Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Idx.Service_Line_Id, 'ENTITLE');
10826
10827 IF (Lv_Validate_Flag = 'T' AND Lv_Effective_Falg = 'T' AND Lv_Entile_Flag = 'T') OR (Lv_Validate_Flag <> 'T') THEN
10828
10829 Get_Prof_Service_Name_And_Desc
10830 (P_Profile_Value => Lv_Prof_Value
10831 ,P_Db_Srv_Name => Lv_Srv_Name
10832 ,P_Db_Srv_Desc => Lv_Srv_Description
10833 ,X_Prof_Srv_Name => Lv_Prof_Srv_Name
10834 ,X_Prof_Srv_Desc => Lv_Prof_Srv_Desc
10835 ,X_Result => Lx_Result
10836 ,X_Return_Status => Lx_Return_Status);
10837
10838 IF Lx_Result <> G_TRUE THEN
10839 RAISE L_EXCEP_UNEXPECTED_ERR;
10840 END IF;
10841
10842 Li_OutTab_Idx := Li_OutTab_Idx + 1;
10843
10844 Lx_Contracts_01(Li_OutTab_Idx).Contract_Id := Idx.Contract_Id;
10845 Lx_Contracts_01(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
10846 Lx_Contracts_01(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
10847 Lx_Contracts_01(Li_OutTab_Idx).Service_Line_Id := Idx.Service_Line_Id;
10848 Lx_Contracts_01(Li_OutTab_Idx).Service_Name := Lv_Prof_Srv_Name; --Lv_Srv_Name;
10849 Lx_Contracts_01(Li_OutTab_Idx).Service_Description := Lv_Prof_Srv_Desc; --Lv_Srv_Description;
10850 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Cov_Id;
10851 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Name := Lv_Cov_Name;
10852 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Description := Lv_Cov_Description;
10853 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Line_Id := Idx.Coverage_Level_Line_Id;
10854 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level := Idx.Coverage_Level;
10855 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Code := Idx.Coverage_Level_Code;
10856 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Start_Date := Idx.Start_Date;
10857 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_End_Date := Idx.End_Date;
10858 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Id := Idx.Coverage_Level_Id;
10859 Lx_Contracts_01(Li_OutTab_Idx).Warranty_Flag := Idx.Warranty_Flag;
10860 Lx_Contracts_01(Li_OutTab_Idx).Eligible_For_Entitlement := Lv_Entile_Flag;
10861
10862 Get_Coverage_Type_Attribs
10863 (P_CVL_Id => Lx_Cov_Id --Lx_CovLine_Id
10864 ,P_Set_ExcepionStack => G_FALSE
10865 ,X_Cov_Type_Code => Lx_Cov_Type_Code
10866 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
10867 ,X_Cov_Type_Description => Lx_Cov_Type_Description
10868 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
10869 ,X_Result => Lx_Result
10870 ,X_Return_Status => Lx_Return_Status);
10871
10872 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
10873 RAISE L_EXCEP_UNEXPECTED_ERR;
10874 END IF;
10875
10876 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Code := Lx_Cov_Type_Code;
10877 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Cov_Type_Meaning;
10878 Lx_Contracts_01(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
10879
10880 END IF;
10881
10882 END LOOP;
10883
10884 ELSE
10885 /*Added for ER9681794*/
10886 FOR Idx IN Lx_Csr_Contracts(Lx_Contracts(Li_TableIdx).Rx_Chr_Id, Lx_Contracts(Li_TableIdx).Rx_Cle_Id,
10887 Lv_Cont_Pty_Id,Lx_Lang) LOOP
10888
10889 Lv_Srv_Name := NULL;
10890 Lv_Srv_Description := NULL;
10891 Ld_Srv_Start_Date := NULL;
10892 Ld_Srv_End_Date := NULL;
10893 Ld_Srv_Date_Terminated := NULL;
10894 Ld_Srv_Eff_End_Date := NULL;
10895
10896 Lx_Cov_Id := NULL;
10897 Lv_Cov_Name := NULL;
10898 Lv_Cov_Description := NULL;
10899 Ld_Cov_Start_Date := NULL;
10900 Ld_Cov_End_Date := NULL;
10901 Ld_Cov_Date_Terminated := NULL;
10902 Ld_Cov_Eff_End_Date := NULL;
10903
10904 IF Idx.Date_Terminated < Idx.End_Date THEN
10905 -- grace period not allowed for terminated line
10906 Ld_CovLvl_Eff_End_Date := Idx.Date_Terminated;
10907 ELSE
10908 Ld_CovLvl_Eff_End_Date := Idx.End_Date;
10909 -- grace period changes starts
10910
10911 IF G_GRACE_PROFILE_SET = 'Y' AND Idx.Date_Terminated IS NULL THEN
10912 -- grace period changes are done only if line end date matches contract end date
10913
10914 G_CONTRACT_END_DATE := Idx.HDR_End_Date;
10915 G_CONTRACT_ID := Idx.Contract_Id;
10916
10917 IF trunc(Ld_CovLvl_Eff_End_Date) = trunc(Idx.HDR_End_Date) THEN
10918 Ld_CovLvl_Eff_End_Date := Get_Final_End_Date(Idx.Contract_Id,Ld_CovLvl_Eff_End_Date);
10919 END IF;
10920
10921 END IF;
10922 -- grace period changes ends
10923 END IF;
10924 --following procedure modified for grace period changes
10925
10926 Get_Service_Line_Details
10927 (P_SrvLine_Id => Idx.Service_Line_Id
10928 ,P_Organization_Id => Idx.Inv_Organization_Id
10929 ,X_Name => Lv_Srv_Name
10930 ,X_Description => Lv_Srv_Description
10931 ,X_Start_Date => Ld_Srv_Start_Date
10932 ,X_End_Date => Ld_Srv_End_Date
10933 ,X_Date_Terminated => Ld_Srv_Date_Terminated
10934 ,X_Eff_End_Date => Ld_Srv_Eff_End_Date
10935 ,X_Result => Lx_Result
10936 ,X_Return_Status => Lx_Return_Status);
10937
10938 IF Lx_Result <> G_TRUE THEN
10939 RAISE L_EXCEP_UNEXPECTED_ERR;
10940 END IF;
10941 --following procedure modified for grace period changes
10942
10943 Get_Coverage_Line_Details
10944 (P_SrvLine_Id => Idx.Service_Line_Id
10945 ,P_Organization_Id => Idx.Inv_Organization_Id
10946 ,X_Cov_Id => Lx_Cov_Id
10947 ,X_Name => Lv_Cov_Name
10948 ,X_Description => Lv_Cov_Description
10949 ,X_Start_Date => Ld_Cov_Start_Date
10950 ,X_End_Date => Ld_Cov_End_Date
10951 ,X_Date_Terminated => Ld_Cov_Date_Terminated
10952 ,X_Eff_End_Date => Ld_Cov_Eff_End_Date
10953 ,X_Result => Lx_Result
10954 ,X_Return_Status => Lx_Return_Status);
10955
10956 IF Lx_Result <> G_TRUE THEN
10957 RAISE L_EXCEP_UNEXPECTED_ERR;
10958 END IF;
10959
10960 IF (Ld_Request_Date BETWEEN Ld_Srv_Start_Date AND Ld_Srv_Eff_End_Date)
10961 AND
10962 (Ld_Request_Date BETWEEN Idx.Start_Date AND Ld_CovLvl_Eff_End_Date)
10963 AND
10964 (Ld_Request_Date BETWEEN Ld_Cov_Start_Date AND Ld_Cov_Eff_End_Date) THEN
10965
10966 Lv_Effective_Falg := 'T';
10967 ELSE
10968 Lv_Effective_Falg := 'F';
10969 END IF;
10970
10971 Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Idx.Service_Line_Id, 'ENTITLE');
10972
10973 IF (Lv_Validate_Flag = 'T' AND Lv_Effective_Falg = 'T' AND Lv_Entile_Flag = 'T') OR (Lv_Validate_Flag <> 'T') THEN
10974
10975 Get_Prof_Service_Name_And_Desc
10976 (P_Profile_Value => Lv_Prof_Value
10977 ,P_Db_Srv_Name => Lv_Srv_Name
10978 ,P_Db_Srv_Desc => Lv_Srv_Description
10979 ,X_Prof_Srv_Name => Lv_Prof_Srv_Name
10980 ,X_Prof_Srv_Desc => Lv_Prof_Srv_Desc
10981 ,X_Result => Lx_Result
10982 ,X_Return_Status => Lx_Return_Status);
10983
10984 IF Lx_Result <> G_TRUE THEN
10985 RAISE L_EXCEP_UNEXPECTED_ERR;
10986 END IF;
10987
10988 Li_OutTab_Idx := Li_OutTab_Idx + 1;
10989
10990 Lx_Contracts_01(Li_OutTab_Idx).Contract_Id := Idx.Contract_Id;
10991 Lx_Contracts_01(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
10992 Lx_Contracts_01(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
10993 Lx_Contracts_01(Li_OutTab_Idx).Service_Line_Id := Idx.Service_Line_Id;
10994 Lx_Contracts_01(Li_OutTab_Idx).Service_Name := Lv_Prof_Srv_Name; --Lv_Srv_Name;
10995 Lx_Contracts_01(Li_OutTab_Idx).Service_Description := Lv_Prof_Srv_Desc; --Lv_Srv_Description;
10996 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Cov_Id;
10997 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Name := Lv_Cov_Name;
10998 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Description := Lv_Cov_Description;
10999 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Line_Id := Idx.Coverage_Level_Line_Id;
11000 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level := Idx.Coverage_Level;
11001 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Code := Idx.Coverage_Level_Code;
11002 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Start_Date := Idx.Start_Date;
11003 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_End_Date := Idx.End_Date;
11004 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Id := Idx.Coverage_Level_Id;
11005 Lx_Contracts_01(Li_OutTab_Idx).Warranty_Flag := Idx.Warranty_Flag;
11006 Lx_Contracts_01(Li_OutTab_Idx).Eligible_For_Entitlement := Lv_Entile_Flag;
11007
11008 Get_Coverage_Type_Attribs
11009 (P_CVL_Id => Lx_Cov_Id --Lx_CovLine_Id
11010 ,P_Set_ExcepionStack => G_FALSE
11011 ,X_Cov_Type_Code => Lx_Cov_Type_Code
11012 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
11013 ,X_Cov_Type_Description => Lx_Cov_Type_Description
11014 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
11015 ,X_Result => Lx_Result
11016 ,X_Return_Status => Lx_Return_Status);
11017
11018 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
11019 RAISE L_EXCEP_UNEXPECTED_ERR;
11020 END IF;
11021
11022 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Code := Lx_Cov_Type_Code;
11023 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Cov_Type_Meaning;
11024 Lx_Contracts_01(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
11025
11026 END IF;
11027
11028 END LOOP;
11029
11030 END IF; ----Added for ER9681794
11031
11032 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
11033
11034 END LOOP;
11035
11036 IF NVL(P_Chr_Id_Flag,'N') = 'Y' THEN --Bug# 4719510 (JVARGHES)
11037
11038 X_Contracts_01 := Lx_Contracts_01;
11039
11040 ELSE --Bug# 4719510 (JVARGHES)
11041
11042 Sort_Asc_GetContracts_01
11043 (P_Input_Tab => Lx_Contracts_01
11044 ,X_Output_Tab => Lx_Contracts_01_Out
11045 ,X_Result => Lx_Result
11046 ,X_Return_Status => Lx_Return_Status);
11047
11048 IF Lx_Result <> G_TRUE THEN
11049 RAISE L_EXCEP_UNEXPECTED_ERR;
11050 END IF;
11051
11052 X_Contracts_01 := Lx_Contracts_01_Out;
11053
11054 END IF; --Bug# 4719510 (JVARGHES)
11055
11056 X_Result := G_TRUE; -- Bug #5092665 hmnair /*Bug:6767455*/
11057 X_Return_Status := Lx_Return_Status;
11058
11059 EXCEPTION
11060
11061 WHEN L_EXCEP_UNEXPECTED_ERR THEN
11062
11063 X_Result := Lx_Result;
11064 X_Return_Status := Lx_Return_Status;
11065
11066 WHEN OTHERS THEN
11067
11068 OKC_API.SET_MESSAGE
11069 (P_App_Name => G_APP_NAME_OKC
11070 ,P_Msg_Name => G_UNEXPECTED_ERROR
11071 ,P_Token1 => G_SQLCODE_TOKEN
11072 ,P_Token1_Value => SQLCODE
11073 ,P_Token2 => G_SQLERRM_TOKEN
11074 ,P_Token2_Value => SQLERRM);
11075
11076 OKC_API.SET_MESSAGE
11077 (P_App_Name => G_APP_NAME_OKC
11078 ,P_Msg_Name => G_DEBUG_TOKEN
11079 ,P_Token1 => G_PACKAGE_TOKEN
11080 ,P_Token1_Value => G_PKG_NAME
11081 ,P_Token2 => G_PROGRAM_TOKEN
11082 ,P_Token2_Value => 'Get_Contracts_01_Format');
11083
11084 X_Result := G_FALSE;
11085 X_Return_Status := G_RET_STS_UNEXP_ERROR;
11086
11087 END Get_Contracts_01_Format;
11088
11089 -----------------------------------------------------------------------------------------------------------------------*
11090
11091 PROCEDURE Get_Contracts_01
11092 (P_API_Version IN NUMBER
11093 ,P_Init_Msg_List IN VARCHAR2
11094 ,P_Inp_Rec IN Inp_Cont_Rec
11095 ,X_Return_Status OUT NOCOPY VARCHAR2
11096 ,X_Msg_Count OUT NOCOPY NUMBER
11097 ,X_Msg_Data OUT NOCOPY VARCHAR2
11098 ,X_Ent_Contracts OUT NOCOPY Ent_Cont_Tbl)
11099 IS
11100
11101 Lx_Inp_Rec CONSTANT Inp_Cont_Rec := P_Inp_Rec;
11102
11103 Lx_Ent_Contracts Ent_Cont_Tbl;
11104
11105 Lx_Contracts GT_Contract_Ref;
11106
11107 Ln_Organization_Id NUMBER;
11108 Ln_Org_Id NUMBER;
11109
11110 Lv_Chr_Id_Flag VARCHAR2(10); --Bug# 4719510 (JVARGHES)
11111
11112 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
11113
11114 Lx_Result Gx_Boolean;
11115 Lx_Return_Status Gx_Ret_Sts;
11116
11117 BEGIN
11118
11119 Lx_Result := G_TRUE;
11120 Lx_Return_Status := G_RET_STS_SUCCESS;
11121
11122
11123 -- Bug# 4735542.
11124 -- Ln_Organization_Id := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
11125
11126 -- Modified for 12.0 MOAC project (JVARGHES)
11127 -- Ln_Org_Id := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
11128 --
11129
11130 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
11131
11132 Lv_Chr_Id_Flag := 'N'; --Bug# 4719510 (JVARGHES)
11133
11134 IF Lx_Inp_Rec.Coverage_Level_Line_Id IS NOT NULL THEN
11135
11136 Get_CovLvlLine_Contracts
11137 (P_CovLvlLine_Id => Lx_Inp_Rec.Coverage_Level_Line_Id
11138 ,X_Contracts => Lx_Contracts
11139 ,X_Result => Lx_Result
11140 ,X_Return_Status => Lx_Return_Status);
11141
11142 IF Lx_Result <> G_TRUE THEN
11143 RAISE L_EXCEP_UNEXPECTED_ERR;
11144 END IF;
11145
11146 ELSIF Lx_Inp_Rec.Contract_Number IS NOT NULL THEN
11147
11148 Lv_Chr_Id_Flag := 'Y'; --Bug# 4719510 (JVARGHES)
11149
11150 Get_Contracts_Id
11151 (P_Contract_Num => Lx_Inp_Rec.Contract_Number
11152 ,P_Contract_Num_Modifier => Lx_Inp_Rec.Contract_Number_Modifier --NULL
11153 ,X_Contracts => Lx_Contracts
11154 ,X_Result => Lx_Result
11155 ,X_Return_Status => Lx_Return_Status);
11156
11157 IF Lx_Result <> G_TRUE THEN
11158 RAISE L_EXCEP_UNEXPECTED_ERR;
11159 END IF;
11160
11161 ELSIF Lx_Inp_Rec.Product_Id IS NOT NULL THEN
11162
11163 Get_CovProd_Contracts
11164 (P_CovProd_Obj_Id => Lx_Inp_Rec.Product_Id
11165 ,P_Organization_Id => Ln_Organization_Id
11166 ,P_Org_Id => Ln_Org_Id
11167 ,X_CovProd_Contracts => Lx_Contracts
11168 ,X_Result => Lx_Result
11169 ,X_Return_Status => Lx_Return_Status);
11170
11171 IF Lx_Result <> G_TRUE THEN
11172 RAISE L_EXCEP_UNEXPECTED_ERR;
11173 END IF;
11174
11175 ELSIF Lx_Inp_Rec.Item_Id IS NOT NULL THEN
11176
11177 Get_CovItem_Contracts
11178 (P_CovItem_Obj_Id => Lx_Inp_Rec.Item_Id
11179 ,P_Organization_Id => Ln_Organization_Id
11180 ,P_Party_Id => Lx_Inp_Rec.Party_Id
11181 ,X_CovItem_Contracts => Lx_Contracts
11182 ,X_Result => Lx_Result
11183 ,X_Return_Status => Lx_Return_Status);
11184
11185 IF Lx_Result <> G_TRUE THEN
11186 RAISE L_EXCEP_UNEXPECTED_ERR;
11187 END IF;
11188
11189 ELSIF Lx_Inp_Rec.System_Id IS NOT NULL THEN
11190
11191 Get_CovSys_Contracts
11192 (P_CovSys_Obj_Id => Lx_Inp_Rec.System_Id
11193 ,P_Org_Id => Ln_Org_Id
11194 ,X_CovSys_Contracts => Lx_Contracts
11195 ,X_Result => Lx_Result
11196 ,X_Return_Status => Lx_Return_Status);
11197
11198 IF Lx_Result <> G_TRUE THEN
11199 RAISE L_EXCEP_UNEXPECTED_ERR;
11200 END IF;
11201
11202 ELSIF Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL THEN
11203
11204 Get_CovCust_Contracts
11205 (P_CovCust_Obj_Id => Lx_Inp_Rec.Cust_Acct_Id
11206 ,X_CovCust_Contracts => Lx_Contracts
11207 ,X_Result => Lx_Result
11208 ,X_Return_Status => Lx_Return_Status);
11209
11210 IF Lx_Result <> G_TRUE THEN
11211 RAISE L_EXCEP_UNEXPECTED_ERR;
11212 END IF;
11213
11214 ELSIF Lx_Inp_Rec.Site_Id IS NOT NULL THEN
11215
11216 Get_CovSite_Contracts
11217 (P_CovSite_Obj_Id => Lx_Inp_Rec.Site_Id
11218 ,P_Org_Id => Ln_Org_Id
11219 ,X_CovSite_Contracts => Lx_Contracts
11220 ,X_Result => Lx_Result
11221 ,X_Return_Status => Lx_Return_Status);
11222
11223 IF Lx_Result <> G_TRUE THEN
11224 RAISE L_EXCEP_UNEXPECTED_ERR;
11225 END IF;
11226
11227 ELSIF Lx_Inp_Rec.Party_Id IS NOT NULL THEN
11228
11229 Get_CovParty_Contracts
11230 (P_CovParty_Obj_Id => Lx_Inp_Rec.Party_Id
11231 ,X_CovParty_Contracts => Lx_Contracts
11232 ,X_Result => Lx_Result
11233 ,X_Return_Status => Lx_Return_Status);
11234
11235 IF Lx_Result <> G_TRUE THEN
11236 RAISE L_EXCEP_UNEXPECTED_ERR;
11237 END IF;
11238
11239 END IF;
11240
11241 Get_Contracts_01_Format
11242 (P_Contracts => Lx_Contracts
11243 ,P_Request_Date => Lx_Inp_Rec.Request_Date
11244 ,P_Validate_Flag => Lx_Inp_Rec.Validate_Flag
11245 ,P_Chr_Id_Flag => Lv_Chr_Id_Flag --Bug# 4719510 (JVARGHES)
11246 ,X_Contracts_01 => Lx_Ent_Contracts
11247 ,X_Result => Lx_Result
11248 ,X_Return_Status => Lx_Return_Status);
11249
11250 IF Lx_Result <> G_TRUE THEN
11251 RAISE L_EXCEP_UNEXPECTED_ERR;
11252 END IF;
11253
11254 X_Ent_Contracts := Lx_Ent_Contracts;
11255 X_Return_Status := Lx_Return_Status;
11256
11257 EXCEPTION
11258
11259 WHEN L_EXCEP_UNEXPECTED_ERR THEN
11260
11261 --X_Result := Lx_Result;
11262 X_Return_Status := Lx_Return_Status;
11263
11264 WHEN OTHERS THEN
11265
11266 OKC_API.SET_MESSAGE
11267 (P_App_Name => G_APP_NAME_OKC
11268 ,P_Msg_Name => G_UNEXPECTED_ERROR
11269 ,P_Token1 => G_SQLCODE_TOKEN
11270 ,P_Token1_Value => SQLCODE
11271 ,P_Token2 => G_SQLERRM_TOKEN
11272 ,P_Token2_Value => SQLERRM);
11273
11274 OKC_API.SET_MESSAGE
11275 (P_App_Name => G_APP_NAME_OKC
11276 ,P_Msg_Name => G_DEBUG_TOKEN
11277 ,P_Token1 => G_PACKAGE_TOKEN
11278 ,P_Token1_Value => G_PKG_NAME
11279 ,P_Token2 => G_PROGRAM_TOKEN
11280 ,P_Token2_Value => 'get_contracts_01');
11281
11282 --X_Result := G_FALSE;
11283 X_Return_Status := G_RET_STS_UNEXP_ERROR;
11284
11285 END get_contracts_01;
11286
11287 -----------------------------------------------------------------------------------------------------------------------*
11288
11289 PROCEDURE Get_Contracts
11290 (P_API_Version IN NUMBER
11291 ,P_Init_Msg_List IN VARCHAR2
11292 ,P_Inp_Rec IN Inp_Cont_Rec
11293 ,X_Return_Status OUT NOCOPY VARCHAR2
11294 ,X_Msg_Count OUT NOCOPY NUMBER
11295 ,X_Msg_Data OUT NOCOPY VARCHAR2
11296 ,X_Ent_Contracts OUT NOCOPY Ent_Cont_Tbl)
11297 IS
11298
11299 Lx_Inp_Rec Inp_Cont_Rec;
11300
11301 BEGIN
11302
11303 Lx_Inp_Rec := P_Inp_Rec;
11304
11305 -- Bug# 4735542.
11306 -- okc_context.set_okc_org_context;
11307
11308 IF Lx_Inp_Rec.Request_Date IS NULL THEN
11309 Lx_Inp_Rec.Request_Date := SYSDATE;
11310 END IF;
11311
11312 Get_Contracts_01
11313 (P_API_Version => P_API_Version
11314 ,P_Init_Msg_List => P_Init_Msg_List
11315 ,P_Inp_Rec => Lx_Inp_Rec
11316 ,X_Return_Status => X_Return_Status
11317 ,X_Msg_Count => X_Msg_Count
11318 ,X_Msg_Data => X_Msg_Data
11319 ,X_Ent_Contracts => X_Ent_Contracts);
11320
11321 EXCEPTION
11322
11323 WHEN OTHERS THEN
11324
11325 OKC_API.SET_MESSAGE
11326 (P_App_Name => G_APP_NAME_OKC
11327 ,P_Msg_Name => G_UNEXPECTED_ERROR
11328 ,P_Token1 => G_SQLCODE_TOKEN
11329 ,P_Token1_Value => SQLCODE
11330 ,P_Token2 => G_SQLERRM_TOKEN
11331 ,P_Token2_Value => SQLERRM);
11332
11333 OKC_API.SET_MESSAGE
11334 (P_App_Name => G_APP_NAME_OKC
11335 ,P_Msg_Name => G_DEBUG_TOKEN
11336 ,P_Token1 => G_PACKAGE_TOKEN
11337 ,P_Token1_Value => G_PKG_NAME
11338 ,P_Token2 => G_PROGRAM_TOKEN
11339 ,P_Token2_Value => 'Get_Contracts-Ent_Cont_Tbl');
11340
11341 --X_Result := G_FALSE;
11342 X_Return_Status := G_RET_STS_UNEXP_ERROR;
11343
11344 END Get_Contracts;
11345
11346 -----------------------------------------------------------------------------------------------------------------------*
11347
11348 PROCEDURE Sort_Asc_GetContracts_02
11349 (P_Input_Tab IN Get_ConTop_Tbl
11350 ,P_Sort_Key IN VARCHAR2
11351 ,X_Output_Tab out nocopy Get_ConTop_Tbl
11352 ,X_Result out nocopy Gx_Boolean
11353 ,X_Return_Status out nocopy Gx_Ret_Sts)
11354 IS
11355
11356 Lv_Sort_Key CONSTANT VARCHAR2(10) := P_Sort_Key;
11357
11358 Lx_Sort_Tab Get_ConTop_Tbl;
11359
11360 Li_TableIdx_Out BINARY_INTEGER;
11361 Li_TableIdx_In BINARY_INTEGER;
11362
11363 Lx_Temp_ContItem Get_ConTop_Rec;
11364
11365 Lv_Composit_Val1 DATE;
11366 Lv_Composit_Val1_Num NUMBER;
11367
11368 Lv_Composit_Val2 DATE;
11369 Lv_Composit_Val2_Num NUMBER;
11370
11371 Lx_Result Gx_Boolean;
11372 Lx_Return_Status Gx_Ret_Sts;
11373
11374 BEGIN
11375
11376 Lx_Result := G_TRUE;
11377 Lx_Return_Status := G_RET_STS_SUCCESS;
11378
11379 Lx_Sort_Tab := P_Input_Tab;
11380
11381 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
11382
11383 WHILE Li_TableIdx_Out IS NOT NULL LOOP
11384
11385 Li_TableIdx_In := Li_TableIdx_Out;
11386
11387 WHILE Li_TableIdx_In IS NOT NULL LOOP
11388
11389 IF Lv_Sort_Key IN (G_RESOLUTION_TIME,G_REACTION_TIME) THEN
11390
11391 IF Lv_Sort_Key = G_REACTION_TIME THEN
11392 Lv_Composit_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Exp_Reaction_Time;
11393 ELSE
11394 Lv_Composit_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Exp_Resolution_Time;
11395 END IF;
11396
11397 IF Lv_Composit_Val1 IS NOT NULL THEN
11398 Lv_Composit_Val1_Num := TO_NUMBER(TO_CHAR(Lv_Composit_Val1,'YYYYMMDDHH24MISS'));
11399 ELSE
11400 -- Lv_Composit_Val1_Num := NULL; --G_MISS_NUM; -- Bug# 4896181
11401 Lv_Composit_Val1_Num := 99999999999999; -- Bug# 4896181
11402 END IF;
11403
11404 IF Lv_Sort_Key = G_REACTION_TIME THEN
11405 Lv_Composit_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Exp_Reaction_Time;
11406 ELSE
11407 Lv_Composit_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Exp_Resolution_Time;
11408 END IF;
11409
11410 IF Lv_Composit_Val2 IS NOT NULL THEN
11411 Lv_Composit_Val2_Num := TO_NUMBER(TO_CHAR(Lv_Composit_Val2,'YYYYMMDDHH24MISS'));
11412 ELSE
11413 -- Lv_Composit_Val2_Num := NULL; --G_MISS_NUM; -- Bug# 4896181
11414 Lv_Composit_Val2_Num := 99999999999999; -- Bug# 4896181
11415 END IF;
11416
11417 ELSIF Lv_Sort_Key = G_COVERAGE_TYPE_IMP_LEVEL THEN
11418
11419 -- Bug# 4896181
11420 -- Lv_Composit_Val1_Num := NVL(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Type_Imp_Level,NULL --G_MISS_NUM);
11421 -- Lv_Composit_Val2_Num := NVL(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Type_Imp_Level,NULL --G_MISS_NUM) ;
11422
11423 Lv_Composit_Val1_Num := NVL(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Type_Imp_Level,99999999999999);
11424 Lv_Composit_Val2_Num := NVL(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Type_Imp_Level,99999999999999);
11425
11426
11427 END IF;
11428
11429 IF Lv_Composit_Val1_Num > Lv_Composit_Val2_Num THEN
11430
11431 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
11432 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
11433 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
11434
11435 END IF;
11436
11437 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
11438
11439 END LOOP;
11440
11441 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
11442
11443 END LOOP;
11444
11445 X_Output_Tab := Lx_Sort_Tab;
11446 X_Result := Lx_Result;
11447 X_Return_Status := Lx_Return_Status;
11448
11449 EXCEPTION
11450
11451 WHEN OTHERS THEN
11452
11453 OKC_API.SET_MESSAGE
11454 (P_App_Name => G_APP_NAME_OKC
11455 ,P_Msg_Name => G_UNEXPECTED_ERROR
11456 ,P_Token1 => G_SQLCODE_TOKEN
11457 ,P_Token1_Value => SQLCODE
11458 ,P_Token2 => G_SQLERRM_TOKEN
11459 ,P_Token2_Value => SQLERRM);
11460
11461 OKC_API.SET_MESSAGE
11462 (P_App_Name => G_APP_NAME_OKC
11463 ,P_Msg_Name => G_DEBUG_TOKEN
11464 ,P_Token1 => G_PACKAGE_TOKEN
11465 ,P_Token1_Value => G_PKG_NAME
11466 ,P_Token2 => G_PROGRAM_TOKEN
11467 ,P_Token2_Value => 'Sort_Asc_GetContracts_02');
11468
11469 X_Result := G_FALSE;
11470 X_Return_Status := G_RET_STS_UNEXP_ERROR;
11471
11472 END Sort_Asc_GetContracts_02;
11473
11474 -----------------------------------------------------------------------------------------------------------------------*
11475 PROCEDURE Get_Contracts_02_Format
11476 (P_Contracts IN GT_Contract_Ref
11477 ,P_BusiProc_Id IN Gx_BusProcess_Id
11478 ,P_Severity_Id IN Gx_Severity_Id
11479 ,P_Request_TZone_Id IN Gx_TimeZoneId
11480 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
11481 ,P_Incident_Date IN DATE -- Added for 12.0 ENT-TZ project (JVARGHES)
11482 ,P_Request_Date IN DATE
11483 ,P_Calc_RespTime_YN IN VARCHAR2
11484 ,P_Validate_Eff IN VARCHAR2
11485 ,P_Validate_Flag IN VARCHAR2
11486 ,P_SrvLine_Flag IN VARCHAR2
11487 ,P_Sort_Key IN VARCHAR2
11488 ,X_Contracts_02 out nocopy Get_ConTop_Tbl
11489 ,X_Result out nocopy Gx_Boolean
11490 ,X_Return_Status out nocopy Gx_Ret_Sts
11491 ,P_cust_id IN NUMBER DEFAULT NULL
11492 ,P_cust_site_id IN NUMBER DEFAULT NULL
11493 ,P_cust_loc_id IN NUMBER DEFAULT NULL)
11494 IS
11495
11496 -- cursor for Cx_SrvLine_Id is not null and Cx_CovLvlLine_Id is null
11497
11498 CURSOR Lx_Csr_Contracts1(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11499 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS ----added Cd_req_dt parameter for 13795417 by ansraj
11500 SELECT HD.Id Contract_Id
11501 ,HD.Contract_Number
11502 ,HD.Contract_Number_Modifier
11503 ,HD.Sts_Code
11504 ,HD.Authoring_Org_Id
11505 ,HD.Inv_Organization_Id
11506 ,HD.End_Date HDR_End_Date --grace period changes
11507 ,SV.Id Service_Line_Id
11508 ,SV.Start_Date SV_Start_Date
11509 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11510 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11511 ,CL.Sts_Code CL_Sts_Code
11512 ,CL.Id CovLvl_Line_Id
11513 ,CL.Start_Date CL_Start_Date
11514 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11515 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11516 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11517 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11518 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
11519 ,Okc_K_Lines_B SV
11520 ,Okc_K_Lines_B CL
11521 WHERE HD.Id = Cx_Chr_Id
11522 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
11523 AND HD.Id > -1
11524 AND HD.Template_YN <> 'Y'
11525 AND SV.Dnz_Chr_Id = HD.Id
11526 AND SV.Cle_Id IS NULL
11527 AND SV.Chr_Id = HD.Id
11528 AND SV.Lse_ID IN (1,14,19)
11529 AND SV.Id = Cx_SrvLine_Id --NVL(Cx_SrvLine_Id,SV.Id)
11530 AND CL.Cle_Id = SV.Id
11531 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11532 AND (Cx_BP_Id IS NULL
11533 OR
11534 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11535 FROM Okc_K_Items ITM
11536 ,Okc_K_Lines_B BPL
11537 ,Oks_K_Lines_B KSL
11538 WHERE KSL.Cle_Id = SV.Id
11539 AND BPL.Cle_Id = KSL.Coverage_ID
11540 AND ITM.Cle_Id = BPL.Id
11541 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11542 AND ITM.Object1_Id2 = '#'
11543 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11544 AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt))) --Cv_ValFlg validation added for bugfix 14596603 by ansraj ----added for 13795417 by ansraj
11545 ));
11546
11547 CURSOR Lx_Csr_Contracts1_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11548 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS ----added Cd_req_dt parameter for 13795417 by ansraj
11549 SELECT HD.Id Contract_Id
11550 ,HD.Contract_Number
11551 ,HD.Contract_Number_Modifier
11552 ,HD.Sts_Code
11553 ,HD.Authoring_Org_Id
11554 ,HD.Inv_Organization_Id
11555 ,HD.End_Date HDR_End_Date --grace period changes
11556 ,SV.Id Service_Line_Id
11557 ,SV.Start_Date SV_Start_Date
11558 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11559 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11560 ,CL.Sts_Code CL_Sts_Code
11561 ,CL.Id CovLvl_Line_Id
11562 ,CL.Start_Date CL_Start_Date
11563 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11564 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11565 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11566 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11567 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
11568 ,Okc_K_Lines_B SV
11569 ,Okc_K_Lines_B CL
11570 WHERE HD.Id = Cx_Chr_Id
11571 AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION') ----Modified condition for ER9681794
11572 AND HD.Id > -1
11573 AND HD.Template_YN <> 'Y'
11574 AND SV.Dnz_Chr_Id = HD.Id
11575 AND SV.Cle_Id IS NULL
11576 AND SV.Chr_Id = HD.Id
11577 AND SV.Lse_ID IN (1,14,19)
11578 AND SV.Id = Cx_SrvLine_Id --NVL(Cx_SrvLine_Id,SV.Id)
11579 AND CL.Cle_Id = SV.Id
11580 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11581 AND (Cx_BP_Id IS NULL
11582 OR
11583 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11584 FROM Okc_K_Items ITM
11585 ,Okc_K_Lines_B BPL
11586 ,Oks_K_Lines_B KSL
11587 WHERE KSL.Cle_Id = SV.Id
11588 AND BPL.Cle_Id = KSL.Coverage_ID
11589 AND ITM.Cle_Id = BPL.Id
11590 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11591 AND ITM.Object1_Id2 = '#'
11592 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11593 AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt))) --Cv_ValFlg validation added for bugfix 14596603 by ansraj ----added for 13795417 by ansraj
11594 ));
11595 --
11596 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11597 --
11598 -- EXISTS (SELECT '*'
11599 -- FROM Okc_K_Items ITM
11600 -- ,Okc_K_Lines_B BPL
11601 -- ,Okc_K_Lines_B CV
11602 -- WHERE CV.Cle_Id = SV.Id
11603 -- AND CV.Lse_Id IN (2,15,20)
11604 -- AND BPL.Cle_Id = CV.Id
11605 -- AND ITM.Cle_Id = BPL.Id
11606 -- -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
11607 -- AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11608 -- AND ITM.Object1_Id2 = '#'
11609 -- -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11610 -- AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11611 -- ));
11612 --
11613 --
11614
11615 -- cursor for Cx_SrvLine_Id is null and Cx_CovLvlLine_Id is not null
11616
11617 CURSOR Lx_Csr_Contracts2(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11618 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS ----added Cd_req_dt parameter for 13795417 by ansraj
11619 SELECT HD.Id Contract_Id
11620 ,HD.Contract_Number
11621 ,HD.Contract_Number_Modifier
11622 ,HD.Sts_Code
11623 ,HD.Authoring_Org_Id
11624 ,HD.Inv_Organization_Id
11625 ,HD.End_Date HDR_End_Date --grace period changes
11626 ,SV.Id Service_Line_Id
11627 ,SV.Start_Date SV_Start_Date
11628 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11629 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11630 ,CL.Sts_Code CL_Sts_Code
11631 ,CL.Id CovLvl_Line_Id
11632 ,CL.Start_Date CL_Start_Date
11633 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11634 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11635 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11636 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11637 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
11638 ,Okc_K_Lines_B SV
11639 ,Okc_K_Lines_B CL
11640 WHERE HD.Id = Cx_Chr_Id
11641 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
11642 AND HD.Id > -1
11643 AND HD.Template_YN <> 'Y'
11644 AND SV.Dnz_Chr_Id = HD.Id
11645 AND SV.Cle_Id IS NULL
11646 AND SV.Chr_Id = HD.Id
11647 AND SV.Lse_ID IN (1,14,19)
11648 AND CL.Cle_Id = SV.Id
11649 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11650 AND CL.Id = Cx_CovLvlLine_Id
11651 AND (Cx_BP_Id IS NULL
11652 OR
11653 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11654 FROM Okc_K_Items ITM
11655 ,Okc_K_Lines_B BPL
11656 ,Oks_K_Lines_B KSL
11657 WHERE KSL.Cle_Id = SV.Id
11658 AND BPL.Cle_Id = KSL.Coverage_ID
11659 AND ITM.Cle_Id = BPL.Id
11660 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11661 AND ITM.Object1_Id2 = '#'
11662 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11663 AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt))) --Cv_ValFlg validation added for bugfix 14596603 by ansraj ----added for 13795417 by ansraj
11664 ));
11665
11666 CURSOR Lx_Csr_Contracts2_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11667 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS ----added Cd_req_dt parameter for 13795417 by ansraj
11668 SELECT HD.Id Contract_Id
11669 ,HD.Contract_Number
11670 ,HD.Contract_Number_Modifier
11671 ,HD.Sts_Code
11672 ,HD.Authoring_Org_Id
11673 ,HD.Inv_Organization_Id
11674 ,HD.End_Date HDR_End_Date --grace period changes
11675 ,SV.Id Service_Line_Id
11676 ,SV.Start_Date SV_Start_Date
11677 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11678 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11679 ,CL.Sts_Code CL_Sts_Code
11680 ,CL.Id CovLvl_Line_Id
11681 ,CL.Start_Date CL_Start_Date
11682 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11683 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11684 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11685 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11686 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
11687 ,Okc_K_Lines_B SV
11688 ,Okc_K_Lines_B CL
11689 WHERE HD.Id = Cx_Chr_Id
11690 AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION') -------Modified condition for ER9681794
11691 AND HD.Id > -1
11692 AND HD.Template_YN <> 'Y'
11693 AND SV.Dnz_Chr_Id = HD.Id
11694 AND SV.Cle_Id IS NULL
11695 AND SV.Chr_Id = HD.Id
11696 AND SV.Lse_ID IN (1,14,19)
11697 AND CL.Cle_Id = SV.Id
11698 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11699 AND CL.Id = Cx_CovLvlLine_Id
11700 AND (Cx_BP_Id IS NULL
11701 OR
11702 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11703 FROM Okc_K_Items ITM
11704 ,Okc_K_Lines_B BPL
11705 ,Oks_K_Lines_B KSL
11706 WHERE KSL.Cle_Id = SV.Id
11707 AND BPL.Cle_Id = KSL.Coverage_ID
11708 AND ITM.Cle_Id = BPL.Id
11709 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11710 AND ITM.Object1_Id2 = '#'
11711 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11712 AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt))) --Cv_ValFlg validation added for bugfix 14596603 by ansraj ----added for 13795417 by ansraj
11713 ));
11714 --
11715 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11716 --
11717 -- EXISTS (SELECT '*'
11718 -- FROM Okc_K_Items ITM
11719 -- ,Okc_K_Lines_B BPL
11720 -- ,Okc_K_Lines_B CV
11721 -- WHERE CV.Cle_Id = SV.Id
11722 -- AND CV.Lse_Id IN (2,15,20)
11723 -- AND BPL.Cle_Id = CV.Id
11724 -- AND ITM.Cle_Id = BPL.Id
11725 -- -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
11726 -- AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11727 -- AND ITM.Object1_Id2 = '#'
11728 -- -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11729 -- AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11730 -- ));
11731 --
11732 --
11733
11734 -- cursor for Cx_SrvLine_Id is not null and Cx_CovLvlLine_Id is not null
11735
11736 CURSOR Lx_Csr_Contracts3(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11737 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS ----added Cd_req_dt parameter for 13795417 by ansraj
11738 SELECT HD.Id Contract_Id
11739 ,HD.Contract_Number
11740 ,HD.Contract_Number_Modifier
11741 ,HD.Sts_Code
11742 ,HD.Authoring_Org_Id
11743 ,HD.Inv_Organization_Id
11744 ,HD.End_Date HDR_End_Date --grace period changes
11745 ,SV.Id Service_Line_Id
11746 ,SV.Start_Date SV_Start_Date
11747 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11748 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11749 ,CL.Sts_Code CL_Sts_Code
11750 ,CL.Id CovLvl_Line_Id
11751 ,CL.Start_Date CL_Start_Date
11752 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11753 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11754 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11755 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11756 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
11757 ,Okc_K_Lines_B SV
11758 ,Okc_K_Lines_B CL
11759 WHERE HD.Id = Cx_Chr_Id
11760 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
11761 AND HD.Id > -1
11762 AND HD.Template_YN <> 'Y'
11763 AND SV.Dnz_Chr_Id = HD.Id
11764 AND SV.Cle_Id IS NULL
11765 AND SV.Chr_Id = HD.Id
11766 AND SV.Lse_ID IN (1,14,19)
11767 AND SV.Id = Cx_SrvLine_Id
11768 AND CL.Cle_Id = SV.Id
11769 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11770 AND CL.Id = Cx_CovLvlLine_Id
11771 AND (Cx_BP_Id IS NULL
11772 OR
11773 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11774 FROM Okc_K_Items ITM
11775 ,Okc_K_Lines_B BPL
11776 ,Oks_K_Lines_B KSL
11777 WHERE KSL.Cle_Id = SV.Id
11778 AND BPL.Cle_Id = KSL.Coverage_ID
11779 AND ITM.Cle_Id = BPL.Id
11780 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11781 AND ITM.Object1_Id2 = '#'
11782 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11783 AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt))) --Cv_ValFlg validation added for bugfix 14596603 by ansraj ----added for 13795417 by ansraj
11784 ));
11785
11786 CURSOR Lx_Csr_Contracts3_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11787 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS ----added Cd_req_dt parameter for 13795417 by ansraj
11788 SELECT HD.Id Contract_Id
11789 ,HD.Contract_Number
11790 ,HD.Contract_Number_Modifier
11791 ,HD.Sts_Code
11792 ,HD.Authoring_Org_Id
11793 ,HD.Inv_Organization_Id
11794 ,HD.End_Date HDR_End_Date --grace period changes
11795 ,SV.Id Service_Line_Id
11796 ,SV.Start_Date SV_Start_Date
11797 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11798 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11799 ,CL.Sts_Code CL_Sts_Code
11800 ,CL.Id CovLvl_Line_Id
11801 ,CL.Start_Date CL_Start_Date
11802 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11803 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11804 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11805 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11806 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
11807 ,Okc_K_Lines_B SV
11808 ,Okc_K_Lines_B CL
11809 WHERE HD.Id = Cx_Chr_Id
11810 AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION') ----Modified condition for ER9681794
11811 AND HD.Id > -1
11812 AND HD.Template_YN <> 'Y'
11813 AND SV.Dnz_Chr_Id = HD.Id
11814 AND SV.Cle_Id IS NULL
11815 AND SV.Chr_Id = HD.Id
11816 AND SV.Lse_ID IN (1,14,19)
11817 AND SV.Id = Cx_SrvLine_Id
11818 AND CL.Cle_Id = SV.Id
11819 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11820 AND CL.Id = Cx_CovLvlLine_Id
11821 AND (Cx_BP_Id IS NULL
11822 OR
11823 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11824 FROM Okc_K_Items ITM
11825 ,Okc_K_Lines_B BPL
11826 ,Oks_K_Lines_B KSL
11827 WHERE KSL.Cle_Id = SV.Id
11828 AND BPL.Cle_Id = KSL.Coverage_ID
11829 AND ITM.Cle_Id = BPL.Id
11830 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11831 AND ITM.Object1_Id2 = '#'
11832 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11833 AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt))) --Cv_ValFlg validation added for bugfix 14596603 by ansraj ----added for 13795417 by ansraj
11834 ));
11835 --
11836 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11837 --
11838 -- EXISTS (SELECT '*'
11839 -- FROM Okc_K_Items ITM
11840 -- ,Okc_K_Lines_B BPL
11841 -- ,Okc_K_Lines_B CV
11842 -- WHERE CV.Cle_Id = SV.Id
11843 -- AND CV.Lse_Id IN (2,15,20)
11844 -- AND BPL.Cle_Id = CV.Id
11845 -- AND ITM.Cle_Id = BPL.Id
11846 -- -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
11847 -- AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11848 -- AND ITM.Object1_Id2 = '#'
11849 -- -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11850 -- AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11851 -- ));
11852 --
11853
11854 -- cursor for Cx_SrvLine_Id is null and Cx_CovLvlLine_Id is null
11855
11856 CURSOR Lx_Csr_Contracts4(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11857 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS ----added Cd_req_dt parameter for 13795417 by ansraj
11858 SELECT HD.Id Contract_Id
11859 ,HD.Contract_Number
11860 ,HD.Contract_Number_Modifier
11861 ,HD.Sts_Code
11862 ,HD.Authoring_Org_Id
11863 ,HD.Inv_Organization_Id
11864 ,HD.End_Date HDR_End_Date --grace period changes
11865 ,SV.Id Service_Line_Id
11866 ,SV.Start_Date SV_Start_Date
11867 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11868 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11869 ,CL.Sts_Code CL_Sts_Code
11870 ,CL.Id CovLvl_Line_Id
11871 ,CL.Start_Date CL_Start_Date
11872 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11873 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11874 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11875 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11876 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
11877 ,Okc_K_Lines_B SV
11878 ,Okc_K_Lines_B CL
11879 WHERE HD.Id = Cx_Chr_Id
11880 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
11881 AND HD.Id > -1
11882 AND HD.Template_YN <> 'Y'
11883 AND SV.Dnz_Chr_Id = HD.Id
11884 AND SV.Cle_Id IS NULL
11885 AND SV.Chr_Id = HD.Id
11886 AND SV.Lse_ID IN (1,14,19)
11887 AND CL.Cle_Id = SV.Id
11888 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11889 AND (Cx_BP_Id IS NULL
11890 OR
11891 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11892 FROM Okc_K_Items ITM
11893 ,Okc_K_Lines_B BPL
11894 ,Oks_K_Lines_B KSL
11895 WHERE KSL.Cle_Id = SV.Id
11896 AND BPL.Cle_Id = KSL.Coverage_ID
11897 AND ITM.Cle_Id = BPL.Id
11898 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11899 AND ITM.Object1_Id2 = '#'
11900 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11901 AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt))) --Cv_ValFlg validation added for bugfix 14596603 by ansraj ----added for 13795417 by ansraj
11902 ));
11903
11904 CURSOR Lx_Csr_Contracts4_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11905 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS ----added Cd_req_dt parameter for 13795417 by ansraj
11906
11907 SELECT HD.Id Contract_Id
11908 ,HD.Contract_Number
11909 ,HD.Contract_Number_Modifier
11910 ,HD.Sts_Code
11911 ,HD.Authoring_Org_Id
11912 ,HD.Inv_Organization_Id
11913 ,HD.End_Date HDR_End_Date --grace period changes
11914 ,SV.Id Service_Line_Id
11915 ,SV.Start_Date SV_Start_Date
11916 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11917 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11918 ,CL.Sts_Code CL_Sts_Code
11919 ,CL.Id CovLvl_Line_Id
11920 ,CL.Start_Date CL_Start_Date
11921 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11922 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11923 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11924 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11925 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
11926 ,Okc_K_Lines_B SV
11927 ,Okc_K_Lines_B CL
11928 WHERE HD.Id = Cx_Chr_Id
11929 AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION') ----Modified condition for ER9681794
11930 AND HD.Id > -1
11931 AND HD.Template_YN <> 'Y'
11932 AND SV.Dnz_Chr_Id = HD.Id
11933 AND SV.Cle_Id IS NULL
11934 AND SV.Chr_Id = HD.Id
11935 AND SV.Lse_ID IN (1,14,19)
11936 AND CL.Cle_Id = SV.Id
11937 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11938 AND (Cx_BP_Id IS NULL
11939 OR
11940 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11941 FROM Okc_K_Items ITM
11942 ,Okc_K_Lines_B BPL
11943 ,Oks_K_Lines_B KSL
11944 WHERE KSL.Cle_Id = SV.Id
11945 AND BPL.Cle_Id = KSL.Coverage_ID
11946 AND ITM.Cle_Id = BPL.Id
11947 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11948 AND ITM.Object1_Id2 = '#'
11949 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11950 AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt))) --Cv_ValFlg validation added for bugfix 14596603 by ansraj ----added for 13795417 by ansraj
11951 ));
11952 --
11953 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11954 --
11955 --
11956 -- EXISTS (SELECT '*'
11957 -- FROM Okc_K_Items ITM
11958 -- ,Okc_K_Lines_B BPL
11959 -- ,Okc_K_Lines_B CV
11960 -- WHERE CV.Cle_Id = SV.Id
11961 -- AND CV.Lse_Id IN (2,15,20)
11962 -- AND BPL.Cle_Id = CV.Id
11963 -- AND ITM.Cle_Id = BPL.Id
11964 -- -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
11965 -- AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11966 -- AND ITM.Object1_Id2 = '#'
11967 -- -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11968 -- AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11969 -- ));
11970 --
11971
11972 Lx_Contracts GT_Contract_Ref;
11973 Ld_Request_Date DATE;
11974 Lv_Validate_Flag VARCHAR2(1);
11975 Lv_SrvLine_Flag CONSTANT VARCHAR2(1) := P_SrvLine_Flag;
11976 Lv_Sort_Key CONSTANT VARCHAR2(10):= P_Sort_Key;
11977
11978 Lx_BusiProc_Id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
11979 Lx_Severity_Id CONSTANT Gx_Severity_Id := P_Severity_Id;
11980 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_Id;
11981 Lv_Calc_RespTime_YN CONSTANT VARCHAR2(1) := P_Calc_RespTime_YN;
11982 Lv_Validate_Eff CONSTANT VARCHAR2(1) := P_Validate_Eff;
11983 Lv_Cont_Pty_Id VARCHAR2(100);
11984
11985 /*vgujarat - modified for access hour ER 9675504*/
11986 Lx_cust_id NUMBER := P_cust_id; --access hour
11987 Lx_cust_site_id NUMBER := P_cust_site_id; --access hour
11988 Lx_cust_loc_id NUMBER := P_cust_loc_id; --access hour
11989
11990 Lx_Contracts_02 Get_ConTop_Tbl;
11991 Lx_Contracts_02_Out Get_ConTop_Tbl;
11992 Lx_Contracts_02_Val Get_ConTop_Tbl;
11993
11994 Lx_Idx_Rec Idx_Rec;
11995
11996 Lx_Result Gx_Boolean;
11997 Lx_Return_Status Gx_Ret_Sts;
11998 Lx_Result1 Gx_Boolean;
11999 Lx_Return_Status1 Gx_Ret_Sts;
12000 Lx_Result2 Gx_Boolean;
12001 Lx_Return_Status2 Gx_Ret_Sts;
12002 Lx_Result3 Gx_Boolean;
12003 Lx_Return_Status3 Gx_Ret_Sts;
12004
12005 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
12006 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
12007 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
12008 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
12009
12010 Li_TableIdx BINARY_INTEGER;
12011 Li_OutTab_Idx BINARY_INTEGER;
12012 Lv_Entile_Flag VARCHAR2(1);
12013 Lv_Effective_Falg VARCHAR2(1);
12014
12015 Lx_SrvLine_Id Gx_OKS_Id;
12016 Lx_CovLvlLine_Id Gx_OKS_Id;
12017
12018 Ld_SRV_Eff_End_Date DATE;
12019 Ld_COV_Eff_End_Date DATE;
12020 Ld_CVL_Eff_End_Date DATE;
12021
12022 Lv_Srv_Name Okx_System_Items_V.Name%TYPE; --VARCHAR2(150) ;
12023 Lv_Srv_Description Okx_System_Items_V.Description%TYPE; --VARCHAR2(1995);
12024 Lv_Prof_Srv_Name VARCHAR2(300) ;
12025 Lv_Prof_Srv_Desc VARCHAR2(300);
12026
12027 Lv_Cov_Name Okc_K_Lines_V.Name%TYPE; --VARCHAR2(150) ;
12028 Lv_Cov_Description Okc_K_Lines_V.Item_Description%TYPE; --VARCHAR2(1995);
12029
12030 Lx_React_Durn Gx_ReactDurn;
12031 Lx_React_UOM Gx_ReactUOM;
12032 Lv_React_Day VARCHAR2(20);
12033 Ld_React_By_DateTime DATE;
12034 Ld_React_Start_DateTime DATE;
12035
12036 Lx_Resln_Durn Gx_ReactDurn;
12037 Lx_Resln_UOM Gx_ReactUOM;
12038 Lv_Resln_Day VARCHAR2(20);
12039 Ld_Resln_By_DateTime DATE;
12040 Ld_Resln_Start_DateTime DATE;
12041
12042 Ln_Msg_Count NUMBER;
12043 Lv_Msg_Data VARCHAR2(2000);
12044
12045 Lv_RCN_RSN_Flag VARCHAR2(10);
12046 Lb_RSN_CTXT_Exists BOOLEAN;
12047
12048 Lx_CovLine_Id Gx_OKS_Id;
12049 Ld_Cov_StDate DATE;
12050 Ld_Cov_EdDate DATE;
12051 Ld_Cov_TnDate DATE;
12052 Lv_Cov_Check VARCHAR2(1);
12053
12054 Lv_Prof_Name CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
12055 Lv_Prof_Value VARCHAR2(300);
12056
12057 -- Added for 12.0 ENT-TZ project (JVARGHES)
12058
12059 Lv_Dates_In_Input_TZ VARCHAR2(1);
12060 Ld_INCIDENT_DATE DATE;
12061
12062 --
12063
12064 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
12065
12066 BEGIN
12067
12068 Lx_Contracts := P_Contracts;
12069 Ld_Request_Date := nvl(P_Request_Date,sysdate);
12070 Lv_Validate_Flag := P_Validate_Flag;
12071
12072 -- Added for 12.0 ENT-TZ project (JVARGHES)
12073
12074 Lv_Dates_In_Input_TZ := P_Dates_In_Input_TZ;
12075 Ld_Incident_Date := P_Incident_Date;
12076
12077 --
12078
12079 Lx_Result := G_TRUE;
12080 Lx_Return_Status := G_RET_STS_SUCCESS;
12081 Lx_Result1 := G_TRUE;
12082 Lx_Return_Status1 := G_RET_STS_SUCCESS;
12083 Lx_Result2 := G_TRUE;
12084 Lx_Return_Status2 := G_RET_STS_SUCCESS;
12085 Lx_Result3 := G_TRUE;
12086 Lx_Return_Status3 := G_RET_STS_SUCCESS;
12087
12088 Li_OutTab_Idx := 0;
12089
12090
12091 Li_TableIdx := Lx_Contracts.FIRST;
12092
12093 WHILE Li_TableIdx IS NOT NULL LOOP
12094
12095 IF Lv_SrvLine_Flag = 'T' THEN
12096
12097 Lx_SrvLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
12098 Lx_CovLvlLine_Id := NULL;
12099
12100 ELSE
12101
12102 Lx_SrvLine_Id := NULL;
12103 Lx_CovLvlLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
12104
12105 END IF;
12106
12107 Lv_Cont_Pty_Id := TO_CHAR(Lx_Contracts(Li_TableIdx).Rx_Pty_Id);
12108
12109 IF Lx_SrvLine_Id is not null and Lx_CovLvlLine_Id is null then
12110
12111 /*added for ER9681794*/
12112 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
12113
12114 FOR Idx IN Lx_Csr_Contracts1_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12115
12116 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
12117 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
12118 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
12119 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
12120 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
12121 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
12122 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
12123 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
12124 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
12125 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
12126 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
12127 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
12128 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
12129 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
12130 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
12131 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
12132 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
12133
12134 /*vgujarat - modified for access hour ER 9675504*/
12135 Get_Cont02Format_Validation
12136 (P_Contracts => Lx_Idx_Rec
12137 ,P_BusiProc_Id => Lx_BusiProc_Id
12138 ,P_Severity_Id => Lx_Severity_Id
12139 ,P_Request_TZone_Id => Lx_Request_TZone_Id
12140 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
12141 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
12142 ,P_Request_Date => Ld_Request_Date
12143 ,P_Request_Date_Start => NULL
12144 ,P_Request_Date_End => NULL
12145 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
12146 ,P_Validate_Eff => Lv_Validate_Eff
12147 ,P_Validate_Flag => Lv_Validate_Flag
12148 ,P_SrvLine_Flag => Lv_SrvLine_Flag
12149 ,P_Sort_Key => Lv_Sort_Key
12150 ,X_Contracts_02 => Lx_Contracts_02_Val
12151 ,X_Result => Lx_Result
12152 ,X_Return_Status => Lx_Return_Status
12153 ,P_cust_id => Lx_cust_id --access hour
12154 ,P_cust_site_id => Lx_cust_site_id --access hour
12155 ,P_cust_loc_id => Lx_cust_loc_id); --access hour
12156
12157 IF Lx_Contracts_02_Val.COUNT > 0 THEN
12158
12159 Li_OutTab_Idx := Li_OutTab_Idx + 1;
12160
12161 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
12162 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
12163 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12164 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12165 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12166 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
12167 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
12168 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
12169 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12170 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12171 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12172 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12173 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12174 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12175 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12176 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
12177 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12178 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
12179 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12180 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12181 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
12182 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
12183 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12184 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12185 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12186
12187 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
12188 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
12189
12190 --Added for IB OA Pages (JVARGHES)
12191 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12192 --
12193
12194 Lx_Contracts_02_Val.DELETE;
12195
12196 END IF;
12197
12198 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12199 RAISE L_EXCEP_UNEXPECTED_ERR;
12200 END IF;
12201
12202 END LOOP;
12203
12204 ELSE
12205
12206 /*added for ER9681794*/
12207
12208 FOR Idx IN Lx_Csr_Contracts1(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12209
12210 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
12211 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
12212 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
12213 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
12214 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
12215 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
12216 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
12217 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
12218 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
12219 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
12220 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
12221 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
12222 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
12223 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
12224 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
12225 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
12226 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
12227
12228 /*vgujarat - modified for access hour ER 9675504*/
12229 Get_Cont02Format_Validation
12230 (P_Contracts => Lx_Idx_Rec
12231 ,P_BusiProc_Id => Lx_BusiProc_Id
12232 ,P_Severity_Id => Lx_Severity_Id
12233 ,P_Request_TZone_Id => Lx_Request_TZone_Id
12234 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
12235 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
12236 ,P_Request_Date => Ld_Request_Date
12237 ,P_Request_Date_Start => NULL
12238 ,P_Request_Date_End => NULL
12239 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
12240 ,P_Validate_Eff => Lv_Validate_Eff
12241 ,P_Validate_Flag => Lv_Validate_Flag
12242 ,P_SrvLine_Flag => Lv_SrvLine_Flag
12243 ,P_Sort_Key => Lv_Sort_Key
12244 ,X_Contracts_02 => Lx_Contracts_02_Val
12245 ,X_Result => Lx_Result
12246 ,X_Return_Status => Lx_Return_Status
12247 ,P_cust_id => Lx_cust_id --access hour
12248 ,P_cust_site_id => Lx_cust_site_id --access hour
12249 ,P_cust_loc_id => Lx_cust_loc_id); --access hour
12250
12251 IF Lx_Contracts_02_Val.COUNT > 0 THEN
12252
12253 Li_OutTab_Idx := Li_OutTab_Idx + 1;
12254
12255 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
12256 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
12257 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12258 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12259 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12260 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
12261 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
12262 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
12263 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12264 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12265 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12266 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12267 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12268 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12269 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12270 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
12271 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12272 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
12273 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12274 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12275 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
12276 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
12277 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12278 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12279 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12280
12281 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
12282 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
12283
12284 --Added for IB OA Pages (JVARGHES)
12285 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12286 --
12287
12288 Lx_Contracts_02_Val.DELETE;
12289
12290 END IF;
12291
12292 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12293 RAISE L_EXCEP_UNEXPECTED_ERR;
12294 END IF;
12295
12296 END LOOP;
12297
12298 END IF; /*added for ER9681794*/
12299
12300 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
12301
12302
12303 ELSIF Lx_SrvLine_Id is null and Lx_CovLvlLine_Id is not null then
12304
12305 /*Added for ER9681794*/
12306 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
12307
12308 FOR Idx IN Lx_Csr_Contracts2_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12309
12310 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
12311 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
12312 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
12313 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
12314 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
12315 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
12316 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
12317 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
12318 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
12319 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
12320 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
12321 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
12322 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
12323 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
12324 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
12325 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
12326 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
12327
12328 /*vgujarat - modified for access hour ER 9675504*/
12329 Get_Cont02Format_Validation
12330 (P_Contracts => Lx_Idx_Rec
12331 ,P_BusiProc_Id => Lx_BusiProc_Id
12332 ,P_Severity_Id => Lx_Severity_Id
12333 ,P_Request_TZone_Id => Lx_Request_TZone_Id
12334 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
12335 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
12336 ,P_Request_Date => Ld_Request_Date
12337 ,P_Request_Date_Start => NULL
12338 ,P_Request_Date_End => NULL
12339 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
12340 ,P_Validate_Eff => Lv_Validate_Eff
12341 ,P_Validate_Flag => Lv_Validate_Flag
12342 ,P_SrvLine_Flag => Lv_SrvLine_Flag
12343 ,P_Sort_Key => Lv_Sort_Key
12344 ,X_Contracts_02 => Lx_Contracts_02_Val
12345 ,X_Result => Lx_Result
12346 ,X_Return_Status => Lx_Return_Status
12347 ,P_cust_id => Lx_cust_id --access hour
12348 ,P_cust_site_id => Lx_cust_site_id --access hour
12349 ,P_cust_loc_id => Lx_cust_loc_id); --access hour
12350
12351 IF Lx_Contracts_02_Val.COUNT > 0 THEN
12352
12353 Li_OutTab_Idx := Li_OutTab_Idx + 1;
12354
12355 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
12356 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
12357 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12358 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12359 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12360 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
12361 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
12362 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
12363 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12364 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12365 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12366 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12367 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12368 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12369 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12370 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
12371 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12372 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
12373 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12374 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12375 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
12376 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
12377 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12378 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12379 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12380
12381 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
12382 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
12383
12384 --Added for IB OA Pages (JVARGHES)
12385 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12386 --
12387
12388 Lx_Contracts_02_Val.DELETE;
12389
12390 END IF;
12391
12392 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12393 RAISE L_EXCEP_UNEXPECTED_ERR;
12394 END IF;
12395
12396 END LOOP;
12397
12398 ELSE
12399
12400 /*added for ER9681794*/
12401
12402 FOR Idx IN Lx_Csr_Contracts2(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12403
12404 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
12405 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
12406 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
12407 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
12408 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
12409 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
12410 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
12411 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
12412 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
12413 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
12414 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
12415 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
12416 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
12417 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
12418 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
12419 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
12420 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
12421
12422 /*vgujarat - modified for access hour ER 9675504*/
12423 Get_Cont02Format_Validation
12424 (P_Contracts => Lx_Idx_Rec
12425 ,P_BusiProc_Id => Lx_BusiProc_Id
12426 ,P_Severity_Id => Lx_Severity_Id
12427 ,P_Request_TZone_Id => Lx_Request_TZone_Id
12428 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
12429 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
12430 ,P_Request_Date => Ld_Request_Date
12431 ,P_Request_Date_Start => NULL
12432 ,P_Request_Date_End => NULL
12433 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
12434 ,P_Validate_Eff => Lv_Validate_Eff
12435 ,P_Validate_Flag => Lv_Validate_Flag
12436 ,P_SrvLine_Flag => Lv_SrvLine_Flag
12437 ,P_Sort_Key => Lv_Sort_Key
12438 ,X_Contracts_02 => Lx_Contracts_02_Val
12439 ,X_Result => Lx_Result
12440 ,X_Return_Status => Lx_Return_Status
12441 ,P_cust_id => Lx_cust_id --access hour
12442 ,P_cust_site_id => Lx_cust_site_id --access hour
12443 ,P_cust_loc_id => Lx_cust_loc_id); --access hour
12444
12445 IF Lx_Contracts_02_Val.COUNT > 0 THEN
12446
12447 Li_OutTab_Idx := Li_OutTab_Idx + 1;
12448
12449 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
12450 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
12451 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12452 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12453 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12454 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
12455 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
12456 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
12457 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12458 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12459 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12460 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12461 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12462 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12463 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12464 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
12465 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12466 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
12467 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12468 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12469 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
12470 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
12471 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12472 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12473 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12474
12475 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
12476 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
12477
12478 --Added for IB OA Pages (JVARGHES)
12479 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12480 --
12481
12482 Lx_Contracts_02_Val.DELETE;
12483
12484 END IF;
12485
12486 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12487 RAISE L_EXCEP_UNEXPECTED_ERR;
12488 END IF;
12489
12490 END LOOP;
12491
12492 END IF; /*added for ER9681794*/
12493
12494 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
12495
12496
12497 ELSIF Lx_SrvLine_Id is not null and Lx_CovLvlLine_Id is not null then
12498
12499 /*Added for ER9681794*/
12500 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
12501
12502 FOR Idx IN Lx_Csr_Contracts3_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12503
12504 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
12505 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
12506 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
12507 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
12508 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
12509 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
12510 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
12511 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
12512 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
12513 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
12514 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
12515 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
12516 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
12517 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
12518 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
12519 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
12520 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
12521
12522 /*vgujarat - modified for access hour ER 9675504*/
12523 Get_Cont02Format_Validation
12524 (P_Contracts => Lx_Idx_Rec
12525 ,P_BusiProc_Id => Lx_BusiProc_Id
12526 ,P_Severity_Id => Lx_Severity_Id
12527 ,P_Request_TZone_Id => Lx_Request_TZone_Id
12528 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
12529 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
12530 ,P_Request_Date => Ld_Request_Date
12531 ,P_Request_Date_Start => NULL
12532 ,P_Request_Date_End => NULL
12533 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
12534 ,P_Validate_Eff => Lv_Validate_Eff
12535 ,P_Validate_Flag => Lv_Validate_Flag
12536 ,P_SrvLine_Flag => Lv_SrvLine_Flag
12537 ,P_Sort_Key => Lv_Sort_Key
12538 ,X_Contracts_02 => Lx_Contracts_02_Val
12539 ,X_Result => Lx_Result
12540 ,X_Return_Status => Lx_Return_Status
12541 ,P_cust_id => Lx_cust_id --access hour
12542 ,P_cust_site_id => Lx_cust_site_id --access hour
12543 ,P_cust_loc_id => Lx_cust_loc_id); --access hour
12544 IF Lx_Contracts_02_Val.COUNT > 0 THEN
12545
12546 Li_OutTab_Idx := Li_OutTab_Idx + 1;
12547
12548 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
12549 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
12550 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12551 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12552 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12553 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
12554 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
12555 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
12556 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12557 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12558 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12559 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12560 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12561 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12562 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12563 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
12564 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12565 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
12566 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12567 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12568 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
12569 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
12570 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12571 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12572 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12573
12574 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
12575 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
12576
12577 --Added for IB OA Pages (JVARGHES)
12578 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12579 --
12580
12581 Lx_Contracts_02_Val.DELETE;
12582
12583 END IF;
12584
12585 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12586 RAISE L_EXCEP_UNEXPECTED_ERR;
12587 END IF;
12588
12589 END LOOP;
12590
12591 ELSE
12592
12593 /*Added for ER9681794*/
12594
12595 FOR Idx IN Lx_Csr_Contracts3(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12596
12597 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
12598 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
12599 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
12600 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
12601 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
12602 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
12603 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
12604 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
12605 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
12606 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
12607 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
12608 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
12609 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
12610 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
12611 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
12612 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
12613 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
12614
12615 /*vgujarat - modified for access hour ER 9675504*/
12616 Get_Cont02Format_Validation
12617 (P_Contracts => Lx_Idx_Rec
12618 ,P_BusiProc_Id => Lx_BusiProc_Id
12619 ,P_Severity_Id => Lx_Severity_Id
12620 ,P_Request_TZone_Id => Lx_Request_TZone_Id
12621 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
12622 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
12623 ,P_Request_Date => Ld_Request_Date
12624 ,P_Request_Date_Start => NULL
12625 ,P_Request_Date_End => NULL
12626 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
12627 ,P_Validate_Eff => Lv_Validate_Eff
12628 ,P_Validate_Flag => Lv_Validate_Flag
12629 ,P_SrvLine_Flag => Lv_SrvLine_Flag
12630 ,P_Sort_Key => Lv_Sort_Key
12631 ,X_Contracts_02 => Lx_Contracts_02_Val
12632 ,X_Result => Lx_Result
12633 ,X_Return_Status => Lx_Return_Status
12634 ,P_cust_id => Lx_cust_id --access hour
12635 ,P_cust_site_id => Lx_cust_site_id --access hour
12636 ,P_cust_loc_id => Lx_cust_loc_id); --access hour
12637 IF Lx_Contracts_02_Val.COUNT > 0 THEN
12638
12639 Li_OutTab_Idx := Li_OutTab_Idx + 1;
12640
12641 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
12642 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
12643 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12644 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12645 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12646 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
12647 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
12648 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
12649 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12650 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12651 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12652 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12653 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12654 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12655 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12656 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
12657 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12658 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
12659 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12660 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12661 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
12662 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
12663 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12664 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12665 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12666
12667 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
12668 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
12669
12670 --Added for IB OA Pages (JVARGHES)
12671 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12672 --
12673
12674 Lx_Contracts_02_Val.DELETE;
12675
12676 END IF;
12677
12678 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12679 RAISE L_EXCEP_UNEXPECTED_ERR;
12680 END IF;
12681
12682 END LOOP;
12683
12684 END IF; /*Added for ER9681794*/
12685
12686 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
12687
12688
12689 ELSIF Lx_SrvLine_Id is null and Lx_CovLvlLine_Id is null then
12690
12691 /*Added for ER9681794*/
12692 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
12693
12694 FOR Idx IN Lx_Csr_Contracts4_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12695
12696 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
12697 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
12698 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
12699 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
12700 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
12701 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
12702 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
12703 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
12704 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
12705 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
12706 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
12707 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
12708 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
12709 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
12710 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
12711 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
12712 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
12713
12714 /*vgujarat - modified for access hour ER 9675504*/
12715 Get_Cont02Format_Validation
12716 (P_Contracts => Lx_Idx_Rec
12717 ,P_BusiProc_Id => Lx_BusiProc_Id
12718 ,P_Severity_Id => Lx_Severity_Id
12719 ,P_Request_TZone_Id => Lx_Request_TZone_Id
12720 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
12721 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
12722 ,P_Request_Date => Ld_Request_Date
12723 ,P_Request_Date_Start => NULL
12724 ,P_Request_Date_End => NULL
12725 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
12726 ,P_Validate_Eff => Lv_Validate_Eff
12727 ,P_Validate_Flag => Lv_Validate_Flag
12728 ,P_SrvLine_Flag => Lv_SrvLine_Flag
12729 ,P_Sort_Key => Lv_Sort_Key
12730 ,X_Contracts_02 => Lx_Contracts_02_Val
12731 ,X_Result => Lx_Result
12732 ,X_Return_Status => Lx_Return_Status
12733 ,P_cust_id => Lx_cust_id --access hour
12734 ,P_cust_site_id => Lx_cust_site_id --access hour
12735 ,P_cust_loc_id => Lx_cust_loc_id); --access hour
12736
12737 IF Lx_Contracts_02_Val.COUNT > 0 THEN
12738
12739 Li_OutTab_Idx := Li_OutTab_Idx + 1;
12740
12741 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
12742 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
12743 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12744 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12745 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12746 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
12747 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
12748 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
12749 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12750 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12751 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12752 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12753 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12754 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12755 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12756 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
12757 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12758 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
12759 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12760 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12761 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
12762 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
12763 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12764 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12765 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12766
12767 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
12768 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
12769
12770 --Added for IB OA Pages (JVARGHES)
12771 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12772 --
12773
12774 Lx_Contracts_02_Val.DELETE;
12775
12776 END IF;
12777
12778 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12779 RAISE L_EXCEP_UNEXPECTED_ERR;
12780 END IF;
12781
12782 END LOOP;
12783
12784 ELSE
12785
12786 /*Added for ER9681794*/
12787
12788 FOR Idx IN Lx_Csr_Contracts4(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12789
12790 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
12791 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
12792 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
12793 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
12794 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
12795 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
12796 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
12797 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
12798 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
12799 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
12800 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
12801 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
12802 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
12803 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
12804 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
12805 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
12806 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
12807
12808 /*vgujarat - modified for access hour ER 9675504*/
12809 Get_Cont02Format_Validation
12810 (P_Contracts => Lx_Idx_Rec
12811 ,P_BusiProc_Id => Lx_BusiProc_Id
12812 ,P_Severity_Id => Lx_Severity_Id
12813 ,P_Request_TZone_Id => Lx_Request_TZone_Id
12814 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
12815 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
12816 ,P_Request_Date => Ld_Request_Date
12817 ,P_Request_Date_Start => NULL
12818 ,P_Request_Date_End => NULL
12819 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
12820 ,P_Validate_Eff => Lv_Validate_Eff
12821 ,P_Validate_Flag => Lv_Validate_Flag
12822 ,P_SrvLine_Flag => Lv_SrvLine_Flag
12823 ,P_Sort_Key => Lv_Sort_Key
12824 ,X_Contracts_02 => Lx_Contracts_02_Val
12825 ,X_Result => Lx_Result
12826 ,X_Return_Status => Lx_Return_Status
12827 ,P_cust_id => Lx_cust_id --access hour
12828 ,P_cust_site_id => Lx_cust_site_id --access hour
12829 ,P_cust_loc_id => Lx_cust_loc_id); --access hour
12830
12831 IF Lx_Contracts_02_Val.COUNT > 0 THEN
12832
12833 Li_OutTab_Idx := Li_OutTab_Idx + 1;
12834
12835 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
12836 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
12837 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12838 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12839 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
12840 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
12841 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
12842 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
12843 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12844 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12845 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
12846 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
12847 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12848 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12849 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12850 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
12851 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12852 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
12853 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12854 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12855 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
12856 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
12857 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12858 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12859 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12860
12861 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
12862 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
12863
12864 --Added for IB OA Pages (JVARGHES)
12865 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12866 --
12867
12868 Lx_Contracts_02_Val.DELETE;
12869
12870 END IF;
12871
12872 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12873 RAISE L_EXCEP_UNEXPECTED_ERR;
12874 END IF;
12875
12876 END LOOP;
12877
12878 END IF; /*Added for ER9681794*/
12879
12880 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
12881
12882
12883 END IF;
12884
12885 END LOOP;
12886
12887
12888 -- IF Lv_Sort_Key <> G_NO_SORT_KEY THEN
12889 -- above IF commented and new one introduced , as sorting needs to be done when calculate response time flag
12890 -- is 'Y' or sort key is sorting with importance level.
12891 IF (((Lv_Calc_RespTime_YN = 'N') AND (Lv_Sort_Key = 'COVTYP_IMP')) OR (Lv_Calc_RespTime_YN = 'Y')) THEN
12892
12893 Sort_Asc_GetContracts_02
12894 (P_Input_Tab => Lx_Contracts_02
12895 ,P_Sort_Key => Lv_Sort_Key
12896 ,X_Output_Tab => Lx_Contracts_02_Out
12897 ,X_Result => Lx_Result
12898 ,X_Return_Status => Lx_Return_Status);
12899
12900 IF Lx_Result <> G_TRUE THEN
12901 RAISE L_EXCEP_UNEXPECTED_ERR;
12902 END IF;
12903
12904 ELSE
12905
12906 Lx_Contracts_02_Out := Lx_Contracts_02;
12907
12908 END IF;
12909
12910
12911 X_Contracts_02 := Lx_Contracts_02_Out;
12912 X_Result := Lx_Result;
12913 X_Return_Status := Lx_Return_Status;
12914
12915 EXCEPTION
12916
12917 WHEN L_EXCEP_UNEXPECTED_ERR THEN
12918
12919 X_Result := Lx_Result;
12920 X_Return_Status := Lx_Return_Status;
12921
12922 WHEN OTHERS THEN
12923
12924 OKC_API.SET_MESSAGE
12925 (P_App_Name => G_APP_NAME_OKC
12926 ,P_Msg_Name => G_UNEXPECTED_ERROR
12927 ,P_Token1 => G_SQLCODE_TOKEN
12928 ,P_Token1_Value => SQLCODE
12929 ,P_Token2 => G_SQLERRM_TOKEN
12930 ,P_Token2_Value => SQLERRM);
12931
12932 OKC_API.SET_MESSAGE
12933 (P_App_Name => G_APP_NAME_OKC
12934 ,P_Msg_Name => G_DEBUG_TOKEN
12935 ,P_Token1 => G_PACKAGE_TOKEN
12936 ,P_Token1_Value => G_PKG_NAME
12937 ,P_Token2 => G_PROGRAM_TOKEN
12938 ,P_Token2_Value => 'Get_Contracts_02_Format');
12939
12940 X_Result := G_FALSE;
12941 X_Return_Status := G_RET_STS_UNEXP_ERROR;
12942
12943 END Get_Contracts_02_Format;
12944
12945 -----------------------------------------------------------------------------------------------------------------------*
12946
12947 PROCEDURE Append_Contract_PlSql_Table
12948 (P_Input_Tab IN GT_Contract_Ref
12949 ,P_Append_Tab IN GT_Contract_Ref
12950 ,X_Output_Tab out nocopy GT_Contract_Ref
12951 ,X_Result out nocopy Gx_Boolean
12952 ,X_Return_Status out nocopy Gx_Ret_Sts)
12953 IS
12954
12955 Lx_Input_Tab GT_Contract_Ref;
12956 Lx_Output_Tab GT_Contract_Ref;
12957
12958 Li_In_TableIdx BINARY_INTEGER;
12959 Li_Out_TableIdx BINARY_INTEGER;
12960
12961 Lx_Result Gx_Boolean;
12962 Lx_Return_Status Gx_Ret_Sts;
12963
12964 BEGIN
12965
12966 Lx_Input_Tab := P_Input_Tab;
12967 Lx_Output_Tab := P_Append_Tab;
12968
12969 Lx_Result := G_TRUE;
12970 Lx_Return_Status := G_RET_STS_SUCCESS;
12971
12972 Li_In_TableIdx := Lx_Input_Tab.FIRST;
12973 Li_Out_TableIdx := NVL(Lx_Output_Tab.LAST,0);
12974
12975 WHILE Li_In_TableIdx IS NOT NULL LOOP
12976
12977 Li_Out_TableIdx := Li_Out_TableIdx + 1;
12978 Lx_Output_Tab(Li_Out_TableIdx) := Lx_Input_Tab(Li_In_TableIdx);
12979 Li_In_TableIdx := Lx_Input_Tab.NEXT(Li_In_TableIdx);
12980
12981 END LOOP;
12982
12983 X_Output_Tab := Lx_Output_Tab;
12984
12985 X_Result := Lx_Result;
12986 X_Return_Status := Lx_Return_Status;
12987
12988 EXCEPTION
12989
12990 WHEN OTHERS THEN
12991
12992 OKC_API.SET_MESSAGE
12993 (P_App_Name => G_APP_NAME_OKC
12994 ,P_Msg_Name => G_UNEXPECTED_ERROR
12995 ,P_Token1 => G_SQLCODE_TOKEN
12996 ,P_Token1_Value => SQLCODE
12997 ,P_Token2 => G_SQLERRM_TOKEN
12998 ,P_Token2_Value => SQLERRM);
12999
13000 OKC_API.SET_MESSAGE
13001 (P_App_Name => G_APP_NAME_OKC
13002 ,P_Msg_Name => G_DEBUG_TOKEN
13003 ,P_Token1 => G_PACKAGE_TOKEN
13004 ,P_Token1_Value => G_PKG_NAME
13005 ,P_Token2 => G_PROGRAM_TOKEN
13006 ,P_Token2_Value => 'Append_Contract_PlSql_Table');
13007
13008 X_Result := G_FALSE;
13009 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13010
13011 END Append_Contract_PlSql_Table;
13012
13013 -----------------------------------------------------------------------------------------------------------------------*
13014 /*vgujarat - modified for access hour ER 9675504*/
13015 PROCEDURE Get_Contracts_02
13016 (P_API_Version IN NUMBER
13017 ,P_Init_Msg_List IN VARCHAR2
13018 ,P_Inp_Rec IN Inp_rec_getcont02
13019 ,X_Return_Status OUT NOCOPY VARCHAR2
13020 ,X_Msg_Count OUT NOCOPY NUMBER
13021 ,X_Msg_Data OUT NOCOPY VARCHAR2
13022 ,X_Ent_Contracts OUT NOCOPY Get_ConTop_Tbl)
13023 IS
13024
13025 CURSOR Lx_SrvLine(Cx_SrvLine_Id IN Gx_OKS_Id) IS
13026 SELECT Dnz_Chr_Id
13027 FROM Okc_K_lines_B
13028 WHERE Id = Cx_SrvLine_Id;
13029
13030 Lx_Inp_Rec CONSTANT Inp_rec_getcont02 := P_Inp_Rec;
13031
13032 Lx_Ent_Contracts Get_ConTop_Tbl;
13033 Lx_Contracts GT_Contract_Ref;
13034 Lx_Contracts_Temp GT_Contract_Ref;
13035 Lx_Contracts_Temp1 GT_Contract_Ref; --Bug# 4690940
13036 Lx_Contracts_Temp2 GT_Contract_Ref; --Bug# 4690940
13037
13038 Lx_Contracts_Out GT_Contract_Ref;
13039 Lv_SrvLine_Flag VARCHAR2(1);
13040
13041 Ln_Organization_Id NUMBER;
13042 Ln_Org_Id NUMBER;
13043 Ln_Chr_Id NUMBER;
13044
13045 Li_TableIdx BINARY_INTEGER;
13046
13047 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
13048
13049 Lx_Result Gx_Boolean;
13050 Lx_Return_Status Gx_Ret_Sts;
13051
13052 BEGIN
13053
13054 Lx_Result := G_TRUE;
13055 Lx_Return_Status := G_RET_STS_SUCCESS;
13056 Lv_SrvLine_Flag := 'F';
13057
13058 -- Bug# 4735542
13059 -- Ln_Organization_Id := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
13060
13061 -- Modified for 12.0 MOAC project (JVARGHES)
13062 -- Ln_Org_Id := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
13063 --
13064 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
13065
13066 IF Lx_Inp_Rec.Calc_RespTime_Flag = 'Y' THEN
13067
13068 Validate_Required_NumValue
13069 (P_Num_Value => Lx_Inp_Rec.Business_Process_Id
13070 ,P_Set_ExcepionStack => G_TRUE
13071 ,P_ExcepionMsg => 'Business Process'
13072 ,X_Result => Lx_Result
13073 ,X_Return_Status => Lx_Return_Status);
13074
13075 IF Lx_Result <> G_TRUE THEN
13076 RAISE L_EXCEP_UNEXPECTED_ERR;
13077 END IF;
13078
13079 Validate_Required_NumValue
13080 (P_Num_Value => Lx_Inp_Rec.Severity_Id
13081 ,P_Set_ExcepionStack => G_TRUE
13082 ,P_ExcepionMsg => 'Severity'
13083 ,X_Result => Lx_Result
13084 ,X_Return_Status => Lx_Return_Status);
13085
13086 IF Lx_Result <> G_TRUE THEN
13087 RAISE L_EXCEP_UNEXPECTED_ERR;
13088 END IF;
13089
13090 Validate_Required_NumValue
13091 (P_Num_Value => Lx_Inp_Rec.Time_Zone_Id
13092 ,P_Set_ExcepionStack => G_TRUE
13093 ,P_ExcepionMsg => 'Time Zone'
13094 ,X_Result => Lx_Result
13095 ,X_Return_Status => Lx_Return_Status);
13096
13097 IF Lx_Result <> G_TRUE THEN
13098 RAISE L_EXCEP_UNEXPECTED_ERR;
13099 END IF;
13100
13101 END IF;
13102
13103 IF Lx_Inp_Rec.Service_Line_Id IS NOT NULL THEN
13104
13105 OPEN Lx_SrvLine(Lx_Inp_Rec.Service_Line_Id);
13106 FETCH Lx_SrvLine INTO Ln_Chr_Id;
13107 CLOSE Lx_SrvLine;
13108
13109 Li_TableIdx := NVL(Lx_Contracts.LAST,0) + 1;
13110 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Ln_Chr_Id;
13111 Lx_Contracts(Li_TableIdx).Rx_Cle_Id := Lx_Inp_Rec.Service_Line_Id;
13112
13113 Lv_SrvLine_Flag := 'T';
13114
13115 ELSIF Lx_Inp_Rec.Contract_Number IS NOT NULL THEN
13116
13117 Get_Contracts_Id
13118 (P_Contract_Num => Lx_Inp_Rec.Contract_Number
13119 ,P_Contract_Num_Modifier => Lx_Inp_Rec.Contract_Number_Modifier
13120 ,X_Contracts => Lx_Contracts
13121 ,X_Result => Lx_Result
13122 ,X_Return_Status => Lx_Return_Status);
13123
13124 IF Lx_Result <> G_TRUE THEN
13125 RAISE L_EXCEP_UNEXPECTED_ERR;
13126 END IF;
13127
13128 ELSIF Lx_Inp_Rec.Product_Id IS NOT NULL THEN
13129
13130 Get_CovProd_Contracts
13131 (P_CovProd_Obj_Id => Lx_Inp_Rec.Product_Id
13132 ,P_Organization_Id => Ln_Organization_Id
13133 ,P_Org_Id => Ln_Org_Id
13134 ,X_CovProd_Contracts => Lx_Contracts
13135 ,X_Result => Lx_Result
13136 ,X_Return_Status => Lx_Return_Status);
13137
13138 IF Lx_Result <> G_TRUE THEN
13139 RAISE L_EXCEP_UNEXPECTED_ERR;
13140 END IF;
13141
13142 ELSE
13143
13144 IF Lx_Inp_Rec.Item_Id IS NOT NULL THEN
13145
13146 Get_CovItem_Contracts
13147 (P_CovItem_Obj_Id => Lx_Inp_Rec.Item_Id
13148 ,P_Organization_Id => Ln_Organization_Id
13149 ,P_Party_Id => Lx_Inp_Rec.Party_Id
13150 ,X_CovItem_Contracts => Lx_Contracts
13151 ,X_Result => Lx_Result
13152 ,X_Return_Status => Lx_Return_Status);
13153
13154 IF Lx_Result <> G_TRUE THEN
13155 RAISE L_EXCEP_UNEXPECTED_ERR;
13156 END IF;
13157
13158 END IF;
13159
13160 IF Lx_Inp_Rec.System_Id IS NOT NULL THEN
13161
13162 Get_CovSys_Contracts
13163 (P_CovSys_Obj_Id => Lx_Inp_Rec.System_Id
13164 ,P_Org_Id => Ln_Org_Id
13165 ,X_CovSys_Contracts => Lx_Contracts_Temp
13166 ,X_Result => Lx_Result
13167 ,X_Return_Status => Lx_Return_Status);
13168
13169 IF Lx_Result <> G_TRUE THEN
13170 RAISE L_EXCEP_UNEXPECTED_ERR;
13171 END IF;
13172
13173 --
13174 --
13175
13176 -- ELSIF Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL THEN --Modified for fix of bug# 4690940.
13177 ELSIF (Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL)
13178 OR (Lx_Inp_Rec.Site_Id IS NOT NULL) THEN
13179
13180 set_account_party_id := 'T';
13181
13182 IF Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL THEN
13183
13184 Get_CovCust_Contracts
13185 (P_CovCust_Obj_Id => Lx_Inp_Rec.Cust_Acct_Id
13186 ,X_CovCust_Contracts => Lx_Contracts_Temp1 --Modified for fix of bug# 4690940.
13187 ,X_Result => Lx_Result
13188 ,X_Return_Status => Lx_Return_Status);
13189
13190 IF Lx_Result <> G_TRUE THEN
13191 RAISE L_EXCEP_UNEXPECTED_ERR;
13192 END IF;
13193
13194 END IF;
13195
13196 -- ELSIF Lx_Inp_Rec.Site_Id IS NOT NULL THEN
13197
13198 IF Lx_Inp_Rec.Site_Id IS NOT NULL THEN
13199
13200 Get_CovSite_Contracts
13201 (P_CovSite_Obj_Id => Lx_Inp_Rec.Site_Id
13202 ,P_Org_Id => Ln_Org_Id
13203 ,X_CovSite_Contracts => Lx_Contracts_Temp2 --Modified for fix of bug# 4690940.
13204 ,X_Result => Lx_Result
13205 ,X_Return_Status => Lx_Return_Status);
13206
13207 IF Lx_Result <> G_TRUE THEN
13208 RAISE L_EXCEP_UNEXPECTED_ERR;
13209 END IF;
13210
13211 END IF;
13212
13213 covd_account_party_id := NULL; -- #4690940
13214 set_account_party_id := 'F';
13215
13216 -- Append account and site rows #4690940
13217 Append_Contract_PlSql_Table
13218 (P_Input_Tab => Lx_Contracts_Temp1
13219 ,P_Append_Tab => Lx_Contracts_Temp2
13220 ,X_Output_Tab => Lx_Contracts_Temp
13221 ,X_Result => Lx_Result
13222 ,X_Return_Status => Lx_Return_Status);
13223
13224
13225 --
13226 --
13227 ELSIF Lx_Inp_Rec.Party_Id IS NOT NULL THEN
13228
13229 Get_CovParty_Contracts
13230 (P_CovParty_Obj_Id => Lx_Inp_Rec.Party_Id
13231 ,X_CovParty_Contracts => Lx_Contracts_Temp
13232 ,X_Result => Lx_Result
13233 ,X_Return_Status => Lx_Return_Status);
13234
13235 IF Lx_Result <> G_TRUE THEN
13236 RAISE L_EXCEP_UNEXPECTED_ERR;
13237 END IF;
13238
13239 END IF;
13240
13241 END IF;
13242
13243 Append_Contract_PlSql_Table
13244 (P_Input_Tab => Lx_Contracts_Temp
13245 ,P_Append_Tab => Lx_Contracts
13246 ,X_Output_Tab => Lx_Contracts_Out
13247 ,X_Result => Lx_Result
13248 ,X_Return_Status => Lx_Return_Status);
13249
13250 IF Lx_Result <> G_TRUE THEN
13251 RAISE L_EXCEP_UNEXPECTED_ERR;
13252 END IF;
13253 /*vgujarat - modified for access hour ER 9675504*/
13254 Get_Contracts_02_Format
13255 (P_Contracts => Lx_Contracts_Out
13256 ,P_BusiProc_Id => Lx_Inp_Rec.Business_Process_Id
13257 ,P_Severity_Id => Lx_Inp_Rec.Severity_Id
13258 ,P_Request_TZone_Id => Lx_Inp_Rec.Time_Zone_Id
13259 ,P_Dates_In_Input_TZ => Lx_Inp_Rec.Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
13260 ,P_Incident_Date => Lx_Inp_Rec.Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
13261 ,P_Request_Date => Lx_Inp_Rec.Request_Date
13262 ,P_Calc_RespTime_YN => Lx_Inp_Rec.Calc_RespTime_Flag
13263 ,P_Validate_Eff => Lx_Inp_Rec.Validate_Eff_Flag
13264 ,P_Validate_Flag => Lx_Inp_Rec.Validate_Flag
13265 ,P_SrvLine_Flag => Lv_SrvLine_Flag
13266 ,P_Sort_Key => Lx_Inp_Rec.Sort_Key
13267 ,X_Contracts_02 => Lx_Ent_Contracts
13268 ,X_Result => Lx_Result
13269 ,X_Return_Status => Lx_Return_Status
13270 ,P_cust_id => Lx_Inp_Rec.cust_id
13271 ,P_cust_site_id => Lx_Inp_Rec.cust_site_id
13272 ,P_cust_loc_id => Lx_Inp_Rec.cust_loc_id);
13273
13274 X_Ent_Contracts := Lx_Ent_Contracts;
13275 X_Return_Status := Lx_Return_Status;
13276
13277 EXCEPTION
13278
13279 WHEN L_EXCEP_UNEXPECTED_ERR THEN
13280
13281 --X_Result := Lx_Result;
13282 X_Return_Status := Lx_Return_Status;
13283
13284 WHEN OTHERS THEN
13285
13286 OKC_API.SET_MESSAGE
13287 (P_App_Name => G_APP_NAME_OKC
13288 ,P_Msg_Name => G_UNEXPECTED_ERROR
13289 ,P_Token1 => G_SQLCODE_TOKEN
13290 ,P_Token1_Value => SQLCODE
13291 ,P_Token2 => G_SQLERRM_TOKEN
13292 ,P_Token2_Value => SQLERRM);
13293
13294 OKC_API.SET_MESSAGE
13295 (P_App_Name => G_APP_NAME_OKC
13296 ,P_Msg_Name => G_DEBUG_TOKEN
13297 ,P_Token1 => G_PACKAGE_TOKEN
13298 ,P_Token1_Value => G_PKG_NAME
13299 ,P_Token2 => G_PROGRAM_TOKEN
13300 ,P_Token2_Value => 'Get_Contracts_02');
13301
13302 --X_Result := G_FALSE;
13303 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13304
13305 END Get_Contracts_02;
13306
13307 -----------------------------------------------------------------------------------------------------------------------*
13308 /*vgujarat - modified for access hour ER 9675504*/
13309 PROCEDURE Get_Contracts
13310 (P_Api_Version IN NUMBER
13311 ,P_Init_Msg_List IN VARCHAR2
13312 ,P_Inp_Rec IN Get_ContIn_Rec
13313 ,X_Return_Status OUT NOCOPY VARCHAR2
13314 ,X_Msg_Count OUT NOCOPY NUMBER
13315 ,X_Msg_Data OUT NOCOPY VARCHAR2
13316 ,X_Ent_Contracts OUT NOCOPY Get_ConTop_Tbl)
13317 IS
13318
13319 Lx_Inp_Rec Get_ContIn_Rec;
13320 Lx_ContInp_Rec Inp_rec_getCont02;
13321
13322 BEGIN
13323
13324 Lx_Inp_Rec := P_Inp_Rec;
13325
13326 -- Bug# 4735542
13327 -- okc_context.set_okc_org_context;
13328
13329 Lx_ContInp_Rec.Contract_Number := Lx_Inp_Rec.Contract_Number;
13330 Lx_ContInp_Rec.Contract_Number_Modifier := Lx_Inp_Rec.contract_number_modifier ;
13331 Lx_ContInp_Rec.Service_Line_Id := Lx_Inp_Rec.Service_Line_Id;
13332 Lx_ContInp_Rec.Party_Id := Lx_Inp_Rec.Party_Id;
13333 Lx_ContInp_Rec.Site_Id := Lx_Inp_Rec.Site_Id;
13334 Lx_ContInp_Rec.Cust_Acct_Id := Lx_Inp_Rec.Cust_Acct_Id;
13335 Lx_ContInp_Rec.System_Id := Lx_Inp_Rec.System_Id;
13336 Lx_ContInp_Rec.Item_Id := Lx_Inp_Rec.Item_Id;
13337 Lx_ContInp_Rec.Product_Id := Lx_Inp_Rec.Product_Id;
13338
13339 -- Added for 12.0 ENT-TZ project (JVARGHES)
13340 Lx_ContInp_Rec.INCIDENT_DATE := P_Inp_Rec.INCIDENT_DATE;
13341 --
13342
13343 Lx_ContInp_Rec.Request_Date := Lx_Inp_Rec.Request_Date;
13344 Lx_ContInp_Rec.Business_Process_Id := Lx_Inp_Rec.Business_Process_Id;
13345 Lx_ContInp_Rec.Severity_Id := Lx_Inp_Rec.Severity_Id;
13346 Lx_ContInp_Rec.Time_Zone_Id := Lx_Inp_Rec.Time_Zone_Id;
13347
13348 -- Added for 12.0 ENT-TZ project (JVARGHES)
13349 Lx_ContInp_Rec. Dates_In_Input_TZ := P_Inp_Rec. Dates_In_Input_TZ;
13350 --
13351
13352 Lx_ContInp_Rec.Calc_RespTime_Flag := Lx_Inp_Rec.Calc_RespTime_Flag;
13353 Lx_ContInp_Rec.Validate_Flag := Lx_Inp_Rec.Validate_Flag;
13354 Lx_ContInp_Rec.Validate_Eff_Flag := 'T';
13355 Lx_ContInp_Rec.Sort_Key := NVL(Lx_Inp_Rec.Sort_Key,G_RESOLUTION_TIME);
13356
13357 /*vgujarat - modified for access hour ER 9675504*/
13358 Lx_ContInp_Rec.cust_id := Lx_Inp_Rec.cust_id;
13359 Lx_ContInp_Rec.cust_site_id := Lx_Inp_Rec.cust_site_id;
13360 Lx_ContInp_Rec.cust_loc_id := Lx_Inp_Rec.cust_loc_id;
13361
13362 IF Lx_ContInp_Rec.Request_Date IS NULL THEN
13363 Lx_ContInp_Rec.Request_Date := SYSDATE;
13364 END IF;
13365
13366 Get_Contracts_02
13367 (P_API_Version => P_Api_Version
13368 ,P_Init_Msg_List => P_Init_Msg_List
13369 ,P_Inp_Rec => Lx_ContInp_Rec
13370 ,X_Return_Status => X_Return_Status
13371 ,X_Msg_Count => X_Msg_Count
13372 ,X_Msg_Data => X_Msg_Data
13373 ,X_Ent_Contracts => X_Ent_Contracts);
13374
13375 EXCEPTION
13376
13377 WHEN OTHERS THEN
13378
13379 OKC_API.SET_MESSAGE
13380 (P_App_Name => G_APP_NAME_OKC
13381 ,P_Msg_Name => G_UNEXPECTED_ERROR
13382 ,P_Token1 => G_SQLCODE_TOKEN
13383 ,P_Token1_Value => SQLCODE
13384 ,P_Token2 => G_SQLERRM_TOKEN
13385 ,P_Token2_Value => SQLERRM);
13386
13387 OKC_API.SET_MESSAGE
13388 (P_App_Name => G_APP_NAME_OKC
13389 ,P_Msg_Name => G_DEBUG_TOKEN
13390 ,P_Token1 => G_PACKAGE_TOKEN
13391 ,P_Token1_Value => G_PKG_NAME
13392 ,P_Token2 => G_PROGRAM_TOKEN
13393 ,P_Token2_Value => 'Get_Contracts-Get_ConTop_Tbl');
13394
13395 --X_Result := G_FALSE;
13396 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13397
13398 END Get_Contracts;
13399
13400 -----------------------------------------------------------------------------------------------------------------------*
13401
13402 PROCEDURE Get_Contracts
13403 (P_Api_Version IN NUMBER
13404 ,P_Init_Msg_List IN VARCHAR2
13405 ,P_Inp_Rec IN Input_Rec_IB
13406 ,X_Return_Status OUT NOCOPY VARCHAR2
13407 ,X_Msg_Count OUT NOCOPY NUMBER
13408 ,X_Msg_Data OUT NOCOPY VARCHAR2
13409 ,X_Ent_Contracts OUT NOCOPY Output_Tbl_IB)
13410 IS
13411
13412 Lx_Inp_Rec Input_Rec_IB;
13413 Lx_ContInp_Rec Inp_rec_getCont02;
13414 Lx_Contracts Get_ConTop_Tbl;
13415 Lx_Ent_Contracts Output_Tbl_IB;
13416
13417 Li_TableIdx1 BINARY_INTEGER;
13418 Li_TableIdx2 BINARY_INTEGER;
13419
13420 BEGIN
13421
13422 Lx_Inp_Rec := P_Inp_Rec;
13423
13424 -- Bug# 4735542
13425 -- okc_context.set_okc_org_context;
13426
13427 Lx_ContInp_Rec.Contract_Number := Lx_Inp_Rec.Contract_Number;
13428 Lx_ContInp_Rec.Contract_Number_Modifier := Lx_Inp_Rec.Contract_Number_Modifier;
13429 Lx_ContInp_Rec.Service_Line_Id := Lx_Inp_Rec.Service_Line_Id;
13430 Lx_ContInp_Rec.Party_Id := Lx_Inp_Rec.Party_Id;
13431 Lx_ContInp_Rec.Site_Id := Lx_Inp_Rec.Site_Id;
13432 Lx_ContInp_Rec.Cust_Acct_Id := Lx_Inp_Rec.Cust_Acct_Id;
13433 Lx_ContInp_Rec.System_Id := Lx_Inp_Rec.System_Id;
13434 Lx_ContInp_Rec.Item_Id := Lx_Inp_Rec.Item_Id;
13435 Lx_ContInp_Rec.Product_Id := Lx_Inp_Rec.Product_Id;
13436 Lx_ContInp_Rec.Request_Date := SYSDATE;
13437 Lx_ContInp_Rec.Business_Process_Id := Lx_Inp_Rec.Business_Process_Id;
13438 Lx_ContInp_Rec.Severity_Id := Lx_Inp_Rec.Severity_Id;
13439 Lx_ContInp_Rec.Time_Zone_Id := Lx_Inp_Rec.Time_Zone_Id;
13440 Lx_ContInp_Rec.Calc_RespTime_Flag := Lx_Inp_Rec.Calc_RespTime_Flag;
13441 Lx_ContInp_Rec.Validate_Flag := Lx_Inp_Rec.Validate_Flag;
13442 Lx_ContInp_Rec.Validate_Eff_Flag := 'F';
13443 Lx_ContInp_Rec.Sort_Key := G_NO_SORT_KEY;
13444
13445 Get_Contracts_02
13446 (P_API_Version => P_Api_Version
13447 ,P_Init_Msg_List => P_Init_Msg_List
13448 ,P_Inp_Rec => Lx_ContInp_Rec
13449 ,X_Return_Status => X_Return_Status
13450 ,X_Msg_Count => X_Msg_Count
13451 ,X_Msg_Data => X_Msg_Data
13452 ,X_Ent_Contracts => Lx_Contracts);
13453
13454 Li_TableIdx1 := Lx_Contracts.FIRST;
13455 Li_TableIdx2 := 0;
13456
13457 WHILE Li_TableIdx1 IS NOT NULL LOOP
13458
13459 Li_TableIdx2 := Li_TableIdx2 + 1;
13460
13461 Lx_Ent_Contracts(Li_TableIdx2).Contract_Id := Lx_Contracts(Li_TableIdx1).Contract_Id;
13462 Lx_Ent_Contracts(Li_TableIdx2).Contract_Number := Lx_Contracts(Li_TableIdx1).Contract_Number;
13463 Lx_Ent_Contracts(Li_TableIdx2).Contract_Number_Modifier := Lx_Contracts(Li_TableIdx1).Contract_Number_Modifier;
13464 Lx_Ent_Contracts(Li_TableIdx2).Sts_code := Lx_Contracts(Li_TableIdx1).Sts_code;
13465 Lx_Ent_Contracts(Li_TableIdx2).Service_Line_Id := Lx_Contracts(Li_TableIdx1).Service_Line_Id;
13466 Lx_Ent_Contracts(Li_TableIdx2).Service_Name := Lx_Contracts(Li_TableIdx1).Service_Name;
13467 Lx_Ent_Contracts(Li_TableIdx2).Service_Description := Lx_Contracts(Li_TableIdx1).Service_Description;
13468 Lx_Ent_Contracts(Li_TableIdx2).Service_Start_Date := Lx_Contracts(Li_TableIdx1).Service_Start_Date;
13469 Lx_Ent_Contracts(Li_TableIdx2).Service_End_Date := Lx_Contracts(Li_TableIdx1).Service_End_Date;
13470 Lx_Ent_Contracts(Li_TableIdx2).Coverage_Term_Line_Id := Lx_Contracts(Li_TableIdx1).Coverage_Term_Line_Id;
13471 Lx_Ent_Contracts(Li_TableIdx2).Coverage_Term_Name := Lx_Contracts(Li_TableIdx1).Coverage_Term_Name;
13472
13473 Lx_Ent_Contracts(Li_TableIdx2).Coverage_Type_Code := Lx_Contracts(Li_TableIdx1).Coverage_Type_Code;
13474 Lx_Ent_Contracts(Li_TableIdx2).Coverage_Type_Imp_level := Lx_Contracts(Li_TableIdx1).Coverage_Type_Imp_level;
13475
13476 Lx_Ent_Contracts(Li_TableIdx2).Coverage_Term_Description := Lx_Contracts(Li_TableIdx1).Coverage_Term_Description;
13477 Lx_Ent_Contracts(Li_TableIdx2).Warranty_Flag := Lx_Contracts(Li_TableIdx1).Warranty_Flag;
13478 Lx_Ent_Contracts(Li_TableIdx2).Eligible_For_Entitlement := Lx_Contracts(Li_TableIdx1).Eligible_For_Entitlement;
13479 Lx_Ent_Contracts(Li_TableIdx2).Exp_Reaction_Time := Lx_Contracts(Li_TableIdx1).Exp_Reaction_Time;
13480 Lx_Ent_Contracts(Li_TableIdx2).Exp_Resolution_Time := Lx_Contracts(Li_TableIdx1).Exp_Resolution_Time;
13481 Lx_Ent_Contracts(Li_TableIdx2).Status_Code := Lx_Contracts(Li_TableIdx1).Status_Code;
13482 Lx_Ent_Contracts(Li_TableIdx2).Status_Text := Lx_Contracts(Li_TableIdx1).Status_Text;
13483 Lx_Ent_Contracts(Li_TableIdx2).date_terminated := Lx_Contracts(Li_TableIdx1).date_terminated;
13484
13485 -- Added for 12.0 ENT-TZ project (JVARGHES)
13486 Lx_Ent_Contracts(Li_TableIdx2).CovLvl_Line_Id := Lx_Contracts(Li_TableIdx1).CovLvl_Line_Id;
13487 --
13488
13489 Li_TableIdx1 := Lx_Contracts.NEXT(Li_TableIdx1);
13490
13491 END LOOP;
13492
13493 X_Ent_Contracts := Lx_Ent_Contracts;
13494
13495 EXCEPTION
13496
13497 WHEN OTHERS THEN
13498
13499 OKC_API.SET_MESSAGE
13500 (P_App_Name => G_APP_NAME_OKC
13501 ,P_Msg_Name => G_UNEXPECTED_ERROR
13502 ,P_Token1 => G_SQLCODE_TOKEN
13503 ,P_Token1_Value => SQLCODE
13504 ,P_Token2 => G_SQLERRM_TOKEN
13505 ,P_Token2_Value => SQLERRM);
13506
13507 OKC_API.SET_MESSAGE
13508 (P_App_Name => G_APP_NAME_OKC
13509 ,P_Msg_Name => G_DEBUG_TOKEN
13510 ,P_Token1 => G_PACKAGE_TOKEN
13511 ,P_Token1_Value => G_PKG_NAME
13512 ,P_Token2 => G_PROGRAM_TOKEN
13513 ,P_Token2_Value => 'Get_Contracts-Output_Tbl_IB');
13514
13515 --X_Result := G_FALSE;
13516 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13517
13518 END Get_Contracts;
13519
13520 -----------------------------------------------------------------------------------------------------------------------*
13521
13522 PROCEDURE Sort_Asc_GetContracts_03
13523 (P_Input_Tab IN Output_Tbl_EntFrm
13524 ,X_Output_Tab out nocopy Output_Tbl_EntFrm
13525 ,X_Result out nocopy Gx_Boolean
13526 ,X_Return_Status out nocopy Gx_Ret_Sts)
13527 IS
13528
13529 Lx_Sort_Tab Output_Tbl_EntFrm;
13530 Lx_Result Gx_Boolean;
13531 Lx_Return_Status Gx_Ret_Sts;
13532
13533 Li_TableIdx_Out BINARY_INTEGER;
13534 Li_TableIdx_In BINARY_INTEGER;
13535
13536 Lx_Temp_ContItem output_rec_entfrm;
13537
13538 Lv_Compare_Val1 VARCHAR2(120);
13539 Lv_Compare_Val2 VARCHAR2(120);
13540
13541
13542 BEGIN
13543
13544 Lx_Sort_Tab := P_Input_Tab;
13545 Lx_Result := G_TRUE;
13546 Lx_Return_Status := G_RET_STS_SUCCESS;
13547
13548 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
13549
13550 WHILE Li_TableIdx_Out IS NOT NULL LOOP
13551
13552 Li_TableIdx_In := Li_TableIdx_Out;
13553
13554 WHILE Li_TableIdx_In IS NOT NULL LOOP
13555
13556 Lv_Compare_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Contract_Number;
13557 Lv_Compare_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Contract_Number;
13558
13559 IF Lv_Compare_Val1 > Lv_Compare_Val2 THEN
13560
13561 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
13562 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
13563 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
13564
13565 END IF;
13566
13567 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
13568
13569 END LOOP;
13570
13571 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
13572
13573 END LOOP;
13574
13575 X_Output_Tab := Lx_Sort_Tab;
13576 X_Result := Lx_Result;
13577 X_Return_Status := Lx_Return_Status;
13578
13579 EXCEPTION
13580
13581 WHEN OTHERS THEN
13582
13583 OKC_API.SET_MESSAGE
13584 (P_App_Name => G_APP_NAME_OKC
13585 ,P_Msg_Name => G_UNEXPECTED_ERROR
13586 ,P_Token1 => G_SQLCODE_TOKEN
13587 ,P_Token1_Value => SQLCODE
13588 ,P_Token2 => G_SQLERRM_TOKEN
13589 ,P_Token2_Value => SQLERRM);
13590
13591 OKC_API.SET_MESSAGE
13592 (P_App_Name => G_APP_NAME_OKC
13593 ,P_Msg_Name => G_DEBUG_TOKEN
13594 ,P_Token1 => G_PACKAGE_TOKEN
13595 ,P_Token1_Value => G_PKG_NAME
13596 ,P_Token2 => G_PROGRAM_TOKEN
13597 ,P_Token2_Value => 'Sort_Asc_GetContracts_03');
13598
13599 X_Result := G_FALSE;
13600 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13601
13602 END Sort_Asc_GetContracts_03;
13603
13604 -----------------------------------------------------------------------------------------------------------------------*
13605
13606 PROCEDURE Get_Contracts_03_Format
13607 (P_Contracts IN GT_Contract_Ref
13608 ,P_Con_Number IN VARCHAR2
13609 ,P_Con_Number_Modifier IN VARCHAR2
13610 ,P_Con_Customer_Id IN NUMBER
13611 ,P_Service_Item_Id IN NUMBER
13612 ,P_Organization_Id IN NUMBER
13613 ,P_Request_Date IN DATE
13614 ,P_Validate_Eff IN VARCHAR2
13615 ,X_Contracts_03 out nocopy Output_Tbl_EntFrm
13616 ,X_Result out nocopy Gx_Boolean
13617 ,X_Return_Status out nocopy Gx_Ret_Sts)
13618 IS
13619
13620 CURSOR Lx_Csr_Contracts(Cx_Chr_Id IN Gx_OKS_Id, Cv_Con_Number IN VARCHAR2, Cv_Con_Number_Modifier IN VARCHAR2,
13621 Cv_Con_Cusomer_Id IN VARCHAR2, Cv_Service_Item_Id IN VARCHAR2, Cn_Organization_Id IN NUMBER) IS
13622 SELECT HB.Id Contract_Id
13623 ,HB.Contract_Number Contract_Number
13624 ,HB.Contract_Number_Modifier Contract_Number_Modifier
13625 ,HT.Cognomen Contract_Known_As
13626 ,HT.Short_Description Contract_Short_Description
13627 ,HB.Sts_Code Contract_Status_Code
13628 ,HB.Start_Date Contract_Start_Date
13629 ,Get_End_Date_Time(HB.End_Date) Contract_End_Date
13630 ,Get_End_Date_Time(HB.Date_Terminated) Contract_Terminated_Date
13631 FROM Okc_K_Headers_TL HT
13632 ,OKC_K_HEADERS_ALL_B HB -- OKC_K_HEADERS_B HB -- Modified for 12.0 MOAC project (JVARGHES)
13633 WHERE HB.Id = NVL(Cx_Chr_Id,HB.Id)
13634 AND HB.Contract_Number = NVL(Cv_Con_Number,HB.Contract_Number)
13635 AND (Cv_Con_Number_Modifier IS NULL OR HB.Contract_Number_Modifier = Cv_Con_Number_Modifier)
13636 AND (Cv_Con_Cusomer_Id IS NULL
13637 OR
13638 HB.Id IN ( SELECT PR.Chr_Id
13639 FROM Okx_Parties_V PX
13640 ,Okc_K_Party_Roles_B PR
13641 WHERE PR.Object1_Id1 = NVL(Cv_Con_Cusomer_Id,PR.Object1_Id1) --PR.Chr_Id = HB.Id
13642 AND PR.Rle_Code in ('CUSTOMER')
13643 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
13644 AND PX.Id1 = TO_NUMBER(PR.Object1_Id1)
13645 AND PX.Id2 = PR.Object1_Id2 ))
13646 AND (Cv_Service_Item_Id IS NULL
13647 OR
13648 HB.Id IN ( SELECT SV.Chr_Id
13649 FROM Okx_System_Items_V XI
13650 ,Okc_K_Items IT
13651 ,Okc_K_Lines_B SV
13652 WHERE SV.Lse_ID IN (1,14,19) --SV.Chr_Id = HB.Id
13653 AND IT.Cle_Id = SV.Id
13654 AND IT.Object1_Id1 = NVL(Cv_Service_Item_Id,IT.Object1_Id1)
13655 AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
13656 AND XI.Id1 = TO_NUMBER(IT.Object1_Id1)
13657 AND XI.Id2 = IT.Object1_Id2
13658 AND XI.Service_Item_Flag = 'Y'
13659 -- AND XI.Organization_Id = Cn_Organization_Id --Bug# 4735542.
13660 ))
13661 AND HB.Scs_Code IN ('SERVICE','WARRANTY')
13662 AND HB.Id > -1
13663 AND HB.Template_YN <> 'Y'
13664 AND HB.Id = HT.Id
13665 AND HT.Language = USERENV('LANG');
13666
13667 CURSOR Lx_Csr_Contracts_sub(Cx_Chr_Id IN Gx_OKS_Id, Cv_Con_Number IN VARCHAR2, Cv_Con_Number_Modifier IN VARCHAR2,
13668 Cv_Con_Cusomer_Id IN VARCHAR2, Cv_Service_Item_Id IN VARCHAR2, Cn_Organization_Id IN NUMBER) IS
13669 SELECT HB.Id Contract_Id
13670 ,HB.Contract_Number Contract_Number
13671 ,HB.Contract_Number_Modifier Contract_Number_Modifier
13672 ,HT.Cognomen Contract_Known_As
13673 ,HT.Short_Description Contract_Short_Description
13674 ,HB.Sts_Code Contract_Status_Code
13675 ,HB.Start_Date Contract_Start_Date
13676 ,Get_End_Date_Time(HB.End_Date) Contract_End_Date
13677 ,Get_End_Date_Time(HB.Date_Terminated) Contract_Terminated_Date
13678 FROM Okc_K_Headers_TL HT
13679 ,OKC_K_HEADERS_ALL_B HB -- OKC_K_HEADERS_B HB -- Modified for 12.0 MOAC project (JVARGHES)
13680 WHERE HB.Id = NVL(Cx_Chr_Id,HB.Id)
13681 AND HB.Contract_Number = NVL(Cv_Con_Number,HB.Contract_Number)
13682 AND (Cv_Con_Number_Modifier IS NULL OR HB.Contract_Number_Modifier = Cv_Con_Number_Modifier)
13683 AND (Cv_Con_Cusomer_Id IS NULL
13684 OR
13685 HB.Id IN ( SELECT PR.Chr_Id
13686 FROM Okx_Parties_V PX
13687 ,Okc_K_Party_Roles_B PR
13688 WHERE PR.Object1_Id1 = NVL(Cv_Con_Cusomer_Id,PR.Object1_Id1) --PR.Chr_Id = HB.Id
13689 AND PR.Rle_Code in ('CUSTOMER','SUBSCRIBER') ---Modified condition for ER9681794
13690 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
13691 AND PX.Id1 = TO_NUMBER(PR.Object1_Id1)
13692 AND PX.Id2 = PR.Object1_Id2 ))
13693 AND (Cv_Service_Item_Id IS NULL
13694 OR
13695 HB.Id IN ( SELECT SV.Chr_Id
13696 FROM Okx_System_Items_V XI
13697 ,Okc_K_Items IT
13698 ,Okc_K_Lines_B SV
13699 WHERE SV.Lse_ID IN (1,14,19) --SV.Chr_Id = HB.Id
13700 AND IT.Cle_Id = SV.Id
13701 AND IT.Object1_Id1 = NVL(Cv_Service_Item_Id,IT.Object1_Id1)
13702 AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
13703 AND XI.Id1 = TO_NUMBER(IT.Object1_Id1)
13704 AND XI.Id2 = IT.Object1_Id2
13705 AND XI.Service_Item_Flag = 'Y'
13706 -- AND XI.Organization_Id = Cn_Organization_Id --Bug# 4735542.
13707 ))
13708 AND HB.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION') ---Modified condition for ER9681794
13709 AND HB.Id > -1
13710 AND HB.Template_YN <> 'Y'
13711 AND HB.Id = HT.Id
13712 AND HT.Language = USERENV('LANG');
13713
13714 Lx_Contracts GT_Contract_Ref;
13715
13716 Lv_Con_Number CONSTANT VARCHAR2(120) := P_Con_Number;
13717 Lv_Con_Number_Modifier CONSTANT VARCHAR2(120) := P_Con_Number_Modifier;
13718 Ln_Con_Customer_Id NUMBER;
13719 Ln_Service_Item_Id CONSTANT NUMBER := P_Service_Item_Id;
13720 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
13721 Ld_Request_Date CONSTANT DATE := P_Request_Date;
13722 Lv_Validate_Eff VARCHAR2(1);
13723 Ln_Party_Id NUMBER;
13724
13725 Lx_Contracts_03 Output_Tbl_EntFrm;
13726 Lx_Contracts_03_Out Output_Tbl_EntFrm;
13727
13728 Ld_Con_Eff_End_Date DATE;
13729 Lv_Effective_Falg VARCHAR2(1);
13730
13731 Lx_Chr_Id Gx_OKS_Id;
13732
13733 Lx_Result Gx_Boolean;
13734 Lx_Return_Status Gx_Ret_Sts;
13735 Li_TableIdx BINARY_INTEGER;
13736 Li_OutTab_Idx BINARY_INTEGER;
13737
13738 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
13739
13740 BEGIN
13741
13742 Lx_Contracts := P_Contracts;
13743 Ln_Con_Customer_Id := P_Con_Customer_Id;
13744 Lv_Validate_Eff := P_Validate_Eff;
13745
13746 Lx_Result := G_TRUE;
13747 Lx_Return_Status := G_RET_STS_SUCCESS;
13748 Li_OutTab_Idx := 0;
13749
13750 --
13751 IF Lv_Validate_Eff = 'Y' THEN
13752 Lv_Validate_Eff := 'T';
13753 END IF;
13754 --
13755
13756 Li_TableIdx := Lx_Contracts.FIRST;
13757
13758 WHILE Li_TableIdx IS NOT NULL LOOP
13759
13760 Lx_Chr_Id := Lx_Contracts(Li_TableIdx).Rx_Chr_Id;
13761 Ln_Party_Id := Lx_Contracts(Li_TableIdx).Rx_Pty_Id;
13762 Ln_Con_Customer_Id := NVL(Ln_Con_Customer_Id,Ln_Party_Id);
13763
13764 /*Added for ER9681794*/
13765 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
13766
13767 FOR Idx IN Lx_Csr_Contracts_sub(Lx_Chr_Id,Lv_Con_Number,Lv_Con_Number_Modifier,
13768 TO_CHAR(Ln_Con_Customer_Id),TO_CHAR(Ln_Service_Item_Id),Ln_Organization_Id) LOOP
13769
13770 IF Lv_Validate_Eff = 'T' THEN
13771
13772 IF Idx.Contract_Terminated_Date < Idx.Contract_End_Date THEN
13773 Ld_Con_Eff_End_Date := Idx.Contract_Terminated_Date;
13774 ELSE
13775 Ld_Con_Eff_End_Date := Idx.Contract_End_Date;
13776
13777 -- grace period changes starts
13778
13779 IF G_GRACE_PROFILE_SET = 'Y' AND Idx.Contract_Terminated_Date IS NULL THEN
13780
13781 G_CONTRACT_END_DATE := Ld_Con_Eff_End_Date;
13782 G_CONTRACT_ID := Idx.Contract_Id;
13783
13784 Ld_Con_Eff_End_Date := Get_Final_End_Date(Idx.Contract_Id,Ld_Con_Eff_End_Date);
13785
13786 END IF;
13787
13788 -- grace period changes ends
13789 END IF;
13790
13791 IF (Ld_Request_Date BETWEEN Idx.Contract_Start_Date AND Ld_Con_Eff_End_Date) THEN
13792 Lv_Effective_Falg := 'T';
13793 ELSE
13794 Lv_Effective_Falg := 'F';
13795 END IF;
13796
13797 END IF;
13798
13799 IF (Lv_Validate_Eff = 'T' AND Lv_Effective_Falg = 'T' ) OR (Lv_Validate_Eff <> 'T') THEN
13800
13801 Li_OutTab_Idx := Li_OutTab_Idx + 1;
13802
13803 Lx_Contracts_03(Li_OutTab_Idx).Contract_Id := Idx.Contract_Id;
13804 Lx_Contracts_03(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
13805 Lx_Contracts_03(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
13806 Lx_Contracts_03(Li_OutTab_Idx).Contract_Known_As := Idx.Contract_Known_As;
13807 Lx_Contracts_03(Li_OutTab_Idx).Contract_Short_Description := Idx.Contract_Short_Description;
13808 Lx_Contracts_03(Li_OutTab_Idx).Contract_Status_Code := Idx.Contract_Status_Code;
13809 Lx_Contracts_03(Li_OutTab_Idx).Contract_Start_Date := Idx.Contract_Start_Date;
13810 Lx_Contracts_03(Li_OutTab_Idx).Contract_End_Date := Idx.Contract_End_Date;
13811 Lx_Contracts_03(Li_OutTab_Idx).Contract_Terminated_Date := Idx.Contract_Terminated_Date;
13812
13813 END IF;
13814
13815 END LOOP;
13816
13817 ELSE
13818
13819 /*added for ER9681794*/
13820
13821
13822 FOR Idx IN Lx_Csr_Contracts(Lx_Chr_Id,Lv_Con_Number,Lv_Con_Number_Modifier,
13823 TO_CHAR(Ln_Con_Customer_Id),TO_CHAR(Ln_Service_Item_Id),Ln_Organization_Id) LOOP
13824
13825 IF Lv_Validate_Eff = 'T' THEN
13826
13827 IF Idx.Contract_Terminated_Date < Idx.Contract_End_Date THEN
13828 Ld_Con_Eff_End_Date := Idx.Contract_Terminated_Date;
13829 ELSE
13830 Ld_Con_Eff_End_Date := Idx.Contract_End_Date;
13831
13832 -- grace period changes starts
13833
13834 IF G_GRACE_PROFILE_SET = 'Y' AND Idx.Contract_Terminated_Date IS NULL THEN
13835
13836 G_CONTRACT_END_DATE := Ld_Con_Eff_End_Date;
13837 G_CONTRACT_ID := Idx.Contract_Id;
13838
13839 Ld_Con_Eff_End_Date := Get_Final_End_Date(Idx.Contract_Id,Ld_Con_Eff_End_Date);
13840
13841 END IF;
13842
13843 -- grace period changes ends
13844 END IF;
13845
13846 IF (Ld_Request_Date BETWEEN Idx.Contract_Start_Date AND Ld_Con_Eff_End_Date) THEN
13847 Lv_Effective_Falg := 'T';
13848 ELSE
13849 Lv_Effective_Falg := 'F';
13850 END IF;
13851
13852 END IF;
13853
13854 IF (Lv_Validate_Eff = 'T' AND Lv_Effective_Falg = 'T' ) OR (Lv_Validate_Eff <> 'T') THEN
13855
13856 Li_OutTab_Idx := Li_OutTab_Idx + 1;
13857
13858 Lx_Contracts_03(Li_OutTab_Idx).Contract_Id := Idx.Contract_Id;
13859 Lx_Contracts_03(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
13860 Lx_Contracts_03(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
13861 Lx_Contracts_03(Li_OutTab_Idx).Contract_Known_As := Idx.Contract_Known_As;
13862 Lx_Contracts_03(Li_OutTab_Idx).Contract_Short_Description := Idx.Contract_Short_Description;
13863 Lx_Contracts_03(Li_OutTab_Idx).Contract_Status_Code := Idx.Contract_Status_Code;
13864 Lx_Contracts_03(Li_OutTab_Idx).Contract_Start_Date := Idx.Contract_Start_Date;
13865 Lx_Contracts_03(Li_OutTab_Idx).Contract_End_Date := Idx.Contract_End_Date;
13866 Lx_Contracts_03(Li_OutTab_Idx).Contract_Terminated_Date := Idx.Contract_Terminated_Date;
13867
13868 END IF;
13869
13870 END LOOP;
13871
13872 END IF; ---added for ER9681794
13873
13874 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
13875
13876 END LOOP;
13877
13878 Sort_Asc_GetContracts_03
13879 (P_Input_Tab => Lx_Contracts_03
13880 ,X_Output_Tab => Lx_Contracts_03_Out
13881 ,X_Result => Lx_Result
13882 ,X_Return_Status => Lx_Return_Status);
13883
13884 IF Lx_Result <> G_TRUE THEN
13885 RAISE L_EXCEP_UNEXPECTED_ERR;
13886 END IF;
13887
13888 X_Contracts_03 := Lx_Contracts_03_Out;
13889 X_Result := Lx_Result;
13890 X_Return_Status := Lx_Return_Status;
13891
13892 EXCEPTION
13893
13894 WHEN L_EXCEP_UNEXPECTED_ERR THEN
13895
13896 X_Result := Lx_Result;
13897 X_Return_Status := Lx_Return_Status;
13898
13899 WHEN OTHERS THEN
13900
13901 OKC_API.SET_MESSAGE
13902 (P_App_Name => G_APP_NAME_OKC
13903 ,P_Msg_Name => G_UNEXPECTED_ERROR
13904 ,P_Token1 => G_SQLCODE_TOKEN
13905 ,P_Token1_Value => SQLCODE
13906 ,P_Token2 => G_SQLERRM_TOKEN
13907 ,P_Token2_Value => SQLERRM);
13908
13909 OKC_API.SET_MESSAGE
13910 (P_App_Name => G_APP_NAME_OKC
13911 ,P_Msg_Name => G_DEBUG_TOKEN
13912 ,P_Token1 => G_PACKAGE_TOKEN
13913 ,P_Token1_Value => G_PKG_NAME
13914 ,P_Token2 => G_PROGRAM_TOKEN
13915 ,P_Token2_Value => 'Get_Contracts_03_Format');
13916
13917 X_Result := G_FALSE;
13918 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13919
13920 END Get_Contracts_03_Format;
13921
13922 -----------------------------------------------------------------------------------------------------------------------*
13923
13924 PROCEDURE Sort_Asc_ContRef_PlSql_Table
13925 (P_Input_Tab IN GT_Contract_Ref
13926 ,X_Output_Tab out nocopy GT_Contract_Ref
13927 ,X_Result out nocopy Gx_Boolean
13928 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
13929
13930 Lx_Sort_Tab GT_Contract_Ref;
13931 Lx_Result Gx_Boolean;
13932 Lx_Return_Status Gx_Ret_Sts;
13933
13934 Li_TableIdx_Out BINARY_INTEGER;
13935 Li_TableIdx_In BINARY_INTEGER;
13936
13937 Lx_Temp_ContRef GR_Contract_Ref;
13938
13939 Lv_Compare_Val1 NUMBER;
13940 Lv_Compare_Val2 NUMBER;
13941
13942 BEGIN
13943
13944 Lx_Sort_Tab := P_Input_Tab;
13945 Lx_Result := G_TRUE;
13946 Lx_Return_Status := G_RET_STS_SUCCESS;
13947
13948 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
13949
13950 WHILE Li_TableIdx_Out IS NOT NULL LOOP
13951
13952 Li_TableIdx_In := Li_TableIdx_Out;
13953
13954 WHILE Li_TableIdx_In IS NOT NULL LOOP
13955
13956 Lv_Compare_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Rx_Chr_Id;
13957 Lv_Compare_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Rx_Chr_Id;
13958
13959 IF Lv_Compare_Val1 > Lv_Compare_Val2 THEN
13960
13961 Lx_Temp_ContRef := Lx_Sort_Tab(Li_TableIdx_Out);
13962 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
13963 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContRef;
13964
13965 END IF;
13966
13967 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
13968
13969 END LOOP;
13970
13971 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
13972
13973 END LOOP;
13974
13975 X_Output_Tab := Lx_Sort_Tab;
13976 X_Result := Lx_Result;
13977 X_Return_Status := Lx_Return_Status;
13978
13979 EXCEPTION
13980
13981 WHEN OTHERS THEN
13982
13983 OKC_API.SET_MESSAGE
13984 (P_App_Name => G_APP_NAME_OKC
13985 ,P_Msg_Name => G_UNEXPECTED_ERROR
13986 ,P_Token1 => G_SQLCODE_TOKEN
13987 ,P_Token1_Value => SQLCODE
13988 ,P_Token2 => G_SQLERRM_TOKEN
13989 ,P_Token2_Value => SQLERRM);
13990
13991 OKC_API.SET_MESSAGE
13992 (P_App_Name => G_APP_NAME_OKC
13993 ,P_Msg_Name => G_DEBUG_TOKEN
13994 ,P_Token1 => G_PACKAGE_TOKEN
13995 ,P_Token1_Value => G_PKG_NAME
13996 ,P_Token2 => G_PROGRAM_TOKEN
13997 ,P_Token2_Value => 'Sort_Asc_ContRef_PlSql_Table');
13998
13999 X_Result := G_FALSE;
14000 X_Return_Status := G_RET_STS_UNEXP_ERROR;
14001
14002 END Sort_Asc_ContRef_PlSql_Table;
14003
14004 -----------------------------------------------------------------------------------------------------------------------*
14005
14006 PROCEDURE Dedup_ContItem_PlSql_Table
14007 (P_Input_Tab IN GT_Contract_Ref
14008 ,X_Output_Tab out nocopy GT_Contract_Ref
14009 ,X_Result out nocopy Gx_Boolean
14010 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
14011
14012 Lx_DeDup_Tab GT_Contract_Ref;
14013 Lx_Result Gx_Boolean;
14014 Lx_Return_Status Gx_Ret_Sts;
14015
14016 Lx_Temp_ContRef GR_Contract_Ref;
14017
14018 Li_TableIdx BINARY_INTEGER;
14019 Lv_Compare_Val1 VARCHAR2(300);
14020 Lv_Compare_Val2 VARCHAR2(300);
14021
14022 BEGIN
14023
14024 Lx_DeDup_Tab := P_Input_Tab;
14025 Lx_Result := G_TRUE;
14026 Lx_Return_Status := G_RET_STS_SUCCESS;
14027
14028 Li_TableIdx := Lx_DeDup_Tab.FIRST;
14029
14030 WHILE Li_TableIdx IS NOT NULL LOOP
14031
14032 Lv_Compare_Val1 := Lx_DeDup_Tab(Li_TableIdx).Rx_Chr_Id;
14033 Lv_Compare_Val2 := Lx_Temp_ContRef.Rx_Chr_Id;
14034
14035 IF Lv_Compare_Val1 = Lv_Compare_Val2 THEN
14036 Lx_DeDup_Tab.DELETE(Li_TableIdx);
14037 ELSE
14038 Lx_Temp_ContRef := Lx_DeDup_Tab(Li_TableIdx);
14039 END IF;
14040
14041 Li_TableIdx := Lx_DeDup_Tab.NEXT(Li_TableIdx);
14042
14043 END LOOP;
14044
14045 X_Output_Tab := Lx_DeDup_Tab;
14046 X_Result := Lx_Result;
14047 X_Return_Status := Lx_Return_Status;
14048
14049 EXCEPTION
14050
14051 WHEN OTHERS THEN
14052
14053 OKC_API.SET_MESSAGE
14054 (P_App_Name => G_APP_NAME_OKC
14055 ,P_Msg_Name => G_UNEXPECTED_ERROR
14056 ,P_Token1 => G_SQLCODE_TOKEN
14057 ,P_Token1_Value => SQLCODE
14058 ,P_Token2 => G_SQLERRM_TOKEN
14059 ,P_Token2_Value => SQLERRM);
14060
14061 OKC_API.SET_MESSAGE
14062 (P_App_Name => G_APP_NAME_OKC
14063 ,P_Msg_Name => G_DEBUG_TOKEN
14064 ,P_Token1 => G_PACKAGE_TOKEN
14065 ,P_Token1_Value => G_PKG_NAME
14066 ,P_Token2 => G_PROGRAM_TOKEN
14067 ,P_Token2_Value => 'Dedup_ContItem_PlSql_Table');
14068
14069 X_Result := G_FALSE;
14070 X_Return_Status := G_RET_STS_UNEXP_ERROR;
14071
14072 END Dedup_ContItem_PlSql_Table;
14073
14074 -----------------------------------------------------------------------------------------------------------------------*
14075
14076 PROCEDURE Get_Contracts_03
14077 (P_API_Version IN NUMBER
14078 ,P_Init_Msg_List IN VARCHAR2
14079 ,P_Inp_Rec IN Input_Rec_EntFrm
14080 ,X_Return_Status OUT NOCOPY VARCHAR2
14081 ,X_Msg_Count OUT NOCOPY NUMBER
14082 ,X_Msg_Data OUT NOCOPY VARCHAR2
14083 ,X_Ent_Contracts OUT NOCOPY Output_Tbl_EntFrm)
14084 IS
14085
14086 Lx_Inp_Rec CONSTANT Input_Rec_EntFrm := P_Inp_Rec;
14087 Lx_Return_Status Gx_Ret_Sts;
14088 Lx_Result Gx_Boolean;
14089
14090 Lx_Ent_Contracts Output_Tbl_EntFrm;
14091 Lx_Contracts GT_Contract_Ref;
14092 Lx_Contracts_Out GT_Contract_Ref;
14093
14094 Ln_Organization_Id NUMBER;
14095 Ln_Org_Id NUMBER;
14096 Lv_CovLvl_Flag VARCHAR2(1);
14097
14098 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
14099
14100 BEGIN
14101
14102 Lx_Return_Status := G_RET_STS_SUCCESS;
14103 Lx_Result := G_TRUE;
14104
14105 Lv_CovLvl_Flag := 'F';
14106
14107 -- Bug# 4735542
14108 -- Ln_Organization_Id := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
14109
14110 -- Modified for 12.0 MOAC project (JVARGHES)
14111 -- Ln_Org_Id := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
14112 --
14113 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
14114
14115 IF Lx_Inp_Rec.CovLvl_Product_Id IS NOT NULL THEN
14116
14117 Get_CovProd_Contracts
14118 (P_CovProd_Obj_Id => Lx_Inp_Rec.CovLvl_Product_Id
14119 ,P_Organization_Id => Ln_Organization_Id
14120 ,P_Org_Id => Ln_Org_Id
14121 ,X_CovProd_Contracts => Lx_Contracts
14122 ,X_Result => Lx_Result
14123 ,X_Return_Status => Lx_Return_Status);
14124
14125 IF Lx_Result <> G_TRUE THEN
14126 RAISE L_EXCEP_UNEXPECTED_ERR;
14127 END IF;
14128
14129 Lv_CovLvl_Flag := 'T';
14130
14131 ELSIF Lx_Inp_Rec.CovLvl_Item_Id IS NOT NULL THEN
14132
14133 Get_CovItem_Contracts
14134 (P_CovItem_Obj_Id => Lx_Inp_Rec.CovLvl_Item_Id
14135 ,P_Organization_Id => Ln_Organization_Id
14136 ,P_Party_Id => Lx_Inp_Rec.CovLvl_Party_Id
14137 ,X_CovItem_Contracts => Lx_Contracts
14138 ,X_Result => Lx_Result
14139 ,X_Return_Status => Lx_Return_Status);
14140
14141 IF Lx_Result <> G_TRUE THEN
14142 RAISE L_EXCEP_UNEXPECTED_ERR;
14143 END IF;
14144
14145 Lv_CovLvl_Flag := 'T';
14146
14147 ELSIF Lx_Inp_Rec.CovLvl_System_Id IS NOT NULL THEN
14148
14149 Get_CovSys_Contracts
14150 (P_CovSys_Obj_Id => Lx_Inp_Rec.CovLvl_System_Id
14151 ,P_Org_Id => Ln_Org_Id
14152 ,X_CovSys_Contracts => Lx_Contracts
14153 ,X_Result => Lx_Result
14154 ,X_Return_Status => Lx_Return_Status);
14155
14156 IF Lx_Result <> G_TRUE THEN
14157 RAISE L_EXCEP_UNEXPECTED_ERR;
14158 END IF;
14159
14160 Lv_CovLvl_Flag := 'T';
14161
14162 ELSIF Lx_Inp_Rec.CovLvl_Cust_Acct_Id IS NOT NULL THEN
14163
14164 Get_CovCust_Contracts
14165 (P_CovCust_Obj_Id => Lx_Inp_Rec.CovLvl_Cust_Acct_Id
14166 ,X_CovCust_Contracts => Lx_Contracts
14167 ,X_Result => Lx_Result
14168 ,X_Return_Status => Lx_Return_Status);
14169
14170 IF Lx_Result <> G_TRUE THEN
14171 RAISE L_EXCEP_UNEXPECTED_ERR;
14172 END IF;
14173
14174 Lv_CovLvl_Flag := 'T';
14175
14176 ELSIF Lx_Inp_Rec.CovLvl_Site_Id IS NOT NULL THEN
14177
14178 Get_CovSite_Contracts
14179 (P_CovSite_Obj_Id => Lx_Inp_Rec.CovLvl_Site_Id
14180 ,P_Org_Id => Ln_Org_Id
14181 ,X_CovSite_Contracts => Lx_Contracts
14182 ,X_Result => Lx_Result
14183 ,X_Return_Status => Lx_Return_Status);
14184
14185 IF Lx_Result <> G_TRUE THEN
14186 RAISE L_EXCEP_UNEXPECTED_ERR;
14187 END IF;
14188
14189 Lv_CovLvl_Flag := 'T';
14190
14191 ELSIF Lx_Inp_Rec.CovLvl_Party_Id IS NOT NULL THEN
14192
14193 Get_CovParty_Contracts
14194 (P_CovParty_Obj_Id => Lx_Inp_Rec.CovLvl_Party_Id
14195 ,X_CovParty_Contracts => Lx_Contracts
14196 ,X_Result => Lx_Result
14197 ,X_Return_Status => Lx_Return_Status);
14198
14199 IF Lx_Result <> G_TRUE THEN
14200 RAISE L_EXCEP_UNEXPECTED_ERR;
14201 END IF;
14202
14203 Lv_CovLvl_Flag := 'T';
14204
14205 END IF;
14206
14207 IF Lx_Contracts.Count > 0 THEN
14208
14209 Sort_Asc_ContRef_PlSql_Table
14210 (P_Input_Tab => Lx_Contracts
14211 ,X_Output_Tab => Lx_Contracts_Out
14212 ,X_Result => Lx_Result
14213 ,X_Return_Status => Lx_Return_Status);
14214
14215 IF Lx_Result <> G_TRUE THEN
14216 RAISE L_EXCEP_UNEXPECTED_ERR;
14217 END IF;
14218
14219 Lx_Contracts := Lx_Contracts_Out;
14220
14221 Dedup_ContItem_PlSql_Table
14222 (P_Input_Tab => Lx_Contracts
14223 ,X_Output_Tab => Lx_Contracts_Out
14224 ,X_Result => Lx_Result
14225 ,X_Return_Status => Lx_Return_Status);
14226
14227 IF Lx_Result <> G_TRUE THEN
14228 RAISE L_EXCEP_UNEXPECTED_ERR;
14229 END IF;
14230
14231 ELSE
14232
14233 IF Lv_CovLvl_Flag <> 'T' THEN
14234 Lx_Contracts_Out(1).Rx_Cle_Id := NULL; --G_MISS_NUM;
14235 END IF;
14236
14237 END IF;
14238
14239 Get_Contracts_03_Format
14240 (P_Contracts => Lx_Contracts_Out
14241 ,P_Con_Number => Lx_Inp_Rec.Contract_Number
14242 ,P_Con_Number_Modifier => Lx_Inp_Rec.Contract_Number_Modifier
14243 ,P_Con_Customer_Id => Lx_Inp_Rec.Contract_Customer_Id
14244 ,P_Service_Item_Id => Lx_Inp_Rec.Contract_Service_Item_Id
14245 ,P_Organization_Id => Ln_Organization_Id
14246 ,P_Request_Date => Lx_Inp_Rec.Request_Date
14247 ,P_Validate_Eff => Lx_Inp_Rec.Validate_Effectivity
14248 ,X_Contracts_03 => Lx_Ent_Contracts
14249 ,X_Result => Lx_Result
14250 ,X_Return_Status => Lx_Return_Status);
14251
14252 IF Lx_Result <> G_TRUE THEN
14253 RAISE L_EXCEP_UNEXPECTED_ERR;
14254 END IF;
14255
14256 X_Ent_Contracts := Lx_Ent_Contracts;
14257 X_Return_Status := Lx_Return_Status;
14258
14259 EXCEPTION
14260
14261 WHEN L_EXCEP_UNEXPECTED_ERR THEN
14262
14263 --X_Result := Lx_Result;
14264 X_Return_Status := Lx_Return_Status;
14265
14266 WHEN OTHERS THEN
14267
14268 OKC_API.SET_MESSAGE
14269 (P_App_Name => G_APP_NAME_OKC
14270 ,P_Msg_Name => G_UNEXPECTED_ERROR
14271 ,P_Token1 => G_SQLCODE_TOKEN
14272 ,P_Token1_Value => SQLCODE
14273 ,P_Token2 => G_SQLERRM_TOKEN
14274 ,P_Token2_Value => SQLERRM);
14275
14276 OKC_API.SET_MESSAGE
14277 (P_App_Name => G_APP_NAME_OKC
14278 ,P_Msg_Name => G_DEBUG_TOKEN
14279 ,P_Token1 => G_PACKAGE_TOKEN
14280 ,P_Token1_Value => G_PKG_NAME
14281 ,P_Token2 => G_PROGRAM_TOKEN
14282 ,P_Token2_Value => 'Get_Contracts_03');
14283
14284 --X_Result := G_FALSE;
14285 X_Return_Status := G_RET_STS_UNEXP_ERROR;
14286
14287 END Get_Contracts_03;
14288
14289 -----------------------------------------------------------------------------------------------------------------------*
14290
14291 PROCEDURE Get_Contracts
14292 (P_API_Version IN NUMBER
14293 ,P_Init_Msg_List IN VARCHAR2
14294 ,P_Inp_Rec IN Input_Rec_EntFrm
14295 ,X_Return_Status out nocopy VARCHAR2
14296 ,X_Msg_Count out nocopy NUMBER
14297 ,X_Msg_Data out nocopy VARCHAR2
14298 ,X_Ent_Contracts out nocopy Output_Tbl_EntFrm)
14299 IS
14300
14301 Lx_Inp_Rec Input_Rec_EntFrm;
14302
14303 BEGIN
14304
14305 Lx_Inp_Rec := P_Inp_Rec;
14306
14307 -- Bug# 4735542
14308 -- okc_context.set_okc_org_context;
14309
14310 IF Lx_Inp_Rec.Request_Date IS NULL THEN
14311 Lx_Inp_Rec.Request_Date := SYSDATE;
14312 END IF;
14313
14314 Get_Contracts_03
14315 (P_API_Version => P_API_Version
14316 ,P_Init_Msg_List => P_Init_Msg_List
14317 ,P_Inp_Rec => Lx_Inp_Rec
14318 ,X_Return_Status => X_Return_Status
14319 ,X_Msg_Count => X_Msg_Count
14320 ,X_Msg_Data => X_Msg_Data
14321 ,X_Ent_Contracts => X_Ent_Contracts);
14322
14323 EXCEPTION
14324
14325 WHEN OTHERS THEN
14326
14327 OKC_API.SET_MESSAGE
14328 (P_App_Name => G_APP_NAME_OKC
14329 ,P_Msg_Name => G_UNEXPECTED_ERROR
14330 ,P_Token1 => G_SQLCODE_TOKEN
14331 ,P_Token1_Value => SQLCODE
14332 ,P_Token2 => G_SQLERRM_TOKEN
14333 ,P_Token2_Value => SQLERRM);
14334
14335 OKC_API.SET_MESSAGE
14336 (P_App_Name => G_APP_NAME_OKC
14337 ,P_Msg_Name => G_DEBUG_TOKEN
14338 ,P_Token1 => G_PACKAGE_TOKEN
14339 ,P_Token1_Value => G_PKG_NAME
14340 ,P_Token2 => G_PROGRAM_TOKEN
14341 ,P_Token2_Value => 'Get_Contracts-Output_Tbl_EntFrm');
14342
14343 --X_Result := G_FALSE;
14344 X_Return_Status := G_RET_STS_UNEXP_ERROR;
14345
14346 END Get_Contracts;
14347
14348 -----------------------------------------------------------------------------------------------------------------------*
14349 /*
14350 As per ER# 2165039 this procedure (Get_HighImp_CP_Contract)
14351 when called by IB (Installed Base) will return a record based on
14352 following conditions:
14353
14354 1.Only the Covered level of 'Covered Product' would be considered.
14355 3.Always return only one row, based on the highest importance level (1 being
14356 the highest)- loosing the visibility to other contract lines covering the same
14357 instance.
14358 4.Returns only one row- system picked, even if there are multiple rows selected
14359 for the criteria.
14360 */
14361
14362 PROCEDURE Get_HighImp_CP_Contract
14363 (P_API_Version IN NUMBER
14364 ,P_Init_Msg_List IN VARCHAR2
14365 ,P_Customer_product_Id IN NUMBER
14366 ,X_Return_Status OUT NOCOPY VARCHAR2
14367 ,X_Msg_Count out nocopy NUMBER
14368 ,X_Msg_Data out nocopy VARCHAR2
14369 ,X_Importance_Lvl OUT NOCOPY OKS_ENTITLEMENTS_PUB.High_Imp_level_K_rec)
14370
14371 IS
14372
14373 CURSOR Cur_ImplvlExists is
14374 select count(*) cnt
14375 from oks_cov_types_v
14376 where importance_level is NOT NULL;
14377 --
14378 --
14379 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14380 --
14381 --
14382 -- CURSOR Cur_HighImpCont is
14383 -- select okh.contract_number,
14384 -- okh.contract_number_modifier,
14385 -- okh.start_date,
14386 -- okh.end_date,
14387 -- cvt.meaning,
14388 -- cvt.importance_level,
14389 -- okh.estimated_amount,
14390 -- okh.sts_code
14391 -- from OKC_K_HEADERS_ALL_B okh,
14392 -- okc_k_lines_b cle,
14393 -- okc_k_lines_b cle_cov,
14394 -- oks_k_lines_b okscle_cov,
14395 -- okc_k_lines_b cle_cvl,
14396 -- okc_k_items cim,
14397 -- okc_statuses_v sts,
14398 -- oks_cov_types_v cvt
14399 -- where cle.chr_id = okh.id
14400 -- and okh.sts_code = sts.code
14401 -- and sts.ste_code = 'ACTIVE'
14402 -- and cle_cov.cle_id = cle.id
14403 -- and cle_cov.lse_id in (2,15,20)
14404 -- and okscle_cov.cle_id = cle_cov.id
14405 -- and okscle_cov.coverage_type = cvt.code
14406 -- and cle_cvl.cle_id = cle.id
14407 -- and cle_cvl.lse_id in (9,18,25)
14408 -- and cle_cvl.id = cim.cle_id
14409 -- and cim.object1_id1 = P_Customer_product_Id
14410 -- order by cvt.importance_level;
14411 --
14412 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14413 --
14414 --
14415 CURSOR Cur_HighImpCont IS
14416 select okh.contract_number,
14417 okh.contract_number_modifier,
14418 okh.start_date,
14419 okh.end_date,
14420 cvt.meaning,
14421 cvt.importance_level,
14422 okh.estimated_amount,
14423 okh.sts_code
14424 from OKC_K_HEADERS_ALL_B okh, -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
14425 okc_k_lines_b cle,
14426 oks_k_lines_b cle_ksl,
14427 oks_k_lines_b okscle_cov,
14428 okc_k_lines_b cle_cvl,
14429 okc_k_items cim,
14430 okc_statuses_v sts,
14431 oks_cov_types_v cvt
14432 where cle.chr_id = okh.id
14433 and okh.sts_code = sts.code
14434 and sts.ste_code = 'ACTIVE'
14435 and cle_ksl.cle_id = cle.id
14436 and okscle_cov.cle_id = cle_ksl.coverage_id
14437 and okscle_cov.coverage_type = cvt.code
14438 and cle_cvl.cle_id = cle.id
14439 and cle_cvl.lse_id in (9,18,25)
14440 and cle_cvl.id = cim.cle_id
14441 and cim.object1_id1 = P_Customer_product_Id
14442 order by cvt.importance_level;
14443 --
14444 --
14445 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14446 --
14447 --
14448 --CURSOR Cur_CpCont is
14449 -- select okh.contract_number,
14450 -- okh.contract_number_modifier,
14451 -- okh.start_date,
14452 -- okh.end_date,
14453 -- covtyp.meaning,
14454 -- covtyp.importance_level importance_level,
14455 -- okh.estimated_amount,
14456 -- okh.sts_code
14457 -- from OKC_K_HEADERS_ALL_B okh,
14458 -- okc_k_lines_b cle,
14459 -- okc_k_lines_b cle_cov,
14460 -- oks_k_lines_b okscle_cov,
14461 -- okc_k_lines_b cle_cvl,
14462 -- okc_k_items cim,
14463 -- okc_statuses_v sts,
14464 -- oks_cov_types_v covtyp
14465 -- where cle.chr_id = okh.id
14466 -- and okh.sts_code = sts.code
14467 -- and sts.ste_code = 'ACTIVE'
14468 -- and cle_cov.cle_id = cle.id
14469 -- and cle_cov.lse_id in (2,15,20)
14470 -- and okscle_cov.cle_id = cle_cov.id
14471 -- and okscle_cov.coverage_type = covtyp.code
14472 -- and cle_cvl.cle_id = cle.id
14473 -- and cle_cvl.lse_id in (9,18,25)
14474 -- and cle_cvl.id = cim.cle_id
14475 -- and cim.object1_id1 = P_Customer_product_Id
14476 -- and rownum =1;
14477 --
14478 --
14479 --
14480 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14481 --
14482 --
14483 CURSOR Cur_CpCont is
14484 select okh.contract_number,
14485 okh.contract_number_modifier,
14486 okh.start_date,
14487 okh.end_date,
14488 covtyp.meaning,
14489 covtyp.importance_level importance_level,
14490 okh.estimated_amount,
14491 okh.sts_code
14492 from OKC_K_HEADERS_ALL_B okh, -- OKC_K_HEADERS_B okh -- Modified for 12.0 MOAC project (JVARGHES)
14493 okc_k_lines_b cle,
14494 oks_k_lines_b cle_ksl,
14495 oks_k_lines_b okscle_cov,
14496 okc_k_lines_b cle_cvl,
14497 okc_k_items cim,
14498 okc_statuses_v sts,
14499 oks_cov_types_v covtyp
14500 where cle.chr_id = okh.id
14501 and okh.sts_code = sts.code
14502 and sts.ste_code = 'ACTIVE'
14503 and cle_ksl.cle_id = cle.id
14504 and okscle_cov.cle_id = cle_ksl.coverage_id
14505 and okscle_cov.coverage_type = covtyp.code
14506 and cle_cvl.cle_id = cle.id
14507 and cle_cvl.lse_id in (9,18,25)
14508 and cle_cvl.id = cim.cle_id
14509 and cim.object1_id1 = P_Customer_product_Id
14510 and rownum =1;
14511 --
14512 --
14513
14514 Lx_Result Gx_Boolean;
14515
14516 BEGIN
14517
14518
14519 FOR Implvl_rec in Cur_ImplvlExists LOOP
14520
14521 If Implvl_rec.cnt >0 then
14522
14523 FOR HighImpCont_rec in Cur_HighImpCont LOOP
14524
14525 X_Importance_Lvl.contract_number := HighImpCont_rec.contract_number;
14526 X_Importance_Lvl.contract_number_modifier := HighImpCont_rec.contract_number_modifier;
14527 X_Importance_Lvl.contract_status_code := HighImpCont_rec.sts_code;
14528 X_Importance_Lvl.contract_start_date := HighImpCont_rec.start_date;
14529 X_Importance_Lvl.contract_end_date := HighImpCont_rec.end_date;
14530 X_Importance_Lvl.contract_amount := HighImpCont_rec.estimated_amount;
14531 X_Importance_Lvl.coverage_type := HighImpCont_rec.meaning;
14532 X_Importance_Lvl.coverage_imp_level := HighImpCont_rec.importance_level;
14533 exit;
14534 END LOOP;
14535
14536 else
14537
14538 FOR CpCont_rec in Cur_CpCont LOOP
14539
14540 X_Importance_Lvl.contract_number := CpCont_rec.contract_number;
14541 X_Importance_Lvl.contract_number_modifier := CpCont_rec.contract_number_modifier;
14542 X_Importance_Lvl.contract_status_code := CpCont_rec.sts_code;
14543 X_Importance_Lvl.contract_start_date := CpCont_rec.start_date;
14544 X_Importance_Lvl.contract_end_date := CpCont_rec.end_date;
14545 X_Importance_Lvl.contract_amount := CpCont_rec.estimated_amount;
14546 X_Importance_Lvl.coverage_type := CpCont_rec.meaning;
14547 X_Importance_Lvl.coverage_imp_level := CpCont_rec.importance_level;
14548
14549 END LOOP;
14550
14551 end if;
14552
14553 END LOOP;
14554
14555
14556 X_Return_Status := G_RET_STS_SUCCESS;
14557
14558 EXCEPTION
14559
14560 WHEN OTHERS THEN
14561
14562 OKC_API.SET_MESSAGE
14563 (P_App_Name => G_APP_NAME_OKC
14564 ,P_Msg_Name => G_UNEXPECTED_ERROR
14565 ,P_Token1 => G_SQLCODE_TOKEN
14566 ,P_Token1_Value => SQLCODE
14567 ,P_Token2 => G_SQLERRM_TOKEN
14568 ,P_Token2_Value => SQLERRM);
14569
14570 OKC_API.SET_MESSAGE
14571 (P_App_Name => G_APP_NAME_OKC
14572 ,P_Msg_Name => G_DEBUG_TOKEN
14573 ,P_Token1 => G_PACKAGE_TOKEN
14574 ,P_Token1_Value => G_PKG_NAME
14575 ,P_Token2 => G_PROGRAM_TOKEN
14576 ,P_Token2_Value => 'Get_HighImp_CP_Contract');
14577
14578 --X_Result := G_FALSE;
14579 X_Return_Status := G_RET_STS_UNEXP_ERROR;
14580
14581 END Get_HighImp_CP_Contract;
14582
14583 FUNCTION Get_Final_End_Date(
14584 P_Contract_Id IN number,
14585 P_Enddate IN DATE) Return Date is
14586
14587 CURSOR Lx_Csr_HDR_Grace(Cx_HDR_Id IN Gx_OKS_Id) IS
14588 SELECT Grace_Duration Duration
14589 ,Grace_Period TimeUnit
14590 FROM Oks_K_Headers_B OKH
14591 WHERE OKH.chr_Id = Cx_HDR_Id;
14592
14593 L_Date DATE;
14594
14595 BEGIN
14596
14597 L_Date := P_Enddate;
14598
14599 IF G_GRACE_PROFILE_SET IS NULL THEN -- Bug 5003767
14600 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
14601 END IF;
14602
14603 IF G_GRACE_PROFILE_SET = 'Y' then
14604 FOR Idx in Lx_Csr_HDR_Grace(P_Contract_Id) LOOP
14605
14606 if Idx.TimeUnit is not null and
14607 Idx.duration is not null then
14608
14609 L_Date := OKC_TIME_UTIL_PVT.get_enddate(
14610 P_Enddate,
14611 Idx.TimeUnit,
14612 Idx.Duration) + 1;
14613
14614
14615 end if;
14616 END LOOP;
14617 END IF;
14618
14619 RETURN L_Date;
14620
14621 END Get_Final_End_Date;
14622
14623
14624 -----------------------------------------------------------------------------------------------------------------------*
14625
14626
14627 PROCEDURE OKS_VALIDATE_SYSTEM
14628 (P_API_Version IN NUMBER
14629 ,P_Init_Msg_List IN VARCHAR2
14630 ,P_System_Id IN NUMBER
14631 ,P_Request_Date IN DATE
14632 ,P_Update_Only_Check IN VARCHAR2
14633 ,X_Return_Status OUT NOCOPY VARCHAR2
14634 ,X_Msg_Count out nocopy NUMBER
14635 ,X_Msg_Data out nocopy VARCHAR2
14636 ,X_System_Valid OUT NOCOPY VARCHAR2) IS
14637
14638 CURSOR Lx_Csr_SysProd(Cx_System_id IN VARCHAR2) IS
14639 SELECT CSI.instance_id CP_Id
14640 ,CSI.System_Id System_Id
14641 FROM CSI_ITEM_INSTANCES CSI
14642 WHERE CSI.System_id = (Cx_System_Id);
14643
14644
14645 CURSOR Check_update_only(p_coverage_id IN Gx_OKS_Id) IS
14646 SELECT 'Y'
14647 FROM okc_k_lines_v bp,
14648 okc_k_items cim,
14649 cs_business_processes cbp
14650 WHERE bp.cle_id = p_coverage_id
14651 AND cim.cle_id = bp.id
14652 AND cbp.business_process_id = cim.object1_id1
14653 AND cim.jtot_object1_code = 'OKX_BUSIPROC'
14654 AND (cbp.service_request_flag = 'Y'
14655 OR cbp.depot_repair_flag = 'Y'
14656 OR cbp.field_service_flag = 'Y')
14657 AND ROWNUM = 1;
14658
14659 Lx_system_valid Gx_Boolean;
14660
14661 l_system_id CONSTANT NUMBER := p_system_id;
14662 l_request_date CONSTANT DATE := nvl(p_request_date,sysdate);
14663 l_update_only_check CONSTANT VARCHAR2(1) := nvl(p_update_only_check,'N');
14664 l_out_validate_csi VARCHAR2(1);
14665
14666 Li_TableIdx BINARY_INTEGER;
14667 Lx_System_CovLevels GT_ContItem_Ref;
14668 Lx_Prod_CovLevels GT_ContItem_Ref;
14669 Lx_CovSys_Contracts GT_Contract_Ref;
14670 Lx_CustProd_Contracts GT_Contract_Ref;
14671 Lx_Result Gx_Boolean;
14672 Lx_Return_Status Gx_Ret_Sts;
14673 Lx_Ent_Contracts Get_ConTop_Tbl ;
14674 Lx_ExcepionMsg Gx_ExceptionMsg;
14675 L_EXCEP_NO_DATA_FOUND EXCEPTION;
14676 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
14677 L_VALIDATE_CSI EXCEPTION;
14678 i NUMBER;
14679
14680 X_out_paramter_csi VARCHAR2(1);
14681
14682 BEGIN
14683
14684 Lx_system_valid := G_FALSE;
14685 Lx_Result := G_TRUE;
14686 Lx_Return_Status := G_RET_STS_SUCCESS;
14687
14688 l_out_validate_csi := 'N';
14689
14690 Li_TableIdx := 1;
14691
14692 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id1 := l_system_id;
14693
14694 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
14695 Lx_System_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_COVSYST';
14696
14697
14698 Get_CovLevel_Contracts
14699 (P_CovLevel_Items => Lx_System_CovLevels
14700 ,P_Party_Id => NULL
14701 ,X_CovLevel_Contracts => Lx_CovSys_Contracts
14702 ,X_Result => Lx_Result
14703 ,X_Return_Status => Lx_Return_Status);
14704
14705 IF Lx_Result <> G_TRUE THEN
14706 RAISE L_EXCEP_UNEXPECTED_ERR;
14707 END IF;
14708
14709
14710 Get_Contracts_02_Format
14711 (P_Contracts => Lx_CovSys_Contracts
14712 ,P_BusiProc_Id => NULL
14713 ,P_Severity_Id => NULL
14714 ,P_Request_TZone_Id => NULL
14715 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
14716 ,P_Incident_Date => l_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
14717 ,P_Request_Date => l_request_date
14718 ,P_Calc_RespTime_YN => 'N'
14719 ,P_Validate_Eff => 'T'
14720 ,P_Validate_Flag => 'Y'
14721 ,P_SrvLine_Flag => 'F'
14722 ,P_Sort_Key => NULL
14723 ,X_Contracts_02 => Lx_Ent_Contracts
14724 ,X_Result => Lx_Result
14725 ,X_Return_Status => Lx_Return_Status);
14726
14727 IF Lx_Result <> G_TRUE THEN
14728 RAISE L_EXCEP_UNEXPECTED_ERR;
14729 END IF;
14730
14731 IF Lx_Ent_Contracts.count > 0 THEN
14732
14733 IF l_update_only_check <> 'Y' then
14734 l_out_validate_csi := 'Y';
14735 --RETURN l_out_validate_csi;
14736 x_system_valid := l_out_validate_csi;
14737 RAISE L_VALIDATE_CSI;
14738 ELSE
14739 i := 1;
14740 LOOP
14741 FOR bp_rec IN Check_update_only(Lx_Ent_Contracts(i).coverage_term_line_id)
14742 LOOP
14743 l_out_validate_csi := 'Y';
14744 --RETURN l_out_validate_csi;
14745 x_system_valid := l_out_validate_csi;
14746 RAISE L_VALIDATE_CSI;
14747 END LOOP;
14748
14749 IF (i = Lx_Ent_Contracts.last) THEN
14750 EXIT;
14751 END IF;
14752 i := Lx_Ent_Contracts.next(i);
14753 END LOOP;
14754 END IF;
14755
14756 END IF;
14757
14758 Li_TableIdx := 0;
14759
14760 FOR Itm in Lx_Csr_SysProd(l_System_id)
14761 LOOP
14762 Li_TableIdx := Li_TableIdx + 1;
14763
14764 Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Itm.CP_Id;
14765 Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
14766 Lx_Prod_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_CUSTPROD';
14767
14768 Get_CovLevel_Contracts
14769 (P_CovLevel_Items => Lx_Prod_CovLevels
14770 ,P_Party_Id => NULL
14771 ,X_CovLevel_Contracts => Lx_CustProd_Contracts
14772 ,X_Result => Lx_Result
14773 ,X_Return_Status => Lx_Return_Status);
14774
14775
14776 IF Lx_Result <> G_TRUE THEN
14777 RAISE L_EXCEP_UNEXPECTED_ERR;
14778 END IF;
14779
14780 Get_Contracts_02_Format
14781 (P_Contracts => Lx_CustProd_Contracts
14782 ,P_BusiProc_Id => NULL
14783 ,P_Severity_Id => NULL
14784 ,P_Request_TZone_Id => NULL
14785 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
14786 ,P_Incident_Date => l_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
14787 ,P_Request_Date => l_request_date
14788 ,P_Calc_RespTime_YN => 'N'
14789 ,P_Validate_Eff => 'T'
14790 ,P_Validate_Flag => 'Y'
14791 ,P_SrvLine_Flag => 'F'
14792 ,P_Sort_Key => NULL
14793 ,X_Contracts_02 => Lx_Ent_Contracts
14794 ,X_Result => Lx_Result
14795 ,X_Return_Status => Lx_Return_Status);
14796
14797
14798 IF Lx_Result <> G_TRUE THEN
14799 RAISE L_EXCEP_UNEXPECTED_ERR;
14800 END IF;
14801
14802 IF Lx_Ent_Contracts.count > 0 THEN
14803 IF l_update_only_check <> 'Y' THEN
14804 l_out_validate_csi := 'Y';
14805 --RETURN l_out_validate_csi;
14806 x_system_valid := l_out_validate_csi;
14807 RAISE L_VALIDATE_CSI;
14808 ELSE
14809 i := 1;
14810 LOOP
14811 FOR bp_rec IN Check_update_only(Lx_Ent_Contracts(i).coverage_term_line_id)
14812 LOOP
14813 l_out_validate_csi := 'Y';
14814 --RETURN l_out_validate_csi;
14815 x_system_valid := l_out_validate_csi;
14816 RAISE L_VALIDATE_CSI;
14817 END LOOP;
14818 IF (i = Lx_Ent_Contracts.last) THEN
14819 EXIT;
14820 END IF;
14821 i := Lx_Ent_Contracts.next(i);
14822 END LOOP;
14823 END IF;
14824 END IF;
14825
14826 END LOOP;
14827
14828 --RETURN l_out_validate_csi;
14829 x_system_valid := l_out_validate_csi;
14830 RAISE L_VALIDATE_CSI;
14831
14832 EXCEPTION
14833
14834 WHEN L_VALIDATE_CSI THEN
14835 x_return_status := G_RET_STS_SUCCESS;
14836
14837 WHEN L_EXCEP_UNEXPECTED_ERR THEN
14838
14839 --RETURN l_out_validate_csi;
14840 x_system_valid := l_out_validate_csi;
14841 x_return_status := G_RET_STS_UNEXP_ERROR;
14842
14843 WHEN OTHERS THEN
14844
14845 OKC_API.SET_MESSAGE
14846 (P_App_Name => G_APP_NAME_OKC
14847 ,P_Msg_Name => G_UNEXPECTED_ERROR
14848 ,P_Token1 => G_SQLCODE_TOKEN
14849 ,P_Token1_Value => SQLCODE
14850 ,P_Token2 => G_SQLERRM_TOKEN
14851 ,P_Token2_Value => SQLERRM);
14852
14853 OKC_API.SET_MESSAGE
14854 (P_App_Name => G_APP_NAME_OKC
14855 ,P_Msg_Name => G_DEBUG_TOKEN
14856 ,P_Token1 => G_PACKAGE_TOKEN
14857 ,P_Token1_Value => G_PKG_NAME
14858 ,P_Token2 => G_PROGRAM_TOKEN
14859 ,P_Token2_Value => 'OKS_VALIDATE_SYSTEM');
14860
14861 --RETURN l_out_validate_csi;
14862 x_system_valid := l_out_validate_csi;
14863 x_return_status := G_RET_STS_UNEXP_ERROR;
14864
14865 END OKS_VALIDATE_SYSTEM;
14866
14867 PROCEDURE Get_CSI_LatestEdDtdKLines_02
14868 (P_Input_Tab IN Get_ConTop_Tbl
14869 ,X_Output_Tab out nocopy Get_ConTop_Tbl
14870 ,X_Result out nocopy Gx_Boolean
14871 ,X_Return_Status out nocopy Gx_Ret_Sts)
14872 IS
14873
14874 Lx_Sort_Tab Get_ConTop_Tbl;
14875 Lx_Sort_Tab_Out Get_ConTop_Tbl;
14876 Lx_Result Gx_Boolean;
14877 Lx_Return_Status Gx_Ret_Sts;
14878
14879 Li_TableIdx_Out BINARY_INTEGER;
14880 Li_TableIdx_In BINARY_INTEGER;
14881
14882 Lx_Temp_ContItem Get_ConTop_Rec;
14883
14884 Lv_Composit_Val1 DATE;
14885 Lv_Composit_Val1_Num NUMBER;
14886
14887 Lv_Composit_Val2 DATE;
14888 Lv_Composit_Val2_Num NUMBER;
14889
14890 i NUMBER;
14891 j NUMBER;
14892 Lx_KLine_EdDt DATE;
14893
14894 BEGIN
14895
14896 Lx_Sort_Tab := P_Input_Tab;
14897 Lx_Result := G_TRUE;
14898 Lx_Return_Status := G_RET_STS_SUCCESS;
14899
14900 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
14901
14902 -- Sorting Contract lines with latest end dates
14903
14904 WHILE Li_TableIdx_Out IS NOT NULL LOOP
14905
14906 Li_TableIdx_In := Li_TableIdx_Out;
14907
14908 WHILE Li_TableIdx_In IS NOT NULL LOOP
14909
14910 Lv_Composit_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Service_End_Date;
14911 Lv_Composit_Val1_Num := TO_NUMBER(TO_CHAR(Lv_Composit_Val1,'YYYYMMDDHH24MISS'));
14912 Lv_Composit_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Service_End_Date;
14913 Lv_Composit_Val2_Num := TO_NUMBER(TO_CHAR(Lv_Composit_Val2,'YYYYMMDDHH24MISS'));
14914
14915 IF Lv_Composit_Val1_Num < Lv_Composit_Val2_Num THEN
14916
14917 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
14918 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
14919 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
14920
14921 END IF;
14922
14923 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
14924
14925 END LOOP;
14926
14927 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
14928
14929 END LOOP;
14930
14931
14932
14933 -- keeping contract lines with latest end date
14934
14935 i := Lx_Sort_Tab.First;
14936 j := 1;
14937 Lx_KLine_EdDt := Lx_Sort_Tab(i).Service_End_Date;
14938
14939 WHILE i IS NOT NULL LOOP
14940 IF Lx_KLine_EdDt <> Lx_Sort_Tab(i).Service_End_Date THEN
14941 EXIT;
14942 ELSE
14943 Lx_Sort_Tab_Out(j) := Lx_Sort_Tab(i);
14944 i := Lx_Sort_Tab.Next(i);
14945 j := j+1 ; --Lx_Sort_Tab_Out.Next(j);
14946 END IF;
14947 END LOOP;
14948
14949 X_Output_Tab := Lx_Sort_Tab_Out;
14950 X_Result := Lx_Result;
14951 X_Return_Status := Lx_Return_Status;
14952
14953 Lx_Sort_Tab.DELETE;
14954
14955 EXCEPTION
14956
14957 WHEN OTHERS THEN
14958
14959 OKC_API.SET_MESSAGE
14960 (P_App_Name => G_APP_NAME_OKC
14961 ,P_Msg_Name => G_UNEXPECTED_ERROR
14962 ,P_Token1 => G_SQLCODE_TOKEN
14963 ,P_Token1_Value => SQLCODE
14964 ,P_Token2 => G_SQLERRM_TOKEN
14965 ,P_Token2_Value => SQLERRM);
14966
14967 OKC_API.SET_MESSAGE
14968 (P_App_Name => G_APP_NAME_OKC
14969 ,P_Msg_Name => G_DEBUG_TOKEN
14970 ,P_Token1 => G_PACKAGE_TOKEN
14971 ,P_Token1_Value => G_PKG_NAME
14972 ,P_Token2 => G_PROGRAM_TOKEN
14973 ,P_Token2_Value => 'Get_CSI_LatestEdDtdKLines_02');
14974
14975 X_Result := G_FALSE;
14976 X_Return_Status := G_RET_STS_UNEXP_ERROR;
14977
14978 END Get_CSI_LatestEdDtdKLines_02;
14979
14980 PROCEDURE Sort_CSI_KLineId_02
14981 (P_Input_Tab IN Get_ConTop_Tbl
14982 ,X_Output_Tab out nocopy Get_ConTop_Tbl
14983 ,X_Result out nocopy Gx_Boolean
14984 ,X_Return_Status out nocopy Gx_Ret_Sts)
14985 IS
14986
14987 Lx_Sort_Tab Get_ConTop_Tbl;
14988 Lx_Result Gx_Boolean;
14989 Lx_Return_Status Gx_Ret_Sts;
14990
14991 Li_TableIdx_Out BINARY_INTEGER;
14992 Li_TableIdx_In BINARY_INTEGER;
14993
14994 Lx_Temp_ContItem Get_ConTop_Rec;
14995
14996 Lv_Composit_Val1 DATE;
14997 Lv_Composit_Val1_Num NUMBER;
14998
14999 Lv_Composit_Val2 DATE;
15000 Lv_Composit_Val2_Num NUMBER;
15001
15002 BEGIN
15003
15004 Lx_Sort_Tab := P_Input_Tab;
15005 Lx_Result := G_TRUE;
15006 Lx_Return_Status := G_RET_STS_SUCCESS;
15007
15008 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
15009
15010 WHILE Li_TableIdx_Out IS NOT NULL LOOP
15011
15012 Li_TableIdx_In := Li_TableIdx_Out;
15013
15014 WHILE Li_TableIdx_In IS NOT NULL LOOP
15015
15016 Lv_Composit_Val1_Num := Lx_Sort_Tab(Li_TableIdx_Out).Service_Line_Id;
15017 Lv_Composit_Val2_Num := Lx_Sort_Tab(Li_TableIdx_In).Service_Line_Id;
15018
15019 IF Lv_Composit_Val1_Num > Lv_Composit_Val2_Num THEN
15020
15021 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
15022 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
15023 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
15024
15025 END IF;
15026
15027 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
15028
15029 END LOOP;
15030
15031 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
15032
15033 END LOOP;
15034
15035 X_Output_Tab := Lx_Sort_Tab;
15036 X_Result := Lx_Result;
15037 X_Return_Status := Lx_Return_Status;
15038
15039 EXCEPTION
15040
15041 WHEN OTHERS THEN
15042
15043 OKC_API.SET_MESSAGE
15044 (P_App_Name => G_APP_NAME_OKC
15045 ,P_Msg_Name => G_UNEXPECTED_ERROR
15046 ,P_Token1 => G_SQLCODE_TOKEN
15047 ,P_Token1_Value => SQLCODE
15048 ,P_Token2 => G_SQLERRM_TOKEN
15049 ,P_Token2_Value => SQLERRM);
15050
15051 OKC_API.SET_MESSAGE
15052 (P_App_Name => G_APP_NAME_OKC
15053 ,P_Msg_Name => G_DEBUG_TOKEN
15054 ,P_Token1 => G_PACKAGE_TOKEN
15055 ,P_Token1_Value => G_PKG_NAME
15056 ,P_Token2 => G_PROGRAM_TOKEN
15057 ,P_Token2_Value => 'Sort_CSI_KLineId_02');
15058
15059 X_Result := G_FALSE;
15060 X_Return_Status := G_RET_STS_UNEXP_ERROR;
15061
15062 END Sort_CSI_KLineId_02;
15063
15064
15065 PROCEDURE Dedup_CSICP_KLine_PlSql_Table
15066 (P_Input_Tab IN GT_Contract_Ref
15067 ,X_Output_Tab out nocopy GT_Contract_Ref
15068 ,X_Result out nocopy Gx_Boolean
15069 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
15070
15071 Lx_DeDup_Tab GT_Contract_Ref;
15072 Lx_Result Gx_Boolean;
15073 Lx_Return_Status Gx_Ret_Sts;
15074
15075 Lx_Temp_ContRef GR_Contract_Ref;
15076
15077 Li_TableIdx BINARY_INTEGER;
15078 Lv_Compare_Val1 VARCHAR2(300);
15079 Lv_Compare_Val2 VARCHAR2(300);
15080
15081 BEGIN
15082
15083 Lx_DeDup_Tab := P_Input_Tab;
15084 Lx_Result := G_TRUE;
15085 Lx_Return_Status := G_RET_STS_SUCCESS;
15086
15087 Li_TableIdx := Lx_DeDup_Tab.FIRST;
15088
15089 WHILE Li_TableIdx IS NOT NULL LOOP
15090
15091 Lv_Compare_Val1 := Lx_DeDup_Tab(Li_TableIdx).Rx_Cle_Id;
15092 Lv_Compare_Val2 := Lx_Temp_ContRef.Rx_Cle_Id;
15093
15094 IF Lv_Compare_Val1 = Lv_Compare_Val2 THEN
15095 Lx_DeDup_Tab.DELETE(Li_TableIdx);
15096 ELSE
15097 Lx_Temp_ContRef := Lx_DeDup_Tab(Li_TableIdx);
15098 END IF;
15099
15100 Li_TableIdx := Lx_DeDup_Tab.NEXT(Li_TableIdx);
15101
15102 END LOOP;
15103
15104 X_Output_Tab := Lx_DeDup_Tab;
15105 X_Result := Lx_Result;
15106 X_Return_Status := Lx_Return_Status;
15107
15108 EXCEPTION
15109
15110 WHEN OTHERS THEN
15111
15112 OKC_API.SET_MESSAGE
15113 (P_App_Name => G_APP_NAME_OKC
15114 ,P_Msg_Name => G_UNEXPECTED_ERROR
15115 ,P_Token1 => G_SQLCODE_TOKEN
15116 ,P_Token1_Value => SQLCODE
15117 ,P_Token2 => G_SQLERRM_TOKEN
15118 ,P_Token2_Value => SQLERRM);
15119
15120 OKC_API.SET_MESSAGE
15121 (P_App_Name => G_APP_NAME_OKC
15122 ,P_Msg_Name => G_DEBUG_TOKEN
15123 ,P_Token1 => G_PACKAGE_TOKEN
15124 ,P_Token1_Value => G_PKG_NAME
15125 ,P_Token2 => G_PROGRAM_TOKEN
15126 ,P_Token2_Value => 'Dedup_CSICP_KLine_PlSql_Table');
15127
15128 X_Result := G_FALSE;
15129 X_Return_Status := G_RET_STS_UNEXP_ERROR;
15130
15131 END Dedup_CSICP_KLine_PlSql_Table;
15132
15133 -----------------------------------------------------------------------------------------------------------------------*
15134
15135 PROCEDURE Get_Sort_CSI_ImpLvl
15136 (P_Contracts IN Get_ConTop_Tbl
15137 ,X_Contracts_02 out nocopy Get_ConTop_Tbl
15138 ,X_Result out nocopy Gx_Boolean
15139 ,X_Return_Status out nocopy Gx_Ret_Sts)
15140 IS
15141
15142 Lx_Contracts Get_ConTop_Tbl;
15143 Lx_Contracts_01 Get_ConTop_Tbl;
15144 Lx_Contracts_01_Out Get_ConTop_Tbl;
15145 Lx_Contracts_02 Get_ConTop_Tbl;
15146
15147
15148 Lx_Result Gx_Boolean;
15149 Lx_Return_Status Gx_Ret_Sts;
15150
15151 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
15152 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
15153 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
15154 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
15155
15156
15157 Li_OutTab_Idx BINARY_INTEGER;
15158 i NUMBER ;
15159 j NUMBER ;
15160 Lx_Imp_Level NUMBER;
15161
15162 Ln_Msg_Count NUMBER;
15163 Lv_Msg_Data VARCHAR2(2000);
15164
15165 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
15166
15167 BEGIN
15168
15169 Lx_Contracts := P_Contracts;
15170 Lx_Result := G_TRUE;
15171 Lx_Return_Status := G_RET_STS_SUCCESS;
15172 Li_OutTab_Idx := 1;
15173
15174 Lx_Contracts_01 := Lx_Contracts;
15175
15176 -- getting importance level for all Contract lines
15177
15178 WHILE Li_OutTab_Idx IS NOT NULL LOOP
15179
15180 Get_Coverage_Type_Attribs
15181 (P_CVL_Id => Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Line_Id
15182 ,P_Set_ExcepionStack => G_FALSE
15183 ,X_Cov_Type_Code => Lx_Cov_Type_Code
15184 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
15185 ,X_Cov_Type_Description => Lx_Cov_Type_Description
15186 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
15187 ,X_Result => Lx_Result
15188 ,X_Return_Status => Lx_Return_Status);
15189
15190 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
15191 RAISE L_EXCEP_UNEXPECTED_ERR;
15192 END IF;
15193
15194 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Code := Lx_Cov_Type_Code;
15195 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Cov_Type_Meaning;
15196 Lx_Contracts_01(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
15197
15198 Li_OutTab_Idx := Lx_Contracts_01.NEXT(Li_OutTab_Idx);
15199
15200 END LOOP;
15201
15202 -- Sorting importance level for all Contract lines
15203
15204 Sort_Asc_GetContracts_02
15205 (P_Input_Tab => Lx_Contracts_01
15206 ,P_Sort_Key => G_COVERAGE_TYPE_IMP_LEVEL --Lv_Sort_Key
15207 ,X_Output_Tab => Lx_Contracts_01_Out
15208 ,X_Result => Lx_Result
15209 ,X_Return_Status => Lx_Return_Status);
15210
15211 IF Lx_Result <> G_TRUE THEN
15212 RAISE L_EXCEP_UNEXPECTED_ERR;
15213 END IF;
15214
15215 Lx_Contracts_01.DELETE;
15216 Lx_Contracts_01 := Lx_Contracts_01_Out;
15217 Lx_Contracts_01_Out.DELETE;
15218
15219 -- Keeping all Contract lines with highest importance level
15220
15221 i := Lx_Contracts_01.First;
15222 j := 1;
15223 Lx_Imp_Level := nvl(Lx_Contracts_01(i).coverage_Type_Imp_Level,-9999);
15224
15225 WHILE i IS NOT NULL LOOP
15226
15227 IF Lx_Imp_Level <> nvl(Lx_Contracts_01(i).coverage_Type_Imp_Level,-9999) THEN
15228 EXIT;
15229 ELSE
15230 Lx_Contracts_02(j) := Lx_Contracts_01(i);
15231 i := Lx_Contracts_01.Next(i);
15232 j := j+1;
15233 END IF;
15234 END LOOP;
15235 X_Contracts_02 := Lx_Contracts_02;
15236 X_Result := Lx_Result;
15237 X_Return_Status := Lx_Return_Status;
15238
15239
15240 EXCEPTION
15241
15242 WHEN L_EXCEP_UNEXPECTED_ERR THEN
15243
15244 X_Result := Lx_Result;
15245 X_Return_Status := Lx_Return_Status;
15246
15247 WHEN OTHERS THEN
15248
15249 OKC_API.SET_MESSAGE
15250 (P_App_Name => G_APP_NAME_OKC
15251 ,P_Msg_Name => G_UNEXPECTED_ERROR
15252 ,P_Token1 => G_SQLCODE_TOKEN
15253 ,P_Token1_Value => SQLCODE
15254 ,P_Token2 => G_SQLERRM_TOKEN
15255 ,P_Token2_Value => SQLERRM);
15256
15257 OKC_API.SET_MESSAGE
15258 (P_App_Name => G_APP_NAME_OKC
15259 ,P_Msg_Name => G_DEBUG_TOKEN
15260 ,P_Token1 => G_PACKAGE_TOKEN
15261 ,P_Token1_Value => G_PKG_NAME
15262 ,P_Token2 => G_PROGRAM_TOKEN
15263 ,P_Token2_Value => 'Get_Sort_CSI_ImpLvl');
15264
15265 X_Result := G_FALSE;
15266 X_Return_Status := G_RET_STS_UNEXP_ERROR;
15267
15268 END Get_Sort_CSI_ImpLvl;
15269
15270 -----------------------------------------------------------------------------------------------------------------------*
15271
15272 PROCEDURE Get_CSI_KLine_PrefGrps
15273 (P_Contracts IN Get_ConTop_Tbl
15274 ,X_Contracts_02 out nocopy Get_ConTop_Tbl
15275 ,X_Result out nocopy Gx_Boolean
15276 ,X_Return_Status out nocopy Gx_Ret_Sts)
15277 IS
15278
15279 CURSOR Check_Preferred_Group(p_coverage_id IN Gx_OKS_Id,p_chr_id in Gx_OKS_Id) IS
15280 SELECT COUNT(*) Pref_Grp_Cnt --CON.OBJECT1_ID1
15281 FROM OKC_K_LINES_B CVL,
15282 OKC_K_LINES_B BPL,
15283 OKC_K_PARTY_ROLES_B CPL,
15284 OKC_CONTACTS CON
15285 WHERE CVL.ID = p_coverage_id
15286 AND BPL.CLE_ID = CVL.ID
15287 AND BPL.LSE_ID in (3,16,21)
15288 AND BPL.ID = CPL.CLE_ID
15289 AND CPL.ID = CON.CPL_ID
15290 and con.dnz_chr_id = p_chr_id
15291 AND CON.JTOT_OBJECT1_CODE = 'OKS_RSCGROUP';
15292
15293
15294 Lx_Contracts Get_ConTop_Tbl;
15295 Lx_Contracts_02 Get_ConTop_Tbl;
15296
15297 Lx_Result Gx_Boolean;
15298 Lx_Return_Status Gx_Ret_Sts;
15299
15300 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
15301 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
15302 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
15303 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
15304
15305
15306 Li_OutTab_Idx BINARY_INTEGER;
15307 i NUMBER;
15308 j NUMBER;
15309
15310 Ln_Msg_Count NUMBER;
15311 Lv_Msg_Data VARCHAR2(2000);
15312
15313 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
15314
15315 BEGIN
15316
15317 Lx_Contracts := P_Contracts;
15318 Lx_Result := G_TRUE;
15319 Lx_Return_Status := G_RET_STS_SUCCESS;
15320 Li_OutTab_Idx := 1;
15321
15322 i := Lx_Contracts.First;
15323 j := 1;
15324
15325 WHILE i IS NOT NULL LOOP -- building table of records having contract lines
15326 -- with preferred group
15327 FOR Pref_Grp_Rec in Check_Preferred_Group(Lx_Contracts(i).Coverage_Term_Line_Id,
15328 Lx_Contracts(i).Contract_Id) LOOP
15329
15330 IF Pref_Grp_Rec.Pref_Grp_Cnt >= 1 THEN
15331 Lx_Contracts_02(j) := Lx_Contracts(i);
15332 END IF;
15333 END LOOP;
15334 i := Lx_Contracts.Next(i);
15335 j := j+1;
15336 END LOOP;
15337
15338 -- Logic here is if there any contract line with preferred group then that is the ouput otherwise all
15339 -- Input Contract lines are without preferred groups and hence all of them are tie candidates
15340
15341 IF Lx_Contracts_02.COUNT > 0 THEN
15342 X_Contracts_02 := Lx_Contracts_02;
15343 ELSE
15344 X_Contracts_02 := Lx_Contracts;
15345 END IF;
15346
15347 Lx_Contracts_02.DELETE;
15348 Lx_Contracts.DELETE;
15349
15350 X_Result := Lx_Result;
15351 X_Return_Status := Lx_Return_Status;
15352
15353 EXCEPTION
15354
15355 WHEN L_EXCEP_UNEXPECTED_ERR THEN
15356
15357 X_Result := Lx_Result;
15358 X_Return_Status := Lx_Return_Status;
15359
15360 WHEN OTHERS THEN
15361
15362 OKC_API.SET_MESSAGE
15363 (P_App_Name => G_APP_NAME_OKC
15364 ,P_Msg_Name => G_UNEXPECTED_ERROR
15365 ,P_Token1 => G_SQLCODE_TOKEN
15366 ,P_Token1_Value => SQLCODE
15367 ,P_Token2 => G_SQLERRM_TOKEN
15368 ,P_Token2_Value => SQLERRM);
15369
15370 OKC_API.SET_MESSAGE
15371 (P_App_Name => G_APP_NAME_OKC
15372 ,P_Msg_Name => G_DEBUG_TOKEN
15373 ,P_Token1 => G_PACKAGE_TOKEN
15374 ,P_Token1_Value => G_PKG_NAME
15375 ,P_Token2 => G_PROGRAM_TOKEN
15376 ,P_Token2_Value => 'Get_CSI_KLine_PrefGrps');
15377
15378 X_Result := G_FALSE;
15379 X_Return_Status := G_RET_STS_UNEXP_ERROR;
15380
15381 END Get_CSI_KLine_PrefGrps;
15382
15383
15384 PROCEDURE Default_Contline_System
15385 (P_API_Version IN NUMBER
15386 ,P_Init_Msg_List IN VARCHAR2
15387 ,P_System_Id IN NUMBER
15388 ,P_Request_Date IN DATE
15389 ,X_Return_Status OUT NOCOPY VARCHAR2
15390 ,X_Msg_Count out nocopy NUMBER
15391 ,X_Msg_Data out nocopy VARCHAR2
15392 ,X_Ent_Contracts OUT NOCOPY Default_Contline_System_Rec) IS
15393
15394 CURSOR Lx_Csr_SysProd(Cx_System_id IN VARCHAR2) IS
15395 SELECT CSI.instance_id CP_Id,
15396 CSI.System_Id System_Id
15397 FROM CSI_ITEM_INSTANCES CSI
15398 WHERE CSI.System_id = (Cx_System_Id);
15399
15400 l_system_id NUMBER;
15401 l_request_date DATE;
15402
15403 Li_TableIdx BINARY_INTEGER;
15404 Lx_System_CovLevels GT_ContItem_Ref;
15405 Lx_Prod_CovLevels GT_ContItem_Ref;
15406 Lx_CovSys_Contracts GT_Contract_Ref;
15407 Lx_CustProd_Contracts GT_Contract_Ref;
15408 Lx_Contracts GT_Contract_Ref;
15409 Lx_Contracts_Out GT_Contract_Ref;
15410 Lx_Result Gx_Boolean;
15411 Lx_Return_Status Gx_Ret_Sts;
15412
15413 Lx_Ent_Contracts Get_ConTop_Tbl ;
15414 Lx_Ent_Contracts_01 Get_ConTop_Tbl ;
15415 Lx_Ent_Contracts_02 Get_ConTop_Tbl ;
15416 Lx_Ent_Contracts2 Get_ConTop_Tbl ;
15417
15418 Lx_ExcepionMsg Gx_ExceptionMsg;
15419 L_EXCEP_NO_DATA_FOUND EXCEPTION;
15420 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
15421 L_DEF_CONTRACT_LINE EXCEPTION;
15422 i NUMBER;
15423 j NUMBER;
15424 l_imp_level NUMBER;
15425 l_KLine_EdDt DATE;
15426
15427 BEGIN
15428
15429
15430 l_system_id := p_system_id;
15431 l_request_date := p_request_date;
15432 Lx_Result := G_TRUE;
15433 Lx_Return_Status := G_RET_STS_SUCCESS;
15434
15435 Li_TableIdx := 1;
15436
15437 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id1 := l_system_id;
15438 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
15439 Lx_System_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_COVSYST';
15440
15441 -- Gets all the contract lines for the covered system_id
15442
15443 Get_CovLevel_Contracts
15444 (P_CovLevel_Items => Lx_System_CovLevels
15445 ,P_Party_Id => NULL
15446 ,X_CovLevel_Contracts => Lx_CovSys_Contracts
15447 ,X_Result => Lx_Result
15448 ,X_Return_Status => Lx_Return_Status);
15449
15450 IF Lx_Result <> G_TRUE THEN
15451 RAISE L_EXCEP_UNEXPECTED_ERR;
15452 END IF;
15453
15454 --- Gets the all the valid contract lines and detailed information
15455
15456 Get_Contracts_02_Format
15457 (P_Contracts => Lx_CovSys_Contracts
15458 ,P_BusiProc_Id => NULL
15459 ,P_Severity_Id => NULL
15460 ,P_Request_TZone_Id => NULL
15461 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
15462 ,P_Incident_Date => l_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
15463 ,P_Request_Date => l_request_date
15464 ,P_Calc_RespTime_YN => 'N'
15465 ,P_Validate_Eff => 'T'
15466 ,P_Validate_Flag => 'Y'
15467 ,P_SrvLine_Flag => 'F'
15468 ,P_Sort_Key => NULL --'COVTYP_IMP' --NULL
15469 ,X_Contracts_02 => Lx_Ent_Contracts
15470 ,X_Result => Lx_Result
15471 ,X_Return_Status => Lx_Return_Status);
15472
15473
15474 IF Lx_Result <> G_TRUE THEN
15475 RAISE L_EXCEP_UNEXPECTED_ERR;
15476 END IF;
15477
15478 IF Lx_Ent_Contracts.COUNT = 1 THEN -- only one direct record for system id
15479
15480 X_Ent_Contracts := Lx_Ent_Contracts(1);
15481 RAISE L_DEF_CONTRACT_LINE;
15482
15483 ELSIF Lx_Ent_Contracts.COUNT > 1 THEN -- more than one direct record for system id
15484
15485 -- Sorts all the contract lines with highest importance level and then returns contract lines with highest
15486 -- importance level
15487
15488
15489 Get_Sort_CSI_ImpLvl
15490 (P_Contracts => Lx_Ent_Contracts
15491 ,X_Contracts_02 => Lx_Ent_Contracts2
15492 ,X_Result => Lx_Result
15493 ,X_Return_Status => Lx_Return_Status);
15494
15495 IF Lx_Result <> G_TRUE THEN
15496 RAISE L_EXCEP_UNEXPECTED_ERR;
15497 END IF;
15498
15499 Lx_Ent_Contracts.DELETE;
15500 Lx_Ent_Contracts := Lx_Ent_Contracts2;
15501 Lx_Ent_Contracts2.DELETE;
15502
15503
15504 IF Lx_Ent_Contracts.COUNT = 1 THEN -- one record with highest importance level
15505
15506 X_Ent_Contracts := Lx_Ent_Contracts(1);
15507 RAISE L_DEF_CONTRACT_LINE;
15508
15509 ELSIF Lx_Ent_Contracts.COUNT >1 THEN -- more than one record with highest importance level
15510 -- ; Tie exists
15511
15512 -- Gets all the contract lines with preferred groups
15513
15514 Get_CSI_KLine_PrefGrps
15515 (P_Contracts => Lx_Ent_Contracts
15516 ,X_Contracts_02 => Lx_Ent_Contracts_01
15517 ,X_Result => Lx_Result
15518 ,X_Return_Status => Lx_Return_Status);
15519
15520 IF Lx_Result <> G_TRUE THEN
15521 RAISE L_EXCEP_UNEXPECTED_ERR;
15522 END IF;
15523
15524 Lx_Ent_Contracts.DELETE;
15525
15526 IF Lx_Ent_Contracts_01.COUNT = 1 THEN -- one record with preferred group
15527
15528 X_Ent_Contracts := Lx_Ent_Contracts_01(1);
15529 RAISE L_DEF_CONTRACT_LINE;
15530
15531 ELSIF (Lx_Ent_Contracts_01.COUNT >1 )THEN -- more than one record or,
15532 -- no record with preferred group
15533 -- (the above proc. returns all); Tie exists
15534
15535 -- Getting contract lines with latest end date
15536
15537 Get_CSI_LatestEdDtdKLines_02
15538 (P_Input_Tab => Lx_Ent_Contracts_01
15539 ,X_Output_Tab => Lx_Ent_Contracts_02
15540 ,X_Result => Lx_Result
15541 ,X_Return_Status => Lx_Return_Status);
15542
15543
15544 IF Lx_Result <> G_TRUE THEN
15545 RAISE L_EXCEP_UNEXPECTED_ERR;
15546 END IF;
15547
15548
15549 IF Lx_Ent_Contracts_02.COUNT >= 1 THEN --only one contract line with same
15550 --latest end date ,
15551 -- in case,more than one contract line with
15552 --same latest end date; return first one
15553
15554 X_Ent_Contracts := Lx_Ent_Contracts_02(1);
15555 RAISE L_DEF_CONTRACT_LINE;
15556
15557 -- ELSIF Lx_Ent_Contracts_02.COUNT > 1 THEN --more than one contract line with
15558 --same latest end date; Tie exists
15559
15560
15561 -- NULL; -- Automatically goes to indirect lines logic
15562
15563 END IF; --line latest end date comparison ends
15564
15565 END IF; -- preferred group comparison ends
15566
15567 -- ELSIF Lx_Ent_Contracts.COUNT =0 THEN -- no record with highest importance level (probably N/A)
15568 -- NULL;
15569 END IF; -- highest importance level comparison ends
15570
15571 -- ELSIF Lx_Ent_Contracts.COUNT = 0 THEN -- no direct record for system id
15572
15573 -- NULL; -- Automatically goes to indirect lines logic
15574
15575 END IF;
15576
15577 Lx_Ent_Contracts.DELETE;
15578 Lx_Ent_Contracts_01.DELETE;
15579 Lx_Ent_Contracts_02.DELETE;
15580
15581 ----- Indirect lines logic starts
15582
15583 Li_TableIdx := 0;
15584
15585 --- Following loop gets all the contract lines for all the covered customer products for a system id
15586
15587 FOR Itm in Lx_Csr_SysProd(l_System_id)
15588 LOOP
15589
15590 Li_TableIdx := Li_TableIdx + 1;
15591
15592 Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Itm.CP_Id;
15593 Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
15594 Lx_Prod_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_CUSTPROD';
15595
15596 END LOOP;
15597
15598 Get_CovLevel_Contracts
15599 (P_CovLevel_Items => Lx_Prod_CovLevels
15600 ,P_Party_Id => NULL
15601 ,X_CovLevel_Contracts => Lx_CustProd_Contracts
15602 ,X_Result => Lx_Result
15603 ,X_Return_Status => Lx_Return_Status);
15604
15605 Lx_Contracts := Lx_CustProd_Contracts;
15606 Lx_CustProd_Contracts.DELETE;
15607
15608 --- Removes all the duplicate contract lines
15609
15610 Dedup_CSICP_KLine_PlSql_Table
15611 (P_Input_Tab => Lx_Contracts
15612 ,X_Output_Tab => Lx_Contracts_Out
15613 ,X_Result => Lx_Result
15614 ,X_Return_Status => Lx_Return_Status);
15615
15616
15617 IF Lx_Result <> G_TRUE THEN
15618 RAISE L_EXCEP_UNEXPECTED_ERR;
15619 END IF;
15620
15621 Lx_Contracts := Lx_Contracts_Out;
15622 Lx_Contracts_Out.DELETE;
15623
15624 --- Gets the all the valid contract lines and detailed information
15625
15626 Get_Contracts_02_Format
15627 (P_Contracts => Lx_Contracts
15628 ,P_BusiProc_Id => NULL
15629 ,P_Severity_Id => NULL
15630 ,P_Request_TZone_Id => NULL
15631 ,P_Request_Date => l_request_date
15632 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
15633 ,P_Incident_Date => l_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
15634 ,P_Calc_RespTime_YN => 'N'
15635 ,P_Validate_Eff => 'T'
15636 ,P_Validate_Flag => 'Y'
15637 ,P_SrvLine_Flag => 'F'
15638 ,P_Sort_Key => NULL --'COVTYP_IMP' --NULL
15639 ,X_Contracts_02 => Lx_Ent_Contracts
15640 ,X_Result => Lx_Result
15641 ,X_Return_Status => Lx_Return_Status);
15642
15643
15644 IF Lx_Result <> G_TRUE THEN
15645 RAISE L_EXCEP_UNEXPECTED_ERR;
15646 END IF;
15647
15648 IF Lx_Ent_Contracts.COUNT = 1 THEN -- only one indirect record for cp_ids of the system id
15649
15650 X_Ent_Contracts := Lx_Ent_Contracts(1);
15651 RAISE L_DEF_CONTRACT_LINE;
15652
15653 ELSIF Lx_Ent_Contracts.COUNT > 1 THEN -- more than one indirect record for cp_ids of the system id
15654
15655 -- Sorts all the contract lines with highest importance level and then returns contract lines with highest
15656 -- importance level
15657
15658
15659 Get_Sort_CSI_ImpLvl
15660 (P_Contracts => Lx_Ent_Contracts
15661 ,X_Contracts_02 => Lx_Ent_Contracts2
15662 ,X_Result => Lx_Result
15663 ,X_Return_Status => Lx_Return_Status);
15664
15665
15666 IF Lx_Result <> G_TRUE THEN
15667 RAISE L_EXCEP_UNEXPECTED_ERR;
15668 END IF;
15669
15670 Lx_Ent_Contracts.DELETE;
15671 Lx_Ent_Contracts := Lx_Ent_Contracts2;
15672 Lx_Ent_Contracts2.DELETE;
15673
15674 IF Lx_Ent_Contracts.COUNT = 1 THEN -- one record with highest importance level
15675
15676 X_Ent_Contracts := Lx_Ent_Contracts(1);
15677 RAISE L_DEF_CONTRACT_LINE;
15678
15679 ELSIF Lx_Ent_Contracts.COUNT >1 THEN -- more than one record with highest importance level
15680 -- ; Tie exists
15681
15682 -- Gets all the contract lines with preferred groups
15683
15684 Get_CSI_KLine_PrefGrps
15685 (P_Contracts => Lx_Ent_Contracts
15686 ,X_Contracts_02 => Lx_Ent_Contracts_01
15687 ,X_Result => Lx_Result
15688 ,X_Return_Status => Lx_Return_Status);
15689
15690
15691 IF Lx_Result <> G_TRUE THEN
15692 RAISE L_EXCEP_UNEXPECTED_ERR;
15693 END IF;
15694
15695 Lx_Ent_Contracts.DELETE;
15696
15697 IF Lx_Ent_Contracts_01.COUNT = 1 THEN -- one record with preferred group
15698
15699
15700 X_Ent_Contracts := Lx_Ent_Contracts_01(1);
15701 RAISE L_DEF_CONTRACT_LINE;
15702
15703 ELSIF (Lx_Ent_Contracts_01.COUNT >1 )THEN -- more than one record or,
15704 -- no record with preferred group
15705 -- (the above proc. returns all); Tie exists
15706
15707 -- Getting contract lines with latest end date
15708
15709 Get_CSI_LatestEdDtdKLines_02
15710 (P_Input_Tab => Lx_Ent_Contracts_01
15711 ,X_Output_Tab => Lx_Ent_Contracts_02
15712 ,X_Result => Lx_Result
15713 ,X_Return_Status => Lx_Return_Status);
15714
15715
15716 IF Lx_Result <> G_TRUE THEN
15717 RAISE L_EXCEP_UNEXPECTED_ERR;
15718 END IF;
15719
15720
15721 IF Lx_Ent_Contracts_02.COUNT >= 1 THEN --only one contract line with same
15722 --latest end date ,
15723 -- in case,more than one contract line with
15724 --same latest end date; return first one
15725
15726 X_Ent_Contracts := Lx_Ent_Contracts_02(1);
15727 RAISE L_DEF_CONTRACT_LINE;
15728
15729 -- ELSIF Lx_Ent_Contracts_02.COUNT > 1 THEN --more than one contract line with
15730 --same latest end date; Tie exists
15731
15732 -- NULL; -- Automatically goes to indirect lines logic
15733
15734 END IF; --line latest end date comparison ends
15735
15736 END IF; -- preferred group comparison ends
15737
15738 -- ELSIF Lx_Ent_Contracts.COUNT =0 THEN -- no record with highest importance level (probably N/A)
15739 -- NULL;
15740 END IF; -- highest importance level comparison ends
15741
15742 -- ELSIF Lx_Ent_Contracts.COUNT = 0 THEN -- no direct record for system id
15743
15744 -- NULL; -- Automatically goes to indirect lines logic
15745
15746 END IF;
15747
15748
15749 EXCEPTION
15750
15751 WHEN L_DEF_CONTRACT_LINE THEN
15752
15753 X_Return_Status := G_RET_STS_SUCCESS;
15754
15755 WHEN L_EXCEP_UNEXPECTED_ERR THEN
15756
15757 X_Return_Status := G_RET_STS_UNEXP_ERROR;
15758
15759 WHEN OTHERS THEN
15760
15761 OKC_API.SET_MESSAGE
15762 (P_App_Name => G_APP_NAME_OKC
15763 ,P_Msg_Name => G_UNEXPECTED_ERROR
15764 ,P_Token1 => G_SQLCODE_TOKEN
15765 ,P_Token1_Value => SQLCODE
15766 ,P_Token2 => G_SQLERRM_TOKEN
15767 ,P_Token2_Value => SQLERRM);
15768
15769 OKC_API.SET_MESSAGE
15770 (P_App_Name => G_APP_NAME_OKC
15771 ,P_Msg_Name => G_DEBUG_TOKEN
15772 ,P_Token1 => G_PACKAGE_TOKEN
15773 ,P_Token1_Value => G_PKG_NAME
15774 ,P_Token2 => G_PROGRAM_TOKEN
15775 ,P_Token2_Value => 'Default_Contract_line_CSI');
15776
15777 X_Return_Status := G_RET_STS_UNEXP_ERROR;
15778
15779
15780 END Default_Contline_System;
15781
15782 /*vgujarat - modified for access hour ER 9675504*/
15783 PROCEDURE Get_Cont02Format_Validation
15784 (P_Contracts IN Idx_Rec
15785 ,P_BusiProc_Id IN Gx_BusProcess_Id
15786 ,P_Severity_Id IN Gx_Severity_Id
15787 ,P_Request_TZone_Id IN Gx_TimeZoneId
15788 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
15789 ,P_Incident_Date IN DATE -- Added for 12.0 ENT-TZ project (JVARGHES)
15790 ,P_Request_Date IN DATE
15791 ,P_Request_Date_Start IN DATE
15792 ,P_Request_Date_End IN DATE
15793 ,P_Calc_RespTime_YN IN VARCHAR2
15794 ,P_Validate_Eff IN VARCHAR2
15795 ,P_Validate_Flag IN VARCHAR2
15796 ,P_SrvLine_Flag IN VARCHAR2
15797 ,P_Sort_Key IN VARCHAR2
15798 ,X_Contracts_02 out nocopy Get_ConTop_Tbl
15799 ,X_Result out nocopy Gx_Boolean
15800 ,X_Return_Status out nocopy Gx_Ret_Sts
15801 ,P_cust_id IN NUMBER DEFAULT NULL
15802 ,P_cust_site_id IN NUMBER DEFAULT NULL
15803 ,P_cust_loc_id IN NUMBER DEFAULT NULL) IS
15804
15805 --
15806 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
15807 --
15808 --
15809 -- CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN Gx_OKS_Id) IS
15810 -- SELECT Name
15811 -- ,Item_Description
15812 -- ,Id Coverage_Line_Id
15813 -- ,Start_Date CV_Start_Date
15814 -- ,Get_End_Date_Time(End_Date) Cv_End_Date
15815 -- ,Get_End_Date_Time(Date_Terminated) CV_Date_Terminated
15816 -- FROM Okc_K_Lines_V
15817 -- WHERE Cle_Id = Cx_SrvLine_Id
15818 -- AND Lse_Id IN (2,15,20);
15819 --
15820 --
15821 -- Added for 12.0 Coverage Rearch project (JVARGHES)
15822 --
15823 CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN Gx_OKS_Id) IS
15824 SELECT CVL.Name
15825 ,CVL.Item_Description
15826 ,CVL.Id Coverage_Line_Id
15827 ,CVL.Start_Date CV_Start_Date
15828 ,Get_End_Date_Time(CVL.End_Date) Cv_End_Date
15829 ,Get_End_Date_Time(CVL.Date_Terminated) CV_Date_Terminated
15830 ,KSL.Standard_Cov_YN
15831 FROM OKS_K_LINES_B KSL
15832 ,Okc_K_Lines_V CVL
15833 WHERE KSL.Cle_Id = Cx_SrvLine_Id
15834 AND KSL.Coverage_Id = CVL.Id
15835 AND CVL.Lse_Id IN (2,15,20);
15836
15837 --
15838 --
15839
15840 -- replaced following cursor because of bug 3248293
15841
15842 CURSOR Lx_Csr_SrvItem (Cx_SrvLine_Id In Gx_OKS_Id, Cn_Organization_Id IN NUMBER) IS
15843 SELECT mtl.concatenated_segments Name
15844 ,mtl.description Description
15845 FROM mtl_system_items_b_kfv mtl
15846 ,Okc_K_Items IT
15847 WHERE IT.Cle_Id = Cx_SrvLine_Id
15848 AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
15849 AND mtl.inventory_item_id = IT.Object1_Id1
15850 AND mtl.organization_id = IT.Object1_Id2
15851 AND mtl.Service_Item_Flag = 'Y';
15852 -- AND mtl.Organization_Id = Cn_Organization_Id;
15853
15854 -- The above validation "AND mtl.Organization_Id = Cn_Organization_Id"
15855 -- in this cursor Lx_Csr_SrvItem commented out . The fix is for bug 3248293.
15856 -- it is possible to have ext. warranty lines having different inv_organization_id
15857 -- than the contract header inv_organization_id
15858
15859 Lx_Contracts Idx_Rec;
15860 Ld_Request_Date CONSTANT DATE := P_Request_Date;
15861 Ld_Request_Date_Start CONSTANT DATE := P_Request_Date_Start;
15862 Ld_Request_Date_End CONSTANT DATE := P_Request_Date_End;
15863 Lv_Validate_Flag VARCHAR2(1);
15864 Lv_SrvLine_Flag CONSTANT VARCHAR2(1) := P_SrvLine_Flag;
15865 Lv_Sort_Key CONSTANT VARCHAR2(10):= P_Sort_Key;
15866
15867 Lx_BusiProc_Id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
15868 Lx_Severity_Id CONSTANT Gx_Severity_Id := P_Severity_Id;
15869 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_Id;
15870 Lv_Calc_RespTime_YN CONSTANT VARCHAR2(1) := P_Calc_RespTime_YN;
15871 Lv_Validate_Eff CONSTANT VARCHAR2(1) := P_Validate_Eff;
15872 Lv_Cont_Pty_Id VARCHAR2(100);
15873
15874 /*vgujarat - modified for access hour ER 9675504*/
15875 Lx_cust_id CONSTANT NUMBER := P_cust_id;
15876 Lx_cust_site_id CONSTANT NUMBER := P_cust_site_id;
15877 Lx_cust_loc_id CONSTANT NUMBER := P_cust_loc_id;
15878
15879 Lx_Contracts_02 Get_ConTop_Tbl;
15880 Lx_Contracts_02_Out Get_ConTop_Tbl;
15881
15882 Lx_Result Gx_Boolean;
15883 Lx_Return_Status Gx_Ret_Sts;
15884 Lx_Result1 Gx_Boolean;
15885 Lx_Return_Status1 Gx_Ret_Sts;
15886 Lx_Result2 Gx_Boolean;
15887 Lx_Return_Status2 Gx_Ret_Sts;
15888 Lx_Result3 Gx_Boolean;
15889 Lx_Return_Status3 Gx_Ret_Sts;
15890
15891 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
15892 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
15893 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
15894 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
15895
15896 Li_TableIdx BINARY_INTEGER;
15897 Li_OutTab_Idx BINARY_INTEGER;
15898 Lv_Entile_Flag VARCHAR2(1);
15899 Lv_Effective_Falg VARCHAR2(1);
15900
15901 Lx_SrvLine_Id Gx_OKS_Id;
15902 Lx_CovLvlLine_Id Gx_OKS_Id;
15903
15904 Ld_SRV_Eff_End_Date DATE;
15905 Ld_COV_Eff_End_Date DATE;
15906 Ld_CVL_Eff_End_Date DATE;
15907
15908 Lv_Srv_Name VARCHAR2(300) ; --Okx_System_Items_V.Name%TYPE; --VARCHAR2(150) ;
15909 Lv_Srv_Description VARCHAR2(300) ; --Okx_System_Items_V.Description%TYPE; --VARCHAR2(1995);
15910 Lv_Prof_Srv_Name VARCHAR2(300) ;
15911 Lv_Prof_Srv_Desc VARCHAR2(300);
15912
15913 Lv_Cov_Name Okc_K_Lines_V.Name%TYPE; --VARCHAR2(150) ;
15914 Lv_Cov_Description Okc_K_Lines_V.Item_Description%TYPE; --VARCHAR2(1995);
15915
15916 Lx_React_Durn Gx_ReactDurn;
15917 Lx_React_UOM Gx_ReactUOM;
15918 Lv_React_Day VARCHAR2(20);
15919 Ld_React_By_DateTime DATE;
15920 Ld_React_Start_DateTime DATE;
15921
15922 Lx_Resln_Durn Gx_ReactDurn;
15923 Lx_Resln_UOM Gx_ReactUOM;
15924 Lv_Resln_Day VARCHAR2(20);
15925 Ld_Resln_By_DateTime DATE;
15926 Ld_Resln_Start_DateTime DATE;
15927
15928 Ln_Msg_Count NUMBER;
15929 Lv_Msg_Data VARCHAR2(2000);
15930
15931 Lv_RCN_RSN_Flag VARCHAR2(10);
15932 Lb_RSN_CTXT_Exists BOOLEAN;
15933
15934 Lx_CovLine_Id Gx_OKS_Id;
15935 Ld_Cov_StDate DATE;
15936 Ld_Cov_EdDate DATE;
15937 Ld_Cov_TnDate DATE;
15938 Lv_Cov_Check VARCHAR2(1);
15939
15940 Lv_Prof_Name CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
15941 Lv_Prof_Value VARCHAR2(300);
15942 Lx_Service_PO VARCHAR2(450);
15943 Lx_Service_PO_Required VARCHAR2(450);
15944
15945 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
15946
15947 -- Added for 12.0 ENT-TZ project (JVARGHES)
15948
15949 Ld_Incident_Date DATE;
15950 Ld_Reported_Date DATE;
15951 Lv_Dates_In_Input_TZ VARCHAR2(1);
15952
15953 --
15954 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
15955 --
15956
15957 Lv_Standard_Cov_YN VARCHAR2(10);
15958
15959 --
15960
15961 BEGIN
15962
15963
15964 Lx_Contracts := P_Contracts;
15965 Lv_Validate_Flag := P_Validate_Flag;
15966 Lx_Result := G_TRUE;
15967 Lx_Return_Status := G_RET_STS_SUCCESS;
15968 Lx_Result1 := G_TRUE;
15969 Lx_Return_Status1 := G_RET_STS_SUCCESS;
15970 Lx_Result2 := G_TRUE;
15971 Lx_Return_Status2 := G_RET_STS_SUCCESS;
15972 Lx_Result3 := G_TRUE;
15973 Lx_Return_Status3 := G_RET_STS_SUCCESS;
15974 Li_OutTab_Idx := 0;
15975
15976
15977 -- Added for 12.0 ENT-TZ project (JVARGHES)
15978
15979 Ld_Incident_Date := NVL(p_Incident_Date,Ld_Request_Date);
15980 Ld_Reported_Date := Ld_Request_Date;
15981 Lv_Dates_In_Input_TZ := P_Dates_In_Input_TZ;
15982
15983 --
15984
15985 -- 11.5.10 --no more check required if RSN rule exists as rules architecture no more exist in 11.5.10
15986
15987 -- Lb_RSN_CTXT_Exists := FND_FLEX_DSC_API.CONTEXT_EXISTS('OKS','OKS Rule Developer DF','RSN');
15988 ---
15989 FND_PROFILE.Get(Lv_Prof_Name, Lv_Prof_Value);
15990 ---
15991
15992 IF Lv_Validate_Flag = 'Y' THEN
15993 Lv_Validate_Flag := 'T';
15994 END IF;
15995 ---
15996
15997 -- IF Lb_RSN_CTXT_Exists THEN
15998 Lv_RCN_RSN_Flag := G_RUL_CATEGORY_REACT_RESOLVE;
15999 -- ELSE
16000 -- Lv_RCN_RSN_Flag := G_RUL_CATEGORY_REACTION;
16001 -- END IF;
16002
16003 --
16004 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16005 --
16006
16007 OPEN Lx_Csr_CovItem(Lx_Contracts.Service_Line_Id);
16008 FETCH Lx_Csr_CovItem INTO Lv_Cov_Name,Lv_Cov_Description,Lx_CovLine_Id
16009 ,Ld_Cov_StDate,Ld_Cov_EdDate,Ld_Cov_TnDate, Lv_Standard_Cov_YN;
16010
16011 --
16012 --
16013
16014 IF Lx_Csr_CovItem%NOTFOUND THEN
16015 Lv_Cov_Check := 'N';
16016 ELSE
16017 Lv_Cov_Check := 'Y';
16018 END IF;
16019
16020 CLOSE Lx_Csr_CovItem;
16021
16022 --
16023 -- Added for 12.0 Coverage Rearch project (JVARGHES)
16024 --
16025
16026 IF Lv_Standard_Cov_YN = 'Y'
16027 THEN
16028 Ld_Cov_StDate := Lx_Contracts.Sv_Start_Date;
16029 Ld_Cov_EdDate := Lx_Contracts.Sv_End_Date;
16030 Ld_Cov_TnDate := Lx_Contracts.SV_Date_Terminated;
16031 END IF;
16032
16033 --
16034 --
16035 --
16036 -- Added for Bug#16754022
16037 IF Lx_Contracts.CL_Date_Terminated < Lx_Contracts.CL_End_Date THEN
16038 Ld_CVL_Eff_End_Date := Lx_Contracts.CL_Date_Terminated-1;
16039 ELSE
16040 Ld_CVL_Eff_End_Date := Lx_Contracts.CL_End_Date;
16041
16042 -- grace period starts
16043 IF G_GRACE_PROFILE_SET = 'Y' AND Lx_Contracts.CL_Date_Terminated IS NULL THEN
16044 -- grace period is considered only if line end date matches contract end date
16045
16046 G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
16047 G_CONTRACT_ID := Lx_Contracts.Contract_Id;
16048
16049 IF trunc(Ld_CVL_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
16050 Ld_CVL_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_CVL_Eff_End_Date);
16051 END IF;
16052
16053 END IF;
16054 -- grace period ends
16055 END IF;
16056 -- End of Code added for Bug#16754022
16057
16058 IF Lv_Validate_Eff = 'T' THEN
16059
16060 IF Lx_Contracts.SV_Date_Terminated < Lx_Contracts.Sv_End_Date THEN
16061 Ld_SRV_Eff_End_Date := Lx_Contracts.SV_Date_Terminated;
16062 ELSE
16063 Ld_SRV_Eff_End_Date := Lx_Contracts.Sv_End_Date;
16064
16065 -- grace period changes starts
16066
16067 IF G_GRACE_PROFILE_SET = 'Y' AND Lx_Contracts.SV_Date_Terminated IS NULL THEN
16068 -- grace period changes are done only if line end date matches contract end date
16069
16070 G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
16071 G_CONTRACT_ID := Lx_Contracts.Contract_Id;
16072
16073 IF trunc(Ld_SRV_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
16074 Ld_SRV_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_SRV_Eff_End_Date);
16075 END IF;
16076
16077 END IF;
16078
16079 -- grace period changes ends
16080 END IF;
16081
16082 IF Ld_Cov_TnDate < Ld_Cov_EdDate THEN
16083 Ld_COV_Eff_End_Date := Ld_Cov_TnDate;
16084 ELSE
16085 Ld_COV_Eff_End_Date := Ld_Cov_EdDate;
16086
16087 -- grace period changes starts
16088
16089 IF G_GRACE_PROFILE_SET = 'Y' AND Ld_COV_TnDate IS NULL THEN
16090 -- grace period changes are done only if line end date matches contract end date
16091
16092 G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
16093 G_CONTRACT_ID := Lx_Contracts.Contract_Id;
16094
16095 IF trunc(Ld_COV_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
16096 Ld_COV_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_COV_Eff_End_Date);
16097 END IF;
16098
16099 END IF;
16100
16101 -- grace period changes ends
16102 END IF;
16103
16104 /* Commented Code for Bug#16754022 */
16105 /*IF Lx_Contracts.CL_Date_Terminated < Lx_Contracts.CL_End_Date THEN
16106 Ld_CVL_Eff_End_Date := Lx_Contracts.CL_Date_Terminated-1; --modified for bugfix 14368049 by ansraj
16107 ELSE
16108 Ld_CVL_Eff_End_Date := Lx_Contracts.CL_End_Date;
16109
16110 -- grace period changes starts
16111
16112 IF G_GRACE_PROFILE_SET = 'Y' AND Lx_Contracts.CL_Date_Terminated IS NULL THEN
16113 -- grace period changes are done only if line end date matches contract end date
16114
16115 G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
16116 G_CONTRACT_ID := Lx_Contracts.Contract_Id;
16117
16118 IF trunc(Ld_CVL_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
16119 Ld_CVL_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_CVL_Eff_End_Date);
16120 END IF;
16121
16122 END IF;
16123
16124 -- grace period changes ends
16125 END IF;*/
16126 /* End of commented code for Bug#16754022 */
16127
16128 --
16129 -- Commented out for 12.0 ENT-TZ project (JVARGHES)
16130 --
16131 -- IF ((Ld_Request_Date BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16132 -- AND
16133 -- ((Ld_Request_Date BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16134 -- AND
16135 -- (Ld_Request_Date BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
16136 -- OR
16137 -- ((Ld_Request_Date_Start BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16138 -- AND
16139 -- ((Ld_Request_Date_Start BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16140 -- AND
16141 -- (Ld_Request_Date_Start BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
16142 -- OR
16143 -- ((Ld_Request_Date_End BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16144 -- AND
16145 -- ((Ld_Request_Date_End BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16146 -- AND
16147 -- (Ld_Request_Date_End BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
16148 -- THEN
16149 -- Lv_Effective_Falg := 'T';
16150 -- ELSE
16151 -- Lv_Effective_Falg := 'F';
16152 -- END IF;
16153 --
16154 --
16155 -- Added for 12.0 ENT-TZ project (JVARGHES)
16156 --
16157 IF ((Ld_Incident_Date BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16158 AND
16159 ((Ld_Incident_Date BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16160 AND
16161 (Ld_Incident_Date BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
16162 OR
16163 -- Added by Jvorugan for Bug:5174820
16164 -- Added by Jvorugan for Bug:5174820
16165 ((Ld_Request_Date_Start <= Lx_Contracts.SV_Start_Date AND Ld_Request_Date_End >= Ld_Srv_Eff_End_Date)
16166 AND
16167 ((Ld_Request_Date_Start <= Ld_Cov_StDate AND Ld_Request_Date_End >= Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16168 AND
16169 (Ld_Request_Date_Start <= Lx_Contracts.CL_Start_Date AND Ld_Request_Date_End >= Ld_CVL_Eff_End_Date))
16170
16171 -- End of changes by Jvorugan
16172 /* Commented by Jvorugan for Bug:5174820
16173 ((Ld_Request_Date_Start BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16174 AND
16175 ((Ld_Request_Date_Start BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16176 AND
16177 (Ld_Request_Date_Start BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
16178 OR
16179 ((Ld_Request_Date_End BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16180 AND
16181 ((Ld_Request_Date_End BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16182 AND
16183 (Ld_Request_Date_End BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date)) */
16184 THEN
16185 Lv_Effective_Falg := 'T';
16186 ELSE
16187 Lv_Effective_Falg := 'F';
16188 END IF;
16189 --
16190 ELSE
16191 Lv_Effective_Falg := 'T';
16192 END IF;
16193
16194 --added for bugfix 14596603 by ansraj
16195 IF (Ld_Incident_Date BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date)
16196 OR
16197 (Ld_Request_Date_Start <= Lx_Contracts.CL_Start_Date AND Ld_Request_Date_End >= Ld_CVL_Eff_End_Date)
16198 THEN
16199 Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Lx_Contracts.Service_Line_Id, 'ENTITLE');
16200 ELSE
16201 Lv_Entile_Flag := 'F';
16202 END IF;
16203 -- end of bugfix 14596603 by ansraj
16204
16205 -- Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Lx_Contracts.Service_Line_Id, 'ENTITLE'); --commented for bugfix 14596603 by ansraj
16206
16207 IF (Lv_Validate_Flag = 'T' AND Lv_Effective_Falg = 'T' AND Lv_Entile_Flag = 'T') OR (Lv_Validate_Flag <> 'T') THEN
16208
16209 OPEN Lx_Csr_SrvItem (Lx_Contracts.Service_Line_Id, Lx_Contracts.Inv_Organization_Id);
16210 FETCH Lx_Csr_SrvItem INTO Lv_Srv_Name, Lv_Srv_Description;
16211 CLOSE Lx_Csr_SrvItem;
16212
16213 -- commented because of bug 3248293. no more name and description swapping needed.
16214
16215 /*
16216 Get_Prof_Service_Name_And_Desc
16217 (P_Profile_Value => Lv_Prof_Value
16218 ,P_Db_Srv_Name => Lv_Srv_Name
16219 ,P_Db_Srv_Desc => Lv_Srv_Description
16220 ,X_Prof_Srv_Name => Lv_Prof_Srv_Name
16221 ,X_Prof_Srv_Desc => Lv_Prof_Srv_Desc
16222 ,X_Result => Lx_Result3
16223 ,X_Return_Status => Lx_Return_Status3);
16224
16225 IF Lx_Return_Status3 = G_RET_STS_UNEXP_ERROR THEN
16226 RAISE L_EXCEP_UNEXPECTED_ERR;
16227 END IF;
16228 */
16229
16230 Li_OutTab_Idx := Li_OutTab_Idx + 1;
16231
16232 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts.Contract_Id;
16233 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts.Contract_Number;
16234 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts.Contract_Number_Modifier;
16235 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts.Sts_code;
16236 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts.CL_Sts_code;
16237 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts.Service_Line_Id;
16238
16239 -- replaced because of bug 3248293
16240
16241 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lv_Srv_Name; --Lv_Prof_Srv_Name;
16242 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lv_Srv_Description; --Lv_Prof_Srv_Desc;
16243
16244 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts.SV_Start_Date;
16245 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts.SV_End_Date;
16246 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts.CL_Start_Date;
16247 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts.CL_End_Date;
16248 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_CovLine_Id;
16249 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lv_Cov_Name;
16250 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lv_Cov_Description;
16251 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts.Warranty_Flag;
16252 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lv_Entile_Flag;
16253 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts.cl_date_terminated; --Lx_Contracts.sv_date_terminated;
16254 Lx_Contracts_02(Li_OutTab_Idx).PM_Program_Id := Lx_Contracts.PM_Program_Id;
16255 Lx_Contracts_02(Li_OutTab_Idx).PM_Schedule_Exists := Lx_Contracts.PM_Schedule_Exists;
16256
16257 -- Added for 12.0 ENT-TZ project (JVARGHES)
16258 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts.CovLvl_Line_Id;
16259 --
16260
16261 --dbms_output.put_line('Value of Lv_Calc_RespTime_YN='||Lv_Calc_RespTime_YN);
16262 IF Lv_Calc_RespTime_YN = 'Y' THEN
16263 /*vgujarat - modified for access hour ER 9675504*/
16264 Get_ReactResol_By_DateTime
16265 (P_API_Version => 1.0
16266 ,P_Init_Msg_List => 'F'
16267 ,P_SVL_Id => Lx_Contracts.Service_Line_Id
16268 ,P_BusiProc_Id => Lx_BusiProc_Id
16269 ,P_Severity_Id => Lx_Severity_Id
16270 -- ,P_Request_Date => Ld_Request_Date
16271 ,P_Request_Date => Ld_Reported_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
16272 ,P_Request_TZone_Id => Lx_Request_TZone_Id
16273 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
16274 ,P_template_YN => 'N'
16275 ,P_Option => G_FIRST
16276 ,P_Rcn_Rsn_Flag => Lv_RCN_RSN_Flag
16277 ,P_Set_ExcepionStack => G_FALSE
16278 ,X_React_Durn => Lx_React_Durn
16279 ,X_React_UOM => Lx_React_UOM
16280 ,X_React_Day => Lv_React_Day
16281 ,X_React_By_DateTime => Ld_React_By_DateTime
16282 ,X_React_Start_DateTime => Ld_React_Start_DateTime
16283 ,X_Resolve_Durn => Lx_Resln_Durn
16284 ,X_Resolve_UOM => Lx_Resln_UOM
16285 ,X_Resolve_Day => Lv_Resln_Day
16286 ,X_Resolve_By_DateTime => Ld_Resln_By_DateTime
16287 ,X_Resolve_Start_DateTime => Ld_Resln_Start_DateTime
16288 ,X_Msg_count => Ln_Msg_Count
16289 ,X_Msg_Data => Lv_Msg_Data
16290 ,X_Result => Lx_Result1
16291 ,X_Return_Status => Lx_Return_Status1
16292 ,P_cust_id => Lx_cust_id --access hour
16293 ,P_cust_site_id => Lx_cust_site_id --access hour
16294 ,P_cust_loc_id => Lx_cust_loc_id); --access hour
16295
16296 IF Lx_Return_Status1 = G_RET_STS_UNEXP_ERROR THEN
16297 RAISE L_EXCEP_UNEXPECTED_ERR;
16298 END IF;
16299
16300 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Ld_React_By_DateTime;
16301
16302 -->> Included for backward compatibility of this API
16303 -- no more backward compatibility required for 11.5.10 onwards so resolution time will always be assigned
16304 -- resolution time
16305 /*
16306 IF Lb_RSN_CTXT_Exists THEN
16307 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Ld_Resln_By_DateTime;
16308 ELSE
16309 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Ld_React_By_DateTime;
16310 END IF;
16311 */
16312 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Ld_Resln_By_DateTime;
16313 --<< Included for backward compatibility of this API
16314
16315 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Return_Status1;
16316 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lv_Msg_Data;
16317
16318 --<<Following only applicable for Service Request API.
16319 ----That is the reason this code is placed in this IF statement
16320
16321 Get_Coverage_Type_Attribs
16322 (P_CVL_Id => Lx_CovLine_Id
16323 ,P_Set_ExcepionStack => G_FALSE
16324 ,X_Cov_Type_Code => Lx_Cov_Type_Code
16325 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
16326 ,X_Cov_Type_Description => Lx_Cov_Type_Description
16327 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
16328 ,X_Result => Lx_Result2
16329 ,X_Return_Status => Lx_Return_Status2);
16330
16331 IF Lx_Return_Status2 = G_RET_STS_UNEXP_ERROR THEN
16332 RAISE L_EXCEP_UNEXPECTED_ERR;
16333 END IF;
16334
16335 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Cov_Type_Code;
16336 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Cov_Type_Meaning;
16337 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
16338
16339 ----End for Service Request.>>
16340
16341 END IF;
16342
16343 -- addition for "getting coverage type and importance level even if calculate response time is not required" starts
16344
16345 IF (Lv_Calc_RespTime_YN = 'N') AND (Lv_Sort_Key = 'COVTYP_IMP') THEN --
16346
16347 Get_Coverage_Type_Attribs
16348 (P_CVL_Id => Lx_CovLine_Id
16349 ,P_Set_ExcepionStack => G_FALSE
16350 ,X_Cov_Type_Code => Lx_Cov_Type_Code
16351 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
16352 ,X_Cov_Type_Description => Lx_Cov_Type_Description
16353 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
16354 ,X_Result => Lx_Result2
16355 ,X_Return_Status => Lx_Return_Status2);
16356
16357 IF Lx_Return_Status2 = G_RET_STS_UNEXP_ERROR THEN
16358 RAISE L_EXCEP_UNEXPECTED_ERR;
16359 END IF;
16360
16361 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Cov_Type_Code;
16362 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Cov_Type_Meaning;
16363 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
16364 END IF;
16365
16366 -- addition for "getting coverage type and importance level even if calculate response time is not required" ends
16367
16368 Get_Service_PO
16369 (P_CHR_Id => Lx_Contracts.Contract_Id
16370 ,P_Set_ExcepionStack => G_FALSE
16371 ,X_Service_PO => Lx_Service_PO
16372 ,X_Service_PO_Required => Lx_Service_PO_Required
16373 ,X_Result => Lx_Result
16374 ,X_Return_Status => Lx_Return_Status);
16375
16376 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
16377 RAISE L_EXCEP_UNEXPECTED_ERR;
16378 END IF;
16379
16380 Lx_Contracts_02(Li_OutTab_Idx).service_PO_number := Lx_Service_PO;
16381 Lx_Contracts_02(Li_OutTab_Idx).service_PO_required_flag := Lx_Service_PO_Required;
16382
16383 END IF;
16384
16385 X_Contracts_02 := Lx_Contracts_02;
16386 X_Result := Lx_Result;
16387 X_Return_Status := Lx_Return_Status;
16388
16389 EXCEPTION
16390
16391 WHEN L_EXCEP_UNEXPECTED_ERR THEN
16392
16393 X_Return_Status := G_RET_STS_UNEXP_ERROR;
16394
16395 WHEN OTHERS THEN
16396
16397 OKC_API.SET_MESSAGE
16398 (P_App_Name => G_APP_NAME_OKC
16399 ,P_Msg_Name => G_UNEXPECTED_ERROR
16400 ,P_Token1 => G_SQLCODE_TOKEN
16401 ,P_Token1_Value => SQLCODE
16402 ,P_Token2 => G_SQLERRM_TOKEN
16403 ,P_Token2_Value => SQLERRM);
16404
16405 OKC_API.SET_MESSAGE
16406 (P_App_Name => G_APP_NAME_OKC
16407 ,P_Msg_Name => G_DEBUG_TOKEN
16408 ,P_Token1 => G_PACKAGE_TOKEN
16409 ,P_Token1_Value => G_PKG_NAME
16410 ,P_Token2 => G_PROGRAM_TOKEN
16411 ,P_Token2_Value => 'Get_Cont02Format_Validation');
16412
16413 X_Return_Status := G_RET_STS_UNEXP_ERROR;
16414
16415 END Get_Cont02Format_Validation;
16416
16417 PROCEDURE Get_cov_txn_groups
16418 (p_api_version IN Number
16419 ,p_init_msg_list IN Varchar2
16420 ,p_inp_rec_bp IN INP_REC_BP
16421 ,x_return_status OUT NOCOPY Varchar2
16422 ,x_msg_count OUT NOCOPY Number
16423 ,x_msg_data OUT NOCOPY Varchar2
16424 ,x_cov_txn_grp_lines OUT NOCOPY OUTPUT_TBL_BP)
16425 IS
16426
16427 --
16428 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16429 --
16430 -- CURSOR cur_bp (p_line_id in number,p_chk_def in varchar2,p_sr_enabled varchar2,p_dr_enabled varchar2,p_fs_enabled varchar2) is
16431 -- select lines2.id id,
16432 -- lines2.start_date start_date,
16433 -- lines2.end_date end_date,
16434 -- to_number(items.object1_id1) object1_id1 ,
16435 -- lines2.dnz_chr_id
16436 -- from okc_k_lines_v lines,
16437 -- okc_k_lines_v lines2,
16438 -- okc_k_items items,
16439 -- cs_business_processes bp
16440 -- where lines.cle_id = p_line_id
16441 -- and lines.id = lines2.cle_id
16442 -- and lines.lse_id in (2,15,20)
16443 -- and lines2.id = items.cle_id
16444 -- and lines2.lse_id in (3,16,21)
16445 -- and items.object1_id1 = bp.business_process_id
16446 -- and items.object1_id2 = '#'
16447 -- and items.jtot_object1_code = 'OKX_BUSIPROC'
16448 -- and bp.service_request_flag =
16449 -- decode(p_chk_def,'Y',
16450 -- decode(p_sr_enabled,null,bp.service_request_flag,p_sr_enabled),
16451 -- bp.service_request_flag)
16452 -- and bp.depot_repair_flag =
16453 -- decode(p_chk_def,'Y',
16454 -- decode(p_dr_enabled,null,bp.depot_repair_flag,p_dr_enabled),
16455 -- bp.depot_repair_flag)
16456 -- and bp.field_service_flag =
16457 -- decode(p_chk_def,'Y',
16458 -- decode(p_fs_enabled,null,bp.field_service_flag,p_fs_enabled),
16459 -- bp.field_service_flag);
16460 --
16461 --
16462 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16463 --
16464 --
16465 CURSOR cur_bp (p_line_id in number,p_chk_def in varchar2,p_sr_enabled varchar2
16466 ,p_dr_enabled IN varchar2,p_fs_enabled IN varchar2) is
16467 select lines2.id id,
16468 decode(ksl.Standard_Cov_YN, 'Y',lines.start_date,lines2.start_date) start_date,
16469 decode(ksl.Standard_Cov_YN, 'Y',lines.end_date,lines2.end_date) end_date,
16470 to_number(items.object1_id1) object1_id1,
16471 lines.dnz_chr_id,
16472 ksl.Standard_Cov_YN Standard_Cov_YN
16473 from okc_k_lines_b lines,
16474 oks_k_lines_b KSL,
16475 okc_k_lines_v lines2,
16476 okc_k_items items,
16477 cs_business_processes bp
16478 where lines.id = p_line_id
16479 and lines.lse_id in (1,14,19)
16480 and KSL.cle_id = lines.id
16481 and KSL.Coverage_Id = lines2.cle_Id
16482 and lines2.id = items.cle_id
16483 and lines2.lse_id in (3,16,21)
16484 and items.object1_id1 = bp.business_process_id
16485 and items.object1_id2 = '#'
16486 and items.jtot_object1_code = 'OKX_BUSIPROC'
16487 and bp.service_request_flag =
16488 decode(p_chk_def,'Y',
16489 decode(p_sr_enabled,null,bp.service_request_flag,p_sr_enabled),
16490 bp.service_request_flag)
16491 and bp.depot_repair_flag =
16492 decode(p_chk_def,'Y',
16493 decode(p_dr_enabled,null,bp.depot_repair_flag,p_dr_enabled),
16494 bp.depot_repair_flag)
16495 and bp.field_service_flag =
16496 decode(p_chk_def,'Y',
16497 decode(p_fs_enabled,null,bp.field_service_flag,p_fs_enabled),
16498 bp.field_service_flag);
16499
16500 --
16501 --
16502
16503 CURSOR cur_hdr (p_line_id in number) is
16504 select hdr.id id,
16505 hdr.start_date start_date,
16506 hdr.end_date end_date
16507 from OKC_K_HEADERS_ALL_B hdr, --,OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
16508 okc_k_lines_v lines
16509 where lines.chr_id = hdr.id
16510 and lines.dnz_chr_id = hdr.id
16511 and lines.id = p_line_id;
16512
16513 G_CONTRACT_END_DATE date;
16514 G_CONTRACT_ID number;
16515 G_GRACE_PROFILE_SET varchar2(1);
16516
16517 p_id number;
16518 p_bp_id number;
16519 i number;
16520
16521 HDR cur_hdr%rowtype;
16522
16523 Lx_Result Gx_Boolean;
16524 Lx_Return_Status Gx_Ret_Sts;
16525
16526 -- Added for 12.0 Coverage Rearch project (JVARGHES)
16527
16528 Lv_Std_Cov_YN VARCHAR2(10);
16529
16530 Ld_BPL_Start_Date DATE;
16531 Ln_BPL_OFS_Duration NUMBER;
16532 Lv_BPL_OFS_UOM VARCHAR2(100);
16533
16534 L_EXCEP_NO_DATA_FOUND EXCEPTION;
16535 --
16536
16537 BEGIN
16538
16539 G_GRACE_PROFILE_SET := NULL;
16540 i := 0;
16541 Lx_Result := G_TRUE;
16542 Lx_Return_Status := G_RET_STS_SUCCESS;
16543
16544 OKS_ENTITLEMENTS_PVT.G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
16545
16546 IF OKS_ENTITLEMENTS_PVT.G_GRACE_PROFILE_SET = 'Y' THEN
16547 FOR Hdr_rec in cur_hdr (p_inp_rec_bp.contract_line_id) LOOP
16548 HDR := Hdr_rec;
16549 END LOOP;
16550 END IF;
16551
16552 FOR l_bp_out in cur_bp(p_inp_rec_bp.contract_line_id,p_inp_rec_bp.check_bp_def,
16553 p_inp_rec_bp.sr_enabled,p_inp_rec_bp.dr_enabled,p_inp_rec_bp.fs_enabled) LOOP
16554
16555 --
16556 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16557 --
16558
16559 IF l_bp_out.Standard_Cov_YN = 'Y'
16560 THEN
16561
16562 Get_BP_Line_Start_Offset
16563 (P_BPL_Id => l_bp_out.Id
16564 ,P_SVL_Start => l_bp_out.Start_date
16565 ,X_BPL_OFS_Start => Ld_BPL_Start_date
16566 ,X_BPL_OFS_Duration => Ln_BPL_OFS_Duration
16567 ,X_BPL_OFS_UOM => Lv_BPL_OFS_UOM
16568 ,X_Return_Status => Lx_Return_Status);
16569
16570 IF Lx_Return_Status<> G_RET_STS_SUCCESS THEN
16571 RAISE L_EXCEP_NO_DATA_FOUND;
16572 END IF;
16573
16574 ELSE
16575
16576 Ld_BPL_Start_date := l_bp_out.Start_date;
16577
16578 END IF;
16579
16580 --
16581 --
16582
16583 i := i + 1;
16584 x_cov_txn_grp_lines(i).cov_txn_grp_line_id := l_bp_out.id;
16585 x_cov_txn_grp_lines(i).bp_id := l_bp_out.object1_id1;
16586
16587 -- x_cov_txn_grp_lines(i).start_date := l_bp_out.start_date; -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16588 x_cov_txn_grp_lines(i).start_date := Ld_BPL_Start_date; -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16589
16590
16591 IF OKS_ENTITLEMENTS_PVT.G_GRACE_PROFILE_SET = 'Y' THEN
16592 IF (trunc(HDR.end_date) = trunc(l_bp_out.end_date)) then
16593 x_cov_txn_grp_lines(i).end_date := OKS_ENTITLEMENTS_PVT.Get_Final_End_Date(l_bp_out.dnz_chr_id,
16594 l_bp_out.end_date);
16595 ELSE
16596 x_cov_txn_grp_lines(i).end_date := l_bp_out.end_date;
16597 END IF;
16598 ELSE
16599 x_cov_txn_grp_lines(i).end_date := l_bp_out.end_date;
16600 END IF;
16601
16602 END LOOP;
16603
16604 X_Return_Status := Lx_Return_Status;
16605
16606 EXCEPTION
16607
16608 WHEN OTHERS THEN
16609
16610
16611 OKC_API.SET_MESSAGE
16612 (P_App_Name => G_APP_NAME_OKC
16613 ,P_Msg_Name => G_UNEXPECTED_ERROR
16614 ,P_Token1 => G_SQLCODE_TOKEN
16615 ,P_Token1_Value => SQLCODE
16616 ,P_Token2 => G_SQLERRM_TOKEN
16617 ,P_Token2_Value => SQLERRM);
16618
16619 OKC_API.SET_MESSAGE
16620 (P_App_Name => G_APP_NAME_OKC
16621 ,P_Msg_Name => G_DEBUG_TOKEN
16622 ,P_Token1 => G_PACKAGE_TOKEN
16623 ,P_Token1_Value => G_PKG_NAME
16624 ,P_Token2 => G_PROGRAM_TOKEN
16625 ,P_Token2_Value => 'Get_cov_txn_groups');
16626
16627 X_Return_Status := G_RET_STS_UNEXP_ERROR;
16628
16629 END Get_cov_txn_groups;
16630
16631 PROCEDURE Get_txn_billing_types
16632 (p_api_version IN Number
16633 ,p_init_msg_list IN Varchar2
16634 ,p_cov_txngrp_line_id IN number
16635 ,p_return_bill_rates_YN IN Varchar2
16636 ,x_return_status OUT NOCOPY Varchar2
16637 ,x_msg_count OUT NOCOPY Number
16638 ,x_msg_data OUT NOCOPY Varchar2
16639 ,x_txn_bill_types OUT NOCOPY output_tbl_bt
16640 ,x_txn_bill_rates out nocopy output_tbl_br)
16641 IS
16642
16643
16644 cursor cur_bt (p_txn_grp_line_id in number) is
16645 select lines.id id,
16646 lines2.id bt_line_id,
16647 lines.start_date start_date,
16648 lines.end_date end_date ,
16649 items2.object1_id1 bt_object1_id1,
16650 items2.jtot_object1_code jtot_object1_code,
16651 okslines2.discount_amount, -- rul.rule_information2 rule_information2,
16652 okslines2.discount_percent -- rul.rule_information4 rule_information4
16653 from okc_k_lines_v lines,
16654 okc_k_lines_v lines2,
16655 okc_k_items items2,
16656 oks_k_lines_b okslines2
16657 -- okc_rule_groups_b rgp,
16658 -- okc_rules_b rul
16659 where lines.id = p_txn_grp_line_id
16660 and lines.lse_id in (3,16,21)
16661 and lines2.cle_id = lines.id
16662 and lines2.id = items2.cle_id
16663 and lines2.lse_id in (5,23,59)
16664 and items2.jtot_object1_code = 'OKX_BILLTYPE'
16665 and lines2.id = okslines2.cle_id;
16666
16667
16668 cursor cur_br (p_bill_type_id in number) is
16669 select oksbsch.BT_CLE_ID bt_line_id,
16670 oksbsch.CLE_ID br_line_id,
16671 oksbsch.ID br_schedule_id,
16672 oksbsch.BILL_RATE_CODE bill_rate,
16673 oksbsch.FLAT_RATE flat_rate,
16674 oksbsch.UOM uom,
16675 oksbsch.PERCENT_OVER_LIST_PRICE percent_over_list_price,
16676 oksbsch.START_HOUR start_hour,
16677 oksbsch.START_MINUTE start_minute,
16678 oksbsch.END_HOUR end_hour,
16679 oksbsch.END_MINUTE end_minute,
16680 oksbsch.MONDAY_FLAG monday_flag,
16681 oksbsch.TUESDAY_FLAG tuesday_flag,
16682 oksbsch.WEDNESDAY_FLAG wednesday_flag,
16683 oksbsch.THURSDAY_FLAG thursday_flag,
16684 oksbsch.FRIDAY_FLAG friday_flag,
16685 oksbsch.SATURDAY_FLAG saturday_flag,
16686 oksbsch.SUNDAY_FLAG sunday_flag,
16687 to_number(oksbsch.OBJECT1_ID2) labor_item_org_id,
16688 to_number(oksbsch.OBJECT1_ID1) labor_item_id,
16689 oksbsch.HOLIDAY_YN holiday_yn
16690 from okc_k_lines_v lines,
16691 okc_k_lines_v lines2,
16692 oks_billrate_schedules oksbsch
16693 -- okc_rule_groups_v rgp,
16694 -- okc_rules_b rules
16695 where lines.id = p_bill_type_id
16696 and lines.id = lines2.cle_id
16697 and lines2.id = oksbsch.cle_id;
16698
16699 G_CONTRACT_END_DATE date;
16700 G_CONTRACT_ID number;
16701
16702 p_id number;
16703 p_bp_id number;
16704
16705 i number;
16706 j number;
16707
16708 l_bp_object1_id1 number;
16709 l_bt_object1_id1 number;
16710
16711 Lx_Result Gx_Boolean;
16712 Lx_Return_Status Gx_Ret_Sts;
16713
16714
16715 begin
16716
16717 i := 0;
16718 j := 0;
16719 Lx_Result := G_TRUE;
16720 Lx_Return_Status := G_RET_STS_SUCCESS;
16721
16722 FOR bt_rec in cur_bt(p_cov_txngrp_line_id)
16723 LOOP
16724 i := i + 1;
16725 x_txn_bill_types(i).Txn_BT_line_id := Bt_rec.bt_line_id;
16726 x_txn_bill_types(i).txn_bill_type_id := Bt_rec.bt_object1_id1;
16727 x_txn_bill_types(i).Covered_upto_amount := Bt_rec.discount_amount; --Bt_rec.rule_information2;
16728 x_txn_bill_types(i).percent_covered := Bt_rec.discount_percent; --Bt_rec.rule_information4;
16729
16730 if p_return_bill_rates_YN = 'Y' then
16731
16732 FOR br_rec in cur_br(Bt_rec.bt_line_id)
16733 LOOP
16734
16735 j:= j + 1;
16736
16737 x_txn_bill_rates(j).BT_line_id := BR_rec.bt_line_id;
16738 x_txn_bill_rates(j).Br_line_id := BR_rec.br_line_id;
16739 x_txn_bill_rates(j).br_schedule_id := BR_rec.br_schedule_id;
16740 x_txn_bill_rates(j).bill_rate := BR_rec.bill_rate;
16741 x_txn_bill_rates(j).flat_rate := BR_rec.flat_rate;
16742 x_txn_bill_rates(j).uom := BR_rec.uom;
16743 x_txn_bill_rates(j).percent_over_list_price := BR_rec.percent_over_list_price;
16744 x_txn_bill_rates(j).start_hour := BR_rec.start_hour;
16745 x_txn_bill_rates(j).start_minute := BR_rec.start_minute;
16746 x_txn_bill_rates(j).end_hour := BR_rec.end_hour;
16747 x_txn_bill_rates(j).end_minute := BR_rec.end_minute;
16748 x_txn_bill_rates(j).monday_flag := BR_rec.monday_flag;
16749 x_txn_bill_rates(j).tuesday_flag := BR_rec.tuesday_flag;
16750 x_txn_bill_rates(j).wednesday_flag := BR_rec.wednesday_flag;
16751 x_txn_bill_rates(j).thursday_flag := BR_rec.thursday_flag;
16752 x_txn_bill_rates(j).friday_flag := BR_rec.friday_flag;
16753 x_txn_bill_rates(j).saturday_flag := BR_rec.saturday_flag;
16754 x_txn_bill_rates(j).sunday_flag := BR_rec.sunday_flag;
16755 x_txn_bill_rates(j).labor_item_org_id := BR_rec.labor_item_org_id;
16756 x_txn_bill_rates(j).labor_item_id := BR_rec.labor_item_id;
16757 x_txn_bill_rates(j).holiday_yn := BR_rec.holiday_yn ;
16758
16759 end loop;
16760 end if;
16761 end loop;
16762
16763 X_Return_Status := Lx_Return_Status;
16764
16765 EXCEPTION
16766 WHEN OTHERS THEN
16767 OKC_API.SET_MESSAGE
16768 (P_App_Name => G_APP_NAME_OKC
16769 ,P_Msg_Name => G_UNEXPECTED_ERROR
16770 ,P_Token1 => G_SQLCODE_TOKEN
16771 ,P_Token1_Value => SQLCODE
16772 ,P_Token2 => G_SQLERRM_TOKEN
16773 ,P_Token2_Value => SQLERRM);
16774
16775 OKC_API.SET_MESSAGE
16776 (P_App_Name => G_APP_NAME_OKC
16777 ,P_Msg_Name => G_DEBUG_TOKEN
16778 ,P_Token1 => G_PACKAGE_TOKEN
16779 ,P_Token1_Value => G_PKG_NAME
16780 ,P_Token2 => G_PROGRAM_TOKEN
16781 ,P_Token2_Value => 'Get_txn_billing_types');
16782
16783 -- X_Result := G_FALSE;
16784 X_Return_Status := G_RET_STS_UNEXP_ERROR;
16785
16786 END Get_txn_billing_types;
16787
16788 PROCEDURE Search_Contracts_01_Format
16789 (P_Contracts IN GT_Contract_Ref
16790 ,P_Contract_rec IN inp_cont_rec_type
16791 ,P_Request_Date IN DATE
16792 ,P_Contract_Id IN NUMBER
16793 ,P_Validate_Eff IN VARCHAR2
16794 ,P_Validate_Flag IN VARCHAR2
16795 ,P_SrvLine_Flag IN VARCHAR2
16796 ,P_Sort_Key IN VARCHAR2
16797 ,X_Contracts_02 out nocopy Output_Tbl_Contract
16798 ,X_Result out nocopy Gx_Boolean
16799 ,X_Return_Status out nocopy Gx_Ret_Sts)
16800 IS
16801
16802 CURSOR Lx_Csr_Contracts(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
16803 ,Cx_CovLvlLine_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
16804 ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
16805 ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
16806 ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
16807 Cx_HD_Sts_Code IN VARCHAR2) IS
16808 SELECT HD.Id Contract_Id
16809 ,HD.Contract_Number
16810 ,HD.Contract_Number_Modifier
16811 ,HD.Sts_Code
16812 ,HD.Authoring_Org_Id
16813 ,HD.Inv_Organization_Id
16814 ,HD.End_Date HDR_End_Date --grace period changes
16815 ,SV.Id Service_Line_Id
16816 ,SV.Start_Date SV_Start_Date
16817 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
16818 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
16819 ,CL.Sts_Code CL_Sts_Code
16820 ,CL.Id CovLvl_Line_Id
16821 ,CL.Start_Date CL_Start_Date
16822 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
16823 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
16824 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
16825 ,HD.Scs_Code Scs_Code
16826 ,HD.Estimated_Amount Estimated_Amount
16827 ,HD.Start_Date HD_Start_Date
16828 ,HD.End_Date HD_End_Date
16829 ,HD.Date_Terminated HD_Date_Terminated
16830 ,HDT.Cognomen Cognomen -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
16831 ,HDT.short_description short_description -- HD.short_description -- Modified for 12.0 MOAC project (JVARGHES)
16832 ,HD.currency_code HD_currency_code
16833 ,CAT.meaning HD_cat_meaning
16834 ,STS.meaning HD_sts_meaning
16835 FROM OKC_K_HEADERS_ALL_B HD -- Modified for 12.0 MOAC project (JVARGHES)
16836 ,OKC_K_HEADERS_TL HDT -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
16837 ,Okc_K_Lines_B SV
16838 ,Okc_K_Lines_B CL
16839 ,okc_subclasses_v CAT
16840 ,okc_statuses_v STS
16841 WHERE HD.Id = Cx_Chr_Id
16842 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
16843 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
16844 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
16845 AND HD.Sts_code = STS.code
16846 AND HD.Scs_code = CAT.code
16847 AND HD.Id > -1
16848 AND HD.Template_YN <> 'Y'
16849 AND (trunc(HD.Start_Date) between
16850 nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
16851 nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
16852 AND (trunc(HD.End_Date) between
16853 nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
16854 nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
16855 AND ((trunc(HD.Date_Terminated) IS NULL)OR
16856 ((trunc(HD.Date_Terminated) between
16857 nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
16858 nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
16859 AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
16860 AND SV.Dnz_Chr_Id = HD.Id
16861 AND SV.Cle_Id IS NULL
16862 AND SV.Chr_Id = HD.Id
16863 AND SV.Lse_ID IN (1,14,19)
16864 AND SV.Id = NVL(Cx_SrvLine_Id,SV.Id)
16865 AND CL.Cle_Id = SV.Id
16866 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
16867 AND CL.Id = NVL(Cx_CovLvlLine_Id, CL.Id)
16868 AND EXISTS (SELECT '*'
16869 FROM Okc_K_Party_Roles_B PR
16870 WHERE PR.Chr_Id = HD.Id
16871 AND PR.Cle_Id IS NULL
16872 AND PR.Dnz_Chr_Id = HD.Id
16873 AND PR.Object1_Id1 = Cv_Cont_Pty_Id
16874 AND PR.Object1_Id2 = '#'
16875 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
16876 AND PR.RLE_CODE <> 'VENDOR');
16877
16878 CURSOR Lx_Csr_Contracts_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
16879 ,Cx_CovLvlLine_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
16880 ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
16881 ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
16882 ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
16883 Cx_HD_Sts_Code IN VARCHAR2) IS
16884 SELECT HD.Id Contract_Id
16885 ,HD.Contract_Number
16886 ,HD.Contract_Number_Modifier
16887 ,HD.Sts_Code
16888 ,HD.Authoring_Org_Id
16889 ,HD.Inv_Organization_Id
16890 ,HD.End_Date HDR_End_Date --grace period changes
16891 ,SV.Id Service_Line_Id
16892 ,SV.Start_Date SV_Start_Date
16893 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
16894 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
16895 ,CL.Sts_Code CL_Sts_Code
16896 ,CL.Id CovLvl_Line_Id
16897 ,CL.Start_Date CL_Start_Date
16898 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
16899 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
16900 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
16901 ,HD.Scs_Code Scs_Code
16902 ,HD.Estimated_Amount Estimated_Amount
16903 ,HD.Start_Date HD_Start_Date
16904 ,HD.End_Date HD_End_Date
16905 ,HD.Date_Terminated HD_Date_Terminated
16906 ,HDT.Cognomen Cognomen -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
16907 ,HDT.short_description short_description -- HD.short_description -- Modified for 12.0 MOAC project (JVARGHES)
16908 ,HD.currency_code HD_currency_code
16909 ,CAT.meaning HD_cat_meaning
16910 ,STS.meaning HD_sts_meaning
16911 FROM OKC_K_HEADERS_ALL_B HD -- Modified for 12.0 MOAC project (JVARGHES)
16912 ,OKC_K_HEADERS_TL HDT -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
16913 ,Okc_K_Lines_B SV
16914 ,Okc_K_Lines_B CL
16915 ,okc_subclasses_v CAT
16916 ,okc_statuses_v STS
16917 WHERE HD.Id = Cx_Chr_Id
16918 AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION') ----Modified condition for ER9681794
16919 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
16920 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
16921 AND HD.Sts_code = STS.code
16922 AND HD.Scs_code = CAT.code
16923 AND HD.Id > -1
16924 AND HD.Template_YN <> 'Y'
16925 AND (trunc(HD.Start_Date) between
16926 nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
16927 nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
16928 AND (trunc(HD.End_Date) between
16929 nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
16930 nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
16931 AND ((trunc(HD.Date_Terminated) IS NULL)OR
16932 ((trunc(HD.Date_Terminated) between
16933 nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
16934 nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
16935 AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
16936 AND SV.Dnz_Chr_Id = HD.Id
16937 AND SV.Cle_Id IS NULL
16938 AND SV.Chr_Id = HD.Id
16939 AND SV.Lse_ID IN (1,14,19)
16940 AND SV.Id = NVL(Cx_SrvLine_Id,SV.Id)
16941 AND CL.Cle_Id = SV.Id
16942 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
16943 AND CL.Id = NVL(Cx_CovLvlLine_Id, CL.Id)
16944 AND EXISTS (SELECT '*'
16945 FROM Okc_K_Party_Roles_B PR
16946 WHERE PR.Chr_Id = HD.Id
16947 AND PR.Cle_Id IS NULL
16948 AND PR.Dnz_Chr_Id = HD.Id
16949 AND PR.Object1_Id1 = Cv_Cont_Pty_Id
16950 AND PR.Object1_Id2 = '#'
16951 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
16952 AND PR.RLE_CODE not in ('VENDOR','MERCHANT')); ----Modified condition for ER9681794
16953
16954
16955 CURSOR Lx_Csr_Contracts1(Cx_Chr_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
16956 ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
16957 ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
16958 ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
16959 Cx_HD_Sts_Code IN VARCHAR2) IS
16960
16961 SELECT HD.Id Contract_Id
16962 ,HD.Contract_Number
16963 ,HD.Contract_Number_Modifier
16964 ,HD.Sts_Code
16965 ,HD.End_Date HDR_End_Date --grace period changes
16966 ,HD.Scs_Code Scs_Code
16967 ,HD.Estimated_Amount Estimated_Amount
16968 ,HD.Start_Date HD_Start_Date
16969 ,HD.End_Date HD_End_Date
16970 ,HD.Date_Terminated HD_Date_Terminated
16971 ,HDT.Cognomen Cognomen -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
16972 ,HDT.short_description short_description -- HD.short_description -- Modified for 12.0 MOAC project (JVARGHES)
16973 ,HD.currency_code HD_currency_code
16974 ,CAT.meaning HD_cat_meaning
16975 ,STS.meaning HD_sts_meaning
16976 FROM OKC_K_HEADERS_ALL_B HD -- Modified for 12.0 MOAC project (JVARGHES)
16977 ,OKC_K_HEADERS_TL HDT -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
16978 ,okc_subclasses_v CAT
16979 ,okc_statuses_v STS
16980 WHERE HD.Id = Cx_Chr_Id -- Modified for Bug#13840327
16981 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
16982 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
16983 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
16984 AND HD.Sts_code = STS.code
16985 AND HD.Scs_code = CAT.code
16986 AND HD.Id > -1
16987 AND HD.Template_YN <> 'Y'
16988 AND (trunc(HD.Start_Date) between
16989 nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
16990 nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
16991 AND (trunc(HD.End_Date) between
16992 nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
16993 nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
16994 AND ((trunc(HD.Date_Terminated) IS NULL)OR
16995 ((trunc(HD.Date_Terminated) between
16996 nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
16997 nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
16998 AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
16999 AND EXISTS (SELECT '*'
17000 FROM Okc_K_Party_Roles_B PR
17001 WHERE PR.Chr_Id = HD.Id
17002 AND PR.Cle_Id IS NULL
17003 AND PR.Dnz_Chr_Id = HD.Id
17004 AND PR.Object1_Id1 = Cv_Cont_Pty_Id
17005 AND PR.Object1_Id2 = '#'
17006 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17007 AND PR.RLE_CODE <> 'VENDOR');
17008
17009 CURSOR Lx_Csr_Contracts1_sub(Cx_Chr_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
17010 ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
17011 ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
17012 ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
17013 Cx_HD_Sts_Code IN VARCHAR2) IS
17014
17015 SELECT HD.Id Contract_Id
17016 ,HD.Contract_Number
17017 ,HD.Contract_Number_Modifier
17018 ,HD.Sts_Code
17019 ,HD.End_Date HDR_End_Date --grace period changes
17020 ,HD.Scs_Code Scs_Code
17021 ,HD.Estimated_Amount Estimated_Amount
17022 ,HD.Start_Date HD_Start_Date
17023 ,HD.End_Date HD_End_Date
17024 ,HD.Date_Terminated HD_Date_Terminated
17025 ,HDT.Cognomen Cognomen -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
17026 ,HDT.short_description short_description -- HD.short_description -- Modified for 12.0 MOAC project (JVARGHES)
17027 ,HD.currency_code HD_currency_code
17028 ,CAT.meaning HD_cat_meaning
17029 ,STS.meaning HD_sts_meaning
17030 FROM OKC_K_HEADERS_ALL_B HD -- Modified for 12.0 MOAC project (JVARGHES)
17031 ,OKC_K_HEADERS_TL HDT -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
17032 ,okc_subclasses_v CAT
17033 ,okc_statuses_v STS
17034 WHERE HD.Id = nvl(Cx_Chr_Id,HD.Id)
17035 AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION') ------Modified condition for ER9681794
17036 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
17037 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
17038 AND HD.Sts_code = STS.code
17039 AND HD.Scs_code = CAT.code
17040 AND HD.Id > -1
17041 AND HD.Template_YN <> 'Y'
17042 AND (trunc(HD.Start_Date) between
17043 nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
17044 nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
17045 AND (trunc(HD.End_Date) between
17046 nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
17047 nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
17048 AND ((trunc(HD.Date_Terminated) IS NULL)OR
17049 ((trunc(HD.Date_Terminated) between
17050 nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
17051 nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
17052 AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
17053 AND EXISTS (SELECT '*'
17054 FROM Okc_K_Party_Roles_B PR
17055 WHERE PR.Chr_Id = HD.Id
17056 AND PR.Cle_Id IS NULL
17057 AND PR.Dnz_Chr_Id = HD.Id
17058 AND PR.Object1_Id1 = Cv_Cont_Pty_Id
17059 AND PR.Object1_Id2 = '#'
17060 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17061 AND PR.RLE_CODE not in ('VENDOR','MERCHANT')); ----Modified condition for ER9681794
17062
17063 /* Added for Bug#13840327*/
17064
17065 CURSOR Lx_Csr_Contracts1_OKS(Cv_Cont_Pty_Id IN VARCHAR2
17066 ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
17067 ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
17068 ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
17069 Cx_HD_Sts_Code IN VARCHAR2) IS
17070
17071 SELECT HD.Id Contract_Id
17072 ,HD.Contract_Number
17073 ,HD.Contract_Number_Modifier
17074 ,HD.Sts_Code
17075 ,HD.End_Date HDR_End_Date --grace period changes
17076 ,HD.Scs_Code Scs_Code
17077 ,HD.Estimated_Amount Estimated_Amount
17078 ,HD.Start_Date HD_Start_Date
17079 ,HD.End_Date HD_End_Date
17080 ,HD.Date_Terminated HD_Date_Terminated
17081 ,HDT.Cognomen Cognomen -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
17082 ,HDT.short_description short_description -- HD.short_description -- Modified for 12.0 MOAC project (JVARGHES)
17083 ,HD.currency_code HD_currency_code
17084 ,CAT.meaning HD_cat_meaning
17085 ,STS.meaning HD_sts_meaning
17086 FROM OKC_K_HEADERS_ALL_B HD -- Modified for 12.0 MOAC project (JVARGHES)
17087 ,OKC_K_HEADERS_TL HDT -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
17088 ,okc_subclasses_v CAT
17089 ,okc_statuses_v STS
17090 WHERE HD.Scs_Code IN ('SERVICE','WARRANTY')
17091 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
17092 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
17093 AND HD.Sts_code = STS.code
17094 AND HD.Scs_code = CAT.code
17095 AND HD.Id > -1
17096 AND HD.Template_YN <> 'Y'
17097 AND (trunc(HD.Start_Date) between
17098 nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
17099 nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
17100 AND (trunc(HD.End_Date) between
17101 nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
17102 nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
17103 AND ((trunc(HD.Date_Terminated) IS NULL)OR
17104 ((trunc(HD.Date_Terminated) between
17105 nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
17106 nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
17107 AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
17108 AND EXISTS (SELECT '*'
17109 FROM Okc_K_Party_Roles_B PR
17110 WHERE PR.Chr_Id = HD.Id
17111 AND PR.Cle_Id IS NULL
17112 AND PR.Dnz_Chr_Id = HD.Id
17113 AND PR.Object1_Id1 = Cv_Cont_Pty_Id
17114 AND PR.Object1_Id2 = '#'
17115 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17116 AND PR.RLE_CODE <> 'VENDOR' );
17117
17118 /*End of code Added for Bug#13840327*/
17119
17120 Lx_Contracts GT_Contract_Ref;
17121 Lx_Contract_rec inp_cont_rec_type;
17122 Ld_Request_Date CONSTANT DATE := nvl(P_Request_Date,sysdate);
17123 Lv_Contract_Id NUMBER ;
17124 Lv_Validate_Flag VARCHAR2(1);
17125 Lv_SrvLine_Flag CONSTANT VARCHAR2(1) := P_SrvLine_Flag;
17126 Lv_Sort_Key CONSTANT VARCHAR2(10):= P_Sort_Key;
17127
17128 Lv_Validate_Eff CONSTANT VARCHAR2(1) := P_Validate_Eff;
17129 Lv_Cont_Pty_Id VARCHAR2(100);
17130
17131 Lx_Contracts_02 Output_Tbl_Contract;
17132 Lx_Contracts_02_Out Output_Tbl_Contract;
17133 Lx_Contracts_02_Val Get_Contop_Tbl;
17134
17135 Lx_Idx_Rec Idx_Rec;
17136
17137 Lx_Result Gx_Boolean;
17138 Lx_Return_Status Gx_Ret_Sts;
17139 Lx_Result1 Gx_Boolean;
17140 Lx_Return_Status1 Gx_Ret_Sts;
17141 Lx_Result2 Gx_Boolean;
17142 Lx_Return_Status2 Gx_Ret_Sts;
17143 Lx_Result3 Gx_Boolean;
17144 Lx_Return_Status3 Gx_Ret_Sts;
17145
17146 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
17147 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
17148 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
17149 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
17150
17151 Li_TableIdx BINARY_INTEGER;
17152 Li_OutTab_Idx BINARY_INTEGER;
17153 Lv_Entile_Flag VARCHAR2(1);
17154 Lv_Effective_Falg VARCHAR2(1);
17155
17156 Lx_SrvLine_Id Gx_OKS_Id;
17157 Lx_CovLvlLine_Id Gx_OKS_Id;
17158
17159 Ld_SRV_Eff_End_Date DATE;
17160 Ld_COV_Eff_End_Date DATE;
17161 Ld_CVL_Eff_End_Date DATE;
17162
17163 Lv_Srv_Name Okx_System_Items_V.Name%TYPE; --VARCHAR2(150) ;
17164 Lv_Srv_Description Okx_System_Items_V.Description%TYPE; --VARCHAR2(1995);
17165 Lv_Prof_Srv_Name VARCHAR2(300) ;
17166 Lv_Prof_Srv_Desc VARCHAR2(300);
17167
17168 Lv_Cov_Name Okc_K_Lines_V.Name%TYPE; --VARCHAR2(150) ;
17169 Lv_Cov_Description Okc_K_Lines_V.Item_Description%TYPE; --VARCHAR2(1995);
17170
17171 Lx_React_Durn Gx_ReactDurn;
17172 Lx_React_UOM Gx_ReactUOM;
17173 Lv_React_Day VARCHAR2(20);
17174 Ld_React_By_DateTime DATE;
17175 Ld_React_Start_DateTime DATE;
17176
17177 Lx_Resln_Durn Gx_ReactDurn;
17178 Lx_Resln_UOM Gx_ReactUOM;
17179 Lv_Resln_Day VARCHAR2(20);
17180 Ld_Resln_By_DateTime DATE;
17181 Ld_Resln_Start_DateTime DATE;
17182
17183 Ln_Msg_Count NUMBER;
17184 Lv_Msg_Data VARCHAR2(2000);
17185
17186 Lv_RCN_RSN_Flag VARCHAR2(10);
17187 Lb_RSN_CTXT_Exists BOOLEAN;
17188
17189 Lx_CovLine_Id Gx_OKS_Id;
17190 Ld_Cov_StDate DATE;
17191 Ld_Cov_EdDate DATE;
17192 Ld_Cov_TnDate DATE;
17193 Lv_Cov_Check VARCHAR2(1);
17194
17195 Lx_Contract_Id NUMBER;
17196 Lx_Valid_K VARCHAR2(1);
17197
17198 Lv_Prof_Name CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
17199 Lv_Prof_Value VARCHAR2(300);
17200
17201 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
17202
17203 BEGIN
17204
17205 Lx_Contracts := P_Contracts;
17206 Lx_Contract_rec := P_Contract_rec;
17207 Lv_Contract_Id := P_Contract_Id;
17208 Lv_Validate_Flag := P_Validate_Flag;
17209 Lx_Result := G_TRUE;
17210 Lx_Return_Status := G_RET_STS_SUCCESS;
17211 Lx_Result1 := G_TRUE;
17212 Lx_Return_Status1 := G_RET_STS_SUCCESS;
17213 Lx_Result2 := G_TRUE;
17214 Lx_Return_Status2 := G_RET_STS_SUCCESS;
17215 Lx_Result3 := G_TRUE;
17216 Lx_Return_Status3 := G_RET_STS_SUCCESS;
17217 Li_OutTab_Idx := 0;
17218 Lx_Contract_Id := -99999;
17219 Lx_Valid_K := 'F';
17220
17221 IF Lx_Contracts.COUNT > 0 AND Lv_Validate_Flag = 'T' AND Lv_Validate_Eff = 'T' THEN
17222
17223 Li_TableIdx := Lx_Contracts.FIRST;
17224
17225 WHILE Li_TableIdx IS NOT NULL LOOP
17226
17227 IF Lv_SrvLine_Flag = 'T' THEN
17228
17229 Lx_SrvLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
17230 Lx_CovLvlLine_Id := NULL;
17231
17232 ELSE
17233
17234 Lx_SrvLine_Id := NULL;
17235 Lx_CovLvlLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
17236
17237 END IF;
17238
17239 Lv_Cont_Pty_Id := TO_CHAR(Lx_Contract_rec.Contract_Party_Id);
17240
17241 /*Added for ER9681794*/
17242 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' THEN
17243
17244 FOR Idx IN Lx_Csr_Contracts_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lv_Cont_Pty_Id
17245 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17246 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17247 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17248 Lx_Contract_rec.Contract_Status_Code) LOOP
17249
17250
17251 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
17252 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
17253 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
17254 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
17255 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
17256 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
17257 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
17258 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
17259 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
17260 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
17261 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
17262 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
17263 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
17264 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
17265 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
17266 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
17267 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
17268 Lx_Idx_Rec.HD_currency_code := Idx.HD_currency_code;
17269
17270
17271 IF (Lx_Contract_Id <> Lx_Idx_Rec.Contract_Id) OR (Lx_Valid_K = 'F') THEN
17272
17273 Get_Cont02Format_Validation
17274 (P_Contracts => Lx_Idx_Rec
17275 ,P_BusiProc_Id => NULL
17276 ,P_Severity_Id => NULL
17277 ,P_Request_TZone_Id => NULL
17278 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
17279 ,P_Incident_Date => ld_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
17280 ,P_Request_Date => Ld_Request_Date
17281 ,P_Request_Date_Start => NULL
17282 ,P_Request_Date_End => NULL
17283 ,P_Calc_RespTime_YN => NULL
17284 ,P_Validate_Eff => Lv_Validate_Eff
17285 ,P_Validate_Flag => Lv_Validate_Flag
17286 ,P_SrvLine_Flag => Lv_SrvLine_Flag
17287 ,P_Sort_Key => Lv_Sort_Key
17288 ,X_Contracts_02 => Lx_Contracts_02_Val
17289 ,X_Result => Lx_Result
17290 ,X_Return_Status => Lx_Return_Status);
17291
17292 END IF;
17293
17294 IF (Lx_Contract_Id <> Lx_Idx_Rec.Contract_Id) THEN
17295
17296 Lx_Contract_Id := Lx_Idx_Rec.Contract_Id;
17297 Lx_Valid_K := 'F';
17298
17299 END IF;
17300
17301 IF Lx_Contracts_02_Val.COUNT > 0 THEN
17302
17303 Lx_Valid_K := 'T';
17304
17305 Li_OutTab_Idx := Li_OutTab_Idx + 1;
17306
17307 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
17308 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
17309 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Lx_Contracts_02_Val(1).Sts_code;
17310 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
17311 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
17312 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
17313 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
17314 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
17315 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
17316 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
17317 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
17318 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
17319 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
17320
17321 Lx_Contracts_02_Val.DELETE;
17322
17323 END IF;
17324
17325 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
17326 RAISE L_EXCEP_UNEXPECTED_ERR;
17327 END IF;
17328
17329 END LOOP;
17330
17331 ELSE
17332 /*ADDED FOR ER9681794*/
17333
17334 FOR Idx IN Lx_Csr_Contracts(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lv_Cont_Pty_Id
17335 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17336 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17337 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17338 Lx_Contract_rec.Contract_Status_Code) LOOP
17339
17340
17341 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
17342 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
17343 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
17344 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
17345 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
17346 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
17347 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
17348 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
17349 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
17350 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
17351 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
17352 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
17353 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
17354 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
17355 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
17356 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
17357 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
17358 Lx_Idx_Rec.HD_currency_code := Idx.HD_currency_code;
17359
17360
17361 IF (Lx_Contract_Id <> Lx_Idx_Rec.Contract_Id) OR (Lx_Valid_K = 'F') THEN
17362
17363 Get_Cont02Format_Validation
17364 (P_Contracts => Lx_Idx_Rec
17365 ,P_BusiProc_Id => NULL
17366 ,P_Severity_Id => NULL
17367 ,P_Request_TZone_Id => NULL
17368 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
17369 ,P_Incident_Date => ld_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
17370 ,P_Request_Date => Ld_Request_Date
17371 ,P_Request_Date_Start => NULL
17372 ,P_Request_Date_End => NULL
17373 ,P_Calc_RespTime_YN => NULL
17374 ,P_Validate_Eff => Lv_Validate_Eff
17375 ,P_Validate_Flag => Lv_Validate_Flag
17376 ,P_SrvLine_Flag => Lv_SrvLine_Flag
17377 ,P_Sort_Key => Lv_Sort_Key
17378 ,X_Contracts_02 => Lx_Contracts_02_Val
17379 ,X_Result => Lx_Result
17380 ,X_Return_Status => Lx_Return_Status);
17381
17382 END IF;
17383
17384 IF (Lx_Contract_Id <> Lx_Idx_Rec.Contract_Id) THEN
17385
17386 Lx_Contract_Id := Lx_Idx_Rec.Contract_Id;
17387 Lx_Valid_K := 'F';
17388
17389 END IF;
17390
17391 IF Lx_Contracts_02_Val.COUNT > 0 THEN
17392
17393 Lx_Valid_K := 'T';
17394
17395 Li_OutTab_Idx := Li_OutTab_Idx + 1;
17396
17397 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
17398 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
17399 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Lx_Contracts_02_Val(1).Sts_code;
17400 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
17401 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
17402 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
17403 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
17404 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
17405 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
17406 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
17407 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
17408 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
17409 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
17410
17411 Lx_Contracts_02_Val.DELETE;
17412
17413 END IF;
17414
17415 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
17416 RAISE L_EXCEP_UNEXPECTED_ERR;
17417 END IF;
17418
17419 END LOOP;
17420
17421 END IF; ---ADDED FOR ER9681794
17422
17423 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
17424
17425 END LOOP;
17426
17427 ELSIF Lx_Contracts.COUNT > 0 AND Lv_Validate_Flag = 'F' AND Lv_Validate_Eff = 'F' THEN
17428
17429 Li_TableIdx := Lx_Contracts.FIRST;
17430
17431 WHILE Li_TableIdx IS NOT NULL LOOP
17432
17433 IF Lv_SrvLine_Flag = 'T' THEN
17434
17435 Lx_SrvLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
17436 Lx_CovLvlLine_Id := NULL;
17437
17438 ELSE
17439
17440 Lx_SrvLine_Id := NULL;
17441 Lx_CovLvlLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
17442
17443 END IF;
17444
17445 Lv_Cont_Pty_Id := TO_CHAR(Lx_Contract_rec.Contract_Party_Id);
17446
17447 /*ADDED FOR ER9681794*/
17448 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' THEN
17449
17450 IF Lx_Contracts(Li_TableIdx).Rx_Chr_Id IS NOT NULL THEN -- Added for Bug#13840327
17451
17452 FOR Idx IN Lx_Csr_Contracts1_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lv_Cont_Pty_Id
17453 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17454 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17455 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17456 Lx_Contract_rec.Contract_Status_Code) LOOP
17457
17458
17459 Li_OutTab_Idx := Li_OutTab_Idx + 1;
17460
17461 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
17462 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
17463 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Idx.Sts_code;
17464 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
17465 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
17466 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
17467 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
17468 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
17469 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
17470 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
17471 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
17472 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
17473 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
17474
17475
17476 END LOOP;
17477
17478 /* Added for Bug#13840327 */
17479 ELSE
17480 FOR Idx IN Lx_Csr_Contracts1_OKS (Lv_Cont_Pty_Id
17481 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17482 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17483 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17484 Lx_Contract_rec.Contract_Status_Code) LOOP
17485
17486 Li_OutTab_Idx := Li_OutTab_Idx + 1;
17487
17488 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
17489 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
17490 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Idx.Sts_code;
17491 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
17492 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
17493 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
17494 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
17495 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
17496 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
17497 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
17498 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
17499 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
17500 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
17501
17502 END LOOP;
17503 END IF;
17504 /* End of code Added for Bug#13840327 */
17505
17506 ELSE
17507
17508 IF Lx_Contracts(Li_TableIdx).Rx_Chr_Id IS NOT NULL THEN -- Added for Bug#13840327
17509 /*ADDED FOR ER9681794*/
17510 FOR Idx IN Lx_Csr_Contracts1(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lv_Cont_Pty_Id
17511 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17512 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17513 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17514 Lx_Contract_rec.Contract_Status_Code) LOOP
17515
17516
17517 Li_OutTab_Idx := Li_OutTab_Idx + 1;
17518
17519 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
17520 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
17521 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Idx.Sts_code;
17522 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
17523 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
17524 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
17525 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
17526 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
17527 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
17528 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
17529 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
17530 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
17531 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
17532
17533
17534 END LOOP;
17535
17536 /* Added for Bug#13840327 */
17537 ELSE
17538 FOR Idx IN Lx_Csr_Contracts1_OKS (Lv_Cont_Pty_Id
17539 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17540 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17541 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17542 Lx_Contract_rec.Contract_Status_Code) LOOP
17543
17544
17545 Li_OutTab_Idx := Li_OutTab_Idx + 1;
17546
17547 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
17548 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
17549 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Idx.Sts_code;
17550 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
17551 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
17552 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
17553 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
17554 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
17555 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
17556 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
17557 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
17558 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
17559 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
17560
17561 END LOOP;
17562 END IF;
17563 /* End of code Added for Bug#13840327 */
17564
17565 END IF; ---ADDED FOR ER9681794
17566
17567 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
17568
17569 END LOOP;
17570
17571 ELSIF Lx_Contracts.COUNT = 0 AND Lv_Validate_Flag = 'F' AND Lv_Validate_Eff = 'F' THEN
17572
17573 Lv_Cont_Pty_Id := TO_CHAR(Lx_Contract_rec.Contract_Party_Id);
17574
17575 /*ADDED FOR ER9681794*/
17576 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' THEN
17577
17578 FOR Idx IN Lx_Csr_Contracts1_sub(Lv_Contract_Id,Lv_Cont_Pty_Id
17579 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17580 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17581 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17582 Lx_Contract_rec.Contract_Status_Code) LOOP
17583
17584
17585
17586 Li_OutTab_Idx := Li_OutTab_Idx + 1;
17587
17588 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
17589 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
17590 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Idx.Sts_code;
17591 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
17592 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
17593 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
17594 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
17595 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
17596 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
17597 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
17598 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
17599 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
17600 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
17601
17602 END LOOP;
17603
17604 ELSE
17605
17606 IF Lv_Contract_Id IS NOT NULL THEN -- Added for Bug#13840327
17607
17608 /*ADDED FOR ER9681794*/
17609 FOR Idx IN Lx_Csr_Contracts1(Lv_Contract_Id,Lv_Cont_Pty_Id
17610 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17611 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17612 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17613 Lx_Contract_rec.Contract_Status_Code) LOOP
17614
17615
17616
17617 Li_OutTab_Idx := Li_OutTab_Idx + 1;
17618
17619 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
17620 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
17621 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Idx.Sts_code;
17622 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
17623 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
17624 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
17625 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
17626 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
17627 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
17628 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
17629 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
17630 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
17631 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
17632
17633 END LOOP;
17634 /* Added for Bug#13840327 */
17635 ELSE
17636 FOR Idx IN Lx_Csr_Contracts1_OKS (Lv_Cont_Pty_Id
17637 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17638 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17639 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17640 Lx_Contract_rec.Contract_Status_Code) LOOP
17641
17642
17643 Li_OutTab_Idx := Li_OutTab_Idx + 1;
17644
17645 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
17646 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
17647 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Idx.Sts_code;
17648 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
17649 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
17650 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
17651 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
17652 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
17653 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
17654 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
17655 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
17656 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
17657 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
17658
17659 END LOOP;
17660 END IF;
17661
17662 /* End of code Added for Bug#13840327 */
17663
17664 END IF; ---ADDED FOR ER9681794
17665
17666 END IF;
17667
17668 Lx_Contracts_02_Out := Lx_Contracts_02;
17669
17670 X_Contracts_02 := Lx_Contracts_02_Out;
17671 X_Result := Lx_Result;
17672 X_Return_Status := Lx_Return_Status;
17673
17674
17675
17676 EXCEPTION
17677
17678 WHEN L_EXCEP_UNEXPECTED_ERR THEN
17679
17680 X_Result := Lx_Result;
17681 X_Return_Status := Lx_Return_Status;
17682
17683 WHEN OTHERS THEN
17684
17685 OKC_API.SET_MESSAGE
17686 (P_App_Name => G_APP_NAME_OKC
17687 ,P_Msg_Name => G_UNEXPECTED_ERROR
17688 ,P_Token1 => G_SQLCODE_TOKEN
17689 ,P_Token1_Value => SQLCODE
17690 ,P_Token2 => G_SQLERRM_TOKEN
17691 ,P_Token2_Value => SQLERRM);
17692
17693 OKC_API.SET_MESSAGE
17694 (P_App_Name => G_APP_NAME_OKC
17695 ,P_Msg_Name => G_DEBUG_TOKEN
17696 ,P_Token1 => G_PACKAGE_TOKEN
17697 ,P_Token1_Value => G_PKG_NAME
17698 ,P_Token2 => G_PROGRAM_TOKEN
17699 ,P_Token2_Value => 'Search_Contracts_01_Format');
17700
17701 X_Result := G_FALSE;
17702 X_Return_Status := G_RET_STS_UNEXP_ERROR;
17703
17704 END Search_Contracts_01_Format;
17705
17706
17707 PROCEDURE Search_Contracts
17708 (p_api_version IN Number
17709 ,p_init_msg_list IN Varchar2
17710 ,p_contract_rec IN inp_cont_rec_type
17711 ,p_clvl_id_tbl IN covlvl_id_tbl
17712 ,x_return_status out nocopy Varchar2
17713 ,x_msg_count out nocopy Number
17714 ,x_msg_data out nocopy Varchar2
17715 ,x_contract_tbl out nocopy output_tbl_contract) IS
17716
17717
17718 Lx_Inp_Rec_02 CONSTANT inp_cont_rec_type := p_contract_rec;
17719 Lx_Inp_Tbl_03 covlvl_id_tbl;
17720 Lx_Return_Status Gx_Ret_Sts;
17721 Lx_Result Gx_Boolean;
17722 Lv_Request_date date;
17723
17724 Lx_Ent_Contracts output_tbl_contract;
17725 Lx_Contracts GT_Contract_Ref;
17726 Lx_Contracts_Temp GT_Contract_Ref;
17727 Lx_Contracts_Out GT_Contract_Ref;
17728 Lx_Contracts_02 GT_Contract_Ref;
17729 Lx_Contracts_Prev GT_Contract_Ref;
17730 Lx_Contracts_ContNum GT_Contract_Ref;
17731
17732 Lx_Contract_Id NUMBER;
17733
17734 Lv_SrvLine_Flag VARCHAR2(1);
17735
17736 Ln_Organization_Id NUMBER;
17737 Ln_Org_Id NUMBER;
17738 Ln_Chr_Id NUMBER;
17739
17740 Lx_Validate_Eff VARCHAR2(1);
17741 Lx_Validate_Flag VARCHAR2(1);
17742
17743 i NUMBER;
17744 j NUMBER;
17745 Lx_Chr_Id NUMBER;
17746
17747 Li_TableIdx BINARY_INTEGER;
17748
17749 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
17750
17751 BEGIN
17752
17753 Lx_Inp_Tbl_03 := p_clvl_id_tbl;
17754 Lx_Return_Status := G_RET_STS_SUCCESS;
17755 Lx_Result := G_TRUE;
17756 Lv_SrvLine_Flag := 'F';
17757 Lx_Validate_Eff := 'F';
17758 Lx_Validate_Flag := 'F';
17759 Lx_Chr_Id := -99999;
17760
17761 -- Bug# 4735542
17762 -- OKC_CONTEXT.set_okc_org_context(p_org_id => NULL,p_organization_id => NULL);
17763 -- Ln_Organization_Id := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
17764
17765 -- Modified for 12.0 MOAC project (JVARGHES)
17766 -- Ln_Org_Id := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
17767 --
17768 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
17769
17770 if Lx_Inp_Rec_02.request_date is null then
17771 Lv_request_date := sysdate;
17772 end if;
17773
17774 IF ((Lx_Inp_Rec_02.Contract_Number IS NOT NULL) --AND (Lx_Inp_Rec_02.Contract_Number_Modifier IS NOT NULL)
17775 ) THEN
17776
17777 Get_Contracts_Id
17778 (P_Contract_Num => Lx_Inp_Rec_02.Contract_Number
17779 ,P_Contract_Num_Modifier => Lx_Inp_Rec_02.Contract_Number_Modifier
17780 ,X_Contracts => Lx_Contracts_ContNum
17781 ,X_Result => Lx_Result
17782 ,X_Return_Status => Lx_Return_Status);
17783
17784 IF Lx_Result <> G_TRUE THEN
17785 RAISE L_EXCEP_UNEXPECTED_ERR;
17786 END IF;
17787
17788 IF Lx_Contracts_ContNum.COUNT > 0 THEN
17789 Lx_Contract_Id := Lx_Contracts_ContNum(1).Rx_Chr_Id;
17790 END IF;
17791
17792 END IF;
17793
17794 IF Lx_Inp_Tbl_03.COUNT > 0 THEN
17795
17796 FOR i in Lx_Inp_Tbl_03.FIRST..Lx_Inp_Tbl_03.LAST LOOP
17797
17798 IF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_CUSTPROD' THEN
17799
17800 Get_CovProd_Contracts
17801 (P_CovProd_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
17802 ,P_Organization_Id => Ln_Organization_Id
17803 ,P_Org_Id => Ln_Org_Id
17804 ,X_CovProd_Contracts => Lx_Contracts
17805 ,X_Result => Lx_Result
17806 ,X_Return_Status => Lx_Return_Status);
17807
17808 IF Lx_Result <> G_TRUE THEN
17809 RAISE L_EXCEP_UNEXPECTED_ERR;
17810 END IF;
17811
17812 ELSE
17813
17814 IF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_COVITEM' THEN
17815
17816 Get_CovItem_Contracts
17817 (P_CovItem_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
17818 ,P_Organization_Id => Ln_Organization_Id
17819 ,P_Party_Id => Lx_Inp_Rec_02.Contract_Party_Id --Lx_Inp_Rec.Party_Id
17820 ,X_CovItem_Contracts => Lx_Contracts
17821 ,X_Result => Lx_Result
17822 ,X_Return_Status => Lx_Return_Status);
17823
17824 IF Lx_Result <> G_TRUE THEN
17825 RAISE L_EXCEP_UNEXPECTED_ERR;
17826 END IF;
17827
17828 END IF;
17829
17830 IF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_COVSYST' THEN
17831
17832 Get_CovSys_Contracts
17833 (P_CovSys_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
17834 ,P_Org_Id => Ln_Org_Id
17835 ,X_CovSys_Contracts => Lx_Contracts_Temp
17836 ,X_Result => Lx_Result
17837 ,X_Return_Status => Lx_Return_Status);
17838
17839 IF Lx_Result <> G_TRUE THEN
17840 RAISE L_EXCEP_UNEXPECTED_ERR;
17841 END IF;
17842
17843 ELSIF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_CUSTACCT' THEN
17844
17845 Get_CovCust_Contracts
17846 (P_CovCust_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
17847 ,X_CovCust_Contracts => Lx_Contracts_Temp
17848 ,X_Result => Lx_Result
17849 ,X_Return_Status => Lx_Return_Status);
17850
17851 IF Lx_Result <> G_TRUE THEN
17852 RAISE L_EXCEP_UNEXPECTED_ERR;
17853 END IF;
17854
17855 ELSIF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_PARTYSITE' THEN
17856
17857 Get_CovSite_Contracts
17858 (P_CovSite_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
17859 ,P_Org_Id => Ln_Org_Id
17860 ,X_CovSite_Contracts => Lx_Contracts_Temp
17861 ,X_Result => Lx_Result
17862 ,X_Return_Status => Lx_Return_Status);
17863
17864 IF Lx_Result <> G_TRUE THEN
17865 RAISE L_EXCEP_UNEXPECTED_ERR;
17866 END IF;
17867
17868 ELSIF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_PARTY' THEN
17869
17870 Get_CovParty_Contracts
17871 (P_CovParty_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
17872 ,X_CovParty_Contracts => Lx_Contracts_Temp
17873 ,X_Result => Lx_Result
17874 ,X_Return_Status => Lx_Return_Status);
17875
17876 IF Lx_Result <> G_TRUE THEN
17877 RAISE L_EXCEP_UNEXPECTED_ERR;
17878 END IF;
17879
17880 END IF;
17881
17882 END IF;
17883
17884 Append_Contract_PlSql_Table
17885 (P_Input_Tab => Lx_Contracts_Temp
17886 ,P_Append_Tab => Lx_Contracts
17887 ,X_Output_Tab => Lx_Contracts_Out
17888 ,X_Result => Lx_Result
17889 ,X_Return_Status => Lx_Return_Status);
17890
17891 IF Lx_Result <> G_TRUE THEN
17892 RAISE L_EXCEP_UNEXPECTED_ERR;
17893 END IF;
17894
17895 Lx_Contracts_Temp.DELETE;
17896 Lx_Contracts.DELETE;
17897
17898 Lx_Contracts := Lx_Contracts_Out;
17899
17900 Lx_Contracts_Out.DELETE;
17901
17902 IF i = 1 THEN
17903 Lx_Contracts_Prev := Lx_Contracts;
17904 ELSE
17905
17906 Append_Contract_PlSql_Table
17907 (P_Input_Tab => Lx_Contracts_Prev
17908 ,P_Append_Tab => Lx_Contracts
17909 ,X_Output_Tab => Lx_Contracts_Out
17910 ,X_Result => Lx_Result
17911 ,X_Return_Status => Lx_Return_Status);
17912
17913 IF Lx_Result <> G_TRUE THEN
17914 RAISE L_EXCEP_UNEXPECTED_ERR;
17915 END IF;
17916
17917 Lx_Contracts_Prev.DELETE;
17918 Lx_Contracts_Prev := Lx_Contracts_Out;
17919
17920 END IF;
17921
17922 END LOOP;
17923
17924 Lx_Contracts_Out := Lx_Contracts_Prev;
17925 Lx_Contracts_Prev.DELETE;
17926
17927 Lx_Contracts.DELETE;
17928 Lx_Contracts := Lx_Contracts_Out;
17929 Lx_Contracts_Out.DELETE;
17930
17931 IF Lx_Contracts.COUNT > 1 THEN
17932 Sort_Asc_ContRef_PlSql_Table
17933 (P_Input_Tab => Lx_Contracts
17934 ,X_Output_Tab => Lx_Contracts_Out
17935 ,X_Result => Lx_Result
17936 ,X_Return_Status => Lx_Return_Status);
17937
17938 IF Lx_Result <> G_TRUE THEN
17939 RAISE L_EXCEP_UNEXPECTED_ERR;
17940 END IF;
17941 END IF;
17942
17943
17944 IF Lx_Contracts_Out.COUNT > 0 THEN
17945 FOR i in Lx_Contracts_Out.FIRST..Lx_Contracts_Out.LAST LOOP
17946 Lx_Contracts_Out(i).Rx_Pty_Id := Lx_Inp_Rec_02.Contract_Party_Id;
17947 END LOOP;
17948 END IF;
17949
17950
17951 IF Lx_Inp_Rec_02.Entitlement_Check_YN = 'Y' THEN
17952
17953 Lx_Validate_Eff := 'T';
17954 Lx_Validate_Flag := 'T';
17955
17956 ELSE
17957
17958 Lx_Validate_Eff := 'F';
17959 Lx_Validate_Flag := 'F';
17960
17961 IF Lx_Contracts_Out.COUNT > 0 THEN
17962
17963 i := Lx_Contracts_Out.First;
17964 j := 1;
17965
17966 WHILE i IS NOT NULL LOOP
17967
17968 IF Lx_Chr_Id <> Lx_Contracts_Out(i).Rx_Chr_Id THEN
17969
17970 Lx_Contracts_02(j) := Lx_Contracts_Out(i);
17971 Lx_Chr_Id := Lx_Contracts_Out(i).Rx_Chr_Id;
17972
17973 END IF;
17974
17975 i := Lx_Contracts_Out.Next(i);
17976 j := j+1;
17977
17978 END LOOP;
17979
17980 Lx_Contracts_Out.DELETE;
17981 Lx_Contracts_Out := Lx_Contracts_02;
17982 Lx_Contracts_02.DELETE;
17983
17984 END IF;
17985
17986 END IF;
17987
17988 IF Lx_Contracts_ContNum.COUNT > 0 THEN
17989
17990 Lx_Chr_Id := Lx_Contracts_ContNum(1).Rx_Chr_Id;
17991
17992 IF Lx_Contracts_Out.COUNT > 0 THEN
17993
17994 i := Lx_Contracts_Out.First;
17995 j := 1;
17996
17997 WHILE i IS NOT NULL LOOP
17998
17999 IF Lx_Chr_Id = Lx_Contracts_Out(i).Rx_Chr_Id THEN
18000
18001 Lx_Contracts_02(j) := Lx_Contracts_Out(i);
18002
18003 END IF;
18004
18005 i := Lx_Contracts_Out.Next(i);
18006 j := j+1;
18007
18008 END LOOP;
18009
18010 Lx_Contracts_Out.DELETE;
18011 Lx_Contracts_Out := Lx_Contracts_02;
18012 Lx_Contracts_02.DELETE;
18013
18014 END IF;
18015
18016 END IF;
18017
18018 ELSE --Lx_Inp_Tbl_03.COUNT = 0 case
18019
18020 Lx_Validate_Eff := 'F';
18021 Lx_Validate_Flag := 'F';
18022
18023 END IF; --Lx_Inp_Tbl_03.COUNT check ends
18024
18025
18026 IF ((Lx_Inp_Tbl_03.COUNT <> 0 and Lx_Contracts_Out.COUNT <> 0)
18027 OR
18028 (Lx_Inp_Tbl_03.COUNT = 0)) THEN
18029
18030
18031 Search_Contracts_01_Format
18032 (P_Contracts => Lx_Contracts_Out
18033 ,P_Contract_rec => Lx_Inp_Rec_02
18034 ,P_Request_Date => Lv_Request_Date --Lx_Inp_Rec_02.Request_Date
18035 ,P_Contract_Id => Lx_Contract_Id
18036 ,P_Validate_Eff => Lx_Validate_Eff
18037 ,P_Validate_Flag => Lx_Validate_Flag
18038 ,P_SrvLine_Flag => 'N'
18039 ,P_Sort_Key => NULL
18040 ,X_Contracts_02 => Lx_Ent_Contracts
18041 ,X_Result => Lx_Result
18042 ,X_Return_Status => Lx_Return_Status);
18043
18044 IF Lx_Result <> G_TRUE THEN
18045 RAISE L_EXCEP_UNEXPECTED_ERR;
18046 END IF;
18047
18048 X_Contract_tbl := Lx_Ent_Contracts;
18049 X_Return_Status := Lx_Return_Status;
18050
18051 ELSE
18052
18053 -- X_Contract_tbl := Lx_Ent_Contracts;
18054 X_Return_Status := Lx_Return_Status;
18055
18056 END IF;
18057
18058
18059 EXCEPTION
18060
18061 WHEN OTHERS THEN
18062
18063 OKC_API.SET_MESSAGE
18064 (P_App_Name => G_APP_NAME_OKC
18065 ,P_Msg_Name => G_UNEXPECTED_ERROR
18066 ,P_Token1 => G_SQLCODE_TOKEN
18067 ,P_Token1_Value => SQLCODE
18068 ,P_Token2 => G_SQLERRM_TOKEN
18069 ,P_Token2_Value => SQLERRM);
18070
18071 OKC_API.SET_MESSAGE
18072 (P_App_Name => G_APP_NAME_OKC
18073 ,P_Msg_Name => G_DEBUG_TOKEN
18074 ,P_Token1 => G_PACKAGE_TOKEN
18075 ,P_Token1_Value => G_PKG_NAME
18076 ,P_Token2 => G_PROGRAM_TOKEN
18077 ,P_Token2_Value => 'Search_Contracts');
18078
18079 -- X_Result := G_FALSE;
18080 X_Return_Status := G_RET_STS_UNEXP_ERROR;
18081
18082 END Search_Contracts;
18083
18084 PROCEDURE Get_Contracts_Expiration
18085 (p_api_version IN Number
18086 ,p_init_msg_list IN Varchar2
18087 ,p_contract_id IN Number
18088 ,x_return_status out nocopy Varchar2
18089 ,x_msg_count out nocopy Number
18090 ,x_msg_data out nocopy Varchar2
18091 ,x_contract_end_date out nocopy date
18092 ,x_Contract_Grace_Duration out nocopy number
18093 ,x_Contract_Grace_Period out nocopy VARCHAR2)
18094
18095 IS
18096
18097 CURSOR KHDR_Date IS
18098 select end_date
18099 from OKC_K_HEADERS_ALL_B -- OKC_K_HEADERS_B -- Modified for 12.0 MOAC project (JVARGHES)
18100 where id = p_contract_id;
18101
18102 Lx_CHR_Id CONSTANT Gx_OKS_Id := p_contract_id;
18103
18104 Lx_Result Gx_Boolean;
18105 Lx_Return_Status Gx_Ret_Sts;
18106
18107 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
18108
18109 G_GRACE_PROFILE_SET VARCHAR2(1);
18110
18111 BEGIN
18112
18113 Lx_Result := G_TRUE;
18114 Lx_Return_Status := G_RET_STS_SUCCESS;
18115
18116 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
18117
18118 for KHDR_Date_rec in KHDR_Date loop
18119
18120 x_contract_end_date := KHDR_Date_rec.end_date;
18121
18122 end loop;
18123
18124 IF (G_GRACE_PROFILE_SET = 'Y') THEN
18125
18126 Get_Contract_Grace
18127 (P_Contract_Id => p_contract_id
18128 ,P_Set_ExcepionStack => G_FALSE
18129 ,x_grace_period => x_Contract_Grace_Period
18130 ,x_grace_duration => x_Contract_Grace_Duration
18131 ,X_Result => Lx_Result
18132 ,X_Return_Status => Lx_Return_Status);
18133
18134 IF Lx_Result <> G_TRUE THEN
18135 RAISE L_EXCEP_UNEXPECTED_ERR;
18136 END IF;
18137
18138 END IF;
18139
18140 EXCEPTION
18141
18142 WHEN OTHERS THEN
18143
18144 OKC_API.SET_MESSAGE
18145 (P_App_Name => G_APP_NAME_OKC
18146 ,P_Msg_Name => G_UNEXPECTED_ERROR
18147 ,P_Token1 => G_SQLCODE_TOKEN
18148 ,P_Token1_Value => SQLCODE
18149 ,P_Token2 => G_SQLERRM_TOKEN
18150 ,P_Token2_Value => SQLERRM);
18151
18152 OKC_API.SET_MESSAGE
18153 (P_App_Name => G_APP_NAME_OKC
18154 ,P_Msg_Name => G_DEBUG_TOKEN
18155 ,P_Token1 => G_PACKAGE_TOKEN
18156 ,P_Token1_Value => G_PKG_NAME
18157 ,P_Token2 => G_PROGRAM_TOKEN
18158 ,P_Token2_Value => 'Get_Contracts_Expiration');
18159
18160 -- X_Result := G_FALSE;
18161 X_Return_Status := G_RET_STS_UNEXP_ERROR;
18162
18163 END Get_Contracts_Expiration;
18164
18165 PROCEDURE Get_Service_PO
18166 (P_CHR_Id IN Gx_OKS_Id
18167 ,P_Set_ExcepionStack IN Gx_Boolean
18168 ,X_Service_PO out nocopy VARCHAR2
18169 ,X_Service_PO_required out nocopy VARCHAR2
18170 ,X_Result out nocopy Gx_Boolean
18171 ,X_Return_Status out nocopy Gx_Ret_Sts)
18172 IS
18173
18174
18175
18176 CURSOR Lx_Csr_SvcPO(Cx_CHR_Id IN Gx_OKS_Id) IS
18177 SELECT service_po_number,service_po_required
18178 FROM OKS_K_Headers_B CHR
18179 WHERE CHR.chr_Id = Cx_CHR_Id;
18180
18181 Lx_CHR_Id CONSTANT Gx_OKS_Id := P_CHR_Id;
18182 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
18183
18184 Lx_Service_PO Oks_K_headers_b.service_po_number%TYPE;
18185 Lx_Service_PO_Required Oks_K_headers_b.service_po_required%TYPE;
18186
18187
18188 Lx_Result Gx_Boolean;
18189 Lx_Return_Status Gx_Ret_Sts;
18190
18191 L_EXCEP_NO_DATA_FOUND EXCEPTION;
18192
18193 BEGIN
18194
18195 Lx_Result := G_TRUE;
18196 Lx_Return_Status := G_RET_STS_SUCCESS;
18197
18198 OPEN Lx_Csr_SvcPO(Lx_CHR_Id);
18199 FETCH Lx_Csr_SvcPO INTO Lx_Service_PO,Lx_Service_PO_Required;
18200
18201 IF Lx_Csr_SvcPO%NOTFOUND THEN
18202
18203 CLOSE Lx_Csr_SvcPO;
18204 RAISE L_EXCEP_NO_DATA_FOUND;
18205
18206 END IF;
18207
18208 CLOSE Lx_Csr_SvcPO;
18209
18210 X_Service_PO := Lx_Service_PO;
18211 X_Service_PO_Required := Lx_Service_PO_Required;
18212
18213 X_Result := Lx_Result;
18214 X_Return_Status := Lx_Return_Status;
18215
18216 EXCEPTION
18217
18218 WHEN L_EXCEP_NO_DATA_FOUND THEN
18219
18220 Lx_Result := G_FALSE;
18221
18222 IF Lx_Set_ExcepionStack = G_TRUE THEN
18223
18224 OKC_API.SET_MESSAGE
18225 (p_app_name => G_APP_NAME_OKC
18226 ,p_msg_name => G_INVALID_VALUE
18227 ,p_token1 => G_COL_NAME_TOKEN
18228 ,p_token1_value => 'Service PO');
18229
18230 Lx_Return_Status := G_RET_STS_ERROR;
18231
18232 END IF;
18233
18234 X_Result := Lx_Result;
18235 X_Return_Status := Lx_Return_Status;
18236
18237 WHEN OTHERS THEN
18238
18239 IF Lx_Csr_SvcPO%ISOPEN THEN
18240 CLOSE Lx_Csr_SvcPO;
18241 END IF;
18242
18243 OKC_API.SET_MESSAGE
18244 (P_App_Name => G_APP_NAME_OKC
18245 ,P_Msg_Name => G_UNEXPECTED_ERROR
18246 ,P_Token1 => G_SQLCODE_TOKEN
18247 ,P_Token1_Value => SQLCODE
18248 ,P_Token2 => G_SQLERRM_TOKEN
18249 ,P_Token2_Value => SQLERRM);
18250
18251 OKC_API.SET_MESSAGE
18252 (P_App_Name => G_APP_NAME_OKC
18253 ,P_Msg_Name => G_DEBUG_TOKEN
18254 ,P_Token1 => G_PACKAGE_TOKEN
18255 ,P_Token1_Value => G_PKG_NAME
18256 ,P_Token2 => G_PROGRAM_TOKEN
18257 ,P_Token2_Value => 'Get_Service_PO');
18258
18259 X_Result := G_FALSE;
18260 X_Return_Status := G_RET_STS_UNEXP_ERROR;
18261
18262 END Get_Service_PO;
18263
18264 PROCEDURE Get_Contract_Grace
18265 (P_Contract_Id IN number
18266 ,P_Set_ExcepionStack IN Gx_Boolean
18267 ,x_grace_period OUT NOCOPY varchar2
18268 ,x_grace_duration OUT NOCOPY number
18269 ,X_Result out nocopy Gx_Boolean
18270 ,X_Return_Status out nocopy Gx_Ret_Sts)
18271 IS
18272
18273 CURSOR Lx_Csr_HDR_Grace(Cx_HDR_Id IN Gx_OKS_Id) IS
18274 SELECT Grace_Duration Duration
18275 ,Grace_Period TimeUnit
18276 FROM Oks_K_Headers_B OKH
18277 WHERE OKH.chr_Id = Cx_HDR_Id;
18278
18279 Lx_CHR_Id CONSTANT Gx_OKS_Id := P_Contract_id;
18280 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
18281
18282 -- Lx_Service_PO Okc_Rules_B.Rule_Information1%TYPE;
18283
18284 Lx_Result Gx_Boolean;
18285 Lx_Return_Status Gx_Ret_Sts;
18286
18287 L_EXCEP_NO_DATA_FOUND EXCEPTION;
18288
18289 BEGIN
18290
18291 Lx_Result := G_TRUE;
18292 Lx_Return_Status := G_RET_STS_SUCCESS;
18293
18294 -- IF G_GRACE_PROFILE_SET = 'Y' then
18295 FOR Idx in Lx_Csr_HDR_Grace(Lx_CHR_Id) LOOP
18296
18297 x_grace_period := Idx.TimeUnit;
18298 x_grace_duration := Idx.Duration;
18299
18300 END LOOP;
18301 -- END IF;
18302
18303 X_Result := Lx_Result;
18304 X_Return_Status := Lx_Return_Status;
18305
18306 EXCEPTION
18307
18308 WHEN OTHERS THEN
18309
18310
18311 OKC_API.SET_MESSAGE
18312 (P_App_Name => G_APP_NAME_OKC
18313 ,P_Msg_Name => G_UNEXPECTED_ERROR
18314 ,P_Token1 => G_SQLCODE_TOKEN
18315 ,P_Token1_Value => SQLCODE
18316 ,P_Token2 => G_SQLERRM_TOKEN
18317 ,P_Token2_Value => SQLERRM);
18318
18319 OKC_API.SET_MESSAGE
18320 (P_App_Name => G_APP_NAME_OKC
18321 ,P_Msg_Name => G_DEBUG_TOKEN
18322 ,P_Token1 => G_PACKAGE_TOKEN
18323 ,P_Token1_Value => G_PKG_NAME
18324 ,P_Token2 => G_PROGRAM_TOKEN
18325 ,P_Token2_Value => 'Get_Contract_Grace');
18326
18327 X_Result := G_FALSE;
18328 X_Return_Status := G_RET_STS_UNEXP_ERROR;
18329
18330
18331 END Get_Contract_Grace;
18332
18333 --================================================================
18334
18335 PROCEDURE VALIDATE_CONTRACT_LINE
18336 (p_api_version IN NUMBER
18337 ,p_init_msg_list IN VARCHAR2
18338 ,p_contract_line_id IN NUMBER
18339 ,p_busiproc_id IN NUMBER
18340 ,p_request_date IN DATE
18341 ,p_covlevel_tbl_in IN covlevel_tbl_type
18342 ,p_verify_combination IN VARCHAR2
18343 ,x_return_status OUT nocopy Varchar2
18344 ,x_msg_count OUT nocopy Number
18345 ,x_msg_data OUT nocopy Varchar2
18346 ,x_covlevel_tbl_out OUT NOCOPY covlevel_tbl_type
18347 ,x_combination_valid OUT NOCOPY VARCHAR2)
18348
18349
18350
18351 IS
18352
18353 Lx_Result VARCHAR2(1);
18354 x_result VARCHAR2(1);
18355 Lx_Return_Status VARCHAR2(1);
18356
18357 L_EXCEP_NULL_VALUE EXCEPTION;
18358 EXCEPTION_HALT_VALIDATION EXCEPTION;
18359 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
18360 Lx_Set_ExcepionStack VARCHAR2(1);
18361
18362 l_busiproc_id VARCHAR2(30);
18363 l_request_date DATE;
18364 l_contract_line_id NUMBER;
18365 l_busiproc_match VARCHAR2(1);
18366 j NUMBER ;
18367
18368 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
18369 Lx_Product_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18370 Lx_Item_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18371 Lx_System_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18372 Lx_Cust_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18373 Lx_Site_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18374 Lx_Party_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18375 l_jtot_object1_code VARCHAR2(30);
18376
18377 prod_index NUMBER;
18378 system_index NUMBER;
18379 l_check_system VARCHAR2(1);
18380 l_check_custprod VARCHAR2(1);
18381 partysite_index NUMBER;
18382 l_check_site VARCHAR2(1);
18383 l_check_party VARCHAR2(1);
18384 party_index NUMBER;
18385 l_org_id NUMBER;
18386 l_inv_org_id NUMBER;
18387
18388 Ln_Organization_Id NUMBER;
18389 Ln_Org_Id NUMBER;
18390 item_index NUMBER;
18391 l_check_item VARCHAR2(1);
18392 l_check_cust VARCHAR2(1);
18393 custacct_index NUMBER;
18394 k NUMBER;
18395
18396 CURSOR CUR_GET_ORG_ID(l_contract_line_id IN NUMBER) IS
18397 SELECT hdr.AUTHORING_ORG_ID, hdr.INV_ORGANIZATION_ID
18398 FROM OKC_K_HEADERS_ALL_B hdr, OKC_K_LINES_B lines
18399 WHERE lines.id = l_contract_line_id
18400 AND lines.chr_id = hdr.id ;
18401
18402
18403 FUNCTION VALIDATE_BUSINESS_PROCESS(P_CONTRACT_LINE_ID IN NUMBER
18404 ,P_BUSIPROC_ID IN VARCHAR2
18405 ,P_EFFECTIVE_DATE IN DATE) RETURN VARCHAR2 IS
18406
18407
18408 -- Commented out by JVARGHES on Apr 12, 2005
18409 -- For the fix of bug# 4282785
18410 /*
18411 CURSOR CUR_GET_BP(p_contract_line_id IN NUMBER, p_effective_date IN DATE) IS
18412 SELECT lines1.chr_id chr_id,
18413 lines2.id bp_line_id,
18414 lines2.start_date start_date,
18415 lines2.end_date end_date,
18416 items.object1_id1
18417 FROM OKC_K_LINES_B lines1,
18418 OKC_K_LINES_B lines2,
18419 OKC_K_LINES_B lines3,
18420 OKC_K_ITEMS items
18421 WHERE lines1.id = p_contract_line_id
18422 AND lines2.cle_id = lines1.id
18423 AND lines2.lse_id IN (2,15,20)
18424 AND lines3.cle_id = lines2.id
18425 AND lines3.lse_id IN (3,16,21)
18426 AND items.cle_id = lines3.id
18427 AND items.dnz_chr_id = lines3.dnz_chr_id
18428 AND items.jtot_object1_code = 'OKX_BUSIPROC'
18429 AND items.object1_id1 = p_busiproc_id
18430 and items.object1_id2 = '#' -- new where clause added to address performance bug 3755019
18431 AND trunc(p_effective_date) BETWEEN NVL(lines3.start_date, trunc(sysdate))
18432 AND NVL(lines3.end_date, trunc(sysdate)) ;
18433 */
18434
18435 -- Modified by JVARGHES on Apr 12, 2005
18436 -- For the fix of bug# 4282785
18437
18438 --
18439 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
18440 --
18441
18442 CURSOR CUR_GET_BP(p_contract_line_id IN NUMBER) IS
18443 SELECT /*+ ordered use_nl(lines1,KSL,lines3,items) index(items okc_k_items_n1) */ -- Bug Fix:5694209
18444 decode(KSL.Standard_Cov_YN,'Y', lines1.start_date,lines3.start_date) start_date
18445 ,decode(KSL.Standard_Cov_YN,'Y', lines1.end_date,lines3.end_date) end_date
18446 , lines3.id bpl_id
18447 , ksl.Standard_Cov_YN Standard_Cov_YN
18448 FROM OKC_K_LINES_B lines1,
18449 OKS_K_LINES_B KSL,
18450 OKC_K_LINES_B lines3,
18451 OKC_K_ITEMS items
18452 WHERE lines1.id = p_contract_line_id
18453 AND lines1.lse_id IN (1,14,19)
18454 and ksl.cle_id = lines1.id
18455 AND lines3.cle_id = KSL.Coverage_Id
18456 AND lines3.lse_id IN (3,16,21)
18457 AND items.cle_id = lines3.id
18458 AND items.dnz_chr_id = lines3.dnz_chr_id
18459 AND items.jtot_object1_code = 'OKX_BUSIPROC'
18460 AND items.object1_id1 = p_busiproc_id
18461 and items.object1_id2 = '#' -- new where clause added to address performance bug 3755019
18462 AND ROWNUM <= 1;
18463
18464 --
18465
18466 l_busiproc_id VARCHAR2(30);
18467 l_effective_date DATE;
18468 l_contract_line_id NUMBER;
18469 x_busiproc_match VARCHAR2(1);
18470
18471
18472 --
18473 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
18474 --
18475
18476 Ld_BPL_Start DATE;
18477 Ln_BPL_OFS_Duration NUMBER;
18478 Lv_BPL_OFS_UOM VARCHAR2(100);
18479
18480 Lx_Return_Status VARCHAR2(10);
18481
18482 L_EXCEP_NO_DATA_FOUND EXCEPTION;
18483 --
18484 --
18485
18486 BEGIN
18487
18488 x_busiproc_match := 'N';
18489
18490 l_busiproc_id := P_BUSIPROC_ID ;
18491 l_effective_date := P_EFFECTIVE_DATE ;
18492 l_contract_line_id := P_CONTRACT_LINE_ID ;
18493
18494
18495 -- Comented out by JVARGHES on Apr 12, 2005
18496 -- For the fix of bug# 4282785
18497
18498 /*
18499 FOR bp_rec IN CUR_GET_BP(l_contract_line_id, l_effective_date)
18500 LOOP
18501 x_busiproc_match := 'Y' ;
18502 END LOOP ;
18503 */
18504
18505 -- Modified by JVARGHES on Apr 12, 2005
18506 -- For the fix of bug# 4282785
18507
18508 --
18509 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
18510 --
18511 -- OPEN CUR_GET_BP(p_contract_line_id => l_contract_line_id, p_effective_date => l_effective_date);
18512 -- FETCH CUR_GET_BP INTO x_busiproc_match;
18513 --
18514 -- IF CUR_GET_BP%FOUND THEN
18515 -- x_busiproc_match := 'Y';
18516 -- ELSE
18517 -- x_busiproc_match := 'N';
18518 -- END IF;
18519 --
18520 -- CLOSE CUR_GET_BP;
18521 --
18522 --
18523 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
18524 --
18525
18526 x_busiproc_match := 'N';
18527
18528 FOR bp_rec IN CUR_GET_BP(p_contract_line_id => l_contract_line_id)
18529 LOOP
18530
18531 IF bp_rec.Standard_Cov_YN = 'Y' THEN
18532
18533 Get_BP_Line_Start_Offset
18534 (P_BPL_Id => bp_rec.BPL_Id
18535 ,P_SVL_Start => bp_rec.start_date
18536 ,X_BPL_OFS_Start => Ld_BPL_Start
18537 ,X_BPL_OFS_Duration => Ln_BPL_OFS_Duration
18538 ,X_BPL_OFS_UOM => Lv_BPL_OFS_UOM
18539 ,X_Return_Status => Lx_Return_Status);
18540
18541 IF Lx_Return_Status<> G_RET_STS_SUCCESS THEN
18542 RAISE L_EXCEP_NO_DATA_FOUND;
18543 END IF;
18544
18545 ELSE
18546
18547 Ld_BPL_Start := bp_rec.start_date;
18548
18549 END IF;
18550
18551 IF l_effective_date between NVL(Ld_BPL_Start,trunc(sysdate))
18552 AND NVL(bp_rec.end_date, trunc(sysdate)) THEN
18553 x_busiproc_match := 'Y';
18554 EXIT;
18555
18556 END IF;
18557
18558 END LOOP;
18559
18560 --
18561 --
18562 RETURN x_busiproc_match ;
18563
18564 END VALIDATE_BUSINESS_PROCESS;
18565
18566
18567 FUNCTION VALIDATE_COVLEVELS(p_contract_line_id IN NUMBER,
18568 p_object1_id1 IN VARCHAR2,
18569 p_object1_id2 IN VARCHAR2,
18570 p_object_code IN VARCHAR2)
18571 RETURN VARCHAR2 IS
18572
18573 CURSOR CUR_GET_COVLEVELS(l_contract_line_id IN NUMBER, l_object1_id1 IN VARCHAR2, l_object1_id2 IN VARCHAR2,
18574 l_object_code IN VARCHAR2) IS
18575
18576 SELECT 'X'
18577 FROM OKC_K_LINES_B lines1,
18578 OKC_K_LINES_B lines2,
18579 OKC_K_ITEMS items
18580 WHERE lines1.id = l_contract_line_id
18581 AND lines2.cle_id = lines1.id
18582 AND lines2.dnz_chr_id = lines1.chr_id
18583 AND items.cle_id = lines2.id
18584 AND items.object1_id1 = l_object1_id1
18585 AND items.object1_id2 = l_object1_id2
18586 AND items.jtot_object1_code = l_object_code ;
18587
18588
18589 lx_contract_line_id NUMBER;
18590 lx_object1_id1 VARCHAR2(40);
18591 lx_object1_id2 VARCHAR2(200);
18592 lx_object_code VARCHAR2(30);
18593 x_covlevel_exist VARCHAR2(1);
18594 l_dummy VARCHAR2(1);
18595
18596 BEGIN
18597
18598 lx_contract_line_id := p_contract_line_id;
18599 lx_object1_id1 := p_object1_id1;
18600 lx_object1_id2 := p_object1_id2;
18601 lx_object_code := p_object_code;
18602
18603 OPEN CUR_GET_COVLEVELS(lx_contract_line_id, lx_object1_id1,lx_object1_id2,lx_object_code);
18604 FETCH CUR_GET_COVLEVELS INTO l_dummy;
18605 CLOSE CUR_GET_COVLEVELS;
18606
18607 IF l_dummy = 'X' THEN
18608 x_covlevel_exist := 'Y';
18609 ELSE
18610 x_covlevel_exist := 'N';
18611 END IF ;
18612
18613 RETURN x_covlevel_exist ;
18614
18615 END VALIDATE_COVLEVELS ;
18616
18617
18618 BEGIN
18619
18620 Lx_Result := OKC_API.G_TRUE;
18621 x_result := OKC_API.G_TRUE;
18622 Lx_Set_ExcepionStack := OKC_API.G_TRUE;
18623
18624 -- check that the p_contract_line_id is not null
18625
18626 OKS_ENTITLEMENTS_PVT.Validate_Required_NumValue
18627 (P_Num_Value => p_contract_line_id
18628 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
18629 ,P_ExcepionMsg => 'Contract Line'
18630 ,X_Result => Lx_result
18631 ,X_Return_Status => Lx_Return_Status);
18632
18633 IF Lx_result <> G_TRUE THEN
18634 RAISE L_EXCEP_NULL_VALUE;
18635 END IF;
18636
18637 OPEN CUR_GET_ORG_ID(p_contract_line_id);
18638 FETCH CUR_GET_ORG_ID INTO l_org_id, l_inv_org_id;
18639 CLOSE CUR_GET_ORG_ID;
18640
18641 IF p_busiproc_id IS NOT NULL THEN
18642 l_busiproc_id := TO_CHAR(p_busiproc_id) ;
18643 l_request_date := nvl(p_request_date,sysdate);
18644 l_contract_line_id := p_contract_line_id ;
18645
18646 l_busiproc_match:= VALIDATE_BUSINESS_PROCESS(P_CONTRACT_LINE_ID => l_contract_line_id,
18647 P_BUSIPROC_ID => l_busiproc_id,
18648 P_EFFECTIVE_DATE => l_request_date);
18649
18650
18651
18652 -- if the call TO above function returns 'N', update the input cov level tbl to N
18653
18654 IF l_busiproc_match = 'N' THEN
18655
18656 x_covlevel_tbl_out := p_covlevel_tbl_in ;
18657
18658 j:= x_covlevel_tbl_out.FIRST;
18659
18660 FOR covlevel_rec in x_covlevel_tbl_out.FIRST..x_covlevel_tbl_out.LAST
18661 LOOP
18662 x_covlevel_tbl_out(j).covered_yn := 'N';
18663 j:= j + 1 ;
18664 END LOOP ;
18665
18666 IF p_verify_combination = 'Y' THEN
18667 x_combination_valid:= 'N';
18668 END IF ;
18669
18670 RAISE EXCEPTION_HALT_VALIDATION;
18671
18672 END IF;
18673
18674 IF (p_busiproc_id IS NULL) OR
18675 (p_busiproc_id IS NOT NULL and l_busiproc_match = 'Y') THEN -- CHECK THE INPUT COVLEVEL TBL fucntion return Y
18676
18677 IF p_covlevel_tbl_in.COUNT > 0 THEN
18678
18679 Ln_Organization_Id := l_inv_org_id ;
18680 Ln_Org_Id := l_org_id;
18681
18682 x_covlevel_tbl_out := p_covlevel_tbl_in ;
18683
18684 FOR i in p_covlevel_tbl_in.FIRST .. p_covlevel_tbl_in.LAST LOOP
18685
18686 IF p_covlevel_tbl_in(i).covlevel_code = 'OKX_CUSTPROD' THEN
18687
18688 l_jtot_object1_code := 'OKX_CUSTPROD';
18689
18690 OKS_ENTITLEMENTS_PVT.Get_Product_CovLevels
18691 (P_CovProd_Obj_Id => p_covlevel_tbl_in(i).covlevel_id, -- l_jtot_object1_code,
18692 P_Organization_Id => Ln_Organization_Id,
18693 P_Org_Id => Ln_Org_Id,
18694 X_Party_Id => Lx_Party_Id,
18695 X_Product_CovLevels => Lx_Product_CovLevels,
18696 X_Result => Lx_Result,
18697 X_Return_Status => Lx_Return_Status);
18698
18699 IF Lx_Result <> G_TRUE THEN
18700 RAISE L_EXCEP_UNEXPECTED_ERR;
18701 END IF;
18702
18703 IF LX_PRODUCT_COVLEVELS.COUNT > 0 THEN
18704
18705 FOR prod_index in Lx_Product_CovLevels.FIRST .. Lx_Product_CovLevels.LAST LOOP
18706
18707 l_check_custprod := VALIDATE_COVLEVELS(p_contract_line_id,
18708 LX_PRODUCT_COVLEVELS(prod_index).RX_OBJ1ID1,
18709 LX_PRODUCT_COVLEVELS(prod_index).RX_OBJ1ID2,
18710 LX_PRODUCT_COVLEVELS(prod_index).RX_OBJCODE);
18711
18712 IF l_check_custprod = 'Y' THEN
18713 x_covlevel_tbl_out(i).covered_yn :='Y';
18714 EXIT ;
18715 ELSE
18716 x_covlevel_tbl_out(i).covered_yn :='N';
18717 END IF ;
18718
18719 END LOOP ; -- END LOOP FOR LX_PRODUCT_COVLEVELS
18720
18721 END IF ; -- END IF LX_PRODUCT_COVLEVELS.COUNT > 0
18722
18723 ELSIF p_covlevel_tbl_in(i).covlevel_code = 'OKX_COVITEM' THEN
18724
18725 l_jtot_object1_code := 'OKX_COVITEM';
18726
18727 OKS_ENTITLEMENTS_PVT.Get_Item_CovLevels(P_CovItem_Obj_Id => p_covlevel_tbl_in(i).covlevel_id,
18728 P_Organization_Id => Ln_Organization_Id,
18729 X_Item_CovLevels => Lx_Item_CovLevels,
18730 X_Result => Lx_Result,
18731 X_Return_Status => Lx_Return_Status);
18732
18733
18734 IF Lx_Result <> G_TRUE THEN
18735 RAISE L_EXCEP_UNEXPECTED_ERR;
18736 END IF;
18737
18738 IF LX_ITEM_COVLEVELS.COUNT > 0 THEN
18739
18740 FOR item_index in Lx_Item_CovLevels.FIRST .. Lx_Item_CovLevels.LAST LOOP
18741
18742 l_check_item := VALIDATE_COVLEVELS(p_contract_line_id,
18743 LX_ITEM_COVLEVELS(item_index).RX_OBJ1ID1,
18744 LX_ITEM_COVLEVELS(item_index).RX_OBJ1ID2,
18745 LX_ITEM_COVLEVELS(item_index).RX_OBJCODE);
18746
18747 IF l_check_item = 'Y' THEN
18748 x_covlevel_tbl_out(i).covered_yn :='Y';
18749 EXIT ;
18750 ELSE
18751 x_covlevel_tbl_out(i).covered_yn :='N';
18752 END IF ;
18753
18754 END LOOP ;
18755
18756 END IF ; -- END IF FOR LX_ITEM_COVLEVELS.COUNT > 0
18757
18758 ELSIF p_covlevel_tbl_in(i).covlevel_code = 'OKX_COVSYST' THEN
18759
18760 l_jtot_object1_code := 'OKX_COVSYST';
18761
18762 OKS_ENTITLEMENTS_PVT.Get_System_CovLevels(P_CovSys_Obj_Id => p_covlevel_tbl_in(i).covlevel_id,
18763 P_Org_Id => Ln_Org_Id,
18764 X_System_CovLevels => Lx_System_CovLevels,
18765 X_Result => Lx_Result,
18766 X_Return_Status => Lx_Return_Status );
18767
18768 IF Lx_Result <> G_TRUE THEN
18769 RAISE L_EXCEP_UNEXPECTED_ERR;
18770 END IF;
18771
18772 IF LX_SYSTEM_COVLEVELS.COUNT > 0 THEN
18773
18774 FOR system_index in Lx_System_CovLevels.FIRST .. Lx_System_CovLevels.LAST LOOP
18775
18776 l_check_system := VALIDATE_COVLEVELS(p_contract_line_id,
18777 LX_SYSTEM_COVLEVELS(system_index).RX_OBJ1ID1,
18778 LX_SYSTEM_COVLEVELS(system_index).RX_OBJ1ID2,
18779 LX_SYSTEM_COVLEVELS(system_index).RX_OBJCODE);
18780
18781 IF l_check_system = 'Y' THEN
18782 x_covlevel_tbl_out(i).covered_yn :='Y';
18783 EXIT ;
18784 ELSE
18785 x_covlevel_tbl_out(i).covered_yn :='N';
18786 END IF ;
18787
18788 END LOOP ;
18789
18790 END IF ; -- END IF FOR LX_SYSTEM_COVLEVELS.COUNT > 0
18791
18792 ELSIF p_covlevel_tbl_in(i).covlevel_code = 'OKX_CUSTACCT' THEN
18793
18794 l_jtot_object1_code := 'OKX_CUSTACCT';
18795
18796 OKS_ENTITLEMENTS_PVT.Get_Customer_CovLevels(P_CovCust_Obj_Id => p_covlevel_tbl_in(i).covlevel_id,
18797 X_Party_Id => Lx_Party_Id,
18798 X_Customer_CovLevels => Lx_Cust_CovLevels,
18799 X_Result => Lx_Result,
18800 X_Return_Status => Lx_Return_Status );
18801 IF Lx_Result <> G_TRUE THEN
18802 RAISE L_EXCEP_UNEXPECTED_ERR;
18803 END IF;
18804
18805 IF LX_CUST_COVLEVELS.COUNT > 0 THEN
18806
18807 FOR custacct_index in Lx_Cust_CovLevels.FIRST .. Lx_Cust_CovLevels.LAST LOOP
18808
18809 l_check_cust := VALIDATE_COVLEVELS(p_contract_line_id,
18810 LX_CUST_COVLEVELS(custacct_index).RX_OBJ1ID1,
18811 LX_CUST_COVLEVELS(custacct_index).RX_OBJ1ID2,
18812 LX_CUST_COVLEVELS(custacct_index).RX_OBJCODE);
18813
18814 IF l_check_cust = 'Y' THEN
18815 x_covlevel_tbl_out(i).covered_yn :='Y';
18816 EXIT ;
18817 ELSE
18818 x_covlevel_tbl_out(i).covered_yn :='N';
18819 END IF ;
18820
18821 END LOOP ;
18822
18823 END IF ; -- END IF FOR LX_CUST_COVLEVELS.COUNT > 0
18824
18825 ELSIF p_covlevel_tbl_in(i).covlevel_code = 'OKX_PARTYSITE' THEN
18826
18827 l_jtot_object1_code := 'OKX_PARTYSITE';
18828
18829 OKS_ENTITLEMENTS_PVT.Get_Site_CovLevels(P_CovSite_Obj_Id => p_covlevel_tbl_in(i).covlevel_id,
18830 P_Org_Id => Ln_Org_Id,
18831 X_Site_CovLevels => Lx_Site_CovLevels,
18832 X_Result => Lx_Result,
18833 X_Return_Status => Lx_Return_Status );
18834
18835 IF Lx_Result <> G_TRUE THEN
18836 RAISE L_EXCEP_UNEXPECTED_ERR;
18837 END IF;
18838
18839 IF LX_SITE_COVLEVELS.COUNT > 0 THEN
18840
18841 FOR partysite_index in Lx_Site_CovLevels.FIRST .. Lx_Site_CovLevels.LAST LOOP
18842
18843 l_check_site := VALIDATE_COVLEVELS(p_contract_line_id,
18844 LX_SITE_COVLEVELS(partysite_index).RX_OBJ1ID1,
18845 LX_SITE_COVLEVELS(partysite_index).RX_OBJ1ID2,
18846 LX_SITE_COVLEVELS(partysite_index).RX_OBJCODE);
18847
18848
18849 IF l_check_site = 'Y' THEN
18850 x_covlevel_tbl_out(i).covered_yn :='Y';
18851 EXIT ;
18852 ELSE
18853 x_covlevel_tbl_out(i).covered_yn :='N';
18854 END IF ;
18855
18856 END LOOP ;
18857
18858 END IF ; -- END IF FOR LX_SITE_COVLEVELS.COUNT > 0
18859
18860 ELSIF p_covlevel_tbl_in(i).covlevel_code = 'OKX_PARTY' THEN
18861
18862 l_jtot_object1_code := 'OKX_PARTY';
18863
18864 OKS_ENTITLEMENTS_PVT.Get_Party_CovLevels(P_CovParty_Obj_Id => p_covlevel_tbl_in(i).covlevel_id,
18865 X_Party_CovLevels => Lx_Party_CovLevels,
18866 X_Result => Lx_Result,
18867 X_Return_Status => Lx_Return_Status );
18868
18869 IF Lx_Result <> G_TRUE THEN
18870 RAISE L_EXCEP_UNEXPECTED_ERR;
18871 END IF;
18872
18873 IF LX_PARTY_COVLEVELS.COUNT > 0 THEN
18874
18875 FOR party_index in Lx_Party_CovLevels.FIRST .. Lx_Party_CovLevels.LAST LOOP
18876
18877 l_check_party := VALIDATE_COVLEVELS(p_contract_line_id,
18878 LX_PARTY_COVLEVELS(party_index).RX_OBJ1ID1,
18879 LX_PARTY_COVLEVELS(party_index).RX_OBJ1ID2,
18880 LX_PARTY_COVLEVELS(party_index).RX_OBJCODE);
18881
18882 IF l_check_party = 'Y' THEN
18883 x_covlevel_tbl_out(i).covered_yn :='Y';
18884 EXIT ;
18885 ELSE
18886 x_covlevel_tbl_out(i).covered_yn :='N';
18887 END IF ;
18888
18889 END LOOP ;
18890
18891 END IF ; -- END IF FOR LX_PARTY_COVLEVELS.COUNT > 0
18892
18893 END IF ;
18894
18895 END LOOP ;
18896
18897 -- check here for combination..
18898
18899
18900 IF p_verify_combination = 'Y' THEN
18901
18902 k := x_covlevel_tbl_out.first ;
18903
18904 x_combination_valid:= 'N';
18905
18906 FOR out_rec IN x_covlevel_tbl_out.FIRST .. x_covlevel_tbl_out.LAST
18907 LOOP
18908 /*
18909 IF x_covlevel_tbl_out(k).covered_yn = 'N' THEN
18910 x_combination_valid:= 'N';
18911 EXIT;
18912 END IF ;
18913 */
18914
18915 /********************************************************************************
18916 The logic is changed as that is what is required.
18917 If contract line covers any one of the input covered level records in
18918 , that is covered_yn = 'Y' , then as per the new
18919 inputs from the Service Request at a later date, the contract line
18920 should be considered valid and x_combination_valid should return 'Y'.
18921 ********************************************************************************/
18922
18923 IF x_covlevel_tbl_out(k).covered_yn = 'Y' THEN
18924 x_combination_valid:= 'Y';
18925 EXIT;
18926 END IF ;
18927
18928 k := x_covlevel_tbl_out.NEXT(k);
18929 END LOOP ;
18930 END IF ;
18931 END IF ;
18932 END IF ;
18933 END IF ;
18934
18935 LX_PRODUCT_COVLEVELS.DELETE;
18936 LX_ITEM_COVLEVELS.DELETE;
18937 LX_SYSTEM_COVLEVELS.DELETE;
18938 LX_CUST_COVLEVELS.DELETE;
18939 LX_SITE_COVLEVELS.DELETE;
18940 LX_PARTY_COVLEVELS.DELETE;
18941
18942 x_return_status:= OKC_API.G_RET_STS_SUCCESS ;
18943
18944
18945
18946 EXCEPTION
18947
18948 WHEN L_EXCEP_NULL_VALUE THEN
18949 X_Result := Lx_Result;
18950 X_Return_Status := Lx_Return_Status;
18951
18952 WHEN EXCEPTION_HALT_VALIDATION THEN
18953
18954 X_Return_Status := OKC_API.G_RET_STS_SUCCESS;
18955 x_combination_valid := 'N';
18956 x_covlevel_tbl_out := p_covlevel_tbl_in;
18957
18958 WHEN L_EXCEP_UNEXPECTED_ERR THEN
18959 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
18960 x_combination_valid := 'N';
18961 x_covlevel_tbl_out := p_covlevel_tbl_in;
18962
18963 WHEN OTHERS THEN
18964
18965 OKC_API.SET_MESSAGE
18966 (P_App_Name => G_APP_NAME_OKC
18967 ,P_Msg_Name => G_UNEXPECTED_ERROR
18968 ,P_Token1 => G_SQLCODE_TOKEN
18969 ,P_Token1_Value => SQLCODE
18970 ,P_Token2 => G_SQLERRM_TOKEN
18971 ,P_Token2_Value => SQLERRM);
18972
18973 OKC_API.SET_MESSAGE
18974 (P_App_Name => G_APP_NAME_OKC
18975 ,P_Msg_Name => G_DEBUG_TOKEN
18976 ,P_Token1 => G_PACKAGE_TOKEN
18977 ,P_Token1_Value => G_PKG_NAME
18978 ,P_Token2 => G_PROGRAM_TOKEN
18979 ,P_Token2_Value => 'Validate_Required_RT_Tokens');
18980
18981 X_Result := G_FALSE;
18982 X_Return_Status := G_RET_STS_UNEXP_ERROR;
18983
18984
18985 END VALIDATE_CONTRACT_LINE;
18986
18987
18988 -- Added by JVARGHES on Feb 03, 2005.
18989 -- for the resolution of Bug# 3796499.
18990
18991 FUNCTION Get_NLS_Day_of_Week(P_Day_of_Week IN VARCHAR2) RETURN VARCHAR2 IS
18992
18993 CURSOR C1(Cv_Day_of_Week IN VARCHAR2) IS
18994 SELECT
18995 DECODE(Cv_Day_of_Week
18996 ,TO_CHAR(SYSDATE, 'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE, 'DY')
18997 ,TO_CHAR(SYSDATE+1,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+1,'DY')
18998 ,TO_CHAR(SYSDATE+2,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+2,'DY')
18999 ,TO_CHAR(SYSDATE+3,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+3,'DY')
19000 ,TO_CHAR(SYSDATE+4,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+4,'DY')
19001 ,TO_CHAR(SYSDATE+5,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+5,'DY')
19002 ,TO_CHAR(SYSDATE+6,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+6,'DY')
19003 ,'-1')
19004 FROM DUAL;
19005
19006 lv_Result VARCHAR2(50);
19007
19008 BEGIN
19009
19010 OPEN C1(Cv_Day_of_Week => P_Day_of_Week);
19011 FETCH C1 INTO lv_Result;
19012 CLOSE C1;
19013
19014 RETURN lv_Result;
19015
19016 END Get_NLS_Day_of_Week;
19017
19018 /*
19019 -- Comment out by JVARGHES on Mar 07, 2005.
19020 -- for the resolution of Bug# 4191909.
19021
19022 FUNCTION Get_NLS_day_of_week(
19023 P_day_of_week IN Varchar2) Return Varchar2 is
19024
19025 l_daynum number;
19026 l_daychar varchar2(100);
19027 l_daypsdchar varchar2(100);
19028 l_daypsdnum number;
19029 l_dayrtnchar varchar2(100);
19030
19031
19032
19033 BEGIN
19034
19035 l_daynum := null;
19036 l_daychar := null;
19037 l_daypsdchar := P_day_of_week;
19038 l_daypsdnum := null;
19039 l_dayrtnchar := null;
19040
19041
19042 if l_daypsdchar = 'SUN' then
19043 l_daypsdnum := 1;
19044 elsif l_daypsdchar = 'MON' then
19045 l_daypsdnum := 2;
19046 elsif l_daypsdchar = 'TUE' then
19047 l_daypsdnum := 3;
19048 elsif l_daypsdchar = 'WED' then
19049 l_daypsdnum := 4;
19050 elsif l_daypsdchar = 'THU' then
19051 l_daypsdnum := 5;
19052 elsif l_daypsdchar = 'FRI' then
19053 l_daypsdnum := 6;
19054 elsif l_daypsdchar = 'SAT' then
19055 l_daypsdnum := 7;
19056 end if;
19057
19058
19059 for i in 0..6 loop
19060
19061
19062 l_daynum := to_number(to_char(sysdate+i,'D'));
19063 l_daychar := to_char(sysdate+i,'DY');
19064
19065
19066 if l_daypsdnum = l_daynum then
19067 l_dayrtnchar := l_daychar;
19068 exit;
19069 end if;
19070
19071 end loop;
19072
19073 if l_dayrtnchar is null then
19074 l_dayrtnchar := 'NOTVALID';
19075 end if;
19076
19077 return l_dayrtnchar;
19078
19079 END Get_NLS_day_of_week;
19080
19081 */
19082
19083 PROCEDURE Get_Valid_Line(
19084 PHd_Id IN NUMBER,
19085 PHd_Start_Date IN Date,
19086 PHd_END_Date IN Date,
19087 PSv_Start_Date IN Date,
19088 PSv_End_Date IN Date,
19089 PSv_Term_Date IN Date,
19090 PIt_Start_Date IN Date,
19091 PIt_End_Date IN Date,
19092 PIt_Term_Date IN Date,
19093 PCo_Start_Date IN Date,
19094 PCo_End_Date IN Date,
19095 PCo_Term_Date IN Date,
19096 P_Request_Date IN Date,
19097 X_Valid_line OUT NOCOPY VARCHAR2,
19098 X_return_Status OUT NOCOPY VARCHAR2) IS
19099
19100
19101
19102 Lv_Request_Date Constant Date := trunc(nvl(p_request_date,SYSDATE));
19103 LHd_END_Date Constant Date := PHd_END_Date ;
19104 LSv_Start_Date Constant Date := PSv_Start_Date ;
19105 LSv_End_Date Constant Date := PSv_End_Date ;
19106 LSv_Term_Date Constant Date := PSv_Term_Date ;
19107 LIt_Start_Date Constant Date := PIt_Start_Date ;
19108 LIt_End_Date Constant Date := PIt_End_Date ;
19109 LIt_Term_Date Constant Date := PIt_Term_Date ;
19110 LCo_Start_Date Constant Date := PCo_Start_Date ;
19111 LCo_End_Date Constant Date := PCo_End_Date ;
19112 LCo_Term_Date Constant Date := PCo_Term_Date ;
19113 LHd_Id Constant NUMBER := PHd_Id;
19114 LSv_Eff_End_Date Date;
19115 LCo_Eff_End_Date Date;
19116 LIt_Eff_End_Date Date;
19117
19118 BEGIN
19119
19120 IF LSv_Term_Date < LSv_End_Date THEN
19121 LSv_Eff_End_Date := LSv_Term_Date;
19122 ELSE
19123 LSv_Eff_End_Date := LSv_End_Date;
19124
19125 -- grace period changes starts
19126
19127 IF G_GRACE_PROFILE_SET = 'Y' AND LSv_Term_Date IS NULL THEN
19128 -- grace period changes are done only if line end date matches contract end date
19129
19130 IF trunc(LSv_Eff_End_Date) = trunc(LHd_END_Date) THEN
19131 --- truncating the dates to remove accidental existence of time components in dates.
19132 LSv_Eff_End_Date := trunc(Get_Final_End_Date(LHd_Id,LSv_Eff_End_Date));
19133 END IF;
19134
19135 END IF;
19136
19137 -- grace period changes ends
19138 END IF;
19139
19140 IF LCo_Term_Date < LCo_End_Date THEN
19141 LCo_Eff_End_Date := LCo_Term_Date;
19142 ELSE
19143 LCo_Eff_End_Date := LCo_End_Date;
19144
19145 -- grace period changes starts
19146
19147 IF G_GRACE_PROFILE_SET = 'Y' AND LCo_Term_Date IS NULL THEN
19148 IF trunc(LCo_Eff_End_Date) = trunc(LHd_END_Date) THEN
19149 --- truncating the dates to remove accidental existence of time components in dates.
19150 LCo_Eff_End_Date := trunc(Get_Final_End_Date(LHd_Id,LCo_Eff_End_Date));
19151 END IF;
19152 END IF;
19153
19154 -- grace period changes ends
19155 END IF;
19156
19157
19158 IF LIt_Term_Date < LIt_End_Date THEN
19159 LIt_Eff_End_Date := LIt_Term_Date;
19160 ELSE
19161 LIt_Eff_End_Date := LIt_End_Date;
19162
19163 -- grace period changes starts
19164
19165 IF G_GRACE_PROFILE_SET = 'Y' AND LIt_Term_Date IS NULL THEN
19166 -- grace period changes are done only if line end date matches contract end date
19167 IF trunc(LIt_Eff_End_Date) = trunc(LHd_END_Date) THEN
19168 --- truncating the dates to remove accidental existence of time components in dates.
19169 LIt_Eff_End_Date := trunc(Get_Final_End_Date(LHd_Id,LIt_Eff_End_Date));
19170 END IF;
19171 END IF;
19172 END IF;
19173
19174
19175 IF ((Lv_Request_Date BETWEEN LSv_Start_Date AND LSv_Eff_End_Date)
19176 AND
19177 (Lv_Request_Date BETWEEN LIt_Start_Date AND LIt_Eff_End_Date)
19178 AND
19179 (Lv_Request_Date BETWEEN LCo_Start_Date AND LCo_Eff_End_Date)) THEN
19180
19181 X_Valid_line := 'T';
19182
19183 END IF;
19184
19185 X_return_Status := 'S'; --LX_return_Status;
19186
19187 EXCEPTION
19188 WHEN OTHERS THEN
19189
19190 OKC_API.SET_MESSAGE
19191 (P_App_Name => G_APP_NAME_OKC
19192 ,P_Msg_Name => G_UNEXPECTED_ERROR
19193 ,P_Token1 => G_SQLCODE_TOKEN
19194 ,P_Token1_Value => SQLCODE
19195 ,P_Token2 => G_SQLERRM_TOKEN
19196 ,P_Token2_Value => SQLERRM);
19197
19198 OKC_API.SET_MESSAGE
19199 (P_App_Name => G_APP_NAME_OKC
19200 ,P_Msg_Name => G_DEBUG_TOKEN
19201 ,P_Token1 => G_PACKAGE_TOKEN
19202 ,P_Token1_Value => G_PKG_NAME
19203 ,P_Token2 => G_PROGRAM_TOKEN
19204 ,P_Token2_Value => 'Get_Valid_Line');
19205
19206 X_Return_Status := G_RET_STS_UNEXP_ERROR;
19207
19208 END get_valid_line;
19209
19210
19211 PROCEDURE Get_Contract_ID
19212 (P_contract_id IN NUMBER
19213 ,P_Contract_Num IN VARCHAR2
19214 ,P_Contract_Num_Modifier IN VARCHAR2
19215 ,P_START_DATE_FROM IN DATE
19216 ,P_START_DATE_TO IN DATE
19217 ,P_END_DATE_FROM IN DATE
19218 ,P_END_DATE_TO IN DATE
19219 ,P_DATE_TERMINATE_FROM IN DATE
19220 ,P_DATE_TERMINATE_TO IN DATE
19221 ,P_STATUS IN VARCHAR2
19222 ,P_Cont_Pty_Id IN NUMBER
19223 ,P_cont_renewal_code IN VARCHAR2
19224 ,p_authoring_org_id in number
19225 ,p_contract_grp_id in number -- additional header level criteria added dtd Dec 17th, 2003
19226 ,X_Contracts OUT NOCOPY GT_Contract_Ref
19227 ,X_Result OUT NOCOPY Gx_Boolean
19228 ,X_Return_Status OUT NOCOPY Gx_Ret_Sts) IS
19229
19230 /*Bug:6767455*/
19231 CURSOR Lx_Csr_terdt_Contracts( Cv_Contract_Id IN NUMBER,
19232 Cv_Contract_Num IN VARCHAR2,
19233 Cv_Contract_Num_Modifier IN VARCHAR2,
19234 Cv_START_DATE_FROM IN DATE,
19235 Cv_START_DATE_TO IN DATE,
19236 Cv_END_DATE_FROM IN DATE,
19237 Cv_END_DATE_TO IN DATE,
19238 Cv_DATE_TERMINATE_FROM IN DATE,
19239 Cv_DATE_TERMINATE_TO IN DATE,
19240 Cv_STATUS IN VARCHAR2,
19241 Cv_Cont_Pty_Id IN NUMBER,
19242 Cv_cont_renewal_code IN VARCHAR2,
19243 Cv_authoring_org_id in number,
19244 Cv_contract_grp_id in number) IS
19245 SELECT /*+ leading(b) use_nl(b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19246 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19247 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19248 FROM OKC_K_HEADERS_ALL_B B, --Okc_K_Headers_B B, /*Bug:6767455*/
19249 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19250 WHERE b.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19251 AND B.Start_Date BETWEEN Cv_Start_Date_From AND Cv_Start_Date_to
19252 AND B.End_Date BETWEEN Cv_End_Date_From AND Cv_End_Date_To
19253 AND B.Date_Terminated BETWEEN Cv_Date_Terminate_From AND Cv_Date_Terminate_To
19254 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
19255 and authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
19256
19257 /*Bug:6767455*/
19258 CURSOR Lx_Csr_noHdr_Contracts( Cv_Contract_Id IN NUMBER,
19259 Cv_Contract_Num IN VARCHAR2,
19260 Cv_Contract_Num_Modifier IN VARCHAR2,
19261 Cv_START_DATE_FROM IN DATE,
19262 Cv_START_DATE_TO IN DATE,
19263 Cv_END_DATE_FROM IN DATE,
19264 Cv_END_DATE_TO IN DATE,
19265 Cv_DATE_TERMINATE_FROM IN DATE,
19266 Cv_DATE_TERMINATE_TO IN DATE,
19267 Cv_STATUS IN VARCHAR2,
19268 Cv_Cont_Pty_Id IN NUMBER,
19269 Cv_cont_renewal_code IN VARCHAR2,
19270 Cv_authoring_org_id in number,
19271 Cv_contract_grp_id in number) IS
19272 /*Bug:6767455*/
19273 SELECT /*+ leading(b) use_nl(b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19274 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19275 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19276 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project /*Bug:6767455*/
19277 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19278 WHERE b.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19279 AND B.Start_Date BETWEEN Cv_Start_Date_From AND Cv_Start_Date_to
19280 AND B.End_Date BETWEEN Cv_End_Date_From AND Cv_End_Date_To
19281 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
19282 and authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
19283
19284 CURSOR Lx_Csr_Hdr_Contracts( Cv_Contract_Id IN NUMBER,
19285 Cv_Contract_Num IN VARCHAR2,
19286 Cv_Contract_Num_Modifier IN VARCHAR2,
19287 Cv_START_DATE_FROM IN DATE,
19288 Cv_START_DATE_TO IN DATE,
19289 Cv_END_DATE_FROM IN DATE,
19290 Cv_END_DATE_TO IN DATE,
19291 Cv_DATE_TERMINATE_FROM IN DATE,
19292 Cv_DATE_TERMINATE_TO IN DATE,
19293 Cv_STATUS IN VARCHAR2,
19294 Cv_Cont_Pty_Id IN NUMBER,
19295 Cv_cont_renewal_code IN VARCHAR2,
19296 Cv_authoring_org_id in number,
19297 Cv_contract_grp_id in number) IS
19298 SELECT /*+ leading(b) use_nl(b oksb) */
19299 b.Id Id, -- 11.5.10 rule rearchitecture changes
19300 b.renewal_type_code, -- Added by Jvorugan for perf bug:4991724
19301 oksb.electronic_renewal_flag -- Added by Jvorugan for perf bug:4991724
19302 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19303 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19304 WHERE B.Id = Cv_Contract_Id --B.Id --nvl(Cv_Contract_Id,B.Id) /*Added for Bug:6767455*/
19305 and Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19306 --AND nvl(Contract_Number_Modifier,-99) = nvl(Cv_Contract_Num_Modifier,nvl(Contract_Number_Modifier,-99))
19307 AND ( (Cv_Contract_Num_Modifier IS NULL)
19308 OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19309 and b.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19310 --- truncating the dates to remove accidental existence of time components in dates.
19311 /*Modified for Bug:6767455*/
19312 /* AND trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date))
19313 and trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date))
19314 AND trunc(B.End_Date) >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
19315 AND trunc(B.End_Date) <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
19316 AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
19317 nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19318 AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
19319 nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))*/
19320 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19321 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19322 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19323 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19324 AND ((Cv_Date_Terminate_From IS NULL) OR
19325 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19326 AND ((Cv_Date_Terminate_To IS NULL) OR
19327 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19328 /*Modified for Bug:6767455*/
19329 AND Sts_Code = nvl(Cv_STATUS,B.Sts_Code)
19330 and authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19331 AND (Cv_Cont_Pty_Id IS NULL
19332 OR
19333 EXISTS
19334 (SELECT 'x'
19335 FROM Okc_K_Party_Roles_B PR
19336 WHERE pr.Cle_Id IS NULL
19337 AND PR.Dnz_Chr_Id = b.Id
19338 -- AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
19339 AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19340 AND PR.Object1_Id2 = '#'
19341 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19342 AND PR.RLE_CODE <> 'VENDOR'))
19343 -- where clause for contract group added dtd Dec 17th, 2003
19344 AND (Cv_contract_grp_id is null
19345 OR
19346 EXISTS (SELECT 'x'
19347 FROM Okc_K_grpings grpng
19348 WHERE grpng.included_chr_id = b.id
19349 and grpng.cgp_parent_id = Cv_contract_grp_id ));
19350 -- and nvl(b.renewal_type_code,'#') = nvl(Cv_cont_renewal_code,nvl(b.renewal_type_code,'#'))
19351 /*Added for Bug:6767455
19352
19353 AND ((Cv_cont_renewal_code IS NULL)
19354 OR
19355 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code not in ('ERN','NSR')
19356 AND nvl(b.renewal_type_code,'#') = Cv_cont_renewal_code)
19357 OR
19358 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'ERN'
19359 AND nvl(b.renewal_type_code,'#') = 'NSR'
19360 and nvl(oksb.electronic_renewal_flag,'N') = 'Y')
19361 OR
19362 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'NSR'
19363 AND nvl(b.renewal_type_code,'#') = 'NSR'
19364 and nvl(oksb.electronic_renewal_flag,'N') = 'N'));
19365 */
19366
19367 CURSOR Lx_Csr_Hdr_Contracts_sub( Cv_Contract_Id IN NUMBER,
19368 Cv_Contract_Num IN VARCHAR2,
19369 Cv_Contract_Num_Modifier IN VARCHAR2,
19370 Cv_START_DATE_FROM IN DATE,
19371 Cv_START_DATE_TO IN DATE,
19372 Cv_END_DATE_FROM IN DATE,
19373 Cv_END_DATE_TO IN DATE,
19374 Cv_DATE_TERMINATE_FROM IN DATE,
19375 Cv_DATE_TERMINATE_TO IN DATE,
19376 Cv_STATUS IN VARCHAR2,
19377 Cv_Cont_Pty_Id IN NUMBER,
19378 Cv_cont_renewal_code IN VARCHAR2,
19379 Cv_authoring_org_id in number,
19380 Cv_contract_grp_id in number) IS
19381 SELECT /*+ leading(b) use_nl(b oksb) */
19382 b.Id Id, -- 11.5.10 rule rearchitecture changes
19383 b.renewal_type_code, -- Added by Jvorugan for perf bug:4991724
19384 oksb.electronic_renewal_flag -- Added by Jvorugan for perf bug:4991724
19385 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19386 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19387 WHERE B.Id = Cv_Contract_Id --B.Id --nvl(Cv_Contract_Id,B.Id) /*Added for Bug:6767455*/
19388 and Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19389 AND ( (Cv_Contract_Num_Modifier IS NULL)
19390 OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19391 and b.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19392 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19393 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19394 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19395 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19396 AND ((Cv_Date_Terminate_From IS NULL) OR
19397 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19398 AND ((Cv_Date_Terminate_To IS NULL) OR
19399 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19400 AND Sts_Code = nvl(Cv_STATUS,B.Sts_Code)
19401 and authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19402 AND (Cv_Cont_Pty_Id IS NULL
19403 OR
19404 EXISTS
19405 (SELECT 'x'
19406 FROM Okc_K_Party_Roles_B PR
19407 WHERE pr.Cle_Id IS NULL
19408 AND PR.Dnz_Chr_Id = b.Id
19409 AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19410 AND PR.Object1_Id2 = '#'
19411 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19412 AND PR.RLE_CODE not in ('VENDOR','MERCHANT'))) ---Modified condition for ER9681794
19413 AND (Cv_contract_grp_id is null
19414 OR
19415 EXISTS (SELECT 'x'
19416 FROM Okc_K_grpings grpng
19417 WHERE grpng.included_chr_id = b.id
19418 and grpng.cgp_parent_id = Cv_contract_grp_id ));
19419
19420 CURSOR Lx_Csr_Party_Contracts(Cv_Contract_Num IN VARCHAR2,
19421 Cv_Contract_Num_Modifier IN VARCHAR2,
19422 Cv_START_DATE_FROM IN DATE,
19423 Cv_START_DATE_TO IN DATE,
19424 Cv_END_DATE_FROM IN DATE,
19425 Cv_END_DATE_TO IN DATE,
19426 Cv_DATE_TERMINATE_FROM IN DATE,
19427 Cv_DATE_TERMINATE_TO IN DATE,
19428 Cv_STATUS IN VARCHAR2,
19429 Cv_Cont_Pty_Id IN NUMBER,
19430 Cv_cont_renewal_code IN VARCHAR2,
19431 Cv_authoring_org_id in number,
19432 Cv_contract_grp_id in number) IS
19433 SELECT /*+ leading(pr) use_nl(pr b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19434 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19435 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19436 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19437 oks_k_headers_b oksb, -- 11.5.10 rule rearchitecture changes
19438 Okc_K_Party_Roles_B PR
19439 WHERE PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19440 AND PR.Object1_Id2 = '#'
19441 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19442 AND PR.RLE_CODE <> 'VENDOR'
19443 AND PR.Cle_Id IS NULL
19444 AND B.ID = PR.DNZ_CHR_ID
19445 AND B.ID = PR.CHR_ID
19446 -- AND Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19447 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
19448 -- OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19449 AND B.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19450 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19451 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19452 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19453 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19454 AND ((Cv_Date_Terminate_From IS NULL) OR
19455 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19456 AND ((Cv_Date_Terminate_To IS NULL) OR
19457 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19458 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
19459 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
19460
19461
19462
19463 CURSOR Lx_Csr_Party_Contracts_sub(Cv_Contract_Num IN VARCHAR2,
19464 Cv_Contract_Num_Modifier IN VARCHAR2,
19465 Cv_START_DATE_FROM IN DATE,
19466 Cv_START_DATE_TO IN DATE,
19467 Cv_END_DATE_FROM IN DATE,
19468 Cv_END_DATE_TO IN DATE,
19469 Cv_DATE_TERMINATE_FROM IN DATE,
19470 Cv_DATE_TERMINATE_TO IN DATE,
19471 Cv_STATUS IN VARCHAR2,
19472 Cv_Cont_Pty_Id IN NUMBER,
19473 Cv_cont_renewal_code IN VARCHAR2,
19474 Cv_authoring_org_id in number,
19475 Cv_contract_grp_id in number) IS
19476 SELECT /*+ leading(pr) use_nl(pr b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19477 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19478 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19479 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19480 oks_k_headers_b oksb, -- 11.5.10 rule rearchitecture changes
19481 Okc_K_Party_Roles_B PR
19482 WHERE PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19483 AND PR.Object1_Id2 = '#'
19484 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19485 AND PR.RLE_CODE not in ('VENDOR','MERCHANT') ---Modified condition for ER9681794
19486 AND PR.Cle_Id IS NULL
19487 AND B.ID = PR.DNZ_CHR_ID
19488 AND B.ID = PR.CHR_ID
19489 -- AND Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19490 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
19491 -- OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19492 AND B.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19493 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19494 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19495 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19496 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19497 AND ((Cv_Date_Terminate_From IS NULL) OR
19498 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19499 AND ((Cv_Date_Terminate_To IS NULL) OR
19500 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19501 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
19502 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
19503
19504 -- hmnair - Added for bug fix #
19505
19506 CURSOR Lx_Csr_Group_Contracts(Cv_Contract_Num IN VARCHAR2,
19507 Cv_Contract_Num_Modifier IN VARCHAR2,
19508 Cv_START_DATE_FROM IN DATE,
19509 Cv_START_DATE_TO IN DATE,
19510 Cv_END_DATE_FROM IN DATE,
19511 Cv_END_DATE_TO IN DATE,
19512 Cv_DATE_TERMINATE_FROM IN DATE,
19513 Cv_DATE_TERMINATE_TO IN DATE,
19514 Cv_STATUS IN VARCHAR2,
19515 Cv_Cont_Pty_Id IN NUMBER,
19516 Cv_cont_renewal_code IN VARCHAR2,
19517 Cv_authoring_org_id in number,
19518 Cv_contract_grp_id in number) IS
19519 SELECT /*+ leading(grpng) use_nl(grpng b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19520 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19521 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19522 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19523 oks_k_headers_b oksb, -- 11.5.10 rule rearchitecture changes
19524 Okc_K_grpings grpng
19525 WHERE grpng.cgp_parent_id = Cv_contract_grp_id
19526 AND B.ID = grpng.included_chr_id
19527 -- AND Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19528 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
19529 -- OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19530 AND B.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19531 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19532 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19533 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19534 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19535 AND ((Cv_Date_Terminate_From IS NULL) OR
19536 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19537 AND ((Cv_Date_Terminate_To IS NULL) OR
19538 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19539 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
19540 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
19541
19542 -- hmnair - Added for bug fix #
19543
19544 CURSOR Lx_Csr_Party_Group_Contracts(Cv_Contract_Num IN VARCHAR2,
19545 Cv_Contract_Num_Modifier IN VARCHAR2,
19546 Cv_START_DATE_FROM IN DATE,
19547 Cv_START_DATE_TO IN DATE,
19548 Cv_END_DATE_FROM IN DATE,
19549 Cv_END_DATE_TO IN DATE,
19550 Cv_DATE_TERMINATE_FROM IN DATE,
19551 Cv_DATE_TERMINATE_TO IN DATE,
19552 Cv_STATUS IN VARCHAR2,
19553 Cv_Cont_Pty_Id IN NUMBER,
19554 Cv_cont_renewal_code IN VARCHAR2,
19555 Cv_authoring_org_id in number,
19556 Cv_contract_grp_id in number) IS
19557 SELECT /*+ ordered use_nl(pr grpng b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19558 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19559 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19560
19561 FROM Okc_K_Party_Roles_B PR,
19562 Okc_K_grpings grpng,
19563 OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19564 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19565
19566 WHERE PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19567 AND PR.Object1_Id2 = '#'
19568 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19569 AND PR.RLE_CODE <> 'VENDOR'
19570 AND PR.Cle_Id IS NULL
19571 AND B.ID = PR.DNZ_CHR_ID
19572 AND B.ID = PR.CHR_ID
19573 -- AND Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19574 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
19575 -- OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19576 AND B.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19577 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19578 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19579 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19580 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19581 AND ((Cv_Date_Terminate_From IS NULL) OR
19582 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19583 AND ((Cv_Date_Terminate_To IS NULL) OR
19584 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19585 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
19586 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19587 AND grpng.included_chr_id = b.ID
19588 AND grpng.included_chr_id = PR.DNZ_CHR_ID
19589 AND grpng.cgp_parent_id = Cv_contract_grp_id;
19590
19591 CURSOR Lx_Csr_Party_Group_Contracts1(Cv_Contract_Num IN VARCHAR2,
19592 Cv_Contract_Num_Modifier IN VARCHAR2,
19593 Cv_START_DATE_FROM IN DATE,
19594 Cv_START_DATE_TO IN DATE,
19595 Cv_END_DATE_FROM IN DATE,
19596 Cv_END_DATE_TO IN DATE,
19597 Cv_DATE_TERMINATE_FROM IN DATE,
19598 Cv_DATE_TERMINATE_TO IN DATE,
19599 Cv_STATUS IN VARCHAR2,
19600 Cv_Cont_Pty_Id IN NUMBER,
19601 Cv_cont_renewal_code IN VARCHAR2,
19602 Cv_authoring_org_id in number,
19603 Cv_contract_grp_id in number) IS
19604 SELECT /*+ ordered use_nl(pr grpng b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19605 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19606 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19607
19608 FROM Okc_K_Party_Roles_B PR,
19609 Okc_K_grpings grpng,
19610 OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19611 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19612
19613 WHERE PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19614 AND PR.Object1_Id2 = '#'
19615 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19616 AND PR.RLE_CODE not in ('VENDOR','MERCHANT') ------Modified condition for ER9681794
19617 AND PR.Cle_Id IS NULL
19618 AND B.ID = PR.DNZ_CHR_ID
19619 AND B.ID = PR.CHR_ID
19620 -- AND Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19621 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
19622 -- OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19623 AND B.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19624 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19625 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19626 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19627 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19628 AND ((Cv_Date_Terminate_From IS NULL) OR
19629 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19630 AND ((Cv_Date_Terminate_To IS NULL) OR
19631 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19632 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
19633 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19634 AND grpng.included_chr_id = b.ID
19635 AND grpng.included_chr_id = PR.DNZ_CHR_ID
19636 AND grpng.cgp_parent_id = Cv_contract_grp_id;
19637
19638 --Added for bug fix -- hmnair
19639
19640 CURSOR Lx_Csr_KNum_Mod_Contracts(Cv_Contract_Num IN VARCHAR2,
19641 Cv_Contract_Num_Modifier IN VARCHAR2,
19642 Cv_START_DATE_FROM IN DATE,
19643 Cv_START_DATE_TO IN DATE,
19644 Cv_END_DATE_FROM IN DATE,
19645 Cv_END_DATE_TO IN DATE,
19646 Cv_DATE_TERMINATE_FROM IN DATE,
19647 Cv_DATE_TERMINATE_TO IN DATE,
19648 Cv_STATUS IN VARCHAR2,
19649 Cv_Cont_Pty_Id IN NUMBER,
19650 Cv_cont_renewal_code IN VARCHAR2,
19651 Cv_authoring_org_id in number,
19652 Cv_contract_grp_id in number) IS
19653 SELECT /*+ leadin(b) use_nl(b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19654 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19655 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19656 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19657 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19658 WHERE Contract_Number = Cv_Contract_Num
19659 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
19660 AND Contract_Number_Modifier = Cv_Contract_Num_Modifier
19661 AND b.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19662 --
19663 -- Modified by JVARGHES on 23/May/2006 for fix of bug# 4991724
19664 -- AND trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date)) -- truncating the dates to remove
19665 -- and trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date)) -- accidental existence of time components in dates.
19666 -- AND trunc(B.End_Date) >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
19667 -- AND trunc(B.End_Date) <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
19668 -- AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
19669 -- nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19670 -- AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
19671 -- nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19672 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19673 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19674 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19675 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19676 AND ((Cv_Date_Terminate_From IS NULL) OR
19677 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19678 AND ((Cv_Date_Terminate_To IS NULL) OR
19679 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19680 --
19681 -- Modified by JVARGHES on 23/May/2006 for fix of bug# 4991724
19682 --
19683 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
19684 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19685 AND (Cv_Cont_Pty_Id IS NULL
19686 OR
19687 EXISTS (SELECT 'x'
19688 FROM Okc_K_Party_Roles_B PR
19689 WHERE pr.Cle_Id IS NULL
19690 AND PR.Dnz_Chr_Id = b.Id
19691 -- AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
19692 AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19693 AND PR.Object1_Id2 = '#'
19694 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19695 AND PR.RLE_CODE <> 'VENDOR'))
19696 AND (Cv_contract_grp_id is null -- Where clause for contract group added dtd Dec 17th, 2003
19697 OR
19698 EXISTS (SELECT 'x'
19699 FROM Okc_K_grpings grpng
19700 WHERE grpng.included_chr_id = b.id
19701 AND grpng.cgp_parent_id = Cv_contract_grp_id ));
19702
19703
19704 CURSOR Lx_Csr_KNum_Mod_Contracts_sub(Cv_Contract_Num IN VARCHAR2,
19705 Cv_Contract_Num_Modifier IN VARCHAR2,
19706 Cv_START_DATE_FROM IN DATE,
19707 Cv_START_DATE_TO IN DATE,
19708 Cv_END_DATE_FROM IN DATE,
19709 Cv_END_DATE_TO IN DATE,
19710 Cv_DATE_TERMINATE_FROM IN DATE,
19711 Cv_DATE_TERMINATE_TO IN DATE,
19712 Cv_STATUS IN VARCHAR2,
19713 Cv_Cont_Pty_Id IN NUMBER,
19714 Cv_cont_renewal_code IN VARCHAR2,
19715 Cv_authoring_org_id in number,
19716 Cv_contract_grp_id in number) IS
19717 SELECT /*+ leadin(b) use_nl(b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19718 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19719 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19720 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19721 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19722 WHERE Contract_Number = Cv_Contract_Num
19723 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
19724 AND Contract_Number_Modifier = Cv_Contract_Num_Modifier
19725 AND b.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19726 --
19727 -- Modified by JVARGHES on 23/May/2006 for fix of bug# 4991724
19728 -- AND trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date)) -- truncating the dates to remove
19729 -- and trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date)) -- accidental existence of time components in dates.
19730 -- AND trunc(B.End_Date) >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
19731 -- AND trunc(B.End_Date) <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
19732 -- AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
19733 -- nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19734 -- AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
19735 -- nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19736 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19737 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19738 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19739 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19740 AND ((Cv_Date_Terminate_From IS NULL) OR
19741 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19742 AND ((Cv_Date_Terminate_To IS NULL) OR
19743 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19744 --
19745 -- Modified by JVARGHES on 23/May/2006 for fix of bug# 4991724
19746 --
19747 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
19748 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19749 AND (Cv_Cont_Pty_Id IS NULL
19750 OR
19751 EXISTS (SELECT 'x'
19752 FROM Okc_K_Party_Roles_B PR
19753 WHERE pr.Cle_Id IS NULL
19754 AND PR.Dnz_Chr_Id = b.Id
19755 -- AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
19756 AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19757 AND PR.Object1_Id2 = '#'
19758 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19759 AND PR.RLE_CODE not in ('VENDOR','MERCHANT'))) ---Modified condition for ER9681794
19760 AND (Cv_contract_grp_id is null -- Where clause for contract group added dtd Dec 17th, 2003
19761 OR
19762 EXISTS (SELECT 'x'
19763 FROM Okc_K_grpings grpng
19764 WHERE grpng.included_chr_id = b.id
19765 AND grpng.cgp_parent_id = Cv_contract_grp_id ));
19766 /*Added for Bug:6767455*/
19767
19768 CURSOR Lx_Csr_ContractNum_Contracts(Cv_Contract_Num IN VARCHAR2,
19769 Cv_Contract_Num_Modifier IN VARCHAR2,
19770 Cv_START_DATE_FROM IN DATE,
19771 Cv_START_DATE_TO IN DATE,
19772 Cv_END_DATE_FROM IN DATE,
19773 Cv_END_DATE_TO IN DATE,
19774 Cv_DATE_TERMINATE_FROM IN DATE,
19775 Cv_DATE_TERMINATE_TO IN DATE,
19776 Cv_STATUS IN VARCHAR2,
19777 Cv_Cont_Pty_Id IN NUMBER,
19778 Cv_cont_renewal_code IN VARCHAR2,
19779 Cv_authoring_org_id in number,
19780 Cv_contract_grp_id in number) IS
19781 SELECT /*+ leadin(b) use_nl(b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19782 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19783 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19784 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19785 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19786 WHERE Contract_Number = Cv_Contract_Num
19787 /*and Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19788 AND nvl(Contract_Number_Modifier,-99) = nvl(Cv_Contract_Num_Modifier,nvl(Contract_Number_Modifier,-99))*/
19789 and b.id = oksb.chr_id
19790 --- truncating the dates to remove accidental existence of time components in dates.
19791 /*Commented for Bug:6767455
19792 AND trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date))
19793 and trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date))
19794 AND trunc(B.End_Date) >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
19795 AND trunc(B.End_Date) <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
19796 AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
19797 nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19798 AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
19799 nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))*/
19800 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19801 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19802 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19803 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19804 AND ((Cv_Date_Terminate_From IS NULL) OR
19805 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19806 AND ((Cv_Date_Terminate_To IS NULL) OR
19807 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19808 AND Sts_Code = nvl(Cv_STATUS,B.Sts_Code)
19809 and authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19810 AND (Cv_Cont_Pty_Id IS NULL
19811 OR
19812 EXISTS
19813 (SELECT 'x'
19814 FROM Okc_K_Party_Roles_B PR
19815 WHERE pr.Cle_Id IS NULL
19816 AND PR.Dnz_Chr_Id = b.Id
19817 --AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
19818 AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19819 AND PR.Object1_Id2 = '#'
19820 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19821 AND PR.RLE_CODE <> 'VENDOR')) ---Modified condition for ER9681794
19822 -- where clause for contract group added dtd Dec 17th, 2003
19823 AND (Cv_contract_grp_id is null
19824 OR
19825 EXISTS (SELECT 'x'
19826 FROM Okc_K_grpings grpng
19827 WHERE grpng.included_chr_id = b.id
19828 and grpng.cgp_parent_id = Cv_contract_grp_id ));
19829 /*commented for bug:6767455
19830 -- and nvl(b.renewal_type_code,'#') = nvl(Cv_cont_renewal_code,nvl(b.renewal_type_code,'#'))
19831 AND ((Cv_cont_renewal_code IS NULL)
19832 OR
19833 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code not in ('ERN','NSR')
19834 AND nvl(b.renewal_type_code,'#') = Cv_cont_renewal_code)
19835 OR
19836 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'ERN'
19837 AND nvl(b.renewal_type_code,'#') = 'NSR'
19838 and nvl(oksb.electronic_renewal_flag,'N') = 'Y')
19839 OR
19840 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'NSR'
19841 AND nvl(b.renewal_type_code,'#') = 'NSR'
19842 and nvl(oksb.electronic_renewal_flag,'N') = 'N'));*/
19843
19844 CURSOR Lx_Csr_ContractNum_Contracts1(Cv_Contract_Num IN VARCHAR2,
19845 Cv_Contract_Num_Modifier IN VARCHAR2,
19846 Cv_START_DATE_FROM IN DATE,
19847 Cv_START_DATE_TO IN DATE,
19848 Cv_END_DATE_FROM IN DATE,
19849 Cv_END_DATE_TO IN DATE,
19850 Cv_DATE_TERMINATE_FROM IN DATE,
19851 Cv_DATE_TERMINATE_TO IN DATE,
19852 Cv_STATUS IN VARCHAR2,
19853 Cv_Cont_Pty_Id IN NUMBER,
19854 Cv_cont_renewal_code IN VARCHAR2,
19855 Cv_authoring_org_id in number,
19856 Cv_contract_grp_id in number) IS
19857 SELECT /*+ leadin(b) use_nl(b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
19858 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
19859 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
19860 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
19861 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19862 WHERE Contract_Number = Cv_Contract_Num
19863 and b.id = oksb.chr_id
19864 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19865 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19866 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19867 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19868 AND ((Cv_Date_Terminate_From IS NULL) OR
19869 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19870 AND ((Cv_Date_Terminate_To IS NULL) OR
19871 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19872 AND Sts_Code = nvl(Cv_STATUS,B.Sts_Code)
19873 and authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19874 AND (Cv_Cont_Pty_Id IS NULL
19875 OR
19876 EXISTS
19877 (SELECT 'x'
19878 FROM Okc_K_Party_Roles_B PR
19879 WHERE pr.Cle_Id IS NULL
19880 AND PR.Dnz_Chr_Id = b.Id
19881 AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19882 AND PR.Object1_Id2 = '#'
19883 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19884 AND PR.RLE_CODE not in ('VENDOR','MERCHANT'))) ---Modified condition for ER9681794
19885 AND (Cv_contract_grp_id is null
19886 OR
19887 EXISTS (SELECT 'x'
19888 FROM Okc_K_grpings grpng
19889 WHERE grpng.included_chr_id = b.id
19890 and grpng.cgp_parent_id = Cv_contract_grp_id ));
19891
19892
19893 Lv_Contract_Id CONSTANT NUMBER := P_Contract_Id;
19894 Lv_Contract_Num CONSTANT VARCHAR2(120) := P_Contract_Num;
19895 Lv_Contract_Num_Modifier CONSTANT VARCHAR2(120) := P_Contract_Num_Modifier;
19896 Lv_START_FROM_DATE DATE;
19897 Lv_START_TO_DATE DATE;
19898 Lv_END_FROM_DATE DATE;
19899 Lv_END_TO_DATE DATE;
19900 Lv_FROM_TERMINATE_DATE DATE;
19901 Lv_TO_TERMINATE_DATE DATE;
19902 Lv_STATUS CONSTANT VARCHAR2(120) := P_STATUS;
19903 Lv_Cont_Pty_Id CONSTANT NUMBER := P_Cont_Pty_Id;
19904 Lv_Cont_Renewal_Code CONSTANT VARCHAR2(120) := P_cont_renewal_code;
19905 Lv_authoring_org_id CONSTANT number := P_authoring_org_id;
19906 Lv_contract_grp_id CONSTANT number := P_contract_grp_id;
19907 Lx_Result Gx_Boolean;
19908 Lx_Return_Status Gx_Ret_Sts;
19909
19910 l_last_date DATE;
19911 l_first_date DATE;
19912
19913 Lx_Contracts GT_Contract_Ref;
19914 Li_TableIdx BINARY_INTEGER;
19915
19916 BEGIN
19917 l_last_date := TO_DATE(5373484,'j');
19918 l_first_date := TO_DATE(1,'j');
19919 Lv_START_FROM_DATE := P_START_DATE_FROM;
19920 Lv_START_TO_DATE := P_START_DATE_TO;
19921 Lv_END_FROM_DATE := P_END_DATE_FROM;
19922 Lv_END_TO_DATE := P_END_DATE_TO;
19923 Lv_FROM_TERMINATE_DATE := P_DATE_TERMINATE_FROM;
19924 Lv_TO_TERMINATE_DATE := P_DATE_TERMINATE_TO;
19925 Lx_Result := G_TRUE;
19926 Lx_Return_Status := G_RET_STS_SUCCESS;
19927
19928 Li_TableIdx := 0;
19929
19930 if Lv_Contract_Id is not null then
19931 /*added for ER9681794*/
19932 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
19933
19934 FOR Idx IN Lx_Csr_Hdr_Contracts_sub(Lv_Contract_Id,
19935 Lv_Contract_Num,
19936 Lv_Contract_Num_Modifier,
19937 Lv_START_FROM_DATE,
19938 Lv_START_TO_DATE,
19939 Lv_END_FROM_DATE,
19940 Lv_END_TO_DATE,
19941 Lv_FROM_TERMINATE_DATE,
19942 Lv_TO_TERMINATE_DATE,
19943 Lv_STATUS,
19944 Lv_Cont_Pty_Id,
19945 Lv_Cont_Renewal_Code,
19946 Lv_authoring_org_id,
19947 Lv_contract_grp_id) LOOP
19948 IF ((Lv_Cont_Renewal_Code IS NULL) /*Added for bug:6767455*/
19949 OR
19950 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
19951 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
19952 OR
19953 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
19954 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
19955 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
19956 OR
19957 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
19958 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
19959 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
19960 THEN
19961 Li_TableIdx := Li_TableIdx + 1;
19962 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
19963 END IF;
19964
19965 END LOOP;
19966 ELSE
19967 /*added for ER9681794*/
19968 FOR Idx IN Lx_Csr_Hdr_Contracts(Lv_Contract_Id,
19969 Lv_Contract_Num,
19970 Lv_Contract_Num_Modifier,
19971 Lv_START_FROM_DATE,
19972 Lv_START_TO_DATE,
19973 Lv_END_FROM_DATE,
19974 Lv_END_TO_DATE,
19975 Lv_FROM_TERMINATE_DATE,
19976 Lv_TO_TERMINATE_DATE,
19977 Lv_STATUS,
19978 Lv_Cont_Pty_Id,
19979 Lv_Cont_Renewal_Code,
19980 Lv_authoring_org_id,
19981 Lv_contract_grp_id) LOOP
19982 IF ((Lv_Cont_Renewal_Code IS NULL) /*Added for bug:6767455*/
19983 OR
19984 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
19985 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
19986 OR
19987 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
19988 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
19989 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
19990 OR
19991 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
19992 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
19993 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
19994 THEN
19995 Li_TableIdx := Li_TableIdx + 1;
19996 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
19997 END IF;
19998
19999 END LOOP;
20000 END IF; ---added for ER9681794*/
20001 ELSIF (Lv_Contract_Num IS NOT NULL AND Lv_Contract_Num_Modifier IS NOT NULL )THEN /*Added for bug:6767455*/
20002 /*added for ER9681794*/
20003 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
20004
20005 FOR Idx IN Lx_Csr_KNum_Mod_Contracts_sub(Lv_Contract_Num,
20006 Lv_Contract_Num_Modifier,
20007 Lv_START_FROM_DATE,
20008 Lv_START_TO_DATE,
20009 Lv_END_FROM_DATE,
20010 Lv_END_TO_DATE,
20011 Lv_FROM_TERMINATE_DATE,
20012 Lv_TO_TERMINATE_DATE,
20013 Lv_STATUS,
20014 Lv_Cont_Pty_Id,
20015 Lv_Cont_Renewal_Code,
20016 Lv_authoring_org_id,
20017 Lv_contract_grp_id) LOOP
20018 IF ((Lv_Cont_Renewal_Code IS NULL)
20019 OR
20020 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20021 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20022 OR
20023 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20024 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20025 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20026 OR
20027 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20028 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20029 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20030 THEN
20031
20032 Li_TableIdx := Li_TableIdx + 1;
20033 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20034 END IF;
20035
20036 END LOOP;
20037 ELSE
20038 /*Added for ER9681794*/
20039 FOR Idx IN Lx_Csr_KNum_Mod_Contracts(Lv_Contract_Num,
20040 Lv_Contract_Num_Modifier,
20041 Lv_START_FROM_DATE,
20042 Lv_START_TO_DATE,
20043 Lv_END_FROM_DATE,
20044 Lv_END_TO_DATE,
20045 Lv_FROM_TERMINATE_DATE,
20046 Lv_TO_TERMINATE_DATE,
20047 Lv_STATUS,
20048 Lv_Cont_Pty_Id,
20049 Lv_Cont_Renewal_Code,
20050 Lv_authoring_org_id,
20051 Lv_contract_grp_id) LOOP
20052 IF ((Lv_Cont_Renewal_Code IS NULL)
20053 OR
20054 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20055 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20056 OR
20057 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20058 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20059 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20060 OR
20061 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20062 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20063 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20064 THEN
20065
20066 Li_TableIdx := Li_TableIdx + 1;
20067 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20068 END IF;
20069
20070 END LOOP;
20071
20072 END IF; /*added for ER9681794*/
20073
20074 ELSIF Lv_Contract_Num IS NOT NULL THEN
20075 /*Added for ER9681794*/
20076 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
20077
20078 FOR Idx IN Lx_Csr_ContractNum_Contracts1(Lv_Contract_Num,
20079 Lv_Contract_Num_Modifier,
20080 Lv_START_FROM_DATE,
20081 Lv_START_TO_DATE,
20082 Lv_END_FROM_DATE,
20083 Lv_END_TO_DATE,
20084 Lv_FROM_TERMINATE_DATE,
20085 Lv_TO_TERMINATE_DATE,
20086 Lv_STATUS,
20087 Lv_Cont_Pty_Id,
20088 Lv_Cont_Renewal_Code,
20089 Lv_authoring_org_id,
20090 Lv_contract_grp_id) LOOP
20091 IF ((Lv_Cont_Renewal_Code IS NULL)
20092 OR
20093 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20094 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20095 OR
20096 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20097 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20098 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20099 OR
20100 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20101 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20102 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20103 THEN
20104 Li_TableIdx := Li_TableIdx + 1;
20105 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20106 END IF;
20107 END LOOP;
20108 ELSE
20109 /*Added for ER9681794*/
20110 FOR Idx IN Lx_Csr_ContractNum_Contracts(Lv_Contract_Num,
20111 Lv_Contract_Num_Modifier,
20112 Lv_START_FROM_DATE,
20113 Lv_START_TO_DATE,
20114 Lv_END_FROM_DATE,
20115 Lv_END_TO_DATE,
20116 Lv_FROM_TERMINATE_DATE,
20117 Lv_TO_TERMINATE_DATE,
20118 Lv_STATUS,
20119 Lv_Cont_Pty_Id,
20120 Lv_Cont_Renewal_Code,
20121 Lv_authoring_org_id,
20122 Lv_contract_grp_id) LOOP
20123 IF ((Lv_Cont_Renewal_Code IS NULL)
20124 OR
20125 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20126 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20127 OR
20128 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20129 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20130 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20131 OR
20132 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20133 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20134 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20135 THEN
20136 Li_TableIdx := Li_TableIdx + 1;
20137 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20138 END IF;
20139 END LOOP;
20140 END IF; ---added for ER9681794
20141
20142 /* commented for bug:6767455 OKC_API.SET_MESSAGE
20143 (P_App_Name => G_APP_NAME_OKC
20144 ,P_Msg_Name => G_UNEXPECTED_ERROR
20145 ,P_Token1 => G_SQLCODE_TOKEN
20146 ,P_Token1_Value => SQLCODE
20147 ,P_Token2 => G_SQLERRM_TOKEN
20148 ,P_Token2_Value => SQLERRM);
20149
20150 OKC_API.SET_MESSAGE
20151 (P_App_Name => G_APP_NAME_OKC
20152 ,P_Msg_Name => G_DEBUG_TOKEN
20153 ,P_Token1 => G_PACKAGE_TOKEN
20154 ,P_Token1_Value => G_PKG_NAME
20155 ,P_Token2 => G_PROGRAM_TOKEN
20156 ,P_Token2_Value => 'Get_Contract_Id');
20157
20158 X_Result := G_FALSE;
20159 X_Return_Status := G_RET_STS_UNEXP_ERROR;
20160
20161 END Get_Contract_ID;*/
20162 ELSIF (Lv_Cont_Pty_Id IS NOT NULL AND Lv_contract_grp_id IS NOT NULL) THEN
20163 /*Added for ER9681794*/
20164 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
20165
20166 FOR Idx IN Lx_Csr_Party_Group_Contracts1(Lv_Contract_Num,
20167 Lv_Contract_Num_Modifier,
20168 Lv_START_FROM_DATE,
20169 Lv_START_TO_DATE,
20170 Lv_END_FROM_DATE,
20171 Lv_END_TO_DATE,
20172 Lv_FROM_TERMINATE_DATE,
20173 Lv_TO_TERMINATE_DATE,
20174 Lv_STATUS,
20175 Lv_Cont_Pty_Id,
20176 Lv_Cont_Renewal_Code,
20177 Lv_authoring_org_id,
20178 Lv_contract_grp_id) LOOP
20179 IF ((Lv_Cont_Renewal_Code IS NULL)
20180 OR
20181 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20182 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20183 OR
20184 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20185 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20186 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20187 OR
20188 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20189 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20190 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20191 THEN
20192 Li_TableIdx := Li_TableIdx + 1;
20193 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20194 END IF;
20195 END LOOP;
20196 ELSE
20197 /*added for ER9681794 */
20198 FOR Idx IN Lx_Csr_Party_Group_Contracts(Lv_Contract_Num,
20199 Lv_Contract_Num_Modifier,
20200 Lv_START_FROM_DATE,
20201 Lv_START_TO_DATE,
20202 Lv_END_FROM_DATE,
20203 Lv_END_TO_DATE,
20204 Lv_FROM_TERMINATE_DATE,
20205 Lv_TO_TERMINATE_DATE,
20206 Lv_STATUS,
20207 Lv_Cont_Pty_Id,
20208 Lv_Cont_Renewal_Code,
20209 Lv_authoring_org_id,
20210 Lv_contract_grp_id) LOOP
20211 IF ((Lv_Cont_Renewal_Code IS NULL)
20212 OR
20213 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20214 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20215 OR
20216 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20217 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20218 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20219 OR
20220 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20221 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20222 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20223 THEN
20224 Li_TableIdx := Li_TableIdx + 1;
20225 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20226 END IF;
20227 END LOOP;
20228 END IF; ---added for ER9681794
20229 ELSIF (Lv_Cont_Pty_Id IS NOT NULL) THEN
20230 /*added for ER9681794*/
20231 IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
20232 FOR Idx IN Lx_Csr_Party_Contracts_sub(Lv_Contract_Num,
20233 Lv_Contract_Num_Modifier,
20234 Lv_START_FROM_DATE,
20235 Lv_START_TO_DATE,
20236 Lv_END_FROM_DATE,
20237 Lv_END_TO_DATE,
20238 Lv_FROM_TERMINATE_DATE,
20239 Lv_TO_TERMINATE_DATE,
20240 Lv_STATUS,
20241 Lv_Cont_Pty_Id,
20242 Lv_Cont_Renewal_Code,
20243 Lv_authoring_org_id,
20244 Lv_contract_grp_id) LOOP
20245 IF ((Lv_Cont_Renewal_Code IS NULL)
20246 OR
20247 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20248 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20249 OR
20250 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20251 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20252 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20253 OR
20254 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20255 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20256 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20257 THEN
20258 Li_TableIdx := Li_TableIdx + 1;
20259 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20260 END IF;
20261 END LOOP;
20262 ELSE
20263 /*added for ER9681794*/
20264 FOR Idx IN Lx_Csr_Party_Contracts(Lv_Contract_Num,
20265 Lv_Contract_Num_Modifier,
20266 Lv_START_FROM_DATE,
20267 Lv_START_TO_DATE,
20268 Lv_END_FROM_DATE,
20269 Lv_END_TO_DATE,
20270 Lv_FROM_TERMINATE_DATE,
20271 Lv_TO_TERMINATE_DATE,
20272 Lv_STATUS,
20273 Lv_Cont_Pty_Id,
20274 Lv_Cont_Renewal_Code,
20275 Lv_authoring_org_id,
20276 Lv_contract_grp_id) LOOP
20277 IF ((Lv_Cont_Renewal_Code IS NULL)
20278 OR
20279 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20280 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20281 OR
20282 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20283 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20284 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20285 OR
20286 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20287 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20288 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20289 THEN
20290 Li_TableIdx := Li_TableIdx + 1;
20291 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20292 END IF;
20293 END LOOP;
20294 END IF; ---Added for ER9681794*/
20295
20296 ELSIF (Lv_contract_grp_id IS NOT NULL) THEN
20297 FOR Idx IN Lx_Csr_Group_Contracts(Lv_Contract_Num,
20298 Lv_Contract_Num_Modifier,
20299 Lv_START_FROM_DATE,
20300 Lv_START_TO_DATE,
20301 Lv_END_FROM_DATE,
20302 Lv_END_TO_DATE,
20303 Lv_FROM_TERMINATE_DATE,
20304 Lv_TO_TERMINATE_DATE,
20305 Lv_STATUS,
20306 Lv_Cont_Pty_Id,
20307 Lv_Cont_Renewal_Code,
20308 Lv_authoring_org_id,
20309 Lv_contract_grp_id) LOOP
20310 IF ((Lv_Cont_Renewal_Code IS NULL)
20311 OR
20312 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20313 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20314 OR
20315 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20316 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20317 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20318 OR
20319 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20320 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20321 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20322 THEN
20323
20324 Li_TableIdx := Li_TableIdx + 1;
20325 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20326 END IF;
20327
20328 END LOOP;
20329 ELSIF (Lv_FROM_TERMINATE_DATE IS NOT NULL OR Lv_TO_TERMINATE_DATE IS NOT NULL) THEN /*Added for bug:6767455*/
20330
20331 IF (Lv_START_FROM_DATE IS NULL) THEN
20332 Lv_START_FROM_DATE := l_first_date;
20333 END IF;
20334
20335 IF (Lv_START_TO_DATE IS NULL) THEN
20336 Lv_START_TO_DATE := l_last_date;
20337 END IF;
20338
20339 IF (Lv_END_FROM_DATE IS NULL) THEN
20340 Lv_END_FROM_DATE := l_first_date;
20341 END IF;
20342
20343 IF (Lv_END_TO_DATE IS NULL) THEN
20344 Lv_END_TO_DATE := l_last_date;
20345 END IF;
20346
20347 IF (Lv_FROM_TERMINATE_DATE IS NULL) THEN
20348 Lv_FROM_TERMINATE_DATE := l_first_date;
20349 END IF;
20350
20351 IF (Lv_TO_TERMINATE_DATE IS NULL) THEN
20352 Lv_TO_TERMINATE_DATE := l_last_date;
20353 END IF;
20354
20355
20356 Lv_START_FROM_DATE := TRUNC(Lv_START_FROM_DATE);
20357 Lv_END_FROM_DATE := TRUNC(Lv_END_FROM_DATE);
20358 Lv_START_TO_DATE := TRUNC(Lv_START_TO_DATE) + 0.99998843;
20359 Lv_END_TO_DATE := TRUNC(Lv_END_TO_DATE) + 0.99998843;
20360 Lv_TO_TERMINATE_DATE := TRUNC(Lv_TO_TERMINATE_DATE) + 0.99998843; /*Added for bug:6767455*/
20361 Lv_FROM_TERMINATE_DATE := TRUNC(Lv_FROM_TERMINATE_DATE);
20362
20363
20364 FOR Idx IN Lx_Csr_terdt_Contracts(Lv_Contract_Id,
20365 Lv_Contract_Num,
20366 Lv_Contract_Num_Modifier,
20367 Lv_START_FROM_DATE,
20368 Lv_START_TO_DATE,
20369 Lv_END_FROM_DATE,
20370 Lv_END_TO_DATE,
20371 Lv_FROM_TERMINATE_DATE,
20372 Lv_TO_TERMINATE_DATE,
20373 Lv_STATUS,
20374 Lv_Cont_Pty_Id,
20375 Lv_Cont_Renewal_Code,
20376 Lv_authoring_org_id,
20377 Lv_contract_grp_id) LOOP
20378 IF ((Lv_Cont_Renewal_Code IS NULL)
20379 OR
20380 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20381 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20382 OR
20383 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20384 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20385 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20386 OR
20387 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20388 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20389 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20390 THEN
20391
20392 Li_TableIdx := Li_TableIdx + 1;
20393 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20394 END IF;
20395
20396 END LOOP;
20397 ELSE
20398 IF (Lv_START_FROM_DATE IS NULL) THEN
20399 Lv_START_FROM_DATE := l_first_date;
20400 END IF;
20401
20402 IF (Lv_START_TO_DATE IS NULL) THEN
20403 Lv_START_TO_DATE := l_last_date;
20404 END IF;
20405
20406 IF (Lv_END_FROM_DATE IS NULL) THEN
20407 Lv_END_FROM_DATE := l_first_date;
20408 END IF;
20409
20410 IF (Lv_END_TO_DATE IS NULL) THEN
20411 Lv_END_TO_DATE := l_last_date;
20412 END IF;
20413
20414
20415 Lv_START_FROM_DATE := TRUNC(Lv_START_FROM_DATE);
20416 Lv_END_FROM_DATE := TRUNC(Lv_END_FROM_DATE);
20417 Lv_START_TO_DATE := TRUNC(Lv_START_TO_DATE) + 0.99998843;
20418 Lv_END_TO_DATE := TRUNC(Lv_END_TO_DATE) + 0.99998843;
20419
20420 FOR Idx IN Lx_Csr_NoHdr_Contracts(Lv_Contract_Id,
20421 Lv_Contract_Num,
20422 Lv_Contract_Num_Modifier,
20423 Lv_START_FROM_DATE,
20424 Lv_START_TO_DATE,
20425 Lv_END_FROM_DATE,
20426 Lv_END_TO_DATE,
20427 Lv_FROM_TERMINATE_DATE,
20428 Lv_TO_TERMINATE_DATE,
20429 Lv_STATUS,
20430 Lv_Cont_Pty_Id,
20431 Lv_Cont_Renewal_Code,
20432 Lv_authoring_org_id,
20433 Lv_contract_grp_id) LOOP
20434 IF ((Lv_Cont_Renewal_Code IS NULL)
20435 OR
20436 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20437 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20438 OR
20439 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20440 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20441 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20442 OR
20443 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20444 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20445 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20446 THEN
20447
20448 Li_TableIdx := Li_TableIdx + 1;
20449 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20450 END IF;
20451
20452 END LOOP;
20453 END IF;
20454
20455 X_Contracts := Lx_Contracts;
20456 X_Result := Lx_Result;
20457 X_Return_Status := Lx_Return_Status;
20458
20459
20460 EXCEPTION
20461
20462 WHEN OTHERS THEN
20463
20464 OKC_API.SET_MESSAGE
20465 (P_App_Name => G_APP_NAME_OKC
20466 ,P_Msg_Name => G_UNEXPECTED_ERROR
20467 ,P_Token1 => G_SQLCODE_TOKEN
20468 ,P_Token1_Value => SQLCODE
20469 ,P_Token2 => G_SQLERRM_TOKEN
20470 ,P_Token2_Value => SQLERRM);
20471
20472 OKC_API.SET_MESSAGE
20473 (P_App_Name => G_APP_NAME_OKC
20474 ,P_Msg_Name => G_DEBUG_TOKEN
20475 ,P_Token1 => G_PACKAGE_TOKEN
20476 ,P_Token1_Value => G_PKG_NAME
20477 ,P_Token2 => G_PROGRAM_TOKEN
20478 ,P_Token2_Value => 'Get_Contract_Id');
20479
20480 X_Result := G_FALSE;
20481 X_Return_Status := G_RET_STS_UNEXP_ERROR;
20482
20483 END Get_Contract_ID;
20484
20485 PROCEDURE Dedup_Service_Line_PlSql_Table
20486 (P_Input_Tab IN output_tbl_contractline
20487 ,X_Output_Tab OUT NOCOPY output_tbl_contractline
20488 ,X_Result OUT NOCOPY Gx_Boolean
20489 ,X_Return_Status OUT NOCOPY Gx_Ret_Sts) IS
20490
20491 Lx_DeDup_Tab output_tbl_contractline;
20492 Lx_DeDup_Tab2 output_tbl_contractline ;
20493 Lx_Result Gx_Boolean;
20494 Lx_Return_Status Gx_Ret_Sts;
20495 Lx_Temp_ContRef OKS_ENTITLEMENTS_PUB.output_rec_contractline;
20496 Li_TableIdx BINARY_INTEGER;
20497 Li_TableIdx_Out BINARY_INTEGER;
20498 Li_TableIdx_In BINARY_INTEGER;
20499
20500 Lv_Compare_Val1 OKC_K_LINES_B.ID%TYPE;--VARCHAR2(300);
20501 Lv_Compare_Val2 OKC_K_LINES_B.ID%TYPE;--VARCHAR2(300);
20502 K NUMBER;
20503 L_Found VARCHAR2(1);
20504
20505 BEGIN
20506
20507 Lx_DeDup_Tab := P_Input_Tab;
20508 Lx_Result := G_TRUE;
20509 Lx_Return_Status := G_RET_STS_SUCCESS;
20510 K := 1;
20511 L_Found := 'N';
20512
20513 FOR I IN Lx_DeDup_Tab.FIRST .. Lx_DeDup_Tab.LAST LOOP
20514
20515 IF Lx_DeDup_Tab2.COUNT > 0 THEN
20516 L_Found := 'N';
20517 FOR J IN Lx_DeDup_Tab2.FIRST .. Lx_DeDup_Tab2.LAST LOOP
20518 IF Lx_DeDup_Tab(I).Service_ID = Lx_DeDup_Tab2(J).Service_Id THEN
20519
20520 L_Found := 'Y';
20521
20522 END IF;
20523
20524 END LOOP;
20525 IF L_Found = 'N' THEN
20526
20527 K := K + 1;
20528 Lx_DeDup_Tab2(K) := Lx_DeDup_Tab(I);
20529
20530 END IF;
20531
20532 ELSE
20533 Lx_DeDup_Tab2(1) := Lx_DeDup_Tab(I);
20534
20535 END IF;
20536 END LOOP;
20537
20538
20539 Lx_DeDup_Tab.DELETE;
20540 Lx_DeDup_Tab := Lx_DeDup_Tab2;
20541 X_Output_Tab := Lx_DeDup_Tab;
20542 X_Result := Lx_Result;
20543 X_Return_Status := Lx_Return_Status;
20544
20545 EXCEPTION
20546
20547 WHEN OTHERS THEN
20548
20549 OKC_API.SET_MESSAGE
20550 (P_App_Name => G_APP_NAME_OKC
20551 ,P_Msg_Name => G_UNEXPECTED_ERROR
20552 ,P_Token1 => G_SQLCODE_TOKEN
20553 ,P_Token1_Value => SQLCODE
20554 ,P_Token2 => G_SQLERRM_TOKEN
20555 ,P_Token2_Value => SQLERRM);
20556
20557 OKC_API.SET_MESSAGE
20558 (P_App_Name => G_APP_NAME_OKC
20559 ,P_Msg_Name => G_DEBUG_TOKEN
20560 ,P_Token1 => G_PACKAGE_TOKEN
20561 ,P_Token1_Value => G_PKG_NAME
20562 ,P_Token2 => G_PROGRAM_TOKEN
20563 ,P_Token2_Value => 'Dedup_Service_Line_PlSql_Table');
20564
20565 X_Result := G_FALSE;
20566 X_Return_Status := G_RET_STS_UNEXP_ERROR;
20567
20568 END Dedup_Service_Line_PlSql_Table;
20569
20570 PROCEDURE Get_Contract_Lines
20571 (P_Contracts IN GT_Contract_Ref
20572 ,P_Contract_line_Rec IN srchline_inpcontlinerec_type
20573 ,P_Covlevel_lines_passed IN varchar2
20574 ,P_Request_Date IN DATE
20575 ,P_Entitlement_Check_YN IN Varchar2
20576 ,p_authoring_org_id in number
20577 ,X_Contracts_02 OUT nocopy output_tbl_contractline
20578 ,X_Result OUT nocopy Gx_Boolean
20579 ,X_Return_Status OUT nocopy Gx_Ret_Sts) IS
20580
20581
20582
20583 --
20584 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
20585 --
20586
20587 /*
20588
20589 CURSOR get_Contract_cur (P_Id IN NUMBER,
20590 P_Cle_Id IN NUMBER,
20591 P_Service_Item_id IN NUMBER,
20592 P_Sts_Code IN VARCHAR2,
20593 P_Start_Date_From IN DATE,
20594 P_Start_Date_TO IN DATE,
20595 P_END_Date_From IN DATE,
20596 P_END_Date_TO IN DATE,
20597 P_Cov_type IN VARCHAR2,
20598 P_Bill_To IN VARCHAR2,
20599 P_Ship_To IN VARCHAR2,
20600 P_renewal_code IN VARCHAR2,
20601 p_authoring_org_id in number) IS
20602 SELECT Hd.Id Id,
20603 Hd.Contract_Number Contract_Number,
20604 Hd.Contract_Number_Modifier Contract_Number_Modifier,
20605 Hd.Short_Description Short_Description,
20606 Hd.Start_Date Hd_Start_Date,
20607 Hd.End_Date Hd_End_Date,
20608 hd.scs_code hd_scs_code,
20609 Sv.Id Service_ID,
20610 Sv.Line_Number Line_Number,
20611 --- truncating the dates to remove accidental existence of time components in dates.
20612 trunc(Sv.Start_Date) Start_Date,
20613 trunc(Sv.End_Date) End_Date,
20614 trunc(Sv.Date_Terminated) Date_Terminated,
20615 Sv.Sts_code Sts_code,
20616 SYS.description Name,
20617 --- truncating the dates to remove accidental existence of time components in dates.
20618 trunc(Clv.Start_Date) Item_Start_Date,
20619 trunc(Clv.End_Date) Item_End_Date,
20620 trunc(Clv.Date_Terminated) Item_Date_Terminated,
20621 cov.id cov_line_id,
20622 Cov.Name Cov_Name,
20623 --- truncating the dates to remove accidental existence of time components in dates.
20624 trunc(Cov.Start_Date) Cov_Start_Date,
20625 trunc(Cov.End_Date) Cov_End_Date,
20626 trunc(Cov.Date_Terminated) Cov_Date_Terminated,
20627 Sv.Lse_Id Service_Lse_Id
20628 FROM OKC_K_HEADERS_V HD,
20629 OKC_K_LINES_V Sv,
20630 OKC_K_LINES_V Cov,
20631 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
20632 OKC_K_LINES_V Clv,
20633 OKC_K_ITEMS items,
20634 Okx_System_Items_V sys
20635 WHERE Hd.Id = Sv.chr_id
20636 AND Hd.Id = nvl(P_Id,Hd.Id)
20637 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
20638 AND Sv.lse_id in (1,14,19)
20639 AND Sv.id = items.cle_id
20640 AND Sv.dnz_chr_id = items.dnz_chr_id
20641 AND sys.id1 = to_number(items.object1_id1)
20642 AND sys.id2 = to_number(items.object1_id2)
20643 AND items.dnz_chr_id = Hd.Id
20644 AND to_number(items.object1_id1) = nvl(P_service_Item_id,to_number(items.object1_id1))
20645 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
20646 AND items.object1_id2 = sys.id2 --'204'
20647 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
20648 --- truncating the dates to remove accidental existence of time components in dates.
20649 AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
20650 and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
20651 AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
20652 and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
20653 AND Cov.lse_id in (2,15,20)
20654 AND Cov.cle_id = Sv.id
20655 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id
20656 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
20657 AND clv.id = P_Cle_Id --nvl(P_Cle_Id,clv.id)
20658 AND clv.lse_id in (7,8,9,10,11,18,25,35)
20659 AND clv.dnz_chr_id = Sv.dnz_chr_id
20660 AND clv.dnz_chr_id = Hd.Id
20661 AND clv.cle_id = Sv.Id
20662 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
20663 and nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20664 and nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20665 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
20666 order by sv.id;
20667 */
20668
20669 --
20670 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
20671 --
20672 /*Added for bug:6767455*/
20673 CURSOR get_Contract_noitem_cur(P_Id IN NUMBER,
20674 P_Cle_Id IN NUMBER,
20675 P_Sts_Code IN VARCHAR2,
20676 P_Start_Date_From IN DATE,
20677 P_Start_Date_TO IN DATE,
20678 P_END_Date_From IN DATE,
20679 P_END_Date_TO IN DATE,
20680 P_Cov_type IN VARCHAR2,
20681 P_Bill_To IN VARCHAR2,
20682 P_Ship_To IN VARCHAR2,
20683 P_renewal_code IN VARCHAR2,
20684 p_authoring_org_id in number) IS
20685 SELECT /*+ leading(clv) use_nl(clv sv items sys hd cov okscov ) */
20686 Hd.Id Id,
20687 Hd.Contract_Number Contract_Number,
20688 Hd.Contract_Number_Modifier Contract_Number_Modifier,
20689 HdT.Short_Description Short_Description, /*bug 7412576*/
20690 Hd.Start_Date Hd_Start_Date,
20691 Hd.End_Date Hd_End_Date,
20692 hd.scs_code hd_scs_code,
20693 hd.org_id org_id, /*bug:7363217*/
20694 Sv.Id Service_ID,
20695 Sv.Line_Number Line_Number,
20696 --- truncating the dates to remove accidental existence of time components in dates.
20697 trunc(Sv.Start_Date) Start_Date,
20698 trunc(Sv.End_Date) End_Date,
20699 trunc(Sv.Date_Terminated) Date_Terminated,
20700 Sv.Sts_code Sts_code,
20701 SYS.concatenated_segments Name,
20702 --- truncating the dates to remove accidental existence of time components in dates.
20703 trunc(Clv.Start_Date) Item_Start_Date,
20704 trunc(Clv.End_Date) Item_End_Date,
20705 trunc(Clv.Date_Terminated) Item_Date_Terminated,
20706 cov.id cov_line_id,
20707 Cov.Name Cov_Name,
20708 --- truncating the dates to remove accidental existence of time components in dates.
20709 /*trunc(Cov.Start_Date) Cov_Start_Date,
20710 trunc(Cov.End_Date) Cov_End_Date,
20711 trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/ /*bug 7412576*/
20712 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
20713 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
20714 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
20715 Sv.Lse_Id Service_Lse_Id
20716 FROM OKC_K_HEADERS_ALL_B HD,
20717 OKC_K_HEADERS_TL HDT, /*bug 7412576 OKC_K_HEADERS_V HD,*/
20718 OKC_K_LINES_B Sv,
20719 OKC_K_LINES_V Cov,
20720 oks_k_lines_b ksl,
20721 oks_k_lines_B okscov, --11.5.10 rule rearchitecture changes
20722 OKC_K_LINES_B Clv,
20723 OKC_K_ITEMS items,
20724 MTL_SYSTEM_ITEMS_B_KFV sys
20725 WHERE HDT.ID = HD.ID
20726 AND HDT.LANGUAGE = USERENV('LANG')
20727 AND Hd.Id = Sv.chr_id
20728 AND Hd.Id = nvl(P_Id,Hd.Id)
20729 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
20730 AND Sv.lse_id in (1,14,19)
20731 AND Sv.id = items.cle_id
20732 AND Sv.dnz_chr_id = items.dnz_chr_id
20733 AND sys.inventory_item_id = to_number(items.object1_id1)
20734 AND sys.organization_id = to_number(items.object1_id2)
20735 AND items.dnz_chr_id = Hd.Id
20736 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
20737 -- AND items.object1_id2 = sys.id2 --'204'
20738 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
20739 --- truncating the dates to remove accidental existence of time components in dates.
20740 -- AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
20741 -- and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
20742 -- AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
20743 -- and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
20744 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
20745 AND sv.End_Date between P_End_Date_From and P_End_Date_To
20746 AND ksl.cle_id = sv.id
20747 and ksl.Coverage_Id = COV.Id /*bug 7412576*/
20748 AND Cov.lse_id in (2,15,20)
20749 /* AND Cov.cle_id = Sv.id
20750 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id */ /*bug 7412576*/
20751 and okscov.cle_id = cov.id -- 11.5.10 rule rearchitecture changes
20752 AND clv.id = P_Cle_Id -- nvl(P_Cle_Id,clv.id)
20753 AND clv.lse_id in (7,8,9,10,11,18,25,35)
20754 AND clv.dnz_chr_id = Sv.dnz_chr_id
20755 AND clv.dnz_chr_id = Hd.Id
20756 AND clv.cle_id = Sv.Id
20757 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
20758 -- and nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20759 -- and nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20760 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
20761 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
20762 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
20763 order by sv.id;
20764 /*Added for bug:6767455*/
20765 CURSOR get_Contract_cur (P_Id IN NUMBER,
20766 P_Cle_Id IN NUMBER,
20767 P_Service_Item_id IN NUMBER,
20768 P_Sts_Code IN VARCHAR2,
20769 P_Start_Date_From IN DATE,
20770 P_Start_Date_TO IN DATE,
20771 P_END_Date_From IN DATE,
20772 P_END_Date_TO IN DATE,
20773 P_Cov_type IN VARCHAR2,
20774 P_Bill_To IN VARCHAR2,
20775 P_Ship_To IN VARCHAR2,
20776 P_renewal_code IN VARCHAR2,
20777 p_authoring_org_id in number) IS
20778 SELECT /*+ leading(clv) use_nl(clv sv items sys hd cov okscov) index(items okc_k_items_n1)*/
20779 Hd.Id Id,
20780 Hd.Contract_Number Contract_Number,
20781 Hd.Contract_Number_Modifier Contract_Number_Modifier,
20782 HdT.Short_Description Short_Description, -- HdT.Short_Description -- Modified for 12.0 MOAC project (JVARGHES)
20783 Hd.Start_Date Hd_Start_Date,
20784 Hd.End_Date Hd_End_Date,
20785 hd.scs_code hd_scs_code,
20786 hd.org_id org_id, -- Modified for 12.0 MOAC project (JVARGHES)
20787 Sv.Id Service_ID,
20788 Sv.Line_Number Line_Number,
20789 --- truncating the dates to remove accidental existence of time components in dates.
20790 trunc(Sv.Start_Date) Start_Date,
20791 trunc(Sv.End_Date) End_Date,
20792 trunc(Sv.Date_Terminated) Date_Terminated,
20793 Sv.Sts_code Sts_code,
20794 SYS.concatenated_segments Name,
20795 --- truncating the dates to remove accidental existence of time components in dates.
20796 trunc(Clv.Start_Date) Item_Start_Date,
20797 trunc(Clv.End_Date) Item_End_Date,
20798 trunc(Clv.Date_Terminated) Item_Date_Terminated,
20799 cov.id cov_line_id,
20800 Cov.Name Cov_Name,
20801 --- truncating the dates to remove accidental existence of time components in dates.
20802 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
20803 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
20804 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
20805 Sv.Lse_Id Service_Lse_Id
20806 FROM OKC_K_HEADERS_ALL_B HD, -- Modified for 12.0 MOAC project (JVARGHES)
20807 OKC_K_HEADERS_TL HDT, -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
20808 OKC_K_LINES_B Sv,
20809 OKS_K_LINES_B KSL,
20810 OKC_K_LINES_V Cov,
20811 oks_k_lines_B okscov, --11.5.10 rule rearchitecture changes
20812 OKC_K_LINES_B Clv,
20813 OKC_K_ITEMS items,
20814 MTL_SYSTEM_ITEMS_B_KFV sys
20815 WHERE Hd.Id = Sv.chr_id
20816 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
20817 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
20818 AND Hd.Id = nvl(P_Id,Hd.Id)
20819 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
20820 AND Sv.lse_id in (1,14,19)
20821 AND Sv.id = items.cle_id
20822 AND Sv.dnz_chr_id = items.dnz_chr_id
20823 /*AND sys.id1 = to_number(items.object1_id1)
20824 AND sys.id2 = to_number(items.object1_id2)*/
20825 AND sys.inventory_item_id = to_number(items.object1_id1)
20826 AND sys.organization_id = to_number(items.object1_id2)
20827 AND items.dnz_chr_id = Hd.Id
20828 --AND to_number(items.object1_id1) = nvl(P_service_Item_id,to_number(items.object1_id1))
20829 AND items.object1_id1 = to_number(P_service_Item_id)
20830 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
20831 --AND items.object1_id2 = sys.id2 --'204'
20832 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
20833 --- truncating the dates to remove accidental existence of time components in dates.
20834 /*AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
20835 and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
20836 AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
20837 and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))*/
20838 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
20839 AND sv.End_Date between P_End_Date_From and P_End_Date_To
20840 AND ksl.cle_id = sv.id
20841 and ksl.Coverage_Id = COV.Id
20842 AND Cov.lse_id in (2,15,20)
20843 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
20844 AND clv.id = P_Cle_Id --nvl(P_Cle_Id,clv.id)
20845 AND clv.lse_id in (7,8,9,10,11,18,25,35)
20846 AND clv.dnz_chr_id = Sv.dnz_chr_id
20847 AND clv.dnz_chr_id = Hd.Id
20848 AND clv.cle_id = Sv.Id
20849 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
20850 /*and nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20851 and nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes*/
20852 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
20853 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
20854 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
20855 order by sv.id;
20856 CURSOR get_Contract_noclvl_noitem_cur (P_Id IN NUMBER,
20857 P_Cle_Id IN NUMBER,
20858 P_Sts_Code IN VARCHAR2,
20859 P_Start_Date_From IN DATE,
20860 P_Start_Date_TO IN DATE,
20861 P_END_Date_From IN DATE,
20862 P_END_Date_TO IN DATE,
20863 P_Cov_type IN VARCHAR2,
20864 P_Bill_To IN VARCHAR2,
20865 P_Ship_To IN VARCHAR2,
20866 P_renewal_code IN VARCHAR2,
20867 p_authoring_org_id in number) IS
20868 SELECT /*+ leading(sv) use_nl(sv items sys hd cov okscov) */
20869 Hd.Id Id,
20870 Hd.Contract_Number Contract_Number,
20871 Hd.Contract_Number_Modifier Contract_Number_Modifier,
20872 HdT.Short_Description Short_Description, /*bug 7412576*/
20873 Hd.Start_Date Hd_Start_Date,
20874 Hd.End_Date Hd_End_Date,
20875 hd.scs_code hd_scs_code,
20876 hd.org_id org_id, /*bug:7363217*/
20877 Sv.Id Service_ID,
20878 Sv.Line_Number Line_Number,
20879 --- truncating the dates to remove accidental existence of time components in dates.
20880 trunc(Sv.Start_Date) Start_Date,
20881 trunc(Sv.End_Date) End_Date,
20882 trunc(Sv.Date_Terminated) Date_Terminated,
20883 Sv.Sts_code Sts_code,
20884 SYS.concatenated_segments Name,
20885 cov.id cov_line_id,
20886 Cov.Name Cov_Name,
20887 --- truncating the dates to remove accidental existence of time components in dates.
20888 /*trunc(Cov.Start_Date) Cov_Start_Date,
20889 trunc(Cov.End_Date) Cov_End_Date,
20890 trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/ /*bug 7412576*/
20891 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
20892 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
20893 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
20894 Sv.Lse_Id Service_Lse_Id
20895 FROM OKC_K_HEADERS_ALL_B HD,
20896 OKC_K_HEADERS_TL HDT, /*OKC_K_HEADERS_V HD,*/ /*bug 7412576*/
20897 OKC_K_LINES_B Sv,
20898 OKS_K_LINES_B KSL,
20899 OKC_K_LINES_V Cov,
20900 oks_k_lines_b okscov,--11.5.10 rule rearchitecture changes
20901 OKC_K_ITEMS items,
20902 MTL_SYSTEM_ITEMS_B_KFV sys
20903 WHERE Hd.Id = Sv.chr_id
20904 AND HDT.ID = HD.ID
20905 AND HDT.LANGUAGE = USERENV('LANG') /*bug 7412576*/
20906 AND Hd.id = SV.DNZ_CHR_ID
20907 AND Hd.Id = nvl(P_Id,Hd.Id)
20908 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
20909 AND Sv.lse_id in (1,14,19)
20910 AND Sv.id = items.cle_id
20911 AND Sv.dnz_chr_id = items.dnz_chr_id
20912 AND sys.inventory_item_id = to_number(items.object1_id1)
20913 AND sys.organization_id = to_number(items.object1_id2)
20914 AND items.dnz_chr_id = Hd.Id
20915 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
20916 -- AND items.object1_id2 = sys.id2 --'204'
20917 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
20918 --- truncating the dates to remove accidental existence of time components in dates.
20919 -- AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
20920 -- and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
20921 -- AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
20922 -- and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
20923 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
20924 AND sv.End_Date between P_End_Date_From and P_End_Date_To
20925 AND ksl.cle_id = sv.id
20926 and ksl.Coverage_Id = COV.Id
20927 AND Cov.lse_id in (2,15,20)
20928 /* AND Cov.cle_id = Sv.id
20929 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id*/ /*bug 7412576*/
20930 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
20931 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
20932 -- and nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20933 -- and nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20934 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
20935 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
20936 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
20937 order by sv.id;
20938
20939 CURSOR get_Cont_noclvl_chr_noitem_cur (P_Id IN NUMBER,
20940 P_Cle_Id IN NUMBER, -- not being used anywhere
20941 P_Sts_Code IN VARCHAR2,
20942 P_Start_Date_From IN DATE,
20943 P_Start_Date_TO IN DATE,
20944 P_END_Date_From IN DATE,
20945 P_END_Date_TO IN DATE,
20946 P_Cov_type IN VARCHAR2,
20947 P_Bill_To IN VARCHAR2,
20948 P_Ship_To IN VARCHAR2,
20949 P_renewal_code IN VARCHAR2,
20950 p_authoring_org_id in number) IS
20951 SELECT /*+ leading(hd) use_nl(hd sv items sys cov okscov) */
20952 Hd.Id Id,
20953 Hd.Contract_Number Contract_Number,
20954 Hd.Contract_Number_Modifier Contract_Number_Modifier,
20955 HdT.Short_Description Short_Description, /*bug 7412576*/
20956 Hd.Start_Date Hd_Start_Date,
20957 Hd.End_Date Hd_End_Date,
20958 hd.scs_code hd_scs_code,
20959 hd.org_id org_id, /*bug:7363217*/
20960 Sv.Id Service_ID,
20961 Sv.Line_Number Line_Number,
20962 --- truncating the dates to remove accidental existence of time components in dates.
20963 trunc(Sv.Start_Date) Start_Date,
20964 trunc(Sv.End_Date) End_Date,
20965 trunc(Sv.Date_Terminated) Date_Terminated,
20966 Sv.Sts_code Sts_code,
20967 SYS.concatenated_segments Name,
20968 cov.id cov_line_id,
20969 Cov.Name Cov_Name,
20970 --- truncating the dates to remove accidental existence of time components in dates.
20971
20972 /* trunc(Cov.Start_Date) Cov_Start_Date,
20973 trunc(Cov.End_Date) Cov_End_Date,
20974 trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/ /*bug 7412576*/
20975 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
20976 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
20977 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
20978 Sv.Lse_Id Service_Lse_Id
20979 FROM OKC_K_HEADERS_ALL_B HD,
20980 OKC_K_HEADERS_TL HDT,/*OKC_K_HEADERS_V HD,*/ /*bug 7412576*/
20981 OKC_K_LINES_B Sv,
20982 OKS_K_LINES_B KSL,
20983 OKC_K_LINES_V Cov,
20984 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
20985 OKC_K_ITEMS items,
20986 MTL_SYSTEM_ITEMS_B_KFV sys
20987 WHERE Hd.Id = Sv.chr_id
20988 AND HDT.ID = HD.ID
20989 AND HDT.LANGUAGE = USERENV('LANG')
20990 AND Hd.id = SV.DNZ_CHR_ID
20991 AND Hd.Id = P_ID -- nvl(P_Id,Hd.Id)
20992 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
20993 AND Sv.lse_id in (1,14,19)
20994 AND Sv.id = items.cle_id
20995 AND Sv.dnz_chr_id = items.dnz_chr_id
20996 AND sys.inventory_item_id = to_number(items.object1_id1)
20997 AND sys.organization_id = to_number(items.object1_id2)
20998 AND items.dnz_chr_id = Hd.Id
20999 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
21000 -- AND items.object1_id2 = sys.id2 --'204'
21001 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
21002 --- truncating the dates to remove accidental existence of time components in dates.
21003 -- AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
21004 -- and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
21005 -- AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
21006 -- and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
21007 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
21008 AND sv.End_Date between P_End_Date_From and P_End_Date_To
21009 AND ksl.cle_id = sv.id
21010 and ksl.Coverage_Id = COV.Id
21011 AND Cov.lse_id in (2,15,20)
21012 /* AND Cov.cle_id = Sv.id
21013 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id*/ /*bug 7412576*/
21014 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
21015 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
21016 -- and nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
21017 -- and nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
21018 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
21019 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
21020 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
21021 order by sv.id;
21022
21023 /*modified for bug:8700389*/ --Fix for Bug#16188340
21024 CURSOR get_Cont_noclvl_kid_noitem_cur(P_Id IN NUMBER,
21025 P_Start_Date_From IN DATE,
21026 P_Start_Date_TO IN DATE,
21027 P_END_Date_From IN DATE,
21028 P_END_Date_TO IN DATE) IS
21029 SELECT /*+ leading(hd) use_nl(hd sv items sys cov okscov) */
21030 Hd.Id Id,
21031 Hd.Contract_Number Contract_Number,
21032 Hd.Contract_Number_Modifier Contract_Number_Modifier,
21033 HDT.SHORT_DESCRIPTION SHORT_DESCRIPTION,
21034 Hd.Start_Date Hd_Start_Date,
21035 Hd.End_Date Hd_End_Date,
21036 hd.scs_code hd_scs_code,
21037 hd.org_id org_id,
21038 Sv.Id Service_ID,
21039 Sv.Line_Number Line_Number,
21040 trunc(Sv.Start_Date) Start_Date,
21041 trunc(Sv.End_Date) End_Date,
21042 trunc(Sv.Date_Terminated) Date_Terminated,
21043 Sv.Sts_code Sts_code,
21044 SYS.concatenated_segments Name,
21045 cov.id cov_line_id,
21046 COVTL.NAME COV_NAME,
21047 /* trunc(Cov.Start_Date) Cov_Start_Date,
21048 trunc(Cov.End_Date) Cov_End_Date,
21049 trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/
21050 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
21051 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
21052 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
21053 Sv.Lse_Id Service_Lse_Id
21054 FROM OKC_K_HEADERS_ALL_B HD, /*modified for bug:8700389*/
21055 OKC_K_HEADERS_TL HDT,
21056 OKC_K_LINES_B Sv,
21057 OKS_K_LINES_B KSL,
21058 OKC_K_LINES_B Cov,
21059 OKC_K_LINES_TL COVTL,
21060 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
21061 OKC_K_ITEMS items,
21062 MTL_SYSTEM_ITEMS_B_KFV sys
21063 WHERE Hd.Id = Sv.chr_id
21064 AND Hd.id = SV.DNZ_CHR_ID
21065 AND Hd.Id = P_ID -- nvl(P_Id,Hd.Id)
21066 AND HD.ID=HDT.ID
21067 AND HDT.LANGUAGE = USERENV('LANG')
21068 AND Sv.lse_id in (1,14,19)
21069 AND Sv.id = items.cle_id
21070 AND Sv.dnz_chr_id = items.dnz_chr_id
21071 AND sys.inventory_item_id = to_number(items.object1_id1)
21072 AND sys.organization_id = to_number(items.object1_id2)
21073 AND items.dnz_chr_id = Hd.Id
21074 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
21075 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
21076 AND sv.End_Date between P_End_Date_From and P_End_Date_To
21077 AND ksl.cle_id = sv.id
21078 AND ksl.Coverage_Id = COV.Id
21079 AND Cov.lse_id in (2,15,20)
21080 /*AND Cov.cle_id = Sv.id
21081 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id*/
21082 AND COVTL.ID=COV.ID
21083 AND COVTL.LANGUAGE = USERENV('LANG')
21084 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
21085 order by sv.id;
21086
21087 CURSOR get_Contract_noclvl_cur (P_Id IN NUMBER,
21088 P_Cle_Id IN NUMBER,
21089 P_Service_Item_id IN NUMBER,
21090 P_Sts_Code IN VARCHAR2,
21091 P_Start_Date_From IN DATE,
21092 P_Start_Date_TO IN DATE,
21093 P_END_Date_From IN DATE,
21094 P_END_Date_TO IN DATE,
21095 P_Cov_type IN VARCHAR2,
21096 P_Bill_To IN VARCHAR2,
21097 P_Ship_To IN VARCHAR2,
21098 P_renewal_code IN VARCHAR2,
21099 p_authoring_org_id in number) IS
21100 SELECT /*+ leading(sv) use_nl(sv items sys hd cov okscov) index(items okc_k_items_n1)*/
21101 Hd.Id Id,
21102 Hd.Contract_Number Contract_Number,
21103 Hd.Contract_Number_Modifier Contract_Number_Modifier,
21104 HdT.Short_Description Short_Description, -- HdT.Short_Description -- Modified for 12.0 MOAC project (JVARGHES)
21105 Hd.Start_Date Hd_Start_Date,
21106 Hd.End_Date Hd_End_Date,
21107 hd.scs_code hd_scs_code,
21108 hd.org_id org_id, -- Modified for 12.0 MOAC project (JVARGHES)
21109 Sv.Id Service_ID,
21110 Sv.Line_Number Line_Number,
21111 --- truncating the dates to remove accidental existence of time components in dates.
21112 trunc(Sv.Start_Date) Start_Date,
21113 trunc(Sv.End_Date) End_Date,
21114 trunc(Sv.Date_Terminated) Date_Terminated,
21115 Sv.Sts_code Sts_code,
21116 SYS.concatenated_segments Name,
21117 cov.id cov_line_id,
21118 Cov.Name Cov_Name,
21119 --- truncating the dates to remove accidental existence of time components in dates.
21120 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
21121 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
21122 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
21123 Sv.Lse_Id Service_Lse_Id
21124 FROM OKC_K_HEADERS_ALL_B HD, -- Modified for 12.0 MOAC project (JVARGHES)
21125 OKC_K_HEADERS_TL HDT, -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
21126 OKC_K_LINES_B Sv,
21127 OKC_K_LINES_V Cov,
21128 oks_k_lines_b ksl,
21129 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
21130 OKC_K_ITEMS items,
21131 MTL_SYSTEM_ITEMS_B_KFV sys
21132 WHERE Hd.Id = Sv.chr_id
21133 AND Hd.id = SV.DNZ_CHR_ID
21134 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
21135 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
21136 AND Hd.Id = nvl(P_Id,Hd.Id)
21137 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
21138 AND Sv.lse_id in (1,14,19)
21139 AND Sv.id = items.cle_id
21140 AND Sv.dnz_chr_id = items.dnz_chr_id
21141 /*AND sys.id1 = to_number(items.object1_id1)
21142 AND sys.id2 = to_number(items.object1_id2)*/ /*Bug:6767455*/
21143 AND sys.inventory_item_id = to_number(items.object1_id1)
21144 AND sys.organization_id = to_number(items.object1_id2)
21145 AND items.dnz_chr_id = Hd.Id
21146 AND items.object1_id1 = to_number(P_service_Item_id)
21147 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
21148 -- AND items.object1_id2 = sys.id2 --'204'
21149 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
21150 --- truncating the dates to remove accidental existence of time components in dates.
21151 -- AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
21152 -- and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
21153 -- AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
21154 -- and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
21155 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
21156 AND sv.End_Date between P_End_Date_From and P_End_Date_To
21157 AND ksl.cle_id = sv.id
21158 and ksl.Coverage_Id = COV.Id
21159 AND Cov.lse_id in (2,15,20)
21160 /*AND Cov.cle_id = Sv.id
21161 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id*/ /*bug 7412576*/
21162 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
21163 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
21164 -- and nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
21165 -- and nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
21166 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
21167 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
21168 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
21169 order by sv.id;
21170
21171 CURSOR get_Cont_noclvl_chr_cur (P_Id IN NUMBER,
21172 P_Cle_Id IN NUMBER, -- not being used anywhere
21173 P_Service_Item_id IN NUMBER,
21174 P_Sts_Code IN VARCHAR2,
21175 P_Start_Date_From IN DATE,
21176 P_Start_Date_TO IN DATE,
21177 P_END_Date_From IN DATE,
21178 P_END_Date_TO IN DATE,
21179 P_Cov_type IN VARCHAR2,
21180 P_Bill_To IN VARCHAR2,
21181 P_Ship_To IN VARCHAR2,
21182 P_renewal_code IN VARCHAR2,
21183 p_authoring_org_id in number) IS
21184 SELECT /*+ leading(hd) use_nl(hd sv items sys cov okscov) index(items okc_k_items_n1)*/
21185 Hd.Id Id,
21186 Hd.Contract_Number Contract_Number,
21187 Hd.Contract_Number_Modifier Contract_Number_Modifier,
21188 HdT.Short_Description Short_Description, /*bug 7412576*/
21189 Hd.Start_Date Hd_Start_Date,
21190 Hd.End_Date Hd_End_Date,
21191 hd.scs_code hd_scs_code,
21192 hd.org_id org_id, /*bug:7363217*/
21193 Sv.Id Service_ID,
21194 Sv.Line_Number Line_Number,
21195 --- truncating the dates to remove accidental existence of time components in dates.
21196 trunc(Sv.Start_Date) Start_Date,
21197 trunc(Sv.End_Date) End_Date,
21198 trunc(Sv.Date_Terminated) Date_Terminated,
21199 Sv.Sts_code Sts_code,
21200 SYS.concatenated_segments Name,
21201 cov.id cov_line_id,
21202 Cov.Name Cov_Name,
21203 --- truncating the dates to remove accidental existence of time components in dates.
21204 /*trunc(Cov.Start_Date) Cov_Start_Date,
21205 trunc(Cov.End_Date) Cov_End_Date,
21206 trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/ /*bug 7412576*/
21207 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
21208 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
21209 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
21210 Sv.Lse_Id Service_Lse_Id
21211 FROM OKC_K_HEADERS_ALL_B HD,
21212 OKC_K_HEADERS_TL HDT, /*OKC_K_HEADERS_V HD,*/ /*bug 7412576*/
21213 OKC_K_LINES_B Sv,
21214 OKC_K_LINES_V Cov,
21215 oks_k_lines_b ksl,
21216 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
21217 OKC_K_ITEMS items,
21218 MTL_SYSTEM_ITEMS_B_KFV sys
21219 WHERE Hd.Id = Sv.chr_id
21220 AND HDT.ID = HD.ID
21221 AND HDT.LANGUAGE = USERENV('LANG') /*bug 7412576*/
21222 AND Hd.id = SV.DNZ_CHR_ID
21223 AND Hd.Id = p_id -- nvl(P_Id,Hd.Id)
21224 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
21225 AND Sv.lse_id in (1,14,19)
21226 AND Sv.id = items.cle_id
21227 AND Sv.dnz_chr_id = items.dnz_chr_id
21228 AND sys.inventory_item_id = to_number(items.object1_id1)
21229 AND sys.organization_id = to_number(items.object1_id2)
21230 AND items.dnz_chr_id = Hd.Id
21231 --AND to_number(items.object1_id1) = nvl(P_service_Item_id,to_number(items.object1_id1))
21232 AND items.object1_id1 = to_number(P_service_Item_id)
21233 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
21234 --AND items.object1_id2 = sys.id2 --'204'
21235 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
21236 --- truncating the dates to remove accidental existence of time components in dates.
21237 /*AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
21238 and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
21239 AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
21240 and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))*/
21241 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
21242 AND sv.End_Date between P_End_Date_From and P_End_Date_To
21243 AND ksl.cle_id = sv.id
21244 and ksl.Coverage_Id = COV.Id /*commented for bug:6767455*/ /*bug 7412576*/
21245 AND Cov.lse_id in (2,15,20)
21246 /* AND Cov.cle_id = Sv.id
21247 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id*/
21248 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
21249 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
21250 /*and nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
21251 and nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes*/
21252 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
21253 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
21254 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
21255 order by sv.id;
21256 Type l_num_tbl is table of NUMBER index by BINARY_INTEGER ; /* Added for bug:6767455*/
21257 Type l_date_tbl is table of DATE index by BINARY_INTEGER ;
21258 Type l_chr_tbl is table of Varchar2(600) index by BINARY_INTEGER ;
21259
21260 Id l_num_tbl;
21261 contract_number l_chr_tbl;
21262 Contract_Number_Modifier l_chr_tbl;
21263 Short_Description l_chr_tbl;
21264 Hd_Start_Date l_date_tbl;
21265 Hd_End_Date l_date_tbl;
21266 hd_scs_code l_chr_tbl;
21267 org_id l_num_tbl;
21268 Service_ID l_num_tbl;
21269 Line_Number l_num_tbl;
21270 Start_Date l_date_tbl;
21271 End_Date l_date_tbl;
21272 Date_Terminated l_date_tbl;
21273 Sts_code l_chr_tbl;
21274 Name l_chr_tbl;
21275 Item_Start_Date l_date_tbl;
21276 Item_End_Date l_date_tbl;
21277 Item_Date_Terminated l_date_tbl;
21278 cov_line_id l_num_tbl;
21279 Cov_Name l_chr_tbl;
21280 Cov_Start_Date l_date_tbl;
21281 Cov_End_Date l_date_tbl;
21282 Cov_Date_Terminated l_date_tbl;
21283 Service_Lse_Id l_num_tbl;
21284
21285 Lv_Contracts GT_Contract_Ref;
21286 Lv_Contract_line_Rec srchline_inpcontlinerec_type;
21287 Lv_Request_Date Date;
21288 Lv_Contracts_02 output_tbl_contractline ;
21289 Lv_Contracts_02_Out output_tbl_contractline ;
21290
21291 Lv_Entitlment_Check CONSTANT VARCHAR2(1) := P_Entitlement_Check_YN;
21292 Lv_authoring_org_id CONSTANT number := P_authoring_org_id; -- multi org security check
21293 Lv_covlevel_lines_passed CONSTANT VARCHAR2(1) := P_Covlevel_lines_passed;
21294
21295 Lx_Result Gx_Boolean;
21296 Lx_Return_Status Gx_Ret_Sts;
21297
21298 Lx_counter Binary_Integer;
21299 Lv_Entile_Flag VARCHAR2(1);
21300 L_Profile_Flag VARCHAR2(1);
21301 L_return_Status VARCHAR2(1);
21302 Lx_service_id number;
21303 L_valid_line varchar2(1);
21304 L_line_id_tbl Line_id_tbl;
21305 l_last_date DATE;
21306 l_first_date DATE;
21307
21308 -- Modified for 12.0 MOAC project (JVARGHES)
21309 --
21310
21311 CURSOR c_OU(c_Org_Id IN NUMBER)
21312 IS SELECT OU.Name
21313 FROM HR_ALL_ORGANIZATION_UNITS_TL OU
21314 WHERE OU.ORGANIZATION_ID = c_Org_Id
21315 AND OU.LANGUAGE = USERENV('LANG');
21316 --
21317 --
21318
21319 FUNCTION Get_Line_Styles(P_lse_id IN NUMBER) Return Varchar2 is
21320
21321 CURSOR get_line_style (lse_id IN NUMBER) IS
21322 SELECT Id,NAME
21323 FROM OKC_LINE_STYLES_V
21324 WHERE ID = lse_id;
21325
21326 L_Lse_Id NUMBER;
21327 L_style_name VARCHAR2(100);
21328 BEGIN
21329 L_Lse_Id := P_lse_id;
21330 L_style_name := NULL;
21331
21332 FOR get_line_style_rec in get_line_style(l_Lse_id) LOOP
21333 l_style_name := get_line_style_rec.NAME;
21334
21335 END LOOP;
21336 RETURN l_style_name;
21337 END Get_Line_Styles;
21338
21339 PROCEDURE Fetch_Sts_Meaning IS
21340
21341 CURSOR GET_STATUS_CUR IS
21342 SELECT CODE,MEANING
21343 FROM OKC_STATUSES_V ;
21344
21345 i Number;
21346 BEGIN
21347 i := 1;
21348 l_status_tab.DELETE;
21349
21350 FOR GET_STATUS_REC IN GET_STATUS_CUR LOOP
21351 l_status_tab(i).Code := GET_STATUS_REC.CODE;
21352 l_status_tab(i).Meaning := GET_STATUS_REC.MEANING;
21353 i := i+1;
21354 END LOOP;
21355
21356 END Fetch_Sts_Meaning;
21357
21358 FUNCTION Get_Sts_Meaning (L_CODE IN VARCHAR2) RETURN VARCHAR2 IS
21359 BEGIN
21360 FOR I IN L_STATUS_TAB.FIRST .. L_STATUS_TAB.LAST LOOP
21361 IF l_Code = L_STATUS_TAB(i).CODE THEN
21362 RETURN L_STATUS_TAB(i).MEANING;
21363 END IF;
21364 END LOOP;
21365 END Get_Sts_Meaning;
21366
21367 FUNCTION Get_Line_Processed (p_line_id IN VARCHAR2,
21368 p_line_id_tbl IN OUT NOCOPY line_id_tbl ) RETURN VARCHAR2 IS
21369
21370 l_line_processed varchar2(1);
21371
21372 BEGIN
21373 l_line_processed := 'N';
21374 if p_line_id_tbl.count > 0 then
21375 for i in p_line_id_tbl.first..p_line_id_tbl.last loop
21376 if p_line_id = p_line_id_tbl(i).line_id then
21377 l_line_processed := 'Y';
21378 exit;
21379 end if;
21380 end loop;
21381 if l_line_processed = 'N' then
21382 p_line_id_tbl(l_line_id_tbl.last+1).line_id := p_line_id;
21383 end if;
21384 else
21385 p_line_id_tbl(1).line_id := p_line_id;
21386 end if;
21387 return l_line_processed;
21388 END Get_Line_Processed;
21389
21390
21391 BEGIN
21392
21393 Lv_Contracts := P_Contracts;
21394 Lv_Contract_line_Rec := P_Contract_line_Rec;
21395 Lv_Request_Date := nvl(P_Request_Date,sysdate);
21396 Lx_Result := G_TRUE;
21397 Lx_Return_Status := G_RET_STS_SUCCESS;
21398 Lx_counter := 1;
21399 Lx_service_id := -99;
21400 l_last_date := TO_DATE(5373484,'j');
21401 l_first_date := TO_DATE(1,'j');
21402
21403 IF (Lv_Contract_line_Rec.Start_Date_From IS NULL) THEN
21404 Lv_Contract_line_Rec.Start_Date_From := l_first_date;
21405 END IF;
21406 IF (Lv_Contract_line_Rec.Start_Date_To IS NULL) THEN
21407 Lv_Contract_line_Rec.Start_Date_To := l_last_date;
21408 END IF;
21409
21410 IF (Lv_Contract_line_Rec.End_Date_From IS NULL) THEN
21411 Lv_Contract_line_Rec.End_Date_From := l_first_date;
21412 END IF;
21413
21414 IF (Lv_Contract_line_Rec.End_Date_To IS NULL) THEN
21415 Lv_Contract_line_Rec.End_Date_To := l_last_date;
21416 END IF;
21417
21418
21419 Lv_Contract_line_Rec.Start_Date_From := TRUNC(Lv_Contract_line_Rec.Start_Date_From);
21420 Lv_Contract_line_Rec.End_Date_From := TRUNC(Lv_Contract_line_Rec.End_Date_From);
21421 Lv_Contract_line_Rec.Start_Date_To := TRUNC(Lv_Contract_line_Rec.Start_Date_To) + 0.99998843;
21422 Lv_Contract_line_Rec.End_Date_To := TRUNC(Lv_Contract_line_Rec.End_Date_To) + 0.99998843;
21423 Fetch_Sts_Meaning;
21424
21425 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
21426
21427 Lv_Contracts_02.DELETE;
21428
21429 IF Lv_Contracts.COUNT = 0 THEN
21430 /*Added for bug:6767455*/
21431 /* Added by Jvorugan for Bug:4991724
21432 If service_item_id is not null, then only passing the value.
21433 This is to avoid full table scan on okc_k_items due to nvl condition on service_item_id*/
21434
21435 IF Lv_Contract_line_Rec.Service_Item_ID IS NULL
21436 THEN
21437 open get_Contract_noclvl_noitem_cur(NULL,
21438 NULL,
21439 Lv_Contract_line_Rec.Contract_Line_Status_Code,
21440 Lv_Contract_line_Rec.Start_Date_From,
21441 Lv_Contract_line_Rec.Start_Date_To,
21442 Lv_Contract_line_Rec.End_Date_From,
21443 Lv_Contract_line_Rec.End_Date_To,
21444 Lv_Contract_line_Rec.Coverage_Type_Code,
21445 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21446 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21447 Lv_Contract_line_Rec.line_renewal_type_code,
21448 Lv_authoring_org_id);
21449 fetch get_Contract_noclvl_noitem_cur BULK COLLECT into Id,
21450 contract_number,
21451 contract_Number_Modifier,
21452 Short_Description,
21453 Hd_Start_Date,
21454 Hd_End_Date,
21455 hd_scs_code,
21456 org_id, /*bug:7363217*/
21457 Service_ID,
21458 Line_Number,
21459 Start_Date,
21460 End_Date,
21461 Date_Terminated,
21462 Sts_code,
21463 Name,
21464 cov_line_id,
21465 Cov_Name,
21466 Cov_Start_Date,
21467 Cov_End_Date,
21468 Cov_Date_Terminated,
21469 Service_Lse_Id;
21470 close get_Contract_noclvl_noitem_cur;
21471 ELSE
21472 open get_Contract_noclvl_cur(NULL,
21473 NULL,
21474 Lv_Contract_line_Rec.Service_Item_ID,
21475 Lv_Contract_line_Rec.Contract_Line_Status_Code,
21476 Lv_Contract_line_Rec.Start_Date_From,
21477 Lv_Contract_line_Rec.Start_Date_To,
21478 Lv_Contract_line_Rec.End_Date_From,
21479 Lv_Contract_line_Rec.End_Date_To,
21480 Lv_Contract_line_Rec.Coverage_Type_Code,
21481 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21482 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21483 Lv_Contract_line_Rec.line_renewal_type_code,
21484 Lv_authoring_org_id);
21485 fetch get_Contract_noclvl_cur BULK COLLECT into Id,
21486 contract_number,
21487 contract_Number_Modifier,
21488 Short_Description,
21489 Hd_Start_Date,
21490 Hd_End_Date,
21491 hd_scs_code,
21492 org_id, /*bug:6767455*/
21493 Service_ID,
21494 Line_Number,
21495 Start_Date,
21496 End_Date,
21497 Date_Terminated,
21498 Sts_code,
21499 Name,
21500 cov_line_id,
21501 Cov_Name,
21502 Cov_Start_Date,
21503 Cov_End_Date,
21504 Cov_Date_Terminated,
21505 Service_Lse_Id;
21506 close get_Contract_noclvl_cur;
21507
21508 END IF;
21509
21510 IF Id.count >0
21511 THEN
21512 FOR i in Id.FIRST..ID.LAST
21513 LOOP
21514
21515 if nvl(lx_service_id,-99) <>Service_ID(i) then
21516 Lv_Contracts_02(lx_counter).Contract_Number := contract_number(i);
21517 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := contract_Number_Modifier(i);
21518 Lv_Contracts_02(lx_counter).Contract_Description := Short_Description(i);
21519 Lv_Contracts_02(lx_counter).Contract_Line_Number := Line_Number(i);
21520 Lv_Contracts_02(lx_counter).Line_Start_Date := Start_Date(i);
21521 Lv_Contracts_02(lx_counter).Line_End_Date := End_Date(i);
21522 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
21523 Lv_Contracts_02(lx_counter).Service_name := name(i);
21524 Lv_Contracts_02(lx_counter).Coverage_name := Cov_name(i);
21525 Lv_Contracts_02(lx_counter).Service_Id := Service_ID(i);
21526 Lv_Contracts_02(lx_counter).Service_Lse_ID := Service_Lse_Id(i);
21527 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Service_Lse_Id(i));
21528 Lv_Contracts_02(lx_counter).contract_id := Id(i);
21529 Lv_Contracts_02(lx_counter).coverage_line_id := cov_line_Id(i);
21530 Lv_Contracts_02(lx_counter).scs_code := hd_scs_code(i);
21531
21532 /*bug:7363217*/
21533 --
21534 Lv_Contracts_02(lx_counter).OPERATING_UNIT := org_id(i);
21535 OPEN c_OU(org_id(i));
21536 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21537 CLOSE c_OU;
21538
21539 lx_counter :=lx_counter + 1 ;
21540 lx_service_id := service_id(i);
21541
21542 end if;
21543 END LOOP;
21544 END IF;
21545
21546
21547 /* commented for Bug:6767455
21548 For Idx In get_Contract_noclvl_cur(NULL,
21549 NULL,
21550 Lv_Contract_line_Rec.Service_Item_ID,
21551 Lv_Contract_line_Rec.Contract_Line_Status_Code,
21552 Lv_Contract_line_Rec.Start_Date_From,
21553 Lv_Contract_line_Rec.Start_Date_To,
21554 Lv_Contract_line_Rec.End_Date_From,
21555 Lv_Contract_line_Rec.End_Date_To,
21556 Lv_Contract_line_Rec.Coverage_Type_Code,
21557 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21558 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21559 Lv_Contract_line_Rec.line_renewal_type_code,
21560 Lv_authoring_org_id) LOOP
21561
21562
21563 if nvl(lx_service_id,-99) <> Idx.Service_id then
21564
21565 Lv_Contracts_02(lx_counter).Contract_Number := Idx.Contract_Number;
21566 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
21567 Lv_Contracts_02(lx_counter).Contract_Description := Idx.Short_Description;
21568 Lv_Contracts_02(lx_counter).Contract_Line_Number := Idx.Line_Number;
21569 Lv_Contracts_02(lx_counter).Line_Start_Date := Idx.Start_Date;
21570 Lv_Contracts_02(lx_counter).Line_End_Date := Idx.End_Date;
21571 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
21572 Lv_Contracts_02(lx_counter).Service_name := Idx.name;
21573 Lv_Contracts_02(lx_counter).Coverage_name := Idx.Cov_name;
21574 Lv_Contracts_02(lx_counter).Service_Id := Idx.Service_ID;
21575 Lv_Contracts_02(lx_counter).Service_Lse_ID := Idx.Service_Lse_Id;
21576 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Idx.Service_Lse_Id);
21577 Lv_Contracts_02(lx_counter).contract_id := Idx.Id;
21578 Lv_Contracts_02(lx_counter).coverage_line_id := Idx.cov_line_Id;
21579 Lv_Contracts_02(lx_counter).scs_code := Idx.hd_scs_code;
21580
21581 --
21582 -- Modified for 12.0 MOAC project (JVARGHES)
21583 --
21584 Lv_Contracts_02(lx_counter).OPERATING_UNIT := Idx.org_id;
21585 OPEN c_OU(Idx.org_id);
21586 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21587 CLOSE c_OU;
21588 --
21589 --
21590
21591 lx_counter :=lx_counter + 1 ;
21592 lx_service_id := Idx.service_id;
21593
21594 end if;
21595
21596 END LOOP;
21597 */
21598 END IF;
21599
21600 IF Lv_Contracts.COUNT > 0 and Lv_covlevel_lines_passed = 'Y' THEN
21601
21602 FOR I In Lv_Contracts.FIRST .. Lv_Contracts.LAST LOOP
21603
21604 -- checking if covered level line id processed
21605 If Get_Line_Processed (p_line_id => Lv_Contracts(i).Rx_Cle_ID,
21606 p_line_id_tbl => l_line_id_tbl) = 'N' then
21607 /* Added for Bug:6767455
21608 If service_item_id is not null, then only passing the value.
21609 This is to avoid full table scan on okc_k_items due to nvl condition on service_item_id*/
21610
21611 IF Lv_Contract_line_Rec.Service_Item_ID IS NULL
21612 THEN
21613 open get_Contract_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
21614 Lv_Contracts(i).Rx_Cle_ID,
21615 Lv_Contract_line_Rec.Contract_Line_Status_Code,
21616 Lv_Contract_line_Rec.Start_Date_From,
21617 Lv_Contract_line_Rec.Start_Date_To,
21618 Lv_Contract_line_Rec.End_Date_From,
21619 Lv_Contract_line_Rec.End_Date_To,
21620 Lv_Contract_line_Rec.Coverage_Type_Code,
21621 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21622 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21623 Lv_Contract_line_Rec.line_renewal_type_code,
21624 Lv_authoring_org_id);
21625 fetch get_Contract_noitem_cur bulk collect into Id,
21626 contract_number,
21627 contract_Number_Modifier,
21628 Short_Description,
21629 Hd_Start_Date,
21630 Hd_End_Date,
21631 hd_scs_code,
21632 org_id, /*bug:7363217*/
21633 Service_ID,
21634 Line_Number,
21635 Start_Date,
21636 End_Date,
21637 Date_Terminated,
21638 Sts_code,
21639 Name,
21640 Item_Start_Date,
21641 Item_End_Date,
21642 Item_Date_Terminated,
21643 cov_line_id,
21644 Cov_Name,
21645 Cov_Start_Date,
21646 Cov_End_Date,
21647 Cov_Date_Terminated,
21648 Service_Lse_Id;
21649 close get_Contract_noitem_cur;
21650 ELSE
21651 open get_Contract_cur (Lv_Contracts(i).Rx_Chr_ID,
21652 Lv_Contracts(i).Rx_Cle_ID,
21653 Lv_Contract_line_Rec.Service_Item_ID,
21654 Lv_Contract_line_Rec.Contract_Line_Status_Code,
21655 Lv_Contract_line_Rec.Start_Date_From,
21656 Lv_Contract_line_Rec.Start_Date_To,
21657 Lv_Contract_line_Rec.End_Date_From,
21658 Lv_Contract_line_Rec.End_Date_To,
21659 Lv_Contract_line_Rec.Coverage_Type_Code,
21660 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21661 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21662 Lv_Contract_line_Rec.line_renewal_type_code,
21663 Lv_authoring_org_id);
21664 fetch get_Contract_cur bulk collect into Id,
21665 contract_number,
21666 contract_Number_Modifier,
21667 Short_Description,
21668 Hd_Start_Date,
21669 Hd_End_Date,
21670 hd_scs_code,
21671 org_id, /*Bug:6767455*/
21672 Service_ID,
21673 Line_Number,
21674 Start_Date,
21675 End_Date,
21676 Date_Terminated,
21677 Sts_code,
21678 Name,
21679 Item_Start_Date,
21680 Item_End_Date,
21681 Item_Date_Terminated,
21682 cov_line_id,
21683 Cov_Name,
21684 Cov_Start_Date,
21685 Cov_End_Date,
21686 Cov_Date_Terminated,
21687 Service_Lse_Id;
21688 close get_Contract_cur;
21689 END IF;
21690 IF Id.count >0
21691 THEN
21692
21693 FOR i in Id.FIRST..Id.LAST
21694 LOOP
21695
21696 if nvl(lx_service_id,-99) <> service_id(i)then
21697
21698 IF Lv_Entitlment_Check = 'Y' THEN --Lv_Entitlment_Check = 'Y'
21699
21700 Get_Valid_Line(
21701 PHd_Id =>Id(i),
21702 PHd_Start_Date =>Hd_Start_Date(i),
21703 PHd_END_Date =>Hd_End_Date(i),
21704 PSv_Start_Date =>Start_Date(i),
21705 PSv_End_Date =>End_Date(i),
21706 PSv_Term_Date =>Date_Terminated(i),
21707 PIt_Start_Date =>Item_Start_Date(i),
21708 PIt_End_Date =>Item_End_Date(i),
21709 PIt_Term_Date =>Item_Date_Terminated(i),
21710 PCo_Start_Date =>Cov_Start_Date(i),
21711 PCo_End_Date =>Cov_End_Date(i),
21712 PCo_Term_Date =>Cov_Date_Terminated(i),
21713 P_Request_Date =>Lv_Request_Date,
21714 X_valid_line =>L_valid_line,
21715 X_return_Status =>L_return_Status);
21716
21717 Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Service_ID(i), 'ENTITLE');
21718
21719 IF ((Lv_Entile_Flag = 'T') AND (L_valid_line = 'T')) THEN --Lv_Entile_Flag = 'T'
21720
21721 Lv_Contracts_02(lx_counter).Contract_Number := Contract_Number(i);
21722 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Contract_Number_Modifier(i);
21723 Lv_Contracts_02(lx_counter).Contract_Description := Short_Description(i);
21724 Lv_Contracts_02(lx_counter).Contract_Line_Number := Line_Number(i);
21725 Lv_Contracts_02(lx_counter).Line_Start_Date := Start_Date(i);
21726 Lv_Contracts_02(lx_counter).Line_End_Date := End_Date(i);
21727 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
21728 Lv_Contracts_02(lx_counter).Service_name := name(i);
21729 Lv_Contracts_02(lx_counter).Coverage_name := Cov_name(i);
21730 Lv_Contracts_02(lx_counter).Service_Id := Service_ID(i);
21731 Lv_Contracts_02(lx_counter).Service_Lse_ID := Service_Lse_Id(i);
21732 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Service_Lse_Id(i));
21733 Lv_Contracts_02(lx_counter).contract_id := Id(i);
21734 Lv_Contracts_02(lx_counter).coverage_line_id := cov_line_Id(i);
21735 Lv_Contracts_02(lx_counter).scs_code := hd_scs_code(i);
21736 /*bug:7363217*/
21737 --
21738 Lv_Contracts_02(lx_counter).OPERATING_UNIT := org_id(i);
21739 OPEN c_OU(org_id(i));
21740 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21741 CLOSE c_OU;
21742 lx_counter :=lx_counter + 1 ;
21743 lx_service_id := service_id(i); /*Bug:8434577*/
21744
21745 END IF; ----Lv_Entile_Flag = 'T'
21746 ELSE ----Lv_Entitlment_Check = 'Y'
21747
21748 Lv_Contracts_02(lx_counter).Contract_Number := Contract_Number(i);
21749 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Contract_Number_Modifier(i);
21750 Lv_Contracts_02(lx_counter).Contract_Description := Short_Description(i);
21751 Lv_Contracts_02(lx_counter).Contract_Line_Number := Line_Number(i);
21752 Lv_Contracts_02(lx_counter).Line_Start_Date := Start_Date(i);
21753 Lv_Contracts_02(lx_counter).Line_End_Date := End_Date(i);
21754 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
21755 Lv_Contracts_02(lx_counter).Service_name := name(i);
21756 Lv_Contracts_02(lx_counter).Coverage_name := Cov_name(i);
21757 Lv_Contracts_02(lx_counter).Service_Id := Service_ID(i);
21758 Lv_Contracts_02(lx_counter).Service_Lse_ID := Service_Lse_Id(i);
21759 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Service_Lse_Id(i));
21760 Lv_Contracts_02(lx_counter).contract_id := Id(i);
21761 Lv_Contracts_02(lx_counter).coverage_line_id := cov_line_Id(i);
21762 Lv_Contracts_02(lx_counter).scs_code := hd_scs_code(i);
21763
21764 /*bug:7363217*/
21765 --
21766 Lv_Contracts_02(lx_counter).OPERATING_UNIT := org_id(i);
21767 OPEN c_OU(org_id(i));
21768 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21769 CLOSE c_OU;
21770 lx_counter :=lx_counter + 1 ;
21771 lx_service_id := service_id(i); /*Bug:8434577*/
21772 END IF; --Lv_Entitlment_Check = 'Y'
21773
21774 -----lx_service_id := service_id(i); /*Removed for bug 8434577*/
21775
21776 end if;
21777
21778 END LOOP;
21779
21780 END IF; -- Id.count >0
21781
21782
21783 /* commented for perf bug:6767455
21784 For Idx In get_Contract_cur(Lv_Contracts(i).Rx_Chr_ID,
21785 Lv_Contracts(i).Rx_Cle_ID,
21786 Lv_Contract_line_Rec.Service_Item_ID,
21787 Lv_Contract_line_Rec.Contract_Line_Status_Code,
21788 Lv_Contract_line_Rec.Start_Date_From,
21789 Lv_Contract_line_Rec.Start_Date_To,
21790 Lv_Contract_line_Rec.End_Date_From,
21791 Lv_Contract_line_Rec.End_Date_To,
21792 Lv_Contract_line_Rec.Coverage_Type_Code,
21793 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21794 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21795 Lv_Contract_line_Rec.line_renewal_type_code,
21796 Lv_authoring_org_id) LOOP
21797
21798
21799 if nvl(lx_service_id,-99) <> Idx.service_id then
21800
21801 IF Lv_Entitlment_Check = 'Y' THEN --Lv_Entitlment_Check = 'Y'
21802
21803 Get_Valid_Line(
21804 PHd_Id =>Idx.Id,
21805 PHd_Start_Date =>Idx.Hd_Start_Date,
21806 PHd_END_Date =>Idx.Hd_End_Date,
21807 PSv_Start_Date =>Idx.Start_Date,
21808 PSv_End_Date =>Idx.End_Date,
21809 PSv_Term_Date =>Idx.Date_Terminated,
21810 PIt_Start_Date =>Idx.Item_Start_Date,
21811 PIt_End_Date =>Idx.Item_End_Date,
21812 PIt_Term_Date =>Idx.Item_Date_Terminated,
21813 PCo_Start_Date =>Idx.Cov_Start_Date,
21814 PCo_End_Date =>Idx.Cov_End_Date,
21815 PCo_Term_Date =>Idx.Cov_Date_Terminated,
21816 P_Request_Date =>Lv_Request_Date,
21817 X_valid_line =>L_valid_line,
21818 X_return_Status =>L_return_Status);
21819
21820 Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Idx.Service_ID, 'ENTITLE');
21821
21822 IF ((Lv_Entile_Flag = 'T') AND (L_valid_line = 'T')) THEN --Lv_Entile_Flag = 'T'
21823
21824 Lv_Contracts_02(lx_counter).Contract_Number := Idx.Contract_Number;
21825 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
21826 Lv_Contracts_02(lx_counter).Contract_Description := Idx.Short_Description;
21827 Lv_Contracts_02(lx_counter).Contract_Line_Number := Idx.Line_Number;
21828 Lv_Contracts_02(lx_counter).Line_Start_Date := Idx.Start_Date;
21829 Lv_Contracts_02(lx_counter).Line_End_Date := Idx.End_Date;
21830 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
21831 Lv_Contracts_02(lx_counter).Service_name := Idx.name;
21832 Lv_Contracts_02(lx_counter).Coverage_name := Idx.Cov_name;
21833 Lv_Contracts_02(lx_counter).Service_Id := Idx.Service_ID;
21834 Lv_Contracts_02(lx_counter).Service_Lse_ID := Idx.Service_Lse_Id;
21835 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Idx.Service_Lse_Id);
21836 Lv_Contracts_02(lx_counter).contract_id := Idx.Id;
21837 Lv_Contracts_02(lx_counter).coverage_line_id := Idx.cov_line_Id;
21838 Lv_Contracts_02(lx_counter).scs_code := Idx.hd_scs_code;
21839
21840 --
21841 -- Modified for 12.0 MOAC project (JVARGHES)
21842 --
21843 Lv_Contracts_02(lx_counter).OPERATING_UNIT := Idx.org_id;
21844 OPEN c_OU(Idx.org_id);
21845 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21846 CLOSE c_OU;
21847 --
21848 --
21849
21850 lx_counter :=lx_counter + 1 ;
21851
21852 END IF; ----Lv_Entile_Flag = 'T'
21853
21854 ELSE ----Lv_Entitlment_Check = 'Y'
21855
21856 Lv_Contracts_02(lx_counter).Contract_Number := Idx.Contract_Number;
21857 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
21858 Lv_Contracts_02(lx_counter).Contract_Description := Idx.Short_Description;
21859 Lv_Contracts_02(lx_counter).Contract_Line_Number := Idx.Line_Number;
21860 Lv_Contracts_02(lx_counter).Line_Start_Date := Idx.Start_Date;
21861 Lv_Contracts_02(lx_counter).Line_End_Date := Idx.End_Date;
21862 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
21863 Lv_Contracts_02(lx_counter).Service_name := Idx.name;
21864 Lv_Contracts_02(lx_counter).Coverage_name := Idx.Cov_name;
21865 Lv_Contracts_02(lx_counter).Service_Id := Idx.Service_ID;
21866 Lv_Contracts_02(lx_counter).Service_Lse_ID := Idx.Service_Lse_Id;
21867 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Idx.Service_Lse_Id);
21868 Lv_Contracts_02(lx_counter).contract_id := Idx.Id;
21869 Lv_Contracts_02(lx_counter).coverage_line_id := Idx.cov_line_Id;
21870 Lv_Contracts_02(lx_counter).scs_code := Idx.hd_scs_code;
21871
21872 --
21873 -- Modified for 12.0 MOAC project (JVARGHES)
21874 --
21875 Lv_Contracts_02(lx_counter).OPERATING_UNIT := Idx.org_id;
21876 OPEN c_OU(Idx.org_id);
21877 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21878 CLOSE c_OU;
21879 --
21880 --
21881
21882 lx_counter :=lx_counter + 1 ;
21883
21884 END IF; --Lv_Entitlment_Check = 'Y'
21885
21886 lx_service_id := Idx.service_id;
21887
21888 end if;
21889
21890 END LOOP;*/
21891
21892 -- checking if covered level line id processed
21893 END If;
21894
21895 END LOOP;
21896
21897 END IF;
21898
21899
21900 IF Lv_Contracts.COUNT > 0 and Lv_covlevel_lines_passed = 'N' THEN
21901 FOR I In Lv_Contracts.FIRST .. Lv_Contracts.LAST LOOP
21902 /* Added by Jvorugan for Bug:4991724
21903 If service_item_id is not null, then only passing the value.
21904 This is to avoid full table scan on okc_k_items due to nvl condition on service_item_id*/
21905
21906 IF Lv_Contract_line_Rec.Service_Item_ID IS NULL
21907 THEN
21908
21909 IF Lv_Contracts(i).Rx_Chr_ID IS NOT NULL THEN
21910
21911 /*harlaksh modified for bug 8700389*/
21912 If ((Lv_authoring_org_id IS NULL) AND
21913 (Lv_Contract_line_Rec.Contract_Line_Status_Code IS NULL) AND
21914 (Lv_Contract_line_Rec.Coverage_Type_Code IS NULL) AND
21915 (Lv_Contract_line_Rec.Line_Bill_To_Site_Id IS NULL) AND
21916 (Lv_Contract_line_Rec.Line_Ship_To_Site_Id IS NULL) AND
21917 (Lv_Contract_line_Rec.line_renewal_type_code IS NULL))
21918 THEN
21919 /*CALL NEW CURSOR*/
21920 open get_Cont_noclvl_kid_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
21921 Lv_Contract_line_Rec.Start_Date_From,
21922 Lv_Contract_line_Rec.Start_Date_To,
21923 Lv_Contract_line_Rec.End_Date_From,
21924 Lv_Contract_line_Rec.End_Date_To);
21925
21926 fetch get_Cont_noclvl_kid_noitem_cur BULK COLLECT into Id,
21927 contract_number,
21928 contract_Number_Modifier,
21929 Short_Description,
21930 Hd_Start_Date,
21931 Hd_End_Date,
21932 hd_scs_code,
21933 org_id,
21934 Service_ID,
21935 Line_Number,
21936 Start_Date,
21937 End_Date,
21938 Date_Terminated,
21939 Sts_code,
21940 Name,
21941 cov_line_id,
21942 Cov_Name,
21943 Cov_Start_Date,
21944 Cov_End_Date,
21945 Cov_Date_Terminated,
21946 Service_Lse_Id;
21947 close get_Cont_noclvl_kid_noitem_cur;
21948
21949 ELSE
21950
21951 open get_Cont_noclvl_chr_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
21952 Lv_Contracts(i).Rx_Cle_ID,
21953 Lv_Contract_line_Rec.Contract_Line_Status_Code,
21954 Lv_Contract_line_Rec.Start_Date_From,
21955 Lv_Contract_line_Rec.Start_Date_To,
21956 Lv_Contract_line_Rec.End_Date_From,
21957 Lv_Contract_line_Rec.End_Date_To,
21958 Lv_Contract_line_Rec.Coverage_Type_Code,
21959 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21960 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21961 Lv_Contract_line_Rec.line_renewal_type_code,
21962 Lv_authoring_org_id);
21963
21964 fetch get_Cont_noclvl_chr_noitem_cur BULK COLLECT into Id,
21965 contract_number,
21966 contract_Number_Modifier,
21967 Short_Description,
21968 Hd_Start_Date,
21969 Hd_End_Date,
21970 hd_scs_code,
21971 org_id, /*bug:7363217*/
21972 Service_ID,
21973 Line_Number,
21974 Start_Date,
21975 End_Date,
21976 Date_Terminated,
21977 Sts_code,
21978 Name,
21979 cov_line_id,
21980 Cov_Name,
21981 Cov_Start_Date,
21982 Cov_End_Date,
21983 Cov_Date_Terminated,
21984 Service_Lse_Id;
21985 close get_Cont_noclvl_chr_noitem_cur;
21986 END IF; /*modified for bug:8700389*/
21987 ELSE
21988
21989 open get_Contract_noclvl_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
21990 Lv_Contracts(i).Rx_Cle_ID,
21991 Lv_Contract_line_Rec.Contract_Line_Status_Code,
21992 Lv_Contract_line_Rec.Start_Date_From,
21993 Lv_Contract_line_Rec.Start_Date_To,
21994 Lv_Contract_line_Rec.End_Date_From,
21995 Lv_Contract_line_Rec.End_Date_To,
21996 Lv_Contract_line_Rec.Coverage_Type_Code,
21997 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21998 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21999 Lv_Contract_line_Rec.line_renewal_type_code,
22000 Lv_authoring_org_id);
22001
22002 fetch get_Contract_noclvl_noitem_cur BULK COLLECT into Id,
22003 contract_number,
22004 contract_Number_Modifier,
22005 Short_Description,
22006 Hd_Start_Date,
22007 Hd_End_Date,
22008 hd_scs_code,
22009 org_id, /*bug:7363217*/
22010 Service_ID,
22011 Line_Number,
22012 Start_Date,
22013 End_Date,
22014 Date_Terminated,
22015 Sts_code,
22016 Name,
22017 cov_line_id,
22018 Cov_Name,
22019 Cov_Start_Date,
22020 Cov_End_Date,
22021 Cov_Date_Terminated,
22022 Service_Lse_Id;
22023 close get_Contract_noclvl_noitem_cur;
22024
22025 end if;
22026
22027 ELSE
22028
22029 IF Lv_Contracts(i).Rx_Chr_ID IS NOT NULL THEN
22030
22031 open get_Cont_noclvl_chr_cur(Lv_Contracts(i).Rx_Chr_ID,
22032 Lv_Contracts(i).Rx_Cle_ID,
22033 Lv_Contract_line_Rec.Service_Item_ID,
22034 Lv_Contract_line_Rec.Contract_Line_Status_Code,
22035 Lv_Contract_line_Rec.Start_Date_From,
22036 Lv_Contract_line_Rec.Start_Date_To,
22037 Lv_Contract_line_Rec.End_Date_From,
22038 Lv_Contract_line_Rec.End_Date_To,
22039 Lv_Contract_line_Rec.Coverage_Type_Code,
22040 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
22041 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
22042 Lv_Contract_line_Rec.line_renewal_type_code,
22043 Lv_authoring_org_id);
22044
22045 fetch get_Cont_noclvl_chr_cur BULK COLLECT into Id,
22046 contract_number,
22047 contract_Number_Modifier,
22048 Short_Description,
22049 Hd_Start_Date,
22050 Hd_End_Date,
22051 hd_scs_code,
22052 org_id, /*bug:7363217*/
22053 Service_ID,
22054 Line_Number,
22055 Start_Date,
22056 End_Date,
22057 Date_Terminated,
22058 Sts_code,
22059 Name,
22060 cov_line_id,
22061 Cov_Name,
22062 Cov_Start_Date,
22063 Cov_End_Date,
22064 Cov_Date_Terminated,
22065 Service_Lse_Id;
22066
22067 close get_Cont_noclvl_chr_cur;
22068
22069
22070 ELSE
22071 open get_Contract_noclvl_cur(Lv_Contracts(i).Rx_Chr_ID,
22072 Lv_Contracts(i).Rx_Cle_ID,
22073 Lv_Contract_line_Rec.Service_Item_ID,
22074 Lv_Contract_line_Rec.Contract_Line_Status_Code,
22075 Lv_Contract_line_Rec.Start_Date_From,
22076 Lv_Contract_line_Rec.Start_Date_To,
22077 Lv_Contract_line_Rec.End_Date_From,
22078 Lv_Contract_line_Rec.End_Date_To,
22079 Lv_Contract_line_Rec.Coverage_Type_Code,
22080 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
22081 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
22082 Lv_Contract_line_Rec.line_renewal_type_code,
22083 Lv_authoring_org_id);
22084
22085 fetch get_Contract_noclvl_cur BULK COLLECT into Id,
22086 contract_number,
22087 contract_Number_Modifier,
22088 Short_Description,
22089 Hd_Start_Date,
22090 Hd_End_Date,
22091 hd_scs_code,
22092 org_id, /*Bug:6767455*/
22093 Service_ID,
22094 Line_Number,
22095 Start_Date,
22096 End_Date,
22097 Date_Terminated,
22098 Sts_code,
22099 Name,
22100 cov_line_id,
22101 Cov_Name,
22102 Cov_Start_Date,
22103 Cov_End_Date,
22104 Cov_Date_Terminated,
22105 Service_Lse_Id;
22106
22107 close get_Contract_noclvl_cur;
22108
22109 END IF;
22110
22111 END IF;
22112
22113 IF Id.count >0
22114 THEN
22115 FOR i in Id.FIRST..ID.LAST
22116 LOOP
22117
22118 if nvl(lx_service_id,-99) <> service_id(i) then
22119 /*modified for bug:8700389*/
22120 IF Lv_Entitlment_Check = 'Y' THEN
22121 Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Service_ID(i), 'ENTITLE');
22122
22123 IF (Lv_Entile_Flag = 'T') THEN --Lv_Entile_Flag = 'T'
22124
22125 Lv_Contracts_02(lx_counter).Contract_Number := Contract_Number(i);
22126 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Contract_Number_Modifier(i);
22127 Lv_Contracts_02(lx_counter).Contract_Description := Short_Description(i);
22128 Lv_Contracts_02(lx_counter).Contract_Line_Number := Line_Number(i);
22129 Lv_Contracts_02(lx_counter).Line_Start_Date := Start_Date(i);
22130 Lv_Contracts_02(lx_counter).Line_End_Date := End_Date(i);
22131 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
22132 Lv_Contracts_02(lx_counter).Service_name := name(i);
22133 Lv_Contracts_02(lx_counter).Coverage_name := Cov_name(i);
22134 Lv_Contracts_02(lx_counter).Service_Id := Service_ID(i);
22135 Lv_Contracts_02(lx_counter).Service_Lse_ID := Service_Lse_Id(i);
22136 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Service_Lse_Id(i));
22137 Lv_Contracts_02(lx_counter).contract_id := Id(i);
22138 Lv_Contracts_02(lx_counter).coverage_line_id := cov_line_Id(i);
22139 Lv_Contracts_02(lx_counter).scs_code := hd_scs_code(i);
22140 /*bug:7363217*/
22141 --
22142 Lv_Contracts_02(lx_counter).OPERATING_UNIT := org_id(i);
22143 OPEN c_OU(org_id(i));
22144 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
22145 CLOSE c_OU;
22146 lx_counter :=lx_counter + 1 ;
22147 lx_service_id := service_id(i); /*Added for bug 8434577 */
22148 END IF; ----Lv_Entile_Flag = 'T'
22149 ELSE ----Lv_Entitlment_Check = 'Y'
22150 Lv_Contracts_02(lx_counter).Contract_Number := Contract_Number(i);
22151 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Contract_Number_Modifier(i);
22152 Lv_Contracts_02(lx_counter).Contract_Description := Short_Description(i);
22153 Lv_Contracts_02(lx_counter).Contract_Line_Number := Line_Number(i);
22154 Lv_Contracts_02(lx_counter).Line_Start_Date := Start_Date(i);
22155 Lv_Contracts_02(lx_counter).Line_End_Date := End_Date(i);
22156 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
22157 Lv_Contracts_02(lx_counter).Service_name := name(i);
22158 Lv_Contracts_02(lx_counter).Coverage_name := Cov_name(i);
22159 Lv_Contracts_02(lx_counter).Service_Id := Service_ID(i);
22160 Lv_Contracts_02(lx_counter).Service_Lse_ID := Service_Lse_Id(i);
22161 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Service_Lse_Id(i));
22162 Lv_Contracts_02(lx_counter).contract_id := Id(i);
22163 Lv_Contracts_02(lx_counter).coverage_line_id := cov_line_Id(i);
22164 Lv_Contracts_02(lx_counter).scs_code := hd_scs_code(i);
22165
22166 Lv_Contracts_02(lx_counter).OPERATING_UNIT := org_id(i);
22167 OPEN c_OU(org_id(i));
22168 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
22169 CLOSE c_OU;
22170 lx_counter :=lx_counter + 1 ;
22171 lx_service_id := service_id(i); /*Added for bug 8434577 */
22172 END IF; --Lv_Entitlment_Check = 'Y'
22173 -----lx_service_id := service_id(i); /*Commented for bug 8434577 */
22174 end if;-- lx_service_id
22175
22176 END LOOP;
22177
22178 END IF; -- Id.count >0
22179 /* commented for Bug:6767455
22180 For Idx In get_Contract_noclvl_cur(Lv_Contracts(i).Rx_Chr_ID,
22181 Lv_Contracts(i).Rx_Cle_ID,
22182 Lv_Contract_line_Rec.Service_Item_ID,
22183 Lv_Contract_line_Rec.Contract_Line_Status_Code,
22184 Lv_Contract_line_Rec.Start_Date_From,
22185 Lv_Contract_line_Rec.Start_Date_To,
22186 Lv_Contract_line_Rec.End_Date_From,
22187 Lv_Contract_line_Rec.End_Date_To,
22188 Lv_Contract_line_Rec.Coverage_Type_Code,
22189 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
22190 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
22191 Lv_Contract_line_Rec.line_renewal_type_code,
22192 Lv_authoring_org_id) LOOP
22193
22194
22195 if nvl(lx_service_id,-99) <> Idx.service_id then
22196
22197
22198 Lv_Contracts_02(lx_counter).Contract_Number := Idx.Contract_Number;
22199 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
22200 Lv_Contracts_02(lx_counter).Contract_Description := Idx.Short_Description;
22201 Lv_Contracts_02(lx_counter).Contract_Line_Number := Idx.Line_Number;
22202 Lv_Contracts_02(lx_counter).Line_Start_Date := Idx.Start_Date;
22203 Lv_Contracts_02(lx_counter).Line_End_Date := Idx.End_Date;
22204 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
22205 Lv_Contracts_02(lx_counter).Service_name := Idx.name;
22206 Lv_Contracts_02(lx_counter).Coverage_name := Idx.Cov_name;
22207 Lv_Contracts_02(lx_counter).Service_Id := Idx.Service_ID;
22208 Lv_Contracts_02(lx_counter).Service_Lse_ID := Idx.Service_Lse_Id;
22209 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Idx.Service_Lse_Id);
22210 Lv_Contracts_02(lx_counter).contract_id := Idx.Id;
22211 Lv_Contracts_02(lx_counter).coverage_line_id := Idx.cov_line_Id;
22212 Lv_Contracts_02(lx_counter).scs_code := Idx.hd_scs_code;
22213
22214 --
22215 -- Modified for 12.0 MOAC project (JVARGHES)
22216 --
22217 Lv_Contracts_02(lx_counter).OPERATING_UNIT := Idx.org_id;
22218 OPEN c_OU(Idx.org_id);
22219 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
22220 CLOSE c_OU;
22221 --
22222 --
22223
22224 lx_counter :=lx_counter + 1 ;
22225
22226 lx_service_id := Idx.service_id;
22227
22228 end if;
22229
22230 END LOOP;
22231 */
22232 END LOOP;
22233
22234 END IF;
22235
22236 X_Contracts_02 := Lv_Contracts_02;
22237 X_Result :=Lx_Result;
22238 X_Return_Status := Lx_Return_Status;
22239
22240 EXCEPTION
22241
22242 WHEN OTHERS THEN
22243
22244 OKC_API.SET_MESSAGE
22245 (P_App_Name => G_APP_NAME_OKC
22246 ,P_Msg_Name => G_UNEXPECTED_ERROR
22247 ,P_Token1 => G_SQLCODE_TOKEN
22248 ,P_Token1_Value => SQLCODE
22249 ,P_Token2 => G_SQLERRM_TOKEN
22250 ,P_Token2_Value => SQLERRM);
22251
22252 OKC_API.SET_MESSAGE
22253 (P_App_Name => G_APP_NAME_OKC
22254 ,P_Msg_Name => G_DEBUG_TOKEN
22255 ,P_Token1 => G_PACKAGE_TOKEN
22256 ,P_Token1_Value => G_PKG_NAME
22257 ,P_Token2 => G_PROGRAM_TOKEN
22258 ,P_Token2_Value => 'Get_Contract_Lines');
22259
22260 X_Result := G_FALSE;
22261 X_Return_Status := G_RET_STS_UNEXP_ERROR;
22262
22263 END Get_Contract_Lines;
22264
22265 PROCEDURE Search_Contract_lines
22266 (p_api_version IN Number
22267 ,p_init_msg_list IN Varchar2
22268 ,p_contract_rec IN srchline_inpcontrec_type
22269 ,p_contract_line_rec IN srchline_inpcontlinerec_type
22270 ,p_clvl_id_tbl IN srchline_covlvl_id_tbl
22271 ,x_return_status out nocopy Varchar2
22272 ,x_msg_count out nocopy Number
22273 ,x_msg_data out nocopy Varchar2
22274 ,x_contract_tbl out nocopy output_tbl_contractline)IS
22275
22276 i NUMBER;
22277 j NUMBER;
22278 l number;
22279 Lx_Chr_Id NUMBER;
22280
22281 Lx_Inp_Rec_03 srchline_inpcontrec_type;
22282 Lx_Inp_Rec_02 srchline_inpcontlinerec_type;
22283 Lx_Inp_Tbl_01 srchline_covlvl_id_tbl;
22284 Lx_Ent_ContractLiness output_tbl_contractline;
22285
22286 Lx_request_date date;
22287
22288
22289 Lx_Result Gx_Boolean;
22290 Lx_Return_Status Gx_Ret_Sts;
22291 Ln_Org_Id NUMBER;
22292 Ln_Organization_Id NUMBER;
22293 Lx_Contract_Id NUMBER;
22294
22295
22296 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
22297
22298 Lx_Contracts_02 GT_Contract_Ref;
22299 Lx_Contracts GT_Contract_Ref;
22300 Lx_Contracts_Temp GT_Contract_Ref;
22301 Lx_Contracts_Out GT_Contract_Ref;
22302 Lx_Contracts_Line GT_Contract_Ref;
22303 Lx_Contracts_Prev GT_Contract_Ref;
22304 Lx_Contracts_ContNum GT_Contract_Ref;
22305
22306 Lx_Validate_Eff VARCHAR2(1);
22307 Lx_Validate_Flag VARCHAR2(1);
22308
22309 Lx_Rec_Exists VARCHAR2(1);
22310
22311 Lx_Covlevel_lines_passed VARCHAR2(1);
22312
22313 BEGIN -- Main Begin for Search_Contract_line
22314
22315 Lx_Chr_Id := -99999;
22316 Lx_Inp_Rec_03 := p_contract_rec;
22317 Lx_Inp_Rec_02 := p_contract_line_rec;
22318 Lx_Inp_Tbl_01 := p_clvl_id_tbl;
22319 Lx_request_date := nvl(p_contract_rec.request_date,sysdate);
22320 Lx_Return_Status := G_RET_STS_SUCCESS;
22321 Lx_Result := G_TRUE;
22322 Lx_Validate_Eff := 'F';
22323 Lx_Validate_Flag := 'F';
22324 Lx_Rec_Exists := 'N';
22325
22326
22327 -- Bug# 4735542
22328 -- OKC_CONTEXT.set_okc_org_context;
22329 -- Ln_Organization_Id := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
22330
22331 -- Modified for 12.0 MOAC project (JVARGHES)
22332 -- Ln_Org_Id := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
22333 --
22334
22335 IF ((Lx_Inp_Rec_02.service_item_id IS NULL) AND
22336 (Lx_Inp_Rec_02.contract_line_status_code IS NULL) AND
22337 (Lx_Inp_Rec_02.coverage_type_code IS NULL) AND
22338 (Lx_Inp_Rec_02.start_date_from IS NULL) AND
22339 (Lx_Inp_Rec_02.start_date_to IS NULL) AND
22340 (Lx_Inp_Rec_02.end_date_from IS NULL) AND
22341 (Lx_Inp_Rec_02.end_date_to IS NULL) AND
22342 (Lx_Inp_Rec_02.line_bill_to_site_id IS NULL) AND
22343 (Lx_Inp_Rec_02.line_ship_to_site_id IS NULL) AND
22344 (Lx_Inp_Rec_02.line_renewal_type_code IS NULL)) THEN
22345
22346
22347 G_Service_Line_Data := 'N';
22348 ELSE
22349
22350 G_Service_Line_Data := 'Y';
22351
22352 END IF;
22353
22354
22355 IF ((Lx_Inp_Rec_03.contract_id IS NULL) AND
22356 (Lx_Inp_Rec_03.contract_number IS NULL) AND
22357 (Lx_Inp_Rec_03.contract_number_modifier IS NULL) AND
22358 (Lx_Inp_Rec_03.contract_status_code IS NULL) AND
22359 (Lx_Inp_Rec_03.start_date_from IS NULL) AND
22360 (Lx_Inp_Rec_03.start_date_to IS NULL) AND
22361 (Lx_Inp_Rec_03.end_date_from IS NULL) AND
22362 (Lx_Inp_Rec_03.end_date_to IS NULL) AND
22363 (Lx_Inp_Rec_03.date_terminated_from IS NULL) AND
22364 (Lx_Inp_Rec_03.date_terminated_to IS NULL) AND
22365 (Lx_Inp_Rec_03.contract_party_id IS NULL) AND
22366 (Lx_Inp_Rec_03.contract_renewal_type_code IS NULL) AND
22367 (Lx_Inp_Rec_03.request_date IS NULL) AND
22368 (Lx_Inp_Rec_03.contract_group_id IS NULL)) THEN
22369
22370 G_Header_Data := 'N' ;
22371 ELSE
22372 G_Header_Data := 'Y' ;
22373 END IF;
22374
22375
22376 IF Lx_Inp_Tbl_01.COUNT > 0 THEN --Lx_Inp_Tbl_01.COUNT > 0
22377
22378 FOR i in Lx_Inp_Tbl_01.FIRST..Lx_Inp_Tbl_01.LAST LOOP --1st LOOP
22379
22380 IF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_CUSTPROD' THEN -- 2nd if
22381
22382 Get_CovProd_Contracts
22383 (P_CovProd_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
22384 ,P_Organization_Id => Ln_Organization_Id --Lx_Inp_Tbl_01(i).covlvl_id2
22385 ,P_Org_Id => Ln_Org_Id
22386 ,X_CovProd_Contracts => Lx_Contracts
22387 ,X_Result => Lx_Result
22388 ,X_Return_Status => Lx_Return_Status);
22389
22390 IF Lx_Result <> G_TRUE THEN
22391 RAISE L_EXCEP_UNEXPECTED_ERR;
22392 END IF;
22393
22394 ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_COVITEM' THEN
22395
22396 Get_CovItem_Contracts
22397 (P_CovItem_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
22398 ,P_Organization_Id => Lx_Inp_Tbl_01(i).covlvl_id2
22399 ,P_Party_Id => Lx_Inp_Rec_03.Contract_Party_Id
22400 ,X_CovItem_Contracts => Lx_Contracts
22401 ,X_Result => Lx_Result
22402 ,X_Return_Status => Lx_Return_Status);
22403
22404 IF Lx_Result <> G_TRUE THEN
22405 RAISE L_EXCEP_UNEXPECTED_ERR;
22406 END IF;
22407
22408 -- END IF;
22409
22410 ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_COVSYST' THEN -- 3rd If
22411
22412 Get_CovSys_Contracts
22413 (P_CovSys_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
22414 ,P_Org_Id => Ln_Org_Id
22415 ,X_CovSys_Contracts => Lx_Contracts --_Temp
22416 ,X_Result => Lx_Result
22417 ,X_Return_Status => Lx_Return_Status);
22418
22419 IF Lx_Result <> G_TRUE THEN
22420 RAISE L_EXCEP_UNEXPECTED_ERR;
22421 END IF;
22422
22423 ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_CUSTACCT' THEN
22424
22425 Get_CovCust_Contracts
22426 (P_CovCust_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
22427 ,X_CovCust_Contracts => Lx_Contracts --_Temp
22428 ,X_Result => Lx_Result
22429 ,X_Return_Status => Lx_Return_Status);
22430
22431 IF Lx_Result <> G_TRUE THEN
22432 RAISE L_EXCEP_UNEXPECTED_ERR;
22433 END IF;
22434
22435 ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_PARTYSITE' THEN
22436
22437 Get_CovSite_Contracts
22438 (P_CovSite_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
22439 ,P_Org_Id => Ln_Org_Id
22440 ,X_CovSite_Contracts => Lx_Contracts --_Temp
22441 ,X_Result => Lx_Result
22442 ,X_Return_Status => Lx_Return_Status);
22443
22444 IF Lx_Result <> G_TRUE THEN
22445 RAISE L_EXCEP_UNEXPECTED_ERR;
22446 END IF;
22447
22448 ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_PARTY' THEN
22449
22450 Get_CovParty_Contracts
22451 (P_CovParty_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
22452 ,X_CovParty_Contracts => Lx_Contracts --_Temp
22453 ,X_Result => Lx_Result
22454 ,X_Return_Status => Lx_Return_Status);
22455
22456 IF Lx_Result <> G_TRUE THEN
22457 RAISE L_EXCEP_UNEXPECTED_ERR;
22458 END IF;
22459
22460 END IF;-- 3rd If
22461
22462
22463 IF i = Lx_Inp_Tbl_01.FIRST THEN --4th IF
22464 Lx_Contracts_Prev := Lx_Contracts;
22465 Lx_Contracts.DELETE;
22466
22467 ELSE
22468
22469 Append_Contract_PlSql_Table
22470 (P_Input_Tab => Lx_Contracts_Prev
22471 ,P_Append_Tab => Lx_Contracts
22472 ,X_Output_Tab => Lx_Contracts_Out
22473 ,X_Result => Lx_Result
22474 ,X_Return_Status => Lx_Return_Status);
22475
22476 IF Lx_Result <> G_TRUE THEN
22477 RAISE L_EXCEP_UNEXPECTED_ERR;
22478 END IF;
22479
22480 Lx_Contracts_Prev.DELETE;
22481 Lx_Contracts_Prev := Lx_Contracts_Out;
22482 Lx_Contracts_Out.DELETE;
22483 Lx_Contracts.DELETE;
22484
22485 END IF; --4th IF
22486
22487 --END IF; -- 2nd if
22488 END LOOP; --1st LOOP
22489 Lx_Contracts := Lx_Contracts_Prev;
22490
22491 END IF; --Lx_Inp_Tbl_01.COUNT > 0
22492
22493 IF Lx_Contracts.COUNT > 1 THEN
22494 Sort_Asc_ContRef_PlSql_Table
22495 (P_Input_Tab => Lx_Contracts
22496 ,X_Output_Tab => Lx_Contracts_Out
22497 ,X_Result => Lx_Result
22498 ,X_Return_Status => Lx_Return_Status);
22499
22500
22501 IF Lx_Result <> G_TRUE THEN
22502 RAISE L_EXCEP_UNEXPECTED_ERR;
22503 END IF;
22504 ELSE
22505 Lx_Contracts_Out := Lx_Contracts;
22506
22507 END IF;
22508
22509 Lx_Contracts.DELETE;
22510 Lx_Contracts := Lx_Contracts_Out; -- signifies covered level inputs entered but no covered level line exists
22511
22512
22513
22514 IF (((Lx_Inp_Rec_03.Contract_Number IS NOT NULL) AND (Lx_Inp_Rec_03.Contract_Number_modifier IS NOT NULL)) OR
22515 (Lx_Inp_Rec_03.Contract_Id IS NOT NULL)) THEN
22516
22517
22518 Get_Contract_Id
22519 (P_contract_id => Lx_Inp_Rec_03.Contract_Id
22520 ,P_Contract_Num => Lx_Inp_Rec_03.Contract_Number
22521 ,P_Contract_Num_Modifier => Lx_Inp_Rec_03.Contract_Number_Modifier
22522 ,P_START_DATE_FROM => Lx_Inp_Rec_03.START_DATE_FROM
22523 ,P_START_DATE_TO => Lx_Inp_Rec_03.START_DATE_TO
22524 ,P_END_DATE_FROM => Lx_Inp_Rec_03.END_DATE_FROM
22525 ,P_END_DATE_TO => Lx_Inp_Rec_03.END_DATE_TO
22526 ,P_DATE_TERMINATE_FROM => Lx_Inp_Rec_03.DATE_TERMINATED_FROM
22527 ,P_DATE_TERMINATE_TO => Lx_Inp_Rec_03.DATE_TERMINATED_TO
22528 ,P_STATUS => Lx_Inp_Rec_03.CONTRACT_STATUS_CODE
22529 ,P_Cont_Pty_Id => Lx_Inp_Rec_03.contract_party_id
22530 ,P_cont_renewal_code => Lx_Inp_Rec_03.contract_renewal_type_code
22531 ,P_authoring_org_id => Lx_Inp_Rec_03.authoring_org_id
22532 ,P_contract_grp_id => Lx_Inp_Rec_03.contract_group_id -- additional header level criteria added dtd Dec 17th, 2003
22533 ,X_Contracts => Lx_Contracts_ContNum
22534 ,X_Result => Lx_Result
22535 ,X_Return_Status => Lx_Return_Status);
22536
22537
22538 IF Lx_Result <> G_TRUE THEN
22539 RAISE L_EXCEP_UNEXPECTED_ERR;
22540 END IF;
22541
22542 IF Lx_Contracts_ContNum.COUNT > 0 THEN --Lx_Contracts_ContNum.COUNT > 0
22543
22544 Lx_Chr_Id := Lx_Contracts_ContNum(1).Rx_Chr_Id;
22545
22546 IF Lx_Contracts_Out.COUNT > 0 THEN
22547
22548 i := Lx_Contracts_Out.First;
22549 j := 1;
22550
22551 WHILE i IS NOT NULL LOOP
22552
22553 IF Lx_Chr_Id = Lx_Contracts_Out(i).Rx_Chr_Id THEN
22554
22555 Lx_Contracts_02(j) := Lx_Contracts_Out(i);
22556
22557 END IF;
22558
22559 i := Lx_Contracts_Out.Next(i);
22560 j := j+1;
22561
22562 END LOOP;
22563
22564 Lx_Contracts_Out.DELETE;
22565 Lx_Contracts_Out := Lx_Contracts_02;
22566 Lx_Contracts_02.DELETE;
22567
22568 ELSE
22569
22570 Lx_Contracts_Out(1).Rx_Chr_Id := Lx_Chr_Id;
22571 Lx_Contracts_Out(1).Rx_Cle_Id := Lx_Contracts_ContNum(1).Rx_Cle_Id;
22572
22573 END IF;
22574 ELSE
22575 Lx_Contracts_Out.DELETE;
22576
22577 END IF;--Lx_Contracts_ContNum.COUNT > 0
22578 END IF; ----Lx_Inp_Rec_03.Contract_Number IS NOT NULL
22579
22580
22581 IF ((Lx_Inp_Rec_03.Contract_id IS NULL) AND
22582 ((Lx_Inp_Rec_03.Contract_Number Is NOT NULL) OR
22583 (Lx_Inp_Rec_03.Contract_Status_Code Is NOT NULL) OR
22584 (Lx_Inp_Rec_03.Start_Date_From Is NOT NULL) OR
22585 (Lx_Inp_Rec_03.Start_Date_To Is NOT NULL) OR
22586 (Lx_Inp_Rec_03.End_Date_From Is NOT NULL) OR
22587 (Lx_Inp_Rec_03.End_Date_To Is NOT NULL) OR
22588 (Lx_Inp_Rec_03.Date_Terminated_From Is NOT NULL) OR
22589 (Lx_Inp_Rec_03.Date_Terminated_To Is NOT NULL) OR
22590 (Lx_Inp_Rec_03.contract_party_id Is NOT NULL) OR
22591 (Lx_Inp_Rec_03.contract_group_id Is NOT NULL) OR -- additional header level criteria added dtd Dec 17th, 2003
22592 (Lx_Inp_Rec_03.contract_renewal_type_code Is NOT NULL))) THEN
22593
22594 Get_Contract_Id
22595 (P_contract_id => NULL
22596 ,P_Contract_Num => Lx_Inp_Rec_03.Contract_Number
22597 ,P_Contract_Num_Modifier => Lx_Inp_Rec_03.Contract_Number_Modifier
22598 ,P_START_DATE_FROM => Lx_Inp_Rec_03.START_DATE_FROM
22599 ,P_START_DATE_TO => Lx_Inp_Rec_03.START_DATE_TO
22600 ,P_END_DATE_FROM => Lx_Inp_Rec_03.END_DATE_FROM
22601 ,P_END_DATE_TO => Lx_Inp_Rec_03.END_DATE_TO
22602 ,P_DATE_TERMINATE_FROM => Lx_Inp_Rec_03.DATE_TERMINATED_FROM
22603 ,P_DATE_TERMINATE_TO => Lx_Inp_Rec_03.DATE_TERMINATED_TO
22604 ,P_STATUS => Lx_Inp_Rec_03.CONTRACT_STATUS_CODE
22605 ,P_Cont_Pty_Id => Lx_Inp_Rec_03.contract_party_id
22606 ,P_cont_renewal_code => Lx_Inp_Rec_03.contract_renewal_type_code
22607 ,P_authoring_org_id => Lx_Inp_Rec_03.authoring_org_id
22608 ,P_contract_grp_id => Lx_Inp_Rec_03.contract_group_id -- additional header level criteria added dtd Dec 17th, 2003
22609 ,X_Contracts => Lx_Contracts_ContNum
22610 ,X_Result => Lx_Result
22611 ,X_Return_Status => Lx_Return_Status);
22612
22613
22614 IF Lx_Result <> G_TRUE THEN
22615 RAISE L_EXCEP_UNEXPECTED_ERR;
22616 END IF;
22617
22618
22619 l := 0;
22620
22621 IF Lx_Contracts_ContNum.COUNT > 0 THEN --Lx_Contracts_ContNum.COUNT > 0
22622
22623 IF Lx_Contracts_Out.COUNT > 0 THEN --Lx_Contracts_Out.COUNT > 0
22624
22625 FOR I in Lx_Contracts_ContNum.First .. Lx_Contracts_ContNum.LAST LOOP
22626
22627 FOR K in Lx_Contracts_Out.FIRST .. Lx_Contracts_Out.LAST LOOP
22628
22629 IF Lx_Contracts_ContNum(i).Rx_Chr_Id = Lx_Contracts_Out(k).Rx_Chr_Id THEN
22630
22631 l := l+1;
22632 Lx_Contracts_02(l).Rx_Chr_Id := Lx_Contracts_Out(k).Rx_Chr_Id;
22633 Lx_Contracts_02(l).Rx_Cle_Id := Lx_Contracts_Out(k).Rx_Cle_Id;
22634 Lx_Contracts_02(l).Rx_Pty_Id := Lx_Contracts_Out(k).Rx_Pty_Id;
22635
22636 END IF;
22637
22638 END LOOP;
22639 END LOOP;
22640
22641 Lx_Contracts_Out.DELETE;
22642 Lx_Contracts_Out := Lx_Contracts_02;
22643 Lx_Contracts_02.DELETE;
22644
22645 ELSE
22646
22647 Lx_Contracts_Out := Lx_Contracts_ContNum;
22648
22649 END IF; --Lx_Contracts_Out.COUNT > 0
22650
22651 ELSE
22652
22653 Lx_Contracts_Out.DELETE;
22654
22655 END IF;
22656
22657 END IF;
22658
22659
22660 IF (( Lx_Inp_Tbl_01.COUNT=0 and G_Header_Data ='N') OR
22661 ( Lx_Inp_Tbl_01.COUNT >0 and G_Header_Data ='N' and Lx_Contracts.COUNT>0 )OR
22662 ( Lx_Inp_Tbl_01.COUNT >0 and G_Header_Data ='Y' and Lx_Contracts.COUNT>0 and Lx_Contracts_Out.COUNT>0 ) OR
22663 ( Lx_Inp_Tbl_01.COUNT =0 and G_Header_Data ='Y' and Lx_Contracts_Out.COUNT>0)) then
22664
22665 if Lx_contracts.count > 0 then
22666 Lx_Covlevel_lines_passed := 'Y';
22667 else
22668 Lx_Covlevel_lines_passed := 'N';
22669 end if;
22670
22671 Get_Contract_Lines
22672 (P_Contracts => Lx_Contracts_Out
22673 ,P_Contract_line_Rec => Lx_Inp_Rec_02
22674 ,p_Covlevel_lines_passed => Lx_Covlevel_lines_passed
22675 ,P_Request_Date => Lx_request_date --Lx_Inp_Rec_03.Request_Date
22676 ,P_Entitlement_Check_YN => Lx_Inp_Rec_03.entitlement_check_YN
22677 ,P_authoring_org_id => Lx_Inp_Rec_03.authoring_org_id -- multi org security check
22678 ,X_Contracts_02 => Lx_Ent_ContractLiness
22679 ,X_Result => Lx_Result
22680 ,X_Return_Status => Lx_Return_Status) ;
22681
22682 END IF;
22683
22684 IF Lx_Result <> G_TRUE THEN
22685 RAISE L_EXCEP_UNEXPECTED_ERR;
22686 END IF;
22687
22688
22689 X_Contract_tbl := Lx_Ent_ContractLiness;--Lx_Ent_Contracts;
22690 X_Return_Status := Lx_Return_Status;
22691
22692 EXCEPTION
22693
22694 WHEN OTHERS THEN
22695
22696 OKC_API.SET_MESSAGE
22697 (P_App_Name => G_APP_NAME_OKC
22698 ,P_Msg_Name => G_UNEXPECTED_ERROR
22699 ,P_Token1 => G_SQLCODE_TOKEN
22700 ,P_Token1_Value => SQLCODE
22701 ,P_Token2 => G_SQLERRM_TOKEN
22702 ,P_Token2_Value => SQLERRM);
22703
22704 OKC_API.SET_MESSAGE
22705 (P_App_Name => G_APP_NAME_OKC
22706 ,P_Msg_Name => G_DEBUG_TOKEN
22707 ,P_Token1 => G_PACKAGE_TOKEN
22708 ,P_Token1_Value => G_PKG_NAME
22709 ,P_Token2 => G_PROGRAM_TOKEN
22710 ,P_Token2_Value => 'Search_Contracts_Lines');
22711
22712 -- X_Result := G_FALSE;
22713 X_Return_Status := G_RET_STS_UNEXP_ERROR;
22714
22715 END Search_Contract_lines; -- Main End for Search_Contract_line
22716
22717 -- Bug# 4899844
22718
22719 FUNCTION Get_BPL_Offset_Start_Date
22720 (P_SVL_Start_Date IN DATE
22721 ,P_Offset_Timeunit IN VARCHAR2
22722 ,P_Offset_Duration IN NUMBER) RETURN DATE
22723 IS
22724
22725 l_BPL_Offset_Start_Date DATE;
22726
22727 BEGIN
22728
22729 IF (P_SVL_Start_Date IS NOT NULL)
22730 AND (P_Offset_Timeunit IS NOT NULL)
22731 AND (P_Offset_Timeunit IS NOT NULL) THEN
22732
22733 l_BPL_Offset_Start_Date := OKC_Time_Util_Pub.Get_EndDate(P_SVL_Start_Date,P_Offset_Timeunit,P_Offset_Duration)+1;
22734
22735 ELSE
22736
22737 l_BPL_Offset_Start_Date := P_SVL_Start_Date;
22738
22739 END IF;
22740
22741 RETURN l_BPL_Offset_Start_Date ;
22742
22743 END Get_BPL_Offset_Start_Date;
22744
22745 --
22746
22747 END OKS_ENTITLEMENTS_PVT;