DBA Data[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;