[Home] [Help]
PACKAGE BODY: APPS.OKS_ENTITLEMENTS_PVT
Source
1 PACKAGE BODY OKS_ENTITLEMENTS_PVT AS
2 /* $Header: OKSRENTB.pls 120.25.12010000.2 2008/10/22 12:51:09 ssreekum 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 ,X_BPL_Id OUT nocopy Gx_OKS_Id
918 ,X_BPL_Start OUT nocopy DATE
919 ,X_BPL_End OUT nocopy DATE
920 ,X_BPL_Terminated OUT nocopy DATE
921 ,X_Result OUT nocopy Gx_Boolean
922 ,X_Return_Status OUT nocopy Gx_Ret_Sts)
923 IS
924
925 /**
926 bug 3202650: The purpose is to suppress index on ITM.object1_id1,ITM.jtot_object1_code and let
927 index on ITM.cle_id be used to improve the cardinality on OKC_K_ITEMS during row source operation.
928
929 **/
930
931 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) IS
932 SELECT BPL.Id
933 ,BPL.Start_Date
934 ,Get_End_Date_Time(BPL.End_Date) End_Date
935 ,Get_End_Date_Time(BPL.Date_Terminated) Date_Terminated
936 FROM Okc_K_Lines_B BPL,
937 Okc_K_Lines_B CVL
938 WHERE CVL.id = Cx_CVL_Id
939 AND BPL.Cle_Id = CVL.Id
940 AND EXISTS ( SELECT '*'
941 FROM Okc_K_Items ITM
942 WHERE ITM.Cle_id = BPL.Id
943 AND ITM.Object1_Id1 = Cx_BP_Id -- TO_CHAR(Cx_BP_Id) commented due to bug 3202650
944 AND ITM.Object1_Id2 = '#'
945 AND ITM.Jtot_Object1_Code = Cx_BP_ObjCode);
946
947 --Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
948 Lx_CVL_Id CONSTANT Gx_OKS_Id := P_CVL_Id;
949 Lx_BP_Id CONSTANT Gx_BusProcess_Id := P_BP_Id;
950 Lx_BP_ObjCode CONSTANT Gx_JTOT_ObjCode := P_BP_ObjCode;
951 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
952
953 Lx_BPL_Id Gx_OKS_Id;
954 Ld_BPL_Start DATE;
955 Ld_BPL_End DATE;
956 Ld_BPL_Terminated DATE;
957
958 Lx_Result Gx_Boolean;
959 Lx_Return_Status Gx_Ret_Sts;
960
961 Lx_ExcepionMsg Gx_ExceptionMsg;
962
963 L_EXCEP_NO_DATA_FOUND EXCEPTION;
964
965 BEGIN
966
967 Lx_Result := G_TRUE;
968 Lx_Return_Status := G_RET_STS_SUCCESS;
969
970 -- OPEN Lx_Csr_BPL(Lx_SVL_Id,Lx_BP_Id,Lx_BP_ObjCode);
971 OPEN Lx_Csr_BPL(Lx_CVL_Id,Lx_BP_Id,Lx_BP_ObjCode);
972 FETCH Lx_Csr_BPL INTO Lx_BPL_Id,Ld_BPL_Start,Ld_BPL_End,Ld_BPL_Terminated;
973
974 IF Lx_Csr_BPL%NOTFOUND THEN
975
976 CLOSE Lx_Csr_BPL;
977 Lx_ExcepionMsg := 'Business Process';
978 RAISE L_EXCEP_NO_DATA_FOUND;
979
980 END IF;
981
982 CLOSE Lx_Csr_BPL;
983
984 X_BPL_Id := Lx_BPL_Id;
985 X_BPL_Start := Ld_BPL_Start;
986 X_BPL_End := Ld_BPL_End;
987 X_BPL_Terminated := Ld_BPL_Terminated;
988 X_Result := Lx_Result;
989 X_Return_Status := Lx_Return_Status;
990
991 EXCEPTION
992
993 WHEN L_EXCEP_NO_DATA_FOUND THEN
994
995 Lx_Result := G_FALSE;
996
997 IF Lx_Set_ExcepionStack = G_TRUE THEN
998
999 OKC_API.SET_MESSAGE
1000 (p_app_name => G_APP_NAME_OKC
1001 ,p_msg_name => G_INVALID_VALUE
1002 ,p_token1 => G_COL_NAME_TOKEN
1003 ,p_token1_value => Lx_ExcepionMsg);
1004
1005 Lx_Return_Status := G_RET_STS_ERROR;
1006
1007 END IF;
1008
1009 X_Result := Lx_Result;
1010 X_Return_Status := Lx_Return_Status;
1011
1012 WHEN OTHERS THEN
1013
1014 IF Lx_Csr_BPL%ISOPEN THEN
1015 CLOSE Lx_Csr_BPL;
1016 END IF;
1017
1018 OKC_API.SET_MESSAGE
1019 (P_App_Name => G_APP_NAME_OKC
1020 ,P_Msg_Name => G_UNEXPECTED_ERROR
1021 ,P_Token1 => G_SQLCODE_TOKEN
1022 ,P_Token1_Value => SQLCODE
1023 ,P_Token2 => G_SQLERRM_TOKEN
1024 ,P_Token2_Value => SQLERRM);
1025
1026 OKC_API.SET_MESSAGE
1027 (P_App_Name => G_APP_NAME_OKC
1028 ,P_Msg_Name => G_DEBUG_TOKEN
1029 ,P_Token1 => G_PACKAGE_TOKEN
1030 ,P_Token1_Value => G_PKG_NAME
1031 ,P_Token2 => G_PROGRAM_TOKEN
1032 ,P_Token2_Value => 'Validate_Contract_BP');
1033
1034 X_Result := G_FALSE;
1035 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1036
1037 END Validate_Contract_BP;
1038
1039 -----------------------------------------------------------------------------------------------------------------------
1040
1041 PROCEDURE Get_Effective_End_Date
1042 (P_Start_Date IN DATE
1043 ,P_End_Date IN DATE
1044 ,P_Termination_Date IN DATE
1045 ,P_EndDate_Required IN Gx_Boolean
1046 ,P_Set_ExcepionStack IN Gx_Boolean
1047 ,P_ExcepionMsg IN Gx_ExceptionMsg
1048 ,X_EffEnd_Date out nocopy DATE
1049 ,X_Result out nocopy Gx_Boolean
1050 ,X_Return_Status out nocopy Gx_Ret_Sts)
1051
1052 IS
1053
1054 Ld_Start_Date CONSTANT DATE:= P_Start_Date;
1055 Ld_End_Date CONSTANT DATE:= P_End_Date;
1056 Ld_Termination_Date CONSTANT DATE:= P_Termination_Date;
1057 Ld_EndDate_Required CONSTANT Gx_Boolean := P_EndDate_Required;
1058 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1059
1060 Lx_ExcepionMsg CONSTANT Gx_ExceptionMsg := P_ExcepionMsg;
1061 Lx_Final_Msg Gx_ExceptionMsg;
1062
1063 Ld_EffEnd_Date DATE;
1064 Lx_Result Gx_Boolean;
1065 Lx_Return_Status Gx_Ret_Sts;
1066
1067 Lx_End_Date_Null Gx_Boolean;
1068 Lx_Termination_Date_Null Gx_Boolean;
1069
1070 L_EXCEP_NULL_VALUE EXCEPTION ;
1071 L_EXCEP_UNEXPECTED_ERR EXCEPTION ;
1072
1073 BEGIN
1074
1075 Lx_Result := G_TRUE;
1076 Lx_Return_Status := G_RET_STS_SUCCESS;
1077
1078 Lx_End_Date_Null := G_FALSE;
1079 Lx_Termination_Date_Null := G_FALSE;
1080
1081 Lx_Final_Msg := Lx_ExcepionMsg||' Start Date';
1082
1083 Validate_Required_DateValue
1084 (P_Date_Value => Ld_Start_Date
1085 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
1086 ,P_ExcepionMsg => Lx_Final_Msg
1087 ,X_Result => Lx_Result
1088 ,X_Return_Status => Lx_Return_Status);
1089
1090 IF Lx_result <> G_TRUE THEN
1091 RAISE L_EXCEP_NULL_VALUE;
1092 END IF;
1093
1094 Lx_Final_Msg := Lx_ExcepionMsg||' End Date';
1095
1096 Validate_Required_DateValue
1097 (P_Date_Value => Ld_End_Date
1098 ,P_Set_ExcepionStack => G_FALSE
1099 ,P_ExcepionMsg => Lx_Final_Msg
1100 ,X_Result => Lx_Result
1101 ,X_Return_Status => Lx_Return_Status);
1102
1103 IF Lx_result <> G_TRUE THEN
1104
1105 Lx_End_Date_Null := G_TRUE;
1106
1107 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
1108 RAISE L_EXCEP_UNEXPECTED_ERR;
1109 END IF;
1110
1111 END IF;
1112
1113 Lx_Final_Msg := Lx_ExcepionMsg||' Termination Date';
1114
1115 Validate_Required_DateValue
1116 (P_Date_Value => Ld_Termination_Date
1117 ,P_Set_ExcepionStack => G_FALSE
1118 ,P_ExcepionMsg => Lx_Final_Msg
1119 ,X_Result => Lx_Result
1120 ,X_Return_Status => Lx_Return_Status);
1121
1122 IF Lx_result <> G_TRUE THEN
1123
1124 Lx_Termination_Date_Null := G_TRUE;
1125
1126 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
1127 RAISE L_EXCEP_UNEXPECTED_ERR;
1128 END IF;
1129
1130 END IF;
1131
1132 IF Lx_Termination_Date_Null <> G_TRUE THEN
1133 -- grace period is not allowed if the line is terminated
1134 IF Lx_End_Date_Null = G_TRUE THEN
1135 Ld_EffEnd_Date := Ld_Termination_Date;
1136 ELSE
1137
1138 IF Ld_Termination_Date < Ld_End_Date THEN
1139 Ld_EffEnd_Date := Ld_Termination_Date;
1140 ELSE
1141 Ld_EffEnd_Date := Ld_End_Date;
1142 END IF;
1143
1144 END IF;
1145
1146 ELSE
1147 Ld_EffEnd_Date := Ld_End_Date;
1148
1149 -- grace period changes starts
1150
1151 IF G_GRACE_PROFILE_SET = 'Y' THEN
1152
1153 -- grace period changes are done only if line end date matches contract end date
1154
1155 IF trunc(Ld_EffEnd_Date) = trunc(G_CONTRACT_END_DATE) AND Ld_Termination_Date IS NULL THEN
1156 Ld_EffEnd_Date := Get_Final_End_Date(G_CONTRACT_ID,Ld_EffEnd_Date);
1157 END IF;
1158
1159 END IF;
1160
1161 -- grace period changes ends
1162
1163 END IF;
1164
1165 IF Ld_EndDate_Required = G_TRUE THEN
1166
1167 Lx_Final_Msg := Lx_ExcepionMsg||' End date or Termination date';
1168
1169 Validate_Required_DateValue
1170 (P_Date_Value => Ld_EffEnd_Date
1171 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
1172 ,P_ExcepionMsg => Lx_Final_Msg
1173 ,X_Result => Lx_result
1174 ,X_Return_Status => Lx_Return_Status);
1175
1176 IF Lx_result <> G_TRUE THEN
1177 RAISE L_EXCEP_NULL_VALUE;
1178 END IF;
1179
1180 END IF;
1181
1182 Lx_Result := G_TRUE;
1183 Lx_Return_Status := G_RET_STS_SUCCESS;
1184
1185 X_EffEnd_Date := Ld_EffEnd_Date;
1186 X_Result := Lx_Result;
1187 X_Return_Status := Lx_Return_Status;
1188
1189 EXCEPTION
1190
1191 WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_UNEXPECTED_ERR THEN
1192
1193 X_Result := Lx_Result;
1194 X_Return_Status := Lx_Return_Status;
1195
1196 WHEN OTHERS THEN
1197
1198 OKC_API.SET_MESSAGE
1199 (P_App_Name => G_APP_NAME_OKC
1200 ,P_Msg_Name => G_UNEXPECTED_ERROR
1201 ,P_Token1 => G_SQLCODE_TOKEN
1202 ,P_Token1_Value => SQLCODE
1203 ,P_Token2 => G_SQLERRM_TOKEN
1204 ,P_Token2_Value => SQLERRM);
1205
1206 OKC_API.SET_MESSAGE
1207 (P_App_Name => G_APP_NAME_OKC
1208 ,P_Msg_Name => G_DEBUG_TOKEN
1209 ,P_Token1 => G_PACKAGE_TOKEN
1210 ,P_Token1_Value => G_PKG_NAME
1211 ,P_Token2 => G_PROGRAM_TOKEN
1212 ,P_Token2_Value => 'Get_Effective_End_Date');
1213
1214 X_Result := G_FALSE;
1215 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1216
1217 END Get_Effective_End_Date;
1218
1219 -----------------------------------------------------------------------------------------------------------------------*
1220
1221 PROCEDURE Get_BP_CoverTimeZone_Line
1222 (P_BPL_Id IN Gx_OKS_Id
1223 ,P_Set_ExcepionStack IN Gx_Boolean
1224 ,X_BP_CVTLine_Id out nocopy Gx_OKS_Id
1225 ,X_BP_Tz_Id out nocopy Gx_TimeZoneId
1226 ,X_Result out nocopy Gx_Boolean
1227 ,X_Return_Status out nocopy Gx_Ret_Sts)
1228 IS
1229
1230 CURSOR Lx_Csr_BP_CVT(Cx_BPL_Id IN Gx_OKS_Id) IS
1231 SELECT OCT.Id
1232 ,OCT.TimeZone_Id BP_Tzone_Id
1233 FROM Oks_Coverage_Timezones OCT
1234 WHERE OCT.CLE_ID = Cx_BPL_Id
1235 AND OCT.Default_YN = 'Y';
1236
1237 Lx_BPL_Id CONSTANT Gx_OKS_Id := P_BPL_Id;
1238 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1239
1240 Lx_BP_CVTLine_Id Gx_OKS_Id;
1241 Lx_BP_Tz_Id Gx_TimeZoneId;
1242 Lx_Result Gx_Boolean;
1243 Lx_Return_Status Gx_Ret_Sts;
1244 Lx_ExcepionMsg Gx_ExceptionMsg;
1245
1246 L_EXCEP_NO_DATA_FOUND EXCEPTION;
1247 L_EXCEP_NULL_VALUE EXCEPTION;
1248
1249 BEGIN
1250
1251 Lx_Result := G_TRUE;
1252 Lx_Return_Status := G_RET_STS_SUCCESS;
1253
1254 OPEN Lx_Csr_BP_CVT(Lx_BPL_Id);
1255 FETCH Lx_Csr_BP_CVT INTO Lx_BP_CVTLine_Id,Lx_BP_Tz_Id;
1256
1257 IF Lx_Csr_BP_CVT%NOTFOUND THEN
1258
1259 Lx_ExcepionMsg := 'Cover Time';
1260 RAISE L_EXCEP_NO_DATA_FOUND;
1261
1262 ELSE
1263
1264 Validate_Required_NumValue
1265 (P_Num_Value => Lx_BP_Tz_Id
1266 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
1267 ,P_ExcepionMsg => 'Cover Time - Time Zone'
1268 ,X_Result => Lx_result
1269 ,X_Return_Status => Lx_Return_Status);
1270
1271 IF Lx_Result <> G_TRUE THEN
1272 RAISE L_EXCEP_NULL_VALUE;
1273 END IF;
1274
1275 END IF;
1276
1277 CLOSE Lx_Csr_BP_CVT;
1278
1279 X_BP_CVTLine_Id := Lx_BP_CVTLine_Id;
1280 X_BP_Tz_Id := Lx_BP_Tz_Id;
1281 X_Result := Lx_Result;
1282 X_Return_Status := Lx_Return_Status;
1283
1284 EXCEPTION
1285
1286 WHEN L_EXCEP_NO_DATA_FOUND THEN
1287
1288 IF Lx_Csr_BP_CVT%ISOPEN THEN
1289 CLOSE Lx_Csr_BP_CVT;
1290 END IF;
1291
1292 Lx_Result := G_FALSE;
1293
1294 IF Lx_Set_ExcepionStack = G_TRUE THEN
1295
1296 OKC_API.SET_MESSAGE
1297 (P_app_name => G_APP_NAME_OKC
1298 ,P_msg_name => G_REQUIRED_VALUE
1299 ,P_token1 => G_COL_NAME_TOKEN
1300 ,P_token1_value => Lx_ExcepionMsg);
1301
1302 Lx_Return_Status := G_RET_STS_ERROR;
1303
1304 END IF;
1305
1306 X_Result := Lx_Result;
1307 X_Return_Status := Lx_Return_Status;
1308
1309 WHEN L_EXCEP_NULL_VALUE THEN
1310
1311 IF Lx_Csr_BP_CVT%ISOPEN THEN
1312 CLOSE Lx_Csr_BP_CVT;
1313 END IF;
1314
1315 X_Result := Lx_Result;
1316 X_Return_Status := Lx_Return_Status;
1317
1318 WHEN OTHERS THEN
1319
1320 IF Lx_Csr_BP_CVT%ISOPEN THEN
1321 CLOSE Lx_Csr_BP_CVT;
1322 END IF;
1323
1324 OKC_API.SET_MESSAGE
1325 (P_App_Name => G_APP_NAME_OKC
1326 ,P_Msg_Name => G_UNEXPECTED_ERROR
1327 ,P_Token1 => G_SQLCODE_TOKEN
1328 ,P_Token1_Value => SQLCODE
1329 ,P_Token2 => G_SQLERRM_TOKEN
1330 ,P_Token2_Value => SQLERRM);
1331
1332 OKC_API.SET_MESSAGE
1333 (P_App_Name => G_APP_NAME_OKC
1334 ,P_Msg_Name => G_DEBUG_TOKEN
1335 ,P_Token1 => G_PACKAGE_TOKEN
1336 ,P_Token1_Value => G_PKG_NAME
1337 ,P_Token2 => G_PROGRAM_TOKEN
1338 ,P_Token2_Value => 'Get_BP_CoverTimeZone_Line');
1339
1340 X_Result := G_FALSE;
1341 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1342
1343 END Get_BP_CoverTimeZone_Line;
1344
1345 -----------------------------------------------------------------------------------------------------------------------*
1346
1347 PROCEDURE Convert_TimeZone
1348 (P_API_Version IN NUMBER
1349 ,P_Init_Msg_List IN VARCHAR2
1350 ,p_Source_Date IN DATE
1351 ,P_Source_Tz_Id IN Gx_TimeZoneId
1352 ,P_Dest_Tz_Id IN Gx_TimeZoneId
1353 ,X_Dest_Date out nocopy DATE
1354 ,X_Msg_Count out nocopy NUMBER
1355 ,X_Msg_Data out nocopy VARCHAR2
1356 ,X_Return_Status out nocopy Gx_Ret_Sts)
1357
1358 IS
1359 BEGIN
1360
1361 OKX_GATEWAY.OKX_TIMEZONE_GETTIME
1362 (P_API_Version => P_API_Version
1363 ,P_Init_Msg_List => P_Init_Msg_List
1364 ,P_Source_Tz_Id => P_Source_Tz_Id
1365 ,P_Dest_Ts_Id => P_Dest_Tz_Id
1366 ,P_Source_Day_Time => p_Source_Date
1367 ,X_Dest_Day_Time => X_Dest_Date
1368 ,X_Return_Status => X_Return_Status
1369 ,X_Msg_Count => X_Msg_Count
1370 ,X_Msg_Data => X_Msg_Data);
1371
1372 EXCEPTION
1373
1374 WHEN OTHERS THEN
1375
1376 OKC_API.SET_MESSAGE
1377 (P_App_Name => G_APP_NAME_OKC
1378 ,P_Msg_Name => G_UNEXPECTED_ERROR
1379 ,P_Token1 => G_SQLCODE_TOKEN
1380 ,P_Token1_Value => SQLCODE
1381 ,P_Token2 => G_SQLERRM_TOKEN
1382 ,P_Token2_Value => SQLERRM);
1383
1384 OKC_API.SET_MESSAGE
1385 (P_App_Name => G_APP_NAME_OKC
1386 ,P_Msg_Name => G_DEBUG_TOKEN
1387 ,P_Token1 => G_PACKAGE_TOKEN
1388 ,P_Token1_Value => G_PKG_NAME
1389 ,P_Token2 => G_PROGRAM_TOKEN
1390 ,P_Token2_Value => 'Convert_TimeZone');
1391
1392 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1393
1394 END Convert_TimeZone;
1395
1396 -----------------------------------------------------------------------------------------------------------------------*
1397
1398 PROCEDURE Validate_Effectivity
1399 (P_Request_Date IN DATE
1400 ,P_Start_DateTime IN DATE
1401 ,P_End_DateTime IN DATE
1402 ,P_Set_ExcepionStack IN Gx_Boolean
1403 ,P_CL_Msg_TokenValue IN Gx_ExceptionMsg
1404 ,X_Result out nocopy Gx_Boolean
1405 ,X_Return_Status out nocopy Gx_Ret_Sts)
1406
1407 IS
1408
1409 Ld_Request_Date CONSTANT DATE := P_Request_Date;
1410 Ld_Start_DateTime CONSTANT DATE := P_Start_DateTime;
1411 Ld_End_DateTime CONSTANT DATE := P_End_DateTime;
1412 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1413 Lx_CL_Msg_TokenValue CONSTANT Gx_ExceptionMsg := P_CL_Msg_TokenValue;
1414
1415 Lx_Result Gx_Boolean;
1416 Lx_Return_Status Gx_Ret_Sts;
1417 Lx_Msg_TokenVal_Start Gx_ExceptionMsg;
1418 Lx_Msg_TokenVal_End Gx_ExceptionMsg;
1419
1420 L_EXCEP_NOT_EFFECTIVE EXCEPTION;
1421
1422 BEGIN
1423
1424 Lx_Result := G_TRUE;
1425 Lx_Return_Status := G_RET_STS_SUCCESS;
1426
1427 IF Ld_Request_Date BETWEEN Ld_Start_DateTime AND Ld_End_DateTime THEN
1428
1429 NULL;
1430
1431 ELSE
1432
1433 Lx_Msg_TokenVal_Start := Lx_CL_Msg_TokenValue||' Start Date/Time';
1434 Lx_Msg_TokenVal_End := ' End Date/Time';
1435
1436 RAISE L_EXCEP_NOT_EFFECTIVE;
1437
1438 END IF;
1439
1440 X_Result := Lx_Result;
1441 X_Return_Status := Lx_Return_Status;
1442
1443 EXCEPTION
1444
1445 WHEN L_EXCEP_NOT_EFFECTIVE THEN
1446
1447 Lx_Result := G_FALSE;
1448
1449 IF Lx_Set_ExcepionStack = G_TRUE THEN
1450
1451 OKC_API.SET_MESSAGE
1452 (p_app_name => G_APP_NAME_OKS
1453 ,p_msg_name => 'OKS_INVALID_REQ_DT'
1454 ,p_token1 => 'DATE1'
1455 ,p_token1_value => ''''||TO_CHAR(Ld_Request_Date,'YYYY/MM/DD HH24:MI:SS')||''''
1456 ,p_token2 => 'STARTDATE'
1457 ,p_token2_value => Lx_Msg_TokenVal_Start
1458 ,p_token3 => 'DATE2'
1459 ,p_token3_value => ''''||TO_CHAR(Ld_Start_DateTime,'YYYY/MM/DD HH24:MI:SS')||''''
1460 ,p_token4 => 'ENDDATE'
1461 ,p_token4_value => Lx_Msg_TokenVal_End
1462 ,p_token5 => 'DATE3'
1463 ,p_token5_value => ''''||TO_CHAR(Ld_End_DateTime,'YYYY/MM/DD HH24:MI:SS')||'''');
1464
1465 Lx_Return_Status := G_RET_STS_ERROR;
1466
1467 END IF;
1468
1469 X_Result := Lx_Result;
1470 X_Return_Status := Lx_Return_Status;
1471
1472 WHEN OTHERS THEN
1473
1474 OKC_API.SET_MESSAGE
1475 (P_App_Name => G_APP_NAME_OKC
1476 ,P_Msg_Name => G_UNEXPECTED_ERROR
1477 ,P_Token1 => G_SQLCODE_TOKEN
1478 ,P_Token1_Value => SQLCODE
1479 ,P_Token2 => G_SQLERRM_TOKEN
1480 ,P_Token2_Value => SQLERRM);
1481
1482 OKC_API.SET_MESSAGE
1483 (P_App_Name => G_APP_NAME_OKC
1484 ,P_Msg_Name => G_DEBUG_TOKEN
1485 ,P_Token1 => G_PACKAGE_TOKEN
1486 ,P_Token1_Value => G_PKG_NAME
1487 ,P_Token2 => G_PROGRAM_TOKEN
1488 ,P_Token2_Value => 'Validate_Effectivity');
1489
1490 X_Result := G_FALSE;
1491 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1492
1493 END Validate_Effectivity;
1494
1495 -----------------------------------------------------------------------------------------------------------------------*
1496
1497 -- 11.5.10 rule rearchitecture changes ...the procedure will get only reaction time line id and not rule_id
1498
1499 PROCEDURE Get_BP_ReactResolTime_Line
1500 (P_BPL_Id IN Gx_OKS_Id
1501 ,P_Severity_Id IN Gx_Severity_Id
1502 ,P_TimeType_Category IN Varchar2 --Gx_TimeType_Category
1503 ,P_Active_YN IN Gx_YesNo
1504 ,P_Set_ExcepionStack IN Gx_Boolean
1505 ,X_RTL_Id out nocopy Gx_OKS_Id
1506 ,X_RTL_Start out nocopy DATE
1507 ,X_RTL_End out nocopy DATE
1508 ,X_RTL_Terminated out nocopy DATE
1509 ,X_RTL_Line_Id out nocopy Gx_OKS_Id
1510 ,X_RTL_WT_YN out nocopy Gx_YesNo
1511 ,X_Result out nocopy Gx_Boolean
1512 ,X_Return_Status out nocopy Gx_Ret_Sts)
1513
1514 IS
1515
1516 CURSOR Lx_Csr_RTL_Line(Cx_BPL_Id IN Gx_OKS_Id
1517 ,Cx_Severity_Id IN Gx_Severity_Id
1518 ,Cx_TimeType_Category IN Varchar2
1519 ,Cx_Active_YN IN Gx_YesNo
1520 )
1521 IS
1522 SELECT RTL.Id
1523 ,RTL.Start_Date
1524 ,Get_End_Date_Time(RTL.End_Date) End_Date
1525 ,Get_End_Date_Time(RTL.Date_Terminated) Date_Terminated
1526 ,OKSRTL.Work_Thru_YN Work_Through_YN
1527 FROM Okc_K_Lines_B RTL
1528 ,Okc_K_Lines_B BPL
1529 ,oks_k_lines_b OKSRTL
1530 ,oks_action_time_types ACT
1531 ,oks_action_times ACM
1532 WHERE BPL.Id = Cx_BPL_Id
1533 AND RTL.Cle_Id = BPL.Id
1534 AND OKSRTL.Cle_Id = RTL.Id
1535 AND RTL.lse_id in (4,17,22)
1536 AND OKSRTL.incident_severity_id = Cx_Severity_Id
1537 AND OKSRTL.react_active_yn = Cx_Active_YN
1538 AND ACT.cle_id = RTL.id
1539 AND ACT.action_type_code = Cx_TimeType_Category
1540 and ACT.id = ACM.cov_action_type_id
1541 and (ACM.sun_duration is not null or
1542 ACM.mon_duration is not null or
1543 ACM.tue_duration is not null or
1544 ACM.wed_duration is not null or
1545 ACM.thu_duration is not null or
1546 ACM.fri_duration is not null or
1547 ACM.sat_duration is not null);
1548
1549
1550
1551 Lx_BPL_Id CONSTANT Gx_OKS_Id := P_BPL_Id;
1552 Lx_Severity_Id CONSTANT Gx_Severity_Id := P_Severity_Id;
1553 Lx_TimeType_Category CONSTANT Varchar2(30) := P_TimeType_Category; --Gx_Rule_Category := P_Rule_Category;
1554 Lx_Active_YN CONSTANT Gx_YesNo := P_Active_YN;
1555
1556 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1557
1558 Lx_RTL_Id Gx_OKS_Id;
1559 Ld_RTL_Start DATE;
1560 Ld_RTL_End DATE;
1561 Ld_RTL_Terminated DATE;
1562 Lx_RTL_WT_YN Gx_YesNo;
1563
1564 Lx_Result Gx_Boolean;
1565 Lx_Return_Status Gx_Ret_Sts;
1566 Lx_ExcepionMsg Gx_ExceptionMsg;
1567
1568 L_EXCEP_NO_DATA_FOUND EXCEPTION;
1569
1570 BEGIN
1571
1572 Lx_Result := G_TRUE;
1573 Lx_Return_Status := G_RET_STS_SUCCESS;
1574
1575 OPEN Lx_Csr_RTL_Line(Lx_BPL_Id,Lx_Severity_Id,Lx_TimeType_Category,Lx_Active_YN);
1576
1577 FETCH Lx_Csr_RTL_Line INTO Lx_RTL_Id,Ld_RTL_Start,LD_RTL_End,Ld_RTL_Terminated,Lx_RTL_WT_YN;
1578
1579 IF Lx_Csr_RTL_Line%NOTFOUND THEN
1580
1581 CLOSE Lx_Csr_RTL_Line;
1582
1583 IF Lx_TimeType_Category = G_RUL_CATEGORY_REACTION THEN
1584 Lx_ExcepionMsg := 'Reaction Time - Severity';
1585 ELSE
1586 Lx_ExcepionMsg := 'Resolution Time - Severity';
1587 END IF;
1588
1589 RAISE L_EXCEP_NO_DATA_FOUND;
1590
1591 END IF;
1592
1593 CLOSE Lx_Csr_RTL_Line;
1594
1595 X_RTL_Id := Lx_RTL_Id;
1596 X_RTL_Start := Ld_RTL_Start;
1597 X_RTL_End := Ld_RTL_End;
1598 X_RTL_Terminated := Ld_RTL_Terminated;
1599 X_RTL_Line_Id := Lx_RTL_Id;
1600 X_RTL_WT_YN := Lx_RTL_WT_YN;
1601 X_Result := Lx_Result;
1602 X_Return_Status := Lx_Return_Status;
1603
1604 EXCEPTION
1605
1606 WHEN L_EXCEP_NO_DATA_FOUND THEN
1607
1608 Lx_Result := G_FALSE;
1609
1610 IF Lx_Set_ExcepionStack = G_TRUE THEN
1611
1612 OKC_API.SET_MESSAGE
1613 (P_app_name => G_APP_NAME_OKC
1614 ,P_msg_name => G_REQUIRED_VALUE
1615 ,P_token1 => G_COL_NAME_TOKEN
1616 ,P_token1_value => Lx_ExcepionMsg);
1617
1618 Lx_Return_Status := G_RET_STS_ERROR;
1619
1620 END IF;
1621
1622 X_Result := Lx_Result;
1623 X_Return_Status := Lx_Return_Status;
1624
1625 WHEN OTHERS THEN
1626
1627 IF Lx_Csr_RTL_Line%ISOPEN THEN
1628 CLOSE Lx_Csr_RTL_Line;
1629 END IF;
1630
1631 OKC_API.SET_MESSAGE
1632 (P_App_Name => G_APP_NAME_OKC
1633 ,P_Msg_Name => G_UNEXPECTED_ERROR
1634 ,P_Token1 => G_SQLCODE_TOKEN
1635 ,P_Token1_Value => SQLCODE
1636 ,P_Token2 => G_SQLERRM_TOKEN
1637 ,P_Token2_Value => SQLERRM);
1638
1639 OKC_API.SET_MESSAGE
1640 (P_App_Name => G_APP_NAME_OKC
1641 ,P_Msg_Name => G_DEBUG_TOKEN
1642 ,P_Token1 => G_PACKAGE_TOKEN
1643 ,P_Token1_Value => G_PKG_NAME
1644 ,P_Token2 => G_PROGRAM_TOKEN
1645 ,P_Token2_Value => 'Get_BP_ReactResolTime_Line');
1646
1647 X_Result := G_FALSE;
1648 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1649
1650 END Get_BP_ReactResolTime_Line;
1651
1652 -----------------------------------------------------------------------------------------------------------------------
1653
1654 PROCEDURE Get_Cont_Effective_Dates
1655 (P_SVL_Start IN DATE
1656 ,P_SVL_End IN DATE
1657 ,P_CVL_Start IN DATE
1658 ,P_CVL_End IN DATE
1659 ,P_BPL_Start IN DATE
1660 ,P_BPL_End IN DATE
1661 ,P_RTL_Start IN DATE
1662 ,P_RTL_End IN DATE
1663 ,P_Set_ExcepionStack IN Gx_Boolean
1664 ,X_Cont_EffStart out nocopy DATE
1665 ,X_Cont_EffEnd out nocopy DATE
1666 ,X_Result out nocopy Gx_Boolean
1667 ,X_Return_Status out nocopy Gx_Ret_Sts)
1668 IS
1669
1670 CURSOR Lx_Csr_RTL_EffDates(Cd_SVL_Start IN DATE
1671 ,Cd_SVL_End IN DATE
1672 ,Cd_CVL_Start IN DATE
1673 ,Cd_CVL_End IN DATE
1674 ,Cd_BPL_Start IN DATE
1675 ,Cd_BPL_End IN DATE
1676 ,Cd_RTL_Start IN DATE
1677 ,Cd_RTL_End IN DATE)
1678 IS
1679 SELECT MAX(Start_Date), MIN(End_Date)
1680 FROM ( SELECT Cd_SVL_Start Start_Date, Cd_SVL_End End_Date FROM DUAL
1681 UNION
1682 SELECT Cd_CVL_Start Start_Date, Cd_CVL_End End_Date FROM DUAL
1683 UNION
1684 SELECT Cd_BPL_Start Start_Date, Cd_BPL_End End_Date FROM DUAL
1685 UNION
1686 SELECT Cd_RTL_Start Start_Date, Cd_RTL_End End_Date FROM DUAL);
1687
1688 Ld_SVL_Start CONSTANT DATE := P_SVL_Start;
1689 Ld_SVL_End CONSTANT DATE := P_SVL_End;
1690 Ld_CVL_Start CONSTANT DATE := P_CVL_Start;
1691 Ld_CVL_End CONSTANT DATE := P_CVL_End;
1692 Ld_BPL_Start CONSTANT DATE := P_BPL_Start;
1693 Ld_BPL_End CONSTANT DATE := P_BPL_End;
1694 Ld_RTL_Start CONSTANT DATE := P_RTL_Start;
1695 Ld_RTL_End CONSTANT DATE := P_RTL_End ;
1696
1697 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1698
1699 Ld_Cont_EffStart DATE;
1700 Ld_Cont_EffEnd DATE;
1701 Lx_Result Gx_Boolean;
1702 Lx_Return_Status Gx_Ret_Sts;
1703
1704 Lx_Msg_TokenVal Gx_ExceptionMsg;
1705
1706 L_EXCEP_NO_DATA_FOUND EXCEPTION;
1707 L_EXCEP_NO_EFF_DATE EXCEPTION;
1708
1709 BEGIN
1710
1711 Lx_Result := G_TRUE;
1712 Lx_Return_Status := G_RET_STS_SUCCESS;
1713
1714 OPEN Lx_Csr_RTL_EffDates(Ld_SVL_Start,Ld_SVL_End,Ld_CVL_Start,Ld_CVL_End
1715 ,Ld_BPL_Start,Ld_BPL_End,Ld_RTL_Start,Ld_RTL_End);
1716
1717 FETCH Lx_Csr_RTL_EffDates INTO Ld_Cont_EffStart,Ld_Cont_EffEnd;
1718
1719 IF Lx_Csr_RTL_EffDates%NOTFOUND THEN
1720
1721 Lx_Msg_TokenVal := 'Contract - Effectivity Dates';
1722 RAISE L_EXCEP_NO_DATA_FOUND;
1723
1724 ELSE
1725
1726 Lx_Msg_TokenVal := 'Contract - Effective Start Date';
1727
1728 Validate_Required_DateValue
1729 (P_Date_Value => Ld_Cont_EffStart
1730 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
1731 ,P_ExcepionMsg => Lx_Msg_TokenVal
1732 ,X_Result => Lx_result
1733 ,X_Return_Status => Lx_Return_Status);
1734
1735 IF Lx_Result <> G_TRUE THEN
1736 RAISE L_EXCEP_NO_EFF_DATE;
1737 END IF;
1738
1739 Lx_Msg_TokenVal := 'Contract - Effective End Date';
1740
1741 Validate_Required_DateValue
1742 (P_Date_Value => Ld_Cont_EffEnd
1743 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
1744 ,P_ExcepionMsg => Lx_Msg_TokenVal
1745 ,X_Result => Lx_result
1746 ,X_Return_Status => Lx_Return_Status);
1747
1748 IF Lx_Result <> G_TRUE THEN
1749 RAISE L_EXCEP_NO_EFF_DATE;
1750 END IF;
1751
1752 END IF;
1753
1754 CLOSE Lx_Csr_RTL_EffDates;
1755
1756 X_Cont_EffStart := Ld_Cont_EffStart;
1757 X_Cont_EffEnd := Ld_Cont_EffEnd;
1758 X_Result := Lx_Result;
1759 X_Return_Status := Lx_Return_Status;
1760
1761 EXCEPTION
1762
1763 WHEN L_EXCEP_NO_DATA_FOUND THEN
1764
1765 IF Lx_Csr_RTL_EffDates%ISOPEN THEN
1766 CLOSE Lx_Csr_RTL_EffDates;
1767 END IF;
1768
1769 Lx_Result := G_FALSE;
1770
1771 IF Lx_Set_ExcepionStack = G_TRUE THEN
1772
1773 OKC_API.SET_MESSAGE
1774 (P_app_name => G_APP_NAME_OKC
1775 ,P_msg_name => G_REQUIRED_VALUE
1776 ,P_token1 => G_COL_NAME_TOKEN
1777 ,P_token1_value => Lx_Msg_TokenVal);
1778
1779 Lx_Return_Status := G_RET_STS_ERROR;
1780
1781 END IF;
1782
1783 X_Result := Lx_Result;
1784 X_Return_Status := Lx_Return_Status;
1785
1786 WHEN L_EXCEP_NO_EFF_DATE THEN
1787
1788 IF Lx_Csr_RTL_EffDates%ISOPEN THEN
1789 CLOSE Lx_Csr_RTL_EffDates;
1790 END IF;
1791
1792 X_Result := Lx_Result;
1793 X_Return_Status := Lx_Return_Status;
1794
1795 WHEN OTHERS THEN
1796
1797 IF Lx_Csr_RTL_EffDates%ISOPEN THEN
1798 CLOSE Lx_Csr_RTL_EffDates;
1799 END IF;
1800
1801 OKC_API.SET_MESSAGE
1802 (P_App_Name => G_APP_NAME_OKC
1803 ,P_Msg_Name => G_UNEXPECTED_ERROR
1804 ,P_Token1 => G_SQLCODE_TOKEN
1805 ,P_Token1_Value => SQLCODE
1806 ,P_Token2 => G_SQLERRM_TOKEN
1807 ,P_Token2_Value => SQLERRM);
1808
1809 OKC_API.SET_MESSAGE
1810 (P_App_Name => G_APP_NAME_OKC
1811 ,P_Msg_Name => G_DEBUG_TOKEN
1812 ,P_Token1 => G_PACKAGE_TOKEN
1813 ,P_Token1_Value => G_PKG_NAME
1814 ,P_Token2 => G_PROGRAM_TOKEN
1815 ,P_Token2_Value => 'Get_Cont_Effective_Dates');
1816
1817 X_Result := G_FALSE;
1818 X_Return_Status := G_RET_STS_UNEXP_ERROR;
1819
1820 END Get_Cont_Effective_Dates;
1821
1822 -----------------------------------------------------------------------------------------------------------------------*
1823
1824 PROCEDURE Get_BP_Cover_Times
1825 (P_BP_CVTLine_Id IN Gx_OKS_Id
1826 ,P_Request_Date IN DATE
1827 ,P_CovDay_DispFmt IN VARCHAR2
1828 ,P_Set_ExcepionStack IN Gx_Boolean
1829 ,X_BP_CovTimes out nocopy Gt_Bp_CoverTimes
1830 ,X_Result out nocopy Gx_Boolean
1831 ,X_Return_Status out nocopy Gx_Ret_Sts)
1832 IS
1833
1834 CURSOR Lx_Csr_BP_CovTimes(Cx_BP_CVTLine_Id IN Gx_OKS_Id,
1835 Cx_sunday_flag in varchar2,
1836 Cx_monday_flag in varchar2,
1837 Cx_tuesday_flag in varchar2,
1838 Cx_wednesday_flag in varchar2,
1839 Cx_thursday_flag in varchar2,
1840 Cx_friday_flag in varchar2,
1841 Cx_saturday_flag in varchar2)
1842 IS
1843 SELECT LPAD(TO_CHAR(CVT.START_HOUR), 2, '0')||LPAD(TO_CHAR(CVT.START_MINUTE), 2, '0') BP_Cover_From
1844 ,LPAD(TO_CHAR(CVT.END_HOUR), 2, '0')||LPAD(TO_CHAR(CVT.END_MINUTE), 2, '0') BP_Cover_To
1845 ,((CVT.START_HOUR)*60+(CVT.START_MINUTE)) BP_Cover_From_num
1846 FROM Oks_Coverage_Times CVT
1847 WHERE CVT.cov_tze_line_id = Cx_BP_CVTLine_Id
1848 And (
1849 decode(Cx_sunday_flag,'Y',CVT.sunday_yn,'N','#') = decode(Cx_sunday_flag,'Y','Y','N','#')
1850 and decode(Cx_monday_flag,'Y', CVT.monday_yn,'N','#') = decode(Cx_monday_flag,'Y','Y','N','#')
1851 and decode(Cx_tuesday_flag,'Y', CVT.tuesday_yn,'N','#') = decode(Cx_tuesday_flag,'Y','Y','N','#')
1852 and decode(Cx_wednesday_flag,'Y', CVT.wednesday_yn,'N','#') = decode(Cx_wednesday_flag,'Y','Y','N','#')
1853 and decode(Cx_thursday_flag,'Y', CVT.thursday_yn,'N','#') = decode(Cx_thursday_flag,'Y','Y','N','#')
1854 and decode(Cx_friday_flag,'Y', CVT.friday_yn,'N','#') = decode(Cx_friday_flag,'Y','Y','N','#')
1855 and decode(Cx_saturday_flag,'Y', CVT.saturday_yn,'N','#') = decode(Cx_saturday_flag,'Y','Y','N','#')
1856 )
1857 order by BP_Cover_From_num;
1858
1859
1860 Lx_BP_CVTLine_Id CONSTANT Gx_OKS_Id := P_BP_CVTLine_Id;
1861 Ld_Request_Date CONSTANT DATE := P_Request_Date;
1862 Lv_CovDay_DispFmt CONSTANT VARCHAR2(15) := P_CovDay_DispFmt;
1863 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1864
1865 Lx_BP_CovTimes Gt_Bp_CoverTimes;
1866 Lx_Result Gx_Boolean;
1867 Lx_Return_Status Gx_Ret_Sts;
1868 Lx_ExcepionMsg Gx_ExceptionMsg;
1869
1870 Li_TableIdx BINARY_INTEGER;
1871 Li_RowCount INTEGER(10);
1872
1873 Lx_Request_date_Num number;
1874
1875 -- Added by JVARGHES
1876
1877 Ld_Run_Date DATE;
1878 Ln_CoverDay_Num NUMBER;
1879 Lv_CoverDay_NLS_Char VARCHAR2(30);
1880 Lv_CoverDay_USA_DY_Char VARCHAR2(30);
1881 Ln_ReqDay_Relative NUMBER;
1882 --
1883
1884 Lx_sunday_flag varchar2(1);
1885 Lx_monday_flag varchar2(1);
1886 Lx_tuesday_flag varchar2(1);
1887 Lx_wednesday_flag varchar2(1);
1888 Lx_thursday_flag varchar2(1);
1889 Lx_friday_flag varchar2(1);
1890 Lx_saturday_flag varchar2(1);
1891
1892 week_ctr number;
1893
1894 L_EXCEP_NO_COVER_TIME EXCEPTION;
1895
1896 BEGIN
1897
1898 Lx_Result := G_TRUE;
1899 Lx_Return_Status := G_RET_STS_SUCCESS;
1900
1901 Li_RowCount := 0;
1902
1903 Lx_sunday_flag := 'N';
1904 Lx_monday_flag := 'N';
1905 Lx_tuesday_flag := 'N';
1906 Lx_wednesday_flag := 'N';
1907 Lx_thursday_flag := 'N';
1908 Lx_friday_flag := 'N';
1909 Lx_saturday_flag := 'N';
1910
1911 week_ctr := 0;
1912
1913 Li_TableIdx := 0;
1914
1915 while week_ctr < 7 loop
1916
1917 /* -- Commented out JVARGHES on Mar 07, 2005.
1918 -- for the resolution of Bug# 4191909.
1919
1920 Lx_Request_date_Num := to_number(to_char(Ld_Request_Date+week_ctr,'D'));
1921
1922 Lx_sunday_flag := 'N';
1923 Lx_monday_flag := 'N';
1924 Lx_tuesday_flag := 'N';
1925 Lx_wednesday_flag := 'N';
1926 Lx_thursday_flag := 'N';
1927 Lx_friday_flag := 'N';
1928 Lx_saturday_flag := 'N';
1929
1930 if Lx_Request_date_Num = 1 then
1931 Lx_sunday_flag := 'Y';
1932 elsif Lx_Request_date_Num = 2 then
1933 Lx_monday_flag := 'Y';
1934 elsif Lx_Request_date_Num = 3 then
1935 Lx_tuesday_flag := 'Y';
1936 elsif Lx_Request_date_Num = 4 then
1937 Lx_wednesday_flag := 'Y';
1938 elsif Lx_Request_date_Num = 5 then
1939 Lx_thursday_flag := 'Y';
1940 elsif Lx_Request_date_Num = 6 then
1941 Lx_friday_flag := 'Y';
1942 elsif Lx_Request_date_Num = 7 then
1943 Lx_saturday_flag := 'Y';
1944 end if;
1945 */
1946
1947 -- Added by JVARGHES on Mar 07, 2005.
1948 -- for the resolution of Bug# 4191909.
1949
1950 Lx_Sunday_Flag := 'N';
1951 Lx_Monday_Flag := 'N';
1952 Lx_Tuesday_Flag := 'N';
1953 Lx_Wednesday_Flag := 'N';
1954 Lx_Thursday_Flag := 'N';
1955 Lx_Friday_Flag := 'N';
1956 Lx_Saturday_Flag := 'N';
1957
1958 Ld_Run_Date := Ld_Request_Date+Week_Ctr;
1959 Ln_CoverDay_Num := TO_NUMBER(TO_CHAR(Ld_Run_Date,'D'));
1960 Lv_CoverDay_NLS_Char := TO_CHAR(Ld_Run_Date,Lv_CovDay_DispFmt);
1961 Lv_CoverDay_USA_DY_Char := TO_CHAR(Ld_Run_Date,'DY','NLS_DATE_LANGUAGE = AMERICAN');
1962
1963 IF Lv_CoverDay_USA_DY_Char = 'SUN' THEN
1964 Lx_Sunday_Flag := 'Y';
1965 ELSIF Lv_CoverDay_USA_DY_Char = 'MON' THEN
1966 Lx_Monday_Flag := 'Y';
1967 ELSIF Lv_CoverDay_USA_DY_Char = 'TUE' THEN
1968 Lx_Tuesday_Flag := 'Y';
1969 ELSIF Lv_CoverDay_USA_DY_Char = 'WED' THEN
1970 Lx_Wednesday_Flag := 'Y';
1971 ELSIF Lv_CoverDay_USA_DY_Char = 'THU' THEN
1972 Lx_Thursday_Flag := 'Y';
1973 ELSIF Lv_CoverDay_USA_DY_Char = 'FRI' THEN
1974 Lx_Friday_Flag := 'Y';
1975 ELSIF Lv_CoverDay_USA_DY_Char = 'SAT' THEN
1976 Lx_Saturday_Flag := 'Y';
1977 END IF;
1978
1979 Ln_ReqDay_Relative := Week_Ctr+1;
1980
1981 --
1982
1983 FOR Idx IN Lx_Csr_BP_CovTimes(Lx_BP_CVTLine_Id,
1984 Lx_sunday_flag,Lx_monday_flag,Lx_tuesday_flag,
1985 Lx_wednesday_flag,Lx_thursday_flag,Lx_friday_flag,
1986 Lx_saturday_flag) LOOP
1987
1988 Li_TableIdx := Li_TableIdx + 1;
1989
1990 -- Modified by JVARGHES on Mar 07, 2005.
1991 -- for the resolution of Bug# 4191909
1992
1993 -- Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_Day := to_char(Ld_Request_Date+week_ctr,Lv_CovDay_DispFmt); --Idx.BP_CoverDay_Char;
1994 -- Lx_BP_CovTimes(Li_TableIdx).Ri_Cover_Day := Lx_Request_date_Num; --Idx.BP_CoverDay_Num;
1995 -- Lx_BP_CovTimes(Li_TableIdx).Ri_ReqDay_Relative := week_ctr+1; --Idx.BP_ReqDay_Ralative;
1996
1997
1998 Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_Day := Lv_CoverDay_NLS_Char;
1999 Lx_BP_CovTimes(Li_TableIdx).Ri_Cover_Day := Ln_CoverDay_Num;
2000 Lx_BP_CovTimes(Li_TableIdx).Ri_ReqDay_Relative := Ln_ReqDay_Relative;
2001 Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_From := Idx.BP_Cover_From;
2002 Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_To := Idx.BP_Cover_To;
2003 Lx_BP_CovTimes(Li_TableIdx).Rx_Cover_TZoneId := null; -- Idx.BP_Tzone_Id; not required because already fetched
2004
2005 Li_RowCount := Li_TableIdx;
2006
2007 END LOOP;
2008
2009 week_ctr := week_ctr+1;
2010
2011 end loop;
2012
2013 IF Li_RowCount = 0 THEN
2014
2015 Lx_ExcepionMsg := 'Cover Time';
2016 RAISE L_EXCEP_NO_COVER_TIME;
2017
2018 END IF;
2019
2020 X_BP_CovTimes := Lx_BP_CovTimes;
2021 X_Result := Lx_Result;
2022 X_Return_Status := Lx_Return_Status;
2023
2024 EXCEPTION
2025
2026 WHEN L_EXCEP_NO_COVER_TIME THEN
2027
2028 Lx_Result := G_FALSE;
2029
2030 IF Lx_Set_ExcepionStack = G_TRUE THEN
2031
2032 OKC_API.SET_MESSAGE
2033 (P_App_Name => G_APP_NAME_OKC
2034 ,P_Msg_Name => G_REQUIRED_VALUE
2035 ,P_Token1 => G_COL_NAME_TOKEN
2036 ,P_Token1_Value => Lx_ExcepionMsg);
2037
2038 Lx_Return_Status := G_RET_STS_ERROR;
2039
2040 END IF;
2041
2042 X_Result := Lx_Result;
2043 X_Return_Status := Lx_Return_Status;
2044
2045 WHEN OTHERS THEN
2046
2047 OKC_API.SET_MESSAGE
2048 (P_App_Name => G_APP_NAME_OKC
2049 ,P_Msg_Name => G_UNEXPECTED_ERROR
2050 ,P_Token1 => G_SQLCODE_TOKEN
2051 ,P_Token1_Value => SQLCODE
2052 ,P_Token2 => G_SQLERRM_TOKEN
2053 ,P_Token2_Value => SQLERRM);
2054
2055 OKC_API.SET_MESSAGE
2056 (P_App_Name => G_APP_NAME_OKC
2057 ,P_Msg_Name => G_DEBUG_TOKEN
2058 ,P_Token1 => G_PACKAGE_TOKEN
2059 ,P_Token1_Value => G_PKG_NAME
2060 ,P_Token2 => G_PROGRAM_TOKEN
2061 ,P_Token2_Value => 'Get_BP_Cover_Times');
2062
2063 X_Result := G_FALSE;
2064 X_Return_Status := G_RET_STS_UNEXP_ERROR;
2065
2066 END Get_BP_Cover_Times;
2067
2068 -----------------------------------------------------------------------------------------------------------------------*
2069
2070 PROCEDURE Get_BP_Reaction_Times
2071 (P_RTL_Line_Id IN Gx_OKS_Id
2072 ,P_Request_Date IN DATE
2073 ,P_TimeType_Category IN Varchar2 --Gx_TimeType_Category
2074 ,P_ReactDay_DispFmt IN VARCHAR2
2075 ,P_Set_ExcepionStack IN Gx_Boolean
2076 ,X_Reaction_Attribs out nocopy GT_Bp_Reactions
2077 ,X_Result out nocopy Gx_Boolean
2078 ,X_Return_Status out nocopy Gx_Ret_Sts)
2079 IS
2080
2081 CURSOR Lx_Csr_React_Attribs(Cx_RTLLine_Id IN Gx_OKS_Id,Cx_TimeType_Category IN Varchar2) IS
2082 SELECT OAT.SUN_DURATION SUN_DURATION,
2083 OAT.MON_DURATION MON_DURATION,
2084 OAT.TUE_DURATION TUE_DURATION,
2085 OAT.WED_DURATION WED_DURATION,
2086 OAT.THU_DURATION THU_DURATION,
2087 OAT.FRI_DURATION FRI_DURATION,
2088 OAT.SAT_DURATION SAT_DURATION,
2089 OAT.UOM_CODE UOM_CODE
2090 FROM Oks_action_time_types OATT
2091 ,Oks_action_times OAT
2092 WHERE OATT.Cle_Id = Cx_RTLLine_Id
2093 AND OATT.action_type_code = Cx_TimeType_Category
2094 AND OAT.cov_action_type_id = OATT.Id;
2095
2096 -- Added by JVARGHES on Mar 07, 2005.
2097 -- for the resolution of Bug# 4191909.
2098 -- Created seperate Cursor for bug fix #5546615 hmnair
2099 /* CURSOR c_NLS_Day(Cd_Request_Date IN DATE, Cv_USA_DY_Char IN VARCHAR2) IS
2100 SELECT TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'DY')React_Day_Char
2101 ,TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'D') React_Day_Num
2102 , 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
2103 ,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'))
2104 ,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
2105 FROM DUAL; */
2106
2107 CURSOR c_NLS_Day(Cd_Request_Date IN DATE, Cv_USA_DY_Char IN VARCHAR2) IS
2108 SELECT TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'DY')React_Day_Char
2109 ,TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'D') React_Day_Num
2110 , 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
2111 ,TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D'))
2112 ,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
2113 FROM DUAL;
2114
2115
2116 --
2117
2118 Lx_RTL_Line_Id CONSTANT Gx_OKS_Id := P_RTL_Line_Id;
2119 Ld_Request_Date CONSTANT DATE := P_Request_Date;
2120 Lx_TimeType_Category CONSTANT varchar2(30) := P_TimeType_Category;
2121 Lv_CovDay_DispFmt CONSTANT VARCHAR2(15) := P_ReactDay_DispFmt;
2122 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
2123
2124 Lx_Reaction_Attribs GT_Bp_Reactions;
2125 Lx_Result Gx_Boolean;
2126 Lx_Return_Status Gx_Ret_Sts;
2127 Lx_ExcepionMsg Gx_ExceptionMsg;
2128
2129 Li_TableIdx BINARY_INTEGER;
2130 Lx_Request_date_Num number;
2131 Li_RowCount INTEGER(10);
2132 week_ctr number;
2133
2134 -- Added by JVARGHES on Mar 07, 2005.
2135 -- for the resolution of Bug# 4191909.
2136
2137 Lv_React_Day_NLS_Char VARCHAR2(30);
2138 Ln_React_Day_Num NUMBER;
2139 Ln_Req_Day_Relative NUMBER;
2140
2141 --
2142
2143 Lx_Sort_Tab GT_Bp_Reactions;
2144
2145 Li_TableIdx_Out BINARY_INTEGER;
2146 Li_TableIdx_In BINARY_INTEGER;
2147
2148 Lx_Temp_ReacAttribs GR_Bp_Reaction;
2149
2150 Lv_Composit_Val1 number;
2151 Lv_Composit_Val2 number;
2152
2153 L_EXCEP_NO_REACT_TIME EXCEPTION;
2154
2155 BEGIN
2156
2157 Lx_Result := G_TRUE;
2158 Lx_Return_Status := G_RET_STS_SUCCESS;
2159
2160 Lx_Request_date_Num := 0;
2161 Li_RowCount := 0;
2162 week_ctr := 0;
2163
2164 Li_TableIdx := 0;
2165
2166 Lx_Request_date_Num := to_number(to_char(Ld_Request_Date,'D'));
2167
2168 FOR Idx IN Lx_Csr_React_Attribs(Lx_RTL_Line_Id,Lx_TimeType_Category) LOOP
2169
2170 if Idx.Sun_Duration is not null then
2171
2172 Li_TableIdx := Li_TableIdx + 1;
2173
2174 -- Added by JVARGHES on Mar 07, 2005.
2175 -- for the resolution of Bug# 4191909.
2176
2177 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Sun);
2178 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2179 CLOSE c_NLS_Day;
2180
2181 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+1,'DY'); --Idx.React_Day_Char;
2182 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2183 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Sun_Duration;
2184 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2185 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 1; --Idx.React_Day_Num;
2186 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2187 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2188
2189 /*
2190 if Lx_Request_date_Num <= 1 then
2191 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 1-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2192 else
2193 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-1);
2194 end if;
2195 */
2196
2197 end if;
2198
2199 if Idx.Mon_Duration is not null then
2200
2201 Li_TableIdx := Li_TableIdx + 1;
2202
2203 -- Added by JVARGHES on Mar 07, 2005.
2204 -- for the resolution of Bug# 4191909.
2205
2206 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Mon);
2207 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2208 CLOSE c_NLS_Day;
2209
2210 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+2,'DY'); --Idx.React_Day_Char;
2211 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2212 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Mon_Duration;
2213 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2214 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 2; --Idx.React_Day_Num;
2215 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2216 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2217
2218 /*
2219 if Lx_Request_date_Num <= 2 then
2220 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 2-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2221 else
2222 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-2);
2223 end if;
2224 */
2225
2226 end if;
2227
2228 if Idx.Tue_Duration is not null then
2229
2230 Li_TableIdx := Li_TableIdx + 1;
2231
2232 -- Added by JVARGHES on Mar 07, 2005.
2233 -- for the resolution of Bug# 4191909.
2234
2235 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Tue);
2236 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2237 CLOSE c_NLS_Day;
2238
2239 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+3,'DY'); --Idx.React_Day_Char;
2240 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2241 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Tue_Duration;
2242 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2243 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 3; --Idx.React_Day_Num;
2244 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2245 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2246
2247 /*
2248 if Lx_Request_date_Num <= 3 then
2249 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 3-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2250 else
2251 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-3);
2252 end if;
2253 */
2254
2255
2256 end if;
2257
2258 if Idx.Wed_Duration is not null then
2259
2260 Li_TableIdx := Li_TableIdx + 1;
2261
2262 -- Added by JVARGHES on Mar 07, 2005.
2263 -- for the resolution of Bug# 4191909.
2264
2265 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Wed);
2266 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2267 CLOSE c_NLS_Day;
2268
2269 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+4,'DY'); --Idx.React_Day_Char;
2270 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2271 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Wed_Duration;
2272 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2273 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 4; --Idx.React_Day_Num;
2274 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2275 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2276
2277 /*
2278 if Lx_Request_date_Num <= 4 then
2279 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 4-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2280 else
2281 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-4);
2282 end if;
2283 */
2284
2285 end if;
2286
2287 if Idx.Thu_Duration is not null then
2288
2289 Li_TableIdx := Li_TableIdx + 1;
2290
2291 -- Added by JVARGHES on Mar 07, 2005.
2292 -- for the resolution of Bug# 4191909.
2293
2294 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Thu);
2295 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2296 CLOSE c_NLS_Day;
2297
2298 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+5,'DY'); --Idx.React_Day_Char;
2299 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2300 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Thu_Duration;
2301 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2302 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 5; --Idx.React_Day_Num;
2303 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2304 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2305
2306 /*
2307 if Lx_Request_date_Num <= 5 then
2308 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 5-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2309 else
2310 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-5);
2311 end if;
2312 */
2313
2314 end if;
2315
2316 if Idx.Fri_Duration is not null then
2317
2318 Li_TableIdx := Li_TableIdx + 1;
2319
2320 -- Added by JVARGHES on Mar 07, 2005.
2321 -- for the resolution of Bug# 4191909.
2322
2323 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Fri);
2324 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2325 CLOSE c_NLS_Day;
2326
2327 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+6,'DY'); --Idx.React_Day_Char;
2328 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2329 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Fri_Duration;
2330 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2331 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 6; --Idx.React_Day_Num;
2332 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2333 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2334
2335 /*
2336 if Lx_Request_date_Num <= 6 then
2337 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 6-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2338 else
2339 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-6);
2340 end if;
2341
2342 */
2343
2344 end if;
2345
2346 if Idx.Sat_Duration is not null then
2347
2348 Li_TableIdx := Li_TableIdx + 1;
2349
2350 -- Added by JVARGHES on Mar 07, 2005.
2351 -- for the resolution of Bug# 4191909.
2352
2353 OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Sat);
2354 FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2355 CLOSE c_NLS_Day;
2356
2357 -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := to_char(Ld_Request_Date-Lx_Request_date_Num+7,'DY'); --Idx.React_Day_Char;
2358 Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day := Lv_React_Day_NLS_Char;
2359 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn := Idx.Sat_Duration;
2360 Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM := Idx.UOM_Code;
2361 -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := 7; --Idx.React_Day_Num;
2362 Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day := Ln_React_Day_Num;
2363 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2364
2365 /*
2366 if Lx_Request_date_Num <= 7 then
2367 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2368 else
2369 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := 7-(Lx_Request_date_Num-7);
2370 end if;
2371
2372 */
2373
2374 end if;
2375
2376 Li_RowCount := Li_TableIdx;
2377
2378 END LOOP;
2379
2380 IF (Li_RowCount = 0 ) THEN
2381
2382 Lx_ExcepionMsg := 'Reaction Time';
2383 RAISE L_EXCEP_NO_REACT_TIME;
2384
2385 END IF;
2386
2387 -- sorting based on relative to request date (Ri_ReqDay_Relative)
2388
2389 Lx_Sort_Tab := Lx_Reaction_Attribs;
2390 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
2391
2392 WHILE Li_TableIdx_Out IS NOT NULL LOOP
2393 Li_TableIdx_In := Li_TableIdx_Out;
2394 WHILE Li_TableIdx_In IS NOT NULL LOOP
2395 Lv_Composit_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Ri_ReqDay_Relative;
2396 Lv_Composit_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Ri_ReqDay_Relative;
2397
2398 IF Lv_Composit_Val1 > Lv_Composit_Val2 THEN
2399 Lx_Temp_ReacAttribs := Lx_Sort_Tab(Li_TableIdx_Out);
2400 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
2401 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ReacAttribs;
2402 END IF;
2403
2404 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
2405 END LOOP;
2406 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
2407 END LOOP;
2408
2409 Lx_Reaction_Attribs.DELETE;
2410 Lx_Reaction_Attribs := Lx_Sort_Tab;
2411
2412 X_Reaction_Attribs := Lx_Reaction_Attribs;
2413 X_Result := Lx_Result;
2414 X_Return_Status := Lx_Return_Status;
2415
2416 EXCEPTION
2417
2418 WHEN L_EXCEP_NO_REACT_TIME THEN
2419
2420 Lx_Result := G_FALSE;
2421
2422 IF Lx_Set_ExcepionStack = G_TRUE THEN
2423
2424 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME_OKC
2425 ,p_msg_name => G_REQUIRED_VALUE
2426 ,p_token1 => G_COL_NAME_TOKEN
2427 ,p_token1_value => Lx_ExcepionMsg);
2428
2429 Lx_Return_Status := G_RET_STS_ERROR;
2430
2431 END IF;
2432
2433 X_Result := Lx_Result;
2434 X_Return_Status := Lx_Return_Status;
2435
2436 WHEN OTHERS THEN
2437
2438 OKC_API.SET_MESSAGE
2439 (P_App_Name => G_APP_NAME_OKC
2440 ,P_Msg_Name => G_UNEXPECTED_ERROR
2441 ,P_Token1 => G_SQLCODE_TOKEN
2442 ,P_Token1_Value => SQLCODE
2443 ,P_Token2 => G_SQLERRM_TOKEN
2444 ,P_Token2_Value => SQLERRM);
2445
2446 OKC_API.SET_MESSAGE
2447 (P_App_Name => G_APP_NAME_OKC
2448 ,P_Msg_Name => G_DEBUG_TOKEN
2449 ,P_Token1 => G_PACKAGE_TOKEN
2450 ,P_Token1_Value => G_PKG_NAME
2451 ,P_Token2 => G_PROGRAM_TOKEN
2452 ,P_Token2_Value => 'Get_BP_Reaction_Times');
2453
2454 X_Result := G_FALSE;
2455 X_Return_Status := G_RET_STS_UNEXP_ERROR;
2456
2457 END Get_BP_Reaction_Times;
2458
2459 -----------------------------------------------------------------------------------------------------------------------*
2460
2461 PROCEDURE Get_Reactn_Durn_In_Days
2462 (P_React_Durn IN Gx_ReactDurn
2463 ,P_React_UOM IN Gx_ReactUOM
2464 ,P_Set_ExcepionStack IN Gx_Boolean
2465 ,X_React_Durn_In_Days out nocopy NUMBER
2466 ,X_Result out nocopy Gx_Boolean
2467 ,X_Return_Status out nocopy Gx_Ret_Sts)
2468 IS
2469
2470 CURSOR Lx_Csr_React_Tce_code(Lx_React_UOM IN VARCHAR2) IS
2471 SELECT TCU.TCE_CODE Tce_Code
2472 FROM Okx_Units_Of_Measure_V UOM
2473 ,Okc_Time_Code_Units_V TCU
2474 WHERE UOM.UOM_CODE = Lx_React_UOM
2475 AND TCU.UOM_CODE = UOM.UOM_CODE
2476 AND TCU.quantity = 1
2477 AND TCU.tce_code = 'MINUTE';
2478
2479
2480
2481 Lx_React_Durn CONSTANT Gx_ReactDurn := NVL(P_React_Durn,0);
2482 Lx_React_UOM CONSTANT Gx_ReactUOM := P_React_UOM;
2483 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
2484
2485 Ln_React_Durn_In_Days NUMBER;
2486 Lx_Result Gx_Boolean;
2487 Lx_Return_Status Gx_Ret_Sts;
2488 Lx_ExcepionMsg Gx_ExceptionMsg;
2489 Lx_count NUMBER;
2490
2491 L_EXCEP_UNKNOWN_UOM EXCEPTION;
2492
2493
2494
2495 BEGIN
2496
2497 Lx_Result := G_TRUE;
2498 Lx_Return_Status := G_RET_STS_SUCCESS;
2499
2500 Lx_count := 0;
2501
2502 FOR Lx_Csr_Rec in Lx_Csr_React_Tce_code(Lx_React_UOM) LOOP
2503
2504 Lx_count := Lx_count + 1;
2505
2506 END LOOP;
2507
2508 IF Lx_count > 0 THEN
2509
2510 Ln_React_Durn_In_Days := Lx_React_Durn/(24*60);
2511
2512 ELSE
2513
2514 RAISE L_EXCEP_UNKNOWN_UOM;
2515
2516 END IF;
2517
2518 X_React_Durn_In_Days := Ln_React_Durn_In_Days;
2519 X_Result := Lx_Result;
2520 X_Return_Status := Lx_Return_Status;
2521
2522 EXCEPTION
2523
2524 WHEN L_EXCEP_UNKNOWN_UOM THEN
2525
2526 Lx_Result := G_FALSE;
2527
2528 IF Lx_Set_ExcepionStack = G_TRUE THEN
2529
2530 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME_OKC
2531 ,p_msg_name => G_INVALID_VALUE
2532 ,p_token1 => G_COL_NAME_TOKEN
2533 ,p_token1_value => Lx_ExcepionMsg);
2534
2535 Lx_Return_Status := G_RET_STS_ERROR;
2536
2537 END IF;
2538
2539 X_Result := Lx_Result;
2540 X_Return_Status := Lx_Return_Status;
2541
2542 WHEN OTHERS THEN
2543
2544 OKC_API.SET_MESSAGE
2545 (P_App_Name => G_APP_NAME_OKC
2546 ,P_Msg_Name => G_UNEXPECTED_ERROR
2547 ,P_Token1 => G_SQLCODE_TOKEN
2548 ,P_Token1_Value => SQLCODE
2549 ,P_Token2 => G_SQLERRM_TOKEN
2550 ,P_Token2_Value => SQLERRM);
2551
2552 OKC_API.SET_MESSAGE
2553 (P_App_Name => G_APP_NAME_OKC
2554 ,P_Msg_Name => G_DEBUG_TOKEN
2555 ,P_Token1 => G_PACKAGE_TOKEN
2556 ,P_Token1_Value => G_PKG_NAME
2557 ,P_Token2 => G_PROGRAM_TOKEN
2558 ,P_Token2_Value => 'Get_Reactn_Durn_In_Days');
2559
2560 X_Result := G_FALSE;
2561 X_Return_Status := G_RET_STS_UNEXP_ERROR;
2562
2563 END Get_Reactn_Durn_In_Days;
2564
2565 -----------------------------------------------------------------------------------------------------------------------*
2566
2567 PROCEDURE Get_Cover_Day_Attribs
2568 (P_BP_CovTimes IN GT_Bp_CoverTimes
2569 ,P_Req_Cover_Date IN DATE --P_Req_Cover_Day IN INTEGER
2570 ,P_Set_ExcepionStack IN Gx_Boolean
2571 ,P_Check_Day IN Varchar2-- default 'N'
2572 ,X_Day_Cover_tbl out nocopy Day_Cover_Tbl
2573 ,X_Result out nocopy Gx_Boolean
2574 ,X_Return_Status out nocopy Gx_Ret_Sts)
2575 IS
2576 Lx_BP_CovTimes GT_Bp_CoverTimes;
2577 Li_Req_Cover_Day INTEGER(1);
2578 Li_Req_Cover_Date CONSTANT DATE := P_Req_Cover_Date;
2579
2580 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
2581 Li_Check_Day CONSTANT VARCHAR2(1) := nvl(P_Check_Day,'N');
2582
2583 Lv_Day_Cover_From VARCHAR2(25);
2584 Lv_Day_Cover_To VARCHAR2(25);
2585 Li_Cover_Day INTEGER(1);
2586
2587 Lv_Day_Cover_Tbl Day_Cover_Tbl; --VARCHAR2(6);
2588 Lv_DayCov_Ctr number;
2589
2590 Li_Coverage_Exists varchar2(1);
2591 Li_Req_Cover_Date_Num NUMBER;
2592
2593 Lx_Result Gx_Boolean;
2594 Lx_Return_Status Gx_Ret_Sts;
2595 Li_Bp_CoverTbl_Idx BINARY_INTEGER;
2596
2597 Lx_Msg_TokenVal Gx_ExceptionMsg;
2598 L_EXCEP_NO_COVER_TIME EXCEPTION;
2599 L_EXCEP_NULL_VALUE EXCEPTION;
2600
2601 BEGIN
2602
2603 Lx_BP_CovTimes := P_BP_CovTimes;
2604 Lv_DayCov_Ctr := 0;
2605 Li_Coverage_Exists := 'N';
2606
2607 Lx_Result := G_TRUE;
2608 Lx_Return_Status := G_RET_STS_SUCCESS;
2609
2610 Li_Req_Cover_Day := to_number(to_char(Li_Req_Cover_Date,'D'));
2611 Li_Bp_CoverTbl_Idx := Lx_BP_CovTimes.FIRST;
2612
2613 WHILE Li_Bp_CoverTbl_Idx IS NOT NULL LOOP
2614
2615 IF Li_Check_Day = 'N' THEN
2616
2617 IF Li_Coverage_Exists = 'N' then
2618
2619 Li_Req_Cover_Date_Num := to_number(LPAD(to_char(Li_Req_Cover_Date,'HH24'),2,'0')||
2620 LPAD(to_char(Li_Req_Cover_Date,'MI'),2,'0'));
2621 /*
2622 IF ((Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day)
2623 and (Li_Req_Cover_Date_Num >= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From))
2624 and (Li_Req_Cover_Date_Num <= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To))) THEN
2625 */
2626 IF ((Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day)
2627 and (Li_Req_Cover_Date_Num >= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From))
2628 and (Li_Req_Cover_Date_Num <= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To))) OR
2629 ((Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day)
2630 and (Li_Req_Cover_Date_Num <= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From))) THEN
2631
2632 Li_Coverage_Exists := 'Y';
2633
2634 Lv_DayCov_Ctr := Lv_DayCov_Ctr + 1;
2635
2636 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_From := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From;
2637 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_To := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To;
2638
2639 END IF;
2640
2641 ELSE -- IF Li_Coverage_Exists = 'Y' then
2642
2643 IF (Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day) THEN
2644
2645 Li_Coverage_Exists := 'Y';
2646
2647 Lv_DayCov_Ctr := Lv_DayCov_Ctr + 1;
2648
2649 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_From := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From;
2650 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_To := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To;
2651
2652 END IF;
2653
2654 END IF;
2655
2656 ELSE -- IF Li_Check_Day = 'Y' THEN
2657
2658 IF (Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day) THEN
2659
2660 Li_Coverage_Exists := 'Y';
2661
2662 Lv_DayCov_Ctr := Lv_DayCov_Ctr + 1;
2663
2664 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_From := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From;
2665 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_To := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To;
2666
2667
2668 END IF;
2669
2670 END IF;
2671
2672
2673 Li_Bp_CoverTbl_Idx := Lx_BP_CovTimes.NEXT(Li_Bp_CoverTbl_Idx);
2674
2675 END LOOP;
2676
2677
2678 IF Li_Coverage_Exists = 'N' THEN
2679
2680 Lx_Msg_TokenVal := 'Day Cover Time';
2681 RAISE L_EXCEP_NO_COVER_TIME;
2682
2683 END IF;
2684
2685 X_Day_Cover_Tbl := Lv_Day_Cover_Tbl;
2686 X_Result := Lx_Result;
2687 X_Return_Status := Lx_Return_Status;
2688
2689 EXCEPTION
2690
2691 WHEN L_EXCEP_NO_COVER_TIME THEN
2692
2693 Lx_Result := G_FALSE;
2694
2695 IF Lx_Set_ExcepionStack = G_TRUE THEN
2696
2697 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME_OKC
2698 ,p_msg_name => G_REQUIRED_VALUE
2699 ,p_token1 => G_COL_NAME_TOKEN
2700 ,p_token1_value => Lx_Msg_TokenVal);
2701
2702 Lx_Return_Status := G_RET_STS_ERROR;
2703
2704 END IF;
2705
2706 X_Result := Lx_Result;
2707 X_Return_Status := Lx_Return_Status;
2708
2709 WHEN L_EXCEP_NULL_VALUE THEN
2710
2711 X_Result := Lx_Result;
2712 X_Return_Status := Lx_Return_Status;
2713
2714 WHEN OTHERS THEN
2715
2716 OKC_API.SET_MESSAGE
2717 (P_App_Name => G_APP_NAME_OKC
2718 ,P_Msg_Name => G_UNEXPECTED_ERROR
2719 ,P_Token1 => G_SQLCODE_TOKEN
2720 ,P_Token1_Value => SQLCODE
2721 ,P_Token2 => G_SQLERRM_TOKEN
2722 ,P_Token2_Value => SQLERRM);
2723
2724 OKC_API.SET_MESSAGE
2725 (P_App_Name => G_APP_NAME_OKC
2726 ,P_Msg_Name => G_DEBUG_TOKEN
2727 ,P_Token1 => G_PACKAGE_TOKEN
2728 ,P_Token1_Value => G_PKG_NAME
2729 ,P_Token2 => G_PROGRAM_TOKEN
2730 ,P_Token2_Value => 'Get_Cover_Day_Attribs');
2731
2732 X_Result := G_FALSE;
2733 X_Return_Status := G_RET_STS_UNEXP_ERROR;
2734
2735 END Get_Cover_Day_Attribs;
2736
2737 -----------------------------------------------------------------------------------------------------------------------*
2738
2739 PROCEDURE Compute_Day_React_By_DateTime
2740 (P_Req_DateTime IN DATE
2741 ,P_Cover_EffStart IN DATE
2742 ,P_Cover_EffEnd IN DATE
2743 ,P_BP_Work_Through IN Gx_YesNo
2744 ,P_BP_Cover_Times IN GT_Bp_CoverTimes
2745 ,P_React_Durn_In_Days IN NUMBER
2746 ,P_Template_YN IN VARCHAR2
2747 ,P_Set_ExcepionStack IN Gx_Boolean
2748 ,P_Check_Day IN Varchar2
2749 ,X_React_By_DateTime out nocopy DATE
2750 ,X_React_Start_DateTime out nocopy DATE
2751 ,X_Result out nocopy Gx_Boolean
2752 ,X_Return_Status out nocopy Gx_Ret_Sts)
2753 IS
2754
2755 Ld_Req_DateTime CONSTANT DATE := P_Req_DateTime;
2756 Ld_Cover_EffStart CONSTANT DATE := P_Cover_EffStart;
2757 Ld_Cover_EffEnd CONSTANT DATE := P_Cover_EffEnd;
2758 Lx_BP_Work_Through CONSTANT Gx_YesNo := P_BP_Work_Through;
2759 Ln_React_Durn_In_Days CONSTANT NUMBER := P_React_Durn_In_Days;
2760 Lx_BP_Cover_Times GT_Bp_CoverTimes;
2761 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
2762 Lv_Template_YN VARCHAR2(1);
2763 Lv_Check_Day VARCHAR2(1);
2764
2765 Ld_React_By_DateTime DATE;
2766 Ld_React_Start_DateTime DATE;
2767 Lx_Result Gx_Boolean;
2768 Lx_Return_Status Gx_Ret_Sts;
2769
2770 Lv_Day_Cover_From VARCHAR2(25);
2771 Lv_Day_Cover_To VARCHAR2(25);
2772 Lv_Day_Cover_Tbl Day_Cover_Tbl; -- 11.5.10 mutiple time zone changes
2773 Lv_DayCov_Idx BINARY_INTEGER; -- 11.5.10 mutiple time zone changes
2774
2775 Ld_Day_Reactn_Start DATE;
2776 Ld_Day_Reactn_End DATE;
2777 Ld_Day_Reactn_EffStart DATE;
2778
2779 Li_Balance_ReactTime NUMBER;
2780 Ld_Run_DateTime DATE;
2781 Li_Run_React_Day INTEGER(1);
2782
2783 Li_LoopCount INTEGER(1);
2784
2785 L_EXCEP_NO_COVER_REMAINS EXCEPTION;
2786 L_EXCEP_NO_COVER_DEFINED EXCEPTION;
2787 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
2788
2789 BEGIN
2790
2791 Lx_BP_Cover_Times := P_BP_Cover_Times;
2792 Lv_Check_Day := nvl(P_Check_Day,'N');
2793 Lv_Template_YN := nvl(P_Template_YN,'N');
2794
2795 Lx_Result := G_TRUE;
2796 Lx_Return_Status := G_RET_STS_SUCCESS;
2797
2798 Li_Balance_ReactTime := Ln_React_Durn_In_Days;
2799 Ld_Run_DateTime := Ld_Req_DateTime;
2800
2801 Li_LoopCount := 0;
2802
2803 -- dbms_output.put_line('Value of Ld_Run_DateTime='||to_char(Ld_Run_DateTime,'dd-mon-yyyy hh24:mi'));
2804
2805 WHILE Li_Balance_ReactTime > 0 LOOP
2806
2807 -- dbms_output.put_line('Value of Li_Balance_ReactTime='||Li_Balance_ReactTime);
2808
2809 Get_Cover_Day_Attribs
2810 (P_BP_CovTimes => Lx_BP_Cover_Times
2811 ,P_Req_Cover_Date => Ld_Run_DateTime --Li_Run_React_Day
2812 ,P_Set_ExcepionStack => G_FALSE
2813 ,P_Check_Day => Lv_Check_Day
2814 ,X_Day_Cover_tbl => Lv_Day_Cover_Tbl
2815 ,X_Result => Lx_Result
2816 ,X_Return_Status => Lx_Return_Status);
2817
2818
2819 IF Lx_Result = G_TRUE THEN
2820
2821 --dbms_output.put_line('Value of Li_LoopCount='||Li_LoopCount);
2822
2823 Li_LoopCount := 0;
2824 Lv_DayCov_Idx := Lv_Day_Cover_Tbl.FIRST;
2825
2826 --dbms_output.put_line('Value of Lv_DayCov_Idx='||Lv_DayCov_Idx);
2827
2828 while Lv_DayCov_Idx is not null loop
2829
2830
2831 Ld_Day_Reactn_Start := TO_DATE(TO_CHAR(Ld_Run_DateTime,'YYYYMMDD')||
2832 Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_From,'YYYYMMDDHH24MISS');
2833 Ld_Day_Reactn_End := TO_DATE(TO_CHAR(Ld_Run_DateTime,'YYYYMMDD')||
2834 Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_To,'YYYYMMDDHH24MISS');
2835
2836
2837 --dbms_output.put_line('Value of Ld_Run_DateTime='||to_char(Ld_Run_DateTime,'dd-mon-yyyy hh24:mi'));
2838 --dbms_output.put_line('Value of Ld_Day_Reactn_Start='||to_char(Ld_Day_Reactn_Start,'dd-mon-yyyy hh24:mi'));
2839 --dbms_output.put_line('Value of Ld_Day_Reactn_End='||to_char(Ld_Day_Reactn_End,'dd-mon-yyyy hh24:mi'));
2840
2841
2842 IF Ld_Run_DateTime <= Ld_Day_Reactn_End THEN
2843
2844 IF Ld_React_Start_DateTime IS NULL THEN
2845
2846 IF Ld_Run_DateTime < Ld_Day_Reactn_Start THEN
2847
2848 Ld_Day_Reactn_EffStart := Ld_Day_Reactn_Start;
2849
2850 ELSE
2851
2852 Ld_Day_Reactn_EffStart := Ld_Run_DateTime;
2853
2854 END IF;
2855
2856 ELSE
2857
2858 Ld_Day_Reactn_EffStart := Ld_Day_Reactn_Start;
2859
2860 END IF;
2861
2862 --dbms_output.put_line('Value of Li_Balance_ReactTime='||Li_Balance_ReactTime);
2863
2864 Ld_React_By_DateTime := Ld_Day_Reactn_EffStart + Li_Balance_ReactTime;
2865
2866 IF NVL(Lx_BP_Work_Through,G_NO) = G_YES THEN
2867
2868 Li_Balance_ReactTime := 0;
2869
2870 ELSE
2871
2872 IF Ld_React_By_DateTime > Ld_Day_Reactn_End THEN
2873
2874 Li_Balance_ReactTime := Ld_React_By_DateTime - Ld_Day_Reactn_End;
2875 Ld_React_By_DateTime := Ld_Day_Reactn_End;
2876
2877 ELSE
2878 Li_Balance_ReactTime := 0;
2879 END IF;
2880
2881 END IF;
2882
2883 --dbms_output.put_line('Value of Ld_Day_Reactn_EffStart='||to_char(Ld_Day_Reactn_EffStart,'dd-mon-yyyy hh24:mi'));
2884 --dbms_output.put_line('Value of Ld_React_By_DateTime='||to_char(Ld_React_By_DateTime,'dd-mon-yyyy hh24:mi'));
2885
2886 --dbms_output.put_line('Value of Lv_Template_YN='||Lv_Template_YN);
2887
2888 IF Lv_Template_YN = 'N' THEN -- for default coverage functionality
2889
2890 Validate_Effectivity
2891 (P_Request_Date => Ld_React_By_DateTime
2892 ,P_Start_DateTime => Ld_Cover_EffStart
2893 ,P_End_DateTime => Ld_Cover_EffEnd
2894 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
2895 ,P_CL_Msg_TokenValue => 'Coverage'
2896 ,X_Result => Lx_result
2897 ,X_Return_Status => Lx_Return_Status);
2898
2899 IF Lx_result <> G_TRUE THEN
2900 RAISE L_EXCEP_NO_COVER_REMAINS;
2901 END IF;
2902
2903 END IF;
2904
2905 IF Ld_React_Start_DateTime IS NULL THEN
2906
2907 Ld_React_Start_DateTime := Ld_Day_Reactn_EffStart;
2908
2909 END IF;
2910
2911 END IF;
2912
2913
2914 if Li_Balance_ReactTime > 0 then
2915 Lv_DayCov_Idx := Lv_Day_Cover_Tbl.NEXT(Lv_DayCov_Idx);
2916 else
2917 exit; -- from loop
2918 end if;
2919 end loop;
2920
2921 ELSE
2922
2923 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
2924 RAISE L_EXCEP_UNEXPECTED_ERR;
2925 END IF;
2926
2927 Li_LoopCount := Li_LoopCount + 1;
2928
2929 IF Li_LoopCount > 7 THEN
2930
2931 RAISE L_EXCEP_NO_COVER_DEFINED;
2932
2933 END IF;
2934
2935 END IF;
2936
2937 Ld_Run_DateTime := TRUNC(Ld_Run_DateTime,'DD') + 1;
2938 Lv_Check_Day := 'Y';
2939
2940 END LOOP;
2941
2942 IF Li_Balance_ReactTime > 0 THEN
2943
2944 RAISE L_EXCEP_NO_COVER_DEFINED;
2945
2946 END IF;
2947
2948 X_React_By_DateTime := Ld_React_By_DateTime;
2949 X_React_Start_DateTime := Ld_React_Start_DateTime;
2950 X_Result := Lx_Result;
2951 X_Return_Status := Lx_Return_Status;
2952
2953 EXCEPTION
2954
2955 WHEN L_EXCEP_UNEXPECTED_ERR OR L_EXCEP_NO_COVER_REMAINS THEN
2956
2957 X_Result := Lx_Result;
2958 X_Return_Status := Lx_Return_Status;
2959
2960 WHEN L_EXCEP_NO_COVER_DEFINED THEN
2961
2962 Lx_Result := G_FALSE;
2963
2964 IF Lx_Set_ExcepionStack = G_TRUE THEN
2965
2966 OKC_API.SET_MESSAGE
2967 (p_app_name => G_APP_NAME_OKC
2968 ,p_msg_name => G_REQUIRED_VALUE
2969 ,p_token1 => G_COL_NAME_TOKEN
2970 ,p_token1_value => 'Day Cover Time');
2971
2972 Lx_Return_Status := G_RET_STS_ERROR;
2973
2974 END IF;
2975
2976 X_Result := Lx_Result;
2977 X_Return_Status := Lx_Return_Status;
2978
2979 WHEN OTHERS THEN
2980
2981 OKC_API.SET_MESSAGE
2982 (P_App_Name => G_APP_NAME_OKC
2983 ,P_Msg_Name => G_UNEXPECTED_ERROR
2984 ,P_Token1 => G_SQLCODE_TOKEN
2985 ,P_Token1_Value => SQLCODE
2986 ,P_Token2 => G_SQLERRM_TOKEN
2987 ,P_Token2_Value => SQLERRM);
2988
2989 OKC_API.SET_MESSAGE
2990 (P_App_Name => G_APP_NAME_OKC
2991 ,P_Msg_Name => G_DEBUG_TOKEN
2992 ,P_Token1 => G_PACKAGE_TOKEN
2993 ,P_Token1_Value => G_PKG_NAME
2994 ,P_Token2 => G_PROGRAM_TOKEN
2995 ,P_Token2_Value => 'Compute_Day_React_By_DateTime');
2996
2997 X_Result := G_FALSE;
2998 X_Return_Status := G_RET_STS_UNEXP_ERROR;
2999
3000 END Compute_Day_React_By_DateTime;
3001
3002 -----------------------------------------------------------------------------------------------------------------------*
3003
3004 PROCEDURE Compute_React_By_DateTime
3005 (P_Request_DateTime IN DATE
3006 ,P_Cover_EffStart IN DATE
3007 ,P_Cover_EffEnd IN DATE
3008 ,P_BP_Work_Through IN Gx_YesNo
3009 ,P_BP_Cover_Times IN GT_Bp_CoverTimes
3010 ,P_Reaction_Attribs IN GT_Bp_Reactions
3011 ,P_Option IN VARCHAR2
3012 ,P_Template_YN IN VARCHAR2
3013 ,P_Set_ExcepionStack IN Gx_Boolean
3014 ,X_React_Durn out nocopy Gx_ReactDurn
3015 ,X_React_UOM out nocopy Gx_ReactUOM
3016 ,X_React_Day out nocopy VARCHAR2
3017 ,X_React_By_DateTime out nocopy DATE
3018 ,X_React_Start_DateTime out nocopy DATE
3019 ,X_Result out nocopy Gx_Boolean
3020 ,X_Return_Status out nocopy Gx_Ret_Sts)
3021
3022 IS
3023
3024 Ld_Request_DateTime CONSTANT DATE := P_Request_DateTime;
3025 Ld_Cover_EffStart CONSTANT DATE := P_Cover_EffStart;
3026 Ld_Cover_EffEnd CONSTANT DATE := P_Cover_EffEnd;
3027 Lx_BP_Work_Through CONSTANT Gx_YesNo := P_BP_Work_Through;
3028 Lv_Option CONSTANT VARCHAR2(10) := P_Option;
3029 Lv_Template_YN VARCHAR2(1);
3030 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
3031
3032 Lx_Reaction_Attribs GT_Bp_Reactions;
3033 Lx_BP_Cover_Times GT_Bp_CoverTimes;
3034
3035 Lx_React_Durn Gx_ReactDurn;
3036 Lx_React_UOM Gx_ReactUOM;
3037 Lv_React_Day VARCHAR2(25);
3038 Ld_React_By_DateTime DATE;
3039 Ld_React_Start_DateTime DATE;
3040
3041 Lx_React_Durn_X Gx_ReactDurn;
3042 Lx_React_UOM_X Gx_ReactUOM;
3043 Lv_React_Day_X VARCHAR2(25);
3044 Ld_React_By_DateTime_X DATE;
3045 Ld_React_Start_DateTime_X DATE;
3046
3047 Lx_Result Gx_Boolean;
3048 Lx_Return_Status Gx_Ret_Sts;
3049
3050 Li_React_Day INTEGER(1);
3051 Li_ReqDay_Relative INTEGER(1);
3052
3053 Li_Bp_RactTbl_Idx BINARY_INTEGER;
3054 Ld_Run_DateTime DATE;
3055
3056 Li_React_Durn_Days NUMBER;
3057 Lv_Check_Day VARCHAR2(1);
3058
3059 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
3060 L_EXCEP_NO_COVER_REMAINS EXCEPTION;
3061 L_EXCEP_NO_REACTION_TIME EXCEPTION;
3062
3063 BEGIN
3064
3065 Lv_Template_YN := nvl(P_Template_YN,'N');
3066
3067 Lx_Reaction_Attribs := P_Reaction_Attribs;
3068 Lx_BP_Cover_Times := P_BP_Cover_Times;
3069
3070 Lx_Result := G_TRUE;
3071 Lx_Return_Status := G_RET_STS_SUCCESS;
3072
3073 Li_Bp_RactTbl_Idx := Lx_Reaction_Attribs.FIRST;
3074 Ld_Run_DateTime := Ld_Request_DateTime;
3075
3076 WHILE Li_Bp_RactTbl_Idx IS NOT NULL LOOP
3077
3078 Lx_React_Durn := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Rx_React_Durn;
3079 Lx_React_UOM := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Rx_React_UOM;
3080 Li_React_Day := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Ri_React_Day;
3081 Li_ReqDay_Relative := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Ri_ReqDay_Relative;
3082 Lv_React_Day := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Rv_React_Day;
3083
3084 -- dbms_output.put_line('Value of Li_ReqDay_Relative='||Li_ReqDay_Relative);
3085
3086 IF Li_React_Day IS NOT NULL AND Lx_React_Durn IS NOT NULL AND Lx_React_UOM IS NOT NULL THEN
3087
3088 Get_Reactn_Durn_In_Days
3089 (P_React_Durn => Lx_React_Durn
3090 ,P_React_UOM => Lx_React_UOM
3091 ,P_Set_ExcepionStack => G_FALSE
3092 ,X_React_Durn_In_Days => Li_React_Durn_Days
3093 ,X_Result => Lx_Result
3094 ,X_Return_Status => Lx_Return_Status);
3095
3096 IF Lx_Result = G_TRUE THEN
3097
3098 IF Li_ReqDay_Relative > 0 THEN
3099 Ld_Run_DateTime := TRUNC(Ld_Run_DateTime,'DD') + Li_ReqDay_Relative;
3100 Lv_Check_Day := 'Y';
3101 ELSE
3102 Lv_Check_Day := 'N';
3103 END IF;
3104
3105 EXIT WHEN Ld_React_By_DateTime_X <= Ld_Run_DateTime;
3106
3107
3108 IF Lv_Template_YN = 'N' THEN -- for default coverage functionality
3109
3110 Validate_Effectivity
3111 (P_Request_Date => Ld_Run_DateTime
3112 ,P_Start_DateTime => Ld_Cover_EffStart
3113 ,P_End_DateTime => Ld_Cover_EffEnd
3114 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3115 ,P_CL_Msg_TokenValue => 'Coverage'
3116 ,X_Result => Lx_result
3117 ,X_Return_Status => Lx_Return_Status);
3118
3119 IF Lx_result <> G_TRUE THEN
3120 RAISE L_EXCEP_NO_COVER_REMAINS;
3121 END IF;
3122
3123 END IF;
3124
3125 --dbms_output.put_line('Value of Ld_Run_DateTime='||to_char(Ld_Run_DateTime,'dd-mon-yyyy hh24:mi'));
3126 --dbms_output.put_line('Value of Ld_Cover_EffStart='||to_char(Ld_Cover_EffStart,'dd-mon-yyyy hh24:mi'));
3127 --dbms_output.put_line('Value of Ld_Cover_EffEnd='||to_char(Ld_Cover_EffEnd,'dd-mon-yyyy hh24:mi'));
3128 --dbms_output.put_line('Value of Lx_BP_Work_Through='||Lx_BP_Work_Through);
3129 --dbms_output.put_line('Value of Li_React_Durn_Days='||Li_React_Durn_Days);
3130 --dbms_output.put_line('Value of Lv_Template_YN='||Lv_Template_YN);
3131
3132 Compute_Day_React_By_DateTime
3133 (P_Req_DateTime => Ld_Run_DateTime
3134 ,P_Cover_EffStart => Ld_Cover_EffStart
3135 ,P_Cover_EffEnd => Ld_Cover_EffEnd
3136 ,P_BP_Work_Through => Lx_BP_Work_Through
3137 ,P_BP_Cover_Times => Lx_BP_Cover_Times
3138 ,P_React_Durn_In_Days => Li_React_Durn_Days
3139 ,P_Template_YN => Lv_Template_YN -- for default coverage functionality
3140 ,P_Set_ExcepionStack => G_FALSE
3141 ,P_Check_Day => Lv_Check_Day
3142 ,X_React_By_DateTime => Ld_React_By_DateTime
3143 ,X_React_Start_DateTime => Ld_React_Start_DateTime
3144 ,X_Result => Lx_Result
3145 ,X_Return_Status => Lx_Return_Status);
3146
3147
3148 --dbms_output.put_line('Value of Ld_React_By_DateTime='||to_char(Ld_React_By_DateTime,'dd-mon-yyyy hh24:mi'));
3149 --dbms_output.put_line('Value of Ld_React_Start_DateTime='||to_char(Ld_React_Start_DateTime,'dd-mon-yyyy hh24:mi'));
3150
3151
3152 IF Lx_Result <> G_TRUE THEN
3153 RAISE L_EXCEP_UNEXPECTED_ERR;
3154 END IF;
3155
3156 IF Ld_React_By_DateTime < Ld_React_By_DateTime_X OR Ld_React_By_DateTime_X IS NULL THEN
3157 Lx_React_Durn_X := Lx_React_Durn;
3158 Lx_React_UOM_X := Lx_React_UOM;
3159 Lv_React_Day_X := Lv_React_Day;
3160 Ld_React_By_DateTime_X := Ld_React_By_DateTime;
3161 Ld_React_Start_DateTime_X := Ld_React_Start_DateTime;
3162 END IF;
3163
3164 IF Lv_Option = G_FIRST THEN
3165 EXIT;
3166 END IF;
3167
3168 END IF;
3169 END IF;
3170
3171 Li_Bp_RactTbl_Idx := Lx_Reaction_Attribs.NEXT(Li_Bp_RactTbl_Idx);
3172
3173 END LOOP;
3174
3175 IF (Ld_React_By_DateTime_X IS NULL)
3176 THEN
3177 RAISE L_EXCEP_NO_REACTION_TIME;
3178 END IF;
3179
3180 X_React_Durn := Lx_React_Durn_X;
3181 X_React_UOM := Lx_React_UOM_X;
3182 X_React_Day := Lv_React_Day_X;
3183 X_React_By_DateTime := Ld_React_By_DateTime_X;
3184 X_React_Start_DateTime := Ld_React_Start_DateTime_X;
3185 X_Result := Lx_Result;
3186 X_Return_Status := Lx_Return_Status;
3187
3188 EXCEPTION
3189
3190 WHEN L_EXCEP_UNEXPECTED_ERR OR L_EXCEP_NO_COVER_REMAINS THEN
3191
3192 X_Result := Lx_Result;
3193 X_Return_Status := Lx_Return_Status;
3194
3195 WHEN L_EXCEP_NO_REACTION_TIME THEN
3196
3197 Lx_Result := G_FALSE;
3198
3199 IF Lx_Set_ExcepionStack = G_TRUE THEN
3200
3201 OKC_API.SET_MESSAGE
3202 (p_app_name => G_APP_NAME_OKC
3203 ,p_msg_name => G_REQUIRED_VALUE
3204 ,p_token1 => G_COL_NAME_TOKEN
3205 ,p_token1_value => 'Day Reaction Time');
3206
3207 Lx_Return_Status := G_RET_STS_ERROR;
3208
3209 END IF;
3210
3211 X_Result := Lx_Result;
3212 X_Return_Status := Lx_Return_Status;
3213
3214 WHEN OTHERS THEN
3215
3216 OKC_API.SET_MESSAGE
3217 (P_App_Name => G_APP_NAME_OKC
3218 ,P_Msg_Name => G_UNEXPECTED_ERROR
3219 ,P_Token1 => G_SQLCODE_TOKEN
3220 ,P_Token1_Value => SQLCODE
3221 ,P_Token2 => G_SQLERRM_TOKEN
3222 ,P_Token2_Value => SQLERRM);
3223
3224 OKC_API.SET_MESSAGE
3225 (P_App_Name => G_APP_NAME_OKC
3226 ,P_Msg_Name => G_DEBUG_TOKEN
3227 ,P_Token1 => G_PACKAGE_TOKEN
3228 ,P_Token1_Value => G_PKG_NAME
3229 ,P_Token2 => G_PROGRAM_TOKEN
3230 ,P_Token2_Value => 'Compute_React_By_DateTime');
3231
3232 X_Result := G_FALSE;
3233 X_Return_Status := G_RET_STS_UNEXP_ERROR;
3234
3235 END Compute_React_By_DateTime;
3236
3237 -----------------------------------------------------------------------------------------------------------------------*
3238
3239 PROCEDURE Get_ReactResol_By_DateTime
3240 (P_API_Version IN NUMBER
3241 ,P_Init_Msg_List IN VARCHAR2
3242 ,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'
3243 ,P_BusiProc_Id IN Gx_BusProcess_Id
3244 ,P_Severity_Id IN Gx_Severity_Id
3245 ,P_Request_Date IN DATE
3246 ,P_Request_TZone_id IN Gx_TimeZoneId
3247 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
3248 ,P_template_YN IN VARCHAR2 -- for default coverage enhancement
3249 ,P_Option IN VARCHAR2
3250 ,P_Rcn_Rsn_Flag IN VARCHAR2
3251 ,P_Set_ExcepionStack IN Gx_Boolean
3252 ,X_React_Durn out nocopy Gx_ReactDurn
3253 ,X_React_UOM out nocopy Gx_ReactUOM
3254 ,X_React_Day out nocopy VARCHAR2
3255 ,X_React_By_DateTime out nocopy DATE
3256 ,X_React_Start_DateTime out nocopy DATE
3257 ,X_Resolve_Durn out nocopy Gx_ReactDurn
3258 ,X_Resolve_UOM out nocopy Gx_ReactUOM
3259 ,X_Resolve_Day out nocopy VARCHAR2
3260 ,X_Resolve_By_DateTime out nocopy DATE
3261 ,X_Resolve_Start_DateTime out nocopy DATE
3262 ,X_Msg_count OUT NOCOPY Number
3263 ,X_Msg_data OUT NOCOPY Varchar2
3264 ,X_Result out nocopy Gx_Boolean
3265 ,X_Return_Status out nocopy Gx_Ret_Sts)
3266 IS
3267
3268 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3269
3270 CURSOR Get_Cov_Timezones(P_BPL_Id in number) IS
3271 select oct.id,
3272 oct.timezone_id,
3273 oct.default_yn,
3274 okslb.APPLY_DEFAULT_TIMEZONE
3275 from okc_k_lines_b okclb,
3276 oks_k_lines_b okslb,
3277 oks_coverage_timezones oct
3278 where okclb.id = P_BPL_Id
3279 and okslb.cle_id = okclb.id
3280 and oct.cle_id = okclb.id;
3281
3282 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3283
3284 Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
3285 Lx_BusiProc_Id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
3286 Lx_Severity_Id CONSTANT Gx_Severity_Id := P_Severity_Id;
3287 Ld_Request_Date DATE;
3288 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
3289 Lx_ReactReso_ObjCode CONSTANT Gx_JTOT_ObjCode := G_JTOT_OBJ_REACTIME;
3290 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
3291 Lv_Option CONSTANT VARCHAR2(10) := P_Option;
3292 Lv_Rcn_Rsn_Flag CONSTANT Gx_Rule_Category := NVL(P_Rcn_Rsn_Flag,G_RUL_CATEGORY_REACT_RESOLVE);
3293 Lv_Template_YN VARCHAR2(1); -- default coverage functionality
3294
3295 Lx_React_Durn Gx_ReactDurn;
3296 Lx_React_UOM Gx_ReactUOM;
3297 Lv_React_Day VARCHAR2(25);
3298 Ld_React_By_DateTime DATE;
3299 Ld_React_Start_DateTime DATE;
3300 Ld_TZ_React_By_DateTime DATE;
3301 Ld_TZ_React_Start_DateTime DATE;
3302
3303 Lx_Resolve_Durn Gx_ReactDurn;
3304 Lx_Resolve_UOM Gx_ReactUOM;
3305 Lv_Resolve_Day VARCHAR2(25);
3306 Ld_Resolve_By_DateTime DATE;
3307 Ld_Resolve_Start_DateTime DATE;
3308 Ld_TZ_Resolve_By_DateTime DATE;
3309 Ld_TZ_Resolve_Start_DateTime DATE;
3310
3311 Lx_Result Gx_Boolean;
3312 Lx_Result1 Gx_Boolean;
3313 Lx_Result2 Gx_Boolean;
3314 Lx_Result3 Gx_Boolean;
3315 Lx_Result4 Gx_Boolean;
3316
3317 Lx_Return_Status Gx_Ret_Sts;
3318
3319 Ld_SVL_Start DATE;
3320 Ld_SVL_End DATE;
3321 Ld_SVL_Terminated DATE;
3322 Ld_SVL_EffEnd_Date DATE;
3323
3324 Lx_CVL_Id Gx_OKS_Id;
3325 Ld_CVL_Start DATE;
3326 Ld_CVL_End DATE;
3327 Ld_CVL_Terminated DATE;
3328 Ld_CVL_EffEnd_Date DATE;
3329
3330 Lx_BPL_Id Gx_OKS_Id;
3331 Ld_BPL_Start DATE;
3332 Ld_BPL_End DATE;
3333 Ld_BPL_Terminated DATE;
3334 Ld_BPL_EffEnd_Date DATE;
3335
3336 -- Lx_BP_CVTRule_Id Gx_Rule_Id;
3337 Lx_BP_CVTLine_Id Gx_OKS_Id;
3338 Lx_BP_Tz_Id Gx_TimeZoneId;
3339
3340 Ld_TzCont_Req_Date DATE;
3341
3342 Lx_RTL_Id Gx_OKS_Id;
3343 Ld_RTL_Start DATE;
3344 Ld_RTL_End DATE;
3345 Ld_RTL_Terminated DATE;
3346
3347 -- Lx_RTL_RCN_Rule_Id Gx_Rule_Id;
3348 Lx_RTL_RCN_Line_Id Gx_OKS_Id; -- 11.5.10 addition for enhancements
3349 Lx_RTL_RCN_WT_YN Gx_YesNo;
3350 Lx_RTL_RCN_Id Gx_OKS_Id;
3351 Ld_RTL_RCN_Start DATE;
3352 Ld_RTL_RCN_End DATE;
3353 Ld_RTL_RCN_Terminated DATE;
3354
3355 -- Lx_RTL_RSN_Rule_Id Gx_Rule_Id;
3356 Lx_RTL_RSN_Line_Id Gx_OKS_Id; -- 11.5.10 addition for enhancements
3357 Lx_RTL_RSN_WT_YN Gx_YesNo;
3358 Lx_RTL_RSN_Id Gx_OKS_Id;
3359 Ld_RTL_RSN_Start DATE;
3360 Ld_RTL_RSN_End DATE;
3361 Ld_RTL_RSN_Terminated DATE;
3362
3363 Ld_RTL_EffEnd_Date DATE;
3364
3365 Ld_Cont_EffStart DATE;
3366 Ld_Cont_EffEnd DATE;
3367
3368 Lx_BP_CovTimes GT_Bp_CoverTimes;
3369 Lx_Reaction_Attribs GT_Bp_Reactions;
3370 Lx_Resolution_Attribs GT_Bp_Reactions;
3371
3372 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3373 Lx_Use_TZE_Id number;
3374 Lx_TZE_Mtch_Exists varchar2(1);
3375 Lx_Def_TZE_Id number;
3376 Lx_Apply_Def_Tze varchar2(1);
3377 Lx_Use_TZE_Line_Id number;
3378 Lx_Def_TZE_Line_Id number;
3379 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3380
3381 L_EXCEP_NULL_VALUE EXCEPTION;
3382 L_EXCEP_NO_DATA_FOUND EXCEPTION;
3383 L_EXCEP_NOT_EFFECTIVE EXCEPTION;
3384 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
3385
3386 -- Added for 12.0 ENT-TZ project (JVARGHES)
3387
3388 ln_Param_DatesTZ NUMBER;
3389 ln_CovTZ NUMBER;
3390
3391 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3392
3393 Lv_Std_Cov_YN VARCHAR2(10);
3394
3395 Ld_BPL_OFS_Start DATE;
3396 Ln_BPL_OFS_Duration NUMBER;
3397 Lv_BPL_OFS_UOM VARCHAR2(100);
3398 --
3399
3400 BEGIN
3401
3402 Ld_Request_Date := nvl(P_Request_Date,sysdate);
3403 Lv_Template_YN := nvl(P_template_YN,'N'); -- default coverage functionality
3404
3405 Lx_Result := G_TRUE;
3406 Lx_Result1 := G_FALSE;
3407 Lx_Result2 := G_FALSE;
3408 Lx_Result3 := G_FALSE;
3409 Lx_Result4 := G_FALSE;
3410
3411 Lx_Return_Status := G_RET_STS_SUCCESS;
3412
3413 Validate_Required_RT_Tokens
3414 (P_SVL_Id => Lx_SVL_Id -- Lx_SVL_Id
3415 ,P_BusiProc_Id => Lx_BusiProc_id
3416 ,P_Severity_Id => Lx_Severity_Id
3417 ,P_Request_Date => Ld_Request_Date
3418 ,P_Request_TZone_id => Lx_Request_TZone_Id
3419 ,P_template_YN => Lv_Template_YN -- for default coverage functionality
3420 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3421 ,X_Result => Lx_Result
3422 ,X_Return_Status => Lx_Return_Status);
3423
3424 IF Lx_Result <> G_TRUE THEN
3425 RAISE L_EXCEP_NULL_VALUE;
3426 END IF;
3427
3428 IF Lv_Template_YN = 'N' THEN
3429
3430 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
3431 --
3432 -- Validate_Service_Line
3433 -- (P_SVL_Id => Lx_SVL_Id --Lx_SVL_Id
3434 -- ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3435 -- ,X_SVL_Start => Ld_SVL_Start
3436 -- ,X_SVL_End => Ld_SVL_End
3437 -- ,X_SVL_Terminated => Ld_SVL_Terminated
3438 -- ,X_Result => Lx_Result
3439 -- ,X_Return_Status => Lx_Return_Status);
3440 --
3441 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3442 --
3443
3444 Validate_Service_Line
3445 (P_SVL_Id => Lx_SVL_Id
3446 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3447 ,X_CVL_Id => Lx_CVL_Id
3448 ,X_Std_Cov_YN => Lv_Std_Cov_YN
3449 ,X_SVL_Start => Ld_SVL_Start
3450 ,X_SVL_End => Ld_SVL_End
3451 ,X_SVL_Terminated => Ld_SVL_Terminated
3452 ,X_Result => Lx_Result
3453 ,X_Return_Status => Lx_Return_Status);
3454
3455 --
3456
3457 IF Lx_Result <> G_TRUE THEN
3458 RAISE L_EXCEP_NO_DATA_FOUND;
3459 END IF;
3460
3461 Get_Effective_End_Date
3462 (P_Start_Date => Ld_SVL_Start
3463 ,P_End_Date => Ld_SVL_End
3464 ,P_Termination_Date => Ld_SVL_Terminated
3465 ,P_EndDate_Required => G_TRUE
3466 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3467 ,P_ExcepionMsg => 'Service Line'
3468 ,X_EffEnd_Date => Ld_SVL_EffEnd_Date
3469 ,X_Result => Lx_Result
3470 ,X_Return_Status => Lx_Return_Status);
3471
3472 IF Lx_Result <> G_TRUE THEN
3473 RAISE L_EXCEP_NULL_VALUE;
3474 END IF;
3475
3476 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3477
3478 ELSE
3479
3480 Lx_CVL_Id := Lx_SVL_Id;
3481
3482 END IF;
3483 --
3484 --
3485 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
3486 --
3487 -- Validate_Coverage_Line
3488 -- (P_SVL_Id => Lx_SVL_Id --Lx_SVL_Id
3489 -- ,P_Template_YN => Lv_Template_YN -- for default coverage functionality
3490 -- ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3491 -- ,X_CVL_Id => Lx_CVL_Id
3492 -- ,X_CVL_Start => Ld_CVL_Start
3493 -- ,X_CVL_End => Ld_CVL_End
3494 -- ,X_CVL_Terminated => Ld_CVL_Terminated
3495 -- ,X_Result => Lx_Result
3496 -- ,X_Return_Status => Lx_Return_Status);
3497 --
3498 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3499 --
3500
3501 Validate_Coverage_Line
3502 (P_CVL_Id => Lx_CVL_Id
3503 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3504 ,X_CVL_Start => Ld_CVL_Start
3505 ,X_CVL_End => Ld_CVL_End
3506 ,X_CVL_Terminated => Ld_CVL_Terminated
3507 ,X_Result => Lx_Result
3508 ,X_Return_Status => Lx_Return_Status);
3509
3510 IF Lx_Result <> G_TRUE THEN
3511 RAISE L_EXCEP_NO_DATA_FOUND;
3512 END IF;
3513
3514 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
3515 THEN
3516
3517 Ld_CVL_Start := Ld_SVL_Start;
3518 Ld_CVL_End := Ld_SVL_End;
3519 Ld_CVL_Terminated := Ld_SVL_Terminated;
3520
3521 END IF;
3522
3523 --
3524 --
3525
3526 IF Lv_Template_YN = 'N' THEN -- for default coverage fucntionality
3527
3528 Get_Effective_End_Date
3529 (P_Start_Date => Ld_CVL_Start
3530 ,P_End_Date => Ld_CVL_End
3531 ,P_Termination_Date => Ld_CVL_Terminated
3532 ,P_EndDate_Required => G_TRUE
3533 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3534 ,P_ExcepionMsg => 'Coverage Line'
3535 ,X_EffEnd_Date => Ld_CVL_EffEnd_Date
3536 ,X_Result => Lx_Result
3537 ,X_Return_Status => Lx_Return_Status);
3538
3539 IF Lx_Result <> G_TRUE THEN
3540 RAISE L_EXCEP_NULL_VALUE;
3541 END IF;
3542
3543 END IF;
3544
3545
3546 Validate_Contract_BP
3547 (P_CVL_Id => Lx_CVL_Id -- P_SVL_Id => Lx_SVL_Id
3548 ,P_BP_Id => Lx_BusiProc_Id
3549 ,P_BP_ObjCode => G_JTOT_OBJ_BUSIPROC
3550 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3551 ,X_BPL_Id => Lx_BPL_Id
3552 ,X_BPL_Start => Ld_BPL_Start
3553 ,X_BPL_End => Ld_BPL_End
3554 ,X_BPL_Terminated => Ld_BPL_Terminated
3555 ,X_Result => Lx_Result
3556 ,X_Return_Status => Lx_Return_Status);
3557
3558 IF Lx_Result <> G_TRUE THEN
3559 RAISE L_EXCEP_NO_DATA_FOUND;
3560 END IF;
3561
3562 --
3563 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3564 --
3565
3566 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
3567 THEN
3568
3569 Get_BP_Line_Start_Offset
3570 (P_BPL_Id => Lx_BPL_Id
3571 ,P_SVL_Start => Ld_SVL_Start
3572 ,X_BPL_OFS_Start => Ld_BPL_Start
3573 ,X_BPL_OFS_Duration => Ln_BPL_OFS_Duration
3574 ,X_BPL_OFS_UOM => Lv_BPL_OFS_UOM
3575 ,X_Return_Status => Lx_Return_Status);
3576
3577 IF X_Return_Status <> G_RET_STS_SUCCESS THEN
3578 RAISE L_EXCEP_NO_DATA_FOUND;
3579 END IF;
3580
3581 Ld_BPL_End := Ld_SVL_End;
3582 Ld_BPL_Terminated := Ld_SVL_Terminated;
3583
3584 END IF;
3585
3586 --
3587
3588 IF Lv_Template_YN = 'N' THEN -- for default coverage fucntionality
3589
3590 Get_Effective_End_Date
3591 (P_Start_Date => Ld_BPL_Start
3592 ,P_End_Date => Ld_BPL_End
3593 ,P_Termination_Date => Ld_BPL_Terminated
3594 ,P_EndDate_Required => G_TRUE
3595 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3596 ,P_ExcepionMsg => 'Business Process Line'
3597 ,X_EffEnd_Date => Ld_BPL_EffEnd_Date
3598 ,X_Result => Lx_Result
3599 ,X_Return_Status => Lx_Return_Status);
3600
3601 IF Lx_Result <> G_TRUE THEN
3602 RAISE L_EXCEP_NULL_VALUE;
3603 END IF;
3604
3605 END IF;
3606
3607 ----------------------------11.5.10 select coverage time zone starts -------------------
3608
3609 Lx_Use_TZE_Id := null;
3610 Lx_TZE_Mtch_Exists := 'N';
3611 Lx_Def_TZE_Id := null;
3612 Lx_Apply_Def_Tze := null;
3613 Lx_Use_TZE_Line_Id := null;
3614 Lx_Def_TZE_Line_Id := null;
3615
3616 for Cov_Timezones_rec in Get_Cov_Timezones(Lx_BPL_Id) loop
3617
3618 if Lx_Request_TZone_Id = Cov_Timezones_rec.timezone_id then
3619
3620 Lx_Use_TZE_Id := Lx_Request_TZone_Id;
3621 Lx_TZE_Mtch_Exists := 'Y';
3622 Lx_Use_TZE_Line_Id := Cov_Timezones_rec.id;
3623
3624 exit;
3625
3626 end if;
3627
3628 if Cov_Timezones_rec.default_yn = 'Y' then
3629
3630 Lx_Def_TZE_Id := Cov_Timezones_rec.timezone_id;
3631 Lx_Def_TZE_Line_Id := Cov_Timezones_rec.id;
3632
3633 end if;
3634
3635 Lx_Apply_Def_Tze := Cov_Timezones_rec.APPLY_DEFAULT_TIMEZONE;
3636
3637 end loop;
3638
3639 if Lx_Use_TZE_Id is null then
3640
3641 if Lx_Apply_Def_Tze = 'Y' then
3642
3643 -- Lx_Use_TZE_Id := Lx_Def_TZE_Id; -- Bug# 5137665
3644 Lx_Use_TZE_Id := Lx_Request_TZone_Id; -- Bug# 5137665
3645 Lx_TZE_Mtch_Exists := 'Y';
3646 Lx_Use_TZE_Line_Id := Lx_Def_TZE_Line_Id;
3647
3648 end if;
3649
3650 end if;
3651
3652 if Lx_Use_TZE_Line_Id is null then
3653
3654 Lx_Use_TZE_Line_Id := Lx_Def_TZE_Line_Id;
3655
3656 end if;
3657
3658 -- Commented for 12.0 ENT-TZ project (JVARGHES)
3659 --
3660 --if Lx_Use_TZE_Id is null then
3661 --
3662 -- Convert_TimeZone
3663 -- (P_API_Version => P_API_Version
3664 -- ,P_Init_Msg_List => P_Init_Msg_List
3665 -- ,P_Source_Date => Ld_Request_Date
3666 -- ,P_Source_Tz_Id => Lx_Request_TZone_Id
3667 -- ,P_Dest_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id --11.5.10 multiple coverage time zone enhancements
3668 -- ,X_Dest_Date => Ld_TzCont_Req_Date
3669 -- ,X_Msg_Count => X_Msg_count
3670 -- ,X_Msg_Data => X_Msg_Data
3671 -- ,X_Return_Status => Lx_Return_Status);
3672 --
3673 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
3674 -- RAISE L_EXCEP_NO_DATA_FOUND;
3675 -- END IF;
3676 --
3677 -- else
3678 --
3679 -- Ld_TzCont_Req_Date := Ld_Request_Date;
3680 --
3681 -- end if;
3682 --
3683 -- Added for 12.0 ENT-TZ project (JVARGHES)
3684 --
3685
3686 IF NVL(P_DATES_IN_INPUT_TZ,'Y') = 'N' THEN
3687 ln_Param_DatesTZ := fnd_profile.VALUE ('SERVER_TIMEZONE_ID');
3688 ELSE
3689 ln_Param_DatesTZ := Lx_Request_TZone_id;
3690 END IF;
3691
3692 ln_CovTZ := NVL(Lx_Use_TZE_Id, Lx_Def_TZE_Id);
3693
3694 IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11) THEN
3695
3696 Ld_TzCont_Req_Date := Ld_Request_Date;
3697
3698 ELSE
3699
3700 Convert_TimeZone
3701 (P_API_Version => P_API_Version
3702 ,P_Init_Msg_List => P_Init_Msg_List
3703 ,P_Source_Date => Ld_Request_Date
3704 ,P_Source_Tz_Id => ln_Param_DatesTZ
3705 ,P_Dest_Tz_Id => ln_CovTZ
3706 ,X_Dest_Date => Ld_TzCont_Req_Date
3707 ,X_Msg_Count => X_Msg_count
3708 ,X_Msg_Data => X_Msg_Data
3709 ,X_Return_Status => Lx_Return_Status);
3710
3711 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
3712 RAISE L_EXCEP_NO_DATA_FOUND;
3713 END IF;
3714
3715 END IF;
3716
3717 --
3718 --
3719 ----------------------------11.5.10 select coverage time zone ends -------------------
3720
3721 IF Lv_Template_YN = 'N' THEN -- for default coverage functionality
3722
3723 Validate_Effectivity
3724 (P_Request_Date => Ld_TzCont_Req_Date
3725 ,P_Start_DateTime => Ld_SVL_Start
3726 ,P_End_DateTime => Ld_SVL_EffEnd_Date
3727 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3728 ,P_CL_Msg_TokenValue => 'Service Line'
3729 ,X_Result => Lx_Result
3730 ,X_Return_Status => Lx_Return_Status);
3731
3732 IF Lx_Result <> G_TRUE THEN
3733 RAISE L_EXCEP_NOT_EFFECTIVE;
3734 END IF;
3735
3736 Validate_Effectivity
3737 (P_Request_Date => Ld_TzCont_Req_Date
3738 ,P_Start_DateTime => Ld_CVL_Start
3739 ,P_End_DateTime => Ld_CVL_EffEnd_Date
3740 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3741 ,P_CL_Msg_TokenValue => 'Coverage Line'
3742 ,X_Result => Lx_Result
3743 ,X_Return_Status => Lx_Return_Status);
3744
3745 IF Lx_Result <> G_TRUE THEN
3746 RAISE L_EXCEP_NOT_EFFECTIVE;
3747 END IF;
3748
3749 Validate_Effectivity
3750 (P_Request_Date => Ld_TzCont_Req_Date
3751 ,P_Start_DateTime => Ld_BPL_Start
3752 ,P_End_DateTime => Ld_BPL_EffEnd_Date
3753 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3754 ,P_CL_Msg_TokenValue => 'Business Process Line'
3755 ,X_Result => Lx_Result
3756 ,X_Return_Status => Lx_Return_Status);
3757
3758 IF Lx_Result <> G_TRUE THEN
3759 RAISE L_EXCEP_NOT_EFFECTIVE;
3760 END IF;
3761
3762 END IF;
3763
3764 IF Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_REACTION OR Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_REACT_RESOLVE THEN
3765
3766 Get_BP_ReactResolTime_Line
3767 (P_BPL_Id => Lx_BPL_Id
3768 ,P_Severity_Id => Lx_Severity_Id
3769 ,P_TimeType_Category => G_RUL_CATEGORY_REACTION
3770 ,P_Active_YN => G_YES
3771 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3772 ,X_RTL_Id => Lx_RTL_RCN_Id
3773 ,X_RTL_Start => Ld_RTL_RCN_Start
3774 ,X_RTL_End => Ld_RTL_RCN_End
3775 ,X_RTL_Terminated => Ld_RTL_RCN_Terminated
3776 ,X_RTL_Line_Id => Lx_RTL_RCN_Line_Id
3777 ,X_RTL_WT_YN => Lx_RTL_RCN_WT_YN
3778 ,X_Result => Lx_Result1
3779 ,X_Return_Status => Lx_Return_Status);
3780
3781 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
3782 Lx_Result := Lx_Result1;
3783 RAISE L_EXCEP_UNEXPECTED_ERR;
3784 END IF;
3785
3786 END IF;
3787
3788 IF Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_RESOLUTION OR Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_REACT_RESOLVE THEN
3789
3790 Get_BP_ReactResolTime_Line
3791 (P_BPL_Id => Lx_BPL_Id
3792 ,P_Severity_Id => Lx_Severity_Id
3793 ,P_TimeType_Category => G_RUL_CATEGORY_RESOLUTION
3794 ,P_Active_YN => G_YES
3795 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3796 ,X_RTL_Id => Lx_RTL_RSN_Id
3797 ,X_RTL_Start => Ld_RTL_RSN_Start
3798 ,X_RTL_End => Ld_RTL_RSN_End
3799 ,X_RTL_Terminated => Ld_RTL_RSN_Terminated
3800 ,X_RTL_Line_Id => Lx_RTL_RSN_Line_Id
3801 ,X_RTL_WT_YN => Lx_RTL_RSN_WT_YN
3802 ,X_Result => Lx_Result2
3803 ,X_Return_Status => Lx_Return_Status);
3804
3805 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
3806 Lx_Result := Lx_Result2;
3807 RAISE L_EXCEP_UNEXPECTED_ERR;
3808 END IF;
3809
3810 END IF;
3811
3812 IF Lx_Result1 = G_FALSE AND Lx_Result2 = G_FALSE THEN
3813 Lx_Result := G_FALSE;
3814 RAISE L_EXCEP_NO_DATA_FOUND;
3815 ELSE
3816 Lx_Result := G_TRUE;
3817 --Lx_Return_Status := G_RET_STS_SUCCESS;
3818 END IF;
3819
3820 IF Lx_Result1 = G_TRUE THEN
3821
3822 Lx_RTL_Id := Lx_RTL_RCN_Id;
3823 Ld_RTL_Start := Ld_RTL_RCN_Start;
3824 Ld_RTL_End := Ld_RTL_RCN_End;
3825 Ld_RTL_Terminated := Ld_RTL_RCN_Terminated;
3826
3827 ELSIF Lx_Result2 = G_TRUE THEN
3828
3829 Lx_RTL_Id := Lx_RTL_RSN_Id;
3830 Ld_RTL_Start := Ld_RTL_RSN_Start;
3831 Ld_RTL_End := Ld_RTL_RSN_End;
3832 Ld_RTL_Terminated := Ld_RTL_RSN_Terminated;
3833
3834 END IF;
3835
3836 --
3837 -- Added for 12.0 Coverage Rearch project (JVARGHES)
3838 --
3839
3840 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
3841 THEN
3842
3843 Ld_RTL_Start := Ld_BPL_Start;
3844 Ld_RTL_End := Ld_BPL_End ;
3845 Ld_RTL_Terminated := Ld_BPL_Terminated;
3846
3847 END IF;
3848
3849 --
3850
3851 IF Lv_Template_YN = 'N' THEN -- for default coverage functionality
3852
3853 Get_Effective_End_Date
3854 (P_Start_Date => Ld_RTL_Start
3855 ,P_End_Date => Ld_RTL_End
3856 ,P_Termination_Date => Ld_RTL_Terminated
3857 ,P_EndDate_Required => G_FALSE
3858 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3859 ,P_ExcepionMsg => 'Reaction/Resolution Time Line'
3860 ,X_EffEnd_Date => Ld_RTL_EffEnd_Date
3861 ,X_Result => Lx_Result
3862 ,X_Return_Status => Lx_Return_Status);
3863
3864 IF Lx_Result <> G_TRUE THEN
3865 RAISE L_EXCEP_NULL_VALUE;
3866 END IF;
3867
3868 Validate_Effectivity
3869 (P_Request_Date => Ld_TzCont_Req_Date
3870 ,P_Start_DateTime => Ld_RTL_Start
3871 ,P_End_DateTime => Ld_RTL_EffEnd_Date
3872 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3873 ,P_CL_Msg_TokenValue => 'Reaction/Resolution Time Line'
3874 ,X_Result => Lx_Result
3875 ,X_Return_Status => Lx_Return_Status);
3876
3877 IF Lx_Result <> G_TRUE THEN
3878 RAISE L_EXCEP_NOT_EFFECTIVE;
3879 END IF;
3880
3881 Get_Cont_Effective_Dates
3882 (P_SVL_Start => Ld_SVL_Start
3883 ,P_SVL_End => Ld_SVL_EffEnd_Date
3884 ,P_CVL_Start => Ld_CVL_Start
3885 ,P_CVL_End => Ld_CVL_EffEnd_Date
3886 ,P_BPL_Start => Ld_BPL_Start
3887 ,P_BPL_End => Ld_BPL_EffEnd_Date
3888 ,P_RTL_Start => Ld_RTL_Start
3889 ,P_RTL_End => Ld_RTL_EffEnd_Date
3890 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3891 ,X_Cont_EffStart => Ld_Cont_EffStart
3892 ,X_Cont_EffEnd => Ld_Cont_EffEnd
3893 ,X_Result => Lx_Result
3894 ,X_Return_Status => Lx_Return_Status);
3895
3896 IF Lx_Result <> G_TRUE THEN
3897 RAISE L_EXCEP_NOT_EFFECTIVE;
3898 END IF;
3899
3900 END IF;
3901
3902 -- to include multiple time zones enhancement and architecture changes in 11.5.10
3903 -- Lx_BP_CVTRule_Id is replaced by Lx_Use_TZE_Line_Id
3904
3905 Get_BP_Cover_Times
3906 (P_BP_CVTLine_Id => Lx_Use_TZE_Line_Id -- Lx_BP_CVTRule_Id
3907 ,P_Request_Date => Ld_TzCont_Req_Date
3908 ,P_CovDay_DispFmt => 'DY'
3909 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3910 ,X_BP_CovTimes => Lx_BP_CovTimes
3911 ,X_Result => Lx_Result
3912 ,X_Return_Status => Lx_Return_Status);
3913
3914 IF Lx_Result <> G_TRUE THEN
3915 RAISE L_EXCEP_NO_DATA_FOUND;
3916 END IF;
3917
3918 --**Push Requset date to Next available Cover Day and Time.
3919
3920 IF Lx_RTL_RCN_Line_Id IS NOT NULL THEN
3921
3922 Get_BP_Reaction_Times
3923 (P_RTL_Line_Id => Lx_RTL_RCN_Line_Id -- P_RTL_Rule_Id => Lx_RTL_RCN_Rule_Id-- 11.5.10 changes
3924 ,P_Request_Date => Ld_TzCont_Req_Date
3925 ,P_TimeType_Category => 'RCN' -- 11.5.10 new addition
3926 ,P_ReactDay_DispFmt => 'DY'
3927 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3928 ,X_Reaction_Attribs => Lx_Reaction_Attribs
3929 ,X_Result => Lx_Result3
3930 ,X_Return_Status => Lx_Return_Status);
3931
3932
3933 IF Lx_Result3 = G_TRUE THEN
3934
3935 Compute_React_By_DateTime
3936 (P_Request_DateTime => Ld_TzCont_Req_Date
3937 ,P_Cover_EffStart => Ld_Cont_EffStart
3938 ,P_Cover_EffEnd => Ld_Cont_EffEnd
3939 ,P_BP_Work_Through => Lx_RTL_RCN_WT_YN
3940 ,P_BP_Cover_Times => Lx_BP_CovTimes
3941 ,P_Reaction_Attribs => Lx_Reaction_Attribs
3942 ,P_Option => Lv_Option
3943 ,P_Template_YN => Lv_template_YN -- default coverage
3944 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
3945 ,X_React_Durn => Lx_React_Durn
3946 ,X_React_UOM => Lx_React_UOM
3947 ,X_React_Day => Lv_React_Day
3948 ,X_React_By_DateTime => Ld_React_By_DateTime
3949 ,X_React_Start_DateTime => Ld_React_Start_DateTime
3950 ,X_Result => Lx_Result
3951 ,X_Return_Status => Lx_Return_Status);
3952
3953 IF Lx_Result <> G_TRUE THEN
3954 RAISE L_EXCEP_NO_DATA_FOUND;
3955 END IF;
3956
3957 --
3958 -- Commented out for 12.0 ENT-TZ project (JVARGHES)
3959 --
3960 -- IF Lx_TZE_Mtch_Exists = 'N' then -- 11.5.10 multiple time zone enhancement
3961 --
3962 -- Convert_TimeZone
3963 -- (P_API_Version => P_API_Version
3964 -- ,P_Init_Msg_List => P_Init_Msg_List
3965 -- ,P_Source_Date => Ld_React_By_DateTime
3966 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
3967 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
3968 -- ,X_Dest_Date => Ld_TZ_React_By_DateTime
3969 -- ,X_Msg_Count => X_Msg_count
3970 -- ,X_Msg_Data => X_Msg_Data
3971 -- ,X_Return_Status => Lx_Return_Status);
3972 --
3973 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
3974 -- RAISE L_EXCEP_NO_DATA_FOUND;
3975 -- END IF;
3976 --
3977 -- Convert_TimeZone
3978 -- (P_API_Version => P_API_Version
3979 -- ,P_Init_Msg_List => P_Init_Msg_List
3980 -- ,P_Source_Date => Ld_React_Start_DateTime
3981 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
3982 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
3983 -- ,X_Dest_Date => Ld_TZ_React_Start_DateTime
3984 -- ,X_Msg_Count => X_Msg_count
3985 -- ,X_Msg_Data => X_Msg_Data
3986 -- ,X_Return_Status => Lx_Return_Status);
3987 --
3988 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
3989 -- RAISE L_EXCEP_NO_DATA_FOUND;
3990 -- END IF;
3991 --
3992 -- ELSE -- 11.5.10 multiple time zone enhancement
3993 --
3994 -- Ld_TZ_React_Start_DateTime := Ld_React_Start_DateTime;
3995 -- Ld_TZ_React_By_DateTime := Ld_React_By_DateTime;
3996 --
3997 -- END IF;
3998 --
3999 -- Added for 12.0 ENT-TZ project (JVARGHES)
4000 --
4001
4002 IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11) THEN
4003
4004 Ld_TZ_React_By_DateTime := Ld_React_By_DateTime;
4005 Ld_TZ_React_Start_DateTime := Ld_React_Start_DateTime;
4006
4007 ELSE
4008
4009 Convert_TimeZone
4010 (P_API_Version => P_API_Version
4011 ,P_Init_Msg_List => P_Init_Msg_List
4012 ,P_Source_Date => Ld_React_By_DateTime
4013 ,P_Source_Tz_Id => ln_CovTZ
4014 ,P_Dest_Tz_Id => ln_Param_DatesTZ
4015 ,X_Dest_Date => Ld_TZ_React_By_DateTime
4016 ,X_Msg_Count => X_Msg_count
4017 ,X_Msg_Data => X_Msg_Data
4018 ,X_Return_Status => Lx_Return_Status);
4019
4020 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4021 RAISE L_EXCEP_NO_DATA_FOUND;
4022 END IF;
4023
4024 Convert_TimeZone
4025 (P_API_Version => P_API_Version
4026 ,P_Init_Msg_List => P_Init_Msg_List
4027 ,P_Source_Date => Ld_React_Start_DateTime
4028 ,P_Source_Tz_Id => ln_CovTZ
4029 ,P_Dest_Tz_Id => ln_Param_DatesTZ
4030 ,X_Dest_Date => Ld_TZ_React_Start_DateTime
4031 ,X_Msg_Count => X_Msg_count
4032 ,X_Msg_Data => X_Msg_Data
4033 ,X_Return_Status => Lx_Return_Status);
4034
4035 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4036 RAISE L_EXCEP_NO_DATA_FOUND;
4037 END IF;
4038
4039 END IF;
4040
4041 --
4042 --
4043
4044 ELSE
4045
4046 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
4047 RAISE L_EXCEP_UNEXPECTED_ERR;
4048 END IF;
4049
4050 END IF;
4051
4052 END IF;
4053
4054 IF Lx_RTL_RSN_Line_Id IS NOT NULL THEN
4055
4056 Get_BP_Reaction_Times
4057 (P_RTL_Line_Id => Lx_RTL_RSN_Line_Id -- P_RTL_Rule_Id => Lx_RTL_RSN_Rule_Id -- 11.5.10 changes
4058 ,P_Request_Date => Ld_TzCont_Req_Date
4059 ,P_TimeType_Category => 'RSN' -- 11.5.10 new addition
4060 ,P_ReactDay_DispFmt => 'DY'
4061 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4062 ,X_Reaction_Attribs => Lx_Resolution_Attribs
4063 ,X_Result => Lx_Result4
4064 ,X_Return_Status => Lx_Return_Status);
4065
4066 IF Lx_Result4 = G_TRUE THEN
4067
4068 Compute_React_By_DateTime
4069 (P_Request_DateTime => Ld_TzCont_Req_Date
4070 ,P_Cover_EffStart => Ld_Cont_EffStart
4071 ,P_Cover_EffEnd => Ld_Cont_EffEnd
4072 ,P_BP_Work_Through => Lx_RTL_RSN_WT_YN
4073 ,P_BP_Cover_Times => Lx_BP_CovTimes
4074 ,P_Reaction_Attribs => Lx_Resolution_Attribs
4075 ,P_Option => Lv_Option
4076 ,P_Template_YN => Lv_template_YN -- default coverage
4077 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4078 ,X_React_Durn => Lx_Resolve_Durn
4079 ,X_React_UOM => Lx_Resolve_UOM
4080 ,X_React_Day => Lv_Resolve_Day
4081 ,X_React_By_DateTime => Ld_Resolve_By_DateTime
4082 ,X_React_Start_DateTime => Ld_Resolve_Start_DateTime
4083 ,X_Result => Lx_Result
4084 ,X_Return_Status => Lx_Return_Status);
4085
4086 IF Lx_Result <> G_TRUE THEN
4087 RAISE L_EXCEP_NO_DATA_FOUND;
4088 END IF;
4089
4090
4091 --
4092 -- Commented out for 12.0 ENT-TZ project (JVARGHES)
4093 --
4094 --
4095 -- IF Lx_TZE_Mtch_Exists = 'N' then -- 11.5.10 multiple time zone enhancement
4096 --
4097 -- Convert_TimeZone
4098 -- (P_API_Version => P_API_Version
4099 -- ,P_Init_Msg_List => P_Init_Msg_List
4100 -- ,P_Source_Date => Ld_Resolve_By_DateTime
4101 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
4102 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
4103 -- ,X_Dest_Date => Ld_TZ_Resolve_By_DateTime
4104 -- ,X_Msg_Count => X_Msg_count
4105 -- ,X_Msg_Data => X_Msg_Data
4106 -- ,X_Return_Status => Lx_Return_Status);
4107 --
4108 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4109 -- RAISE L_EXCEP_NO_DATA_FOUND;
4110 -- END IF;
4111 --
4112 -- Convert_TimeZone
4113 -- (P_API_Version => P_API_Version
4114 -- ,P_Init_Msg_List => P_Init_Msg_List
4115 -- ,P_Source_Date => Ld_Resolve_Start_DateTime
4116 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
4117 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
4118 -- ,X_Dest_Date => Ld_TZ_Resolve_Start_DateTime
4119 -- ,X_Msg_Count => X_Msg_count
4120 -- ,X_Msg_Data => X_Msg_Data
4121 -- ,X_Return_Status => Lx_Return_Status);
4122 --
4123 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4124 -- RAISE L_EXCEP_NO_DATA_FOUND;
4125 -- END IF;
4126 --
4127 -- ELSE -- 11.5.10 multiple time zone enhancement
4128 --
4129 -- Ld_TZ_Resolve_Start_DateTime := Ld_Resolve_Start_DateTime;
4130 -- Ld_TZ_Resolve_By_DateTime := Ld_Resolve_By_DateTime;
4131 --
4132 -- END IF;
4133 --
4134 --
4135 -- Added for 12.0 ENT-TZ project (JVARGHES)
4136 --
4137
4138 IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11) THEN
4139
4140 Ld_TZ_Resolve_By_DateTime := Ld_Resolve_By_DateTime;
4141 Ld_TZ_Resolve_Start_DateTime := Ld_Resolve_Start_DateTime;
4142
4143
4144 ELSE
4145
4146 Convert_TimeZone
4147 (P_API_Version => P_API_Version
4148 ,P_Init_Msg_List => P_Init_Msg_List
4149 ,P_Source_Date => Ld_Resolve_By_DateTime
4150 ,P_Source_Tz_Id => ln_CovTZ
4151 ,P_Dest_Tz_Id => ln_Param_DatesTZ
4152 ,X_Dest_Date => Ld_TZ_Resolve_By_DateTime
4153 ,X_Msg_Count => X_Msg_count
4154 ,X_Msg_Data => X_Msg_Data
4155 ,X_Return_Status => Lx_Return_Status);
4156
4157 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4158 RAISE L_EXCEP_NO_DATA_FOUND;
4159 END IF;
4160
4161 Convert_TimeZone
4162 (P_API_Version => P_API_Version
4163 ,P_Init_Msg_List => P_Init_Msg_List
4164 ,P_Source_Date => Ld_Resolve_Start_DateTime
4165 ,P_Source_Tz_Id => ln_CovTZ
4166 ,P_Dest_Tz_Id => ln_Param_DatesTZ
4167 ,X_Dest_Date => Ld_TZ_Resolve_Start_DateTime
4168 ,X_Msg_Count => X_Msg_count
4169 ,X_Msg_Data => X_Msg_Data
4170 ,X_Return_Status => Lx_Return_Status);
4171
4172 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4173 RAISE L_EXCEP_NO_DATA_FOUND;
4174 END IF;
4175
4176 END IF;
4177
4178 --
4179 --
4180 ELSE
4181
4182 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
4183 RAISE L_EXCEP_UNEXPECTED_ERR;
4184 END IF;
4185
4186 END IF;
4187
4188 END IF;
4189
4190 IF Lx_Result3 = G_FALSE AND Lx_Result4 = G_FALSE THEN
4191 Lx_Result := G_FALSE;
4192 RAISE L_EXCEP_NO_DATA_FOUND;
4193 END IF;
4194
4195 X_React_Durn := Lx_React_Durn;
4196 X_React_UOM := Lx_React_UOM;
4197 X_React_Day := Lv_React_Day;
4198 X_React_By_DateTime := Ld_TZ_React_By_DateTime;
4199 X_React_Start_DateTime := Ld_TZ_React_Start_DateTime;
4200
4201 X_Resolve_Durn := Lx_Resolve_Durn;
4202 X_Resolve_UOM := Lx_Resolve_UOM;
4203 X_Resolve_Day := Lv_Resolve_Day;
4204 X_Resolve_By_DateTime := Ld_TZ_Resolve_By_DateTime;
4205 X_Resolve_Start_DateTime := Ld_TZ_Resolve_Start_DateTime;
4206
4207 X_Result := Lx_Result;
4208 X_Return_Status := Lx_Return_Status;
4209
4210 EXCEPTION
4211
4212 WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_NO_DATA_FOUND OR L_EXCEP_NOT_EFFECTIVE OR L_EXCEP_UNEXPECTED_ERR THEN
4213
4214 X_Result := Lx_Result;
4215 X_Return_Status := Lx_Return_Status;
4216
4217 WHEN OTHERS THEN
4218
4219 OKC_API.SET_MESSAGE
4220 (P_App_Name => G_APP_NAME_OKC
4221 ,P_Msg_Name => G_UNEXPECTED_ERROR
4222 ,P_Token1 => G_SQLCODE_TOKEN
4223 ,P_Token1_Value => SQLCODE
4224 ,P_Token2 => G_SQLERRM_TOKEN
4225 ,P_Token2_Value => SQLERRM);
4226
4227 OKC_API.SET_MESSAGE
4228 (P_App_Name => G_APP_NAME_OKC
4229 ,P_Msg_Name => G_DEBUG_TOKEN
4230 ,P_Token1 => G_PACKAGE_TOKEN
4231 ,P_Token1_Value => G_PKG_NAME
4232 ,P_Token2 => G_PROGRAM_TOKEN
4233 ,P_Token2_Value => 'Get_ReactResol_By_DateTime');
4234
4235 X_Result := G_FALSE;
4236 X_Return_Status := G_RET_STS_UNEXP_ERROR;
4237
4238 END Get_ReactResol_By_DateTime;
4239
4240 -----------------------------------------------------------------------------------------------------------------------*
4241
4242 PROCEDURE Check_Reaction_Times
4243 (P_API_Version IN NUMBER
4244 ,P_Init_Msg_List IN VARCHAR2
4245 ,P_Business_Process_Id IN NUMBER
4246 ,P_Request_Date IN DATE
4247 ,P_Sr_Severity IN NUMBER
4248 ,P_Time_Zone_Id IN NUMBER
4249 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
4250 ,P_Contract_Line_Id IN NUMBER
4251 ,X_Return_Status OUT NOCOPY VARCHAR2
4252 ,X_Msg_Count OUT NOCOPY NUMBER
4253 ,X_Msg_Data OUT NOCOPY VARCHAR2
4254 ,X_React_Within OUT NOCOPY NUMBER
4255 ,X_React_TUOM OUT NOCOPY VARCHAR2
4256 ,X_React_By_Date OUT NOCOPY DATE)
4257 IS
4258
4259 Lv_React_Day VARCHAR2(20);
4260 Ld_React_Start_DateTime DATE;
4261
4262 Lx_Resolve_Durn Gx_ReactDurn;
4263 Lx_Resolve_UOM Gx_ReactUOM;
4264 Lv_Resolve_Day VARCHAR2(20);
4265 Ld_Resolve_By_DateTime DATE;
4266 Ld_Resolve_Start_DateTime DATE;
4267
4268 Lx_Result Gx_Boolean;
4269
4270 BEGIN
4271
4272 Lx_Result := G_TRUE;
4273
4274 Get_ReactResol_By_DateTime
4275 (P_API_Version => P_API_Version
4276 ,P_Init_Msg_List => P_Init_Msg_List
4277 ,P_SVL_Id => P_Contract_Line_Id
4278 ,P_BusiProc_Id => P_Business_Process_Id
4279 ,P_Severity_Id => P_Sr_Severity
4280 ,P_Request_Date => P_Request_Date
4281 ,P_Request_TZone_id => P_Time_Zone_Id
4282 ,P_Dates_In_Input_TZ => P_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
4283 ,P_template_YN => 'N'
4284 ,P_Option => G_FIRST
4285 ,P_Rcn_Rsn_Flag => G_RUL_CATEGORY_REACTION
4286 ,P_Set_ExcepionStack => G_TRUE
4287 ,X_React_Durn => X_React_Within
4288 ,X_React_UOM => X_React_TUOM
4289 ,X_React_Day => Lv_React_Day
4290 ,X_React_By_DateTime => X_React_By_Date
4291 ,X_React_Start_DateTime => Ld_React_Start_DateTime
4292 ,X_Resolve_Durn => Lx_Resolve_Durn
4293 ,X_Resolve_UOM => Lx_Resolve_UOM
4294 ,X_Resolve_Day => Lv_Resolve_Day
4295 ,X_Resolve_By_DateTime => Ld_Resolve_By_DateTime
4296 ,X_Resolve_Start_DateTime => Ld_Resolve_Start_DateTime
4297 ,X_Msg_count => X_Msg_Count
4298 ,X_Msg_Data => X_Msg_Data
4299 ,X_Result => Lx_Result
4300 ,X_Return_Status => X_Return_Status);
4301
4302 EXCEPTION
4303
4304 WHEN OTHERS THEN
4305
4306 OKC_API.SET_MESSAGE
4307 (P_App_Name => G_APP_NAME_OKC
4308 ,P_Msg_Name => G_UNEXPECTED_ERROR
4309 ,P_Token1 => G_SQLCODE_TOKEN
4310 ,P_Token1_Value => SQLCODE
4311 ,P_Token2 => G_SQLERRM_TOKEN
4312 ,P_Token2_Value => SQLERRM);
4313
4314 OKC_API.SET_MESSAGE
4315 (P_App_Name => G_APP_NAME_OKC
4316 ,P_Msg_Name => G_DEBUG_TOKEN
4317 ,P_Token1 => G_PACKAGE_TOKEN
4318 ,P_Token1_Value => G_PKG_NAME
4319 ,P_Token2 => G_PROGRAM_TOKEN
4320 ,P_Token2_Value => 'Check_Reaction_Times');
4321
4322 X_Return_Status := G_RET_STS_UNEXP_ERROR;
4323
4324 END Check_Reaction_Times;
4325
4326 -----------------------------------------------------------------------------------------------------------------------*
4327
4328 PROCEDURE get_react_resolve_by_time
4329 (p_api_version in number
4330 ,p_init_msg_list in varchar2
4331 ,p_inp_rec in grt_inp_rec_type
4332 ,x_return_status out nocopy varchar2
4333 ,x_msg_count out nocopy number
4334 ,x_msg_data out nocopy varchar2
4335 ,x_react_rec out nocopy rcn_rsn_rec_type
4336 ,x_resolve_rec out nocopy rcn_rsn_rec_type)
4337
4338 IS
4339
4340 Lx_SVL_Id CONSTANT Gx_OKS_Id := p_inp_rec.Contract_Line_Id;
4341 Lx_BusiProc_Id CONSTANT Gx_BusProcess_Id := p_inp_rec.Business_Process_Id;
4342 Lx_Severity_Id CONSTANT Gx_Severity_Id := p_inp_rec.Severity_id;
4343 Ld_Request_Date CONSTANT DATE := nvl(p_inp_rec.Request_Date,sysdate);
4344 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := p_inp_rec.Time_Zone_Id;
4345 Lx_ReactReso_ObjCode CONSTANT Gx_JTOT_ObjCode := G_JTOT_OBJ_REACTIME;
4346 Lx_ReactReso_Category CONSTANT Gx_Rule_Category := p_inp_rec.category_rcn_rsn;
4347 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := G_TRUE;
4348 Lv_Option CONSTANT VARCHAR2(10) := p_inp_rec.compute_option;
4349
4350 Lx_React_Durn Gx_ReactDurn;
4351 Lx_React_UOM Gx_ReactUOM;
4352 Lv_React_Day VARCHAR2(9);
4353 Ld_React_By_DateTime DATE;
4354 Ld_React_Start_DateTime DATE;
4355
4356 Lx_Resol_Durn Gx_ReactDurn;
4357 Lx_Resol_UOM Gx_ReactUOM;
4358 Lv_Resol_Day VARCHAR2(9);
4359 Ld_Resol_By_DateTime DATE;
4360 Ld_Resol_Start_DateTime DATE;
4361
4362 Lx_Result Gx_Boolean;
4363 Lx_Return_Status Gx_Ret_Sts;
4364
4365 -- Added for 12.0 ENT-TZ project (JVARGHES)
4366
4367 Lv_Dates_In_Input_TZ CONSTANT VARCHAR2(1) := p_inp_rec.Dates_In_Input_TZ;
4368 --
4369
4370 BEGIN
4371
4372 Lx_Result := G_TRUE;
4373 Lx_Return_Status := G_RET_STS_SUCCESS;
4374
4375 Get_ReactResol_By_DateTime
4376 (P_API_Version => P_API_Version
4377 ,P_Init_Msg_List => P_Init_Msg_List
4378 ,P_SVL_Id => Lx_SVL_Id
4379 ,P_BusiProc_Id => Lx_BusiProc_Id
4380 ,P_Severity_Id => Lx_Severity_Id
4381 ,P_Request_Date => Ld_Request_Date
4382 ,P_Request_TZone_Id => Lx_Request_TZone_Id
4383 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
4384 ,P_template_YN => 'N'
4385 ,P_Option => Lv_Option
4386 ,P_Rcn_Rsn_Flag => Lx_ReactReso_Category
4387 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4388 ,X_React_Durn => Lx_React_Durn
4389 ,X_React_UOM => Lx_React_UOM
4390 ,X_React_Day => Lv_React_Day
4391 ,X_React_By_DateTime => Ld_React_By_DateTime
4392 ,X_React_Start_DateTime => Ld_React_Start_DateTime
4393 ,X_Resolve_Durn => Lx_Resol_Durn
4394 ,X_Resolve_UOM => Lx_Resol_UOM
4395 ,X_Resolve_Day => Lv_Resol_Day
4396 ,X_Resolve_By_DateTime => Ld_Resol_By_DateTime
4397 ,X_Resolve_Start_DateTime => Ld_Resol_Start_DateTime
4398 ,X_Msg_count => X_Msg_Count
4399 ,X_Msg_Data => X_Msg_Data
4400 ,X_Result => Lx_Result
4401 ,X_Return_Status => Lx_Return_Status);
4402
4403 x_react_rec.duration := Lx_React_Durn;
4404 x_react_rec.uom := Lx_React_UOM;
4405 x_react_rec.by_date_start := Ld_React_Start_DateTime;
4406 x_react_rec.by_date_end := Ld_React_By_DateTime;
4407
4408 x_resolve_rec.duration := Lx_Resol_Durn;
4409 x_resolve_rec.uom := Lx_Resol_UOM;
4410 x_resolve_rec.by_date_start := Ld_Resol_Start_DateTime;
4411 x_resolve_rec.by_date_end := Ld_Resol_By_DateTime;
4412
4413 x_return_status := Lx_Return_Status;
4414
4415 EXCEPTION
4416
4417 WHEN OTHERS THEN
4418
4419 OKC_API.SET_MESSAGE
4420 (P_App_Name => G_APP_NAME_OKC
4421 ,P_Msg_Name => G_UNEXPECTED_ERROR
4422 ,P_Token1 => G_SQLCODE_TOKEN
4423 ,P_Token1_Value => SQLCODE
4424 ,P_Token2 => G_SQLERRM_TOKEN
4425 ,P_Token2_Value => SQLERRM);
4426
4427 OKC_API.SET_MESSAGE
4428 (P_App_Name => G_APP_NAME_OKC
4429 ,P_Msg_Name => G_DEBUG_TOKEN
4430 ,P_Token1 => G_PACKAGE_TOKEN
4431 ,P_Token1_Value => G_PKG_NAME
4432 ,P_Token2 => G_PROGRAM_TOKEN
4433 ,P_Token2_Value => 'get_react_resolve_by_time');
4434
4435 X_Return_Status := G_RET_STS_UNEXP_ERROR;
4436
4437 END get_react_resolve_by_time;
4438
4439 -----------------------------------------------------------------------------------------------------------------------*
4440
4441 PROCEDURE Validate_Required_CT_Tokens
4442 (P_SVL_Id IN Gx_OKS_Id
4443 ,P_BusiProc_Id IN Gx_BusProcess_Id
4444 ,P_Request_Date IN DATE
4445 ,P_Request_TZone_id IN Gx_TimeZoneId
4446 ,P_Set_ExcepionStack IN Gx_Boolean
4447 ,X_Result out nocopy Gx_Boolean
4448 ,X_Return_Status out nocopy Gx_Ret_Sts)
4449 IS
4450
4451 Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
4452 Lx_BusiProc_id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
4453 Ld_Request_Date DATE;
4454 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
4455 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
4456
4457 Lx_Result Gx_Boolean;
4458 Lx_Return_Status Gx_Ret_Sts;
4459
4460 L_EXCEP_NULL_VALUE EXCEPTION;
4461
4462 BEGIN
4463
4464 Ld_Request_Date := nvl(P_Request_Date,sysdate);
4465
4466 Lx_Result := G_TRUE;
4467 Lx_Return_Status := G_RET_STS_SUCCESS;
4468
4469 Validate_Required_NumValue
4470 (P_Num_Value => Lx_SVL_Id
4471 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4472 ,P_ExcepionMsg => 'Contract Line'
4473 ,X_Result => Lx_result
4474 ,X_Return_Status => Lx_Return_Status);
4475
4476 IF Lx_result <> G_TRUE THEN
4477 RAISE L_EXCEP_NULL_VALUE;
4478 END IF;
4479
4480 Validate_Required_NumValue
4481 (P_Num_Value => Lx_BusiProc_Id
4482 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4483 ,P_ExcepionMsg => 'Business Process'
4484 ,X_Result => Lx_result
4485 ,X_Return_Status => Lx_Return_Status);
4486
4487 IF Lx_result <> G_TRUE THEN
4488 RAISE L_EXCEP_NULL_VALUE;
4489 END IF;
4490
4491 Validate_Required_NumValue
4492 (P_Num_Value => Lx_Request_TZone_Id
4493 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4494 ,P_ExcepionMsg => 'Time Zone'
4495 ,X_Result => Lx_result
4496 ,X_Return_Status => Lx_Return_Status);
4497
4498 IF Lx_result <> G_TRUE THEN
4499 RAISE L_EXCEP_NULL_VALUE;
4500 END IF;
4501
4502 Validate_Required_DateValue
4503 (P_Date_Value => Ld_Request_Date
4504 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4505 ,P_ExcepionMsg => 'Request Date'
4506 ,X_Result => Lx_result
4507 ,X_Return_Status => Lx_Return_Status);
4508
4509 IF Lx_result <> G_TRUE THEN
4510 RAISE L_EXCEP_NULL_VALUE;
4511 END IF;
4512
4513 X_Result := Lx_Result;
4514 X_Return_Status := Lx_Return_Status;
4515
4516 EXCEPTION
4517
4518 WHEN L_EXCEP_NULL_VALUE THEN
4519
4520 X_Result := Lx_Result;
4521 X_Return_Status := Lx_Return_Status;
4522
4523 WHEN OTHERS THEN
4524
4525 OKC_API.SET_MESSAGE
4526 (P_App_Name => G_APP_NAME_OKC
4527 ,P_Msg_Name => G_UNEXPECTED_ERROR
4528 ,P_Token1 => G_SQLCODE_TOKEN
4529 ,P_Token1_Value => SQLCODE
4530 ,P_Token2 => G_SQLERRM_TOKEN
4531 ,P_Token2_Value => SQLERRM);
4532
4533 OKC_API.SET_MESSAGE
4534 (P_App_Name => G_APP_NAME_OKC
4535 ,P_Msg_Name => G_DEBUG_TOKEN
4536 ,P_Token1 => G_PACKAGE_TOKEN
4537 ,P_Token1_Value => G_PKG_NAME
4538 ,P_Token2 => G_PROGRAM_TOKEN
4539 ,P_Token2_Value => 'Validate_Required_CT_Tokens');
4540
4541 X_Result := G_FALSE;
4542 X_Return_Status := G_RET_STS_UNEXP_ERROR;
4543
4544 END Validate_Required_CT_Tokens;
4545
4546 -----------------------------------------------------------------------------------------------------------------------*
4547
4548 PROCEDURE Get_Coverage_Times
4549 (P_API_Version IN NUMBER
4550 ,P_Init_Msg_List IN VARCHAR2
4551 ,P_SVL_Id IN Gx_OKS_Id
4552 ,P_BusiProc_Id IN Gx_BusProcess_Id
4553 ,P_Request_Date IN DATE
4554 ,P_Request_TZone_id IN Gx_TimeZoneId
4555 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
4556 ,P_Set_ExcepionStack IN Gx_Boolean
4557 ,X_Day_Cover_From out nocopy DATE
4558 ,X_Day_Cover_To out nocopy DATE
4559 ,X_Covered out nocopy Gx_Boolean
4560 ,X_Msg_count OUT NOCOPY NUMBER
4561 ,X_Msg_data OUT NOCOPY VARCHAR2
4562 ,X_Result out nocopy Gx_Boolean
4563 ,X_Return_Status out nocopy Gx_Ret_Sts)
4564 IS
4565
4566
4567 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
4568
4569 CURSOR Get_Cov_Timezones(P_BPL_Id in number) IS
4570 select oct.id,
4571 oct.timezone_id,
4572 oct.default_yn,
4573 okslb.APPLY_DEFAULT_TIMEZONE
4574 from okc_k_lines_b okclb,
4575 oks_k_lines_b okslb,
4576 oks_coverage_timezones oct
4577 where okclb.id = P_BPL_Id
4578 and okslb.cle_id = okclb.id
4579 and oct.cle_id = okclb.id;
4580
4581 Lx_Use_TZE_Id number;
4582 Lx_TZE_Mtch_Exists varchar2(1);
4583 Lx_Def_TZE_Id number;
4584 Lx_Apply_Def_Tze varchar2(1);
4585 Lx_Use_TZE_Line_Id number;
4586 Lx_Def_TZE_Line_Id number;
4587
4588 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
4589
4590 Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
4591 Lx_BusiProc_Id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
4592 Ld_Request_Date DATE;
4593 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
4594 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
4595 Lv_Check_Day VARCHAR2(1);
4596
4597 Lv_Day_Cover_Tbl Day_Cover_Tbl; -- 11.5.10 mutiple time zone changes
4598 Lv_DayCov_Idx BINARY_INTEGER; -- 11.5.10 mutiple time zone changes
4599
4600
4601 Lv_Day_Cover_From VARCHAR2(25);
4602 Lv_Day_Cover_To VARCHAR2(25);
4603
4604 Ld_Day_Cover_From DATE;
4605 Ld_Day_Cover_To DATE;
4606 Ld_Day_Cover_EffFrom DATE;
4607 Ld_Day_Cover_EffTo DATE;
4608
4609 Ld_Tz_Day_Cover_From DATE;
4610 Ld_Tz_Day_Cover_To DATE;
4611
4612 Lx_Covered Gx_Boolean;
4613
4614 Lx_Result Gx_Boolean;
4615 Lx_Return_Status Gx_Ret_Sts;
4616
4617 Ld_SVL_Start DATE;
4618 Ld_SVL_End DATE;
4619 Ld_SVL_Terminated DATE;
4620 Ld_SVL_EffEnd_Date DATE;
4621
4622 Lx_CVL_Id Gx_OKS_Id;
4623 Ld_CVL_Start DATE;
4624 Ld_CVL_End DATE;
4625 Ld_CVL_Terminated DATE;
4626 Ld_CVL_EffEnd_Date DATE;
4627
4628 Lx_BPL_Id Gx_OKS_Id;
4629 Ld_BPL_Start DATE;
4630 Ld_BPL_End DATE;
4631 Ld_BPL_Terminated DATE;
4632 Ld_BPL_EffEnd_Date DATE;
4633
4634 -- Lx_BP_CVTRule_Id Gx_Rule_Id;
4635 Lx_BP_Tz_Id Gx_TimeZoneId;
4636 Ld_TzCont_Req_Date DATE;
4637 Li_TzCont_Req_Date INTEGER(1);
4638
4639 Ld_Cont_EffStart DATE;
4640 Ld_Cont_EffEnd DATE;
4641
4642 Lx_BP_CovTimes GT_Bp_CoverTimes;
4643
4644 Lx_ExcepionMsg Gx_ExceptionMsg;
4645
4646 L_EXCEP_NULL_VALUE EXCEPTION;
4647 L_EXCEP_NO_DATA_FOUND EXCEPTION;
4648 L_EXCEP_NOT_EFFECTIVE EXCEPTION;
4649 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
4650 L_EXCEP_NO_DAY_COVER EXCEPTION;
4651
4652 -- Added for 12.0 ENT-TZ project (JVARGHES)
4653
4654 ln_Param_DatesTZ NUMBER;
4655 ln_CovTZ NUMBER;
4656
4657 -- Added for 12.0 Coverage Rearch project (JVARGHES)
4658
4659 Lv_Std_Cov_YN VARCHAR2(10);
4660 Ld_BPL_OFS_Start DATE;
4661 Ln_BPL_OFS_Duration NUMBER;
4662 Lv_BPL_OFS_UOM VARCHAR2(100);
4663 --
4664
4665 BEGIN
4666
4667 Ld_Request_Date := nvl(P_Request_Date,sysdate);
4668 Lv_Check_Day := 'N';
4669
4670 Lx_Result := G_TRUE;
4671 Lx_Return_Status := G_RET_STS_SUCCESS;
4672
4673 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
4674
4675 Validate_Required_CT_Tokens
4676 (P_SVL_Id => Lx_SVL_Id
4677 ,P_BusiProc_Id => Lx_BusiProc_id
4678 ,P_Request_Date => Ld_Request_Date
4679 ,P_Request_TZone_id => Lx_Request_TZone_Id
4680 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4681 ,X_Result => Lx_Result
4682 ,X_Return_Status => Lx_Return_Status);
4683
4684 IF Lx_Result <> G_TRUE THEN
4685 RAISE L_EXCEP_NULL_VALUE;
4686 END IF;
4687
4688 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
4689 --
4690 -- Validate_Service_Line
4691 -- (P_SVL_Id => Lx_SVL_Id
4692 -- ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4693 -- ,X_SVL_Start => Ld_SVL_Start
4694 -- ,X_SVL_End => Ld_SVL_End
4695 -- ,X_SVL_Terminated => Ld_SVL_Terminated
4696 -- ,X_Result => Lx_Result
4697 -- ,X_Return_Status => Lx_Return_Status);
4698 --
4699 -- Added for 12.0 Coverage Rearch project (JVARGHES)
4700 --
4701
4702 Validate_Service_Line
4703 (P_SVL_Id => Lx_SVL_Id
4704 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4705 ,X_CVL_Id => Lx_CVL_Id
4706 ,X_Std_Cov_YN => Lv_Std_Cov_YN
4707 ,X_SVL_Start => Ld_SVL_Start
4708 ,X_SVL_End => Ld_SVL_End
4709 ,X_SVL_Terminated => Ld_SVL_Terminated
4710 ,X_Result => Lx_Result
4711 ,X_Return_Status => Lx_Return_Status);
4712
4713 --
4714
4715 IF Lx_Result <> G_TRUE THEN
4716 RAISE L_EXCEP_NO_DATA_FOUND;
4717 END IF;
4718
4719 Get_Effective_End_Date
4720 (P_Start_Date => Ld_SVL_Start
4721 ,P_End_Date => Ld_SVL_End
4722 ,P_Termination_Date => Ld_SVL_Terminated
4723 ,P_EndDate_Required => G_TRUE
4724 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4725 ,P_ExcepionMsg => 'Service Line'
4726 ,X_EffEnd_Date => Ld_SVL_EffEnd_Date
4727 ,X_Result => Lx_Result
4728 ,X_Return_Status => Lx_Return_Status);
4729
4730
4731 IF Lx_Result <> G_TRUE THEN
4732 RAISE L_EXCEP_NULL_VALUE;
4733 END IF;
4734
4735 --
4736 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
4737 --
4738 --
4739 --Validate_Coverage_Line
4740 -- (P_SVL_Id => Lx_SVL_Id
4741 -- ,P_template_YN => 'N'
4742 -- ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4743 -- ,X_CVL_Id => Lx_CVL_Id
4744 -- ,X_CVL_Start => Ld_CVL_Start
4745 -- ,X_CVL_End => Ld_CVL_End
4746 -- ,X_CVL_Terminated => Ld_CVL_Terminated
4747 -- ,X_Result => Lx_Result
4748 -- ,X_Return_Status => Lx_Return_Status);
4749 --
4750 -- Added for 12.0 Coverage Rearch project (JVARGHES)
4751 --
4752
4753 Validate_Coverage_Line
4754 (P_CVL_Id => Lx_CVL_Id
4755 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4756 ,X_CVL_Start => Ld_CVL_Start
4757 ,X_CVL_End => Ld_CVL_End
4758 ,X_CVL_Terminated => Ld_CVL_Terminated
4759 ,X_Result => Lx_Result
4760 ,X_Return_Status => Lx_Return_Status);
4761
4762 IF Lx_Result <> G_TRUE THEN
4763 RAISE L_EXCEP_NO_DATA_FOUND;
4764 END IF;
4765
4766 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
4767 THEN
4768
4769 Ld_CVL_Start := Ld_SVL_Start;
4770 Ld_CVL_End := Ld_SVL_End;
4771 Ld_CVL_Terminated := Ld_SVL_Terminated;
4772
4773 END IF;
4774
4775 --
4776 --
4777
4778 Get_Effective_End_Date
4779 (P_Start_Date => Ld_CVL_Start
4780 ,P_End_Date => Ld_CVL_End
4781 ,P_Termination_Date => Ld_CVL_Terminated
4782 ,P_EndDate_Required => G_TRUE
4783 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4784 ,P_ExcepionMsg => 'Coverage Line'
4785 ,X_EffEnd_Date => Ld_CVL_EffEnd_Date
4786 ,X_Result => Lx_Result
4787 ,X_Return_Status => Lx_Return_Status);
4788
4789 IF Lx_Result <> G_TRUE THEN
4790 RAISE L_EXCEP_NULL_VALUE;
4791 END IF;
4792
4793 Validate_Contract_BP
4794 (P_CVL_Id => Lx_CVL_Id --P_SVL_Id => Lx_SVL_Id
4795 ,P_BP_Id => Lx_BusiProc_Id
4796 ,P_BP_ObjCode => G_JTOT_OBJ_BUSIPROC
4797 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4798 ,X_BPL_Id => Lx_BPL_Id
4799 ,X_BPL_Start => Ld_BPL_Start
4800 ,X_BPL_End => Ld_BPL_End
4801 ,X_BPL_Terminated => Ld_BPL_Terminated
4802 ,X_Result => Lx_Result
4803 ,X_Return_Status => Lx_Return_Status);
4804
4805 IF Lx_Result <> G_TRUE THEN
4806 RAISE L_EXCEP_NO_DATA_FOUND;
4807 END IF;
4808
4809 --
4810 -- Added for 12.0 Coverage Rearch project (JVARGHES)
4811 --
4812
4813 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
4814 THEN
4815
4816 Get_BP_Line_Start_Offset
4817 (P_BPL_Id => Lx_BPL_Id
4818 ,P_SVL_Start => Ld_SVL_Start
4819 ,X_BPL_OFS_Start => Ld_BPL_Start
4820 ,X_BPL_OFS_Duration => Ln_BPL_OFS_Duration
4821 ,X_BPL_OFS_UOM => Lv_BPL_OFS_UOM
4822 ,X_Return_Status => Lx_Return_Status);
4823
4824 IF X_Return_Status <> G_RET_STS_SUCCESS THEN
4825 RAISE L_EXCEP_NO_DATA_FOUND;
4826 END IF;
4827
4828 Ld_BPL_End := Ld_SVL_End;
4829 Ld_BPL_Terminated := Ld_SVL_Terminated;
4830
4831 END IF;
4832
4833 --
4834
4835 Get_Effective_End_Date
4836 (P_Start_Date => Ld_BPL_Start
4837 ,P_End_Date => Ld_BPL_End
4838 ,P_Termination_Date => Ld_BPL_Terminated
4839 ,P_EndDate_Required => G_TRUE
4840 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4841 ,P_ExcepionMsg => 'Business Process Line'
4842 ,X_EffEnd_Date => Ld_BPL_EffEnd_Date
4843 ,X_Result => Lx_Result
4844 ,X_Return_Status => Lx_Return_Status);
4845
4846 IF Lx_Result <> G_TRUE THEN
4847 RAISE L_EXCEP_NULL_VALUE;
4848 END IF;
4849
4850 ----------------------------11.5.10 select coverage time zone starts -------------------
4851
4852 Lx_Use_TZE_Id := null;
4853 Lx_TZE_Mtch_Exists := 'N';
4854 Lx_Def_TZE_Id := null;
4855 Lx_Apply_Def_Tze := null;
4856 Lx_Use_TZE_Line_Id := null;
4857 Lx_Def_TZE_Line_Id := null;
4858
4859
4860 for Cov_Timezones_rec in Get_Cov_Timezones(Lx_BPL_Id) loop
4861
4862 if Lx_Request_TZone_Id = Cov_Timezones_rec.timezone_id then
4863
4864 Lx_Use_TZE_Id := Lx_Request_TZone_Id;
4865 Lx_TZE_Mtch_Exists := 'Y';
4866 Lx_Use_TZE_Line_Id := Cov_Timezones_rec.id;
4867 exit;
4868
4869 end if;
4870
4871 if Cov_Timezones_rec.default_yn = 'Y' then
4872
4873 Lx_Def_TZE_Id := Cov_Timezones_rec.timezone_id;
4874 Lx_Def_TZE_Line_Id := Cov_Timezones_rec.id;
4875
4876 end if;
4877
4878 Lx_Apply_Def_Tze := Cov_Timezones_rec.APPLY_DEFAULT_TIMEZONE;
4879
4880 end loop;
4881
4882 if Lx_Use_TZE_Id is null then
4883
4884 if Lx_Apply_Def_Tze = 'Y' then
4885
4886 -- Lx_Use_TZE_Id := Lx_Def_TZE_Id; -- Bug# 5137665
4887 Lx_Use_TZE_Id := Lx_Request_TZone_Id;
4888 Lx_TZE_Mtch_Exists := 'Y';
4889 Lx_Use_TZE_Line_Id := Lx_Def_TZE_Line_Id;
4890 end if;
4891
4892 end if;
4893
4894 if Lx_Use_TZE_Line_Id is null then
4895
4896 Lx_Use_TZE_Line_Id := Lx_Def_TZE_Line_Id;
4897
4898 end if;
4899
4900 --
4901 -- Commented out for 12.0 ENT-TZ project (JVARGHES)
4902 --
4903 --
4904 -- if Lx_Use_TZE_Id is null then
4905 --
4906 -- Convert_TimeZone
4907 -- (P_API_Version => P_API_Version
4908 -- ,P_Init_Msg_List => P_Init_Msg_List
4909 -- ,P_Source_Date => Ld_Request_Date
4910 -- ,P_Source_Tz_Id => Lx_Request_TZone_Id
4911 -- ,P_Dest_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id --11.5.10 multiple coverage time zone enhancements
4912 -- ,X_Dest_Date => Ld_TzCont_Req_Date
4913 -- ,X_Msg_Count => X_Msg_count
4914 -- ,X_Msg_Data => X_Msg_Data
4915 -- ,X_Return_Status => Lx_Return_Status);
4916 --
4917 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4918 -- RAISE L_EXCEP_NO_DATA_FOUND;
4919 -- END IF;
4920 --
4921 -- else
4922 --
4923 -- Ld_TzCont_Req_Date := Ld_Request_Date;
4924 --
4925 -- end if;
4926 --
4927 --
4928 --
4929 -- Added for 12.0 ENT-TZ project (JVARGHES)
4930 --
4931
4932 IF NVL(P_DATES_IN_INPUT_TZ,'Y') = 'N' THEN
4933 ln_Param_DatesTZ := fnd_profile.VALUE ('SERVER_TIMEZONE_ID');
4934 ELSE
4935 ln_Param_DatesTZ := Lx_Request_TZone_id;
4936 END IF;
4937
4938 ln_CovTZ := NVL(Lx_Use_TZE_Id, Lx_Def_TZE_Id);
4939
4940 IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11) THEN
4941
4942 Ld_TzCont_Req_Date := Ld_Request_Date;
4943
4944 ELSE
4945
4946 Convert_TimeZone
4947 (P_API_Version => P_API_Version
4948 ,P_Init_Msg_List => P_Init_Msg_List
4949 ,P_Source_Date => Ld_Request_Date
4950 ,P_Source_Tz_Id => ln_Param_DatesTZ
4951 ,P_Dest_Tz_Id => ln_CovTZ
4952 ,X_Dest_Date => Ld_TzCont_Req_Date
4953 ,X_Msg_Count => X_Msg_count
4954 ,X_Msg_Data => X_Msg_Data
4955 ,X_Return_Status => Lx_Return_Status);
4956
4957 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
4958 RAISE L_EXCEP_NO_DATA_FOUND;
4959 END IF;
4960
4961 END IF;
4962
4963 --
4964 --
4965
4966 Validate_Effectivity
4967 (P_Request_Date => Ld_TzCont_Req_Date
4968 ,P_Start_DateTime => Ld_SVL_Start
4969 ,P_End_DateTime => Ld_SVL_EffEnd_Date
4970 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4971 ,P_CL_Msg_TokenValue => 'Service Line'
4972 ,X_Result => Lx_Result
4973 ,X_Return_Status => Lx_Return_Status);
4974
4975 IF Lx_Result <> G_TRUE THEN
4976 RAISE L_EXCEP_NOT_EFFECTIVE;
4977 END IF;
4978
4979 Validate_Effectivity
4980 (P_Request_Date => Ld_TzCont_Req_Date
4981 ,P_Start_DateTime => Ld_CVL_Start
4982 ,P_End_DateTime => Ld_CVL_EffEnd_Date
4983 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4984 ,P_CL_Msg_TokenValue => 'Coverage Line'
4985 ,X_Result => Lx_Result
4986 ,X_Return_Status => Lx_Return_Status);
4987
4988 IF Lx_Result <> G_TRUE THEN
4989 RAISE L_EXCEP_NOT_EFFECTIVE;
4990 END IF;
4991
4992 Validate_Effectivity
4993 (P_Request_Date => Ld_TzCont_Req_Date
4994 ,P_Start_DateTime => Ld_BPL_Start
4995 ,P_End_DateTime => Ld_BPL_EffEnd_Date
4996 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
4997 ,P_CL_Msg_TokenValue => 'Business Process Line'
4998 ,X_Result => Lx_Result
4999 ,X_Return_Status => Lx_Return_Status);
5000
5001 IF Lx_Result <> G_TRUE THEN
5002 RAISE L_EXCEP_NOT_EFFECTIVE;
5003 END IF;
5004
5005 Get_BP_Cover_Times
5006 (P_BP_CVTLine_Id => Lx_Use_TZE_Line_Id -- Lx_BP_CVTRule_Id
5007 ,P_Request_Date => Ld_TzCont_Req_Date
5008 ,P_CovDay_DispFmt => 'DY'
5009 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5010 ,X_BP_CovTimes => Lx_BP_CovTimes
5011 ,X_Result => Lx_Result
5012 ,X_Return_Status => Lx_Return_Status);
5013
5014 IF Lx_Result <> G_TRUE THEN
5015 RAISE L_EXCEP_NO_DATA_FOUND;
5016 END IF;
5017
5018
5019 Get_Cover_Day_Attribs
5020 (P_BP_CovTimes => Lx_BP_CovTimes
5021 ,P_Req_Cover_Date => Ld_TzCont_Req_Date --Li_Run_React_Day
5022 ,P_Set_ExcepionStack => G_FALSE
5023 ,P_Check_Day => Lv_Check_Day
5024 ,X_Day_Cover_tbl => Lv_Day_Cover_Tbl
5025 ,X_Result => Lx_Result
5026 ,X_Return_Status => Lx_Return_Status);
5027
5028 IF Lx_Result <> G_TRUE THEN
5029 RAISE L_EXCEP_NO_DATA_FOUND;
5030 END IF;
5031
5032 Lv_DayCov_Idx := Lv_Day_Cover_Tbl.FIRST;
5033
5034 Ld_Day_Cover_From := TO_DATE(TO_CHAR(Ld_TzCont_Req_Date,'YYYYMMDD')||Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_From,'YYYYMMDDHH24MISS');
5035 Ld_Day_Cover_To := TO_DATE(TO_CHAR(Ld_TzCont_Req_Date,'YYYYMMDD')||Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_To,'YYYYMMDDHH24MISS');
5036
5037 Get_Cont_Effective_Dates
5038 (P_SVL_Start => Ld_SVL_Start
5039 ,P_SVL_End => Ld_SVL_EffEnd_Date
5040 ,P_CVL_Start => Ld_CVL_Start
5041 ,P_CVL_End => Ld_CVL_EffEnd_Date
5042 ,P_BPL_Start => Ld_BPL_Start
5043 ,P_BPL_End => Ld_BPL_EffEnd_Date
5044 ,P_RTL_Start => NULL
5045 ,P_RTL_End => NULL
5046 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
5047 ,X_Cont_EffStart => Ld_Cont_EffStart
5048 ,X_Cont_EffEnd => Ld_Cont_EffEnd
5049 ,X_Result => Lx_Result
5050 ,X_Return_Status => Lx_Return_Status);
5051
5052 IF Lx_Result <> G_TRUE THEN
5053 RAISE L_EXCEP_NOT_EFFECTIVE;
5054 END IF;
5055
5056 IF Ld_Day_Cover_From > Ld_Cont_EffEnd THEN
5057
5058 Lx_Covered := G_FALSE;
5059 Lx_ExcepionMsg := 'Business Process - Cover Time';
5060
5061 RAISE L_EXCEP_NO_DAY_COVER;
5062
5063 ELSE
5064
5065 IF Ld_Day_Cover_From > Ld_Cont_EffStart THEN
5066 Ld_Day_Cover_EffFrom := Ld_Day_Cover_From;
5067 ELSE
5068 Ld_Day_Cover_EffFrom := Ld_Cont_EffStart;
5069 END IF;
5070
5071 IF Ld_Day_Cover_To < Ld_Cont_EffEnd THEN
5072 Ld_Day_Cover_EffTo := Ld_Day_Cover_To;
5073 ELSE
5074 Ld_Day_Cover_EffTo := Ld_Cont_EffEnd;
5075 END IF;
5076
5077 END IF;
5078
5079 Validate_Effectivity
5080 (P_Request_Date => Ld_TzCont_Req_Date
5081 ,P_Start_DateTime => Ld_Day_Cover_EffFrom
5082 ,P_End_DateTime => Ld_Day_Cover_EffTo
5083 ,P_Set_ExcepionStack => G_FALSE
5084 ,P_CL_Msg_TokenValue => 'Business Process'
5085 ,X_Result => Lx_Result
5086 ,X_Return_Status => Lx_Return_Status);
5087
5088 IF Lx_Result = G_TRUE THEN
5089
5090 Lx_Covered := G_TRUE;
5091
5092 ELSE
5093
5094 Lx_Covered := G_FALSE;
5095
5096 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
5097 RAISE L_EXCEP_UNEXPECTED_ERR;
5098 END IF;
5099
5100 END IF;
5101
5102
5103 --
5104 -- Commented out for 12.0 ENT-TZ project (JVARGHES)
5105 --
5106 --
5107 -- IF Lx_TZE_Mtch_Exists = 'N' then -- 11.5.10 multiple time zone enhancement
5108 --
5109 -- Convert_TimeZone
5110 -- (P_API_Version => P_API_Version
5111 -- ,P_Init_Msg_List => P_Init_Msg_List
5112 -- ,P_Source_Date => Ld_Day_Cover_EffFrom
5113 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
5114 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
5115 -- ,X_Dest_Date => Ld_Tz_Day_Cover_From
5116 -- ,X_Msg_Count => X_Msg_count
5117 -- ,X_Msg_Data => X_Msg_Data
5118 -- ,X_Return_Status => Lx_Return_Status);
5119 --
5120 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
5121 -- RAISE L_EXCEP_NO_DATA_FOUND;
5122 -- END IF;
5123 --
5124 -- Convert_TimeZone
5125 -- (P_API_Version => P_API_Version
5126 -- ,P_Init_Msg_List => P_Init_Msg_List
5127 -- ,P_Source_Date => Ld_Day_Cover_EffTo
5128 -- ,P_Source_Tz_Id => Lx_Def_TZE_Id --Lx_BP_Tz_Id
5129 -- ,P_Dest_Tz_Id => Lx_Request_TZone_Id
5130 -- ,X_Dest_Date => Ld_Tz_Day_Cover_To
5131 -- ,X_Msg_Count => X_Msg_count
5132 -- ,X_Msg_Data => X_Msg_Data
5133 -- ,X_Return_Status => Lx_Return_Status);
5134 --
5135 --
5136 -- IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
5137 -- RAISE L_EXCEP_NO_DATA_FOUND;
5138 -- END IF;
5139 --
5140 -- ELSE -- 11.5.10 multiple time zone enhancement
5141 --
5142 -- Ld_Tz_Day_Cover_From := Ld_Day_Cover_EffFrom;
5143 -- Ld_Tz_Day_Cover_To := Ld_Day_Cover_EffTo;
5144 --
5145 -- END IF;
5146 --
5147 --
5148 -- Added for 12.0 ENT-TZ project (JVARGHES)
5149 --
5150 IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11) THEN
5151
5152 Ld_Tz_Day_Cover_From := Ld_Day_Cover_EffFrom;
5153 Ld_Tz_Day_Cover_To := Ld_Day_Cover_EffTo;
5154
5155 ELSE
5156
5157 Convert_TimeZone
5158 (P_API_Version => P_API_Version
5159 ,P_Init_Msg_List => P_Init_Msg_List
5160 ,P_Source_Date => Ld_Day_Cover_EffFrom
5161 ,P_Source_Tz_Id => ln_CovTZ
5162 ,P_Dest_Tz_Id => ln_Param_DatesTZ
5163 ,X_Dest_Date => Ld_Tz_Day_Cover_From
5164 ,X_Msg_Count => X_Msg_count
5165 ,X_Msg_Data => X_Msg_Data
5166 ,X_Return_Status => Lx_Return_Status);
5167
5168 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
5169 RAISE L_EXCEP_NO_DATA_FOUND;
5170 END IF;
5171
5172 Convert_TimeZone
5173 (P_API_Version => P_API_Version
5174 ,P_Init_Msg_List => P_Init_Msg_List
5175 ,P_Source_Date => Ld_Day_Cover_EffTo
5176 ,P_Source_Tz_Id => ln_CovTZ
5177 ,P_Dest_Tz_Id => ln_Param_DatesTZ
5178 ,X_Dest_Date => Ld_Tz_Day_Cover_To
5179 ,X_Msg_Count => X_Msg_count
5180 ,X_Msg_Data => X_Msg_Data
5181 ,X_Return_Status => Lx_Return_Status);
5182
5183 IF Lx_Return_Status <> G_RET_STS_SUCCESS THEN
5184 RAISE L_EXCEP_NO_DATA_FOUND;
5185 END IF;
5186
5187 END IF;
5188
5189 --
5190 --
5191
5192 X_Day_Cover_From := Ld_Tz_Day_Cover_From;
5193 X_Day_Cover_To := Ld_Tz_Day_Cover_To;
5194 X_Covered := Lx_Covered;
5195 X_Result := Lx_Result;
5196 X_Return_Status := Lx_Return_Status;
5197
5198 EXCEPTION
5199
5200 WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_NO_DATA_FOUND OR L_EXCEP_NOT_EFFECTIVE OR L_EXCEP_UNEXPECTED_ERR THEN
5201
5202 X_Result := Lx_Result;
5203 X_Return_Status := Lx_Return_Status;
5204
5205 WHEN L_EXCEP_NO_DAY_COVER THEN
5206
5207 Lx_Result := G_FALSE;
5208
5209 IF Lx_Set_ExcepionStack = G_TRUE THEN
5210
5211 OKC_API.SET_MESSAGE(p_app_name => G_APP_NAME_OKC
5212 ,p_msg_name => G_REQUIRED_VALUE
5213 ,p_token1 => G_COL_NAME_TOKEN
5214 ,p_token1_value => Lx_ExcepionMsg);
5215
5216 Lx_Return_Status := G_RET_STS_ERROR;
5217
5218 END IF;
5219
5220 X_Result := Lx_Result;
5221 X_Return_Status := Lx_Return_Status;
5222
5223 WHEN OTHERS THEN
5224
5225 OKC_API.SET_MESSAGE
5226 (P_App_Name => G_APP_NAME_OKC
5227 ,P_Msg_Name => G_UNEXPECTED_ERROR
5228 ,P_Token1 => G_SQLCODE_TOKEN
5229 ,P_Token1_Value => SQLCODE
5230 ,P_Token2 => G_SQLERRM_TOKEN
5231 ,P_Token2_Value => SQLERRM);
5232
5233 OKC_API.SET_MESSAGE
5234 (P_App_Name => G_APP_NAME_OKC
5235 ,P_Msg_Name => G_DEBUG_TOKEN
5236 ,P_Token1 => G_PACKAGE_TOKEN
5237 ,P_Token1_Value => G_PKG_NAME
5238 ,P_Token2 => G_PROGRAM_TOKEN
5239 ,P_Token2_Value => 'Get_Coverage_Times');
5240
5241 X_Result := G_FALSE;
5242 X_Return_Status := G_RET_STS_UNEXP_ERROR;
5243
5244 END Get_Coverage_Times;
5245
5246 -----------------------------------------------------------------------------------------------------------------------*
5247
5248 PROCEDURE Check_Coverage_Times
5249 (P_API_Version IN NUMBER
5250 ,P_Init_Msg_List IN VARCHAR2
5251 ,P_Business_Process_Id IN NUMBER
5252 ,P_Request_Date IN DATE
5253 ,P_Time_Zone_Id IN NUMBER
5254 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
5255 ,P_Contract_Line_Id IN NUMBER
5256 ,X_Return_Status OUT NOCOPY VARCHAR2
5257 ,X_Msg_Count OUT NOCOPY NUMBER
5258 ,X_Msg_Data OUT NOCOPY VARCHAR2
5259 ,X_Covered_YN OUT NOCOPY VARCHAR2)
5260 IS
5261
5262 Ld_Day_Cover_From DATE;
5263 Ld_Day_Cover_To DATE;
5264 Lx_Covered Gx_Boolean;
5265 Lx_Result Gx_Boolean;
5266
5267 BEGIN
5268
5269 Get_Coverage_Times
5270 (P_API_Version => P_API_Version
5271 ,P_Init_Msg_List => P_Init_Msg_List
5272 ,P_SVL_Id => P_Contract_Line_Id
5273 ,P_BusiProc_Id => P_Business_Process_Id
5274 ,P_Request_Date => NVL(P_Request_Date,SYSDATE)
5275 ,P_Request_TZone_id => P_Time_Zone_Id
5276 ,P_Dates_In_Input_TZ => P_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
5277 ,P_Set_ExcepionStack => G_TRUE
5278 ,X_Day_Cover_From => Ld_Day_Cover_From
5279 ,X_Day_Cover_To => Ld_Day_Cover_To
5280 ,X_Covered => Lx_Covered
5281 ,X_Msg_Count => X_Msg_Count
5282 ,X_Msg_Data => X_Msg_Data
5283 ,X_Result => Lx_Result
5284 ,X_Return_Status => X_Return_Status);
5285
5286 IF Lx_Covered = G_TRUE THEN
5287 X_Covered_YN := G_YES;
5288 ELSE
5289 X_Covered_YN := G_NO;
5290 END IF;
5291
5292
5293 EXCEPTION
5294
5295 WHEN OTHERS THEN
5296
5297 OKC_API.SET_MESSAGE
5298 (P_App_Name => G_APP_NAME_OKC
5299 ,P_Msg_Name => G_UNEXPECTED_ERROR
5300 ,P_Token1 => G_SQLCODE_TOKEN
5301 ,P_Token1_Value => SQLCODE
5302 ,P_Token2 => G_SQLERRM_TOKEN
5303 ,P_Token2_Value => SQLERRM);
5304
5305 OKC_API.SET_MESSAGE
5306 (P_App_Name => G_APP_NAME_OKC
5307 ,P_Msg_Name => G_DEBUG_TOKEN
5308 ,P_Token1 => G_PACKAGE_TOKEN
5309 ,P_Token1_Value => G_PKG_NAME
5310 ,P_Token2 => G_PROGRAM_TOKEN
5311 ,P_Token2_Value => 'Check_Coverage_Times');
5312
5313 --X_Result := G_FALSE;
5314 X_Return_Status := G_RET_STS_UNEXP_ERROR;
5315
5316 END Check_Coverage_Times;
5317
5318 -----------------------------------------------------------------------------------------------------------------------*
5319
5320 PROCEDURE Get_Contract_Header_Details
5321 (P_API_Version IN NUMBER
5322 ,P_Init_Msg_List IN VARCHAR2
5323 ,P_Chr_Id IN Gx_OKS_Id
5324 ,P_Chr_Sts_Code IN Gx_Chr_StsCode
5325 ,P_Chr_Type IN Gx_Chr_Type
5326 ,P_Chr_EndDate IN DATE
5327 ,P_Chr_PartyId IN Gx_Chr_PartyId
5328 ,X_Contract_Headers OUT NOCOPY Hdr_Tbl_Type
5329 ,X_Msg_Count OUT NOCOPY NUMBER
5330 ,X_Msg_Data OUT NOCOPY VARCHAR2
5331 ,X_Result out nocopy Gx_Boolean
5332 ,X_Return_Status out nocopy Gx_Ret_Sts)
5333 IS
5334
5335
5336
5337 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
5338 ,Cd_Chr_EndDate IN DATE, Cx_Chr_PartyId IN Gx_Chr_PartyId) IS
5339 SELECT AUTHORING_ORG_ID
5340 ,HDR.ID
5341 ,HDR.CONTRACT_NUMBER
5342 ,HDR.CONTRACT_NUMBER_MODIFIER
5343 ,HDT.SHORT_DESCRIPTION
5344 ,HDR.STS_CODE
5345 ,HDR.CHR_TYPE
5346 ,HDR.TEMPLATE_YN
5347 ,HDR.TEMPLATE_USED
5348 ,HDR.START_DATE
5349 ,Get_End_Date_Time(HDR.END_DATE) End_Date
5350 ,HDR.CHR_ID_AWARD
5351 ,HDR.CUST_PO_NUMBER
5352 ,HDR.AUTO_RENEW_DAYS
5353 ,HDR.QCL_ID
5354 ,HDR.ESTIMATED_AMOUNT -- 11.5.10 changes
5355 ,PTY.OBJECT1_ID1 PARTY_ID
5356 ,HDR.bill_to_site_use_id bill_to_site_use_id -- 11.5.10 changes
5357 ,HDR.ship_to_site_use_id ship_to_site_use_id -- 11.5.10 changes
5358 ,HDR.currency_code currency_code -- 11.5.10 changes
5359 ,OKSHDR.acct_rule_id acct_rule_id -- 11.5.10 changes
5360 ,HDR.inv_rule_id inv_rule_id -- 11.5.10 changes
5361 ,HDR.payment_term_id payment_term_id -- 11.5.10 changes
5362 ,OKSHDR.billing_profile_id billing_profile_id -- 11.5.10 changes
5363 ,OKSHDR.tax_exemption_id tax_exemption_id -- 11.5.10 changes
5364 ,OKSHDR.tax_status tax_status -- 11.5.10 changes
5365 ,HDR.conversion_type conversion_type -- 11.5.10 changes
5366 FROM OKC_K_PARTY_ROLES_B PTY
5367 ,OKC_K_HEADERS_TL HDT
5368 ,OKC_K_HEADERS_ALL_B HDR --,OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
5369 ,OKS_K_HEADERS_B OKSHDR -- 11.5.10 changes
5370 WHERE HDR.ID = NVL(Cx_Chr_Id,HDR.ID)
5371 AND HDR.END_DATE = NVL(Cd_Chr_EndDate,HDR.END_DATE)
5372 AND HDR.STS_CODE = NVL(Cx_Chr_Sts_Code,HDR.STS_CODE)
5373 AND HDR.CHR_TYPE = NVL(Cx_Chr_Type,HDR.CHR_TYPE)
5374 AND HDR.START_DATE IS NOT NULL
5375 AND HDR.END_DATE IS NOT NULL
5376 AND HDR.TEMPLATE_YN = G_NO
5377 AND HDT.ID = HDR.ID
5378 AND HDT.LANGUAGE = USERENV('LANG')
5379 AND PTY.CHR_ID = HDR.ID
5380 AND PTY.OBJECT1_ID1 = NVL(Cx_Chr_PartyId, PTY.OBJECT1_ID1)
5381 AND HDR.ID = OKSHDR.CHR_ID
5382 AND PTY.JTOT_OBJECT1_CODE = G_JTOT_OBJ_PARTY;
5383
5384
5385 Lx_Chr_Id CONSTANT Gx_OKS_Id := P_Chr_Id;
5386 Lx_Chr_Sts_Code CONSTANT Gx_Chr_StsCode := P_Chr_Sts_Code;
5387 Lx_Chr_Type CONSTANT Gx_Chr_Type := P_Chr_Type;
5388 Ld_Chr_EndDate CONSTANT DATE := P_Chr_EndDate;
5389 Lx_Chr_PartyId CONSTANT Gx_Chr_PartyId := P_Chr_PartyId;
5390
5391 Lx_Contract_Headers Hdr_Tbl_Type;
5392 Lx_Result Gx_Boolean;
5393 Lx_Return_Status Gx_Ret_Sts;
5394
5395 Li_TableIdx BINARY_INTEGER;
5396
5397 BEGIN
5398
5399 Lx_Result := G_TRUE;
5400 Lx_Return_Status := G_RET_STS_SUCCESS;
5401
5402 Li_TableIdx := 0;
5403
5404 FOR Idx IN Lx_Csr_Chr(Lx_Chr_Id, Lx_Chr_Sts_Code, Lx_Chr_Type, Ld_Chr_EndDate, Lx_Chr_PartyId ) LOOP
5405
5406 Li_TableIdx := Li_TableIdx + 1;
5407
5408 Lx_Contract_Headers(Li_TableIdx).Org_Id := Idx.Authoring_Org_Id;
5409 Lx_Contract_Headers(Li_TableIdx).Contract_Id := Idx.Id;
5410 Lx_Contract_Headers(Li_TableIdx).Contract_Number := Idx.Contract_Number;
5411 Lx_Contract_Headers(Li_TableIdx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
5412 Lx_Contract_Headers(Li_TableIdx).Short_Description := Idx.Short_Description;
5413 Lx_Contract_Headers(Li_TableIdx).Contract_Amount := Idx.Estimated_amount; --11.5.10 changes..OKS_ENT_UTIL_PVT.Get_Contract_Amount(Idx.Id);
5414 Lx_Contract_Headers(Li_TableIdx).Contract_Status_Code := Idx.Sts_Code;
5415 Lx_Contract_Headers(Li_TableIdx).Contract_Type := Idx.Chr_Type;
5416 Lx_Contract_Headers(Li_TableIdx).Party_Id := TO_NUMBER(Idx.Party_Id);
5417 Lx_Contract_Headers(Li_TableIdx).Template_YN := Idx.Template_YN;
5418 Lx_Contract_Headers(Li_TableIdx).Template_Used := Idx.Template_Used;
5419 Lx_Contract_Headers(Li_TableIdx).Duration := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
5420 (Idx.Start_Date,Idx.End_Date,'D'));
5421 Lx_Contract_Headers(Li_TableIdx).Period_Code := OKS_ENT_UTIL_PVT.Get_Duration_Period
5422 (Idx.Start_Date,Idx.End_Date,'P');
5423 Lx_Contract_Headers(Li_TableIdx).Start_Date_Active := Idx.Start_Date;
5424 Lx_Contract_Headers(Li_TableIdx).End_Date_Active := Idx.End_Date;
5425 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
5426 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
5427 Lx_Contract_Headers(Li_TableIdx).Agreement_Id := OKS_ENT_UTIL_PVT.Get_Agreement(Idx.Id);
5428 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
5429 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));
5430 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
5431 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
5432 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
5433 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
5434 Lx_Contract_Headers(Li_TableIdx).PO_Number := Idx.Cust_PO_Number;
5435 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
5436 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
5437 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
5438 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
5439 Lx_Contract_Headers(Li_TableIdx).First_Bill_To := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5440 --(Idx.Id,NULL,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
5441 Lx_Contract_Headers(Li_TableIdx).First_Bill_On := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5442 ---(Idx.Id,NULL,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
5443 Lx_Contract_Headers(Li_TableIdx).Auto_Renew_Before_Days := Idx.Auto_Renew_Days;
5444 Lx_Contract_Headers(Li_TableIdx).QA_Check_List_Id := Idx.Qcl_Id;
5445 Lx_Contract_Headers(Li_TableIdx).Renewal_Note := OKS_ENT_UTIL_PVT.Get_RenterNotes(Idx.Id,'RENEW');
5446 Lx_Contract_Headers(Li_TableIdx).Termination_Note := OKS_ENT_UTIL_PVT.Get_RenterNotes(Idx.Id,'TER');
5447 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
5448 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
5449 Lx_Contract_Headers(Li_TableIdx).Conversion_Type := Idx.conversion_type; --OKS_ENT_UTIL_PVT.Get_ConvRule(Idx.Id); --okc_k_headers_b.conversion_type
5450
5451 END LOOP;
5452
5453 X_Contract_Headers := Lx_Contract_Headers;
5454 X_Result := Lx_Result;
5455 X_Return_Status := Lx_Return_Status;
5456
5457 EXCEPTION
5458
5459 WHEN OTHERS THEN
5460
5461 OKC_API.SET_MESSAGE
5462 (P_App_Name => G_APP_NAME_OKC
5463 ,P_Msg_Name => G_UNEXPECTED_ERROR
5464 ,P_Token1 => G_SQLCODE_TOKEN
5465 ,P_Token1_Value => SQLCODE
5466 ,P_Token2 => G_SQLERRM_TOKEN
5467 ,P_Token2_Value => SQLERRM);
5468
5469 OKC_API.SET_MESSAGE
5470 (P_App_Name => G_APP_NAME_OKC
5471 ,P_Msg_Name => G_DEBUG_TOKEN
5472 ,P_Token1 => G_PACKAGE_TOKEN
5473 ,P_Token1_Value => G_PKG_NAME
5474 ,P_Token2 => G_PROGRAM_TOKEN
5475 ,P_Token2_Value => 'Get_Contract_Header_Details');
5476
5477 X_Result := G_FALSE;
5478 X_Return_Status := G_RET_STS_UNEXP_ERROR;
5479
5480 END Get_Contract_Header_Details;
5481
5482 -----------------------------------------------------------------------------------------------------------------------*
5483
5484 PROCEDURE Get_All_Contracts
5485 (P_API_Version IN NUMBER
5486 ,P_Init_Msg_List IN VARCHAR2
5487 ,P_Inp_Rec IN Inp_Rec_Type
5488 ,X_Return_Status out nocopy VARCHAR2
5489 ,X_Msg_Count out nocopy NUMBER
5490 ,X_Msg_Data out nocopy VARCHAR2
5491 ,X_All_Contracts out nocopy Hdr_Tbl_Type)
5492 IS
5493
5494 Lx_Result Gx_Boolean;
5495 Lx_Inp_Rec Inp_Rec_Type;
5496
5497 BEGIN
5498
5499 Lx_Inp_Rec := P_Inp_Rec;
5500
5501 Get_Contract_Header_Details
5502 (P_API_Version => P_API_Version
5503 ,P_Init_Msg_List => P_Init_Msg_List
5504 ,P_Chr_Id => Lx_Inp_Rec.Contract_Id
5505 ,P_Chr_Sts_Code => Lx_Inp_Rec.Contract_Status_Code
5506 ,P_Chr_Type => Lx_Inp_Rec.Contract_Type_Code
5507 ,P_Chr_EndDate => Lx_Inp_Rec.End_Date_Active
5508 ,P_Chr_PartyId => Lx_Inp_Rec.Party_Id
5509 ,X_Contract_Headers => X_All_Contracts
5510 ,X_Msg_Count => X_Msg_Count
5511 ,X_Msg_Data => X_Msg_Data
5512 ,X_Result => Lx_Result
5513 ,X_Return_Status => X_Return_Status);
5514
5515 EXCEPTION
5516
5517 WHEN OTHERS THEN
5518
5519 OKC_API.SET_MESSAGE
5520 (P_App_Name => G_APP_NAME_OKC
5521 ,P_Msg_Name => G_UNEXPECTED_ERROR
5522 ,P_Token1 => G_SQLCODE_TOKEN
5523 ,P_Token1_Value => SQLCODE
5524 ,P_Token2 => G_SQLERRM_TOKEN
5525 ,P_Token2_Value => SQLERRM);
5526
5527 OKC_API.SET_MESSAGE
5528 (P_App_Name => G_APP_NAME_OKC
5529 ,P_Msg_Name => G_DEBUG_TOKEN
5530 ,P_Token1 => G_PACKAGE_TOKEN
5531 ,P_Token1_Value => G_PKG_NAME
5532 ,P_Token2 => G_PROGRAM_TOKEN
5533 ,P_Token2_Value => 'Get_All_Contracts');
5534
5535 --X_Result := G_FALSE;
5536 X_Return_Status := G_RET_STS_UNEXP_ERROR;
5537
5538 END Get_All_Contracts;
5539
5540 -----------------------------------------------------------------------------------------------------------------------*
5541
5542 PROCEDURE Get_Contract_Line_Details
5543 (P_API_Version IN NUMBER
5544 ,P_Init_Msg_List IN VARCHAR2
5545 ,P_Cle_Id IN Gx_OKS_Id
5546 ,X_Contract_Lines OUT NOCOPY Line_Tbl_Type
5547 ,X_Msg_Count OUT NOCOPY NUMBER
5548 ,X_Msg_Data OUT NOCOPY VARCHAR2
5549 ,X_Result out nocopy Gx_Boolean
5550 ,X_Return_Status out nocopy Gx_Ret_Sts)
5551 IS
5552
5553 CURSOR Lx_Csr_Cle(Cx_Cle_Id IN Gx_OKS_Id) IS
5554 SELECT LIN.ID
5555 ,LIN.CLE_ID
5556 ,LIN.DNZ_CHR_ID
5557 ,LIN.STS_CODE
5558 ,LIN.START_DATE
5559 ,Get_End_Date_Time(LIN.END_DATE) End_Date
5560 ,Get_End_Date_Time(LIN.DATE_TERMINATED) Date_Terminated
5561 ,LIN.PRICE_NEGOTIATED
5562 ,STL.NAME
5563 ,LIN.bill_to_site_use_id bill_to_site_use_id -- 11.5.10 changes
5564 ,LIN.ship_to_site_use_id ship_to_site_use_id -- 11.5.10 changes
5565 ,OKSLIN.discount_list discount_list -- 11.5.10 changes
5566 ,LIN.price_list_id price_list_id -- 11.5.10 changes
5567 FROM OKC_K_HEADERS_ALL_B HDR -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
5568 ,OKC_LINE_STYLES_V STL
5569 ,OKC_K_LINES_B LIN
5570 ,OKS_K_LINES_B OKSLIN -- 11.5.10 changes
5571 WHERE LIN.ID = Cx_Cle_Id --Commented by Jvorugan NVL(Cx_Cle_Id, LIN.ID)
5572 AND LIN.START_DATE IS NOT NULL
5573 AND LIN.END_DATE IS NOT NULL
5574 AND STL.ID = LIN.LSE_ID
5575 AND HDR.ID = LIN.DNZ_CHR_ID
5576 AND HDR.TEMPLATE_YN = G_NO
5577 AND OKSLIN.CLE_ID = LIN.Id;
5578
5579 -- Added by Jvorugan for Bug:4998337
5580 CURSOR Lx_Csr_noCle IS
5581 SELECT LIN.ID
5582 ,LIN.CLE_ID
5583 ,LIN.DNZ_CHR_ID
5584 ,LIN.STS_CODE
5585 ,LIN.START_DATE
5586 ,Get_End_Date_Time(LIN.END_DATE) End_Date
5587 ,Get_End_Date_Time(LIN.DATE_TERMINATED) Date_Terminated
5588 ,LIN.PRICE_NEGOTIATED
5589 ,STL.NAME
5590 ,LIN.bill_to_site_use_id bill_to_site_use_id -- 11.5.10 changes
5591 ,LIN.ship_to_site_use_id ship_to_site_use_id -- 11.5.10 changes
5592 ,OKSLIN.discount_list discount_list -- 11.5.10 changes
5593 ,LIN.price_list_id price_list_id -- 11.5.10 changes
5594 FROM OKC_K_HEADERS_ALL_B HDR -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
5595 ,OKC_LINE_STYLES_V STL
5596 ,OKC_K_LINES_B LIN
5597 ,OKS_K_LINES_B OKSLIN -- 11.5.10 changes
5598 WHERE -- LIN.ID = NVL(Cx_Cle_Id, LIN.ID)
5599 LIN.START_DATE IS NOT NULL
5600 AND LIN.END_DATE IS NOT NULL
5601 AND STL.ID = LIN.LSE_ID
5602 AND HDR.ID = LIN.DNZ_CHR_ID
5603 AND HDR.TEMPLATE_YN = G_NO
5604 AND OKSLIN.CLE_ID = LIN.Id;
5605
5606
5607 Lx_Cle_Id CONSTANT Gx_OKS_Id := P_Cle_Id;
5608
5609 Lx_Contract_Lines Line_Tbl_Type;
5610 Lx_Result Gx_Boolean;
5611 Lx_Return_Status Gx_Ret_Sts;
5612
5613 Li_TableIdx BINARY_INTEGER;
5614
5615 BEGIN
5616
5617 Lx_Result := G_TRUE;
5618 Lx_Return_Status := G_RET_STS_SUCCESS;
5619
5620 Li_TableIdx := 0;
5621
5622 /* Added by Jvorugan for perf bug:4998337.
5623 If lx_cle_id is not null then only passing the value.
5624 This is to avoid full table scan on okc_k_headers_all_b, okc_k_lines_b, oks_k_lines_b
5625 */
5626
5627 IF Lx_Cle_Id IS NULL
5628 THEN
5629 FOR Idx IN Lx_Csr_noCle LOOP
5630
5631 Li_TableIdx := Li_TableIdx + 1;
5632
5633 Lx_Contract_Lines(Li_TableIdx).Contract_Line_Id := Idx.Id;
5634 Lx_Contract_Lines(Li_TableIdx).Contract_Parent_Line_Id := Idx.Cle_Id;
5635 Lx_Contract_Lines(Li_TableIdx).Contract_Id := Idx.Dnz_Chr_Id;
5636 Lx_Contract_Lines(Li_TableIdx).Line_Status_Code := Idx.Sts_Code;
5637 Lx_Contract_Lines(Li_TableIdx).Duration := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
5638 (Idx.Start_Date,Idx.End_Date,'D'));
5639 Lx_Contract_Lines(Li_TableIdx).Period_Code := OKS_ENT_UTIL_PVT.Get_Duration_Period
5640 (Idx.Start_Date,Idx.End_Date,'P');
5641 Lx_Contract_Lines(Li_TableIdx).Start_Date_Active := Idx.Start_Date;
5642 Lx_Contract_Lines(Li_TableIdx).End_Date_Active := Idx.End_Date;
5643 Lx_Contract_Lines(Li_TableIdx).Line_Name := Idx.Name;
5644 Lx_Contract_Lines(Li_TableIdx).Bill_To_Site_Use_Id := Idx.Bill_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
5645 --(NULL,Idx.Id,'OKX_BILLTO')); -- okc_k_lines_b.bill_to_site_use_id
5646 Lx_Contract_Lines(Li_TableIdx).Ship_To_Site_Use_Id := Idx.Ship_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
5647 --(NULL,Idx.Id,'OKX_SHIPTO')); --okc_k_lines_b.ship_to_site_use_id
5648 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
5649 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
5650 Lx_Contract_Lines(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
5651 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
5652 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
5653 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
5654 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
5655 Lx_Contract_Lines(Li_TableIdx).First_Bill_To := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5656 --(NULL,Idx.Id,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
5657 Lx_Contract_Lines(Li_TableIdx).First_Bill_On := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5658 --(NULL,Idx.Id,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
5659 Lx_Contract_Lines(Li_TableIdx).Termination_Date := Idx.Date_Terminated;
5660
5661 END LOOP;
5662
5663 ELSE
5664
5665 FOR Idx IN Lx_Csr_Cle(Lx_Cle_Id) LOOP
5666
5667 Li_TableIdx := Li_TableIdx + 1;
5668
5669 Lx_Contract_Lines(Li_TableIdx).Contract_Line_Id := Idx.Id;
5670 Lx_Contract_Lines(Li_TableIdx).Contract_Parent_Line_Id := Idx.Cle_Id;
5671 Lx_Contract_Lines(Li_TableIdx).Contract_Id := Idx.Dnz_Chr_Id;
5672 Lx_Contract_Lines(Li_TableIdx).Line_Status_Code := Idx.Sts_Code;
5673 Lx_Contract_Lines(Li_TableIdx).Duration := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
5674 (Idx.Start_Date,Idx.End_Date,'D'));
5675 Lx_Contract_Lines(Li_TableIdx).Period_Code := OKS_ENT_UTIL_PVT.Get_Duration_Period
5676 (Idx.Start_Date,Idx.End_Date,'P');
5677 Lx_Contract_Lines(Li_TableIdx).Start_Date_Active := Idx.Start_Date;
5678 Lx_Contract_Lines(Li_TableIdx).End_Date_Active := Idx.End_Date;
5679 Lx_Contract_Lines(Li_TableIdx).Line_Name := Idx.Name;
5680 Lx_Contract_Lines(Li_TableIdx).Bill_To_Site_Use_Id := Idx.Bill_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
5681 --(NULL,Idx.Id,'OKX_BILLTO')); -- okc_k_lines_b.bill_to_site_use_id
5682 Lx_Contract_Lines(Li_TableIdx).Ship_To_Site_Use_Id := Idx.Ship_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
5683 --(NULL,Idx.Id,'OKX_SHIPTO')); --okc_k_lines_b.ship_to_site_use_id
5684 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
5685 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
5686 Lx_Contract_Lines(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
5687 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
5688 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
5689 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
5690 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
5691 Lx_Contract_Lines(Li_TableIdx).First_Bill_To := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5692 --(NULL,Idx.Id,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
5693 Lx_Contract_Lines(Li_TableIdx).First_Bill_On := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5694 --(NULL,Idx.Id,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
5695 Lx_Contract_Lines(Li_TableIdx).Termination_Date := Idx.Date_Terminated;
5696
5697 END LOOP;
5698
5699 END IF; -- lx_Cle_id is null
5700
5701 /* Commented by Jvorugan for Bug:4998337
5702 FOR Idx IN Lx_Csr_Cle(Lx_Cle_Id) LOOP
5703
5704 Li_TableIdx := Li_TableIdx + 1;
5705
5706 Lx_Contract_Lines(Li_TableIdx).Contract_Line_Id := Idx.Id;
5707 Lx_Contract_Lines(Li_TableIdx).Contract_Parent_Line_Id := Idx.Cle_Id;
5708 Lx_Contract_Lines(Li_TableIdx).Contract_Id := Idx.Dnz_Chr_Id;
5709 Lx_Contract_Lines(Li_TableIdx).Line_Status_Code := Idx.Sts_Code;
5710 Lx_Contract_Lines(Li_TableIdx).Duration := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
5711 (Idx.Start_Date,Idx.End_Date,'D'));
5712 Lx_Contract_Lines(Li_TableIdx).Period_Code := OKS_ENT_UTIL_PVT.Get_Duration_Period
5713 (Idx.Start_Date,Idx.End_Date,'P');
5714 Lx_Contract_Lines(Li_TableIdx).Start_Date_Active := Idx.Start_Date;
5715 Lx_Contract_Lines(Li_TableIdx).End_Date_Active := Idx.End_Date;
5716 Lx_Contract_Lines(Li_TableIdx).Line_Name := Idx.Name;
5717 Lx_Contract_Lines(Li_TableIdx).Bill_To_Site_Use_Id := Idx.Bill_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
5718 --(NULL,Idx.Id,'OKX_BILLTO')); -- okc_k_lines_b.bill_to_site_use_id
5719 Lx_Contract_Lines(Li_TableIdx).Ship_To_Site_Use_Id := Idx.Ship_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
5720 --(NULL,Idx.Id,'OKX_SHIPTO')); --okc_k_lines_b.ship_to_site_use_id
5721 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
5722 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
5723 Lx_Contract_Lines(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
5724 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
5725 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
5726 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
5727 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
5728 Lx_Contract_Lines(Li_TableIdx).First_Bill_To := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5729 --(NULL,Idx.Id,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
5730 Lx_Contract_Lines(Li_TableIdx).First_Bill_On := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5731 --(NULL,Idx.Id,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
5732 Lx_Contract_Lines(Li_TableIdx).Termination_Date := Idx.Date_Terminated;
5733
5734 END LOOP;
5735
5736 */
5737
5738 X_Contract_Lines := Lx_Contract_Lines;
5739 X_Result := Lx_Result;
5740 X_Return_Status := Lx_Return_Status;
5741
5742 EXCEPTION
5743
5744 WHEN OTHERS THEN
5745
5746 OKC_API.SET_MESSAGE
5747 (P_App_Name => G_APP_NAME_OKC
5748 ,P_Msg_Name => G_UNEXPECTED_ERROR
5749 ,P_Token1 => G_SQLCODE_TOKEN
5750 ,P_Token1_Value => SQLCODE
5751 ,P_Token2 => G_SQLERRM_TOKEN
5752 ,P_Token2_Value => SQLERRM);
5753
5754 OKC_API.SET_MESSAGE
5755 (P_App_Name => G_APP_NAME_OKC
5756 ,P_Msg_Name => G_DEBUG_TOKEN
5757 ,P_Token1 => G_PACKAGE_TOKEN
5758 ,P_Token1_Value => G_PKG_NAME
5759 ,P_Token2 => G_PROGRAM_TOKEN
5760 ,P_Token2_Value => 'Get_Contract_Line_Details');
5761
5762 X_Result := G_FALSE;
5763 X_Return_Status := G_RET_STS_UNEXP_ERROR;
5764
5765 END Get_Contract_Line_Details;
5766
5767 -----------------------------------------------------------------------------------------------------------------------*
5768
5769 PROCEDURE Get_Contract_Details
5770 (P_API_Version IN NUMBER
5771 ,P_Init_Msg_List IN VARCHAR2
5772 ,P_Contract_Line_Id IN NUMBER
5773 ,X_Return_Status OUT NOCOPY VARCHAR2
5774 ,X_Msg_Count OUT NOCOPY NUMBER
5775 ,X_Msg_Data OUT NOCOPY VARCHAR2
5776 ,X_All_Lines OUT NOCOPY Line_Tbl_Type)
5777 IS
5778
5779 Lx_Result Gx_Boolean;
5780
5781 BEGIN
5782
5783 Get_Contract_Line_Details
5784 (P_API_Version => P_API_Version
5785 ,P_Init_Msg_List => P_Init_Msg_List
5786 ,P_Cle_Id => P_Contract_Line_Id
5787 ,X_Contract_Lines => X_All_Lines
5788 ,X_Msg_Count => X_Msg_Count
5789 ,X_Msg_Data => X_Msg_Data
5790 ,X_Result => Lx_Result
5791 ,X_Return_Status => X_Return_Status);
5792
5793 EXCEPTION
5794
5795 WHEN OTHERS THEN
5796
5797 OKC_API.SET_MESSAGE
5798 (P_App_Name => G_APP_NAME_OKC
5799 ,P_Msg_Name => G_UNEXPECTED_ERROR
5800 ,P_Token1 => G_SQLCODE_TOKEN
5801 ,P_Token1_Value => SQLCODE
5802 ,P_Token2 => G_SQLERRM_TOKEN
5803 ,P_Token2_Value => SQLERRM);
5804
5805 OKC_API.SET_MESSAGE
5806 (P_App_Name => G_APP_NAME_OKC
5807 ,P_Msg_Name => G_DEBUG_TOKEN
5808 ,P_Token1 => G_PACKAGE_TOKEN
5809 ,P_Token1_Value => G_PKG_NAME
5810 ,P_Token2 => G_PROGRAM_TOKEN
5811 ,P_Token2_Value => 'Get_Contract_Details');
5812
5813 --X_Result := G_FALSE;
5814 X_Return_Status := G_RET_STS_UNEXP_ERROR;
5815
5816 END Get_Contract_Details;
5817
5818 -----------------------------------------------------------------------------------------------------------------------*
5819
5820 PROCEDURE Get_Coverage_Level_Details
5821 (P_API_Version IN NUMBER
5822 ,P_Init_Msg_List IN VARCHAR2
5823 ,P_Cle_Id IN Gx_OKS_Id
5824 ,X_Covered_Levels out nocopy Clvl_Tbl_Type
5825 ,X_Msg_Count OUT NOCOPY NUMBER
5826 ,X_Msg_Data OUT NOCOPY VARCHAR2
5827 ,X_Result out nocopy Gx_Boolean
5828 ,X_Return_Status out nocopy Gx_Ret_Sts)
5829 IS
5830
5831 CURSOR Lx_Csr_CovLvl(Cx_Cle_Id IN Gx_OKS_Id) IS
5832 SELECT LIN.ROWID
5833 ,LIN.ID
5834 ,LIN.DNZ_CHR_ID
5835 ,LIN.CLE_ID
5836 ,LIN.PRICE_NEGOTIATED
5837 ,STL.NAME
5838 ,HDR.AUTHORING_ORG_ID ORG_ID
5839 ,HDR.INV_ORGANIZATION_ID ORGANIZATION_ID
5840 FROM OKC_K_HEADERS_ALL_B HDR -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
5841 ,OKC_LINE_STYLES_V STL
5842 ,OKC_K_LINES_B LIN
5843 ,OKS_K_LINES_B OKSLIN --11.5.10 changes
5844 WHERE LIN.ID = Cx_Cle_Id -- COmmented by Jvorugan for bug:4998337 NVL(Cx_Cle_Id, LIN.ID)
5845 AND LIN.LSE_ID IN (7, 8, 9, 10, 11, 13, 18, 25, 35)
5846 AND STL.ID = LIN.LSE_ID
5847 AND HDR.ID = LIN.DNZ_CHR_ID
5848 AND OKSLIN.CLE_ID = LIN.ID;
5849
5850 -- Added by Jvorugan for perf bug:4998337
5851 CURSOR Lx_Csr_CovLvl_noCle_id IS
5852 SELECT LIN.ROWID
5853 ,LIN.ID
5854 ,LIN.DNZ_CHR_ID
5855 ,LIN.CLE_ID
5856 ,LIN.PRICE_NEGOTIATED
5857 ,STL.NAME
5858 ,HDR.AUTHORING_ORG_ID ORG_ID
5859 ,HDR.INV_ORGANIZATION_ID ORGANIZATION_ID
5860 FROM OKC_K_HEADERS_ALL_B HDR -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
5861 ,OKC_LINE_STYLES_V STL
5862 ,OKC_K_LINES_B LIN
5863 ,OKS_K_LINES_B OKSLIN --11.5.10 changes
5864 WHERE -- LIN.ID = NVL(Cx_Cle_Id, LIN.ID)
5865 LIN.LSE_ID IN (7, 8, 9, 10, 11, 13, 18, 25, 35)
5866 AND STL.ID = LIN.LSE_ID
5867 AND HDR.ID = LIN.DNZ_CHR_ID
5868 AND OKSLIN.CLE_ID = LIN.ID;
5869
5870
5871 ----CSI schema change uptake----
5872 /*
5873 CURSOR Lx_Csr_CovProd(Cn_Prod_Id NUMBER,Cn_Org_Id NUMBER,Ln_Organization_Id NUMBER) IS
5874 SELECT CP.Name
5875 FROM OKX_CUSTOMER_PRODUCTS_V CP
5876 WHERE CP.Id1 = Cn_Prod_Id
5877 AND CP.Org_Id = Cn_Org_Id
5878 AND CP.Organization_Id = Ln_Organization_Id;
5879 */
5880
5881 CURSOR Lx_Csr_CovProd(Cn_Prod_Id NUMBER,Cn_Org_Id NUMBER,Ln_Organization_Id NUMBER) IS
5882 SELECT MSI.DESCRIPTION Name
5883 FROM CSI_ITEM_INSTANCES CSI,
5884 CSI_I_ORG_ASSIGNMENTS CIOA,
5885 MTL_SYSTEM_ITEMS_B_KFV MSI
5886 WHERE CSI.INSTANCE_ID = Cn_Prod_Id
5887 AND CSI.INSTANCE_ID = CIOA.INSTANCE_ID(+)
5888 AND CIOA.RELATIONSHIP_TYPE_CODE (+) = 'SOLD_FROM'
5889 AND CSI.INVENTORY_ITEM_ID = MSI.INVENTORY_ITEM_ID
5890 AND CIOA.OPERATING_UNIT_ID = Cn_Org_Id
5891 AND CSI.INV_MASTER_ORGANIZATION_ID = Ln_Organization_Id;
5892
5893 Lx_Cle_Id CONSTANT Gx_OKS_Id := P_Cle_Id;
5894 Lx_Covered_Levels Clvl_Tbl_Type;
5895
5896 Lx_Prod_Rec OKS_ENT_UTIL_PVT.L_Pdt_Rec;
5897 Lx_Item_Rec OKS_ENT_UTIL_PVT.L_Inv_Rec;
5898 Lx_Sys_Rec OKS_ENT_UTIL_PVT.L_Sys_Rec;
5899 Lx_Party_Rec OKS_ENT_UTIL_PVT.L_Party_Rec;
5900 Lx_CustAc_Rec OKS_ENT_UTIL_PVT.L_Cust_Rec;
5901 Lx_Site_Rec OKS_ENT_UTIL_PVT.L_Site_Rec;
5902 Lx_QtyRate_Rec OKS_ENT_UTIL_PVT.L_QtyRate_Rec;
5903
5904 Lx_Result Gx_Boolean;
5905 Lx_Return_Status Gx_Ret_Sts;
5906
5907 --Lv_Prod_Name OKX_CUSTOMER_PRODUCTS_V.Name%TYPE; --VARCHAR2(500);
5908 Lv_Prod_Name MTL_SYSTEM_ITEMS_B_KFV.description%TYPE; --VARCHAR2(500);
5909 Ln_ListPrice NUMBER;
5910 Li_TableIdx BINARY_INTEGER;
5911
5912 BEGIN
5913
5914 Lx_Result := G_TRUE;
5915 Lx_Return_Status := G_RET_STS_SUCCESS;
5916
5917 Li_TableIdx := 0;
5918
5919 /* Modified by Jvorugan for perg bug:4998337.
5920 If lx_cle_id is not null, then only passing the value.
5921 This is to avoid full table scan on okc_k_headers_all_b,okc_k_lines_b due to nvl condition
5922 */
5923
5924 IF Lx_Cle_Id IS NULL
5925 THEN
5926 FOR Idx IN Lx_Csr_CovLvl_noCle_id LOOP
5927
5928 Li_TableIdx := Li_TableIdx + 1;
5929
5930 Lv_Prod_Name := NULL;
5931 Lx_Prod_Rec := OKS_ENT_UTIL_PVT.Get_Product(Idx.Id);
5932
5933 IF Lx_Prod_Rec.Product_Id IS NOT NULL THEN
5934 OPEN Lx_Csr_CovProd (Lx_Prod_Rec.Product_Id,Idx.Org_Id,Idx.Organization_Id);
5935 FETCH Lx_Csr_CovProd INTO Lv_Prod_Name;
5936 CLOSE Lx_Csr_CovProd;
5937 END IF;
5938
5939 Lx_Item_Rec := OKS_ENT_UTIL_PVT.Get_InvItem(Idx.Id,Idx.Organization_Id);
5940 Lx_Sys_Rec := OKS_ENT_UTIL_PVT.Get_System(Idx.Id,Idx.Org_Id);
5941
5942 Lx_Party_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Party(Idx.Id);
5943 Lx_CustAc_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Customer(Idx.Id);
5944 Lx_Site_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Site(Idx.Id, Idx.Org_Id);
5945
5946 -- Lx_QtyRate_Rec := OKS_ENT_UTIL_PVT.Get_QtyRate_Rule(Idx.Id); --null oks_k_lines_b , okc_k_lines_b
5947 -- Ln_ListPrice := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P'));
5948
5949 Lx_Covered_Levels(Li_TableIdx).Row_Id := Idx.RowId;
5950 Lx_Covered_Levels(Li_TableIdx).Line_Id := Idx.Id;
5951 Lx_Covered_Levels(Li_TableIdx).Header_Id := Idx.Dnz_Chr_Id;
5952 Lx_Covered_Levels(Li_TableIdx).Parent_Line_Id := Idx.Cle_Id;
5953 Lx_Covered_Levels(Li_TableIdx).Line_Level := Idx.Name;
5954 Lx_Covered_Levels(Li_TableIdx).Cp_Id := Lx_Prod_Rec.Product_Id;
5955 Lx_Covered_Levels(Li_TableIdx).Quantity := Lx_Prod_Rec.Product_Qty;
5956 Lx_Covered_Levels(Li_TableIdx).Cp_Name := Lv_Prod_Name;
5957 Lx_Covered_Levels(Li_TableIdx).Inv_Item_Id := Lx_Item_Rec.Inv_Item_Id;
5958 Lx_Covered_Levels(Li_TableIdx).item_name := Lx_Item_Rec.Item_name;
5959 Lx_Covered_Levels(Li_TableIdx).system_id := Lx_Sys_Rec.System_Id;
5960 Lx_Covered_Levels(Li_TableIdx).system_name := Lx_Sys_Rec.System_Name;
5961 Lx_Covered_Levels(Li_TableIdx).Site_Id := Lx_Site_Rec.Site_Id;
5962 Lx_Covered_Levels(Li_TableIdx).Site_Name := Lx_Site_Rec.Site_Name;
5963 Lx_Covered_Levels(Li_TableIdx).Party_Id := Lx_Party_Rec.Party_Id;
5964 Lx_Covered_Levels(Li_TableIdx).Party_Name := Lx_Party_Rec.Party_Name;
5965 Lx_Covered_Levels(Li_TableIdx).Customer_Id := Lx_CustAc_Rec.Customer_Id;
5966 Lx_Covered_Levels(Li_TableIdx).Customer_Name := Lx_CustAc_Rec.Customer_Name;
5967 Lx_Covered_Levels(Li_TableIdx).List_Price := Ln_ListPrice;
5968 Lx_Covered_Levels(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
5969 Lx_Covered_Levels(Li_TableIdx).Line_Name := Idx.Name;
5970 Lx_Covered_Levels(Li_TableIdx).Default_AMCV_Flag := Lx_QtyRate_Rec.Default_AMCV_Flag;
5971 Lx_Covered_Levels(Li_TableIdx).Default_Qty := Lx_QtyRate_Rec.Default_Qty;
5972 Lx_Covered_Levels(Li_TableIdx).Default_UOM := Lx_QtyRate_Rec.Default_UOM;
5973 Lx_Covered_Levels(Li_TableIdx).Default_Duration := Lx_QtyRate_Rec.Default_Duration;
5974 Lx_Covered_Levels(Li_TableIdx).Default_Period := Lx_QtyRate_Rec.Default_Period;
5975 Lx_Covered_Levels(Li_TableIdx).Minimum_Qty := Lx_QtyRate_Rec.Minimum_Qty;
5976 Lx_Covered_Levels(Li_TableIdx).Minimum_UOM := Lx_QtyRate_Rec.Minimum_UOM;
5977 Lx_Covered_Levels(Li_TableIdx).Minimum_Duration := Lx_QtyRate_Rec.Minimum_Duration;
5978 Lx_Covered_Levels(Li_TableIdx).Minimum_Period := Lx_QtyRate_Rec.Minimum_Period;
5979 Lx_Covered_Levels(Li_TableIdx).Fixed_Qty := Lx_QtyRate_Rec.Fixed_Qty;
5980 Lx_Covered_Levels(Li_TableIdx).Fixed_UOM := Lx_QtyRate_Rec.Fixed_UOM;
5981 Lx_Covered_Levels(Li_TableIdx).Fixed_Duration := Lx_QtyRate_Rec.Fixed_Duration;
5982 Lx_Covered_Levels(Li_TableIdx).Fixed_Period := Lx_QtyRate_Rec.Fixed_Period;
5983 Lx_Covered_Levels(Li_TableIdx).Level_Flag := Lx_QtyRate_Rec.Level_Flag;
5984
5985 END LOOP;
5986
5987 ELSE -- if lx_cle_id is not null
5988
5989 FOR Idx IN Lx_Csr_CovLvl(Lx_Cle_Id) LOOP
5990
5991 Li_TableIdx := Li_TableIdx + 1;
5992
5993 Lv_Prod_Name := NULL;
5994 Lx_Prod_Rec := OKS_ENT_UTIL_PVT.Get_Product(Idx.Id);
5995
5996 IF Lx_Prod_Rec.Product_Id IS NOT NULL THEN
5997 OPEN Lx_Csr_CovProd (Lx_Prod_Rec.Product_Id,Idx.Org_Id,Idx.Organization_Id);
5998 FETCH Lx_Csr_CovProd INTO Lv_Prod_Name;
5999 CLOSE Lx_Csr_CovProd;
6000 END IF;
6001
6002 Lx_Item_Rec := OKS_ENT_UTIL_PVT.Get_InvItem(Idx.Id,Idx.Organization_Id);
6003 Lx_Sys_Rec := OKS_ENT_UTIL_PVT.Get_System(Idx.Id,Idx.Org_Id);
6004
6005 Lx_Party_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Party(Idx.Id);
6006 Lx_CustAc_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Customer(Idx.Id);
6007 Lx_Site_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Site(Idx.Id, Idx.Org_Id);
6008
6009 -- Lx_QtyRate_Rec := OKS_ENT_UTIL_PVT.Get_QtyRate_Rule(Idx.Id); --null oks_k_lines_b , okc_k_lines_b
6010 -- Ln_ListPrice := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P'));
6011
6012 Lx_Covered_Levels(Li_TableIdx).Row_Id := Idx.RowId;
6013 Lx_Covered_Levels(Li_TableIdx).Line_Id := Idx.Id;
6014 Lx_Covered_Levels(Li_TableIdx).Header_Id := Idx.Dnz_Chr_Id;
6015 Lx_Covered_Levels(Li_TableIdx).Parent_Line_Id := Idx.Cle_Id;
6016 Lx_Covered_Levels(Li_TableIdx).Line_Level := Idx.Name;
6017 Lx_Covered_Levels(Li_TableIdx).Cp_Id := Lx_Prod_Rec.Product_Id;
6018 Lx_Covered_Levels(Li_TableIdx).Quantity := Lx_Prod_Rec.Product_Qty;
6019 Lx_Covered_Levels(Li_TableIdx).Cp_Name := Lv_Prod_Name;
6020 Lx_Covered_Levels(Li_TableIdx).Inv_Item_Id := Lx_Item_Rec.Inv_Item_Id;
6021 Lx_Covered_Levels(Li_TableIdx).item_name := Lx_Item_Rec.Item_name;
6022 Lx_Covered_Levels(Li_TableIdx).system_id := Lx_Sys_Rec.System_Id;
6023 Lx_Covered_Levels(Li_TableIdx).system_name := Lx_Sys_Rec.System_Name;
6024 Lx_Covered_Levels(Li_TableIdx).Site_Id := Lx_Site_Rec.Site_Id;
6025 Lx_Covered_Levels(Li_TableIdx).Site_Name := Lx_Site_Rec.Site_Name;
6026 Lx_Covered_Levels(Li_TableIdx).Party_Id := Lx_Party_Rec.Party_Id;
6027 Lx_Covered_Levels(Li_TableIdx).Party_Name := Lx_Party_Rec.Party_Name;
6028 Lx_Covered_Levels(Li_TableIdx).Customer_Id := Lx_CustAc_Rec.Customer_Id;
6029 Lx_Covered_Levels(Li_TableIdx).Customer_Name := Lx_CustAc_Rec.Customer_Name;
6030 Lx_Covered_Levels(Li_TableIdx).List_Price := Ln_ListPrice;
6031 Lx_Covered_Levels(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
6032 Lx_Covered_Levels(Li_TableIdx).Line_Name := Idx.Name;
6033 Lx_Covered_Levels(Li_TableIdx).Default_AMCV_Flag := Lx_QtyRate_Rec.Default_AMCV_Flag;
6034 Lx_Covered_Levels(Li_TableIdx).Default_Qty := Lx_QtyRate_Rec.Default_Qty;
6035 Lx_Covered_Levels(Li_TableIdx).Default_UOM := Lx_QtyRate_Rec.Default_UOM;
6036 Lx_Covered_Levels(Li_TableIdx).Default_Duration := Lx_QtyRate_Rec.Default_Duration;
6037 Lx_Covered_Levels(Li_TableIdx).Default_Period := Lx_QtyRate_Rec.Default_Period;
6038 Lx_Covered_Levels(Li_TableIdx).Minimum_Qty := Lx_QtyRate_Rec.Minimum_Qty;
6039 Lx_Covered_Levels(Li_TableIdx).Minimum_UOM := Lx_QtyRate_Rec.Minimum_UOM;
6040 Lx_Covered_Levels(Li_TableIdx).Minimum_Duration := Lx_QtyRate_Rec.Minimum_Duration;
6041 Lx_Covered_Levels(Li_TableIdx).Minimum_Period := Lx_QtyRate_Rec.Minimum_Period;
6042 Lx_Covered_Levels(Li_TableIdx).Fixed_Qty := Lx_QtyRate_Rec.Fixed_Qty;
6043 Lx_Covered_Levels(Li_TableIdx).Fixed_UOM := Lx_QtyRate_Rec.Fixed_UOM;
6044 Lx_Covered_Levels(Li_TableIdx).Fixed_Duration := Lx_QtyRate_Rec.Fixed_Duration;
6045 Lx_Covered_Levels(Li_TableIdx).Fixed_Period := Lx_QtyRate_Rec.Fixed_Period;
6046 Lx_Covered_Levels(Li_TableIdx).Level_Flag := Lx_QtyRate_Rec.Level_Flag;
6047
6048 END LOOP;
6049 END IF; -- End of lx_cle_id is null
6050
6051 /* Commented by Jvorugan for Bug:4998337
6052 FOR Idx IN Lx_Csr_CovLvl(Lx_Cle_Id) LOOP
6053
6054 Li_TableIdx := Li_TableIdx + 1;
6055
6056 Lv_Prod_Name := NULL;
6057 Lx_Prod_Rec := OKS_ENT_UTIL_PVT.Get_Product(Idx.Id);
6058
6059 IF Lx_Prod_Rec.Product_Id IS NOT NULL THEN
6060 OPEN Lx_Csr_CovProd (Lx_Prod_Rec.Product_Id,Idx.Org_Id,Idx.Organization_Id);
6061 FETCH Lx_Csr_CovProd INTO Lv_Prod_Name;
6062 CLOSE Lx_Csr_CovProd;
6063 END IF;
6064
6065 Lx_Item_Rec := OKS_ENT_UTIL_PVT.Get_InvItem(Idx.Id,Idx.Organization_Id);
6066 Lx_Sys_Rec := OKS_ENT_UTIL_PVT.Get_System(Idx.Id,Idx.Org_Id);
6067
6068 Lx_Party_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Party(Idx.Id);
6069 Lx_CustAc_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Customer(Idx.Id);
6070 Lx_Site_Rec := OKS_ENT_UTIL_PVT.Get_CLvl_Site(Idx.Id, Idx.Org_Id);
6071
6072 -- Lx_QtyRate_Rec := OKS_ENT_UTIL_PVT.Get_QtyRate_Rule(Idx.Id); --null oks_k_lines_b , okc_k_lines_b
6073 -- Ln_ListPrice := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P'));
6074
6075 Lx_Covered_Levels(Li_TableIdx).Row_Id := Idx.RowId;
6076 Lx_Covered_Levels(Li_TableIdx).Line_Id := Idx.Id;
6077 Lx_Covered_Levels(Li_TableIdx).Header_Id := Idx.Dnz_Chr_Id;
6078 Lx_Covered_Levels(Li_TableIdx).Parent_Line_Id := Idx.Cle_Id;
6079 Lx_Covered_Levels(Li_TableIdx).Line_Level := Idx.Name;
6080 Lx_Covered_Levels(Li_TableIdx).Cp_Id := Lx_Prod_Rec.Product_Id;
6081 Lx_Covered_Levels(Li_TableIdx).Quantity := Lx_Prod_Rec.Product_Qty;
6082 Lx_Covered_Levels(Li_TableIdx).Cp_Name := Lv_Prod_Name;
6083 Lx_Covered_Levels(Li_TableIdx).Inv_Item_Id := Lx_Item_Rec.Inv_Item_Id;
6084 Lx_Covered_Levels(Li_TableIdx).item_name := Lx_Item_Rec.Item_name;
6085 Lx_Covered_Levels(Li_TableIdx).system_id := Lx_Sys_Rec.System_Id;
6086 Lx_Covered_Levels(Li_TableIdx).system_name := Lx_Sys_Rec.System_Name;
6087 Lx_Covered_Levels(Li_TableIdx).Site_Id := Lx_Site_Rec.Site_Id;
6088 Lx_Covered_Levels(Li_TableIdx).Site_Name := Lx_Site_Rec.Site_Name;
6089 Lx_Covered_Levels(Li_TableIdx).Party_Id := Lx_Party_Rec.Party_Id;
6090 Lx_Covered_Levels(Li_TableIdx).Party_Name := Lx_Party_Rec.Party_Name;
6091 Lx_Covered_Levels(Li_TableIdx).Customer_Id := Lx_CustAc_Rec.Customer_Id;
6092 Lx_Covered_Levels(Li_TableIdx).Customer_Name := Lx_CustAc_Rec.Customer_Name;
6093 Lx_Covered_Levels(Li_TableIdx).List_Price := Ln_ListPrice;
6094 Lx_Covered_Levels(Li_TableIdx).Price_Negotiated := Idx.Price_Negotiated;
6095 Lx_Covered_Levels(Li_TableIdx).Line_Name := Idx.Name;
6096 Lx_Covered_Levels(Li_TableIdx).Default_AMCV_Flag := Lx_QtyRate_Rec.Default_AMCV_Flag;
6097 Lx_Covered_Levels(Li_TableIdx).Default_Qty := Lx_QtyRate_Rec.Default_Qty;
6098 Lx_Covered_Levels(Li_TableIdx).Default_UOM := Lx_QtyRate_Rec.Default_UOM;
6099 Lx_Covered_Levels(Li_TableIdx).Default_Duration := Lx_QtyRate_Rec.Default_Duration;
6100 Lx_Covered_Levels(Li_TableIdx).Default_Period := Lx_QtyRate_Rec.Default_Period;
6101 Lx_Covered_Levels(Li_TableIdx).Minimum_Qty := Lx_QtyRate_Rec.Minimum_Qty;
6102 Lx_Covered_Levels(Li_TableIdx).Minimum_UOM := Lx_QtyRate_Rec.Minimum_UOM;
6103 Lx_Covered_Levels(Li_TableIdx).Minimum_Duration := Lx_QtyRate_Rec.Minimum_Duration;
6104 Lx_Covered_Levels(Li_TableIdx).Minimum_Period := Lx_QtyRate_Rec.Minimum_Period;
6105 Lx_Covered_Levels(Li_TableIdx).Fixed_Qty := Lx_QtyRate_Rec.Fixed_Qty;
6106 Lx_Covered_Levels(Li_TableIdx).Fixed_UOM := Lx_QtyRate_Rec.Fixed_UOM;
6107 Lx_Covered_Levels(Li_TableIdx).Fixed_Duration := Lx_QtyRate_Rec.Fixed_Duration;
6108 Lx_Covered_Levels(Li_TableIdx).Fixed_Period := Lx_QtyRate_Rec.Fixed_Period;
6109 Lx_Covered_Levels(Li_TableIdx).Level_Flag := Lx_QtyRate_Rec.Level_Flag;
6110
6111 END LOOP;
6112 */
6113
6114 X_Covered_Levels := Lx_Covered_Levels;
6115 X_Result := Lx_Result;
6116 X_Return_Status := Lx_Return_Status;
6117
6118 EXCEPTION
6119
6120 WHEN OTHERS THEN
6121
6122 OKC_API.SET_MESSAGE
6123 (P_App_Name => G_APP_NAME_OKC
6124 ,P_Msg_Name => G_UNEXPECTED_ERROR
6125 ,P_Token1 => G_SQLCODE_TOKEN
6126 ,P_Token1_Value => SQLCODE
6127 ,P_Token2 => G_SQLERRM_TOKEN
6128 ,P_Token2_Value => SQLERRM);
6129
6130 OKC_API.SET_MESSAGE
6131 (P_App_Name => G_APP_NAME_OKC
6132 ,P_Msg_Name => G_DEBUG_TOKEN
6133 ,P_Token1 => G_PACKAGE_TOKEN
6134 ,P_Token1_Value => G_PKG_NAME
6135 ,P_Token2 => G_PROGRAM_TOKEN
6136 ,P_Token2_Value => 'Get_Coverage_Level_Details');
6137
6138 X_Result := G_FALSE;
6139 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6140
6141 END Get_Coverage_Level_Details;
6142
6143 -----------------------------------------------------------------------------------------------------------------------*
6144
6145 PROCEDURE Get_Coverage_Levels
6146 (P_API_Version IN NUMBER
6147 ,P_Init_Msg_List IN VARCHAR2
6148 ,P_Contract_Line_Id IN NUMBER
6149 ,X_Return_Status OUT NOCOPY VARCHAR2
6150 ,X_Msg_Count OUT NOCOPY NUMBER
6151 ,X_Msg_Data OUT NOCOPY VARCHAR2
6152 ,X_Covered_Levels OUT NOCOPY Clvl_Tbl_Type)
6153 IS
6154
6155 Lx_Result Gx_Boolean;
6156
6157 BEGIN
6158
6159 Get_Coverage_Level_Details
6160 (P_API_Version => P_API_Version
6161 ,P_Init_Msg_List => P_Init_Msg_List
6162 ,P_Cle_Id => P_Contract_Line_Id
6163 ,X_Covered_Levels => X_Covered_Levels
6164 ,X_Msg_Count => X_Msg_Count
6165 ,X_Msg_Data => X_Msg_Data
6166 ,X_Result => Lx_Result
6167 ,X_Return_Status => X_Return_Status);
6168
6169 EXCEPTION
6170
6171 WHEN OTHERS THEN
6172
6173 OKC_API.SET_MESSAGE
6174 (P_App_Name => G_APP_NAME_OKC
6175 ,P_Msg_Name => G_UNEXPECTED_ERROR
6176 ,P_Token1 => G_SQLCODE_TOKEN
6177 ,P_Token1_Value => SQLCODE
6178 ,P_Token2 => G_SQLERRM_TOKEN
6179 ,P_Token2_Value => SQLERRM);
6180
6181 OKC_API.SET_MESSAGE
6182 (P_App_Name => G_APP_NAME_OKC
6183 ,P_Msg_Name => G_DEBUG_TOKEN
6184 ,P_Token1 => G_PACKAGE_TOKEN
6185 ,P_Token1_Value => G_PKG_NAME
6186 ,P_Token2 => G_PROGRAM_TOKEN
6187 ,P_Token2_Value => 'Get_Coverage_Levels');
6188
6189 --X_Result := G_FALSE;
6190 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6191
6192 END Get_Coverage_Levels;
6193
6194 -----------------------------------------------------------------------------------------------------------------------*
6195
6196 PROCEDURE Get_Coverage_Type_Attribs
6197 (P_CVL_Id IN Gx_OKS_Id
6198 ,P_Set_ExcepionStack IN Gx_Boolean
6199 ,X_Cov_Type_Code out nocopy VARCHAR2
6200 ,X_Cov_Type_Meaning out nocopy VARCHAR2
6201 ,X_Cov_Type_Description out nocopy VARCHAR2
6202 ,X_Cov_Type_Imp_Level out nocopy VARCHAR2
6203 ,X_Result out nocopy Gx_Boolean
6204 ,X_Return_Status out nocopy Gx_Ret_Sts)
6205 IS
6206
6207 CURSOR Lx_Csr_CovType(Cx_CVL_Id IN Gx_OKS_Id) IS
6208 SELECT CVT.Code
6209 ,CVT.Meaning
6210 ,CVT.Description
6211 ,CVT.Importance_Level
6212 FROM OKS_K_Lines_B OKSLB
6213 ,OKS_Cov_Types_V CVT
6214 WHERE OKSLB.Cle_Id = Cx_CVL_Id
6215 AND OKSLB.Coverage_Type = CVT.Code;
6216
6217 Lx_CVL_Id CONSTANT Gx_OKS_Id := P_CVL_Id;
6218 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
6219
6220 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
6221 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
6222 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
6223 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
6224
6225 Lx_Result Gx_Boolean;
6226 Lx_Return_Status Gx_Ret_Sts;
6227
6228 L_EXCEP_NO_DATA_FOUND EXCEPTION;
6229
6230 BEGIN
6231
6232 Lx_Result := G_TRUE;
6233 Lx_Return_Status := G_RET_STS_SUCCESS;
6234
6235 OPEN Lx_Csr_CovType(Lx_CVL_Id);
6236 FETCH Lx_Csr_CovType INTO Lx_Cov_Type_Code,Lx_Cov_Type_Meaning,Lx_Cov_Type_Description,Lx_Cov_Type_Imp_Level;
6237
6238 IF Lx_Csr_CovType%NOTFOUND THEN
6239
6240 CLOSE Lx_Csr_CovType;
6241 RAISE L_EXCEP_NO_DATA_FOUND;
6242
6243 END IF;
6244
6245 CLOSE Lx_Csr_CovType;
6246
6247 X_Cov_Type_Code := Lx_Cov_Type_Code;
6248 X_Cov_Type_Meaning := Lx_Cov_Type_Meaning;
6249 X_Cov_Type_Description := Lx_Cov_Type_Description;
6250 X_Cov_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
6251
6252 X_Result := Lx_Result;
6253 X_Return_Status := Lx_Return_Status;
6254
6255 EXCEPTION
6256
6257 WHEN L_EXCEP_NO_DATA_FOUND THEN
6258
6259 Lx_Result := G_FALSE;
6260
6261 IF Lx_Set_ExcepionStack = G_TRUE THEN
6262
6263 OKC_API.SET_MESSAGE
6264 (p_app_name => G_APP_NAME_OKC
6265 ,p_msg_name => G_INVALID_VALUE
6266 ,p_token1 => G_COL_NAME_TOKEN
6267 ,p_token1_value => 'Coverage Type');
6268
6269 Lx_Return_Status := G_RET_STS_ERROR;
6270
6271 END IF;
6272
6273 X_Result := Lx_Result;
6274 X_Return_Status := Lx_Return_Status;
6275
6276 WHEN OTHERS THEN
6277
6278 IF Lx_Csr_CovType%ISOPEN THEN
6279 CLOSE Lx_Csr_CovType;
6280 END IF;
6281
6282 OKC_API.SET_MESSAGE
6283 (P_App_Name => G_APP_NAME_OKC
6284 ,P_Msg_Name => G_UNEXPECTED_ERROR
6285 ,P_Token1 => G_SQLCODE_TOKEN
6286 ,P_Token1_Value => SQLCODE
6287 ,P_Token2 => G_SQLERRM_TOKEN
6288 ,P_Token2_Value => SQLERRM);
6289
6290 OKC_API.SET_MESSAGE
6291 (P_App_Name => G_APP_NAME_OKC
6292 ,P_Msg_Name => G_DEBUG_TOKEN
6293 ,P_Token1 => G_PACKAGE_TOKEN
6294 ,P_Token1_Value => G_PKG_NAME
6295 ,P_Token2 => G_PROGRAM_TOKEN
6296 ,P_Token2_Value => 'Get_Coverage_Type_Attribs');
6297
6298 X_Result := G_FALSE;
6299 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6300
6301 END Get_Coverage_Type_Attribs;
6302
6303 -----------------------------------------------------------------------------------------------------------------------*
6304
6305 PROCEDURE Get_Cont_Coverage_Type
6306 (P_API_Version IN NUMBER
6307 ,P_Init_Msg_List IN VARCHAR2
6308 ,P_SVL_Id IN Gx_OKS_Id
6309 ,P_Set_ExcepionStack IN Gx_Boolean
6310 ,X_Coverage_Type out nocopy CovType_Rec_Type
6311 ,X_Msg_Count OUT NOCOPY NUMBER
6312 ,X_Msg_Data OUT NOCOPY VARCHAR2
6313 ,X_Result out nocopy Gx_Boolean
6314 ,X_Return_Status out nocopy Gx_Ret_Sts)
6315 IS
6316
6317 Lx_SVL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
6318 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
6319
6320 Ld_SVL_Start DATE;
6321 Ld_SVL_End DATE;
6322 Ld_SVL_Terminated DATE;
6323
6324 Lx_CVL_Id Gx_OKS_Id;
6325 Ld_CVL_Start DATE;
6326 Ld_CVL_End DATE;
6327 Ld_CVL_Terminated DATE;
6328
6329 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
6330 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
6331 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
6332 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
6333
6334 Lx_Result Gx_Boolean;
6335 Lx_Return_Status Gx_Ret_Sts;
6336
6337 L_EXCEP_NULL_VALUE EXCEPTION;
6338 L_EXCEP_NO_DATA_FOUND EXCEPTION;
6339
6340 -- Added for 12.0 Coverage Rearch project (JVARGHES)
6341
6342 Lv_Std_Cov_YN VARCHAR2(10);
6343
6344 --
6345
6346 BEGIN
6347
6348 Lx_Result := G_TRUE;
6349 Lx_Return_Status := G_RET_STS_SUCCESS;
6350
6351 Validate_Required_NumValue
6352 (P_Num_Value => Lx_SVL_Id
6353 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
6354 ,P_ExcepionMsg => 'Contract Line'
6355 ,X_Result => Lx_result
6356 ,X_Return_Status => Lx_Return_Status);
6357
6358 IF Lx_result <> G_TRUE THEN
6359 RAISE L_EXCEP_NULL_VALUE;
6360 END IF;
6361
6362 --
6363 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6364 --
6365 --Validate_Service_Line
6366 -- (P_SVL_Id => Lx_SVL_Id
6367 -- ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
6368 -- ,X_SVL_Start => Ld_SVL_Start
6369 -- ,X_SVL_End => Ld_SVL_End
6370 -- ,X_SVL_Terminated => Ld_SVL_Terminated
6371 -- ,X_Result => Lx_Result
6372 -- ,X_Return_Status => Lx_Return_Status);
6373 --
6374 -- Added for 12.0 Coverage Rearch project (JVARGHES)
6375 --
6376 --
6377
6378 Validate_Service_Line
6379 (P_SVL_Id => Lx_SVL_Id
6380 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
6381 ,X_CVL_Id => Lx_CVL_Id
6382 ,X_Std_Cov_YN => Lv_Std_Cov_YN
6383 ,X_SVL_Start => Ld_SVL_Start
6384 ,X_SVL_End => Ld_SVL_End
6385 ,X_SVL_Terminated => Ld_SVL_Terminated
6386 ,X_Result => Lx_Result
6387 ,X_Return_Status => Lx_Return_Status);
6388
6389 --
6390
6391 IF Lx_Result <> G_TRUE THEN
6392 RAISE L_EXCEP_NO_DATA_FOUND;
6393 END IF;
6394
6395 --
6396 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6397 --
6398 --Validate_Coverage_Line
6399 -- (P_SVL_Id => Lx_SVL_Id
6400 -- ,P_template_YN => 'N'
6401 -- ,P_Set_ExcepionStack => G_FALSE
6402 -- ,X_CVL_Id => Lx_CVL_Id
6403 -- ,X_CVL_Start => Ld_CVL_Start
6404 -- ,X_CVL_End => Ld_CVL_End
6405 -- ,X_CVL_Terminated => Ld_CVL_Terminated
6406 -- ,X_Result => Lx_Result
6407 -- ,X_Return_Status => Lx_Return_Status);
6408 --
6409 --
6410 -- Added for 12.0 Coverage Rearch project (JVARGHES)
6411 --
6412
6413 Validate_Coverage_Line
6414 (P_CVL_Id => Lx_CVL_Id
6415 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
6416 ,X_CVL_Start => Ld_CVL_Start
6417 ,X_CVL_End => Ld_CVL_End
6418 ,X_CVL_Terminated => Ld_CVL_Terminated
6419 ,X_Result => Lx_Result
6420 ,X_Return_Status => Lx_Return_Status);
6421
6422 IF Lx_Result <> G_TRUE THEN
6423 RAISE L_EXCEP_NO_DATA_FOUND;
6424 END IF;
6425
6426 IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
6427 THEN
6428
6429 Ld_CVL_Start := Ld_SVL_Start;
6430 Ld_CVL_End := Ld_SVL_End;
6431 Ld_CVL_Terminated := Ld_SVL_Terminated;
6432
6433 END IF;
6434
6435 --
6436 --
6437
6438 Get_Coverage_Type_Attribs
6439 (P_CVL_Id => Lx_CVL_Id
6440 ,P_Set_ExcepionStack => G_FALSE
6441 ,X_Cov_Type_Code => Lx_Cov_Type_Code
6442 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
6443 ,X_Cov_Type_Description => Lx_Cov_Type_Description
6444 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
6445 ,X_Result => Lx_Result
6446 ,X_Return_Status => Lx_Return_Status);
6447
6448 IF Lx_Result <> G_TRUE THEN
6449 RAISE L_EXCEP_NO_DATA_FOUND;
6450 END IF;
6451
6452 X_Coverage_Type.Code := Lx_Cov_Type_Code;
6453 X_Coverage_Type.Meaning := Lx_Cov_Type_Meaning;
6454 X_Coverage_Type.Importance_Level := Lx_Cov_Type_Imp_Level;
6455
6456 X_Result := Lx_Result;
6457 X_Return_Status := Lx_Return_Status;
6458
6459 EXCEPTION
6460
6461 WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_NO_DATA_FOUND THEN
6462
6463 X_Result := Lx_Result;
6464 X_Return_Status := Lx_Return_Status;
6465
6466 WHEN OTHERS THEN
6467
6468 OKC_API.SET_MESSAGE
6469 (P_App_Name => G_APP_NAME_OKC
6470 ,P_Msg_Name => G_UNEXPECTED_ERROR
6471 ,P_Token1 => G_SQLCODE_TOKEN
6472 ,P_Token1_Value => SQLCODE
6473 ,P_Token2 => G_SQLERRM_TOKEN
6474 ,P_Token2_Value => SQLERRM);
6475
6476 OKC_API.SET_MESSAGE
6477 (P_App_Name => G_APP_NAME_OKC
6478 ,P_Msg_Name => G_DEBUG_TOKEN
6479 ,P_Token1 => G_PACKAGE_TOKEN
6480 ,P_Token1_Value => G_PKG_NAME
6481 ,P_Token2 => G_PROGRAM_TOKEN
6482 ,P_Token2_Value => 'Get_Cont_Coverage_Type');
6483
6484 X_Result := G_FALSE;
6485 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6486
6487 END Get_Cont_Coverage_Type;
6488
6489 -----------------------------------------------------------------------------------------------------------------------*
6490
6491 PROCEDURE Get_Coverage_Type
6492 (P_API_Version IN NUMBER
6493 ,P_Init_Msg_List IN VARCHAR2
6494 ,P_Contract_Line_Id IN NUMBER
6495 ,X_Return_Status OUT NOCOPY VARCHAR2
6496 ,X_Msg_Count out nocopy NUMBER
6497 ,X_Msg_Data out nocopy VARCHAR2
6498 ,X_Coverage_Type OUT NOCOPY CovType_Rec_Type)
6499
6500 IS
6501
6502 Lx_Result Gx_Boolean;
6503
6504 BEGIN
6505
6506 Get_Cont_Coverage_Type
6507 (P_API_Version => P_API_Version
6508 ,P_Init_Msg_List => P_Init_Msg_List
6509 ,P_SVL_Id => P_Contract_Line_Id
6510 ,P_Set_ExcepionStack => G_TRUE
6511 ,X_Coverage_Type => X_Coverage_Type
6512 ,X_Msg_Count => X_Msg_Count
6513 ,X_Msg_Data => X_Msg_Data
6514 ,X_Result => Lx_Result
6515 ,X_Return_Status => X_Return_Status);
6516
6517 EXCEPTION
6518
6519 WHEN OTHERS THEN
6520
6521 OKC_API.SET_MESSAGE
6522 (P_App_Name => G_APP_NAME_OKC
6523 ,P_Msg_Name => G_UNEXPECTED_ERROR
6524 ,P_Token1 => G_SQLCODE_TOKEN
6525 ,P_Token1_Value => SQLCODE
6526 ,P_Token2 => G_SQLERRM_TOKEN
6527 ,P_Token2_Value => SQLERRM);
6528
6529 OKC_API.SET_MESSAGE
6530 (P_App_Name => G_APP_NAME_OKC
6531 ,P_Msg_Name => G_DEBUG_TOKEN
6532 ,P_Token1 => G_PACKAGE_TOKEN
6533 ,P_Token1_Value => G_PKG_NAME
6534 ,P_Token2 => G_PROGRAM_TOKEN
6535 ,P_Token2_Value => 'Get_Coverage_Type');
6536
6537 --X_Result := G_FALSE;
6538 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6539
6540 END Get_Coverage_Type;
6541
6542 -----------------------------------------------------------------------------------------------------------------------*
6543
6544 PROCEDURE Get_Cont_Preferred_Engineers
6545 (P_API_Version IN NUMBER
6546 ,P_Init_Msg_List IN VARCHAR2
6547 ,P_SVL_Id IN Gx_OKS_Id
6548 ,P_business_process_id IN NUMBER -- added for 11.5.9 (patchset I) enhancement # 2467065
6549 ,P_request_date IN DATE -- added for 11.5.9 (patchset I) enhancement # 2467065
6550 ,P_Set_ExcepionStack IN Gx_Boolean
6551 ,X_Pref_Engineers OUT NOCOPY PrfEng_Tbl_Type
6552 ,X_Msg_Count OUT NOCOPY NUMBER
6553 ,X_Msg_Data OUT NOCOPY VARCHAR2
6554 ,X_Result out nocopy Gx_Boolean
6555 ,X_Return_Status out nocopy Gx_Ret_Sts)
6556 IS
6557
6558 --
6559 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6560 --
6561
6562 /*
6563 CURSOR Lx_Csr_PrefEngrs(Cx_SBL_Id IN Gx_OKS_Id,Ld_Request_Date IN Date) IS
6564 SELECT RSC.resource_id Resource_Id
6565 ,decode(RSC.category,'EMPLOYEE','RS_EMPLOYEE',RSC.category) Resource_Type
6566 -- ,decode(RSC.Resource_Type,'EMPLOYEE','RS_EMPLOYEE',RSC.Resource_Type) Resource_Type
6567 ,cimbp.object1_id1
6568 ,con.primary_yn
6569 ,con.resource_class
6570 FROM JTF_RS_RESOURCE_EXTNS RSC --OKX_Resources_V RSC
6571 ,OKC_Contacts CON
6572 ,OKC_K_Party_Roles_B ROL
6573 ,OKC_K_Lines_B BPL
6574 ,OKC_K_Lines_B SBL
6575 ,OKC_K_Lines_B COV
6576 ,okc_k_items cimbp
6577 WHERE SBL.Id = Cx_SBL_Id
6578 AND SBL.Lse_Id IN (1,14,19)
6579 and cov.cle_id = sbl.id
6580 and cov.lse_id in (2,15,20)
6581 AND BPL.cle_id = COV.id
6582 AND BPL.Lse_Id IN (3,16,21)
6583 and bpl.id = cimbp.cle_id
6584 and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
6585 AND trunc(nvl(Ld_Request_Date,sysdate)) >= trunc(bpl.start_date)
6586 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
6587 AND ROL.Cle_Id = BPL.Id
6588 AND CON.Cpl_Id = ROL.Id
6589 AND CON.Jtot_Object1_Code = 'OKX_RESOURCE'
6590 AND RSC.resource_id = CON.Object1_Id1
6591 AND SBL.dnz_chr_id = BPL.dnz_chr_id
6592 AND SBL.dnz_chr_id = COV.dnz_chr_id
6593 AND BPL.dnz_chr_id = ROL.dnz_chr_id
6594 AND ROL.dnz_chr_id = CON.dnz_chr_id
6595
6596 UNION ALL
6597
6598 SELECT RSG.Id1 Resource_Id
6599 ,RSG.Resource_Type Resource_Type
6600 ,cimbp.object1_id1
6601 ,con.primary_yn
6602 ,con.resource_class
6603 FROM OKS_Resource_Groups_V RSG
6604 ,OKC_Contacts CON
6605 ,OKC_K_Party_Roles_B ROL
6606 ,OKC_K_Lines_B BPL
6607 ,OKC_K_Lines_B SBL
6608 ,OKC_K_Lines_B COV
6609 ,okc_k_items cimbp
6610 WHERE SBL.Id = Cx_SBL_Id
6611 AND SBL.Lse_Id IN (1,14,19)
6612 and cov.cle_id = sbl.id
6613 and cov.lse_id in (2,15,20)
6614 AND BPL.cle_id = COV.id
6615 AND BPL.Lse_Id IN (3,16,21)
6616 and bpl.id = cimbp.cle_id
6617 and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
6618 AND trunc(nvl(Ld_Request_Date,sysdate)) >= trunc(bpl.start_date)
6619 and trunc(nvl(Ld_Request_Date,sysdate)) <= trunc(get_final_end_date(bpl.dnz_chr_id,bpl.end_date)) -- uptake grace period
6620 AND ROL.Cle_Id = BPL.Id
6621 AND CON.Cpl_Id = ROL.Id
6622 AND CON.Jtot_Object1_Code = 'OKS_RSCGROUP'
6623 AND RSG.Id1 = CON.Object1_Id1
6624 AND RSG.Id2 = CON.Object1_Id2
6625 AND SBL.dnz_chr_id = BPL.dnz_chr_id
6626 AND SBL.dnz_chr_id = COV.dnz_chr_id
6627 AND BPL.dnz_chr_id = ROL.dnz_chr_id
6628 AND ROL.dnz_chr_id = CON.dnz_chr_id;
6629 */
6630
6631 --
6632 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6633 --
6634
6635 CURSOR Lx_Csr_PrefEngrs(Cx_SBL_Id IN Gx_OKS_Id) IS
6636 SELECT RSC.resource_id Resource_Id
6637 ,decode(RSC.category,'EMPLOYEE','RS_EMPLOYEE',RSC.category) Resource_Type
6638 -- ,decode(RSC.Resource_Type,'EMPLOYEE','RS_EMPLOYEE',RSC.Resource_Type) Resource_Type
6639 ,cimbp.object1_id1
6640 ,con.primary_yn
6641 ,con.resource_class
6642 ,bpl.start_date bpl_start_date
6643 ,bpl.end_date bpl_end_date
6644 ,ksl.Standard_Cov_YN Standard_Cov_YN
6645 ,bpl.id bpl_id
6646 ,ksl.dnz_chr_id ksl_dnz_chr_id
6647
6648 FROM JTF_RS_RESOURCE_EXTNS RSC --OKX_Resources_V RSC
6649 ,OKC_Contacts CON
6650 ,OKC_K_Party_Roles_B ROL
6651 ,OKC_K_Lines_B BPL
6652 ,okc_k_items cimbp
6653 ,oks_k_lines_b ksl
6654 WHERE ksl.cle_id = Cx_SBL_Id
6655 AND BPL.cle_id = ksl.Coverage_Id
6656 AND BPL.Lse_Id IN (3,16,21)
6657 and bpl.id = cimbp.cle_id
6658 and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
6659 AND ROL.Cle_Id = BPL.Id
6660 AND CON.Cpl_Id = ROL.Id
6661 AND CON.Jtot_Object1_Code = 'OKX_RESOURCE'
6662 AND RSC.resource_id = CON.Object1_Id1
6663 -- AND BPL.dnz_chr_id = COV.dnz_chr_id
6664 AND BPL.dnz_chr_id = ROL.dnz_chr_id
6665 AND ROL.dnz_chr_id = CON.dnz_chr_id
6666
6667 UNION ALL
6668
6669 SELECT RSG.Id1 Resource_Id
6670 ,RSG.Resource_Type Resource_Type
6671 ,cimbp.object1_id1
6672 ,con.primary_yn
6673 ,con.resource_class
6674 ,bpl.start_date bpl_start_date
6675 ,bpl.end_date bpl_end_date
6676 ,ksl.Standard_Cov_YN Standard_Cov_YN
6677 ,bpl.id bpl_id
6678 ,ksl.dnz_chr_id ksl_dnz_chr_id
6679
6680 FROM OKS_Resource_Groups_V RSG
6681 ,OKC_Contacts CON
6682 ,OKC_K_Party_Roles_B ROL
6683 ,OKC_K_Lines_B BPL
6684 ,okc_k_items cimbp
6685 ,oks_k_lines_b ksl
6686 WHERE ksl.cle_id = Cx_SBL_Id
6687 AND BPL.cle_id = ksl.Coverage_Id
6688 AND BPL.Lse_Id IN (3,16,21)
6689 and bpl.id = cimbp.cle_id
6690 and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
6691 AND ROL.Cle_Id = BPL.Id
6692 AND CON.Cpl_Id = ROL.Id
6693 AND CON.Jtot_Object1_Code = 'OKS_RSCGROUP'
6694 AND RSG.Id1 = CON.Object1_Id1
6695 AND RSG.Id2 = CON.Object1_Id2
6696 -- AND BPL.dnz_chr_id = COV.dnz_chr_id
6697 AND BPL.dnz_chr_id = ROL.dnz_chr_id
6698 AND ROL.dnz_chr_id = CON.dnz_chr_id;
6699
6700 --
6701 --
6702
6703 Lx_SBL_Id CONSTANT Gx_OKS_Id := P_SVL_Id;
6704 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
6705 Ld_Request_Date CONSTANT Date := nvl(P_request_date,sysdate);
6706 Lx_Pref_Engineers PrfEng_Tbl_Type;
6707
6708 Li_TableIdx BINARY_INTEGER;
6709
6710 Ld_SVL_Start DATE;
6711 Ld_SVL_End DATE;
6712 Ld_SVL_Terminated DATE;
6713
6714 Ld_BPL_Start DATE;
6715 Ld_BPL_End DATE;
6716 Ld_BPL_Terminated DATE;
6717
6718 Lx_Result Gx_Boolean;
6719 Lx_Return_Status Gx_Ret_Sts;
6720
6721 L_EXCEP_NULL_VALUE EXCEPTION;
6722 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
6723 L_EXCEP_INVALID_CONTRACT_LINE EXCEPTION;
6724
6725 --
6726 -- Added for 12.0 Coverage Rearch project (JVARGHES)
6727 --
6728
6729 Ln_CVL_Id NUMBER;
6730 Lv_Std_Cov_YN VARCHAR2(10);
6731
6732 --
6733 -- Added for 12.0 Coverage Rearch project (JVARGHES)
6734 --
6735
6736 Ld_BPL_OFS_Start DATE;
6737 Ln_BPL_OFS_Duration NUMBER;
6738 Lv_BPL_OFS_UOM VARCHAR2(100);
6739
6740 L_EXCEP_NO_DATA_FOUND EXCEPTION;
6741 --
6742
6743 BEGIN
6744
6745 Lx_Result := G_TRUE;
6746 Lx_Return_Status := G_RET_STS_SUCCESS;
6747
6748 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
6749
6750 Validate_Required_NumValue
6751 (P_Num_Value => Lx_SBL_Id
6752 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
6753 ,P_ExcepionMsg => 'Contract - Service/Business Process Line'
6754 ,X_Result => Lx_result
6755 ,X_Return_Status => Lx_Return_Status);
6756
6757 IF Lx_result <> G_TRUE THEN
6758 RAISE L_EXCEP_NULL_VALUE;
6759 END IF;
6760
6761 --
6762 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6763 --
6764 -- Validate_Service_Line
6765 -- (P_SVL_Id => Lx_SBL_Id
6766 -- ,P_Set_ExcepionStack => G_FALSE
6767 -- ,X_SVL_Start => Ld_SVL_Start
6768 -- ,X_SVL_End => Ld_SVL_End
6769 -- ,X_SVL_Terminated => Ld_SVL_Terminated
6770 -- ,X_Result => Lx_result
6771 -- ,X_Return_Status => Lx_Return_Status );
6772 --
6773 --
6774 -- Added for 12.0 Coverage Rearch project (JVARGHES)
6775 --
6776 Validate_Service_Line
6777 (P_SVL_Id => Lx_SBL_Id
6778 ,P_Set_ExcepionStack => G_FALSE
6779 ,X_CVL_Id => Ln_CVL_Id
6780 ,X_Std_Cov_YN => Lv_Std_Cov_YN
6781 ,X_SVL_Start => Ld_SVL_Start
6782 ,X_SVL_End => Ld_SVL_End
6783 ,X_SVL_Terminated => Ld_SVL_Terminated
6784 ,X_Result => Lx_result
6785 ,X_Return_Status => Lx_Return_Status );
6786
6787 --
6788 --
6789
6790 IF Lx_result <> G_TRUE THEN
6791 RAISE L_EXCEP_NULL_VALUE;
6792 END IF;
6793
6794 Li_TableIdx := 0;
6795
6796 FOR Idx IN Lx_Csr_PrefEngrs(Lx_SBL_Id) LOOP
6797
6798 --
6799 -- Added for 12.0 Coverage Rearch project (JVARGHES)
6800 --
6801
6802 IF Idx.Standard_Cov_YN = 'Y' THEN
6803
6804 Get_BP_Line_Start_Offset
6805 (P_BPL_Id => Idx.BPL_Id
6806 ,P_SVL_Start => Ld_SVL_Start
6807 ,X_BPL_OFS_Start => Ld_BPL_Start
6808 ,X_BPL_OFS_Duration => Ln_BPL_OFS_Duration
6809 ,X_BPL_OFS_UOM => Lv_BPL_OFS_UOM
6810 ,X_Return_Status => Lx_Return_Status);
6811
6812 IF Lx_Return_Status<> G_RET_STS_SUCCESS THEN
6813 RAISE L_EXCEP_NO_DATA_FOUND;
6814 END IF;
6815
6816 Ld_BPL_End := Ld_SVL_End;
6817
6818 ELSE
6819
6820 Ld_BPL_Start := Idx.BPL_Start_date;
6821 Ld_BPL_End := Idx.BPL_End_Date;
6822
6823 END IF;
6824
6825 ld_bpl_end := oks_entitlements_pvt.get_final_end_date(idx.ksl_dnz_chr_id,Ld_BPL_End );
6826
6827 --
6828
6829 IF trunc(nvl(Ld_Request_Date,sysdate)) between trunc(Ld_BPL_Start) and trunc(ld_bpl_end) then -- Added for Coverage Rearch project (JVARGHES)
6830
6831 Li_TableIdx := Li_TableIdx + 1;
6832
6833 Lx_Pref_Engineers(Li_TableIdx).Engineer_Id := Idx.Resource_Id;
6834 Lx_Pref_Engineers(Li_TableIdx).Resource_Type := Idx.Resource_Type;
6835 Lx_Pref_Engineers(Li_TableIdx).business_process_id := to_number(Idx.object1_id1);
6836 Lx_Pref_Engineers(Li_TableIdx).primary_flag := Idx.primary_yn;
6837 Lx_Pref_Engineers(Li_TableIdx).resource_class := Idx.resource_class;
6838
6839 END IF; -- Coverage Rearch project (JVARGHES)
6840
6841 END LOOP;
6842
6843 X_Pref_Engineers := Lx_Pref_Engineers;
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_UNEXPECTED_ERR THEN
6850
6851 X_Result := Lx_Result;
6852 X_Return_Status := Lx_Return_Status;
6853
6854 WHEN L_EXCEP_INVALID_CONTRACT_LINE THEN
6855
6856 Lx_Result := G_FALSE;
6857
6858 IF Lx_Set_ExcepionStack = G_TRUE THEN
6859
6860 OKC_API.SET_MESSAGE
6861 (P_App_Name => G_APP_NAME_OKC
6862 ,P_Msg_Name => G_INVALID_VALUE
6863 ,P_Token1 => G_COL_NAME_TOKEN
6864 ,P_Token1_Value => 'Contract - Service/Business Process Line');
6865
6866 Lx_Return_Status := G_RET_STS_ERROR;
6867
6868 END IF;
6869
6870 X_Result := Lx_Result;
6871 X_Return_Status := Lx_Return_Status;
6872
6873 WHEN OTHERS THEN
6874
6875 OKC_API.SET_MESSAGE
6876 (P_App_Name => G_APP_NAME_OKC
6877 ,P_Msg_Name => G_UNEXPECTED_ERROR
6878 ,P_Token1 => G_SQLCODE_TOKEN
6879 ,P_Token1_Value => SQLCODE
6880 ,P_Token2 => G_SQLERRM_TOKEN
6881 ,P_Token2_Value => SQLERRM);
6882
6883 OKC_API.SET_MESSAGE
6884 (P_App_Name => G_APP_NAME_OKC
6885 ,P_Msg_Name => G_DEBUG_TOKEN
6886 ,P_Token1 => G_PACKAGE_TOKEN
6887 ,P_Token1_Value => G_PKG_NAME
6888 ,P_Token2 => G_PROGRAM_TOKEN
6889 ,P_Token2_Value => 'Get_Cont_Preferred_Engineers');
6890
6891 X_Result := G_FALSE;
6892 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6893
6894 END Get_Cont_Preferred_Engineers;
6895
6896 -----------------------------------------------------------------------------------------------------------------------*
6897
6898 PROCEDURE get_preferred_engineers
6899 (p_api_version IN Number
6900 ,p_init_msg_list IN Varchar2
6901 ,p_contract_line_id IN Number
6902 ,P_business_process_id IN NUMBER -- added for 11.5.9 (patchset I) enhancement # 2467065
6903 ,P_request_date IN DATE -- added for 11.5.9 (patchset I) enhancement # 2467065
6904 ,x_return_status out nocopy Varchar2
6905 ,x_msg_count out nocopy Number
6906 ,x_msg_data out nocopy Varchar2
6907 ,x_prf_engineers out nocopy prfeng_tbl_type)
6908 IS
6909 Lx_Result Gx_Boolean;
6910 BEGIN
6911
6912 Get_Cont_Preferred_Engineers
6913 (P_API_Version => P_API_Version
6914 ,P_Init_Msg_List => P_Init_Msg_List
6915 ,P_SVL_Id => P_Contract_Line_Id
6916 ,P_business_process_id => P_business_process_id -- added for 11.5.9 (patchset I) enhancement # 2467065
6917 ,P_request_date => P_request_date -- added for 11.5.9 (patchset I) enhancement # 2467065
6918 ,P_Set_ExcepionStack => G_TRUE
6919 ,X_Pref_Engineers => X_Prf_Engineers
6920 ,X_Msg_Count => X_Msg_Count
6921 ,X_Msg_Data => X_Msg_Data
6922 ,X_Result => Lx_Result
6923 ,X_Return_Status => X_Return_Status);
6924
6925 EXCEPTION
6926
6927 WHEN OTHERS THEN
6928
6929 OKC_API.SET_MESSAGE
6930 (P_App_Name => G_APP_NAME_OKC
6931 ,P_Msg_Name => G_UNEXPECTED_ERROR
6932 ,P_Token1 => G_SQLCODE_TOKEN
6933 ,P_Token1_Value => SQLCODE
6934 ,P_Token2 => G_SQLERRM_TOKEN
6935 ,P_Token2_Value => SQLERRM);
6936
6937 OKC_API.SET_MESSAGE
6938 (P_App_Name => G_APP_NAME_OKC
6939 ,P_Msg_Name => G_DEBUG_TOKEN
6940 ,P_Token1 => G_PACKAGE_TOKEN
6941 ,P_Token1_Value => G_PKG_NAME
6942 ,P_Token2 => G_PROGRAM_TOKEN
6943 ,P_Token2_Value => 'Get_Preferred_Engineers');
6944
6945 --X_Result := G_FALSE;
6946 X_Return_Status := G_RET_STS_UNEXP_ERROR;
6947
6948 END Get_Preferred_Engineers;
6949
6950 -----------------------------------------------------------------------------------------------------------------------*
6951
6952 PROCEDURE Get_Contract_Contacts
6953 (P_API_Version IN NUMBER
6954 ,P_Init_Msg_List IN VARCHAR2
6955 ,P_Chr_Id IN Gx_OKS_Id
6956 ,P_Cle_Id IN Gx_OKS_Id
6957 ,X_Cont_Contacts OUT NOCOPY Ent_Contact_Tbl
6958 ,X_Msg_Count OUT NOCOPY NUMBER
6959 ,X_Msg_Data OUT NOCOPY VARCHAR2
6960 ,X_Result out nocopy Gx_Boolean
6961 ,X_Return_Status out nocopy Gx_Ret_Sts)
6962 IS
6963
6964 -- getting resource based contacts for contract id.
6965
6966 CURSOR Lx_Csr_Chr_RscContacts(Cx_Chr_Id IN Gx_OKS_Id) IS
6967 SELECT PR.DNZ_CHR_ID CONTRACT_ID
6968 ,CS.RESOURCE_ID CONTACT_ID
6969 ,CS.CATEGORY RSC_CATEGORY
6970 ,NULL CONTACT_NAME
6971 ,PR.ID CONTACT_ROLE_ID
6972 ,CO.CRO_CODE CONTACT_ROLE_CODE
6973 ,HDR.ORG_ID ORG_ID -- Modified for 12.0 MOAC project (JVARGHES)
6974 FROM JTF_RS_RESOURCE_EXTNS CS --OKX_RESOURCES_V CS
6975 ,OKC_CONTACTS CO
6976 ,OKC_K_PARTY_ROLES_B PR
6977 ,OKC_K_HEADERS_ALL_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
6978 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
6979
6980 -- Modified for 12.0 MOAC project (JVARGHES)
6981 AND HDR.ID = Cx_Chr_Id
6982 AND HDR.ID = PR.Dnz_Chr_Id
6983
6984 and co.dnz_chr_id = pr.dnz_chr_id
6985 AND CO.CPL_ID = PR.ID
6986 AND CO.OBJECT1_ID1 = CS.RESOURCE_ID --CS.ID1
6987 AND CO.OBJECT1_ID2 = '#' --CS.ID2
6988 AND CO.JTOT_OBJECT1_CODE = 'OKX_RESOURCE';
6989
6990 -- getting po agents based contacts for contract id.
6991
6992 CURSOR Lx_Csr_Chr_POAContacts(Cx_Chr_Id IN Gx_OKS_Id) IS
6993 SELECT PR.DNZ_CHR_ID CONTRACT_ID
6994 ,POA.AGENT_ID CONTACT_ID
6995 ,'PO_AGENT' RSC_CATEGORY
6996 ,PER.FULL_NAME CONTACT_NAME
6997 ,PR.ID CONTACT_ROLE_ID
6998 ,CO.CRO_CODE CONTACT_ROLE_CODE
6999 FROM PO_AGENTS POA --OKX_BUYERS_V CS
7000 ,PER_ALL_PEOPLE_F PER
7001 ,OKC_CONTACTS CO
7002 ,OKC_K_PARTY_ROLES_B PR
7003 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7004 and co.dnz_chr_id = pr.dnz_chr_id
7005 AND CO.CPL_ID = PR.ID
7006 AND CO.OBJECT1_ID1 = POA.AGENT_ID --CS.ID1
7007 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7008 AND CO.JTOT_OBJECT1_CODE = 'OKX_BUYER'
7009 and POA.AGENT_ID = PER.PERSON_ID
7010 and PER.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_PEOPLE_F A
7011 WHERE A.PERSON_ID = PER.PERSON_ID);
7012
7013 -- getting sales persons based contacts for contract id.
7014
7015 CURSOR Lx_Csr_Chr_SRPContacts(Cx_Chr_Id IN Gx_OKS_Id) IS
7016 SELECT PR.DNZ_CHR_ID CONTRACT_ID
7017 ,S.SALESREP_ID CONTACT_ID
7018 ,CS.CATEGORY RSC_CATEGORY
7019 ,TL.RESOURCE_NAME CONTACT_NAME
7020 ,PR.ID CONTACT_ROLE_ID
7021 ,CO.CRO_CODE CONTACT_ROLE_CODE
7022 FROM JTF_RS_RESOURCE_EXTNS CS
7023 ,JTF_RS_SALESREPS S
7024 ,JTF_RS_RESOURCE_EXTNS_TL TL -- Bug Fix #5442182 hmnair
7025 ,OKC_CONTACTS CO
7026 ,OKC_K_PARTY_ROLES_B PR
7027 ,OKC_K_HEADERS_ALL_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
7028 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7029 AND co.dnz_chr_id = pr.dnz_chr_id
7030 AND CO.CPL_ID = PR.ID
7031 AND CO.OBJECT1_ID1 = S.SALESREP_ID --CS.ID1
7032 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7033 AND CO.JTOT_OBJECT1_CODE = 'OKX_SALEPERS'
7034
7035 -- Modified for 12.0 MOAC project (JVARGHES)
7036 AND HDR.ID = Cx_Chr_Id
7037 AND HDR.ID = PR.Dnz_Chr_Id
7038 AND S.ORG_ID = HDR.ORG_ID
7039 -- AND (S.ORG_ID = SYS_CONTEXT('OKC_CONTEXT','ORG_ID') OR NVL(SYS_CONTEXT('OKC_CONTEXT','ORG_ID'),-99) = -99)
7040 AND S.RESOURCE_ID = CS.RESOURCE_ID
7041 AND CS.CATEGORY in ('EMPLOYEE','OTHER','PARTY','PARTNER','SUPPLIER_CONTACT')
7042 AND TL.RESOURCE_ID = CS.RESOURCE_ID -- Bug Fix #5442182 hmnair
7043 AND TL.LANGUAGE = USERENV('LANG')
7044 AND TL.CATEGORY = CS.CATEGORY;
7045
7046 -- getting resource based contacts for contract line id.
7047
7048 CURSOR Lx_Csr_Cle_RscContacts(Cx_Cle_Id IN Gx_OKS_Id,Cx_Chr_Id IN Gx_OKS_Id) IS
7049 SELECT PR.DNZ_CHR_ID CONTRACT_ID
7050 ,CS.RESOURCE_ID CONTACT_ID
7051 ,CS.CATEGORY RSC_CATEGORY
7052 ,NULL CONTACT_NAME
7053 ,PR.ID CONTACT_ROLE_ID
7054 ,CO.CRO_CODE CONTACT_ROLE_CODE
7055 ,HDR.ORG_ID ORG_ID -- Modified for 12.0 MOAC project (JVARGHES)
7056 FROM JTF_RS_RESOURCE_EXTNS CS --OKX_RESOURCES_V CS
7057 ,OKC_CONTACTS CO
7058 ,OKC_K_PARTY_ROLES_B PR
7059 ,OKC_K_HEADERS_ALL_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
7060 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7061 and PR.CLE_ID = Cx_Cle_Id
7062
7063 -- Modified for 12.0 MOAC project (JVARGHES)
7064 AND HDR.ID = Cx_Chr_Id
7065 AND HDR.ID = PR.Dnz_Chr_Id
7066 --
7067 and co.dnz_chr_id = pr.dnz_chr_id
7068 AND CO.CPL_ID = PR.ID
7069 AND CO.OBJECT1_ID1 = CS.RESOURCE_ID --CS.ID1
7070 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7071 AND CO.JTOT_OBJECT1_CODE = 'OKX_RESOURCE';
7072
7073 -- getting po agents based contacts for contract line id.
7074
7075 CURSOR Lx_Csr_Cle_POAContacts(Cx_Cle_Id IN Gx_OKS_Id,Cx_Chr_Id IN Gx_OKS_Id) IS
7076 SELECT PR.DNZ_CHR_ID CONTRACT_ID
7077 ,POA.AGENT_ID CONTACT_ID
7078 ,'PO_AGENT' RSC_CATEGORY
7079 ,PER.FULL_NAME CONTACT_NAME
7080 ,PR.ID CONTACT_ROLE_ID
7081 ,CO.CRO_CODE CONTACT_ROLE_CODE
7082 FROM PO_AGENTS POA --OKX_BUYERS_V CS
7083 ,PER_ALL_PEOPLE_F PER
7084 ,OKC_CONTACTS CO
7085 ,OKC_K_PARTY_ROLES_B PR
7086 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7087 and PR.CLE_ID = Cx_Cle_Id
7088 and co.dnz_chr_id = pr.dnz_chr_id
7089 AND CO.CPL_ID = PR.ID
7090 AND CO.OBJECT1_ID1 = POA.AGENT_ID --CS.ID1
7091 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7092 AND CO.JTOT_OBJECT1_CODE = 'OKX_BUYER'
7093 and POA.AGENT_ID = PER.PERSON_ID
7094 and PER.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_PEOPLE_F A
7095 WHERE A.PERSON_ID = PER.PERSON_ID);
7096
7097
7098 -- getting sales persons based contacts for contract line id.
7099
7100 CURSOR Lx_Csr_Cle_SRPContacts(Cx_Cle_Id IN Gx_OKS_Id,Cx_Chr_Id IN Gx_OKS_Id) IS
7101 SELECT PR.DNZ_CHR_ID CONTRACT_ID
7102 ,S.SALESREP_ID CONTACT_ID
7103 ,CS.CATEGORY RSC_CATEGORY
7104 ,TL.RESOURCE_NAME CONTACT_NAME -- Bug Fix #5442182 hmnair
7105 ,PR.ID CONTACT_ROLE_ID
7106 ,CO.CRO_CODE CONTACT_ROLE_CODE
7107 FROM JTF_RS_RESOURCE_EXTNS CS
7108 ,JTF_RS_SALESREPS S
7109 ,JTF_RS_RESOURCE_EXTNS_TL TL -- Bug Fix #5442182 hmnair
7110 ,OKC_CONTACTS CO
7111 ,OKC_K_PARTY_ROLES_B PR
7112 ,OKC_K_HEADERS_ALL_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
7113 WHERE PR.DNZ_CHR_ID = Cx_Chr_Id
7114 and PR.CLE_ID = Cx_Cle_Id
7115 and co.dnz_chr_id = pr.dnz_chr_id
7116 AND CO.CPL_ID = PR.ID
7117 AND CO.OBJECT1_ID1 = S.SALESREP_ID --CS.ID1
7118 AND CO.OBJECT1_ID2 = '#' --CS.ID2
7119 AND CO.JTOT_OBJECT1_CODE = 'OKX_SALEPERS'
7120
7121 -- Modified for 12.0 MOAC project (JVARGHES)
7122 AND HDR.ID = Cx_Chr_Id
7123 AND HDR.ID = PR.Dnz_Chr_Id
7124 AND S.ORG_ID = HDR.Org_ID
7125 -- AND (S.ORG_ID = SYS_CONTEXT('OKC_CONTEXT','ORG_ID') OR NVL(SYS_CONTEXT('OKC_CONTEXT','ORG_ID'),-99) = -99)
7126 AND S.RESOURCE_ID = CS.RESOURCE_ID
7127 AND CS.CATEGORY in ('EMPLOYEE','OTHER','PARTY','PARTNER','SUPPLIER_CONTACT')
7128 AND TL.RESOURCE_ID = CS.RESOURCE_ID -- Bug Fix #5442182 hmnair
7129 AND TL.LANGUAGE = USERENV('LANG')
7130 AND TL.CATEGORY = CS.CATEGORY;
7131
7132
7133 CURSOR Lx_Csr_dnz_Chr(Cx_Cle_Id IN Gx_OKS_Id) IS
7134 SELECT CLE.DNZ_CHR_ID CONTRACT_ID
7135 FROM Okc_K_lines_B cle
7136 WHERE cle.id = Cx_Cle_Id
7137 AND rownum = 1;
7138
7139 -- for category 'SUPPLIER_CONTACT'
7140
7141 CURSOR Lx_Csr_vndr_name(Cx_Resource_Id IN number, cn_org_id in number) IS
7142 SELECT C.LAST_NAME NAME
7143 FROM JTF_RS_RESOURCE_EXTNS RSC ,
7144 PO_VENDOR_SITES_ALL S ,
7145 PO_VENDOR_CONTACTS C
7146 WHERE RSC.RESOURCE_ID = Cx_Resource_Id
7147 and C.VENDOR_CONTACT_ID = RSC.SOURCE_ID
7148 and S.VENDOR_SITE_ID = C.VENDOR_SITE_ID
7149 AND S.ORG_ID = cn_org_id ; -- Modified for 12.0 MOAC project (JVARGHES)
7150 -- AND S.ORG_ID = sys_context('OKC_CONTEXT','ORG_ID'); -- Modified for 12.0 MOAC project (JVARGHES)
7151
7152 -- for category 'EMPLOYEE'
7153
7154 CURSOR Lx_Csr_emp_name(Cx_Resource_Id IN number) IS
7155 SELECT PER.FULL_NAME NAME
7156 FROM JTF_RS_RESOURCE_EXTNS RSC ,
7157 FND_USER U ,
7158 PER_ALL_PEOPLE_F PER
7159 WHERE PER.PERSON_ID = RSC.SOURCE_ID
7160 and U.USER_ID = RSC.USER_ID
7161 and RSC.RESOURCE_ID = Cx_Resource_Id
7162 and PER.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_PEOPLE_F A
7163 WHERE A.PERSON_ID = PER.PERSON_ID);
7164
7165 -- for category 'PARTNER', 'PARTY'
7166
7167 CURSOR Lx_Csr_pty_name(Cx_Resource_Id IN number) IS
7168 SELECT PARTY.PARTY_NAME NAME
7169 FROM JTF_RS_RESOURCE_EXTNS RSC ,
7170 FND_USER U ,
7171 HZ_PARTIES PARTY
7172 WHERE RSC.CATEGORY IN ( 'PARTNER', 'PARTY')
7173 AND PARTY.PARTY_ID = RSC.SOURCE_ID
7174 AND U.USER_ID = RSC.USER_ID
7175 and RSC.RESOURCE_ID = Cx_Resource_Id;
7176
7177
7178 -- for category 'OTHER'
7179
7180 CURSOR Lx_Csr_oth_name(Cx_Resource_Id IN number, cn_org_id in number) IS
7181 SELECT TL.RESOURCE_NAME NAME -- Bug Fix #5442182 hmnair
7182 FROM JTF_RS_RESOURCE_EXTNS RSC ,
7183 FND_USER U ,
7184 JTF_RS_SALESREPS SRP
7185 ,JTF_RS_RESOURCE_EXTNS_TL TL -- Bug Fix #5442182 hmnair
7186 WHERE RSC.CATEGORY = 'OTHER'
7187 AND SRP.RESOURCE_ID = RSC.RESOURCE_ID
7188 AND U.USER_ID = RSC.USER_ID
7189 AND SRP.Org_ID = Cn_Org_Id -- Modified for 12.0 MOAC project (JVARGHES)
7190 --AND SRP.ORG_ID = sys_context ('OKC_CONTEXT', 'ORG_ID') -- Modified for 12.0 MOAC project (JVARGHES)
7191 AND TL.RESOURCE_ID = RSC.RESOURCE_ID -- Bug Fix #5442182 hmnair
7192 AND TL.LANGUAGE = USERENV('LANG')
7193 AND TL.CATEGORY = RSC.CATEGORY
7194 and RSC.RESOURCE_ID = Cx_Resource_Id;
7195
7196 -- cursor for building role meanings plsql table
7197
7198 CURSOR Lx_Csr_Rle_lkup IS
7199 SELECT LU.LOOKUP_CODE CODE,
7200 LU.MEANING MEANING
7201 FROM fnd_lookups lu
7202 WHERE LU.LOOKUP_TYPE = 'OKC_CONTACT_ROLE';
7203
7204
7205 Lx_Chr_Id CONSTANT Gx_OKS_Id := P_Chr_Id;
7206 Lx_Cle_Id CONSTANT Gx_OKS_Id := P_Cle_Id;
7207
7208 Lx_Dnz_Chr_Id Gx_OKS_Id ;
7209
7210 Lx_Cont_Contacts Ent_Contact_Tbl;
7211 Lx_Result Gx_Boolean;
7212 Lx_Return_Status Gx_Ret_Sts;
7213 l_Rle_Lkup_TBL Rle_Lkup_TBL;
7214
7215 Li_TableIdx BINARY_INTEGER;
7216 i BINARY_INTEGER;
7217
7218 BEGIN
7219
7220 Lx_Result := G_TRUE;
7221 Lx_Return_Status := G_RET_STS_SUCCESS;
7222
7223 i := 0;
7224
7225 -- getting dnz_chr_id if cle_id passed to be used in sqls for performance reasons
7226
7227 IF Lx_Cle_Id IS NOT NULL THEN
7228
7229 FOR Idx IN Lx_Csr_dnz_Chr(Lx_Cle_Id) LOOP
7230
7231 Lx_Dnz_Chr_Id := Idx.Contract_Id;
7232
7233 END LOOP;
7234
7235 END IF;
7236
7237 -- building role meaning plsql table for performance reasons.
7238
7239 for Rle_lkup in Lx_Csr_Rle_lkup loop
7240 i := i + 1;
7241 l_Rle_Lkup_TBL(i).code := Rle_lkup.code;
7242 l_Rle_Lkup_TBL(i).meaning := Rle_lkup.meaning;
7243
7244 end loop;
7245
7246 -- actual processing starts here..
7247
7248 Li_TableIdx := 0;
7249
7250 -- building contacts output plsql table for jtf resource based contacts
7251 IF Lx_Cle_Id IS NOT NULL THEN
7252
7253 FOR Idx IN Lx_Csr_Cle_RscContacts(Lx_Cle_Id,Lx_Dnz_Chr_Id) LOOP
7254
7255 if Idx.Rsc_Category = 'SUPPLIER_CONTACT' then
7256 for Lx_Rec_vndr_name in Lx_Csr_vndr_name(Idx.Contact_Id, idx.org_id) loop
7257 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7258 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7259 Li_TableIdx := Li_TableIdx + 1;
7260 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7261 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7262 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_Rec_vndr_name.name;
7263 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7264 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7265 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7266 end if;
7267 end loop;
7268 end loop;
7269 end if;
7270
7271 if Idx.Rsc_Category = 'EMPLOYEE' then
7272 for Lx_rec_emp_name in Lx_Csr_emp_name(Idx.Contact_Id) loop
7273 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7274 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7275 Li_TableIdx := Li_TableIdx + 1;
7276 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7277 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7278 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_emp_name.name;
7279 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7280 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7281 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7282 end if;
7283 end loop;
7284 end loop;
7285 end if;
7286
7287
7288 if Idx.Rsc_Category in ('PARTNER','PARTY') then
7289 for Lx_rec_pty_name in Lx_Csr_pty_name(Idx.Contact_Id) loop
7290 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7291 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7292 Li_TableIdx := Li_TableIdx + 1;
7293 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7294 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7295 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_pty_name.name;
7296 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7297 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7298 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7299 end if;
7300 end loop;
7301 end loop;
7302 end if;
7303
7304 if Idx.Rsc_Category = ('OTHER') then
7305 for Lx_rec_oth_name in Lx_Csr_oth_name(Idx.Contact_Id, idx.org_id) loop
7306 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7307 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7308 Li_TableIdx := Li_TableIdx + 1;
7309 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7310 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7311 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_oth_name.name;
7312 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7313 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7314 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7315 end if;
7316 end loop;
7317 end loop;
7318 end if;
7319
7320 END LOOP;
7321
7322 -- building contacts output plsql table for buyers based contacts
7323
7324 FOR Idx IN Lx_Csr_Cle_POAContacts(Lx_Cle_Id,Lx_Dnz_Chr_Id) LOOP
7325 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7326 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7327 Li_TableIdx := Li_TableIdx + 1;
7328 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7329 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7330 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Idx.contact_name;
7331 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7332 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7333 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7334 end if;
7335 end loop;
7336 END LOOP;
7337
7338 -- building contacts output plsql table for sales persons based contacts
7339
7340 FOR Idx IN Lx_Csr_Cle_SRPContacts(Lx_Cle_Id,Lx_Dnz_Chr_Id) LOOP
7341 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7342 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7343 Li_TableIdx := Li_TableIdx + 1;
7344 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7345 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7346 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Idx.contact_name;
7347 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7348 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7349 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7350 end if;
7351 end loop;
7352 END LOOP;
7353
7354 else
7355
7356 FOR Idx IN Lx_Csr_Chr_RscContacts(Lx_Chr_Id) LOOP
7357
7358 if Idx.Rsc_Category = 'SUPPLIER_CONTACT' then
7359 for Lx_Rec_vndr_name in Lx_Csr_vndr_name(Idx.Contact_Id, idx.org_id) loop
7360 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7361 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7362 Li_TableIdx := Li_TableIdx + 1;
7363 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7364 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7365 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_Rec_vndr_name.name;
7366 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7367 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7368 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7369 end if;
7370 end loop;
7371 end loop;
7372 end if;
7373
7374 if Idx.Rsc_Category = 'EMPLOYEE' then
7375 for Lx_rec_emp_name in Lx_Csr_emp_name(Idx.Contact_Id) loop
7376 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7377 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7378 Li_TableIdx := Li_TableIdx + 1;
7379 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7380 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7381 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_emp_name.name;
7382 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7383 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7384 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7385 end if;
7386 end loop;
7387 end loop;
7388 end if;
7389
7390
7391 if Idx.Rsc_Category in ('PARTNER','PARTY') then
7392 for Lx_rec_pty_name in Lx_Csr_pty_name(Idx.Contact_Id) loop
7393 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7394 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7395 Li_TableIdx := Li_TableIdx + 1;
7396 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7397 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7398 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_pty_name.name;
7399 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7400 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7401 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7402 end if;
7403 end loop;
7404 end loop;
7405 end if;
7406
7407 if Idx.Rsc_Category = ('OTHER') then
7408 for Lx_rec_oth_name in Lx_Csr_oth_name(Idx.Contact_Id, idx.org_id) loop
7409 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7410 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7411 Li_TableIdx := Li_TableIdx + 1;
7412 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7413 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7414 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Lx_rec_oth_name.name;
7415 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7416 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7417 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7418 end if;
7419 end loop;
7420 end loop;
7421 end if;
7422
7423 END LOOP;
7424
7425 -- building contacts output plsql table for buyers based contacts
7426
7427 FOR Idx IN Lx_Csr_Chr_POAContacts(Lx_Chr_Id) LOOP
7428 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7429 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7430 Li_TableIdx := Li_TableIdx + 1;
7431 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7432 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7433 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Idx.contact_name;
7434 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7435 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7436 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7437 end if;
7438 end loop;
7439 END LOOP;
7440
7441 -- building contacts output plsql table for sales persons based contacts
7442
7443 FOR Idx IN Lx_Csr_Chr_SRPContacts(Lx_Chr_Id) LOOP
7444 for i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7445 if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7446 Li_TableIdx := Li_TableIdx + 1;
7447 Lx_Cont_Contacts(Li_TableIdx).Contract_Id := Idx.Contract_Id;
7448 Lx_Cont_Contacts(Li_TableIdx).Contact_Id := Idx.Contact_Id;
7449 Lx_Cont_Contacts(Li_TableIdx).Contact_Name := Idx.contact_name;
7450 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id := Idx.Contact_Role_Id;
7451 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code := Idx.Contact_Role_Code;
7452 Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name := l_Rle_Lkup_TBL(i).meaning;
7453 end if;
7454 end loop;
7455 END LOOP;
7456
7457 end if;
7458
7459 X_Cont_Contacts := Lx_Cont_Contacts;
7460 X_Result := Lx_Result;
7461 X_Return_Status := Lx_Return_Status;
7462
7463 EXCEPTION
7464
7465 WHEN OTHERS THEN
7466
7467 OKC_API.SET_MESSAGE
7468 (P_App_Name => G_APP_NAME_OKC
7469 ,P_Msg_Name => G_UNEXPECTED_ERROR
7470 ,P_Token1 => G_SQLCODE_TOKEN
7471 ,P_Token1_Value => SQLCODE
7472 ,P_Token2 => G_SQLERRM_TOKEN
7473 ,P_Token2_Value => SQLERRM);
7474
7475 OKC_API.SET_MESSAGE
7476 (P_App_Name => G_APP_NAME_OKC
7477 ,P_Msg_Name => G_DEBUG_TOKEN
7478 ,P_Token1 => G_PACKAGE_TOKEN
7479 ,P_Token1_Value => G_PKG_NAME
7480 ,P_Token2 => G_PROGRAM_TOKEN
7481 ,P_Token2_Value => 'Get_Contract_Contacts');
7482
7483 X_Result := G_FALSE;
7484 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7485
7486 END Get_Contract_Contacts;
7487
7488 -----------------------------------------------------------------------------------------------------------------------*
7489
7490 PROCEDURE Get_Contacts
7491 (P_API_Version IN NUMBER
7492 ,P_Init_Msg_List IN VARCHAR2
7493 ,P_Contract_Id IN NUMBER
7494 ,P_Contract_Line_Id IN NUMBER
7495 ,X_Return_Status OUT NOCOPY VARCHAR2
7496 ,X_Msg_Count OUT NOCOPY NUMBER
7497 ,X_Msg_Data OUT NOCOPY VARCHAR2
7498 ,X_Ent_Contacts OUT NOCOPY Ent_Contact_Tbl)
7499 IS
7500
7501 Lx_Result Gx_Boolean;
7502
7503 BEGIN
7504
7505 Get_Contract_Contacts
7506 (P_API_Version => P_API_Version
7507 ,P_Init_Msg_List => P_Init_Msg_List
7508 ,P_Chr_Id => P_Contract_Id
7509 ,P_Cle_Id => P_Contract_Line_Id
7510 ,X_Cont_Contacts => X_Ent_Contacts
7511 ,X_Msg_Count => X_Msg_Count
7512 ,X_Msg_Data => X_Msg_Data
7513 ,X_Result => Lx_Result
7514 ,X_Return_Status => X_Return_Status);
7515
7516 EXCEPTION
7517
7518 WHEN OTHERS THEN
7519
7520 OKC_API.SET_MESSAGE
7521 (P_App_Name => G_APP_NAME_OKC
7522 ,P_Msg_Name => G_UNEXPECTED_ERROR
7523 ,P_Token1 => G_SQLCODE_TOKEN
7524 ,P_Token1_Value => SQLCODE
7525 ,P_Token2 => G_SQLERRM_TOKEN
7526 ,P_Token2_Value => SQLERRM);
7527
7528 OKC_API.SET_MESSAGE
7529 (P_App_Name => G_APP_NAME_OKC
7530 ,P_Msg_Name => G_DEBUG_TOKEN
7531 ,P_Token1 => G_PACKAGE_TOKEN
7532 ,P_Token1_Value => G_PKG_NAME
7533 ,P_Token2 => G_PROGRAM_TOKEN
7534 ,P_Token2_Value => 'Get_Contacts');
7535
7536 --X_Result := G_FALSE;
7537 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7538
7539 END Get_Contacts;
7540
7541 -----------------------------------------------------------------------------------------------------------------------*
7542
7543 PROCEDURE Append_ContItem_PlSql_Table
7544 (P_Input_Tab IN GT_ContItem_Ref
7545 ,P_Append_Tab IN GT_ContItem_Ref
7546 ,X_Output_Tab out nocopy GT_ContItem_Ref
7547 ,X_Result out nocopy Gx_Boolean
7548 ,X_Return_Status out nocopy Gx_Ret_Sts)
7549 IS
7550
7551 Lx_Input_Tab GT_ContItem_Ref;
7552 Lx_Output_Tab GT_ContItem_Ref;
7553
7554 Li_In_TableIdx BINARY_INTEGER;
7555 Li_Out_TableIdx BINARY_INTEGER;
7556
7557 Lx_Result Gx_Boolean;
7558 Lx_Return_Status Gx_Ret_Sts;
7559
7560 BEGIN
7561
7562 Lx_Input_Tab := P_Input_Tab;
7563 Lx_Output_Tab := P_Append_Tab;
7564
7565 Lx_Result := G_TRUE;
7566 Lx_Return_Status := G_RET_STS_SUCCESS;
7567
7568 Li_In_TableIdx := Lx_Input_Tab.FIRST;
7569 Li_Out_TableIdx := NVL(Lx_Output_Tab.LAST,0);
7570
7571 WHILE Li_In_TableIdx IS NOT NULL LOOP
7572
7573 Li_Out_TableIdx := Li_Out_TableIdx + 1;
7574 Lx_Output_Tab(Li_Out_TableIdx) := Lx_Input_Tab(Li_In_TableIdx);
7575 Li_In_TableIdx := Lx_Input_Tab.NEXT(Li_In_TableIdx);
7576
7577 END LOOP;
7578
7579 X_Output_Tab := Lx_Output_Tab;
7580
7581 X_Result := Lx_Result;
7582 X_Return_Status := Lx_Return_Status;
7583
7584 EXCEPTION
7585
7586 WHEN OTHERS THEN
7587
7588 OKC_API.SET_MESSAGE
7589 (P_App_Name => G_APP_NAME_OKC
7590 ,P_Msg_Name => G_UNEXPECTED_ERROR
7591 ,P_Token1 => G_SQLCODE_TOKEN
7592 ,P_Token1_Value => SQLCODE
7593 ,P_Token2 => G_SQLERRM_TOKEN
7594 ,P_Token2_Value => SQLERRM);
7595
7596 OKC_API.SET_MESSAGE
7597 (P_App_Name => G_APP_NAME_OKC
7598 ,P_Msg_Name => G_DEBUG_TOKEN
7599 ,P_Token1 => G_PACKAGE_TOKEN
7600 ,P_Token1_Value => G_PKG_NAME
7601 ,P_Token2 => G_PROGRAM_TOKEN
7602 ,P_Token2_Value => 'Append_ContItem_PlSql_Table');
7603
7604 X_Result := G_FALSE;
7605 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7606
7607 END Append_ContItem_PlSql_Table;
7608
7609 -----------------------------------------------------------------------------------------------------------------------*
7610
7611 PROCEDURE Get_Item_CovLevels
7612 (P_CovItem_Obj_Id IN Gx_OKS_Id
7613 ,P_Organization_Id IN NUMBER
7614 ,X_Item_CovLevels out nocopy GT_ContItem_Ref
7615 ,X_Result out nocopy Gx_Boolean
7616 ,X_Return_Status out nocopy Gx_Ret_Sts)
7617 IS
7618
7619 CURSOR Lx_Csr_CovItem(Cx_CovItem_Id IN Gx_OKS_Id
7620 ,Cn_Organization_Id IN NUMBER) IS
7621 SELECT '*'
7622 FROM Okx_System_Items_V CI
7623 WHERE CI.Id1 = Cx_CovItem_Id
7624 -- AND CI.Id2 = Cn_Organization_Id -- Bug# 4735542
7625 AND CI.Serviceable_Product_Flag ='Y';
7626 -- AND CI.Organization_Id = Cn_Organization_Id; -- Bug# 4735542
7627
7628 Lx_CovItem_Obj_Id CONSTANT Gx_OKS_Id := P_CovItem_Obj_Id;
7629 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
7630
7631 Lx_Item_CovLevels GT_ContItem_Ref;
7632 Lv_Dummy VARCHAR2(1);
7633 Lx_Result Gx_Boolean;
7634 Lx_Return_Status Gx_Ret_Sts;
7635 Li_TableIdx BINARY_INTEGER;
7636
7637 L_EXCEP_NO_DATA_FOUND EXCEPTION;
7638
7639 BEGIN
7640
7641 Lx_Result := G_TRUE;
7642 Lx_Return_Status := G_RET_STS_SUCCESS;
7643
7644 OPEN Lx_Csr_CovItem(Lx_CovItem_Obj_Id,Ln_organization_Id);
7645 FETCH Lx_Csr_CovItem INTO Lv_Dummy;
7646
7647 IF Lx_Csr_CovItem%NOTFOUND THEN
7648 RAISE L_EXCEP_NO_DATA_FOUND;
7649 END IF;
7650
7651 CLOSE Lx_Csr_CovItem;
7652
7653 Li_TableIdx := 1;
7654
7655 Lx_Item_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Lx_CovItem_Obj_Id;
7656 Lx_Item_CovLevels(Li_TableIdx).Rx_Obj1Id2 := Ln_organization_Id;
7657 Lx_Item_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_COVITEM';
7658
7659 X_Item_CovLevels := Lx_Item_CovLevels;
7660 X_Result := Lx_Result;
7661 X_Return_Status := Lx_Return_Status;
7662
7663 EXCEPTION
7664
7665 WHEN L_EXCEP_NO_DATA_FOUND THEN
7666
7667 IF Lx_Csr_CovItem%ISOPEN THEN
7668 CLOSE Lx_Csr_CovItem;
7669 END IF;
7670
7671 X_Result := G_TRUE;
7672 X_Return_Status := G_TRUE;
7673
7674 WHEN OTHERS THEN
7675
7676 OKC_API.SET_MESSAGE
7677 (P_App_Name => G_APP_NAME_OKC
7678 ,P_Msg_Name => G_UNEXPECTED_ERROR
7679 ,P_Token1 => G_SQLCODE_TOKEN
7680 ,P_Token1_Value => SQLCODE
7681 ,P_Token2 => G_SQLERRM_TOKEN
7682 ,P_Token2_Value => SQLERRM);
7683
7684 OKC_API.SET_MESSAGE
7685 (P_App_Name => G_APP_NAME_OKC
7686 ,P_Msg_Name => G_DEBUG_TOKEN
7687 ,P_Token1 => G_PACKAGE_TOKEN
7688 ,P_Token1_Value => G_PKG_NAME
7689 ,P_Token2 => G_PROGRAM_TOKEN
7690 ,P_Token2_Value => 'Get_Item_CovLevels');
7691
7692 X_Result := G_FALSE;
7693 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7694
7695 END Get_Item_CovLevels;
7696
7697 -----------------------------------------------------------------------------------------------------------------------*
7698
7699 PROCEDURE Get_Party_CovLevels
7700 (P_CovParty_Obj_Id IN Gx_OKS_Id
7701 ,X_Party_CovLevels out nocopy GT_ContItem_Ref
7702 ,X_Result out nocopy Gx_Boolean
7703 ,X_Return_Status out nocopy Gx_Ret_Sts)
7704 IS
7705
7706 CURSOR Lx_Csr_CovParty(Cx_CovParty_Id IN Gx_OKS_Id ) IS
7707 SELECT '*'
7708 FROM Okx_Parties_V PY
7709 WHERE PY.Id1 = Cx_CovParty_Id
7710 AND PY.Id2 = '#';
7711
7712 Lx_CovParty_Obj_Id CONSTANT Gx_OKS_Id := P_CovParty_Obj_Id;
7713
7714 Lx_Party_CovLevels GT_ContItem_Ref;
7715 Lv_Dummy VARCHAR2(1);
7716 Lx_Result Gx_Boolean;
7717 Lx_Return_Status Gx_Ret_Sts;
7718
7719 Li_TableIdx BINARY_INTEGER;
7720 L_EXCEP_NO_DATA_FOUND EXCEPTION;
7721
7722 BEGIN
7723
7724 Lx_Result := G_TRUE;
7725 Lx_Return_Status := G_RET_STS_SUCCESS;
7726
7727 OPEN Lx_Csr_CovParty(Lx_CovParty_Obj_Id);
7728 FETCH Lx_Csr_CovParty INTO Lv_Dummy;
7729
7730 IF Lx_Csr_CovParty%NOTFOUND THEN
7731 RAISE L_EXCEP_NO_DATA_FOUND;
7732 END IF;
7733
7734 CLOSE Lx_Csr_CovParty;
7735
7736 Li_TableIdx := 1;
7737
7738 Lx_Party_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Lx_CovParty_Obj_Id;
7739 Lx_Party_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
7740 Lx_Party_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_PARTY';
7741
7742 X_Party_CovLevels := Lx_Party_CovLevels;
7743 X_Result := Lx_Result;
7744 X_Return_Status := Lx_Return_Status;
7745
7746 EXCEPTION
7747
7748 WHEN L_EXCEP_NO_DATA_FOUND THEN
7749
7750 IF Lx_Csr_CovParty%ISOPEN THEN
7751 CLOSE Lx_Csr_CovParty;
7752 END IF;
7753
7754 X_Result := G_TRUE;
7755 X_Return_Status := G_TRUE;
7756
7757 WHEN OTHERS THEN
7758
7759 OKC_API.SET_MESSAGE
7760 (P_App_Name => G_APP_NAME_OKC
7761 ,P_Msg_Name => G_UNEXPECTED_ERROR
7762 ,P_Token1 => G_SQLCODE_TOKEN
7763 ,P_Token1_Value => SQLCODE
7764 ,P_Token2 => G_SQLERRM_TOKEN
7765 ,P_Token2_Value => SQLERRM);
7766
7767 OKC_API.SET_MESSAGE
7768 (P_App_Name => G_APP_NAME_OKC
7769 ,P_Msg_Name => G_DEBUG_TOKEN
7770 ,P_Token1 => G_PACKAGE_TOKEN
7771 ,P_Token1_Value => G_PKG_NAME
7772 ,P_Token2 => G_PROGRAM_TOKEN
7773 ,P_Token2_Value => 'Get_Party_CovLevels');
7774
7775 X_Result := G_FALSE;
7776 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7777
7778 END Get_Party_CovLevels;
7779
7780 -----------------------------------------------------------------------------------------------------------------------*
7781
7782 PROCEDURE Get_Customer_CovLevels
7783 (P_CovCust_Obj_Id IN Gx_OKS_Id
7784 ,X_Party_Id out nocopy Gx_OKS_Id
7785 ,X_Customer_CovLevels out nocopy GT_ContItem_Ref
7786 ,X_Result out nocopy Gx_Boolean
7787 ,X_Return_Status out nocopy Gx_Ret_Sts)
7788 IS
7789
7790 CURSOR Lx_Csr_CovCust(Cx_CovCust_Id IN Gx_OKS_Id) IS
7791 SELECT CA.Party_Id
7792 FROM Okx_Customer_Accounts_V CA
7793 WHERE CA.Id1 = Cx_CovCust_Id
7794 AND CA.Id2 = '#';
7795
7796 Lx_CovCust_Obj_Id CONSTANT Gx_OKS_Id := P_CovCust_Obj_Id;
7797
7798 Lx_Customer_CovLevels GT_ContItem_Ref;
7799 Lx_Customer_CovLevels_Out GT_ContItem_Ref;
7800 Lx_Customer_Party GT_ContItem_Ref;
7801
7802 Lx_Result Gx_Boolean;
7803 Lx_Return_Status Gx_Ret_Sts;
7804
7805 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
7806
7807 Li_TableIdx BINARY_INTEGER;
7808 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
7809 L_EXCEP_NO_DATA_FOUND EXCEPTION;
7810
7811 BEGIN
7812
7813 Lx_Result := G_TRUE;
7814 Lx_Return_Status := G_RET_STS_SUCCESS;
7815
7816 OPEN Lx_Csr_CovCust(Lx_CovCust_Obj_Id);
7817 FETCH Lx_Csr_CovCust INTO Lx_Party_Id;
7818
7819 IF Lx_Csr_CovCust%NOTFOUND THEN
7820 RAISE L_EXCEP_NO_DATA_FOUND;
7821 END IF;
7822
7823 CLOSE Lx_Csr_CovCust;
7824
7825 Li_TableIdx := 1;
7826 Lx_Customer_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Lx_CovCust_Obj_Id;
7827 Lx_Customer_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
7828 Lx_Customer_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_CUSTACCT';
7829
7830 IF (set_account_party_id = 'T') THEN
7831 covd_account_party_id := Lx_Party_Id; -- store the account_party_id to compare with site party_id #4690940
7832 END IF;
7833
7834 Get_Party_CovLevels
7835 (P_CovParty_Obj_Id => Lx_Party_Id
7836 ,X_Party_CovLevels => Lx_Customer_Party
7837 ,X_Result => Lx_Result
7838 ,X_Return_Status => Lx_Return_Status);
7839
7840 IF Lx_Result <> G_TRUE THEN
7841 RAISE L_EXCEP_UNEXPECTED_ERR;
7842 END IF;
7843
7844 Append_ContItem_PlSql_Table
7845 (P_Input_Tab => Lx_Customer_Party
7846 ,P_Append_Tab => Lx_Customer_CovLevels
7847 ,X_Output_Tab => Lx_Customer_CovLevels_Out
7848 ,X_Result => Lx_Result
7849 ,X_Return_Status => Lx_Return_Status);
7850
7851 IF Lx_Result <> G_TRUE THEN
7852 RAISE L_EXCEP_UNEXPECTED_ERR;
7853 END IF;
7854
7855 Lx_Customer_CovLevels := Lx_Customer_CovLevels_Out;
7856
7857 X_Party_Id := Lx_Party_Id;
7858 X_Customer_CovLevels := Lx_Customer_CovLevels;
7859 X_Result := Lx_Result;
7860 X_Return_Status := Lx_Return_Status;
7861
7862 EXCEPTION
7863
7864 WHEN L_EXCEP_NO_DATA_FOUND THEN
7865
7866 IF Lx_Csr_CovCust%ISOPEN THEN
7867 CLOSE Lx_Csr_CovCust;
7868 END IF;
7869
7870 X_Result := G_TRUE;
7871 X_Return_Status := G_TRUE;
7872
7873 WHEN L_EXCEP_UNEXPECTED_ERR THEN
7874
7875 X_Result := Lx_Result;
7876 X_Return_Status := Lx_Return_Status;
7877
7878 WHEN OTHERS THEN
7879
7880 OKC_API.SET_MESSAGE
7881 (P_App_Name => G_APP_NAME_OKC
7882 ,P_Msg_Name => G_UNEXPECTED_ERROR
7883 ,P_Token1 => G_SQLCODE_TOKEN
7884 ,P_Token1_Value => SQLCODE
7885 ,P_Token2 => G_SQLERRM_TOKEN
7886 ,P_Token2_Value => SQLERRM);
7887
7888 OKC_API.SET_MESSAGE
7889 (P_App_Name => G_APP_NAME_OKC
7890 ,P_Msg_Name => G_DEBUG_TOKEN
7891 ,P_Token1 => G_PACKAGE_TOKEN
7892 ,P_Token1_Value => G_PKG_NAME
7893 ,P_Token2 => G_PROGRAM_TOKEN
7894 ,P_Token2_Value => 'Get_Customer_CovLevels');
7895
7896 X_Result := G_FALSE;
7897 X_Return_Status := G_RET_STS_UNEXP_ERROR;
7898
7899 END Get_Customer_CovLevels;
7900
7901 -----------------------------------------------------------------------------------------------------------------------*
7902
7903 PROCEDURE Get_Site_CovLevels
7904 (P_CovSite_Obj_Id IN Gx_OKS_Id
7905 ,P_Org_Id IN NUMBER
7906 ,X_Site_CovLevels out nocopy GT_ContItem_Ref
7907 ,X_Result out nocopy Gx_Boolean
7908 ,X_Return_Status out nocopy Gx_Ret_Sts)
7909 IS
7910
7911
7912 CURSOR Lx_Csr_CovSite(Cx_CovSite_Id IN Gx_OKS_Id
7913 ,Cn_Org_Id IN NUMBER) IS
7914 SELECT PS.Id1
7915 ,PS.Id2
7916 ,PS.Party_Id
7917 FROM Okx_Party_Sites_V PS
7918 WHERE PS.Id1 = Cx_CovSite_Id;
7919
7920 Lx_CovSite_Obj_Id CONSTANT Gx_OKS_Id := P_CovSite_Obj_Id;
7921 Ln_Org_Id CONSTANT NUMBER := P_Org_Id;
7922
7923 Lx_Site_CovLevels GT_ContItem_Ref;
7924 Lx_Site_CovLevels_Out GT_ContItem_Ref;
7925 Lx_Site_Customer GT_ContItem_Ref;
7926 Lx_Site_Party GT_ContItem_Ref;
7927
7928 Lx_Result Gx_Boolean;
7929 Lx_Return_Status Gx_Ret_Sts;
7930
7931 Lx_Cust_Account_Id Okx_Cust_Site_Uses_V.Cust_Account_Id%TYPE;
7932 Lx_Party_Id Okx_Cust_Site_Uses_V.Party_Id%TYPE;
7933 Lx_Party_Id_Dummy Okx_Customer_Accounts_V.Party_Id%TYPE;
7934
7935 Li_TableIdx BINARY_INTEGER;
7936
7937 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
7938
7939 BEGIN
7940
7941 Lx_Result := G_TRUE;
7942 Lx_Return_Status := G_RET_STS_SUCCESS;
7943
7944 FOR IDX IN Lx_Csr_CovSite(Lx_CovSite_Obj_Id,Ln_Org_Id) LOOP
7945
7946 Li_TableIdx := NVL(Lx_Site_CovLevels.LAST,0) + 1;
7947
7948 Lx_Site_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Idx.Id1;
7949 Lx_Site_CovLevels(Li_TableIdx).Rx_Obj1Id2 := Idx.Id2;
7950 Lx_Site_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_PARTYSITE';
7951
7952 -- Get_Party_CovLevels
7953 -- (P_CovParty_Obj_Id => Idx.Party_Id
7954 -- ,X_Party_CovLevels => Lx_Site_Party
7955 -- ,X_Result => Lx_Result
7956 -- ,X_Return_Status => Lx_Return_Status);
7957 --
7958 --
7959
7960 IF covd_account_party_id IS NOT NULL THEN -- #4690940 start
7961 IF covd_account_party_id <> Idx.Party_Id THEN
7962 Get_Party_CovLevels
7963 (P_CovParty_Obj_Id => Idx.Party_Id
7964 ,X_Party_CovLevels => Lx_Site_Party
7965 ,X_Result => Lx_Result
7966 ,X_Return_Status => Lx_Return_Status);
7967 END IF;
7968 ELSE
7969 Get_Party_CovLevels
7970 (P_CovParty_Obj_Id => Idx.Party_Id
7971 ,X_Party_CovLevels => Lx_Site_Party
7972 ,X_Result => Lx_Result
7973 ,X_Return_Status => Lx_Return_Status);
7974 END IF; --#4690940 end
7975
7976 --
7977
7978 IF Lx_Result <> G_TRUE THEN
7979 RAISE L_EXCEP_UNEXPECTED_ERR;
7980 END IF;
7981
7982 Append_ContItem_PlSql_Table
7983 (P_Input_Tab => Lx_Site_Party
7984 ,P_Append_Tab => Lx_Site_CovLevels
7985 ,X_Output_Tab => Lx_Site_CovLevels_Out
7986 ,X_Result => Lx_Result
7987 ,X_Return_Status => Lx_Return_Status);
7988
7989 IF Lx_Result <> G_TRUE THEN
7990 RAISE L_EXCEP_UNEXPECTED_ERR;
7991 END IF;
7992
7993 Lx_Site_CovLevels := Lx_Site_CovLevels_Out;
7994
7995 END LOOP;
7996
7997 X_Site_CovLevels := Lx_Site_CovLevels;
7998 X_Result := Lx_Result;
7999 X_Return_Status := Lx_Return_Status;
8000
8001 EXCEPTION
8002
8003 WHEN L_EXCEP_UNEXPECTED_ERR THEN
8004
8005 X_Result := Lx_Result;
8006 X_Return_Status := Lx_Return_Status;
8007
8008 WHEN OTHERS THEN
8009
8010 OKC_API.SET_MESSAGE
8011 (P_App_Name => G_APP_NAME_OKC
8012 ,P_Msg_Name => G_UNEXPECTED_ERROR
8013 ,P_Token1 => G_SQLCODE_TOKEN
8014 ,P_Token1_Value => SQLCODE
8015 ,P_Token2 => G_SQLERRM_TOKEN
8016 ,P_Token2_Value => SQLERRM);
8017
8018 OKC_API.SET_MESSAGE
8019 (P_App_Name => G_APP_NAME_OKC
8020 ,P_Msg_Name => G_DEBUG_TOKEN
8021 ,P_Token1 => G_PACKAGE_TOKEN
8022 ,P_Token1_Value => G_PKG_NAME
8023 ,P_Token2 => G_PROGRAM_TOKEN
8024 ,P_Token2_Value => 'Get_Site_CovLevels');
8025
8026 X_Result := G_FALSE;
8027 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8028
8029 END Get_Site_CovLevels;
8030
8031 -----------------------------------------------------------------------------------------------------------------------*
8032
8033 PROCEDURE Get_System_CovLevels
8034 (P_CovSys_Obj_Id IN Gx_OKS_Id
8035 ,P_Org_Id IN NUMBER
8036 ,X_System_CovLevels out nocopy GT_ContItem_Ref
8037 ,X_Result out nocopy Gx_Boolean
8038 ,X_Return_Status out nocopy Gx_Ret_Sts)
8039 IS
8040
8041 CURSOR Lx_Csr_CovSys(Cx_CovSys_Id IN Gx_OKS_Id --Modified for New Install Base.
8042 ,Cn_Org_Id IN NUMBER) IS
8043 SELECT CSISYS.System_Id System_Id,
8044 CSISYS.Customer_Id,
8045 CSISYS.Install_Site_Use_Id
8046 FROM CSI_SYSTEMS_B CSISYS
8047 connect by prior parent_system_id = system_id
8048 start with system_id = Cx_CovSys_Id;
8049
8050 Lx_CovSys_Obj_Id CONSTANT Gx_OKS_Id := P_CovSys_Obj_Id;
8051 Ln_org_Id CONSTANT NUMBER := P_Org_Id;
8052
8053 Lx_System_CovLevels GT_ContItem_Ref;
8054 Lx_System_CovLevels_Out GT_ContItem_Ref;
8055
8056 Lx_System_Customer GT_ContItem_Ref;
8057 Lx_System_Site GT_ContItem_Ref;
8058
8059 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
8060
8061 Lx_Result Gx_Boolean;
8062 Lx_Return_Status Gx_Ret_Sts;
8063
8064 Li_TableIdx BINARY_INTEGER;
8065 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
8066
8067 BEGIN
8068
8069 Lx_Result := G_TRUE;
8070 Lx_Return_Status := G_RET_STS_SUCCESS;
8071
8072 FOR Idx IN Lx_Csr_CovSys(Lx_CovSys_Obj_Id,Ln_Org_Id) LOOP
8073
8074 Li_TableIdx := NVL(Lx_System_CovLevels.LAST,0) + 1;
8075
8076 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Idx.System_Id;
8077 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
8078 Lx_System_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_COVSYST';
8079
8080 Get_Customer_CovLevels
8081 (P_CovCust_Obj_Id => Idx.Customer_Id
8082 ,X_Party_Id => Lx_Party_Id
8083 ,X_Customer_CovLevels => Lx_System_Customer
8084 ,X_Result => Lx_Result
8085 ,X_Return_Status => Lx_Return_Status);
8086
8087 IF Lx_Result <> G_TRUE THEN
8088 RAISE L_EXCEP_UNEXPECTED_ERR;
8089 END IF;
8090
8091 Append_ContItem_PlSql_Table
8092 (P_Input_Tab => Lx_System_Customer
8093 ,P_Append_Tab => Lx_System_CovLevels
8094 ,X_Output_Tab => Lx_System_CovLevels_Out
8095 ,X_Result => Lx_Result
8096 ,X_Return_Status => Lx_Return_Status);
8097
8098 IF Lx_Result <> G_TRUE THEN
8099 RAISE L_EXCEP_UNEXPECTED_ERR;
8100 END IF;
8101
8102 Lx_System_CovLevels := Lx_System_CovLevels_Out;
8103
8104 Get_Site_CovLevels
8105 (P_CovSite_Obj_Id => Idx.Install_Site_Use_Id
8106 ,P_Org_Id => Ln_org_Id
8107 ,X_Site_CovLevels => Lx_System_Site
8108 ,X_Result => Lx_Result
8109 ,X_Return_Status => Lx_Return_Status);
8110
8111 IF Lx_Result <> G_TRUE THEN
8112 RAISE L_EXCEP_UNEXPECTED_ERR;
8113 END IF;
8114
8115 Append_ContItem_PlSql_Table
8116 (P_Input_Tab => Lx_System_Site
8117 ,P_Append_Tab => Lx_System_CovLevels
8118 ,X_Output_Tab => Lx_System_CovLevels_out
8119 ,X_Result => Lx_Result
8120 ,X_Return_Status => Lx_Return_Status);
8121
8122 IF Lx_Result <> G_TRUE THEN
8123 RAISE L_EXCEP_UNEXPECTED_ERR;
8124 END IF;
8125
8126 Lx_System_CovLevels := Lx_System_CovLevels_Out;
8127
8128 END LOOP;
8129
8130 X_System_CovLevels := Lx_System_CovLevels;
8131 X_Result := Lx_Result;
8132 X_Return_Status := Lx_Return_Status;
8133
8134 EXCEPTION
8135
8136 WHEN L_EXCEP_UNEXPECTED_ERR THEN
8137
8138 X_Result := Lx_Result;
8139 X_Return_Status := Lx_Return_Status;
8140
8141 WHEN OTHERS THEN
8142
8143 OKC_API.SET_MESSAGE
8144 (P_App_Name => G_APP_NAME_OKC
8145 ,P_Msg_Name => G_UNEXPECTED_ERROR
8146 ,P_Token1 => G_SQLCODE_TOKEN
8147 ,P_Token1_Value => SQLCODE
8148 ,P_Token2 => G_SQLERRM_TOKEN
8149 ,P_Token2_Value => SQLERRM);
8150
8151 OKC_API.SET_MESSAGE
8152 (P_App_Name => G_APP_NAME_OKC
8153 ,P_Msg_Name => G_DEBUG_TOKEN
8154 ,P_Token1 => G_PACKAGE_TOKEN
8155 ,P_Token1_Value => G_PKG_NAME
8156 ,P_Token2 => G_PROGRAM_TOKEN
8157 ,P_Token2_Value => 'Get_System_CovLevels');
8158
8159 X_Result := G_FALSE;
8160 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8161
8162 END Get_System_CovLevels;
8163
8164 -----------------------------------------------------------------------------------------------------------------------*
8165
8166 /**********************************************************
8167 ** This Procedure gets all the parents traversing up **
8168 ** for a given child(subject) with the relationship type **
8169 ** COMPONENT-OF. It stops traversing when the top-most **
8170 ** is reached or the relationship is broken. **
8171 ***********************************************************/
8172
8173 -- added procedure Get_All_Parents to fix bug 3583486.
8174
8175 PROCEDURE Get_All_Parents
8176 (
8177 p_api_version IN NUMBER,
8178 p_commit IN VARCHAR2,
8179 p_init_msg_list IN VARCHAR2,
8180 p_validation_level IN NUMBER,
8181 p_subject_id IN NUMBER,
8182 x_rel_tbl OUT NOCOPY ii_relationship_tbl,
8183 x_return_status OUT NOCOPY VARCHAR2,
8184 x_msg_count OUT NOCOPY NUMBER,
8185 x_msg_data OUT NOCOPY VARCHAR2
8186 ) IS
8187
8188 l_api_version CONSTANT NUMBER := 1.0;
8189 l_api_name CONSTANT VARCHAR2(30) := 'GET_ALL_PARENTS';
8190 l_ctr NUMBER;
8191 l_object_id NUMBER;
8192 l_subject_id NUMBER;
8193 l_exists VARCHAR2(1);
8194 l_relationship_id NUMBER;
8195 l_rel_type_code CONSTANT VARCHAR2(30) := 'COMPONENT-OF';
8196
8197 L_EXCEP_CYCLIC_DATA EXCEPTION;
8198 Lx_ExcepionMsg Varchar2(1000);
8199 Lx_Return_Status Varchar2(1);
8200
8201 BEGIN
8202
8203 l_ctr := 0;
8204
8205 -- Check for freeze_flag in csi_install_parameters is set to 'Y', not required.
8206 -- csi_utility_grp.check_ib_active;
8207
8208 x_return_status := FND_API.G_RET_STS_SUCCESS;
8209
8210 l_subject_id := p_subject_id;
8211
8212 LOOP
8213 Begin
8214 select relationship_id,object_id
8215 into l_relationship_id,l_object_id
8216 from CSI_II_RELATIONSHIPS
8217 where subject_id = l_subject_id
8218 and relationship_type_code = l_rel_type_code
8219 and ((active_end_date is null) or (active_end_date > sysdate));
8220 --
8221 l_ctr := l_ctr + 1;
8222 x_rel_tbl(l_ctr).subject_id := l_subject_id;
8223 x_rel_tbl(l_ctr).object_id := l_object_id;
8224 x_rel_tbl(l_ctr).relationship_id := l_relationship_id;
8225 x_rel_tbl(l_ctr).relationship_type_code := l_rel_type_code;
8226 --
8227 -- Just in case a cycle exists because of bad data the following check will break
8228 -- the loop.
8229 l_exists := 'N';
8230 IF x_rel_tbl.count > 0 THEN
8231 FOR j in x_rel_tbl.FIRST .. x_rel_tbl.LAST Loop
8232 IF l_object_id = x_rel_tbl(j).subject_id THEN
8233 l_exists := 'Y';
8234 Lx_ExcepionMsg := 'OBJECT_ID in Relationship Id: '||x_rel_tbl(l_ctr).relationship_id||
8235 ' and SUBJECT_ID in Relationship Id: '||x_rel_tbl(j).relationship_id||
8236 ' is in a cyclic relationship';
8237 exit;
8238 END IF;
8239 End Loop;
8240 END IF;
8241 --
8242 IF l_exists = 'Y' THEN
8243 -- exit;
8244 RAISE L_EXCEP_CYCLIC_DATA;
8245 END IF;
8246 --
8247 l_subject_id := l_object_id;
8248 Exception
8249 when no_data_found then
8250 exit;
8251 End;
8252 END LOOP;
8253 -- End of API body
8254
8255
8256 EXCEPTION
8257
8258 WHEN L_EXCEP_CYCLIC_DATA THEN
8259
8260 OKC_API.SET_MESSAGE
8261 (p_app_name => G_APP_NAME_OKC
8262 ,p_msg_name => G_INVALID_VALUE
8263 ,p_token1 => G_COL_NAME_TOKEN
8264 ,p_token1_value => Lx_ExcepionMsg);
8265
8266 Lx_Return_Status := G_RET_STS_ERROR;
8267
8268 WHEN OTHERS THEN
8269
8270 OKC_API.SET_MESSAGE
8271 (P_App_Name => G_APP_NAME_OKC
8272 ,P_Msg_Name => G_UNEXPECTED_ERROR
8273 ,P_Token1 => G_SQLCODE_TOKEN
8274 ,P_Token1_Value => SQLCODE
8275 ,P_Token2 => G_SQLERRM_TOKEN
8276 ,P_Token2_Value => SQLERRM);
8277
8278 OKC_API.SET_MESSAGE
8279 (P_App_Name => G_APP_NAME_OKC
8280 ,P_Msg_Name => G_DEBUG_TOKEN
8281 ,P_Token1 => G_PACKAGE_TOKEN
8282 ,P_Token1_Value => G_PKG_NAME
8283 ,P_Token2 => G_PROGRAM_TOKEN
8284 ,P_Token2_Value => 'Get_All_Parents');
8285
8286 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8287
8288 END Get_All_Parents;
8289
8290 ------------------------------------------------------------------------------------------------------
8291
8292 PROCEDURE Get_Product_CovLevels
8293 (P_CovProd_Obj_Id IN Gx_OKS_Id
8294 ,P_Organization_Id IN NUMBER
8295 ,P_Org_Id IN NUMBER
8296 ,X_Party_Id out nocopy Gx_OKS_Id
8297 ,X_Product_CovLevels out nocopy GT_ContItem_Ref
8298 ,X_Result out nocopy Gx_Boolean
8299 ,X_Return_Status out nocopy Gx_Ret_Sts)
8300 IS
8301
8302 /*
8303 CURSOR Lx_Csr_PARPROD (Cx_CovProd_Id IN Gx_OKS_Id ) IS
8304 SELECT object_id,
8305 subject_id
8306 FROM csi_ii_relationships
8307 connect by prior object_id = subject_id
8308 start with subject_id = Cx_CovProd_Id
8309 UNION
8310 SELECT instance_id object_id,
8311 -- null subject_id
8312 -1 subject_id --bug 2740241
8313 FROM csi_item_instances
8314 where instance_id = Cx_CovProd_Id;
8315 */
8316
8317 CURSOR Lx_Csr_CovProd(Cx_CovProd_Id IN Gx_OKS_Id
8318 ,Cn_Organization_Id IN NUMBER
8319 ,Cn_Org_Id IN NUMBER) IS
8320 SELECT CSI.Inventory_item_id Inventory_item_id,
8321 CSI.System_id System_id,
8322 CSI.Owner_party_account_id Owner_party_account_id, --CSI.Owner_party_id Owner_party_id
8323 CSI.install_location_id install_location_id,
8324 CSI.INSTALL_LOCATION_TYPE_CODE install_location_type_code
8325 FROM CSI_ITEM_INSTANCES CSI
8326 WHERE CSI.INSTANCE_ID = Cx_CovProd_Id;
8327
8328
8329
8330
8331
8332 Lx_CovProd_Obj_Id CONSTANT Gx_OKS_Id := P_CovProd_Obj_Id;
8333 Ln_organization_Id CONSTANT NUMBER := P_Organization_Id;
8334 Ln_Org_Id CONSTANT NUMBER := P_Org_Id;
8335
8336 Lx_Product_CovLevels GT_ContItem_Ref;
8337 Lx_Product_CovLevels_Out GT_ContItem_Ref;
8338 Lx_Product_Customer GT_ContItem_Ref;
8339 Lx_Product_Site GT_ContItem_Ref;
8340 Lx_Product_Item GT_ContItem_Ref;
8341 Lx_Product_System GT_ContItem_Ref;
8342
8343 Lx_Result Gx_Boolean;
8344 Lx_Return_Status Gx_Ret_Sts;
8345
8346 /* ---CSI Uptake ----
8347 Lx_Inv_Item_Id Okx_Customer_Products_V.Inventory_Item_Id%TYPE;
8348 Lx_System_Id Okx_Customer_Products_V.System_Id%TYPE;
8349 Lx_Customer_Id Okx_Customer_Products_V.Customer_Id%TYPE;
8350 Lx_Site_Id Okx_Customer_Products_V.Install_Site_Use_Id%TYPE;
8351 */
8352
8353 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
8354 Lx_Inv_Item_Id CSI_ITEM_INSTANCES.Inventory_Item_Id%TYPE;
8355 Lx_System_Id CSI_ITEM_INSTANCES.System_Id%TYPE;
8356 Lx_Customer_Id CSI_ITEM_INSTANCES.Owner_Party_Id%TYPE;
8357 Lx_Site_Id CSI_ITEM_INSTANCES.Install_location_id%TYPE;
8358 Lx_Site_Type_Code CSI_ITEM_INSTANCES.Install_location_type_code%TYPE;
8359
8360 Lx_PARENT_OBJ GT_PARENT_Ref;
8361 Li_PAR_Idx BINARY_INTEGER;
8362
8363 Lx_INSTANCES GT_INSTANCES;
8364 Li_INST_Idx BINARY_INTEGER;
8365
8366 L_rel_tbl ii_relationship_tbl;
8367 Li_RelTbl_Idx BINARY_INTEGER;
8368 L_msg_count number;
8369 L_msg_data VARCHAR2(1000);
8370 Li_TableIdx BINARY_INTEGER;
8371
8372 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
8373 L_EXCEP_NO_DATA_FOUND EXCEPTION;
8374
8375 BEGIN
8376
8377 Lx_Result := G_TRUE;
8378 Lx_Return_Status := G_RET_STS_SUCCESS;
8379
8380 /*
8381 Li_PAR_Idx := 0;
8382
8383 FOR Lx_Csr_PARPROD_REC in Lx_Csr_PARPROD(Lx_CovProd_Obj_Id) LOOP
8384
8385
8386 Li_PAR_Idx := Li_PAR_Idx + 1;
8387 Lx_PARENT_OBJ(Li_PAR_Idx).Rx_object_id := Lx_Csr_PARPROD_REC.object_id;
8388
8389 Lx_PARENT_OBJ(Li_PAR_Idx).Rx_subject_id := Lx_Csr_PARPROD_REC.subject_id;
8390
8391 END LOOP;
8392 */
8393
8394 Li_INST_Idx := 1;
8395
8396 Lx_INSTANCES(Li_INST_Idx).RX_Inst_ID := Lx_CovProd_Obj_Id;
8397
8398 -- call to get_all_parents to add the parent instances to Lx_INSTANCES
8399
8400 Get_All_Parents
8401 (
8402 p_api_version => 1.0,
8403 p_commit => G_FALSE,
8404 p_init_msg_list => 'T',
8405 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
8406 p_subject_id => Lx_CovProd_Obj_Id,
8407 x_rel_tbl => L_rel_tbl,
8408 x_return_status => Lx_return_status,
8409 x_msg_count => L_msg_count,
8410 x_msg_data => L_msg_data
8411 );
8412
8413 IF Lx_return_status <> 'S' THEN
8414 RAISE L_EXCEP_UNEXPECTED_ERR;
8415 END IF;
8416
8417 IF L_rel_tbl.count > 0 THEN
8418
8419 Li_RelTbl_Idx := L_rel_tbl.FIRST;
8420
8421 WHILE Li_RelTbl_Idx IS NOT NULL LOOP
8422
8423 Li_INST_Idx := Li_INST_Idx + 1;
8424
8425 Lx_INSTANCES(Li_INST_Idx).RX_Inst_ID := L_rel_tbl(Li_RelTbl_Idx).object_id;
8426
8427 Li_RelTbl_Idx := L_rel_tbl.NEXT(Li_RelTbl_Idx);
8428
8429 END LOOP;
8430
8431 END IF;
8432
8433 Li_TableIdx := 1;
8434
8435 IF Lx_INSTANCES.COUNT > 0 THEN -- added while fixing bug 2740241
8436
8437 FOR i in Lx_INSTANCES.FIRST .. Lx_INSTANCES.LAST LOOP
8438
8439 OPEN Lx_Csr_CovProd(Lx_INSTANCES(i).RX_Inst_ID,Ln_organization_Id,Ln_Org_Id);
8440
8441 FETCH Lx_Csr_CovProd INTO Lx_Inv_Item_Id,Lx_System_Id,Lx_Customer_Id,Lx_Site_Id,Lx_Site_Type_Code;
8442
8443 IF Lx_Csr_CovProd%NOTFOUND THEN
8444 RAISE L_EXCEP_NO_DATA_FOUND;
8445 END IF;
8446
8447 Lx_Product_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Lx_INSTANCES(i).RX_Inst_ID;
8448 Lx_Product_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
8449 Lx_Product_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_CUSTPROD';
8450
8451 Get_Item_CovLevels
8452 (P_CovItem_Obj_Id => Lx_Inv_Item_Id
8453 ,P_Organization_Id => Ln_Organization_Id
8454 ,X_Item_CovLevels => Lx_Product_Item
8455 ,X_Result => Lx_Result
8456 ,X_Return_Status => Lx_Return_Status);
8457
8458 IF Lx_Result <> G_TRUE THEN
8459 RAISE L_EXCEP_UNEXPECTED_ERR;
8460 END IF;
8461
8462 Append_ContItem_PlSql_Table
8463 (P_Input_Tab => Lx_Product_Item
8464 ,P_Append_Tab => Lx_Product_CovLevels
8465 ,X_Output_Tab => Lx_Product_CovLevels_Out
8466 ,X_Result => Lx_Result
8467 ,X_Return_Status => Lx_Return_Status);
8468
8469 IF Lx_Result <> G_TRUE THEN
8470 RAISE L_EXCEP_UNEXPECTED_ERR;
8471 END IF;
8472
8473 Lx_Product_CovLevels := Lx_Product_CovLevels_Out;
8474
8475 Get_System_CovLevels
8476 (P_CovSys_Obj_Id => Lx_System_Id
8477 ,P_Org_Id => Ln_Org_Id
8478 ,X_System_CovLevels => Lx_Product_System
8479 ,X_Result => Lx_Result
8480 ,X_Return_Status => Lx_Return_Status);
8481
8482 IF Lx_Result <> G_TRUE THEN
8483 RAISE L_EXCEP_UNEXPECTED_ERR;
8484 END IF;
8485
8486 Append_ContItem_PlSql_Table
8487 (P_Input_Tab => Lx_Product_System
8488 ,P_Append_Tab => Lx_Product_CovLevels
8489 ,X_Output_Tab => Lx_Product_CovLevels_Out
8490 ,X_Result => Lx_Result
8491 ,X_Return_Status => Lx_Return_Status);
8492
8493 IF Lx_Result <> G_TRUE THEN
8494 RAISE L_EXCEP_UNEXPECTED_ERR;
8495 END IF;
8496
8497 Lx_Product_CovLevels := Lx_Product_CovLevels_Out;
8498
8499 Get_Customer_CovLevels
8500 (P_CovCust_Obj_Id => Lx_Customer_Id
8501 ,X_Party_Id => Lx_Party_Id
8502 ,X_Customer_CovLevels => Lx_Product_Customer
8503 ,X_Result => Lx_Result
8504 ,X_Return_Status => Lx_Return_Status);
8505
8506 IF Lx_Result <> G_TRUE THEN
8507 RAISE L_EXCEP_UNEXPECTED_ERR;
8508 END IF;
8509
8510 Append_ContItem_PlSql_Table
8511 (P_Input_Tab => Lx_Product_Customer
8512 ,P_Append_Tab => Lx_Product_CovLevels
8513 ,X_Output_Tab => Lx_Product_CovLevels_Out
8514 ,X_Result => Lx_Result
8515 ,X_Return_Status => Lx_Return_Status);
8516
8517 IF Lx_Result <> G_TRUE THEN
8518 RAISE L_EXCEP_UNEXPECTED_ERR;
8519 END IF;
8520
8521 Lx_Product_CovLevels := Lx_Product_CovLevels_Out;
8522
8523 If Lx_Site_Type_Code = 'HZ_PARTY_SITES' Then
8524
8525 Get_Site_CovLevels
8526 (P_CovSite_Obj_Id => Lx_Site_Id
8527 ,P_Org_Id => Ln_Org_Id
8528 ,X_Site_CovLevels => Lx_Product_Site
8529 ,X_Result => Lx_Result
8530 ,X_Return_Status => Lx_Return_Status);
8531
8532 IF Lx_Result <> G_TRUE THEN
8533 RAISE L_EXCEP_UNEXPECTED_ERR;
8534 END IF;
8535
8536 Append_ContItem_PlSql_Table
8537 (P_Input_Tab => Lx_Product_Site
8538 ,P_Append_Tab => Lx_Product_CovLevels
8539 ,X_Output_Tab => Lx_Product_CovLevels_Out
8540 ,X_Result => Lx_Result
8541 ,X_Return_Status => Lx_Return_Status);
8542
8543 IF Lx_Result <> G_TRUE THEN
8544 RAISE L_EXCEP_UNEXPECTED_ERR;
8545 END IF;
8546
8547 Lx_Product_CovLevels := Lx_Product_CovLevels_Out;
8548
8549 END IF; -- Lx_Site_Type_Code = 'HZ_PARTY_SITES'
8550
8551 Li_TableIdx := Lx_Product_CovLevels.LAST + 1;
8552
8553 CLOSE Lx_Csr_CovProd;
8554
8555 END LOOP;
8556
8557 END IF;
8558
8559 Lx_Product_CovLevels := Lx_Product_CovLevels_Out;
8560
8561 X_Party_Id := Lx_Party_Id;
8562 X_Product_CovLevels := Lx_Product_CovLevels;
8563 X_Result := Lx_Result;
8564 X_Return_Status := Lx_Return_Status;
8565
8566 EXCEPTION
8567
8568 WHEN L_EXCEP_NO_DATA_FOUND THEN
8569
8570 IF Lx_Csr_CovProd%ISOPEN THEN
8571 CLOSE Lx_Csr_CovProd;
8572 END IF;
8573
8574 X_Result := G_TRUE;
8575 X_Return_Status := G_TRUE;
8576
8577 WHEN L_EXCEP_UNEXPECTED_ERR THEN
8578
8579 X_Result := Lx_Result;
8580 X_Return_Status := Lx_Return_Status;
8581
8582 WHEN OTHERS THEN
8583
8584 OKC_API.SET_MESSAGE
8585 (P_App_Name => G_APP_NAME_OKC
8586 ,P_Msg_Name => G_UNEXPECTED_ERROR
8587 ,P_Token1 => G_SQLCODE_TOKEN
8588 ,P_Token1_Value => SQLCODE
8589 ,P_Token2 => G_SQLERRM_TOKEN
8590 ,P_Token2_Value => SQLERRM);
8591
8592 OKC_API.SET_MESSAGE
8593 (P_App_Name => G_APP_NAME_OKC
8594 ,P_Msg_Name => G_DEBUG_TOKEN
8595 ,P_Token1 => G_PACKAGE_TOKEN
8596 ,P_Token1_Value => G_PKG_NAME
8597 ,P_Token2 => G_PROGRAM_TOKEN
8598 ,P_Token2_Value => 'Get_Product_CovLevels');
8599
8600 X_Result := G_FALSE;
8601 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8602
8603 END Get_Product_CovLevels;
8604
8605 /*--------------------------------------------------*/
8606
8607
8608 PROCEDURE Sort_Asc_ContItem_PlSql_Table
8609 (P_Input_Tab IN GT_ContItem_Ref
8610 ,X_Output_Tab out nocopy GT_ContItem_Ref
8611 ,X_Result out nocopy Gx_Boolean
8612 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
8613
8614 Lx_Sort_Tab GT_ContItem_Ref;
8615 Lx_Result Gx_Boolean;
8616 Lx_Return_Status Gx_Ret_Sts;
8617
8618 Li_TableIdx_Out BINARY_INTEGER;
8619 Li_TableIdx_In BINARY_INTEGER;
8620
8621 Lx_Temp_ContItem GR_ContItem_Ref;
8622
8623 Lv_Composit_Val1 VARCHAR2(300);
8624 Lv_Composit_Val2 VARCHAR2(300);
8625
8626 BEGIN
8627
8628 Lx_Sort_Tab := P_Input_Tab;
8629 Lx_Result := G_TRUE;
8630 Lx_Return_Status := G_RET_STS_SUCCESS;
8631
8632 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
8633
8634 WHILE Li_TableIdx_Out IS NOT NULL LOOP
8635
8636 Li_TableIdx_In := Li_TableIdx_Out;
8637
8638 WHILE Li_TableIdx_In IS NOT NULL LOOP
8639
8640 Lv_Composit_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Rx_ObjCode||Lx_Sort_Tab(Li_TableIdx_Out).Rx_Obj1Id1
8641 ||Lx_Sort_Tab(Li_TableIdx_Out).Rx_Obj1Id2;
8642
8643 Lv_Composit_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Rx_ObjCode||Lx_Sort_Tab(Li_TableIdx_In).Rx_Obj1Id1
8644 ||Lx_Sort_Tab(Li_TableIdx_In).Rx_Obj1Id2;
8645
8646 IF Lv_Composit_Val1 > Lv_Composit_Val2 THEN
8647
8648 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
8649 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
8650 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
8651
8652 END IF;
8653
8654 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
8655
8656 END LOOP;
8657
8658 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
8659
8660 END LOOP;
8661
8662 X_Output_Tab := Lx_Sort_Tab;
8663 X_Result := Lx_Result;
8664 X_Return_Status := Lx_Return_Status;
8665
8666 EXCEPTION
8667
8668 WHEN OTHERS THEN
8669
8670 OKC_API.SET_MESSAGE
8671 (P_App_Name => G_APP_NAME_OKC
8672 ,P_Msg_Name => G_UNEXPECTED_ERROR
8673 ,P_Token1 => G_SQLCODE_TOKEN
8674 ,P_Token1_Value => SQLCODE
8675 ,P_Token2 => G_SQLERRM_TOKEN
8676 ,P_Token2_Value => SQLERRM);
8677
8678 OKC_API.SET_MESSAGE
8679 (P_App_Name => G_APP_NAME_OKC
8680 ,P_Msg_Name => G_DEBUG_TOKEN
8681 ,P_Token1 => G_PACKAGE_TOKEN
8682 ,P_Token1_Value => G_PKG_NAME
8683 ,P_Token2 => G_PROGRAM_TOKEN
8684 ,P_Token2_Value => 'Sort_Asc_ContItem_PlSql_Table');
8685
8686 X_Result := G_FALSE;
8687 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8688
8689 END Sort_Asc_ContItem_PlSql_Table;
8690
8691 -----------------------------------------------------------------------------------------------------------------------*
8692
8693 PROCEDURE Dedup_ContItem_PlSql_Table
8694 (P_Input_Tab IN GT_ContItem_Ref
8695 ,X_Output_Tab out nocopy GT_ContItem_Ref
8696 ,X_Result out nocopy Gx_Boolean
8697 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
8698
8699 Lx_DeDup_Tab GT_ContItem_Ref;
8700 Lx_Result Gx_Boolean;
8701 Lx_Return_Status Gx_Ret_Sts;
8702
8703 Li_TableIdx BINARY_INTEGER;
8704
8705 Lx_Temp_ContItem GR_ContItem_Ref;
8706
8707 Lv_Composit_Val1 VARCHAR2(300);
8708 Lv_Composit_Val2 VARCHAR2(300);
8709
8710 BEGIN
8711
8712 Lx_DeDup_Tab := P_Input_Tab;
8713 Lx_Result := G_TRUE;
8714 Lx_Return_Status := G_RET_STS_SUCCESS;
8715
8716 Li_TableIdx := Lx_DeDup_Tab.FIRST;
8717
8718 WHILE Li_TableIdx IS NOT NULL LOOP
8719
8720 Lv_Composit_Val1 := Lx_DeDup_Tab(Li_TableIdx).Rx_ObjCode||Lx_DeDup_Tab(Li_TableIdx).Rx_Obj1Id1
8721 ||Lx_DeDup_Tab(Li_TableIdx).Rx_Obj1Id2;
8722
8723 Lv_Composit_Val2 := Lx_Temp_ContItem.Rx_ObjCode||Lx_Temp_ContItem.Rx_Obj1Id1||Lx_Temp_ContItem.Rx_Obj1Id2;
8724
8725 IF Lv_Composit_Val1 = Lv_Composit_Val2 THEN
8726 Lx_DeDup_Tab.DELETE(Li_TableIdx);
8727 ELSE
8728 Lx_Temp_ContItem := Lx_DeDup_Tab(Li_TableIdx);
8729 END IF;
8730
8731 Li_TableIdx := Lx_DeDup_Tab.NEXT(Li_TableIdx);
8732
8733 END LOOP;
8734
8735 X_Output_Tab := Lx_DeDup_Tab;
8736 X_Result := Lx_Result;
8737 X_Return_Status := Lx_Return_Status;
8738
8739 EXCEPTION
8740
8741 WHEN OTHERS THEN
8742
8743 OKC_API.SET_MESSAGE
8744 (P_App_Name => G_APP_NAME_OKC
8745 ,P_Msg_Name => G_UNEXPECTED_ERROR
8746 ,P_Token1 => G_SQLCODE_TOKEN
8747 ,P_Token1_Value => SQLCODE
8748 ,P_Token2 => G_SQLERRM_TOKEN
8749 ,P_Token2_Value => SQLERRM);
8750
8751 OKC_API.SET_MESSAGE
8752 (P_App_Name => G_APP_NAME_OKC
8753 ,P_Msg_Name => G_DEBUG_TOKEN
8754 ,P_Token1 => G_PACKAGE_TOKEN
8755 ,P_Token1_Value => G_PKG_NAME
8756 ,P_Token2 => G_PROGRAM_TOKEN
8757 ,P_Token2_Value => 'Dedup_ContItem_PlSql_Table');
8758
8759 X_Result := G_FALSE;
8760 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8761
8762 END Dedup_ContItem_PlSql_Table;
8763
8764 -----------------------------------------------------------------------------------------------------------------------*
8765
8766 PROCEDURE Get_CovLevel_Contracts
8767 (P_CovLevel_Items IN GT_ContItem_Ref
8768 ,P_Party_Id IN Gx_OKS_Id
8769 ,X_CovLevel_Contracts OUT NOCOPY GT_Contract_Ref
8770 ,X_Result OUT nocopy Gx_Boolean
8771 ,X_Return_Status OUT nocopy Gx_Ret_Sts)
8772 IS
8773
8774 -- bug 3045667 needed resolution as pre filtering records based on party id
8775 -- if the object_code = 'OKX_COVITEM' for performance improvements. used exists clause.
8776
8777
8778 CURSOR Lx_Csr_CovLvlOthr_Contracts(Cx_CovLevel_Obj_Id1 IN Gx_OKS_Id
8779 ,Cv_CovLevel_Obj_Id2 IN VARCHAR2
8780 ,Cx_CovLevel_Obj_Code IN Gx_JTOT_ObjCode) IS
8781 SELECT DISTINCT IT.Dnz_Chr_Id Dnz_Chr_Id, IT.Cle_Id
8782 FROM OKC_K_ITEMS IT
8783 WHERE IT.Object1_Id1 = TO_CHAR(Cx_CovLevel_Obj_Id1)
8784 AND (IT.Object1_Id2 = Cv_CovLevel_Obj_Id2 OR Cv_CovLevel_Obj_Id2 = '#')
8785 AND IT.Jtot_Object1_Code = Cx_CovLevel_Obj_Code;
8786
8787 CURSOR Lx_Csr_CovLvlItem_Contracts(Cx_CovLevel_Obj_Id1 IN Gx_OKS_Id
8788 ,Cv_CovLevel_Obj_Id2 IN VARCHAR2
8789 ,Cx_CovLevel_Obj_Code IN Gx_JTOT_ObjCode) IS
8790 SELECT DISTINCT IT.Dnz_Chr_Id Dnz_Chr_Id, IT.Cle_Id
8791 FROM OKC_K_ITEMS IT
8792 WHERE IT.Object1_Id1 = TO_CHAR(Cx_CovLevel_Obj_Id1)
8793 -- AND (IT.Object1_Id2 = Cv_CovLevel_Obj_Id2 OR Cv_CovLevel_Obj_Id2 = '#') -- BUG# 4735542
8794 AND IT.Jtot_Object1_Code = Cx_CovLevel_Obj_Code
8795 AND EXISTS (SELECT '*'
8796 FROM OKC_K_PARTY_ROLES_B PR
8797 WHERE PR.CHR_ID = IT.DNZ_CHR_ID
8798 AND PR.CLE_ID IS NULL
8799 AND PR.DNZ_CHR_ID = IT.DNZ_CHR_ID
8800 AND PR.OBJECT1_ID1 = TO_CHAR(p_party_id)
8801 AND PR.OBJECT1_ID2 = '#'
8802 AND PR.JTOT_OBJECT1_CODE = 'OKX_PARTY'
8803 AND PR.RLE_CODE <> 'VENDOR' );
8804
8805 Lx_Party_Id CONSTANT Gx_OKS_Id := P_Party_Id;
8806 Lx_CovLevel_Items GT_ContItem_Ref;
8807 Lx_CovLevel_SortItems GT_ContItem_Ref;
8808 Lx_CovLevel_DeDupItems GT_ContItem_Ref;
8809
8810 Lx_CovLvlOth_DeDupItems GT_ContItem_Ref;
8811 Lx_CovLvlItem_DeDupItems GT_ContItem_Ref;
8812
8813 Lx_CovLevel_Obj_Id1 Gx_OKS_Id ;
8814 Lv_CovLevel_Obj_Id2 VARCHAR2(200) ;
8815 Lx_CovLevel_Obj_Code Gx_JTOT_ObjCode ;
8816
8817 Lx_CovLevel_Contracts GT_Contract_Ref;
8818
8819 Lx_Result Gx_Boolean;
8820 Lx_Return_Status Gx_Ret_Sts;
8821
8822 Li_TableIdx BINARY_INTEGER;
8823 Li_TabIdx_DeDup BINARY_INTEGER;
8824
8825 j number;
8826 k number;
8827
8828 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
8829
8830 BEGIN
8831
8832 Lx_CovLevel_Items := P_CovLevel_Items;
8833
8834 Lx_Result := G_TRUE;
8835 Lx_Return_Status := G_RET_STS_SUCCESS;
8836
8837 Li_TableIdx := 0;
8838 j := 0;
8839 k := 0;
8840
8841 Sort_Asc_ContItem_PlSql_Table
8842 (P_Input_Tab => Lx_CovLevel_Items
8843 ,X_Output_Tab => Lx_CovLevel_SortItems
8844 ,X_Result => Lx_Result
8845 ,X_Return_Status => Lx_Return_Status);
8846
8847 IF Lx_Result <> G_TRUE THEN
8848 RAISE L_EXCEP_UNEXPECTED_ERR;
8849 END IF;
8850
8851 Dedup_ContItem_PlSql_Table
8852 (P_Input_Tab => Lx_CovLevel_SortItems
8853 ,X_Output_Tab => Lx_CovLevel_DeDupItems
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 -- added due to bug 3045667
8862 -- IF Lx_CovLevel_DeDupItems.COUNT > 0 THEN -- fixed dated july 30, 2003
8863 -- FOR i in Lx_CovLevel_DeDupItems.first..Lx_CovLevel_DeDupItems.last LOOP
8864
8865 Li_TabIdx_DeDup := Lx_CovLevel_DeDupItems.FIRST;
8866 Li_TableIdx := 0; --NVL(Lx_CovLevel_Contracts.FIRST,0);
8867
8868 WHILE Li_TabIdx_DeDup IS NOT NULL LOOP
8869
8870 Li_TableIdx := Li_TableIdx + 1;
8871
8872 IF Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode = 'OKX_COVITEM' THEN
8873 Lx_CovLvlItem_DeDupItems(Li_TableIdx).Rx_Obj1Id1 := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
8874 Lx_CovLvlItem_DeDupItems(Li_TableIdx).Rx_Obj1Id2 := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
8875 Lx_CovLvlItem_DeDupItems(Li_TableIdx).Rx_ObjCode := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
8876 ELSE
8877 Lx_CovLvlOth_DeDupItems(Li_TableIdx).Rx_Obj1Id1 := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
8878 Lx_CovLvlOth_DeDupItems(Li_TableIdx).Rx_Obj1Id2 := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
8879 Lx_CovLvlOth_DeDupItems(Li_TableIdx).Rx_ObjCode := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
8880 END IF;
8881
8882 Li_TabIdx_DeDup := Lx_CovLevel_DeDupItems.NEXT(Li_TabIdx_DeDup);
8883
8884 END LOOP;
8885
8886 -- END LOOP;
8887 -- END IF;
8888
8889 IF Lx_CovLvlOth_DeDupItems.count > 0 THEN -- bug 3045667
8890
8891 Li_TabIdx_DeDup := Lx_CovLvlOth_DeDupItems.FIRST;
8892 Li_TableIdx := 0; --NVL(Lx_CovLevel_Contracts.FIRST,0);
8893
8894 WHILE Li_TabIdx_DeDup IS NOT NULL LOOP
8895
8896 Lx_CovLevel_Obj_Id1 := Lx_CovLvlOth_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
8897 Lv_CovLevel_Obj_Id2 := Lx_CovLvlOth_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
8898 Lx_CovLevel_Obj_Code := Lx_CovLvlOth_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
8899
8900 FOR Idx IN Lx_Csr_CovLvlOthr_Contracts(Lx_CovLevel_Obj_Id1,Lv_CovLevel_Obj_Id2,Lx_CovLevel_Obj_Code) LOOP
8901
8902 Li_TableIdx := Li_TableIdx + 1;
8903 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
8904 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Cle_Id;
8905
8906 IF Lx_CovLevel_Obj_Code = 'OKX_COVITEM' THEN
8907 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := Lx_Party_Id;
8908 ELSE
8909 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
8910 END IF;
8911
8912 END LOOP;
8913
8914 Li_TabIdx_DeDup := Lx_CovLvlOth_DeDupItems.NEXT(Li_TabIdx_DeDup);
8915
8916 END LOOP;
8917
8918 END IF;
8919
8920 IF Lx_CovLvlItem_DeDupItems.count > 0 THEN
8921
8922 Li_TabIdx_DeDup := Lx_CovLvlItem_DeDupItems.FIRST;
8923 Li_TableIdx := nvl(Li_TableIdx,0); --NVL(Lx_covLevel_Contracts.LAST,0);
8924
8925 WHILE Li_TabIdx_DeDup IS NOT NULL LOOP
8926
8927 Lx_CovLevel_Obj_Id1 := Lx_CovLvlItem_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
8928 Lv_CovLevel_Obj_Id2 := Lx_CovLvlItem_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
8929 Lx_CovLevel_Obj_Code := Lx_CovLvlItem_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
8930
8931 FOR Idx IN Lx_Csr_CovLvlItem_Contracts(Lx_CovLevel_Obj_Id1,Lv_CovLevel_Obj_Id2,Lx_CovLevel_Obj_Code) LOOP
8932
8933 Li_TableIdx := Li_TableIdx + 1;
8934 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
8935 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Cle_Id;
8936
8937 IF Lx_CovLevel_Obj_Code = 'OKX_COVITEM' THEN
8938 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := Lx_Party_Id;
8939 ELSE
8940 Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
8941 END IF;
8942
8943 END LOOP;
8944
8945 Li_TabIdx_DeDup := Lx_CovLvlItem_DeDupItems.NEXT(Li_TabIdx_DeDup);
8946
8947 END LOOP;
8948
8949 END IF;
8950
8951
8952 X_CovLevel_Contracts := Lx_CovLevel_Contracts;
8953 X_Result := Lx_Result;
8954 X_Return_Status := Lx_Return_Status;
8955
8956 EXCEPTION
8957
8958 WHEN L_EXCEP_UNEXPECTED_ERR THEN
8959
8960 X_Result := Lx_Result;
8961 X_Return_Status := Lx_Return_Status;
8962
8963 WHEN OTHERS THEN
8964
8965 OKC_API.SET_MESSAGE
8966 (P_App_Name => G_APP_NAME_OKC
8967 ,P_Msg_Name => G_UNEXPECTED_ERROR
8968 ,P_Token1 => G_SQLCODE_TOKEN
8969 ,P_Token1_Value => SQLCODE
8970 ,P_Token2 => G_SQLERRM_TOKEN
8971 ,P_Token2_Value => SQLERRM);
8972
8973 OKC_API.SET_MESSAGE
8974 (P_App_Name => G_APP_NAME_OKC
8975 ,P_Msg_Name => G_DEBUG_TOKEN
8976 ,P_Token1 => G_PACKAGE_TOKEN
8977 ,P_Token1_Value => G_PKG_NAME
8978 ,P_Token2 => G_PROGRAM_TOKEN
8979 ,P_Token2_Value => 'Get_CovLevel_Contracts');
8980
8981 X_Result := G_FALSE;
8982 X_Return_Status := G_RET_STS_UNEXP_ERROR;
8983
8984 END Get_CovLevel_Contracts;
8985
8986 -----------------------------------------------------------------------------------------------------------------------*
8987
8988 PROCEDURE Get_CovProd_Contracts
8989 (P_CovProd_Obj_Id IN Gx_OKS_Id
8990 ,P_Organization_Id IN NUMBER
8991 ,P_Org_Id IN NUMBER
8992 ,X_CovProd_Contracts out nocopy GT_Contract_Ref
8993 ,X_Result out nocopy Gx_Boolean
8994 ,X_Return_Status out nocopy Gx_Ret_Sts)
8995 IS
8996
8997 Lx_CovProd_Obj_Id CONSTANT Gx_OKS_Id := P_CovProd_Obj_Id;
8998 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
8999 Ln_Org_Id CONSTANT NUMBER := P_Org_Id;
9000
9001 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
9002
9003 Lx_Product_CovLevels GT_ContItem_Ref;
9004 Lx_CovProd_Contracts GT_Contract_Ref;
9005
9006 Lx_Result Gx_Boolean;
9007 Lx_Return_Status Gx_Ret_Sts;
9008
9009 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9010
9011 BEGIN
9012
9013 Lx_Result := G_TRUE;
9014 Lx_Return_Status := G_RET_STS_SUCCESS;
9015
9016 Get_Product_CovLevels
9017 (P_CovProd_Obj_Id => Lx_CovProd_Obj_Id
9018 ,P_Organization_Id => Ln_Organization_Id
9019 ,P_Org_Id => Ln_Org_Id
9020 ,X_Party_Id => Lx_Party_Id
9021 ,X_Product_CovLevels => Lx_Product_CovLevels
9022 ,X_Result => Lx_Result
9023 ,X_Return_Status => Lx_Return_Status);
9024
9025 IF Lx_Result <> G_TRUE THEN
9026 RAISE L_EXCEP_UNEXPECTED_ERR;
9027 END IF;
9028
9029 Get_CovLevel_Contracts
9030 (P_CovLevel_Items => Lx_Product_CovLevels
9031 ,P_Party_Id => Lx_Party_Id
9032 ,X_CovLevel_Contracts => Lx_CovProd_Contracts
9033 ,X_Result => Lx_Result
9034 ,X_Return_Status => Lx_Return_Status);
9035
9036 IF Lx_Result <> G_TRUE THEN
9037 RAISE L_EXCEP_UNEXPECTED_ERR;
9038 END IF;
9039
9040 X_CovProd_Contracts := Lx_CovProd_Contracts;
9041 X_Result := Lx_Result;
9042 X_Return_Status := Lx_Return_Status;
9043
9044 EXCEPTION
9045
9046 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9047
9048 X_Result := Lx_Result;
9049 X_Return_Status := Lx_Return_Status;
9050
9051 WHEN OTHERS THEN
9052
9053 OKC_API.SET_MESSAGE
9054 (P_App_Name => G_APP_NAME_OKC
9055 ,P_Msg_Name => G_UNEXPECTED_ERROR
9056 ,P_Token1 => G_SQLCODE_TOKEN
9057 ,P_Token1_Value => SQLCODE
9058 ,P_Token2 => G_SQLERRM_TOKEN
9059 ,P_Token2_Value => SQLERRM);
9060
9061 OKC_API.SET_MESSAGE
9062 (P_App_Name => G_APP_NAME_OKC
9063 ,P_Msg_Name => G_DEBUG_TOKEN
9064 ,P_Token1 => G_PACKAGE_TOKEN
9065 ,P_Token1_Value => G_PKG_NAME
9066 ,P_Token2 => G_PROGRAM_TOKEN
9067 ,P_Token2_Value => 'Get_CovProd_Contracts');
9068
9069 X_Result := G_FALSE;
9070 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9071
9072 END Get_CovProd_Contracts;
9073
9074 -----------------------------------------------------------------------------------------------------------------------*
9075
9076 PROCEDURE Get_CovItem_Contracts
9077 (P_CovItem_Obj_Id IN Gx_OKS_Id
9078 ,P_Organization_Id IN NUMBER
9079 ,P_Party_Id IN Gx_OKS_Id
9080 ,X_CovItem_Contracts out nocopy GT_Contract_Ref
9081 ,X_Result out nocopy Gx_Boolean
9082 ,X_Return_Status out nocopy Gx_Ret_Sts)
9083 IS
9084
9085 Lx_CovItem_Obj_Id CONSTANT Gx_OKS_Id := P_CovItem_Obj_Id;
9086 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
9087 Lx_Party_Id CONSTANT Gx_OKS_Id := P_Party_Id;
9088
9089 Lx_Item_CovLevels GT_ContItem_Ref;
9090 Lx_CovItem_Contracts GT_Contract_Ref;
9091
9092 Lx_Result Gx_Boolean;
9093 Lx_Return_Status Gx_Ret_Sts;
9094
9095 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9096
9097 BEGIN
9098
9099 Lx_Result := G_TRUE;
9100 Lx_Return_Status := G_RET_STS_SUCCESS;
9101
9102 Get_Item_CovLevels
9103 (P_CovItem_Obj_Id => Lx_CovItem_Obj_Id
9104 ,P_Organization_Id => Ln_Organization_Id
9105 ,X_Item_CovLevels => Lx_Item_CovLevels
9106 ,X_Result => Lx_Result
9107 ,X_Return_Status => Lx_Return_Status);
9108
9109 IF Lx_Result <> G_TRUE THEN
9110 RAISE L_EXCEP_UNEXPECTED_ERR;
9111 END IF;
9112
9113 Get_CovLevel_Contracts
9114 (P_CovLevel_Items => Lx_Item_CovLevels
9115 ,P_Party_Id => Lx_Party_Id
9116 ,X_CovLevel_Contracts => Lx_CovItem_Contracts
9117 ,X_Result => Lx_Result
9118 ,X_Return_Status => Lx_Return_Status);
9119
9120 IF Lx_Result <> G_TRUE THEN
9121 RAISE L_EXCEP_UNEXPECTED_ERR;
9122 END IF;
9123
9124 X_CovItem_Contracts := Lx_CovItem_Contracts;
9125 X_Result := Lx_Result;
9126 X_Return_Status := Lx_Return_Status;
9127
9128 EXCEPTION
9129
9130 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9131
9132 X_Result := Lx_Result;
9133 X_Return_Status := Lx_Return_Status;
9134
9135 WHEN OTHERS THEN
9136
9137 OKC_API.SET_MESSAGE
9138 (P_App_Name => G_APP_NAME_OKC
9139 ,P_Msg_Name => G_UNEXPECTED_ERROR
9140 ,P_Token1 => G_SQLCODE_TOKEN
9141 ,P_Token1_Value => SQLCODE
9142 ,P_Token2 => G_SQLERRM_TOKEN
9143 ,P_Token2_Value => SQLERRM);
9144
9145 OKC_API.SET_MESSAGE
9146 (P_App_Name => G_APP_NAME_OKC
9147 ,P_Msg_Name => G_DEBUG_TOKEN
9148 ,P_Token1 => G_PACKAGE_TOKEN
9149 ,P_Token1_Value => G_PKG_NAME
9150 ,P_Token2 => G_PROGRAM_TOKEN
9151 ,P_Token2_Value => 'Get_CovItem_Contracts');
9152
9153 X_Result := G_FALSE;
9154 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9155
9156 END Get_CovItem_Contracts;
9157
9158 -----------------------------------------------------------------------------------------------------------------------*
9159
9160 PROCEDURE Get_CovSys_Contracts
9161 (P_CovSys_Obj_Id IN Gx_OKS_Id
9162 ,P_Org_Id IN NUMBER
9163 ,X_CovSys_Contracts out nocopy GT_Contract_Ref
9164 ,X_Result out nocopy Gx_Boolean
9165 ,X_Return_Status out nocopy Gx_Ret_Sts)
9166 IS
9167
9168 Lx_CovSys_Obj_Id CONSTANT Gx_OKS_Id := P_CovSys_Obj_Id;
9169 Ln_Org_Id CONSTANT NUMBER := P_Org_Id;
9170
9171 Lx_System_CovLevels GT_ContItem_Ref;
9172 Lx_CovSys_Contracts GT_Contract_Ref;
9173
9174 Lx_Result Gx_Boolean;
9175 Lx_Return_Status Gx_Ret_Sts;
9176
9177 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9178
9179 BEGIN
9180
9181 Lx_Result := G_TRUE;
9182 Lx_Return_Status := G_RET_STS_SUCCESS;
9183
9184 Get_System_CovLevels
9185 (P_CovSys_Obj_Id => Lx_CovSys_Obj_Id
9186 ,P_Org_Id => Ln_Org_Id
9187 ,X_System_CovLevels => Lx_System_CovLevels
9188 ,X_Result => Lx_Result
9189 ,X_Return_Status => Lx_Return_Status );
9190
9191 IF Lx_Result <> G_TRUE THEN
9192 RAISE L_EXCEP_UNEXPECTED_ERR;
9193 END IF;
9194
9195 Get_CovLevel_Contracts
9196 (P_CovLevel_Items => Lx_System_CovLevels
9197 ,P_Party_Id => NULL
9198 ,X_CovLevel_Contracts => Lx_CovSys_Contracts
9199 ,X_Result => Lx_Result
9200 ,X_Return_Status => Lx_Return_Status);
9201
9202 IF Lx_Result <> G_TRUE THEN
9203 RAISE L_EXCEP_UNEXPECTED_ERR;
9204 END IF;
9205
9206 X_CovSys_Contracts := Lx_CovSys_Contracts;
9207 X_Result := Lx_Result;
9208 X_Return_Status := Lx_Return_Status;
9209
9210 EXCEPTION
9211
9212 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9213
9214 X_Result := Lx_Result;
9215 X_Return_Status := Lx_Return_Status;
9216
9217 WHEN OTHERS THEN
9218
9219 OKC_API.SET_MESSAGE
9220 (P_App_Name => G_APP_NAME_OKC
9221 ,P_Msg_Name => G_UNEXPECTED_ERROR
9222 ,P_Token1 => G_SQLCODE_TOKEN
9223 ,P_Token1_Value => SQLCODE
9224 ,P_Token2 => G_SQLERRM_TOKEN
9225 ,P_Token2_Value => SQLERRM);
9226
9227 OKC_API.SET_MESSAGE
9228 (P_App_Name => G_APP_NAME_OKC
9229 ,P_Msg_Name => G_DEBUG_TOKEN
9230 ,P_Token1 => G_PACKAGE_TOKEN
9231 ,P_Token1_Value => G_PKG_NAME
9232 ,P_Token2 => G_PROGRAM_TOKEN
9233 ,P_Token2_Value => 'Get_CovSys_Contracts');
9234
9235 X_Result := G_FALSE;
9236 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9237
9238 END Get_CovSys_Contracts;
9239
9240 -----------------------------------------------------------------------------------------------------------------------*
9241
9242 PROCEDURE Get_CovSite_Contracts
9243 (P_CovSite_Obj_Id IN Gx_OKS_Id
9244 ,P_Org_Id IN NUMBER
9245 ,X_CovSite_Contracts out nocopy GT_Contract_Ref
9246 ,X_Result out nocopy Gx_Boolean
9247 ,X_Return_Status out nocopy Gx_Ret_Sts)
9248 IS
9249
9250 Lx_CovSite_Obj_Id CONSTANT Gx_OKS_Id := P_CovSite_Obj_Id;
9251 Ln_Org_Id CONSTANT NUMBER := P_Org_Id;
9252
9253 Lx_Site_CovLevels GT_ContItem_Ref;
9254 Lx_CovSite_Contracts GT_Contract_Ref;
9255
9256 Lx_Result Gx_Boolean;
9257 Lx_Return_Status Gx_Ret_Sts;
9258
9259 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9260
9261 BEGIN
9262
9263 Lx_Result := G_TRUE;
9264 Lx_Return_Status := G_RET_STS_SUCCESS;
9265
9266 Get_Site_CovLevels
9267 (P_CovSite_Obj_Id => Lx_CovSite_Obj_Id
9268 ,P_Org_Id => Ln_Org_Id
9269 ,X_Site_CovLevels => Lx_Site_CovLevels
9270 ,X_Result => Lx_Result
9271 ,X_Return_Status => Lx_Return_Status );
9272
9273 IF Lx_Result <> G_TRUE THEN
9274 RAISE L_EXCEP_UNEXPECTED_ERR;
9275 END IF;
9276
9277 Get_CovLevel_Contracts
9278 (P_CovLevel_Items => Lx_Site_CovLevels
9279 ,P_Party_Id => NULL
9280 ,X_CovLevel_Contracts => Lx_CovSite_Contracts
9281 ,X_Result => Lx_Result
9282 ,X_Return_Status => Lx_Return_Status);
9283
9284 IF Lx_Result <> G_TRUE THEN
9285 RAISE L_EXCEP_UNEXPECTED_ERR;
9286 END IF;
9287
9288 X_CovSite_Contracts := Lx_CovSite_Contracts;
9289 X_Result := Lx_Result;
9290 X_Return_Status := Lx_Return_Status;
9291
9292 EXCEPTION
9293
9294 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9295
9296 X_Result := Lx_Result;
9297 X_Return_Status := Lx_Return_Status;
9298
9299 WHEN OTHERS THEN
9300
9301 OKC_API.SET_MESSAGE
9302 (P_App_Name => G_APP_NAME_OKC
9303 ,P_Msg_Name => G_UNEXPECTED_ERROR
9304 ,P_Token1 => G_SQLCODE_TOKEN
9305 ,P_Token1_Value => SQLCODE
9306 ,P_Token2 => G_SQLERRM_TOKEN
9307 ,P_Token2_Value => SQLERRM);
9308
9309 OKC_API.SET_MESSAGE
9310 (P_App_Name => G_APP_NAME_OKC
9311 ,P_Msg_Name => G_DEBUG_TOKEN
9312 ,P_Token1 => G_PACKAGE_TOKEN
9313 ,P_Token1_Value => G_PKG_NAME
9314 ,P_Token2 => G_PROGRAM_TOKEN
9315 ,P_Token2_Value => 'Get_CovSite_Contracts');
9316
9317 X_Result := G_FALSE;
9318 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9319
9320 END Get_CovSite_Contracts;
9321
9322 -----------------------------------------------------------------------------------------------------------------------*
9323
9324 PROCEDURE Get_CovCust_Contracts
9325 (P_CovCust_Obj_Id IN Gx_OKS_Id
9326 ,X_CovCust_Contracts out nocopy GT_Contract_Ref
9327 ,X_Result out nocopy Gx_Boolean
9328 ,X_Return_Status out nocopy Gx_Ret_Sts)
9329 IS
9330
9331 Lx_CovCust_Obj_Id CONSTANT Gx_OKS_Id := P_CovCust_Obj_Id;
9332
9333 Lx_Cust_CovLevels GT_ContItem_Ref;
9334 Lx_CovCust_Contracts GT_Contract_Ref;
9335
9336 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
9337
9338 Lx_Result Gx_Boolean;
9339 Lx_Return_Status Gx_Ret_Sts;
9340
9341 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9342
9343 BEGIN
9344
9345 Lx_Result := G_TRUE;
9346 Lx_Return_Status := G_RET_STS_SUCCESS;
9347
9348 Get_Customer_CovLevels
9349 (P_CovCust_Obj_Id => Lx_CovCust_Obj_Id
9350 ,X_Party_Id => Lx_Party_Id
9351 ,X_Customer_CovLevels => Lx_Cust_CovLevels
9352 ,X_Result => Lx_Result
9353 ,X_Return_Status => Lx_Return_Status );
9354
9355 IF Lx_Result <> G_TRUE THEN
9356 RAISE L_EXCEP_UNEXPECTED_ERR;
9357 END IF;
9358
9359 Get_CovLevel_Contracts
9360 (P_CovLevel_Items => Lx_Cust_CovLevels
9361 ,P_Party_Id => NULL
9362 ,X_CovLevel_Contracts => Lx_CovCust_Contracts
9363 ,X_Result => Lx_Result
9364 ,X_Return_Status => Lx_Return_Status);
9365
9366 IF Lx_Result <> G_TRUE THEN
9367 RAISE L_EXCEP_UNEXPECTED_ERR;
9368 END IF;
9369
9370 X_CovCust_Contracts := Lx_CovCust_Contracts;
9371 X_Result := Lx_Result;
9372 X_Return_Status := Lx_Return_Status;
9373
9374 EXCEPTION
9375
9376 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9377
9378 X_Result := Lx_Result;
9379 X_Return_Status := Lx_Return_Status;
9380
9381 WHEN OTHERS THEN
9382
9383 OKC_API.SET_MESSAGE
9384 (P_App_Name => G_APP_NAME_OKC
9385 ,P_Msg_Name => G_UNEXPECTED_ERROR
9386 ,P_Token1 => G_SQLCODE_TOKEN
9387 ,P_Token1_Value => SQLCODE
9388 ,P_Token2 => G_SQLERRM_TOKEN
9389 ,P_Token2_Value => SQLERRM);
9390
9391 OKC_API.SET_MESSAGE
9392 (P_App_Name => G_APP_NAME_OKC
9393 ,P_Msg_Name => G_DEBUG_TOKEN
9394 ,P_Token1 => G_PACKAGE_TOKEN
9395 ,P_Token1_Value => G_PKG_NAME
9396 ,P_Token2 => G_PROGRAM_TOKEN
9397 ,P_Token2_Value => 'Get_CovCust_Contracts');
9398
9399 X_Result := G_FALSE;
9400 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9401
9402 END Get_CovCust_Contracts;
9403
9404 -----------------------------------------------------------------------------------------------------------------------*
9405
9406 PROCEDURE Get_CovParty_Contracts
9407 (P_CovParty_Obj_Id IN Gx_OKS_Id
9408 ,X_CovParty_Contracts out nocopy GT_Contract_Ref
9409 ,X_Result out nocopy Gx_Boolean
9410 ,X_Return_Status out nocopy Gx_Ret_Sts)
9411 IS
9412
9413 Lx_CovParty_Obj_Id CONSTANT Gx_OKS_Id := P_CovParty_Obj_Id;
9414
9415 Lx_Party_CovLevels GT_ContItem_Ref;
9416 Lx_CovParty_Contracts GT_Contract_Ref;
9417
9418 Lx_Result Gx_Boolean;
9419 Lx_Return_Status Gx_Ret_Sts;
9420
9421 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
9422
9423 BEGIN
9424
9425 Lx_Result := G_TRUE;
9426 Lx_Return_Status := G_RET_STS_SUCCESS;
9427
9428 Get_Party_CovLevels
9429 (P_CovParty_Obj_Id => Lx_CovParty_Obj_Id
9430 ,X_Party_CovLevels => Lx_Party_CovLevels
9431 ,X_Result => Lx_Result
9432 ,X_Return_Status => Lx_Return_Status );
9433
9434 IF Lx_Result <> G_TRUE THEN
9435 RAISE L_EXCEP_UNEXPECTED_ERR;
9436 END IF;
9437
9438 Get_CovLevel_Contracts
9439 (P_CovLevel_Items => Lx_Party_CovLevels
9440 ,P_Party_Id => NULL
9441 ,X_CovLevel_Contracts => Lx_CovParty_Contracts
9442 ,X_Result => Lx_Result
9443 ,X_Return_Status => Lx_Return_Status);
9444
9445 IF Lx_Result <> G_TRUE THEN
9446 RAISE L_EXCEP_UNEXPECTED_ERR;
9447 END IF;
9448
9449 X_CovParty_Contracts := Lx_CovParty_Contracts;
9450 X_Result := Lx_Result;
9451 X_Return_Status := Lx_Return_Status;
9452
9453 EXCEPTION
9454
9455 WHEN L_EXCEP_UNEXPECTED_ERR THEN
9456
9457 X_Result := Lx_Result;
9458 X_Return_Status := Lx_Return_Status;
9459
9460 WHEN OTHERS THEN
9461
9462 OKC_API.SET_MESSAGE
9463 (P_App_Name => G_APP_NAME_OKC
9464 ,P_Msg_Name => G_UNEXPECTED_ERROR
9465 ,P_Token1 => G_SQLCODE_TOKEN
9466 ,P_Token1_Value => SQLCODE
9467 ,P_Token2 => G_SQLERRM_TOKEN
9468 ,P_Token2_Value => SQLERRM);
9469
9470 OKC_API.SET_MESSAGE
9471 (P_App_Name => G_APP_NAME_OKC
9472 ,P_Msg_Name => G_DEBUG_TOKEN
9473 ,P_Token1 => G_PACKAGE_TOKEN
9474 ,P_Token1_Value => G_PKG_NAME
9475 ,P_Token2 => G_PROGRAM_TOKEN
9476 ,P_Token2_Value => 'Get_CovParty_Contracts');
9477
9478 X_Result := G_FALSE;
9479 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9480
9481 END Get_CovParty_Contracts;
9482
9483 -----------------------------------------------------------------------------------------------------------------------*
9484
9485 PROCEDURE Get_CovLvlLine_Contracts
9486 (P_CovLvlLine_Id IN Gx_OKS_Id
9487 ,X_Contracts out nocopy GT_Contract_Ref
9488 ,X_Result out nocopy Gx_Boolean
9489 ,X_Return_Status out nocopy Gx_Ret_Sts)
9490 IS
9491
9492 CURSOR Lx_Csr_Contracts(Cx_CovLvlLine_Id IN Gx_OKS_Id) IS
9493 SELECT Dnz_Chr_Id, Id
9494 FROM Okc_K_Lines_B
9495 WHERE Id = Cx_CovLvlLine_Id
9496 AND Lse_Id In (7,8,9,10,11,35,18,25);
9497
9498 Lx_CovLvlLine_Id CONSTANT Gx_OKS_Id := P_CovLvlLine_Id;
9499
9500 Lx_Contracts GT_Contract_Ref;
9501 Li_TableIdx BINARY_INTEGER;
9502
9503 Lx_Result Gx_Boolean;
9504 Lx_Return_Status Gx_Ret_Sts;
9505
9506 BEGIN
9507
9508 Lx_Result := G_TRUE;
9509 Lx_Return_Status := G_RET_STS_SUCCESS;
9510
9511 Li_TableIdx := 0;
9512
9513 FOR Idx IN Lx_Csr_Contracts(Lx_CovLvlLine_Id) LOOP
9514
9515 Li_TableIdx := Li_TableIdx + 1;
9516 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
9517 Lx_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Id;
9518 Lx_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9519
9520 END LOOP;
9521
9522 X_Contracts := Lx_Contracts;
9523 X_Result := Lx_Result;
9524 X_Return_Status := Lx_Return_Status;
9525
9526 EXCEPTION
9527
9528 WHEN OTHERS THEN
9529
9530 OKC_API.SET_MESSAGE
9531 (P_App_Name => G_APP_NAME_OKC
9532 ,P_Msg_Name => G_UNEXPECTED_ERROR
9533 ,P_Token1 => G_SQLCODE_TOKEN
9534 ,P_Token1_Value => SQLCODE
9535 ,P_Token2 => G_SQLERRM_TOKEN
9536 ,P_Token2_Value => SQLERRM);
9537
9538 OKC_API.SET_MESSAGE
9539 (P_App_Name => G_APP_NAME_OKC
9540 ,P_Msg_Name => G_DEBUG_TOKEN
9541 ,P_Token1 => G_PACKAGE_TOKEN
9542 ,P_Token1_Value => G_PKG_NAME
9543 ,P_Token2 => G_PROGRAM_TOKEN
9544 ,P_Token2_Value => 'Get_CovLvlLine_Contracts');
9545
9546 X_Result := G_FALSE;
9547 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9548
9549 END Get_CovLvlLine_Contracts;
9550
9551 -----------------------------------------------------------------------------------------------------------------------*
9552
9553 PROCEDURE Get_SrvLine_Contracts
9554 (P_SrvLine_Id IN Gx_OKS_Id
9555 ,X_Contracts out nocopy GT_Contract_Ref
9556 ,X_Result out nocopy Gx_Boolean
9557 ,X_Return_Status out nocopy Gx_Ret_Sts)
9558 IS
9559
9560 CURSOR Lx_Csr_Contracts(Cx_SrvLine_Id IN Gx_OKS_Id) IS
9561 SELECT Dnz_Chr_Id, Id
9562 FROM Okc_K_Lines_B
9563 WHERE Id = Cx_SrvLine_Id
9564 AND Lse_Id In (1,14,19);
9565
9566 Lx_SrvLine_Id CONSTANT Gx_OKS_Id := P_SrvLine_Id;
9567 Lx_Contracts GT_Contract_Ref;
9568 Li_TableIdx BINARY_INTEGER;
9569
9570 Lx_Result Gx_Boolean;
9571 Lx_Return_Status Gx_Ret_Sts;
9572
9573 BEGIN
9574
9575 Lx_Result := G_TRUE;
9576 Lx_Return_Status := G_RET_STS_SUCCESS;
9577
9578 Li_TableIdx := 0;
9579
9580 FOR Idx IN Lx_Csr_Contracts(Lx_SrvLine_Id) LOOP
9581
9582 Li_TableIdx := Li_TableIdx + 1;
9583 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
9584 Lx_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Id;
9585 Lx_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9586
9587 END LOOP;
9588
9589 X_Contracts := Lx_Contracts;
9590 X_Result := Lx_Result;
9591 X_Return_Status := Lx_Return_Status;
9592
9593 EXCEPTION
9594
9595 WHEN OTHERS THEN
9596
9597 OKC_API.SET_MESSAGE
9598 (P_App_Name => G_APP_NAME_OKC
9599 ,P_Msg_Name => G_UNEXPECTED_ERROR
9600 ,P_Token1 => G_SQLCODE_TOKEN
9601 ,P_Token1_Value => SQLCODE
9602 ,P_Token2 => G_SQLERRM_TOKEN
9603 ,P_Token2_Value => SQLERRM);
9604
9605 OKC_API.SET_MESSAGE
9606 (P_App_Name => G_APP_NAME_OKC
9607 ,P_Msg_Name => G_DEBUG_TOKEN
9608 ,P_Token1 => G_PACKAGE_TOKEN
9609 ,P_Token1_Value => G_PKG_NAME
9610 ,P_Token2 => G_PROGRAM_TOKEN
9611 ,P_Token2_Value => 'Get_SrvLine_Contracts');
9612
9613 X_Result := G_FALSE;
9614 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9615
9616 END Get_SrvLine_Contracts;
9617
9618 -----------------------------------------------------------------------------------------------------------------------*
9619
9620 PROCEDURE Get_Contracts_Id
9621 (P_Contract_Num IN VARCHAR2
9622 ,P_Contract_Num_Modifier IN VARCHAR2
9623 ,X_Contracts out nocopy GT_Contract_Ref
9624 ,X_Result out nocopy Gx_Boolean
9625 ,X_Return_Status out nocopy Gx_Ret_Sts)
9626 IS
9627
9628 -- cursor modified to fix bug 3041443
9629
9630 CURSOR Lx_Csr_Contracts(Cv_Contract_Num IN VARCHAR2, Cv_Contract_Num_Modifier IN VARCHAR2) IS
9631 SELECT Id
9632 FROM OKC_K_HEADERS_ALL_B -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
9633 WHERE Contract_Number = Cv_Contract_Num
9634 --AND (Cv_Contract_Num_Modifier IS NULL OR Contract_Number_Modifier = Cv_Contract_Num_Modifier);
9635 --AND nvl(Contract_Number_Modifier,-99) = nvl(Cv_Contract_Num_Modifier,-99)
9636 AND nvl(Contract_Number_Modifier,'#') = nvl(Cv_Contract_Num_Modifier,nvl(Contract_Number_Modifier,'#'));
9637
9638 Lv_Contract_Num CONSTANT VARCHAR2(120) := P_Contract_Num;
9639 Lv_Contract_Num_Modifier CONSTANT VARCHAR2(120) := P_Contract_Num_Modifier;
9640
9641 Lx_Contracts GT_Contract_Ref;
9642 Li_TableIdx BINARY_INTEGER;
9643
9644 Lx_Result Gx_Boolean;
9645 Lx_Return_Status Gx_Ret_Sts;
9646
9647 BEGIN
9648
9649 Lx_Result := G_TRUE;
9650 Lx_Return_Status := G_RET_STS_SUCCESS;
9651
9652 Li_TableIdx := 0;
9653
9654 FOR Idx IN Lx_Csr_Contracts(Lv_Contract_Num, Lv_Contract_Num_Modifier) LOOP
9655
9656 Li_TableIdx := Li_TableIdx + 1;
9657 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
9658 Lx_Contracts(Li_TableIdx).Rx_Cle_Id := NULL;
9659 Lx_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9660
9661 END LOOP;
9662
9663 X_Contracts := Lx_Contracts;
9664 X_Result := Lx_Result;
9665 X_Return_Status := Lx_Return_Status;
9666
9667 EXCEPTION
9668
9669 WHEN OTHERS THEN
9670
9671 OKC_API.SET_MESSAGE
9672 (P_App_Name => G_APP_NAME_OKC
9673 ,P_Msg_Name => G_UNEXPECTED_ERROR
9674 ,P_Token1 => G_SQLCODE_TOKEN
9675 ,P_Token1_Value => SQLCODE
9676 ,P_Token2 => G_SQLERRM_TOKEN
9677 ,P_Token2_Value => SQLERRM);
9678
9679 OKC_API.SET_MESSAGE
9680 (P_App_Name => G_APP_NAME_OKC
9681 ,P_Msg_Name => G_DEBUG_TOKEN
9682 ,P_Token1 => G_PACKAGE_TOKEN
9683 ,P_Token1_Value => G_PKG_NAME
9684 ,P_Token2 => G_PROGRAM_TOKEN
9685 ,P_Token2_Value => 'Get_Contracts_Id');
9686
9687 X_Result := G_FALSE;
9688 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9689
9690 END Get_Contracts_Id;
9691
9692 -----------------------------------------------------------------------------------------------------------------------*
9693
9694 PROCEDURE Get_Service_Line_Details
9695 (P_SrvLine_Id IN Gx_OKS_Id
9696 ,P_Organization_Id IN NUMBER
9697 ,X_Name out nocopy VARCHAR2
9698 ,X_Description out nocopy VARCHAR2
9699 ,X_Start_Date out nocopy DATE
9700 ,X_End_Date out nocopy DATE
9701 ,X_Date_Terminated out nocopy DATE
9702 ,X_Eff_End_Date out nocopy DATE
9703 ,X_Result out nocopy Gx_Boolean
9704 ,X_Return_Status out nocopy Gx_Ret_Sts)
9705 IS
9706
9707 CURSOR Lx_Csr_SrvItem (Cx_SrvLine_Id In Gx_OKS_Id, Cn_Organization_Id IN NUMBER) IS
9708 SELECT XI.Name
9709 ,XI.Description
9710 ,SV.Start_Date
9711 ,Get_End_Date_Time(SV.End_Date) End_Date
9712 ,Get_End_Date_Time(SV.Date_Terminated) Date_Terminated
9713 FROM Okx_System_Items_V XI
9714 ,Okc_K_Items IT
9715 ,Okc_K_Lines_B SV
9716 WHERE SV.Id = Cx_SrvLine_Id
9717 AND SV.Lse_Id IN (1,14,19)
9718 AND IT.Cle_Id = SV.Id
9719 -- AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
9720 AND XI.Id1 = IT.Object1_Id1
9721 AND XI.Id2 = IT.Object1_Id2
9722 AND XI.Service_Item_Flag = 'Y'
9723 AND XI.Organization_Id = Cn_Organization_Id;
9724
9725 Lx_SrvLine_Id CONSTANT Gx_OKS_Id := P_SrvLine_Id;
9726 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
9727 Lv_Name Okx_System_Items_V.Name%TYPE; --VARCHAR2(240);
9728 Lv_Description Okx_System_Items_V.Description%TYPE; --VARCHAR2(40);
9729 Ld_Start_Date DATE;
9730 Ld_End_Date DATE;
9731 Ld_Date_Terminated DATE;
9732 Ld_Eff_End_Date DATE;
9733
9734 Lx_Result Gx_Boolean;
9735 Lx_Return_Status Gx_Ret_Sts;
9736
9737 BEGIN
9738
9739 Lx_Result := G_TRUE;
9740 Lx_Return_Status := G_RET_STS_SUCCESS;
9741
9742 OPEN Lx_Csr_SrvItem (Lx_SrvLine_Id,Ln_Organization_Id);
9743 FETCH Lx_Csr_SrvItem INTO Lv_Name, Lv_Description,Ld_Start_Date,Ld_End_Date,Ld_Date_Terminated;
9744 CLOSE Lx_Csr_SrvItem;
9745
9746 IF Ld_Date_Terminated < Ld_End_Date THEN
9747 Ld_Eff_End_Date := Ld_Date_Terminated;
9748 -- grace period not allowed for terminated line
9749 ELSE
9750 Ld_Eff_End_Date := Ld_End_Date;
9751
9752 -- grace period changes starts
9753 IF G_GRACE_PROFILE_SET = 'Y' AND Ld_Date_Terminated IS NULL THEN
9754 -- grace period changes are done only if line end date matches contract end date
9755 IF trunc(Ld_Eff_End_Date) = trunc(G_CONTRACT_END_DATE) THEN
9756 Ld_Eff_End_Date := Get_Final_End_Date(G_CONTRACT_ID,Ld_Eff_End_Date);
9757 END IF;
9758
9759 END IF;
9760 -- grace period changes ends
9761
9762 END IF;
9763
9764 X_Name := Lv_Name;
9765 X_Description := Lv_Description;
9766
9767 X_Start_Date := Ld_Start_Date;
9768 X_End_Date := Ld_End_Date;
9769 X_Date_Terminated := Ld_Date_Terminated;
9770 X_Eff_End_Date := Ld_Eff_End_Date;
9771
9772 X_Result := Lx_Result;
9773 X_Return_Status := Lx_Return_Status;
9774
9775 EXCEPTION
9776
9777 WHEN OTHERS THEN
9778
9779 OKC_API.SET_MESSAGE
9780 (P_App_Name => G_APP_NAME_OKC
9781 ,P_Msg_Name => G_UNEXPECTED_ERROR
9782 ,P_Token1 => G_SQLCODE_TOKEN
9783 ,P_Token1_Value => SQLCODE
9784 ,P_Token2 => G_SQLERRM_TOKEN
9785 ,P_Token2_Value => SQLERRM);
9786
9787 OKC_API.SET_MESSAGE
9788 (P_App_Name => G_APP_NAME_OKC
9789 ,P_Msg_Name => G_DEBUG_TOKEN
9790 ,P_Token1 => G_PACKAGE_TOKEN
9791 ,P_Token1_Value => G_PKG_NAME
9792 ,P_Token2 => G_PROGRAM_TOKEN
9793 ,P_Token2_Value => 'Get_Service_Line_Details');
9794
9795 X_Result := G_FALSE;
9796 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9797
9798 END Get_Service_Line_Details;
9799
9800 -----------------------------------------------------------------------------------------------------------------------*
9801
9802 PROCEDURE Get_Coverage_Line_Details
9803 (P_SrvLine_Id IN Gx_OKS_Id
9804 ,P_Organization_Id IN NUMBER
9805 ,X_Cov_Id out nocopy Gx_OKS_Id
9806 ,X_Name out nocopy VARCHAR2
9807 ,X_Description out nocopy VARCHAR2
9808 ,X_Start_Date out nocopy DATE
9809 ,X_End_Date out nocopy DATE
9810 ,X_Date_Terminated out nocopy DATE
9811 ,X_Eff_End_Date out nocopy DATE
9812 ,X_Result out nocopy Gx_Boolean
9813 ,X_Return_Status out nocopy Gx_Ret_Sts)
9814
9815 IS
9816 --
9817 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
9818 --
9819 --
9820 --CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN Gx_OKS_Id) IS
9821 -- SELECT Id
9822 -- ,Name
9823 -- ,Item_Description
9824 -- ,Start_Date
9825 -- ,Get_End_Date_Time(End_Date) End_Date
9826 -- ,Get_End_Date_Time(Date_Terminated) Date_Terminated
9827 -- FROM Okc_K_Lines_V
9828 -- WHERE Cle_Id = Cx_SrvLine_Id
9829 -- AND Lse_Id IN (2,15,20);
9830 --
9831 -- Added for 12.0 Coverage Rearch project (JVARGHES)
9832 --
9833 --
9834 CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN Gx_OKS_Id) IS
9835 SELECT COV.Id
9836 ,COV.Name
9837 ,COV.Item_Description
9838 ,COV.Start_Date
9839 ,Get_End_Date_Time(COV.End_Date) End_Date
9840 ,Get_End_Date_Time(COV.Date_Terminated) Date_Terminated
9841 ,KSL.Standard_COV_YN
9842 ,SVL.Start_Date
9843 ,Get_End_Date_Time(SVL.End_Date) End_Date
9844 ,Get_End_Date_Time(SVL.Date_Terminated) Date_Terminated
9845 FROM Okc_K_Lines_B SVL
9846 ,Oks_K_Lines_B KSL
9847 ,Okc_K_Lines_V COV
9848 WHERE SVL.Id = Cx_SrvLine_Id
9849 AND SVL.Lse_Id in (1,14,19)
9850 AND KSL.Cle_Id = SVL.Id
9851 AND COV.ID = KSL.Coverage_Id
9852 AND COV.Lse_Id IN (2,15,20);
9853 --
9854
9855 Lx_SrvLine_Id CONSTANT Gx_OKS_Id := P_SrvLine_Id;
9856 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
9857 Lx_Cov_Id Gx_OKS_Id;
9858 Lv_Name Okc_K_Lines_V.Name%TYPE; --VARCHAR2(240);
9859 Lv_Description Okc_K_Lines_V.Item_Description%TYPE; --VARCHAR2(1995);
9860 Ld_Start_Date DATE;
9861 Ld_End_Date DATE;
9862 Ld_Date_Terminated DATE;
9863 Ld_Eff_End_Date DATE;
9864
9865 Lx_Result Gx_Boolean;
9866 Lx_Return_Status Gx_Ret_Sts;
9867
9868 -- Added for 12.0 Coverage Rearch project (JVARGHES)
9869
9870 Lv_Std_Cov_YN VARCHAR2(10);
9871
9872 Ld_SVL_Start_Date DATE;
9873 Ld_SVL_End_Date DATE;
9874 Ld_SVL_Date_Terminated DATE;
9875
9876 --
9877
9878 BEGIN
9879
9880 Lx_Result := G_TRUE;
9881 Lx_Return_Status := G_RET_STS_SUCCESS;
9882
9883 OPEN Lx_Csr_CovItem (Lx_SrvLine_Id);
9884
9885 --
9886 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
9887 --
9888 -- FETCH Lx_Csr_CovItem INTO Lx_Cov_Id,Lv_Name,Lv_Description
9889 -- ,Ld_Start_Date,Ld_End_Date,Ld_Date_Terminated;
9890 --
9891 --
9892 FETCH Lx_Csr_CovItem INTO Lx_Cov_Id,Lv_Name,Lv_Description
9893 ,Ld_Start_Date,Ld_End_Date,Ld_Date_Terminated,Lv_Std_Cov_YN
9894 ,Ld_SVL_Start_Date,Ld_SVL_End_Date,Ld_SVL_Date_Terminated;
9895
9896 --
9897 --
9898 CLOSE Lx_Csr_CovItem;
9899
9900 --
9901 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
9902 --
9903
9904 IF NVL(Lv_Std_Cov_YN,'*') = 'Y' THEN
9905
9906 Ld_Start_Date := Ld_SVL_Start_Date;
9907 Ld_End_Date := Ld_SVL_End_Date;
9908 Ld_Date_Terminated := Ld_SVL_Date_Terminated;
9909
9910 END IF;
9911
9912 --
9913
9914 IF Ld_Date_Terminated < Ld_End_Date THEN
9915 Ld_Eff_End_Date := Ld_Date_Terminated;
9916 -- grace period changes not allowed for terminated line
9917 ELSE
9918 Ld_Eff_End_Date := Ld_End_Date;
9919
9920 -- grace period changes starts
9921
9922 IF G_GRACE_PROFILE_SET = 'Y' AND Ld_Date_Terminated IS NULL THEN
9923 -- grace period changes are done only if line end date matches contract end date
9924
9925 IF trunc(Ld_Eff_End_Date) = trunc(G_CONTRACT_END_DATE) THEN
9926 Ld_Eff_End_Date := Get_Final_End_Date(G_CONTRACT_ID,Ld_Eff_End_Date);
9927 END IF;
9928
9929 END IF;
9930 -- grace period changes ends
9931
9932 END IF;
9933
9934 X_Cov_Id := Lx_Cov_Id;
9935 X_Name := Lv_Name;
9936 X_Description := Lv_Description;
9937 X_Start_Date := Ld_Start_Date;
9938 X_End_Date := Ld_End_Date;
9939 X_Date_Terminated := Ld_Date_Terminated;
9940 X_Eff_End_Date := Ld_Eff_End_Date;
9941
9942 X_Result := Lx_Result;
9943 X_Return_Status := Lx_Return_Status;
9944
9945 EXCEPTION
9946
9947 WHEN OTHERS THEN
9948
9949 OKC_API.SET_MESSAGE
9950 (P_App_Name => G_APP_NAME_OKC
9951 ,P_Msg_Name => G_UNEXPECTED_ERROR
9952 ,P_Token1 => G_SQLCODE_TOKEN
9953 ,P_Token1_Value => SQLCODE
9954 ,P_Token2 => G_SQLERRM_TOKEN
9955 ,P_Token2_Value => SQLERRM);
9956
9957 OKC_API.SET_MESSAGE
9958 (P_App_Name => G_APP_NAME_OKC
9959 ,P_Msg_Name => G_DEBUG_TOKEN
9960 ,P_Token1 => G_PACKAGE_TOKEN
9961 ,P_Token1_Value => G_PKG_NAME
9962 ,P_Token2 => G_PROGRAM_TOKEN
9963 ,P_Token2_Value => 'Get_Coverage_Line_Details');
9964
9965 X_Result := G_FALSE;
9966 X_Return_Status := G_RET_STS_UNEXP_ERROR;
9967
9968 END Get_Coverage_Line_Details;
9969
9970 -----------------------------------------------------------------------------------------------------------------------*
9971
9972 PROCEDURE Sort_Asc_GetContracts_01
9973 (P_Input_Tab IN Ent_Cont_Tbl
9974 ,X_Output_Tab out nocopy Ent_Cont_Tbl
9975 ,X_Result out nocopy Gx_Boolean
9976 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
9977
9978 Lx_Sort_Tab Ent_Cont_Tbl;
9979
9980 Li_TableIdx_Out BINARY_INTEGER;
9981 Li_TableIdx_In BINARY_INTEGER;
9982
9983 Lx_Temp_ContItem Ent_Cont_Rec;
9984
9985 Lv_Composit_Val1 VARCHAR2(1000); --VARCHAR2(600);
9986 Lv_Composit_Val2 VARCHAR2(1000); --VARCHAR2(600);
9987
9988 Lx_Result Gx_Boolean;
9989 Lx_Return_Status Gx_Ret_Sts;
9990
9991 BEGIN
9992
9993 Lx_Sort_Tab := P_Input_Tab;
9994 Lx_Result := G_TRUE;
9995 Lx_Return_Status := G_RET_STS_SUCCESS;
9996
9997 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
9998
9999 WHILE Li_TableIdx_Out IS NOT NULL LOOP
10000
10001 Li_TableIdx_In := Li_TableIdx_Out;
10002
10003 WHILE Li_TableIdx_In IS NOT NULL LOOP
10004
10005 Lv_Composit_Val1 := RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Contract_Number,120,' ')
10006 ||RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Service_Name,250,' ') --150
10007 ||RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Term_Name,250,' ') --150
10008 ||RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Level,250,' '); --150
10009
10010 Lv_Composit_Val2 := RPAD(Lx_Sort_Tab(Li_TableIdx_In).Contract_Number,120,' ')
10011 ||RPAD(Lx_Sort_Tab(Li_TableIdx_In).Service_Name,250,' ') --150
10012 ||RPAD(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Term_Name,250,' ') --150
10013 ||RPAD(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Level,250,' '); --150
10014
10015 IF Lv_Composit_Val1 > Lv_Composit_Val2 THEN
10016
10017 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
10018 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
10019 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
10020
10021 END IF;
10022
10023 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
10024
10025 END LOOP;
10026
10027 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
10028
10029 END LOOP;
10030
10031 X_Output_Tab := Lx_Sort_Tab;
10032 X_Result := Lx_Result;
10033 X_Return_Status := Lx_Return_Status;
10034
10035 EXCEPTION
10036
10037 WHEN OTHERS THEN
10038
10039 OKC_API.SET_MESSAGE
10040 (P_App_Name => G_APP_NAME_OKC
10041 ,P_Msg_Name => G_UNEXPECTED_ERROR
10042 ,P_Token1 => G_SQLCODE_TOKEN
10043 ,P_Token1_Value => SQLCODE
10044 ,P_Token2 => G_SQLERRM_TOKEN
10045 ,P_Token2_Value => SQLERRM);
10046
10047 OKC_API.SET_MESSAGE
10048 (P_App_Name => G_APP_NAME_OKC
10049 ,P_Msg_Name => G_DEBUG_TOKEN
10050 ,P_Token1 => G_PACKAGE_TOKEN
10051 ,P_Token1_Value => G_PKG_NAME
10052 ,P_Token2 => G_PROGRAM_TOKEN
10053 ,P_Token2_Value => 'Sort_Asc_GetContracts_01');
10054
10055 X_Result := G_FALSE;
10056 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10057
10058 END Sort_Asc_GetContracts_01;
10059
10060 -----------------------------------------------------------------------------------------------------------------------*
10061
10062 PROCEDURE Get_Prof_Service_Name_And_Desc
10063 (P_Profile_Value IN VARCHAR2
10064 ,P_Db_Srv_Name IN VARCHAR2
10065 ,P_Db_Srv_Desc IN VARCHAR2
10066 ,X_Prof_Srv_Name out nocopy VARCHAR2
10067 ,X_Prof_Srv_Desc out nocopy VARCHAR2
10068 ,X_Result out nocopy Gx_Boolean
10069 ,X_Return_Status out nocopy Gx_Ret_Sts)
10070 IS
10071
10072 Lv_Prof_Value CONSTANT VARCHAR2(300) := P_Profile_Value;
10073 Lv_Db_Srv_Name CONSTANT VARCHAR2(300) := P_Db_Srv_Name;
10074 Lv_Db_Srv_Desc CONSTANT VARCHAR2(300) := P_Db_Srv_Desc;
10075
10076 Lv_Prof_Srv_Name VARCHAR2(300);
10077 Lv_Prof_Srv_Desc VARCHAR2(300);
10078
10079 Lx_Result Gx_Boolean;
10080 Lx_Return_Status Gx_Ret_Sts;
10081
10082 BEGIN
10083
10084 Lx_Result := G_TRUE;
10085 Lx_Return_Status := G_RET_STS_SUCCESS;
10086
10087 IF Lv_Prof_Value = 'DISPLAY_NAME' THEN
10088
10089 Lv_Prof_Srv_Name := Lv_Db_Srv_Name;--Lv_Db_Srv_Desc;-- no swapping to be done anymore
10090 Lv_Prof_Srv_Desc := Lv_Db_Srv_Desc;--Lv_Db_Srv_Name;-- no swapping to be done anymore
10091
10092 ELSE
10093
10094 Lv_Prof_Srv_Name := Lv_Db_Srv_Name;
10095 Lv_Prof_Srv_Desc := Lv_Db_Srv_Desc;
10096
10097 END IF;
10098
10099 X_Prof_Srv_Name := Lv_Prof_Srv_Name;
10100 X_Prof_Srv_Desc := Lv_Prof_Srv_Desc;
10101 X_Result := Lx_Result;
10102 X_Return_Status := Lx_Return_Status;
10103
10104 EXCEPTION
10105
10106 WHEN OTHERS THEN
10107
10108 OKC_API.SET_MESSAGE
10109 (P_App_Name => G_APP_NAME_OKC
10110 ,P_Msg_Name => G_UNEXPECTED_ERROR
10111 ,P_Token1 => G_SQLCODE_TOKEN
10112 ,P_Token1_Value => SQLCODE
10113 ,P_Token2 => G_SQLERRM_TOKEN
10114 ,P_Token2_Value => SQLERRM);
10115
10116 OKC_API.SET_MESSAGE
10117 (P_App_Name => G_APP_NAME_OKC
10118 ,P_Msg_Name => G_DEBUG_TOKEN
10119 ,P_Token1 => G_PACKAGE_TOKEN
10120 ,P_Token1_Value => G_PKG_NAME
10121 ,P_Token2 => G_PROGRAM_TOKEN
10122 ,P_Token2_Value => 'Get_Prof_Service_Name_And_Desc');
10123
10124 X_Result := G_FALSE;
10125 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10126
10127 END Get_Prof_Service_Name_And_Desc;
10128
10129 -----------------------------------------------------------------------------------------------------------------------*
10130
10131 PROCEDURE Get_Contracts_01_Format
10132 (P_Contracts IN GT_Contract_Ref
10133 ,P_Request_Date IN DATE
10134 ,P_Validate_Flag IN VARCHAR2
10135 ,P_Chr_Id_Flag IN VARCHAR2 --Bug# 4719510 (JVARGHES)
10136 ,X_Contracts_01 out nocopy Ent_Cont_Tbl
10137 ,X_Result out nocopy Gx_Boolean
10138 ,X_Return_Status out nocopy Gx_Ret_Sts)
10139 IS
10140
10141 CURSOR Lx_Csr_Contracts(Cx_Chr_Id IN Gx_OKS_Id, Cx_Cle_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
10142 ,Cx_Lang in VARCHAR2) IS
10143 SELECT HD.Id Contract_Id
10144 ,HD.Contract_Number
10145 ,HD.Contract_Number_Modifier
10146 ,HD.Authoring_Org_Id
10147 ,HD.Inv_Organization_Id
10148 ,HD.End_Date HDR_End_Date --grace period changes
10149 ,CL.Cle_Id Service_Line_Id
10150 ,CL.Id Coverage_Level_Line_Id
10151 ,SB.Lty_Code Coverage_Level_Code
10152 ,ST.Name Coverage_Level
10153 ,CL.Start_Date
10154 ,Get_End_Date_Time(CL.End_Date) End_Date
10155 ,Get_End_Date_Time(CL.Date_Terminated) Date_Terminated
10156 ,IT.Object1_Id1 Coverage_Level_Id
10157 ,DECODE(SB.Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
10158 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
10159 ,Okc_Line_Styles_B SB
10160 ,Okc_Line_Styles_TL ST
10161 ,Okc_K_Items IT
10162 ,Okc_K_Lines_B CL
10163 WHERE CL.Id = NVL(Cx_Cle_Id, CL.Id)
10164 AND CL.Dnz_Chr_Id = Cx_Chr_Id
10165 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
10166 AND IT.Cle_Id = CL.Id
10167 AND SB.Id = CL.Lse_Id
10168 AND ST.Id = SB.Id
10169 and st.language = Cx_Lang
10170 AND HD.Id = CL.Dnz_Chr_Id
10171 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
10172 AND HD.Id > -1
10173 AND HD.Template_YN <> 'Y'
10174 AND (Cv_Cont_Pty_Id IS NULL
10175 OR
10176 EXISTS (SELECT '*'
10177 FROM Okc_K_Party_Roles_B PR
10178 WHERE PR.Chr_Id = HD.Id
10179 AND PR.Cle_Id IS NULL
10180 AND PR.Dnz_Chr_Id = HD.Id
10181 AND PR.Object1_Id1 = Cv_Cont_Pty_Id
10182 AND PR.Object1_Id2 = '#'
10183 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
10184 AND PR.RLE_CODE <> 'VENDOR' ));
10185
10186 Lx_Contracts GT_Contract_Ref;
10187 Ld_Request_Date DATE;
10188 Lv_Validate_Flag VARCHAR2(1);
10189
10190 Lv_Cont_Pty_Id VARCHAR2(100);
10191
10192 Lx_Contracts_01 Ent_Cont_Tbl;
10193 Lx_Contracts_01_Out Ent_Cont_Tbl;
10194
10195 Li_TableIdx BINARY_INTEGER;
10196 Li_OutTab_Idx BINARY_INTEGER;
10197 Lv_Entile_Flag VARCHAR2(1);
10198 Lv_Effective_Falg VARCHAR2(1);
10199
10200 Ld_CovLvl_Eff_End_Date DATE;
10201
10202 Lv_Srv_Name Okx_System_Items_V.Name%TYPE; --VARCHAR2(150) ;
10203 Lv_Srv_Description Okx_System_Items_V.Description%TYPE; --VARCHAR2(1995);
10204 Lv_Prof_Srv_Name VARCHAR2(300) ;
10205 Lv_Prof_Srv_Desc VARCHAR2(300);
10206
10207 Ld_Srv_Start_Date DATE;
10208 Ld_Srv_End_Date DATE;
10209 Ld_Srv_Date_Terminated DATE;
10210 Ld_Srv_Eff_End_Date DATE;
10211
10212 Lx_Cov_Id Gx_OKS_Id;
10213 Lv_Cov_Name Okc_K_Lines_V.Name%TYPE; --VARCHAR2(150) ;
10214 Lv_Cov_Description Okc_K_Lines_V.Item_Description%TYPE; --VARCHAR2(1995);
10215 Ld_Cov_Start_Date DATE;
10216 Ld_Cov_End_Date DATE;
10217 Ld_Cov_Date_Terminated DATE;
10218 Ld_Cov_Eff_End_Date DATE;
10219
10220 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
10221 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
10222 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
10223 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
10224
10225 Lv_Prof_Name CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
10226 Lv_Prof_Value VARCHAR2(300);
10227
10228 Lx_Lang CONSTANT VARCHAR2(30) := userenv('LANG');
10229
10230 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
10231
10232 Lx_Result Gx_Boolean;
10233 Lx_Return_Status Gx_Ret_Sts;
10234
10235 BEGIN
10236
10237 Lx_Result := G_FALSE; -- #5092665 hmnair /*Bug:6767455*/
10238 Lx_Return_Status := G_RET_STS_SUCCESS;
10239
10240 Lx_Contracts := P_Contracts;
10241
10242 Lv_Validate_Flag := nvl(P_Validate_Flag,'N');
10243 Li_OutTab_Idx := 0;
10244
10245 Ld_Request_Date := nvl(P_Request_Date,sysdate);
10246
10247 --
10248 IF Lv_Validate_Flag = 'Y' THEN
10249 Lv_Validate_Flag := 'T';
10250 END IF;
10251 --
10252 FND_PROFILE.Get(Lv_Prof_Name, Lv_Prof_Value);
10253 --
10254
10255 Li_TableIdx := Lx_Contracts.FIRST;
10256
10257 WHILE Li_TableIdx IS NOT NULL LOOP
10258
10259 Lv_Cont_Pty_Id := TO_CHAR(Lx_Contracts(Li_TableIdx).Rx_Pty_Id);
10260
10261 FOR Idx IN Lx_Csr_Contracts(Lx_Contracts(Li_TableIdx).Rx_Chr_Id, Lx_Contracts(Li_TableIdx).Rx_Cle_Id,
10262 Lv_Cont_Pty_Id,Lx_Lang) LOOP
10263
10264 Lv_Srv_Name := NULL;
10265 Lv_Srv_Description := NULL;
10266 Ld_Srv_Start_Date := NULL;
10267 Ld_Srv_End_Date := NULL;
10268 Ld_Srv_Date_Terminated := NULL;
10269 Ld_Srv_Eff_End_Date := NULL;
10270
10271 Lx_Cov_Id := NULL;
10272 Lv_Cov_Name := NULL;
10273 Lv_Cov_Description := NULL;
10274 Ld_Cov_Start_Date := NULL;
10275 Ld_Cov_End_Date := NULL;
10276 Ld_Cov_Date_Terminated := NULL;
10277 Ld_Cov_Eff_End_Date := NULL;
10278
10279 IF Idx.Date_Terminated < Idx.End_Date THEN
10280 -- grace period not allowed for terminated line
10281 Ld_CovLvl_Eff_End_Date := Idx.Date_Terminated;
10282 ELSE
10283 Ld_CovLvl_Eff_End_Date := Idx.End_Date;
10284 -- grace period changes starts
10285
10286 IF G_GRACE_PROFILE_SET = 'Y' AND Idx.Date_Terminated IS NULL THEN
10287 -- grace period changes are done only if line end date matches contract end date
10288
10289 G_CONTRACT_END_DATE := Idx.HDR_End_Date;
10290 G_CONTRACT_ID := Idx.Contract_Id;
10291
10292 IF trunc(Ld_CovLvl_Eff_End_Date) = trunc(Idx.HDR_End_Date) THEN
10293 Ld_CovLvl_Eff_End_Date := Get_Final_End_Date(Idx.Contract_Id,Ld_CovLvl_Eff_End_Date);
10294 END IF;
10295
10296 END IF;
10297 -- grace period changes ends
10298 END IF;
10299 --following procedure modified for grace period changes
10300
10301 Get_Service_Line_Details
10302 (P_SrvLine_Id => Idx.Service_Line_Id
10303 ,P_Organization_Id => Idx.Inv_Organization_Id
10304 ,X_Name => Lv_Srv_Name
10305 ,X_Description => Lv_Srv_Description
10306 ,X_Start_Date => Ld_Srv_Start_Date
10307 ,X_End_Date => Ld_Srv_End_Date
10308 ,X_Date_Terminated => Ld_Srv_Date_Terminated
10309 ,X_Eff_End_Date => Ld_Srv_Eff_End_Date
10310 ,X_Result => Lx_Result
10311 ,X_Return_Status => Lx_Return_Status);
10312
10313 IF Lx_Result <> G_TRUE THEN
10314 RAISE L_EXCEP_UNEXPECTED_ERR;
10315 END IF;
10316 --following procedure modified for grace period changes
10317
10318 Get_Coverage_Line_Details
10319 (P_SrvLine_Id => Idx.Service_Line_Id
10320 ,P_Organization_Id => Idx.Inv_Organization_Id
10321 ,X_Cov_Id => Lx_Cov_Id
10322 ,X_Name => Lv_Cov_Name
10323 ,X_Description => Lv_Cov_Description
10324 ,X_Start_Date => Ld_Cov_Start_Date
10325 ,X_End_Date => Ld_Cov_End_Date
10326 ,X_Date_Terminated => Ld_Cov_Date_Terminated
10327 ,X_Eff_End_Date => Ld_Cov_Eff_End_Date
10328 ,X_Result => Lx_Result
10329 ,X_Return_Status => Lx_Return_Status);
10330
10331 IF Lx_Result <> G_TRUE THEN
10332 RAISE L_EXCEP_UNEXPECTED_ERR;
10333 END IF;
10334
10335 IF (Ld_Request_Date BETWEEN Ld_Srv_Start_Date AND Ld_Srv_Eff_End_Date)
10336 AND
10337 (Ld_Request_Date BETWEEN Idx.Start_Date AND Ld_CovLvl_Eff_End_Date)
10338 AND
10339 (Ld_Request_Date BETWEEN Ld_Cov_Start_Date AND Ld_Cov_Eff_End_Date) THEN
10340
10341 Lv_Effective_Falg := 'T';
10342 ELSE
10343 Lv_Effective_Falg := 'F';
10344 END IF;
10345
10346 Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Idx.Service_Line_Id, 'ENTITLE');
10347
10348 IF (Lv_Validate_Flag = 'T' AND Lv_Effective_Falg = 'T' AND Lv_Entile_Flag = 'T') OR (Lv_Validate_Flag <> 'T') THEN
10349
10350 Get_Prof_Service_Name_And_Desc
10351 (P_Profile_Value => Lv_Prof_Value
10352 ,P_Db_Srv_Name => Lv_Srv_Name
10353 ,P_Db_Srv_Desc => Lv_Srv_Description
10354 ,X_Prof_Srv_Name => Lv_Prof_Srv_Name
10355 ,X_Prof_Srv_Desc => Lv_Prof_Srv_Desc
10356 ,X_Result => Lx_Result
10357 ,X_Return_Status => Lx_Return_Status);
10358
10359 IF Lx_Result <> G_TRUE THEN
10360 RAISE L_EXCEP_UNEXPECTED_ERR;
10361 END IF;
10362
10363 Li_OutTab_Idx := Li_OutTab_Idx + 1;
10364
10365 Lx_Contracts_01(Li_OutTab_Idx).Contract_Id := Idx.Contract_Id;
10366 Lx_Contracts_01(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
10367 Lx_Contracts_01(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
10368 Lx_Contracts_01(Li_OutTab_Idx).Service_Line_Id := Idx.Service_Line_Id;
10369 Lx_Contracts_01(Li_OutTab_Idx).Service_Name := Lv_Prof_Srv_Name; --Lv_Srv_Name;
10370 Lx_Contracts_01(Li_OutTab_Idx).Service_Description := Lv_Prof_Srv_Desc; --Lv_Srv_Description;
10371 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Cov_Id;
10372 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Name := Lv_Cov_Name;
10373 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Description := Lv_Cov_Description;
10374 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Line_Id := Idx.Coverage_Level_Line_Id;
10375 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level := Idx.Coverage_Level;
10376 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Code := Idx.Coverage_Level_Code;
10377 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Start_Date := Idx.Start_Date;
10378 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_End_Date := Idx.End_Date;
10379 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Id := Idx.Coverage_Level_Id;
10380 Lx_Contracts_01(Li_OutTab_Idx).Warranty_Flag := Idx.Warranty_Flag;
10381 Lx_Contracts_01(Li_OutTab_Idx).Eligible_For_Entitlement := Lv_Entile_Flag;
10382
10383 Get_Coverage_Type_Attribs
10384 (P_CVL_Id => Lx_Cov_Id --Lx_CovLine_Id
10385 ,P_Set_ExcepionStack => G_FALSE
10386 ,X_Cov_Type_Code => Lx_Cov_Type_Code
10387 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
10388 ,X_Cov_Type_Description => Lx_Cov_Type_Description
10389 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
10390 ,X_Result => Lx_Result
10391 ,X_Return_Status => Lx_Return_Status);
10392
10393 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
10394 RAISE L_EXCEP_UNEXPECTED_ERR;
10395 END IF;
10396
10397 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Code := Lx_Cov_Type_Code;
10398 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Cov_Type_Meaning;
10399 Lx_Contracts_01(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
10400
10401 END IF;
10402
10403 END LOOP;
10404
10405 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
10406
10407 END LOOP;
10408
10409 IF NVL(P_Chr_Id_Flag,'N') = 'Y' THEN --Bug# 4719510 (JVARGHES)
10410
10411 X_Contracts_01 := Lx_Contracts_01;
10412
10413 ELSE --Bug# 4719510 (JVARGHES)
10414
10415 Sort_Asc_GetContracts_01
10416 (P_Input_Tab => Lx_Contracts_01
10417 ,X_Output_Tab => Lx_Contracts_01_Out
10418 ,X_Result => Lx_Result
10419 ,X_Return_Status => Lx_Return_Status);
10420
10421 IF Lx_Result <> G_TRUE THEN
10422 RAISE L_EXCEP_UNEXPECTED_ERR;
10423 END IF;
10424
10425 X_Contracts_01 := Lx_Contracts_01_Out;
10426
10427 END IF; --Bug# 4719510 (JVARGHES)
10428
10429 X_Result := G_TRUE; -- Bug #5092665 hmnair /*Bug:6767455*/
10430 X_Return_Status := Lx_Return_Status;
10431
10432 EXCEPTION
10433
10434 WHEN L_EXCEP_UNEXPECTED_ERR THEN
10435
10436 X_Result := Lx_Result;
10437 X_Return_Status := Lx_Return_Status;
10438
10439 WHEN OTHERS THEN
10440
10441 OKC_API.SET_MESSAGE
10442 (P_App_Name => G_APP_NAME_OKC
10443 ,P_Msg_Name => G_UNEXPECTED_ERROR
10444 ,P_Token1 => G_SQLCODE_TOKEN
10445 ,P_Token1_Value => SQLCODE
10446 ,P_Token2 => G_SQLERRM_TOKEN
10447 ,P_Token2_Value => SQLERRM);
10448
10449 OKC_API.SET_MESSAGE
10450 (P_App_Name => G_APP_NAME_OKC
10451 ,P_Msg_Name => G_DEBUG_TOKEN
10452 ,P_Token1 => G_PACKAGE_TOKEN
10453 ,P_Token1_Value => G_PKG_NAME
10454 ,P_Token2 => G_PROGRAM_TOKEN
10455 ,P_Token2_Value => 'Get_Contracts_01_Format');
10456
10457 X_Result := G_FALSE;
10458 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10459
10460 END Get_Contracts_01_Format;
10461
10462 -----------------------------------------------------------------------------------------------------------------------*
10463
10464 PROCEDURE Get_Contracts_01
10465 (P_API_Version IN NUMBER
10466 ,P_Init_Msg_List IN VARCHAR2
10467 ,P_Inp_Rec IN Inp_Cont_Rec
10468 ,X_Return_Status OUT NOCOPY VARCHAR2
10469 ,X_Msg_Count OUT NOCOPY NUMBER
10470 ,X_Msg_Data OUT NOCOPY VARCHAR2
10471 ,X_Ent_Contracts OUT NOCOPY Ent_Cont_Tbl)
10472 IS
10473
10474 Lx_Inp_Rec CONSTANT Inp_Cont_Rec := P_Inp_Rec;
10475
10476 Lx_Ent_Contracts Ent_Cont_Tbl;
10477
10478 Lx_Contracts GT_Contract_Ref;
10479
10480 Ln_Organization_Id NUMBER;
10481 Ln_Org_Id NUMBER;
10482
10483 Lv_Chr_Id_Flag VARCHAR2(10); --Bug# 4719510 (JVARGHES)
10484
10485 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
10486
10487 Lx_Result Gx_Boolean;
10488 Lx_Return_Status Gx_Ret_Sts;
10489
10490 BEGIN
10491
10492 Lx_Result := G_TRUE;
10493 Lx_Return_Status := G_RET_STS_SUCCESS;
10494
10495
10496 -- Bug# 4735542.
10497 -- Ln_Organization_Id := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
10498
10499 -- Modified for 12.0 MOAC project (JVARGHES)
10500 -- Ln_Org_Id := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
10501 --
10502
10503 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
10504
10505 Lv_Chr_Id_Flag := 'N'; --Bug# 4719510 (JVARGHES)
10506
10507 IF Lx_Inp_Rec.Coverage_Level_Line_Id IS NOT NULL THEN
10508
10509 Get_CovLvlLine_Contracts
10510 (P_CovLvlLine_Id => Lx_Inp_Rec.Coverage_Level_Line_Id
10511 ,X_Contracts => Lx_Contracts
10512 ,X_Result => Lx_Result
10513 ,X_Return_Status => Lx_Return_Status);
10514
10515 IF Lx_Result <> G_TRUE THEN
10516 RAISE L_EXCEP_UNEXPECTED_ERR;
10517 END IF;
10518
10519 ELSIF Lx_Inp_Rec.Contract_Number IS NOT NULL THEN
10520
10521 Lv_Chr_Id_Flag := 'Y'; --Bug# 4719510 (JVARGHES)
10522
10523 Get_Contracts_Id
10524 (P_Contract_Num => Lx_Inp_Rec.Contract_Number
10525 ,P_Contract_Num_Modifier => Lx_Inp_Rec.Contract_Number_Modifier --NULL
10526 ,X_Contracts => Lx_Contracts
10527 ,X_Result => Lx_Result
10528 ,X_Return_Status => Lx_Return_Status);
10529
10530 IF Lx_Result <> G_TRUE THEN
10531 RAISE L_EXCEP_UNEXPECTED_ERR;
10532 END IF;
10533
10534 ELSIF Lx_Inp_Rec.Product_Id IS NOT NULL THEN
10535
10536 Get_CovProd_Contracts
10537 (P_CovProd_Obj_Id => Lx_Inp_Rec.Product_Id
10538 ,P_Organization_Id => Ln_Organization_Id
10539 ,P_Org_Id => Ln_Org_Id
10540 ,X_CovProd_Contracts => Lx_Contracts
10541 ,X_Result => Lx_Result
10542 ,X_Return_Status => Lx_Return_Status);
10543
10544 IF Lx_Result <> G_TRUE THEN
10545 RAISE L_EXCEP_UNEXPECTED_ERR;
10546 END IF;
10547
10548 ELSIF Lx_Inp_Rec.Item_Id IS NOT NULL THEN
10549
10550 Get_CovItem_Contracts
10551 (P_CovItem_Obj_Id => Lx_Inp_Rec.Item_Id
10552 ,P_Organization_Id => Ln_Organization_Id
10553 ,P_Party_Id => Lx_Inp_Rec.Party_Id
10554 ,X_CovItem_Contracts => Lx_Contracts
10555 ,X_Result => Lx_Result
10556 ,X_Return_Status => Lx_Return_Status);
10557
10558 IF Lx_Result <> G_TRUE THEN
10559 RAISE L_EXCEP_UNEXPECTED_ERR;
10560 END IF;
10561
10562 ELSIF Lx_Inp_Rec.System_Id IS NOT NULL THEN
10563
10564 Get_CovSys_Contracts
10565 (P_CovSys_Obj_Id => Lx_Inp_Rec.System_Id
10566 ,P_Org_Id => Ln_Org_Id
10567 ,X_CovSys_Contracts => Lx_Contracts
10568 ,X_Result => Lx_Result
10569 ,X_Return_Status => Lx_Return_Status);
10570
10571 IF Lx_Result <> G_TRUE THEN
10572 RAISE L_EXCEP_UNEXPECTED_ERR;
10573 END IF;
10574
10575 ELSIF Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL THEN
10576
10577 Get_CovCust_Contracts
10578 (P_CovCust_Obj_Id => Lx_Inp_Rec.Cust_Acct_Id
10579 ,X_CovCust_Contracts => Lx_Contracts
10580 ,X_Result => Lx_Result
10581 ,X_Return_Status => Lx_Return_Status);
10582
10583 IF Lx_Result <> G_TRUE THEN
10584 RAISE L_EXCEP_UNEXPECTED_ERR;
10585 END IF;
10586
10587 ELSIF Lx_Inp_Rec.Site_Id IS NOT NULL THEN
10588
10589 Get_CovSite_Contracts
10590 (P_CovSite_Obj_Id => Lx_Inp_Rec.Site_Id
10591 ,P_Org_Id => Ln_Org_Id
10592 ,X_CovSite_Contracts => Lx_Contracts
10593 ,X_Result => Lx_Result
10594 ,X_Return_Status => Lx_Return_Status);
10595
10596 IF Lx_Result <> G_TRUE THEN
10597 RAISE L_EXCEP_UNEXPECTED_ERR;
10598 END IF;
10599
10600 ELSIF Lx_Inp_Rec.Party_Id IS NOT NULL THEN
10601
10602 Get_CovParty_Contracts
10603 (P_CovParty_Obj_Id => Lx_Inp_Rec.Party_Id
10604 ,X_CovParty_Contracts => Lx_Contracts
10605 ,X_Result => Lx_Result
10606 ,X_Return_Status => Lx_Return_Status);
10607
10608 IF Lx_Result <> G_TRUE THEN
10609 RAISE L_EXCEP_UNEXPECTED_ERR;
10610 END IF;
10611
10612 END IF;
10613
10614 Get_Contracts_01_Format
10615 (P_Contracts => Lx_Contracts
10616 ,P_Request_Date => Lx_Inp_Rec.Request_Date
10617 ,P_Validate_Flag => Lx_Inp_Rec.Validate_Flag
10618 ,P_Chr_Id_Flag => Lv_Chr_Id_Flag --Bug# 4719510 (JVARGHES)
10619 ,X_Contracts_01 => Lx_Ent_Contracts
10620 ,X_Result => Lx_Result
10621 ,X_Return_Status => Lx_Return_Status);
10622
10623 IF Lx_Result <> G_TRUE THEN
10624 RAISE L_EXCEP_UNEXPECTED_ERR;
10625 END IF;
10626
10627 X_Ent_Contracts := Lx_Ent_Contracts;
10628 X_Return_Status := Lx_Return_Status;
10629
10630 EXCEPTION
10631
10632 WHEN L_EXCEP_UNEXPECTED_ERR THEN
10633
10634 --X_Result := Lx_Result;
10635 X_Return_Status := Lx_Return_Status;
10636
10637 WHEN OTHERS THEN
10638
10639 OKC_API.SET_MESSAGE
10640 (P_App_Name => G_APP_NAME_OKC
10641 ,P_Msg_Name => G_UNEXPECTED_ERROR
10642 ,P_Token1 => G_SQLCODE_TOKEN
10643 ,P_Token1_Value => SQLCODE
10644 ,P_Token2 => G_SQLERRM_TOKEN
10645 ,P_Token2_Value => SQLERRM);
10646
10647 OKC_API.SET_MESSAGE
10648 (P_App_Name => G_APP_NAME_OKC
10649 ,P_Msg_Name => G_DEBUG_TOKEN
10650 ,P_Token1 => G_PACKAGE_TOKEN
10651 ,P_Token1_Value => G_PKG_NAME
10652 ,P_Token2 => G_PROGRAM_TOKEN
10653 ,P_Token2_Value => 'get_contracts_01');
10654
10655 --X_Result := G_FALSE;
10656 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10657
10658 END get_contracts_01;
10659
10660 -----------------------------------------------------------------------------------------------------------------------*
10661
10662 PROCEDURE Get_Contracts
10663 (P_API_Version IN NUMBER
10664 ,P_Init_Msg_List IN VARCHAR2
10665 ,P_Inp_Rec IN Inp_Cont_Rec
10666 ,X_Return_Status OUT NOCOPY VARCHAR2
10667 ,X_Msg_Count OUT NOCOPY NUMBER
10668 ,X_Msg_Data OUT NOCOPY VARCHAR2
10669 ,X_Ent_Contracts OUT NOCOPY Ent_Cont_Tbl)
10670 IS
10671
10672 Lx_Inp_Rec Inp_Cont_Rec;
10673
10674 BEGIN
10675
10676 Lx_Inp_Rec := P_Inp_Rec;
10677
10678 -- Bug# 4735542.
10679 -- okc_context.set_okc_org_context;
10680
10681 IF Lx_Inp_Rec.Request_Date IS NULL THEN
10682 Lx_Inp_Rec.Request_Date := SYSDATE;
10683 END IF;
10684
10685 Get_Contracts_01
10686 (P_API_Version => P_API_Version
10687 ,P_Init_Msg_List => P_Init_Msg_List
10688 ,P_Inp_Rec => Lx_Inp_Rec
10689 ,X_Return_Status => X_Return_Status
10690 ,X_Msg_Count => X_Msg_Count
10691 ,X_Msg_Data => X_Msg_Data
10692 ,X_Ent_Contracts => X_Ent_Contracts);
10693
10694 EXCEPTION
10695
10696 WHEN OTHERS THEN
10697
10698 OKC_API.SET_MESSAGE
10699 (P_App_Name => G_APP_NAME_OKC
10700 ,P_Msg_Name => G_UNEXPECTED_ERROR
10701 ,P_Token1 => G_SQLCODE_TOKEN
10702 ,P_Token1_Value => SQLCODE
10703 ,P_Token2 => G_SQLERRM_TOKEN
10704 ,P_Token2_Value => SQLERRM);
10705
10706 OKC_API.SET_MESSAGE
10707 (P_App_Name => G_APP_NAME_OKC
10708 ,P_Msg_Name => G_DEBUG_TOKEN
10709 ,P_Token1 => G_PACKAGE_TOKEN
10710 ,P_Token1_Value => G_PKG_NAME
10711 ,P_Token2 => G_PROGRAM_TOKEN
10712 ,P_Token2_Value => 'Get_Contracts-Ent_Cont_Tbl');
10713
10714 --X_Result := G_FALSE;
10715 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10716
10717 END Get_Contracts;
10718
10719 -----------------------------------------------------------------------------------------------------------------------*
10720
10721 PROCEDURE Sort_Asc_GetContracts_02
10722 (P_Input_Tab IN Get_ConTop_Tbl
10723 ,P_Sort_Key IN VARCHAR2
10724 ,X_Output_Tab out nocopy Get_ConTop_Tbl
10725 ,X_Result out nocopy Gx_Boolean
10726 ,X_Return_Status out nocopy Gx_Ret_Sts)
10727 IS
10728
10729 Lv_Sort_Key CONSTANT VARCHAR2(10) := P_Sort_Key;
10730
10731 Lx_Sort_Tab Get_ConTop_Tbl;
10732
10733 Li_TableIdx_Out BINARY_INTEGER;
10734 Li_TableIdx_In BINARY_INTEGER;
10735
10736 Lx_Temp_ContItem Get_ConTop_Rec;
10737
10738 Lv_Composit_Val1 DATE;
10739 Lv_Composit_Val1_Num NUMBER;
10740
10741 Lv_Composit_Val2 DATE;
10742 Lv_Composit_Val2_Num NUMBER;
10743
10744 Lx_Result Gx_Boolean;
10745 Lx_Return_Status Gx_Ret_Sts;
10746
10747 BEGIN
10748
10749 Lx_Result := G_TRUE;
10750 Lx_Return_Status := G_RET_STS_SUCCESS;
10751
10752 Lx_Sort_Tab := P_Input_Tab;
10753
10754 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
10755
10756 WHILE Li_TableIdx_Out IS NOT NULL LOOP
10757
10758 Li_TableIdx_In := Li_TableIdx_Out;
10759
10760 WHILE Li_TableIdx_In IS NOT NULL LOOP
10761
10762 IF Lv_Sort_Key IN (G_RESOLUTION_TIME,G_REACTION_TIME) THEN
10763
10764 IF Lv_Sort_Key = G_REACTION_TIME THEN
10765 Lv_Composit_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Exp_Reaction_Time;
10766 ELSE
10767 Lv_Composit_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Exp_Resolution_Time;
10768 END IF;
10769
10770 IF Lv_Composit_Val1 IS NOT NULL THEN
10771 Lv_Composit_Val1_Num := TO_NUMBER(TO_CHAR(Lv_Composit_Val1,'YYYYMMDDHH24MISS'));
10772 ELSE
10773 -- Lv_Composit_Val1_Num := NULL; --G_MISS_NUM; -- Bug# 4896181
10774 Lv_Composit_Val1_Num := 99999999999999; -- Bug# 4896181
10775 END IF;
10776
10777 IF Lv_Sort_Key = G_REACTION_TIME THEN
10778 Lv_Composit_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Exp_Reaction_Time;
10779 ELSE
10780 Lv_Composit_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Exp_Resolution_Time;
10781 END IF;
10782
10783 IF Lv_Composit_Val2 IS NOT NULL THEN
10784 Lv_Composit_Val2_Num := TO_NUMBER(TO_CHAR(Lv_Composit_Val2,'YYYYMMDDHH24MISS'));
10785 ELSE
10786 -- Lv_Composit_Val2_Num := NULL; --G_MISS_NUM; -- Bug# 4896181
10787 Lv_Composit_Val2_Num := 99999999999999; -- Bug# 4896181
10788 END IF;
10789
10790 ELSIF Lv_Sort_Key = G_COVERAGE_TYPE_IMP_LEVEL THEN
10791
10792 -- Bug# 4896181
10793 -- Lv_Composit_Val1_Num := NVL(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Type_Imp_Level,NULL --G_MISS_NUM);
10794 -- Lv_Composit_Val2_Num := NVL(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Type_Imp_Level,NULL --G_MISS_NUM) ;
10795
10796 Lv_Composit_Val1_Num := NVL(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Type_Imp_Level,99999999999999);
10797 Lv_Composit_Val2_Num := NVL(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Type_Imp_Level,99999999999999);
10798
10799
10800 END IF;
10801
10802 IF Lv_Composit_Val1_Num > Lv_Composit_Val2_Num THEN
10803
10804 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
10805 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
10806 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
10807
10808 END IF;
10809
10810 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
10811
10812 END LOOP;
10813
10814 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
10815
10816 END LOOP;
10817
10818 X_Output_Tab := Lx_Sort_Tab;
10819 X_Result := Lx_Result;
10820 X_Return_Status := Lx_Return_Status;
10821
10822 EXCEPTION
10823
10824 WHEN OTHERS THEN
10825
10826 OKC_API.SET_MESSAGE
10827 (P_App_Name => G_APP_NAME_OKC
10828 ,P_Msg_Name => G_UNEXPECTED_ERROR
10829 ,P_Token1 => G_SQLCODE_TOKEN
10830 ,P_Token1_Value => SQLCODE
10831 ,P_Token2 => G_SQLERRM_TOKEN
10832 ,P_Token2_Value => SQLERRM);
10833
10834 OKC_API.SET_MESSAGE
10835 (P_App_Name => G_APP_NAME_OKC
10836 ,P_Msg_Name => G_DEBUG_TOKEN
10837 ,P_Token1 => G_PACKAGE_TOKEN
10838 ,P_Token1_Value => G_PKG_NAME
10839 ,P_Token2 => G_PROGRAM_TOKEN
10840 ,P_Token2_Value => 'Sort_Asc_GetContracts_02');
10841
10842 X_Result := G_FALSE;
10843 X_Return_Status := G_RET_STS_UNEXP_ERROR;
10844
10845 END Sort_Asc_GetContracts_02;
10846
10847 -----------------------------------------------------------------------------------------------------------------------*
10848
10849 PROCEDURE Get_Contracts_02_Format
10850 (P_Contracts IN GT_Contract_Ref
10851 ,P_BusiProc_Id IN Gx_BusProcess_Id
10852 ,P_Severity_Id IN Gx_Severity_Id
10853 ,P_Request_TZone_Id IN Gx_TimeZoneId
10854 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
10855 ,P_Incident_Date IN DATE -- Added for 12.0 ENT-TZ project (JVARGHES)
10856 ,P_Request_Date IN DATE
10857 ,P_Calc_RespTime_YN IN VARCHAR2
10858 ,P_Validate_Eff IN VARCHAR2
10859 ,P_Validate_Flag IN VARCHAR2
10860 ,P_SrvLine_Flag IN VARCHAR2
10861 ,P_Sort_Key IN VARCHAR2
10862 ,X_Contracts_02 out nocopy Get_ConTop_Tbl
10863 ,X_Result out nocopy Gx_Boolean
10864 ,X_Return_Status out nocopy Gx_Ret_Sts)
10865 IS
10866
10867 -- cursor for Cx_SrvLine_Id is not null and Cx_CovLvlLine_Id is null
10868
10869 CURSOR Lx_Csr_Contracts1(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
10870 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2) IS
10871 SELECT HD.Id Contract_Id
10872 ,HD.Contract_Number
10873 ,HD.Contract_Number_Modifier
10874 ,HD.Sts_Code
10875 ,HD.Authoring_Org_Id
10876 ,HD.Inv_Organization_Id
10877 ,HD.End_Date HDR_End_Date --grace period changes
10878 ,SV.Id Service_Line_Id
10879 ,SV.Start_Date SV_Start_Date
10880 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
10881 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
10882 ,CL.Sts_Code CL_Sts_Code
10883 ,CL.Id CovLvl_Line_Id
10884 ,CL.Start_Date CL_Start_Date
10885 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
10886 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
10887 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
10888 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
10889 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
10890 ,Okc_K_Lines_B SV
10891 ,Okc_K_Lines_B CL
10892 WHERE HD.Id = Cx_Chr_Id
10893 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
10894 AND HD.Id > -1
10895 AND HD.Template_YN <> 'Y'
10896 AND SV.Dnz_Chr_Id = HD.Id
10897 AND SV.Cle_Id IS NULL
10898 AND SV.Chr_Id = HD.Id
10899 AND SV.Lse_ID IN (1,14,19)
10900 AND SV.Id = Cx_SrvLine_Id --NVL(Cx_SrvLine_Id,SV.Id)
10901 AND CL.Cle_Id = SV.Id
10902 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
10903 AND (Cx_BP_Id IS NULL
10904 OR
10905 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
10906 FROM Okc_K_Items ITM
10907 ,Okc_K_Lines_B BPL
10908 ,Oks_K_Lines_B KSL
10909 WHERE KSL.Cle_Id = SV.Id
10910 AND BPL.Cle_Id = KSL.Coverage_ID
10911 AND ITM.Cle_Id = BPL.Id
10912 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
10913 AND ITM.Object1_Id2 = '#'
10914 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
10915 ));
10916 --
10917 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
10918 --
10919 -- EXISTS (SELECT '*'
10920 -- FROM Okc_K_Items ITM
10921 -- ,Okc_K_Lines_B BPL
10922 -- ,Okc_K_Lines_B CV
10923 -- WHERE CV.Cle_Id = SV.Id
10924 -- AND CV.Lse_Id IN (2,15,20)
10925 -- AND BPL.Cle_Id = CV.Id
10926 -- AND ITM.Cle_Id = BPL.Id
10927 -- -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
10928 -- AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
10929 -- AND ITM.Object1_Id2 = '#'
10930 -- -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
10931 -- AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
10932 -- ));
10933 --
10934 --
10935
10936 -- cursor for Cx_SrvLine_Id is null and Cx_CovLvlLine_Id is not null
10937
10938 CURSOR Lx_Csr_Contracts2(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
10939 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2) IS
10940 SELECT HD.Id Contract_Id
10941 ,HD.Contract_Number
10942 ,HD.Contract_Number_Modifier
10943 ,HD.Sts_Code
10944 ,HD.Authoring_Org_Id
10945 ,HD.Inv_Organization_Id
10946 ,HD.End_Date HDR_End_Date --grace period changes
10947 ,SV.Id Service_Line_Id
10948 ,SV.Start_Date SV_Start_Date
10949 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
10950 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
10951 ,CL.Sts_Code CL_Sts_Code
10952 ,CL.Id CovLvl_Line_Id
10953 ,CL.Start_Date CL_Start_Date
10954 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
10955 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
10956 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
10957 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
10958 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
10959 ,Okc_K_Lines_B SV
10960 ,Okc_K_Lines_B CL
10961 WHERE HD.Id = Cx_Chr_Id
10962 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
10963 AND HD.Id > -1
10964 AND HD.Template_YN <> 'Y'
10965 AND SV.Dnz_Chr_Id = HD.Id
10966 AND SV.Cle_Id IS NULL
10967 AND SV.Chr_Id = HD.Id
10968 AND SV.Lse_ID IN (1,14,19)
10969 AND CL.Cle_Id = SV.Id
10970 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
10971 AND CL.Id = Cx_CovLvlLine_Id
10972 AND (Cx_BP_Id IS NULL
10973 OR
10974 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
10975 FROM Okc_K_Items ITM
10976 ,Okc_K_Lines_B BPL
10977 ,Oks_K_Lines_B KSL
10978 WHERE KSL.Cle_Id = SV.Id
10979 AND BPL.Cle_Id = KSL.Coverage_ID
10980 AND ITM.Cle_Id = BPL.Id
10981 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
10982 AND ITM.Object1_Id2 = '#'
10983 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
10984 ));
10985 --
10986 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
10987 --
10988 -- EXISTS (SELECT '*'
10989 -- FROM Okc_K_Items ITM
10990 -- ,Okc_K_Lines_B BPL
10991 -- ,Okc_K_Lines_B CV
10992 -- WHERE CV.Cle_Id = SV.Id
10993 -- AND CV.Lse_Id IN (2,15,20)
10994 -- AND BPL.Cle_Id = CV.Id
10995 -- AND ITM.Cle_Id = BPL.Id
10996 -- -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
10997 -- AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
10998 -- AND ITM.Object1_Id2 = '#'
10999 -- -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11000 -- AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11001 -- ));
11002 --
11003 --
11004
11005 -- cursor for Cx_SrvLine_Id is not null and Cx_CovLvlLine_Id is not null
11006
11007 CURSOR Lx_Csr_Contracts3(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11008 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2) IS
11009 SELECT HD.Id Contract_Id
11010 ,HD.Contract_Number
11011 ,HD.Contract_Number_Modifier
11012 ,HD.Sts_Code
11013 ,HD.Authoring_Org_Id
11014 ,HD.Inv_Organization_Id
11015 ,HD.End_Date HDR_End_Date --grace period changes
11016 ,SV.Id Service_Line_Id
11017 ,SV.Start_Date SV_Start_Date
11018 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11019 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11020 ,CL.Sts_Code CL_Sts_Code
11021 ,CL.Id CovLvl_Line_Id
11022 ,CL.Start_Date CL_Start_Date
11023 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11024 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11025 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11026 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11027 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
11028 ,Okc_K_Lines_B SV
11029 ,Okc_K_Lines_B CL
11030 WHERE HD.Id = Cx_Chr_Id
11031 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
11032 AND HD.Id > -1
11033 AND HD.Template_YN <> 'Y'
11034 AND SV.Dnz_Chr_Id = HD.Id
11035 AND SV.Cle_Id IS NULL
11036 AND SV.Chr_Id = HD.Id
11037 AND SV.Lse_ID IN (1,14,19)
11038 AND SV.Id = Cx_SrvLine_Id
11039 AND CL.Cle_Id = SV.Id
11040 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11041 AND CL.Id = Cx_CovLvlLine_Id
11042 AND (Cx_BP_Id IS NULL
11043 OR
11044 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11045 FROM Okc_K_Items ITM
11046 ,Okc_K_Lines_B BPL
11047 ,Oks_K_Lines_B KSL
11048 WHERE KSL.Cle_Id = SV.Id
11049 AND BPL.Cle_Id = KSL.Coverage_ID
11050 AND ITM.Cle_Id = BPL.Id
11051 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11052 AND ITM.Object1_Id2 = '#'
11053 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11054 ));
11055 --
11056 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11057 --
11058 -- EXISTS (SELECT '*'
11059 -- FROM Okc_K_Items ITM
11060 -- ,Okc_K_Lines_B BPL
11061 -- ,Okc_K_Lines_B CV
11062 -- WHERE CV.Cle_Id = SV.Id
11063 -- AND CV.Lse_Id IN (2,15,20)
11064 -- AND BPL.Cle_Id = CV.Id
11065 -- AND ITM.Cle_Id = BPL.Id
11066 -- -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
11067 -- AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11068 -- AND ITM.Object1_Id2 = '#'
11069 -- -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11070 -- AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11071 -- ));
11072 --
11073
11074 -- cursor for Cx_SrvLine_Id is null and Cx_CovLvlLine_Id is null
11075
11076 CURSOR Lx_Csr_Contracts4(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11077 ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2) IS
11078 SELECT HD.Id Contract_Id
11079 ,HD.Contract_Number
11080 ,HD.Contract_Number_Modifier
11081 ,HD.Sts_Code
11082 ,HD.Authoring_Org_Id
11083 ,HD.Inv_Organization_Id
11084 ,HD.End_Date HDR_End_Date --grace period changes
11085 ,SV.Id Service_Line_Id
11086 ,SV.Start_Date SV_Start_Date
11087 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11088 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11089 ,CL.Sts_Code CL_Sts_Code
11090 ,CL.Id CovLvl_Line_Id
11091 ,CL.Start_Date CL_Start_Date
11092 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11093 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11094 -- ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11095 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11096 FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
11097 ,Okc_K_Lines_B SV
11098 ,Okc_K_Lines_B CL
11099 WHERE HD.Id = Cx_Chr_Id
11100 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
11101 AND HD.Id > -1
11102 AND HD.Template_YN <> 'Y'
11103 AND SV.Dnz_Chr_Id = HD.Id
11104 AND SV.Cle_Id IS NULL
11105 AND SV.Chr_Id = HD.Id
11106 AND SV.Lse_ID IN (1,14,19)
11107 AND CL.Cle_Id = SV.Id
11108 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11109 AND (Cx_BP_Id IS NULL
11110 OR
11111 EXISTS (SELECT '*' -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11112 FROM Okc_K_Items ITM
11113 ,Okc_K_Lines_B BPL
11114 ,Oks_K_Lines_B KSL
11115 WHERE KSL.Cle_Id = SV.Id
11116 AND BPL.Cle_Id = KSL.Coverage_ID
11117 AND ITM.Cle_Id = BPL.Id
11118 AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11119 AND ITM.Object1_Id2 = '#'
11120 AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11121 ));
11122 --
11123 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11124 --
11125 --
11126 -- EXISTS (SELECT '*'
11127 -- FROM Okc_K_Items ITM
11128 -- ,Okc_K_Lines_B BPL
11129 -- ,Okc_K_Lines_B CV
11130 -- WHERE CV.Cle_Id = SV.Id
11131 -- AND CV.Lse_Id IN (2,15,20)
11132 -- AND BPL.Cle_Id = CV.Id
11133 -- AND ITM.Cle_Id = BPL.Id
11134 -- -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
11135 -- AND ITM.OBJECT1_ID1||'' = TO_CHAR(Cx_BP_Id)
11136 -- AND ITM.Object1_Id2 = '#'
11137 -- -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11138 -- AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11139 -- ));
11140 --
11141
11142 Lx_Contracts GT_Contract_Ref;
11143 Ld_Request_Date DATE;
11144 Lv_Validate_Flag VARCHAR2(1);
11145 Lv_SrvLine_Flag CONSTANT VARCHAR2(1) := P_SrvLine_Flag;
11146 Lv_Sort_Key CONSTANT VARCHAR2(10):= P_Sort_Key;
11147
11148 Lx_BusiProc_Id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
11149 Lx_Severity_Id CONSTANT Gx_Severity_Id := P_Severity_Id;
11150 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_Id;
11151 Lv_Calc_RespTime_YN CONSTANT VARCHAR2(1) := P_Calc_RespTime_YN;
11152 Lv_Validate_Eff CONSTANT VARCHAR2(1) := P_Validate_Eff;
11153 Lv_Cont_Pty_Id VARCHAR2(100);
11154
11155 Lx_Contracts_02 Get_ConTop_Tbl;
11156 Lx_Contracts_02_Out Get_ConTop_Tbl;
11157 Lx_Contracts_02_Val Get_ConTop_Tbl;
11158
11159 Lx_Idx_Rec Idx_Rec;
11160
11161 Lx_Result Gx_Boolean;
11162 Lx_Return_Status Gx_Ret_Sts;
11163 Lx_Result1 Gx_Boolean;
11164 Lx_Return_Status1 Gx_Ret_Sts;
11165 Lx_Result2 Gx_Boolean;
11166 Lx_Return_Status2 Gx_Ret_Sts;
11167 Lx_Result3 Gx_Boolean;
11168 Lx_Return_Status3 Gx_Ret_Sts;
11169
11170 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
11171 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
11172 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
11173 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
11174
11175 Li_TableIdx BINARY_INTEGER;
11176 Li_OutTab_Idx BINARY_INTEGER;
11177 Lv_Entile_Flag VARCHAR2(1);
11178 Lv_Effective_Falg VARCHAR2(1);
11179
11180 Lx_SrvLine_Id Gx_OKS_Id;
11181 Lx_CovLvlLine_Id Gx_OKS_Id;
11182
11183 Ld_SRV_Eff_End_Date DATE;
11184 Ld_COV_Eff_End_Date DATE;
11185 Ld_CVL_Eff_End_Date DATE;
11186
11187 Lv_Srv_Name Okx_System_Items_V.Name%TYPE; --VARCHAR2(150) ;
11188 Lv_Srv_Description Okx_System_Items_V.Description%TYPE; --VARCHAR2(1995);
11189 Lv_Prof_Srv_Name VARCHAR2(300) ;
11190 Lv_Prof_Srv_Desc VARCHAR2(300);
11191
11192 Lv_Cov_Name Okc_K_Lines_V.Name%TYPE; --VARCHAR2(150) ;
11193 Lv_Cov_Description Okc_K_Lines_V.Item_Description%TYPE; --VARCHAR2(1995);
11194
11195 Lx_React_Durn Gx_ReactDurn;
11196 Lx_React_UOM Gx_ReactUOM;
11197 Lv_React_Day VARCHAR2(20);
11198 Ld_React_By_DateTime DATE;
11199 Ld_React_Start_DateTime DATE;
11200
11201 Lx_Resln_Durn Gx_ReactDurn;
11202 Lx_Resln_UOM Gx_ReactUOM;
11203 Lv_Resln_Day VARCHAR2(20);
11204 Ld_Resln_By_DateTime DATE;
11205 Ld_Resln_Start_DateTime DATE;
11206
11207 Ln_Msg_Count NUMBER;
11208 Lv_Msg_Data VARCHAR2(2000);
11209
11210 Lv_RCN_RSN_Flag VARCHAR2(10);
11211 Lb_RSN_CTXT_Exists BOOLEAN;
11212
11213 Lx_CovLine_Id Gx_OKS_Id;
11214 Ld_Cov_StDate DATE;
11215 Ld_Cov_EdDate DATE;
11216 Ld_Cov_TnDate DATE;
11217 Lv_Cov_Check VARCHAR2(1);
11218
11219 Lv_Prof_Name CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
11220 Lv_Prof_Value VARCHAR2(300);
11221
11222 -- Added for 12.0 ENT-TZ project (JVARGHES)
11223
11224 Lv_Dates_In_Input_TZ VARCHAR2(1);
11225 Ld_INCIDENT_DATE DATE;
11226
11227 --
11228
11229 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
11230
11231 BEGIN
11232
11233 Lx_Contracts := P_Contracts;
11234 Ld_Request_Date := nvl(P_Request_Date,sysdate);
11235 Lv_Validate_Flag := P_Validate_Flag;
11236
11237 -- Added for 12.0 ENT-TZ project (JVARGHES)
11238
11239 Lv_Dates_In_Input_TZ := P_Dates_In_Input_TZ;
11240 Ld_Incident_Date := P_Incident_Date;
11241
11242 --
11243
11244 Lx_Result := G_TRUE;
11245 Lx_Return_Status := G_RET_STS_SUCCESS;
11246 Lx_Result1 := G_TRUE;
11247 Lx_Return_Status1 := G_RET_STS_SUCCESS;
11248 Lx_Result2 := G_TRUE;
11249 Lx_Return_Status2 := G_RET_STS_SUCCESS;
11250 Lx_Result3 := G_TRUE;
11251 Lx_Return_Status3 := G_RET_STS_SUCCESS;
11252
11253 Li_OutTab_Idx := 0;
11254
11255
11256 Li_TableIdx := Lx_Contracts.FIRST;
11257
11258 WHILE Li_TableIdx IS NOT NULL LOOP
11259
11260 IF Lv_SrvLine_Flag = 'T' THEN
11261
11262 Lx_SrvLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
11263 Lx_CovLvlLine_Id := NULL;
11264
11265 ELSE
11266
11267 Lx_SrvLine_Id := NULL;
11268 Lx_CovLvlLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
11269
11270 END IF;
11271
11272 Lv_Cont_Pty_Id := TO_CHAR(Lx_Contracts(Li_TableIdx).Rx_Pty_Id);
11273
11274 IF Lx_SrvLine_Id is not null and Lx_CovLvlLine_Id is null then
11275 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) LOOP
11276
11277 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
11278 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
11279 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
11280 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
11281 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
11282 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
11283 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
11284 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
11285 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
11286 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
11287 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
11288 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
11289 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
11290 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
11291 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
11292 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
11293 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
11294
11295 Get_Cont02Format_Validation
11296 (P_Contracts => Lx_Idx_Rec
11297 ,P_BusiProc_Id => Lx_BusiProc_Id
11298 ,P_Severity_Id => Lx_Severity_Id
11299 ,P_Request_TZone_Id => Lx_Request_TZone_Id
11300 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
11301 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
11302 ,P_Request_Date => Ld_Request_Date
11303 ,P_Request_Date_Start => NULL
11304 ,P_Request_Date_End => NULL
11305 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
11306 ,P_Validate_Eff => Lv_Validate_Eff
11307 ,P_Validate_Flag => Lv_Validate_Flag
11308 ,P_SrvLine_Flag => Lv_SrvLine_Flag
11309 ,P_Sort_Key => Lv_Sort_Key
11310 ,X_Contracts_02 => Lx_Contracts_02_Val
11311 ,X_Result => Lx_Result
11312 ,X_Return_Status => Lx_Return_Status);
11313
11314 IF Lx_Contracts_02_Val.COUNT > 0 THEN
11315
11316 Li_OutTab_Idx := Li_OutTab_Idx + 1;
11317
11318 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
11319 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
11320 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
11321 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
11322 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
11323 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
11324 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
11325 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
11326 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
11327 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
11328 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
11329 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
11330 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
11331 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
11332 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
11333 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
11334 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
11335 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
11336 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
11337 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
11338 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
11339 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
11340 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
11341 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
11342 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
11343
11344 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
11345 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
11346
11347 --Added for IB OA Pages (JVARGHES)
11348 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
11349 --
11350
11351 Lx_Contracts_02_Val.DELETE;
11352
11353 END IF;
11354
11355 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
11356 RAISE L_EXCEP_UNEXPECTED_ERR;
11357 END IF;
11358
11359 END LOOP;
11360
11361 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
11362
11363
11364 ELSIF Lx_SrvLine_Id is null and Lx_CovLvlLine_Id is not null then
11365
11366
11367 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) LOOP
11368
11369 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
11370 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
11371 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
11372 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
11373 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
11374 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
11375 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
11376 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
11377 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
11378 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
11379 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
11380 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
11381 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
11382 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
11383 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
11384 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
11385 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
11386
11387 Get_Cont02Format_Validation
11388 (P_Contracts => Lx_Idx_Rec
11389 ,P_BusiProc_Id => Lx_BusiProc_Id
11390 ,P_Severity_Id => Lx_Severity_Id
11391 ,P_Request_TZone_Id => Lx_Request_TZone_Id
11392 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
11393 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
11394 ,P_Request_Date => Ld_Request_Date
11395 ,P_Request_Date_Start => NULL
11396 ,P_Request_Date_End => NULL
11397 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
11398 ,P_Validate_Eff => Lv_Validate_Eff
11399 ,P_Validate_Flag => Lv_Validate_Flag
11400 ,P_SrvLine_Flag => Lv_SrvLine_Flag
11401 ,P_Sort_Key => Lv_Sort_Key
11402 ,X_Contracts_02 => Lx_Contracts_02_Val
11403 ,X_Result => Lx_Result
11404 ,X_Return_Status => Lx_Return_Status);
11405
11406 IF Lx_Contracts_02_Val.COUNT > 0 THEN
11407
11408 Li_OutTab_Idx := Li_OutTab_Idx + 1;
11409
11410 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
11411 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
11412 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
11413 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
11414 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
11415 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
11416 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
11417 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
11418 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
11419 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
11420 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
11421 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
11422 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
11423 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
11424 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
11425 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
11426 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
11427 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
11428 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
11429 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
11430 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
11431 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
11432 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
11433 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
11434 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
11435
11436 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
11437 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
11438
11439 --Added for IB OA Pages (JVARGHES)
11440 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
11441 --
11442
11443 Lx_Contracts_02_Val.DELETE;
11444
11445 END IF;
11446
11447 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
11448 RAISE L_EXCEP_UNEXPECTED_ERR;
11449 END IF;
11450
11451 END LOOP;
11452
11453 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
11454
11455
11456 ELSIF Lx_SrvLine_Id is not null and Lx_CovLvlLine_Id is not null then
11457
11458
11459 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) LOOP
11460
11461 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
11462 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
11463 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
11464 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
11465 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
11466 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
11467 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
11468 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
11469 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
11470 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
11471 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
11472 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
11473 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
11474 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
11475 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
11476 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
11477 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
11478
11479 Get_Cont02Format_Validation
11480 (P_Contracts => Lx_Idx_Rec
11481 ,P_BusiProc_Id => Lx_BusiProc_Id
11482 ,P_Severity_Id => Lx_Severity_Id
11483 ,P_Request_TZone_Id => Lx_Request_TZone_Id
11484 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
11485 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
11486 ,P_Request_Date => Ld_Request_Date
11487 ,P_Request_Date_Start => NULL
11488 ,P_Request_Date_End => NULL
11489 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
11490 ,P_Validate_Eff => Lv_Validate_Eff
11491 ,P_Validate_Flag => Lv_Validate_Flag
11492 ,P_SrvLine_Flag => Lv_SrvLine_Flag
11493 ,P_Sort_Key => Lv_Sort_Key
11494 ,X_Contracts_02 => Lx_Contracts_02_Val
11495 ,X_Result => Lx_Result
11496 ,X_Return_Status => Lx_Return_Status);
11497
11498 IF Lx_Contracts_02_Val.COUNT > 0 THEN
11499
11500 Li_OutTab_Idx := Li_OutTab_Idx + 1;
11501
11502 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
11503 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
11504 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
11505 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
11506 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
11507 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
11508 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
11509 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
11510 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
11511 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
11512 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
11513 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
11514 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
11515 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
11516 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
11517 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
11518 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
11519 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
11520 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
11521 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
11522 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
11523 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
11524 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
11525 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
11526 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
11527
11528 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
11529 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
11530
11531 --Added for IB OA Pages (JVARGHES)
11532 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
11533 --
11534
11535 Lx_Contracts_02_Val.DELETE;
11536
11537 END IF;
11538
11539 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
11540 RAISE L_EXCEP_UNEXPECTED_ERR;
11541 END IF;
11542
11543 END LOOP;
11544
11545 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
11546
11547
11548 ELSIF Lx_SrvLine_Id is null and Lx_CovLvlLine_Id is null then
11549
11550
11551 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) LOOP
11552
11553 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
11554 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
11555 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
11556 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
11557 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
11558 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
11559 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
11560 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
11561 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
11562 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
11563 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
11564 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
11565 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
11566 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
11567 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
11568 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
11569 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
11570
11571 Get_Cont02Format_Validation
11572 (P_Contracts => Lx_Idx_Rec
11573 ,P_BusiProc_Id => Lx_BusiProc_Id
11574 ,P_Severity_Id => Lx_Severity_Id
11575 ,P_Request_TZone_Id => Lx_Request_TZone_Id
11576 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
11577 ,P_Incident_Date => Ld_Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
11578 ,P_Request_Date => Ld_Request_Date
11579 ,P_Request_Date_Start => NULL
11580 ,P_Request_Date_End => NULL
11581 ,P_Calc_RespTime_YN => Lv_Calc_RespTime_YN
11582 ,P_Validate_Eff => Lv_Validate_Eff
11583 ,P_Validate_Flag => Lv_Validate_Flag
11584 ,P_SrvLine_Flag => Lv_SrvLine_Flag
11585 ,P_Sort_Key => Lv_Sort_Key
11586 ,X_Contracts_02 => Lx_Contracts_02_Val
11587 ,X_Result => Lx_Result
11588 ,X_Return_Status => Lx_Return_Status);
11589
11590 IF Lx_Contracts_02_Val.COUNT > 0 THEN
11591
11592 Li_OutTab_Idx := Li_OutTab_Idx + 1;
11593
11594 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts_02_Val(1).Contract_Id;
11595 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
11596 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
11597 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
11598 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts_02_Val(1).Sts_code;
11599 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts_02_Val(1).Service_Line_Id;
11600 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lx_Contracts_02_Val(1).Service_Name;
11601 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lx_Contracts_02_Val(1).Service_Description;
11602 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
11603 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
11604 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts_02_Val(1).Service_Start_Date;
11605 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts_02_Val(1).Service_End_Date;
11606 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
11607 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lx_Contracts_02_Val(1).Coverage_Term_Name;
11608 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lx_Contracts_02_Val(1).Coverage_Term_Description;
11609 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts_02_Val(1).Warranty_Flag;
11610 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
11611 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts_02_Val(1).date_terminated;
11612 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
11613 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
11614 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Contracts_02_Val(1).Status_Code;
11615 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lx_Contracts_02_Val(1).Status_Text;
11616 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Contracts_02_Val(1).Coverage_Type_Code;
11617 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
11618 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
11619
11620 Lx_Contracts_02(Li_OutTab_Idx).service_po_number := Lx_Contracts_02_Val(1).service_po_number;
11621 Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag := Lx_Contracts_02_Val(1).service_po_required_flag;
11622
11623 --Added for IB OA Pages (JVARGHES)
11624 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
11625 --
11626
11627 Lx_Contracts_02_Val.DELETE;
11628
11629 END IF;
11630
11631 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
11632 RAISE L_EXCEP_UNEXPECTED_ERR;
11633 END IF;
11634
11635 END LOOP;
11636
11637 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
11638
11639
11640 END IF;
11641
11642 END LOOP;
11643
11644
11645 -- IF Lv_Sort_Key <> G_NO_SORT_KEY THEN
11646 -- above IF commented and new one introduced , as sorting needs to be done when calculate response time flag
11647 -- is 'Y' or sort key is sorting with importance level.
11648 IF (((Lv_Calc_RespTime_YN = 'N') AND (Lv_Sort_Key = 'COVTYP_IMP')) OR (Lv_Calc_RespTime_YN = 'Y')) THEN
11649
11650 Sort_Asc_GetContracts_02
11651 (P_Input_Tab => Lx_Contracts_02
11652 ,P_Sort_Key => Lv_Sort_Key
11653 ,X_Output_Tab => Lx_Contracts_02_Out
11654 ,X_Result => Lx_Result
11655 ,X_Return_Status => Lx_Return_Status);
11656
11657 IF Lx_Result <> G_TRUE THEN
11658 RAISE L_EXCEP_UNEXPECTED_ERR;
11659 END IF;
11660
11661 ELSE
11662
11663 Lx_Contracts_02_Out := Lx_Contracts_02;
11664
11665 END IF;
11666
11667
11668 X_Contracts_02 := Lx_Contracts_02_Out;
11669 X_Result := Lx_Result;
11670 X_Return_Status := Lx_Return_Status;
11671
11672 EXCEPTION
11673
11674 WHEN L_EXCEP_UNEXPECTED_ERR THEN
11675
11676 X_Result := Lx_Result;
11677 X_Return_Status := Lx_Return_Status;
11678
11679 WHEN OTHERS THEN
11680
11681 OKC_API.SET_MESSAGE
11682 (P_App_Name => G_APP_NAME_OKC
11683 ,P_Msg_Name => G_UNEXPECTED_ERROR
11684 ,P_Token1 => G_SQLCODE_TOKEN
11685 ,P_Token1_Value => SQLCODE
11686 ,P_Token2 => G_SQLERRM_TOKEN
11687 ,P_Token2_Value => SQLERRM);
11688
11689 OKC_API.SET_MESSAGE
11690 (P_App_Name => G_APP_NAME_OKC
11691 ,P_Msg_Name => G_DEBUG_TOKEN
11692 ,P_Token1 => G_PACKAGE_TOKEN
11693 ,P_Token1_Value => G_PKG_NAME
11694 ,P_Token2 => G_PROGRAM_TOKEN
11695 ,P_Token2_Value => 'Get_Contracts_02_Format');
11696
11697 X_Result := G_FALSE;
11698 X_Return_Status := G_RET_STS_UNEXP_ERROR;
11699
11700 END Get_Contracts_02_Format;
11701
11702 -----------------------------------------------------------------------------------------------------------------------*
11703
11704 PROCEDURE Append_Contract_PlSql_Table
11705 (P_Input_Tab IN GT_Contract_Ref
11706 ,P_Append_Tab IN GT_Contract_Ref
11707 ,X_Output_Tab out nocopy GT_Contract_Ref
11708 ,X_Result out nocopy Gx_Boolean
11709 ,X_Return_Status out nocopy Gx_Ret_Sts)
11710 IS
11711
11712 Lx_Input_Tab GT_Contract_Ref;
11713 Lx_Output_Tab GT_Contract_Ref;
11714
11715 Li_In_TableIdx BINARY_INTEGER;
11716 Li_Out_TableIdx BINARY_INTEGER;
11717
11718 Lx_Result Gx_Boolean;
11719 Lx_Return_Status Gx_Ret_Sts;
11720
11721 BEGIN
11722
11723 Lx_Input_Tab := P_Input_Tab;
11724 Lx_Output_Tab := P_Append_Tab;
11725
11726 Lx_Result := G_TRUE;
11727 Lx_Return_Status := G_RET_STS_SUCCESS;
11728
11729 Li_In_TableIdx := Lx_Input_Tab.FIRST;
11730 Li_Out_TableIdx := NVL(Lx_Output_Tab.LAST,0);
11731
11732 WHILE Li_In_TableIdx IS NOT NULL LOOP
11733
11734 Li_Out_TableIdx := Li_Out_TableIdx + 1;
11735 Lx_Output_Tab(Li_Out_TableIdx) := Lx_Input_Tab(Li_In_TableIdx);
11736 Li_In_TableIdx := Lx_Input_Tab.NEXT(Li_In_TableIdx);
11737
11738 END LOOP;
11739
11740 X_Output_Tab := Lx_Output_Tab;
11741
11742 X_Result := Lx_Result;
11743 X_Return_Status := Lx_Return_Status;
11744
11745 EXCEPTION
11746
11747 WHEN OTHERS THEN
11748
11749 OKC_API.SET_MESSAGE
11750 (P_App_Name => G_APP_NAME_OKC
11751 ,P_Msg_Name => G_UNEXPECTED_ERROR
11752 ,P_Token1 => G_SQLCODE_TOKEN
11753 ,P_Token1_Value => SQLCODE
11754 ,P_Token2 => G_SQLERRM_TOKEN
11755 ,P_Token2_Value => SQLERRM);
11756
11757 OKC_API.SET_MESSAGE
11758 (P_App_Name => G_APP_NAME_OKC
11759 ,P_Msg_Name => G_DEBUG_TOKEN
11760 ,P_Token1 => G_PACKAGE_TOKEN
11761 ,P_Token1_Value => G_PKG_NAME
11762 ,P_Token2 => G_PROGRAM_TOKEN
11763 ,P_Token2_Value => 'Append_Contract_PlSql_Table');
11764
11765 X_Result := G_FALSE;
11766 X_Return_Status := G_RET_STS_UNEXP_ERROR;
11767
11768 END Append_Contract_PlSql_Table;
11769
11770 -----------------------------------------------------------------------------------------------------------------------*
11771
11772 PROCEDURE Get_Contracts_02
11773 (P_API_Version IN NUMBER
11774 ,P_Init_Msg_List IN VARCHAR2
11775 ,P_Inp_Rec IN Inp_rec_getcont02
11776 ,X_Return_Status OUT NOCOPY VARCHAR2
11777 ,X_Msg_Count OUT NOCOPY NUMBER
11778 ,X_Msg_Data OUT NOCOPY VARCHAR2
11779 ,X_Ent_Contracts OUT NOCOPY Get_ConTop_Tbl)
11780 IS
11781
11782 CURSOR Lx_SrvLine(Cx_SrvLine_Id IN Gx_OKS_Id) IS
11783 SELECT Dnz_Chr_Id
11784 FROM Okc_K_lines_B
11785 WHERE Id = Cx_SrvLine_Id;
11786
11787 Lx_Inp_Rec CONSTANT Inp_rec_getcont02 := P_Inp_Rec;
11788
11789 Lx_Ent_Contracts Get_ConTop_Tbl;
11790 Lx_Contracts GT_Contract_Ref;
11791 Lx_Contracts_Temp GT_Contract_Ref;
11792 Lx_Contracts_Temp1 GT_Contract_Ref; --Bug# 4690940
11793 Lx_Contracts_Temp2 GT_Contract_Ref; --Bug# 4690940
11794
11795 Lx_Contracts_Out GT_Contract_Ref;
11796 Lv_SrvLine_Flag VARCHAR2(1);
11797
11798 Ln_Organization_Id NUMBER;
11799 Ln_Org_Id NUMBER;
11800 Ln_Chr_Id NUMBER;
11801
11802 Li_TableIdx BINARY_INTEGER;
11803
11804 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
11805
11806 Lx_Result Gx_Boolean;
11807 Lx_Return_Status Gx_Ret_Sts;
11808
11809 BEGIN
11810
11811 Lx_Result := G_TRUE;
11812 Lx_Return_Status := G_RET_STS_SUCCESS;
11813 Lv_SrvLine_Flag := 'F';
11814
11815 -- Bug# 4735542
11816 -- Ln_Organization_Id := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
11817
11818 -- Modified for 12.0 MOAC project (JVARGHES)
11819 -- Ln_Org_Id := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
11820 --
11821 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
11822
11823 IF Lx_Inp_Rec.Calc_RespTime_Flag = 'Y' THEN
11824
11825 Validate_Required_NumValue
11826 (P_Num_Value => Lx_Inp_Rec.Business_Process_Id
11827 ,P_Set_ExcepionStack => G_TRUE
11828 ,P_ExcepionMsg => 'Business Process'
11829 ,X_Result => Lx_Result
11830 ,X_Return_Status => Lx_Return_Status);
11831
11832 IF Lx_Result <> G_TRUE THEN
11833 RAISE L_EXCEP_UNEXPECTED_ERR;
11834 END IF;
11835
11836 Validate_Required_NumValue
11837 (P_Num_Value => Lx_Inp_Rec.Severity_Id
11838 ,P_Set_ExcepionStack => G_TRUE
11839 ,P_ExcepionMsg => 'Severity'
11840 ,X_Result => Lx_Result
11841 ,X_Return_Status => Lx_Return_Status);
11842
11843 IF Lx_Result <> G_TRUE THEN
11844 RAISE L_EXCEP_UNEXPECTED_ERR;
11845 END IF;
11846
11847 Validate_Required_NumValue
11848 (P_Num_Value => Lx_Inp_Rec.Time_Zone_Id
11849 ,P_Set_ExcepionStack => G_TRUE
11850 ,P_ExcepionMsg => 'Time Zone'
11851 ,X_Result => Lx_Result
11852 ,X_Return_Status => Lx_Return_Status);
11853
11854 IF Lx_Result <> G_TRUE THEN
11855 RAISE L_EXCEP_UNEXPECTED_ERR;
11856 END IF;
11857
11858 END IF;
11859
11860 IF Lx_Inp_Rec.Service_Line_Id IS NOT NULL THEN
11861
11862 OPEN Lx_SrvLine(Lx_Inp_Rec.Service_Line_Id);
11863 FETCH Lx_SrvLine INTO Ln_Chr_Id;
11864 CLOSE Lx_SrvLine;
11865
11866 Li_TableIdx := NVL(Lx_Contracts.LAST,0) + 1;
11867 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Ln_Chr_Id;
11868 Lx_Contracts(Li_TableIdx).Rx_Cle_Id := Lx_Inp_Rec.Service_Line_Id;
11869
11870 Lv_SrvLine_Flag := 'T';
11871
11872 ELSIF Lx_Inp_Rec.Contract_Number IS NOT NULL THEN
11873
11874 Get_Contracts_Id
11875 (P_Contract_Num => Lx_Inp_Rec.Contract_Number
11876 ,P_Contract_Num_Modifier => Lx_Inp_Rec.Contract_Number_Modifier
11877 ,X_Contracts => Lx_Contracts
11878 ,X_Result => Lx_Result
11879 ,X_Return_Status => Lx_Return_Status);
11880
11881 IF Lx_Result <> G_TRUE THEN
11882 RAISE L_EXCEP_UNEXPECTED_ERR;
11883 END IF;
11884
11885 ELSIF Lx_Inp_Rec.Product_Id IS NOT NULL THEN
11886
11887 Get_CovProd_Contracts
11888 (P_CovProd_Obj_Id => Lx_Inp_Rec.Product_Id
11889 ,P_Organization_Id => Ln_Organization_Id
11890 ,P_Org_Id => Ln_Org_Id
11891 ,X_CovProd_Contracts => Lx_Contracts
11892 ,X_Result => Lx_Result
11893 ,X_Return_Status => Lx_Return_Status);
11894
11895 IF Lx_Result <> G_TRUE THEN
11896 RAISE L_EXCEP_UNEXPECTED_ERR;
11897 END IF;
11898
11899 ELSE
11900
11901 IF Lx_Inp_Rec.Item_Id IS NOT NULL THEN
11902
11903 Get_CovItem_Contracts
11904 (P_CovItem_Obj_Id => Lx_Inp_Rec.Item_Id
11905 ,P_Organization_Id => Ln_Organization_Id
11906 ,P_Party_Id => Lx_Inp_Rec.Party_Id
11907 ,X_CovItem_Contracts => Lx_Contracts
11908 ,X_Result => Lx_Result
11909 ,X_Return_Status => Lx_Return_Status);
11910
11911 IF Lx_Result <> G_TRUE THEN
11912 RAISE L_EXCEP_UNEXPECTED_ERR;
11913 END IF;
11914
11915 END IF;
11916
11917 IF Lx_Inp_Rec.System_Id IS NOT NULL THEN
11918
11919 Get_CovSys_Contracts
11920 (P_CovSys_Obj_Id => Lx_Inp_Rec.System_Id
11921 ,P_Org_Id => Ln_Org_Id
11922 ,X_CovSys_Contracts => Lx_Contracts_Temp
11923 ,X_Result => Lx_Result
11924 ,X_Return_Status => Lx_Return_Status);
11925
11926 IF Lx_Result <> G_TRUE THEN
11927 RAISE L_EXCEP_UNEXPECTED_ERR;
11928 END IF;
11929
11930 --
11931 --
11932
11933 -- ELSIF Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL THEN --Modified for fix of bug# 4690940.
11934 ELSIF (Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL)
11935 OR (Lx_Inp_Rec.Site_Id IS NOT NULL) THEN
11936
11937 set_account_party_id := 'T';
11938
11939 IF Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL THEN
11940
11941 Get_CovCust_Contracts
11942 (P_CovCust_Obj_Id => Lx_Inp_Rec.Cust_Acct_Id
11943 ,X_CovCust_Contracts => Lx_Contracts_Temp1 --Modified for fix of bug# 4690940.
11944 ,X_Result => Lx_Result
11945 ,X_Return_Status => Lx_Return_Status);
11946
11947 IF Lx_Result <> G_TRUE THEN
11948 RAISE L_EXCEP_UNEXPECTED_ERR;
11949 END IF;
11950
11951 END IF;
11952
11953 -- ELSIF Lx_Inp_Rec.Site_Id IS NOT NULL THEN
11954
11955 IF Lx_Inp_Rec.Site_Id IS NOT NULL THEN
11956
11957 Get_CovSite_Contracts
11958 (P_CovSite_Obj_Id => Lx_Inp_Rec.Site_Id
11959 ,P_Org_Id => Ln_Org_Id
11960 ,X_CovSite_Contracts => Lx_Contracts_Temp2 --Modified for fix of bug# 4690940.
11961 ,X_Result => Lx_Result
11962 ,X_Return_Status => Lx_Return_Status);
11963
11964 IF Lx_Result <> G_TRUE THEN
11965 RAISE L_EXCEP_UNEXPECTED_ERR;
11966 END IF;
11967
11968 END IF;
11969
11970 covd_account_party_id := NULL; -- #4690940
11971 set_account_party_id := 'F';
11972
11973 -- Append account and site rows #4690940
11974 Append_Contract_PlSql_Table
11975 (P_Input_Tab => Lx_Contracts_Temp1
11976 ,P_Append_Tab => Lx_Contracts_Temp2
11977 ,X_Output_Tab => Lx_Contracts_Temp
11978 ,X_Result => Lx_Result
11979 ,X_Return_Status => Lx_Return_Status);
11980
11981
11982 --
11983 --
11984 ELSIF Lx_Inp_Rec.Party_Id IS NOT NULL THEN
11985
11986 Get_CovParty_Contracts
11987 (P_CovParty_Obj_Id => Lx_Inp_Rec.Party_Id
11988 ,X_CovParty_Contracts => Lx_Contracts_Temp
11989 ,X_Result => Lx_Result
11990 ,X_Return_Status => Lx_Return_Status);
11991
11992 IF Lx_Result <> G_TRUE THEN
11993 RAISE L_EXCEP_UNEXPECTED_ERR;
11994 END IF;
11995
11996 END IF;
11997
11998 END IF;
11999
12000 Append_Contract_PlSql_Table
12001 (P_Input_Tab => Lx_Contracts_Temp
12002 ,P_Append_Tab => Lx_Contracts
12003 ,X_Output_Tab => Lx_Contracts_Out
12004 ,X_Result => Lx_Result
12005 ,X_Return_Status => Lx_Return_Status);
12006
12007 IF Lx_Result <> G_TRUE THEN
12008 RAISE L_EXCEP_UNEXPECTED_ERR;
12009 END IF;
12010
12011 Get_Contracts_02_Format
12012 (P_Contracts => Lx_Contracts_Out
12013 ,P_BusiProc_Id => Lx_Inp_Rec.Business_Process_Id
12014 ,P_Severity_Id => Lx_Inp_Rec.Severity_Id
12015 ,P_Request_TZone_Id => Lx_Inp_Rec.Time_Zone_Id
12016 ,P_Dates_In_Input_TZ => Lx_Inp_Rec.Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
12017 ,P_Incident_Date => Lx_Inp_Rec.Incident_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
12018 ,P_Request_Date => Lx_Inp_Rec.Request_Date
12019 ,P_Calc_RespTime_YN => Lx_Inp_Rec.Calc_RespTime_Flag
12020 ,P_Validate_Eff => Lx_Inp_Rec.Validate_Eff_Flag
12021 ,P_Validate_Flag => Lx_Inp_Rec.Validate_Flag
12022 ,P_SrvLine_Flag => Lv_SrvLine_Flag
12023 ,P_Sort_Key => Lx_Inp_Rec.Sort_Key
12024 ,X_Contracts_02 => Lx_Ent_Contracts
12025 ,X_Result => Lx_Result
12026 ,X_Return_Status => Lx_Return_Status);
12027
12028 X_Ent_Contracts := Lx_Ent_Contracts;
12029 X_Return_Status := Lx_Return_Status;
12030
12031 EXCEPTION
12032
12033 WHEN L_EXCEP_UNEXPECTED_ERR THEN
12034
12035 --X_Result := Lx_Result;
12036 X_Return_Status := Lx_Return_Status;
12037
12038 WHEN OTHERS THEN
12039
12040 OKC_API.SET_MESSAGE
12041 (P_App_Name => G_APP_NAME_OKC
12042 ,P_Msg_Name => G_UNEXPECTED_ERROR
12043 ,P_Token1 => G_SQLCODE_TOKEN
12044 ,P_Token1_Value => SQLCODE
12045 ,P_Token2 => G_SQLERRM_TOKEN
12046 ,P_Token2_Value => SQLERRM);
12047
12048 OKC_API.SET_MESSAGE
12049 (P_App_Name => G_APP_NAME_OKC
12050 ,P_Msg_Name => G_DEBUG_TOKEN
12051 ,P_Token1 => G_PACKAGE_TOKEN
12052 ,P_Token1_Value => G_PKG_NAME
12053 ,P_Token2 => G_PROGRAM_TOKEN
12054 ,P_Token2_Value => 'Get_Contracts_02');
12055
12056 --X_Result := G_FALSE;
12057 X_Return_Status := G_RET_STS_UNEXP_ERROR;
12058
12059 END Get_Contracts_02;
12060
12061 -----------------------------------------------------------------------------------------------------------------------*
12062
12063 PROCEDURE Get_Contracts
12064 (P_Api_Version IN NUMBER
12065 ,P_Init_Msg_List IN VARCHAR2
12066 ,P_Inp_Rec IN Get_ContIn_Rec
12067 ,X_Return_Status OUT NOCOPY VARCHAR2
12068 ,X_Msg_Count OUT NOCOPY NUMBER
12069 ,X_Msg_Data OUT NOCOPY VARCHAR2
12070 ,X_Ent_Contracts OUT NOCOPY Get_ConTop_Tbl)
12071 IS
12072
12073 Lx_Inp_Rec Get_ContIn_Rec;
12074 Lx_ContInp_Rec Inp_rec_getCont02;
12075
12076 BEGIN
12077
12078 Lx_Inp_Rec := P_Inp_Rec;
12079
12080 -- Bug# 4735542
12081 -- okc_context.set_okc_org_context;
12082
12083 Lx_ContInp_Rec.Contract_Number := Lx_Inp_Rec.Contract_Number;
12084 Lx_ContInp_Rec.Contract_Number_Modifier := Lx_Inp_Rec.contract_number_modifier ;
12085 Lx_ContInp_Rec.Service_Line_Id := Lx_Inp_Rec.Service_Line_Id;
12086 Lx_ContInp_Rec.Party_Id := Lx_Inp_Rec.Party_Id;
12087 Lx_ContInp_Rec.Site_Id := Lx_Inp_Rec.Site_Id;
12088 Lx_ContInp_Rec.Cust_Acct_Id := Lx_Inp_Rec.Cust_Acct_Id;
12089 Lx_ContInp_Rec.System_Id := Lx_Inp_Rec.System_Id;
12090 Lx_ContInp_Rec.Item_Id := Lx_Inp_Rec.Item_Id;
12091 Lx_ContInp_Rec.Product_Id := Lx_Inp_Rec.Product_Id;
12092
12093 -- Added for 12.0 ENT-TZ project (JVARGHES)
12094 Lx_ContInp_Rec.INCIDENT_DATE := P_Inp_Rec.INCIDENT_DATE;
12095 --
12096
12097 Lx_ContInp_Rec.Request_Date := Lx_Inp_Rec.Request_Date;
12098 Lx_ContInp_Rec.Business_Process_Id := Lx_Inp_Rec.Business_Process_Id;
12099 Lx_ContInp_Rec.Severity_Id := Lx_Inp_Rec.Severity_Id;
12100 Lx_ContInp_Rec.Time_Zone_Id := Lx_Inp_Rec.Time_Zone_Id;
12101
12102 -- Added for 12.0 ENT-TZ project (JVARGHES)
12103 Lx_ContInp_Rec. Dates_In_Input_TZ := P_Inp_Rec. Dates_In_Input_TZ;
12104 --
12105
12106 Lx_ContInp_Rec.Calc_RespTime_Flag := Lx_Inp_Rec.Calc_RespTime_Flag;
12107 Lx_ContInp_Rec.Validate_Flag := Lx_Inp_Rec.Validate_Flag;
12108 Lx_ContInp_Rec.Validate_Eff_Flag := 'T';
12109 Lx_ContInp_Rec.Sort_Key := NVL(Lx_Inp_Rec.Sort_Key,G_RESOLUTION_TIME);
12110
12111 IF Lx_ContInp_Rec.Request_Date IS NULL THEN
12112 Lx_ContInp_Rec.Request_Date := SYSDATE;
12113 END IF;
12114
12115 Get_Contracts_02
12116 (P_API_Version => P_Api_Version
12117 ,P_Init_Msg_List => P_Init_Msg_List
12118 ,P_Inp_Rec => Lx_ContInp_Rec
12119 ,X_Return_Status => X_Return_Status
12120 ,X_Msg_Count => X_Msg_Count
12121 ,X_Msg_Data => X_Msg_Data
12122 ,X_Ent_Contracts => X_Ent_Contracts);
12123
12124 EXCEPTION
12125
12126 WHEN OTHERS THEN
12127
12128 OKC_API.SET_MESSAGE
12129 (P_App_Name => G_APP_NAME_OKC
12130 ,P_Msg_Name => G_UNEXPECTED_ERROR
12131 ,P_Token1 => G_SQLCODE_TOKEN
12132 ,P_Token1_Value => SQLCODE
12133 ,P_Token2 => G_SQLERRM_TOKEN
12134 ,P_Token2_Value => SQLERRM);
12135
12136 OKC_API.SET_MESSAGE
12137 (P_App_Name => G_APP_NAME_OKC
12138 ,P_Msg_Name => G_DEBUG_TOKEN
12139 ,P_Token1 => G_PACKAGE_TOKEN
12140 ,P_Token1_Value => G_PKG_NAME
12141 ,P_Token2 => G_PROGRAM_TOKEN
12142 ,P_Token2_Value => 'Get_Contracts-Get_ConTop_Tbl');
12143
12144 --X_Result := G_FALSE;
12145 X_Return_Status := G_RET_STS_UNEXP_ERROR;
12146
12147 END Get_Contracts;
12148
12149 -----------------------------------------------------------------------------------------------------------------------*
12150
12151 PROCEDURE Get_Contracts
12152 (P_Api_Version IN NUMBER
12153 ,P_Init_Msg_List IN VARCHAR2
12154 ,P_Inp_Rec IN Input_Rec_IB
12155 ,X_Return_Status OUT NOCOPY VARCHAR2
12156 ,X_Msg_Count OUT NOCOPY NUMBER
12157 ,X_Msg_Data OUT NOCOPY VARCHAR2
12158 ,X_Ent_Contracts OUT NOCOPY Output_Tbl_IB)
12159 IS
12160
12161 Lx_Inp_Rec Input_Rec_IB;
12162 Lx_ContInp_Rec Inp_rec_getCont02;
12163 Lx_Contracts Get_ConTop_Tbl;
12164 Lx_Ent_Contracts Output_Tbl_IB;
12165
12166 Li_TableIdx1 BINARY_INTEGER;
12167 Li_TableIdx2 BINARY_INTEGER;
12168
12169 BEGIN
12170
12171 Lx_Inp_Rec := P_Inp_Rec;
12172
12173 -- Bug# 4735542
12174 -- okc_context.set_okc_org_context;
12175
12176 Lx_ContInp_Rec.Contract_Number := Lx_Inp_Rec.Contract_Number;
12177 Lx_ContInp_Rec.Contract_Number_Modifier := Lx_Inp_Rec.Contract_Number_Modifier;
12178 Lx_ContInp_Rec.Service_Line_Id := Lx_Inp_Rec.Service_Line_Id;
12179 Lx_ContInp_Rec.Party_Id := Lx_Inp_Rec.Party_Id;
12180 Lx_ContInp_Rec.Site_Id := Lx_Inp_Rec.Site_Id;
12181 Lx_ContInp_Rec.Cust_Acct_Id := Lx_Inp_Rec.Cust_Acct_Id;
12182 Lx_ContInp_Rec.System_Id := Lx_Inp_Rec.System_Id;
12183 Lx_ContInp_Rec.Item_Id := Lx_Inp_Rec.Item_Id;
12184 Lx_ContInp_Rec.Product_Id := Lx_Inp_Rec.Product_Id;
12185 Lx_ContInp_Rec.Request_Date := SYSDATE;
12186 Lx_ContInp_Rec.Business_Process_Id := Lx_Inp_Rec.Business_Process_Id;
12187 Lx_ContInp_Rec.Severity_Id := Lx_Inp_Rec.Severity_Id;
12188 Lx_ContInp_Rec.Time_Zone_Id := Lx_Inp_Rec.Time_Zone_Id;
12189 Lx_ContInp_Rec.Calc_RespTime_Flag := Lx_Inp_Rec.Calc_RespTime_Flag;
12190 Lx_ContInp_Rec.Validate_Flag := Lx_Inp_Rec.Validate_Flag;
12191 Lx_ContInp_Rec.Validate_Eff_Flag := 'F';
12192 Lx_ContInp_Rec.Sort_Key := G_NO_SORT_KEY;
12193
12194 Get_Contracts_02
12195 (P_API_Version => P_Api_Version
12196 ,P_Init_Msg_List => P_Init_Msg_List
12197 ,P_Inp_Rec => Lx_ContInp_Rec
12198 ,X_Return_Status => X_Return_Status
12199 ,X_Msg_Count => X_Msg_Count
12200 ,X_Msg_Data => X_Msg_Data
12201 ,X_Ent_Contracts => Lx_Contracts);
12202
12203 Li_TableIdx1 := Lx_Contracts.FIRST;
12204 Li_TableIdx2 := 0;
12205
12206 WHILE Li_TableIdx1 IS NOT NULL LOOP
12207
12208 Li_TableIdx2 := Li_TableIdx2 + 1;
12209
12210 Lx_Ent_Contracts(Li_TableIdx2).Contract_Id := Lx_Contracts(Li_TableIdx1).Contract_Id;
12211 Lx_Ent_Contracts(Li_TableIdx2).Contract_Number := Lx_Contracts(Li_TableIdx1).Contract_Number;
12212 Lx_Ent_Contracts(Li_TableIdx2).Contract_Number_Modifier := Lx_Contracts(Li_TableIdx1).Contract_Number_Modifier;
12213 Lx_Ent_Contracts(Li_TableIdx2).Sts_code := Lx_Contracts(Li_TableIdx1).Sts_code;
12214 Lx_Ent_Contracts(Li_TableIdx2).Service_Line_Id := Lx_Contracts(Li_TableIdx1).Service_Line_Id;
12215 Lx_Ent_Contracts(Li_TableIdx2).Service_Name := Lx_Contracts(Li_TableIdx1).Service_Name;
12216 Lx_Ent_Contracts(Li_TableIdx2).Service_Description := Lx_Contracts(Li_TableIdx1).Service_Description;
12217 Lx_Ent_Contracts(Li_TableIdx2).Service_Start_Date := Lx_Contracts(Li_TableIdx1).Service_Start_Date;
12218 Lx_Ent_Contracts(Li_TableIdx2).Service_End_Date := Lx_Contracts(Li_TableIdx1).Service_End_Date;
12219 Lx_Ent_Contracts(Li_TableIdx2).Coverage_Term_Line_Id := Lx_Contracts(Li_TableIdx1).Coverage_Term_Line_Id;
12220 Lx_Ent_Contracts(Li_TableIdx2).Coverage_Term_Name := Lx_Contracts(Li_TableIdx1).Coverage_Term_Name;
12221
12222 Lx_Ent_Contracts(Li_TableIdx2).Coverage_Type_Code := Lx_Contracts(Li_TableIdx1).Coverage_Type_Code;
12223 Lx_Ent_Contracts(Li_TableIdx2).Coverage_Type_Imp_level := Lx_Contracts(Li_TableIdx1).Coverage_Type_Imp_level;
12224
12225 Lx_Ent_Contracts(Li_TableIdx2).Coverage_Term_Description := Lx_Contracts(Li_TableIdx1).Coverage_Term_Description;
12226 Lx_Ent_Contracts(Li_TableIdx2).Warranty_Flag := Lx_Contracts(Li_TableIdx1).Warranty_Flag;
12227 Lx_Ent_Contracts(Li_TableIdx2).Eligible_For_Entitlement := Lx_Contracts(Li_TableIdx1).Eligible_For_Entitlement;
12228 Lx_Ent_Contracts(Li_TableIdx2).Exp_Reaction_Time := Lx_Contracts(Li_TableIdx1).Exp_Reaction_Time;
12229 Lx_Ent_Contracts(Li_TableIdx2).Exp_Resolution_Time := Lx_Contracts(Li_TableIdx1).Exp_Resolution_Time;
12230 Lx_Ent_Contracts(Li_TableIdx2).Status_Code := Lx_Contracts(Li_TableIdx1).Status_Code;
12231 Lx_Ent_Contracts(Li_TableIdx2).Status_Text := Lx_Contracts(Li_TableIdx1).Status_Text;
12232 Lx_Ent_Contracts(Li_TableIdx2).date_terminated := Lx_Contracts(Li_TableIdx1).date_terminated;
12233
12234 -- Added for 12.0 ENT-TZ project (JVARGHES)
12235 Lx_Ent_Contracts(Li_TableIdx2).CovLvl_Line_Id := Lx_Contracts(Li_TableIdx1).CovLvl_Line_Id;
12236 --
12237
12238 Li_TableIdx1 := Lx_Contracts.NEXT(Li_TableIdx1);
12239
12240 END LOOP;
12241
12242 X_Ent_Contracts := Lx_Ent_Contracts;
12243
12244 EXCEPTION
12245
12246 WHEN OTHERS THEN
12247
12248 OKC_API.SET_MESSAGE
12249 (P_App_Name => G_APP_NAME_OKC
12250 ,P_Msg_Name => G_UNEXPECTED_ERROR
12251 ,P_Token1 => G_SQLCODE_TOKEN
12252 ,P_Token1_Value => SQLCODE
12253 ,P_Token2 => G_SQLERRM_TOKEN
12254 ,P_Token2_Value => SQLERRM);
12255
12256 OKC_API.SET_MESSAGE
12257 (P_App_Name => G_APP_NAME_OKC
12258 ,P_Msg_Name => G_DEBUG_TOKEN
12259 ,P_Token1 => G_PACKAGE_TOKEN
12260 ,P_Token1_Value => G_PKG_NAME
12261 ,P_Token2 => G_PROGRAM_TOKEN
12262 ,P_Token2_Value => 'Get_Contracts-Output_Tbl_IB');
12263
12264 --X_Result := G_FALSE;
12265 X_Return_Status := G_RET_STS_UNEXP_ERROR;
12266
12267 END Get_Contracts;
12268
12269 -----------------------------------------------------------------------------------------------------------------------*
12270
12271 PROCEDURE Sort_Asc_GetContracts_03
12272 (P_Input_Tab IN Output_Tbl_EntFrm
12273 ,X_Output_Tab out nocopy Output_Tbl_EntFrm
12274 ,X_Result out nocopy Gx_Boolean
12275 ,X_Return_Status out nocopy Gx_Ret_Sts)
12276 IS
12277
12278 Lx_Sort_Tab Output_Tbl_EntFrm;
12279 Lx_Result Gx_Boolean;
12280 Lx_Return_Status Gx_Ret_Sts;
12281
12282 Li_TableIdx_Out BINARY_INTEGER;
12283 Li_TableIdx_In BINARY_INTEGER;
12284
12285 Lx_Temp_ContItem output_rec_entfrm;
12286
12287 Lv_Compare_Val1 VARCHAR2(120);
12288 Lv_Compare_Val2 VARCHAR2(120);
12289
12290
12291 BEGIN
12292
12293 Lx_Sort_Tab := P_Input_Tab;
12294 Lx_Result := G_TRUE;
12295 Lx_Return_Status := G_RET_STS_SUCCESS;
12296
12297 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
12298
12299 WHILE Li_TableIdx_Out IS NOT NULL LOOP
12300
12301 Li_TableIdx_In := Li_TableIdx_Out;
12302
12303 WHILE Li_TableIdx_In IS NOT NULL LOOP
12304
12305 Lv_Compare_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Contract_Number;
12306 Lv_Compare_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Contract_Number;
12307
12308 IF Lv_Compare_Val1 > Lv_Compare_Val2 THEN
12309
12310 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
12311 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
12312 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
12313
12314 END IF;
12315
12316 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
12317
12318 END LOOP;
12319
12320 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
12321
12322 END LOOP;
12323
12324 X_Output_Tab := Lx_Sort_Tab;
12325 X_Result := Lx_Result;
12326 X_Return_Status := Lx_Return_Status;
12327
12328 EXCEPTION
12329
12330 WHEN OTHERS THEN
12331
12332 OKC_API.SET_MESSAGE
12333 (P_App_Name => G_APP_NAME_OKC
12334 ,P_Msg_Name => G_UNEXPECTED_ERROR
12335 ,P_Token1 => G_SQLCODE_TOKEN
12336 ,P_Token1_Value => SQLCODE
12337 ,P_Token2 => G_SQLERRM_TOKEN
12338 ,P_Token2_Value => SQLERRM);
12339
12340 OKC_API.SET_MESSAGE
12341 (P_App_Name => G_APP_NAME_OKC
12342 ,P_Msg_Name => G_DEBUG_TOKEN
12343 ,P_Token1 => G_PACKAGE_TOKEN
12344 ,P_Token1_Value => G_PKG_NAME
12345 ,P_Token2 => G_PROGRAM_TOKEN
12346 ,P_Token2_Value => 'Sort_Asc_GetContracts_03');
12347
12348 X_Result := G_FALSE;
12349 X_Return_Status := G_RET_STS_UNEXP_ERROR;
12350
12351 END Sort_Asc_GetContracts_03;
12352
12353 -----------------------------------------------------------------------------------------------------------------------*
12354
12355 PROCEDURE Get_Contracts_03_Format
12356 (P_Contracts IN GT_Contract_Ref
12357 ,P_Con_Number IN VARCHAR2
12358 ,P_Con_Number_Modifier IN VARCHAR2
12359 ,P_Con_Customer_Id IN NUMBER
12360 ,P_Service_Item_Id IN NUMBER
12361 ,P_Organization_Id IN NUMBER
12362 ,P_Request_Date IN DATE
12363 ,P_Validate_Eff IN VARCHAR2
12364 ,X_Contracts_03 out nocopy Output_Tbl_EntFrm
12365 ,X_Result out nocopy Gx_Boolean
12366 ,X_Return_Status out nocopy Gx_Ret_Sts)
12367 IS
12368
12369 CURSOR Lx_Csr_Contracts(Cx_Chr_Id IN Gx_OKS_Id, Cv_Con_Number IN VARCHAR2, Cv_Con_Number_Modifier IN VARCHAR2,
12370 Cv_Con_Cusomer_Id IN VARCHAR2, Cv_Service_Item_Id IN VARCHAR2, Cn_Organization_Id IN NUMBER) IS
12371 SELECT HB.Id Contract_Id
12372 ,HB.Contract_Number Contract_Number
12373 ,HB.Contract_Number_Modifier Contract_Number_Modifier
12374 ,HT.Cognomen Contract_Known_As
12375 ,HT.Short_Description Contract_Short_Description
12376 ,HB.Sts_Code Contract_Status_Code
12377 ,HB.Start_Date Contract_Start_Date
12378 ,Get_End_Date_Time(HB.End_Date) Contract_End_Date
12379 ,Get_End_Date_Time(HB.Date_Terminated) Contract_Terminated_Date
12380 FROM Okc_K_Headers_TL HT
12381 ,OKC_K_HEADERS_ALL_B HB -- OKC_K_HEADERS_B HB -- Modified for 12.0 MOAC project (JVARGHES)
12382 WHERE HB.Id = NVL(Cx_Chr_Id,HB.Id)
12383 AND HB.Contract_Number = NVL(Cv_Con_Number,HB.Contract_Number)
12384 AND (Cv_Con_Number_Modifier IS NULL OR HB.Contract_Number_Modifier = Cv_Con_Number_Modifier)
12385 AND (Cv_Con_Cusomer_Id IS NULL
12386 OR
12387 HB.Id IN ( SELECT PR.Chr_Id
12388 FROM Okx_Parties_V PX
12389 ,Okc_K_Party_Roles_B PR
12390 WHERE PR.Object1_Id1 = NVL(Cv_Con_Cusomer_Id,PR.Object1_Id1) --PR.Chr_Id = HB.Id
12391 AND PR.Rle_Code = 'CUSTOMER'
12392 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
12393 AND PX.Id1 = TO_NUMBER(PR.Object1_Id1)
12394 AND PX.Id2 = PR.Object1_Id2 ))
12395 AND (Cv_Service_Item_Id IS NULL
12396 OR
12397 HB.Id IN ( SELECT SV.Chr_Id
12398 FROM Okx_System_Items_V XI
12399 ,Okc_K_Items IT
12400 ,Okc_K_Lines_B SV
12401 WHERE SV.Lse_ID IN (1,14,19) --SV.Chr_Id = HB.Id
12402 AND IT.Cle_Id = SV.Id
12403 AND IT.Object1_Id1 = NVL(Cv_Service_Item_Id,IT.Object1_Id1)
12404 AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
12405 AND XI.Id1 = TO_NUMBER(IT.Object1_Id1)
12406 AND XI.Id2 = IT.Object1_Id2
12407 AND XI.Service_Item_Flag = 'Y'
12408 -- AND XI.Organization_Id = Cn_Organization_Id --Bug# 4735542.
12409 ))
12410 AND HB.Scs_Code IN ('SERVICE','WARRANTY')
12411 AND HB.Id > -1
12412 AND HB.Template_YN <> 'Y'
12413 AND HB.Id = HT.Id
12414 AND HT.Language = USERENV('LANG');
12415
12416 Lx_Contracts GT_Contract_Ref;
12417
12418 Lv_Con_Number CONSTANT VARCHAR2(120) := P_Con_Number;
12419 Lv_Con_Number_Modifier CONSTANT VARCHAR2(120) := P_Con_Number_Modifier;
12420 Ln_Con_Customer_Id NUMBER;
12421 Ln_Service_Item_Id CONSTANT NUMBER := P_Service_Item_Id;
12422 Ln_Organization_Id CONSTANT NUMBER := P_Organization_Id;
12423 Ld_Request_Date CONSTANT DATE := P_Request_Date;
12424 Lv_Validate_Eff VARCHAR2(1);
12425 Ln_Party_Id NUMBER;
12426
12427 Lx_Contracts_03 Output_Tbl_EntFrm;
12428 Lx_Contracts_03_Out Output_Tbl_EntFrm;
12429
12430 Ld_Con_Eff_End_Date DATE;
12431 Lv_Effective_Falg VARCHAR2(1);
12432
12433 Lx_Chr_Id Gx_OKS_Id;
12434
12435 Lx_Result Gx_Boolean;
12436 Lx_Return_Status Gx_Ret_Sts;
12437 Li_TableIdx BINARY_INTEGER;
12438 Li_OutTab_Idx BINARY_INTEGER;
12439
12440 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
12441
12442 BEGIN
12443
12444 Lx_Contracts := P_Contracts;
12445 Ln_Con_Customer_Id := P_Con_Customer_Id;
12446 Lv_Validate_Eff := P_Validate_Eff;
12447
12448 Lx_Result := G_TRUE;
12449 Lx_Return_Status := G_RET_STS_SUCCESS;
12450 Li_OutTab_Idx := 0;
12451
12452 --
12453 IF Lv_Validate_Eff = 'Y' THEN
12454 Lv_Validate_Eff := 'T';
12455 END IF;
12456 --
12457
12458 Li_TableIdx := Lx_Contracts.FIRST;
12459
12460 WHILE Li_TableIdx IS NOT NULL LOOP
12461
12462 Lx_Chr_Id := Lx_Contracts(Li_TableIdx).Rx_Chr_Id;
12463 Ln_Party_Id := Lx_Contracts(Li_TableIdx).Rx_Pty_Id;
12464 Ln_Con_Customer_Id := NVL(Ln_Con_Customer_Id,Ln_Party_Id);
12465
12466 FOR Idx IN Lx_Csr_Contracts(Lx_Chr_Id,Lv_Con_Number,Lv_Con_Number_Modifier,
12467 TO_CHAR(Ln_Con_Customer_Id),TO_CHAR(Ln_Service_Item_Id),Ln_Organization_Id) LOOP
12468
12469 IF Lv_Validate_Eff = 'T' THEN
12470
12471 IF Idx.Contract_Terminated_Date < Idx.Contract_End_Date THEN
12472 Ld_Con_Eff_End_Date := Idx.Contract_Terminated_Date;
12473 ELSE
12474 Ld_Con_Eff_End_Date := Idx.Contract_End_Date;
12475
12476 -- grace period changes starts
12477
12478 IF G_GRACE_PROFILE_SET = 'Y' AND Idx.Contract_Terminated_Date IS NULL THEN
12479
12480 G_CONTRACT_END_DATE := Ld_Con_Eff_End_Date;
12481 G_CONTRACT_ID := Idx.Contract_Id;
12482
12483 Ld_Con_Eff_End_Date := Get_Final_End_Date(Idx.Contract_Id,Ld_Con_Eff_End_Date);
12484
12485 END IF;
12486
12487 -- grace period changes ends
12488 END IF;
12489
12490 IF (Ld_Request_Date BETWEEN Idx.Contract_Start_Date AND Ld_Con_Eff_End_Date) THEN
12491 Lv_Effective_Falg := 'T';
12492 ELSE
12493 Lv_Effective_Falg := 'F';
12494 END IF;
12495
12496 END IF;
12497
12498 IF (Lv_Validate_Eff = 'T' AND Lv_Effective_Falg = 'T' ) OR (Lv_Validate_Eff <> 'T') THEN
12499
12500 Li_OutTab_Idx := Li_OutTab_Idx + 1;
12501
12502 Lx_Contracts_03(Li_OutTab_Idx).Contract_Id := Idx.Contract_Id;
12503 Lx_Contracts_03(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
12504 Lx_Contracts_03(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
12505 Lx_Contracts_03(Li_OutTab_Idx).Contract_Known_As := Idx.Contract_Known_As;
12506 Lx_Contracts_03(Li_OutTab_Idx).Contract_Short_Description := Idx.Contract_Short_Description;
12507 Lx_Contracts_03(Li_OutTab_Idx).Contract_Status_Code := Idx.Contract_Status_Code;
12508 Lx_Contracts_03(Li_OutTab_Idx).Contract_Start_Date := Idx.Contract_Start_Date;
12509 Lx_Contracts_03(Li_OutTab_Idx).Contract_End_Date := Idx.Contract_End_Date;
12510 Lx_Contracts_03(Li_OutTab_Idx).Contract_Terminated_Date := Idx.Contract_Terminated_Date;
12511
12512 END IF;
12513
12514 END LOOP;
12515
12516 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
12517
12518 END LOOP;
12519
12520 Sort_Asc_GetContracts_03
12521 (P_Input_Tab => Lx_Contracts_03
12522 ,X_Output_Tab => Lx_Contracts_03_Out
12523 ,X_Result => Lx_Result
12524 ,X_Return_Status => Lx_Return_Status);
12525
12526 IF Lx_Result <> G_TRUE THEN
12527 RAISE L_EXCEP_UNEXPECTED_ERR;
12528 END IF;
12529
12530 X_Contracts_03 := Lx_Contracts_03_Out;
12531 X_Result := Lx_Result;
12532 X_Return_Status := Lx_Return_Status;
12533
12534 EXCEPTION
12535
12536 WHEN L_EXCEP_UNEXPECTED_ERR THEN
12537
12538 X_Result := Lx_Result;
12539 X_Return_Status := Lx_Return_Status;
12540
12541 WHEN OTHERS THEN
12542
12543 OKC_API.SET_MESSAGE
12544 (P_App_Name => G_APP_NAME_OKC
12545 ,P_Msg_Name => G_UNEXPECTED_ERROR
12546 ,P_Token1 => G_SQLCODE_TOKEN
12547 ,P_Token1_Value => SQLCODE
12548 ,P_Token2 => G_SQLERRM_TOKEN
12549 ,P_Token2_Value => SQLERRM);
12550
12551 OKC_API.SET_MESSAGE
12552 (P_App_Name => G_APP_NAME_OKC
12553 ,P_Msg_Name => G_DEBUG_TOKEN
12554 ,P_Token1 => G_PACKAGE_TOKEN
12555 ,P_Token1_Value => G_PKG_NAME
12556 ,P_Token2 => G_PROGRAM_TOKEN
12557 ,P_Token2_Value => 'Get_Contracts_03_Format');
12558
12559 X_Result := G_FALSE;
12560 X_Return_Status := G_RET_STS_UNEXP_ERROR;
12561
12562 END Get_Contracts_03_Format;
12563
12564 -----------------------------------------------------------------------------------------------------------------------*
12565
12566 PROCEDURE Sort_Asc_ContRef_PlSql_Table
12567 (P_Input_Tab IN GT_Contract_Ref
12568 ,X_Output_Tab out nocopy GT_Contract_Ref
12569 ,X_Result out nocopy Gx_Boolean
12570 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
12571
12572 Lx_Sort_Tab GT_Contract_Ref;
12573 Lx_Result Gx_Boolean;
12574 Lx_Return_Status Gx_Ret_Sts;
12575
12576 Li_TableIdx_Out BINARY_INTEGER;
12577 Li_TableIdx_In BINARY_INTEGER;
12578
12579 Lx_Temp_ContRef GR_Contract_Ref;
12580
12581 Lv_Compare_Val1 NUMBER;
12582 Lv_Compare_Val2 NUMBER;
12583
12584 BEGIN
12585
12586 Lx_Sort_Tab := P_Input_Tab;
12587 Lx_Result := G_TRUE;
12588 Lx_Return_Status := G_RET_STS_SUCCESS;
12589
12590 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
12591
12592 WHILE Li_TableIdx_Out IS NOT NULL LOOP
12593
12594 Li_TableIdx_In := Li_TableIdx_Out;
12595
12596 WHILE Li_TableIdx_In IS NOT NULL LOOP
12597
12598 Lv_Compare_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Rx_Chr_Id;
12599 Lv_Compare_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Rx_Chr_Id;
12600
12601 IF Lv_Compare_Val1 > Lv_Compare_Val2 THEN
12602
12603 Lx_Temp_ContRef := Lx_Sort_Tab(Li_TableIdx_Out);
12604 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
12605 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContRef;
12606
12607 END IF;
12608
12609 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
12610
12611 END LOOP;
12612
12613 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
12614
12615 END LOOP;
12616
12617 X_Output_Tab := Lx_Sort_Tab;
12618 X_Result := Lx_Result;
12619 X_Return_Status := Lx_Return_Status;
12620
12621 EXCEPTION
12622
12623 WHEN OTHERS THEN
12624
12625 OKC_API.SET_MESSAGE
12626 (P_App_Name => G_APP_NAME_OKC
12627 ,P_Msg_Name => G_UNEXPECTED_ERROR
12628 ,P_Token1 => G_SQLCODE_TOKEN
12629 ,P_Token1_Value => SQLCODE
12630 ,P_Token2 => G_SQLERRM_TOKEN
12631 ,P_Token2_Value => SQLERRM);
12632
12633 OKC_API.SET_MESSAGE
12634 (P_App_Name => G_APP_NAME_OKC
12635 ,P_Msg_Name => G_DEBUG_TOKEN
12636 ,P_Token1 => G_PACKAGE_TOKEN
12637 ,P_Token1_Value => G_PKG_NAME
12638 ,P_Token2 => G_PROGRAM_TOKEN
12639 ,P_Token2_Value => 'Sort_Asc_ContRef_PlSql_Table');
12640
12641 X_Result := G_FALSE;
12642 X_Return_Status := G_RET_STS_UNEXP_ERROR;
12643
12644 END Sort_Asc_ContRef_PlSql_Table;
12645
12646 -----------------------------------------------------------------------------------------------------------------------*
12647
12648 PROCEDURE Dedup_ContItem_PlSql_Table
12649 (P_Input_Tab IN GT_Contract_Ref
12650 ,X_Output_Tab out nocopy GT_Contract_Ref
12651 ,X_Result out nocopy Gx_Boolean
12652 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
12653
12654 Lx_DeDup_Tab GT_Contract_Ref;
12655 Lx_Result Gx_Boolean;
12656 Lx_Return_Status Gx_Ret_Sts;
12657
12658 Lx_Temp_ContRef GR_Contract_Ref;
12659
12660 Li_TableIdx BINARY_INTEGER;
12661 Lv_Compare_Val1 VARCHAR2(300);
12662 Lv_Compare_Val2 VARCHAR2(300);
12663
12664 BEGIN
12665
12666 Lx_DeDup_Tab := P_Input_Tab;
12667 Lx_Result := G_TRUE;
12668 Lx_Return_Status := G_RET_STS_SUCCESS;
12669
12670 Li_TableIdx := Lx_DeDup_Tab.FIRST;
12671
12672 WHILE Li_TableIdx IS NOT NULL LOOP
12673
12674 Lv_Compare_Val1 := Lx_DeDup_Tab(Li_TableIdx).Rx_Chr_Id;
12675 Lv_Compare_Val2 := Lx_Temp_ContRef.Rx_Chr_Id;
12676
12677 IF Lv_Compare_Val1 = Lv_Compare_Val2 THEN
12678 Lx_DeDup_Tab.DELETE(Li_TableIdx);
12679 ELSE
12680 Lx_Temp_ContRef := Lx_DeDup_Tab(Li_TableIdx);
12681 END IF;
12682
12683 Li_TableIdx := Lx_DeDup_Tab.NEXT(Li_TableIdx);
12684
12685 END LOOP;
12686
12687 X_Output_Tab := Lx_DeDup_Tab;
12688 X_Result := Lx_Result;
12689 X_Return_Status := Lx_Return_Status;
12690
12691 EXCEPTION
12692
12693 WHEN OTHERS THEN
12694
12695 OKC_API.SET_MESSAGE
12696 (P_App_Name => G_APP_NAME_OKC
12697 ,P_Msg_Name => G_UNEXPECTED_ERROR
12698 ,P_Token1 => G_SQLCODE_TOKEN
12699 ,P_Token1_Value => SQLCODE
12700 ,P_Token2 => G_SQLERRM_TOKEN
12701 ,P_Token2_Value => SQLERRM);
12702
12703 OKC_API.SET_MESSAGE
12704 (P_App_Name => G_APP_NAME_OKC
12705 ,P_Msg_Name => G_DEBUG_TOKEN
12706 ,P_Token1 => G_PACKAGE_TOKEN
12707 ,P_Token1_Value => G_PKG_NAME
12708 ,P_Token2 => G_PROGRAM_TOKEN
12709 ,P_Token2_Value => 'Dedup_ContItem_PlSql_Table');
12710
12711 X_Result := G_FALSE;
12712 X_Return_Status := G_RET_STS_UNEXP_ERROR;
12713
12714 END Dedup_ContItem_PlSql_Table;
12715
12716 -----------------------------------------------------------------------------------------------------------------------*
12717
12718 PROCEDURE Get_Contracts_03
12719 (P_API_Version IN NUMBER
12720 ,P_Init_Msg_List IN VARCHAR2
12721 ,P_Inp_Rec IN Input_Rec_EntFrm
12722 ,X_Return_Status OUT NOCOPY VARCHAR2
12723 ,X_Msg_Count OUT NOCOPY NUMBER
12724 ,X_Msg_Data OUT NOCOPY VARCHAR2
12725 ,X_Ent_Contracts OUT NOCOPY Output_Tbl_EntFrm)
12726 IS
12727
12728 Lx_Inp_Rec CONSTANT Input_Rec_EntFrm := P_Inp_Rec;
12729 Lx_Return_Status Gx_Ret_Sts;
12730 Lx_Result Gx_Boolean;
12731
12732 Lx_Ent_Contracts Output_Tbl_EntFrm;
12733 Lx_Contracts GT_Contract_Ref;
12734 Lx_Contracts_Out GT_Contract_Ref;
12735
12736 Ln_Organization_Id NUMBER;
12737 Ln_Org_Id NUMBER;
12738 Lv_CovLvl_Flag VARCHAR2(1);
12739
12740 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
12741
12742 BEGIN
12743
12744 Lx_Return_Status := G_RET_STS_SUCCESS;
12745 Lx_Result := G_TRUE;
12746
12747 Lv_CovLvl_Flag := 'F';
12748
12749 -- Bug# 4735542
12750 -- Ln_Organization_Id := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
12751
12752 -- Modified for 12.0 MOAC project (JVARGHES)
12753 -- Ln_Org_Id := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
12754 --
12755 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
12756
12757 IF Lx_Inp_Rec.CovLvl_Product_Id IS NOT NULL THEN
12758
12759 Get_CovProd_Contracts
12760 (P_CovProd_Obj_Id => Lx_Inp_Rec.CovLvl_Product_Id
12761 ,P_Organization_Id => Ln_Organization_Id
12762 ,P_Org_Id => Ln_Org_Id
12763 ,X_CovProd_Contracts => Lx_Contracts
12764 ,X_Result => Lx_Result
12765 ,X_Return_Status => Lx_Return_Status);
12766
12767 IF Lx_Result <> G_TRUE THEN
12768 RAISE L_EXCEP_UNEXPECTED_ERR;
12769 END IF;
12770
12771 Lv_CovLvl_Flag := 'T';
12772
12773 ELSIF Lx_Inp_Rec.CovLvl_Item_Id IS NOT NULL THEN
12774
12775 Get_CovItem_Contracts
12776 (P_CovItem_Obj_Id => Lx_Inp_Rec.CovLvl_Item_Id
12777 ,P_Organization_Id => Ln_Organization_Id
12778 ,P_Party_Id => Lx_Inp_Rec.CovLvl_Party_Id
12779 ,X_CovItem_Contracts => Lx_Contracts
12780 ,X_Result => Lx_Result
12781 ,X_Return_Status => Lx_Return_Status);
12782
12783 IF Lx_Result <> G_TRUE THEN
12784 RAISE L_EXCEP_UNEXPECTED_ERR;
12785 END IF;
12786
12787 Lv_CovLvl_Flag := 'T';
12788
12789 ELSIF Lx_Inp_Rec.CovLvl_System_Id IS NOT NULL THEN
12790
12791 Get_CovSys_Contracts
12792 (P_CovSys_Obj_Id => Lx_Inp_Rec.CovLvl_System_Id
12793 ,P_Org_Id => Ln_Org_Id
12794 ,X_CovSys_Contracts => Lx_Contracts
12795 ,X_Result => Lx_Result
12796 ,X_Return_Status => Lx_Return_Status);
12797
12798 IF Lx_Result <> G_TRUE THEN
12799 RAISE L_EXCEP_UNEXPECTED_ERR;
12800 END IF;
12801
12802 Lv_CovLvl_Flag := 'T';
12803
12804 ELSIF Lx_Inp_Rec.CovLvl_Cust_Acct_Id IS NOT NULL THEN
12805
12806 Get_CovCust_Contracts
12807 (P_CovCust_Obj_Id => Lx_Inp_Rec.CovLvl_Cust_Acct_Id
12808 ,X_CovCust_Contracts => Lx_Contracts
12809 ,X_Result => Lx_Result
12810 ,X_Return_Status => Lx_Return_Status);
12811
12812 IF Lx_Result <> G_TRUE THEN
12813 RAISE L_EXCEP_UNEXPECTED_ERR;
12814 END IF;
12815
12816 Lv_CovLvl_Flag := 'T';
12817
12818 ELSIF Lx_Inp_Rec.CovLvl_Site_Id IS NOT NULL THEN
12819
12820 Get_CovSite_Contracts
12821 (P_CovSite_Obj_Id => Lx_Inp_Rec.CovLvl_Site_Id
12822 ,P_Org_Id => Ln_Org_Id
12823 ,X_CovSite_Contracts => Lx_Contracts
12824 ,X_Result => Lx_Result
12825 ,X_Return_Status => Lx_Return_Status);
12826
12827 IF Lx_Result <> G_TRUE THEN
12828 RAISE L_EXCEP_UNEXPECTED_ERR;
12829 END IF;
12830
12831 Lv_CovLvl_Flag := 'T';
12832
12833 ELSIF Lx_Inp_Rec.CovLvl_Party_Id IS NOT NULL THEN
12834
12835 Get_CovParty_Contracts
12836 (P_CovParty_Obj_Id => Lx_Inp_Rec.CovLvl_Party_Id
12837 ,X_CovParty_Contracts => Lx_Contracts
12838 ,X_Result => Lx_Result
12839 ,X_Return_Status => Lx_Return_Status);
12840
12841 IF Lx_Result <> G_TRUE THEN
12842 RAISE L_EXCEP_UNEXPECTED_ERR;
12843 END IF;
12844
12845 Lv_CovLvl_Flag := 'T';
12846
12847 END IF;
12848
12849 IF Lx_Contracts.Count > 0 THEN
12850
12851 Sort_Asc_ContRef_PlSql_Table
12852 (P_Input_Tab => Lx_Contracts
12853 ,X_Output_Tab => Lx_Contracts_Out
12854 ,X_Result => Lx_Result
12855 ,X_Return_Status => Lx_Return_Status);
12856
12857 IF Lx_Result <> G_TRUE THEN
12858 RAISE L_EXCEP_UNEXPECTED_ERR;
12859 END IF;
12860
12861 Lx_Contracts := Lx_Contracts_Out;
12862
12863 Dedup_ContItem_PlSql_Table
12864 (P_Input_Tab => Lx_Contracts
12865 ,X_Output_Tab => Lx_Contracts_Out
12866 ,X_Result => Lx_Result
12867 ,X_Return_Status => Lx_Return_Status);
12868
12869 IF Lx_Result <> G_TRUE THEN
12870 RAISE L_EXCEP_UNEXPECTED_ERR;
12871 END IF;
12872
12873 ELSE
12874
12875 IF Lv_CovLvl_Flag <> 'T' THEN
12876 Lx_Contracts_Out(1).Rx_Cle_Id := NULL; --G_MISS_NUM;
12877 END IF;
12878
12879 END IF;
12880
12881 Get_Contracts_03_Format
12882 (P_Contracts => Lx_Contracts_Out
12883 ,P_Con_Number => Lx_Inp_Rec.Contract_Number
12884 ,P_Con_Number_Modifier => Lx_Inp_Rec.Contract_Number_Modifier
12885 ,P_Con_Customer_Id => Lx_Inp_Rec.Contract_Customer_Id
12886 ,P_Service_Item_Id => Lx_Inp_Rec.Contract_Service_Item_Id
12887 ,P_Organization_Id => Ln_Organization_Id
12888 ,P_Request_Date => Lx_Inp_Rec.Request_Date
12889 ,P_Validate_Eff => Lx_Inp_Rec.Validate_Effectivity
12890 ,X_Contracts_03 => Lx_Ent_Contracts
12891 ,X_Result => Lx_Result
12892 ,X_Return_Status => Lx_Return_Status);
12893
12894 IF Lx_Result <> G_TRUE THEN
12895 RAISE L_EXCEP_UNEXPECTED_ERR;
12896 END IF;
12897
12898 X_Ent_Contracts := Lx_Ent_Contracts;
12899 X_Return_Status := Lx_Return_Status;
12900
12901 EXCEPTION
12902
12903 WHEN L_EXCEP_UNEXPECTED_ERR THEN
12904
12905 --X_Result := Lx_Result;
12906 X_Return_Status := Lx_Return_Status;
12907
12908 WHEN OTHERS THEN
12909
12910 OKC_API.SET_MESSAGE
12911 (P_App_Name => G_APP_NAME_OKC
12912 ,P_Msg_Name => G_UNEXPECTED_ERROR
12913 ,P_Token1 => G_SQLCODE_TOKEN
12914 ,P_Token1_Value => SQLCODE
12915 ,P_Token2 => G_SQLERRM_TOKEN
12916 ,P_Token2_Value => SQLERRM);
12917
12918 OKC_API.SET_MESSAGE
12919 (P_App_Name => G_APP_NAME_OKC
12920 ,P_Msg_Name => G_DEBUG_TOKEN
12921 ,P_Token1 => G_PACKAGE_TOKEN
12922 ,P_Token1_Value => G_PKG_NAME
12923 ,P_Token2 => G_PROGRAM_TOKEN
12924 ,P_Token2_Value => 'Get_Contracts_03');
12925
12926 --X_Result := G_FALSE;
12927 X_Return_Status := G_RET_STS_UNEXP_ERROR;
12928
12929 END Get_Contracts_03;
12930
12931 -----------------------------------------------------------------------------------------------------------------------*
12932
12933 PROCEDURE Get_Contracts
12934 (P_API_Version IN NUMBER
12935 ,P_Init_Msg_List IN VARCHAR2
12936 ,P_Inp_Rec IN Input_Rec_EntFrm
12937 ,X_Return_Status out nocopy VARCHAR2
12938 ,X_Msg_Count out nocopy NUMBER
12939 ,X_Msg_Data out nocopy VARCHAR2
12940 ,X_Ent_Contracts out nocopy Output_Tbl_EntFrm)
12941 IS
12942
12943 Lx_Inp_Rec Input_Rec_EntFrm;
12944
12945 BEGIN
12946
12947 Lx_Inp_Rec := P_Inp_Rec;
12948
12949 -- Bug# 4735542
12950 -- okc_context.set_okc_org_context;
12951
12952 IF Lx_Inp_Rec.Request_Date IS NULL THEN
12953 Lx_Inp_Rec.Request_Date := SYSDATE;
12954 END IF;
12955
12956 Get_Contracts_03
12957 (P_API_Version => P_API_Version
12958 ,P_Init_Msg_List => P_Init_Msg_List
12959 ,P_Inp_Rec => Lx_Inp_Rec
12960 ,X_Return_Status => X_Return_Status
12961 ,X_Msg_Count => X_Msg_Count
12962 ,X_Msg_Data => X_Msg_Data
12963 ,X_Ent_Contracts => X_Ent_Contracts);
12964
12965 EXCEPTION
12966
12967 WHEN OTHERS THEN
12968
12969 OKC_API.SET_MESSAGE
12970 (P_App_Name => G_APP_NAME_OKC
12971 ,P_Msg_Name => G_UNEXPECTED_ERROR
12972 ,P_Token1 => G_SQLCODE_TOKEN
12973 ,P_Token1_Value => SQLCODE
12974 ,P_Token2 => G_SQLERRM_TOKEN
12975 ,P_Token2_Value => SQLERRM);
12976
12977 OKC_API.SET_MESSAGE
12978 (P_App_Name => G_APP_NAME_OKC
12979 ,P_Msg_Name => G_DEBUG_TOKEN
12980 ,P_Token1 => G_PACKAGE_TOKEN
12981 ,P_Token1_Value => G_PKG_NAME
12982 ,P_Token2 => G_PROGRAM_TOKEN
12983 ,P_Token2_Value => 'Get_Contracts-Output_Tbl_EntFrm');
12984
12985 --X_Result := G_FALSE;
12986 X_Return_Status := G_RET_STS_UNEXP_ERROR;
12987
12988 END Get_Contracts;
12989
12990 -----------------------------------------------------------------------------------------------------------------------*
12991 /*
12992 As per ER# 2165039 this procedure (Get_HighImp_CP_Contract)
12993 when called by IB (Installed Base) will return a record based on
12994 following conditions:
12995
12996 1.Only the Covered level of 'Covered Product' would be considered.
12997 3.Always return only one row, based on the highest importance level (1 being
12998 the highest)- loosing the visibility to other contract lines covering the same
12999 instance.
13000 4.Returns only one row- system picked, even if there are multiple rows selected
13001 for the criteria.
13002 */
13003
13004 PROCEDURE Get_HighImp_CP_Contract
13005 (P_API_Version IN NUMBER
13006 ,P_Init_Msg_List IN VARCHAR2
13007 ,P_Customer_product_Id IN NUMBER
13008 ,X_Return_Status OUT NOCOPY VARCHAR2
13009 ,X_Msg_Count out nocopy NUMBER
13010 ,X_Msg_Data out nocopy VARCHAR2
13011 ,X_Importance_Lvl OUT NOCOPY OKS_ENTITLEMENTS_PUB.High_Imp_level_K_rec)
13012
13013 IS
13014
13015 CURSOR Cur_ImplvlExists is
13016 select count(*) cnt
13017 from oks_cov_types_v
13018 where importance_level is NOT NULL;
13019 --
13020 --
13021 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
13022 --
13023 --
13024 -- CURSOR Cur_HighImpCont is
13025 -- select okh.contract_number,
13026 -- okh.contract_number_modifier,
13027 -- okh.start_date,
13028 -- okh.end_date,
13029 -- cvt.meaning,
13030 -- cvt.importance_level,
13031 -- okh.estimated_amount,
13032 -- okh.sts_code
13033 -- from OKC_K_HEADERS_ALL_B okh,
13034 -- okc_k_lines_b cle,
13035 -- okc_k_lines_b cle_cov,
13036 -- oks_k_lines_b okscle_cov,
13037 -- okc_k_lines_b cle_cvl,
13038 -- okc_k_items cim,
13039 -- okc_statuses_v sts,
13040 -- oks_cov_types_v cvt
13041 -- where cle.chr_id = okh.id
13042 -- and okh.sts_code = sts.code
13043 -- and sts.ste_code = 'ACTIVE'
13044 -- and cle_cov.cle_id = cle.id
13045 -- and cle_cov.lse_id in (2,15,20)
13046 -- and okscle_cov.cle_id = cle_cov.id
13047 -- and okscle_cov.coverage_type = cvt.code
13048 -- and cle_cvl.cle_id = cle.id
13049 -- and cle_cvl.lse_id in (9,18,25)
13050 -- and cle_cvl.id = cim.cle_id
13051 -- and cim.object1_id1 = P_Customer_product_Id
13052 -- order by cvt.importance_level;
13053 --
13054 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
13055 --
13056 --
13057 CURSOR Cur_HighImpCont IS
13058 select okh.contract_number,
13059 okh.contract_number_modifier,
13060 okh.start_date,
13061 okh.end_date,
13062 cvt.meaning,
13063 cvt.importance_level,
13064 okh.estimated_amount,
13065 okh.sts_code
13066 from OKC_K_HEADERS_ALL_B okh, -- OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
13067 okc_k_lines_b cle,
13068 oks_k_lines_b cle_ksl,
13069 oks_k_lines_b okscle_cov,
13070 okc_k_lines_b cle_cvl,
13071 okc_k_items cim,
13072 okc_statuses_v sts,
13073 oks_cov_types_v cvt
13074 where cle.chr_id = okh.id
13075 and okh.sts_code = sts.code
13076 and sts.ste_code = 'ACTIVE'
13077 and cle_ksl.cle_id = cle.id
13078 and okscle_cov.cle_id = cle_ksl.coverage_id
13079 and okscle_cov.coverage_type = cvt.code
13080 and cle_cvl.cle_id = cle.id
13081 and cle_cvl.lse_id in (9,18,25)
13082 and cle_cvl.id = cim.cle_id
13083 and cim.object1_id1 = P_Customer_product_Id
13084 order by cvt.importance_level;
13085 --
13086 --
13087 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
13088 --
13089 --
13090 --CURSOR Cur_CpCont is
13091 -- select okh.contract_number,
13092 -- okh.contract_number_modifier,
13093 -- okh.start_date,
13094 -- okh.end_date,
13095 -- covtyp.meaning,
13096 -- covtyp.importance_level importance_level,
13097 -- okh.estimated_amount,
13098 -- okh.sts_code
13099 -- from OKC_K_HEADERS_ALL_B okh,
13100 -- okc_k_lines_b cle,
13101 -- okc_k_lines_b cle_cov,
13102 -- oks_k_lines_b okscle_cov,
13103 -- okc_k_lines_b cle_cvl,
13104 -- okc_k_items cim,
13105 -- okc_statuses_v sts,
13106 -- oks_cov_types_v covtyp
13107 -- where cle.chr_id = okh.id
13108 -- and okh.sts_code = sts.code
13109 -- and sts.ste_code = 'ACTIVE'
13110 -- and cle_cov.cle_id = cle.id
13111 -- and cle_cov.lse_id in (2,15,20)
13112 -- and okscle_cov.cle_id = cle_cov.id
13113 -- and okscle_cov.coverage_type = covtyp.code
13114 -- and cle_cvl.cle_id = cle.id
13115 -- and cle_cvl.lse_id in (9,18,25)
13116 -- and cle_cvl.id = cim.cle_id
13117 -- and cim.object1_id1 = P_Customer_product_Id
13118 -- and rownum =1;
13119 --
13120 --
13121 --
13122 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
13123 --
13124 --
13125 CURSOR Cur_CpCont is
13126 select okh.contract_number,
13127 okh.contract_number_modifier,
13128 okh.start_date,
13129 okh.end_date,
13130 covtyp.meaning,
13131 covtyp.importance_level importance_level,
13132 okh.estimated_amount,
13133 okh.sts_code
13134 from OKC_K_HEADERS_ALL_B okh, -- OKC_K_HEADERS_B okh -- Modified for 12.0 MOAC project (JVARGHES)
13135 okc_k_lines_b cle,
13136 oks_k_lines_b cle_ksl,
13137 oks_k_lines_b okscle_cov,
13138 okc_k_lines_b cle_cvl,
13139 okc_k_items cim,
13140 okc_statuses_v sts,
13141 oks_cov_types_v covtyp
13142 where cle.chr_id = okh.id
13143 and okh.sts_code = sts.code
13144 and sts.ste_code = 'ACTIVE'
13145 and cle_ksl.cle_id = cle.id
13146 and okscle_cov.cle_id = cle_ksl.coverage_id
13147 and okscle_cov.coverage_type = covtyp.code
13148 and cle_cvl.cle_id = cle.id
13149 and cle_cvl.lse_id in (9,18,25)
13150 and cle_cvl.id = cim.cle_id
13151 and cim.object1_id1 = P_Customer_product_Id
13152 and rownum =1;
13153 --
13154 --
13155
13156 Lx_Result Gx_Boolean;
13157
13158 BEGIN
13159
13160
13161 FOR Implvl_rec in Cur_ImplvlExists LOOP
13162
13163 If Implvl_rec.cnt >0 then
13164
13165 FOR HighImpCont_rec in Cur_HighImpCont LOOP
13166
13167 X_Importance_Lvl.contract_number := HighImpCont_rec.contract_number;
13168 X_Importance_Lvl.contract_number_modifier := HighImpCont_rec.contract_number_modifier;
13169 X_Importance_Lvl.contract_status_code := HighImpCont_rec.sts_code;
13170 X_Importance_Lvl.contract_start_date := HighImpCont_rec.start_date;
13171 X_Importance_Lvl.contract_end_date := HighImpCont_rec.end_date;
13172 X_Importance_Lvl.contract_amount := HighImpCont_rec.estimated_amount;
13173 X_Importance_Lvl.coverage_type := HighImpCont_rec.meaning;
13174 X_Importance_Lvl.coverage_imp_level := HighImpCont_rec.importance_level;
13175 exit;
13176 END LOOP;
13177
13178 else
13179
13180 FOR CpCont_rec in Cur_CpCont LOOP
13181
13182 X_Importance_Lvl.contract_number := CpCont_rec.contract_number;
13183 X_Importance_Lvl.contract_number_modifier := CpCont_rec.contract_number_modifier;
13184 X_Importance_Lvl.contract_status_code := CpCont_rec.sts_code;
13185 X_Importance_Lvl.contract_start_date := CpCont_rec.start_date;
13186 X_Importance_Lvl.contract_end_date := CpCont_rec.end_date;
13187 X_Importance_Lvl.contract_amount := CpCont_rec.estimated_amount;
13188 X_Importance_Lvl.coverage_type := CpCont_rec.meaning;
13189 X_Importance_Lvl.coverage_imp_level := CpCont_rec.importance_level;
13190
13191 END LOOP;
13192
13193 end if;
13194
13195 END LOOP;
13196
13197
13198 X_Return_Status := G_RET_STS_SUCCESS;
13199
13200 EXCEPTION
13201
13202 WHEN OTHERS THEN
13203
13204 OKC_API.SET_MESSAGE
13205 (P_App_Name => G_APP_NAME_OKC
13206 ,P_Msg_Name => G_UNEXPECTED_ERROR
13207 ,P_Token1 => G_SQLCODE_TOKEN
13208 ,P_Token1_Value => SQLCODE
13209 ,P_Token2 => G_SQLERRM_TOKEN
13210 ,P_Token2_Value => SQLERRM);
13211
13212 OKC_API.SET_MESSAGE
13213 (P_App_Name => G_APP_NAME_OKC
13214 ,P_Msg_Name => G_DEBUG_TOKEN
13215 ,P_Token1 => G_PACKAGE_TOKEN
13216 ,P_Token1_Value => G_PKG_NAME
13217 ,P_Token2 => G_PROGRAM_TOKEN
13218 ,P_Token2_Value => 'Get_HighImp_CP_Contract');
13219
13220 --X_Result := G_FALSE;
13221 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13222
13223 END Get_HighImp_CP_Contract;
13224
13225 FUNCTION Get_Final_End_Date(
13226 P_Contract_Id IN number,
13227 P_Enddate IN DATE) Return Date is
13228
13229 CURSOR Lx_Csr_HDR_Grace(Cx_HDR_Id IN Gx_OKS_Id) IS
13230 SELECT Grace_Duration Duration
13231 ,Grace_Period TimeUnit
13232 FROM Oks_K_Headers_B OKH
13233 WHERE OKH.chr_Id = Cx_HDR_Id;
13234
13235 L_Date DATE;
13236
13237 BEGIN
13238
13239 L_Date := P_Enddate;
13240
13241 IF G_GRACE_PROFILE_SET IS NULL THEN -- Bug 5003767
13242 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
13243 END IF;
13244
13245 IF G_GRACE_PROFILE_SET = 'Y' then
13246 FOR Idx in Lx_Csr_HDR_Grace(P_Contract_Id) LOOP
13247
13248 if Idx.TimeUnit is not null and
13249 Idx.duration is not null then
13250
13251 L_Date := OKC_TIME_UTIL_PVT.get_enddate(
13252 P_Enddate,
13253 Idx.TimeUnit,
13254 Idx.Duration) + 1;
13255
13256
13257 end if;
13258 END LOOP;
13259 END IF;
13260
13261 RETURN L_Date;
13262
13263 END Get_Final_End_Date;
13264
13265
13266 -----------------------------------------------------------------------------------------------------------------------*
13267
13268
13269 PROCEDURE OKS_VALIDATE_SYSTEM
13270 (P_API_Version IN NUMBER
13271 ,P_Init_Msg_List IN VARCHAR2
13272 ,P_System_Id IN NUMBER
13273 ,P_Request_Date IN DATE
13274 ,P_Update_Only_Check IN VARCHAR2
13275 ,X_Return_Status OUT NOCOPY VARCHAR2
13276 ,X_Msg_Count out nocopy NUMBER
13277 ,X_Msg_Data out nocopy VARCHAR2
13278 ,X_System_Valid OUT NOCOPY VARCHAR2) IS
13279
13280 CURSOR Lx_Csr_SysProd(Cx_System_id IN VARCHAR2) IS
13281 SELECT CSI.instance_id CP_Id
13282 ,CSI.System_Id System_Id
13283 FROM CSI_ITEM_INSTANCES CSI
13284 WHERE CSI.System_id = (Cx_System_Id);
13285
13286
13287 CURSOR Check_update_only(p_coverage_id IN Gx_OKS_Id) IS
13288 SELECT 'Y'
13289 FROM okc_k_lines_v bp,
13290 okc_k_items cim,
13291 cs_business_processes cbp
13292 WHERE bp.cle_id = p_coverage_id
13293 AND cim.cle_id = bp.id
13294 AND cbp.business_process_id = cim.object1_id1
13295 AND cim.jtot_object1_code = 'OKX_BUSIPROC'
13296 AND (cbp.service_request_flag = 'Y'
13297 OR cbp.depot_repair_flag = 'Y'
13298 OR cbp.field_service_flag = 'Y')
13299 AND ROWNUM = 1;
13300
13301 Lx_system_valid Gx_Boolean;
13302
13303 l_system_id CONSTANT NUMBER := p_system_id;
13304 l_request_date CONSTANT DATE := nvl(p_request_date,sysdate);
13305 l_update_only_check CONSTANT VARCHAR2(1) := nvl(p_update_only_check,'N');
13306 l_out_validate_csi VARCHAR2(1);
13307
13308 Li_TableIdx BINARY_INTEGER;
13309 Lx_System_CovLevels GT_ContItem_Ref;
13310 Lx_Prod_CovLevels GT_ContItem_Ref;
13311 Lx_CovSys_Contracts GT_Contract_Ref;
13312 Lx_CustProd_Contracts GT_Contract_Ref;
13313 Lx_Result Gx_Boolean;
13314 Lx_Return_Status Gx_Ret_Sts;
13315 Lx_Ent_Contracts Get_ConTop_Tbl ;
13316 Lx_ExcepionMsg Gx_ExceptionMsg;
13317 L_EXCEP_NO_DATA_FOUND EXCEPTION;
13318 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
13319 L_VALIDATE_CSI EXCEPTION;
13320 i NUMBER;
13321
13322 X_out_paramter_csi VARCHAR2(1);
13323
13324 BEGIN
13325
13326 Lx_system_valid := G_FALSE;
13327 Lx_Result := G_TRUE;
13328 Lx_Return_Status := G_RET_STS_SUCCESS;
13329
13330 l_out_validate_csi := 'N';
13331
13332 Li_TableIdx := 1;
13333
13334 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id1 := l_system_id;
13335
13336 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
13337 Lx_System_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_COVSYST';
13338
13339
13340 Get_CovLevel_Contracts
13341 (P_CovLevel_Items => Lx_System_CovLevels
13342 ,P_Party_Id => NULL
13343 ,X_CovLevel_Contracts => Lx_CovSys_Contracts
13344 ,X_Result => Lx_Result
13345 ,X_Return_Status => Lx_Return_Status);
13346
13347 IF Lx_Result <> G_TRUE THEN
13348 RAISE L_EXCEP_UNEXPECTED_ERR;
13349 END IF;
13350
13351
13352 Get_Contracts_02_Format
13353 (P_Contracts => Lx_CovSys_Contracts
13354 ,P_BusiProc_Id => NULL
13355 ,P_Severity_Id => NULL
13356 ,P_Request_TZone_Id => NULL
13357 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
13358 ,P_Incident_Date => l_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
13359 ,P_Request_Date => l_request_date
13360 ,P_Calc_RespTime_YN => 'N'
13361 ,P_Validate_Eff => 'T'
13362 ,P_Validate_Flag => 'Y'
13363 ,P_SrvLine_Flag => 'F'
13364 ,P_Sort_Key => NULL
13365 ,X_Contracts_02 => Lx_Ent_Contracts
13366 ,X_Result => Lx_Result
13367 ,X_Return_Status => Lx_Return_Status);
13368
13369 IF Lx_Result <> G_TRUE THEN
13370 RAISE L_EXCEP_UNEXPECTED_ERR;
13371 END IF;
13372
13373 IF Lx_Ent_Contracts.count > 0 THEN
13374
13375 IF l_update_only_check <> 'Y' then
13376 l_out_validate_csi := 'Y';
13377 --RETURN l_out_validate_csi;
13378 x_system_valid := l_out_validate_csi;
13379 RAISE L_VALIDATE_CSI;
13380 ELSE
13381 i := 1;
13382 LOOP
13383 FOR bp_rec IN Check_update_only(Lx_Ent_Contracts(i).coverage_term_line_id)
13384 LOOP
13385 l_out_validate_csi := 'Y';
13386 --RETURN l_out_validate_csi;
13387 x_system_valid := l_out_validate_csi;
13388 RAISE L_VALIDATE_CSI;
13389 END LOOP;
13390
13391 IF (i = Lx_Ent_Contracts.last) THEN
13392 EXIT;
13393 END IF;
13394 i := Lx_Ent_Contracts.next(i);
13395 END LOOP;
13396 END IF;
13397
13398 END IF;
13399
13400 Li_TableIdx := 0;
13401
13402 FOR Itm in Lx_Csr_SysProd(l_System_id)
13403 LOOP
13404 Li_TableIdx := Li_TableIdx + 1;
13405
13406 Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Itm.CP_Id;
13407 Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
13408 Lx_Prod_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_CUSTPROD';
13409
13410 Get_CovLevel_Contracts
13411 (P_CovLevel_Items => Lx_Prod_CovLevels
13412 ,P_Party_Id => NULL
13413 ,X_CovLevel_Contracts => Lx_CustProd_Contracts
13414 ,X_Result => Lx_Result
13415 ,X_Return_Status => Lx_Return_Status);
13416
13417
13418 IF Lx_Result <> G_TRUE THEN
13419 RAISE L_EXCEP_UNEXPECTED_ERR;
13420 END IF;
13421
13422 Get_Contracts_02_Format
13423 (P_Contracts => Lx_CustProd_Contracts
13424 ,P_BusiProc_Id => NULL
13425 ,P_Severity_Id => NULL
13426 ,P_Request_TZone_Id => NULL
13427 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
13428 ,P_Incident_Date => l_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
13429 ,P_Request_Date => l_request_date
13430 ,P_Calc_RespTime_YN => 'N'
13431 ,P_Validate_Eff => 'T'
13432 ,P_Validate_Flag => 'Y'
13433 ,P_SrvLine_Flag => 'F'
13434 ,P_Sort_Key => NULL
13435 ,X_Contracts_02 => Lx_Ent_Contracts
13436 ,X_Result => Lx_Result
13437 ,X_Return_Status => Lx_Return_Status);
13438
13439
13440 IF Lx_Result <> G_TRUE THEN
13441 RAISE L_EXCEP_UNEXPECTED_ERR;
13442 END IF;
13443
13444 IF Lx_Ent_Contracts.count > 0 THEN
13445 IF l_update_only_check <> 'Y' THEN
13446 l_out_validate_csi := 'Y';
13447 --RETURN l_out_validate_csi;
13448 x_system_valid := l_out_validate_csi;
13449 RAISE L_VALIDATE_CSI;
13450 ELSE
13451 i := 1;
13452 LOOP
13453 FOR bp_rec IN Check_update_only(Lx_Ent_Contracts(i).coverage_term_line_id)
13454 LOOP
13455 l_out_validate_csi := 'Y';
13456 --RETURN l_out_validate_csi;
13457 x_system_valid := l_out_validate_csi;
13458 RAISE L_VALIDATE_CSI;
13459 END LOOP;
13460 IF (i = Lx_Ent_Contracts.last) THEN
13461 EXIT;
13462 END IF;
13463 i := Lx_Ent_Contracts.next(i);
13464 END LOOP;
13465 END IF;
13466 END IF;
13467
13468 END LOOP;
13469
13470 --RETURN l_out_validate_csi;
13471 x_system_valid := l_out_validate_csi;
13472 RAISE L_VALIDATE_CSI;
13473
13474 EXCEPTION
13475
13476 WHEN L_VALIDATE_CSI THEN
13477 x_return_status := G_RET_STS_SUCCESS;
13478
13479 WHEN L_EXCEP_UNEXPECTED_ERR THEN
13480
13481 --RETURN l_out_validate_csi;
13482 x_system_valid := l_out_validate_csi;
13483 x_return_status := G_RET_STS_UNEXP_ERROR;
13484
13485 WHEN OTHERS THEN
13486
13487 OKC_API.SET_MESSAGE
13488 (P_App_Name => G_APP_NAME_OKC
13489 ,P_Msg_Name => G_UNEXPECTED_ERROR
13490 ,P_Token1 => G_SQLCODE_TOKEN
13491 ,P_Token1_Value => SQLCODE
13492 ,P_Token2 => G_SQLERRM_TOKEN
13493 ,P_Token2_Value => SQLERRM);
13494
13495 OKC_API.SET_MESSAGE
13496 (P_App_Name => G_APP_NAME_OKC
13497 ,P_Msg_Name => G_DEBUG_TOKEN
13498 ,P_Token1 => G_PACKAGE_TOKEN
13499 ,P_Token1_Value => G_PKG_NAME
13500 ,P_Token2 => G_PROGRAM_TOKEN
13501 ,P_Token2_Value => 'OKS_VALIDATE_SYSTEM');
13502
13503 --RETURN l_out_validate_csi;
13504 x_system_valid := l_out_validate_csi;
13505 x_return_status := G_RET_STS_UNEXP_ERROR;
13506
13507 END OKS_VALIDATE_SYSTEM;
13508
13509 PROCEDURE Get_CSI_LatestEdDtdKLines_02
13510 (P_Input_Tab IN Get_ConTop_Tbl
13511 ,X_Output_Tab out nocopy Get_ConTop_Tbl
13512 ,X_Result out nocopy Gx_Boolean
13513 ,X_Return_Status out nocopy Gx_Ret_Sts)
13514 IS
13515
13516 Lx_Sort_Tab Get_ConTop_Tbl;
13517 Lx_Sort_Tab_Out Get_ConTop_Tbl;
13518 Lx_Result Gx_Boolean;
13519 Lx_Return_Status Gx_Ret_Sts;
13520
13521 Li_TableIdx_Out BINARY_INTEGER;
13522 Li_TableIdx_In BINARY_INTEGER;
13523
13524 Lx_Temp_ContItem Get_ConTop_Rec;
13525
13526 Lv_Composit_Val1 DATE;
13527 Lv_Composit_Val1_Num NUMBER;
13528
13529 Lv_Composit_Val2 DATE;
13530 Lv_Composit_Val2_Num NUMBER;
13531
13532 i NUMBER;
13533 j NUMBER;
13534 Lx_KLine_EdDt DATE;
13535
13536 BEGIN
13537
13538 Lx_Sort_Tab := P_Input_Tab;
13539 Lx_Result := G_TRUE;
13540 Lx_Return_Status := G_RET_STS_SUCCESS;
13541
13542 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
13543
13544 -- Sorting Contract lines with latest end dates
13545
13546 WHILE Li_TableIdx_Out IS NOT NULL LOOP
13547
13548 Li_TableIdx_In := Li_TableIdx_Out;
13549
13550 WHILE Li_TableIdx_In IS NOT NULL LOOP
13551
13552 Lv_Composit_Val1 := Lx_Sort_Tab(Li_TableIdx_Out).Service_End_Date;
13553 Lv_Composit_Val1_Num := TO_NUMBER(TO_CHAR(Lv_Composit_Val1,'YYYYMMDDHH24MISS'));
13554 Lv_Composit_Val2 := Lx_Sort_Tab(Li_TableIdx_In).Service_End_Date;
13555 Lv_Composit_Val2_Num := TO_NUMBER(TO_CHAR(Lv_Composit_Val2,'YYYYMMDDHH24MISS'));
13556
13557 IF Lv_Composit_Val1_Num < Lv_Composit_Val2_Num THEN
13558
13559 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
13560 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
13561 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
13562
13563 END IF;
13564
13565 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
13566
13567 END LOOP;
13568
13569 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
13570
13571 END LOOP;
13572
13573
13574
13575 -- keeping contract lines with latest end date
13576
13577 i := Lx_Sort_Tab.First;
13578 j := 1;
13579 Lx_KLine_EdDt := Lx_Sort_Tab(i).Service_End_Date;
13580
13581 WHILE i IS NOT NULL LOOP
13582 IF Lx_KLine_EdDt <> Lx_Sort_Tab(i).Service_End_Date THEN
13583 EXIT;
13584 ELSE
13585 Lx_Sort_Tab_Out(j) := Lx_Sort_Tab(i);
13586 i := Lx_Sort_Tab.Next(i);
13587 j := j+1 ; --Lx_Sort_Tab_Out.Next(j);
13588 END IF;
13589 END LOOP;
13590
13591 X_Output_Tab := Lx_Sort_Tab_Out;
13592 X_Result := Lx_Result;
13593 X_Return_Status := Lx_Return_Status;
13594
13595 Lx_Sort_Tab.DELETE;
13596
13597 EXCEPTION
13598
13599 WHEN OTHERS THEN
13600
13601 OKC_API.SET_MESSAGE
13602 (P_App_Name => G_APP_NAME_OKC
13603 ,P_Msg_Name => G_UNEXPECTED_ERROR
13604 ,P_Token1 => G_SQLCODE_TOKEN
13605 ,P_Token1_Value => SQLCODE
13606 ,P_Token2 => G_SQLERRM_TOKEN
13607 ,P_Token2_Value => SQLERRM);
13608
13609 OKC_API.SET_MESSAGE
13610 (P_App_Name => G_APP_NAME_OKC
13611 ,P_Msg_Name => G_DEBUG_TOKEN
13612 ,P_Token1 => G_PACKAGE_TOKEN
13613 ,P_Token1_Value => G_PKG_NAME
13614 ,P_Token2 => G_PROGRAM_TOKEN
13615 ,P_Token2_Value => 'Get_CSI_LatestEdDtdKLines_02');
13616
13617 X_Result := G_FALSE;
13618 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13619
13620 END Get_CSI_LatestEdDtdKLines_02;
13621
13622 PROCEDURE Sort_CSI_KLineId_02
13623 (P_Input_Tab IN Get_ConTop_Tbl
13624 ,X_Output_Tab out nocopy Get_ConTop_Tbl
13625 ,X_Result out nocopy Gx_Boolean
13626 ,X_Return_Status out nocopy Gx_Ret_Sts)
13627 IS
13628
13629 Lx_Sort_Tab Get_ConTop_Tbl;
13630 Lx_Result Gx_Boolean;
13631 Lx_Return_Status Gx_Ret_Sts;
13632
13633 Li_TableIdx_Out BINARY_INTEGER;
13634 Li_TableIdx_In BINARY_INTEGER;
13635
13636 Lx_Temp_ContItem Get_ConTop_Rec;
13637
13638 Lv_Composit_Val1 DATE;
13639 Lv_Composit_Val1_Num NUMBER;
13640
13641 Lv_Composit_Val2 DATE;
13642 Lv_Composit_Val2_Num NUMBER;
13643
13644 BEGIN
13645
13646 Lx_Sort_Tab := P_Input_Tab;
13647 Lx_Result := G_TRUE;
13648 Lx_Return_Status := G_RET_STS_SUCCESS;
13649
13650 Li_TableIdx_Out := Lx_Sort_Tab.FIRST;
13651
13652 WHILE Li_TableIdx_Out IS NOT NULL LOOP
13653
13654 Li_TableIdx_In := Li_TableIdx_Out;
13655
13656 WHILE Li_TableIdx_In IS NOT NULL LOOP
13657
13658 Lv_Composit_Val1_Num := Lx_Sort_Tab(Li_TableIdx_Out).Service_Line_Id;
13659 Lv_Composit_Val2_Num := Lx_Sort_Tab(Li_TableIdx_In).Service_Line_Id;
13660
13661 IF Lv_Composit_Val1_Num > Lv_Composit_Val2_Num THEN
13662
13663 Lx_Temp_ContItem := Lx_Sort_Tab(Li_TableIdx_Out);
13664 Lx_Sort_Tab(Li_TableIdx_Out) := Lx_Sort_Tab(Li_TableIdx_In);
13665 Lx_Sort_Tab(Li_TableIdx_In) := Lx_Temp_ContItem;
13666
13667 END IF;
13668
13669 Li_TableIdx_In := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
13670
13671 END LOOP;
13672
13673 Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
13674
13675 END LOOP;
13676
13677 X_Output_Tab := Lx_Sort_Tab;
13678 X_Result := Lx_Result;
13679 X_Return_Status := Lx_Return_Status;
13680
13681 EXCEPTION
13682
13683 WHEN OTHERS THEN
13684
13685 OKC_API.SET_MESSAGE
13686 (P_App_Name => G_APP_NAME_OKC
13687 ,P_Msg_Name => G_UNEXPECTED_ERROR
13688 ,P_Token1 => G_SQLCODE_TOKEN
13689 ,P_Token1_Value => SQLCODE
13690 ,P_Token2 => G_SQLERRM_TOKEN
13691 ,P_Token2_Value => SQLERRM);
13692
13693 OKC_API.SET_MESSAGE
13694 (P_App_Name => G_APP_NAME_OKC
13695 ,P_Msg_Name => G_DEBUG_TOKEN
13696 ,P_Token1 => G_PACKAGE_TOKEN
13697 ,P_Token1_Value => G_PKG_NAME
13698 ,P_Token2 => G_PROGRAM_TOKEN
13699 ,P_Token2_Value => 'Sort_CSI_KLineId_02');
13700
13701 X_Result := G_FALSE;
13702 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13703
13704 END Sort_CSI_KLineId_02;
13705
13706
13707 PROCEDURE Dedup_CSICP_KLine_PlSql_Table
13708 (P_Input_Tab IN GT_Contract_Ref
13709 ,X_Output_Tab out nocopy GT_Contract_Ref
13710 ,X_Result out nocopy Gx_Boolean
13711 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
13712
13713 Lx_DeDup_Tab GT_Contract_Ref;
13714 Lx_Result Gx_Boolean;
13715 Lx_Return_Status Gx_Ret_Sts;
13716
13717 Lx_Temp_ContRef GR_Contract_Ref;
13718
13719 Li_TableIdx BINARY_INTEGER;
13720 Lv_Compare_Val1 VARCHAR2(300);
13721 Lv_Compare_Val2 VARCHAR2(300);
13722
13723 BEGIN
13724
13725 Lx_DeDup_Tab := P_Input_Tab;
13726 Lx_Result := G_TRUE;
13727 Lx_Return_Status := G_RET_STS_SUCCESS;
13728
13729 Li_TableIdx := Lx_DeDup_Tab.FIRST;
13730
13731 WHILE Li_TableIdx IS NOT NULL LOOP
13732
13733 Lv_Compare_Val1 := Lx_DeDup_Tab(Li_TableIdx).Rx_Cle_Id;
13734 Lv_Compare_Val2 := Lx_Temp_ContRef.Rx_Cle_Id;
13735
13736 IF Lv_Compare_Val1 = Lv_Compare_Val2 THEN
13737 Lx_DeDup_Tab.DELETE(Li_TableIdx);
13738 ELSE
13739 Lx_Temp_ContRef := Lx_DeDup_Tab(Li_TableIdx);
13740 END IF;
13741
13742 Li_TableIdx := Lx_DeDup_Tab.NEXT(Li_TableIdx);
13743
13744 END LOOP;
13745
13746 X_Output_Tab := Lx_DeDup_Tab;
13747 X_Result := Lx_Result;
13748 X_Return_Status := Lx_Return_Status;
13749
13750 EXCEPTION
13751
13752 WHEN OTHERS THEN
13753
13754 OKC_API.SET_MESSAGE
13755 (P_App_Name => G_APP_NAME_OKC
13756 ,P_Msg_Name => G_UNEXPECTED_ERROR
13757 ,P_Token1 => G_SQLCODE_TOKEN
13758 ,P_Token1_Value => SQLCODE
13759 ,P_Token2 => G_SQLERRM_TOKEN
13760 ,P_Token2_Value => SQLERRM);
13761
13762 OKC_API.SET_MESSAGE
13763 (P_App_Name => G_APP_NAME_OKC
13764 ,P_Msg_Name => G_DEBUG_TOKEN
13765 ,P_Token1 => G_PACKAGE_TOKEN
13766 ,P_Token1_Value => G_PKG_NAME
13767 ,P_Token2 => G_PROGRAM_TOKEN
13768 ,P_Token2_Value => 'Dedup_CSICP_KLine_PlSql_Table');
13769
13770 X_Result := G_FALSE;
13771 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13772
13773 END Dedup_CSICP_KLine_PlSql_Table;
13774
13775 -----------------------------------------------------------------------------------------------------------------------*
13776
13777 PROCEDURE Get_Sort_CSI_ImpLvl
13778 (P_Contracts IN Get_ConTop_Tbl
13779 ,X_Contracts_02 out nocopy Get_ConTop_Tbl
13780 ,X_Result out nocopy Gx_Boolean
13781 ,X_Return_Status out nocopy Gx_Ret_Sts)
13782 IS
13783
13784 Lx_Contracts Get_ConTop_Tbl;
13785 Lx_Contracts_01 Get_ConTop_Tbl;
13786 Lx_Contracts_01_Out Get_ConTop_Tbl;
13787 Lx_Contracts_02 Get_ConTop_Tbl;
13788
13789
13790 Lx_Result Gx_Boolean;
13791 Lx_Return_Status Gx_Ret_Sts;
13792
13793 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
13794 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
13795 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
13796 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
13797
13798
13799 Li_OutTab_Idx BINARY_INTEGER;
13800 i NUMBER ;
13801 j NUMBER ;
13802 Lx_Imp_Level NUMBER;
13803
13804 Ln_Msg_Count NUMBER;
13805 Lv_Msg_Data VARCHAR2(2000);
13806
13807 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
13808
13809 BEGIN
13810
13811 Lx_Contracts := P_Contracts;
13812 Lx_Result := G_TRUE;
13813 Lx_Return_Status := G_RET_STS_SUCCESS;
13814 Li_OutTab_Idx := 1;
13815
13816 Lx_Contracts_01 := Lx_Contracts;
13817
13818 -- getting importance level for all Contract lines
13819
13820 WHILE Li_OutTab_Idx IS NOT NULL LOOP
13821
13822 Get_Coverage_Type_Attribs
13823 (P_CVL_Id => Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Line_Id
13824 ,P_Set_ExcepionStack => G_FALSE
13825 ,X_Cov_Type_Code => Lx_Cov_Type_Code
13826 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
13827 ,X_Cov_Type_Description => Lx_Cov_Type_Description
13828 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
13829 ,X_Result => Lx_Result
13830 ,X_Return_Status => Lx_Return_Status);
13831
13832 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
13833 RAISE L_EXCEP_UNEXPECTED_ERR;
13834 END IF;
13835
13836 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Code := Lx_Cov_Type_Code;
13837 Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Cov_Type_Meaning;
13838 Lx_Contracts_01(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
13839
13840 Li_OutTab_Idx := Lx_Contracts_01.NEXT(Li_OutTab_Idx);
13841
13842 END LOOP;
13843
13844 -- Sorting importance level for all Contract lines
13845
13846 Sort_Asc_GetContracts_02
13847 (P_Input_Tab => Lx_Contracts_01
13848 ,P_Sort_Key => G_COVERAGE_TYPE_IMP_LEVEL --Lv_Sort_Key
13849 ,X_Output_Tab => Lx_Contracts_01_Out
13850 ,X_Result => Lx_Result
13851 ,X_Return_Status => Lx_Return_Status);
13852
13853 IF Lx_Result <> G_TRUE THEN
13854 RAISE L_EXCEP_UNEXPECTED_ERR;
13855 END IF;
13856
13857 Lx_Contracts_01.DELETE;
13858 Lx_Contracts_01 := Lx_Contracts_01_Out;
13859 Lx_Contracts_01_Out.DELETE;
13860
13861 -- Keeping all Contract lines with highest importance level
13862
13863 i := Lx_Contracts_01.First;
13864 j := 1;
13865 Lx_Imp_Level := nvl(Lx_Contracts_01(i).coverage_Type_Imp_Level,-9999);
13866
13867 WHILE i IS NOT NULL LOOP
13868
13869 IF Lx_Imp_Level <> nvl(Lx_Contracts_01(i).coverage_Type_Imp_Level,-9999) THEN
13870 EXIT;
13871 ELSE
13872 Lx_Contracts_02(j) := Lx_Contracts_01(i);
13873 i := Lx_Contracts_01.Next(i);
13874 j := j+1;
13875 END IF;
13876 END LOOP;
13877 X_Contracts_02 := Lx_Contracts_02;
13878 X_Result := Lx_Result;
13879 X_Return_Status := Lx_Return_Status;
13880
13881
13882 EXCEPTION
13883
13884 WHEN L_EXCEP_UNEXPECTED_ERR THEN
13885
13886 X_Result := Lx_Result;
13887 X_Return_Status := Lx_Return_Status;
13888
13889 WHEN OTHERS THEN
13890
13891 OKC_API.SET_MESSAGE
13892 (P_App_Name => G_APP_NAME_OKC
13893 ,P_Msg_Name => G_UNEXPECTED_ERROR
13894 ,P_Token1 => G_SQLCODE_TOKEN
13895 ,P_Token1_Value => SQLCODE
13896 ,P_Token2 => G_SQLERRM_TOKEN
13897 ,P_Token2_Value => SQLERRM);
13898
13899 OKC_API.SET_MESSAGE
13900 (P_App_Name => G_APP_NAME_OKC
13901 ,P_Msg_Name => G_DEBUG_TOKEN
13902 ,P_Token1 => G_PACKAGE_TOKEN
13903 ,P_Token1_Value => G_PKG_NAME
13904 ,P_Token2 => G_PROGRAM_TOKEN
13905 ,P_Token2_Value => 'Get_Sort_CSI_ImpLvl');
13906
13907 X_Result := G_FALSE;
13908 X_Return_Status := G_RET_STS_UNEXP_ERROR;
13909
13910 END Get_Sort_CSI_ImpLvl;
13911
13912 -----------------------------------------------------------------------------------------------------------------------*
13913
13914 PROCEDURE Get_CSI_KLine_PrefGrps
13915 (P_Contracts IN Get_ConTop_Tbl
13916 ,X_Contracts_02 out nocopy Get_ConTop_Tbl
13917 ,X_Result out nocopy Gx_Boolean
13918 ,X_Return_Status out nocopy Gx_Ret_Sts)
13919 IS
13920
13921 CURSOR Check_Preferred_Group(p_coverage_id IN Gx_OKS_Id,p_chr_id in Gx_OKS_Id) IS
13922 SELECT COUNT(*) Pref_Grp_Cnt --CON.OBJECT1_ID1
13923 FROM OKC_K_LINES_B CVL,
13924 OKC_K_LINES_B BPL,
13925 OKC_K_PARTY_ROLES_B CPL,
13926 OKC_CONTACTS CON
13927 WHERE CVL.ID = p_coverage_id
13928 AND BPL.CLE_ID = CVL.ID
13929 AND BPL.LSE_ID in (3,16,21)
13930 AND BPL.ID = CPL.CLE_ID
13931 AND CPL.ID = CON.CPL_ID
13932 and con.dnz_chr_id = p_chr_id
13933 AND CON.JTOT_OBJECT1_CODE = 'OKS_RSCGROUP';
13934
13935
13936 Lx_Contracts Get_ConTop_Tbl;
13937 Lx_Contracts_02 Get_ConTop_Tbl;
13938
13939 Lx_Result Gx_Boolean;
13940 Lx_Return_Status Gx_Ret_Sts;
13941
13942 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
13943 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
13944 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
13945 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
13946
13947
13948 Li_OutTab_Idx BINARY_INTEGER;
13949 i NUMBER;
13950 j NUMBER;
13951
13952 Ln_Msg_Count NUMBER;
13953 Lv_Msg_Data VARCHAR2(2000);
13954
13955 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
13956
13957 BEGIN
13958
13959 Lx_Contracts := P_Contracts;
13960 Lx_Result := G_TRUE;
13961 Lx_Return_Status := G_RET_STS_SUCCESS;
13962 Li_OutTab_Idx := 1;
13963
13964 i := Lx_Contracts.First;
13965 j := 1;
13966
13967 WHILE i IS NOT NULL LOOP -- building table of records having contract lines
13968 -- with preferred group
13969 FOR Pref_Grp_Rec in Check_Preferred_Group(Lx_Contracts(i).Coverage_Term_Line_Id,
13970 Lx_Contracts(i).Contract_Id) LOOP
13971
13972 IF Pref_Grp_Rec.Pref_Grp_Cnt >= 1 THEN
13973 Lx_Contracts_02(j) := Lx_Contracts(i);
13974 END IF;
13975 END LOOP;
13976 i := Lx_Contracts.Next(i);
13977 j := j+1;
13978 END LOOP;
13979
13980 -- Logic here is if there any contract line with preferred group then that is the ouput otherwise all
13981 -- Input Contract lines are without preferred groups and hence all of them are tie candidates
13982
13983 IF Lx_Contracts_02.COUNT > 0 THEN
13984 X_Contracts_02 := Lx_Contracts_02;
13985 ELSE
13986 X_Contracts_02 := Lx_Contracts;
13987 END IF;
13988
13989 Lx_Contracts_02.DELETE;
13990 Lx_Contracts.DELETE;
13991
13992 X_Result := Lx_Result;
13993 X_Return_Status := Lx_Return_Status;
13994
13995 EXCEPTION
13996
13997 WHEN L_EXCEP_UNEXPECTED_ERR THEN
13998
13999 X_Result := Lx_Result;
14000 X_Return_Status := Lx_Return_Status;
14001
14002 WHEN OTHERS THEN
14003
14004 OKC_API.SET_MESSAGE
14005 (P_App_Name => G_APP_NAME_OKC
14006 ,P_Msg_Name => G_UNEXPECTED_ERROR
14007 ,P_Token1 => G_SQLCODE_TOKEN
14008 ,P_Token1_Value => SQLCODE
14009 ,P_Token2 => G_SQLERRM_TOKEN
14010 ,P_Token2_Value => SQLERRM);
14011
14012 OKC_API.SET_MESSAGE
14013 (P_App_Name => G_APP_NAME_OKC
14014 ,P_Msg_Name => G_DEBUG_TOKEN
14015 ,P_Token1 => G_PACKAGE_TOKEN
14016 ,P_Token1_Value => G_PKG_NAME
14017 ,P_Token2 => G_PROGRAM_TOKEN
14018 ,P_Token2_Value => 'Get_CSI_KLine_PrefGrps');
14019
14020 X_Result := G_FALSE;
14021 X_Return_Status := G_RET_STS_UNEXP_ERROR;
14022
14023 END Get_CSI_KLine_PrefGrps;
14024
14025
14026 PROCEDURE Default_Contline_System
14027 (P_API_Version IN NUMBER
14028 ,P_Init_Msg_List IN VARCHAR2
14029 ,P_System_Id IN NUMBER
14030 ,P_Request_Date IN DATE
14031 ,X_Return_Status OUT NOCOPY VARCHAR2
14032 ,X_Msg_Count out nocopy NUMBER
14033 ,X_Msg_Data out nocopy VARCHAR2
14034 ,X_Ent_Contracts OUT NOCOPY Default_Contline_System_Rec) IS
14035
14036 CURSOR Lx_Csr_SysProd(Cx_System_id IN VARCHAR2) IS
14037 SELECT CSI.instance_id CP_Id,
14038 CSI.System_Id System_Id
14039 FROM CSI_ITEM_INSTANCES CSI
14040 WHERE CSI.System_id = (Cx_System_Id);
14041
14042 l_system_id NUMBER;
14043 l_request_date DATE;
14044
14045 Li_TableIdx BINARY_INTEGER;
14046 Lx_System_CovLevels GT_ContItem_Ref;
14047 Lx_Prod_CovLevels GT_ContItem_Ref;
14048 Lx_CovSys_Contracts GT_Contract_Ref;
14049 Lx_CustProd_Contracts GT_Contract_Ref;
14050 Lx_Contracts GT_Contract_Ref;
14051 Lx_Contracts_Out GT_Contract_Ref;
14052 Lx_Result Gx_Boolean;
14053 Lx_Return_Status Gx_Ret_Sts;
14054
14055 Lx_Ent_Contracts Get_ConTop_Tbl ;
14056 Lx_Ent_Contracts_01 Get_ConTop_Tbl ;
14057 Lx_Ent_Contracts_02 Get_ConTop_Tbl ;
14058 Lx_Ent_Contracts2 Get_ConTop_Tbl ;
14059
14060 Lx_ExcepionMsg Gx_ExceptionMsg;
14061 L_EXCEP_NO_DATA_FOUND EXCEPTION;
14062 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
14063 L_DEF_CONTRACT_LINE EXCEPTION;
14064 i NUMBER;
14065 j NUMBER;
14066 l_imp_level NUMBER;
14067 l_KLine_EdDt DATE;
14068
14069 BEGIN
14070
14071
14072 l_system_id := p_system_id;
14073 l_request_date := p_request_date;
14074 Lx_Result := G_TRUE;
14075 Lx_Return_Status := G_RET_STS_SUCCESS;
14076
14077 Li_TableIdx := 1;
14078
14079 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id1 := l_system_id;
14080 Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
14081 Lx_System_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_COVSYST';
14082
14083 -- Gets all the contract lines for the covered system_id
14084
14085 Get_CovLevel_Contracts
14086 (P_CovLevel_Items => Lx_System_CovLevels
14087 ,P_Party_Id => NULL
14088 ,X_CovLevel_Contracts => Lx_CovSys_Contracts
14089 ,X_Result => Lx_Result
14090 ,X_Return_Status => Lx_Return_Status);
14091
14092 IF Lx_Result <> G_TRUE THEN
14093 RAISE L_EXCEP_UNEXPECTED_ERR;
14094 END IF;
14095
14096 --- Gets the all the valid contract lines and detailed information
14097
14098 Get_Contracts_02_Format
14099 (P_Contracts => Lx_CovSys_Contracts
14100 ,P_BusiProc_Id => NULL
14101 ,P_Severity_Id => NULL
14102 ,P_Request_TZone_Id => NULL
14103 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
14104 ,P_Incident_Date => l_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
14105 ,P_Request_Date => l_request_date
14106 ,P_Calc_RespTime_YN => 'N'
14107 ,P_Validate_Eff => 'T'
14108 ,P_Validate_Flag => 'Y'
14109 ,P_SrvLine_Flag => 'F'
14110 ,P_Sort_Key => NULL --'COVTYP_IMP' --NULL
14111 ,X_Contracts_02 => Lx_Ent_Contracts
14112 ,X_Result => Lx_Result
14113 ,X_Return_Status => Lx_Return_Status);
14114
14115
14116 IF Lx_Result <> G_TRUE THEN
14117 RAISE L_EXCEP_UNEXPECTED_ERR;
14118 END IF;
14119
14120 IF Lx_Ent_Contracts.COUNT = 1 THEN -- only one direct record for system id
14121
14122 X_Ent_Contracts := Lx_Ent_Contracts(1);
14123 RAISE L_DEF_CONTRACT_LINE;
14124
14125 ELSIF Lx_Ent_Contracts.COUNT > 1 THEN -- more than one direct record for system id
14126
14127 -- Sorts all the contract lines with highest importance level and then returns contract lines with highest
14128 -- importance level
14129
14130
14131 Get_Sort_CSI_ImpLvl
14132 (P_Contracts => Lx_Ent_Contracts
14133 ,X_Contracts_02 => Lx_Ent_Contracts2
14134 ,X_Result => Lx_Result
14135 ,X_Return_Status => Lx_Return_Status);
14136
14137 IF Lx_Result <> G_TRUE THEN
14138 RAISE L_EXCEP_UNEXPECTED_ERR;
14139 END IF;
14140
14141 Lx_Ent_Contracts.DELETE;
14142 Lx_Ent_Contracts := Lx_Ent_Contracts2;
14143 Lx_Ent_Contracts2.DELETE;
14144
14145
14146 IF Lx_Ent_Contracts.COUNT = 1 THEN -- one record with highest importance level
14147
14148 X_Ent_Contracts := Lx_Ent_Contracts(1);
14149 RAISE L_DEF_CONTRACT_LINE;
14150
14151 ELSIF Lx_Ent_Contracts.COUNT >1 THEN -- more than one record with highest importance level
14152 -- ; Tie exists
14153
14154 -- Gets all the contract lines with preferred groups
14155
14156 Get_CSI_KLine_PrefGrps
14157 (P_Contracts => Lx_Ent_Contracts
14158 ,X_Contracts_02 => Lx_Ent_Contracts_01
14159 ,X_Result => Lx_Result
14160 ,X_Return_Status => Lx_Return_Status);
14161
14162 IF Lx_Result <> G_TRUE THEN
14163 RAISE L_EXCEP_UNEXPECTED_ERR;
14164 END IF;
14165
14166 Lx_Ent_Contracts.DELETE;
14167
14168 IF Lx_Ent_Contracts_01.COUNT = 1 THEN -- one record with preferred group
14169
14170 X_Ent_Contracts := Lx_Ent_Contracts_01(1);
14171 RAISE L_DEF_CONTRACT_LINE;
14172
14173 ELSIF (Lx_Ent_Contracts_01.COUNT >1 )THEN -- more than one record or,
14174 -- no record with preferred group
14175 -- (the above proc. returns all); Tie exists
14176
14177 -- Getting contract lines with latest end date
14178
14179 Get_CSI_LatestEdDtdKLines_02
14180 (P_Input_Tab => Lx_Ent_Contracts_01
14181 ,X_Output_Tab => Lx_Ent_Contracts_02
14182 ,X_Result => Lx_Result
14183 ,X_Return_Status => Lx_Return_Status);
14184
14185
14186 IF Lx_Result <> G_TRUE THEN
14187 RAISE L_EXCEP_UNEXPECTED_ERR;
14188 END IF;
14189
14190
14191 IF Lx_Ent_Contracts_02.COUNT >= 1 THEN --only one contract line with same
14192 --latest end date ,
14193 -- in case,more than one contract line with
14194 --same latest end date; return first one
14195
14196 X_Ent_Contracts := Lx_Ent_Contracts_02(1);
14197 RAISE L_DEF_CONTRACT_LINE;
14198
14199 -- ELSIF Lx_Ent_Contracts_02.COUNT > 1 THEN --more than one contract line with
14200 --same latest end date; Tie exists
14201
14202
14203 -- NULL; -- Automatically goes to indirect lines logic
14204
14205 END IF; --line latest end date comparison ends
14206
14207 END IF; -- preferred group comparison ends
14208
14209 -- ELSIF Lx_Ent_Contracts.COUNT =0 THEN -- no record with highest importance level (probably N/A)
14210 -- NULL;
14211 END IF; -- highest importance level comparison ends
14212
14213 -- ELSIF Lx_Ent_Contracts.COUNT = 0 THEN -- no direct record for system id
14214
14215 -- NULL; -- Automatically goes to indirect lines logic
14216
14217 END IF;
14218
14219 Lx_Ent_Contracts.DELETE;
14220 Lx_Ent_Contracts_01.DELETE;
14221 Lx_Ent_Contracts_02.DELETE;
14222
14223 ----- Indirect lines logic starts
14224
14225 Li_TableIdx := 0;
14226
14227 --- Following loop gets all the contract lines for all the covered customer products for a system id
14228
14229 FOR Itm in Lx_Csr_SysProd(l_System_id)
14230 LOOP
14231
14232 Li_TableIdx := Li_TableIdx + 1;
14233
14234 Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id1 := Itm.CP_Id;
14235 Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id2 := '#';
14236 Lx_Prod_CovLevels(Li_TableIdx).Rx_ObjCode := 'OKX_CUSTPROD';
14237
14238 END LOOP;
14239
14240 Get_CovLevel_Contracts
14241 (P_CovLevel_Items => Lx_Prod_CovLevels
14242 ,P_Party_Id => NULL
14243 ,X_CovLevel_Contracts => Lx_CustProd_Contracts
14244 ,X_Result => Lx_Result
14245 ,X_Return_Status => Lx_Return_Status);
14246
14247 Lx_Contracts := Lx_CustProd_Contracts;
14248 Lx_CustProd_Contracts.DELETE;
14249
14250 --- Removes all the duplicate contract lines
14251
14252 Dedup_CSICP_KLine_PlSql_Table
14253 (P_Input_Tab => Lx_Contracts
14254 ,X_Output_Tab => Lx_Contracts_Out
14255 ,X_Result => Lx_Result
14256 ,X_Return_Status => Lx_Return_Status);
14257
14258
14259 IF Lx_Result <> G_TRUE THEN
14260 RAISE L_EXCEP_UNEXPECTED_ERR;
14261 END IF;
14262
14263 Lx_Contracts := Lx_Contracts_Out;
14264 Lx_Contracts_Out.DELETE;
14265
14266 --- Gets the all the valid contract lines and detailed information
14267
14268 Get_Contracts_02_Format
14269 (P_Contracts => Lx_Contracts
14270 ,P_BusiProc_Id => NULL
14271 ,P_Severity_Id => NULL
14272 ,P_Request_TZone_Id => NULL
14273 ,P_Request_Date => l_request_date
14274 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
14275 ,P_Incident_Date => l_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
14276 ,P_Calc_RespTime_YN => 'N'
14277 ,P_Validate_Eff => 'T'
14278 ,P_Validate_Flag => 'Y'
14279 ,P_SrvLine_Flag => 'F'
14280 ,P_Sort_Key => NULL --'COVTYP_IMP' --NULL
14281 ,X_Contracts_02 => Lx_Ent_Contracts
14282 ,X_Result => Lx_Result
14283 ,X_Return_Status => Lx_Return_Status);
14284
14285
14286 IF Lx_Result <> G_TRUE THEN
14287 RAISE L_EXCEP_UNEXPECTED_ERR;
14288 END IF;
14289
14290 IF Lx_Ent_Contracts.COUNT = 1 THEN -- only one indirect record for cp_ids of the system id
14291
14292 X_Ent_Contracts := Lx_Ent_Contracts(1);
14293 RAISE L_DEF_CONTRACT_LINE;
14294
14295 ELSIF Lx_Ent_Contracts.COUNT > 1 THEN -- more than one indirect record for cp_ids of the system id
14296
14297 -- Sorts all the contract lines with highest importance level and then returns contract lines with highest
14298 -- importance level
14299
14300
14301 Get_Sort_CSI_ImpLvl
14302 (P_Contracts => Lx_Ent_Contracts
14303 ,X_Contracts_02 => Lx_Ent_Contracts2
14304 ,X_Result => Lx_Result
14305 ,X_Return_Status => Lx_Return_Status);
14306
14307
14308 IF Lx_Result <> G_TRUE THEN
14309 RAISE L_EXCEP_UNEXPECTED_ERR;
14310 END IF;
14311
14312 Lx_Ent_Contracts.DELETE;
14313 Lx_Ent_Contracts := Lx_Ent_Contracts2;
14314 Lx_Ent_Contracts2.DELETE;
14315
14316 IF Lx_Ent_Contracts.COUNT = 1 THEN -- one record with highest importance level
14317
14318 X_Ent_Contracts := Lx_Ent_Contracts(1);
14319 RAISE L_DEF_CONTRACT_LINE;
14320
14321 ELSIF Lx_Ent_Contracts.COUNT >1 THEN -- more than one record with highest importance level
14322 -- ; Tie exists
14323
14324 -- Gets all the contract lines with preferred groups
14325
14326 Get_CSI_KLine_PrefGrps
14327 (P_Contracts => Lx_Ent_Contracts
14328 ,X_Contracts_02 => Lx_Ent_Contracts_01
14329 ,X_Result => Lx_Result
14330 ,X_Return_Status => Lx_Return_Status);
14331
14332
14333 IF Lx_Result <> G_TRUE THEN
14334 RAISE L_EXCEP_UNEXPECTED_ERR;
14335 END IF;
14336
14337 Lx_Ent_Contracts.DELETE;
14338
14339 IF Lx_Ent_Contracts_01.COUNT = 1 THEN -- one record with preferred group
14340
14341
14342 X_Ent_Contracts := Lx_Ent_Contracts_01(1);
14343 RAISE L_DEF_CONTRACT_LINE;
14344
14345 ELSIF (Lx_Ent_Contracts_01.COUNT >1 )THEN -- more than one record or,
14346 -- no record with preferred group
14347 -- (the above proc. returns all); Tie exists
14348
14349 -- Getting contract lines with latest end date
14350
14351 Get_CSI_LatestEdDtdKLines_02
14352 (P_Input_Tab => Lx_Ent_Contracts_01
14353 ,X_Output_Tab => Lx_Ent_Contracts_02
14354 ,X_Result => Lx_Result
14355 ,X_Return_Status => Lx_Return_Status);
14356
14357
14358 IF Lx_Result <> G_TRUE THEN
14359 RAISE L_EXCEP_UNEXPECTED_ERR;
14360 END IF;
14361
14362
14363 IF Lx_Ent_Contracts_02.COUNT >= 1 THEN --only one contract line with same
14364 --latest end date ,
14365 -- in case,more than one contract line with
14366 --same latest end date; return first one
14367
14368 X_Ent_Contracts := Lx_Ent_Contracts_02(1);
14369 RAISE L_DEF_CONTRACT_LINE;
14370
14371 -- ELSIF Lx_Ent_Contracts_02.COUNT > 1 THEN --more than one contract line with
14372 --same latest end date; Tie exists
14373
14374 -- NULL; -- Automatically goes to indirect lines logic
14375
14376 END IF; --line latest end date comparison ends
14377
14378 END IF; -- preferred group comparison ends
14379
14380 -- ELSIF Lx_Ent_Contracts.COUNT =0 THEN -- no record with highest importance level (probably N/A)
14381 -- NULL;
14382 END IF; -- highest importance level comparison ends
14383
14384 -- ELSIF Lx_Ent_Contracts.COUNT = 0 THEN -- no direct record for system id
14385
14386 -- NULL; -- Automatically goes to indirect lines logic
14387
14388 END IF;
14389
14390
14391 EXCEPTION
14392
14393 WHEN L_DEF_CONTRACT_LINE THEN
14394
14395 X_Return_Status := G_RET_STS_SUCCESS;
14396
14397 WHEN L_EXCEP_UNEXPECTED_ERR THEN
14398
14399 X_Return_Status := G_RET_STS_UNEXP_ERROR;
14400
14401 WHEN OTHERS THEN
14402
14403 OKC_API.SET_MESSAGE
14404 (P_App_Name => G_APP_NAME_OKC
14405 ,P_Msg_Name => G_UNEXPECTED_ERROR
14406 ,P_Token1 => G_SQLCODE_TOKEN
14407 ,P_Token1_Value => SQLCODE
14408 ,P_Token2 => G_SQLERRM_TOKEN
14409 ,P_Token2_Value => SQLERRM);
14410
14411 OKC_API.SET_MESSAGE
14412 (P_App_Name => G_APP_NAME_OKC
14413 ,P_Msg_Name => G_DEBUG_TOKEN
14414 ,P_Token1 => G_PACKAGE_TOKEN
14415 ,P_Token1_Value => G_PKG_NAME
14416 ,P_Token2 => G_PROGRAM_TOKEN
14417 ,P_Token2_Value => 'Default_Contract_line_CSI');
14418
14419 X_Return_Status := G_RET_STS_UNEXP_ERROR;
14420
14421
14422 END Default_Contline_System;
14423
14424 PROCEDURE Get_Cont02Format_Validation
14425 (P_Contracts IN Idx_Rec
14426 ,P_BusiProc_Id IN Gx_BusProcess_Id
14427 ,P_Severity_Id IN Gx_Severity_Id
14428 ,P_Request_TZone_Id IN Gx_TimeZoneId
14429 ,P_Dates_In_Input_TZ IN VARCHAR2 -- Added for 12.0 ENT-TZ project (JVARGHES)
14430 ,P_Incident_Date IN DATE -- Added for 12.0 ENT-TZ project (JVARGHES)
14431 ,P_Request_Date IN DATE
14432 ,P_Request_Date_Start IN DATE
14433 ,P_Request_Date_End IN DATE
14434 ,P_Calc_RespTime_YN IN VARCHAR2
14435 ,P_Validate_Eff IN VARCHAR2
14436 ,P_Validate_Flag IN VARCHAR2
14437 ,P_SrvLine_Flag IN VARCHAR2
14438 ,P_Sort_Key IN VARCHAR2
14439 ,X_Contracts_02 out nocopy Get_ConTop_Tbl
14440 ,X_Result out nocopy Gx_Boolean
14441 ,X_Return_Status out nocopy Gx_Ret_Sts) IS
14442
14443 --
14444 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14445 --
14446 --
14447 -- CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN Gx_OKS_Id) IS
14448 -- SELECT Name
14449 -- ,Item_Description
14450 -- ,Id Coverage_Line_Id
14451 -- ,Start_Date CV_Start_Date
14452 -- ,Get_End_Date_Time(End_Date) Cv_End_Date
14453 -- ,Get_End_Date_Time(Date_Terminated) CV_Date_Terminated
14454 -- FROM Okc_K_Lines_V
14455 -- WHERE Cle_Id = Cx_SrvLine_Id
14456 -- AND Lse_Id IN (2,15,20);
14457 --
14458 --
14459 -- Added for 12.0 Coverage Rearch project (JVARGHES)
14460 --
14461 CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN Gx_OKS_Id) IS
14462 SELECT CVL.Name
14463 ,CVL.Item_Description
14464 ,CVL.Id Coverage_Line_Id
14465 ,CVL.Start_Date CV_Start_Date
14466 ,Get_End_Date_Time(CVL.End_Date) Cv_End_Date
14467 ,Get_End_Date_Time(CVL.Date_Terminated) CV_Date_Terminated
14468 ,KSL.Standard_Cov_YN
14469 FROM OKS_K_LINES_B KSL
14470 ,Okc_K_Lines_V CVL
14471 WHERE KSL.Cle_Id = Cx_SrvLine_Id
14472 AND KSL.Coverage_Id = CVL.Id
14473 AND CVL.Lse_Id IN (2,15,20);
14474
14475 --
14476 --
14477
14478 -- replaced following cursor because of bug 3248293
14479
14480 CURSOR Lx_Csr_SrvItem (Cx_SrvLine_Id In Gx_OKS_Id, Cn_Organization_Id IN NUMBER) IS
14481 SELECT mtl.concatenated_segments Name
14482 ,mtl.description Description
14483 FROM mtl_system_items_b_kfv mtl
14484 ,Okc_K_Items IT
14485 WHERE IT.Cle_Id = Cx_SrvLine_Id
14486 AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
14487 AND mtl.inventory_item_id = IT.Object1_Id1
14488 AND mtl.organization_id = IT.Object1_Id2
14489 AND mtl.Service_Item_Flag = 'Y';
14490 -- AND mtl.Organization_Id = Cn_Organization_Id;
14491
14492 -- The above validation "AND mtl.Organization_Id = Cn_Organization_Id"
14493 -- in this cursor Lx_Csr_SrvItem commented out . The fix is for bug 3248293.
14494 -- it is possible to have ext. warranty lines having different inv_organization_id
14495 -- than the contract header inv_organization_id
14496
14497 Lx_Contracts Idx_Rec;
14498 Ld_Request_Date CONSTANT DATE := P_Request_Date;
14499 Ld_Request_Date_Start CONSTANT DATE := P_Request_Date_Start;
14500 Ld_Request_Date_End CONSTANT DATE := P_Request_Date_End;
14501 Lv_Validate_Flag VARCHAR2(1);
14502 Lv_SrvLine_Flag CONSTANT VARCHAR2(1) := P_SrvLine_Flag;
14503 Lv_Sort_Key CONSTANT VARCHAR2(10):= P_Sort_Key;
14504
14505 Lx_BusiProc_Id CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
14506 Lx_Severity_Id CONSTANT Gx_Severity_Id := P_Severity_Id;
14507 Lx_Request_TZone_Id CONSTANT Gx_TimeZoneId := P_Request_TZone_Id;
14508 Lv_Calc_RespTime_YN CONSTANT VARCHAR2(1) := P_Calc_RespTime_YN;
14509 Lv_Validate_Eff CONSTANT VARCHAR2(1) := P_Validate_Eff;
14510 Lv_Cont_Pty_Id VARCHAR2(100);
14511
14512 Lx_Contracts_02 Get_ConTop_Tbl;
14513 Lx_Contracts_02_Out Get_ConTop_Tbl;
14514
14515 Lx_Result Gx_Boolean;
14516 Lx_Return_Status Gx_Ret_Sts;
14517 Lx_Result1 Gx_Boolean;
14518 Lx_Return_Status1 Gx_Ret_Sts;
14519 Lx_Result2 Gx_Boolean;
14520 Lx_Return_Status2 Gx_Ret_Sts;
14521 Lx_Result3 Gx_Boolean;
14522 Lx_Return_Status3 Gx_Ret_Sts;
14523
14524 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
14525 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
14526 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
14527 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
14528
14529 Li_TableIdx BINARY_INTEGER;
14530 Li_OutTab_Idx BINARY_INTEGER;
14531 Lv_Entile_Flag VARCHAR2(1);
14532 Lv_Effective_Falg VARCHAR2(1);
14533
14534 Lx_SrvLine_Id Gx_OKS_Id;
14535 Lx_CovLvlLine_Id Gx_OKS_Id;
14536
14537 Ld_SRV_Eff_End_Date DATE;
14538 Ld_COV_Eff_End_Date DATE;
14539 Ld_CVL_Eff_End_Date DATE;
14540
14541 Lv_Srv_Name VARCHAR2(300) ; --Okx_System_Items_V.Name%TYPE; --VARCHAR2(150) ;
14542 Lv_Srv_Description VARCHAR2(300) ; --Okx_System_Items_V.Description%TYPE; --VARCHAR2(1995);
14543 Lv_Prof_Srv_Name VARCHAR2(300) ;
14544 Lv_Prof_Srv_Desc VARCHAR2(300);
14545
14546 Lv_Cov_Name Okc_K_Lines_V.Name%TYPE; --VARCHAR2(150) ;
14547 Lv_Cov_Description Okc_K_Lines_V.Item_Description%TYPE; --VARCHAR2(1995);
14548
14549 Lx_React_Durn Gx_ReactDurn;
14550 Lx_React_UOM Gx_ReactUOM;
14551 Lv_React_Day VARCHAR2(20);
14552 Ld_React_By_DateTime DATE;
14553 Ld_React_Start_DateTime DATE;
14554
14555 Lx_Resln_Durn Gx_ReactDurn;
14556 Lx_Resln_UOM Gx_ReactUOM;
14557 Lv_Resln_Day VARCHAR2(20);
14558 Ld_Resln_By_DateTime DATE;
14559 Ld_Resln_Start_DateTime DATE;
14560
14561 Ln_Msg_Count NUMBER;
14562 Lv_Msg_Data VARCHAR2(2000);
14563
14564 Lv_RCN_RSN_Flag VARCHAR2(10);
14565 Lb_RSN_CTXT_Exists BOOLEAN;
14566
14567 Lx_CovLine_Id Gx_OKS_Id;
14568 Ld_Cov_StDate DATE;
14569 Ld_Cov_EdDate DATE;
14570 Ld_Cov_TnDate DATE;
14571 Lv_Cov_Check VARCHAR2(1);
14572
14573 Lv_Prof_Name CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
14574 Lv_Prof_Value VARCHAR2(300);
14575 Lx_Service_PO VARCHAR2(450);
14576 Lx_Service_PO_Required VARCHAR2(450);
14577
14578 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
14579
14580 -- Added for 12.0 ENT-TZ project (JVARGHES)
14581
14582 Ld_Incident_Date DATE;
14583 Ld_Reported_Date DATE;
14584 Lv_Dates_In_Input_TZ VARCHAR2(1);
14585
14586 --
14587 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14588 --
14589
14590 Lv_Standard_Cov_YN VARCHAR2(10);
14591
14592 --
14593
14594 BEGIN
14595
14596
14597 Lx_Contracts := P_Contracts;
14598 Lv_Validate_Flag := P_Validate_Flag;
14599 Lx_Result := G_TRUE;
14600 Lx_Return_Status := G_RET_STS_SUCCESS;
14601 Lx_Result1 := G_TRUE;
14602 Lx_Return_Status1 := G_RET_STS_SUCCESS;
14603 Lx_Result2 := G_TRUE;
14604 Lx_Return_Status2 := G_RET_STS_SUCCESS;
14605 Lx_Result3 := G_TRUE;
14606 Lx_Return_Status3 := G_RET_STS_SUCCESS;
14607 Li_OutTab_Idx := 0;
14608
14609
14610 -- Added for 12.0 ENT-TZ project (JVARGHES)
14611
14612 Ld_Incident_Date := NVL(p_Incident_Date,Ld_Request_Date);
14613 Ld_Reported_Date := Ld_Request_Date;
14614 Lv_Dates_In_Input_TZ := P_Dates_In_Input_TZ;
14615
14616 --
14617
14618 -- 11.5.10 --no more check required if RSN rule exists as rules architecture no more exist in 11.5.10
14619
14620 -- Lb_RSN_CTXT_Exists := FND_FLEX_DSC_API.CONTEXT_EXISTS('OKS','OKS Rule Developer DF','RSN');
14621 ---
14622 FND_PROFILE.Get(Lv_Prof_Name, Lv_Prof_Value);
14623 ---
14624
14625 IF Lv_Validate_Flag = 'Y' THEN
14626 Lv_Validate_Flag := 'T';
14627 END IF;
14628 ---
14629
14630 -- IF Lb_RSN_CTXT_Exists THEN
14631 Lv_RCN_RSN_Flag := G_RUL_CATEGORY_REACT_RESOLVE;
14632 -- ELSE
14633 -- Lv_RCN_RSN_Flag := G_RUL_CATEGORY_REACTION;
14634 -- END IF;
14635
14636 --
14637 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14638 --
14639
14640 OPEN Lx_Csr_CovItem(Lx_Contracts.Service_Line_Id);
14641 FETCH Lx_Csr_CovItem INTO Lv_Cov_Name,Lv_Cov_Description,Lx_CovLine_Id
14642 ,Ld_Cov_StDate,Ld_Cov_EdDate,Ld_Cov_TnDate, Lv_Standard_Cov_YN;
14643
14644 --
14645 --
14646
14647 IF Lx_Csr_CovItem%NOTFOUND THEN
14648 Lv_Cov_Check := 'N';
14649 ELSE
14650 Lv_Cov_Check := 'Y';
14651 END IF;
14652
14653 CLOSE Lx_Csr_CovItem;
14654
14655 --
14656 -- Added for 12.0 Coverage Rearch project (JVARGHES)
14657 --
14658
14659 IF Lv_Standard_Cov_YN = 'Y'
14660 THEN
14661 Ld_Cov_StDate := Lx_Contracts.Sv_Start_Date;
14662 Ld_Cov_EdDate := Lx_Contracts.Sv_End_Date;
14663 Ld_Cov_TnDate := Lx_Contracts.SV_Date_Terminated;
14664 END IF;
14665
14666 --
14667 --
14668 --
14669
14670 IF Lv_Validate_Eff = 'T' THEN
14671
14672 IF Lx_Contracts.SV_Date_Terminated < Lx_Contracts.Sv_End_Date THEN
14673 Ld_SRV_Eff_End_Date := Lx_Contracts.SV_Date_Terminated;
14674 ELSE
14675 Ld_SRV_Eff_End_Date := Lx_Contracts.Sv_End_Date;
14676
14677 -- grace period changes starts
14678
14679 IF G_GRACE_PROFILE_SET = 'Y' AND Lx_Contracts.SV_Date_Terminated IS NULL THEN
14680 -- grace period changes are done only if line end date matches contract end date
14681
14682 G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
14683 G_CONTRACT_ID := Lx_Contracts.Contract_Id;
14684
14685 IF trunc(Ld_SRV_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
14686 Ld_SRV_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_SRV_Eff_End_Date);
14687 END IF;
14688
14689 END IF;
14690
14691 -- grace period changes ends
14692 END IF;
14693
14694 IF Ld_Cov_TnDate < Ld_Cov_EdDate THEN
14695 Ld_COV_Eff_End_Date := Ld_Cov_TnDate;
14696 ELSE
14697 Ld_COV_Eff_End_Date := Ld_Cov_EdDate;
14698
14699 -- grace period changes starts
14700
14701 IF G_GRACE_PROFILE_SET = 'Y' AND Ld_COV_TnDate IS NULL THEN
14702 -- grace period changes are done only if line end date matches contract end date
14703
14704 G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
14705 G_CONTRACT_ID := Lx_Contracts.Contract_Id;
14706
14707 IF trunc(Ld_COV_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
14708 Ld_COV_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_COV_Eff_End_Date);
14709 END IF;
14710
14711 END IF;
14712
14713 -- grace period changes ends
14714 END IF;
14715
14716 IF Lx_Contracts.CL_Date_Terminated < Lx_Contracts.CL_End_Date THEN
14717 Ld_CVL_Eff_End_Date := Lx_Contracts.CL_Date_Terminated;
14718 ELSE
14719 Ld_CVL_Eff_End_Date := Lx_Contracts.CL_End_Date;
14720
14721 -- grace period changes starts
14722
14723 IF G_GRACE_PROFILE_SET = 'Y' AND Lx_Contracts.CL_Date_Terminated IS NULL THEN
14724 -- grace period changes are done only if line end date matches contract end date
14725
14726 G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
14727 G_CONTRACT_ID := Lx_Contracts.Contract_Id;
14728
14729 IF trunc(Ld_CVL_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
14730 Ld_CVL_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_CVL_Eff_End_Date);
14731 END IF;
14732
14733 END IF;
14734
14735 -- grace period changes ends
14736 END IF;
14737
14738 --
14739 -- Commented out for 12.0 ENT-TZ project (JVARGHES)
14740 --
14741 -- IF ((Ld_Request_Date BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
14742 -- AND
14743 -- ((Ld_Request_Date BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
14744 -- AND
14745 -- (Ld_Request_Date BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
14746 -- OR
14747 -- ((Ld_Request_Date_Start BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
14748 -- AND
14749 -- ((Ld_Request_Date_Start BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
14750 -- AND
14751 -- (Ld_Request_Date_Start BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
14752 -- OR
14753 -- ((Ld_Request_Date_End BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
14754 -- AND
14755 -- ((Ld_Request_Date_End BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
14756 -- AND
14757 -- (Ld_Request_Date_End BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
14758 -- THEN
14759 -- Lv_Effective_Falg := 'T';
14760 -- ELSE
14761 -- Lv_Effective_Falg := 'F';
14762 -- END IF;
14763 --
14764 --
14765 -- Added for 12.0 ENT-TZ project (JVARGHES)
14766 --
14767 IF ((Ld_Incident_Date BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
14768 AND
14769 ((Ld_Incident_Date BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
14770 AND
14771 (Ld_Incident_Date BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
14772 OR
14773 -- Added by Jvorugan for Bug:5174820
14774 -- Added by Jvorugan for Bug:5174820
14775 ((Ld_Request_Date_Start <= Lx_Contracts.SV_Start_Date AND Ld_Request_Date_End >= Ld_Srv_Eff_End_Date)
14776 AND
14777 ((Ld_Request_Date_Start <= Ld_Cov_StDate AND Ld_Request_Date_End >= Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
14778 AND
14779 (Ld_Request_Date_Start <= Lx_Contracts.CL_Start_Date AND Ld_Request_Date_End >= Ld_CVL_Eff_End_Date))
14780
14781 -- End of changes by Jvorugan
14782 /* Commented by Jvorugan for Bug:5174820
14783 ((Ld_Request_Date_Start BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
14784 AND
14785 ((Ld_Request_Date_Start BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
14786 AND
14787 (Ld_Request_Date_Start BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
14788 OR
14789 ((Ld_Request_Date_End BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
14790 AND
14791 ((Ld_Request_Date_End BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
14792 AND
14793 (Ld_Request_Date_End BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date)) */
14794 THEN
14795 Lv_Effective_Falg := 'T';
14796 ELSE
14797 Lv_Effective_Falg := 'F';
14798 END IF;
14799 --
14800 ELSE
14801 Lv_Effective_Falg := 'T';
14802 END IF;
14803
14804
14805 Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Lx_Contracts.Service_Line_Id, 'ENTITLE');
14806
14807 IF (Lv_Validate_Flag = 'T' AND Lv_Effective_Falg = 'T' AND Lv_Entile_Flag = 'T') OR (Lv_Validate_Flag <> 'T') THEN
14808
14809 OPEN Lx_Csr_SrvItem (Lx_Contracts.Service_Line_Id, Lx_Contracts.Inv_Organization_Id);
14810 FETCH Lx_Csr_SrvItem INTO Lv_Srv_Name, Lv_Srv_Description;
14811 CLOSE Lx_Csr_SrvItem;
14812
14813 -- commented because of bug 3248293. no more name and description swapping needed.
14814
14815 /*
14816 Get_Prof_Service_Name_And_Desc
14817 (P_Profile_Value => Lv_Prof_Value
14818 ,P_Db_Srv_Name => Lv_Srv_Name
14819 ,P_Db_Srv_Desc => Lv_Srv_Description
14820 ,X_Prof_Srv_Name => Lv_Prof_Srv_Name
14821 ,X_Prof_Srv_Desc => Lv_Prof_Srv_Desc
14822 ,X_Result => Lx_Result3
14823 ,X_Return_Status => Lx_Return_Status3);
14824
14825 IF Lx_Return_Status3 = G_RET_STS_UNEXP_ERROR THEN
14826 RAISE L_EXCEP_UNEXPECTED_ERR;
14827 END IF;
14828 */
14829
14830 Li_OutTab_Idx := Li_OutTab_Idx + 1;
14831
14832 Lx_Contracts_02(Li_OutTab_Idx).Contract_Id := Lx_Contracts.Contract_Id;
14833 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts.Contract_Number;
14834 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts.Contract_Number_Modifier;
14835 -- Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts.Sts_code;
14836 Lx_Contracts_02(Li_OutTab_Idx).Sts_code := Lx_Contracts.CL_Sts_code;
14837 Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id := Lx_Contracts.Service_Line_Id;
14838
14839 -- replaced because of bug 3248293
14840
14841 Lx_Contracts_02(Li_OutTab_Idx).Service_Name := Lv_Srv_Name; --Lv_Prof_Srv_Name;
14842 Lx_Contracts_02(Li_OutTab_Idx).Service_Description := Lv_Srv_Description; --Lv_Prof_Srv_Desc;
14843
14844 -- Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts.SV_Start_Date;
14845 -- Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts.SV_End_Date;
14846 Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date := Lx_Contracts.CL_Start_Date;
14847 Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date := Lx_Contracts.CL_End_Date;
14848 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id := Lx_CovLine_Id;
14849 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name := Lv_Cov_Name;
14850 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description := Lv_Cov_Description;
14851 Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag := Lx_Contracts.Warranty_Flag;
14852 Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement := Lv_Entile_Flag;
14853 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Lx_Contracts.cl_date_terminated; --Lx_Contracts.sv_date_terminated;
14854 Lx_Contracts_02(Li_OutTab_Idx).PM_Program_Id := Lx_Contracts.PM_Program_Id;
14855 Lx_Contracts_02(Li_OutTab_Idx).PM_Schedule_Exists := Lx_Contracts.PM_Schedule_Exists;
14856
14857 -- Added for 12.0 ENT-TZ project (JVARGHES)
14858 Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id := Lx_Contracts.CovLvl_Line_Id;
14859 --
14860
14861 --dbms_output.put_line('Value of Lv_Calc_RespTime_YN='||Lv_Calc_RespTime_YN);
14862 IF Lv_Calc_RespTime_YN = 'Y' THEN
14863
14864 Get_ReactResol_By_DateTime
14865 (P_API_Version => 1.0
14866 ,P_Init_Msg_List => 'F'
14867 ,P_SVL_Id => Lx_Contracts.Service_Line_Id
14868 ,P_BusiProc_Id => Lx_BusiProc_Id
14869 ,P_Severity_Id => Lx_Severity_Id
14870 -- ,P_Request_Date => Ld_Request_Date
14871 ,P_Request_Date => Ld_Reported_Date -- Added for 12.0 ENT-TZ project (JVARGHES)
14872 ,P_Request_TZone_Id => Lx_Request_TZone_Id
14873 ,P_Dates_In_Input_TZ => Lv_Dates_In_Input_TZ -- Added for 12.0 ENT-TZ project (JVARGHES)
14874 ,P_template_YN => 'N'
14875 ,P_Option => G_FIRST
14876 ,P_Rcn_Rsn_Flag => Lv_RCN_RSN_Flag
14877 ,P_Set_ExcepionStack => G_FALSE
14878 ,X_React_Durn => Lx_React_Durn
14879 ,X_React_UOM => Lx_React_UOM
14880 ,X_React_Day => Lv_React_Day
14881 ,X_React_By_DateTime => Ld_React_By_DateTime
14882 ,X_React_Start_DateTime => Ld_React_Start_DateTime
14883 ,X_Resolve_Durn => Lx_Resln_Durn
14884 ,X_Resolve_UOM => Lx_Resln_UOM
14885 ,X_Resolve_Day => Lv_Resln_Day
14886 ,X_Resolve_By_DateTime => Ld_Resln_By_DateTime
14887 ,X_Resolve_Start_DateTime => Ld_Resln_Start_DateTime
14888 ,X_Msg_count => Ln_Msg_Count
14889 ,X_Msg_Data => Lv_Msg_Data
14890 ,X_Result => Lx_Result1
14891 ,X_Return_Status => Lx_Return_Status1);
14892
14893 IF Lx_Return_Status1 = G_RET_STS_UNEXP_ERROR THEN
14894 RAISE L_EXCEP_UNEXPECTED_ERR;
14895 END IF;
14896
14897 Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time := Ld_React_By_DateTime;
14898
14899 -->> Included for backward compatibility of this API
14900 -- no more backward compatibility required for 11.5.10 onwards so resolution time will always be assigned
14901 -- resolution time
14902 /*
14903 IF Lb_RSN_CTXT_Exists THEN
14904 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Ld_Resln_By_DateTime;
14905 ELSE
14906 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Ld_React_By_DateTime;
14907 END IF;
14908 */
14909 Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time := Ld_Resln_By_DateTime;
14910 --<< Included for backward compatibility of this API
14911
14912 Lx_Contracts_02(Li_OutTab_Idx).Status_Code := Lx_Return_Status1;
14913 Lx_Contracts_02(Li_OutTab_Idx).Status_Text := Lv_Msg_Data;
14914
14915 --<<Following only applicable for Service Request API.
14916 ----That is the reason this code is placed in this IF statement
14917
14918 Get_Coverage_Type_Attribs
14919 (P_CVL_Id => Lx_CovLine_Id
14920 ,P_Set_ExcepionStack => G_FALSE
14921 ,X_Cov_Type_Code => Lx_Cov_Type_Code
14922 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
14923 ,X_Cov_Type_Description => Lx_Cov_Type_Description
14924 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
14925 ,X_Result => Lx_Result2
14926 ,X_Return_Status => Lx_Return_Status2);
14927
14928 IF Lx_Return_Status2 = G_RET_STS_UNEXP_ERROR THEN
14929 RAISE L_EXCEP_UNEXPECTED_ERR;
14930 END IF;
14931
14932 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Cov_Type_Code;
14933 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Cov_Type_Meaning;
14934 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
14935
14936 ----End for Service Request.>>
14937
14938 END IF;
14939
14940 -- addition for "getting coverage type and importance level even if calculate response time is not required" starts
14941
14942 IF (Lv_Calc_RespTime_YN = 'N') AND (Lv_Sort_Key = 'COVTYP_IMP') THEN --
14943
14944 Get_Coverage_Type_Attribs
14945 (P_CVL_Id => Lx_CovLine_Id
14946 ,P_Set_ExcepionStack => G_FALSE
14947 ,X_Cov_Type_Code => Lx_Cov_Type_Code
14948 ,X_Cov_Type_Meaning => Lx_Cov_Type_Meaning
14949 ,X_Cov_Type_Description => Lx_Cov_Type_Description
14950 ,X_Cov_Type_Imp_Level => Lx_Cov_Type_Imp_Level
14951 ,X_Result => Lx_Result2
14952 ,X_Return_Status => Lx_Return_Status2);
14953
14954 IF Lx_Return_Status2 = G_RET_STS_UNEXP_ERROR THEN
14955 RAISE L_EXCEP_UNEXPECTED_ERR;
14956 END IF;
14957
14958 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code := Lx_Cov_Type_Code;
14959 Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning := Lx_Cov_Type_Meaning;
14960 Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level := Lx_Cov_Type_Imp_Level;
14961 END IF;
14962
14963 -- addition for "getting coverage type and importance level even if calculate response time is not required" ends
14964
14965 Get_Service_PO
14966 (P_CHR_Id => Lx_Contracts.Contract_Id
14967 ,P_Set_ExcepionStack => G_FALSE
14968 ,X_Service_PO => Lx_Service_PO
14969 ,X_Service_PO_Required => Lx_Service_PO_Required
14970 ,X_Result => Lx_Result
14971 ,X_Return_Status => Lx_Return_Status);
14972
14973 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
14974 RAISE L_EXCEP_UNEXPECTED_ERR;
14975 END IF;
14976
14977 Lx_Contracts_02(Li_OutTab_Idx).service_PO_number := Lx_Service_PO;
14978 Lx_Contracts_02(Li_OutTab_Idx).service_PO_required_flag := Lx_Service_PO_Required;
14979
14980 END IF;
14981
14982 X_Contracts_02 := Lx_Contracts_02;
14983 X_Result := Lx_Result;
14984 X_Return_Status := Lx_Return_Status;
14985
14986 EXCEPTION
14987
14988 WHEN L_EXCEP_UNEXPECTED_ERR THEN
14989
14990 X_Return_Status := G_RET_STS_UNEXP_ERROR;
14991
14992 WHEN OTHERS THEN
14993
14994 OKC_API.SET_MESSAGE
14995 (P_App_Name => G_APP_NAME_OKC
14996 ,P_Msg_Name => G_UNEXPECTED_ERROR
14997 ,P_Token1 => G_SQLCODE_TOKEN
14998 ,P_Token1_Value => SQLCODE
14999 ,P_Token2 => G_SQLERRM_TOKEN
15000 ,P_Token2_Value => SQLERRM);
15001
15002 OKC_API.SET_MESSAGE
15003 (P_App_Name => G_APP_NAME_OKC
15004 ,P_Msg_Name => G_DEBUG_TOKEN
15005 ,P_Token1 => G_PACKAGE_TOKEN
15006 ,P_Token1_Value => G_PKG_NAME
15007 ,P_Token2 => G_PROGRAM_TOKEN
15008 ,P_Token2_Value => 'Get_Cont02Format_Validation');
15009
15010 X_Return_Status := G_RET_STS_UNEXP_ERROR;
15011
15012 END Get_Cont02Format_Validation;
15013
15014 PROCEDURE Get_cov_txn_groups
15015 (p_api_version IN Number
15016 ,p_init_msg_list IN Varchar2
15017 ,p_inp_rec_bp IN INP_REC_BP
15018 ,x_return_status OUT NOCOPY Varchar2
15019 ,x_msg_count OUT NOCOPY Number
15020 ,x_msg_data OUT NOCOPY Varchar2
15021 ,x_cov_txn_grp_lines OUT NOCOPY OUTPUT_TBL_BP)
15022 IS
15023
15024 --
15025 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
15026 --
15027 -- 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
15028 -- select lines2.id id,
15029 -- lines2.start_date start_date,
15030 -- lines2.end_date end_date,
15031 -- to_number(items.object1_id1) object1_id1 ,
15032 -- lines2.dnz_chr_id
15033 -- from okc_k_lines_v lines,
15034 -- okc_k_lines_v lines2,
15035 -- okc_k_items items,
15036 -- cs_business_processes bp
15037 -- where lines.cle_id = p_line_id
15038 -- and lines.id = lines2.cle_id
15039 -- and lines.lse_id in (2,15,20)
15040 -- and lines2.id = items.cle_id
15041 -- and lines2.lse_id in (3,16,21)
15042 -- and items.object1_id1 = bp.business_process_id
15043 -- and items.object1_id2 = '#'
15044 -- and items.jtot_object1_code = 'OKX_BUSIPROC'
15045 -- and bp.service_request_flag =
15046 -- decode(p_chk_def,'Y',
15047 -- decode(p_sr_enabled,null,bp.service_request_flag,p_sr_enabled),
15048 -- bp.service_request_flag)
15049 -- and bp.depot_repair_flag =
15050 -- decode(p_chk_def,'Y',
15051 -- decode(p_dr_enabled,null,bp.depot_repair_flag,p_dr_enabled),
15052 -- bp.depot_repair_flag)
15053 -- and bp.field_service_flag =
15054 -- decode(p_chk_def,'Y',
15055 -- decode(p_fs_enabled,null,bp.field_service_flag,p_fs_enabled),
15056 -- bp.field_service_flag);
15057 --
15058 --
15059 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
15060 --
15061 --
15062 CURSOR cur_bp (p_line_id in number,p_chk_def in varchar2,p_sr_enabled varchar2
15063 ,p_dr_enabled IN varchar2,p_fs_enabled IN varchar2) is
15064 select lines2.id id,
15065 decode(ksl.Standard_Cov_YN, 'Y',lines.start_date,lines2.start_date) start_date,
15066 decode(ksl.Standard_Cov_YN, 'Y',lines.end_date,lines2.end_date) end_date,
15067 to_number(items.object1_id1) object1_id1,
15068 lines.dnz_chr_id,
15069 ksl.Standard_Cov_YN Standard_Cov_YN
15070 from okc_k_lines_b lines,
15071 oks_k_lines_b KSL,
15072 okc_k_lines_v lines2,
15073 okc_k_items items,
15074 cs_business_processes bp
15075 where lines.id = p_line_id
15076 and lines.lse_id in (1,14,19)
15077 and KSL.cle_id = lines.id
15078 and KSL.Coverage_Id = lines2.cle_Id
15079 and lines2.id = items.cle_id
15080 and lines2.lse_id in (3,16,21)
15081 and items.object1_id1 = bp.business_process_id
15082 and items.object1_id2 = '#'
15083 and items.jtot_object1_code = 'OKX_BUSIPROC'
15084 and bp.service_request_flag =
15085 decode(p_chk_def,'Y',
15086 decode(p_sr_enabled,null,bp.service_request_flag,p_sr_enabled),
15087 bp.service_request_flag)
15088 and bp.depot_repair_flag =
15089 decode(p_chk_def,'Y',
15090 decode(p_dr_enabled,null,bp.depot_repair_flag,p_dr_enabled),
15091 bp.depot_repair_flag)
15092 and bp.field_service_flag =
15093 decode(p_chk_def,'Y',
15094 decode(p_fs_enabled,null,bp.field_service_flag,p_fs_enabled),
15095 bp.field_service_flag);
15096
15097 --
15098 --
15099
15100 CURSOR cur_hdr (p_line_id in number) is
15101 select hdr.id id,
15102 hdr.start_date start_date,
15103 hdr.end_date end_date
15104 from OKC_K_HEADERS_ALL_B hdr, --,OKC_K_HEADERS_B HDR -- Modified for 12.0 MOAC project (JVARGHES)
15105 okc_k_lines_v lines
15106 where lines.chr_id = hdr.id
15107 and lines.dnz_chr_id = hdr.id
15108 and lines.id = p_line_id;
15109
15110 G_CONTRACT_END_DATE date;
15111 G_CONTRACT_ID number;
15112 G_GRACE_PROFILE_SET varchar2(1);
15113
15114 p_id number;
15115 p_bp_id number;
15116 i number;
15117
15118 HDR cur_hdr%rowtype;
15119
15120 Lx_Result Gx_Boolean;
15121 Lx_Return_Status Gx_Ret_Sts;
15122
15123 -- Added for 12.0 Coverage Rearch project (JVARGHES)
15124
15125 Lv_Std_Cov_YN VARCHAR2(10);
15126
15127 Ld_BPL_Start_Date DATE;
15128 Ln_BPL_OFS_Duration NUMBER;
15129 Lv_BPL_OFS_UOM VARCHAR2(100);
15130
15131 L_EXCEP_NO_DATA_FOUND EXCEPTION;
15132 --
15133
15134 BEGIN
15135
15136 G_GRACE_PROFILE_SET := NULL;
15137 i := 0;
15138 Lx_Result := G_TRUE;
15139 Lx_Return_Status := G_RET_STS_SUCCESS;
15140
15141 OKS_ENTITLEMENTS_PVT.G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
15142
15143 IF OKS_ENTITLEMENTS_PVT.G_GRACE_PROFILE_SET = 'Y' THEN
15144 FOR Hdr_rec in cur_hdr (p_inp_rec_bp.contract_line_id) LOOP
15145 HDR := Hdr_rec;
15146 END LOOP;
15147 END IF;
15148
15149 FOR l_bp_out in cur_bp(p_inp_rec_bp.contract_line_id,p_inp_rec_bp.check_bp_def,
15150 p_inp_rec_bp.sr_enabled,p_inp_rec_bp.dr_enabled,p_inp_rec_bp.fs_enabled) LOOP
15151
15152 --
15153 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
15154 --
15155
15156 IF l_bp_out.Standard_Cov_YN = 'Y'
15157 THEN
15158
15159 Get_BP_Line_Start_Offset
15160 (P_BPL_Id => l_bp_out.Id
15161 ,P_SVL_Start => l_bp_out.Start_date
15162 ,X_BPL_OFS_Start => Ld_BPL_Start_date
15163 ,X_BPL_OFS_Duration => Ln_BPL_OFS_Duration
15164 ,X_BPL_OFS_UOM => Lv_BPL_OFS_UOM
15165 ,X_Return_Status => Lx_Return_Status);
15166
15167 IF Lx_Return_Status<> G_RET_STS_SUCCESS THEN
15168 RAISE L_EXCEP_NO_DATA_FOUND;
15169 END IF;
15170
15171 ELSE
15172
15173 Ld_BPL_Start_date := l_bp_out.Start_date;
15174
15175 END IF;
15176
15177 --
15178 --
15179
15180 i := i + 1;
15181 x_cov_txn_grp_lines(i).cov_txn_grp_line_id := l_bp_out.id;
15182 x_cov_txn_grp_lines(i).bp_id := l_bp_out.object1_id1;
15183
15184 -- x_cov_txn_grp_lines(i).start_date := l_bp_out.start_date; -- Modified for 12.0 Coverage Rearch project (JVARGHES)
15185 x_cov_txn_grp_lines(i).start_date := Ld_BPL_Start_date; -- Modified for 12.0 Coverage Rearch project (JVARGHES)
15186
15187
15188 IF OKS_ENTITLEMENTS_PVT.G_GRACE_PROFILE_SET = 'Y' THEN
15189 IF (trunc(HDR.end_date) = trunc(l_bp_out.end_date)) then
15190 x_cov_txn_grp_lines(i).end_date := OKS_ENTITLEMENTS_PVT.Get_Final_End_Date(l_bp_out.dnz_chr_id,
15191 l_bp_out.end_date);
15192 ELSE
15193 x_cov_txn_grp_lines(i).end_date := l_bp_out.end_date;
15194 END IF;
15195 ELSE
15196 x_cov_txn_grp_lines(i).end_date := l_bp_out.end_date;
15197 END IF;
15198
15199 END LOOP;
15200
15201 X_Return_Status := Lx_Return_Status;
15202
15203 EXCEPTION
15204
15205 WHEN OTHERS THEN
15206
15207
15208 OKC_API.SET_MESSAGE
15209 (P_App_Name => G_APP_NAME_OKC
15210 ,P_Msg_Name => G_UNEXPECTED_ERROR
15211 ,P_Token1 => G_SQLCODE_TOKEN
15212 ,P_Token1_Value => SQLCODE
15213 ,P_Token2 => G_SQLERRM_TOKEN
15214 ,P_Token2_Value => SQLERRM);
15215
15216 OKC_API.SET_MESSAGE
15217 (P_App_Name => G_APP_NAME_OKC
15218 ,P_Msg_Name => G_DEBUG_TOKEN
15219 ,P_Token1 => G_PACKAGE_TOKEN
15220 ,P_Token1_Value => G_PKG_NAME
15221 ,P_Token2 => G_PROGRAM_TOKEN
15222 ,P_Token2_Value => 'Get_cov_txn_groups');
15223
15224 X_Return_Status := G_RET_STS_UNEXP_ERROR;
15225
15226 END Get_cov_txn_groups;
15227
15228 PROCEDURE Get_txn_billing_types
15229 (p_api_version IN Number
15230 ,p_init_msg_list IN Varchar2
15231 ,p_cov_txngrp_line_id IN number
15232 ,p_return_bill_rates_YN IN Varchar2
15233 ,x_return_status OUT NOCOPY Varchar2
15234 ,x_msg_count OUT NOCOPY Number
15235 ,x_msg_data OUT NOCOPY Varchar2
15236 ,x_txn_bill_types OUT NOCOPY output_tbl_bt
15237 ,x_txn_bill_rates out nocopy output_tbl_br)
15238 IS
15239
15240
15241 cursor cur_bt (p_txn_grp_line_id in number) is
15242 select lines.id id,
15243 lines2.id bt_line_id,
15244 lines.start_date start_date,
15245 lines.end_date end_date ,
15246 items2.object1_id1 bt_object1_id1,
15247 items2.jtot_object1_code jtot_object1_code,
15248 okslines2.discount_amount, -- rul.rule_information2 rule_information2,
15249 okslines2.discount_percent -- rul.rule_information4 rule_information4
15250 from okc_k_lines_v lines,
15251 okc_k_lines_v lines2,
15252 okc_k_items items2,
15253 oks_k_lines_b okslines2
15254 -- okc_rule_groups_b rgp,
15255 -- okc_rules_b rul
15256 where lines.id = p_txn_grp_line_id
15257 and lines.lse_id in (3,16,21)
15258 and lines2.cle_id = lines.id
15259 and lines2.id = items2.cle_id
15260 and lines2.lse_id in (5,23,59)
15261 and items2.jtot_object1_code = 'OKX_BILLTYPE'
15262 and lines2.id = okslines2.cle_id;
15263
15264
15265 cursor cur_br (p_bill_type_id in number) is
15266 select oksbsch.BT_CLE_ID bt_line_id,
15267 oksbsch.CLE_ID br_line_id,
15268 oksbsch.ID br_schedule_id,
15269 oksbsch.BILL_RATE_CODE bill_rate,
15270 oksbsch.FLAT_RATE flat_rate,
15271 oksbsch.UOM uom,
15272 oksbsch.PERCENT_OVER_LIST_PRICE percent_over_list_price,
15273 oksbsch.START_HOUR start_hour,
15274 oksbsch.START_MINUTE start_minute,
15275 oksbsch.END_HOUR end_hour,
15276 oksbsch.END_MINUTE end_minute,
15277 oksbsch.MONDAY_FLAG monday_flag,
15278 oksbsch.TUESDAY_FLAG tuesday_flag,
15279 oksbsch.WEDNESDAY_FLAG wednesday_flag,
15280 oksbsch.THURSDAY_FLAG thursday_flag,
15281 oksbsch.FRIDAY_FLAG friday_flag,
15282 oksbsch.SATURDAY_FLAG saturday_flag,
15283 oksbsch.SUNDAY_FLAG sunday_flag,
15284 to_number(oksbsch.OBJECT1_ID2) labor_item_org_id,
15285 to_number(oksbsch.OBJECT1_ID1) labor_item_id,
15286 oksbsch.HOLIDAY_YN holiday_yn
15287 from okc_k_lines_v lines,
15288 okc_k_lines_v lines2,
15289 oks_billrate_schedules oksbsch
15290 -- okc_rule_groups_v rgp,
15291 -- okc_rules_b rules
15292 where lines.id = p_bill_type_id
15293 and lines.id = lines2.cle_id
15294 and lines2.id = oksbsch.cle_id;
15295
15296 G_CONTRACT_END_DATE date;
15297 G_CONTRACT_ID number;
15298
15299 p_id number;
15300 p_bp_id number;
15301
15302 i number;
15303 j number;
15304
15305 l_bp_object1_id1 number;
15306 l_bt_object1_id1 number;
15307
15308 Lx_Result Gx_Boolean;
15309 Lx_Return_Status Gx_Ret_Sts;
15310
15311
15312 begin
15313
15314 i := 0;
15315 j := 0;
15316 Lx_Result := G_TRUE;
15317 Lx_Return_Status := G_RET_STS_SUCCESS;
15318
15319 FOR bt_rec in cur_bt(p_cov_txngrp_line_id)
15320 LOOP
15321 i := i + 1;
15322 x_txn_bill_types(i).Txn_BT_line_id := Bt_rec.bt_line_id;
15323 x_txn_bill_types(i).txn_bill_type_id := Bt_rec.bt_object1_id1;
15324 x_txn_bill_types(i).Covered_upto_amount := Bt_rec.discount_amount; --Bt_rec.rule_information2;
15325 x_txn_bill_types(i).percent_covered := Bt_rec.discount_percent; --Bt_rec.rule_information4;
15326
15327 if p_return_bill_rates_YN = 'Y' then
15328
15329 FOR br_rec in cur_br(Bt_rec.bt_line_id)
15330 LOOP
15331
15332 j:= j + 1;
15333
15334 x_txn_bill_rates(j).BT_line_id := BR_rec.bt_line_id;
15335 x_txn_bill_rates(j).Br_line_id := BR_rec.br_line_id;
15336 x_txn_bill_rates(j).br_schedule_id := BR_rec.br_schedule_id;
15337 x_txn_bill_rates(j).bill_rate := BR_rec.bill_rate;
15338 x_txn_bill_rates(j).flat_rate := BR_rec.flat_rate;
15339 x_txn_bill_rates(j).uom := BR_rec.uom;
15340 x_txn_bill_rates(j).percent_over_list_price := BR_rec.percent_over_list_price;
15341 x_txn_bill_rates(j).start_hour := BR_rec.start_hour;
15342 x_txn_bill_rates(j).start_minute := BR_rec.start_minute;
15343 x_txn_bill_rates(j).end_hour := BR_rec.end_hour;
15344 x_txn_bill_rates(j).end_minute := BR_rec.end_minute;
15345 x_txn_bill_rates(j).monday_flag := BR_rec.monday_flag;
15346 x_txn_bill_rates(j).tuesday_flag := BR_rec.tuesday_flag;
15347 x_txn_bill_rates(j).wednesday_flag := BR_rec.wednesday_flag;
15348 x_txn_bill_rates(j).thursday_flag := BR_rec.thursday_flag;
15349 x_txn_bill_rates(j).friday_flag := BR_rec.friday_flag;
15350 x_txn_bill_rates(j).saturday_flag := BR_rec.saturday_flag;
15351 x_txn_bill_rates(j).sunday_flag := BR_rec.sunday_flag;
15352 x_txn_bill_rates(j).labor_item_org_id := BR_rec.labor_item_org_id;
15353 x_txn_bill_rates(j).labor_item_id := BR_rec.labor_item_id;
15354 x_txn_bill_rates(j).holiday_yn := BR_rec.holiday_yn ;
15355
15356 end loop;
15357 end if;
15358 end loop;
15359
15360 X_Return_Status := Lx_Return_Status;
15361
15362 EXCEPTION
15363 WHEN OTHERS THEN
15364 OKC_API.SET_MESSAGE
15365 (P_App_Name => G_APP_NAME_OKC
15366 ,P_Msg_Name => G_UNEXPECTED_ERROR
15367 ,P_Token1 => G_SQLCODE_TOKEN
15368 ,P_Token1_Value => SQLCODE
15369 ,P_Token2 => G_SQLERRM_TOKEN
15370 ,P_Token2_Value => SQLERRM);
15371
15372 OKC_API.SET_MESSAGE
15373 (P_App_Name => G_APP_NAME_OKC
15374 ,P_Msg_Name => G_DEBUG_TOKEN
15375 ,P_Token1 => G_PACKAGE_TOKEN
15376 ,P_Token1_Value => G_PKG_NAME
15377 ,P_Token2 => G_PROGRAM_TOKEN
15378 ,P_Token2_Value => 'Get_txn_billing_types');
15379
15380 -- X_Result := G_FALSE;
15381 X_Return_Status := G_RET_STS_UNEXP_ERROR;
15382
15383 END Get_txn_billing_types;
15384
15385 PROCEDURE Search_Contracts_01_Format
15386 (P_Contracts IN GT_Contract_Ref
15387 ,P_Contract_rec IN inp_cont_rec_type
15388 ,P_Request_Date IN DATE
15389 ,P_Contract_Id IN NUMBER
15390 ,P_Validate_Eff IN VARCHAR2
15391 ,P_Validate_Flag IN VARCHAR2
15392 ,P_SrvLine_Flag IN VARCHAR2
15393 ,P_Sort_Key IN VARCHAR2
15394 ,X_Contracts_02 out nocopy Output_Tbl_Contract
15395 ,X_Result out nocopy Gx_Boolean
15396 ,X_Return_Status out nocopy Gx_Ret_Sts)
15397 IS
15398
15399 CURSOR Lx_Csr_Contracts(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
15400 ,Cx_CovLvlLine_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
15401 ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
15402 ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
15403 ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
15404 Cx_HD_Sts_Code IN VARCHAR2) IS
15405 SELECT HD.Id Contract_Id
15406 ,HD.Contract_Number
15407 ,HD.Contract_Number_Modifier
15408 ,HD.Sts_Code
15409 ,HD.Authoring_Org_Id
15410 ,HD.Inv_Organization_Id
15411 ,HD.End_Date HDR_End_Date --grace period changes
15412 ,SV.Id Service_Line_Id
15413 ,SV.Start_Date SV_Start_Date
15414 ,Get_End_Date_Time(SV.End_Date) SV_End_Date
15415 ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
15416 ,CL.Sts_Code CL_Sts_Code
15417 ,CL.Id CovLvl_Line_Id
15418 ,CL.Start_Date CL_Start_Date
15419 ,Get_End_Date_Time(CL.End_Date) CL_End_Date
15420 ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
15421 ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
15422 ,HD.Scs_Code Scs_Code
15423 ,HD.Estimated_Amount Estimated_Amount
15424 ,HD.Start_Date HD_Start_Date
15425 ,HD.End_Date HD_End_Date
15426 ,HD.Date_Terminated HD_Date_Terminated
15427 ,HDT.Cognomen Cognomen -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
15428 ,HDT.short_description short_description -- HD.short_description -- Modified for 12.0 MOAC project (JVARGHES)
15429 ,HD.currency_code HD_currency_code
15430 ,CAT.meaning HD_cat_meaning
15431 ,STS.meaning HD_sts_meaning
15432 FROM OKC_K_HEADERS_ALL_B HD -- Modified for 12.0 MOAC project (JVARGHES)
15433 ,OKC_K_HEADERS_TL HDT -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
15434 ,Okc_K_Lines_B SV
15435 ,Okc_K_Lines_B CL
15436 ,okc_subclasses_v CAT
15437 ,okc_statuses_v STS
15438 WHERE HD.Id = Cx_Chr_Id
15439 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
15440 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
15441 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
15442 AND HD.Sts_code = STS.code
15443 AND HD.Scs_code = CAT.code
15444 AND HD.Id > -1
15445 AND HD.Template_YN <> 'Y'
15446 AND (trunc(HD.Start_Date) between
15447 nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
15448 nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
15449 AND (trunc(HD.End_Date) between
15450 nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
15451 nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
15452 AND ((trunc(HD.Date_Terminated) IS NULL)OR
15453 ((trunc(HD.Date_Terminated) between
15454 nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
15455 nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
15456 AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
15457 AND SV.Dnz_Chr_Id = HD.Id
15458 AND SV.Cle_Id IS NULL
15459 AND SV.Chr_Id = HD.Id
15460 AND SV.Lse_ID IN (1,14,19)
15461 AND SV.Id = NVL(Cx_SrvLine_Id,SV.Id)
15462 AND CL.Cle_Id = SV.Id
15463 AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
15464 AND CL.Id = NVL(Cx_CovLvlLine_Id, CL.Id)
15465 AND EXISTS (SELECT '*'
15466 FROM Okc_K_Party_Roles_B PR
15467 WHERE PR.Chr_Id = HD.Id
15468 AND PR.Cle_Id IS NULL
15469 AND PR.Dnz_Chr_Id = HD.Id
15470 AND PR.Object1_Id1 = Cv_Cont_Pty_Id
15471 AND PR.Object1_Id2 = '#'
15472 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
15473 AND PR.RLE_CODE <> 'VENDOR' );
15474
15475
15476 CURSOR Lx_Csr_Contracts1(Cx_Chr_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
15477 ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
15478 ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
15479 ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
15480 Cx_HD_Sts_Code IN VARCHAR2) IS
15481
15482 SELECT HD.Id Contract_Id
15483 ,HD.Contract_Number
15484 ,HD.Contract_Number_Modifier
15485 ,HD.Sts_Code
15486 ,HD.End_Date HDR_End_Date --grace period changes
15487 ,HD.Scs_Code Scs_Code
15488 ,HD.Estimated_Amount Estimated_Amount
15489 ,HD.Start_Date HD_Start_Date
15490 ,HD.End_Date HD_End_Date
15491 ,HD.Date_Terminated HD_Date_Terminated
15492 ,HDT.Cognomen Cognomen -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
15493 ,HDT.short_description short_description -- HD.short_description -- Modified for 12.0 MOAC project (JVARGHES)
15494 ,HD.currency_code HD_currency_code
15495 ,CAT.meaning HD_cat_meaning
15496 ,STS.meaning HD_sts_meaning
15497 FROM OKC_K_HEADERS_ALL_B HD -- Modified for 12.0 MOAC project (JVARGHES)
15498 ,OKC_K_HEADERS_TL HDT -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
15499 ,okc_subclasses_v CAT
15500 ,okc_statuses_v STS
15501 WHERE HD.Id = nvl(Cx_Chr_Id,HD.Id)
15502 AND HD.Scs_Code IN ('SERVICE','WARRANTY')
15503 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
15504 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
15505 AND HD.Sts_code = STS.code
15506 AND HD.Scs_code = CAT.code
15507 AND HD.Id > -1
15508 AND HD.Template_YN <> 'Y'
15509 AND (trunc(HD.Start_Date) between
15510 nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
15511 nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
15512 AND (trunc(HD.End_Date) between
15513 nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
15514 nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
15515 AND ((trunc(HD.Date_Terminated) IS NULL)OR
15516 ((trunc(HD.Date_Terminated) between
15517 nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
15518 nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
15519 AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
15520 AND EXISTS (SELECT '*'
15521 FROM Okc_K_Party_Roles_B PR
15522 WHERE PR.Chr_Id = HD.Id
15523 AND PR.Cle_Id IS NULL
15524 AND PR.Dnz_Chr_Id = HD.Id
15525 AND PR.Object1_Id1 = Cv_Cont_Pty_Id
15526 AND PR.Object1_Id2 = '#'
15527 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
15528 AND PR.RLE_CODE <> 'VENDOR' );
15529
15530 Lx_Contracts GT_Contract_Ref;
15531 Lx_Contract_rec inp_cont_rec_type;
15532 Ld_Request_Date CONSTANT DATE := nvl(P_Request_Date,sysdate);
15533 Lv_Contract_Id NUMBER ;
15534 Lv_Validate_Flag VARCHAR2(1);
15535 Lv_SrvLine_Flag CONSTANT VARCHAR2(1) := P_SrvLine_Flag;
15536 Lv_Sort_Key CONSTANT VARCHAR2(10):= P_Sort_Key;
15537
15538 Lv_Validate_Eff CONSTANT VARCHAR2(1) := P_Validate_Eff;
15539 Lv_Cont_Pty_Id VARCHAR2(100);
15540
15541 Lx_Contracts_02 Output_Tbl_Contract;
15542 Lx_Contracts_02_Out Output_Tbl_Contract;
15543 Lx_Contracts_02_Val Get_Contop_Tbl;
15544
15545 Lx_Idx_Rec Idx_Rec;
15546
15547 Lx_Result Gx_Boolean;
15548 Lx_Return_Status Gx_Ret_Sts;
15549 Lx_Result1 Gx_Boolean;
15550 Lx_Return_Status1 Gx_Ret_Sts;
15551 Lx_Result2 Gx_Boolean;
15552 Lx_Return_Status2 Gx_Ret_Sts;
15553 Lx_Result3 Gx_Boolean;
15554 Lx_Return_Status3 Gx_Ret_Sts;
15555
15556 Lx_Cov_Type_Code Oks_Cov_Types_B.Code%TYPE;
15557 Lx_Cov_Type_Meaning Oks_Cov_Types_TL.Meaning%TYPE;
15558 Lx_Cov_Type_Description Oks_Cov_Types_TL.Description%TYPE;
15559 Lx_Cov_Type_Imp_Level Oks_Cov_Types_B.Importance_Level%TYPE;
15560
15561 Li_TableIdx BINARY_INTEGER;
15562 Li_OutTab_Idx BINARY_INTEGER;
15563 Lv_Entile_Flag VARCHAR2(1);
15564 Lv_Effective_Falg VARCHAR2(1);
15565
15566 Lx_SrvLine_Id Gx_OKS_Id;
15567 Lx_CovLvlLine_Id Gx_OKS_Id;
15568
15569 Ld_SRV_Eff_End_Date DATE;
15570 Ld_COV_Eff_End_Date DATE;
15571 Ld_CVL_Eff_End_Date DATE;
15572
15573 Lv_Srv_Name Okx_System_Items_V.Name%TYPE; --VARCHAR2(150) ;
15574 Lv_Srv_Description Okx_System_Items_V.Description%TYPE; --VARCHAR2(1995);
15575 Lv_Prof_Srv_Name VARCHAR2(300) ;
15576 Lv_Prof_Srv_Desc VARCHAR2(300);
15577
15578 Lv_Cov_Name Okc_K_Lines_V.Name%TYPE; --VARCHAR2(150) ;
15579 Lv_Cov_Description Okc_K_Lines_V.Item_Description%TYPE; --VARCHAR2(1995);
15580
15581 Lx_React_Durn Gx_ReactDurn;
15582 Lx_React_UOM Gx_ReactUOM;
15583 Lv_React_Day VARCHAR2(20);
15584 Ld_React_By_DateTime DATE;
15585 Ld_React_Start_DateTime DATE;
15586
15587 Lx_Resln_Durn Gx_ReactDurn;
15588 Lx_Resln_UOM Gx_ReactUOM;
15589 Lv_Resln_Day VARCHAR2(20);
15590 Ld_Resln_By_DateTime DATE;
15591 Ld_Resln_Start_DateTime DATE;
15592
15593 Ln_Msg_Count NUMBER;
15594 Lv_Msg_Data VARCHAR2(2000);
15595
15596 Lv_RCN_RSN_Flag VARCHAR2(10);
15597 Lb_RSN_CTXT_Exists BOOLEAN;
15598
15599 Lx_CovLine_Id Gx_OKS_Id;
15600 Ld_Cov_StDate DATE;
15601 Ld_Cov_EdDate DATE;
15602 Ld_Cov_TnDate DATE;
15603 Lv_Cov_Check VARCHAR2(1);
15604
15605 Lx_Contract_Id NUMBER;
15606 Lx_Valid_K VARCHAR2(1);
15607
15608 Lv_Prof_Name CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
15609 Lv_Prof_Value VARCHAR2(300);
15610
15611 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
15612
15613 BEGIN
15614
15615 Lx_Contracts := P_Contracts;
15616 Lx_Contract_rec := P_Contract_rec;
15617 Lv_Contract_Id := P_Contract_Id;
15618 Lv_Validate_Flag := P_Validate_Flag;
15619 Lx_Result := G_TRUE;
15620 Lx_Return_Status := G_RET_STS_SUCCESS;
15621 Lx_Result1 := G_TRUE;
15622 Lx_Return_Status1 := G_RET_STS_SUCCESS;
15623 Lx_Result2 := G_TRUE;
15624 Lx_Return_Status2 := G_RET_STS_SUCCESS;
15625 Lx_Result3 := G_TRUE;
15626 Lx_Return_Status3 := G_RET_STS_SUCCESS;
15627 Li_OutTab_Idx := 0;
15628 Lx_Contract_Id := -99999;
15629 Lx_Valid_K := 'F';
15630
15631 IF Lx_Contracts.COUNT > 0 AND Lv_Validate_Flag = 'T' AND Lv_Validate_Eff = 'T' THEN
15632
15633 Li_TableIdx := Lx_Contracts.FIRST;
15634
15635 WHILE Li_TableIdx IS NOT NULL LOOP
15636
15637 IF Lv_SrvLine_Flag = 'T' THEN
15638
15639 Lx_SrvLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
15640 Lx_CovLvlLine_Id := NULL;
15641
15642 ELSE
15643
15644 Lx_SrvLine_Id := NULL;
15645 Lx_CovLvlLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
15646
15647 END IF;
15648
15649 Lv_Cont_Pty_Id := TO_CHAR(Lx_Contract_rec.Contract_Party_Id);
15650
15651 FOR Idx IN Lx_Csr_Contracts(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lv_Cont_Pty_Id
15652 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
15653 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
15654 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
15655 Lx_Contract_rec.Contract_Status_Code) LOOP
15656
15657
15658 Lx_Idx_Rec.Contract_Id := Idx.Contract_Id;
15659 Lx_Idx_Rec.Contract_Number := Idx.Contract_Number;
15660 Lx_Idx_Rec.Contract_Number_Modifier := Idx.Contract_Number_Modifier;
15661 Lx_Idx_Rec.Sts_Code := Idx.Sts_Code;
15662 Lx_Idx_Rec.Authoring_Org_Id := Idx.Authoring_Org_Id;
15663 Lx_Idx_Rec.Inv_Organization_Id := Idx.Inv_Organization_Id;
15664 Lx_Idx_Rec.HDR_End_Date := Idx.HDR_End_Date;
15665 Lx_Idx_Rec.Service_Line_Id := Idx.Service_Line_Id;
15666 Lx_Idx_Rec.SV_Start_Date := Idx.SV_Start_Date;
15667 Lx_Idx_Rec.SV_End_Date := Idx.SV_End_Date;
15668 Lx_Idx_Rec.SV_Date_Terminated := Idx.SV_Date_Terminated;
15669 Lx_Idx_Rec.CL_Sts_Code := Idx.CL_Sts_Code;
15670 Lx_Idx_Rec.CovLvl_Line_Id := Idx.CovLvl_Line_Id;
15671 Lx_Idx_Rec.CL_Start_Date := Idx.CL_Start_Date;
15672 Lx_Idx_Rec.CL_End_Date := Idx.CL_End_Date;
15673 Lx_Idx_Rec.CL_Date_Terminated := Idx.CL_Date_Terminated;
15674 Lx_Idx_Rec.Warranty_Flag := Idx.Warranty_Flag;
15675 Lx_Idx_Rec.HD_currency_code := Idx.HD_currency_code;
15676
15677
15678 IF (Lx_Contract_Id <> Lx_Idx_Rec.Contract_Id) OR (Lx_Valid_K = 'F') THEN
15679
15680 Get_Cont02Format_Validation
15681 (P_Contracts => Lx_Idx_Rec
15682 ,P_BusiProc_Id => NULL
15683 ,P_Severity_Id => NULL
15684 ,P_Request_TZone_Id => NULL
15685 ,P_Dates_In_Input_TZ => 'Y' -- Added for 12.0 ENT-TZ project (JVARGHES)
15686 ,P_Incident_Date => ld_request_date -- Added for 12.0 ENT-TZ project (JVARGHES)
15687 ,P_Request_Date => Ld_Request_Date
15688 ,P_Request_Date_Start => NULL
15689 ,P_Request_Date_End => NULL
15690 ,P_Calc_RespTime_YN => NULL
15691 ,P_Validate_Eff => Lv_Validate_Eff
15692 ,P_Validate_Flag => Lv_Validate_Flag
15693 ,P_SrvLine_Flag => Lv_SrvLine_Flag
15694 ,P_Sort_Key => Lv_Sort_Key
15695 ,X_Contracts_02 => Lx_Contracts_02_Val
15696 ,X_Result => Lx_Result
15697 ,X_Return_Status => Lx_Return_Status);
15698
15699 END IF;
15700
15701 IF (Lx_Contract_Id <> Lx_Idx_Rec.Contract_Id) THEN
15702
15703 Lx_Contract_Id := Lx_Idx_Rec.Contract_Id;
15704 Lx_Valid_K := 'F';
15705
15706 END IF;
15707
15708 IF Lx_Contracts_02_Val.COUNT > 0 THEN
15709
15710 Lx_Valid_K := 'T';
15711
15712 Li_OutTab_Idx := Li_OutTab_Idx + 1;
15713
15714 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Lx_Contracts_02_Val(1).Contract_Number;
15715 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
15716 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Lx_Contracts_02_Val(1).Sts_code;
15717 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
15718 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
15719 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
15720 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
15721 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
15722 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
15723 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
15724 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
15725 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
15726 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
15727
15728 Lx_Contracts_02_Val.DELETE;
15729
15730 END IF;
15731
15732 IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
15733 RAISE L_EXCEP_UNEXPECTED_ERR;
15734 END IF;
15735
15736 END LOOP;
15737
15738 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
15739
15740 END LOOP;
15741
15742 ELSIF Lx_Contracts.COUNT > 0 AND Lv_Validate_Flag = 'F' AND Lv_Validate_Eff = 'F' THEN
15743
15744 Li_TableIdx := Lx_Contracts.FIRST;
15745
15746 WHILE Li_TableIdx IS NOT NULL LOOP
15747
15748 IF Lv_SrvLine_Flag = 'T' THEN
15749
15750 Lx_SrvLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
15751 Lx_CovLvlLine_Id := NULL;
15752
15753 ELSE
15754
15755 Lx_SrvLine_Id := NULL;
15756 Lx_CovLvlLine_Id := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
15757
15758 END IF;
15759
15760 Lv_Cont_Pty_Id := TO_CHAR(Lx_Contract_rec.Contract_Party_Id);
15761
15762 FOR Idx IN Lx_Csr_Contracts1(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lv_Cont_Pty_Id
15763 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
15764 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
15765 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
15766 Lx_Contract_rec.Contract_Status_Code) LOOP
15767
15768
15769 Li_OutTab_Idx := Li_OutTab_Idx + 1;
15770
15771 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
15772 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
15773 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Idx.Sts_code;
15774 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
15775 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
15776 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
15777 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
15778 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
15779 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
15780 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
15781 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
15782 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
15783 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
15784
15785
15786 END LOOP;
15787
15788 Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
15789
15790 END LOOP;
15791
15792 ELSIF Lx_Contracts.COUNT = 0 AND Lv_Validate_Flag = 'F' AND Lv_Validate_Eff = 'F' THEN
15793
15794 Lv_Cont_Pty_Id := TO_CHAR(Lx_Contract_rec.Contract_Party_Id);
15795
15796 FOR Idx IN Lx_Csr_Contracts1(Lv_Contract_Id,Lv_Cont_Pty_Id
15797 ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
15798 ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
15799 ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
15800 Lx_Contract_rec.Contract_Status_Code) LOOP
15801
15802
15803
15804 Li_OutTab_Idx := Li_OutTab_Idx + 1;
15805
15806 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number := Idx.Contract_Number;
15807 Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
15808 Lx_Contracts_02(Li_OutTab_Idx).contract_status_code := Idx.Sts_code;
15809 Lx_Contracts_02(Li_OutTab_Idx).contract_category := Idx.scs_code;
15810 Lx_Contracts_02(Li_OutTab_Idx).known_as := Idx.cognomen;
15811 Lx_Contracts_02(Li_OutTab_Idx).short_description := Idx.short_description;
15812 Lx_Contracts_02(Li_OutTab_Idx).start_date := Idx.HD_start_date;
15813 Lx_Contracts_02(Li_OutTab_Idx).end_date := Idx.HD_end_date;
15814 Lx_Contracts_02(Li_OutTab_Idx).date_terminated := Idx.HD_date_terminated;
15815 Lx_Contracts_02(Li_OutTab_Idx).contract_amount := Idx.estimated_amount;
15816 Lx_Contracts_02(Li_OutTab_Idx).currency_code := Idx.HD_Currency_code;
15817 Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning := Idx.HD_sts_meaning;
15818 Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning := Idx.HD_cat_meaning;
15819
15820 END LOOP;
15821
15822 END IF;
15823
15824 Lx_Contracts_02_Out := Lx_Contracts_02;
15825
15826 X_Contracts_02 := Lx_Contracts_02_Out;
15827 X_Result := Lx_Result;
15828 X_Return_Status := Lx_Return_Status;
15829
15830
15831
15832 EXCEPTION
15833
15834 WHEN L_EXCEP_UNEXPECTED_ERR THEN
15835
15836 X_Result := Lx_Result;
15837 X_Return_Status := Lx_Return_Status;
15838
15839 WHEN OTHERS THEN
15840
15841 OKC_API.SET_MESSAGE
15842 (P_App_Name => G_APP_NAME_OKC
15843 ,P_Msg_Name => G_UNEXPECTED_ERROR
15844 ,P_Token1 => G_SQLCODE_TOKEN
15845 ,P_Token1_Value => SQLCODE
15846 ,P_Token2 => G_SQLERRM_TOKEN
15847 ,P_Token2_Value => SQLERRM);
15848
15849 OKC_API.SET_MESSAGE
15850 (P_App_Name => G_APP_NAME_OKC
15851 ,P_Msg_Name => G_DEBUG_TOKEN
15852 ,P_Token1 => G_PACKAGE_TOKEN
15853 ,P_Token1_Value => G_PKG_NAME
15854 ,P_Token2 => G_PROGRAM_TOKEN
15855 ,P_Token2_Value => 'Search_Contracts_01_Format');
15856
15857 X_Result := G_FALSE;
15858 X_Return_Status := G_RET_STS_UNEXP_ERROR;
15859
15860 END Search_Contracts_01_Format;
15861
15862
15863 PROCEDURE Search_Contracts
15864 (p_api_version IN Number
15865 ,p_init_msg_list IN Varchar2
15866 ,p_contract_rec IN inp_cont_rec_type
15867 ,p_clvl_id_tbl IN covlvl_id_tbl
15868 ,x_return_status out nocopy Varchar2
15869 ,x_msg_count out nocopy Number
15870 ,x_msg_data out nocopy Varchar2
15871 ,x_contract_tbl out nocopy output_tbl_contract) IS
15872
15873
15874 Lx_Inp_Rec_02 CONSTANT inp_cont_rec_type := p_contract_rec;
15875 Lx_Inp_Tbl_03 covlvl_id_tbl;
15876 Lx_Return_Status Gx_Ret_Sts;
15877 Lx_Result Gx_Boolean;
15878 Lv_Request_date date;
15879
15880 Lx_Ent_Contracts output_tbl_contract;
15881 Lx_Contracts GT_Contract_Ref;
15882 Lx_Contracts_Temp GT_Contract_Ref;
15883 Lx_Contracts_Out GT_Contract_Ref;
15884 Lx_Contracts_02 GT_Contract_Ref;
15885 Lx_Contracts_Prev GT_Contract_Ref;
15886 Lx_Contracts_ContNum GT_Contract_Ref;
15887
15888 Lx_Contract_Id NUMBER;
15889
15890 Lv_SrvLine_Flag VARCHAR2(1);
15891
15892 Ln_Organization_Id NUMBER;
15893 Ln_Org_Id NUMBER;
15894 Ln_Chr_Id NUMBER;
15895
15896 Lx_Validate_Eff VARCHAR2(1);
15897 Lx_Validate_Flag VARCHAR2(1);
15898
15899 i NUMBER;
15900 j NUMBER;
15901 Lx_Chr_Id NUMBER;
15902
15903 Li_TableIdx BINARY_INTEGER;
15904
15905 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
15906
15907 BEGIN
15908
15909 Lx_Inp_Tbl_03 := p_clvl_id_tbl;
15910 Lx_Return_Status := G_RET_STS_SUCCESS;
15911 Lx_Result := G_TRUE;
15912 Lv_SrvLine_Flag := 'F';
15913 Lx_Validate_Eff := 'F';
15914 Lx_Validate_Flag := 'F';
15915 Lx_Chr_Id := -99999;
15916
15917 -- Bug# 4735542
15918 -- OKC_CONTEXT.set_okc_org_context(p_org_id => NULL,p_organization_id => NULL);
15919 -- Ln_Organization_Id := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
15920
15921 -- Modified for 12.0 MOAC project (JVARGHES)
15922 -- Ln_Org_Id := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
15923 --
15924 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
15925
15926 if Lx_Inp_Rec_02.request_date is null then
15927 Lv_request_date := sysdate;
15928 end if;
15929
15930 IF ((Lx_Inp_Rec_02.Contract_Number IS NOT NULL) --AND (Lx_Inp_Rec_02.Contract_Number_Modifier IS NOT NULL)
15931 ) THEN
15932
15933 Get_Contracts_Id
15934 (P_Contract_Num => Lx_Inp_Rec_02.Contract_Number
15935 ,P_Contract_Num_Modifier => Lx_Inp_Rec_02.Contract_Number_Modifier
15936 ,X_Contracts => Lx_Contracts_ContNum
15937 ,X_Result => Lx_Result
15938 ,X_Return_Status => Lx_Return_Status);
15939
15940 IF Lx_Result <> G_TRUE THEN
15941 RAISE L_EXCEP_UNEXPECTED_ERR;
15942 END IF;
15943
15944 IF Lx_Contracts_ContNum.COUNT > 0 THEN
15945 Lx_Contract_Id := Lx_Contracts_ContNum(1).Rx_Chr_Id;
15946 END IF;
15947
15948 END IF;
15949
15950 IF Lx_Inp_Tbl_03.COUNT > 0 THEN
15951
15952 FOR i in Lx_Inp_Tbl_03.FIRST..Lx_Inp_Tbl_03.LAST LOOP
15953
15954 IF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_CUSTPROD' THEN
15955
15956 Get_CovProd_Contracts
15957 (P_CovProd_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
15958 ,P_Organization_Id => Ln_Organization_Id
15959 ,P_Org_Id => Ln_Org_Id
15960 ,X_CovProd_Contracts => Lx_Contracts
15961 ,X_Result => Lx_Result
15962 ,X_Return_Status => Lx_Return_Status);
15963
15964 IF Lx_Result <> G_TRUE THEN
15965 RAISE L_EXCEP_UNEXPECTED_ERR;
15966 END IF;
15967
15968 ELSE
15969
15970 IF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_COVITEM' THEN
15971
15972 Get_CovItem_Contracts
15973 (P_CovItem_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
15974 ,P_Organization_Id => Ln_Organization_Id
15975 ,P_Party_Id => Lx_Inp_Rec_02.Contract_Party_Id --Lx_Inp_Rec.Party_Id
15976 ,X_CovItem_Contracts => Lx_Contracts
15977 ,X_Result => Lx_Result
15978 ,X_Return_Status => Lx_Return_Status);
15979
15980 IF Lx_Result <> G_TRUE THEN
15981 RAISE L_EXCEP_UNEXPECTED_ERR;
15982 END IF;
15983
15984 END IF;
15985
15986 IF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_COVSYST' THEN
15987
15988 Get_CovSys_Contracts
15989 (P_CovSys_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
15990 ,P_Org_Id => Ln_Org_Id
15991 ,X_CovSys_Contracts => Lx_Contracts_Temp
15992 ,X_Result => Lx_Result
15993 ,X_Return_Status => Lx_Return_Status);
15994
15995 IF Lx_Result <> G_TRUE THEN
15996 RAISE L_EXCEP_UNEXPECTED_ERR;
15997 END IF;
15998
15999 ELSIF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_CUSTACCT' THEN
16000
16001 Get_CovCust_Contracts
16002 (P_CovCust_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
16003 ,X_CovCust_Contracts => Lx_Contracts_Temp
16004 ,X_Result => Lx_Result
16005 ,X_Return_Status => Lx_Return_Status);
16006
16007 IF Lx_Result <> G_TRUE THEN
16008 RAISE L_EXCEP_UNEXPECTED_ERR;
16009 END IF;
16010
16011 ELSIF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_PARTYSITE' THEN
16012
16013 Get_CovSite_Contracts
16014 (P_CovSite_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
16015 ,P_Org_Id => Ln_Org_Id
16016 ,X_CovSite_Contracts => Lx_Contracts_Temp
16017 ,X_Result => Lx_Result
16018 ,X_Return_Status => Lx_Return_Status);
16019
16020 IF Lx_Result <> G_TRUE THEN
16021 RAISE L_EXCEP_UNEXPECTED_ERR;
16022 END IF;
16023
16024 ELSIF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_PARTY' THEN
16025
16026 Get_CovParty_Contracts
16027 (P_CovParty_Obj_Id => Lx_Inp_Tbl_03(i).covlvl_id
16028 ,X_CovParty_Contracts => Lx_Contracts_Temp
16029 ,X_Result => Lx_Result
16030 ,X_Return_Status => Lx_Return_Status);
16031
16032 IF Lx_Result <> G_TRUE THEN
16033 RAISE L_EXCEP_UNEXPECTED_ERR;
16034 END IF;
16035
16036 END IF;
16037
16038 END IF;
16039
16040 Append_Contract_PlSql_Table
16041 (P_Input_Tab => Lx_Contracts_Temp
16042 ,P_Append_Tab => Lx_Contracts
16043 ,X_Output_Tab => Lx_Contracts_Out
16044 ,X_Result => Lx_Result
16045 ,X_Return_Status => Lx_Return_Status);
16046
16047 IF Lx_Result <> G_TRUE THEN
16048 RAISE L_EXCEP_UNEXPECTED_ERR;
16049 END IF;
16050
16051 Lx_Contracts_Temp.DELETE;
16052 Lx_Contracts.DELETE;
16053
16054 Lx_Contracts := Lx_Contracts_Out;
16055
16056 Lx_Contracts_Out.DELETE;
16057
16058 IF i = 1 THEN
16059 Lx_Contracts_Prev := Lx_Contracts;
16060 ELSE
16061
16062 Append_Contract_PlSql_Table
16063 (P_Input_Tab => Lx_Contracts_Prev
16064 ,P_Append_Tab => Lx_Contracts
16065 ,X_Output_Tab => Lx_Contracts_Out
16066 ,X_Result => Lx_Result
16067 ,X_Return_Status => Lx_Return_Status);
16068
16069 IF Lx_Result <> G_TRUE THEN
16070 RAISE L_EXCEP_UNEXPECTED_ERR;
16071 END IF;
16072
16073 Lx_Contracts_Prev.DELETE;
16074 Lx_Contracts_Prev := Lx_Contracts_Out;
16075
16076 END IF;
16077
16078 END LOOP;
16079
16080 Lx_Contracts_Out := Lx_Contracts_Prev;
16081 Lx_Contracts_Prev.DELETE;
16082
16083 Lx_Contracts.DELETE;
16084 Lx_Contracts := Lx_Contracts_Out;
16085 Lx_Contracts_Out.DELETE;
16086
16087 IF Lx_Contracts.COUNT > 1 THEN
16088 Sort_Asc_ContRef_PlSql_Table
16089 (P_Input_Tab => Lx_Contracts
16090 ,X_Output_Tab => Lx_Contracts_Out
16091 ,X_Result => Lx_Result
16092 ,X_Return_Status => Lx_Return_Status);
16093
16094 IF Lx_Result <> G_TRUE THEN
16095 RAISE L_EXCEP_UNEXPECTED_ERR;
16096 END IF;
16097 END IF;
16098
16099
16100 IF Lx_Contracts_Out.COUNT > 0 THEN
16101 FOR i in Lx_Contracts_Out.FIRST..Lx_Contracts_Out.LAST LOOP
16102 Lx_Contracts_Out(i).Rx_Pty_Id := Lx_Inp_Rec_02.Contract_Party_Id;
16103 END LOOP;
16104 END IF;
16105
16106
16107 IF Lx_Inp_Rec_02.Entitlement_Check_YN = 'Y' THEN
16108
16109 Lx_Validate_Eff := 'T';
16110 Lx_Validate_Flag := 'T';
16111
16112 ELSE
16113
16114 Lx_Validate_Eff := 'F';
16115 Lx_Validate_Flag := 'F';
16116
16117 IF Lx_Contracts_Out.COUNT > 0 THEN
16118
16119 i := Lx_Contracts_Out.First;
16120 j := 1;
16121
16122 WHILE i IS NOT NULL LOOP
16123
16124 IF Lx_Chr_Id <> Lx_Contracts_Out(i).Rx_Chr_Id THEN
16125
16126 Lx_Contracts_02(j) := Lx_Contracts_Out(i);
16127 Lx_Chr_Id := Lx_Contracts_Out(i).Rx_Chr_Id;
16128
16129 END IF;
16130
16131 i := Lx_Contracts_Out.Next(i);
16132 j := j+1;
16133
16134 END LOOP;
16135
16136 Lx_Contracts_Out.DELETE;
16137 Lx_Contracts_Out := Lx_Contracts_02;
16138 Lx_Contracts_02.DELETE;
16139
16140 END IF;
16141
16142 END IF;
16143
16144 IF Lx_Contracts_ContNum.COUNT > 0 THEN
16145
16146 Lx_Chr_Id := Lx_Contracts_ContNum(1).Rx_Chr_Id;
16147
16148 IF Lx_Contracts_Out.COUNT > 0 THEN
16149
16150 i := Lx_Contracts_Out.First;
16151 j := 1;
16152
16153 WHILE i IS NOT NULL LOOP
16154
16155 IF Lx_Chr_Id = Lx_Contracts_Out(i).Rx_Chr_Id THEN
16156
16157 Lx_Contracts_02(j) := Lx_Contracts_Out(i);
16158
16159 END IF;
16160
16161 i := Lx_Contracts_Out.Next(i);
16162 j := j+1;
16163
16164 END LOOP;
16165
16166 Lx_Contracts_Out.DELETE;
16167 Lx_Contracts_Out := Lx_Contracts_02;
16168 Lx_Contracts_02.DELETE;
16169
16170 END IF;
16171
16172 END IF;
16173
16174 ELSE --Lx_Inp_Tbl_03.COUNT = 0 case
16175
16176 Lx_Validate_Eff := 'F';
16177 Lx_Validate_Flag := 'F';
16178
16179 END IF; --Lx_Inp_Tbl_03.COUNT check ends
16180
16181
16182 IF ((Lx_Inp_Tbl_03.COUNT <> 0 and Lx_Contracts_Out.COUNT <> 0)
16183 OR
16184 (Lx_Inp_Tbl_03.COUNT = 0)) THEN
16185
16186
16187 Search_Contracts_01_Format
16188 (P_Contracts => Lx_Contracts_Out
16189 ,P_Contract_rec => Lx_Inp_Rec_02
16190 ,P_Request_Date => Lv_Request_Date --Lx_Inp_Rec_02.Request_Date
16191 ,P_Contract_Id => Lx_Contract_Id
16192 ,P_Validate_Eff => Lx_Validate_Eff
16193 ,P_Validate_Flag => Lx_Validate_Flag
16194 ,P_SrvLine_Flag => 'N'
16195 ,P_Sort_Key => NULL
16196 ,X_Contracts_02 => Lx_Ent_Contracts
16197 ,X_Result => Lx_Result
16198 ,X_Return_Status => Lx_Return_Status);
16199
16200 IF Lx_Result <> G_TRUE THEN
16201 RAISE L_EXCEP_UNEXPECTED_ERR;
16202 END IF;
16203
16204 X_Contract_tbl := Lx_Ent_Contracts;
16205 X_Return_Status := Lx_Return_Status;
16206
16207 ELSE
16208
16209 -- X_Contract_tbl := Lx_Ent_Contracts;
16210 X_Return_Status := Lx_Return_Status;
16211
16212 END IF;
16213
16214
16215 EXCEPTION
16216
16217 WHEN OTHERS THEN
16218
16219 OKC_API.SET_MESSAGE
16220 (P_App_Name => G_APP_NAME_OKC
16221 ,P_Msg_Name => G_UNEXPECTED_ERROR
16222 ,P_Token1 => G_SQLCODE_TOKEN
16223 ,P_Token1_Value => SQLCODE
16224 ,P_Token2 => G_SQLERRM_TOKEN
16225 ,P_Token2_Value => SQLERRM);
16226
16227 OKC_API.SET_MESSAGE
16228 (P_App_Name => G_APP_NAME_OKC
16229 ,P_Msg_Name => G_DEBUG_TOKEN
16230 ,P_Token1 => G_PACKAGE_TOKEN
16231 ,P_Token1_Value => G_PKG_NAME
16232 ,P_Token2 => G_PROGRAM_TOKEN
16233 ,P_Token2_Value => 'Search_Contracts');
16234
16235 -- X_Result := G_FALSE;
16236 X_Return_Status := G_RET_STS_UNEXP_ERROR;
16237
16238 END Search_Contracts;
16239
16240 PROCEDURE Get_Contracts_Expiration
16241 (p_api_version IN Number
16242 ,p_init_msg_list IN Varchar2
16243 ,p_contract_id IN Number
16244 ,x_return_status out nocopy Varchar2
16245 ,x_msg_count out nocopy Number
16246 ,x_msg_data out nocopy Varchar2
16247 ,x_contract_end_date out nocopy date
16248 ,x_Contract_Grace_Duration out nocopy number
16249 ,x_Contract_Grace_Period out nocopy VARCHAR2)
16250
16251 IS
16252
16253 CURSOR KHDR_Date IS
16254 select end_date
16255 from OKC_K_HEADERS_ALL_B -- OKC_K_HEADERS_B -- Modified for 12.0 MOAC project (JVARGHES)
16256 where id = p_contract_id;
16257
16258 Lx_CHR_Id CONSTANT Gx_OKS_Id := p_contract_id;
16259
16260 Lx_Result Gx_Boolean;
16261 Lx_Return_Status Gx_Ret_Sts;
16262
16263 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
16264
16265 G_GRACE_PROFILE_SET VARCHAR2(1);
16266
16267 BEGIN
16268
16269 Lx_Result := G_TRUE;
16270 Lx_Return_Status := G_RET_STS_SUCCESS;
16271
16272 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
16273
16274 for KHDR_Date_rec in KHDR_Date loop
16275
16276 x_contract_end_date := KHDR_Date_rec.end_date;
16277
16278 end loop;
16279
16280 IF (G_GRACE_PROFILE_SET = 'Y') THEN
16281
16282 Get_Contract_Grace
16283 (P_Contract_Id => p_contract_id
16284 ,P_Set_ExcepionStack => G_FALSE
16285 ,x_grace_period => x_Contract_Grace_Period
16286 ,x_grace_duration => x_Contract_Grace_Duration
16287 ,X_Result => Lx_Result
16288 ,X_Return_Status => Lx_Return_Status);
16289
16290 IF Lx_Result <> G_TRUE THEN
16291 RAISE L_EXCEP_UNEXPECTED_ERR;
16292 END IF;
16293
16294 END IF;
16295
16296 EXCEPTION
16297
16298 WHEN OTHERS THEN
16299
16300 OKC_API.SET_MESSAGE
16301 (P_App_Name => G_APP_NAME_OKC
16302 ,P_Msg_Name => G_UNEXPECTED_ERROR
16303 ,P_Token1 => G_SQLCODE_TOKEN
16304 ,P_Token1_Value => SQLCODE
16305 ,P_Token2 => G_SQLERRM_TOKEN
16306 ,P_Token2_Value => SQLERRM);
16307
16308 OKC_API.SET_MESSAGE
16309 (P_App_Name => G_APP_NAME_OKC
16310 ,P_Msg_Name => G_DEBUG_TOKEN
16311 ,P_Token1 => G_PACKAGE_TOKEN
16312 ,P_Token1_Value => G_PKG_NAME
16313 ,P_Token2 => G_PROGRAM_TOKEN
16314 ,P_Token2_Value => 'Get_Contracts_Expiration');
16315
16316 -- X_Result := G_FALSE;
16317 X_Return_Status := G_RET_STS_UNEXP_ERROR;
16318
16319 END Get_Contracts_Expiration;
16320
16321 PROCEDURE Get_Service_PO
16322 (P_CHR_Id IN Gx_OKS_Id
16323 ,P_Set_ExcepionStack IN Gx_Boolean
16324 ,X_Service_PO out nocopy VARCHAR2
16325 ,X_Service_PO_required out nocopy VARCHAR2
16326 ,X_Result out nocopy Gx_Boolean
16327 ,X_Return_Status out nocopy Gx_Ret_Sts)
16328 IS
16329
16330
16331
16332 CURSOR Lx_Csr_SvcPO(Cx_CHR_Id IN Gx_OKS_Id) IS
16333 SELECT service_po_number,service_po_required
16334 FROM OKS_K_Headers_B CHR
16335 WHERE CHR.chr_Id = Cx_CHR_Id;
16336
16337 Lx_CHR_Id CONSTANT Gx_OKS_Id := P_CHR_Id;
16338 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
16339
16340 Lx_Service_PO Oks_K_headers_b.service_po_number%TYPE;
16341 Lx_Service_PO_Required Oks_K_headers_b.service_po_required%TYPE;
16342
16343
16344 Lx_Result Gx_Boolean;
16345 Lx_Return_Status Gx_Ret_Sts;
16346
16347 L_EXCEP_NO_DATA_FOUND EXCEPTION;
16348
16349 BEGIN
16350
16351 Lx_Result := G_TRUE;
16352 Lx_Return_Status := G_RET_STS_SUCCESS;
16353
16354 OPEN Lx_Csr_SvcPO(Lx_CHR_Id);
16355 FETCH Lx_Csr_SvcPO INTO Lx_Service_PO,Lx_Service_PO_Required;
16356
16357 IF Lx_Csr_SvcPO%NOTFOUND THEN
16358
16359 CLOSE Lx_Csr_SvcPO;
16360 RAISE L_EXCEP_NO_DATA_FOUND;
16361
16362 END IF;
16363
16364 CLOSE Lx_Csr_SvcPO;
16365
16366 X_Service_PO := Lx_Service_PO;
16367 X_Service_PO_Required := Lx_Service_PO_Required;
16368
16369 X_Result := Lx_Result;
16370 X_Return_Status := Lx_Return_Status;
16371
16372 EXCEPTION
16373
16374 WHEN L_EXCEP_NO_DATA_FOUND THEN
16375
16376 Lx_Result := G_FALSE;
16377
16378 IF Lx_Set_ExcepionStack = G_TRUE THEN
16379
16380 OKC_API.SET_MESSAGE
16381 (p_app_name => G_APP_NAME_OKC
16382 ,p_msg_name => G_INVALID_VALUE
16383 ,p_token1 => G_COL_NAME_TOKEN
16384 ,p_token1_value => 'Service PO');
16385
16386 Lx_Return_Status := G_RET_STS_ERROR;
16387
16388 END IF;
16389
16390 X_Result := Lx_Result;
16391 X_Return_Status := Lx_Return_Status;
16392
16393 WHEN OTHERS THEN
16394
16395 IF Lx_Csr_SvcPO%ISOPEN THEN
16396 CLOSE Lx_Csr_SvcPO;
16397 END IF;
16398
16399 OKC_API.SET_MESSAGE
16400 (P_App_Name => G_APP_NAME_OKC
16401 ,P_Msg_Name => G_UNEXPECTED_ERROR
16402 ,P_Token1 => G_SQLCODE_TOKEN
16403 ,P_Token1_Value => SQLCODE
16404 ,P_Token2 => G_SQLERRM_TOKEN
16405 ,P_Token2_Value => SQLERRM);
16406
16407 OKC_API.SET_MESSAGE
16408 (P_App_Name => G_APP_NAME_OKC
16409 ,P_Msg_Name => G_DEBUG_TOKEN
16410 ,P_Token1 => G_PACKAGE_TOKEN
16411 ,P_Token1_Value => G_PKG_NAME
16412 ,P_Token2 => G_PROGRAM_TOKEN
16413 ,P_Token2_Value => 'Get_Service_PO');
16414
16415 X_Result := G_FALSE;
16416 X_Return_Status := G_RET_STS_UNEXP_ERROR;
16417
16418 END Get_Service_PO;
16419
16420 PROCEDURE Get_Contract_Grace
16421 (P_Contract_Id IN number
16422 ,P_Set_ExcepionStack IN Gx_Boolean
16423 ,x_grace_period OUT NOCOPY varchar2
16424 ,x_grace_duration OUT NOCOPY number
16425 ,X_Result out nocopy Gx_Boolean
16426 ,X_Return_Status out nocopy Gx_Ret_Sts)
16427 IS
16428
16429 CURSOR Lx_Csr_HDR_Grace(Cx_HDR_Id IN Gx_OKS_Id) IS
16430 SELECT Grace_Duration Duration
16431 ,Grace_Period TimeUnit
16432 FROM Oks_K_Headers_B OKH
16433 WHERE OKH.chr_Id = Cx_HDR_Id;
16434
16435 Lx_CHR_Id CONSTANT Gx_OKS_Id := P_Contract_id;
16436 Lx_Set_ExcepionStack CONSTANT Gx_Boolean := P_Set_ExcepionStack;
16437
16438 -- Lx_Service_PO Okc_Rules_B.Rule_Information1%TYPE;
16439
16440 Lx_Result Gx_Boolean;
16441 Lx_Return_Status Gx_Ret_Sts;
16442
16443 L_EXCEP_NO_DATA_FOUND EXCEPTION;
16444
16445 BEGIN
16446
16447 Lx_Result := G_TRUE;
16448 Lx_Return_Status := G_RET_STS_SUCCESS;
16449
16450 -- IF G_GRACE_PROFILE_SET = 'Y' then
16451 FOR Idx in Lx_Csr_HDR_Grace(Lx_CHR_Id) LOOP
16452
16453 x_grace_period := Idx.TimeUnit;
16454 x_grace_duration := Idx.Duration;
16455
16456 END LOOP;
16457 -- END IF;
16458
16459 X_Result := Lx_Result;
16460 X_Return_Status := Lx_Return_Status;
16461
16462 EXCEPTION
16463
16464 WHEN OTHERS THEN
16465
16466
16467 OKC_API.SET_MESSAGE
16468 (P_App_Name => G_APP_NAME_OKC
16469 ,P_Msg_Name => G_UNEXPECTED_ERROR
16470 ,P_Token1 => G_SQLCODE_TOKEN
16471 ,P_Token1_Value => SQLCODE
16472 ,P_Token2 => G_SQLERRM_TOKEN
16473 ,P_Token2_Value => SQLERRM);
16474
16475 OKC_API.SET_MESSAGE
16476 (P_App_Name => G_APP_NAME_OKC
16477 ,P_Msg_Name => G_DEBUG_TOKEN
16478 ,P_Token1 => G_PACKAGE_TOKEN
16479 ,P_Token1_Value => G_PKG_NAME
16480 ,P_Token2 => G_PROGRAM_TOKEN
16481 ,P_Token2_Value => 'Get_Contract_Grace');
16482
16483 X_Result := G_FALSE;
16484 X_Return_Status := G_RET_STS_UNEXP_ERROR;
16485
16486
16487 END Get_Contract_Grace;
16488
16489 --================================================================
16490
16491 PROCEDURE VALIDATE_CONTRACT_LINE
16492 (p_api_version IN NUMBER
16493 ,p_init_msg_list IN VARCHAR2
16494 ,p_contract_line_id IN NUMBER
16495 ,p_busiproc_id IN NUMBER
16496 ,p_request_date IN DATE
16497 ,p_covlevel_tbl_in IN covlevel_tbl_type
16498 ,p_verify_combination IN VARCHAR2
16499 ,x_return_status OUT nocopy Varchar2
16500 ,x_msg_count OUT nocopy Number
16501 ,x_msg_data OUT nocopy Varchar2
16502 ,x_covlevel_tbl_out OUT NOCOPY covlevel_tbl_type
16503 ,x_combination_valid OUT NOCOPY VARCHAR2)
16504
16505
16506
16507 IS
16508
16509 Lx_Result VARCHAR2(1);
16510 x_result VARCHAR2(1);
16511 Lx_Return_Status VARCHAR2(1);
16512
16513 L_EXCEP_NULL_VALUE EXCEPTION;
16514 EXCEPTION_HALT_VALIDATION EXCEPTION;
16515 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
16516 Lx_Set_ExcepionStack VARCHAR2(1);
16517
16518 l_busiproc_id VARCHAR2(30);
16519 l_request_date DATE;
16520 l_contract_line_id NUMBER;
16521 l_busiproc_match VARCHAR2(1);
16522 j NUMBER ;
16523
16524 Lx_Party_Id Okx_Customer_Accounts_V.Party_Id%TYPE;
16525 Lx_Product_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
16526 Lx_Item_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
16527 Lx_System_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
16528 Lx_Cust_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
16529 Lx_Site_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
16530 Lx_Party_CovLevels OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
16531 l_jtot_object1_code VARCHAR2(30);
16532
16533 prod_index NUMBER;
16534 system_index NUMBER;
16535 l_check_system VARCHAR2(1);
16536 l_check_custprod VARCHAR2(1);
16537 partysite_index NUMBER;
16538 l_check_site VARCHAR2(1);
16539 l_check_party VARCHAR2(1);
16540 party_index NUMBER;
16541 l_org_id NUMBER;
16542 l_inv_org_id NUMBER;
16543
16544 Ln_Organization_Id NUMBER;
16545 Ln_Org_Id NUMBER;
16546 item_index NUMBER;
16547 l_check_item VARCHAR2(1);
16548 l_check_cust VARCHAR2(1);
16549 custacct_index NUMBER;
16550 k NUMBER;
16551
16552 CURSOR CUR_GET_ORG_ID(l_contract_line_id IN NUMBER) IS
16553 SELECT hdr.AUTHORING_ORG_ID, hdr.INV_ORGANIZATION_ID
16554 FROM OKC_K_HEADERS_ALL_B hdr, OKC_K_LINES_B lines
16555 WHERE lines.id = l_contract_line_id
16556 AND lines.chr_id = hdr.id ;
16557
16558
16559 FUNCTION VALIDATE_BUSINESS_PROCESS(P_CONTRACT_LINE_ID IN NUMBER
16560 ,P_BUSIPROC_ID IN VARCHAR2
16561 ,P_EFFECTIVE_DATE IN DATE) RETURN VARCHAR2 IS
16562
16563
16564 -- Commented out by JVARGHES on Apr 12, 2005
16565 -- For the fix of bug# 4282785
16566 /*
16567 CURSOR CUR_GET_BP(p_contract_line_id IN NUMBER, p_effective_date IN DATE) IS
16568 SELECT lines1.chr_id chr_id,
16569 lines2.id bp_line_id,
16570 lines2.start_date start_date,
16571 lines2.end_date end_date,
16572 items.object1_id1
16573 FROM OKC_K_LINES_B lines1,
16574 OKC_K_LINES_B lines2,
16575 OKC_K_LINES_B lines3,
16576 OKC_K_ITEMS items
16577 WHERE lines1.id = p_contract_line_id
16578 AND lines2.cle_id = lines1.id
16579 AND lines2.lse_id IN (2,15,20)
16580 AND lines3.cle_id = lines2.id
16581 AND lines3.lse_id IN (3,16,21)
16582 AND items.cle_id = lines3.id
16583 AND items.dnz_chr_id = lines3.dnz_chr_id
16584 AND items.jtot_object1_code = 'OKX_BUSIPROC'
16585 AND items.object1_id1 = p_busiproc_id
16586 and items.object1_id2 = '#' -- new where clause added to address performance bug 3755019
16587 AND trunc(p_effective_date) BETWEEN NVL(lines3.start_date, trunc(sysdate))
16588 AND NVL(lines3.end_date, trunc(sysdate)) ;
16589 */
16590
16591 -- Modified by JVARGHES on Apr 12, 2005
16592 -- For the fix of bug# 4282785
16593
16594 --
16595 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16596 --
16597
16598 CURSOR CUR_GET_BP(p_contract_line_id IN NUMBER) IS
16599 SELECT /*+ ordered use_nl(lines1,KSL,lines3,items) index(items okc_k_items_n1) */ -- Bug Fix:5694209
16600 decode(KSL.Standard_Cov_YN,'Y', lines1.start_date,lines3.start_date) start_date
16601 ,decode(KSL.Standard_Cov_YN,'Y', lines1.end_date,lines3.end_date) end_date
16602 , lines3.id bpl_id
16603 , ksl.Standard_Cov_YN Standard_Cov_YN
16604 FROM OKC_K_LINES_B lines1,
16605 OKS_K_LINES_B KSL,
16606 OKC_K_LINES_B lines3,
16607 OKC_K_ITEMS items
16608 WHERE lines1.id = p_contract_line_id
16609 AND lines1.lse_id IN (1,14,19)
16610 and ksl.cle_id = lines1.id
16611 AND lines3.cle_id = KSL.Coverage_Id
16612 AND lines3.lse_id IN (3,16,21)
16613 AND items.cle_id = lines3.id
16614 AND items.dnz_chr_id = lines3.dnz_chr_id
16615 AND items.jtot_object1_code = 'OKX_BUSIPROC'
16616 AND items.object1_id1 = p_busiproc_id
16617 and items.object1_id2 = '#' -- new where clause added to address performance bug 3755019
16618 AND ROWNUM <= 1;
16619
16620 --
16621
16622 l_busiproc_id VARCHAR2(30);
16623 l_effective_date DATE;
16624 l_contract_line_id NUMBER;
16625 x_busiproc_match VARCHAR2(1);
16626
16627
16628 --
16629 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16630 --
16631
16632 Ld_BPL_Start DATE;
16633 Ln_BPL_OFS_Duration NUMBER;
16634 Lv_BPL_OFS_UOM VARCHAR2(100);
16635
16636 Lx_Return_Status VARCHAR2(10);
16637
16638 L_EXCEP_NO_DATA_FOUND EXCEPTION;
16639 --
16640 --
16641
16642 BEGIN
16643
16644 x_busiproc_match := 'N';
16645
16646 l_busiproc_id := P_BUSIPROC_ID ;
16647 l_effective_date := P_EFFECTIVE_DATE ;
16648 l_contract_line_id := P_CONTRACT_LINE_ID ;
16649
16650
16651 -- Comented out by JVARGHES on Apr 12, 2005
16652 -- For the fix of bug# 4282785
16653
16654 /*
16655 FOR bp_rec IN CUR_GET_BP(l_contract_line_id, l_effective_date)
16656 LOOP
16657 x_busiproc_match := 'Y' ;
16658 END LOOP ;
16659 */
16660
16661 -- Modified by JVARGHES on Apr 12, 2005
16662 -- For the fix of bug# 4282785
16663
16664 --
16665 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16666 --
16667 -- OPEN CUR_GET_BP(p_contract_line_id => l_contract_line_id, p_effective_date => l_effective_date);
16668 -- FETCH CUR_GET_BP INTO x_busiproc_match;
16669 --
16670 -- IF CUR_GET_BP%FOUND THEN
16671 -- x_busiproc_match := 'Y';
16672 -- ELSE
16673 -- x_busiproc_match := 'N';
16674 -- END IF;
16675 --
16676 -- CLOSE CUR_GET_BP;
16677 --
16678 --
16679 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16680 --
16681
16682 x_busiproc_match := 'N';
16683
16684 FOR bp_rec IN CUR_GET_BP(p_contract_line_id => l_contract_line_id)
16685 LOOP
16686
16687 IF bp_rec.Standard_Cov_YN = 'Y' THEN
16688
16689 Get_BP_Line_Start_Offset
16690 (P_BPL_Id => bp_rec.BPL_Id
16691 ,P_SVL_Start => bp_rec.start_date
16692 ,X_BPL_OFS_Start => Ld_BPL_Start
16693 ,X_BPL_OFS_Duration => Ln_BPL_OFS_Duration
16694 ,X_BPL_OFS_UOM => Lv_BPL_OFS_UOM
16695 ,X_Return_Status => Lx_Return_Status);
16696
16697 IF Lx_Return_Status<> G_RET_STS_SUCCESS THEN
16698 RAISE L_EXCEP_NO_DATA_FOUND;
16699 END IF;
16700
16701 ELSE
16702
16703 Ld_BPL_Start := bp_rec.start_date;
16704
16705 END IF;
16706
16707 IF l_effective_date between NVL(Ld_BPL_Start,trunc(sysdate))
16708 AND NVL(bp_rec.end_date, trunc(sysdate)) THEN
16709 x_busiproc_match := 'Y';
16710 EXIT;
16711
16712 END IF;
16713
16714 END LOOP;
16715
16716 --
16717 --
16718 RETURN x_busiproc_match ;
16719
16720 END VALIDATE_BUSINESS_PROCESS;
16721
16722
16723 FUNCTION VALIDATE_COVLEVELS(p_contract_line_id IN NUMBER,
16724 p_object1_id1 IN VARCHAR2,
16725 p_object1_id2 IN VARCHAR2,
16726 p_object_code IN VARCHAR2)
16727 RETURN VARCHAR2 IS
16728
16729 CURSOR CUR_GET_COVLEVELS(l_contract_line_id IN NUMBER, l_object1_id1 IN VARCHAR2, l_object1_id2 IN VARCHAR2,
16730 l_object_code IN VARCHAR2) IS
16731
16732 SELECT 'X'
16733 FROM OKC_K_LINES_B lines1,
16734 OKC_K_LINES_B lines2,
16735 OKC_K_ITEMS items
16736 WHERE lines1.id = l_contract_line_id
16737 AND lines2.cle_id = lines1.id
16738 AND lines2.dnz_chr_id = lines1.chr_id
16739 AND items.cle_id = lines2.id
16740 AND items.object1_id1 = l_object1_id1
16741 AND items.object1_id2 = l_object1_id2
16742 AND items.jtot_object1_code = l_object_code ;
16743
16744
16745 lx_contract_line_id NUMBER;
16746 lx_object1_id1 VARCHAR2(40);
16747 lx_object1_id2 VARCHAR2(200);
16748 lx_object_code VARCHAR2(30);
16749 x_covlevel_exist VARCHAR2(1);
16750 l_dummy VARCHAR2(1);
16751
16752 BEGIN
16753
16754 lx_contract_line_id := p_contract_line_id;
16755 lx_object1_id1 := p_object1_id1;
16756 lx_object1_id2 := p_object1_id2;
16757 lx_object_code := p_object_code;
16758
16759 OPEN CUR_GET_COVLEVELS(lx_contract_line_id, lx_object1_id1,lx_object1_id2,lx_object_code);
16760 FETCH CUR_GET_COVLEVELS INTO l_dummy;
16761 CLOSE CUR_GET_COVLEVELS;
16762
16763 IF l_dummy = 'X' THEN
16764 x_covlevel_exist := 'Y';
16765 ELSE
16766 x_covlevel_exist := 'N';
16767 END IF ;
16768
16769 RETURN x_covlevel_exist ;
16770
16771 END VALIDATE_COVLEVELS ;
16772
16773
16774 BEGIN
16775
16776 Lx_Result := OKC_API.G_TRUE;
16777 x_result := OKC_API.G_TRUE;
16778 Lx_Set_ExcepionStack := OKC_API.G_TRUE;
16779
16780 -- check that the p_contract_line_id is not null
16781
16782 OKS_ENTITLEMENTS_PVT.Validate_Required_NumValue
16783 (P_Num_Value => p_contract_line_id
16784 ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
16785 ,P_ExcepionMsg => 'Contract Line'
16786 ,X_Result => Lx_result
16787 ,X_Return_Status => Lx_Return_Status);
16788
16789 IF Lx_result <> G_TRUE THEN
16790 RAISE L_EXCEP_NULL_VALUE;
16791 END IF;
16792
16793 OPEN CUR_GET_ORG_ID(p_contract_line_id);
16794 FETCH CUR_GET_ORG_ID INTO l_org_id, l_inv_org_id;
16795 CLOSE CUR_GET_ORG_ID;
16796
16797 IF p_busiproc_id IS NOT NULL THEN
16798 l_busiproc_id := TO_CHAR(p_busiproc_id) ;
16799 l_request_date := nvl(p_request_date,sysdate);
16800 l_contract_line_id := p_contract_line_id ;
16801
16802 l_busiproc_match:= VALIDATE_BUSINESS_PROCESS(P_CONTRACT_LINE_ID => l_contract_line_id,
16803 P_BUSIPROC_ID => l_busiproc_id,
16804 P_EFFECTIVE_DATE => l_request_date);
16805
16806
16807
16808 -- if the call TO above function returns 'N', update the input cov level tbl to N
16809
16810 IF l_busiproc_match = 'N' THEN
16811
16812 x_covlevel_tbl_out := p_covlevel_tbl_in ;
16813
16814 j:= x_covlevel_tbl_out.FIRST;
16815
16816 FOR covlevel_rec in x_covlevel_tbl_out.FIRST..x_covlevel_tbl_out.LAST
16817 LOOP
16818 x_covlevel_tbl_out(j).covered_yn := 'N';
16819 j:= j + 1 ;
16820 END LOOP ;
16821
16822 IF p_verify_combination = 'Y' THEN
16823 x_combination_valid:= 'N';
16824 END IF ;
16825
16826 RAISE EXCEPTION_HALT_VALIDATION;
16827
16828 END IF;
16829
16830 IF (p_busiproc_id IS NULL) OR
16831 (p_busiproc_id IS NOT NULL and l_busiproc_match = 'Y') THEN -- CHECK THE INPUT COVLEVEL TBL fucntion return Y
16832
16833 IF p_covlevel_tbl_in.COUNT > 0 THEN
16834
16835 Ln_Organization_Id := l_inv_org_id ;
16836 Ln_Org_Id := l_org_id;
16837
16838 x_covlevel_tbl_out := p_covlevel_tbl_in ;
16839
16840 FOR i in p_covlevel_tbl_in.FIRST .. p_covlevel_tbl_in.LAST LOOP
16841
16842 IF p_covlevel_tbl_in(i).covlevel_code = 'OKX_CUSTPROD' THEN
16843
16844 l_jtot_object1_code := 'OKX_CUSTPROD';
16845
16846 OKS_ENTITLEMENTS_PVT.Get_Product_CovLevels
16847 (P_CovProd_Obj_Id => p_covlevel_tbl_in(i).covlevel_id, -- l_jtot_object1_code,
16848 P_Organization_Id => Ln_Organization_Id,
16849 P_Org_Id => Ln_Org_Id,
16850 X_Party_Id => Lx_Party_Id,
16851 X_Product_CovLevels => Lx_Product_CovLevels,
16852 X_Result => Lx_Result,
16853 X_Return_Status => Lx_Return_Status);
16854
16855 IF Lx_Result <> G_TRUE THEN
16856 RAISE L_EXCEP_UNEXPECTED_ERR;
16857 END IF;
16858
16859 IF LX_PRODUCT_COVLEVELS.COUNT > 0 THEN
16860
16861 FOR prod_index in Lx_Product_CovLevels.FIRST .. Lx_Product_CovLevels.LAST LOOP
16862
16863 l_check_custprod := VALIDATE_COVLEVELS(p_contract_line_id,
16864 LX_PRODUCT_COVLEVELS(prod_index).RX_OBJ1ID1,
16865 LX_PRODUCT_COVLEVELS(prod_index).RX_OBJ1ID2,
16866 LX_PRODUCT_COVLEVELS(prod_index).RX_OBJCODE);
16867
16868 IF l_check_custprod = 'Y' THEN
16869 x_covlevel_tbl_out(i).covered_yn :='Y';
16870 EXIT ;
16871 ELSE
16872 x_covlevel_tbl_out(i).covered_yn :='N';
16873 END IF ;
16874
16875 END LOOP ; -- END LOOP FOR LX_PRODUCT_COVLEVELS
16876
16877 END IF ; -- END IF LX_PRODUCT_COVLEVELS.COUNT > 0
16878
16879 ELSIF p_covlevel_tbl_in(i).covlevel_code = 'OKX_COVITEM' THEN
16880
16881 l_jtot_object1_code := 'OKX_COVITEM';
16882
16883 OKS_ENTITLEMENTS_PVT.Get_Item_CovLevels(P_CovItem_Obj_Id => p_covlevel_tbl_in(i).covlevel_id,
16884 P_Organization_Id => Ln_Organization_Id,
16885 X_Item_CovLevels => Lx_Item_CovLevels,
16886 X_Result => Lx_Result,
16887 X_Return_Status => Lx_Return_Status);
16888
16889
16890 IF Lx_Result <> G_TRUE THEN
16891 RAISE L_EXCEP_UNEXPECTED_ERR;
16892 END IF;
16893
16894 IF LX_ITEM_COVLEVELS.COUNT > 0 THEN
16895
16896 FOR item_index in Lx_Item_CovLevels.FIRST .. Lx_Item_CovLevels.LAST LOOP
16897
16898 l_check_item := VALIDATE_COVLEVELS(p_contract_line_id,
16899 LX_ITEM_COVLEVELS(item_index).RX_OBJ1ID1,
16900 LX_ITEM_COVLEVELS(item_index).RX_OBJ1ID2,
16901 LX_ITEM_COVLEVELS(item_index).RX_OBJCODE);
16902
16903 IF l_check_item = 'Y' THEN
16904 x_covlevel_tbl_out(i).covered_yn :='Y';
16905 EXIT ;
16906 ELSE
16907 x_covlevel_tbl_out(i).covered_yn :='N';
16908 END IF ;
16909
16910 END LOOP ;
16911
16912 END IF ; -- END IF FOR LX_ITEM_COVLEVELS.COUNT > 0
16913
16914 ELSIF p_covlevel_tbl_in(i).covlevel_code = 'OKX_COVSYST' THEN
16915
16916 l_jtot_object1_code := 'OKX_COVSYST';
16917
16918 OKS_ENTITLEMENTS_PVT.Get_System_CovLevels(P_CovSys_Obj_Id => p_covlevel_tbl_in(i).covlevel_id,
16919 P_Org_Id => Ln_Org_Id,
16920 X_System_CovLevels => Lx_System_CovLevels,
16921 X_Result => Lx_Result,
16922 X_Return_Status => Lx_Return_Status );
16923
16924 IF Lx_Result <> G_TRUE THEN
16925 RAISE L_EXCEP_UNEXPECTED_ERR;
16926 END IF;
16927
16928 IF LX_SYSTEM_COVLEVELS.COUNT > 0 THEN
16929
16930 FOR system_index in Lx_System_CovLevels.FIRST .. Lx_System_CovLevels.LAST LOOP
16931
16932 l_check_system := VALIDATE_COVLEVELS(p_contract_line_id,
16933 LX_SYSTEM_COVLEVELS(system_index).RX_OBJ1ID1,
16934 LX_SYSTEM_COVLEVELS(system_index).RX_OBJ1ID2,
16935 LX_SYSTEM_COVLEVELS(system_index).RX_OBJCODE);
16936
16937 IF l_check_system = 'Y' THEN
16938 x_covlevel_tbl_out(i).covered_yn :='Y';
16939 EXIT ;
16940 ELSE
16941 x_covlevel_tbl_out(i).covered_yn :='N';
16942 END IF ;
16943
16944 END LOOP ;
16945
16946 END IF ; -- END IF FOR LX_SYSTEM_COVLEVELS.COUNT > 0
16947
16948 ELSIF p_covlevel_tbl_in(i).covlevel_code = 'OKX_CUSTACCT' THEN
16949
16950 l_jtot_object1_code := 'OKX_CUSTACCT';
16951
16952 OKS_ENTITLEMENTS_PVT.Get_Customer_CovLevels(P_CovCust_Obj_Id => p_covlevel_tbl_in(i).covlevel_id,
16953 X_Party_Id => Lx_Party_Id,
16954 X_Customer_CovLevels => Lx_Cust_CovLevels,
16955 X_Result => Lx_Result,
16956 X_Return_Status => Lx_Return_Status );
16957 IF Lx_Result <> G_TRUE THEN
16958 RAISE L_EXCEP_UNEXPECTED_ERR;
16959 END IF;
16960
16961 IF LX_CUST_COVLEVELS.COUNT > 0 THEN
16962
16963 FOR custacct_index in Lx_Cust_CovLevels.FIRST .. Lx_Cust_CovLevels.LAST LOOP
16964
16965 l_check_cust := VALIDATE_COVLEVELS(p_contract_line_id,
16966 LX_CUST_COVLEVELS(custacct_index).RX_OBJ1ID1,
16967 LX_CUST_COVLEVELS(custacct_index).RX_OBJ1ID2,
16968 LX_CUST_COVLEVELS(custacct_index).RX_OBJCODE);
16969
16970 IF l_check_cust = 'Y' THEN
16971 x_covlevel_tbl_out(i).covered_yn :='Y';
16972 EXIT ;
16973 ELSE
16974 x_covlevel_tbl_out(i).covered_yn :='N';
16975 END IF ;
16976
16977 END LOOP ;
16978
16979 END IF ; -- END IF FOR LX_CUST_COVLEVELS.COUNT > 0
16980
16981 ELSIF p_covlevel_tbl_in(i).covlevel_code = 'OKX_PARTYSITE' THEN
16982
16983 l_jtot_object1_code := 'OKX_PARTYSITE';
16984
16985 OKS_ENTITLEMENTS_PVT.Get_Site_CovLevels(P_CovSite_Obj_Id => p_covlevel_tbl_in(i).covlevel_id,
16986 P_Org_Id => Ln_Org_Id,
16987 X_Site_CovLevels => Lx_Site_CovLevels,
16988 X_Result => Lx_Result,
16989 X_Return_Status => Lx_Return_Status );
16990
16991 IF Lx_Result <> G_TRUE THEN
16992 RAISE L_EXCEP_UNEXPECTED_ERR;
16993 END IF;
16994
16995 IF LX_SITE_COVLEVELS.COUNT > 0 THEN
16996
16997 FOR partysite_index in Lx_Site_CovLevels.FIRST .. Lx_Site_CovLevels.LAST LOOP
16998
16999 l_check_site := VALIDATE_COVLEVELS(p_contract_line_id,
17000 LX_SITE_COVLEVELS(partysite_index).RX_OBJ1ID1,
17001 LX_SITE_COVLEVELS(partysite_index).RX_OBJ1ID2,
17002 LX_SITE_COVLEVELS(partysite_index).RX_OBJCODE);
17003
17004
17005 IF l_check_site = 'Y' THEN
17006 x_covlevel_tbl_out(i).covered_yn :='Y';
17007 EXIT ;
17008 ELSE
17009 x_covlevel_tbl_out(i).covered_yn :='N';
17010 END IF ;
17011
17012 END LOOP ;
17013
17014 END IF ; -- END IF FOR LX_SITE_COVLEVELS.COUNT > 0
17015
17016 ELSIF p_covlevel_tbl_in(i).covlevel_code = 'OKX_PARTY' THEN
17017
17018 l_jtot_object1_code := 'OKX_PARTY';
17019
17020 OKS_ENTITLEMENTS_PVT.Get_Party_CovLevels(P_CovParty_Obj_Id => p_covlevel_tbl_in(i).covlevel_id,
17021 X_Party_CovLevels => Lx_Party_CovLevels,
17022 X_Result => Lx_Result,
17023 X_Return_Status => Lx_Return_Status );
17024
17025 IF Lx_Result <> G_TRUE THEN
17026 RAISE L_EXCEP_UNEXPECTED_ERR;
17027 END IF;
17028
17029 IF LX_PARTY_COVLEVELS.COUNT > 0 THEN
17030
17031 FOR party_index in Lx_Party_CovLevels.FIRST .. Lx_Party_CovLevels.LAST LOOP
17032
17033 l_check_party := VALIDATE_COVLEVELS(p_contract_line_id,
17034 LX_PARTY_COVLEVELS(party_index).RX_OBJ1ID1,
17035 LX_PARTY_COVLEVELS(party_index).RX_OBJ1ID2,
17036 LX_PARTY_COVLEVELS(party_index).RX_OBJCODE);
17037
17038 IF l_check_party = 'Y' THEN
17039 x_covlevel_tbl_out(i).covered_yn :='Y';
17040 EXIT ;
17041 ELSE
17042 x_covlevel_tbl_out(i).covered_yn :='N';
17043 END IF ;
17044
17045 END LOOP ;
17046
17047 END IF ; -- END IF FOR LX_PARTY_COVLEVELS.COUNT > 0
17048
17049 END IF ;
17050
17051 END LOOP ;
17052
17053 -- check here for combination..
17054
17055
17056 IF p_verify_combination = 'Y' THEN
17057
17058 k := x_covlevel_tbl_out.first ;
17059
17060 x_combination_valid:= 'N';
17061
17062 FOR out_rec IN x_covlevel_tbl_out.FIRST .. x_covlevel_tbl_out.LAST
17063 LOOP
17064 /*
17065 IF x_covlevel_tbl_out(k).covered_yn = 'N' THEN
17066 x_combination_valid:= 'N';
17067 EXIT;
17068 END IF ;
17069 */
17070
17071 /********************************************************************************
17072 The logic is changed as that is what is required.
17073 If contract line covers any one of the input covered level records in
17074 , that is covered_yn = 'Y' , then as per the new
17075 inputs from the Service Request at a later date, the contract line
17076 should be considered valid and x_combination_valid should return 'Y'.
17077 ********************************************************************************/
17078
17079 IF x_covlevel_tbl_out(k).covered_yn = 'Y' THEN
17080 x_combination_valid:= 'Y';
17081 EXIT;
17082 END IF ;
17083
17084 k := x_covlevel_tbl_out.NEXT(k);
17085 END LOOP ;
17086 END IF ;
17087 END IF ;
17088 END IF ;
17089 END IF ;
17090
17091 LX_PRODUCT_COVLEVELS.DELETE;
17092 LX_ITEM_COVLEVELS.DELETE;
17093 LX_SYSTEM_COVLEVELS.DELETE;
17094 LX_CUST_COVLEVELS.DELETE;
17095 LX_SITE_COVLEVELS.DELETE;
17096 LX_PARTY_COVLEVELS.DELETE;
17097
17098 x_return_status:= OKC_API.G_RET_STS_SUCCESS ;
17099
17100
17101
17102 EXCEPTION
17103
17104 WHEN L_EXCEP_NULL_VALUE THEN
17105 X_Result := Lx_Result;
17106 X_Return_Status := Lx_Return_Status;
17107
17108 WHEN EXCEPTION_HALT_VALIDATION THEN
17109
17110 X_Return_Status := OKC_API.G_RET_STS_SUCCESS;
17111 x_combination_valid := 'N';
17112 x_covlevel_tbl_out := p_covlevel_tbl_in;
17113
17114 WHEN L_EXCEP_UNEXPECTED_ERR THEN
17115 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
17116 x_combination_valid := 'N';
17117 x_covlevel_tbl_out := p_covlevel_tbl_in;
17118
17119 WHEN OTHERS THEN
17120
17121 OKC_API.SET_MESSAGE
17122 (P_App_Name => G_APP_NAME_OKC
17123 ,P_Msg_Name => G_UNEXPECTED_ERROR
17124 ,P_Token1 => G_SQLCODE_TOKEN
17125 ,P_Token1_Value => SQLCODE
17126 ,P_Token2 => G_SQLERRM_TOKEN
17127 ,P_Token2_Value => SQLERRM);
17128
17129 OKC_API.SET_MESSAGE
17130 (P_App_Name => G_APP_NAME_OKC
17131 ,P_Msg_Name => G_DEBUG_TOKEN
17132 ,P_Token1 => G_PACKAGE_TOKEN
17133 ,P_Token1_Value => G_PKG_NAME
17134 ,P_Token2 => G_PROGRAM_TOKEN
17135 ,P_Token2_Value => 'Validate_Required_RT_Tokens');
17136
17137 X_Result := G_FALSE;
17138 X_Return_Status := G_RET_STS_UNEXP_ERROR;
17139
17140
17141 END VALIDATE_CONTRACT_LINE;
17142
17143
17144 -- Added by JVARGHES on Feb 03, 2005.
17145 -- for the resolution of Bug# 3796499.
17146
17147 FUNCTION Get_NLS_Day_of_Week(P_Day_of_Week IN VARCHAR2) RETURN VARCHAR2 IS
17148
17149 CURSOR C1(Cv_Day_of_Week IN VARCHAR2) IS
17150 SELECT
17151 DECODE(Cv_Day_of_Week
17152 ,TO_CHAR(SYSDATE, 'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE, 'DY')
17153 ,TO_CHAR(SYSDATE+1,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+1,'DY')
17154 ,TO_CHAR(SYSDATE+2,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+2,'DY')
17155 ,TO_CHAR(SYSDATE+3,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+3,'DY')
17156 ,TO_CHAR(SYSDATE+4,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+4,'DY')
17157 ,TO_CHAR(SYSDATE+5,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+5,'DY')
17158 ,TO_CHAR(SYSDATE+6,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+6,'DY')
17159 ,'-1')
17160 FROM DUAL;
17161
17162 lv_Result VARCHAR2(50);
17163
17164 BEGIN
17165
17166 OPEN C1(Cv_Day_of_Week => P_Day_of_Week);
17167 FETCH C1 INTO lv_Result;
17168 CLOSE C1;
17169
17170 RETURN lv_Result;
17171
17172 END Get_NLS_Day_of_Week;
17173
17174 /*
17175 -- Comment out by JVARGHES on Mar 07, 2005.
17176 -- for the resolution of Bug# 4191909.
17177
17178 FUNCTION Get_NLS_day_of_week(
17179 P_day_of_week IN Varchar2) Return Varchar2 is
17180
17181 l_daynum number;
17182 l_daychar varchar2(100);
17183 l_daypsdchar varchar2(100);
17184 l_daypsdnum number;
17185 l_dayrtnchar varchar2(100);
17186
17187
17188
17189 BEGIN
17190
17191 l_daynum := null;
17192 l_daychar := null;
17193 l_daypsdchar := P_day_of_week;
17194 l_daypsdnum := null;
17195 l_dayrtnchar := null;
17196
17197
17198 if l_daypsdchar = 'SUN' then
17199 l_daypsdnum := 1;
17200 elsif l_daypsdchar = 'MON' then
17201 l_daypsdnum := 2;
17202 elsif l_daypsdchar = 'TUE' then
17203 l_daypsdnum := 3;
17204 elsif l_daypsdchar = 'WED' then
17205 l_daypsdnum := 4;
17206 elsif l_daypsdchar = 'THU' then
17207 l_daypsdnum := 5;
17208 elsif l_daypsdchar = 'FRI' then
17209 l_daypsdnum := 6;
17210 elsif l_daypsdchar = 'SAT' then
17211 l_daypsdnum := 7;
17212 end if;
17213
17214
17215 for i in 0..6 loop
17216
17217
17218 l_daynum := to_number(to_char(sysdate+i,'D'));
17219 l_daychar := to_char(sysdate+i,'DY');
17220
17221
17222 if l_daypsdnum = l_daynum then
17223 l_dayrtnchar := l_daychar;
17224 exit;
17225 end if;
17226
17227 end loop;
17228
17229 if l_dayrtnchar is null then
17230 l_dayrtnchar := 'NOTVALID';
17231 end if;
17232
17233 return l_dayrtnchar;
17234
17235 END Get_NLS_day_of_week;
17236
17237 */
17238
17239 PROCEDURE Get_Valid_Line(
17240 PHd_Id IN NUMBER,
17241 PHd_Start_Date IN Date,
17242 PHd_END_Date IN Date,
17243 PSv_Start_Date IN Date,
17244 PSv_End_Date IN Date,
17245 PSv_Term_Date IN Date,
17246 PIt_Start_Date IN Date,
17247 PIt_End_Date IN Date,
17248 PIt_Term_Date IN Date,
17249 PCo_Start_Date IN Date,
17250 PCo_End_Date IN Date,
17251 PCo_Term_Date IN Date,
17252 P_Request_Date IN Date,
17253 X_Valid_line OUT NOCOPY VARCHAR2,
17254 X_return_Status OUT NOCOPY VARCHAR2) IS
17255
17256
17257
17258 Lv_Request_Date Constant Date := trunc(nvl(p_request_date,SYSDATE));
17259 LHd_END_Date Constant Date := PHd_END_Date ;
17260 LSv_Start_Date Constant Date := PSv_Start_Date ;
17261 LSv_End_Date Constant Date := PSv_End_Date ;
17262 LSv_Term_Date Constant Date := PSv_Term_Date ;
17263 LIt_Start_Date Constant Date := PIt_Start_Date ;
17264 LIt_End_Date Constant Date := PIt_End_Date ;
17265 LIt_Term_Date Constant Date := PIt_Term_Date ;
17266 LCo_Start_Date Constant Date := PCo_Start_Date ;
17267 LCo_End_Date Constant Date := PCo_End_Date ;
17268 LCo_Term_Date Constant Date := PCo_Term_Date ;
17269 LHd_Id Constant NUMBER := PHd_Id;
17270 LSv_Eff_End_Date Date;
17271 LCo_Eff_End_Date Date;
17272 LIt_Eff_End_Date Date;
17273
17274 BEGIN
17275
17276 IF LSv_Term_Date < LSv_End_Date THEN
17277 LSv_Eff_End_Date := LSv_Term_Date;
17278 ELSE
17279 LSv_Eff_End_Date := LSv_End_Date;
17280
17281 -- grace period changes starts
17282
17283 IF G_GRACE_PROFILE_SET = 'Y' AND LSv_Term_Date IS NULL THEN
17284 -- grace period changes are done only if line end date matches contract end date
17285
17286 IF trunc(LSv_Eff_End_Date) = trunc(LHd_END_Date) THEN
17287 --- truncating the dates to remove accidental existence of time components in dates.
17288 LSv_Eff_End_Date := trunc(Get_Final_End_Date(LHd_Id,LSv_Eff_End_Date));
17289 END IF;
17290
17291 END IF;
17292
17293 -- grace period changes ends
17294 END IF;
17295
17296 IF LCo_Term_Date < LCo_End_Date THEN
17297 LCo_Eff_End_Date := LCo_Term_Date;
17298 ELSE
17299 LCo_Eff_End_Date := LCo_End_Date;
17300
17301 -- grace period changes starts
17302
17303 IF G_GRACE_PROFILE_SET = 'Y' AND LCo_Term_Date IS NULL THEN
17304 IF trunc(LCo_Eff_End_Date) = trunc(LHd_END_Date) THEN
17305 --- truncating the dates to remove accidental existence of time components in dates.
17306 LCo_Eff_End_Date := trunc(Get_Final_End_Date(LHd_Id,LCo_Eff_End_Date));
17307 END IF;
17308 END IF;
17309
17310 -- grace period changes ends
17311 END IF;
17312
17313
17314 IF LIt_Term_Date < LIt_End_Date THEN
17315 LIt_Eff_End_Date := LIt_Term_Date;
17316 ELSE
17317 LIt_Eff_End_Date := LIt_End_Date;
17318
17319 -- grace period changes starts
17320
17321 IF G_GRACE_PROFILE_SET = 'Y' AND LIt_Term_Date IS NULL THEN
17322 -- grace period changes are done only if line end date matches contract end date
17323 IF trunc(LIt_Eff_End_Date) = trunc(LHd_END_Date) THEN
17324 --- truncating the dates to remove accidental existence of time components in dates.
17325 LIt_Eff_End_Date := trunc(Get_Final_End_Date(LHd_Id,LIt_Eff_End_Date));
17326 END IF;
17327 END IF;
17328 END IF;
17329
17330
17331 IF ((Lv_Request_Date BETWEEN LSv_Start_Date AND LSv_Eff_End_Date)
17332 AND
17333 (Lv_Request_Date BETWEEN LIt_Start_Date AND LIt_Eff_End_Date)
17334 AND
17335 (Lv_Request_Date BETWEEN LCo_Start_Date AND LCo_Eff_End_Date)) THEN
17336
17337 X_Valid_line := 'T';
17338
17339 END IF;
17340
17341 X_return_Status := 'S'; --LX_return_Status;
17342
17343 EXCEPTION
17344 WHEN OTHERS THEN
17345
17346 OKC_API.SET_MESSAGE
17347 (P_App_Name => G_APP_NAME_OKC
17348 ,P_Msg_Name => G_UNEXPECTED_ERROR
17349 ,P_Token1 => G_SQLCODE_TOKEN
17350 ,P_Token1_Value => SQLCODE
17351 ,P_Token2 => G_SQLERRM_TOKEN
17352 ,P_Token2_Value => SQLERRM);
17353
17354 OKC_API.SET_MESSAGE
17355 (P_App_Name => G_APP_NAME_OKC
17356 ,P_Msg_Name => G_DEBUG_TOKEN
17357 ,P_Token1 => G_PACKAGE_TOKEN
17358 ,P_Token1_Value => G_PKG_NAME
17359 ,P_Token2 => G_PROGRAM_TOKEN
17360 ,P_Token2_Value => 'Get_Valid_Line');
17361
17362 X_Return_Status := G_RET_STS_UNEXP_ERROR;
17363
17364 END get_valid_line;
17365
17366
17367 PROCEDURE Get_Contract_ID
17368 (P_contract_id IN NUMBER
17369 ,P_Contract_Num IN VARCHAR2
17370 ,P_Contract_Num_Modifier IN VARCHAR2
17371 ,P_START_DATE_FROM IN DATE
17372 ,P_START_DATE_TO IN DATE
17373 ,P_END_DATE_FROM IN DATE
17374 ,P_END_DATE_TO IN DATE
17375 ,P_DATE_TERMINATE_FROM IN DATE
17376 ,P_DATE_TERMINATE_TO IN DATE
17377 ,P_STATUS IN VARCHAR2
17378 ,P_Cont_Pty_Id IN NUMBER
17379 ,P_cont_renewal_code IN VARCHAR2
17380 ,p_authoring_org_id in number
17381 ,p_contract_grp_id in number -- additional header level criteria added dtd Dec 17th, 2003
17382 ,X_Contracts OUT NOCOPY GT_Contract_Ref
17383 ,X_Result OUT NOCOPY Gx_Boolean
17384 ,X_Return_Status OUT NOCOPY Gx_Ret_Sts) IS
17385
17386 /*Bug:6767455*/
17387 CURSOR Lx_Csr_terdt_Contracts( Cv_Contract_Id IN NUMBER,
17388 Cv_Contract_Num IN VARCHAR2,
17389 Cv_Contract_Num_Modifier IN VARCHAR2,
17390 Cv_START_DATE_FROM IN DATE,
17391 Cv_START_DATE_TO IN DATE,
17392 Cv_END_DATE_FROM IN DATE,
17393 Cv_END_DATE_TO IN DATE,
17394 Cv_DATE_TERMINATE_FROM IN DATE,
17395 Cv_DATE_TERMINATE_TO IN DATE,
17396 Cv_STATUS IN VARCHAR2,
17397 Cv_Cont_Pty_Id IN NUMBER,
17398 Cv_cont_renewal_code IN VARCHAR2,
17399 Cv_authoring_org_id in number,
17400 Cv_contract_grp_id in number) IS
17401 SELECT /*+ leading(b) use_nl(b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
17402 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
17403 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
17404 FROM OKC_K_HEADERS_ALL_B B, --Okc_K_Headers_B B, /*Bug:6767455*/
17405 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
17406 WHERE b.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
17407 AND B.Start_Date BETWEEN Cv_Start_Date_From AND Cv_Start_Date_to
17408 AND B.End_Date BETWEEN Cv_End_Date_From AND Cv_End_Date_To
17409 AND B.Date_Terminated BETWEEN Cv_Date_Terminate_From AND Cv_Date_Terminate_To
17410 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
17411 and authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
17412
17413 /*Bug:6767455*/
17414 CURSOR Lx_Csr_noHdr_Contracts( Cv_Contract_Id IN NUMBER,
17415 Cv_Contract_Num IN VARCHAR2,
17416 Cv_Contract_Num_Modifier IN VARCHAR2,
17417 Cv_START_DATE_FROM IN DATE,
17418 Cv_START_DATE_TO IN DATE,
17419 Cv_END_DATE_FROM IN DATE,
17420 Cv_END_DATE_TO IN DATE,
17421 Cv_DATE_TERMINATE_FROM IN DATE,
17422 Cv_DATE_TERMINATE_TO IN DATE,
17423 Cv_STATUS IN VARCHAR2,
17424 Cv_Cont_Pty_Id IN NUMBER,
17425 Cv_cont_renewal_code IN VARCHAR2,
17426 Cv_authoring_org_id in number,
17427 Cv_contract_grp_id in number) IS
17428 /*Bug:6767455*/
17429 SELECT /*+ leading(b) use_nl(b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
17430 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
17431 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
17432 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project /*Bug:6767455*/
17433 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
17434 WHERE b.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
17435 AND B.Start_Date BETWEEN Cv_Start_Date_From AND Cv_Start_Date_to
17436 AND B.End_Date BETWEEN Cv_End_Date_From AND Cv_End_Date_To
17437 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
17438 and authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
17439
17440 CURSOR Lx_Csr_Hdr_Contracts( Cv_Contract_Id IN NUMBER,
17441 Cv_Contract_Num IN VARCHAR2,
17442 Cv_Contract_Num_Modifier IN VARCHAR2,
17443 Cv_START_DATE_FROM IN DATE,
17444 Cv_START_DATE_TO IN DATE,
17445 Cv_END_DATE_FROM IN DATE,
17446 Cv_END_DATE_TO IN DATE,
17447 Cv_DATE_TERMINATE_FROM IN DATE,
17448 Cv_DATE_TERMINATE_TO IN DATE,
17449 Cv_STATUS IN VARCHAR2,
17450 Cv_Cont_Pty_Id IN NUMBER,
17451 Cv_cont_renewal_code IN VARCHAR2,
17452 Cv_authoring_org_id in number,
17453 Cv_contract_grp_id in number) IS
17454 SELECT /*+ leading(b) use_nl(b oksb) */
17455 b.Id Id, -- 11.5.10 rule rearchitecture changes
17456 b.renewal_type_code, -- Added by Jvorugan for perf bug:4991724
17457 oksb.electronic_renewal_flag -- Added by Jvorugan for perf bug:4991724
17458 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
17459 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
17460 WHERE B.Id = Cv_Contract_Id --B.Id --nvl(Cv_Contract_Id,B.Id) /*Added for Bug:6767455*/
17461 and Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
17462 --AND nvl(Contract_Number_Modifier,-99) = nvl(Cv_Contract_Num_Modifier,nvl(Contract_Number_Modifier,-99))
17463 AND ( (Cv_Contract_Num_Modifier IS NULL)
17464 OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
17465 and b.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
17466 --- truncating the dates to remove accidental existence of time components in dates.
17467 /*Modified for Bug:6767455*/
17468 /* AND trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date))
17469 and trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date))
17470 AND trunc(B.End_Date) >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
17471 AND trunc(B.End_Date) <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
17472 AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
17473 nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
17474 AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
17475 nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))*/
17476 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
17477 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
17478 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
17479 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
17480 AND ((Cv_Date_Terminate_From IS NULL) OR
17481 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
17482 AND ((Cv_Date_Terminate_To IS NULL) OR
17483 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
17484 /*Modified for Bug:6767455*/
17485 AND Sts_Code = nvl(Cv_STATUS,B.Sts_Code)
17486 and authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
17487 AND (Cv_Cont_Pty_Id IS NULL
17488 OR
17489 EXISTS
17490 (SELECT 'x'
17491 FROM Okc_K_Party_Roles_B PR
17492 WHERE pr.Cle_Id IS NULL
17493 AND PR.Dnz_Chr_Id = b.Id
17494 -- AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
17495 AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
17496 AND PR.Object1_Id2 = '#'
17497 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17498 AND PR.RLE_CODE <> 'VENDOR' ))
17499 -- where clause for contract group added dtd Dec 17th, 2003
17500 AND (Cv_contract_grp_id is null
17501 OR
17502 EXISTS (SELECT 'x'
17503 FROM Okc_K_grpings grpng
17504 WHERE grpng.included_chr_id = b.id
17505 and grpng.cgp_parent_id = Cv_contract_grp_id ));
17506 -- and nvl(b.renewal_type_code,'#') = nvl(Cv_cont_renewal_code,nvl(b.renewal_type_code,'#'))
17507 /*Added for Bug:6767455
17508
17509 AND ((Cv_cont_renewal_code IS NULL)
17510 OR
17511 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code not in ('ERN','NSR')
17512 AND nvl(b.renewal_type_code,'#') = Cv_cont_renewal_code)
17513 OR
17514 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'ERN'
17515 AND nvl(b.renewal_type_code,'#') = 'NSR'
17516 and nvl(oksb.electronic_renewal_flag,'N') = 'Y')
17517 OR
17518 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'NSR'
17519 AND nvl(b.renewal_type_code,'#') = 'NSR'
17520 and nvl(oksb.electronic_renewal_flag,'N') = 'N'));
17521 */
17522 CURSOR Lx_Csr_Party_Contracts(Cv_Contract_Num IN VARCHAR2,
17523 Cv_Contract_Num_Modifier IN VARCHAR2,
17524 Cv_START_DATE_FROM IN DATE,
17525 Cv_START_DATE_TO IN DATE,
17526 Cv_END_DATE_FROM IN DATE,
17527 Cv_END_DATE_TO IN DATE,
17528 Cv_DATE_TERMINATE_FROM IN DATE,
17529 Cv_DATE_TERMINATE_TO IN DATE,
17530 Cv_STATUS IN VARCHAR2,
17531 Cv_Cont_Pty_Id IN NUMBER,
17532 Cv_cont_renewal_code IN VARCHAR2,
17533 Cv_authoring_org_id in number,
17534 Cv_contract_grp_id in number) IS
17535 SELECT /*+ leading(pr) use_nl(pr b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
17536 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
17537 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
17538 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
17539 oks_k_headers_b oksb, -- 11.5.10 rule rearchitecture changes
17540 Okc_K_Party_Roles_B PR
17541 WHERE PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
17542 AND PR.Object1_Id2 = '#'
17543 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17544 AND PR.RLE_CODE <> 'VENDOR'
17545 AND PR.Cle_Id IS NULL
17546 AND B.ID = PR.DNZ_CHR_ID
17547 AND B.ID = PR.CHR_ID
17548 -- AND Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
17549 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
17550 -- OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
17551 AND B.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
17552 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
17553 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
17554 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
17555 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
17556 AND ((Cv_Date_Terminate_From IS NULL) OR
17557 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
17558 AND ((Cv_Date_Terminate_To IS NULL) OR
17559 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
17560 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
17561 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
17562
17563 -- hmnair - Added for bug fix #
17564
17565 CURSOR Lx_Csr_Group_Contracts(Cv_Contract_Num IN VARCHAR2,
17566 Cv_Contract_Num_Modifier IN VARCHAR2,
17567 Cv_START_DATE_FROM IN DATE,
17568 Cv_START_DATE_TO IN DATE,
17569 Cv_END_DATE_FROM IN DATE,
17570 Cv_END_DATE_TO IN DATE,
17571 Cv_DATE_TERMINATE_FROM IN DATE,
17572 Cv_DATE_TERMINATE_TO IN DATE,
17573 Cv_STATUS IN VARCHAR2,
17574 Cv_Cont_Pty_Id IN NUMBER,
17575 Cv_cont_renewal_code IN VARCHAR2,
17576 Cv_authoring_org_id in number,
17577 Cv_contract_grp_id in number) IS
17578 SELECT /*+ leading(grpng) use_nl(grpng b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
17579 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
17580 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
17581 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
17582 oks_k_headers_b oksb, -- 11.5.10 rule rearchitecture changes
17583 Okc_K_grpings grpng
17584 WHERE grpng.cgp_parent_id = Cv_contract_grp_id
17585 AND B.ID = grpng.included_chr_id
17586 -- AND Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
17587 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
17588 -- OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
17589 AND B.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
17590 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
17591 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
17592 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
17593 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
17594 AND ((Cv_Date_Terminate_From IS NULL) OR
17595 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
17596 AND ((Cv_Date_Terminate_To IS NULL) OR
17597 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
17598 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
17599 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
17600
17601 -- hmnair - Added for bug fix #
17602
17603 CURSOR Lx_Csr_Party_Group_Contracts(Cv_Contract_Num IN VARCHAR2,
17604 Cv_Contract_Num_Modifier IN VARCHAR2,
17605 Cv_START_DATE_FROM IN DATE,
17606 Cv_START_DATE_TO IN DATE,
17607 Cv_END_DATE_FROM IN DATE,
17608 Cv_END_DATE_TO IN DATE,
17609 Cv_DATE_TERMINATE_FROM IN DATE,
17610 Cv_DATE_TERMINATE_TO IN DATE,
17611 Cv_STATUS IN VARCHAR2,
17612 Cv_Cont_Pty_Id IN NUMBER,
17613 Cv_cont_renewal_code IN VARCHAR2,
17614 Cv_authoring_org_id in number,
17615 Cv_contract_grp_id in number) IS
17616 SELECT /*+ ordered use_nl(pr grpng b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
17617 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
17618 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
17619
17620 FROM Okc_K_Party_Roles_B PR,
17621 Okc_K_grpings grpng,
17622 OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
17623 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
17624
17625 WHERE PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
17626 AND PR.Object1_Id2 = '#'
17627 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17628 AND PR.RLE_CODE <> 'VENDOR'
17629 AND PR.Cle_Id IS NULL
17630 AND B.ID = PR.DNZ_CHR_ID
17631 AND B.ID = PR.CHR_ID
17632 -- AND Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
17633 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
17634 -- OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
17635 AND B.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
17636 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
17637 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
17638 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
17639 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
17640 AND ((Cv_Date_Terminate_From IS NULL) OR
17641 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
17642 AND ((Cv_Date_Terminate_To IS NULL) OR
17643 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
17644 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
17645 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
17646 AND grpng.included_chr_id = b.ID
17647 AND grpng.included_chr_id = PR.DNZ_CHR_ID
17648 AND grpng.cgp_parent_id = Cv_contract_grp_id;
17649
17650 --Added for bug fix -- hmnair
17651 CURSOR Lx_Csr_KNum_Mod_Contracts(Cv_Contract_Num IN VARCHAR2,
17652 Cv_Contract_Num_Modifier IN VARCHAR2,
17653 Cv_START_DATE_FROM IN DATE,
17654 Cv_START_DATE_TO IN DATE,
17655 Cv_END_DATE_FROM IN DATE,
17656 Cv_END_DATE_TO IN DATE,
17657 Cv_DATE_TERMINATE_FROM IN DATE,
17658 Cv_DATE_TERMINATE_TO IN DATE,
17659 Cv_STATUS IN VARCHAR2,
17660 Cv_Cont_Pty_Id IN NUMBER,
17661 Cv_cont_renewal_code IN VARCHAR2,
17662 Cv_authoring_org_id in number,
17663 Cv_contract_grp_id in number) IS
17664 SELECT /*+ leadin(b) use_nl(b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
17665 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
17666 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
17667 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
17668 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
17669 WHERE Contract_Number = Cv_Contract_Num
17670 -- AND ( (Cv_Contract_Num_Modifier IS NULL)
17671 AND Contract_Number_Modifier = Cv_Contract_Num_Modifier
17672 AND b.id = oksb.chr_id -- 11.5.10 rule rearchitecture changes
17673 --
17674 -- Modified by JVARGHES on 23/May/2006 for fix of bug# 4991724
17675 -- AND trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date)) -- truncating the dates to remove
17676 -- and trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date)) -- accidental existence of time components in dates.
17677 -- AND trunc(B.End_Date) >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
17678 -- AND trunc(B.End_Date) <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
17679 -- AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
17680 -- nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
17681 -- AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
17682 -- nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
17683 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
17684 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
17685 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
17686 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
17687 AND ((Cv_Date_Terminate_From IS NULL) OR
17688 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
17689 AND ((Cv_Date_Terminate_To IS NULL) OR
17690 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
17691 --
17692 -- Modified by JVARGHES on 23/May/2006 for fix of bug# 4991724
17693 --
17694 AND sts_code = nvl(Cv_STATUS,B.Sts_Code)
17695 AND authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
17696 AND (Cv_Cont_Pty_Id IS NULL
17697 OR
17698 EXISTS (SELECT 'x'
17699 FROM Okc_K_Party_Roles_B PR
17700 WHERE pr.Cle_Id IS NULL
17701 AND PR.Dnz_Chr_Id = b.Id
17702 -- AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
17703 AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
17704 AND PR.Object1_Id2 = '#'
17705 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17706 AND PR.RLE_CODE <> 'VENDOR'))
17707 AND (Cv_contract_grp_id is null -- Where clause for contract group added dtd Dec 17th, 2003
17708 OR
17709 EXISTS (SELECT 'x'
17710 FROM Okc_K_grpings grpng
17711 WHERE grpng.included_chr_id = b.id
17712 AND grpng.cgp_parent_id = Cv_contract_grp_id ));
17713 /*Added for Bug:6767455*/
17714 CURSOR Lx_Csr_ContractNum_Contracts(Cv_Contract_Num IN VARCHAR2,
17715 Cv_Contract_Num_Modifier IN VARCHAR2,
17716 Cv_START_DATE_FROM IN DATE,
17717 Cv_START_DATE_TO IN DATE,
17718 Cv_END_DATE_FROM IN DATE,
17719 Cv_END_DATE_TO IN DATE,
17720 Cv_DATE_TERMINATE_FROM IN DATE,
17721 Cv_DATE_TERMINATE_TO IN DATE,
17722 Cv_STATUS IN VARCHAR2,
17723 Cv_Cont_Pty_Id IN NUMBER,
17724 Cv_cont_renewal_code IN VARCHAR2,
17725 Cv_authoring_org_id in number,
17726 Cv_contract_grp_id in number) IS
17727 SELECT /*+ leadin(b) use_nl(b oksb) */ b.Id Id, -- 11.5.10 rule rearchitecture changes
17728 b.renewal_type_code, -- Added by Jyothi for perf bug:4991724
17729 oksb.electronic_renewal_flag -- Added by Jyothi for perf bug:4991724
17730 FROM OKC_K_HEADERS_ALL_B B, -- OKC_K_HEADERS_B B -- Modified for 12.0 MOAC project (JVARGHES)
17731 oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
17732 WHERE Contract_Number = Cv_Contract_Num
17733 /*and Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
17734 AND nvl(Contract_Number_Modifier,-99) = nvl(Cv_Contract_Num_Modifier,nvl(Contract_Number_Modifier,-99))*/
17735 and b.id = oksb.chr_id
17736 --- truncating the dates to remove accidental existence of time components in dates.
17737 /*Commented for Bug:6767455
17738 AND trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date))
17739 and trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date))
17740 AND trunc(B.End_Date) >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
17741 AND trunc(B.End_Date) <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
17742 AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
17743 nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
17744 AND nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
17745 nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))*/
17746 AND B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
17747 AND B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
17748 AND B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
17749 AND B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
17750 AND ((Cv_Date_Terminate_From IS NULL) OR
17751 (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
17752 AND ((Cv_Date_Terminate_To IS NULL) OR
17753 (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
17754 AND Sts_Code = nvl(Cv_STATUS,B.Sts_Code)
17755 and authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
17756 AND (Cv_Cont_Pty_Id IS NULL
17757 OR
17758 EXISTS
17759 (SELECT 'x'
17760 FROM Okc_K_Party_Roles_B PR
17761 WHERE pr.Cle_Id IS NULL
17762 AND PR.Dnz_Chr_Id = b.Id
17763 --AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
17764 AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
17765 AND PR.Object1_Id2 = '#'
17766 AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17767 AND PR.RLE_CODE <> 'VENDOR' ))
17768 -- where clause for contract group added dtd Dec 17th, 2003
17769 AND (Cv_contract_grp_id is null
17770 OR
17771 EXISTS (SELECT 'x'
17772 FROM Okc_K_grpings grpng
17773 WHERE grpng.included_chr_id = b.id
17774 and grpng.cgp_parent_id = Cv_contract_grp_id ));
17775 /*commented for bug:6767455
17776 -- and nvl(b.renewal_type_code,'#') = nvl(Cv_cont_renewal_code,nvl(b.renewal_type_code,'#'))
17777 AND ((Cv_cont_renewal_code IS NULL)
17778 OR
17779 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code not in ('ERN','NSR')
17780 AND nvl(b.renewal_type_code,'#') = Cv_cont_renewal_code)
17781 OR
17782 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'ERN'
17783 AND nvl(b.renewal_type_code,'#') = 'NSR'
17784 and nvl(oksb.electronic_renewal_flag,'N') = 'Y')
17785 OR
17786 (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'NSR'
17787 AND nvl(b.renewal_type_code,'#') = 'NSR'
17788 and nvl(oksb.electronic_renewal_flag,'N') = 'N'));*/
17789
17790 Lv_Contract_Id CONSTANT NUMBER := P_Contract_Id;
17791 Lv_Contract_Num CONSTANT VARCHAR2(120) := P_Contract_Num;
17792 Lv_Contract_Num_Modifier CONSTANT VARCHAR2(120) := P_Contract_Num_Modifier;
17793 Lv_START_FROM_DATE DATE;
17794 Lv_START_TO_DATE DATE;
17795 Lv_END_FROM_DATE DATE;
17796 Lv_END_TO_DATE DATE;
17797 Lv_FROM_TERMINATE_DATE DATE;
17798 Lv_TO_TERMINATE_DATE DATE;
17799 Lv_STATUS CONSTANT VARCHAR2(120) := P_STATUS;
17800 Lv_Cont_Pty_Id CONSTANT NUMBER := P_Cont_Pty_Id;
17801 Lv_Cont_Renewal_Code CONSTANT VARCHAR2(120) := P_cont_renewal_code;
17802 Lv_authoring_org_id CONSTANT number := P_authoring_org_id;
17803 Lv_contract_grp_id CONSTANT number := P_contract_grp_id;
17804 Lx_Result Gx_Boolean;
17805 Lx_Return_Status Gx_Ret_Sts;
17806
17807 l_last_date DATE;
17808 l_first_date DATE;
17809
17810 Lx_Contracts GT_Contract_Ref;
17811 Li_TableIdx BINARY_INTEGER;
17812
17813 BEGIN
17814 l_last_date := TO_DATE(5373484,'j');
17815 l_first_date := TO_DATE(1,'j');
17816 Lv_START_FROM_DATE := P_START_DATE_FROM;
17817 Lv_START_TO_DATE := P_START_DATE_TO;
17818 Lv_END_FROM_DATE := P_END_DATE_FROM;
17819 Lv_END_TO_DATE := P_END_DATE_TO;
17820 Lv_FROM_TERMINATE_DATE := P_DATE_TERMINATE_FROM;
17821 Lv_TO_TERMINATE_DATE := P_DATE_TERMINATE_TO;
17822 Lx_Result := G_TRUE;
17823 Lx_Return_Status := G_RET_STS_SUCCESS;
17824
17825 Li_TableIdx := 0;
17826
17827 if Lv_Contract_Id is not null then
17828 FOR Idx IN Lx_Csr_Hdr_Contracts(Lv_Contract_Id,
17829 Lv_Contract_Num,
17830 Lv_Contract_Num_Modifier,
17831 Lv_START_FROM_DATE,
17832 Lv_START_TO_DATE,
17833 Lv_END_FROM_DATE,
17834 Lv_END_TO_DATE,
17835 Lv_FROM_TERMINATE_DATE,
17836 Lv_TO_TERMINATE_DATE,
17837 Lv_STATUS,
17838 Lv_Cont_Pty_Id,
17839 Lv_Cont_Renewal_Code,
17840 Lv_authoring_org_id,
17841 Lv_contract_grp_id) LOOP
17842 IF ((Lv_Cont_Renewal_Code IS NULL) /*Added for bug:6767455*/
17843 OR
17844 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
17845 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
17846 OR
17847 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
17848 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
17849 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
17850 OR
17851 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
17852 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
17853 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
17854 THEN
17855 Li_TableIdx := Li_TableIdx + 1;
17856 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
17857 END IF;
17858
17859 END LOOP;
17860 ELSIF (Lv_Contract_Num IS NOT NULL AND Lv_Contract_Num_Modifier IS NOT NULL )THEN /*Added for bug:6767455*/
17861 FOR Idx IN Lx_Csr_KNum_Mod_Contracts(Lv_Contract_Num,
17862 Lv_Contract_Num_Modifier,
17863 Lv_START_FROM_DATE,
17864 Lv_START_TO_DATE,
17865 Lv_END_FROM_DATE,
17866 Lv_END_TO_DATE,
17867 Lv_FROM_TERMINATE_DATE,
17868 Lv_TO_TERMINATE_DATE,
17869 Lv_STATUS,
17870 Lv_Cont_Pty_Id,
17871 Lv_Cont_Renewal_Code,
17872 Lv_authoring_org_id,
17873 Lv_contract_grp_id) LOOP
17874 IF ((Lv_Cont_Renewal_Code IS NULL)
17875 OR
17876 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
17877 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
17878 OR
17879 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
17880 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
17881 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
17882 OR
17883 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
17884 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
17885 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
17886 THEN
17887
17888 Li_TableIdx := Li_TableIdx + 1;
17889 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
17890 END IF;
17891
17892 END LOOP;
17893
17894 ELSIF Lv_Contract_Num IS NOT NULL THEN
17895 FOR Idx IN Lx_Csr_ContractNum_Contracts(Lv_Contract_Num,
17896 Lv_Contract_Num_Modifier,
17897 Lv_START_FROM_DATE,
17898 Lv_START_TO_DATE,
17899 Lv_END_FROM_DATE,
17900 Lv_END_TO_DATE,
17901 Lv_FROM_TERMINATE_DATE,
17902 Lv_TO_TERMINATE_DATE,
17903 Lv_STATUS,
17904 Lv_Cont_Pty_Id,
17905 Lv_Cont_Renewal_Code,
17906 Lv_authoring_org_id,
17907 Lv_contract_grp_id) LOOP
17908 IF ((Lv_Cont_Renewal_Code IS NULL)
17909 OR
17910 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
17911 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
17912 OR
17913 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
17914 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
17915 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
17916 OR
17917 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
17918 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
17919 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
17920 THEN
17921 Li_TableIdx := Li_TableIdx + 1;
17922 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
17923 END IF;
17924 END LOOP;
17925
17926 /* commented for bug:6767455 OKC_API.SET_MESSAGE
17927 (P_App_Name => G_APP_NAME_OKC
17928 ,P_Msg_Name => G_UNEXPECTED_ERROR
17929 ,P_Token1 => G_SQLCODE_TOKEN
17930 ,P_Token1_Value => SQLCODE
17931 ,P_Token2 => G_SQLERRM_TOKEN
17932 ,P_Token2_Value => SQLERRM);
17933
17934 OKC_API.SET_MESSAGE
17935 (P_App_Name => G_APP_NAME_OKC
17936 ,P_Msg_Name => G_DEBUG_TOKEN
17937 ,P_Token1 => G_PACKAGE_TOKEN
17938 ,P_Token1_Value => G_PKG_NAME
17939 ,P_Token2 => G_PROGRAM_TOKEN
17940 ,P_Token2_Value => 'Get_Contract_Id');
17941
17942 X_Result := G_FALSE;
17943 X_Return_Status := G_RET_STS_UNEXP_ERROR;
17944
17945 END Get_Contract_ID;*/
17946 ELSIF (Lv_Cont_Pty_Id IS NOT NULL AND Lv_contract_grp_id IS NOT NULL) THEN
17947 FOR Idx IN Lx_Csr_Party_Group_Contracts(Lv_Contract_Num,
17948 Lv_Contract_Num_Modifier,
17949 Lv_START_FROM_DATE,
17950 Lv_START_TO_DATE,
17951 Lv_END_FROM_DATE,
17952 Lv_END_TO_DATE,
17953 Lv_FROM_TERMINATE_DATE,
17954 Lv_TO_TERMINATE_DATE,
17955 Lv_STATUS,
17956 Lv_Cont_Pty_Id,
17957 Lv_Cont_Renewal_Code,
17958 Lv_authoring_org_id,
17959 Lv_contract_grp_id) LOOP
17960 IF ((Lv_Cont_Renewal_Code IS NULL)
17961 OR
17962 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
17963 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
17964 OR
17965 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
17966 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
17967 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
17968 OR
17969 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
17970 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
17971 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
17972 THEN
17973 Li_TableIdx := Li_TableIdx + 1;
17974 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
17975 END IF;
17976 END LOOP;
17977 ELSIF (Lv_Cont_Pty_Id IS NOT NULL) THEN
17978 FOR Idx IN Lx_Csr_Party_Contracts(Lv_Contract_Num,
17979 Lv_Contract_Num_Modifier,
17980 Lv_START_FROM_DATE,
17981 Lv_START_TO_DATE,
17982 Lv_END_FROM_DATE,
17983 Lv_END_TO_DATE,
17984 Lv_FROM_TERMINATE_DATE,
17985 Lv_TO_TERMINATE_DATE,
17986 Lv_STATUS,
17987 Lv_Cont_Pty_Id,
17988 Lv_Cont_Renewal_Code,
17989 Lv_authoring_org_id,
17990 Lv_contract_grp_id) LOOP
17991 IF ((Lv_Cont_Renewal_Code IS NULL)
17992 OR
17993 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
17994 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
17995 OR
17996 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
17997 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
17998 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
17999 OR
18000 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
18001 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
18002 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
18003 THEN
18004 Li_TableIdx := Li_TableIdx + 1;
18005 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
18006 END IF;
18007 END LOOP;
18008 ELSIF (Lv_contract_grp_id IS NOT NULL) THEN
18009 FOR Idx IN Lx_Csr_Group_Contracts(Lv_Contract_Num,
18010 Lv_Contract_Num_Modifier,
18011 Lv_START_FROM_DATE,
18012 Lv_START_TO_DATE,
18013 Lv_END_FROM_DATE,
18014 Lv_END_TO_DATE,
18015 Lv_FROM_TERMINATE_DATE,
18016 Lv_TO_TERMINATE_DATE,
18017 Lv_STATUS,
18018 Lv_Cont_Pty_Id,
18019 Lv_Cont_Renewal_Code,
18020 Lv_authoring_org_id,
18021 Lv_contract_grp_id) LOOP
18022 IF ((Lv_Cont_Renewal_Code IS NULL)
18023 OR
18024 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
18025 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
18026 OR
18027 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
18028 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
18029 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
18030 OR
18031 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
18032 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
18033 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
18034 THEN
18035
18036 Li_TableIdx := Li_TableIdx + 1;
18037 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
18038 END IF;
18039
18040 END LOOP;
18041 ELSIF (Lv_FROM_TERMINATE_DATE IS NOT NULL OR Lv_TO_TERMINATE_DATE IS NOT NULL) THEN /*Added for bug:6767455*/
18042
18043 IF (Lv_START_FROM_DATE IS NULL) THEN
18044 Lv_START_FROM_DATE := l_first_date;
18045 END IF;
18046
18047 IF (Lv_START_TO_DATE IS NULL) THEN
18048 Lv_START_TO_DATE := l_last_date;
18049 END IF;
18050
18051 IF (Lv_END_FROM_DATE IS NULL) THEN
18052 Lv_END_FROM_DATE := l_first_date;
18053 END IF;
18054
18055 IF (Lv_END_TO_DATE IS NULL) THEN
18056 Lv_END_TO_DATE := l_last_date;
18057 END IF;
18058
18059 IF (Lv_FROM_TERMINATE_DATE IS NULL) THEN
18060 Lv_FROM_TERMINATE_DATE := l_first_date;
18061 END IF;
18062
18063 IF (Lv_TO_TERMINATE_DATE IS NULL) THEN
18064 Lv_TO_TERMINATE_DATE := l_last_date;
18065 END IF;
18066
18067
18068 Lv_START_FROM_DATE := TRUNC(Lv_START_FROM_DATE);
18069 Lv_END_FROM_DATE := TRUNC(Lv_END_FROM_DATE);
18070 Lv_START_TO_DATE := TRUNC(Lv_START_TO_DATE) + 0.99998843;
18071 Lv_END_TO_DATE := TRUNC(Lv_END_TO_DATE) + 0.99998843;
18072 Lv_TO_TERMINATE_DATE := TRUNC(Lv_TO_TERMINATE_DATE) + 0.99998843; /*Added for bug:6767455*/
18073 Lv_FROM_TERMINATE_DATE := TRUNC(Lv_FROM_TERMINATE_DATE);
18074
18075
18076 FOR Idx IN Lx_Csr_terdt_Contracts(Lv_Contract_Id,
18077 Lv_Contract_Num,
18078 Lv_Contract_Num_Modifier,
18079 Lv_START_FROM_DATE,
18080 Lv_START_TO_DATE,
18081 Lv_END_FROM_DATE,
18082 Lv_END_TO_DATE,
18083 Lv_FROM_TERMINATE_DATE,
18084 Lv_TO_TERMINATE_DATE,
18085 Lv_STATUS,
18086 Lv_Cont_Pty_Id,
18087 Lv_Cont_Renewal_Code,
18088 Lv_authoring_org_id,
18089 Lv_contract_grp_id) LOOP
18090 IF ((Lv_Cont_Renewal_Code IS NULL)
18091 OR
18092 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
18093 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
18094 OR
18095 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
18096 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
18097 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
18098 OR
18099 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
18100 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
18101 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
18102 THEN
18103
18104 Li_TableIdx := Li_TableIdx + 1;
18105 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
18106 END IF;
18107
18108 END LOOP;
18109 ELSE
18110 IF (Lv_START_FROM_DATE IS NULL) THEN
18111 Lv_START_FROM_DATE := l_first_date;
18112 END IF;
18113
18114 IF (Lv_START_TO_DATE IS NULL) THEN
18115 Lv_START_TO_DATE := l_last_date;
18116 END IF;
18117
18118 IF (Lv_END_FROM_DATE IS NULL) THEN
18119 Lv_END_FROM_DATE := l_first_date;
18120 END IF;
18121
18122 IF (Lv_END_TO_DATE IS NULL) THEN
18123 Lv_END_TO_DATE := l_last_date;
18124 END IF;
18125
18126
18127 Lv_START_FROM_DATE := TRUNC(Lv_START_FROM_DATE);
18128 Lv_END_FROM_DATE := TRUNC(Lv_END_FROM_DATE);
18129 Lv_START_TO_DATE := TRUNC(Lv_START_TO_DATE) + 0.99998843;
18130 Lv_END_TO_DATE := TRUNC(Lv_END_TO_DATE) + 0.99998843;
18131
18132 FOR Idx IN Lx_Csr_NoHdr_Contracts(Lv_Contract_Id,
18133 Lv_Contract_Num,
18134 Lv_Contract_Num_Modifier,
18135 Lv_START_FROM_DATE,
18136 Lv_START_TO_DATE,
18137 Lv_END_FROM_DATE,
18138 Lv_END_TO_DATE,
18139 Lv_FROM_TERMINATE_DATE,
18140 Lv_TO_TERMINATE_DATE,
18141 Lv_STATUS,
18142 Lv_Cont_Pty_Id,
18143 Lv_Cont_Renewal_Code,
18144 Lv_authoring_org_id,
18145 Lv_contract_grp_id) LOOP
18146 IF ((Lv_Cont_Renewal_Code IS NULL)
18147 OR
18148 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
18149 AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
18150 OR
18151 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
18152 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
18153 and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
18154 OR
18155 (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
18156 AND nvl(Idx.renewal_type_code,'#') = 'NSR'
18157 and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
18158 THEN
18159
18160 Li_TableIdx := Li_TableIdx + 1;
18161 Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
18162 END IF;
18163
18164 END LOOP;
18165 END IF;
18166
18167 X_Contracts := Lx_Contracts;
18168 X_Result := Lx_Result;
18169 X_Return_Status := Lx_Return_Status;
18170
18171
18172 EXCEPTION
18173
18174 WHEN OTHERS THEN
18175
18176 OKC_API.SET_MESSAGE
18177 (P_App_Name => G_APP_NAME_OKC
18178 ,P_Msg_Name => G_UNEXPECTED_ERROR
18179 ,P_Token1 => G_SQLCODE_TOKEN
18180 ,P_Token1_Value => SQLCODE
18181 ,P_Token2 => G_SQLERRM_TOKEN
18182 ,P_Token2_Value => SQLERRM);
18183
18184 OKC_API.SET_MESSAGE
18185 (P_App_Name => G_APP_NAME_OKC
18186 ,P_Msg_Name => G_DEBUG_TOKEN
18187 ,P_Token1 => G_PACKAGE_TOKEN
18188 ,P_Token1_Value => G_PKG_NAME
18189 ,P_Token2 => G_PROGRAM_TOKEN
18190 ,P_Token2_Value => 'Get_Contract_Id');
18191
18192 X_Result := G_FALSE;
18193 X_Return_Status := G_RET_STS_UNEXP_ERROR;
18194
18195 END Get_Contract_ID;
18196
18197 PROCEDURE Dedup_Service_Line_PlSql_Table
18198 (P_Input_Tab IN output_tbl_contractline
18199 ,X_Output_Tab OUT NOCOPY output_tbl_contractline
18200 ,X_Result OUT NOCOPY Gx_Boolean
18201 ,X_Return_Status OUT NOCOPY Gx_Ret_Sts) IS
18202
18203 Lx_DeDup_Tab output_tbl_contractline;
18204 Lx_DeDup_Tab2 output_tbl_contractline ;
18205 Lx_Result Gx_Boolean;
18206 Lx_Return_Status Gx_Ret_Sts;
18207 Lx_Temp_ContRef OKS_ENTITLEMENTS_PUB.output_rec_contractline;
18208 Li_TableIdx BINARY_INTEGER;
18209 Li_TableIdx_Out BINARY_INTEGER;
18210 Li_TableIdx_In BINARY_INTEGER;
18211
18212 Lv_Compare_Val1 OKC_K_LINES_B.ID%TYPE;--VARCHAR2(300);
18213 Lv_Compare_Val2 OKC_K_LINES_B.ID%TYPE;--VARCHAR2(300);
18214 K NUMBER;
18215 L_Found VARCHAR2(1);
18216
18217 BEGIN
18218
18219 Lx_DeDup_Tab := P_Input_Tab;
18220 Lx_Result := G_TRUE;
18221 Lx_Return_Status := G_RET_STS_SUCCESS;
18222 K := 1;
18223 L_Found := 'N';
18224
18225 FOR I IN Lx_DeDup_Tab.FIRST .. Lx_DeDup_Tab.LAST LOOP
18226
18227 IF Lx_DeDup_Tab2.COUNT > 0 THEN
18228 L_Found := 'N';
18229 FOR J IN Lx_DeDup_Tab2.FIRST .. Lx_DeDup_Tab2.LAST LOOP
18230 IF Lx_DeDup_Tab(I).Service_ID = Lx_DeDup_Tab2(J).Service_Id THEN
18231
18232 L_Found := 'Y';
18233
18234 END IF;
18235
18236 END LOOP;
18237 IF L_Found = 'N' THEN
18238
18239 K := K + 1;
18240 Lx_DeDup_Tab2(K) := Lx_DeDup_Tab(I);
18241
18242 END IF;
18243
18244 ELSE
18245 Lx_DeDup_Tab2(1) := Lx_DeDup_Tab(I);
18246
18247 END IF;
18248 END LOOP;
18249
18250
18251 Lx_DeDup_Tab.DELETE;
18252 Lx_DeDup_Tab := Lx_DeDup_Tab2;
18253 X_Output_Tab := Lx_DeDup_Tab;
18254 X_Result := Lx_Result;
18255 X_Return_Status := Lx_Return_Status;
18256
18257 EXCEPTION
18258
18259 WHEN OTHERS THEN
18260
18261 OKC_API.SET_MESSAGE
18262 (P_App_Name => G_APP_NAME_OKC
18263 ,P_Msg_Name => G_UNEXPECTED_ERROR
18264 ,P_Token1 => G_SQLCODE_TOKEN
18265 ,P_Token1_Value => SQLCODE
18266 ,P_Token2 => G_SQLERRM_TOKEN
18267 ,P_Token2_Value => SQLERRM);
18268
18269 OKC_API.SET_MESSAGE
18270 (P_App_Name => G_APP_NAME_OKC
18271 ,P_Msg_Name => G_DEBUG_TOKEN
18272 ,P_Token1 => G_PACKAGE_TOKEN
18273 ,P_Token1_Value => G_PKG_NAME
18274 ,P_Token2 => G_PROGRAM_TOKEN
18275 ,P_Token2_Value => 'Dedup_Service_Line_PlSql_Table');
18276
18277 X_Result := G_FALSE;
18278 X_Return_Status := G_RET_STS_UNEXP_ERROR;
18279
18280 END Dedup_Service_Line_PlSql_Table;
18281
18282 PROCEDURE Get_Contract_Lines
18283 (P_Contracts IN GT_Contract_Ref
18284 ,P_Contract_line_Rec IN srchline_inpcontlinerec_type
18285 ,P_Covlevel_lines_passed IN varchar2
18286 ,P_Request_Date IN DATE
18287 ,P_Entitlement_Check_YN IN Varchar2
18288 ,p_authoring_org_id in number
18289 ,X_Contracts_02 OUT nocopy output_tbl_contractline
18290 ,X_Result OUT nocopy Gx_Boolean
18291 ,X_Return_Status OUT nocopy Gx_Ret_Sts) IS
18292
18293
18294
18295 --
18296 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
18297 --
18298
18299 /*
18300
18301 CURSOR get_Contract_cur (P_Id IN NUMBER,
18302 P_Cle_Id IN NUMBER,
18303 P_Service_Item_id IN NUMBER,
18304 P_Sts_Code IN VARCHAR2,
18305 P_Start_Date_From IN DATE,
18306 P_Start_Date_TO IN DATE,
18307 P_END_Date_From IN DATE,
18308 P_END_Date_TO IN DATE,
18309 P_Cov_type IN VARCHAR2,
18310 P_Bill_To IN VARCHAR2,
18311 P_Ship_To IN VARCHAR2,
18312 P_renewal_code IN VARCHAR2,
18313 p_authoring_org_id in number) IS
18314 SELECT Hd.Id Id,
18315 Hd.Contract_Number Contract_Number,
18316 Hd.Contract_Number_Modifier Contract_Number_Modifier,
18317 Hd.Short_Description Short_Description,
18318 Hd.Start_Date Hd_Start_Date,
18319 Hd.End_Date Hd_End_Date,
18320 hd.scs_code hd_scs_code,
18321 Sv.Id Service_ID,
18322 Sv.Line_Number Line_Number,
18323 --- truncating the dates to remove accidental existence of time components in dates.
18324 trunc(Sv.Start_Date) Start_Date,
18325 trunc(Sv.End_Date) End_Date,
18326 trunc(Sv.Date_Terminated) Date_Terminated,
18327 Sv.Sts_code Sts_code,
18328 SYS.description Name,
18329 --- truncating the dates to remove accidental existence of time components in dates.
18330 trunc(Clv.Start_Date) Item_Start_Date,
18331 trunc(Clv.End_Date) Item_End_Date,
18332 trunc(Clv.Date_Terminated) Item_Date_Terminated,
18333 cov.id cov_line_id,
18334 Cov.Name Cov_Name,
18335 --- truncating the dates to remove accidental existence of time components in dates.
18336 trunc(Cov.Start_Date) Cov_Start_Date,
18337 trunc(Cov.End_Date) Cov_End_Date,
18338 trunc(Cov.Date_Terminated) Cov_Date_Terminated,
18339 Sv.Lse_Id Service_Lse_Id
18340 FROM OKC_K_HEADERS_V HD,
18341 OKC_K_LINES_V Sv,
18342 OKC_K_LINES_V Cov,
18343 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
18344 OKC_K_LINES_V Clv,
18345 OKC_K_ITEMS items,
18346 Okx_System_Items_V sys
18347 WHERE Hd.Id = Sv.chr_id
18348 AND Hd.Id = nvl(P_Id,Hd.Id)
18349 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
18350 AND Sv.lse_id in (1,14,19)
18351 AND Sv.id = items.cle_id
18352 AND Sv.dnz_chr_id = items.dnz_chr_id
18353 AND sys.id1 = to_number(items.object1_id1)
18354 AND sys.id2 = to_number(items.object1_id2)
18355 AND items.dnz_chr_id = Hd.Id
18356 AND to_number(items.object1_id1) = nvl(P_service_Item_id,to_number(items.object1_id1))
18357 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
18358 AND items.object1_id2 = sys.id2 --'204'
18359 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
18360 --- truncating the dates to remove accidental existence of time components in dates.
18361 AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
18362 and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
18363 AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
18364 and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
18365 AND Cov.lse_id in (2,15,20)
18366 AND Cov.cle_id = Sv.id
18367 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id
18368 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
18369 AND clv.id = P_Cle_Id --nvl(P_Cle_Id,clv.id)
18370 AND clv.lse_id in (7,8,9,10,11,18,25,35)
18371 AND clv.dnz_chr_id = Sv.dnz_chr_id
18372 AND clv.dnz_chr_id = Hd.Id
18373 AND clv.cle_id = Sv.Id
18374 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
18375 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
18376 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
18377 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
18378 order by sv.id;
18379 */
18380
18381 --
18382 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
18383 --
18384 /*Added for bug:6767455*/
18385 CURSOR get_Contract_noitem_cur(P_Id IN NUMBER,
18386 P_Cle_Id IN NUMBER,
18387 P_Sts_Code IN VARCHAR2,
18388 P_Start_Date_From IN DATE,
18389 P_Start_Date_TO IN DATE,
18390 P_END_Date_From IN DATE,
18391 P_END_Date_TO IN DATE,
18392 P_Cov_type IN VARCHAR2,
18393 P_Bill_To IN VARCHAR2,
18394 P_Ship_To IN VARCHAR2,
18395 P_renewal_code IN VARCHAR2,
18396 p_authoring_org_id in number) IS
18397 SELECT /*+ leading(clv) use_nl(clv sv items sys hd cov okscov ) */
18398 Hd.Id Id,
18399 Hd.Contract_Number Contract_Number,
18400 Hd.Contract_Number_Modifier Contract_Number_Modifier,
18401 HdT.Short_Description Short_Description, /*bug 7412576*/
18402 Hd.Start_Date Hd_Start_Date,
18403 Hd.End_Date Hd_End_Date,
18404 hd.scs_code hd_scs_code,
18405 hd.org_id org_id, /*bug:7363217*/
18406 Sv.Id Service_ID,
18407 Sv.Line_Number Line_Number,
18408 --- truncating the dates to remove accidental existence of time components in dates.
18409 trunc(Sv.Start_Date) Start_Date,
18410 trunc(Sv.End_Date) End_Date,
18411 trunc(Sv.Date_Terminated) Date_Terminated,
18412 Sv.Sts_code Sts_code,
18413 SYS.concatenated_segments Name,
18414 --- truncating the dates to remove accidental existence of time components in dates.
18415 trunc(Clv.Start_Date) Item_Start_Date,
18416 trunc(Clv.End_Date) Item_End_Date,
18417 trunc(Clv.Date_Terminated) Item_Date_Terminated,
18418 cov.id cov_line_id,
18419 Cov.Name Cov_Name,
18420 --- truncating the dates to remove accidental existence of time components in dates.
18421 /*trunc(Cov.Start_Date) Cov_Start_Date,
18422 trunc(Cov.End_Date) Cov_End_Date,
18423 trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/ /*bug 7412576*/
18424 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
18425 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
18426 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
18427 Sv.Lse_Id Service_Lse_Id
18428 FROM OKC_K_HEADERS_ALL_B HD,
18429 OKC_K_HEADERS_TL HDT, /*bug 7412576 OKC_K_HEADERS_V HD,*/
18430 OKC_K_LINES_B Sv,
18431 OKC_K_LINES_V Cov,
18432 oks_k_lines_b ksl,
18433 oks_k_lines_B okscov, --11.5.10 rule rearchitecture changes
18434 OKC_K_LINES_B Clv,
18435 OKC_K_ITEMS items,
18436 MTL_SYSTEM_ITEMS_B_KFV sys
18437 WHERE HDT.ID = HD.ID
18438 AND HDT.LANGUAGE = USERENV('LANG')
18439 AND Hd.Id = Sv.chr_id
18440 AND Hd.Id = nvl(P_Id,Hd.Id)
18441 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
18442 AND Sv.lse_id in (1,14,19)
18443 AND Sv.id = items.cle_id
18444 AND Sv.dnz_chr_id = items.dnz_chr_id
18445 AND sys.inventory_item_id = to_number(items.object1_id1)
18446 AND sys.organization_id = to_number(items.object1_id2)
18447 AND items.dnz_chr_id = Hd.Id
18448 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
18449 -- AND items.object1_id2 = sys.id2 --'204'
18450 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
18451 --- truncating the dates to remove accidental existence of time components in dates.
18452 -- AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
18453 -- and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
18454 -- AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
18455 -- and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
18456 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
18457 AND sv.End_Date between P_End_Date_From and P_End_Date_To
18458 AND ksl.cle_id = sv.id
18459 and ksl.Coverage_Id = COV.Id /*bug 7412576*/
18460 AND Cov.lse_id in (2,15,20)
18461 /* AND Cov.cle_id = Sv.id
18462 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id */ /*bug 7412576*/
18463 and okscov.cle_id = cov.id -- 11.5.10 rule rearchitecture changes
18464 AND clv.id = P_Cle_Id -- nvl(P_Cle_Id,clv.id)
18465 AND clv.lse_id in (7,8,9,10,11,18,25,35)
18466 AND clv.dnz_chr_id = Sv.dnz_chr_id
18467 AND clv.dnz_chr_id = Hd.Id
18468 AND clv.cle_id = Sv.Id
18469 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
18470 -- 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
18471 -- 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
18472 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
18473 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
18474 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
18475 order by sv.id;
18476 /*Added for bug:6767455*/
18477 CURSOR get_Contract_cur (P_Id IN NUMBER,
18478 P_Cle_Id IN NUMBER,
18479 P_Service_Item_id IN NUMBER,
18480 P_Sts_Code IN VARCHAR2,
18481 P_Start_Date_From IN DATE,
18482 P_Start_Date_TO IN DATE,
18483 P_END_Date_From IN DATE,
18484 P_END_Date_TO IN DATE,
18485 P_Cov_type IN VARCHAR2,
18486 P_Bill_To IN VARCHAR2,
18487 P_Ship_To IN VARCHAR2,
18488 P_renewal_code IN VARCHAR2,
18489 p_authoring_org_id in number) IS
18490 SELECT /*+ leading(clv) use_nl(clv sv items sys hd cov okscov) index(items okc_k_items_n1)*/
18491 Hd.Id Id,
18492 Hd.Contract_Number Contract_Number,
18493 Hd.Contract_Number_Modifier Contract_Number_Modifier,
18494 HdT.Short_Description Short_Description, -- HdT.Short_Description -- Modified for 12.0 MOAC project (JVARGHES)
18495 Hd.Start_Date Hd_Start_Date,
18496 Hd.End_Date Hd_End_Date,
18497 hd.scs_code hd_scs_code,
18498 hd.org_id org_id, -- Modified for 12.0 MOAC project (JVARGHES)
18499 Sv.Id Service_ID,
18500 Sv.Line_Number Line_Number,
18501 --- truncating the dates to remove accidental existence of time components in dates.
18502 trunc(Sv.Start_Date) Start_Date,
18503 trunc(Sv.End_Date) End_Date,
18504 trunc(Sv.Date_Terminated) Date_Terminated,
18505 Sv.Sts_code Sts_code,
18506 SYS.concatenated_segments Name,
18507 --- truncating the dates to remove accidental existence of time components in dates.
18508 trunc(Clv.Start_Date) Item_Start_Date,
18509 trunc(Clv.End_Date) Item_End_Date,
18510 trunc(Clv.Date_Terminated) Item_Date_Terminated,
18511 cov.id cov_line_id,
18512 Cov.Name Cov_Name,
18513 --- truncating the dates to remove accidental existence of time components in dates.
18514 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
18515 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
18516 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
18517 Sv.Lse_Id Service_Lse_Id
18518 FROM OKC_K_HEADERS_ALL_B HD, -- Modified for 12.0 MOAC project (JVARGHES)
18519 OKC_K_HEADERS_TL HDT, -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
18520 OKC_K_LINES_B Sv,
18521 OKS_K_LINES_B KSL,
18522 OKC_K_LINES_V Cov,
18523 oks_k_lines_B okscov, --11.5.10 rule rearchitecture changes
18524 OKC_K_LINES_B Clv,
18525 OKC_K_ITEMS items,
18526 MTL_SYSTEM_ITEMS_B_KFV sys
18527 WHERE Hd.Id = Sv.chr_id
18528 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
18529 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
18530 AND Hd.Id = nvl(P_Id,Hd.Id)
18531 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
18532 AND Sv.lse_id in (1,14,19)
18533 AND Sv.id = items.cle_id
18534 AND Sv.dnz_chr_id = items.dnz_chr_id
18535 /*AND sys.id1 = to_number(items.object1_id1)
18536 AND sys.id2 = to_number(items.object1_id2)*/
18537 AND sys.inventory_item_id = to_number(items.object1_id1)
18538 AND sys.organization_id = to_number(items.object1_id2)
18539 AND items.dnz_chr_id = Hd.Id
18540 --AND to_number(items.object1_id1) = nvl(P_service_Item_id,to_number(items.object1_id1))
18541 AND items.object1_id1 = to_number(P_service_Item_id)
18542 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
18543 --AND items.object1_id2 = sys.id2 --'204'
18544 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
18545 --- truncating the dates to remove accidental existence of time components in dates.
18546 /*AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
18547 and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
18548 AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
18549 and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))*/
18550 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
18551 AND sv.End_Date between P_End_Date_From and P_End_Date_To
18552 AND ksl.cle_id = sv.id
18553 and ksl.Coverage_Id = COV.Id
18554 AND Cov.lse_id in (2,15,20)
18555 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
18556 AND clv.id = P_Cle_Id --nvl(P_Cle_Id,clv.id)
18557 AND clv.lse_id in (7,8,9,10,11,18,25,35)
18558 AND clv.dnz_chr_id = Sv.dnz_chr_id
18559 AND clv.dnz_chr_id = Hd.Id
18560 AND clv.cle_id = Sv.Id
18561 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
18562 /*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
18563 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*/
18564 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
18565 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
18566 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
18567 order by sv.id;
18568 CURSOR get_Contract_noclvl_noitem_cur (P_Id IN NUMBER,
18569 P_Cle_Id IN NUMBER,
18570 P_Sts_Code IN VARCHAR2,
18571 P_Start_Date_From IN DATE,
18572 P_Start_Date_TO IN DATE,
18573 P_END_Date_From IN DATE,
18574 P_END_Date_TO IN DATE,
18575 P_Cov_type IN VARCHAR2,
18576 P_Bill_To IN VARCHAR2,
18577 P_Ship_To IN VARCHAR2,
18578 P_renewal_code IN VARCHAR2,
18579 p_authoring_org_id in number) IS
18580 SELECT /*+ leading(sv) use_nl(sv items sys hd cov okscov) */
18581 Hd.Id Id,
18582 Hd.Contract_Number Contract_Number,
18583 Hd.Contract_Number_Modifier Contract_Number_Modifier,
18584 HdT.Short_Description Short_Description, /*bug 7412576*/
18585 Hd.Start_Date Hd_Start_Date,
18586 Hd.End_Date Hd_End_Date,
18587 hd.scs_code hd_scs_code,
18588 hd.org_id org_id, /*bug:7363217*/
18589 Sv.Id Service_ID,
18590 Sv.Line_Number Line_Number,
18591 --- truncating the dates to remove accidental existence of time components in dates.
18592 trunc(Sv.Start_Date) Start_Date,
18593 trunc(Sv.End_Date) End_Date,
18594 trunc(Sv.Date_Terminated) Date_Terminated,
18595 Sv.Sts_code Sts_code,
18596 SYS.concatenated_segments Name,
18597 cov.id cov_line_id,
18598 Cov.Name Cov_Name,
18599 --- truncating the dates to remove accidental existence of time components in dates.
18600 /*trunc(Cov.Start_Date) Cov_Start_Date,
18601 trunc(Cov.End_Date) Cov_End_Date,
18602 trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/ /*bug 7412576*/
18603 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
18604 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
18605 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
18606 Sv.Lse_Id Service_Lse_Id
18607 FROM OKC_K_HEADERS_ALL_B HD,
18608 OKC_K_HEADERS_TL HDT, /*OKC_K_HEADERS_V HD,*/ /*bug 7412576*/
18609 OKC_K_LINES_B Sv,
18610 OKS_K_LINES_B KSL,
18611 OKC_K_LINES_V Cov,
18612 oks_k_lines_b okscov,--11.5.10 rule rearchitecture changes
18613 OKC_K_ITEMS items,
18614 MTL_SYSTEM_ITEMS_B_KFV sys
18615 WHERE Hd.Id = Sv.chr_id
18616 AND HDT.ID = HD.ID
18617 AND HDT.LANGUAGE = USERENV('LANG') /*bug 7412576*/
18618 AND Hd.id = SV.DNZ_CHR_ID
18619 AND Hd.Id = nvl(P_Id,Hd.Id)
18620 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
18621 AND Sv.lse_id in (1,14,19)
18622 AND Sv.id = items.cle_id
18623 AND Sv.dnz_chr_id = items.dnz_chr_id
18624 AND sys.inventory_item_id = to_number(items.object1_id1)
18625 AND sys.organization_id = to_number(items.object1_id2)
18626 AND items.dnz_chr_id = Hd.Id
18627 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
18628 -- AND items.object1_id2 = sys.id2 --'204'
18629 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
18630 --- truncating the dates to remove accidental existence of time components in dates.
18631 -- AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
18632 -- and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
18633 -- AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
18634 -- and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
18635 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
18636 AND sv.End_Date between P_End_Date_From and P_End_Date_To
18637 AND ksl.cle_id = sv.id
18638 and ksl.Coverage_Id = COV.Id
18639 AND Cov.lse_id in (2,15,20)
18640 /* AND Cov.cle_id = Sv.id
18641 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id*/ /*bug 7412576*/
18642 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
18643 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
18644 -- 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
18645 -- 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
18646 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
18647 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
18648 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
18649 order by sv.id;
18650
18651 CURSOR get_Cont_noclvl_chr_noitem_cur (P_Id IN NUMBER,
18652 P_Cle_Id IN NUMBER, -- not being used anywhere
18653 P_Sts_Code IN VARCHAR2,
18654 P_Start_Date_From IN DATE,
18655 P_Start_Date_TO IN DATE,
18656 P_END_Date_From IN DATE,
18657 P_END_Date_TO IN DATE,
18658 P_Cov_type IN VARCHAR2,
18659 P_Bill_To IN VARCHAR2,
18660 P_Ship_To IN VARCHAR2,
18661 P_renewal_code IN VARCHAR2,
18662 p_authoring_org_id in number) IS
18663 SELECT /*+ leading(hd) use_nl(hd sv items sys cov okscov) */
18664 Hd.Id Id,
18665 Hd.Contract_Number Contract_Number,
18666 Hd.Contract_Number_Modifier Contract_Number_Modifier,
18667 HdT.Short_Description Short_Description, /*bug 7412576*/
18668 Hd.Start_Date Hd_Start_Date,
18669 Hd.End_Date Hd_End_Date,
18670 hd.scs_code hd_scs_code,
18671 hd.org_id org_id, /*bug:7363217*/
18672 Sv.Id Service_ID,
18673 Sv.Line_Number Line_Number,
18674 --- truncating the dates to remove accidental existence of time components in dates.
18675 trunc(Sv.Start_Date) Start_Date,
18676 trunc(Sv.End_Date) End_Date,
18677 trunc(Sv.Date_Terminated) Date_Terminated,
18678 Sv.Sts_code Sts_code,
18679 SYS.concatenated_segments Name,
18680 cov.id cov_line_id,
18681 Cov.Name Cov_Name,
18682 --- truncating the dates to remove accidental existence of time components in dates.
18683
18684 /* trunc(Cov.Start_Date) Cov_Start_Date,
18685 trunc(Cov.End_Date) Cov_End_Date,
18686 trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/ /*bug 7412576*/
18687 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
18688 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
18689 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
18690 Sv.Lse_Id Service_Lse_Id
18691 FROM OKC_K_HEADERS_ALL_B HD,
18692 OKC_K_HEADERS_TL HDT,/*OKC_K_HEADERS_V HD,*/ /*bug 7412576*/
18693 OKC_K_LINES_B Sv,
18694 OKS_K_LINES_B KSL,
18695 OKC_K_LINES_V Cov,
18696 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
18697 OKC_K_ITEMS items,
18698 MTL_SYSTEM_ITEMS_B_KFV sys
18699 WHERE Hd.Id = Sv.chr_id
18700 AND HDT.ID = HD.ID
18701 AND HDT.LANGUAGE = USERENV('LANG')
18702 AND Hd.id = SV.DNZ_CHR_ID
18703 AND Hd.Id = P_ID -- nvl(P_Id,Hd.Id)
18704 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
18705 AND Sv.lse_id in (1,14,19)
18706 AND Sv.id = items.cle_id
18707 AND Sv.dnz_chr_id = items.dnz_chr_id
18708 AND sys.inventory_item_id = to_number(items.object1_id1)
18709 AND sys.organization_id = to_number(items.object1_id2)
18710 AND items.dnz_chr_id = Hd.Id
18711 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
18712 -- AND items.object1_id2 = sys.id2 --'204'
18713 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
18714 --- truncating the dates to remove accidental existence of time components in dates.
18715 -- AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
18716 -- and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
18717 -- AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
18718 -- and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
18719 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
18720 AND sv.End_Date between P_End_Date_From and P_End_Date_To
18721 AND ksl.cle_id = sv.id
18722 and ksl.Coverage_Id = COV.Id
18723 AND Cov.lse_id in (2,15,20)
18724 /* AND Cov.cle_id = Sv.id
18725 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id*/ /*bug 7412576*/
18726 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
18727 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
18728 -- 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
18729 -- 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
18730 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
18731 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
18732 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
18733 order by sv.id;
18734
18735 CURSOR get_Contract_noclvl_cur (P_Id IN NUMBER,
18736 P_Cle_Id IN NUMBER,
18737 P_Service_Item_id IN NUMBER,
18738 P_Sts_Code IN VARCHAR2,
18739 P_Start_Date_From IN DATE,
18740 P_Start_Date_TO IN DATE,
18741 P_END_Date_From IN DATE,
18742 P_END_Date_TO IN DATE,
18743 P_Cov_type IN VARCHAR2,
18744 P_Bill_To IN VARCHAR2,
18745 P_Ship_To IN VARCHAR2,
18746 P_renewal_code IN VARCHAR2,
18747 p_authoring_org_id in number) IS
18748 SELECT /*+ leading(sv) use_nl(sv items sys hd cov okscov) index(items okc_k_items_n1)*/
18749 Hd.Id Id,
18750 Hd.Contract_Number Contract_Number,
18751 Hd.Contract_Number_Modifier Contract_Number_Modifier,
18752 HdT.Short_Description Short_Description, -- HdT.Short_Description -- Modified for 12.0 MOAC project (JVARGHES)
18753 Hd.Start_Date Hd_Start_Date,
18754 Hd.End_Date Hd_End_Date,
18755 hd.scs_code hd_scs_code,
18756 hd.org_id org_id, -- Modified for 12.0 MOAC project (JVARGHES)
18757 Sv.Id Service_ID,
18758 Sv.Line_Number Line_Number,
18759 --- truncating the dates to remove accidental existence of time components in dates.
18760 trunc(Sv.Start_Date) Start_Date,
18761 trunc(Sv.End_Date) End_Date,
18762 trunc(Sv.Date_Terminated) Date_Terminated,
18763 Sv.Sts_code Sts_code,
18764 SYS.concatenated_segments Name,
18765 cov.id cov_line_id,
18766 Cov.Name Cov_Name,
18767 --- truncating the dates to remove accidental existence of time components in dates.
18768 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
18769 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
18770 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
18771 Sv.Lse_Id Service_Lse_Id
18772 FROM OKC_K_HEADERS_ALL_B HD, -- Modified for 12.0 MOAC project (JVARGHES)
18773 OKC_K_HEADERS_TL HDT, -- Okc_K_Headers_V HD -- Modified for 12.0 MOAC project (JVARGHES)
18774 OKC_K_LINES_B Sv,
18775 OKC_K_LINES_V Cov,
18776 oks_k_lines_b ksl,
18777 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
18778 OKC_K_ITEMS items,
18779 MTL_SYSTEM_ITEMS_B_KFV sys
18780 WHERE Hd.Id = Sv.chr_id
18781 AND Hd.id = SV.DNZ_CHR_ID
18782 AND HDT.ID = HD.ID -- Modified for 12.0 MOAC project (JVARGHES)
18783 AND HDT.LANGUAGE = USERENV('LANG') -- Modified for 12.0 MOAC project (JVARGHES)
18784 AND Hd.Id = nvl(P_Id,Hd.Id)
18785 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
18786 AND Sv.lse_id in (1,14,19)
18787 AND Sv.id = items.cle_id
18788 AND Sv.dnz_chr_id = items.dnz_chr_id
18789 /*AND sys.id1 = to_number(items.object1_id1)
18790 AND sys.id2 = to_number(items.object1_id2)*/ /*Bug:6767455*/
18791 AND sys.inventory_item_id = to_number(items.object1_id1)
18792 AND sys.organization_id = to_number(items.object1_id2)
18793 AND items.dnz_chr_id = Hd.Id
18794 AND items.object1_id1 = to_number(P_service_Item_id)
18795 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
18796 -- AND items.object1_id2 = sys.id2 --'204'
18797 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
18798 --- truncating the dates to remove accidental existence of time components in dates.
18799 -- AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
18800 -- and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
18801 -- AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
18802 -- and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
18803 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
18804 AND sv.End_Date between P_End_Date_From and P_End_Date_To
18805 AND ksl.cle_id = sv.id
18806 and ksl.Coverage_Id = COV.Id
18807 AND Cov.lse_id in (2,15,20)
18808 /*AND Cov.cle_id = Sv.id
18809 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id*/ /*bug 7412576*/
18810 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
18811 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
18812 -- 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
18813 -- 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
18814 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
18815 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
18816 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
18817 order by sv.id;
18818
18819 CURSOR get_Cont_noclvl_chr_cur (P_Id IN NUMBER,
18820 P_Cle_Id IN NUMBER, -- not being used anywhere
18821 P_Service_Item_id IN NUMBER,
18822 P_Sts_Code IN VARCHAR2,
18823 P_Start_Date_From IN DATE,
18824 P_Start_Date_TO IN DATE,
18825 P_END_Date_From IN DATE,
18826 P_END_Date_TO IN DATE,
18827 P_Cov_type IN VARCHAR2,
18828 P_Bill_To IN VARCHAR2,
18829 P_Ship_To IN VARCHAR2,
18830 P_renewal_code IN VARCHAR2,
18831 p_authoring_org_id in number) IS
18832 SELECT /*+ leading(hd) use_nl(hd sv items sys cov okscov) index(items okc_k_items_n1)*/
18833 Hd.Id Id,
18834 Hd.Contract_Number Contract_Number,
18835 Hd.Contract_Number_Modifier Contract_Number_Modifier,
18836 HdT.Short_Description Short_Description, /*bug 7412576*/
18837 Hd.Start_Date Hd_Start_Date,
18838 Hd.End_Date Hd_End_Date,
18839 hd.scs_code hd_scs_code,
18840 hd.org_id org_id, /*bug:7363217*/
18841 Sv.Id Service_ID,
18842 Sv.Line_Number Line_Number,
18843 --- truncating the dates to remove accidental existence of time components in dates.
18844 trunc(Sv.Start_Date) Start_Date,
18845 trunc(Sv.End_Date) End_Date,
18846 trunc(Sv.Date_Terminated) Date_Terminated,
18847 Sv.Sts_code Sts_code,
18848 SYS.concatenated_segments Name,
18849 cov.id cov_line_id,
18850 Cov.Name Cov_Name,
18851 --- truncating the dates to remove accidental existence of time components in dates.
18852 /*trunc(Cov.Start_Date) Cov_Start_Date,
18853 trunc(Cov.End_Date) Cov_End_Date,
18854 trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/ /*bug 7412576*/
18855 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
18856 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
18857 trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
18858 Sv.Lse_Id Service_Lse_Id
18859 FROM OKC_K_HEADERS_ALL_B HD,
18860 OKC_K_HEADERS_TL HDT, /*OKC_K_HEADERS_V HD,*/ /*bug 7412576*/
18861 OKC_K_LINES_B Sv,
18862 OKC_K_LINES_V Cov,
18863 oks_k_lines_b ksl,
18864 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
18865 OKC_K_ITEMS items,
18866 MTL_SYSTEM_ITEMS_B_KFV sys
18867 WHERE Hd.Id = Sv.chr_id
18868 AND HDT.ID = HD.ID
18869 AND HDT.LANGUAGE = USERENV('LANG') /*bug 7412576*/
18870 AND Hd.id = SV.DNZ_CHR_ID
18871 AND Hd.Id = p_id -- nvl(P_Id,Hd.Id)
18872 and hd.authoring_org_id = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
18873 AND Sv.lse_id in (1,14,19)
18874 AND Sv.id = items.cle_id
18875 AND Sv.dnz_chr_id = items.dnz_chr_id
18876 AND sys.inventory_item_id = to_number(items.object1_id1)
18877 AND sys.organization_id = to_number(items.object1_id2)
18878 AND items.dnz_chr_id = Hd.Id
18879 --AND to_number(items.object1_id1) = nvl(P_service_Item_id,to_number(items.object1_id1))
18880 AND items.object1_id1 = to_number(P_service_Item_id)
18881 AND items.JTOT_OBJECT1_CODE in ('OKX_SERVICE','OKX_WARRANTY')
18882 --AND items.object1_id2 = sys.id2 --'204'
18883 AND Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
18884 --- truncating the dates to remove accidental existence of time components in dates.
18885 /*AND trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
18886 and trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
18887 AND trunc(sv.End_Date) >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
18888 and trunc(sv.End_Date) <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))*/
18889 AND sv.Start_Date between P_Start_Date_From and P_Start_Date_to
18890 AND sv.End_Date between P_End_Date_From and P_End_Date_To
18891 AND ksl.cle_id = sv.id
18892 and ksl.Coverage_Id = COV.Id /*commented for bug:6767455*/ /*bug 7412576*/
18893 AND Cov.lse_id in (2,15,20)
18894 /* AND Cov.cle_id = Sv.id
18895 AND Cov.dnz_chr_Id = Sv.dnz_chr_Id*/
18896 and okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
18897 and nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
18898 /*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
18899 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*/
18900 and ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
18901 and ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
18902 and nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
18903 order by sv.id;
18904 Type l_num_tbl is table of NUMBER index by BINARY_INTEGER ; /* Added for bug:6767455*/
18905 Type l_date_tbl is table of DATE index by BINARY_INTEGER ;
18906 Type l_chr_tbl is table of Varchar2(600) index by BINARY_INTEGER ;
18907
18908 Id l_num_tbl;
18909 contract_number l_chr_tbl;
18910 Contract_Number_Modifier l_chr_tbl;
18911 Short_Description l_chr_tbl;
18912 Hd_Start_Date l_date_tbl;
18913 Hd_End_Date l_date_tbl;
18914 hd_scs_code l_chr_tbl;
18915 org_id l_num_tbl;
18916 Service_ID l_num_tbl;
18917 Line_Number l_num_tbl;
18918 Start_Date l_date_tbl;
18919 End_Date l_date_tbl;
18920 Date_Terminated l_date_tbl;
18921 Sts_code l_chr_tbl;
18922 Name l_chr_tbl;
18923 Item_Start_Date l_date_tbl;
18924 Item_End_Date l_date_tbl;
18925 Item_Date_Terminated l_date_tbl;
18926 cov_line_id l_num_tbl;
18927 Cov_Name l_chr_tbl;
18928 Cov_Start_Date l_date_tbl;
18929 Cov_End_Date l_date_tbl;
18930 Cov_Date_Terminated l_date_tbl;
18931 Service_Lse_Id l_num_tbl;
18932
18933 Lv_Contracts GT_Contract_Ref;
18934 Lv_Contract_line_Rec srchline_inpcontlinerec_type;
18935 Lv_Request_Date Date;
18936 Lv_Contracts_02 output_tbl_contractline ;
18937 Lv_Contracts_02_Out output_tbl_contractline ;
18938
18939 Lv_Entitlment_Check CONSTANT VARCHAR2(1) := P_Entitlement_Check_YN;
18940 Lv_authoring_org_id CONSTANT number := P_authoring_org_id; -- multi org security check
18941 Lv_covlevel_lines_passed CONSTANT VARCHAR2(1) := P_Covlevel_lines_passed;
18942
18943 Lx_Result Gx_Boolean;
18944 Lx_Return_Status Gx_Ret_Sts;
18945
18946 Lx_counter Binary_Integer;
18947 Lv_Entile_Flag VARCHAR2(1);
18948 L_Profile_Flag VARCHAR2(1);
18949 L_return_Status VARCHAR2(1);
18950 Lx_service_id number;
18951 L_valid_line varchar2(1);
18952 L_line_id_tbl Line_id_tbl;
18953 l_last_date DATE;
18954 l_first_date DATE;
18955
18956 -- Modified for 12.0 MOAC project (JVARGHES)
18957 --
18958
18959 CURSOR c_OU(c_Org_Id IN NUMBER)
18960 IS SELECT OU.Name
18961 FROM HR_ALL_ORGANIZATION_UNITS_TL OU
18962 WHERE OU.ORGANIZATION_ID = c_Org_Id
18963 AND OU.LANGUAGE = USERENV('LANG');
18964 --
18965 --
18966
18967 FUNCTION Get_Line_Styles(P_lse_id IN NUMBER) Return Varchar2 is
18968
18969 CURSOR get_line_style (lse_id IN NUMBER) IS
18970 SELECT Id,NAME
18971 FROM OKC_LINE_STYLES_V
18972 WHERE ID = lse_id;
18973
18974 L_Lse_Id NUMBER;
18975 L_style_name VARCHAR2(100);
18976 BEGIN
18977 L_Lse_Id := P_lse_id;
18978 L_style_name := NULL;
18979
18980 FOR get_line_style_rec in get_line_style(l_Lse_id) LOOP
18981 l_style_name := get_line_style_rec.NAME;
18982
18983 END LOOP;
18984 RETURN l_style_name;
18985 END Get_Line_Styles;
18986
18987 PROCEDURE Fetch_Sts_Meaning IS
18988
18989 CURSOR GET_STATUS_CUR IS
18990 SELECT CODE,MEANING
18991 FROM OKC_STATUSES_V ;
18992
18993 i Number;
18994 BEGIN
18995 i := 1;
18996 l_status_tab.DELETE;
18997
18998 FOR GET_STATUS_REC IN GET_STATUS_CUR LOOP
18999 l_status_tab(i).Code := GET_STATUS_REC.CODE;
19000 l_status_tab(i).Meaning := GET_STATUS_REC.MEANING;
19001 i := i+1;
19002 END LOOP;
19003
19004 END Fetch_Sts_Meaning;
19005
19006 FUNCTION Get_Sts_Meaning (L_CODE IN VARCHAR2) RETURN VARCHAR2 IS
19007 BEGIN
19008 FOR I IN L_STATUS_TAB.FIRST .. L_STATUS_TAB.LAST LOOP
19009 IF l_Code = L_STATUS_TAB(i).CODE THEN
19010 RETURN L_STATUS_TAB(i).MEANING;
19011 END IF;
19012 END LOOP;
19013 END Get_Sts_Meaning;
19014
19015 FUNCTION Get_Line_Processed (p_line_id IN VARCHAR2,
19016 p_line_id_tbl IN OUT NOCOPY line_id_tbl ) RETURN VARCHAR2 IS
19017
19018 l_line_processed varchar2(1);
19019
19020 BEGIN
19021 l_line_processed := 'N';
19022 if p_line_id_tbl.count > 0 then
19023 for i in p_line_id_tbl.first..p_line_id_tbl.last loop
19024 if p_line_id = p_line_id_tbl(i).line_id then
19025 l_line_processed := 'Y';
19026 exit;
19027 end if;
19028 end loop;
19029 if l_line_processed = 'N' then
19030 p_line_id_tbl(l_line_id_tbl.last+1).line_id := p_line_id;
19031 end if;
19032 else
19033 p_line_id_tbl(1).line_id := p_line_id;
19034 end if;
19035 return l_line_processed;
19036 END Get_Line_Processed;
19037
19038
19039 BEGIN
19040
19041 Lv_Contracts := P_Contracts;
19042 Lv_Contract_line_Rec := P_Contract_line_Rec;
19043 Lv_Request_Date := nvl(P_Request_Date,sysdate);
19044 Lx_Result := G_TRUE;
19045 Lx_Return_Status := G_RET_STS_SUCCESS;
19046 Lx_counter := 1;
19047 Lx_service_id := -99;
19048 l_last_date := TO_DATE(5373484,'j');
19049 l_first_date := TO_DATE(1,'j');
19050
19051 IF (Lv_Contract_line_Rec.Start_Date_From IS NULL) THEN
19052 Lv_Contract_line_Rec.Start_Date_From := l_first_date;
19053 END IF;
19054 IF (Lv_Contract_line_Rec.Start_Date_To IS NULL) THEN
19055 Lv_Contract_line_Rec.Start_Date_To := l_last_date;
19056 END IF;
19057
19058 IF (Lv_Contract_line_Rec.End_Date_From IS NULL) THEN
19059 Lv_Contract_line_Rec.End_Date_From := l_first_date;
19060 END IF;
19061
19062 IF (Lv_Contract_line_Rec.End_Date_To IS NULL) THEN
19063 Lv_Contract_line_Rec.End_Date_To := l_last_date;
19064 END IF;
19065
19066
19067 Lv_Contract_line_Rec.Start_Date_From := TRUNC(Lv_Contract_line_Rec.Start_Date_From);
19068 Lv_Contract_line_Rec.End_Date_From := TRUNC(Lv_Contract_line_Rec.End_Date_From);
19069 Lv_Contract_line_Rec.Start_Date_To := TRUNC(Lv_Contract_line_Rec.Start_Date_To) + 0.99998843;
19070 Lv_Contract_line_Rec.End_Date_To := TRUNC(Lv_Contract_line_Rec.End_Date_To) + 0.99998843;
19071 Fetch_Sts_Meaning;
19072
19073 G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
19074
19075 Lv_Contracts_02.DELETE;
19076
19077 IF Lv_Contracts.COUNT = 0 THEN
19078 /*Added for bug:6767455*/
19079 /* Added by Jvorugan for Bug:4991724
19080 If service_item_id is not null, then only passing the value.
19081 This is to avoid full table scan on okc_k_items due to nvl condition on service_item_id*/
19082
19083 IF Lv_Contract_line_Rec.Service_Item_ID IS NULL
19084 THEN
19085 open get_Contract_noclvl_noitem_cur(NULL,
19086 NULL,
19087 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19088 Lv_Contract_line_Rec.Start_Date_From,
19089 Lv_Contract_line_Rec.Start_Date_To,
19090 Lv_Contract_line_Rec.End_Date_From,
19091 Lv_Contract_line_Rec.End_Date_To,
19092 Lv_Contract_line_Rec.Coverage_Type_Code,
19093 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19094 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19095 Lv_Contract_line_Rec.line_renewal_type_code,
19096 Lv_authoring_org_id);
19097 fetch get_Contract_noclvl_noitem_cur BULK COLLECT into Id,
19098 contract_number,
19099 contract_Number_Modifier,
19100 Short_Description,
19101 Hd_Start_Date,
19102 Hd_End_Date,
19103 hd_scs_code,
19104 org_id, /*bug:7363217*/
19105 Service_ID,
19106 Line_Number,
19107 Start_Date,
19108 End_Date,
19109 Date_Terminated,
19110 Sts_code,
19111 Name,
19112 cov_line_id,
19113 Cov_Name,
19114 Cov_Start_Date,
19115 Cov_End_Date,
19116 Cov_Date_Terminated,
19117 Service_Lse_Id;
19118 close get_Contract_noclvl_noitem_cur;
19119 ELSE
19120 open get_Contract_noclvl_cur(NULL,
19121 NULL,
19122 Lv_Contract_line_Rec.Service_Item_ID,
19123 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19124 Lv_Contract_line_Rec.Start_Date_From,
19125 Lv_Contract_line_Rec.Start_Date_To,
19126 Lv_Contract_line_Rec.End_Date_From,
19127 Lv_Contract_line_Rec.End_Date_To,
19128 Lv_Contract_line_Rec.Coverage_Type_Code,
19129 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19130 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19131 Lv_Contract_line_Rec.line_renewal_type_code,
19132 Lv_authoring_org_id);
19133 fetch get_Contract_noclvl_cur BULK COLLECT into Id,
19134 contract_number,
19135 contract_Number_Modifier,
19136 Short_Description,
19137 Hd_Start_Date,
19138 Hd_End_Date,
19139 hd_scs_code,
19140 org_id, /*bug:6767455*/
19141 Service_ID,
19142 Line_Number,
19143 Start_Date,
19144 End_Date,
19145 Date_Terminated,
19146 Sts_code,
19147 Name,
19148 cov_line_id,
19149 Cov_Name,
19150 Cov_Start_Date,
19151 Cov_End_Date,
19152 Cov_Date_Terminated,
19153 Service_Lse_Id;
19154 close get_Contract_noclvl_cur;
19155
19156 END IF;
19157
19158 IF Id.count >0
19159 THEN
19160 FOR i in Id.FIRST..ID.LAST
19161 LOOP
19162
19163 if nvl(lx_service_id,-99) <>Service_ID(i) then
19164 Lv_Contracts_02(lx_counter).Contract_Number := contract_number(i);
19165 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := contract_Number_Modifier(i);
19166 Lv_Contracts_02(lx_counter).Contract_Description := Short_Description(i);
19167 Lv_Contracts_02(lx_counter).Contract_Line_Number := Line_Number(i);
19168 Lv_Contracts_02(lx_counter).Line_Start_Date := Start_Date(i);
19169 Lv_Contracts_02(lx_counter).Line_End_Date := End_Date(i);
19170 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
19171 Lv_Contracts_02(lx_counter).Service_name := name(i);
19172 Lv_Contracts_02(lx_counter).Coverage_name := Cov_name(i);
19173 Lv_Contracts_02(lx_counter).Service_Id := Service_ID(i);
19174 Lv_Contracts_02(lx_counter).Service_Lse_ID := Service_Lse_Id(i);
19175 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Service_Lse_Id(i));
19176 Lv_Contracts_02(lx_counter).contract_id := Id(i);
19177 Lv_Contracts_02(lx_counter).coverage_line_id := cov_line_Id(i);
19178 Lv_Contracts_02(lx_counter).scs_code := hd_scs_code(i);
19179
19180 /*bug:7363217*/
19181 --
19182 Lv_Contracts_02(lx_counter).OPERATING_UNIT := org_id(i);
19183 OPEN c_OU(org_id(i));
19184 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
19185 CLOSE c_OU;
19186
19187 lx_counter :=lx_counter + 1 ;
19188 lx_service_id := service_id(i);
19189
19190 end if;
19191 END LOOP;
19192 END IF;
19193
19194
19195 /* commented for Bug:6767455
19196 For Idx In get_Contract_noclvl_cur(NULL,
19197 NULL,
19198 Lv_Contract_line_Rec.Service_Item_ID,
19199 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19200 Lv_Contract_line_Rec.Start_Date_From,
19201 Lv_Contract_line_Rec.Start_Date_To,
19202 Lv_Contract_line_Rec.End_Date_From,
19203 Lv_Contract_line_Rec.End_Date_To,
19204 Lv_Contract_line_Rec.Coverage_Type_Code,
19205 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19206 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19207 Lv_Contract_line_Rec.line_renewal_type_code,
19208 Lv_authoring_org_id) LOOP
19209
19210
19211 if nvl(lx_service_id,-99) <> Idx.Service_id then
19212
19213 Lv_Contracts_02(lx_counter).Contract_Number := Idx.Contract_Number;
19214 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
19215 Lv_Contracts_02(lx_counter).Contract_Description := Idx.Short_Description;
19216 Lv_Contracts_02(lx_counter).Contract_Line_Number := Idx.Line_Number;
19217 Lv_Contracts_02(lx_counter).Line_Start_Date := Idx.Start_Date;
19218 Lv_Contracts_02(lx_counter).Line_End_Date := Idx.End_Date;
19219 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
19220 Lv_Contracts_02(lx_counter).Service_name := Idx.name;
19221 Lv_Contracts_02(lx_counter).Coverage_name := Idx.Cov_name;
19222 Lv_Contracts_02(lx_counter).Service_Id := Idx.Service_ID;
19223 Lv_Contracts_02(lx_counter).Service_Lse_ID := Idx.Service_Lse_Id;
19224 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Idx.Service_Lse_Id);
19225 Lv_Contracts_02(lx_counter).contract_id := Idx.Id;
19226 Lv_Contracts_02(lx_counter).coverage_line_id := Idx.cov_line_Id;
19227 Lv_Contracts_02(lx_counter).scs_code := Idx.hd_scs_code;
19228
19229 --
19230 -- Modified for 12.0 MOAC project (JVARGHES)
19231 --
19232 Lv_Contracts_02(lx_counter).OPERATING_UNIT := Idx.org_id;
19233 OPEN c_OU(Idx.org_id);
19234 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
19235 CLOSE c_OU;
19236 --
19237 --
19238
19239 lx_counter :=lx_counter + 1 ;
19240 lx_service_id := Idx.service_id;
19241
19242 end if;
19243
19244 END LOOP;
19245 */
19246 END IF;
19247
19248 IF Lv_Contracts.COUNT > 0 and Lv_covlevel_lines_passed = 'Y' THEN
19249
19250 FOR I In Lv_Contracts.FIRST .. Lv_Contracts.LAST LOOP
19251
19252 -- checking if covered level line id processed
19253 If Get_Line_Processed (p_line_id => Lv_Contracts(i).Rx_Cle_ID,
19254 p_line_id_tbl => l_line_id_tbl) = 'N' then
19255 /* Added for Bug:6767455
19256 If service_item_id is not null, then only passing the value.
19257 This is to avoid full table scan on okc_k_items due to nvl condition on service_item_id*/
19258
19259 IF Lv_Contract_line_Rec.Service_Item_ID IS NULL
19260 THEN
19261 open get_Contract_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
19262 Lv_Contracts(i).Rx_Cle_ID,
19263 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19264 Lv_Contract_line_Rec.Start_Date_From,
19265 Lv_Contract_line_Rec.Start_Date_To,
19266 Lv_Contract_line_Rec.End_Date_From,
19267 Lv_Contract_line_Rec.End_Date_To,
19268 Lv_Contract_line_Rec.Coverage_Type_Code,
19269 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19270 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19271 Lv_Contract_line_Rec.line_renewal_type_code,
19272 Lv_authoring_org_id);
19273 fetch get_Contract_noitem_cur bulk collect into Id,
19274 contract_number,
19275 contract_Number_Modifier,
19276 Short_Description,
19277 Hd_Start_Date,
19278 Hd_End_Date,
19279 hd_scs_code,
19280 org_id, /*bug:7363217*/
19281 Service_ID,
19282 Line_Number,
19283 Start_Date,
19284 End_Date,
19285 Date_Terminated,
19286 Sts_code,
19287 Name,
19288 Item_Start_Date,
19289 Item_End_Date,
19290 Item_Date_Terminated,
19291 cov_line_id,
19292 Cov_Name,
19293 Cov_Start_Date,
19294 Cov_End_Date,
19295 Cov_Date_Terminated,
19296 Service_Lse_Id;
19297 close get_Contract_noitem_cur;
19298 ELSE
19299 open get_Contract_cur (Lv_Contracts(i).Rx_Chr_ID,
19300 Lv_Contracts(i).Rx_Cle_ID,
19301 Lv_Contract_line_Rec.Service_Item_ID,
19302 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19303 Lv_Contract_line_Rec.Start_Date_From,
19304 Lv_Contract_line_Rec.Start_Date_To,
19305 Lv_Contract_line_Rec.End_Date_From,
19306 Lv_Contract_line_Rec.End_Date_To,
19307 Lv_Contract_line_Rec.Coverage_Type_Code,
19308 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19309 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19310 Lv_Contract_line_Rec.line_renewal_type_code,
19311 Lv_authoring_org_id);
19312 fetch get_Contract_cur bulk collect into Id,
19313 contract_number,
19314 contract_Number_Modifier,
19315 Short_Description,
19316 Hd_Start_Date,
19317 Hd_End_Date,
19318 hd_scs_code,
19319 org_id, /*Bug:6767455*/
19320 Service_ID,
19321 Line_Number,
19322 Start_Date,
19323 End_Date,
19324 Date_Terminated,
19325 Sts_code,
19326 Name,
19327 Item_Start_Date,
19328 Item_End_Date,
19329 Item_Date_Terminated,
19330 cov_line_id,
19331 Cov_Name,
19332 Cov_Start_Date,
19333 Cov_End_Date,
19334 Cov_Date_Terminated,
19335 Service_Lse_Id;
19336 close get_Contract_cur;
19337 END IF;
19338 IF Id.count >0
19339 THEN
19340
19341 FOR i in Id.FIRST..Id.LAST
19342 LOOP
19343
19344 if nvl(lx_service_id,-99) <> service_id(i)then
19345
19346 IF Lv_Entitlment_Check = 'Y' THEN --Lv_Entitlment_Check = 'Y'
19347
19348 Get_Valid_Line(
19349 PHd_Id =>Id(i),
19350 PHd_Start_Date =>Hd_Start_Date(i),
19351 PHd_END_Date =>Hd_End_Date(i),
19352 PSv_Start_Date =>Start_Date(i),
19353 PSv_End_Date =>End_Date(i),
19354 PSv_Term_Date =>Date_Terminated(i),
19355 PIt_Start_Date =>Item_Start_Date(i),
19356 PIt_End_Date =>Item_End_Date(i),
19357 PIt_Term_Date =>Item_Date_Terminated(i),
19358 PCo_Start_Date =>Cov_Start_Date(i),
19359 PCo_End_Date =>Cov_End_Date(i),
19360 PCo_Term_Date =>Cov_Date_Terminated(i),
19361 P_Request_Date =>Lv_Request_Date,
19362 X_valid_line =>L_valid_line,
19363 X_return_Status =>L_return_Status);
19364
19365 Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Service_ID(i), 'ENTITLE');
19366
19367 IF ((Lv_Entile_Flag = 'T') AND (L_valid_line = 'T')) THEN --Lv_Entile_Flag = 'T'
19368
19369 Lv_Contracts_02(lx_counter).Contract_Number := Contract_Number(i);
19370 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Contract_Number_Modifier(i);
19371 Lv_Contracts_02(lx_counter).Contract_Description := Short_Description(i);
19372 Lv_Contracts_02(lx_counter).Contract_Line_Number := Line_Number(i);
19373 Lv_Contracts_02(lx_counter).Line_Start_Date := Start_Date(i);
19374 Lv_Contracts_02(lx_counter).Line_End_Date := End_Date(i);
19375 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
19376 Lv_Contracts_02(lx_counter).Service_name := name(i);
19377 Lv_Contracts_02(lx_counter).Coverage_name := Cov_name(i);
19378 Lv_Contracts_02(lx_counter).Service_Id := Service_ID(i);
19379 Lv_Contracts_02(lx_counter).Service_Lse_ID := Service_Lse_Id(i);
19380 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Service_Lse_Id(i));
19381 Lv_Contracts_02(lx_counter).contract_id := Id(i);
19382 Lv_Contracts_02(lx_counter).coverage_line_id := cov_line_Id(i);
19383 Lv_Contracts_02(lx_counter).scs_code := hd_scs_code(i);
19384 /*bug:7363217*/
19385 --
19386 Lv_Contracts_02(lx_counter).OPERATING_UNIT := org_id(i);
19387 OPEN c_OU(org_id(i));
19388 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
19389 CLOSE c_OU;
19390 lx_counter :=lx_counter + 1 ;
19391
19392 END IF; ----Lv_Entile_Flag = 'T'
19393 ELSE ----Lv_Entitlment_Check = 'Y'
19394
19395 Lv_Contracts_02(lx_counter).Contract_Number := Contract_Number(i);
19396 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Contract_Number_Modifier(i);
19397 Lv_Contracts_02(lx_counter).Contract_Description := Short_Description(i);
19398 Lv_Contracts_02(lx_counter).Contract_Line_Number := Line_Number(i);
19399 Lv_Contracts_02(lx_counter).Line_Start_Date := Start_Date(i);
19400 Lv_Contracts_02(lx_counter).Line_End_Date := End_Date(i);
19401 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
19402 Lv_Contracts_02(lx_counter).Service_name := name(i);
19403 Lv_Contracts_02(lx_counter).Coverage_name := Cov_name(i);
19404 Lv_Contracts_02(lx_counter).Service_Id := Service_ID(i);
19405 Lv_Contracts_02(lx_counter).Service_Lse_ID := Service_Lse_Id(i);
19406 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Service_Lse_Id(i));
19407 Lv_Contracts_02(lx_counter).contract_id := Id(i);
19408 Lv_Contracts_02(lx_counter).coverage_line_id := cov_line_Id(i);
19409 Lv_Contracts_02(lx_counter).scs_code := hd_scs_code(i);
19410
19411 /*bug:7363217*/
19412 --
19413 Lv_Contracts_02(lx_counter).OPERATING_UNIT := org_id(i);
19414 OPEN c_OU(org_id(i));
19415 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
19416 CLOSE c_OU;
19417 lx_counter :=lx_counter + 1 ;
19418
19419 END IF; --Lv_Entitlment_Check = 'Y'
19420
19421 lx_service_id := service_id(i);
19422
19423 end if;
19424
19425 END LOOP;
19426
19427 END IF; -- Id.count >0
19428
19429
19430 /* commented for perf bug:6767455
19431 For Idx In get_Contract_cur(Lv_Contracts(i).Rx_Chr_ID,
19432 Lv_Contracts(i).Rx_Cle_ID,
19433 Lv_Contract_line_Rec.Service_Item_ID,
19434 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19435 Lv_Contract_line_Rec.Start_Date_From,
19436 Lv_Contract_line_Rec.Start_Date_To,
19437 Lv_Contract_line_Rec.End_Date_From,
19438 Lv_Contract_line_Rec.End_Date_To,
19439 Lv_Contract_line_Rec.Coverage_Type_Code,
19440 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19441 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19442 Lv_Contract_line_Rec.line_renewal_type_code,
19443 Lv_authoring_org_id) LOOP
19444
19445
19446 if nvl(lx_service_id,-99) <> Idx.service_id then
19447
19448 IF Lv_Entitlment_Check = 'Y' THEN --Lv_Entitlment_Check = 'Y'
19449
19450 Get_Valid_Line(
19451 PHd_Id =>Idx.Id,
19452 PHd_Start_Date =>Idx.Hd_Start_Date,
19453 PHd_END_Date =>Idx.Hd_End_Date,
19454 PSv_Start_Date =>Idx.Start_Date,
19455 PSv_End_Date =>Idx.End_Date,
19456 PSv_Term_Date =>Idx.Date_Terminated,
19457 PIt_Start_Date =>Idx.Item_Start_Date,
19458 PIt_End_Date =>Idx.Item_End_Date,
19459 PIt_Term_Date =>Idx.Item_Date_Terminated,
19460 PCo_Start_Date =>Idx.Cov_Start_Date,
19461 PCo_End_Date =>Idx.Cov_End_Date,
19462 PCo_Term_Date =>Idx.Cov_Date_Terminated,
19463 P_Request_Date =>Lv_Request_Date,
19464 X_valid_line =>L_valid_line,
19465 X_return_Status =>L_return_Status);
19466
19467 Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Idx.Service_ID, 'ENTITLE');
19468
19469 IF ((Lv_Entile_Flag = 'T') AND (L_valid_line = 'T')) THEN --Lv_Entile_Flag = 'T'
19470
19471 Lv_Contracts_02(lx_counter).Contract_Number := Idx.Contract_Number;
19472 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
19473 Lv_Contracts_02(lx_counter).Contract_Description := Idx.Short_Description;
19474 Lv_Contracts_02(lx_counter).Contract_Line_Number := Idx.Line_Number;
19475 Lv_Contracts_02(lx_counter).Line_Start_Date := Idx.Start_Date;
19476 Lv_Contracts_02(lx_counter).Line_End_Date := Idx.End_Date;
19477 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
19478 Lv_Contracts_02(lx_counter).Service_name := Idx.name;
19479 Lv_Contracts_02(lx_counter).Coverage_name := Idx.Cov_name;
19480 Lv_Contracts_02(lx_counter).Service_Id := Idx.Service_ID;
19481 Lv_Contracts_02(lx_counter).Service_Lse_ID := Idx.Service_Lse_Id;
19482 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Idx.Service_Lse_Id);
19483 Lv_Contracts_02(lx_counter).contract_id := Idx.Id;
19484 Lv_Contracts_02(lx_counter).coverage_line_id := Idx.cov_line_Id;
19485 Lv_Contracts_02(lx_counter).scs_code := Idx.hd_scs_code;
19486
19487 --
19488 -- Modified for 12.0 MOAC project (JVARGHES)
19489 --
19490 Lv_Contracts_02(lx_counter).OPERATING_UNIT := Idx.org_id;
19491 OPEN c_OU(Idx.org_id);
19492 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
19493 CLOSE c_OU;
19494 --
19495 --
19496
19497 lx_counter :=lx_counter + 1 ;
19498
19499 END IF; ----Lv_Entile_Flag = 'T'
19500
19501 ELSE ----Lv_Entitlment_Check = 'Y'
19502
19503 Lv_Contracts_02(lx_counter).Contract_Number := Idx.Contract_Number;
19504 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
19505 Lv_Contracts_02(lx_counter).Contract_Description := Idx.Short_Description;
19506 Lv_Contracts_02(lx_counter).Contract_Line_Number := Idx.Line_Number;
19507 Lv_Contracts_02(lx_counter).Line_Start_Date := Idx.Start_Date;
19508 Lv_Contracts_02(lx_counter).Line_End_Date := Idx.End_Date;
19509 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
19510 Lv_Contracts_02(lx_counter).Service_name := Idx.name;
19511 Lv_Contracts_02(lx_counter).Coverage_name := Idx.Cov_name;
19512 Lv_Contracts_02(lx_counter).Service_Id := Idx.Service_ID;
19513 Lv_Contracts_02(lx_counter).Service_Lse_ID := Idx.Service_Lse_Id;
19514 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Idx.Service_Lse_Id);
19515 Lv_Contracts_02(lx_counter).contract_id := Idx.Id;
19516 Lv_Contracts_02(lx_counter).coverage_line_id := Idx.cov_line_Id;
19517 Lv_Contracts_02(lx_counter).scs_code := Idx.hd_scs_code;
19518
19519 --
19520 -- Modified for 12.0 MOAC project (JVARGHES)
19521 --
19522 Lv_Contracts_02(lx_counter).OPERATING_UNIT := Idx.org_id;
19523 OPEN c_OU(Idx.org_id);
19524 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
19525 CLOSE c_OU;
19526 --
19527 --
19528
19529 lx_counter :=lx_counter + 1 ;
19530
19531 END IF; --Lv_Entitlment_Check = 'Y'
19532
19533 lx_service_id := Idx.service_id;
19534
19535 end if;
19536
19537 END LOOP;*/
19538
19539 -- checking if covered level line id processed
19540 END If;
19541
19542 END LOOP;
19543
19544 END IF;
19545
19546
19547 IF Lv_Contracts.COUNT > 0 and Lv_covlevel_lines_passed = 'N' THEN
19548 FOR I In Lv_Contracts.FIRST .. Lv_Contracts.LAST LOOP
19549 /* Added by Jvorugan for Bug:4991724
19550 If service_item_id is not null, then only passing the value.
19551 This is to avoid full table scan on okc_k_items due to nvl condition on service_item_id*/
19552
19553 IF Lv_Contract_line_Rec.Service_Item_ID IS NULL
19554 THEN
19555
19556 IF Lv_Contracts(i).Rx_Chr_ID IS NOT NULL THEN
19557
19558 open get_Cont_noclvl_chr_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
19559 Lv_Contracts(i).Rx_Cle_ID,
19560 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19561 Lv_Contract_line_Rec.Start_Date_From,
19562 Lv_Contract_line_Rec.Start_Date_To,
19563 Lv_Contract_line_Rec.End_Date_From,
19564 Lv_Contract_line_Rec.End_Date_To,
19565 Lv_Contract_line_Rec.Coverage_Type_Code,
19566 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19567 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19568 Lv_Contract_line_Rec.line_renewal_type_code,
19569 Lv_authoring_org_id);
19570
19571 fetch get_Cont_noclvl_chr_noitem_cur BULK COLLECT into Id,
19572 contract_number,
19573 contract_Number_Modifier,
19574 Short_Description,
19575 Hd_Start_Date,
19576 Hd_End_Date,
19577 hd_scs_code,
19578 org_id, /*bug:7363217*/
19579 Service_ID,
19580 Line_Number,
19581 Start_Date,
19582 End_Date,
19583 Date_Terminated,
19584 Sts_code,
19585 Name,
19586 cov_line_id,
19587 Cov_Name,
19588 Cov_Start_Date,
19589 Cov_End_Date,
19590 Cov_Date_Terminated,
19591 Service_Lse_Id;
19592 close get_Cont_noclvl_chr_noitem_cur;
19593
19594 ELSE
19595
19596 open get_Contract_noclvl_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
19597 Lv_Contracts(i).Rx_Cle_ID,
19598 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19599 Lv_Contract_line_Rec.Start_Date_From,
19600 Lv_Contract_line_Rec.Start_Date_To,
19601 Lv_Contract_line_Rec.End_Date_From,
19602 Lv_Contract_line_Rec.End_Date_To,
19603 Lv_Contract_line_Rec.Coverage_Type_Code,
19604 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19605 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19606 Lv_Contract_line_Rec.line_renewal_type_code,
19607 Lv_authoring_org_id);
19608
19609 fetch get_Contract_noclvl_noitem_cur BULK COLLECT into Id,
19610 contract_number,
19611 contract_Number_Modifier,
19612 Short_Description,
19613 Hd_Start_Date,
19614 Hd_End_Date,
19615 hd_scs_code,
19616 org_id, /*bug:7363217*/
19617 Service_ID,
19618 Line_Number,
19619 Start_Date,
19620 End_Date,
19621 Date_Terminated,
19622 Sts_code,
19623 Name,
19624 cov_line_id,
19625 Cov_Name,
19626 Cov_Start_Date,
19627 Cov_End_Date,
19628 Cov_Date_Terminated,
19629 Service_Lse_Id;
19630 close get_Contract_noclvl_noitem_cur;
19631
19632 end if;
19633
19634 ELSE
19635
19636 IF Lv_Contracts(i).Rx_Chr_ID IS NOT NULL THEN
19637
19638 open get_Cont_noclvl_chr_cur(Lv_Contracts(i).Rx_Chr_ID,
19639 Lv_Contracts(i).Rx_Cle_ID,
19640 Lv_Contract_line_Rec.Service_Item_ID,
19641 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19642 Lv_Contract_line_Rec.Start_Date_From,
19643 Lv_Contract_line_Rec.Start_Date_To,
19644 Lv_Contract_line_Rec.End_Date_From,
19645 Lv_Contract_line_Rec.End_Date_To,
19646 Lv_Contract_line_Rec.Coverage_Type_Code,
19647 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19648 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19649 Lv_Contract_line_Rec.line_renewal_type_code,
19650 Lv_authoring_org_id);
19651
19652 fetch get_Cont_noclvl_chr_cur BULK COLLECT into Id,
19653 contract_number,
19654 contract_Number_Modifier,
19655 Short_Description,
19656 Hd_Start_Date,
19657 Hd_End_Date,
19658 hd_scs_code,
19659 org_id, /*bug:7363217*/
19660 Service_ID,
19661 Line_Number,
19662 Start_Date,
19663 End_Date,
19664 Date_Terminated,
19665 Sts_code,
19666 Name,
19667 cov_line_id,
19668 Cov_Name,
19669 Cov_Start_Date,
19670 Cov_End_Date,
19671 Cov_Date_Terminated,
19672 Service_Lse_Id;
19673
19674 close get_Cont_noclvl_chr_cur;
19675
19676
19677 ELSE
19678 open get_Contract_noclvl_cur(Lv_Contracts(i).Rx_Chr_ID,
19679 Lv_Contracts(i).Rx_Cle_ID,
19680 Lv_Contract_line_Rec.Service_Item_ID,
19681 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19682 Lv_Contract_line_Rec.Start_Date_From,
19683 Lv_Contract_line_Rec.Start_Date_To,
19684 Lv_Contract_line_Rec.End_Date_From,
19685 Lv_Contract_line_Rec.End_Date_To,
19686 Lv_Contract_line_Rec.Coverage_Type_Code,
19687 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19688 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19689 Lv_Contract_line_Rec.line_renewal_type_code,
19690 Lv_authoring_org_id);
19691
19692 fetch get_Contract_noclvl_cur BULK COLLECT into Id,
19693 contract_number,
19694 contract_Number_Modifier,
19695 Short_Description,
19696 Hd_Start_Date,
19697 Hd_End_Date,
19698 hd_scs_code,
19699 org_id, /*Bug:6767455*/
19700 Service_ID,
19701 Line_Number,
19702 Start_Date,
19703 End_Date,
19704 Date_Terminated,
19705 Sts_code,
19706 Name,
19707 cov_line_id,
19708 Cov_Name,
19709 Cov_Start_Date,
19710 Cov_End_Date,
19711 Cov_Date_Terminated,
19712 Service_Lse_Id;
19713
19714 close get_Contract_noclvl_cur;
19715
19716 END IF;
19717
19718 END IF;
19719
19720 IF Id.count >0
19721 THEN
19722 FOR i in Id.FIRST..ID.LAST
19723 LOOP
19724
19725 if nvl(lx_service_id,-99) <> service_id(i) then
19726
19727 Lv_Contracts_02(lx_counter).Contract_Number := Contract_Number(i);
19728 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Contract_Number_Modifier(i);
19729 Lv_Contracts_02(lx_counter).Contract_Description := Short_Description(i);
19730 Lv_Contracts_02(lx_counter).Contract_Line_Number := Line_Number(i);
19731 Lv_Contracts_02(lx_counter).Line_Start_Date := Start_Date(i);
19732 Lv_Contracts_02(lx_counter).Line_End_Date := End_Date(i);
19733 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
19734 Lv_Contracts_02(lx_counter).Service_name := name(i);
19735 Lv_Contracts_02(lx_counter).Coverage_name := Cov_name(i);
19736 Lv_Contracts_02(lx_counter).Service_Id := Service_ID(i);
19737 Lv_Contracts_02(lx_counter).Service_Lse_ID := Service_Lse_Id(i);
19738 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Service_Lse_Id(i));
19739 Lv_Contracts_02(lx_counter).contract_id := Id(i);
19740 Lv_Contracts_02(lx_counter).coverage_line_id := cov_line_Id(i);
19741 Lv_Contracts_02(lx_counter).scs_code := hd_scs_code(i);
19742 /*bug:7363217*/
19743 --
19744 Lv_Contracts_02(lx_counter).OPERATING_UNIT := org_id(i);
19745 OPEN c_OU(org_id(i));
19746 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
19747 CLOSE c_OU;
19748 lx_counter :=lx_counter + 1 ;
19749
19750 lx_service_id := service_id(i);
19751
19752 end if;
19753
19754 END LOOP;
19755
19756 END IF; -- Id.count >0
19757 /* commented for Bug:6767455
19758 For Idx In get_Contract_noclvl_cur(Lv_Contracts(i).Rx_Chr_ID,
19759 Lv_Contracts(i).Rx_Cle_ID,
19760 Lv_Contract_line_Rec.Service_Item_ID,
19761 Lv_Contract_line_Rec.Contract_Line_Status_Code,
19762 Lv_Contract_line_Rec.Start_Date_From,
19763 Lv_Contract_line_Rec.Start_Date_To,
19764 Lv_Contract_line_Rec.End_Date_From,
19765 Lv_Contract_line_Rec.End_Date_To,
19766 Lv_Contract_line_Rec.Coverage_Type_Code,
19767 Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
19768 Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
19769 Lv_Contract_line_Rec.line_renewal_type_code,
19770 Lv_authoring_org_id) LOOP
19771
19772
19773 if nvl(lx_service_id,-99) <> Idx.service_id then
19774
19775
19776 Lv_Contracts_02(lx_counter).Contract_Number := Idx.Contract_Number;
19777 Lv_Contracts_02(lx_counter).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
19778 Lv_Contracts_02(lx_counter).Contract_Description := Idx.Short_Description;
19779 Lv_Contracts_02(lx_counter).Contract_Line_Number := Idx.Line_Number;
19780 Lv_Contracts_02(lx_counter).Line_Start_Date := Idx.Start_Date;
19781 Lv_Contracts_02(lx_counter).Line_End_Date := Idx.End_Date;
19782 Lv_Contracts_02(lx_counter).Contract_line_Status_code := Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
19783 Lv_Contracts_02(lx_counter).Service_name := Idx.name;
19784 Lv_Contracts_02(lx_counter).Coverage_name := Idx.Cov_name;
19785 Lv_Contracts_02(lx_counter).Service_Id := Idx.Service_ID;
19786 Lv_Contracts_02(lx_counter).Service_Lse_ID := Idx.Service_Lse_Id;
19787 Lv_Contracts_02(lx_counter).contract_line_type := Get_Line_Styles(Idx.Service_Lse_Id);
19788 Lv_Contracts_02(lx_counter).contract_id := Idx.Id;
19789 Lv_Contracts_02(lx_counter).coverage_line_id := Idx.cov_line_Id;
19790 Lv_Contracts_02(lx_counter).scs_code := Idx.hd_scs_code;
19791
19792 --
19793 -- Modified for 12.0 MOAC project (JVARGHES)
19794 --
19795 Lv_Contracts_02(lx_counter).OPERATING_UNIT := Idx.org_id;
19796 OPEN c_OU(Idx.org_id);
19797 FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
19798 CLOSE c_OU;
19799 --
19800 --
19801
19802 lx_counter :=lx_counter + 1 ;
19803
19804 lx_service_id := Idx.service_id;
19805
19806 end if;
19807
19808 END LOOP;
19809 */
19810 END LOOP;
19811
19812 END IF;
19813
19814 X_Contracts_02 := Lv_Contracts_02;
19815 X_Result :=Lx_Result;
19816 X_Return_Status := Lx_Return_Status;
19817
19818 EXCEPTION
19819
19820 WHEN OTHERS THEN
19821
19822 OKC_API.SET_MESSAGE
19823 (P_App_Name => G_APP_NAME_OKC
19824 ,P_Msg_Name => G_UNEXPECTED_ERROR
19825 ,P_Token1 => G_SQLCODE_TOKEN
19826 ,P_Token1_Value => SQLCODE
19827 ,P_Token2 => G_SQLERRM_TOKEN
19828 ,P_Token2_Value => SQLERRM);
19829
19830 OKC_API.SET_MESSAGE
19831 (P_App_Name => G_APP_NAME_OKC
19832 ,P_Msg_Name => G_DEBUG_TOKEN
19833 ,P_Token1 => G_PACKAGE_TOKEN
19834 ,P_Token1_Value => G_PKG_NAME
19835 ,P_Token2 => G_PROGRAM_TOKEN
19836 ,P_Token2_Value => 'Get_Contract_Lines');
19837
19838 X_Result := G_FALSE;
19839 X_Return_Status := G_RET_STS_UNEXP_ERROR;
19840
19841 END Get_Contract_Lines;
19842
19843 PROCEDURE Search_Contract_lines
19844 (p_api_version IN Number
19845 ,p_init_msg_list IN Varchar2
19846 ,p_contract_rec IN srchline_inpcontrec_type
19847 ,p_contract_line_rec IN srchline_inpcontlinerec_type
19848 ,p_clvl_id_tbl IN srchline_covlvl_id_tbl
19849 ,x_return_status out nocopy Varchar2
19850 ,x_msg_count out nocopy Number
19851 ,x_msg_data out nocopy Varchar2
19852 ,x_contract_tbl out nocopy output_tbl_contractline)IS
19853
19854 i NUMBER;
19855 j NUMBER;
19856 l number;
19857 Lx_Chr_Id NUMBER;
19858
19859 Lx_Inp_Rec_03 srchline_inpcontrec_type;
19860 Lx_Inp_Rec_02 srchline_inpcontlinerec_type;
19861 Lx_Inp_Tbl_01 srchline_covlvl_id_tbl;
19862 Lx_Ent_ContractLiness output_tbl_contractline;
19863
19864 Lx_request_date date;
19865
19866
19867 Lx_Result Gx_Boolean;
19868 Lx_Return_Status Gx_Ret_Sts;
19869 Ln_Org_Id NUMBER;
19870 Ln_Organization_Id NUMBER;
19871 Lx_Contract_Id NUMBER;
19872
19873
19874 L_EXCEP_UNEXPECTED_ERR EXCEPTION;
19875
19876 Lx_Contracts_02 GT_Contract_Ref;
19877 Lx_Contracts GT_Contract_Ref;
19878 Lx_Contracts_Temp GT_Contract_Ref;
19879 Lx_Contracts_Out GT_Contract_Ref;
19880 Lx_Contracts_Line GT_Contract_Ref;
19881 Lx_Contracts_Prev GT_Contract_Ref;
19882 Lx_Contracts_ContNum GT_Contract_Ref;
19883
19884 Lx_Validate_Eff VARCHAR2(1);
19885 Lx_Validate_Flag VARCHAR2(1);
19886
19887 Lx_Rec_Exists VARCHAR2(1);
19888
19889 Lx_Covlevel_lines_passed VARCHAR2(1);
19890
19891 BEGIN -- Main Begin for Search_Contract_line
19892
19893 Lx_Chr_Id := -99999;
19894 Lx_Inp_Rec_03 := p_contract_rec;
19895 Lx_Inp_Rec_02 := p_contract_line_rec;
19896 Lx_Inp_Tbl_01 := p_clvl_id_tbl;
19897 Lx_request_date := nvl(p_contract_rec.request_date,sysdate);
19898 Lx_Return_Status := G_RET_STS_SUCCESS;
19899 Lx_Result := G_TRUE;
19900 Lx_Validate_Eff := 'F';
19901 Lx_Validate_Flag := 'F';
19902 Lx_Rec_Exists := 'N';
19903
19904
19905 -- Bug# 4735542
19906 -- OKC_CONTEXT.set_okc_org_context;
19907 -- Ln_Organization_Id := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
19908
19909 -- Modified for 12.0 MOAC project (JVARGHES)
19910 -- Ln_Org_Id := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
19911 --
19912
19913 IF ((Lx_Inp_Rec_02.service_item_id IS NULL) AND
19914 (Lx_Inp_Rec_02.contract_line_status_code IS NULL) AND
19915 (Lx_Inp_Rec_02.coverage_type_code IS NULL) AND
19916 (Lx_Inp_Rec_02.start_date_from IS NULL) AND
19917 (Lx_Inp_Rec_02.start_date_to IS NULL) AND
19918 (Lx_Inp_Rec_02.end_date_from IS NULL) AND
19919 (Lx_Inp_Rec_02.end_date_to IS NULL) AND
19920 (Lx_Inp_Rec_02.line_bill_to_site_id IS NULL) AND
19921 (Lx_Inp_Rec_02.line_ship_to_site_id IS NULL) AND
19922 (Lx_Inp_Rec_02.line_renewal_type_code IS NULL)) THEN
19923
19924
19925 G_Service_Line_Data := 'N';
19926 ELSE
19927
19928 G_Service_Line_Data := 'Y';
19929
19930 END IF;
19931
19932
19933 IF ((Lx_Inp_Rec_03.contract_id IS NULL) AND
19934 (Lx_Inp_Rec_03.contract_number IS NULL) AND
19935 (Lx_Inp_Rec_03.contract_number_modifier IS NULL) AND
19936 (Lx_Inp_Rec_03.contract_status_code IS NULL) AND
19937 (Lx_Inp_Rec_03.start_date_from IS NULL) AND
19938 (Lx_Inp_Rec_03.start_date_to IS NULL) AND
19939 (Lx_Inp_Rec_03.end_date_from IS NULL) AND
19940 (Lx_Inp_Rec_03.end_date_to IS NULL) AND
19941 (Lx_Inp_Rec_03.date_terminated_from IS NULL) AND
19942 (Lx_Inp_Rec_03.date_terminated_to IS NULL) AND
19943 (Lx_Inp_Rec_03.contract_party_id IS NULL) AND
19944 (Lx_Inp_Rec_03.contract_renewal_type_code IS NULL) AND
19945 (Lx_Inp_Rec_03.request_date IS NULL) AND
19946 (Lx_Inp_Rec_03.contract_group_id IS NULL)) THEN
19947
19948 G_Header_Data := 'N' ;
19949 ELSE
19950 G_Header_Data := 'Y' ;
19951 END IF;
19952
19953
19954 IF Lx_Inp_Tbl_01.COUNT > 0 THEN --Lx_Inp_Tbl_01.COUNT > 0
19955
19956 FOR i in Lx_Inp_Tbl_01.FIRST..Lx_Inp_Tbl_01.LAST LOOP --1st LOOP
19957
19958 IF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_CUSTPROD' THEN -- 2nd if
19959
19960 Get_CovProd_Contracts
19961 (P_CovProd_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
19962 ,P_Organization_Id => Ln_Organization_Id --Lx_Inp_Tbl_01(i).covlvl_id2
19963 ,P_Org_Id => Ln_Org_Id
19964 ,X_CovProd_Contracts => Lx_Contracts
19965 ,X_Result => Lx_Result
19966 ,X_Return_Status => Lx_Return_Status);
19967
19968 IF Lx_Result <> G_TRUE THEN
19969 RAISE L_EXCEP_UNEXPECTED_ERR;
19970 END IF;
19971
19972 ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_COVITEM' THEN
19973
19974 Get_CovItem_Contracts
19975 (P_CovItem_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
19976 ,P_Organization_Id => Lx_Inp_Tbl_01(i).covlvl_id2
19977 ,P_Party_Id => Lx_Inp_Rec_03.Contract_Party_Id
19978 ,X_CovItem_Contracts => Lx_Contracts
19979 ,X_Result => Lx_Result
19980 ,X_Return_Status => Lx_Return_Status);
19981
19982 IF Lx_Result <> G_TRUE THEN
19983 RAISE L_EXCEP_UNEXPECTED_ERR;
19984 END IF;
19985
19986 -- END IF;
19987
19988 ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_COVSYST' THEN -- 3rd If
19989
19990 Get_CovSys_Contracts
19991 (P_CovSys_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
19992 ,P_Org_Id => Ln_Org_Id
19993 ,X_CovSys_Contracts => Lx_Contracts --_Temp
19994 ,X_Result => Lx_Result
19995 ,X_Return_Status => Lx_Return_Status);
19996
19997 IF Lx_Result <> G_TRUE THEN
19998 RAISE L_EXCEP_UNEXPECTED_ERR;
19999 END IF;
20000
20001 ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_CUSTACCT' THEN
20002
20003 Get_CovCust_Contracts
20004 (P_CovCust_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
20005 ,X_CovCust_Contracts => Lx_Contracts --_Temp
20006 ,X_Result => Lx_Result
20007 ,X_Return_Status => Lx_Return_Status);
20008
20009 IF Lx_Result <> G_TRUE THEN
20010 RAISE L_EXCEP_UNEXPECTED_ERR;
20011 END IF;
20012
20013 ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_PARTYSITE' THEN
20014
20015 Get_CovSite_Contracts
20016 (P_CovSite_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
20017 ,P_Org_Id => Ln_Org_Id
20018 ,X_CovSite_Contracts => Lx_Contracts --_Temp
20019 ,X_Result => Lx_Result
20020 ,X_Return_Status => Lx_Return_Status);
20021
20022 IF Lx_Result <> G_TRUE THEN
20023 RAISE L_EXCEP_UNEXPECTED_ERR;
20024 END IF;
20025
20026 ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_PARTY' THEN
20027
20028 Get_CovParty_Contracts
20029 (P_CovParty_Obj_Id => Lx_Inp_Tbl_01(i).covlvl_id1
20030 ,X_CovParty_Contracts => Lx_Contracts --_Temp
20031 ,X_Result => Lx_Result
20032 ,X_Return_Status => Lx_Return_Status);
20033
20034 IF Lx_Result <> G_TRUE THEN
20035 RAISE L_EXCEP_UNEXPECTED_ERR;
20036 END IF;
20037
20038 END IF;-- 3rd If
20039
20040
20041 IF i = Lx_Inp_Tbl_01.FIRST THEN --4th IF
20042 Lx_Contracts_Prev := Lx_Contracts;
20043 Lx_Contracts.DELETE;
20044
20045 ELSE
20046
20047 Append_Contract_PlSql_Table
20048 (P_Input_Tab => Lx_Contracts_Prev
20049 ,P_Append_Tab => Lx_Contracts
20050 ,X_Output_Tab => Lx_Contracts_Out
20051 ,X_Result => Lx_Result
20052 ,X_Return_Status => Lx_Return_Status);
20053
20054 IF Lx_Result <> G_TRUE THEN
20055 RAISE L_EXCEP_UNEXPECTED_ERR;
20056 END IF;
20057
20058 Lx_Contracts_Prev.DELETE;
20059 Lx_Contracts_Prev := Lx_Contracts_Out;
20060 Lx_Contracts_Out.DELETE;
20061 Lx_Contracts.DELETE;
20062
20063 END IF; --4th IF
20064
20065 --END IF; -- 2nd if
20066 END LOOP; --1st LOOP
20067 Lx_Contracts := Lx_Contracts_Prev;
20068
20069 END IF; --Lx_Inp_Tbl_01.COUNT > 0
20070
20071 IF Lx_Contracts.COUNT > 1 THEN
20072 Sort_Asc_ContRef_PlSql_Table
20073 (P_Input_Tab => Lx_Contracts
20074 ,X_Output_Tab => Lx_Contracts_Out
20075 ,X_Result => Lx_Result
20076 ,X_Return_Status => Lx_Return_Status);
20077
20078
20079 IF Lx_Result <> G_TRUE THEN
20080 RAISE L_EXCEP_UNEXPECTED_ERR;
20081 END IF;
20082 ELSE
20083 Lx_Contracts_Out := Lx_Contracts;
20084
20085 END IF;
20086
20087 Lx_Contracts.DELETE;
20088 Lx_Contracts := Lx_Contracts_Out; -- signifies covered level inputs entered but no covered level line exists
20089
20090
20091
20092 IF (((Lx_Inp_Rec_03.Contract_Number IS NOT NULL) AND (Lx_Inp_Rec_03.Contract_Number_modifier IS NOT NULL)) OR
20093 (Lx_Inp_Rec_03.Contract_Id IS NOT NULL)) THEN
20094
20095
20096 Get_Contract_Id
20097 (P_contract_id => Lx_Inp_Rec_03.Contract_Id
20098 ,P_Contract_Num => Lx_Inp_Rec_03.Contract_Number
20099 ,P_Contract_Num_Modifier => Lx_Inp_Rec_03.Contract_Number_Modifier
20100 ,P_START_DATE_FROM => Lx_Inp_Rec_03.START_DATE_FROM
20101 ,P_START_DATE_TO => Lx_Inp_Rec_03.START_DATE_TO
20102 ,P_END_DATE_FROM => Lx_Inp_Rec_03.END_DATE_FROM
20103 ,P_END_DATE_TO => Lx_Inp_Rec_03.END_DATE_TO
20104 ,P_DATE_TERMINATE_FROM => Lx_Inp_Rec_03.DATE_TERMINATED_FROM
20105 ,P_DATE_TERMINATE_TO => Lx_Inp_Rec_03.DATE_TERMINATED_TO
20106 ,P_STATUS => Lx_Inp_Rec_03.CONTRACT_STATUS_CODE
20107 ,P_Cont_Pty_Id => Lx_Inp_Rec_03.contract_party_id
20108 ,P_cont_renewal_code => Lx_Inp_Rec_03.contract_renewal_type_code
20109 ,P_authoring_org_id => Lx_Inp_Rec_03.authoring_org_id
20110 ,P_contract_grp_id => Lx_Inp_Rec_03.contract_group_id -- additional header level criteria added dtd Dec 17th, 2003
20111 ,X_Contracts => Lx_Contracts_ContNum
20112 ,X_Result => Lx_Result
20113 ,X_Return_Status => Lx_Return_Status);
20114
20115
20116 IF Lx_Result <> G_TRUE THEN
20117 RAISE L_EXCEP_UNEXPECTED_ERR;
20118 END IF;
20119
20120 IF Lx_Contracts_ContNum.COUNT > 0 THEN --Lx_Contracts_ContNum.COUNT > 0
20121
20122 Lx_Chr_Id := Lx_Contracts_ContNum(1).Rx_Chr_Id;
20123
20124 IF Lx_Contracts_Out.COUNT > 0 THEN
20125
20126 i := Lx_Contracts_Out.First;
20127 j := 1;
20128
20129 WHILE i IS NOT NULL LOOP
20130
20131 IF Lx_Chr_Id = Lx_Contracts_Out(i).Rx_Chr_Id THEN
20132
20133 Lx_Contracts_02(j) := Lx_Contracts_Out(i);
20134
20135 END IF;
20136
20137 i := Lx_Contracts_Out.Next(i);
20138 j := j+1;
20139
20140 END LOOP;
20141
20142 Lx_Contracts_Out.DELETE;
20143 Lx_Contracts_Out := Lx_Contracts_02;
20144 Lx_Contracts_02.DELETE;
20145
20146 ELSE
20147
20148 Lx_Contracts_Out(1).Rx_Chr_Id := Lx_Chr_Id;
20149 Lx_Contracts_Out(1).Rx_Cle_Id := Lx_Contracts_ContNum(1).Rx_Cle_Id;
20150
20151 END IF;
20152 ELSE
20153 Lx_Contracts_Out.DELETE;
20154
20155 END IF;--Lx_Contracts_ContNum.COUNT > 0
20156 END IF; ----Lx_Inp_Rec_03.Contract_Number IS NOT NULL
20157
20158
20159 IF ((Lx_Inp_Rec_03.Contract_id IS NULL) AND
20160 ((Lx_Inp_Rec_03.Contract_Number Is NOT NULL) OR
20161 (Lx_Inp_Rec_03.Contract_Status_Code Is NOT NULL) OR
20162 (Lx_Inp_Rec_03.Start_Date_From Is NOT NULL) OR
20163 (Lx_Inp_Rec_03.Start_Date_To Is NOT NULL) OR
20164 (Lx_Inp_Rec_03.End_Date_From Is NOT NULL) OR
20165 (Lx_Inp_Rec_03.End_Date_To Is NOT NULL) OR
20166 (Lx_Inp_Rec_03.Date_Terminated_From Is NOT NULL) OR
20167 (Lx_Inp_Rec_03.Date_Terminated_To Is NOT NULL) OR
20168 (Lx_Inp_Rec_03.contract_party_id Is NOT NULL) OR
20169 (Lx_Inp_Rec_03.contract_group_id Is NOT NULL) OR -- additional header level criteria added dtd Dec 17th, 2003
20170 (Lx_Inp_Rec_03.contract_renewal_type_code Is NOT NULL))) THEN
20171
20172 Get_Contract_Id
20173 (P_contract_id => NULL
20174 ,P_Contract_Num => Lx_Inp_Rec_03.Contract_Number
20175 ,P_Contract_Num_Modifier => Lx_Inp_Rec_03.Contract_Number_Modifier
20176 ,P_START_DATE_FROM => Lx_Inp_Rec_03.START_DATE_FROM
20177 ,P_START_DATE_TO => Lx_Inp_Rec_03.START_DATE_TO
20178 ,P_END_DATE_FROM => Lx_Inp_Rec_03.END_DATE_FROM
20179 ,P_END_DATE_TO => Lx_Inp_Rec_03.END_DATE_TO
20180 ,P_DATE_TERMINATE_FROM => Lx_Inp_Rec_03.DATE_TERMINATED_FROM
20181 ,P_DATE_TERMINATE_TO => Lx_Inp_Rec_03.DATE_TERMINATED_TO
20182 ,P_STATUS => Lx_Inp_Rec_03.CONTRACT_STATUS_CODE
20183 ,P_Cont_Pty_Id => Lx_Inp_Rec_03.contract_party_id
20184 ,P_cont_renewal_code => Lx_Inp_Rec_03.contract_renewal_type_code
20185 ,P_authoring_org_id => Lx_Inp_Rec_03.authoring_org_id
20186 ,P_contract_grp_id => Lx_Inp_Rec_03.contract_group_id -- additional header level criteria added dtd Dec 17th, 2003
20187 ,X_Contracts => Lx_Contracts_ContNum
20188 ,X_Result => Lx_Result
20189 ,X_Return_Status => Lx_Return_Status);
20190
20191
20192 IF Lx_Result <> G_TRUE THEN
20193 RAISE L_EXCEP_UNEXPECTED_ERR;
20194 END IF;
20195
20196
20197 l := 0;
20198
20199 IF Lx_Contracts_ContNum.COUNT > 0 THEN --Lx_Contracts_ContNum.COUNT > 0
20200
20201 IF Lx_Contracts_Out.COUNT > 0 THEN --Lx_Contracts_Out.COUNT > 0
20202
20203 FOR I in Lx_Contracts_ContNum.First .. Lx_Contracts_ContNum.LAST LOOP
20204
20205 FOR K in Lx_Contracts_Out.FIRST .. Lx_Contracts_Out.LAST LOOP
20206
20207 IF Lx_Contracts_ContNum(i).Rx_Chr_Id = Lx_Contracts_Out(k).Rx_Chr_Id THEN
20208
20209 l := l+1;
20210 Lx_Contracts_02(l).Rx_Chr_Id := Lx_Contracts_Out(k).Rx_Chr_Id;
20211 Lx_Contracts_02(l).Rx_Cle_Id := Lx_Contracts_Out(k).Rx_Cle_Id;
20212 Lx_Contracts_02(l).Rx_Pty_Id := Lx_Contracts_Out(k).Rx_Pty_Id;
20213
20214 END IF;
20215
20216 END LOOP;
20217 END LOOP;
20218
20219 Lx_Contracts_Out.DELETE;
20220 Lx_Contracts_Out := Lx_Contracts_02;
20221 Lx_Contracts_02.DELETE;
20222
20223 ELSE
20224
20225 Lx_Contracts_Out := Lx_Contracts_ContNum;
20226
20227 END IF; --Lx_Contracts_Out.COUNT > 0
20228
20229 ELSE
20230
20231 Lx_Contracts_Out.DELETE;
20232
20233 END IF;
20234
20235 END IF;
20236
20237
20238 IF (( Lx_Inp_Tbl_01.COUNT=0 and G_Header_Data ='N') OR
20239 ( Lx_Inp_Tbl_01.COUNT >0 and G_Header_Data ='N' and Lx_Contracts.COUNT>0 )OR
20240 ( Lx_Inp_Tbl_01.COUNT >0 and G_Header_Data ='Y' and Lx_Contracts.COUNT>0 and Lx_Contracts_Out.COUNT>0 ) OR
20241 ( Lx_Inp_Tbl_01.COUNT =0 and G_Header_Data ='Y' and Lx_Contracts_Out.COUNT>0)) then
20242
20243 if Lx_contracts.count > 0 then
20244 Lx_Covlevel_lines_passed := 'Y';
20245 else
20246 Lx_Covlevel_lines_passed := 'N';
20247 end if;
20248
20249 Get_Contract_Lines
20250 (P_Contracts => Lx_Contracts_Out
20251 ,P_Contract_line_Rec => Lx_Inp_Rec_02
20252 ,p_Covlevel_lines_passed => Lx_Covlevel_lines_passed
20253 ,P_Request_Date => Lx_request_date --Lx_Inp_Rec_03.Request_Date
20254 ,P_Entitlement_Check_YN => Lx_Inp_Rec_03.entitlement_check_YN
20255 ,P_authoring_org_id => Lx_Inp_Rec_03.authoring_org_id -- multi org security check
20256 ,X_Contracts_02 => Lx_Ent_ContractLiness
20257 ,X_Result => Lx_Result
20258 ,X_Return_Status => Lx_Return_Status) ;
20259
20260 END IF;
20261
20262 IF Lx_Result <> G_TRUE THEN
20263 RAISE L_EXCEP_UNEXPECTED_ERR;
20264 END IF;
20265
20266
20267 X_Contract_tbl := Lx_Ent_ContractLiness;--Lx_Ent_Contracts;
20268 X_Return_Status := Lx_Return_Status;
20269
20270 EXCEPTION
20271
20272 WHEN OTHERS THEN
20273
20274 OKC_API.SET_MESSAGE
20275 (P_App_Name => G_APP_NAME_OKC
20276 ,P_Msg_Name => G_UNEXPECTED_ERROR
20277 ,P_Token1 => G_SQLCODE_TOKEN
20278 ,P_Token1_Value => SQLCODE
20279 ,P_Token2 => G_SQLERRM_TOKEN
20280 ,P_Token2_Value => SQLERRM);
20281
20282 OKC_API.SET_MESSAGE
20283 (P_App_Name => G_APP_NAME_OKC
20284 ,P_Msg_Name => G_DEBUG_TOKEN
20285 ,P_Token1 => G_PACKAGE_TOKEN
20286 ,P_Token1_Value => G_PKG_NAME
20287 ,P_Token2 => G_PROGRAM_TOKEN
20288 ,P_Token2_Value => 'Search_Contracts_Lines');
20289
20290 -- X_Result := G_FALSE;
20291 X_Return_Status := G_RET_STS_UNEXP_ERROR;
20292
20293 END Search_Contract_lines; -- Main End for Search_Contract_line
20294
20295 -- Bug# 4899844
20296
20297 FUNCTION Get_BPL_Offset_Start_Date
20298 (P_SVL_Start_Date IN DATE
20299 ,P_Offset_Timeunit IN VARCHAR2
20300 ,P_Offset_Duration IN NUMBER) RETURN DATE
20301 IS
20302
20303 l_BPL_Offset_Start_Date DATE;
20304
20305 BEGIN
20306
20307 IF (P_SVL_Start_Date IS NOT NULL)
20308 AND (P_Offset_Timeunit IS NOT NULL)
20309 AND (P_Offset_Timeunit IS NOT NULL) THEN
20310
20311 l_BPL_Offset_Start_Date := OKC_Time_Util_Pub.Get_EndDate(P_SVL_Start_Date,P_Offset_Timeunit,P_Offset_Duration)+1;
20312
20313 ELSE
20314
20315 l_BPL_Offset_Start_Date := P_SVL_Start_Date;
20316
20317 END IF;
20318
20319 RETURN l_BPL_Offset_Start_Date ;
20320
20321 END Get_BPL_Offset_Start_Date;
20322
20323 --
20324
20325 END OKS_ENTITLEMENTS_PVT;