DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_ENTITLEMENTS_PVT

Source


1 PACKAGE BODY OKS_ENTITLEMENTS_PVT AS
2 /* $Header: OKSRENTB.pls 120.35.12020000.10 2013/05/16 10:01:31 mchandak ship $ */
3 
4  covd_account_party_id VARCHAR2(40) := NULL; -- 4690940
5  set_account_party_id  VARCHAR2(1) := 'F';   -- 4690940
6 
7  -- Bug Fix #5546615 hmnair
8  G_Rel_Sun VARCHAR2(15) := Get_NLS_Day_Of_Week('SUN');
9  G_Rel_Mon VARCHAR2(15) := Get_NLS_Day_Of_Week('MON');
10  G_Rel_Tue VARCHAR2(15) := Get_NLS_Day_Of_Week('TUE');
11  G_Rel_Wed VARCHAR2(15) := Get_NLS_Day_Of_Week('WED');
12  G_Rel_Thu VARCHAR2(15) := Get_NLS_Day_Of_Week('THU');
13  G_Rel_Fri VARCHAR2(15) := Get_NLS_Day_Of_Week('FRI');
14  G_Rel_Sat VARCHAR2(15) := Get_NLS_Day_Of_Week('SAT');
15 
16  PROCEDURE Validate_Required_NumValue
17     (P_Num_Value              IN  NUMBER
18     ,P_Set_ExcepionStack      IN  Gx_Boolean
19     ,P_ExcepionMsg            IN  Gx_ExceptionMsg
20     ,X_Result                 out nocopy Gx_Boolean
21     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
22   IS
23 
24     Ln_Num_Value              CONSTANT NUMBER := P_Num_Value;
25     Lx_Set_ExcepionStack      CONSTANT Gx_Boolean := P_Set_ExcepionStack;
26     Lx_ExcepionMsg            CONSTANT Gx_ExceptionMsg := P_ExcepionMsg;
27 
28     Lx_Result                 Gx_Boolean;
29     Lx_Return_Status          Gx_Ret_Sts;
30 
31     L_EXCEP_NULL_VALUE        EXCEPTION;
32 
33   BEGIN
34 
35     Lx_Result                 := G_TRUE;
36     Lx_Return_Status          := G_RET_STS_SUCCESS;
37 
38 
39     IF (Ln_Num_Value IS NULL) --OR (Ln_Num_Value = G_MISS_NUM)
40     THEN
41 
42       RAISE L_EXCEP_NULL_VALUE;
43 
44     END IF;
45 
46     X_Result          := Lx_Result;
47     X_Return_Status   := Lx_Return_Status;
48 
49   EXCEPTION
50 
51     WHEN L_EXCEP_NULL_VALUE THEN
52 
53       Lx_Result := G_FALSE;
54 
55       IF Lx_Set_ExcepionStack = G_TRUE THEN
56 
57         OKC_API.Set_Message
58           (P_App_Name	  => G_APP_NAME_OKC
59 	  ,P_Msg_Name	  => G_REQUIRED_VALUE
60 	  ,P_Token1	  => G_COL_NAME_TOKEN
61 	  ,P_Token1_Value => Lx_ExcepionMsg);
62 
63         Lx_Return_Status := G_RET_STS_ERROR;
64 
65       END IF;
66 
67       X_Result        := Lx_Result;
68       X_Return_Status := Lx_Return_Status;
69 
70     WHEN OTHERS THEN
71 
72       OKC_API.SET_MESSAGE
73         (P_App_Name	  => G_APP_NAME_OKC
74 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
75 	,P_Token1	  => G_SQLCODE_TOKEN
76 	,P_Token1_Value	  => SQLCODE
77 	,P_Token2	  => G_SQLERRM_TOKEN
78 	,P_Token2_Value   => SQLERRM);
79 
80       OKC_API.SET_MESSAGE
81         (P_App_Name	  => G_APP_NAME_OKC
82 	,P_Msg_Name	  => G_DEBUG_TOKEN
83 	,P_Token1	  => G_PACKAGE_TOKEN
84 	,P_Token1_Value	  => G_PKG_NAME
85 	,P_Token2	  => G_PROGRAM_TOKEN
86 	,P_Token2_Value   => 'Validate_Required_NumValue');
87 
88       X_Result        := G_FALSE;
89       X_Return_Status := G_RET_STS_UNEXP_ERROR;
90 
91   END Validate_Required_NumValue;
92 
93 -----------------------------------------------------------------------------------------------------------------------*
94 
95   PROCEDURE Validate_Required_DateValue
96     (P_Date_Value             IN  DATE
97     ,P_Set_ExcepionStack      IN  Gx_Boolean
98     ,P_ExcepionMsg            IN  Gx_ExceptionMsg
99     ,X_Result                 out nocopy Gx_Boolean
100     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
101   IS
102 
103     Ld_Date_Value             CONSTANT DATE := P_Date_Value;
104     Lx_Set_ExcepionStack      CONSTANT Gx_Boolean := P_Set_ExcepionStack;
105     Lx_ExcepionMsg            CONSTANT Gx_ExceptionMsg := P_ExcepionMsg;
106 
107     Lx_Result                 Gx_Boolean;
108     Lx_Return_Status          Gx_Ret_Sts;
109 
110     L_EXCEP_NULL_VALUE        EXCEPTION;
111 
112   BEGIN
113 
114     Lx_Result                 := G_TRUE;
115     Lx_Return_Status          := G_RET_STS_SUCCESS;
116 
117     IF (Ld_Date_Value IS NULL) --OR (Ld_Date_Value = G_MISS_DATE)
118     THEN
119 
120       RAISE L_EXCEP_NULL_VALUE;
121 
122     END IF;
123 
124     X_Result          := Lx_Result;
125     X_Return_Status   := Lx_Return_Status;
126 
127   EXCEPTION
128 
129     WHEN L_EXCEP_NULL_VALUE THEN
130 
131       Lx_Result := G_FALSE;
132 
133       IF Lx_Set_ExcepionStack = G_TRUE THEN
134 
135         OKC_API.Set_Message
136           (P_App_Name	   => G_APP_NAME_OKC
137 	  ,P_Msg_Name	   => G_REQUIRED_VALUE
138 	  ,P_Token1	   => G_COL_NAME_TOKEN
139 	  ,P_Token1_Value  => Lx_ExcepionMsg);
140 
141         Lx_Return_Status := G_RET_STS_ERROR;
142 
143       END IF;
144 
145       X_Result          := Lx_Result;
146       X_Return_Status   := Lx_Return_Status;
147 
148     WHEN OTHERS THEN
149 
150       OKC_API.SET_MESSAGE
151         (P_App_Name	  => G_APP_NAME_OKC
152 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
153 	,P_Token1	  => G_SQLCODE_TOKEN
154 	,P_Token1_Value	  => SQLCODE
155 	,P_Token2	  => G_SQLERRM_TOKEN
156 	,P_Token2_Value   => SQLERRM);
157 
158       OKC_API.SET_MESSAGE
159         (P_App_Name	  => G_APP_NAME_OKC
160 	,P_Msg_Name	  => G_DEBUG_TOKEN
161 	,P_Token1	  => G_PACKAGE_TOKEN
162 	,P_Token1_Value	  => G_PKG_NAME
163 	,P_Token2	  => G_PROGRAM_TOKEN
164 	,P_Token2_Value   => 'Validate_Required_DateValue');
165 
166       X_Result        := G_FALSE;
167       X_Return_Status := G_RET_STS_UNEXP_ERROR;
168 
169   END Validate_Required_DateValue;
170 
171 -----------------------------------------------------------------------------------------------------------------------*
172 
173   PROCEDURE Validate_Required_CharValue
174     (P_Char_Value             IN  VARCHAR2
175     ,P_Set_ExcepionStack      IN  Gx_Boolean
176     ,P_ExcepionMsg            IN  Gx_ExceptionMsg
177     ,X_Result                 out nocopy Gx_Boolean
178     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
179   IS
180 
181     Lv_Char_Value             CONSTANT VARCHAR2(10000) := P_Char_Value;
182     Lx_Set_ExcepionStack      CONSTANT Gx_Boolean := P_Set_ExcepionStack;
183     Lx_ExcepionMsg            CONSTANT Gx_ExceptionMsg := P_ExcepionMsg;
184 
185     Lx_Result                 Gx_Boolean;
186     Lx_Return_Status          Gx_Ret_Sts;
187 
188     L_EXCEP_NULL_VALUE        EXCEPTION;
189 
190   BEGIN
191 
192     Lx_Result                 := G_TRUE;
193     Lx_Return_Status          := G_RET_STS_SUCCESS;
194 
195     IF (Lv_Char_Value IS NULL) --OR (Lv_Char_Value = G_MISS_CHAR)
196     THEN
197 
198       RAISE L_EXCEP_NULL_VALUE;
199 
200     END IF;
201 
202     X_Result          := Lx_Result;
203     X_Return_Status   := Lx_Return_Status;
204 
205   EXCEPTION
206 
207     WHEN L_EXCEP_NULL_VALUE THEN
208 
209       Lx_Result := G_FALSE;
210 
211       IF Lx_Set_ExcepionStack = G_TRUE THEN
212 
213         OKC_API.Set_Message
214           (P_App_Name	   => G_APP_NAME_OKC
215 	  ,P_Msg_Name	   => G_REQUIRED_VALUE
216 	  ,P_Token1	   => G_COL_NAME_TOKEN
217 	  ,P_Token1_Value  => Lx_ExcepionMsg);
218 
219         Lx_Return_Status := G_RET_STS_ERROR;
220 
221       END IF;
222 
223       X_Result          := Lx_Result;
224       X_Return_Status   := Lx_Return_Status;
225 
226     WHEN OTHERS THEN
227 
228       OKC_API.SET_MESSAGE
229         (P_App_Name	  => G_APP_NAME_OKC
230 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
231 	,P_Token1	  => G_SQLCODE_TOKEN
232 	,P_Token1_Value	  => SQLCODE
233 	,P_Token2	  => G_SQLERRM_TOKEN
234 	,P_Token2_Value   => SQLERRM);
235 
236       OKC_API.SET_MESSAGE
237         (P_App_Name	  => G_APP_NAME_OKC
238 	,P_Msg_Name	  => G_DEBUG_TOKEN
239 	,P_Token1	  => G_PACKAGE_TOKEN
240 	,P_Token1_Value	  => G_PKG_NAME
241 	,P_Token2	  => G_PROGRAM_TOKEN
242 	,P_Token2_Value   => 'Validate_Required_CharValue');
243 
244       X_Result        := G_FALSE;
245       X_Return_Status := G_RET_STS_UNEXP_ERROR;
246 
247   END Validate_Required_CharValue;
248 
249 -----------------------------------------------------------------------------------------------------------------------*
250 
251   PROCEDURE Validate_Required_RT_Tokens
252     (P_SVL_Id	                IN  Gx_OKS_Id
253     ,P_BusiProc_Id	        IN  Gx_BusProcess_Id
254     ,P_Severity_Id		IN  Gx_Severity_Id
255     ,P_Request_Date		IN  DATE
256     ,P_Request_TZone_id		IN  Gx_TimeZoneId
257     ,P_template_YN          in varchar2 -- for default coverage functionality
258     ,P_Set_ExcepionStack        IN  Gx_Boolean
259     ,X_Result                   out nocopy Gx_Boolean
260     ,X_Return_Status 	        out nocopy Gx_Ret_Sts
261     )
262   IS
263 
264     Lx_SVL_Id                 CONSTANT Gx_OKS_Id := P_SVL_Id;
265     Lx_BusiProc_id            CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
266     Lx_Severity_Id            CONSTANT Gx_Severity_Id := P_Severity_Id;
267     Ld_Request_Date           CONSTANT DATE := P_Request_Date;
268     Lx_Request_TZone_Id       CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
269     Lx_Set_ExcepionStack      CONSTANT Gx_Boolean := P_Set_ExcepionStack;
270     Lx_Template_YN            CONSTANT Varchar2(1) := p_template_yn;
271 
272     Lx_Result                 Gx_Boolean;
273     Lx_Return_Status          Gx_Ret_Sts;
274 
275     L_EXCEP_NULL_VALUE        EXCEPTION;
276 
277   BEGIN
278 
279     Lx_Result                 := G_TRUE;
280     Lx_Return_Status          := G_RET_STS_SUCCESS;
281 
282    IF Lx_Template_YN = 'N' then
283 
284      Validate_Required_NumValue
285        (P_Num_Value              => Lx_SVL_Id
286        ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
287        ,P_ExcepionMsg            => 'Contract Line'
288        ,X_Result                 => Lx_result
289        ,X_Return_Status   	=> Lx_Return_Status);
290 
291      IF Lx_result <> G_TRUE  THEN
292         RAISE L_EXCEP_NULL_VALUE;
293      END IF;
294 
295     ELSE
296 
297       Validate_Required_NumValue
298        (P_Num_Value              => Lx_SVL_Id
299        ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
300        ,P_ExcepionMsg            => 'Coverage Template Line'
301        ,X_Result                 => Lx_result
302        ,X_Return_Status   	     => Lx_Return_Status);
303 
304      IF Lx_result <> G_TRUE  THEN
305         RAISE L_EXCEP_NULL_VALUE;
306      END IF;
307 
308     END IF;
309 
310     Validate_Required_NumValue
311       (P_Num_Value              => Lx_BusiProc_id
312       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
313       ,P_ExcepionMsg            => 'Business Process'
314       ,X_Result                 => Lx_result
315       ,X_Return_Status   	=> Lx_Return_Status);
316 
317     IF Lx_result <> G_TRUE  THEN
318        RAISE L_EXCEP_NULL_VALUE;
319     END IF;
320 
321     Validate_Required_NumValue
322       (P_Num_Value              => Lx_Severity_Id
323       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
324       ,P_ExcepionMsg            => 'Severity'
325       ,X_Result                 => Lx_result
326       ,X_Return_Status   	=> Lx_Return_Status);
327 
328     IF Lx_result <> G_TRUE  THEN
329        RAISE L_EXCEP_NULL_VALUE;
330     END IF;
331 
332     Validate_Required_NumValue
333       (P_Num_Value              => Lx_Request_TZone_Id
334       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
335       ,P_ExcepionMsg            => 'Time Zone'
336       ,X_Result                 => Lx_result
337       ,X_Return_Status   	=> Lx_Return_Status);
338 
339     IF Lx_result <> G_TRUE  THEN
340        RAISE L_EXCEP_NULL_VALUE;
341     END IF;
342 
343     Validate_Required_DateValue
344       (P_Date_Value             => Ld_Request_Date
345       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
346       ,P_ExcepionMsg            => 'Request Date'
347       ,X_Result                 => Lx_result
348       ,X_Return_Status   	=> Lx_Return_Status);
349 
350     IF Lx_result <> G_TRUE  THEN
351        RAISE L_EXCEP_NULL_VALUE;
352     END IF;
353 
354     X_Result        := Lx_Result;
355     X_Return_Status := Lx_Return_Status;
356 
357   EXCEPTION
358 
359     WHEN L_EXCEP_NULL_VALUE THEN
360 
361       X_Result        := Lx_Result;
362       X_Return_Status := Lx_Return_Status;
363 
364     WHEN OTHERS THEN
365 
366       OKC_API.SET_MESSAGE
367         (P_App_Name	  => G_APP_NAME_OKC
368 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
369 	,P_Token1	  => G_SQLCODE_TOKEN
370 	,P_Token1_Value	  => SQLCODE
371 	,P_Token2	  => G_SQLERRM_TOKEN
372 	,P_Token2_Value   => SQLERRM);
373 
374       OKC_API.SET_MESSAGE
375         (P_App_Name	  => G_APP_NAME_OKC
376 	,P_Msg_Name	  => G_DEBUG_TOKEN
377 	,P_Token1	  => G_PACKAGE_TOKEN
378 	,P_Token1_Value	  => G_PKG_NAME
379 	,P_Token2	  => G_PROGRAM_TOKEN
380 	,P_Token2_Value   => 'Validate_Required_RT_Tokens');
381 
382       X_Result        := G_FALSE;
383       X_Return_Status := G_RET_STS_UNEXP_ERROR;
384 
385   END Validate_Required_RT_Tokens;
386 
387 -----------------------------------------------------------------------------------------------------------------------*
388 
389   FUNCTION Get_End_Date_Time
390     (P_Date_Value IN DATE) Return Date
391   IS
392 
393     l_trunc_date         Varchar2(30);
394     l_date_value         Date;
395 
396   BEGIN
397 
398     If P_Date_Value is Not Null Then
399       l_trunc_date := to_char(P_Date_Value,'MM-DD-YYYY')||' '||'23:59:59';
400       l_Date_Value := to_date(l_trunc_date,'MM-DD-YYYY HH24:MI:SS');
401       Return(l_Date_Value);
402     Else
403       Return(P_Date_Value);
404     End If;
405 
406   END Get_End_Date_Time;
407 
408 -----------------------------------------------------------------------------------------------------------------------*
409 
410   PROCEDURE Validate_Service_Line
411     (P_SVL_Id	              IN  Gx_OKS_Id
412     ,P_Set_ExcepionStack        IN  Gx_Boolean
413     ,X_CVL_Id	              OUT	nocopy NUMBER     -- Added for 12.0 Coverage Rearch project (JVARGHES)
414     ,X_Std_Cov_YN	              OUT	nocopy VARCHAR2   -- Added for 12.0 Coverage Rearch project (JVARGHES)
415     ,X_SVL_Start                out nocopy DATE
416     ,X_SVL_End                  out nocopy DATE
417     ,X_SVL_Terminated           out nocopy DATE
418     ,X_Result                   out nocopy Gx_Boolean
419     ,X_Return_Status 	        out nocopy Gx_Ret_Sts)
420   IS
421 
422     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
423 
424     CURSOR Lx_Csr_SVL(Cx_SVL_Id IN Gx_OKS_Id) IS
425     SELECT SVL.Start_Date
426           ,Get_End_Date_Time(SVL.End_Date) End_Date
427           ,Get_End_Date_Time(SVL.Date_Terminated) Date_Terminated
428           ,KSL.Coverage_Id
429           ,KSL.Standard_Cov_YN
430       FROM Okc_K_Lines_B SVL
431           ,Oks_K_Lines_B KSL
432      WHERE SVL.Id = Cx_SVL_Id
433        AND SVL.Id = KSL.Cle_ID
434        AND SVL.Lse_Id IN (G_LINE_STYLE_SERVICE
435                          ,G_LINE_STYLE_WARRANTY
436                          ,G_LINE_STYLE_EXT_WARRANTY) ;
437     --
438 
439     Lx_SVL_Id                CONSTANT Gx_OKS_Id := P_SVL_Id;
440     Lx_Set_ExcepionStack     CONSTANT Gx_Boolean := P_Set_ExcepionStack;
441 
442     -- Added for 12.0 Coverage Rearch project (JVARGHES)
443     Ln_CVL_Id                NUMBER;
444     Lv_Std_Cov_YN            VARCHAR2(1);
445     --
446 
447     Ld_SVL_Start             DATE;
448     Ld_SVL_End               DATE;
449     Ld_SVL_Terminated        DATE;
450     Lx_Result                Gx_Boolean;
451     Lx_Return_Status         Gx_Ret_Sts;
452     Lx_ExcepionMsg           Gx_ExceptionMsg;
453 
454     L_EXCEP_NO_DATA_FOUND    EXCEPTION;
455 
456   BEGIN
457 
458     Lx_Result                := G_TRUE;
459     Lx_Return_Status         := G_RET_STS_SUCCESS;
460 
461     OPEN Lx_Csr_SVL(Lx_SVL_Id);
462     FETCH Lx_Csr_SVL INTO Ld_SVL_Start,Ld_SVL_End,Ld_SVL_Terminated,Ln_CVL_Id,Lv_Std_Cov_YN;
463 
464     IF Lx_Csr_SVL%NOTFOUND THEN
465 
466       CLOSE Lx_Csr_SVL;
467 
468       Lx_ExcepionMsg := 'Contract Line';
469       RAISE L_EXCEP_NO_DATA_FOUND;
470 
471     END IF;
472 
473     CLOSE Lx_Csr_SVL;
474 
475     -- Added for 12.0 Coverage Rearch project (JVARGHES)
476     X_CVL_Id          := Ln_CVL_Id;
477     X_Std_Cov_YN      := Lv_Std_Cov_YN;
478     --
479 
480     X_SVL_Start       := Ld_SVL_Start;
481     X_SVL_End         := Ld_SVL_End;
482     X_SVL_Terminated  := Ld_SVL_Terminated;
483     X_Result          := Lx_Result;
484     X_Return_Status   := Lx_Return_Status;
485 
486   EXCEPTION
487 
488     WHEN L_EXCEP_NO_DATA_FOUND THEN
489 
490       Lx_Result   := G_FALSE;
491 
492       IF Lx_Set_ExcepionStack = G_TRUE THEN
493 
494         OKC_API.SET_MESSAGE
495           (p_app_name	   => G_APP_NAME_OKC
496 	  ,p_msg_name	   => G_INVALID_VALUE
497 	  ,p_token1	   => G_COL_NAME_TOKEN
498 	  ,p_token1_value  => Lx_ExcepionMsg);
499 
500         Lx_Return_Status  := G_RET_STS_ERROR;
501 
502       END IF;
503 
504       X_Result        := Lx_Result;
505       X_Return_Status := Lx_Return_Status;
506 
507     WHEN OTHERS THEN
508 
509       IF Lx_Csr_SVL%ISOPEN THEN
510         CLOSE Lx_Csr_SVL;
511       END IF;
512 
513       OKC_API.SET_MESSAGE
514         (P_App_Name	  => G_APP_NAME_OKC
515 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
516 	,P_Token1	  => G_SQLCODE_TOKEN
517 	,P_Token1_Value	  => SQLCODE
518 	,P_Token2	  => G_SQLERRM_TOKEN
519 	,P_Token2_Value   => SQLERRM);
520 
521       OKC_API.SET_MESSAGE
522         (P_App_Name	  => G_APP_NAME_OKC
523 	,P_Msg_Name	  => G_DEBUG_TOKEN
524 	,P_Token1	  => G_PACKAGE_TOKEN
525 	,P_Token1_Value	  => G_PKG_NAME
526 	,P_Token2	  => G_PROGRAM_TOKEN
527 	,P_Token2_Value   => 'Validate_Service_Line');
528 
529       X_Result        := G_FALSE;
530       X_Return_Status := G_RET_STS_UNEXP_ERROR;
531 
532   END Validate_Service_Line;
533 
534 -----------------------------------------------------------------------------------------------------------------------*
535 
536   PROCEDURE Validate_Coverage_Line
537     (P_CVL_Id	          IN  Gx_OKS_Id   -- Added for 12.0 Coverage Rearch project (JVARGHES)
538   --,P_SVL_Id	          IN  Gx_OKS_Id   -- Modified for 12.0 Coverage Rearch project (JVARGHES)
539   --,P_Template_YN          IN  varchar2    -- Modified for 12.0 Coverage Rearch project (JVARGHES)
540     ,P_Set_ExcepionStack    IN  Gx_Boolean
541   --,X_CVL_Id               out nocopy Gx_OKS_Id  -- Modified for 12.0 Coverage Rearch project (JVARGHES)
542     ,X_CVL_Start            out nocopy DATE
543     ,X_CVL_End              out nocopy DATE
544     ,X_CVL_Terminated       out nocopy DATE
545     ,X_Result               out nocopy Gx_Boolean
546     ,X_Return_Status 	    out nocopy Gx_Ret_Sts)
547 
548   IS
549 
550     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
551     --
552     --CURSOR Lx_Csr_CVL(Cx_SVL_Id IN Gx_OKS_Id) IS
553     --SELECT CVL.Id
554     --		, CVL.Start_Date
555     --		, Get_End_Date_Time(CVL.End_Date) End_Date
556     --		, Get_End_Date_Time(CVL.Date_Terminated) Date_Terminated
557     --  FROM Okc_K_Lines_B CVL
558     -- WHERE CVL.Cle_id = Cx_SVL_Id
559     --   AND Lse_Id IN (G_LINE_STYLE_SRV_COVERAGE
560     --                 ,G_LINE_STYLE_WAR_COVERAGE
561     --                 ,G_LINE_STYLE_EWT_COVERAGE);
562     --
563     --CURSOR Lx_Csr_Temp_CVL(Cx_COV_Id IN Gx_OKS_Id) IS
564     --SELECT CVL.Id
565     --		, CVL.Start_Date
566     --		, Get_End_Date_Time(CVL.End_Date) End_Date
567     --		, Get_End_Date_Time(CVL.Date_Terminated) Date_Terminated
568     --  FROM Okc_K_Lines_B CVL
569     -- WHERE CVL.Id = Cx_COV_Id
570     --   AND Lse_Id IN (G_LINE_STYLE_SRV_COVERAGE
571     --                 ,G_LINE_STYLE_WAR_COVERAGE
572     --                 ,G_LINE_STYLE_EWT_COVERAGE);
573     --
574     -- Added for 12.0 Coverage Rearch project (JVARGHES)
575     --
576 
577     CURSOR Lx_Csr_CVL(Cx_CVL_Id IN Gx_OKS_Id) IS
578     SELECT CVL.Start_Date
579 	    ,Get_End_Date_Time(CVL.End_Date) End_Date
580 	    ,Get_End_Date_Time(CVL.Date_Terminated) Date_Terminated
581       FROM Okc_K_Lines_B CVL
582      WHERE CVL.Id = Cx_CVL_Id
583        AND Lse_Id IN (G_LINE_STYLE_SRV_COVERAGE
584                      ,G_LINE_STYLE_WAR_COVERAGE
585                      ,G_LINE_STYLE_EWT_COVERAGE);
586 
587     --
588 
589     -- Lx_SVL_Id             CONSTANT Gx_OKS_Id := P_SVL_Id;  -- Modified for 12.0 Coverage Rearch project (JVARGHES)
590 
591     Lx_CVL_Id                CONSTANT Gx_OKS_Id := P_CVL_Id;
592     Lx_Set_ExcepionStack     CONSTANT Gx_Boolean := P_Set_ExcepionStack;
593 
594     -- Lx_CVL_Id             Gx_OKS_Id;  -- Modified for1 2.0 Coverage Rearch project (JVARGHES)
595     -- Lx_Template_YN        CONSTANT varchar2(1) := P_Template_YN; -- Modified for 12.0 Coverage Rearch project (JVARGHES)
596 
597     Ld_CVL_Start             DATE;
598     Ld_CVL_End               DATE;
599     Ld_CVL_Terminated        DATE;
600 
601     Lx_Result                Gx_Boolean;
602     Lx_Return_Status         Gx_Ret_Sts;
603     Lx_ExcepionMsg           Gx_ExceptionMsg;
604 
605     L_EXCEP_NO_DATA_FOUND    EXCEPTION;
606 
607   BEGIN
608 
609     Lx_Result                := G_TRUE;
610     Lx_Return_Status         := G_RET_STS_SUCCESS;
611 
612     --
613     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
614     --
615     --IF Lx_Template_YN = 'N' THEN
616     --
617     --    OPEN Lx_Csr_CVL(Lx_SVL_Id);
618     --    FETCH Lx_Csr_CVL INTO Lx_CVL_Id,Ld_CVL_Start,Ld_CVL_End,Ld_CVL_Terminated;
619     --
620     --    IF Lx_Csr_CVL%NOTFOUND THEN
621     --
622     --      CLOSE Lx_Csr_CVL;
623     --      Lx_ExcepionMsg  := 'Coverage';
624     --      RAISE L_EXCEP_NO_DATA_FOUND;
625     --
626     --    END IF;
627     --
628     --    CLOSE Lx_Csr_CVL;
629     --
630     --ELSE
631     --
632     --    OPEN Lx_Csr_Temp_CVL(Lx_SVL_Id);
633     --    FETCH Lx_Csr_Temp_CVL INTO Lx_CVL_Id,Ld_CVL_Start,Ld_CVL_End,Ld_CVL_Terminated;
634     --
635     --    IF Lx_Csr_Temp_CVL%NOTFOUND THEN
636     --
637     --      CLOSE Lx_Csr_Temp_CVL;
638     --      Lx_ExcepionMsg  := 'Coverage Template ';
639     --      RAISE L_EXCEP_NO_DATA_FOUND;
640     --
641     --    END IF;
642     --
643     --    CLOSE Lx_Csr_Temp_CVL;
644     --
645     --END IF;
646 
647     -- Added for 12.0 Coverage Rearch project (JVARGHES)
648 
649     OPEN Lx_Csr_CVL(Lx_CVL_Id);
650     FETCH Lx_Csr_CVL INTO Ld_CVL_Start,Ld_CVL_End,Ld_CVL_Terminated;
651 
652     IF Lx_Csr_CVL%NOTFOUND THEN
653 
654        CLOSE Lx_Csr_CVL;
655        Lx_ExcepionMsg  := 'Coverage';
656        RAISE L_EXCEP_NO_DATA_FOUND;
657 
658     END IF;
659 
660     CLOSE Lx_Csr_CVL;
661 
662     --
663     -- X_CVL_Id           := Lx_CVL_Id;  --Modified for 12.0 Coverage Rearch project (JVARGHES)
664 
665     X_CVL_Start           := Ld_CVL_Start;
666     X_CVL_End             := Ld_CVL_End;
667     X_CVL_Terminated      := Ld_CVL_Terminated;
668 
669     X_Result              := Lx_Result;
670     X_Return_Status 	  := Lx_Return_Status;
671 
672   EXCEPTION
673 
674     WHEN L_EXCEP_NO_DATA_FOUND THEN
675 
676       Lx_Result   := G_FALSE;
677 
678       IF Lx_Set_ExcepionStack = G_TRUE THEN
679 
680         OKC_API.SET_MESSAGE
681           (P_App_Name	   => G_APP_NAME_OKC
682 	  ,P_Msg_Name	   => G_REQUIRED_VALUE
683 	  ,P_Token1	   => G_COL_NAME_TOKEN
684 	  ,P_Token1_Value  => Lx_ExcepionMsg);
685 
686         Lx_Return_Status  := G_RET_STS_ERROR;
687 
688       END IF;
689 
690       X_Result              := Lx_Result;
691       X_Return_Status 	    := Lx_Return_Status;
692 
693     WHEN OTHERS THEN
694 
695       IF Lx_Csr_CVL%ISOPEN THEN
696         CLOSE Lx_Csr_CVL;
697       END IF;
698 
699       OKC_API.SET_MESSAGE
700         (P_App_Name	  => G_APP_NAME_OKC
701 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
702 	,P_Token1	  => G_SQLCODE_TOKEN
703 	,P_Token1_Value	  => SQLCODE
704 	,P_Token2	  => G_SQLERRM_TOKEN
705 	,P_Token2_Value   => SQLERRM);
706 
707       OKC_API.SET_MESSAGE
708         (P_App_Name	  => G_APP_NAME_OKC
709 	,P_Msg_Name	  => G_DEBUG_TOKEN
710 	,P_Token1	  => G_PACKAGE_TOKEN
711 	,P_Token1_Value	  => G_PKG_NAME
712 	,P_Token2	  => G_PROGRAM_TOKEN
713 	,P_Token2_Value   => 'Validate_Coverage_Line');
714 
715       X_Result              := G_FALSE;
716       X_Return_Status       := G_RET_STS_UNEXP_ERROR;
717 
718   END Validate_Coverage_Line;
719 
720 -----------------------------------------------------------------------------------------------------------------------*
721 --
722 -- Added for 12.0 Coverage Rearch project (JVARGHES)
723 --
724 
725   PROCEDURE Get_BP_Line_Start_Offset
726     (P_BPL_Id	              IN  Gx_OKS_Id
727     ,P_SVL_Start	              IN	DATE
728     ,X_BPL_OFS_Start	        OUT	NOCOPY DATE
729     ,X_BPL_OFS_Duration	        OUT	NOCOPY NUMBER
730     ,X_BPL_OFS_UOM	        OUT	NOCOPY VARCHAR2
731     ,X_Return_Status 	        out nocopy Gx_Ret_Sts)
732   IS
733 
734     CURSOR Lx_Csr_BPL(Cx_BPL_Id IN Gx_OKS_Id) IS
735     SELECT BPL.Offset_Duration
736           ,BPL.Offset_period
737       FROM Oks_K_Lines_B BPL
738      WHERE BPL.Cle_Id = Cx_BPL_Id;
739 
740     Lx_BPL_Id                CONSTANT Gx_OKS_Id := P_BPL_Id;
741     Ld_SVL_Start             CONSTANT DATE := P_SVL_Start;
742 
743     Ld_BPL_OFS_Start         DATE;
744     Ln_BPL_OFS_Duration      NUMBER;
745     Lv_BPL_OFS_UOM           VARCHAR2(100);
746 
747     Lx_Return_Status         Gx_Ret_Sts;
748 
749   BEGIN
750 
751     Lx_Return_Status         := G_RET_STS_SUCCESS;
752 
753     OPEN Lx_Csr_BPL(Lx_BPL_Id);
754     FETCH Lx_Csr_BPL INTO Ln_BPL_OFS_Duration,Lv_BPL_OFS_UOM;
755 
756     CLOSE Lx_Csr_BPL;
757 
758     IF (Lv_BPL_OFS_UOM IS NOT NULL) AND (Ln_BPL_OFS_Duration IS NOT NULL) THEN
759 
760       Ld_BPL_OFS_Start  := OKC_Time_Util_Pub.Get_EndDate(P_Start_Date => Ld_SVL_Start
761                                                         ,P_Timeunit   => Lv_BPL_OFS_UOM
762                                                         ,P_Duration   => Ln_BPL_OFS_Duration);
763       Ld_BPL_OFS_Start  := Ld_BPL_OFS_Start + 1;
764 
765     ELSE
766 
767       Ld_BPL_OFS_Start  := Ld_SVL_Start;
768 
769     END IF;
770 
771     X_BPL_OFS_Start    := Ld_BPL_OFS_Start;
772     X_BPL_OFS_Duration := Ln_BPL_OFS_Duration;
773     X_BPL_OFS_UOM      := Lv_BPL_OFS_UOM;
774     X_Return_Status    := Lx_Return_Status;
775 
776   EXCEPTION
777 
778     WHEN OTHERS THEN
779 
780       IF Lx_Csr_BPL%ISOPEN THEN
781         CLOSE Lx_Csr_BPL;
782       END IF;
783 
784       OKC_API.SET_MESSAGE
785         (P_App_Name	  => G_APP_NAME_OKC
786 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
787 	,P_Token1	  => G_SQLCODE_TOKEN
788 	,P_Token1_Value	  => SQLCODE
789 	,P_Token2	  => G_SQLERRM_TOKEN
790 	,P_Token2_Value   => SQLERRM);
791 
792       OKC_API.SET_MESSAGE
793         (P_App_Name	  => G_APP_NAME_OKC
794 	,P_Msg_Name	  => G_DEBUG_TOKEN
795 	,P_Token1	  => G_PACKAGE_TOKEN
796 	,P_Token1_Value	  => G_PKG_NAME
797 	,P_Token2	  => G_PROGRAM_TOKEN
798 	,P_Token2_Value   => 'Get_BP_Line_Start_Offset');
799 
800       X_Return_Status := G_RET_STS_UNEXP_ERROR;
801 
802   END Get_BP_Line_Start_Offset;
803 
804 -----------------------------------------------------------------------------------------------------------------------*
805 
806 
807   PROCEDURE Validate_BusinessProcess_Line
808     (P_BPL_Id	                IN  Gx_OKS_Id
809     ,P_Set_ExcepionStack        IN  Gx_Boolean
810     ,X_BPL_Start                out nocopy DATE
811     ,X_BPL_End                  out nocopy DATE
812     ,X_BPL_Terminated           out nocopy DATE
813     ,X_Result                   out nocopy Gx_Boolean
814     ,X_Return_Status 	        out nocopy Gx_Ret_Sts)
815   IS
816 
817     CURSOR Lx_Csr_BPL(Cx_BPL_Id IN Gx_OKS_Id) IS
818     SELECT BPL.Start_Date
819           ,Get_End_Date_Time(BPL.End_Date) End_Date
820           ,Get_End_Date_Time(BPL.Date_Terminated) Date_Terminated
821       FROM Okc_K_Lines_B BPL
822      WHERE BPL.Id = Cx_BPL_Id
823        AND BPL.Lse_Id IN (3,16,21);
824 
825     Lx_BPL_Id                CONSTANT Gx_OKS_Id := P_BPL_Id;
826     Lx_Set_ExcepionStack     CONSTANT Gx_Boolean := P_Set_ExcepionStack;
827 
828     Ld_BPL_Start             DATE;
829     Ld_BPL_End               DATE;
830     Ld_BPL_Terminated        DATE;
831     Lx_Result                Gx_Boolean;
832     Lx_Return_Status         Gx_Ret_Sts;
833     Lx_ExcepionMsg           Gx_ExceptionMsg;
834 
835     L_EXCEP_NO_DATA_FOUND    EXCEPTION;
836 
837   BEGIN
838 
839     Lx_Result                := G_TRUE;
840     Lx_Return_Status         := G_RET_STS_SUCCESS;
841 
842     OPEN Lx_Csr_BPL(Lx_BPL_Id);
843     FETCH Lx_Csr_BPL INTO Ld_BPL_Start,Ld_BPL_End,Ld_BPL_Terminated;
844 
845     IF Lx_Csr_BPL%NOTFOUND THEN
846 
847       CLOSE Lx_Csr_BPL;
848 
849       Lx_ExcepionMsg := 'Contract Business Process Line';
850       RAISE L_EXCEP_NO_DATA_FOUND;
851 
852     END IF;
853 
854     CLOSE Lx_Csr_BPL;
855 
856     X_BPL_Start       := Ld_BPL_Start;
857     X_BpL_End         := Ld_BPL_End;
858     X_BPL_Terminated  := Ld_BPL_Terminated;
859     X_Result          := Lx_Result;
860     X_Return_Status   := Lx_Return_Status;
861 
862   EXCEPTION
863 
864     WHEN L_EXCEP_NO_DATA_FOUND THEN
865 
866       Lx_Result   := G_FALSE;
867 
868       IF Lx_Set_ExcepionStack = G_TRUE THEN
869 
870         OKC_API.SET_MESSAGE
871           (p_app_name	   => G_APP_NAME_OKC
872 	  ,p_msg_name	   => G_INVALID_VALUE
873 	  ,p_token1	   => G_COL_NAME_TOKEN
874 	  ,p_token1_value  => Lx_ExcepionMsg);
875 
876         Lx_Return_Status  := G_RET_STS_ERROR;
877 
878       END IF;
879 
880       X_Result        := Lx_Result;
881       X_Return_Status := Lx_Return_Status;
882 
883     WHEN OTHERS THEN
884 
885       IF Lx_Csr_BPL%ISOPEN THEN
886         CLOSE Lx_Csr_BPL;
887       END IF;
888 
889       OKC_API.SET_MESSAGE
890         (P_App_Name	  => G_APP_NAME_OKC
891 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
892 	,P_Token1	  => G_SQLCODE_TOKEN
893 	,P_Token1_Value	  => SQLCODE
894 	,P_Token2	  => G_SQLERRM_TOKEN
895 	,P_Token2_Value   => SQLERRM);
896 
897       OKC_API.SET_MESSAGE
898         (P_App_Name	  => G_APP_NAME_OKC
899 	,P_Msg_Name	  => G_DEBUG_TOKEN
900 	,P_Token1	  => G_PACKAGE_TOKEN
901 	,P_Token1_Value	  => G_PKG_NAME
902 	,P_Token2	  => G_PROGRAM_TOKEN
903 	,P_Token2_Value   => 'Validate_BusinessProcess_Line');
904 
905       X_Result        := G_FALSE;
906       X_Return_Status := G_RET_STS_UNEXP_ERROR;
907 
908   END Validate_BusinessProcess_Line;
909 
910 -----------------------------------------------------------------------------------------------------------------------*
911 
912   PROCEDURE Validate_Contract_BP
913     (P_CVL_Id	            IN  Gx_OKS_Id      --P_SVL_Id   IN  Gx_OKS_Id
914     ,P_BP_Id	            IN  Gx_BusProcess_Id
915     ,P_BP_ObjCode           IN  Gx_JTOT_ObjCode
916     ,P_Set_ExcepionStack    IN  Gx_Boolean
917     ,P_REQ_DATE             IN DATE      --ansraj 13795417
918     ,X_BPL_Id               OUT nocopy Gx_OKS_Id
919     ,X_BPL_Start            OUT nocopy DATE
920     ,X_BPL_End              OUT nocopy DATE
921     ,X_BPL_Terminated       OUT nocopy DATE
922     ,X_Result               OUT nocopy Gx_Boolean
923     ,X_Return_Status 	    OUT nocopy Gx_Ret_Sts)
924   IS
925 
926   /**
927    bug 3202650: The purpose is to suppress index on ITM.object1_id1,ITM.jtot_object1_code and let
928    index on ITM.cle_id be used to improve the cardinality on OKC_K_ITEMS during row source operation.
929 
930   **/
931 
932  CURSOR Lx_Csr_BPL(Cx_CVL_Id IN Gx_OKS_Id,Cx_BP_Id IN Gx_BusProcess_Id,Cx_BP_ObjCode IN Gx_JTOT_ObjCode,Cx_Req_Date IN DATE) IS      --ansraj
933       SELECT BPL.Id
934             ,BPL.Start_Date
935             ,Get_End_Date_Time(BPL.End_Date) End_Date
936             ,Get_End_Date_Time(BPL.Date_Terminated) Date_Terminated
937 	FROM Okc_K_Lines_B BPL,
938              Okc_K_Lines_B CVL
939 	WHERE CVL.id = Cx_CVL_Id
940 	AND BPL.Cle_Id = CVL.Id
941 	AND EXISTS ( SELECT '*'
942 			FROM Okc_K_Items ITM
943 			WHERE ITM.Cle_id = BPL.Id
944 			AND ITM.Object1_Id1 = Cx_BP_Id -- TO_CHAR(Cx_BP_Id) commented due to bug 3202650
945 			AND ITM.Object1_Id2 = '#'
946 			AND ITM.Jtot_Object1_Code = Cx_BP_ObjCode)
947   AND Cx_Req_Date BETWEEN nvl(BPL.Start_Date,Cx_Req_Date) AND nvl(BPL.End_Date,Cx_Req_Date);      --- ansraj 13795417
948 
949 
950     --Lx_SVL_Id              CONSTANT Gx_OKS_Id := P_SVL_Id;
951     Lx_CVL_Id              CONSTANT Gx_OKS_Id := P_CVL_Id;
952     Lx_BP_Id               CONSTANT Gx_BusProcess_Id := P_BP_Id;
953     Lx_BP_ObjCode          CONSTANT Gx_JTOT_ObjCode := P_BP_ObjCode;
954     Lx_Set_ExcepionStack   CONSTANT Gx_Boolean := P_Set_ExcepionStack;
955 
956     Lx_BPL_Id              Gx_OKS_Id;
957     Ld_BPL_Start           DATE;
958     Ld_BPL_End             DATE;
959     Ld_BPL_Terminated      DATE;
960 
961     Lx_Result              Gx_Boolean;
962     Lx_Return_Status       Gx_Ret_Sts;
963 
964     Lx_ExcepionMsg         Gx_ExceptionMsg;
965 
966     L_EXCEP_NO_DATA_FOUND    EXCEPTION;
967 
968   BEGIN
969 
970     Lx_Result              := G_TRUE;
971     Lx_Return_Status       := G_RET_STS_SUCCESS;
972 
973 --    OPEN Lx_Csr_BPL(Lx_SVL_Id,Lx_BP_Id,Lx_BP_ObjCode);
974     OPEN Lx_Csr_BPL(Lx_CVL_Id,Lx_BP_Id,Lx_BP_ObjCode,P_REQ_DATE);--ansraj bug 13795417
975     FETCH Lx_Csr_BPL INTO Lx_BPL_Id,Ld_BPL_Start,Ld_BPL_End,Ld_BPL_Terminated;
976 
977     IF Lx_Csr_BPL%NOTFOUND THEN
978 
979       CLOSE Lx_Csr_BPL;
980       Lx_ExcepionMsg := 'Business Process';
981       RAISE L_EXCEP_NO_DATA_FOUND;
982 
983     END IF;
984 
985     CLOSE Lx_Csr_BPL;
986 
987     X_BPL_Id              := Lx_BPL_Id;
988     X_BPL_Start           := Ld_BPL_Start;
989     X_BPL_End             := Ld_BPL_End;
990     X_BPL_Terminated      := Ld_BPL_Terminated;
991     X_Result              := Lx_Result;
992     X_Return_Status 	  := Lx_Return_Status;
993 
994   EXCEPTION
995 
996     WHEN L_EXCEP_NO_DATA_FOUND THEN
997 
998       Lx_Result   := G_FALSE;
999 
1000       IF Lx_Set_ExcepionStack = G_TRUE THEN
1001 
1002         OKC_API.SET_MESSAGE
1003           (p_app_name	   => G_APP_NAME_OKC
1004 	  ,p_msg_name	   => G_INVALID_VALUE
1005           ,p_token1	   => G_COL_NAME_TOKEN
1006 	  ,p_token1_value  => Lx_ExcepionMsg);
1007 
1008         Lx_Return_Status  := G_RET_STS_ERROR;
1009 
1010       END IF;
1011 
1012       X_Result              := Lx_Result;
1013       X_Return_Status 	    := Lx_Return_Status;
1014 
1015     WHEN OTHERS THEN
1016 
1017       IF Lx_Csr_BPL%ISOPEN THEN
1018         CLOSE Lx_Csr_BPL;
1019       END IF;
1020 
1021       OKC_API.SET_MESSAGE
1022         (P_App_Name	  => G_APP_NAME_OKC
1023 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
1024 	,P_Token1	  => G_SQLCODE_TOKEN
1025 	,P_Token1_Value	  => SQLCODE
1026 	,P_Token2	  => G_SQLERRM_TOKEN
1027 	,P_Token2_Value   => SQLERRM);
1028 
1029       OKC_API.SET_MESSAGE
1030         (P_App_Name	  => G_APP_NAME_OKC
1031 	,P_Msg_Name	  => G_DEBUG_TOKEN
1032 	,P_Token1	  => G_PACKAGE_TOKEN
1033 	,P_Token1_Value	  => G_PKG_NAME
1034 	,P_Token2	  => G_PROGRAM_TOKEN
1035 	,P_Token2_Value   => 'Validate_Contract_BP');
1036 
1037       X_Result             := G_FALSE;
1038       X_Return_Status 	  := G_RET_STS_UNEXP_ERROR;
1039 
1040   END Validate_Contract_BP;
1041 
1042 -----------------------------------------------------------------------------------------------------------------------
1043 
1044   PROCEDURE Get_Effective_End_Date
1045     (P_Start_Date            IN  DATE
1046     ,P_End_Date              IN  DATE
1047     ,P_Termination_Date      IN  DATE
1048     ,P_EndDate_Required      IN  Gx_Boolean
1049     ,P_Set_ExcepionStack     IN  Gx_Boolean
1050     ,P_ExcepionMsg           IN  Gx_ExceptionMsg
1051     ,X_EffEnd_Date           out nocopy DATE
1052     ,X_Result                out nocopy Gx_Boolean
1053     ,X_Return_Status  	     out nocopy Gx_Ret_Sts)
1054 
1055   IS
1056 
1057     Ld_Start_Date            CONSTANT DATE:= P_Start_Date;
1058     Ld_End_Date              CONSTANT DATE:= P_End_Date;
1059     Ld_Termination_Date      CONSTANT DATE:= P_Termination_Date;
1060     Ld_EndDate_Required      CONSTANT Gx_Boolean := P_EndDate_Required;
1061     Lx_Set_ExcepionStack     CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1062 
1063     Lx_ExcepionMsg           CONSTANT Gx_ExceptionMsg := P_ExcepionMsg;
1064     Lx_Final_Msg             Gx_ExceptionMsg;
1065 
1066     Ld_EffEnd_Date           DATE;
1067     Lx_Result                Gx_Boolean;
1068     Lx_Return_Status         Gx_Ret_Sts;
1069 
1070     Lx_End_Date_Null         Gx_Boolean;
1071     Lx_Termination_Date_Null Gx_Boolean;
1072 
1073     L_EXCEP_NULL_VALUE       EXCEPTION ;
1074     L_EXCEP_UNEXPECTED_ERR   EXCEPTION ;
1075 
1076   BEGIN
1077 
1078     Lx_Result                := G_TRUE;
1079     Lx_Return_Status         := G_RET_STS_SUCCESS;
1080 
1081     Lx_End_Date_Null         := G_FALSE;
1082     Lx_Termination_Date_Null := G_FALSE;
1083 
1084     Lx_Final_Msg   := Lx_ExcepionMsg||' Start Date';
1085 
1086     Validate_Required_DateValue
1087       (P_Date_Value           => Ld_Start_Date
1088       ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
1089       ,P_ExcepionMsg          => Lx_Final_Msg
1090       ,X_Result               => Lx_Result
1091       ,X_Return_Status        => Lx_Return_Status);
1092 
1093     IF Lx_result <> G_TRUE  THEN
1094       RAISE L_EXCEP_NULL_VALUE;
1095     END IF;
1096 
1097     Lx_Final_Msg   := Lx_ExcepionMsg||' End Date';
1098 
1099     Validate_Required_DateValue
1100       (P_Date_Value           => Ld_End_Date
1101       ,P_Set_ExcepionStack    => G_FALSE
1102       ,P_ExcepionMsg          => Lx_Final_Msg
1103       ,X_Result               => Lx_Result
1104       ,X_Return_Status        => Lx_Return_Status);
1105 
1106     IF Lx_result <> G_TRUE  THEN
1107 
1108       Lx_End_Date_Null  := G_TRUE;
1109 
1110       IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
1111         RAISE L_EXCEP_UNEXPECTED_ERR;
1112       END IF;
1113 
1114     END IF;
1115 
1116     Lx_Final_Msg   := Lx_ExcepionMsg||' Termination Date';
1117 
1118     Validate_Required_DateValue
1119       (P_Date_Value           => Ld_Termination_Date
1120       ,P_Set_ExcepionStack    => G_FALSE
1121       ,P_ExcepionMsg          => Lx_Final_Msg
1122       ,X_Result               => Lx_Result
1123       ,X_Return_Status        => Lx_Return_Status);
1124 
1125     IF Lx_result <> G_TRUE  THEN
1126 
1127       Lx_Termination_Date_Null  := G_TRUE;
1128 
1129       IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
1130         RAISE L_EXCEP_UNEXPECTED_ERR;
1131       END IF;
1132 
1133     END IF;
1134 
1135     IF Lx_Termination_Date_Null <> G_TRUE  THEN
1136 -- grace period is not allowed if the line is terminated
1137       IF Lx_End_Date_Null = G_TRUE THEN
1138         Ld_EffEnd_Date        := Ld_Termination_Date;
1139       ELSE
1140 
1141         IF Ld_Termination_Date < Ld_End_Date THEN
1142           Ld_EffEnd_Date      := Ld_Termination_Date;
1143         ELSE
1144           Ld_EffEnd_Date      := Ld_End_Date;
1145         END IF;
1146 
1147       END IF;
1148 
1149     ELSE
1150       Ld_EffEnd_Date          := Ld_End_Date;
1151 
1152       -- grace period changes starts
1153 
1154      IF G_GRACE_PROFILE_SET = 'Y' THEN
1155 
1156      -- grace period changes are done only if line end date matches contract end date
1157 
1158         IF  trunc(Ld_EffEnd_Date) = trunc(G_CONTRACT_END_DATE) AND Ld_Termination_Date IS NULL THEN
1159             Ld_EffEnd_Date := Get_Final_End_Date(G_CONTRACT_ID,Ld_EffEnd_Date);
1160         END IF;
1161 
1162       END IF;
1163 
1164 -- grace period changes ends
1165 
1166     END IF;
1167 
1168     IF Ld_EndDate_Required = G_TRUE THEN
1169 
1170       Lx_Final_Msg          := Lx_ExcepionMsg||' End date or Termination date';
1171 
1172       Validate_Required_DateValue
1173         (P_Date_Value           => Ld_EffEnd_Date
1174         ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
1175         ,P_ExcepionMsg          => Lx_Final_Msg
1176         ,X_Result               => Lx_result
1177         ,X_Return_Status   	=> Lx_Return_Status);
1178 
1179       IF Lx_result <> G_TRUE  THEN
1180         RAISE L_EXCEP_NULL_VALUE;
1181       END IF;
1182 
1183     END IF;
1184 
1185     Lx_Result               := G_TRUE;
1186     Lx_Return_Status        := G_RET_STS_SUCCESS;
1187 
1188     X_EffEnd_Date           := Ld_EffEnd_Date;
1189     X_Result                := Lx_Result;
1190     X_Return_Status  	    := Lx_Return_Status;
1191 
1192   EXCEPTION
1193 
1194     WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_UNEXPECTED_ERR THEN
1195 
1196       X_Result              := Lx_Result;
1197       X_Return_Status 	    := Lx_Return_Status;
1198 
1199     WHEN OTHERS THEN
1200 
1201       OKC_API.SET_MESSAGE
1202         (P_App_Name	  => G_APP_NAME_OKC
1203 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
1204 	,P_Token1	  => G_SQLCODE_TOKEN
1205 	,P_Token1_Value	  => SQLCODE
1206 	,P_Token2	  => G_SQLERRM_TOKEN
1207 	,P_Token2_Value   => SQLERRM);
1208 
1209       OKC_API.SET_MESSAGE
1210         (P_App_Name	  => G_APP_NAME_OKC
1211 	,P_Msg_Name	  => G_DEBUG_TOKEN
1212 	,P_Token1	  => G_PACKAGE_TOKEN
1213 	,P_Token1_Value	  => G_PKG_NAME
1214 	,P_Token2	  => G_PROGRAM_TOKEN
1215 	,P_Token2_Value   => 'Get_Effective_End_Date');
1216 
1217       X_Result              := G_FALSE;
1218       X_Return_Status 	   := G_RET_STS_UNEXP_ERROR;
1219 
1220   END Get_Effective_End_Date;
1221 
1222 -----------------------------------------------------------------------------------------------------------------------*
1223 
1224   PROCEDURE Get_BP_CoverTimeZone_Line
1225     (P_BPL_Id	             IN  Gx_OKS_Id
1226     ,P_Set_ExcepionStack     IN  Gx_Boolean
1227     ,X_BP_CVTLine_Id	     out nocopy Gx_OKS_Id
1228     ,X_BP_Tz_Id              out nocopy Gx_TimeZoneId
1229     ,X_Result                out nocopy Gx_Boolean
1230     ,X_Return_Status 	     out nocopy Gx_Ret_Sts)
1231   IS
1232 
1233     CURSOR Lx_Csr_BP_CVT(Cx_BPL_Id IN  Gx_OKS_Id) IS
1234       SELECT OCT.Id
1235             ,OCT.TimeZone_Id BP_Tzone_Id
1236         FROM Oks_Coverage_Timezones OCT
1237        WHERE OCT.CLE_ID = Cx_BPL_Id
1238          AND OCT.Default_YN = 'Y';
1239 
1240     Lx_BPL_Id             CONSTANT Gx_OKS_Id := P_BPL_Id;
1241     Lx_Set_ExcepionStack  CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1242 
1243     Lx_BP_CVTLine_Id	  Gx_OKS_Id;
1244     Lx_BP_Tz_Id           Gx_TimeZoneId;
1245     Lx_Result             Gx_Boolean;
1246     Lx_Return_Status      Gx_Ret_Sts;
1247     Lx_ExcepionMsg        Gx_ExceptionMsg;
1248 
1249     L_EXCEP_NO_DATA_FOUND    EXCEPTION;
1250     L_EXCEP_NULL_VALUE       EXCEPTION;
1251 
1252   BEGIN
1253 
1254     Lx_Result             := G_TRUE;
1255     Lx_Return_Status      := G_RET_STS_SUCCESS;
1256 
1257     OPEN Lx_Csr_BP_CVT(Lx_BPL_Id);
1258     FETCH Lx_Csr_BP_CVT INTO Lx_BP_CVTLine_Id,Lx_BP_Tz_Id;
1259 
1260     IF Lx_Csr_BP_CVT%NOTFOUND  THEN
1261 
1262       Lx_ExcepionMsg := 'Cover Time';
1263       RAISE L_EXCEP_NO_DATA_FOUND;
1264 
1265     ELSE
1266 
1267       Validate_Required_NumValue
1268         (P_Num_Value            => Lx_BP_Tz_Id
1269         ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
1270         ,P_ExcepionMsg          => 'Cover Time - Time Zone'
1271         ,X_Result               => Lx_result
1272         ,X_Return_Status   	=> Lx_Return_Status);
1273 
1274       IF Lx_Result <> G_TRUE THEN
1275         RAISE L_EXCEP_NULL_VALUE;
1276       END IF;
1277 
1278     END IF;
1279 
1280     CLOSE Lx_Csr_BP_CVT;
1281 
1282     X_BP_CVTLine_Id     := Lx_BP_CVTLine_Id;
1283     X_BP_Tz_Id          := Lx_BP_Tz_Id;
1284     X_Result            := Lx_Result;
1285     X_Return_Status     := Lx_Return_Status;
1286 
1287   EXCEPTION
1288 
1289     WHEN L_EXCEP_NO_DATA_FOUND THEN
1290 
1291       IF Lx_Csr_BP_CVT%ISOPEN THEN
1292         CLOSE Lx_Csr_BP_CVT;
1293       END IF;
1294 
1295       Lx_Result   := G_FALSE;
1296 
1297       IF Lx_Set_ExcepionStack = G_TRUE THEN
1298 
1299         OKC_API.SET_MESSAGE
1300           (P_app_name	   => G_APP_NAME_OKC
1301       	  ,P_msg_name	   => G_REQUIRED_VALUE
1302           ,P_token1	   => G_COL_NAME_TOKEN
1303   	      ,P_token1_value  => Lx_ExcepionMsg);
1304 
1305         Lx_Return_Status  := G_RET_STS_ERROR;
1306 
1307       END IF;
1308 
1309       X_Result            := Lx_Result;
1310       X_Return_Status     := Lx_Return_Status;
1311 
1312     WHEN L_EXCEP_NULL_VALUE THEN
1313 
1314       IF Lx_Csr_BP_CVT%ISOPEN THEN
1315         CLOSE Lx_Csr_BP_CVT;
1316       END IF;
1317 
1318       X_Result             := Lx_Result;
1319       X_Return_Status 	   := Lx_Return_Status;
1320 
1321     WHEN OTHERS THEN
1322 
1323       IF Lx_Csr_BP_CVT%ISOPEN THEN
1324         CLOSE Lx_Csr_BP_CVT;
1325       END IF;
1326 
1327       OKC_API.SET_MESSAGE
1328         (P_App_Name	  => G_APP_NAME_OKC
1329 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
1330 	,P_Token1	  => G_SQLCODE_TOKEN
1331 	,P_Token1_Value	  => SQLCODE
1332 	,P_Token2	  => G_SQLERRM_TOKEN
1333 	,P_Token2_Value   => SQLERRM);
1334 
1335       OKC_API.SET_MESSAGE
1336         (P_App_Name	  => G_APP_NAME_OKC
1337 	,P_Msg_Name	  => G_DEBUG_TOKEN
1338 	,P_Token1	  => G_PACKAGE_TOKEN
1339 	,P_Token1_Value	  => G_PKG_NAME
1340 	,P_Token2	  => G_PROGRAM_TOKEN
1341 	,P_Token2_Value   => 'Get_BP_CoverTimeZone_Line');
1342 
1343       X_Result            := G_FALSE;
1344       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
1345 
1346   END Get_BP_CoverTimeZone_Line;
1347 
1348 -----------------------------------------------------------------------------------------------------------------------*
1349 
1350   PROCEDURE Convert_TimeZone
1351     (P_API_Version	IN  NUMBER
1352     ,P_Init_Msg_List    IN  VARCHAR2
1353     ,p_Source_Date      IN  DATE
1354     ,P_Source_Tz_Id     IN  Gx_TimeZoneId
1355     ,P_Dest_Tz_Id       IN  Gx_TimeZoneId
1356     ,X_Dest_Date        out nocopy DATE
1357     ,X_Msg_Count        out nocopy NUMBER
1358     ,X_Msg_Data		out nocopy VARCHAR2
1359     ,X_Return_Status 	out nocopy Gx_Ret_Sts)
1360 
1361   IS
1362   BEGIN
1363 
1364     OKX_GATEWAY.OKX_TIMEZONE_GETTIME
1365       (P_API_Version	 => P_API_Version
1366       ,P_Init_Msg_List	 => P_Init_Msg_List
1367       ,P_Source_Tz_Id	 => P_Source_Tz_Id
1368       ,P_Dest_Ts_Id	 => P_Dest_Tz_Id
1369       ,P_Source_Day_Time => p_Source_Date
1370       ,X_Dest_Day_Time	 => X_Dest_Date
1371       ,X_Return_Status	 => X_Return_Status
1372       ,X_Msg_Count	 => X_Msg_Count
1373       ,X_Msg_Data	 => X_Msg_Data);
1374 
1375   EXCEPTION
1376 
1377     WHEN OTHERS THEN
1378 
1379       OKC_API.SET_MESSAGE
1380         (P_App_Name	  => G_APP_NAME_OKC
1381 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
1382 	,P_Token1	  => G_SQLCODE_TOKEN
1383 	,P_Token1_Value	  => SQLCODE
1384 	,P_Token2	  => G_SQLERRM_TOKEN
1385 	,P_Token2_Value   => SQLERRM);
1386 
1387       OKC_API.SET_MESSAGE
1388         (P_App_Name	  => G_APP_NAME_OKC
1389 	,P_Msg_Name	  => G_DEBUG_TOKEN
1390 	,P_Token1	  => G_PACKAGE_TOKEN
1391 	,P_Token1_Value	  => G_PKG_NAME
1392 	,P_Token2	  => G_PROGRAM_TOKEN
1393 	,P_Token2_Value   => 'Convert_TimeZone');
1394 
1395       X_Return_Status 	  := G_RET_STS_UNEXP_ERROR;
1396 
1397   END Convert_TimeZone;
1398 
1399 -----------------------------------------------------------------------------------------------------------------------*
1400 
1401   PROCEDURE Validate_Effectivity
1402     (P_Request_Date	    IN  DATE
1403     ,P_Start_DateTime       IN  DATE
1404     ,P_End_DateTime         IN  DATE
1405     ,P_Set_ExcepionStack    IN  Gx_Boolean
1406     ,P_CL_Msg_TokenValue    IN  Gx_ExceptionMsg
1407     ,X_Result               out nocopy Gx_Boolean
1408     ,X_Return_Status 	    out nocopy Gx_Ret_Sts)
1409 
1410   IS
1411 
1412     Ld_Request_Date          CONSTANT DATE := P_Request_Date;
1413     Ld_Start_DateTime        CONSTANT DATE := P_Start_DateTime;
1414     Ld_End_DateTime          CONSTANT DATE := P_End_DateTime;
1415     Lx_Set_ExcepionStack     CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1416     Lx_CL_Msg_TokenValue     CONSTANT Gx_ExceptionMsg := P_CL_Msg_TokenValue;
1417 
1418     Lx_Result                Gx_Boolean;
1419     Lx_Return_Status         Gx_Ret_Sts;
1420     Lx_Msg_TokenVal_Start    Gx_ExceptionMsg;
1421     Lx_Msg_TokenVal_End      Gx_ExceptionMsg;
1422 
1423     L_EXCEP_NOT_EFFECTIVE    EXCEPTION;
1424 
1425   BEGIN
1426 
1427     Lx_Result                := G_TRUE;
1428     Lx_Return_Status         := G_RET_STS_SUCCESS;
1429 
1430     IF Ld_Request_Date BETWEEN Ld_Start_DateTime AND Ld_End_DateTime THEN
1431 
1432       NULL;
1433 
1434     ELSE
1435 
1436       Lx_Msg_TokenVal_Start  := Lx_CL_Msg_TokenValue||' Start Date/Time';
1437       Lx_Msg_TokenVal_End    := ' End Date/Time';
1438 
1439       RAISE L_EXCEP_NOT_EFFECTIVE;
1440 
1441     END IF;
1442 
1443     X_Result              := Lx_Result;
1444     X_Return_Status 	  := Lx_Return_Status;
1445 
1446   EXCEPTION
1447 
1448     WHEN L_EXCEP_NOT_EFFECTIVE THEN
1449 
1450       Lx_Result   := G_FALSE;
1451 
1452       IF Lx_Set_ExcepionStack = G_TRUE THEN
1453 
1454           OKC_API.SET_MESSAGE
1455           (p_app_name	   => G_APP_NAME_OKS
1456 	  ,p_msg_name	   => 'OKS_INVALID_REQ_DT'
1457 	  ,p_token1	   => 'DATE1'
1458           ,p_token1_value  => ''''||TO_CHAR(Ld_Request_Date,'YYYY/MM/DD HH24:MI:SS')||''''
1459 	  ,p_token2	   => 'STARTDATE'
1460 	  ,p_token2_value  => Lx_Msg_TokenVal_Start
1461 	  ,p_token3	   => 'DATE2'
1462 	  ,p_token3_value  => ''''||TO_CHAR(Ld_Start_DateTime,'YYYY/MM/DD HH24:MI:SS')||''''
1463 	  ,p_token4	   => 'ENDDATE'
1464 	  ,p_token4_value  => Lx_Msg_TokenVal_End
1465 	  ,p_token5  	   => 'DATE3'
1466           ,p_token5_value  => ''''||TO_CHAR(Ld_End_DateTime,'YYYY/MM/DD HH24:MI:SS')||'''');
1467 
1468         Lx_Return_Status  := G_RET_STS_ERROR;
1469 
1470       END IF;
1471 
1472       X_Result             := Lx_Result;
1473       X_Return_Status 	   := Lx_Return_Status;
1474 
1475     WHEN OTHERS THEN
1476 
1477       OKC_API.SET_MESSAGE
1478         (P_App_Name	  => G_APP_NAME_OKC
1479 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
1480 	,P_Token1	  => G_SQLCODE_TOKEN
1481 	,P_Token1_Value	  => SQLCODE
1482 	,P_Token2	  => G_SQLERRM_TOKEN
1483 	,P_Token2_Value   => SQLERRM);
1484 
1485       OKC_API.SET_MESSAGE
1486         (P_App_Name	  => G_APP_NAME_OKC
1487 	,P_Msg_Name	  => G_DEBUG_TOKEN
1488 	,P_Token1	  => G_PACKAGE_TOKEN
1489 	,P_Token1_Value	  => G_PKG_NAME
1490 	,P_Token2	  => G_PROGRAM_TOKEN
1491 	,P_Token2_Value   => 'Validate_Effectivity');
1492 
1493       X_Result             := G_FALSE;
1494       X_Return_Status 	  := G_RET_STS_UNEXP_ERROR;
1495 
1496   END Validate_Effectivity;
1497 
1498 -----------------------------------------------------------------------------------------------------------------------*
1499 
1500 -- 11.5.10 rule rearchitecture changes ...the procedure will get only reaction time line id and not rule_id
1501 
1502   PROCEDURE Get_BP_ReactResolTime_Line
1503     (P_BPL_Id	             IN  Gx_OKS_Id
1504     ,P_Severity_Id	         IN  Gx_Severity_Id
1505     ,P_TimeType_Category     IN  Varchar2 --Gx_TimeType_Category
1506     ,P_Active_YN             IN  Gx_YesNo
1507     ,P_Set_ExcepionStack     IN  Gx_Boolean
1508     ,X_RTL_Id                out nocopy Gx_OKS_Id
1509     ,X_RTL_Start             out nocopy DATE
1510     ,X_RTL_End               out nocopy DATE
1511     ,X_RTL_Terminated        out nocopy DATE
1512     ,X_RTL_Line_Id	         out nocopy Gx_OKS_Id
1513     ,X_RTL_WT_YN             out nocopy Gx_YesNo
1514     ,X_Result                out nocopy Gx_Boolean
1515     ,X_Return_Status 	     out nocopy Gx_Ret_Sts)
1516 
1517   IS
1518 
1519     CURSOR Lx_Csr_RTL_Line(Cx_BPL_Id         IN Gx_OKS_Id
1520                           ,Cx_Severity_Id    IN Gx_Severity_Id
1521                           ,Cx_TimeType_Category IN Varchar2
1522                           ,Cx_Active_YN      IN Gx_YesNo
1523                           )
1524     IS
1525       SELECT RTL.Id
1526             ,RTL.Start_Date
1527             ,Get_End_Date_Time(RTL.End_Date) End_Date
1528             ,Get_End_Date_Time(RTL.Date_Terminated) Date_Terminated
1529             ,OKSRTL.Work_Thru_YN Work_Through_YN
1530         FROM Okc_K_Lines_B RTL
1531             ,Okc_K_Lines_B BPL
1532             ,oks_k_lines_b OKSRTL
1533             ,oks_action_time_types ACT
1534             ,oks_action_times ACM
1535        WHERE BPL.Id                         = Cx_BPL_Id
1536          AND RTL.Cle_Id                     = BPL.Id
1537          AND OKSRTL.Cle_Id                  = RTL.Id
1538          AND RTL.lse_id                     in (4,17,22)
1539          AND OKSRTL.incident_severity_id    = Cx_Severity_Id
1540          AND OKSRTL.react_active_yn         = Cx_Active_YN
1541          AND ACT.cle_id                     = RTL.id
1542          AND ACT.action_type_code           = Cx_TimeType_Category
1543          and ACT.id                         = ACM.cov_action_type_id
1544          and (ACM.sun_duration is not null or
1545               ACM.mon_duration is not null or
1546               ACM.tue_duration is not null or
1547               ACM.wed_duration is not null or
1548               ACM.thu_duration is not null or
1549               ACM.fri_duration is not null or
1550               ACM.sat_duration is not null);
1551 
1552 
1553 
1554     Lx_BPL_Id             CONSTANT Gx_OKS_Id := P_BPL_Id;
1555     Lx_Severity_Id        CONSTANT Gx_Severity_Id := P_Severity_Id;
1556     Lx_TimeType_Category  CONSTANT Varchar2(30) := P_TimeType_Category; --Gx_Rule_Category := P_Rule_Category;
1557     Lx_Active_YN          CONSTANT Gx_YesNo := P_Active_YN;
1558 
1559     Lx_Set_ExcepionStack  CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1560 
1561     Lx_RTL_Id             Gx_OKS_Id;
1562     Ld_RTL_Start          DATE;
1563     Ld_RTL_End            DATE;
1564     Ld_RTL_Terminated     DATE;
1565     Lx_RTL_WT_YN          Gx_YesNo;
1566 
1567     Lx_Result             Gx_Boolean;
1568     Lx_Return_Status      Gx_Ret_Sts;
1569     Lx_ExcepionMsg        Gx_ExceptionMsg;
1570 
1571     L_EXCEP_NO_DATA_FOUND  EXCEPTION;
1572 
1573   BEGIN
1574 
1575     Lx_Result             := G_TRUE;
1576     Lx_Return_Status      := G_RET_STS_SUCCESS;
1577 
1578     OPEN Lx_Csr_RTL_Line(Lx_BPL_Id,Lx_Severity_Id,Lx_TimeType_Category,Lx_Active_YN);
1579 
1580     FETCH Lx_Csr_RTL_Line INTO Lx_RTL_Id,Ld_RTL_Start,LD_RTL_End,Ld_RTL_Terminated,Lx_RTL_WT_YN;
1581 
1582     IF Lx_Csr_RTL_Line%NOTFOUND  THEN
1583 
1584       CLOSE Lx_Csr_RTL_Line;
1585 
1586       IF Lx_TimeType_Category = G_RUL_CATEGORY_REACTION THEN
1587         Lx_ExcepionMsg := 'Reaction Time - Severity';
1588       ELSE
1589         Lx_ExcepionMsg := 'Resolution Time - Severity';
1590       END IF;
1591 
1592       RAISE L_EXCEP_NO_DATA_FOUND;
1593 
1594     END IF;
1595 
1596     CLOSE Lx_Csr_RTL_Line;
1597 
1598     X_RTL_Id            := Lx_RTL_Id;
1599     X_RTL_Start         := Ld_RTL_Start;
1600     X_RTL_End           := Ld_RTL_End;
1601     X_RTL_Terminated    := Ld_RTL_Terminated;
1602     X_RTL_Line_Id       := Lx_RTL_Id;
1603     X_RTL_WT_YN         := Lx_RTL_WT_YN;
1604     X_Result            := Lx_Result;
1605     X_Return_Status     := Lx_Return_Status;
1606 
1607   EXCEPTION
1608 
1609     WHEN L_EXCEP_NO_DATA_FOUND THEN
1610 
1611       Lx_Result   := G_FALSE;
1612 
1613       IF Lx_Set_ExcepionStack = G_TRUE THEN
1614 
1615         OKC_API.SET_MESSAGE
1616           (P_app_name	   => G_APP_NAME_OKC
1617 	  ,P_msg_name	   => G_REQUIRED_VALUE
1618 	  ,P_token1	   => G_COL_NAME_TOKEN
1619 	  ,P_token1_value  => Lx_ExcepionMsg);
1620 
1621         Lx_Return_Status  := G_RET_STS_ERROR;
1622 
1623       END IF;
1624 
1625       X_Result            := Lx_Result;
1626       X_Return_Status     := Lx_Return_Status;
1627 
1628     WHEN OTHERS THEN
1629 
1630       IF Lx_Csr_RTL_Line%ISOPEN THEN
1631         CLOSE Lx_Csr_RTL_Line;
1632       END IF;
1633 
1634       OKC_API.SET_MESSAGE
1635         (P_App_Name	  => G_APP_NAME_OKC
1636 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
1637 	,P_Token1	  => G_SQLCODE_TOKEN
1638 	,P_Token1_Value	  => SQLCODE
1639 	,P_Token2	  => G_SQLERRM_TOKEN
1640 	,P_Token2_Value   => SQLERRM);
1641 
1642       OKC_API.SET_MESSAGE
1643         (P_App_Name	  => G_APP_NAME_OKC
1644 	,P_Msg_Name	  => G_DEBUG_TOKEN
1645 	,P_Token1	  => G_PACKAGE_TOKEN
1646 	,P_Token1_Value	  => G_PKG_NAME
1647 	,P_Token2	  => G_PROGRAM_TOKEN
1648 	,P_Token2_Value   => 'Get_BP_ReactResolTime_Line');
1649 
1650      X_Result            := G_FALSE;
1651      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
1652 
1653   END Get_BP_ReactResolTime_Line;
1654 
1655 -----------------------------------------------------------------------------------------------------------------------
1656 
1657   PROCEDURE Get_Cont_Effective_Dates
1658     (P_SVL_Start          IN DATE
1659     ,P_SVL_End            IN DATE
1660     ,P_CVL_Start          IN DATE
1661     ,P_CVL_End            IN DATE
1662     ,P_BPL_Start          IN DATE
1663     ,P_BPL_End            IN DATE
1664     ,P_RTL_Start          IN DATE
1665     ,P_RTL_End            IN DATE
1666     ,P_Set_ExcepionStack  IN  Gx_Boolean
1667     ,X_Cont_EffStart      out nocopy DATE
1668     ,X_Cont_EffEnd        out nocopy DATE
1669     ,X_Result             out nocopy Gx_Boolean
1670     ,X_Return_Status      out nocopy Gx_Ret_Sts)
1671   IS
1672 
1673     CURSOR Lx_Csr_RTL_EffDates(Cd_SVL_Start IN DATE
1674                               ,Cd_SVL_End   IN DATE
1675                               ,Cd_CVL_Start IN DATE
1676                               ,Cd_CVL_End   IN DATE
1677                               ,Cd_BPL_Start IN DATE
1678                               ,Cd_BPL_End   IN DATE
1679                               ,Cd_RTL_Start IN DATE
1680                               ,Cd_RTL_End   IN DATE)
1681     IS
1682       SELECT MAX(Start_Date), MIN(End_Date)
1683         FROM ( SELECT Cd_SVL_Start Start_Date, Cd_SVL_End End_Date FROM DUAL
1684                UNION
1685                SELECT Cd_CVL_Start Start_Date, Cd_CVL_End End_Date FROM DUAL
1686                UNION
1687                SELECT Cd_BPL_Start Start_Date, Cd_BPL_End End_Date FROM DUAL
1688                UNION
1689                SELECT Cd_RTL_Start Start_Date, Cd_RTL_End End_Date FROM DUAL);
1690 
1691     Ld_SVL_Start          CONSTANT DATE := P_SVL_Start;
1692     Ld_SVL_End            CONSTANT DATE := P_SVL_End;
1693     Ld_CVL_Start          CONSTANT DATE := P_CVL_Start;
1694     Ld_CVL_End            CONSTANT DATE := P_CVL_End;
1695     Ld_BPL_Start          CONSTANT DATE := P_BPL_Start;
1696     Ld_BPL_End            CONSTANT DATE := P_BPL_End;
1697     Ld_RTL_Start          CONSTANT DATE := P_RTL_Start;
1698     Ld_RTL_End            CONSTANT DATE := P_RTL_End ;
1699 
1700     Lx_Set_ExcepionStack  CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1701 
1702     Ld_Cont_EffStart      DATE;
1703     Ld_Cont_EffEnd        DATE;
1704     Lx_Result             Gx_Boolean;
1705     Lx_Return_Status      Gx_Ret_Sts;
1706 
1707     Lx_Msg_TokenVal       Gx_ExceptionMsg;
1708 
1709     L_EXCEP_NO_DATA_FOUND EXCEPTION;
1710     L_EXCEP_NO_EFF_DATE   EXCEPTION;
1711 
1712   BEGIN
1713 
1714     Lx_Result             := G_TRUE;
1715     Lx_Return_Status      := G_RET_STS_SUCCESS;
1716 
1717     OPEN Lx_Csr_RTL_EffDates(Ld_SVL_Start,Ld_SVL_End,Ld_CVL_Start,Ld_CVL_End
1718                             ,Ld_BPL_Start,Ld_BPL_End,Ld_RTL_Start,Ld_RTL_End);
1719 
1720     FETCH Lx_Csr_RTL_EffDates INTO Ld_Cont_EffStart,Ld_Cont_EffEnd;
1721 
1722     IF Lx_Csr_RTL_EffDates%NOTFOUND THEN
1723 
1724       Lx_Msg_TokenVal     := 'Contract - Effectivity Dates';
1725       RAISE L_EXCEP_NO_DATA_FOUND;
1726 
1727     ELSE
1728 
1729       Lx_Msg_TokenVal   := 'Contract - Effective Start Date';
1730 
1731       Validate_Required_DateValue
1732         (P_Date_Value           => Ld_Cont_EffStart
1733         ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
1734         ,P_ExcepionMsg          => Lx_Msg_TokenVal
1735         ,X_Result               => Lx_result
1736         ,X_Return_Status   	=> Lx_Return_Status);
1737 
1738       IF Lx_Result <> G_TRUE  THEN
1739         RAISE L_EXCEP_NO_EFF_DATE;
1740       END IF;
1741 
1742       Lx_Msg_TokenVal   := 'Contract - Effective End Date';
1743 
1744       Validate_Required_DateValue
1745         (P_Date_Value           => Ld_Cont_EffEnd
1746         ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
1747         ,P_ExcepionMsg          => Lx_Msg_TokenVal
1748         ,X_Result               => Lx_result
1749         ,X_Return_Status   	=> Lx_Return_Status);
1750 
1751       IF Lx_Result <> G_TRUE  THEN
1752         RAISE L_EXCEP_NO_EFF_DATE;
1753       END IF;
1754 
1755     END IF;
1756 
1757     CLOSE Lx_Csr_RTL_EffDates;
1758 
1759     X_Cont_EffStart      := Ld_Cont_EffStart;
1760     X_Cont_EffEnd        := Ld_Cont_EffEnd;
1761     X_Result             := Lx_Result;
1762     X_Return_Status      := Lx_Return_Status;
1763 
1764   EXCEPTION
1765 
1766     WHEN L_EXCEP_NO_DATA_FOUND THEN
1767 
1768       IF Lx_Csr_RTL_EffDates%ISOPEN THEN
1769         CLOSE Lx_Csr_RTL_EffDates;
1770       END IF;
1771 
1772       Lx_Result           := G_FALSE;
1773 
1774       IF Lx_Set_ExcepionStack = G_TRUE THEN
1775 
1776         OKC_API.SET_MESSAGE
1777           (P_app_name	   => G_APP_NAME_OKC
1778 	  ,P_msg_name	   => G_REQUIRED_VALUE
1779           ,P_token1	   => G_COL_NAME_TOKEN
1780 	  ,P_token1_value  => Lx_Msg_TokenVal);
1781 
1782         Lx_Return_Status    := G_RET_STS_ERROR;
1783 
1784       END IF;
1785 
1786       X_Result             := Lx_Result;
1787       X_Return_Status      := Lx_Return_Status;
1788 
1789     WHEN L_EXCEP_NO_EFF_DATE THEN
1790 
1791       IF Lx_Csr_RTL_EffDates%ISOPEN THEN
1792         CLOSE Lx_Csr_RTL_EffDates;
1793       END IF;
1794 
1795       X_Result             := Lx_Result;
1796       X_Return_Status      := Lx_Return_Status;
1797 
1798     WHEN OTHERS THEN
1799 
1800       IF Lx_Csr_RTL_EffDates%ISOPEN THEN
1801         CLOSE Lx_Csr_RTL_EffDates;
1802       END IF;
1803 
1804       OKC_API.SET_MESSAGE
1805         (P_App_Name	  => G_APP_NAME_OKC
1806 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
1807 	,P_Token1	  => G_SQLCODE_TOKEN
1808 	,P_Token1_Value	  => SQLCODE
1809 	,P_Token2	  => G_SQLERRM_TOKEN
1810 	,P_Token2_Value   => SQLERRM);
1811 
1812       OKC_API.SET_MESSAGE
1813         (P_App_Name	  => G_APP_NAME_OKC
1814 	,P_Msg_Name	  => G_DEBUG_TOKEN
1815 	,P_Token1	  => G_PACKAGE_TOKEN
1816 	,P_Token1_Value	  => G_PKG_NAME
1817 	,P_Token2	  => G_PROGRAM_TOKEN
1818 	,P_Token2_Value   => 'Get_Cont_Effective_Dates');
1819 
1820      X_Result            := G_FALSE;
1821      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
1822 
1823   END Get_Cont_Effective_Dates;
1824 
1825 -----------------------------------------------------------------------------------------------------------------------*
1826     /*vgujarat - modified for access hour ER 9675504*/
1827   PROCEDURE Get_BP_Cover_Times
1828     (P_BP_CVTLine_Id	  IN  Gx_OKS_Id
1829     ,P_Request_Date       IN  DATE
1830     ,P_CovDay_DispFmt     IN  VARCHAR2
1831     ,P_Set_ExcepionStack  IN  Gx_Boolean
1832     ,X_BP_CovTimes        out nocopy Gt_Bp_CoverTimes
1833     ,X_Result             out nocopy Gx_Boolean
1834     ,X_Return_Status      out nocopy Gx_Ret_Sts
1835     ,P_cust_id                  IN NUMBER DEFAULT NULL
1836     ,P_cust_site_id             IN NUMBER DEFAULT NULL
1837     ,P_cust_loc_id              IN NUMBER DEFAULT NULL)
1838   IS
1839 
1840     CURSOR Lx_Csr_BP_CovTimes(Cx_BP_CVTLine_Id IN Gx_OKS_Id,
1841                               Cx_sunday_flag     in varchar2,
1842                               Cx_monday_flag     in varchar2,
1843                               Cx_tuesday_flag    in varchar2,
1844                               Cx_wednesday_flag  in varchar2,
1845                               Cx_thursday_flag   in varchar2,
1846                               Cx_friday_flag     in varchar2,
1847                               Cx_saturday_flag   in varchar2)
1848      IS
1849     SELECT LPAD(TO_CHAR(CVT.START_HOUR), 2, '0')||LPAD(TO_CHAR(CVT.START_MINUTE), 2, '0') BP_Cover_From
1850             ,LPAD(TO_CHAR(CVT.END_HOUR), 2, '0')||LPAD(TO_CHAR(CVT.END_MINUTE), 2, '0') BP_Cover_To
1851             ,((CVT.START_HOUR)*60+(CVT.START_MINUTE)) BP_Cover_From_num
1852     FROM  Oks_Coverage_Times CVT
1853     WHERE CVT.cov_tze_line_id        =  Cx_BP_CVTLine_Id
1854     And (
1855         decode(Cx_sunday_flag,'Y',CVT.sunday_yn,'N','#')        =      decode(Cx_sunday_flag,'Y','Y','N','#')
1856     and decode(Cx_monday_flag,'Y', CVT.monday_yn,'N','#')       =      decode(Cx_monday_flag,'Y','Y','N','#')
1857     and decode(Cx_tuesday_flag,'Y', CVT.tuesday_yn,'N','#')     =      decode(Cx_tuesday_flag,'Y','Y','N','#')
1858     and decode(Cx_wednesday_flag,'Y', CVT.wednesday_yn,'N','#') =      decode(Cx_wednesday_flag,'Y','Y','N','#')
1859     and decode(Cx_thursday_flag,'Y', CVT.thursday_yn,'N','#')   =      decode(Cx_thursday_flag,'Y','Y','N','#')
1860     and decode(Cx_friday_flag,'Y', CVT.friday_yn,'N','#')       =      decode(Cx_friday_flag,'Y','Y','N','#')
1861     and decode(Cx_saturday_flag,'Y', CVT.saturday_yn,'N','#')   =      decode(Cx_saturday_flag,'Y','Y','N','#')
1862 	    )
1863     order by BP_Cover_From_num;
1864 
1865 
1866     Lx_BP_CVTLine_Id      CONSTANT Gx_OKS_Id := P_BP_CVTLine_Id;
1867     Ld_Request_Date       CONSTANT DATE := P_Request_Date;
1868     Lv_CovDay_DispFmt     CONSTANT VARCHAR2(15) := P_CovDay_DispFmt;
1869     Lx_Set_ExcepionStack  CONSTANT Gx_Boolean := P_Set_ExcepionStack;
1870 
1871     /*vgujarat - modified for access hour ER 9675504*/
1872     Lx_cust_id                 CONSTANT NUMBER              := P_cust_id;
1873     Lx_cust_site_id            CONSTANT NUMBER              := P_cust_site_id;
1874     Lx_cust_loc_id             CONSTANT NUMBER              := P_cust_loc_id;
1875 
1876     Lx_BP_CovTimes        Gt_Bp_CoverTimes;
1877     Lx_Result             Gx_Boolean;
1878     Lx_Return_Status      Gx_Ret_Sts;
1879     Lx_ExcepionMsg        Gx_ExceptionMsg;
1880 
1881     Li_TableIdx           BINARY_INTEGER;
1882     Li_RowCount           INTEGER(10);
1883 
1884     Lx_Request_date_Num   number;
1885 
1886     -- Added by JVARGHES
1887 
1888     Ld_Run_Date              DATE;
1889     Ln_CoverDay_Num          NUMBER;
1890     Lv_CoverDay_NLS_Char     VARCHAR2(30);
1891     Lv_CoverDay_USA_DY_Char  VARCHAR2(30);
1892     Ln_ReqDay_Relative       NUMBER;
1893     --
1894 
1895     Lx_sunday_flag        varchar2(1);
1896     Lx_monday_flag        varchar2(1);
1897     Lx_tuesday_flag       varchar2(1);
1898     Lx_wednesday_flag     varchar2(1);
1899     Lx_thursday_flag      varchar2(1);
1900     Lx_friday_flag        varchar2(1);
1901     Lx_saturday_flag      varchar2(1);
1902 
1903     week_ctr              number;
1904 
1905     L_EXCEP_NO_COVER_TIME  EXCEPTION;
1906 
1907 /*vgujarat - modified for access hour ER 9675504*/
1908 
1909 	l_access_hours CSF_MAP_ACC_HRS_PKG.access_hours_rec;
1910 
1911 	l_sw_first_start varchar2(4);
1912 	l_sw_first_end varchar2(4);
1913 	l_sw_second_start varchar2(4);
1914 	l_sw_second_end varchar2(4);
1915 
1916 	l_ah_first_start_hrsmin varchar2(4);
1917 	l_ah_first_end_hrsmin varchar2(4);
1918 	l_ah_second_start_hrsmin varchar2(4);
1919 	l_ah_second_end_hrsmin varchar2(4);
1920 
1921 	l_day_first_start  varchar2(50);
1922 	l_day_first_end   varchar2(50);
1923 	l_day_second_start varchar2(50);
1924 	l_day_second_end  varchar2(50);
1925 
1926 	l_day varchar2(15);
1927 
1928 
1929 	TYPE ah_time_rec IS RECORD
1930 	    (access_day         INTEGER(1)
1931 	    ,first_start        VARCHAR2(4)
1932 	    ,first_end          VARCHAR2(4)
1933 	    ,second_start       VARCHAR2(4)
1934 	    ,second_end         VARCHAR2(4)
1935 	    );
1936 
1937 	TYPE ah_time_tbl_type IS TABLE OF ah_time_rec INDEX BY BINARY_INTEGER;
1938 
1939 	ah_time_tbl ah_time_tbl_type ;
1940 
1941 		TYPE ah_window_rec IS RECORD
1942 	    (ah_cover_from        VARCHAR2(4)
1943 	    ,ah_cover_to          VARCHAR2(4)
1944 	    );
1945 
1946 	TYPE ah_window_tbl_type IS TABLE OF ah_window_rec INDEX BY BINARY_INTEGER;
1947 
1948 	ah_window_tbl ah_window_tbl_type ;
1949 
1950 	temp_start       VARCHAR2(4);
1951     temp_end         VARCHAR2(4);
1952     final_bp_cover_from VARCHAR2(4);
1953     final_bp_cover_to   VARCHAR2(4);
1954 
1955  /*vgujarat - modified for access hour ER 9675504*/
1956 
1957   BEGIN
1958 
1959     Lx_Result             := G_TRUE;
1960     Lx_Return_Status      := G_RET_STS_SUCCESS;
1961 
1962     Li_RowCount           := 0;
1963 
1964     Lx_sunday_flag        := 'N';
1965     Lx_monday_flag        := 'N';
1966     Lx_tuesday_flag       := 'N';
1967     Lx_wednesday_flag     := 'N';
1968     Lx_thursday_flag      := 'N';
1969     Lx_friday_flag        := 'N';
1970     Lx_saturday_flag      := 'N';
1971 
1972     week_ctr              := 0;
1973 
1974     Li_TableIdx  := 0;
1975 
1976    while week_ctr < 7 loop
1977 
1978 /* -- Commented out JVARGHES on Mar 07, 2005.
1979    -- for the resolution of Bug# 4191909.
1980 
1981     Lx_Request_date_Num := to_number(to_char(Ld_Request_Date+week_ctr,'D'));
1982 
1983     Lx_sunday_flag        := 'N';
1984     Lx_monday_flag        := 'N';
1985     Lx_tuesday_flag       := 'N';
1986     Lx_wednesday_flag     := 'N';
1987     Lx_thursday_flag      := 'N';
1988     Lx_friday_flag        := 'N';
1989     Lx_saturday_flag      := 'N';
1990 
1991     if Lx_Request_date_Num = 1 then
1992          Lx_sunday_flag      := 'Y';
1993     elsif Lx_Request_date_Num = 2 then
1994          Lx_monday_flag      := 'Y';
1995     elsif Lx_Request_date_Num = 3 then
1996          Lx_tuesday_flag     := 'Y';
1997     elsif Lx_Request_date_Num = 4 then
1998          Lx_wednesday_flag   := 'Y';
1999     elsif Lx_Request_date_Num = 5 then
2000          Lx_thursday_flag    := 'Y';
2001     elsif Lx_Request_date_Num = 6 then
2002          Lx_friday_flag      := 'Y';
2003     elsif Lx_Request_date_Num = 7 then
2004          Lx_saturday_flag    := 'Y';
2005     end if;
2006 */
2007 
2008    -- Added by JVARGHES on Mar 07, 2005.
2009    -- for the resolution of Bug# 4191909.
2010 
2011     Lx_Sunday_Flag        := 'N';
2012     Lx_Monday_Flag        := 'N';
2013     Lx_Tuesday_Flag       := 'N';
2014     Lx_Wednesday_Flag     := 'N';
2015     Lx_Thursday_Flag      := 'N';
2016     Lx_Friday_Flag        := 'N';
2017     Lx_Saturday_Flag      := 'N';
2018 
2019     Ld_Run_Date           := Ld_Request_Date+Week_Ctr;
2020     Ln_CoverDay_Num       := TO_NUMBER(TO_CHAR(Ld_Run_Date,'D'));
2021     Lv_CoverDay_NLS_Char  := TO_CHAR(Ld_Run_Date,Lv_CovDay_DispFmt);
2022     Lv_CoverDay_USA_DY_Char  := TO_CHAR(Ld_Run_Date,'DY','NLS_DATE_LANGUAGE = AMERICAN');
2023 
2024     IF Lv_CoverDay_USA_DY_Char = 'SUN' THEN
2025        Lx_Sunday_Flag      := 'Y';
2026     ELSIF Lv_CoverDay_USA_DY_Char = 'MON' THEN
2027        Lx_Monday_Flag      := 'Y';
2028     ELSIF Lv_CoverDay_USA_DY_Char = 'TUE' THEN
2029        Lx_Tuesday_Flag     := 'Y';
2030     ELSIF Lv_CoverDay_USA_DY_Char = 'WED' THEN
2031        Lx_Wednesday_Flag   := 'Y';
2032     ELSIF Lv_CoverDay_USA_DY_Char = 'THU' THEN
2033        Lx_Thursday_Flag    := 'Y';
2034     ELSIF Lv_CoverDay_USA_DY_Char = 'FRI' THEN
2035        Lx_Friday_Flag      := 'Y';
2036     ELSIF Lv_CoverDay_USA_DY_Char = 'SAT' THEN
2037        Lx_Saturday_Flag    := 'Y';
2038     END IF;
2039 
2040     Ln_ReqDay_Relative     := Week_Ctr+1;
2041 
2042    --
2043 
2044 /*vgujarat - modified for access hour ER 9675504*/
2045 ----------------------------Access Hours Code Change starts here --------------------------------------
2046 /*
2047 Reg :The application should take the access hours into account when calculating SLAs on the SR.
2048 
2049 The Respond by and Resolve by dates should be pushed out when customer site is unavailable between the time the service request is logged and the Respond by time.
2050 
2051 1.Get the Access Hour information from the api CSF_MAP_ACC_HRS_PKG.Query_ROW
2052 2.For each and every day concatenate the hour and minute portion of first_start,first_end,second_start and second_end
2053     ex) if 09:30 = > 0930
2054 3.Calculate the Service Window which is derived from the covered time and the access hours
2055 4.Pass this calculated service window to the OUT variable X_BP_CovTimes
2056 
2057 */
2058 
2059 
2060 -- If the newly added profile 'Service: Include Access Hours in SLA' is set to Yes then access hours is taken into consideration
2061 
2062    If (fnd_profile.value('CS_SR_INCLUDE_ACCESS_HOURS_IN_SLA') = 'Y') AND (Lx_cust_id IS NOT NULL OR Lx_cust_site_id IS NOT NULL OR Lx_cust_loc_id IS NOT NULL) THEN
2063 
2064 
2065 
2066     -- Calling the Field Service API to get the Access Hours detail
2067     CSF_MAP_ACC_HRS_PKG.Query_ROW(
2068                               p_customer_id          => Lx_cust_id,
2069 			      p_customer_site_id     => Lx_cust_site_id,
2070 			      p_customer_location_id => Lx_cust_loc_id,
2071 			      x_access_hours         => l_access_hours
2072 			      );
2073 
2074     FOR i in 1..7 LOOP
2075 
2076 
2077 	if i=1 then
2078 	   l_day := 'SUNDAY';
2079 
2080 	    l_ah_first_start_hrsmin  := to_char(l_access_hours.SUNDAY_FIRST_START,'hh24') ||
2081                  	                    to_char(l_access_hours.SUNDAY_FIRST_START,'mi');
2082 
2083 		l_ah_first_end_hrsmin    := to_char(l_access_hours.SUNDAY_FIRST_END,'hh24') ||
2084 					    to_char(l_access_hours.SUNDAY_FIRST_END,'mi');
2085 
2086 
2087 		l_ah_second_start_hrsmin := to_char(l_access_hours.SUNDAY_SECOND_START,'hh24') ||
2088 					    to_char(l_access_hours.SUNDAY_SECOND_START,'mi');
2089 
2090 		l_ah_second_end_hrsmin   := to_char(l_access_hours.SUNDAY_SECOND_END,'hh24') ||
2091 					    to_char(l_access_hours.SUNDAY_SECOND_END,'mi');
2092 
2093 		   ah_time_tbl(i).access_day     := i;
2094 		   ah_time_tbl(i).first_start    := l_ah_first_start_hrsmin;
2095 		   ah_time_tbl(i).first_end      := l_ah_first_end_hrsmin;
2096 		   ah_time_tbl(i).second_start   := l_ah_second_start_hrsmin;
2097 		   ah_time_tbl(i).second_end     := l_ah_second_end_hrsmin;
2098 
2099 	end if;
2100 
2101 	if i=2 then l_day := 'MONDAY';
2102 
2103 	    l_ah_first_start_hrsmin  := to_char(l_access_hours.MONDAY_FIRST_START,'hh24') ||
2104                  	                    to_char(l_access_hours.MONDAY_FIRST_START,'mi');
2105 
2106 		l_ah_first_end_hrsmin    := to_char(l_access_hours.MONDAY_FIRST_END,'hh24') ||
2107 					    to_char(l_access_hours.MONDAY_FIRST_END,'mi');
2108 
2109 
2110 		l_ah_second_start_hrsmin := to_char(l_access_hours.MONDAY_SECOND_START,'hh24') ||
2111 					    to_char(l_access_hours.MONDAY_SECOND_START,'mi');
2112 
2113 		l_ah_second_end_hrsmin   := to_char(l_access_hours.MONDAY_SECOND_END,'hh24') ||
2114 					    to_char(l_access_hours.MONDAY_SECOND_END,'mi');
2115 
2116 		   ah_time_tbl(i).access_day     := i;
2117 		   ah_time_tbl(i).first_start    := l_ah_first_start_hrsmin;
2118 		   ah_time_tbl(i).first_end      := l_ah_first_end_hrsmin;
2119 		   ah_time_tbl(i).second_start   := l_ah_second_start_hrsmin;
2120 		   ah_time_tbl(i).second_end     := l_ah_second_end_hrsmin;
2121 
2122 	end if;
2123 
2124 	if i=3 then l_day := 'TUESDAY';
2125 
2126 	        l_ah_first_start_hrsmin  := to_char(l_access_hours.TUESDAY_FIRST_START,'hh24') ||
2127                  	                    to_char(l_access_hours.TUESDAY_FIRST_START,'mi');
2128 
2129 		l_ah_first_end_hrsmin    := to_char(l_access_hours.TUESDAY_FIRST_END,'hh24') ||
2130 					    to_char(l_access_hours.TUESDAY_FIRST_END,'mi');
2131 
2132 
2133 		l_ah_second_start_hrsmin := to_char(l_access_hours.TUESDAY_SECOND_START,'hh24') ||
2134 					    to_char(l_access_hours.TUESDAY_SECOND_START,'mi');
2135 
2136 		l_ah_second_end_hrsmin   := to_char(l_access_hours.TUESDAY_SECOND_END,'hh24') ||
2137 					    to_char(l_access_hours.TUESDAY_SECOND_END,'mi');
2138 
2139 		   ah_time_tbl(i).access_day     := i;
2140 		   ah_time_tbl(i).first_start    := l_ah_first_start_hrsmin;
2141 		   ah_time_tbl(i).first_end      := l_ah_first_end_hrsmin;
2142 		   ah_time_tbl(i).second_start   := l_ah_second_start_hrsmin;
2143 		   ah_time_tbl(i).second_end     := l_ah_second_end_hrsmin;
2144 
2145 	end if;
2146 
2147 	if i=4 then l_day := 'WEDNESDAY';
2148 	        l_ah_first_start_hrsmin  := to_char(l_access_hours.WEDNESDAY_FIRST_START,'hh24') ||
2149                  	                    to_char(l_access_hours.WEDNESDAY_FIRST_START,'mi');
2150 
2151 		l_ah_first_end_hrsmin    := to_char(l_access_hours.WEDNESDAY_FIRST_END,'hh24') ||
2152 					    to_char(l_access_hours.WEDNESDAY_FIRST_END,'mi');
2153 
2154 
2155 		l_ah_second_start_hrsmin := to_char(l_access_hours.WEDNESDAY_SECOND_START,'hh24') ||
2156 					    to_char(l_access_hours.WEDNESDAY_SECOND_START,'mi');
2157 
2158 		l_ah_second_end_hrsmin   := to_char(l_access_hours.WEDNESDAY_SECOND_END,'hh24') ||
2159 					    to_char(l_access_hours.WEDNESDAY_SECOND_END,'mi');
2160 
2161 		   ah_time_tbl(i).access_day     := i;
2162 		   ah_time_tbl(i).first_start    := l_ah_first_start_hrsmin;
2163 		   ah_time_tbl(i).first_end      := l_ah_first_end_hrsmin;
2164 		   ah_time_tbl(i).second_start   := l_ah_second_start_hrsmin;
2165 		   ah_time_tbl(i).second_end     := l_ah_second_end_hrsmin;
2166 
2167 	end if;
2168 
2169 	if i=5 then l_day := 'THURSDAY';
2170 	       l_ah_first_start_hrsmin  := to_char(l_access_hours.THURSDAY_FIRST_START,'hh24') ||
2171                  	                    to_char(l_access_hours.THURSDAY_FIRST_START,'mi');
2172 
2173 		l_ah_first_end_hrsmin    := to_char(l_access_hours.THURSDAY_FIRST_END,'hh24') ||
2174 					    to_char(l_access_hours.THURSDAY_FIRST_END,'mi');
2175 
2176 
2177 		l_ah_second_start_hrsmin := to_char(l_access_hours.THURSDAY_SECOND_START,'hh24') ||
2178 					    to_char(l_access_hours.THURSDAY_SECOND_START,'mi');
2179 
2180 		l_ah_second_end_hrsmin   := to_char(l_access_hours.THURSDAY_SECOND_END,'hh24') ||
2181 					    to_char(l_access_hours.THURSDAY_SECOND_END,'mi');
2182 
2183 		   ah_time_tbl(i).access_day     := i;
2184 		   ah_time_tbl(i).first_start    := l_ah_first_start_hrsmin;
2185 		   ah_time_tbl(i).first_end      := l_ah_first_end_hrsmin;
2186 		   ah_time_tbl(i).second_start   := l_ah_second_start_hrsmin;
2187 		   ah_time_tbl(i).second_end     := l_ah_second_end_hrsmin;
2188 
2189 	end if;
2190 
2191 	if i=6 then l_day := 'FRIDAY';
2192 	        l_ah_first_start_hrsmin  := to_char(l_access_hours.FRIDAY_FIRST_START,'hh24') ||
2193                  	                    to_char(l_access_hours.FRIDAY_FIRST_START,'mi');
2194 
2195 		l_ah_first_end_hrsmin    := to_char(l_access_hours.FRIDAY_FIRST_END,'hh24') ||
2196 					    to_char(l_access_hours.FRIDAY_FIRST_END,'mi');
2197 
2198 
2199 		l_ah_second_start_hrsmin := to_char(l_access_hours.FRIDAY_SECOND_START,'hh24') ||
2200 					    to_char(l_access_hours.FRIDAY_SECOND_START,'mi');
2201 
2202 		l_ah_second_end_hrsmin   := to_char(l_access_hours.FRIDAY_SECOND_END,'hh24') ||
2203 					    to_char(l_access_hours.FRIDAY_SECOND_END,'mi');
2204 
2205 		   ah_time_tbl(i).access_day     := i;
2206 		   ah_time_tbl(i).first_start    := l_ah_first_start_hrsmin;
2207 		   ah_time_tbl(i).first_end      := l_ah_first_end_hrsmin;
2208 		   ah_time_tbl(i).second_start   := l_ah_second_start_hrsmin;
2209 		   ah_time_tbl(i).second_end     := l_ah_second_end_hrsmin;
2210 	end if;
2211 
2212 	if i=7 then l_day := 'SATURDAY';
2213 
2214 	        l_ah_first_start_hrsmin  := to_char(l_access_hours.SATURDAY_FIRST_START,'hh24') ||
2215                  	                    to_char(l_access_hours.SATURDAY_FIRST_START,'mi');
2216 
2217 		l_ah_first_end_hrsmin    := to_char(l_access_hours.SATURDAY_FIRST_END,'hh24') ||
2218 					    to_char(l_access_hours.SATURDAY_FIRST_END,'mi');
2219 
2220 
2221 		l_ah_second_start_hrsmin := to_char(l_access_hours.SATURDAY_SECOND_START,'hh24') ||
2222 					    to_char(l_access_hours.SATURDAY_SECOND_START,'mi');
2223 
2224 		l_ah_second_end_hrsmin   := to_char(l_access_hours.SATURDAY_SECOND_END,'hh24') ||
2225 					    to_char(l_access_hours.SATURDAY_SECOND_END,'mi');
2226 
2227 		   ah_time_tbl(i).access_day     := i;
2228 		   ah_time_tbl(i).first_start    := l_ah_first_start_hrsmin;
2229 		   ah_time_tbl(i).first_end      := l_ah_first_end_hrsmin;
2230 		   ah_time_tbl(i).second_start   := l_ah_second_start_hrsmin;
2231 		   ah_time_tbl(i).second_end     := l_ah_second_end_hrsmin;
2232 	end if;
2233    END LOOP;
2234 
2235 
2236 
2237      FOR Idx IN Lx_Csr_BP_CovTimes(Lx_BP_CVTLine_Id,
2238                                    Lx_sunday_flag,Lx_monday_flag,Lx_tuesday_flag,
2239                                    Lx_wednesday_flag,Lx_thursday_flag,Lx_friday_flag,
2240                                    Lx_saturday_flag) LOOP
2241 
2242       Li_TableIdx    := Li_TableIdx + 1;
2243 
2244   --  Modified by JVARGHES on Mar 07, 2005.
2245   --  for the resolution of Bug# 4191909
2246 
2247   --  Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_Day       := to_char(Ld_Request_Date+week_ctr,Lv_CovDay_DispFmt); --Idx.BP_CoverDay_Char;
2248   --  Lx_BP_CovTimes(Li_TableIdx).Ri_Cover_Day       := Lx_Request_date_Num; --Idx.BP_CoverDay_Num;
2249   --  Lx_BP_CovTimes(Li_TableIdx).Ri_ReqDay_Relative := week_ctr+1; --Idx.BP_ReqDay_Ralative;
2250       /*access hour window to be considered*/
2251 	  /*logic starts here*/
2252 	  if Lx_sunday_flag = 'Y' then
2253 
2254 		   ah_window_tbl(1).ah_cover_from    := ah_time_tbl(1).first_start;
2255 		   ah_window_tbl(1).ah_cover_to      := ah_time_tbl(1).first_end;
2256 		   ah_window_tbl(2).ah_cover_from   := ah_time_tbl(1).second_start;
2257 		   ah_window_tbl(2).ah_cover_to     := ah_time_tbl(1).second_end;
2258 
2259       elsif Lx_monday_flag = 'Y' then
2260 	  	   ah_window_tbl(1).ah_cover_from    := ah_time_tbl(2).first_start;
2261 		   ah_window_tbl(1).ah_cover_to      := ah_time_tbl(2).first_end;
2262 		   ah_window_tbl(2).ah_cover_from   := ah_time_tbl(2).second_start;
2263 		   ah_window_tbl(2).ah_cover_to     := ah_time_tbl(2).second_end;
2264 
2265       elsif Lx_tuesday_flag = 'Y' then
2266 		   ah_window_tbl(1).ah_cover_from    := ah_time_tbl(3).first_start;
2267 		   ah_window_tbl(1).ah_cover_to      := ah_time_tbl(3).first_end;
2268 		   ah_window_tbl(2).ah_cover_from   := ah_time_tbl(3).second_start;
2269 		   ah_window_tbl(2).ah_cover_to     := ah_time_tbl(3).second_end;
2270 
2271        elsif Lx_wednesday_flag = 'Y' then
2272 		   ah_window_tbl(1).ah_cover_from    := ah_time_tbl(4).first_start;
2273 		   ah_window_tbl(1).ah_cover_to      := ah_time_tbl(4).first_end;
2274 		   ah_window_tbl(2).ah_cover_from   := ah_time_tbl(4).second_start;
2275 		   ah_window_tbl(2).ah_cover_to     := ah_time_tbl(4).second_end;
2276 
2277        elsif Lx_thursday_flag = 'Y' then
2278 		   ah_window_tbl(1).ah_cover_from    := ah_time_tbl(5).first_start;
2279 		   ah_window_tbl(1).ah_cover_to      := ah_time_tbl(5).first_end;
2280 		   ah_window_tbl(2).ah_cover_from   := ah_time_tbl(5).second_start;
2281 		   ah_window_tbl(2).ah_cover_to     := ah_time_tbl(5).second_end;
2282 
2283        elsif Lx_friday_flag = 'Y' then
2284 		   ah_window_tbl(1).ah_cover_from    := ah_time_tbl(6).first_start;
2285 		   ah_window_tbl(1).ah_cover_to      := ah_time_tbl(6).first_end;
2286 		   ah_window_tbl(2).ah_cover_from   := ah_time_tbl(6).second_start;
2287 		   ah_window_tbl(2).ah_cover_to     := ah_time_tbl(6).second_end;
2288 
2289         elsif Lx_saturday_flag = 'Y' then
2290 		   ah_window_tbl(1).ah_cover_from    := ah_time_tbl(7).first_start;
2291 		   ah_window_tbl(1).ah_cover_to      := ah_time_tbl(7).first_end;
2292 		   ah_window_tbl(2).ah_cover_from   := ah_time_tbl(7).second_start;
2293 		   ah_window_tbl(2).ah_cover_to     := ah_time_tbl(7).second_end;
2294         end if;
2295 
2296         for j in ah_window_tbl.first..ah_window_tbl.last loop
2297           temp_start := Greatest(Idx.bp_cover_from,ah_window_tbl(j).ah_cover_from);
2298             if ah_window_tbl(j).ah_cover_from IS NOT NULL AND temp_start = ah_window_tbl(j).ah_cover_from then
2299                  if temp_start <= Idx.bp_cover_to then
2300                       final_bp_cover_from := temp_start;
2301 
2302                       temp_end := least(Idx.bp_cover_to,ah_window_tbl(j).ah_cover_to);
2303                       final_bp_cover_to := temp_end;
2304                   end if;
2305              else
2306                  if ah_window_tbl(j).ah_cover_to IS NOT NULL AND temp_start <= ah_window_tbl(j).ah_cover_to THEN
2307                      final_bp_cover_from := temp_start;
2308 
2309                      temp_end := least(Idx.bp_cover_to,ah_window_tbl(j).ah_cover_to);
2310                      final_bp_cover_to := temp_end;
2311                  end if;
2312               end if;
2313       IF final_bp_cover_from IS NOT NULL THEN
2314       Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_Day       := Lv_CoverDay_NLS_Char;
2315       Lx_BP_CovTimes(Li_TableIdx).Ri_Cover_Day       := Ln_CoverDay_Num;
2316       Lx_BP_CovTimes(Li_TableIdx).Ri_ReqDay_Relative := Ln_ReqDay_Relative;
2317       Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_From      := final_bp_cover_from;
2318       Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_To        := final_bp_cover_to;
2319       Lx_BP_CovTimes(Li_TableIdx).Rx_Cover_TZoneId   := null; -- Idx.BP_Tzone_Id; not required because already fetched
2320 
2321       Li_RowCount    := Li_TableIdx;
2322 
2323       final_bp_cover_from := NULL;
2324       final_bp_cover_to := NULL;
2325 
2326       END IF;
2327         end loop;
2328 
2329        /*logic ends here*/
2330 
2331      END LOOP;
2332 
2333    ELSE /*If fnd_profile.value('CS_SR_INCLUDE_ACCESS_HOURS_IN_SLA') = 'Yes'*/
2334         FOR Idx IN Lx_Csr_BP_CovTimes(Lx_BP_CVTLine_Id,
2335                                    Lx_sunday_flag,Lx_monday_flag,Lx_tuesday_flag,
2336                                    Lx_wednesday_flag,Lx_thursday_flag,Lx_friday_flag,
2337                                    Lx_saturday_flag) LOOP
2338 
2339       Li_TableIdx    := Li_TableIdx + 1;
2340 
2341   --  Modified by JVARGHES on Mar 07, 2005.
2342   --  for the resolution of Bug# 4191909
2343 
2344   --  Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_Day       := to_char(Ld_Request_Date+week_ctr,Lv_CovDay_DispFmt); --Idx.BP_CoverDay_Char;
2345   --  Lx_BP_CovTimes(Li_TableIdx).Ri_Cover_Day       := Lx_Request_date_Num; --Idx.BP_CoverDay_Num;
2346   --  Lx_BP_CovTimes(Li_TableIdx).Ri_ReqDay_Relative := week_ctr+1; --Idx.BP_ReqDay_Ralative;
2347 
2348 
2349       Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_Day       := Lv_CoverDay_NLS_Char;
2350       Lx_BP_CovTimes(Li_TableIdx).Ri_Cover_Day       := Ln_CoverDay_Num;
2351       Lx_BP_CovTimes(Li_TableIdx).Ri_ReqDay_Relative := Ln_ReqDay_Relative;
2352       Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_From      := Idx.BP_Cover_From;
2353       Lx_BP_CovTimes(Li_TableIdx).Rv_Cover_To        := Idx.BP_Cover_To;
2354       Lx_BP_CovTimes(Li_TableIdx).Rx_Cover_TZoneId   := null; -- Idx.BP_Tzone_Id; not required because already fetched
2355 
2356       Li_RowCount    := Li_TableIdx;
2357 
2358      END LOOP;
2359     END IF; /*If fnd_profile.value('CS_SR_INCLUDE_ACCESS_HOURS_IN_SLA') = 'Yes'*/
2360 /*vgujarat - modified for access hour ER 9675504*/
2361      week_ctr   := week_ctr+1;
2362 
2363     end loop;
2364 
2365     IF Li_RowCount = 0  THEN
2366 
2367       Lx_ExcepionMsg   := 'Cover Time';
2368       RAISE L_EXCEP_NO_COVER_TIME;
2369 
2370     END IF;
2371 
2372     X_BP_CovTimes    := Lx_BP_CovTimes;
2373     X_Result         := Lx_Result;
2374     X_Return_Status  := Lx_Return_Status;
2375 
2376   EXCEPTION
2377 
2378     WHEN L_EXCEP_NO_COVER_TIME THEN
2379 
2380       Lx_Result        := G_FALSE;
2381 
2382       IF Lx_Set_ExcepionStack = G_TRUE THEN
2383 
2384         OKC_API.SET_MESSAGE
2385           (P_App_Name	   => G_APP_NAME_OKC
2386 	  ,P_Msg_Name	   => G_REQUIRED_VALUE
2387 	  ,P_Token1	   => G_COL_NAME_TOKEN
2388 	  ,P_Token1_Value  => Lx_ExcepionMsg);
2389 
2390         Lx_Return_Status := G_RET_STS_ERROR;
2391 
2392       END IF;
2393 
2394       X_Result         := Lx_Result;
2395       X_Return_Status  := Lx_Return_Status;
2396 
2397     WHEN OTHERS THEN
2398 
2399       OKC_API.SET_MESSAGE
2400         (P_App_Name	  => G_APP_NAME_OKC
2401 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
2402 	,P_Token1	  => G_SQLCODE_TOKEN
2403 	,P_Token1_Value	  => SQLCODE
2404 	,P_Token2	  => G_SQLERRM_TOKEN
2405 	,P_Token2_Value   => SQLERRM);
2406 
2407       OKC_API.SET_MESSAGE
2408         (P_App_Name	  => G_APP_NAME_OKC
2409 	,P_Msg_Name	  => G_DEBUG_TOKEN
2410 	,P_Token1	  => G_PACKAGE_TOKEN
2411 	,P_Token1_Value	  => G_PKG_NAME
2412 	,P_Token2	  => G_PROGRAM_TOKEN
2413 	,P_Token2_Value   => 'Get_BP_Cover_Times');
2414 
2415      X_Result            := G_FALSE;
2416      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
2417 
2418   END Get_BP_Cover_Times;
2419 
2420 -----------------------------------------------------------------------------------------------------------------------*
2421 
2422   PROCEDURE Get_BP_Reaction_Times
2423     (P_RTL_Line_Id        IN  Gx_OKS_Id
2424     ,P_Request_Date       IN  DATE
2425     ,P_TimeType_Category  IN  Varchar2 --Gx_TimeType_Category
2426     ,P_ReactDay_DispFmt   IN  VARCHAR2
2427     ,P_Set_ExcepionStack  IN  Gx_Boolean
2428     ,X_Reaction_Attribs   out nocopy GT_Bp_Reactions
2429     ,X_Result             out nocopy Gx_Boolean
2430     ,X_Return_Status      out nocopy Gx_Ret_Sts)
2431   IS
2432 
2433     CURSOR Lx_Csr_React_Attribs(Cx_RTLLine_Id IN Gx_OKS_Id,Cx_TimeType_Category IN Varchar2)  IS
2434       SELECT OAT.SUN_DURATION SUN_DURATION,
2435              OAT.MON_DURATION MON_DURATION,
2436              OAT.TUE_DURATION TUE_DURATION,
2437              OAT.WED_DURATION WED_DURATION,
2438              OAT.THU_DURATION THU_DURATION,
2439              OAT.FRI_DURATION FRI_DURATION,
2440              OAT.SAT_DURATION SAT_DURATION,
2441              OAT.UOM_CODE UOM_CODE
2442        FROM Oks_action_time_types OATT
2443            ,Oks_action_times OAT
2444       WHERE OATT.Cle_Id = Cx_RTLLine_Id
2445         AND OATT.action_type_code = Cx_TimeType_Category
2446         AND OAT.cov_action_type_id = OATT.Id;
2447 
2448     -- Added by JVARGHES on Mar 07, 2005.
2449     -- for the resolution of Bug# 4191909.
2450     -- Created seperate Cursor for bug fix #5546615 hmnair
2451     /* CURSOR c_NLS_Day(Cd_Request_Date IN DATE, Cv_USA_DY_Char IN VARCHAR2) IS
2452       SELECT TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'DY')React_Day_Char
2453             ,TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'D') React_Day_Num
2454             , DECODE(SIGN((TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D')))+1),1
2455                    ,TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D'))
2456                    ,TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Get_NLS_Day_Of_Week(Cv_USA_DY_Char)),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D')) + 7) ReqDay_Relative
2457       FROM DUAL; */
2458 
2459       CURSOR c_NLS_Day(Cd_Request_Date IN DATE, Cv_USA_DY_Char IN VARCHAR2) IS
2460       SELECT TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'DY')React_Day_Char
2461             ,TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'D') React_Day_Num
2462             , DECODE(SIGN((TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D')))+1),1
2463                    ,TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D'))
2464                    ,TO_NUMBER(TO_CHAR(NEXT_DAY(Cd_Request_Date,Cv_USA_DY_Char),'D')) - TO_NUMBER(TO_CHAR(Cd_Request_Date,'D')) + 7) ReqDay_Relative
2465       FROM DUAL;
2466 
2467 
2468     --
2469 
2470     Lx_RTL_Line_Id          CONSTANT Gx_OKS_Id := P_RTL_Line_Id;
2471     Ld_Request_Date         CONSTANT DATE := P_Request_Date;
2472     Lx_TimeType_Category    CONSTANT varchar2(30) := P_TimeType_Category;
2473     Lv_CovDay_DispFmt       CONSTANT VARCHAR2(15) := P_ReactDay_DispFmt;
2474     Lx_Set_ExcepionStack    CONSTANT Gx_Boolean := P_Set_ExcepionStack;
2475 
2476     Lx_Reaction_Attribs     GT_Bp_Reactions;
2477     Lx_Result               Gx_Boolean;
2478     Lx_Return_Status        Gx_Ret_Sts;
2479     Lx_ExcepionMsg          Gx_ExceptionMsg;
2480 
2481     Li_TableIdx             BINARY_INTEGER;
2482     Lx_Request_date_Num     number;
2483     Li_RowCount             INTEGER(10);
2484     week_ctr                number;
2485 
2486     -- Added by JVARGHES on Mar 07, 2005.
2487     -- for the resolution of Bug# 4191909.
2488 
2489     Lv_React_Day_NLS_Char   VARCHAR2(30);
2490     Ln_React_Day_Num        NUMBER;
2491     Ln_Req_Day_Relative     NUMBER;
2492 
2493     --
2494 
2495     Lx_Sort_Tab             GT_Bp_Reactions;
2496 
2497     Li_TableIdx_Out         BINARY_INTEGER;
2498     Li_TableIdx_In          BINARY_INTEGER;
2499 
2500     Lx_Temp_ReacAttribs     GR_Bp_Reaction;
2501 
2502     Lv_Composit_Val1        number;
2503     Lv_Composit_Val2        number;
2504 
2505     L_EXCEP_NO_REACT_TIME   EXCEPTION;
2506 
2507   BEGIN
2508 
2509     G_Rel_Sun  := Get_NLS_Day_Of_Week('SUN');
2510     G_Rel_Mon  := Get_NLS_Day_Of_Week('MON');
2511     G_Rel_Tue  := Get_NLS_Day_Of_Week('TUE');
2512     G_Rel_Wed  := Get_NLS_Day_Of_Week('WED');
2513     G_Rel_Thu  := Get_NLS_Day_Of_Week('THU');
2514     G_Rel_Fri  := Get_NLS_Day_Of_Week('FRI');
2515     G_Rel_Sat  := Get_NLS_Day_Of_Week('SAT');
2516 
2517     Lx_Result               := G_TRUE;
2518     Lx_Return_Status        := G_RET_STS_SUCCESS;
2519 
2520     Lx_Request_date_Num     := 0;
2521     Li_RowCount             := 0;
2522     week_ctr                := 0;
2523 
2524     Li_TableIdx := 0;
2525 
2526     Lx_Request_date_Num := to_number(to_char(Ld_Request_Date,'D'));
2527 
2528     FOR Idx IN Lx_Csr_React_Attribs(Lx_RTL_Line_Id,Lx_TimeType_Category)  LOOP
2529 
2530        if Idx.Sun_Duration is not null then
2531 
2532             Li_TableIdx   := Li_TableIdx + 1;
2533 
2534          -- Added by JVARGHES on Mar 07, 2005.
2535          -- for the resolution of Bug# 4191909.
2536 
2537             OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Sun);
2538             FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2539             CLOSE c_NLS_Day;
2540 
2541         --  Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day   := to_char(Ld_Request_Date-Lx_Request_date_Num+1,'DY'); --Idx.React_Day_Char;
2542             Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day   := Lv_React_Day_NLS_Char;
2543             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn  := Idx.Sun_Duration;
2544             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM   := Idx.UOM_Code;
2545         --  Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day   := 1; --Idx.React_Day_Num;
2546             Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day   := Ln_React_Day_Num;
2547             Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative := Ln_Req_Day_Relative;
2548 
2549         /*
2550             if Lx_Request_date_Num <= 1 then
2551                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 1-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2552             else
2553                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 7-(Lx_Request_date_Num-1);
2554             end if;
2555         */
2556 
2557        end if;
2558 
2559        if Idx.Mon_Duration is not null then
2560 
2561             Li_TableIdx   := Li_TableIdx + 1;
2562 
2563          -- Added by JVARGHES on Mar 07, 2005.
2564          -- for the resolution of Bug# 4191909.
2565 
2566             OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Mon);
2567             FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2568             CLOSE c_NLS_Day;
2569 
2570          -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := to_char(Ld_Request_Date-Lx_Request_date_Num+2,'DY'); --Idx.React_Day_Char;
2571             Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := Lv_React_Day_NLS_Char;
2572             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn       := Idx.Mon_Duration;
2573             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM        := Idx.UOM_Code;
2574          -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := 2; --Idx.React_Day_Num;
2575             Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := Ln_React_Day_Num;
2576             Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  :=  Ln_Req_Day_Relative;
2577 
2578          /*
2579             if Lx_Request_date_Num <= 2 then
2580                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 2-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2581             else
2582                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 7-(Lx_Request_date_Num-2);
2583             end if;
2584          */
2585 
2586        end if;
2587 
2588        if Idx.Tue_Duration is not null then
2589 
2590             Li_TableIdx   := Li_TableIdx + 1;
2591 
2592          -- Added by JVARGHES on Mar 07, 2005.
2593          -- for the resolution of Bug# 4191909.
2594 
2595             OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Tue);
2596             FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2597             CLOSE c_NLS_Day;
2598 
2599          -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := to_char(Ld_Request_Date-Lx_Request_date_Num+3,'DY'); --Idx.React_Day_Char;
2600             Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := Lv_React_Day_NLS_Char;
2601             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn       := Idx.Tue_Duration;
2602             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM        := Idx.UOM_Code;
2603          -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := 3; --Idx.React_Day_Num;
2604             Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := Ln_React_Day_Num;
2605             Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := Ln_Req_Day_Relative;
2606 
2607          /*
2608             if Lx_Request_date_Num <= 3 then
2609                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 3-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2610             else
2611                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 7-(Lx_Request_date_Num-3);
2612             end if;
2613          */
2614 
2615 
2616        end if;
2617 
2618        if Idx.Wed_Duration is not null then
2619 
2620            Li_TableIdx   := Li_TableIdx + 1;
2621 
2622          -- Added by JVARGHES on Mar 07, 2005.
2623          -- for the resolution of Bug# 4191909.
2624 
2625             OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Wed);
2626             FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2627             CLOSE c_NLS_Day;
2628 
2629          -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := to_char(Ld_Request_Date-Lx_Request_date_Num+4,'DY'); --Idx.React_Day_Char;
2630             Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := Lv_React_Day_NLS_Char;
2631             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn       := Idx.Wed_Duration;
2632             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM        := Idx.UOM_Code;
2633          -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := 4; --Idx.React_Day_Num;
2634             Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := Ln_React_Day_Num;
2635             Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := Ln_Req_Day_Relative;
2636 
2637          /*
2638             if Lx_Request_date_Num <= 4 then
2639                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 4-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2640             else
2641                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 7-(Lx_Request_date_Num-4);
2642             end if;
2643          */
2644 
2645        end if;
2646 
2647        if Idx.Thu_Duration is not null then
2648 
2649            Li_TableIdx   := Li_TableIdx + 1;
2650 
2651          -- Added by JVARGHES on Mar 07, 2005.
2652          -- for the resolution of Bug# 4191909.
2653 
2654             OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Thu);
2655             FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2656             CLOSE c_NLS_Day;
2657 
2658          -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := to_char(Ld_Request_Date-Lx_Request_date_Num+5,'DY'); --Idx.React_Day_Char;
2659             Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := Lv_React_Day_NLS_Char;
2660             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn       := Idx.Thu_Duration;
2661             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM        := Idx.UOM_Code;
2662          -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := 5; --Idx.React_Day_Num;
2663             Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := Ln_React_Day_Num;
2664             Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := Ln_Req_Day_Relative;
2665 
2666          /*
2667             if Lx_Request_date_Num <= 5 then
2668                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 5-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2669             else
2670                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 7-(Lx_Request_date_Num-5);
2671             end if;
2672          */
2673 
2674        end if;
2675 
2676        if Idx.Fri_Duration is not null then
2677 
2678            Li_TableIdx   := Li_TableIdx + 1;
2679 
2680          -- Added by JVARGHES on Mar 07, 2005.
2681          -- for the resolution of Bug# 4191909.
2682 
2683             OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Fri);
2684             FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2685             CLOSE c_NLS_Day;
2686 
2687          -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := to_char(Ld_Request_Date-Lx_Request_date_Num+6,'DY'); --Idx.React_Day_Char;
2688             Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := Lv_React_Day_NLS_Char;
2689             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn       := Idx.Fri_Duration;
2690             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM        := Idx.UOM_Code;
2691          -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := 6; --Idx.React_Day_Num;
2692             Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := Ln_React_Day_Num;
2693             Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := Ln_Req_Day_Relative;
2694 
2695          /*
2696             if Lx_Request_date_Num <= 6 then
2697                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 6-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2698             else
2699                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 7-(Lx_Request_date_Num-6);
2700             end if;
2701 
2702          */
2703 
2704        end if;
2705 
2706        if Idx.Sat_Duration is not null then
2707 
2708            Li_TableIdx   := Li_TableIdx + 1;
2709 
2710          -- Added by JVARGHES on Mar 07, 2005.
2711          -- for the resolution of Bug# 4191909.
2712 
2713             OPEN c_NLS_Day(Cd_Request_Date => Ld_Request_Date, Cv_USA_DY_Char => G_Rel_Sat);
2714             FETCH c_NLS_Day INTO Lv_React_Day_NLS_Char, Ln_React_Day_Num, Ln_Req_Day_Relative;
2715             CLOSE c_NLS_Day;
2716 
2717          -- Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := to_char(Ld_Request_Date-Lx_Request_date_Num+7,'DY'); --Idx.React_Day_Char;
2718             Lx_Reaction_Attribs(Li_TableIdx).Rv_React_Day        := Lv_React_Day_NLS_Char;
2719             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_Durn       := Idx.Sat_Duration;
2720             Lx_Reaction_Attribs(Li_TableIdx).Rx_React_UOM        := Idx.UOM_Code;
2721          -- Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        := 7; --Idx.React_Day_Num;
2722             Lx_Reaction_Attribs(Li_TableIdx).Ri_React_Day        :=  Ln_React_Day_Num;
2723             Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := Ln_Req_Day_Relative;
2724 
2725          /*
2726             if Lx_Request_date_Num <= 7 then
2727                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 7-Lx_Request_date_Num; ----Idx.ReqDay_Relative;
2728             else
2729                 Lx_Reaction_Attribs(Li_TableIdx).Ri_ReqDay_Relative  := 7-(Lx_Request_date_Num-7);
2730             end if;
2731 
2732          */
2733 
2734        end if;
2735 
2736        Li_RowCount   := Li_TableIdx;
2737 
2738     END LOOP;
2739 
2740     IF (Li_RowCount = 0 )  THEN
2741 
2742       Lx_ExcepionMsg := 'Reaction Time';
2743       RAISE L_EXCEP_NO_REACT_TIME;
2744 
2745     END IF;
2746 
2747     -- sorting based on relative to request date (Ri_ReqDay_Relative)
2748 
2749     Lx_Sort_Tab      := Lx_Reaction_Attribs;
2750     Li_TableIdx_Out  := Lx_Sort_Tab.FIRST;
2751 
2752     WHILE Li_TableIdx_Out IS NOT NULL LOOP
2753       Li_TableIdx_In  := Li_TableIdx_Out;
2754       WHILE Li_TableIdx_In IS NOT NULL LOOP
2755         Lv_Composit_Val1  := Lx_Sort_Tab(Li_TableIdx_Out).Ri_ReqDay_Relative;
2756         Lv_Composit_Val2  := Lx_Sort_Tab(Li_TableIdx_In).Ri_ReqDay_Relative;
2757 
2758         IF Lv_Composit_Val1 > Lv_Composit_Val2 THEN
2759           Lx_Temp_ReacAttribs           := Lx_Sort_Tab(Li_TableIdx_Out);
2760           Lx_Sort_Tab(Li_TableIdx_Out)  := Lx_Sort_Tab(Li_TableIdx_In);
2761           Lx_Sort_Tab(Li_TableIdx_In)   := Lx_Temp_ReacAttribs;
2762         END IF;
2763 
2764          Li_TableIdx_In  := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
2765       END LOOP;
2766       Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
2767     END LOOP;
2768 
2769     Lx_Reaction_Attribs.DELETE;
2770     Lx_Reaction_Attribs   := Lx_Sort_Tab;
2771 
2772     X_Reaction_Attribs := Lx_Reaction_Attribs;
2773     X_Result           := Lx_Result;
2774     X_Return_Status    := Lx_Return_Status;
2775 
2776   EXCEPTION
2777 
2778     WHEN L_EXCEP_NO_REACT_TIME THEN
2779 
2780       Lx_Result   := G_FALSE;
2781 
2782       IF Lx_Set_ExcepionStack = G_TRUE THEN
2783 
2784         OKC_API.SET_MESSAGE(p_app_name	    => G_APP_NAME_OKC
2785 	  		   ,p_msg_name	    => G_REQUIRED_VALUE
2786 			   ,p_token1	    => G_COL_NAME_TOKEN
2787 			   ,p_token1_value  => Lx_ExcepionMsg);
2788 
2789         Lx_Return_Status  := G_RET_STS_ERROR;
2790 
2791       END IF;
2792 
2793       X_Result           := Lx_Result;
2794       X_Return_Status    := Lx_Return_Status;
2795 
2796     WHEN OTHERS THEN
2797 
2798       OKC_API.SET_MESSAGE
2799         (P_App_Name	  => G_APP_NAME_OKC
2800 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
2801 	,P_Token1	  => G_SQLCODE_TOKEN
2802 	,P_Token1_Value	  => SQLCODE
2803 	,P_Token2	  => G_SQLERRM_TOKEN
2804 	,P_Token2_Value   => SQLERRM);
2805 
2806       OKC_API.SET_MESSAGE
2807         (P_App_Name	  => G_APP_NAME_OKC
2808 	,P_Msg_Name	  => G_DEBUG_TOKEN
2809 	,P_Token1	  => G_PACKAGE_TOKEN
2810 	,P_Token1_Value	  => G_PKG_NAME
2811 	,P_Token2	  => G_PROGRAM_TOKEN
2812 	,P_Token2_Value   => 'Get_BP_Reaction_Times');
2813 
2814      X_Result            := G_FALSE;
2815      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
2816 
2817   END Get_BP_Reaction_Times;
2818 
2819 -----------------------------------------------------------------------------------------------------------------------*
2820 
2821   PROCEDURE Get_Reactn_Durn_In_Days
2822     (P_React_Durn	    IN  Gx_ReactDurn
2823     ,P_React_UOM 	    IN  Gx_ReactUOM
2824     ,P_Set_ExcepionStack    IN  Gx_Boolean
2825     ,X_React_Durn_In_Days   out nocopy NUMBER
2826     ,X_Result               out nocopy Gx_Boolean
2827     ,X_Return_Status        out nocopy Gx_Ret_Sts)
2828   IS
2829 
2830       CURSOR Lx_Csr_React_Tce_code(Lx_React_UOM IN VARCHAR2)  IS
2831       SELECT TCU.TCE_CODE Tce_Code
2832        FROM  Okx_Units_Of_Measure_V UOM
2833             ,Okc_Time_Code_Units_V TCU
2834        WHERE UOM.UOM_CODE = Lx_React_UOM
2835        AND   TCU.UOM_CODE = UOM.UOM_CODE
2836        AND   TCU.quantity = 1
2837        AND   TCU.tce_code = 'MINUTE';
2838 
2839 
2840 
2841     Lx_React_Durn           CONSTANT Gx_ReactDurn := NVL(P_React_Durn,0);
2842     Lx_React_UOM            CONSTANT Gx_ReactUOM  := P_React_UOM;
2843     Lx_Set_ExcepionStack    CONSTANT Gx_Boolean := P_Set_ExcepionStack;
2844 
2845     Ln_React_Durn_In_Days   NUMBER;
2846     Lx_Result               Gx_Boolean;
2847     Lx_Return_Status        Gx_Ret_Sts;
2848     Lx_ExcepionMsg          Gx_ExceptionMsg;
2849     Lx_count                NUMBER;
2850 
2851     L_EXCEP_UNKNOWN_UOM     EXCEPTION;
2852 
2853 
2854 
2855   BEGIN
2856 
2857     Lx_Result               := G_TRUE;
2858     Lx_Return_Status        := G_RET_STS_SUCCESS;
2859 
2860     Lx_count                := 0;
2861 
2862   FOR Lx_Csr_Rec in Lx_Csr_React_Tce_code(Lx_React_UOM) LOOP
2863 
2864    Lx_count := Lx_count + 1;
2865 
2866   END LOOP;
2867 
2868   IF Lx_count > 0 THEN
2869 
2870     Ln_React_Durn_In_Days := Lx_React_Durn/(24*60);
2871 
2872   ELSE
2873 
2874      RAISE L_EXCEP_UNKNOWN_UOM;
2875 
2876   END IF;
2877 
2878     X_React_Durn_In_Days  := Ln_React_Durn_In_Days;
2879     X_Result              := Lx_Result;
2880     X_Return_Status       := Lx_Return_Status;
2881 
2882   EXCEPTION
2883 
2884     WHEN  L_EXCEP_UNKNOWN_UOM THEN
2885 
2886       Lx_Result             := G_FALSE;
2887 
2888       IF Lx_Set_ExcepionStack = G_TRUE THEN
2889 
2890         OKC_API.SET_MESSAGE(p_app_name	    => G_APP_NAME_OKC
2891 	  		   ,p_msg_name	    => G_INVALID_VALUE
2892 			   ,p_token1	    => G_COL_NAME_TOKEN
2893 			   ,p_token1_value  => Lx_ExcepionMsg);
2894 
2895         Lx_Return_Status  := G_RET_STS_ERROR;
2896 
2897       END IF;
2898 
2899       X_Result              := Lx_Result;
2900       X_Return_Status       := Lx_Return_Status;
2901 
2902     WHEN OTHERS THEN
2903 
2904       OKC_API.SET_MESSAGE
2905         (P_App_Name	  => G_APP_NAME_OKC
2906 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
2907 	,P_Token1	  => G_SQLCODE_TOKEN
2908 	,P_Token1_Value	  => SQLCODE
2909 	,P_Token2	  => G_SQLERRM_TOKEN
2910 	,P_Token2_Value   => SQLERRM);
2911 
2912       OKC_API.SET_MESSAGE
2913         (P_App_Name	  => G_APP_NAME_OKC
2914 	,P_Msg_Name	  => G_DEBUG_TOKEN
2915 	,P_Token1	  => G_PACKAGE_TOKEN
2916 	,P_Token1_Value	  => G_PKG_NAME
2917 	,P_Token2	  => G_PROGRAM_TOKEN
2918 	,P_Token2_Value   => 'Get_Reactn_Durn_In_Days');
2919 
2920       X_Result            := G_FALSE;
2921       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
2922 
2923   END Get_Reactn_Durn_In_Days;
2924 
2925 -----------------------------------------------------------------------------------------------------------------------*
2926 
2927   PROCEDURE Get_Cover_Day_Attribs
2928     (P_BP_CovTimes          IN  GT_Bp_CoverTimes
2929     ,P_Req_Cover_Date       IN  DATE --P_Req_Cover_Day        IN  INTEGER
2930     ,P_Set_ExcepionStack    IN  Gx_Boolean
2931     ,P_Check_Day            IN  Varchar2-- default 'N'
2932     ,X_Day_Cover_tbl        out nocopy Day_Cover_Tbl
2933     ,X_Result               out nocopy Gx_Boolean
2934     ,X_Return_Status        out nocopy Gx_Ret_Sts)
2935   IS
2936     Lx_BP_CovTimes          GT_Bp_CoverTimes;
2937     Li_Req_Cover_Day        INTEGER(1);
2938     Li_Req_Cover_Date       CONSTANT DATE := P_Req_Cover_Date;
2939 
2940     Lx_Set_ExcepionStack    CONSTANT Gx_Boolean := P_Set_ExcepionStack;
2941     Li_Check_Day            CONSTANT VARCHAR2(1) := nvl(P_Check_Day,'N');
2942 
2943     Lv_Day_Cover_From       VARCHAR2(25);
2944     Lv_Day_Cover_To         VARCHAR2(25);
2945     Li_Cover_Day            INTEGER(1);
2946 
2947     Lv_Day_Cover_Tbl        Day_Cover_Tbl; --VARCHAR2(6);
2948     Lv_DayCov_Ctr           number;
2949 
2950     Li_Coverage_Exists      varchar2(1);
2951     Li_Req_Cover_Date_Num   NUMBER;
2952 
2953     Lx_Result               Gx_Boolean;
2954     Lx_Return_Status        Gx_Ret_Sts;
2955     Li_Bp_CoverTbl_Idx      BINARY_INTEGER;
2956 
2957     Lx_Msg_TokenVal         Gx_ExceptionMsg;
2958     L_EXCEP_NO_COVER_TIME   EXCEPTION;
2959     L_EXCEP_NULL_VALUE      EXCEPTION;
2960 
2961   BEGIN
2962 
2963     Lx_BP_CovTimes          := P_BP_CovTimes;
2964     Lv_DayCov_Ctr           := 0;
2965     Li_Coverage_Exists      := 'N';
2966 
2967     Lx_Result               := G_TRUE;
2968     Lx_Return_Status        := G_RET_STS_SUCCESS;
2969 
2970     Li_Req_Cover_Day    :=  to_number(to_char(Li_Req_Cover_Date,'D'));
2971     Li_Bp_CoverTbl_Idx  :=  Lx_BP_CovTimes.FIRST;
2972 
2973     WHILE Li_Bp_CoverTbl_Idx IS NOT NULL LOOP
2974 
2975       IF Li_Check_Day = 'N' THEN
2976 
2977         IF Li_Coverage_Exists  = 'N' then
2978 
2979             Li_Req_Cover_Date_Num    := to_number(LPAD(to_char(Li_Req_Cover_Date,'HH24'),2,'0')||
2980                                         LPAD(to_char(Li_Req_Cover_Date,'MI'),2,'0'));
2981 /*
2982             IF  ((Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day)
2983             and (Li_Req_Cover_Date_Num >= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From))
2984             and (Li_Req_Cover_Date_Num <= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To))) THEN
2985 */
2986             IF  ((Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day)
2987             and (Li_Req_Cover_Date_Num >= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From))
2988             and (Li_Req_Cover_Date_Num <= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To))) OR
2989             ((Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day)
2990             and (Li_Req_Cover_Date_Num <= to_number(Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From))) THEN
2991 
2992                 Li_Coverage_Exists  := 'Y';
2993 
2994                 Lv_DayCov_Ctr   := Lv_DayCov_Ctr + 1;
2995 
2996                 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_From  := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From;
2997                 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_To    := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To;
2998 
2999             END IF;
3000 
3001          ELSE -- IF Li_Coverage_Exists  = 'Y' then
3002 
3003             IF  (Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day) THEN
3004 
3005                 Li_Coverage_Exists  := 'Y';
3006 
3007                 Lv_DayCov_Ctr   := Lv_DayCov_Ctr + 1;
3008 
3009                 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_From  := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From;
3010                 Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_To    := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To;
3011 
3012             END IF;
3013 
3014          END IF;
3015 
3016       ELSE -- IF Li_Check_Day = 'Y' THEN
3017 
3018         IF  (Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Ri_Cover_day = Li_Req_Cover_Day) THEN
3019 
3020             Li_Coverage_Exists  := 'Y';
3021 
3022             Lv_DayCov_Ctr   := Lv_DayCov_Ctr + 1;
3023 
3024             Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_From  := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_From;
3025             Lv_Day_Cover_Tbl(Lv_DayCov_Ctr).Day_Cover_To    := Lx_BP_CovTimes(Li_Bp_CoverTbl_Idx).Rv_Cover_To;
3026 
3027 
3028         END IF;
3029 
3030       END IF;
3031 
3032 
3033       Li_Bp_CoverTbl_Idx   := Lx_BP_CovTimes.NEXT(Li_Bp_CoverTbl_Idx);
3034 
3035     END LOOP;
3036 
3037 
3038     IF Li_Coverage_Exists  = 'N'  THEN
3039 
3040       Lx_Msg_TokenVal   := 'Day Cover Time';
3041       RAISE L_EXCEP_NO_COVER_TIME;
3042 
3043     END IF;
3044 
3045     X_Day_Cover_Tbl       := Lv_Day_Cover_Tbl;
3046     X_Result              := Lx_Result;
3047     X_Return_Status       := Lx_Return_Status;
3048 
3049   EXCEPTION
3050 
3051     WHEN  L_EXCEP_NO_COVER_TIME  THEN
3052 
3053       Lx_Result         := G_FALSE;
3054 
3055       IF Lx_Set_ExcepionStack = G_TRUE THEN
3056 
3057         OKC_API.SET_MESSAGE(p_app_name	    => G_APP_NAME_OKC
3058 	  		   ,p_msg_name	    => G_REQUIRED_VALUE
3059 			   ,p_token1	    => G_COL_NAME_TOKEN
3060 			   ,p_token1_value  => Lx_Msg_TokenVal);
3061 
3062         Lx_Return_Status  := G_RET_STS_ERROR;
3063 
3064       END IF;
3065 
3066       X_Result              := Lx_Result;
3067       X_Return_Status       := Lx_Return_Status;
3068 
3069     WHEN L_EXCEP_NULL_VALUE THEN
3070 
3071       X_Result              := Lx_Result;
3072       X_Return_Status       := Lx_Return_Status;
3073 
3074     WHEN OTHERS THEN
3075 
3076       OKC_API.SET_MESSAGE
3077         (P_App_Name	  => G_APP_NAME_OKC
3078 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
3079 	,P_Token1	  => G_SQLCODE_TOKEN
3080 	,P_Token1_Value	  => SQLCODE
3081 	,P_Token2	  => G_SQLERRM_TOKEN
3082 	,P_Token2_Value   => SQLERRM);
3083 
3084       OKC_API.SET_MESSAGE
3085         (P_App_Name	  => G_APP_NAME_OKC
3086 	,P_Msg_Name	  => G_DEBUG_TOKEN
3087 	,P_Token1	  => G_PACKAGE_TOKEN
3088 	,P_Token1_Value	  => G_PKG_NAME
3089 	,P_Token2	  => G_PROGRAM_TOKEN
3090 	,P_Token2_Value   => 'Get_Cover_Day_Attribs');
3091 
3092       X_Result            := G_FALSE;
3093       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
3094 
3095   END Get_Cover_Day_Attribs;
3096 
3097 -----------------------------------------------------------------------------------------------------------------------*
3098   PROCEDURE Compute_Day_React_By_DateTime
3099     (P_Req_DateTime	    IN  DATE
3100     ,P_Cover_EffStart       IN  DATE
3101     ,P_Cover_EffEnd         IN  DATE
3102     ,P_BP_Work_Through      IN  Gx_YesNo
3103     ,P_BP_Cover_Times       IN  GT_Bp_CoverTimes
3104     ,P_React_Durn_In_Days   IN  NUMBER
3105     ,P_Template_YN          IN  VARCHAR2
3106     ,P_Set_ExcepionStack    IN  Gx_Boolean
3107     ,P_Check_Day            IN  Varchar2
3108     ,X_React_By_DateTime    out nocopy DATE
3109     ,X_React_Start_DateTime out nocopy DATE
3110     ,X_Result               out nocopy Gx_Boolean
3111     ,X_Return_Status        out nocopy Gx_Ret_Sts)
3112   IS
3113 
3114     Ld_Req_DateTime         CONSTANT DATE := P_Req_DateTime;
3115     Ld_Cover_EffStart       CONSTANT DATE := P_Cover_EffStart;
3116     Ld_Cover_EffEnd         CONSTANT DATE := P_Cover_EffEnd;
3117     Lx_BP_Work_Through      CONSTANT Gx_YesNo := P_BP_Work_Through;
3118     Ln_React_Durn_In_Days   CONSTANT NUMBER := P_React_Durn_In_Days;
3119     Lx_BP_Cover_Times       GT_Bp_CoverTimes;
3120     Lx_Set_ExcepionStack    CONSTANT Gx_Boolean := P_Set_ExcepionStack;
3121     Lv_Template_YN          VARCHAR2(1);
3122     Lv_Check_Day            VARCHAR2(1);
3123 
3124     Ld_React_By_DateTime    DATE;
3125     Ld_React_Start_DateTime DATE;
3126     Lx_Result               Gx_Boolean;
3127     Lx_Return_Status        Gx_Ret_Sts;
3128 
3129     Lv_Day_Cover_From       VARCHAR2(25);
3130     Lv_Day_Cover_To         VARCHAR2(25);
3131     Lv_Day_Cover_Tbl        Day_Cover_Tbl; -- 11.5.10 mutiple time zone changes
3132     Lv_DayCov_Idx           BINARY_INTEGER; -- 11.5.10 mutiple time zone changes
3133 
3134     Ld_Day_Reactn_Start     DATE;
3135     Ld_Day_Reactn_End       DATE;
3136     Ld_Day_Reactn_EffStart  DATE;
3137 
3138     Li_Balance_ReactTime    NUMBER;
3139     Ld_Run_DateTime         DATE;
3140     Li_Run_React_Day        INTEGER(1);
3141 
3142     Li_LoopCount            INTEGER(1);
3143 
3144     L_EXCEP_NO_COVER_REMAINS EXCEPTION;
3145     L_EXCEP_NO_COVER_DEFINED EXCEPTION;
3146     L_EXCEP_UNEXPECTED_ERR   EXCEPTION;
3147 
3148   BEGIN
3149 
3150     Lx_BP_Cover_Times       := P_BP_Cover_Times;
3151     Lv_Check_Day            := nvl(P_Check_Day,'N');
3152     Lv_Template_YN          := nvl(P_Template_YN,'N');
3153 
3154     Lx_Result               := G_TRUE;
3155     Lx_Return_Status        := G_RET_STS_SUCCESS;
3156 
3157     Li_Balance_ReactTime    := Ln_React_Durn_In_Days;
3158     Ld_Run_DateTime         := Ld_Req_DateTime;
3159 
3160     Li_LoopCount            := 0;
3161 
3162 --    dbms_output.put_line('Value of Ld_Run_DateTime='||to_char(Ld_Run_DateTime,'dd-mon-yyyy hh24:mi'));
3163 
3164     WHILE Li_Balance_ReactTime > 0 LOOP
3165 
3166 --    dbms_output.put_line('Value of Li_Balance_ReactTime='||Li_Balance_ReactTime);
3167 
3168       Get_Cover_Day_Attribs
3169         (P_BP_CovTimes       => Lx_BP_Cover_Times
3170         ,P_Req_Cover_Date    => Ld_Run_DateTime --Li_Run_React_Day
3171         ,P_Set_ExcepionStack => G_FALSE
3172         ,P_Check_Day         => Lv_Check_Day
3173         ,X_Day_Cover_tbl     => Lv_Day_Cover_Tbl
3174         ,X_Result            => Lx_Result
3175         ,X_Return_Status     => Lx_Return_Status);
3176 
3177 
3178       IF Lx_Result = G_TRUE THEN
3179 
3180 --dbms_output.put_line('Value of Li_LoopCount='||Li_LoopCount);
3181 
3182        Li_LoopCount    := 0;
3183        Lv_DayCov_Idx := Lv_Day_Cover_Tbl.FIRST;
3184 
3185 --dbms_output.put_line('Value of Lv_DayCov_Idx='||Lv_DayCov_Idx);
3186 
3187        while Lv_DayCov_Idx is not null loop
3188 
3189 
3190         Ld_Day_Reactn_Start  := TO_DATE(TO_CHAR(Ld_Run_DateTime,'YYYYMMDD')||
3191                                     Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_From,'YYYYMMDDHH24MISS');
3192         Ld_Day_Reactn_End    := TO_DATE(TO_CHAR(Ld_Run_DateTime,'YYYYMMDD')||
3193                                     Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_To,'YYYYMMDDHH24MISS');
3194 
3195 
3196 --dbms_output.put_line('Value of Ld_Run_DateTime='||to_char(Ld_Run_DateTime,'dd-mon-yyyy hh24:mi'));
3197 --dbms_output.put_line('Value of Ld_Day_Reactn_Start='||to_char(Ld_Day_Reactn_Start,'dd-mon-yyyy hh24:mi'));
3198 --dbms_output.put_line('Value of Ld_Day_Reactn_End='||to_char(Ld_Day_Reactn_End,'dd-mon-yyyy hh24:mi'));
3199 
3200 
3201         IF Ld_Run_DateTime <= Ld_Day_Reactn_End  THEN
3202 
3203           IF Ld_React_Start_DateTime IS NULL THEN
3204 
3205             IF Ld_Run_DateTime < Ld_Day_Reactn_Start THEN
3206 
3207                 Ld_Day_Reactn_EffStart  := Ld_Day_Reactn_Start;
3208 
3209             ELSE
3210 
3211                 Ld_Day_Reactn_EffStart  := Ld_Run_DateTime;
3212 
3213             END IF;
3214 
3215           ELSE
3216 
3217             Ld_Day_Reactn_EffStart  := Ld_Day_Reactn_Start;
3218 
3219           END IF;
3220 
3221 --dbms_output.put_line('Value of Li_Balance_ReactTime='||Li_Balance_ReactTime);
3222 
3223           Ld_React_By_DateTime := Ld_Day_Reactn_EffStart + Li_Balance_ReactTime;
3224 
3225           IF NVL(Lx_BP_Work_Through,G_NO) = G_YES THEN
3226 
3227             Li_Balance_ReactTime  := 0;
3228 
3229           ELSE
3230 
3231             IF Ld_React_By_DateTime  > Ld_Day_Reactn_End  THEN
3232 
3233               Li_Balance_ReactTime := Ld_React_By_DateTime - Ld_Day_Reactn_End;
3234               Ld_React_By_DateTime := Ld_Day_Reactn_End;
3235 
3236             ELSE
3237               Li_Balance_ReactTime := 0;
3238             END IF;
3239 
3240           END IF;
3241 
3242 --dbms_output.put_line('Value of Ld_Day_Reactn_EffStart='||to_char(Ld_Day_Reactn_EffStart,'dd-mon-yyyy hh24:mi'));
3243 --dbms_output.put_line('Value of Ld_React_By_DateTime='||to_char(Ld_React_By_DateTime,'dd-mon-yyyy hh24:mi'));
3244 
3245 --dbms_output.put_line('Value of Lv_Template_YN='||Lv_Template_YN);
3246 
3247           IF Lv_Template_YN = 'N' and nvl(FND_PROFILE.VALUE('OKS_VALIDATE_REACT_RESOL_TIME'),'Y') = 'Y' THEN -- for default coverage functionality   /*Added profile condition for bug 13772324*/
3248 
3249             Validate_Effectivity
3250             (P_Request_Date	    => Ld_React_By_DateTime
3251             ,P_Start_DateTime       => Ld_Cover_EffStart
3252             ,P_End_DateTime         => Ld_Cover_EffEnd
3253             ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
3254             ,P_CL_Msg_TokenValue    => 'Coverage'
3255             ,X_Result               => Lx_result
3256             ,X_Return_Status 	    => Lx_Return_Status);
3257 
3258             IF Lx_result <> G_TRUE THEN
3259                 RAISE L_EXCEP_NO_COVER_REMAINS;
3260             END IF;
3261 
3262           END IF;
3263 
3264           IF Ld_React_Start_DateTime IS NULL THEN
3265 
3266             Ld_React_Start_DateTime := Ld_Day_Reactn_EffStart;
3267 
3268           END IF;
3269 
3270         END IF;
3271 
3272 
3273         if Li_Balance_ReactTime > 0 then
3274             Lv_DayCov_Idx := Lv_Day_Cover_Tbl.NEXT(Lv_DayCov_Idx);
3275         else
3276             exit; -- from loop
3277         end if;
3278        end loop;
3279 
3280       ELSE
3281 
3282         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR  THEN
3283           RAISE L_EXCEP_UNEXPECTED_ERR;
3284         END IF;
3285 
3286         Li_LoopCount    := Li_LoopCount + 1;
3287 
3288         IF Li_LoopCount > 7 THEN
3289 
3290           RAISE L_EXCEP_NO_COVER_DEFINED;
3291 
3292         END IF;
3293 
3294       END IF;
3295 
3296       Ld_Run_DateTime := TRUNC(Ld_Run_DateTime,'DD') + 1;
3297       Lv_Check_Day       := 'Y';
3298 
3299     END LOOP;
3300 
3301     IF Li_Balance_ReactTime > 0 THEN
3302 
3303       RAISE L_EXCEP_NO_COVER_DEFINED;
3304 
3305     END IF;
3306 
3307     X_React_By_DateTime    := Ld_React_By_DateTime;
3308     X_React_Start_DateTime := Ld_React_Start_DateTime;
3309     X_Result               := Lx_Result;
3310     X_Return_Status        := Lx_Return_Status;
3311 
3312   EXCEPTION
3313 
3314     WHEN L_EXCEP_UNEXPECTED_ERR OR L_EXCEP_NO_COVER_REMAINS THEN
3315 
3316       X_Result             := Lx_Result;
3317       X_Return_Status      := Lx_Return_Status;
3318 
3319     WHEN L_EXCEP_NO_COVER_DEFINED THEN
3320 
3321       Lx_Result := G_FALSE;
3322 
3323       IF Lx_Set_ExcepionStack = G_TRUE THEN
3324 
3325         OKC_API.SET_MESSAGE
3326           (p_app_name	  => G_APP_NAME_OKC
3327 	  ,p_msg_name	  => G_REQUIRED_VALUE
3328 	  ,p_token1	  => G_COL_NAME_TOKEN
3329 	  ,p_token1_value => 'Day Cover Time');
3330 
3331         Lx_Return_Status := G_RET_STS_ERROR;
3332 
3333       END IF;
3334 
3335       X_Result            := Lx_Result;
3336       X_Return_Status     := Lx_Return_Status;
3337 
3338     WHEN OTHERS THEN
3339 
3340       OKC_API.SET_MESSAGE
3341         (P_App_Name	  => G_APP_NAME_OKC
3342 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
3343 	,P_Token1	  => G_SQLCODE_TOKEN
3344 	,P_Token1_Value	  => SQLCODE
3345 	,P_Token2	  => G_SQLERRM_TOKEN
3346 	,P_Token2_Value   => SQLERRM);
3347 
3348       OKC_API.SET_MESSAGE
3349         (P_App_Name	  => G_APP_NAME_OKC
3350 	,P_Msg_Name	  => G_DEBUG_TOKEN
3351 	,P_Token1	  => G_PACKAGE_TOKEN
3352 	,P_Token1_Value	  => G_PKG_NAME
3353 	,P_Token2	  => G_PROGRAM_TOKEN
3354 	,P_Token2_Value   => 'Compute_Day_React_By_DateTime');
3355 
3356      X_Result            := G_FALSE;
3357      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
3358 
3359   END Compute_Day_React_By_DateTime;
3360 
3361 -----------------------------------------------------------------------------------------------------------------------*
3362   PROCEDURE Compute_React_By_DateTime
3363     (P_Request_DateTime	    IN  DATE
3364     ,P_Cover_EffStart       IN  DATE
3365     ,P_Cover_EffEnd         IN  DATE
3366     ,P_BP_Work_Through      IN  Gx_YesNo
3367     ,P_BP_Cover_Times       IN  GT_Bp_CoverTimes
3368     ,P_Reaction_Attribs     IN  GT_Bp_Reactions
3369     ,P_Option               IN  VARCHAR2
3370     ,P_Template_YN          IN  VARCHAR2
3371     ,P_Set_ExcepionStack    IN  Gx_Boolean
3372     ,X_React_Durn	        out nocopy Gx_ReactDurn
3373     ,X_React_UOM 	        out nocopy Gx_ReactUOM
3374     ,X_React_Day            out nocopy VARCHAR2
3375     ,X_React_By_DateTime    out nocopy DATE
3376     ,X_React_Start_DateTime out nocopy DATE
3377     ,X_Result               out nocopy Gx_Boolean
3378     ,X_Return_Status        out nocopy Gx_Ret_Sts)
3379   IS
3380 
3381     Ld_Request_DateTime        CONSTANT DATE := P_Request_DateTime;
3382     Ld_Cover_EffStart          CONSTANT DATE := P_Cover_EffStart;
3383     Ld_Cover_EffEnd            CONSTANT DATE := P_Cover_EffEnd;
3384     Lx_BP_Work_Through         CONSTANT Gx_YesNo := P_BP_Work_Through;
3385     Lv_Option                  CONSTANT VARCHAR2(10) := P_Option;
3386     Lv_Template_YN             VARCHAR2(1);
3387     Lx_Set_ExcepionStack       CONSTANT Gx_Boolean := P_Set_ExcepionStack;
3388 
3389     Lx_Reaction_Attribs        GT_Bp_Reactions;
3390     Lx_BP_Cover_Times          GT_Bp_CoverTimes;
3391 
3392     Lx_React_Durn              Gx_ReactDurn;
3393     Lx_React_UOM               Gx_ReactUOM;
3394     Lv_React_Day               VARCHAR2(25);
3395     Ld_React_By_DateTime       DATE;
3396     Ld_React_Start_DateTime    DATE;
3397 
3398     Lx_React_Durn_X            Gx_ReactDurn;
3399     Lx_React_UOM_X             Gx_ReactUOM;
3400     Lv_React_Day_X             VARCHAR2(25);
3401     Ld_React_By_DateTime_X     DATE;
3402     Ld_React_Start_DateTime_X  DATE;
3403 
3404     Lx_Result                  Gx_Boolean;
3405     Lx_Return_Status           Gx_Ret_Sts;
3406 
3407     Li_React_Day               INTEGER(1);
3408     Li_ReqDay_Relative         INTEGER(1);
3409 
3410     Li_Bp_RactTbl_Idx          BINARY_INTEGER;
3411     Ld_Run_DateTime            DATE;
3412 
3413     Li_React_Durn_Days         NUMBER;
3414     Lv_Check_Day               VARCHAR2(1);
3415 
3416     L_EXCEP_UNEXPECTED_ERR     EXCEPTION;
3417     L_EXCEP_NO_COVER_REMAINS   EXCEPTION;
3418     L_EXCEP_NO_REACTION_TIME   EXCEPTION;
3419 
3420  BEGIN
3421 
3422     Lv_Template_YN             := nvl(P_Template_YN,'N');
3423 
3424     Lx_Reaction_Attribs        := P_Reaction_Attribs;
3425     Lx_BP_Cover_Times          := P_BP_Cover_Times;
3426 
3427     Lx_Result                  := G_TRUE;
3428     Lx_Return_Status           := G_RET_STS_SUCCESS;
3429 
3430     Li_Bp_RactTbl_Idx          := Lx_Reaction_Attribs.FIRST;
3431     Ld_Run_DateTime            := Ld_Request_DateTime;
3432 
3433     WHILE Li_Bp_RactTbl_Idx IS NOT NULL LOOP
3434 
3435       Lx_React_Durn      := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Rx_React_Durn;
3436       Lx_React_UOM       := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Rx_React_UOM;
3437       Li_React_Day       := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Ri_React_Day;
3438       Li_ReqDay_Relative := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Ri_ReqDay_Relative;
3439       Lv_React_Day       := Lx_Reaction_Attribs(Li_Bp_RactTbl_Idx).Rv_React_Day;
3440 
3441 --      dbms_output.put_line('Value of Li_ReqDay_Relative='||Li_ReqDay_Relative);
3442 
3443       IF Li_React_Day IS NOT NULL AND Lx_React_Durn IS NOT NULL AND Lx_React_UOM IS NOT NULL THEN
3444 
3445         Get_Reactn_Durn_In_Days
3446           (P_React_Durn	         => Lx_React_Durn
3447           ,P_React_UOM 	         => Lx_React_UOM
3448           ,P_Set_ExcepionStack   => G_FALSE
3449           ,X_React_Durn_In_Days  => Li_React_Durn_Days
3450           ,X_Result              => Lx_Result
3451           ,X_Return_Status       => Lx_Return_Status);
3452 
3453         IF Lx_Result = G_TRUE THEN
3454 
3455           IF Li_ReqDay_Relative > 0 THEN
3456             Ld_Run_DateTime  := TRUNC(Ld_Run_DateTime,'DD') + Li_ReqDay_Relative;
3457             Lv_Check_Day     := 'Y';
3458           ELSE
3459             Lv_Check_Day     := 'N';
3460           END IF;
3461 
3462           EXIT WHEN Ld_React_By_DateTime_X <= Ld_Run_DateTime;
3463 
3464 
3465           IF Lv_Template_YN = 'N' THEN  -- for default coverage functionality
3466 
3467             Validate_Effectivity
3468             (P_Request_Date	    => Ld_Run_DateTime
3469             ,P_Start_DateTime       => Ld_Cover_EffStart
3470             ,P_End_DateTime         => Ld_Cover_EffEnd
3471             ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
3472             ,P_CL_Msg_TokenValue    => 'Coverage'
3473             ,X_Result               => Lx_result
3474             ,X_Return_Status 	    => Lx_Return_Status);
3475 
3476             IF Lx_result <> G_TRUE THEN
3477                 RAISE L_EXCEP_NO_COVER_REMAINS;
3478             END IF;
3479 
3480           END IF;
3481 
3482 --dbms_output.put_line('Value of Ld_Run_DateTime='||to_char(Ld_Run_DateTime,'dd-mon-yyyy hh24:mi'));
3483 --dbms_output.put_line('Value of Ld_Cover_EffStart='||to_char(Ld_Cover_EffStart,'dd-mon-yyyy hh24:mi'));
3484 --dbms_output.put_line('Value of Ld_Cover_EffEnd='||to_char(Ld_Cover_EffEnd,'dd-mon-yyyy hh24:mi'));
3485 --dbms_output.put_line('Value of Lx_BP_Work_Through='||Lx_BP_Work_Through);
3486 --dbms_output.put_line('Value of Li_React_Durn_Days='||Li_React_Durn_Days);
3487 --dbms_output.put_line('Value of Lv_Template_YN='||Lv_Template_YN);
3488 
3489           Compute_Day_React_By_DateTime
3490             (P_Req_DateTime	    => Ld_Run_DateTime
3491             ,P_Cover_EffStart       => Ld_Cover_EffStart
3492             ,P_Cover_EffEnd         => Ld_Cover_EffEnd
3493             ,P_BP_Work_Through      => Lx_BP_Work_Through
3494             ,P_BP_Cover_Times       => Lx_BP_Cover_Times
3495             ,P_React_Durn_In_Days   => Li_React_Durn_Days
3496             ,P_Template_YN          => Lv_Template_YN -- for default coverage functionality
3497             ,P_Set_ExcepionStack    => G_FALSE
3498             ,P_Check_Day            => Lv_Check_Day
3499             ,X_React_By_DateTime    => Ld_React_By_DateTime
3500             ,X_React_Start_DateTime => Ld_React_Start_DateTime
3501             ,X_Result               => Lx_Result
3502             ,X_Return_Status        => Lx_Return_Status);
3503 
3504 --dbms_output.put_line('Value of Ld_React_By_DateTime='||to_char(Ld_React_By_DateTime,'dd-mon-yyyy hh24:mi'));
3505 --dbms_output.put_line('Value of Ld_React_Start_DateTime='||to_char(Ld_React_Start_DateTime,'dd-mon-yyyy hh24:mi'));
3506 
3507 
3508           IF Lx_Result <> G_TRUE  THEN
3509             RAISE L_EXCEP_UNEXPECTED_ERR;
3510           END IF;
3511 
3512           IF Ld_React_By_DateTime < Ld_React_By_DateTime_X OR Ld_React_By_DateTime_X IS NULL THEN
3513             Lx_React_Durn_X           := Lx_React_Durn;
3514             Lx_React_UOM_X            := Lx_React_UOM;
3515             Lv_React_Day_X            := Lv_React_Day;
3516             Ld_React_By_DateTime_X    := Ld_React_By_DateTime;
3517             Ld_React_Start_DateTime_X := Ld_React_Start_DateTime;
3518           END IF;
3519 
3520           IF Lv_Option = G_FIRST THEN
3521             EXIT;
3522           END IF;
3523 
3524         END IF;
3525       END IF;
3526 
3527       Li_Bp_RactTbl_Idx   := Lx_Reaction_Attribs.NEXT(Li_Bp_RactTbl_Idx);
3528 
3529     END LOOP;
3530 
3531     IF (Ld_React_By_DateTime_X IS NULL)
3532     THEN
3533       RAISE L_EXCEP_NO_REACTION_TIME;
3534     END IF;
3535 
3536     X_React_Durn	    := Lx_React_Durn_X;
3537     X_React_UOM 	    := Lx_React_UOM_X;
3538     X_React_Day             := Lv_React_Day_X;
3539     X_React_By_DateTime     := Ld_React_By_DateTime_X;
3540     X_React_Start_DateTime  := Ld_React_Start_DateTime_X;
3541     X_Result                := Lx_Result;
3542     X_Return_Status         := Lx_Return_Status;
3543 
3544   EXCEPTION
3545 
3546     WHEN L_EXCEP_UNEXPECTED_ERR OR L_EXCEP_NO_COVER_REMAINS THEN
3547 
3548       X_Result            := Lx_Result;
3549       X_Return_Status     := Lx_Return_Status;
3550 
3551     WHEN L_EXCEP_NO_REACTION_TIME THEN
3552 
3553       Lx_Result := G_FALSE;
3554 
3555       IF Lx_Set_ExcepionStack = G_TRUE THEN
3556 
3557         OKC_API.SET_MESSAGE
3558           (p_app_name	  => G_APP_NAME_OKC
3559 	  ,p_msg_name	  => G_REQUIRED_VALUE
3560 	  ,p_token1	  => G_COL_NAME_TOKEN
3561 	  ,p_token1_value => 'Day Reaction Time');
3562 
3563         Lx_Return_Status := G_RET_STS_ERROR;
3564 
3565       END IF;
3566 
3567       X_Result            := Lx_Result;
3568       X_Return_Status     := Lx_Return_Status;
3569 
3570     WHEN OTHERS THEN
3571 
3572       OKC_API.SET_MESSAGE
3573         (P_App_Name	  => G_APP_NAME_OKC
3574 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
3575 	,P_Token1	  => G_SQLCODE_TOKEN
3576 	,P_Token1_Value	  => SQLCODE
3577 	,P_Token2	  => G_SQLERRM_TOKEN
3578 	,P_Token2_Value   => SQLERRM);
3579 
3580       OKC_API.SET_MESSAGE
3581         (P_App_Name	  => G_APP_NAME_OKC
3582 	,P_Msg_Name	  => G_DEBUG_TOKEN
3583 	,P_Token1	  => G_PACKAGE_TOKEN
3584 	,P_Token1_Value	  => G_PKG_NAME
3585 	,P_Token2	  => G_PROGRAM_TOKEN
3586 	,P_Token2_Value   => 'Compute_React_By_DateTime');
3587 
3588       X_Result            := G_FALSE;
3589       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
3590 
3591   END Compute_React_By_DateTime;
3592 
3593 -----------------------------------------------------------------------------------------------------------------------*
3594     /*vgujarat - modified for access hour ER 9675504*/
3595   PROCEDURE Get_ReactResol_By_DateTime
3596     (P_API_Version		IN  NUMBER
3597     ,P_Init_Msg_List		IN  VARCHAR2
3598     ,P_SVL_Id	        IN  Gx_OKS_Id -- can be service line id or coverage line id depending on P_Template_YN is 'N' or, 'Y'
3599     ,P_BusiProc_Id	        IN  Gx_BusProcess_Id
3600     ,P_Severity_Id		IN  Gx_Severity_Id
3601     ,P_Request_Date		IN  DATE
3602     ,P_Request_TZone_id		IN  Gx_TimeZoneId
3603     ,P_Dates_In_Input_TZ      IN VARCHAR2       -- Added for 12.0 ENT-TZ project (JVARGHES)
3604     ,P_template_YN              IN  VARCHAR2 -- for default coverage enhancement
3605     ,P_Option                   IN  VARCHAR2
3606     ,P_Rcn_Rsn_Flag             IN  VARCHAR2
3607     ,P_Set_ExcepionStack        IN  Gx_Boolean
3608     ,X_React_Durn	        out nocopy Gx_ReactDurn
3609     ,X_React_UOM 	        out nocopy Gx_ReactUOM
3610     ,X_React_Day                out nocopy VARCHAR2
3611     ,X_React_By_DateTime        out nocopy DATE
3612     ,X_React_Start_DateTime     out nocopy DATE
3613     ,X_Resolve_Durn	        out nocopy Gx_ReactDurn
3614     ,X_Resolve_UOM 	        out nocopy Gx_ReactUOM
3615     ,X_Resolve_Day              out nocopy VARCHAR2
3616     ,X_Resolve_By_DateTime      out nocopy DATE
3617     ,X_Resolve_Start_DateTime   out nocopy DATE
3618     ,X_Msg_count		OUT NOCOPY Number
3619     ,X_Msg_data			OUT NOCOPY Varchar2
3620     ,X_Result                   out nocopy Gx_Boolean
3621     ,X_Return_Status            out nocopy Gx_Ret_Sts
3622     ,P_cust_id                  IN NUMBER DEFAULT NULL
3623     ,P_cust_site_id             IN NUMBER DEFAULT NULL
3624     ,P_cust_loc_id              IN NUMBER DEFAULT NULL)
3625   IS
3626 
3627 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3628 
3629     CURSOR Get_Cov_Timezones(P_BPL_Id in number) IS
3630        select  oct.id,
3631                oct.timezone_id,
3632                oct.default_yn,
3633                okslb.APPLY_DEFAULT_TIMEZONE
3634         from   okc_k_lines_b okclb,
3635                oks_k_lines_b okslb,
3636                oks_coverage_timezones oct
3637         where  okclb.id = P_BPL_Id
3638         and    okslb.cle_id = okclb.id
3639         and    oct.cle_id = okclb.id;
3640 
3641 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3642 
3643     Lx_SVL_Id                  CONSTANT Gx_OKS_Id := P_SVL_Id;
3644     Lx_BusiProc_Id             CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
3645     Lx_Severity_Id             CONSTANT Gx_Severity_Id := P_Severity_Id;
3646     Ld_Request_Date            DATE;
3647     Lx_Request_TZone_Id        CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
3648     Lx_ReactReso_ObjCode       CONSTANT Gx_JTOT_ObjCode := G_JTOT_OBJ_REACTIME;
3649     Lx_Set_ExcepionStack       CONSTANT Gx_Boolean := P_Set_ExcepionStack;
3650     Lv_Option                  CONSTANT VARCHAR2(10) := P_Option;
3651     Lv_Rcn_Rsn_Flag            CONSTANT Gx_Rule_Category := NVL(P_Rcn_Rsn_Flag,G_RUL_CATEGORY_REACT_RESOLVE);
3652     Lv_Template_YN             VARCHAR2(1); -- default coverage functionality
3653 
3654     /*vgujarat - modified for access hour ER 9675504*/
3655     Lx_cust_id                 CONSTANT NUMBER              := P_cust_id;
3656     Lx_cust_site_id            CONSTANT NUMBER              := P_cust_site_id;
3657     Lx_cust_loc_id             CONSTANT NUMBER              := P_cust_loc_id;
3658 
3659     Lx_React_Durn                Gx_ReactDurn;
3660     Lx_React_UOM                 Gx_ReactUOM;
3661     Lv_React_Day                 VARCHAR2(25);
3662     Ld_React_By_DateTime         DATE;
3663     Ld_React_Start_DateTime      DATE;
3664     Ld_TZ_React_By_DateTime      DATE;
3665     Ld_TZ_React_Start_DateTime   DATE;
3666 
3667     Lx_Resolve_Durn              Gx_ReactDurn;
3668     Lx_Resolve_UOM               Gx_ReactUOM;
3669     Lv_Resolve_Day               VARCHAR2(25);
3670     Ld_Resolve_By_DateTime       DATE;
3671     Ld_Resolve_Start_DateTime    DATE;
3672     Ld_TZ_Resolve_By_DateTime    DATE;
3673     Ld_TZ_Resolve_Start_DateTime DATE;
3674 
3675     Lx_Result                  Gx_Boolean;
3676     Lx_Result1                 Gx_Boolean;
3677     Lx_Result2                 Gx_Boolean;
3678     Lx_Result3                 Gx_Boolean;
3679     Lx_Result4                 Gx_Boolean;
3680 
3681     Lx_Return_Status           Gx_Ret_Sts;
3682 
3683     Ld_SVL_Start               DATE;
3684     Ld_SVL_End                 DATE;
3685     Ld_SVL_Terminated          DATE;
3686     Ld_SVL_EffEnd_Date         DATE;
3687 
3688     Lx_CVL_Id                  Gx_OKS_Id;
3689     Ld_CVL_Start               DATE;
3690     Ld_CVL_End                 DATE;
3691     Ld_CVL_Terminated          DATE;
3692     Ld_CVL_EffEnd_Date         DATE;
3693 
3694     Lx_BPL_Id                  Gx_OKS_Id;
3695     Ld_BPL_Start               DATE;
3696     Ld_BPL_End                 DATE;
3697     Ld_BPL_Terminated          DATE;
3698     Ld_BPL_EffEnd_Date         DATE;
3699 
3700 --    Lx_BP_CVTRule_Id	       Gx_Rule_Id;
3701     Lx_BP_CVTLine_Id           Gx_OKS_Id;
3702     Lx_BP_Tz_Id                Gx_TimeZoneId;
3703 
3704     Ld_TzCont_Req_Date         DATE;
3705 
3706     Lx_RTL_Id                  Gx_OKS_Id;
3707     Ld_RTL_Start               DATE;
3708     Ld_RTL_End                 DATE;
3709     Ld_RTL_Terminated          DATE;
3710 
3711 --    Lx_RTL_RCN_Rule_Id	       Gx_Rule_Id;
3712     Lx_RTL_RCN_Line_Id	       Gx_OKS_Id;  -- 11.5.10 addition for enhancements
3713     Lx_RTL_RCN_WT_YN           Gx_YesNo;
3714     Lx_RTL_RCN_Id              Gx_OKS_Id;
3715     Ld_RTL_RCN_Start           DATE;
3716     Ld_RTL_RCN_End             DATE;
3717     Ld_RTL_RCN_Terminated      DATE;
3718 
3719 --    Lx_RTL_RSN_Rule_Id	       Gx_Rule_Id;
3720     Lx_RTL_RSN_Line_Id	       Gx_OKS_Id; -- 11.5.10 addition for enhancements
3721     Lx_RTL_RSN_WT_YN           Gx_YesNo;
3722     Lx_RTL_RSN_Id              Gx_OKS_Id;
3723     Ld_RTL_RSN_Start           DATE;
3724     Ld_RTL_RSN_End             DATE;
3725     Ld_RTL_RSN_Terminated      DATE;
3726 
3727     Ld_RTL_EffEnd_Date         DATE;
3728 
3729     Ld_Cont_EffStart           DATE;
3730     Ld_Cont_EffEnd             DATE;
3731 
3732     Lx_BP_CovTimes             GT_Bp_CoverTimes;
3733     Lx_Reaction_Attribs        GT_Bp_Reactions;
3734     Lx_Resolution_Attribs      GT_Bp_Reactions;
3735 
3736 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3737     Lx_Use_TZE_Id              number;
3738     Lx_TZE_Mtch_Exists         varchar2(1);
3739     Lx_Def_TZE_Id              number;
3740     Lx_Apply_Def_Tze           varchar2(1);
3741     Lx_Use_TZE_Line_Id         number;
3742     Lx_Def_TZE_Line_Id         number;
3743 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
3744 
3745     L_EXCEP_NULL_VALUE         EXCEPTION;
3746     L_EXCEP_NO_DATA_FOUND      EXCEPTION;
3747     L_EXCEP_NOT_EFFECTIVE      EXCEPTION;
3748     L_EXCEP_UNEXPECTED_ERR     EXCEPTION;
3749 
3750     -- Added for 12.0 ENT-TZ project (JVARGHES)
3751 
3752     ln_Param_DatesTZ            NUMBER;
3753     ln_CovTZ                    NUMBER;
3754 
3755     -- Added for 12.0 Coverage Rearch project (JVARGHES)
3756 
3757     Lv_Std_Cov_YN              VARCHAR2(10);
3758 
3759     Ld_BPL_OFS_Start	       DATE;
3760     Ln_BPL_OFS_Duration	       NUMBER;
3761     Lv_BPL_OFS_UOM             VARCHAR2(100);
3762     --
3763 
3764   BEGIN
3765 
3766     Ld_Request_Date            := nvl(P_Request_Date,sysdate);
3767     Lv_Template_YN             := nvl(P_template_YN,'N'); -- default coverage functionality
3768 
3769     Lx_Result                  := G_TRUE;
3770     Lx_Result1                 := G_FALSE;
3771     Lx_Result2                 := G_FALSE;
3772     Lx_Result3                 := G_FALSE;
3773     Lx_Result4                 := G_FALSE;
3774 
3775     Lx_Return_Status           := G_RET_STS_SUCCESS;
3776 
3777     Validate_Required_RT_Tokens
3778       (P_SVL_Id	                => Lx_SVL_Id -- Lx_SVL_Id
3779       ,P_BusiProc_Id	        => Lx_BusiProc_id
3780       ,P_Severity_Id		=> Lx_Severity_Id
3781       ,P_Request_Date		=> Ld_Request_Date
3782       ,P_Request_TZone_id	=> Lx_Request_TZone_Id
3783       ,P_template_YN          => Lv_Template_YN -- for default coverage functionality
3784       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
3785       ,X_Result                 => Lx_Result
3786       ,X_Return_Status 	        => Lx_Return_Status);
3787 
3788     IF Lx_Result <> G_TRUE  THEN
3789       RAISE L_EXCEP_NULL_VALUE;
3790     END IF;
3791 
3792     IF Lv_Template_YN = 'N' THEN
3793 
3794        -- Modified for 12.0 Coverage Rearch project (JVARGHES)
3795        --
3796        --   Validate_Service_Line
3797        --    (P_SVL_Id	              => Lx_SVL_Id --Lx_SVL_Id
3798        --    ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
3799        --    ,X_SVL_Start              => Ld_SVL_Start
3800        --    ,X_SVL_End                => Ld_SVL_End
3801        --    ,X_SVL_Terminated         => Ld_SVL_Terminated
3802        --    ,X_Result                 => Lx_Result
3803        --    ,X_Return_Status 	        => Lx_Return_Status);
3804        --
3805        -- Added for 12.0 Coverage Rearch project (JVARGHES)
3806        --
3807 
3808         Validate_Service_Line
3809          (P_SVL_Id	           => Lx_SVL_Id
3810          ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
3811          ,X_CVL_Id	           => Lx_CVL_Id
3812          ,X_Std_Cov_YN	           => Lv_Std_Cov_YN
3813          ,X_SVL_Start              => Ld_SVL_Start
3814          ,X_SVL_End                => Ld_SVL_End
3815          ,X_SVL_Terminated         => Ld_SVL_Terminated
3816          ,X_Result                 => Lx_Result
3817          ,X_Return_Status 	     => Lx_Return_Status);
3818 
3819         --
3820 
3821         IF Lx_Result <> G_TRUE  THEN
3822           RAISE L_EXCEP_NO_DATA_FOUND;
3823         END IF;
3824 
3825         Get_Effective_End_Date
3826         (P_Start_Date             => Ld_SVL_Start
3827         ,P_End_Date               => Ld_SVL_End
3828         ,P_Termination_Date       => Ld_SVL_Terminated
3829         ,P_EndDate_Required       => G_TRUE
3830         ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
3831         ,P_ExcepionMsg            => 'Service Line'
3832         ,X_EffEnd_Date            => Ld_SVL_EffEnd_Date
3833         ,X_Result                 => Lx_Result
3834         ,X_Return_Status  	    => Lx_Return_Status);
3835 
3836         IF Lx_Result <> G_TRUE  THEN
3837           RAISE L_EXCEP_NULL_VALUE;
3838         END IF;
3839 
3840     -- Added for 12.0 Coverage Rearch project (JVARGHES)
3841 
3842     ELSE
3843 
3844       Lx_CVL_Id  := Lx_SVL_Id;
3845 
3846     END IF;
3847     --
3848     --
3849     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
3850     --
3851     -- Validate_Coverage_Line
3852     --  (P_SVL_Id	                => Lx_SVL_Id --Lx_SVL_Id
3853     --  ,P_Template_YN            => Lv_Template_YN -- for default coverage functionality
3854     --  ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
3855     --  ,X_CVL_Id                 => Lx_CVL_Id
3856     --  ,X_CVL_Start              => Ld_CVL_Start
3857     --  ,X_CVL_End                => Ld_CVL_End
3858     --  ,X_CVL_Terminated         => Ld_CVL_Terminated
3859     --  ,X_Result                 => Lx_Result
3860     --  ,X_Return_Status 	    => Lx_Return_Status);
3861     --
3862     -- Added for 12.0 Coverage Rearch project (JVARGHES)
3863     --
3864 
3865     Validate_Coverage_Line
3866      (P_CVL_Id	             => Lx_CVL_Id
3867      ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
3868      ,X_CVL_Start              => Ld_CVL_Start
3869      ,X_CVL_End                => Ld_CVL_End
3870      ,X_CVL_Terminated         => Ld_CVL_Terminated
3871      ,X_Result                 => Lx_Result
3872      ,X_Return_Status 	       => Lx_Return_Status);
3873 
3874     IF Lx_Result <> G_TRUE  THEN
3875       RAISE L_EXCEP_NO_DATA_FOUND;
3876     END IF;
3877 
3878     IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
3879     THEN
3880 
3881       Ld_CVL_Start      := Ld_SVL_Start;
3882       Ld_CVL_End        := Ld_SVL_End;
3883       Ld_CVL_Terminated := Ld_SVL_Terminated;
3884 
3885     END IF;
3886 
3887     --
3888     --
3889 
3890     IF Lv_Template_YN = 'N' THEN -- for default coverage fucntionality
3891 
3892         Get_Effective_End_Date
3893          (P_Start_Date             => Ld_CVL_Start
3894          ,P_End_Date               => Ld_CVL_End
3895          ,P_Termination_Date       => Ld_CVL_Terminated
3896          ,P_EndDate_Required       => G_TRUE
3897          ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
3898          ,P_ExcepionMsg            => 'Coverage Line'
3899          ,X_EffEnd_Date            => Ld_CVL_EffEnd_Date
3900          ,X_Result                 => Lx_Result
3901          ,X_Return_Status  	     => Lx_Return_Status);
3902 
3903         IF Lx_Result <> G_TRUE  THEN
3904           RAISE L_EXCEP_NULL_VALUE;
3905         END IF;
3906 
3907     END IF;
3908 
3909 
3910     Validate_Contract_BP
3911       (P_CVL_Id	              => Lx_CVL_Id -- P_SVL_Id   => Lx_SVL_Id
3912       ,P_BP_Id	              => Lx_BusiProc_Id
3913       ,P_BP_ObjCode             => G_JTOT_OBJ_BUSIPROC
3914       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
3915       ,P_REQ_DATE               => Ld_Request_Date  ------ansraj bug 13795417
3916       ,X_BPL_Id                 => Lx_BPL_Id
3917       ,X_BPL_Start              => Ld_BPL_Start
3918       ,X_BPL_End                => Ld_BPL_End
3919       ,X_BPL_Terminated         => Ld_BPL_Terminated
3920       ,X_Result                 => Lx_Result
3921       ,X_Return_Status 	        => Lx_Return_Status);
3922 
3923       IF Lx_Result <> G_TRUE  THEN
3924         RAISE L_EXCEP_NO_DATA_FOUND;
3925       END IF;
3926 
3927     --
3928     -- Added for 12.0 Coverage Rearch project (JVARGHES)
3929     --
3930 
3931     IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
3932     THEN
3933 
3934       Get_BP_Line_Start_Offset
3935        (P_BPL_Id	              => Lx_BPL_Id
3936        ,P_SVL_Start	        => Ld_SVL_Start
3937        ,X_BPL_OFS_Start	        => Ld_BPL_Start
3938        ,X_BPL_OFS_Duration	  => Ln_BPL_OFS_Duration
3939        ,X_BPL_OFS_UOM	        => Lv_BPL_OFS_UOM
3940        ,X_Return_Status 	  => Lx_Return_Status);
3941 
3942       IF X_Return_Status <> G_RET_STS_SUCCESS THEN
3943         RAISE L_EXCEP_NO_DATA_FOUND;
3944       END IF;
3945 
3946        Ld_BPL_End        := Ld_SVL_End;
3947        Ld_BPL_Terminated := Ld_SVL_Terminated;
3948 
3949     END IF;
3950 
3951     --
3952 
3953       IF Lv_Template_YN = 'N' THEN  -- for default coverage fucntionality
3954 
3955        Get_Effective_End_Date
3956         (P_Start_Date             => Ld_BPL_Start
3957         ,P_End_Date               => Ld_BPL_End
3958         ,P_Termination_Date       => Ld_BPL_Terminated
3959         ,P_EndDate_Required       => G_TRUE
3960         ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
3961         ,P_ExcepionMsg            => 'Business Process Line'
3962         ,X_EffEnd_Date            => Ld_BPL_EffEnd_Date
3963         ,X_Result                 => Lx_Result
3964         ,X_Return_Status  	      => Lx_Return_Status);
3965 
3966         IF Lx_Result <> G_TRUE  THEN
3967             RAISE L_EXCEP_NULL_VALUE;
3968         END IF;
3969 
3970        END IF;
3971 
3972 ----------------------------11.5.10 select coverage time zone starts -------------------
3973 
3974    Lx_Use_TZE_Id          := null;
3975    Lx_TZE_Mtch_Exists     := 'N';
3976    Lx_Def_TZE_Id          := null;
3977    Lx_Apply_Def_Tze       := null;
3978    Lx_Use_TZE_Line_Id     := null;
3979    Lx_Def_TZE_Line_Id     := null;
3980 
3981    for Cov_Timezones_rec in Get_Cov_Timezones(Lx_BPL_Id) loop
3982 
3983      if Lx_Request_TZone_Id = Cov_Timezones_rec.timezone_id then
3984 
3985        Lx_Use_TZE_Id        := Lx_Request_TZone_Id;
3986        Lx_TZE_Mtch_Exists   := 'Y';
3987        Lx_Use_TZE_Line_Id   := Cov_Timezones_rec.id;
3988 
3989        exit;
3990 
3991      end if;
3992 
3993      if Cov_Timezones_rec.default_yn =  'Y' then
3994 
3995        Lx_Def_TZE_Id        := Cov_Timezones_rec.timezone_id;
3996        Lx_Def_TZE_Line_Id   := Cov_Timezones_rec.id;
3997 
3998      end if;
3999 
4000      Lx_Apply_Def_Tze       := Cov_Timezones_rec.APPLY_DEFAULT_TIMEZONE;
4001 
4002    end loop;
4003 
4004    if Lx_Use_TZE_Id is null then
4005 
4006       if Lx_Apply_Def_Tze = 'Y' then
4007 
4008       -- Lx_Use_TZE_Id          := Lx_Def_TZE_Id;           -- Bug# 5137665
4009          Lx_Use_TZE_Id          := Lx_Request_TZone_Id;     -- Bug# 5137665
4010          Lx_TZE_Mtch_Exists     := 'Y';
4011          Lx_Use_TZE_Line_Id     := Lx_Def_TZE_Line_Id;
4012 
4013       end if;
4014 
4015    end if;
4016 
4017    if Lx_Use_TZE_Line_Id is null then
4018 
4019      Lx_Use_TZE_Line_Id     := Lx_Def_TZE_Line_Id;
4020 
4021    end if;
4022 
4023    -- Commented for 12.0 ENT-TZ project (JVARGHES)
4024    --
4025    --if Lx_Use_TZE_Id is null then
4026    --
4027    -- Convert_TimeZone
4028    --   (P_API_Version	        => P_API_Version
4029    --   ,P_Init_Msg_List          => P_Init_Msg_List
4030    --   ,P_Source_Date            => Ld_Request_Date
4031    --   ,P_Source_Tz_Id           => Lx_Request_TZone_Id
4032    --   ,P_Dest_Tz_Id             => Lx_Def_TZE_Id --Lx_BP_Tz_Id --11.5.10 multiple coverage time zone enhancements
4033    --   ,X_Dest_Date              => Ld_TzCont_Req_Date
4034    --   ,X_Msg_Count              => X_Msg_count
4035    --   ,X_Msg_Data		    => X_Msg_Data
4036    --   ,X_Return_Status 	    => Lx_Return_Status);
4037    --
4038    -- IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
4039    --   RAISE L_EXCEP_NO_DATA_FOUND;
4040    -- END IF;
4041    --
4042    -- else
4043    --
4044    --     Ld_TzCont_Req_Date := Ld_Request_Date;
4045    --
4046    -- end if;
4047    --
4048    -- Added for 12.0 ENT-TZ project (JVARGHES)
4049    --
4050 
4051    IF NVL(P_DATES_IN_INPUT_TZ,'Y') =  'N' THEN
4052      ln_Param_DatesTZ :=  fnd_profile.VALUE ('SERVER_TIMEZONE_ID');
4053    ELSE
4054      ln_Param_DatesTZ :=  Lx_Request_TZone_id;
4055    END IF;
4056 
4057    ln_CovTZ           := NVL(Lx_Use_TZE_Id, Lx_Def_TZE_Id);
4058 
4059    IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11)  THEN
4060 
4061       Ld_TzCont_Req_Date := Ld_Request_Date;
4062 
4063    ELSE
4064 
4065      Convert_TimeZone
4066       (P_API_Version	        => P_API_Version
4067       ,P_Init_Msg_List          => P_Init_Msg_List
4068       ,P_Source_Date            => Ld_Request_Date
4069       ,P_Source_Tz_Id           => ln_Param_DatesTZ
4070       ,P_Dest_Tz_Id             => ln_CovTZ
4071       ,X_Dest_Date              => Ld_TzCont_Req_Date
4072       ,X_Msg_Count              => X_Msg_count
4073       ,X_Msg_Data		        => X_Msg_Data
4074       ,X_Return_Status 	        => Lx_Return_Status);
4075 
4076      IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
4077        RAISE L_EXCEP_NO_DATA_FOUND;
4078      END IF;
4079 
4080    END IF;
4081 
4082    --
4083    --
4084 ----------------------------11.5.10 select coverage time zone ends -------------------
4085 
4086     IF Lv_Template_YN = 'N' THEN  -- for default coverage functionality
4087 
4088       Validate_Effectivity
4089       (P_Request_Date	        => Ld_TzCont_Req_Date
4090       ,P_Start_DateTime         => Ld_SVL_Start
4091       ,P_End_DateTime           => Ld_SVL_EffEnd_Date
4092       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
4093       ,P_CL_Msg_TokenValue      => 'Service Line'
4094       ,X_Result                 => Lx_Result
4095       ,X_Return_Status 	        => Lx_Return_Status);
4096 
4097       IF Lx_Result <> G_TRUE  THEN
4098         RAISE L_EXCEP_NOT_EFFECTIVE;
4099       END IF;
4100 
4101       Validate_Effectivity
4102       (P_Request_Date	        => Ld_TzCont_Req_Date
4103       ,P_Start_DateTime         => Ld_CVL_Start
4104       ,P_End_DateTime           => Ld_CVL_EffEnd_Date
4105       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
4106       ,P_CL_Msg_TokenValue      => 'Coverage Line'
4107       ,X_Result                 => Lx_Result
4108       ,X_Return_Status 	        => Lx_Return_Status);
4109 
4110       IF Lx_Result <> G_TRUE  THEN
4111         RAISE L_EXCEP_NOT_EFFECTIVE;
4112       END IF;
4113 
4114       Validate_Effectivity
4115       (P_Request_Date	        => Ld_TzCont_Req_Date
4116       ,P_Start_DateTime         => Ld_BPL_Start
4117       ,P_End_DateTime           => Ld_BPL_EffEnd_Date
4118       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
4119       ,P_CL_Msg_TokenValue      => 'Business Process Line'
4120       ,X_Result                 => Lx_Result
4121       ,X_Return_Status 	        => Lx_Return_Status);
4122 
4123       IF Lx_Result <> G_TRUE  THEN
4124         RAISE L_EXCEP_NOT_EFFECTIVE;
4125       END IF;
4126 
4127     END IF;
4128 
4129     IF Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_REACTION OR Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_REACT_RESOLVE THEN
4130 
4131       Get_BP_ReactResolTime_Line
4132         (P_BPL_Id	             => Lx_BPL_Id
4133         ,P_Severity_Id	         => Lx_Severity_Id
4134         ,P_TimeType_Category     => G_RUL_CATEGORY_REACTION
4135         ,P_Active_YN             => G_YES
4136         ,P_Set_ExcepionStack     => Lx_Set_ExcepionStack
4137         ,X_RTL_Id                => Lx_RTL_RCN_Id
4138         ,X_RTL_Start             => Ld_RTL_RCN_Start
4139         ,X_RTL_End               => Ld_RTL_RCN_End
4140         ,X_RTL_Terminated        => Ld_RTL_RCN_Terminated
4141         ,X_RTL_Line_Id	         => Lx_RTL_RCN_Line_Id
4142         ,X_RTL_WT_YN             => Lx_RTL_RCN_WT_YN
4143         ,X_Result                => Lx_Result1
4144         ,X_Return_Status 	     => Lx_Return_Status);
4145 
4146       IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR  THEN
4147         Lx_Result         := Lx_Result1;
4148         RAISE L_EXCEP_UNEXPECTED_ERR;
4149       END IF;
4150 
4151     END IF;
4152 
4153     IF Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_RESOLUTION OR Lv_Rcn_Rsn_Flag = G_RUL_CATEGORY_REACT_RESOLVE THEN
4154 
4155       Get_BP_ReactResolTime_Line
4156         (P_BPL_Id	             => Lx_BPL_Id
4157         ,P_Severity_Id	         => Lx_Severity_Id
4158         ,P_TimeType_Category     => G_RUL_CATEGORY_RESOLUTION
4159         ,P_Active_YN             => G_YES
4160         ,P_Set_ExcepionStack     => Lx_Set_ExcepionStack
4161         ,X_RTL_Id                => Lx_RTL_RSN_Id
4162         ,X_RTL_Start             => Ld_RTL_RSN_Start
4163         ,X_RTL_End               => Ld_RTL_RSN_End
4164         ,X_RTL_Terminated        => Ld_RTL_RSN_Terminated
4165         ,X_RTL_Line_Id	         => Lx_RTL_RSN_Line_Id
4166         ,X_RTL_WT_YN             => Lx_RTL_RSN_WT_YN
4167         ,X_Result                => Lx_Result2
4168         ,X_Return_Status 	     => Lx_Return_Status);
4169 
4170       IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR  THEN
4171         Lx_Result         := Lx_Result2;
4172         RAISE L_EXCEP_UNEXPECTED_ERR;
4173       END IF;
4174 
4175     END IF;
4176 
4177     IF Lx_Result1 = G_FALSE AND Lx_Result2 = G_FALSE THEN
4178       Lx_Result         := G_FALSE;
4179       RAISE L_EXCEP_NO_DATA_FOUND;
4180     ELSE
4181       Lx_Result         := G_TRUE;
4182     --Lx_Return_Status  := G_RET_STS_SUCCESS;
4183     END IF;
4184 
4185     IF Lx_Result1 = G_TRUE  THEN
4186 
4187       Lx_RTL_Id             := Lx_RTL_RCN_Id;
4188       Ld_RTL_Start          := Ld_RTL_RCN_Start;
4189       Ld_RTL_End            := Ld_RTL_RCN_End;
4190       Ld_RTL_Terminated     := Ld_RTL_RCN_Terminated;
4191 
4192     ELSIF Lx_Result2 = G_TRUE  THEN
4193 
4194       Lx_RTL_Id             := Lx_RTL_RSN_Id;
4195       Ld_RTL_Start          := Ld_RTL_RSN_Start;
4196       Ld_RTL_End            := Ld_RTL_RSN_End;
4197       Ld_RTL_Terminated     := Ld_RTL_RSN_Terminated;
4198 
4199     END IF;
4200 
4201     --
4202     -- Added for 12.0 Coverage Rearch project (JVARGHES)
4203     --
4204 
4205     IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
4206     THEN
4207 
4208       Ld_RTL_Start      := Ld_BPL_Start;
4209       Ld_RTL_End        := Ld_BPL_End ;
4210       Ld_RTL_Terminated := Ld_BPL_Terminated;
4211 
4212     END IF;
4213 
4214     --
4215 
4216     IF Lv_Template_YN = 'N' THEN -- for default coverage functionality
4217 
4218       Get_Effective_End_Date
4219       (P_Start_Date             => Ld_RTL_Start
4220       ,P_End_Date               => Ld_RTL_End
4221       ,P_Termination_Date       => Ld_RTL_Terminated
4222       ,P_EndDate_Required       => G_FALSE
4223       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
4224       ,P_ExcepionMsg            => 'Reaction/Resolution Time Line'
4225       ,X_EffEnd_Date            => Ld_RTL_EffEnd_Date
4226       ,X_Result                 => Lx_Result
4227       ,X_Return_Status  	=> Lx_Return_Status);
4228 
4229       IF Lx_Result <> G_TRUE  THEN
4230         RAISE L_EXCEP_NULL_VALUE;
4231       END IF;
4232 
4233       Validate_Effectivity
4234       (P_Request_Date	        => Ld_TzCont_Req_Date
4235       ,P_Start_DateTime         => Ld_RTL_Start
4236       ,P_End_DateTime           => Ld_RTL_EffEnd_Date
4237       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
4238       ,P_CL_Msg_TokenValue      => 'Reaction/Resolution Time Line'
4239       ,X_Result                 => Lx_Result
4240       ,X_Return_Status 	        => Lx_Return_Status);
4241 
4242       IF Lx_Result <> G_TRUE  THEN
4243         RAISE L_EXCEP_NOT_EFFECTIVE;
4244       END IF;
4245 
4246      Get_Cont_Effective_Dates
4247       (P_SVL_Start             => Ld_SVL_Start
4248       ,P_SVL_End               => Ld_SVL_EffEnd_Date
4249       ,P_CVL_Start             => Ld_CVL_Start
4250       ,P_CVL_End               => Ld_CVL_EffEnd_Date
4251       ,P_BPL_Start             => Ld_BPL_Start
4252       ,P_BPL_End               => Ld_BPL_EffEnd_Date
4253       ,P_RTL_Start             => Ld_RTL_Start
4254       ,P_RTL_End               => Ld_RTL_EffEnd_Date
4255       ,P_Set_ExcepionStack     => Lx_Set_ExcepionStack
4256       ,X_Cont_EffStart         => Ld_Cont_EffStart
4257       ,X_Cont_EffEnd           => Ld_Cont_EffEnd
4258       ,X_Result                => Lx_Result
4259       ,X_Return_Status         => Lx_Return_Status);
4260 
4261       IF Lx_Result <> G_TRUE  THEN
4262         RAISE L_EXCEP_NOT_EFFECTIVE;
4263       END IF;
4264 
4265     END IF;
4266 
4267 -- to include multiple time zones enhancement and architecture changes in 11.5.10
4268 -- Lx_BP_CVTRule_Id is replaced by Lx_Use_TZE_Line_Id
4269 
4270     /*vgujarat - modified for access hour ER 9675504*/
4271     Get_BP_Cover_Times
4272       (P_BP_CVTLine_Id	      => Lx_Use_TZE_Line_Id -- Lx_BP_CVTRule_Id
4273       ,P_Request_Date         => Ld_TzCont_Req_Date
4274       ,P_CovDay_DispFmt       => 'DY'
4275       ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
4276       ,X_BP_CovTimes          => Lx_BP_CovTimes
4277       ,X_Result               => Lx_Result
4278       ,X_Return_Status        => Lx_Return_Status
4279       ,P_cust_id              => Lx_cust_id
4280       ,P_cust_site_id         => Lx_cust_site_id
4281       ,P_cust_loc_id          => Lx_cust_loc_id);
4282     IF Lx_Result <> G_TRUE  THEN
4283       RAISE L_EXCEP_NO_DATA_FOUND;
4284     END IF;
4285 
4286     --**Push Requset date to Next available Cover Day and Time.
4287 
4288     IF Lx_RTL_RCN_Line_Id IS NOT NULL THEN
4289 
4290       Get_BP_Reaction_Times
4291         (P_RTL_Line_Id          => Lx_RTL_RCN_Line_Id -- P_RTL_Rule_Id => Lx_RTL_RCN_Rule_Id--  11.5.10 changes
4292         ,P_Request_Date         => Ld_TzCont_Req_Date
4293         ,P_TimeType_Category    => 'RCN' -- 11.5.10 new addition
4294         ,P_ReactDay_DispFmt     => 'DY'
4295         ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
4296         ,X_Reaction_Attribs     => Lx_Reaction_Attribs
4297         ,X_Result               => Lx_Result3
4298         ,X_Return_Status        => Lx_Return_Status);
4299 
4300 
4301       IF Lx_Result3 = G_TRUE  THEN
4302 
4303         Compute_React_By_DateTime
4304           (P_Request_DateTime     => Ld_TzCont_Req_Date
4305           ,P_Cover_EffStart       => Ld_Cont_EffStart
4306           ,P_Cover_EffEnd         => Ld_Cont_EffEnd
4307           ,P_BP_Work_Through      => Lx_RTL_RCN_WT_YN
4308           ,P_BP_Cover_Times       => Lx_BP_CovTimes
4309           ,P_Reaction_Attribs     => Lx_Reaction_Attribs
4310           ,P_Option               => Lv_Option
4311           ,P_Template_YN          => Lv_template_YN -- default coverage
4312           ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
4313           ,X_React_Durn	          => Lx_React_Durn
4314           ,X_React_UOM 	          => Lx_React_UOM
4315           ,X_React_Day            => Lv_React_Day
4316           ,X_React_By_DateTime    => Ld_React_By_DateTime
4317           ,X_React_Start_DateTime => Ld_React_Start_DateTime
4318           ,X_Result               => Lx_Result
4319           ,X_Return_Status        => Lx_Return_Status);
4320 
4321        IF Lx_Result <> G_TRUE  THEN
4322          RAISE L_EXCEP_NO_DATA_FOUND;
4323        END IF;
4324 
4325   --
4326   -- Commented out for 12.0 ENT-TZ project (JVARGHES)
4327   --
4328   --     IF Lx_TZE_Mtch_Exists = 'N' then -- 11.5.10 multiple time zone enhancement
4329   --
4330   --      Convert_TimeZone
4331   --       (P_API_Version	         => P_API_Version
4332   --       ,P_Init_Msg_List        => P_Init_Msg_List
4333   --       ,P_Source_Date          => Ld_React_By_DateTime
4334   --       ,P_Source_Tz_Id         => Lx_Def_TZE_Id --Lx_BP_Tz_Id
4335   --       ,P_Dest_Tz_Id           => Lx_Request_TZone_Id
4336   --       ,X_Dest_Date            => Ld_TZ_React_By_DateTime
4337   --       ,X_Msg_Count            => X_Msg_count
4338   --       ,X_Msg_Data		     => X_Msg_Data
4339   --       ,X_Return_Status 	     => Lx_Return_Status);
4340   --
4341   --      IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
4342   --        RAISE L_EXCEP_NO_DATA_FOUND;
4343   --      END IF;
4344   --
4345   --      Convert_TimeZone
4346   --       (P_API_Version	         => P_API_Version
4347   --       ,P_Init_Msg_List        => P_Init_Msg_List
4348   --       ,P_Source_Date          => Ld_React_Start_DateTime
4349   --       ,P_Source_Tz_Id         => Lx_Def_TZE_Id --Lx_BP_Tz_Id
4350   --       ,P_Dest_Tz_Id           => Lx_Request_TZone_Id
4351   --       ,X_Dest_Date            => Ld_TZ_React_Start_DateTime
4352   --       ,X_Msg_Count            => X_Msg_count
4353   --       ,X_Msg_Data		     => X_Msg_Data
4354   --       ,X_Return_Status 	     => Lx_Return_Status);
4355   --
4356   --      IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
4357   --        RAISE L_EXCEP_NO_DATA_FOUND;
4358   --      END IF;
4359   --
4360   --    ELSE -- 11.5.10 multiple time zone enhancement
4361   --
4362   --        Ld_TZ_React_Start_DateTime := Ld_React_Start_DateTime;
4363   --        Ld_TZ_React_By_DateTime    := Ld_React_By_DateTime;
4364   --
4365   --     END IF;
4366   --
4367   --  Added for 12.0 ENT-TZ project (JVARGHES)
4368   --
4369 
4370    IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11)  THEN
4371 
4372       Ld_TZ_React_By_DateTime    := Ld_React_By_DateTime;
4373       Ld_TZ_React_Start_DateTime := Ld_React_Start_DateTime;
4374 
4375    ELSE
4376 
4377      Convert_TimeZone
4378       (P_API_Version	        => P_API_Version
4379       ,P_Init_Msg_List          => P_Init_Msg_List
4380       ,P_Source_Date            => Ld_React_By_DateTime
4381       ,P_Source_Tz_Id           => ln_CovTZ
4382       ,P_Dest_Tz_Id             => ln_Param_DatesTZ
4383       ,X_Dest_Date              => Ld_TZ_React_By_DateTime
4384       ,X_Msg_Count              => X_Msg_count
4385       ,X_Msg_Data		        => X_Msg_Data
4386       ,X_Return_Status 	        => Lx_Return_Status);
4387 
4388      IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
4389        RAISE L_EXCEP_NO_DATA_FOUND;
4390      END IF;
4391 
4392      Convert_TimeZone
4393       (P_API_Version	        => P_API_Version
4394       ,P_Init_Msg_List          => P_Init_Msg_List
4395       ,P_Source_Date            => Ld_React_Start_DateTime
4396       ,P_Source_Tz_Id           => ln_CovTZ
4397       ,P_Dest_Tz_Id             => ln_Param_DatesTZ
4398       ,X_Dest_Date              => Ld_TZ_React_Start_DateTime
4399       ,X_Msg_Count              => X_Msg_count
4400       ,X_Msg_Data		        => X_Msg_Data
4401       ,X_Return_Status 	        => Lx_Return_Status);
4402 
4403      IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
4404        RAISE L_EXCEP_NO_DATA_FOUND;
4405      END IF;
4406 
4407    END IF;
4408 
4409   --
4410   --
4411 
4412       ELSE
4413 
4414         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
4415           RAISE L_EXCEP_UNEXPECTED_ERR;
4416         END IF;
4417 
4418       END IF;
4419 
4420     END IF;
4421 
4422     IF Lx_RTL_RSN_Line_Id IS NOT NULL THEN
4423 
4424       Get_BP_Reaction_Times
4425         (P_RTL_Line_Id          => Lx_RTL_RSN_Line_Id -- P_RTL_Rule_Id  => Lx_RTL_RSN_Rule_Id -- 11.5.10 changes
4426         ,P_Request_Date         => Ld_TzCont_Req_Date
4427         ,P_TimeType_Category    => 'RSN' -- 11.5.10 new addition
4428         ,P_ReactDay_DispFmt     => 'DY'
4429         ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
4430         ,X_Reaction_Attribs     => Lx_Resolution_Attribs
4431         ,X_Result               => Lx_Result4
4432         ,X_Return_Status        => Lx_Return_Status);
4433 
4434       IF Lx_Result4 = G_TRUE  THEN
4435 
4436         Compute_React_By_DateTime
4437           (P_Request_DateTime     => Ld_TzCont_Req_Date
4438           ,P_Cover_EffStart       => Ld_Cont_EffStart
4439           ,P_Cover_EffEnd         => Ld_Cont_EffEnd
4440           ,P_BP_Work_Through      => Lx_RTL_RSN_WT_YN
4441           ,P_BP_Cover_Times       => Lx_BP_CovTimes
4442           ,P_Reaction_Attribs     => Lx_Resolution_Attribs
4443           ,P_Option               => Lv_Option
4444           ,P_Template_YN          => Lv_template_YN -- default coverage
4445           ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
4446           ,X_React_Durn	          => Lx_Resolve_Durn
4447           ,X_React_UOM 	          => Lx_Resolve_UOM
4448           ,X_React_Day            => Lv_Resolve_Day
4449           ,X_React_By_DateTime    => Ld_Resolve_By_DateTime
4450           ,X_React_Start_DateTime => Ld_Resolve_Start_DateTime
4451           ,X_Result               => Lx_Result
4452           ,X_Return_Status        => Lx_Return_Status);
4453 
4454         IF Lx_Result <> G_TRUE  THEN
4455           RAISE L_EXCEP_NO_DATA_FOUND;
4456         END IF;
4457 
4458 
4459   --
4460   -- Commented out for 12.0 ENT-TZ project (JVARGHES)
4461   --
4462   --
4463   --      IF Lx_TZE_Mtch_Exists = 'N' then -- 11.5.10 multiple time zone enhancement
4464   --
4465   --       Convert_TimeZone
4466   --        (P_API_Version	      => P_API_Version
4467   --        ,P_Init_Msg_List        => P_Init_Msg_List
4468   --        ,P_Source_Date          => Ld_Resolve_By_DateTime
4469   --        ,P_Source_Tz_Id         => Lx_Def_TZE_Id --Lx_BP_Tz_Id
4470   --        ,P_Dest_Tz_Id           => Lx_Request_TZone_Id
4471   --        ,X_Dest_Date            => Ld_TZ_Resolve_By_DateTime
4472   --        ,X_Msg_Count            => X_Msg_count
4473   --        ,X_Msg_Data		      => X_Msg_Data
4474   --        ,X_Return_Status 	      => Lx_Return_Status);
4475   --
4476   --       IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
4477   --        RAISE L_EXCEP_NO_DATA_FOUND;
4478   --       END IF;
4479   --
4480   --       Convert_TimeZone
4481   --        (P_API_Version	      => P_API_Version
4482   --        ,P_Init_Msg_List        => P_Init_Msg_List
4483   --        ,P_Source_Date          => Ld_Resolve_Start_DateTime
4484   --        ,P_Source_Tz_Id         => Lx_Def_TZE_Id --Lx_BP_Tz_Id
4485   --        ,P_Dest_Tz_Id           => Lx_Request_TZone_Id
4486   --        ,X_Dest_Date            => Ld_TZ_Resolve_Start_DateTime
4487   --        ,X_Msg_Count            => X_Msg_count
4488   --        ,X_Msg_Data		      => X_Msg_Data
4489   --        ,X_Return_Status 	      => Lx_Return_Status);
4490   --
4491   --       IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
4492   --         RAISE L_EXCEP_NO_DATA_FOUND;
4493   --       END IF;
4494   --
4495   --      ELSE -- 11.5.10 multiple time zone enhancement
4496   --
4497   --         Ld_TZ_Resolve_Start_DateTime := Ld_Resolve_Start_DateTime;
4498   --         Ld_TZ_Resolve_By_DateTime    := Ld_Resolve_By_DateTime;
4499   --
4500   --      END IF;
4501   --
4502   --
4503   --  Added for 12.0 ENT-TZ project (JVARGHES)
4504   --
4505 
4506    IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11)  THEN
4507 
4508       Ld_TZ_Resolve_By_DateTime    := Ld_Resolve_By_DateTime;
4509       Ld_TZ_Resolve_Start_DateTime := Ld_Resolve_Start_DateTime;
4510 
4511 
4512    ELSE
4513 
4514      Convert_TimeZone
4515       (P_API_Version	        => P_API_Version
4516       ,P_Init_Msg_List          => P_Init_Msg_List
4517       ,P_Source_Date            => Ld_Resolve_By_DateTime
4518       ,P_Source_Tz_Id           => ln_CovTZ
4519       ,P_Dest_Tz_Id             => ln_Param_DatesTZ
4520       ,X_Dest_Date              => Ld_TZ_Resolve_By_DateTime
4521       ,X_Msg_Count              => X_Msg_count
4522       ,X_Msg_Data		        => X_Msg_Data
4523       ,X_Return_Status 	        => Lx_Return_Status);
4524 
4525      IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
4526        RAISE L_EXCEP_NO_DATA_FOUND;
4527      END IF;
4528 
4529      Convert_TimeZone
4530       (P_API_Version	        => P_API_Version
4531       ,P_Init_Msg_List          => P_Init_Msg_List
4532       ,P_Source_Date            => Ld_Resolve_Start_DateTime
4533       ,P_Source_Tz_Id           => ln_CovTZ
4534       ,P_Dest_Tz_Id             => ln_Param_DatesTZ
4535       ,X_Dest_Date              => Ld_TZ_Resolve_Start_DateTime
4536       ,X_Msg_Count              => X_Msg_count
4537       ,X_Msg_Data		        => X_Msg_Data
4538       ,X_Return_Status 	        => Lx_Return_Status);
4539 
4540      IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
4541        RAISE L_EXCEP_NO_DATA_FOUND;
4542      END IF;
4543 
4544    END IF;
4545 
4546   --
4547   --
4548       ELSE
4549 
4550          IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
4551            RAISE L_EXCEP_UNEXPECTED_ERR;
4552          END IF;
4553 
4554       END IF;
4555 
4556     END IF;
4557 
4558     IF Lx_Result3 = G_FALSE AND Lx_Result4 = G_FALSE THEN
4559       Lx_Result         := G_FALSE;
4560       RAISE L_EXCEP_NO_DATA_FOUND;
4561     END IF;
4562 
4563     X_React_Durn	        := Lx_React_Durn;
4564     X_React_UOM 	        := Lx_React_UOM;
4565     X_React_Day                 := Lv_React_Day;
4566     X_React_By_DateTime         := Ld_TZ_React_By_DateTime;
4567     X_React_Start_DateTime      := Ld_TZ_React_Start_DateTime;
4568 
4569     X_Resolve_Durn	        := Lx_Resolve_Durn;
4570     X_Resolve_UOM 	        := Lx_Resolve_UOM;
4571     X_Resolve_Day               := Lv_Resolve_Day;
4572     X_Resolve_By_DateTime       := Ld_TZ_Resolve_By_DateTime;
4573     X_Resolve_Start_DateTime    := Ld_TZ_Resolve_Start_DateTime;
4574 
4575     X_Result                    := Lx_Result;
4576     X_Return_Status             := Lx_Return_Status;
4577 
4578   EXCEPTION
4579 
4580     WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_NO_DATA_FOUND OR L_EXCEP_NOT_EFFECTIVE OR L_EXCEP_UNEXPECTED_ERR THEN
4581 
4582       X_Result            := Lx_Result;
4583       X_Return_Status 	  := Lx_Return_Status;
4584 
4585     WHEN OTHERS THEN
4586 
4587       OKC_API.SET_MESSAGE
4588         (P_App_Name	  => G_APP_NAME_OKC
4589 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
4590 	,P_Token1	  => G_SQLCODE_TOKEN
4591 	,P_Token1_Value	  => SQLCODE
4592 	,P_Token2	  => G_SQLERRM_TOKEN
4593 	,P_Token2_Value   => SQLERRM);
4594 
4595       OKC_API.SET_MESSAGE
4596         (P_App_Name	  => G_APP_NAME_OKC
4597 	,P_Msg_Name	  => G_DEBUG_TOKEN
4598 	,P_Token1	  => G_PACKAGE_TOKEN
4599 	,P_Token1_Value	  => G_PKG_NAME
4600 	,P_Token2	  => G_PROGRAM_TOKEN
4601 	,P_Token2_Value   => 'Get_ReactResol_By_DateTime');
4602 
4603      X_Result            := G_FALSE;
4604      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
4605 
4606   END Get_ReactResol_By_DateTime;
4607 
4608 -----------------------------------------------------------------------------------------------------------------------*
4609     /*vgujarat - modified for access hour ER 9675504*/
4610   PROCEDURE Check_Reaction_Times
4611     (P_API_Version		IN  NUMBER
4612     ,P_Init_Msg_List		IN  VARCHAR2
4613     ,P_Business_Process_Id	IN  NUMBER
4614     ,P_Request_Date		IN  DATE
4615     ,P_Sr_Severity		IN  NUMBER
4616     ,P_Time_Zone_Id		IN  NUMBER
4617     ,P_Dates_In_Input_TZ      IN VARCHAR2    -- Added for 12.0 ENT-TZ project (JVARGHES)
4618     ,P_Contract_Line_Id	        IN  NUMBER
4619     ,X_Return_Status 		OUT NOCOPY VARCHAR2
4620     ,X_Msg_Count		OUT NOCOPY NUMBER
4621     ,X_Msg_Data			OUT NOCOPY VARCHAR2
4622     ,X_React_Within		OUT NOCOPY NUMBER
4623     ,X_React_TUOM		OUT NOCOPY VARCHAR2
4624     ,X_React_By_Date		OUT NOCOPY DATE
4625     ,P_cust_id                  IN NUMBER DEFAULT NULL
4626     ,P_cust_site_id             IN NUMBER DEFAULT NULL
4627     ,P_cust_loc_id              IN NUMBER DEFAULT NULL)
4628   IS
4629 
4630     Lv_React_Day                VARCHAR2(20);
4631     Ld_React_Start_DateTime     DATE;
4632 
4633     /*vgujarat - modified for access hour ER 9675504*/
4634     Lx_cust_id                 CONSTANT NUMBER              := P_cust_id;
4635     Lx_cust_site_id            CONSTANT NUMBER              := P_cust_site_id;
4636     Lx_cust_loc_id             CONSTANT NUMBER              := P_cust_loc_id;
4637 
4638     Lx_Resolve_Durn	        Gx_ReactDurn;
4639     Lx_Resolve_UOM 	        Gx_ReactUOM;
4640     Lv_Resolve_Day              VARCHAR2(20);
4641     Ld_Resolve_By_DateTime      DATE;
4642     Ld_Resolve_Start_DateTime   DATE;
4643 
4644     Lx_Result                   Gx_Boolean;
4645 
4646   BEGIN
4647 
4648     Lx_Result                   := G_TRUE;
4649     /*vgujarat - modified for access hour ER 9675504*/
4650     Get_ReactResol_By_DateTime
4651       (P_API_Version		=> P_API_Version
4652       ,P_Init_Msg_List		=> P_Init_Msg_List
4653       ,P_SVL_Id	            => P_Contract_Line_Id
4654       ,P_BusiProc_Id	      => P_Business_Process_Id
4655       ,P_Severity_Id		=> P_Sr_Severity
4656       ,P_Request_Date		=> P_Request_Date
4657       ,P_Request_TZone_id	=> P_Time_Zone_Id
4658 	,P_Dates_In_Input_TZ    => P_Dates_In_Input_TZ   -- Added for 12.0 ENT-TZ project (JVARGHES)
4659       ,P_template_YN          => 'N'
4660       ,P_Option                 => G_FIRST
4661       ,P_Rcn_Rsn_Flag           => G_RUL_CATEGORY_REACTION
4662       ,P_Set_ExcepionStack      => G_TRUE
4663       ,X_React_Durn	        => X_React_Within
4664       ,X_React_UOM 	        => X_React_TUOM
4665       ,X_React_Day              => Lv_React_Day
4666       ,X_React_By_DateTime      => X_React_By_Date
4667       ,X_React_Start_DateTime   => Ld_React_Start_DateTime
4668       ,X_Resolve_Durn	        => Lx_Resolve_Durn
4669       ,X_Resolve_UOM 	        => Lx_Resolve_UOM
4670       ,X_Resolve_Day            => Lv_Resolve_Day
4671       ,X_Resolve_By_DateTime    => Ld_Resolve_By_DateTime
4672       ,X_Resolve_Start_DateTime => Ld_Resolve_Start_DateTime
4673       ,X_Msg_count		=> X_Msg_Count
4674       ,X_Msg_Data		=> X_Msg_Data
4675       ,X_Result                 => Lx_Result
4676       ,X_Return_Status          => X_Return_Status
4677       ,P_cust_id             => Lx_cust_id
4678       ,P_cust_site_id        => Lx_cust_site_id
4679       ,P_cust_loc_id         => Lx_cust_loc_id);
4680 
4681   EXCEPTION
4682 
4683     WHEN OTHERS THEN
4684 
4685       OKC_API.SET_MESSAGE
4686         (P_App_Name	  => G_APP_NAME_OKC
4687 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
4688 	,P_Token1	  => G_SQLCODE_TOKEN
4689 	,P_Token1_Value	  => SQLCODE
4690 	,P_Token2	  => G_SQLERRM_TOKEN
4691 	,P_Token2_Value   => SQLERRM);
4692 
4693       OKC_API.SET_MESSAGE
4694         (P_App_Name	  => G_APP_NAME_OKC
4695 	,P_Msg_Name	  => G_DEBUG_TOKEN
4696 	,P_Token1	  => G_PACKAGE_TOKEN
4697 	,P_Token1_Value	  => G_PKG_NAME
4698 	,P_Token2	  => G_PROGRAM_TOKEN
4699 	,P_Token2_Value   => 'Check_Reaction_Times');
4700 
4701      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
4702 
4703   END Check_Reaction_Times;
4704 
4705 -----------------------------------------------------------------------------------------------------------------------*
4706    /*vgujarat - modified for access hour ER 9675504*/
4707   PROCEDURE get_react_resolve_by_time
4708     (p_api_version		in  number
4709     ,p_init_msg_list		in  varchar2
4710     ,p_inp_rec                  in  grt_inp_rec_type
4711     ,x_return_status 		out nocopy varchar2
4712     ,x_msg_count		out nocopy number
4713     ,x_msg_data			out nocopy varchar2
4714     ,x_react_rec                out nocopy rcn_rsn_rec_type
4715     ,x_resolve_rec              out nocopy rcn_rsn_rec_type)
4716 
4717   IS
4718 
4719     Lx_SVL_Id                  CONSTANT Gx_OKS_Id := p_inp_rec.Contract_Line_Id;
4720     Lx_BusiProc_Id             CONSTANT Gx_BusProcess_Id := p_inp_rec.Business_Process_Id;
4721     Lx_Severity_Id             CONSTANT Gx_Severity_Id := p_inp_rec.Severity_id;
4722     Ld_Request_Date            CONSTANT DATE := nvl(p_inp_rec.Request_Date,sysdate);
4723     Lx_Request_TZone_Id        CONSTANT Gx_TimeZoneId := p_inp_rec.Time_Zone_Id;
4724     Lx_ReactReso_ObjCode       CONSTANT Gx_JTOT_ObjCode := G_JTOT_OBJ_REACTIME;
4725     Lx_ReactReso_Category      CONSTANT Gx_Rule_Category := p_inp_rec.category_rcn_rsn;
4726     Lx_Set_ExcepionStack       CONSTANT Gx_Boolean := G_TRUE;
4727     Lv_Option                  CONSTANT VARCHAR2(10) := p_inp_rec.compute_option;
4728 
4729     /*vgujarat - modified for access hour ER 9675504*/
4730     Lx_cust_id                 CONSTANT NUMBER              := p_inp_rec.cust_id;
4731     Lx_cust_site_id            CONSTANT NUMBER              := p_inp_rec.cust_site_id;
4732     Lx_cust_loc_id             CONSTANT NUMBER              := p_inp_rec.cust_loc_id;
4733 
4734     Lx_React_Durn              Gx_ReactDurn;
4735     Lx_React_UOM               Gx_ReactUOM;
4736     Lv_React_Day               VARCHAR2(9);
4737     Ld_React_By_DateTime       DATE;
4738     Ld_React_Start_DateTime    DATE;
4739 
4740     Lx_Resol_Durn              Gx_ReactDurn;
4741     Lx_Resol_UOM               Gx_ReactUOM;
4742     Lv_Resol_Day               VARCHAR2(9);
4743     Ld_Resol_By_DateTime       DATE;
4744     Ld_Resol_Start_DateTime    DATE;
4745 
4746     Lx_Result                  Gx_Boolean;
4747     Lx_Return_Status           Gx_Ret_Sts;
4748 
4749     -- Added for 12.0 ENT-TZ project (JVARGHES)
4750 
4751     Lv_Dates_In_Input_TZ       CONSTANT VARCHAR2(1) := p_inp_rec.Dates_In_Input_TZ;
4752     --
4753 
4754   BEGIN
4755 
4756     Lx_Result                  := G_TRUE;
4757     Lx_Return_Status           := G_RET_STS_SUCCESS;
4758   /*vgujarat - modified for access hour ER 9675504*/
4759     Get_ReactResol_By_DateTime
4760       (P_API_Version  		    => P_API_Version
4761       ,P_Init_Msg_List	        => P_Init_Msg_List
4762       ,P_SVL_Id               => Lx_SVL_Id
4763       ,P_BusiProc_Id	        => Lx_BusiProc_Id
4764       ,P_Severity_Id	        => Lx_Severity_Id
4765       ,P_Request_Date	        => Ld_Request_Date
4766       ,P_Request_TZone_Id       => Lx_Request_TZone_Id
4767       ,P_Dates_In_Input_TZ      => Lv_Dates_In_Input_TZ  -- Added for 12.0 ENT-TZ project (JVARGHES)
4768       ,P_template_YN            => 'N'
4769       ,P_Option                 => Lv_Option
4770       ,P_Rcn_Rsn_Flag           => Lx_ReactReso_Category
4771       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
4772       ,X_React_Durn	            => Lx_React_Durn
4773       ,X_React_UOM 	            => Lx_React_UOM
4774       ,X_React_Day              => Lv_React_Day
4775       ,X_React_By_DateTime      => Ld_React_By_DateTime
4776       ,X_React_Start_DateTime   => Ld_React_Start_DateTime
4777       ,X_Resolve_Durn	        => Lx_Resol_Durn
4778       ,X_Resolve_UOM 	        => Lx_Resol_UOM
4779       ,X_Resolve_Day            => Lv_Resol_Day
4780       ,X_Resolve_By_DateTime    => Ld_Resol_By_DateTime
4781       ,X_Resolve_Start_DateTime => Ld_Resol_Start_DateTime
4782       ,X_Msg_count		=> X_Msg_Count
4783       ,X_Msg_Data		=> X_Msg_Data
4784       ,X_Result                 => Lx_Result
4785       ,X_Return_Status          => Lx_Return_Status
4786       ,P_cust_id                => Lx_cust_id
4787       ,P_cust_site_id           => Lx_cust_site_id
4788       ,P_cust_loc_id            => Lx_cust_loc_id);
4789 
4790     x_react_rec.duration         :=  Lx_React_Durn;
4791     x_react_rec.uom              :=  Lx_React_UOM;
4792     x_react_rec.by_date_start    :=  Ld_React_Start_DateTime;
4793     x_react_rec.by_date_end      :=  Ld_React_By_DateTime;
4794 
4795     x_resolve_rec.duration       :=  Lx_Resol_Durn;
4796     x_resolve_rec.uom            :=  Lx_Resol_UOM;
4797     x_resolve_rec.by_date_start  :=  Ld_Resol_Start_DateTime;
4798     x_resolve_rec.by_date_end    :=  Ld_Resol_By_DateTime;
4799 
4800     x_return_status              :=  Lx_Return_Status;
4801 
4802   EXCEPTION
4803 
4804     WHEN OTHERS THEN
4805 
4806       OKC_API.SET_MESSAGE
4807         (P_App_Name	  => G_APP_NAME_OKC
4808 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
4809 	,P_Token1	  => G_SQLCODE_TOKEN
4810 	,P_Token1_Value	  => SQLCODE
4811 	,P_Token2	  => G_SQLERRM_TOKEN
4812 	,P_Token2_Value   => SQLERRM);
4813 
4814       OKC_API.SET_MESSAGE
4815         (P_App_Name	  => G_APP_NAME_OKC
4816 	,P_Msg_Name	  => G_DEBUG_TOKEN
4817 	,P_Token1	  => G_PACKAGE_TOKEN
4818 	,P_Token1_Value	  => G_PKG_NAME
4819 	,P_Token2	  => G_PROGRAM_TOKEN
4820 	,P_Token2_Value   => 'get_react_resolve_by_time');
4821 
4822       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
4823 
4824   END get_react_resolve_by_time;
4825 
4826 -----------------------------------------------------------------------------------------------------------------------*
4827 
4828   PROCEDURE Validate_Required_CT_Tokens
4829     (P_SVL_Id	                IN  Gx_OKS_Id
4830     ,P_BusiProc_Id	        IN  Gx_BusProcess_Id
4831     ,P_Request_Date		IN  DATE
4832     ,P_Request_TZone_id		IN  Gx_TimeZoneId
4833     ,P_Set_ExcepionStack        IN  Gx_Boolean
4834     ,X_Result                   out nocopy Gx_Boolean
4835     ,X_Return_Status 	        out nocopy Gx_Ret_Sts)
4836   IS
4837 
4838     Lx_SVL_Id                 CONSTANT Gx_OKS_Id := P_SVL_Id;
4839     Lx_BusiProc_id            CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
4840     Ld_Request_Date           DATE;
4841     Lx_Request_TZone_Id       CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
4842     Lx_Set_ExcepionStack      CONSTANT Gx_Boolean := P_Set_ExcepionStack;
4843 
4844     Lx_Result                 Gx_Boolean;
4845     Lx_Return_Status          Gx_Ret_Sts;
4846 
4847     L_EXCEP_NULL_VALUE        EXCEPTION;
4848 
4849   BEGIN
4850 
4851     Ld_Request_Date           := nvl(P_Request_Date,sysdate);
4852 
4853     Lx_Result                 := G_TRUE;
4854     Lx_Return_Status          := G_RET_STS_SUCCESS;
4855 
4856     Validate_Required_NumValue
4857       (P_Num_Value              => Lx_SVL_Id
4858       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
4859       ,P_ExcepionMsg            => 'Contract Line'
4860       ,X_Result                 => Lx_result
4861       ,X_Return_Status   	=> Lx_Return_Status);
4862 
4863     IF Lx_result <> G_TRUE  THEN
4864        RAISE L_EXCEP_NULL_VALUE;
4865     END IF;
4866 
4867     Validate_Required_NumValue
4868       (P_Num_Value              => Lx_BusiProc_Id
4869       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
4870       ,P_ExcepionMsg            => 'Business Process'
4871       ,X_Result                 => Lx_result
4872       ,X_Return_Status   	=> Lx_Return_Status);
4873 
4874     IF Lx_result <> G_TRUE  THEN
4875        RAISE L_EXCEP_NULL_VALUE;
4876     END IF;
4877 
4878     Validate_Required_NumValue
4879       (P_Num_Value              => Lx_Request_TZone_Id
4880       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
4881       ,P_ExcepionMsg            => 'Time Zone'
4882       ,X_Result                 => Lx_result
4883       ,X_Return_Status   	=> Lx_Return_Status);
4884 
4885     IF Lx_result <> G_TRUE  THEN
4886        RAISE L_EXCEP_NULL_VALUE;
4887     END IF;
4888 
4889     Validate_Required_DateValue
4890       (P_Date_Value             => Ld_Request_Date
4891       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
4892       ,P_ExcepionMsg            => 'Request Date'
4893       ,X_Result                 => Lx_result
4894       ,X_Return_Status   	=> Lx_Return_Status);
4895 
4896     IF Lx_result <> G_TRUE  THEN
4897        RAISE L_EXCEP_NULL_VALUE;
4898     END IF;
4899 
4900     X_Result          := Lx_Result;
4901     X_Return_Status   := Lx_Return_Status;
4902 
4903   EXCEPTION
4904 
4905     WHEN L_EXCEP_NULL_VALUE THEN
4906 
4907       X_Result        := Lx_Result;
4908       X_Return_Status := Lx_Return_Status;
4909 
4910     WHEN OTHERS THEN
4911 
4912       OKC_API.SET_MESSAGE
4913         (P_App_Name	  => G_APP_NAME_OKC
4914 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
4915 	,P_Token1	  => G_SQLCODE_TOKEN
4916 	,P_Token1_Value	  => SQLCODE
4917 	,P_Token2	  => G_SQLERRM_TOKEN
4918 	,P_Token2_Value   => SQLERRM);
4919 
4920       OKC_API.SET_MESSAGE
4921         (P_App_Name	  => G_APP_NAME_OKC
4922 	,P_Msg_Name	  => G_DEBUG_TOKEN
4923 	,P_Token1	  => G_PACKAGE_TOKEN
4924 	,P_Token1_Value	  => G_PKG_NAME
4925 	,P_Token2	  => G_PROGRAM_TOKEN
4926 	,P_Token2_Value   => 'Validate_Required_CT_Tokens');
4927 
4928       X_Result        := G_FALSE;
4929       X_Return_Status := G_RET_STS_UNEXP_ERROR;
4930 
4931   END Validate_Required_CT_Tokens;
4932 
4933 -----------------------------------------------------------------------------------------------------------------------*
4934 
4935   PROCEDURE Get_Coverage_Times
4936     (P_API_Version		IN  NUMBER
4937     ,P_Init_Msg_List		IN  VARCHAR2
4938     ,P_SVL_Id	                IN  Gx_OKS_Id
4939     ,P_BusiProc_Id	        IN  Gx_BusProcess_Id
4940     ,P_Request_Date		IN  DATE
4941     ,P_Request_TZone_id		IN  Gx_TimeZoneId
4942     ,P_Dates_In_Input_TZ      IN VARCHAR2    -- Added for 12.0 ENT-TZ project (JVARGHES)
4943     ,P_Set_ExcepionStack        IN  Gx_Boolean
4944     ,X_Day_Cover_From           out nocopy DATE
4945     ,X_Day_Cover_To             out nocopy DATE
4946     ,X_Covered                  out nocopy Gx_Boolean
4947     ,X_Msg_count		OUT NOCOPY NUMBER
4948     ,X_Msg_data			OUT NOCOPY VARCHAR2
4949     ,X_Result                   out nocopy Gx_Boolean
4950     ,X_Return_Status            out nocopy Gx_Ret_Sts)
4951   IS
4952 
4953 
4954 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
4955 
4956     CURSOR Get_Cov_Timezones(P_BPL_Id in number) IS
4957        select  oct.id,
4958                oct.timezone_id,
4959                oct.default_yn,
4960                okslb.APPLY_DEFAULT_TIMEZONE
4961         from   okc_k_lines_b okclb,
4962                oks_k_lines_b okslb,
4963                oks_coverage_timezones oct
4964         where  okclb.id = P_BPL_Id
4965         and    okslb.cle_id = okclb.id
4966         and    oct.cle_id = okclb.id;
4967 
4968     Lx_Use_TZE_Id              number;
4969     Lx_TZE_Mtch_Exists         varchar2(1);
4970     Lx_Def_TZE_Id              number;
4971     Lx_Apply_Def_Tze           varchar2(1);
4972     Lx_Use_TZE_Line_Id         number;
4973     Lx_Def_TZE_Line_Id         number;
4974 
4975 ----------------------------11.5.10 multiple coverage time zone enhancements -------------------
4976 
4977     Lx_SVL_Id                  CONSTANT Gx_OKS_Id := P_SVL_Id;
4978     Lx_BusiProc_Id             CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
4979     Ld_Request_Date            DATE;
4980     Lx_Request_TZone_Id        CONSTANT Gx_TimeZoneId := P_Request_TZone_id;
4981     Lx_Set_ExcepionStack       CONSTANT Gx_Boolean := P_Set_ExcepionStack;
4982     Lv_Check_Day               VARCHAR2(1);
4983 
4984     Lv_Day_Cover_Tbl           Day_Cover_Tbl; -- 11.5.10 mutiple time zone changes
4985     Lv_DayCov_Idx              BINARY_INTEGER; -- 11.5.10 mutiple time zone changes
4986 
4987 
4988     Lv_Day_Cover_From          VARCHAR2(25);
4989     Lv_Day_Cover_To            VARCHAR2(25);
4990 
4991     Ld_Day_Cover_From          DATE;
4992     Ld_Day_Cover_To            DATE;
4993     Ld_Day_Cover_EffFrom       DATE;
4994     Ld_Day_Cover_EffTo         DATE;
4995 
4996     Ld_Tz_Day_Cover_From       DATE;
4997     Ld_Tz_Day_Cover_To         DATE;
4998 
4999     Lx_Covered                 Gx_Boolean;
5000 
5001     Lx_Result                  Gx_Boolean;
5002     Lx_Return_Status           Gx_Ret_Sts;
5003 
5004     Ld_SVL_Start               DATE;
5005     Ld_SVL_End                 DATE;
5006     Ld_SVL_Terminated          DATE;
5007     Ld_SVL_EffEnd_Date         DATE;
5008 
5009     Lx_CVL_Id                  Gx_OKS_Id;
5010     Ld_CVL_Start               DATE;
5011     Ld_CVL_End                 DATE;
5012     Ld_CVL_Terminated          DATE;
5013     Ld_CVL_EffEnd_Date         DATE;
5014 
5015     Lx_BPL_Id                  Gx_OKS_Id;
5016     Ld_BPL_Start               DATE;
5017     Ld_BPL_End                 DATE;
5018     Ld_BPL_Terminated          DATE;
5019     Ld_BPL_EffEnd_Date         DATE;
5020 
5021 --    Lx_BP_CVTRule_Id	       Gx_Rule_Id;
5022     Lx_BP_Tz_Id                Gx_TimeZoneId;
5023     Ld_TzCont_Req_Date         DATE;
5024     Li_TzCont_Req_Date         INTEGER(1);
5025 
5026     Ld_Cont_EffStart           DATE;
5027     Ld_Cont_EffEnd             DATE;
5028 
5029     Lx_BP_CovTimes             GT_Bp_CoverTimes;
5030 
5031     Lx_ExcepionMsg             Gx_ExceptionMsg;
5032 
5033     L_EXCEP_NULL_VALUE         EXCEPTION;
5034     L_EXCEP_NO_DATA_FOUND      EXCEPTION;
5035     L_EXCEP_NOT_EFFECTIVE      EXCEPTION;
5036     L_EXCEP_UNEXPECTED_ERR     EXCEPTION;
5037     L_EXCEP_NO_DAY_COVER       EXCEPTION;
5038 
5039     -- Added for 12.0 ENT-TZ project (JVARGHES)
5040 
5041     ln_Param_DatesTZ            NUMBER;
5042     ln_CovTZ                    NUMBER;
5043 
5044     -- Added for 12.0 Coverage Rearch project (JVARGHES)
5045 
5046     Lv_Std_Cov_YN              VARCHAR2(10);
5047     Ld_BPL_OFS_Start	       DATE;
5048     Ln_BPL_OFS_Duration	       NUMBER;
5049     Lv_BPL_OFS_UOM             VARCHAR2(100);
5050     --
5051 
5052   BEGIN
5053 
5054     Ld_Request_Date            :=  nvl(P_Request_Date,sysdate);
5055     Lv_Check_Day               := 'N';
5056 
5057     Lx_Result                  := G_TRUE;
5058     Lx_Return_Status           := G_RET_STS_SUCCESS;
5059 
5060     G_GRACE_PROFILE_SET      := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
5061 
5062     Validate_Required_CT_Tokens
5063       (P_SVL_Id	                => Lx_SVL_Id
5064       ,P_BusiProc_Id	        => Lx_BusiProc_id
5065       ,P_Request_Date		    => Ld_Request_Date
5066       ,P_Request_TZone_id	    => Lx_Request_TZone_Id
5067       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5068       ,X_Result                 => Lx_Result
5069       ,X_Return_Status 	        => Lx_Return_Status);
5070 
5071     IF Lx_Result <> G_TRUE  THEN
5072       RAISE L_EXCEP_NULL_VALUE;
5073     END IF;
5074 
5075    -- Modified for 12.0 Coverage Rearch project (JVARGHES)
5076    --
5077    -- Validate_Service_Line
5078    --   (P_SVL_Id	              => Lx_SVL_Id
5079    --   ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5080    --   ,X_SVL_Start              => Ld_SVL_Start
5081    --   ,X_SVL_End                => Ld_SVL_End
5082    --   ,X_SVL_Terminated         => Ld_SVL_Terminated
5083    --   ,X_Result                 => Lx_Result
5084    --   ,X_Return_Status 	        => Lx_Return_Status);
5085    --
5086    -- Added for 12.0 Coverage Rearch project (JVARGHES)
5087    --
5088 
5089      Validate_Service_Line
5090         (P_SVL_Id	           => Lx_SVL_Id
5091         ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5092         ,X_CVL_Id	           => Lx_CVL_Id
5093         ,X_Std_Cov_YN	           => Lv_Std_Cov_YN
5094         ,X_SVL_Start              => Ld_SVL_Start
5095         ,X_SVL_End                => Ld_SVL_End
5096         ,X_SVL_Terminated         => Ld_SVL_Terminated
5097         ,X_Result                 => Lx_Result
5098         ,X_Return_Status 	     => Lx_Return_Status);
5099 
5100    --
5101 
5102     IF Lx_Result <> G_TRUE  THEN
5103       RAISE L_EXCEP_NO_DATA_FOUND;
5104     END IF;
5105 
5106     Get_Effective_End_Date
5107       (P_Start_Date             => Ld_SVL_Start
5108       ,P_End_Date               => Ld_SVL_End
5109       ,P_Termination_Date       => Ld_SVL_Terminated
5110       ,P_EndDate_Required       => G_TRUE
5111       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5112       ,P_ExcepionMsg            => 'Service Line'
5113       ,X_EffEnd_Date            => Ld_SVL_EffEnd_Date
5114       ,X_Result                 => Lx_Result
5115       ,X_Return_Status  	=> Lx_Return_Status);
5116 
5117 
5118     IF Lx_Result <> G_TRUE  THEN
5119       RAISE L_EXCEP_NULL_VALUE;
5120     END IF;
5121 
5122     --
5123     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
5124     --
5125     --
5126     --Validate_Coverage_Line
5127     --  (P_SVL_Id	              => Lx_SVL_Id
5128     -- ,P_template_YN            => 'N'
5129     --  ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5130     --  ,X_CVL_Id                 => Lx_CVL_Id
5131     --  ,X_CVL_Start              => Ld_CVL_Start
5132     --  ,X_CVL_End                => Ld_CVL_End
5133     --  ,X_CVL_Terminated         => Ld_CVL_Terminated
5134     --  ,X_Result                 => Lx_Result
5135     --  ,X_Return_Status 	        => Lx_Return_Status);
5136     --
5137     -- Added for 12.0 Coverage Rearch project (JVARGHES)
5138     --
5139 
5140     Validate_Coverage_Line
5141      (P_CVL_Id	             => Lx_CVL_Id
5142      ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5143      ,X_CVL_Start              => Ld_CVL_Start
5144      ,X_CVL_End                => Ld_CVL_End
5145      ,X_CVL_Terminated         => Ld_CVL_Terminated
5146      ,X_Result                 => Lx_Result
5147      ,X_Return_Status 	       => Lx_Return_Status);
5148 
5149     IF Lx_Result <> G_TRUE  THEN
5150       RAISE L_EXCEP_NO_DATA_FOUND;
5151     END IF;
5152 
5153     IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
5154     THEN
5155 
5156       Ld_CVL_Start      := Ld_SVL_Start;
5157       Ld_CVL_End        := Ld_SVL_End;
5158       Ld_CVL_Terminated := Ld_SVL_Terminated;
5159 
5160     END IF;
5161 
5162     --
5163     --
5164 
5165     Get_Effective_End_Date
5166       (P_Start_Date             => Ld_CVL_Start
5167       ,P_End_Date               => Ld_CVL_End
5168       ,P_Termination_Date       => Ld_CVL_Terminated
5169       ,P_EndDate_Required       => G_TRUE
5170       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5171       ,P_ExcepionMsg            => 'Coverage Line'
5172       ,X_EffEnd_Date            => Ld_CVL_EffEnd_Date
5173       ,X_Result                 => Lx_Result
5174       ,X_Return_Status  	=> Lx_Return_Status);
5175 
5176     IF Lx_Result <> G_TRUE  THEN
5177       RAISE L_EXCEP_NULL_VALUE;
5178     END IF;
5179 
5180     Validate_Contract_BP
5181       (P_CVL_Id	              => Lx_CVL_Id    --P_SVL_Id	     => Lx_SVL_Id
5182       ,P_BP_Id	              => Lx_BusiProc_Id
5183       ,P_BP_ObjCode             => G_JTOT_OBJ_BUSIPROC
5184       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5185       ,P_REQ_DATE               => Ld_Request_Date --ansraj bug 13795417
5186       ,X_BPL_Id                 => Lx_BPL_Id
5187       ,X_BPL_Start              => Ld_BPL_Start
5188       ,X_BPL_End                => Ld_BPL_End
5189       ,X_BPL_Terminated         => Ld_BPL_Terminated
5190       ,X_Result                 => Lx_Result
5191       ,X_Return_Status 	        => Lx_Return_Status);
5192 
5193     IF Lx_Result <> G_TRUE  THEN
5194       RAISE L_EXCEP_NO_DATA_FOUND;
5195     END IF;
5196 
5197     --
5198     -- Added for 12.0 Coverage Rearch project (JVARGHES)
5199     --
5200 
5201     IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
5202     THEN
5203 
5204       Get_BP_Line_Start_Offset
5205        (P_BPL_Id	              => Lx_BPL_Id
5206        ,P_SVL_Start	        => Ld_SVL_Start
5207        ,X_BPL_OFS_Start	        => Ld_BPL_Start
5208        ,X_BPL_OFS_Duration	  => Ln_BPL_OFS_Duration
5209        ,X_BPL_OFS_UOM	        => Lv_BPL_OFS_UOM
5210        ,X_Return_Status 	  => Lx_Return_Status);
5211 
5212       IF X_Return_Status <> G_RET_STS_SUCCESS  THEN
5213         RAISE L_EXCEP_NO_DATA_FOUND;
5214       END IF;
5215 
5216        Ld_BPL_End        := Ld_SVL_End;
5217        Ld_BPL_Terminated := Ld_SVL_Terminated;
5218 
5219     END IF;
5220 
5221     --
5222 
5223     Get_Effective_End_Date
5224       (P_Start_Date             => Ld_BPL_Start
5225       ,P_End_Date               => Ld_BPL_End
5226       ,P_Termination_Date       => Ld_BPL_Terminated
5227       ,P_EndDate_Required       => G_TRUE
5228       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5229       ,P_ExcepionMsg            => 'Business Process Line'
5230       ,X_EffEnd_Date            => Ld_BPL_EffEnd_Date
5231       ,X_Result                 => Lx_Result
5232       ,X_Return_Status  	=> Lx_Return_Status);
5233 
5234     IF Lx_Result <> G_TRUE  THEN
5235       RAISE L_EXCEP_NULL_VALUE;
5236     END IF;
5237 
5238 ----------------------------11.5.10 select coverage time zone starts -------------------
5239 
5240     Lx_Use_TZE_Id          := null;
5241     Lx_TZE_Mtch_Exists     := 'N';
5242     Lx_Def_TZE_Id          := null;
5243     Lx_Apply_Def_Tze       := null;
5244     Lx_Use_TZE_Line_Id     := null;
5245     Lx_Def_TZE_Line_Id     := null;
5246 
5247 
5248    for Cov_Timezones_rec in Get_Cov_Timezones(Lx_BPL_Id) loop
5249 
5250     if Lx_Request_TZone_Id =  Cov_Timezones_rec.timezone_id then
5251 
5252      Lx_Use_TZE_Id          := Lx_Request_TZone_Id;
5253      Lx_TZE_Mtch_Exists     := 'Y';
5254      Lx_Use_TZE_Line_Id     := Cov_Timezones_rec.id;
5255      exit;
5256 
5257     end if;
5258 
5259     if Cov_Timezones_rec.default_yn =  'Y' then
5260 
5261      Lx_Def_TZE_Id          := Cov_Timezones_rec.timezone_id;
5262      Lx_Def_TZE_Line_Id     := Cov_Timezones_rec.id;
5263 
5264     end if;
5265 
5266     Lx_Apply_Def_Tze        := Cov_Timezones_rec.APPLY_DEFAULT_TIMEZONE;
5267 
5268    end loop;
5269 
5270    if Lx_Use_TZE_Id is null then
5271 
5272         if  Lx_Apply_Def_Tze = 'Y' then
5273 
5274             -- Lx_Use_TZE_Id          := Lx_Def_TZE_Id;  -- Bug# 5137665
5275                Lx_Use_TZE_Id          := Lx_Request_TZone_Id;
5276                Lx_TZE_Mtch_Exists     := 'Y';
5277                Lx_Use_TZE_Line_Id     := Lx_Def_TZE_Line_Id;
5278         end if;
5279 
5280    end if;
5281 
5282    if Lx_Use_TZE_Line_Id is null then
5283 
5284        Lx_Use_TZE_Line_Id     := Lx_Def_TZE_Line_Id;
5285 
5286    end if;
5287 
5288   --
5289   -- Commented out for 12.0 ENT-TZ project (JVARGHES)
5290   --
5291   --
5292   -- if Lx_Use_TZE_Id is null then
5293   --
5294   --  Convert_TimeZone
5295   --    (P_API_Version	        => P_API_Version
5296   --    ,P_Init_Msg_List          => P_Init_Msg_List
5297   --    ,P_Source_Date            => Ld_Request_Date
5298   --   ,P_Source_Tz_Id           => Lx_Request_TZone_Id
5299   --    ,P_Dest_Tz_Id             => Lx_Def_TZE_Id --Lx_BP_Tz_Id --11.5.10 multiple coverage time zone enhancements
5300   --    ,X_Dest_Date              => Ld_TzCont_Req_Date
5301   --    ,X_Msg_Count              => X_Msg_count
5302   --    ,X_Msg_Data		        => X_Msg_Data
5303   --    ,X_Return_Status 	        => Lx_Return_Status);
5304   --
5305   --  IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
5306   --    RAISE L_EXCEP_NO_DATA_FOUND;
5307   --  END IF;
5308   --
5309   --  else
5310   --
5311   --      Ld_TzCont_Req_Date := Ld_Request_Date;
5312   --
5313   --  end if;
5314   --
5315   --
5316   --
5317   -- Added for 12.0 ENT-TZ project (JVARGHES)
5318   --
5319 
5320    IF NVL(P_DATES_IN_INPUT_TZ,'Y') =  'N' THEN
5321      ln_Param_DatesTZ :=  fnd_profile.VALUE ('SERVER_TIMEZONE_ID');
5322    ELSE
5323      ln_Param_DatesTZ :=  Lx_Request_TZone_id;
5324    END IF;
5325 
5326    ln_CovTZ           := NVL(Lx_Use_TZE_Id, Lx_Def_TZE_Id);
5327 
5328    IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11)  THEN
5329 
5330       Ld_TzCont_Req_Date := Ld_Request_Date;
5331 
5332    ELSE
5333 
5334      Convert_TimeZone
5335       (P_API_Version	        => P_API_Version
5336       ,P_Init_Msg_List          => P_Init_Msg_List
5337       ,P_Source_Date            => Ld_Request_Date
5338       ,P_Source_Tz_Id           => ln_Param_DatesTZ
5339       ,P_Dest_Tz_Id             => ln_CovTZ
5340       ,X_Dest_Date              => Ld_TzCont_Req_Date
5341       ,X_Msg_Count              => X_Msg_count
5342       ,X_Msg_Data		        => X_Msg_Data
5343       ,X_Return_Status 	        => Lx_Return_Status);
5344 
5345      IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
5346        RAISE L_EXCEP_NO_DATA_FOUND;
5347      END IF;
5348 
5349    END IF;
5350 
5351    --
5352    --
5353 
5354     Validate_Effectivity
5355       (P_Request_Date	        => Ld_TzCont_Req_Date
5356       ,P_Start_DateTime         => Ld_SVL_Start
5357       ,P_End_DateTime           => Ld_SVL_EffEnd_Date
5358       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5359       ,P_CL_Msg_TokenValue      => 'Service Line'
5360       ,X_Result                 => Lx_Result
5361       ,X_Return_Status 	        => Lx_Return_Status);
5362 
5363     IF Lx_Result <> G_TRUE  THEN
5364       RAISE L_EXCEP_NOT_EFFECTIVE;
5365     END IF;
5366 
5367     Validate_Effectivity
5368       (P_Request_Date	        => Ld_TzCont_Req_Date
5369       ,P_Start_DateTime         => Ld_CVL_Start
5370       ,P_End_DateTime           => Ld_CVL_EffEnd_Date
5371       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5372       ,P_CL_Msg_TokenValue      => 'Coverage Line'
5373       ,X_Result                 => Lx_Result
5374       ,X_Return_Status 	        => Lx_Return_Status);
5375 
5376     IF Lx_Result <> G_TRUE  THEN
5377       RAISE L_EXCEP_NOT_EFFECTIVE;
5378     END IF;
5379 
5380     Validate_Effectivity
5381       (P_Request_Date	        => Ld_TzCont_Req_Date
5382       ,P_Start_DateTime         => Ld_BPL_Start
5383       ,P_End_DateTime           => Ld_BPL_EffEnd_Date
5384       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
5385       ,P_CL_Msg_TokenValue      => 'Business Process Line'
5386       ,X_Result                 => Lx_Result
5387       ,X_Return_Status 	        => Lx_Return_Status);
5388 
5389     IF Lx_Result <> G_TRUE  THEN
5390       RAISE L_EXCEP_NOT_EFFECTIVE;
5391     END IF;
5392 
5393     Get_BP_Cover_Times
5394       (P_BP_CVTLine_Id	      => Lx_Use_TZE_Line_Id -- Lx_BP_CVTRule_Id
5395       ,P_Request_Date         => Ld_TzCont_Req_Date
5396       ,P_CovDay_DispFmt       => 'DY'
5397       ,P_Set_ExcepionStack    => Lx_Set_ExcepionStack
5398       ,X_BP_CovTimes          => Lx_BP_CovTimes
5399       ,X_Result               => Lx_Result
5400       ,X_Return_Status        => Lx_Return_Status);
5401 
5402     IF Lx_Result <> G_TRUE  THEN
5403       RAISE L_EXCEP_NO_DATA_FOUND;
5404     END IF;
5405 
5406 
5407     Get_Cover_Day_Attribs
5408       (P_BP_CovTimes       => Lx_BP_CovTimes
5409       ,P_Req_Cover_Date    => Ld_TzCont_Req_Date --Li_Run_React_Day
5410       ,P_Set_ExcepionStack => G_FALSE
5411       ,P_Check_Day         => Lv_Check_Day
5412       ,X_Day_Cover_tbl     => Lv_Day_Cover_Tbl
5413       ,X_Result            => Lx_Result
5414       ,X_Return_Status     => Lx_Return_Status);
5415 
5416     IF Lx_Result <> G_TRUE  THEN
5417       RAISE L_EXCEP_NO_DATA_FOUND;
5418     END IF;
5419 
5420     Lv_DayCov_Idx := Lv_Day_Cover_Tbl.FIRST;
5421 
5422     Ld_Day_Cover_From  := TO_DATE(TO_CHAR(Ld_TzCont_Req_Date,'YYYYMMDD')||Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_From,'YYYYMMDDHH24MISS');
5423     Ld_Day_Cover_To    := TO_DATE(TO_CHAR(Ld_TzCont_Req_Date,'YYYYMMDD')||Lv_Day_Cover_Tbl(Lv_DayCov_Idx).Day_Cover_To,'YYYYMMDDHH24MISS');
5424 
5425     Get_Cont_Effective_Dates
5426       (P_SVL_Start             => Ld_SVL_Start
5427       ,P_SVL_End               => Ld_SVL_EffEnd_Date
5428       ,P_CVL_Start             => Ld_CVL_Start
5429       ,P_CVL_End               => Ld_CVL_EffEnd_Date
5430       ,P_BPL_Start             => Ld_BPL_Start
5431       ,P_BPL_End               => Ld_BPL_EffEnd_Date
5432       ,P_RTL_Start             => NULL
5433       ,P_RTL_End               => NULL
5434       ,P_Set_ExcepionStack     => Lx_Set_ExcepionStack
5435       ,X_Cont_EffStart         => Ld_Cont_EffStart
5436       ,X_Cont_EffEnd           => Ld_Cont_EffEnd
5437       ,X_Result                => Lx_Result
5438       ,X_Return_Status         => Lx_Return_Status);
5439 
5440     IF Lx_Result <> G_TRUE  THEN
5441       RAISE L_EXCEP_NOT_EFFECTIVE;
5442     END IF;
5443 
5444     IF Ld_Day_Cover_From > Ld_Cont_EffEnd  THEN
5445 
5446       Lx_Covered  := G_FALSE;
5447       Lx_ExcepionMsg := 'Business Process - Cover Time';
5448 
5449       RAISE L_EXCEP_NO_DAY_COVER;
5450 
5451     ELSE
5452 
5453       IF Ld_Day_Cover_From > Ld_Cont_EffStart  THEN
5454         Ld_Day_Cover_EffFrom := Ld_Day_Cover_From;
5455       ELSE
5456         Ld_Day_Cover_EffFrom := Ld_Cont_EffStart;
5457       END IF;
5458 
5459       IF Ld_Day_Cover_To < Ld_Cont_EffEnd  THEN
5460         Ld_Day_Cover_EffTo   := Ld_Day_Cover_To;
5461       ELSE
5462         Ld_Day_Cover_EffTo   := Ld_Cont_EffEnd;
5463       END IF;
5464 
5465     END IF;
5466 
5467     Validate_Effectivity
5468       (P_Request_Date	        => Ld_TzCont_Req_Date
5469       ,P_Start_DateTime         => Ld_Day_Cover_EffFrom
5470       ,P_End_DateTime           => Ld_Day_Cover_EffTo
5471       ,P_Set_ExcepionStack      => G_FALSE
5472       ,P_CL_Msg_TokenValue      => 'Business Process'
5473       ,X_Result                 => Lx_Result
5474       ,X_Return_Status 	        => Lx_Return_Status);
5475 
5476     IF Lx_Result = G_TRUE  THEN
5477 
5478       Lx_Covered  := G_TRUE;
5479 
5480     ELSE
5481 
5482       Lx_Covered  := G_FALSE;
5483 
5484       IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
5485         RAISE L_EXCEP_UNEXPECTED_ERR;
5486       END IF;
5487 
5488     END IF;
5489 
5490 
5491   --
5492   -- Commented out for 12.0 ENT-TZ project (JVARGHES)
5493   --
5494   --
5495   --  IF Lx_TZE_Mtch_Exists = 'N' then -- 11.5.10 multiple time zone enhancement
5496   --
5497   --      Convert_TimeZone
5498   --      (P_API_Version	          => P_API_Version
5499   --      ,P_Init_Msg_List          => P_Init_Msg_List
5500   --      ,P_Source_Date            => Ld_Day_Cover_EffFrom
5501   --      ,P_Source_Tz_Id           => Lx_Def_TZE_Id --Lx_BP_Tz_Id
5502   --      ,P_Dest_Tz_Id             => Lx_Request_TZone_Id
5503   --      ,X_Dest_Date              => Ld_Tz_Day_Cover_From
5504   --      ,X_Msg_Count              => X_Msg_count
5505   --      ,X_Msg_Data		          => X_Msg_Data
5506   --      ,X_Return_Status 	      => Lx_Return_Status);
5507   --
5508   --       IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
5509   --         RAISE L_EXCEP_NO_DATA_FOUND;
5510   --       END IF;
5511   --
5512   --      Convert_TimeZone
5513   --      (P_API_Version	            => P_API_Version
5514   --      ,P_Init_Msg_List            => P_Init_Msg_List
5515   --      ,P_Source_Date              => Ld_Day_Cover_EffTo
5516   --      ,P_Source_Tz_Id             => Lx_Def_TZE_Id --Lx_BP_Tz_Id
5517   --      ,P_Dest_Tz_Id               => Lx_Request_TZone_Id
5518   --      ,X_Dest_Date                => Ld_Tz_Day_Cover_To
5519   --      ,X_Msg_Count                => X_Msg_count
5520   --      ,X_Msg_Data		            => X_Msg_Data
5521   --      ,X_Return_Status 	        => Lx_Return_Status);
5522   --
5523   --
5524   --       IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
5525   --         RAISE L_EXCEP_NO_DATA_FOUND;
5526   --       END IF;
5527   --
5528   --       ELSE -- 11.5.10 multiple time zone enhancement
5529   --
5530   --         Ld_Tz_Day_Cover_From     := Ld_Day_Cover_EffFrom;
5531   --         Ld_Tz_Day_Cover_To       := Ld_Day_Cover_EffTo;
5532   --
5533   --      END IF;
5534   --
5535   --
5536   --  Added for 12.0 ENT-TZ project (JVARGHES)
5537   --
5538    IF NVL(ln_Param_DatesTZ,-99) = NVL(ln_CovTZ,-11)  THEN
5539 
5540       Ld_Tz_Day_Cover_From     := Ld_Day_Cover_EffFrom;
5541       Ld_Tz_Day_Cover_To       := Ld_Day_Cover_EffTo;
5542 
5543    ELSE
5544 
5545      Convert_TimeZone
5546       (P_API_Version	        => P_API_Version
5547       ,P_Init_Msg_List          => P_Init_Msg_List
5548       ,P_Source_Date            => Ld_Day_Cover_EffFrom
5549       ,P_Source_Tz_Id           => ln_CovTZ
5550       ,P_Dest_Tz_Id             => ln_Param_DatesTZ
5551       ,X_Dest_Date              => Ld_Tz_Day_Cover_From
5552       ,X_Msg_Count              => X_Msg_count
5553       ,X_Msg_Data		        => X_Msg_Data
5554       ,X_Return_Status 	        => Lx_Return_Status);
5555 
5556      IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
5557        RAISE L_EXCEP_NO_DATA_FOUND;
5558      END IF;
5559 
5560      Convert_TimeZone
5561       (P_API_Version	        => P_API_Version
5562       ,P_Init_Msg_List          => P_Init_Msg_List
5563       ,P_Source_Date            => Ld_Day_Cover_EffTo
5564       ,P_Source_Tz_Id           => ln_CovTZ
5565       ,P_Dest_Tz_Id             => ln_Param_DatesTZ
5566       ,X_Dest_Date              => Ld_Tz_Day_Cover_To
5567       ,X_Msg_Count              => X_Msg_count
5568       ,X_Msg_Data		        => X_Msg_Data
5569       ,X_Return_Status 	        => Lx_Return_Status);
5570 
5571      IF Lx_Return_Status <> G_RET_STS_SUCCESS  THEN
5572        RAISE L_EXCEP_NO_DATA_FOUND;
5573      END IF;
5574 
5575    END IF;
5576 
5577    --
5578    --
5579 
5580     X_Day_Cover_From           := Ld_Tz_Day_Cover_From;
5581     X_Day_Cover_To             := Ld_Tz_Day_Cover_To;
5582     X_Covered                  := Lx_Covered;
5583     X_Result                   := Lx_Result;
5584     X_Return_Status            := Lx_Return_Status;
5585 
5586   EXCEPTION
5587 
5588     WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_NO_DATA_FOUND OR L_EXCEP_NOT_EFFECTIVE OR L_EXCEP_UNEXPECTED_ERR THEN
5589 
5590       X_Result           := Lx_Result;
5591       X_Return_Status    := Lx_Return_Status;
5592 
5593     WHEN L_EXCEP_NO_DAY_COVER THEN
5594 
5595       Lx_Result         := G_FALSE;
5596 
5597       IF Lx_Set_ExcepionStack = G_TRUE THEN
5598 
5599         OKC_API.SET_MESSAGE(p_app_name	    => G_APP_NAME_OKC
5600 	  		   ,p_msg_name	    => G_REQUIRED_VALUE
5601 			   ,p_token1	    => G_COL_NAME_TOKEN
5602 			   ,p_token1_value  => Lx_ExcepionMsg);
5603 
5604         Lx_Return_Status  := G_RET_STS_ERROR;
5605 
5606       END IF;
5607 
5608       X_Result              := Lx_Result;
5609       X_Return_Status       := Lx_Return_Status;
5610 
5611     WHEN OTHERS THEN
5612 
5613       OKC_API.SET_MESSAGE
5614         (P_App_Name	  => G_APP_NAME_OKC
5615 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
5616 	,P_Token1	  => G_SQLCODE_TOKEN
5617 	,P_Token1_Value	  => SQLCODE
5618 	,P_Token2	  => G_SQLERRM_TOKEN
5619 	,P_Token2_Value   => SQLERRM);
5620 
5621       OKC_API.SET_MESSAGE
5622         (P_App_Name	  => G_APP_NAME_OKC
5623 	,P_Msg_Name	  => G_DEBUG_TOKEN
5624 	,P_Token1	  => G_PACKAGE_TOKEN
5625 	,P_Token1_Value	  => G_PKG_NAME
5626 	,P_Token2	  => G_PROGRAM_TOKEN
5627 	,P_Token2_Value   => 'Get_Coverage_Times');
5628 
5629       X_Result        := G_FALSE;
5630       X_Return_Status := G_RET_STS_UNEXP_ERROR;
5631 
5632   END Get_Coverage_Times;
5633 
5634 -----------------------------------------------------------------------------------------------------------------------*
5635 
5636   PROCEDURE Check_Coverage_Times
5637     (P_API_Version		IN  NUMBER
5638     ,P_Init_Msg_List		IN  VARCHAR2
5639     ,P_Business_Process_Id	IN  NUMBER
5640     ,P_Request_Date		IN  DATE
5641     ,P_Time_Zone_Id		IN  NUMBER
5642     ,P_Dates_In_Input_TZ      IN VARCHAR2    -- Added for 12.0 ENT-TZ project (JVARGHES)
5643     ,P_Contract_Line_Id	        IN  NUMBER
5644     ,X_Return_Status 		OUT NOCOPY VARCHAR2
5645     ,X_Msg_Count		OUT NOCOPY NUMBER
5646     ,X_Msg_Data			OUT NOCOPY VARCHAR2
5647     ,X_Covered_YN		OUT NOCOPY VARCHAR2)
5648   IS
5649 
5650     Ld_Day_Cover_From           DATE;
5651     Ld_Day_Cover_To             DATE;
5652     Lx_Covered                  Gx_Boolean;
5653     Lx_Result                   Gx_Boolean;
5654 
5655   BEGIN
5656 
5657     Get_Coverage_Times
5658       (P_API_Version		=> P_API_Version
5659       ,P_Init_Msg_List		=> P_Init_Msg_List
5660       ,P_SVL_Id	                => P_Contract_Line_Id
5661       ,P_BusiProc_Id	        => P_Business_Process_Id
5662       ,P_Request_Date		=> NVL(P_Request_Date,SYSDATE)
5663       ,P_Request_TZone_id	=> P_Time_Zone_Id
5664       ,P_Dates_In_Input_TZ      => P_Dates_In_Input_TZ  -- Added for 12.0 ENT-TZ project (JVARGHES)
5665       ,P_Set_ExcepionStack      => G_TRUE
5666       ,X_Day_Cover_From         => Ld_Day_Cover_From
5667       ,X_Day_Cover_To           => Ld_Day_Cover_To
5668       ,X_Covered                => Lx_Covered
5669       ,X_Msg_Count		=> X_Msg_Count
5670       ,X_Msg_Data		=> X_Msg_Data
5671       ,X_Result                 => Lx_Result
5672       ,X_Return_Status          => X_Return_Status);
5673 
5674     IF Lx_Covered = G_TRUE THEN
5675       X_Covered_YN   := G_YES;
5676     ELSE
5677       X_Covered_YN   := G_NO;
5678     END IF;
5679 
5680 
5681   EXCEPTION
5682 
5683     WHEN OTHERS THEN
5684 
5685       OKC_API.SET_MESSAGE
5686         (P_App_Name	  => G_APP_NAME_OKC
5687 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
5688 	,P_Token1	  => G_SQLCODE_TOKEN
5689 	,P_Token1_Value	  => SQLCODE
5690 	,P_Token2	  => G_SQLERRM_TOKEN
5691 	,P_Token2_Value   => SQLERRM);
5692 
5693       OKC_API.SET_MESSAGE
5694         (P_App_Name	  => G_APP_NAME_OKC
5695 	,P_Msg_Name	  => G_DEBUG_TOKEN
5696 	,P_Token1	  => G_PACKAGE_TOKEN
5697 	,P_Token1_Value	  => G_PKG_NAME
5698 	,P_Token2	  => G_PROGRAM_TOKEN
5699 	,P_Token2_Value   => 'Check_Coverage_Times');
5700 
5701       --X_Result        := G_FALSE;
5702       X_Return_Status := G_RET_STS_UNEXP_ERROR;
5703 
5704   END Check_Coverage_Times;
5705 
5706 -----------------------------------------------------------------------------------------------------------------------*
5707 
5708   PROCEDURE Get_Contract_Header_Details
5709     (P_API_Version		IN  NUMBER
5710     ,P_Init_Msg_List		IN  VARCHAR2
5711     ,P_Chr_Id                   IN  Gx_OKS_Id
5712     ,P_Chr_Sts_Code             IN  Gx_Chr_StsCode
5713     ,P_Chr_Type                 IN  Gx_Chr_Type
5714     ,P_Chr_EndDate              IN  DATE
5715     ,P_Chr_PartyId              IN  Gx_Chr_PartyId
5716     ,X_Contract_Headers  	OUT NOCOPY Hdr_Tbl_Type
5717     ,X_Msg_Count		OUT NOCOPY NUMBER
5718     ,X_Msg_Data			OUT NOCOPY VARCHAR2
5719     ,X_Result                   out nocopy Gx_Boolean
5720     ,X_Return_Status            out nocopy Gx_Ret_Sts)
5721   IS
5722 
5723 
5724 
5725     CURSOR Lx_Csr_Chr(Cx_Chr_Id IN Gx_OKS_Id, Cx_Chr_Sts_Code IN Gx_Chr_StsCode, Cx_Chr_Type IN Gx_Chr_Type
5726 		     ,Cd_Chr_EndDate IN DATE, Cx_Chr_PartyId IN Gx_Chr_PartyId) IS
5727     SELECT AUTHORING_ORG_ID
5728 	  ,HDR.ID
5729 	  ,HDR.CONTRACT_NUMBER
5730 	  ,HDR.CONTRACT_NUMBER_MODIFIER
5731       ,HDT.SHORT_DESCRIPTION
5732 	  ,HDR.STS_CODE
5733 	  ,HDR.CHR_TYPE
5734 	  ,HDR.TEMPLATE_YN
5735 	  ,HDR.TEMPLATE_USED
5736 	  ,HDR.START_DATE
5737 	  ,Get_End_Date_Time(HDR.END_DATE) End_Date
5738 	  ,HDR.CHR_ID_AWARD
5739 	  ,HDR.CUST_PO_NUMBER
5740 	  ,HDR.AUTO_RENEW_DAYS
5741 	  ,HDR.QCL_ID
5742       ,HDR.ESTIMATED_AMOUNT -- 11.5.10 changes
5743       ,PTY.OBJECT1_ID1 PARTY_ID
5744       ,HDR.bill_to_site_use_id bill_to_site_use_id -- 11.5.10 changes
5745       ,HDR.ship_to_site_use_id ship_to_site_use_id -- 11.5.10 changes
5746       ,HDR.currency_code currency_code -- 11.5.10 changes
5747       ,OKSHDR.acct_rule_id acct_rule_id -- 11.5.10 changes
5748       ,HDR.inv_rule_id inv_rule_id -- 11.5.10 changes
5749       ,HDR.payment_term_id payment_term_id -- 11.5.10 changes
5750       ,OKSHDR.billing_profile_id billing_profile_id -- 11.5.10 changes
5751       ,OKSHDR.tax_exemption_id tax_exemption_id -- 11.5.10 changes
5752       ,OKSHDR.tax_status tax_status -- 11.5.10 changes
5753       ,HDR.conversion_type conversion_type -- 11.5.10 changes
5754        FROM OKC_K_PARTY_ROLES_B PTY
5755           ,OKC_K_HEADERS_TL HDT
5756           ,OKC_K_HEADERS_ALL_B HDR  --,OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
5757           ,OKS_K_HEADERS_B OKSHDR -- 11.5.10 changes
5758      WHERE    HDR.ID                = NVL(Cx_Chr_Id,HDR.ID)
5759 	  AND HDR.END_DATE          = NVL(Cd_Chr_EndDate,HDR.END_DATE)
5760 	  AND HDR.STS_CODE          = NVL(Cx_Chr_Sts_Code,HDR.STS_CODE)
5761 	  AND HDR.CHR_TYPE          = NVL(Cx_Chr_Type,HDR.CHR_TYPE)
5762       AND HDR.START_DATE        IS NOT NULL
5763       AND HDR.END_DATE          IS NOT NULL
5764       AND HDR.TEMPLATE_YN       = G_NO
5765       AND HDT.ID                = HDR.ID
5766       AND HDT.LANGUAGE          = USERENV('LANG')
5767       AND PTY.CHR_ID            = HDR.ID
5768       AND PTY.OBJECT1_ID1       = NVL(Cx_Chr_PartyId, PTY.OBJECT1_ID1)
5769       AND HDR.ID                = OKSHDR.CHR_ID
5770       AND PTY.JTOT_OBJECT1_CODE = G_JTOT_OBJ_PARTY;
5771 
5772 
5773     Lx_Chr_Id                   CONSTANT Gx_OKS_Id := P_Chr_Id;
5774     Lx_Chr_Sts_Code             CONSTANT Gx_Chr_StsCode := P_Chr_Sts_Code;
5775     Lx_Chr_Type                 CONSTANT Gx_Chr_Type := P_Chr_Type;
5776     Ld_Chr_EndDate              CONSTANT DATE := P_Chr_EndDate;
5777     Lx_Chr_PartyId              CONSTANT Gx_Chr_PartyId := P_Chr_PartyId;
5778 
5779     Lx_Contract_Headers	        Hdr_Tbl_Type;
5780     Lx_Result                   Gx_Boolean;
5781     Lx_Return_Status            Gx_Ret_Sts;
5782 
5783     Li_TableIdx                 BINARY_INTEGER;
5784 
5785   BEGIN
5786 
5787     Lx_Result                   := G_TRUE;
5788     Lx_Return_Status            := G_RET_STS_SUCCESS;
5789 
5790     Li_TableIdx  := 0;
5791 
5792     FOR Idx IN Lx_Csr_Chr(Lx_Chr_Id, Lx_Chr_Sts_Code, Lx_Chr_Type, Ld_Chr_EndDate, Lx_Chr_PartyId )  LOOP
5793 
5794       Li_TableIdx   := Li_TableIdx + 1;
5795 
5796       Lx_Contract_Headers(Li_TableIdx).Org_Id                   := Idx.Authoring_Org_Id;
5797       Lx_Contract_Headers(Li_TableIdx).Contract_Id	            := Idx.Id;
5798       Lx_Contract_Headers(Li_TableIdx).Contract_Number          := Idx.Contract_Number;
5799       Lx_Contract_Headers(Li_TableIdx).Contract_Number_Modifier := Idx.Contract_Number_Modifier;
5800       Lx_Contract_Headers(Li_TableIdx).Short_Description        := Idx.Short_Description;
5801       Lx_Contract_Headers(Li_TableIdx).Contract_Amount	        := Idx.Estimated_amount; --11.5.10 changes..OKS_ENT_UTIL_PVT.Get_Contract_Amount(Idx.Id);
5802       Lx_Contract_Headers(Li_TableIdx).Contract_Status_Code     := Idx.Sts_Code;
5803       Lx_Contract_Headers(Li_TableIdx).Contract_Type	        := Idx.Chr_Type;
5804       Lx_Contract_Headers(Li_TableIdx).Party_Id		            := TO_NUMBER(Idx.Party_Id);
5805       Lx_Contract_Headers(Li_TableIdx).Template_YN	            := Idx.Template_YN;
5806       Lx_Contract_Headers(Li_TableIdx).Template_Used	        := Idx.Template_Used;
5807       Lx_Contract_Headers(Li_TableIdx).Duration		            := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
5808                                                                                                (Idx.Start_Date,Idx.End_Date,'D'));
5809       Lx_Contract_Headers(Li_TableIdx).Period_Code	            := OKS_ENT_UTIL_PVT.Get_Duration_Period
5810                                                                                      (Idx.Start_Date,Idx.End_Date,'P');
5811       Lx_Contract_Headers(Li_TableIdx).Start_Date_Active        := Idx.Start_Date;
5812       Lx_Contract_Headers(Li_TableIdx).End_Date_Active	        := Idx.End_Date;
5813       Lx_Contract_Headers(Li_TableIdx).Bill_To_Site_Use_Id      := Idx.bill_to_site_use_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto(Idx.Id,NULL,'OKX_BILLTO')); --from okc_k_headers_b
5814       Lx_Contract_Headers(Li_TableIdx).Ship_To_Site_Use_Id      := Idx.ship_to_site_use_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto(Idx.Id,NULL,'OKX_SHIPTO')); --from okc_k_headers_b
5815       Lx_Contract_Headers(Li_TableIdx).Agreement_Id	            := OKS_ENT_UTIL_PVT.Get_Agreement(Idx.Id);
5816       Lx_Contract_Headers(Li_TableIdx).Price_List_Id	        := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(Idx.Id,NULL,'P')); --from okc_k_headers_b.price_list_id
5817       Lx_Contract_Headers(Li_TableIdx).Modifier   	            := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Discount(Idx.Id,NULL));
5818       Lx_Contract_Headers(Li_TableIdx).Currency_Code	        := Idx.Currency_code; --SUBSTR(OKS_ENT_UTIL_PVT.Get_PriceList(Idx.Id,NULL,'C'),1,30); -- from okc_k_headers_b.currency_code
5819       Lx_Contract_Headers(Li_TableIdx).Accounting_Rule_Id       := Idx.acct_rule_id;  --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Acc_Rule(Idx.Id,NULL)); -- oks_k_headers_b.acct_rule_id
5820       Lx_Contract_Headers(Li_TableIdx).Invoicing_Rule_Id        := Idx.inv_rule_id;  --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Inv_Rule(Idx.Id,NULL)); -- okc_k_headers_b.inv_rule_id
5821       Lx_Contract_Headers(Li_TableIdx).Terms_Id		            := Idx.payment_term_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Terms(Idx.Id,NULL)); --okc_k_headers_b.payment_term_id
5822       Lx_Contract_Headers(Li_TableIdx).PO_Number	            := Idx.Cust_PO_Number;
5823       Lx_Contract_Headers(Li_TableIdx).Billing_Profile_Id       := Idx.Billing_profile_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingProfile(Idx.Id,NULL)); --oks_k_header_b.billing_profile_id
5824       Lx_Contract_Headers(Li_TableIdx).Billing_Frequency        := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(Idx.Id,NULL,'F'),1,25); --null
5825       Lx_Contract_Headers(Li_TableIdx).Billing_Method	        := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(Idx.Id,NULL,'M'),1,3); --null
5826       Lx_Contract_Headers(Li_TableIdx).Regular_Offset_Days      := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingSchedule(Idx.Id,NULL,'R'));--null
5827       Lx_Contract_Headers(Li_TableIdx).First_Bill_To 	        := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5828                                                                                              --(Idx.Id,NULL,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
5829       Lx_Contract_Headers(Li_TableIdx).First_Bill_On 	        := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
5830 								                                          ---(Idx.Id,NULL,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
5831       Lx_Contract_Headers(Li_TableIdx).Auto_Renew_Before_Days   := Idx.Auto_Renew_Days;
5832       Lx_Contract_Headers(Li_TableIdx).QA_Check_List_Id	        := Idx.Qcl_Id;
5833       Lx_Contract_Headers(Li_TableIdx).Renewal_Note	            := OKS_ENT_UTIL_PVT.Get_RenterNotes(Idx.Id,'RENEW');
5834       Lx_Contract_Headers(Li_TableIdx).Termination_Note	        := OKS_ENT_UTIL_PVT.Get_RenterNotes(Idx.Id,'TER');
5835       Lx_Contract_Headers(Li_TableIdx).Tax_Exemption            := Idx.tax_exemption_id; --OKS_ENT_UTIL_PVT.Get_TaxRule(Idx.Id,'TE'); --oks_k_headers_b.tax_exemption_id
5836       Lx_Contract_Headers(Li_TableIdx).Tax_Status               := Idx.tax_status; --OKS_ENT_UTIL_PVT.Get_TaxRule(Idx.Id,'TS'); --oks_k_headers_b.tax_status
5837       Lx_Contract_Headers(Li_TableIdx).Conversion_Type          := Idx.conversion_type; --OKS_ENT_UTIL_PVT.Get_ConvRule(Idx.Id); --okc_k_headers_b.conversion_type
5838 
5839     END LOOP;
5840 
5841     X_Contract_Headers    := Lx_Contract_Headers;
5842     X_Result              := Lx_Result;
5843     X_Return_Status       := Lx_Return_Status;
5844 
5845   EXCEPTION
5846 
5847     WHEN OTHERS THEN
5848 
5849       OKC_API.SET_MESSAGE
5850         (P_App_Name	  => G_APP_NAME_OKC
5851 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
5852 	,P_Token1	  => G_SQLCODE_TOKEN
5853 	,P_Token1_Value	  => SQLCODE
5854 	,P_Token2	  => G_SQLERRM_TOKEN
5855 	,P_Token2_Value   => SQLERRM);
5856 
5857       OKC_API.SET_MESSAGE
5858         (P_App_Name	  => G_APP_NAME_OKC
5859 	,P_Msg_Name	  => G_DEBUG_TOKEN
5860 	,P_Token1	  => G_PACKAGE_TOKEN
5861 	,P_Token1_Value	  => G_PKG_NAME
5862 	,P_Token2	  => G_PROGRAM_TOKEN
5863 	,P_Token2_Value   => 'Get_Contract_Header_Details');
5864 
5865       X_Result        := G_FALSE;
5866       X_Return_Status := G_RET_STS_UNEXP_ERROR;
5867 
5868   END Get_Contract_Header_Details;
5869 
5870 -----------------------------------------------------------------------------------------------------------------------*
5871 
5872   PROCEDURE Get_All_Contracts
5873     (P_API_Version	       IN  NUMBER
5874     ,P_Init_Msg_List	       IN  VARCHAR2
5875     ,P_Inp_Rec		       IN  Inp_Rec_Type
5876     ,X_Return_Status           out nocopy VARCHAR2
5877     ,X_Msg_Count	       out nocopy NUMBER
5878     ,X_Msg_Data		       out nocopy VARCHAR2
5879     ,X_All_Contracts	       out nocopy Hdr_Tbl_Type)
5880   IS
5881 
5882     Lx_Result                  Gx_Boolean;
5883     Lx_Inp_Rec                 Inp_Rec_Type;
5884 
5885   BEGIN
5886 
5887     Lx_Inp_Rec                 := P_Inp_Rec;
5888 
5889     Get_Contract_Header_Details
5890       (P_API_Version		=> P_API_Version
5891       ,P_Init_Msg_List		=> P_Init_Msg_List
5892       ,P_Chr_Id                 => Lx_Inp_Rec.Contract_Id
5893       ,P_Chr_Sts_Code           => Lx_Inp_Rec.Contract_Status_Code
5894       ,P_Chr_Type               => Lx_Inp_Rec.Contract_Type_Code
5895       ,P_Chr_EndDate            => Lx_Inp_Rec.End_Date_Active
5896       ,P_Chr_PartyId            => Lx_Inp_Rec.Party_Id
5897       ,X_Contract_Headers  	=> X_All_Contracts
5898       ,X_Msg_Count		=> X_Msg_Count
5899       ,X_Msg_Data		=> X_Msg_Data
5900       ,X_Result                 => Lx_Result
5901       ,X_Return_Status          => X_Return_Status);
5902 
5903   EXCEPTION
5904 
5905     WHEN OTHERS THEN
5906 
5907       OKC_API.SET_MESSAGE
5908         (P_App_Name	  => G_APP_NAME_OKC
5909 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
5910 	,P_Token1	  => G_SQLCODE_TOKEN
5911 	,P_Token1_Value	  => SQLCODE
5912 	,P_Token2	  => G_SQLERRM_TOKEN
5913 	,P_Token2_Value   => SQLERRM);
5914 
5915       OKC_API.SET_MESSAGE
5916         (P_App_Name	  => G_APP_NAME_OKC
5917 	,P_Msg_Name	  => G_DEBUG_TOKEN
5918 	,P_Token1	  => G_PACKAGE_TOKEN
5919 	,P_Token1_Value	  => G_PKG_NAME
5920 	,P_Token2	  => G_PROGRAM_TOKEN
5921 	,P_Token2_Value   => 'Get_All_Contracts');
5922 
5923       --X_Result        := G_FALSE;
5924       X_Return_Status := G_RET_STS_UNEXP_ERROR;
5925 
5926   END Get_All_Contracts;
5927 
5928 -----------------------------------------------------------------------------------------------------------------------*
5929 
5930   PROCEDURE Get_Contract_Line_Details
5931     (P_API_Version		IN  NUMBER
5932     ,P_Init_Msg_List		IN  VARCHAR2
5933     ,P_Cle_Id	                IN  Gx_OKS_Id
5934     ,X_Contract_Lines		OUT NOCOPY Line_Tbl_Type
5935     ,X_Msg_Count		OUT NOCOPY NUMBER
5936     ,X_Msg_Data			OUT NOCOPY VARCHAR2
5937     ,X_Result                   out nocopy Gx_Boolean
5938     ,X_Return_Status            out nocopy Gx_Ret_Sts)
5939   IS
5940 
5941     CURSOR Lx_Csr_Cle(Cx_Cle_Id IN Gx_OKS_Id) IS
5942     SELECT LIN.ID
5943 	  ,LIN.CLE_ID
5944 	  ,LIN.DNZ_CHR_ID
5945 	  ,LIN.STS_CODE
5946 	  ,LIN.START_DATE
5947 	  ,Get_End_Date_Time(LIN.END_DATE) End_Date
5948 	  ,Get_End_Date_Time(LIN.DATE_TERMINATED) Date_Terminated
5949 	  ,LIN.PRICE_NEGOTIATED
5950 	  ,STL.NAME
5951 	  ,LIN.bill_to_site_use_id bill_to_site_use_id -- 11.5.10 changes
5952 	  ,LIN.ship_to_site_use_id ship_to_site_use_id -- 11.5.10 changes
5953 	  ,OKSLIN.discount_list discount_list -- 11.5.10 changes
5954 	  ,LIN.price_list_id price_list_id -- 11.5.10 changes
5955       FROM OKC_K_HEADERS_ALL_B HDR -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
5956           ,OKC_LINE_STYLES_V STL
5957 	      ,OKC_K_LINES_B LIN
5958 	      ,OKS_K_LINES_B OKSLIN  -- 11.5.10 changes
5959      WHERE    LIN.ID           = Cx_Cle_Id   --Commented by Jvorugan NVL(Cx_Cle_Id, LIN.ID)
5960           AND LIN.START_DATE   IS NOT NULL
5961           AND LIN.END_DATE     IS NOT NULL
5962     	  AND STL.ID           = LIN.LSE_ID
5963           AND HDR.ID           = LIN.DNZ_CHR_ID
5964           AND HDR.TEMPLATE_YN  = G_NO
5965           AND OKSLIN.CLE_ID    = LIN.Id;
5966 
5967 -- Added by Jvorugan for Bug:4998337
5968     CURSOR Lx_Csr_noCle IS
5969     SELECT LIN.ID
5970 	  ,LIN.CLE_ID
5971 	  ,LIN.DNZ_CHR_ID
5972 	  ,LIN.STS_CODE
5973 	  ,LIN.START_DATE
5974 	  ,Get_End_Date_Time(LIN.END_DATE) End_Date
5975 	  ,Get_End_Date_Time(LIN.DATE_TERMINATED) Date_Terminated
5976 	  ,LIN.PRICE_NEGOTIATED
5977 	  ,STL.NAME
5978 	  ,LIN.bill_to_site_use_id bill_to_site_use_id -- 11.5.10 changes
5979 	  ,LIN.ship_to_site_use_id ship_to_site_use_id -- 11.5.10 changes
5980 	  ,OKSLIN.discount_list discount_list -- 11.5.10 changes
5981 	  ,LIN.price_list_id price_list_id -- 11.5.10 changes
5982       FROM OKC_K_HEADERS_ALL_B HDR -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
5983           ,OKC_LINE_STYLES_V STL
5984 	      ,OKC_K_LINES_B LIN
5985 	      ,OKS_K_LINES_B OKSLIN  -- 11.5.10 changes
5986      WHERE  --  LIN.ID           = NVL(Cx_Cle_Id, LIN.ID)
5987           LIN.START_DATE   IS NOT NULL
5988           AND LIN.END_DATE     IS NOT NULL
5989     	  AND STL.ID           = LIN.LSE_ID
5990           AND HDR.ID           = LIN.DNZ_CHR_ID
5991           AND HDR.TEMPLATE_YN  = G_NO
5992           AND OKSLIN.CLE_ID    = LIN.Id;
5993 
5994 
5995     Lx_Cle_Id	                CONSTANT Gx_OKS_Id := P_Cle_Id;
5996 
5997     Lx_Contract_Lines		Line_Tbl_Type;
5998     Lx_Result                   Gx_Boolean;
5999     Lx_Return_Status            Gx_Ret_Sts;
6000 
6001     Li_TableIdx                 BINARY_INTEGER;
6002 
6003   BEGIN
6004 
6005     Lx_Result                   := G_TRUE;
6006     Lx_Return_Status            := G_RET_STS_SUCCESS;
6007 
6008     Li_TableIdx  := 0;
6009 
6010 /* Added by Jvorugan for perf bug:4998337.
6011   If lx_cle_id is not null  then only passing the value.
6012   This is to avoid full table scan on okc_k_headers_all_b, okc_k_lines_b, oks_k_lines_b
6013 */
6014 
6015   IF Lx_Cle_Id IS NULL
6016   THEN
6017      FOR Idx IN Lx_Csr_noCle  LOOP
6018 
6019       Li_TableIdx   :=  Li_TableIdx + 1;
6020 
6021       Lx_Contract_Lines(Li_TableIdx).Contract_Line_Id         := Idx.Id;
6022       Lx_Contract_Lines(Li_TableIdx).Contract_Parent_Line_Id  := Idx.Cle_Id;
6023       Lx_Contract_Lines(Li_TableIdx).Contract_Id                  := Idx.Dnz_Chr_Id;
6024       Lx_Contract_Lines(Li_TableIdx).Line_Status_Code         := Idx.Sts_Code;
6025       Lx_Contract_Lines(Li_TableIdx).Duration                     := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
6026                                                                                               (Idx.Start_Date,Idx.End_Date,'D'));
6027       Lx_Contract_Lines(Li_TableIdx).Period_Code                  := OKS_ENT_UTIL_PVT.Get_Duration_Period
6028                                                                                     (Idx.Start_Date,Idx.End_Date,'P');
6029       Lx_Contract_Lines(Li_TableIdx).Start_Date_Active        := Idx.Start_Date;
6030       Lx_Contract_Lines(Li_TableIdx).End_Date_Active          := Idx.End_Date;
6031       Lx_Contract_Lines(Li_TableIdx).Line_Name                := Idx.Name;
6032       Lx_Contract_Lines(Li_TableIdx).Bill_To_Site_Use_Id      := Idx.Bill_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6033                                                                                                                                  --(NULL,Idx.Id,'OKX_BILLTO')); -- okc_k_lines_b.bill_to_site_use_id
6034       Lx_Contract_Lines(Li_TableIdx).Ship_To_Site_Use_Id      := Idx.Ship_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6035                                                                                                                 --(NULL,Idx.Id,'OKX_SHIPTO')); --okc_k_lines_b.ship_to_site_use_id
6036       Lx_Contract_Lines(Li_TableIdx).Modifier                 := Idx.discount_list; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Discount(NULL,Idx.Id)); --oks_k_lines_b.discount_list
6037       Lx_Contract_Lines(Li_TableIdx).Price_List_Id                := Idx.price_list_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P')); --okc_k_lines_b.price_list_id
6038       Lx_Contract_Lines(Li_TableIdx).Price_Negotiated         := Idx.Price_Negotiated;
6039       Lx_Contract_Lines(Li_TableIdx).Billing_Profile_Id       := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingProfile(NULL,Idx.Id)); --null
6040       Lx_Contract_Lines(Li_TableIdx).Billing_Frequency        := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'F'),1,25); --null
6041       Lx_Contract_Lines(Li_TableIdx).Billing_Method               := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'M'),1,3); --null
6042       Lx_Contract_Lines(Li_TableIdx).Regular_Offset_Days      := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'R')); --null
6043       Lx_Contract_Lines(Li_TableIdx).First_Bill_To                := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6044                                                                                             --(NULL,Idx.Id,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
6045       Lx_Contract_Lines(Li_TableIdx).First_Bill_On                := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6046                                                                                                                             --(NULL,Idx.Id,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
6047       Lx_Contract_Lines(Li_TableIdx).Termination_Date         := Idx.Date_Terminated;
6048 
6049     END LOOP;
6050 
6051   ELSE
6052 
6053     FOR Idx IN Lx_Csr_Cle(Lx_Cle_Id)  LOOP
6054 
6055       Li_TableIdx   :=  Li_TableIdx + 1;
6056 
6057       Lx_Contract_Lines(Li_TableIdx).Contract_Line_Id         := Idx.Id;
6058       Lx_Contract_Lines(Li_TableIdx).Contract_Parent_Line_Id  := Idx.Cle_Id;
6059       Lx_Contract_Lines(Li_TableIdx).Contract_Id                  := Idx.Dnz_Chr_Id;
6060       Lx_Contract_Lines(Li_TableIdx).Line_Status_Code         := Idx.Sts_Code;
6061       Lx_Contract_Lines(Li_TableIdx).Duration                     := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
6062                                                                                               (Idx.Start_Date,Idx.End_Date,'D'));
6063       Lx_Contract_Lines(Li_TableIdx).Period_Code                  := OKS_ENT_UTIL_PVT.Get_Duration_Period
6064                                                                                     (Idx.Start_Date,Idx.End_Date,'P');
6065       Lx_Contract_Lines(Li_TableIdx).Start_Date_Active        := Idx.Start_Date;
6066       Lx_Contract_Lines(Li_TableIdx).End_Date_Active          := Idx.End_Date;
6067       Lx_Contract_Lines(Li_TableIdx).Line_Name                := Idx.Name;
6068       Lx_Contract_Lines(Li_TableIdx).Bill_To_Site_Use_Id      := Idx.Bill_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6069                                                                                                                                  --(NULL,Idx.Id,'OKX_BILLTO')); -- okc_k_lines_b.bill_to_site_use_id
6070       Lx_Contract_Lines(Li_TableIdx).Ship_To_Site_Use_Id      := Idx.Ship_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6071                                                                                                                 --(NULL,Idx.Id,'OKX_SHIPTO')); --okc_k_lines_b.ship_to_site_use_id
6072       Lx_Contract_Lines(Li_TableIdx).Modifier                 := Idx.discount_list; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Discount(NULL,Idx.Id)); --oks_k_lines_b.discount_list
6073       Lx_Contract_Lines(Li_TableIdx).Price_List_Id                := Idx.price_list_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P')); --okc_k_lines_b.price_list_id
6074       Lx_Contract_Lines(Li_TableIdx).Price_Negotiated         := Idx.Price_Negotiated;
6075       Lx_Contract_Lines(Li_TableIdx).Billing_Profile_Id       := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingProfile(NULL,Idx.Id)); --null
6076       Lx_Contract_Lines(Li_TableIdx).Billing_Frequency        := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'F'),1,25); --null
6077       Lx_Contract_Lines(Li_TableIdx).Billing_Method               := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'M'),1,3); --null
6078       Lx_Contract_Lines(Li_TableIdx).Regular_Offset_Days      := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'R')); --null
6079       Lx_Contract_Lines(Li_TableIdx).First_Bill_To                := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6080                                                                                             --(NULL,Idx.Id,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
6081       Lx_Contract_Lines(Li_TableIdx).First_Bill_On                := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6082                                                                                                                             --(NULL,Idx.Id,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
6083       Lx_Contract_Lines(Li_TableIdx).Termination_Date         := Idx.Date_Terminated;
6084 
6085     END LOOP;
6086 
6087    END IF; -- lx_Cle_id is null
6088 
6089    /* Commented by Jvorugan for Bug:4998337
6090       FOR Idx IN Lx_Csr_Cle(Lx_Cle_Id)  LOOP
6091 
6092       Li_TableIdx   :=  Li_TableIdx + 1;
6093 
6094       Lx_Contract_Lines(Li_TableIdx).Contract_Line_Id	      := Idx.Id;
6095       Lx_Contract_Lines(Li_TableIdx).Contract_Parent_Line_Id  := Idx.Cle_Id;
6096       Lx_Contract_Lines(Li_TableIdx).Contract_Id	          := Idx.Dnz_Chr_Id;
6097       Lx_Contract_Lines(Li_TableIdx).Line_Status_Code	      := Idx.Sts_Code;
6098       Lx_Contract_Lines(Li_TableIdx).Duration		          := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Duration_Period
6099                                                                                               (Idx.Start_Date,Idx.End_Date,'D'));
6100       Lx_Contract_Lines(Li_TableIdx).Period_Code	          := OKS_ENT_UTIL_PVT.Get_Duration_Period
6101                                                                                     (Idx.Start_Date,Idx.End_Date,'P');
6102       Lx_Contract_Lines(Li_TableIdx).Start_Date_Active	      := Idx.Start_Date;
6103       Lx_Contract_Lines(Li_TableIdx).End_Date_Active	      := Idx.End_Date;
6104       Lx_Contract_Lines(Li_TableIdx).Line_Name                := Idx.Name;
6105       Lx_Contract_Lines(Li_TableIdx).Bill_To_Site_Use_Id      := Idx.Bill_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6106                 											                         --(NULL,Idx.Id,'OKX_BILLTO')); -- okc_k_lines_b.bill_to_site_use_id
6107       Lx_Contract_Lines(Li_TableIdx).Ship_To_Site_Use_Id      := Idx.Ship_To_Site_Use_Id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BilltoShipto
6108 				    				                                                --(NULL,Idx.Id,'OKX_SHIPTO')); --okc_k_lines_b.ship_to_site_use_id
6109       Lx_Contract_Lines(Li_TableIdx).Modifier        	      := Idx.discount_list; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_Discount(NULL,Idx.Id)); --oks_k_lines_b.discount_list
6110       Lx_Contract_Lines(Li_TableIdx).Price_List_Id	          := Idx.price_list_id; --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P')); --okc_k_lines_b.price_list_id
6111       Lx_Contract_Lines(Li_TableIdx).Price_Negotiated	      := Idx.Price_Negotiated;
6112       Lx_Contract_Lines(Li_TableIdx).Billing_Profile_Id	      := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingProfile(NULL,Idx.Id)); --null
6113       Lx_Contract_Lines(Li_TableIdx).Billing_Frequency	      := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'F'),1,25); --null
6114       Lx_Contract_Lines(Li_TableIdx).Billing_Method	          := null; -- does not exist in 11.5.10 --SUBSTR(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'M'),1,3); --null
6115       Lx_Contract_Lines(Li_TableIdx).Regular_Offset_Days      := null; -- does not exist in 11.5.10 --TO_NUMBER(OKS_ENT_UTIL_PVT.Get_BillingSchedule(NULL,Idx.Id,'R')); --null
6116       Lx_Contract_Lines(Li_TableIdx).First_Bill_To 	          := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6117                                                                                             --(NULL,Idx.Id,'T'),'YYYY/MM/DD HH24:MI:SS'); --null
6118       Lx_Contract_Lines(Li_TableIdx).First_Bill_On 	          := null; -- does not exist in 11.5.10 --TO_DATE(OKS_ENT_UTIL_PVT.Get_BillingSchedule
6119 								                                                            --(NULL,Idx.Id,'O'),'YYYY/MM/DD HH24:MI:SS'); --null
6120       Lx_Contract_Lines(Li_TableIdx).Termination_Date	      := Idx.Date_Terminated;
6121 
6122     END LOOP;
6123 
6124     */
6125 
6126     X_Contract_Lines      := Lx_Contract_Lines;
6127     X_Result              := Lx_Result;
6128     X_Return_Status       := Lx_Return_Status;
6129 
6130   EXCEPTION
6131 
6132     WHEN OTHERS THEN
6133 
6134       OKC_API.SET_MESSAGE
6135         (P_App_Name	  => G_APP_NAME_OKC
6136 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
6137 	,P_Token1	  => G_SQLCODE_TOKEN
6138 	,P_Token1_Value	  => SQLCODE
6139 	,P_Token2	  => G_SQLERRM_TOKEN
6140 	,P_Token2_Value   => SQLERRM);
6141 
6142       OKC_API.SET_MESSAGE
6143         (P_App_Name	  => G_APP_NAME_OKC
6144 	,P_Msg_Name	  => G_DEBUG_TOKEN
6145 	,P_Token1	  => G_PACKAGE_TOKEN
6146 	,P_Token1_Value	  => G_PKG_NAME
6147 	,P_Token2	  => G_PROGRAM_TOKEN
6148 	,P_Token2_Value   => 'Get_Contract_Line_Details');
6149 
6150       X_Result         := G_FALSE;
6151       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
6152 
6153   END Get_Contract_Line_Details;
6154 
6155 -----------------------------------------------------------------------------------------------------------------------*
6156 
6157   PROCEDURE Get_Contract_Details
6158     (P_API_Version		IN  NUMBER
6159     ,P_Init_Msg_List		IN  VARCHAR2
6160     ,P_Contract_Line_Id	        IN  NUMBER
6161     ,X_Return_Status 		OUT NOCOPY VARCHAR2
6162     ,X_Msg_Count		OUT NOCOPY NUMBER
6163     ,X_Msg_Data			OUT NOCOPY VARCHAR2
6164     ,X_All_Lines		OUT NOCOPY Line_Tbl_Type)
6165   IS
6166 
6167     Lx_Result                   Gx_Boolean;
6168 
6169   BEGIN
6170 
6171     Get_Contract_Line_Details
6172       (P_API_Version		=> P_API_Version
6173       ,P_Init_Msg_List		=> P_Init_Msg_List
6174       ,P_Cle_Id	                => P_Contract_Line_Id
6175       ,X_Contract_Lines		=> X_All_Lines
6176       ,X_Msg_Count		=> X_Msg_Count
6177       ,X_Msg_Data		=> X_Msg_Data
6178       ,X_Result                 => Lx_Result
6179       ,X_Return_Status          => X_Return_Status);
6180 
6181   EXCEPTION
6182 
6183     WHEN OTHERS THEN
6184 
6185       OKC_API.SET_MESSAGE
6186         (P_App_Name	  => G_APP_NAME_OKC
6187 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
6188 	,P_Token1	  => G_SQLCODE_TOKEN
6189 	,P_Token1_Value	  => SQLCODE
6190 	,P_Token2	  => G_SQLERRM_TOKEN
6191 	,P_Token2_Value   => SQLERRM);
6192 
6193       OKC_API.SET_MESSAGE
6194         (P_App_Name	  => G_APP_NAME_OKC
6195 	,P_Msg_Name	  => G_DEBUG_TOKEN
6196 	,P_Token1	  => G_PACKAGE_TOKEN
6197 	,P_Token1_Value	  => G_PKG_NAME
6198 	,P_Token2	  => G_PROGRAM_TOKEN
6199 	,P_Token2_Value   => 'Get_Contract_Details');
6200 
6201       --X_Result         := G_FALSE;
6202       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
6203 
6204   END Get_Contract_Details;
6205 
6206 -----------------------------------------------------------------------------------------------------------------------*
6207 
6208   PROCEDURE Get_Coverage_Level_Details
6209     (P_API_Version		IN  NUMBER
6210     ,P_Init_Msg_List		IN  VARCHAR2
6211     ,P_Cle_Id	                IN  Gx_OKS_Id
6212     ,X_Covered_Levels 	        out nocopy Clvl_Tbl_Type
6213     ,X_Msg_Count		OUT NOCOPY NUMBER
6214     ,X_Msg_Data			OUT NOCOPY VARCHAR2
6215     ,X_Result                   out nocopy Gx_Boolean
6216     ,X_Return_Status            out nocopy Gx_Ret_Sts)
6217   IS
6218 
6219     CURSOR Lx_Csr_CovLvl(Cx_Cle_Id IN Gx_OKS_Id) IS
6220     SELECT LIN.ROWID
6221 	  ,LIN.ID
6222 	  ,LIN.DNZ_CHR_ID
6223 	  ,LIN.CLE_ID
6224 	  ,LIN.PRICE_NEGOTIATED
6225 	  ,STL.NAME
6226       ,HDR.AUTHORING_ORG_ID ORG_ID
6227       ,HDR.INV_ORGANIZATION_ID ORGANIZATION_ID
6228     FROM OKC_K_HEADERS_ALL_B HDR  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
6229 	    ,OKC_LINE_STYLES_V STL
6230         ,OKC_K_LINES_B LIN
6231         ,OKS_K_LINES_B OKSLIN --11.5.10 changes
6232     WHERE LIN.ID        = Cx_Cle_Id    -- COmmented by Jvorugan for bug:4998337 NVL(Cx_Cle_Id, LIN.ID)
6233       AND LIN.LSE_ID    IN (7, 8, 9, 10, 11, 13, 18, 25, 35)
6234 	  AND STL.ID        = LIN.LSE_ID
6235       AND HDR.ID        = LIN.DNZ_CHR_ID
6236       AND OKSLIN.CLE_ID = LIN.ID;
6237 
6238 -- Added by Jvorugan for perf bug:4998337
6239     CURSOR Lx_Csr_CovLvl_noCle_id  IS
6240     SELECT LIN.ROWID
6241           ,LIN.ID
6242           ,LIN.DNZ_CHR_ID
6243           ,LIN.CLE_ID
6244           ,LIN.PRICE_NEGOTIATED
6245           ,STL.NAME
6246       ,HDR.AUTHORING_ORG_ID ORG_ID
6247       ,HDR.INV_ORGANIZATION_ID ORGANIZATION_ID
6248     FROM OKC_K_HEADERS_ALL_B HDR  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
6249             ,OKC_LINE_STYLES_V STL
6250         ,OKC_K_LINES_B LIN
6251         ,OKS_K_LINES_B OKSLIN --11.5.10 changes
6252     WHERE -- LIN.ID        = NVL(Cx_Cle_Id, LIN.ID)
6253         LIN.LSE_ID    IN (7, 8, 9, 10, 11, 13, 18, 25, 35)
6254         AND STL.ID        = LIN.LSE_ID
6255         AND HDR.ID        = LIN.DNZ_CHR_ID
6256         AND OKSLIN.CLE_ID = LIN.ID;
6257 
6258 
6259     ----CSI schema change uptake----
6260 /*
6261     CURSOR Lx_Csr_CovProd(Cn_Prod_Id NUMBER,Cn_Org_Id NUMBER,Ln_Organization_Id NUMBER) IS
6262       SELECT CP.Name
6263         FROM OKX_CUSTOMER_PRODUCTS_V CP
6264        WHERE     CP.Id1             = Cn_Prod_Id
6265              AND CP.Org_Id          = Cn_Org_Id
6266              AND CP.Organization_Id = Ln_Organization_Id;
6267 */
6268 
6269     CURSOR Lx_Csr_CovProd(Cn_Prod_Id NUMBER,Cn_Org_Id NUMBER,Ln_Organization_Id NUMBER) IS
6270         SELECT MSI.DESCRIPTION Name
6271         FROM   CSI_ITEM_INSTANCES CSI,
6272 	           CSI_I_ORG_ASSIGNMENTS CIOA,
6273                MTL_SYSTEM_ITEMS_B_KFV MSI
6274         WHERE  CSI.INSTANCE_ID                 = Cn_Prod_Id
6275         AND    CSI.INSTANCE_ID                 = CIOA.INSTANCE_ID(+)
6276         AND    CIOA.RELATIONSHIP_TYPE_CODE (+) = 'SOLD_FROM'
6277         AND    CSI.INVENTORY_ITEM_ID           = MSI.INVENTORY_ITEM_ID
6278         AND    CIOA.OPERATING_UNIT_ID          = Cn_Org_Id
6279         AND    CSI.INV_MASTER_ORGANIZATION_ID  = Ln_Organization_Id;
6280 
6281     Lx_Cle_Id	                CONSTANT Gx_OKS_Id := P_Cle_Id;
6282     Lx_Covered_Levels 	        Clvl_Tbl_Type;
6283 
6284     Lx_Prod_Rec		        OKS_ENT_UTIL_PVT.L_Pdt_Rec;
6285     Lx_Item_Rec		        OKS_ENT_UTIL_PVT.L_Inv_Rec;
6286     Lx_Sys_Rec		        OKS_ENT_UTIL_PVT.L_Sys_Rec;
6287     Lx_Party_Rec                OKS_ENT_UTIL_PVT.L_Party_Rec;
6288     Lx_CustAc_Rec               OKS_ENT_UTIL_PVT.L_Cust_Rec;
6289     Lx_Site_Rec                 OKS_ENT_UTIL_PVT.L_Site_Rec;
6290     Lx_QtyRate_Rec	        OKS_ENT_UTIL_PVT.L_QtyRate_Rec;
6291 
6292     Lx_Result                   Gx_Boolean;
6293     Lx_Return_Status            Gx_Ret_Sts;
6294 
6295     --Lv_Prod_Name                OKX_CUSTOMER_PRODUCTS_V.Name%TYPE;  --VARCHAR2(500);
6296     Lv_Prod_Name                  MTL_SYSTEM_ITEMS_B_KFV.description%TYPE;  --VARCHAR2(500);
6297     Ln_ListPrice		NUMBER;
6298     Li_TableIdx                 BINARY_INTEGER;
6299 
6300   BEGIN
6301 
6302     Lx_Result                   := G_TRUE;
6303     Lx_Return_Status            := G_RET_STS_SUCCESS;
6304 
6305     Li_TableIdx  := 0;
6306 
6307 /* Modified by Jvorugan for perg bug:4998337.
6308 If lx_cle_id is not null, then only passing the value.
6309 This is to avoid full table scan on okc_k_headers_all_b,okc_k_lines_b due to nvl condition
6310 */
6311 
6312 IF Lx_Cle_Id IS NULL
6313 THEN
6314     FOR Idx IN Lx_Csr_CovLvl_noCle_id  LOOP
6315 
6316       Li_TableIdx                     := Li_TableIdx + 1;
6317 
6318       Lv_Prod_Name                    := NULL;
6319       Lx_Prod_Rec		      := OKS_ENT_UTIL_PVT.Get_Product(Idx.Id);
6320 
6321       IF Lx_Prod_Rec.Product_Id IS NOT NULL THEN
6322         OPEN  Lx_Csr_CovProd (Lx_Prod_Rec.Product_Id,Idx.Org_Id,Idx.Organization_Id);
6323         FETCH Lx_Csr_CovProd INTO Lv_Prod_Name;
6324         CLOSE Lx_Csr_CovProd;
6325       END IF;
6326 
6327       Lx_Item_Rec	                          := OKS_ENT_UTIL_PVT.Get_InvItem(Idx.Id,Idx.Organization_Id);
6328       Lx_Sys_Rec		                      := OKS_ENT_UTIL_PVT.Get_System(Idx.Id,Idx.Org_Id);
6329 
6330       Lx_Party_Rec	                          := OKS_ENT_UTIL_PVT.Get_CLvl_Party(Idx.Id);
6331       Lx_CustAc_Rec                           := OKS_ENT_UTIL_PVT.Get_CLvl_Customer(Idx.Id);
6332       Lx_Site_Rec 	                          := OKS_ENT_UTIL_PVT.Get_CLvl_Site(Idx.Id, Idx.Org_Id);
6333 
6334 --      Lx_QtyRate_Rec	                      := OKS_ENT_UTIL_PVT.Get_QtyRate_Rule(Idx.Id); --null oks_k_lines_b , okc_k_lines_b
6335 --      Ln_ListPrice		                  := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P'));
6336 
6337       Lx_Covered_Levels(Li_TableIdx).Row_Id		               := Idx.RowId;
6338       Lx_Covered_Levels(Li_TableIdx).Line_Id		           := Idx.Id;
6339       Lx_Covered_Levels(Li_TableIdx).Header_Id		           := Idx.Dnz_Chr_Id;
6340       Lx_Covered_Levels(Li_TableIdx).Parent_Line_Id	           := Idx.Cle_Id;
6341       Lx_Covered_Levels(Li_TableIdx).Line_Level		           := Idx.Name;
6342       Lx_Covered_Levels(Li_TableIdx).Cp_Id		               := Lx_Prod_Rec.Product_Id;
6343       Lx_Covered_Levels(Li_TableIdx).Quantity		           := Lx_Prod_Rec.Product_Qty;
6344       Lx_Covered_Levels(Li_TableIdx).Cp_Name                   := Lv_Prod_Name;
6345       Lx_Covered_Levels(Li_TableIdx).Inv_Item_Id               := Lx_Item_Rec.Inv_Item_Id;
6346       Lx_Covered_Levels(Li_TableIdx).item_name	               := Lx_Item_Rec.Item_name;
6347       Lx_Covered_Levels(Li_TableIdx).system_id	               := Lx_Sys_Rec.System_Id;
6348       Lx_Covered_Levels(Li_TableIdx).system_name	           := Lx_Sys_Rec.System_Name;
6349       Lx_Covered_Levels(Li_TableIdx).Site_Id	               := Lx_Site_Rec.Site_Id;
6350       Lx_Covered_Levels(Li_TableIdx).Site_Name	               := Lx_Site_Rec.Site_Name;
6351       Lx_Covered_Levels(Li_TableIdx).Party_Id	               := Lx_Party_Rec.Party_Id;
6352       Lx_Covered_Levels(Li_TableIdx).Party_Name	               := Lx_Party_Rec.Party_Name;
6353       Lx_Covered_Levels(Li_TableIdx).Customer_Id	           := Lx_CustAc_Rec.Customer_Id;
6354       Lx_Covered_Levels(Li_TableIdx).Customer_Name	           := Lx_CustAc_Rec.Customer_Name;
6355       Lx_Covered_Levels(Li_TableIdx).List_Price		           := Ln_ListPrice;
6356       Lx_Covered_Levels(Li_TableIdx).Price_Negotiated	       := Idx.Price_Negotiated;
6357       Lx_Covered_Levels(Li_TableIdx).Line_Name		           := Idx.Name;
6358       Lx_Covered_Levels(Li_TableIdx).Default_AMCV_Flag	       := Lx_QtyRate_Rec.Default_AMCV_Flag;
6359       Lx_Covered_Levels(Li_TableIdx).Default_Qty	           := Lx_QtyRate_Rec.Default_Qty;
6360       Lx_Covered_Levels(Li_TableIdx).Default_UOM	           := Lx_QtyRate_Rec.Default_UOM;
6361       Lx_Covered_Levels(Li_TableIdx).Default_Duration	       := Lx_QtyRate_Rec.Default_Duration;
6362       Lx_Covered_Levels(Li_TableIdx).Default_Period	           := Lx_QtyRate_Rec.Default_Period;
6363       Lx_Covered_Levels(Li_TableIdx).Minimum_Qty	           := Lx_QtyRate_Rec.Minimum_Qty;
6364       Lx_Covered_Levels(Li_TableIdx).Minimum_UOM	           := Lx_QtyRate_Rec.Minimum_UOM;
6365       Lx_Covered_Levels(Li_TableIdx).Minimum_Duration	       := Lx_QtyRate_Rec.Minimum_Duration;
6366       Lx_Covered_Levels(Li_TableIdx).Minimum_Period	           := Lx_QtyRate_Rec.Minimum_Period;
6367       Lx_Covered_Levels(Li_TableIdx).Fixed_Qty		           := Lx_QtyRate_Rec.Fixed_Qty;
6368       Lx_Covered_Levels(Li_TableIdx).Fixed_UOM		           := Lx_QtyRate_Rec.Fixed_UOM;
6369       Lx_Covered_Levels(Li_TableIdx).Fixed_Duration	           := Lx_QtyRate_Rec.Fixed_Duration;
6370       Lx_Covered_Levels(Li_TableIdx).Fixed_Period	           := Lx_QtyRate_Rec.Fixed_Period;
6371       Lx_Covered_Levels(Li_TableIdx).Level_Flag		           := Lx_QtyRate_Rec.Level_Flag;
6372 
6373     END LOOP;
6374 
6375 ELSE  -- if lx_cle_id is not null
6376 
6377     FOR Idx IN Lx_Csr_CovLvl(Lx_Cle_Id)  LOOP
6378 
6379       Li_TableIdx                     := Li_TableIdx + 1;
6380 
6381       Lv_Prod_Name                    := NULL;
6382       Lx_Prod_Rec		      := OKS_ENT_UTIL_PVT.Get_Product(Idx.Id);
6383 
6384       IF Lx_Prod_Rec.Product_Id IS NOT NULL THEN
6385         OPEN  Lx_Csr_CovProd (Lx_Prod_Rec.Product_Id,Idx.Org_Id,Idx.Organization_Id);
6386         FETCH Lx_Csr_CovProd INTO Lv_Prod_Name;
6387         CLOSE Lx_Csr_CovProd;
6388       END IF;
6389 
6390       Lx_Item_Rec	                          := OKS_ENT_UTIL_PVT.Get_InvItem(Idx.Id,Idx.Organization_Id);
6391       Lx_Sys_Rec		                      := OKS_ENT_UTIL_PVT.Get_System(Idx.Id,Idx.Org_Id);
6392 
6393       Lx_Party_Rec	                          := OKS_ENT_UTIL_PVT.Get_CLvl_Party(Idx.Id);
6394       Lx_CustAc_Rec                           := OKS_ENT_UTIL_PVT.Get_CLvl_Customer(Idx.Id);
6395       Lx_Site_Rec 	                          := OKS_ENT_UTIL_PVT.Get_CLvl_Site(Idx.Id, Idx.Org_Id);
6396 
6397 --      Lx_QtyRate_Rec	                      := OKS_ENT_UTIL_PVT.Get_QtyRate_Rule(Idx.Id); --null oks_k_lines_b , okc_k_lines_b
6398 --      Ln_ListPrice		                  := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P'));
6399 
6400       Lx_Covered_Levels(Li_TableIdx).Row_Id		               := Idx.RowId;
6401       Lx_Covered_Levels(Li_TableIdx).Line_Id		           := Idx.Id;
6402       Lx_Covered_Levels(Li_TableIdx).Header_Id		           := Idx.Dnz_Chr_Id;
6403       Lx_Covered_Levels(Li_TableIdx).Parent_Line_Id	           := Idx.Cle_Id;
6404       Lx_Covered_Levels(Li_TableIdx).Line_Level		           := Idx.Name;
6405       Lx_Covered_Levels(Li_TableIdx).Cp_Id		               := Lx_Prod_Rec.Product_Id;
6406       Lx_Covered_Levels(Li_TableIdx).Quantity		           := Lx_Prod_Rec.Product_Qty;
6407       Lx_Covered_Levels(Li_TableIdx).Cp_Name                   := Lv_Prod_Name;
6408       Lx_Covered_Levels(Li_TableIdx).Inv_Item_Id               := Lx_Item_Rec.Inv_Item_Id;
6409       Lx_Covered_Levels(Li_TableIdx).item_name	               := Lx_Item_Rec.Item_name;
6410       Lx_Covered_Levels(Li_TableIdx).system_id	               := Lx_Sys_Rec.System_Id;
6411       Lx_Covered_Levels(Li_TableIdx).system_name	           := Lx_Sys_Rec.System_Name;
6412       Lx_Covered_Levels(Li_TableIdx).Site_Id	               := Lx_Site_Rec.Site_Id;
6413       Lx_Covered_Levels(Li_TableIdx).Site_Name	               := Lx_Site_Rec.Site_Name;
6414       Lx_Covered_Levels(Li_TableIdx).Party_Id	               := Lx_Party_Rec.Party_Id;
6415       Lx_Covered_Levels(Li_TableIdx).Party_Name	               := Lx_Party_Rec.Party_Name;
6416       Lx_Covered_Levels(Li_TableIdx).Customer_Id	           := Lx_CustAc_Rec.Customer_Id;
6417       Lx_Covered_Levels(Li_TableIdx).Customer_Name	           := Lx_CustAc_Rec.Customer_Name;
6418       Lx_Covered_Levels(Li_TableIdx).List_Price		           := Ln_ListPrice;
6419       Lx_Covered_Levels(Li_TableIdx).Price_Negotiated	       := Idx.Price_Negotiated;
6420       Lx_Covered_Levels(Li_TableIdx).Line_Name		           := Idx.Name;
6421       Lx_Covered_Levels(Li_TableIdx).Default_AMCV_Flag	       := Lx_QtyRate_Rec.Default_AMCV_Flag;
6422       Lx_Covered_Levels(Li_TableIdx).Default_Qty	           := Lx_QtyRate_Rec.Default_Qty;
6423       Lx_Covered_Levels(Li_TableIdx).Default_UOM	           := Lx_QtyRate_Rec.Default_UOM;
6424       Lx_Covered_Levels(Li_TableIdx).Default_Duration	       := Lx_QtyRate_Rec.Default_Duration;
6425       Lx_Covered_Levels(Li_TableIdx).Default_Period	           := Lx_QtyRate_Rec.Default_Period;
6426       Lx_Covered_Levels(Li_TableIdx).Minimum_Qty	           := Lx_QtyRate_Rec.Minimum_Qty;
6427       Lx_Covered_Levels(Li_TableIdx).Minimum_UOM	           := Lx_QtyRate_Rec.Minimum_UOM;
6428       Lx_Covered_Levels(Li_TableIdx).Minimum_Duration	       := Lx_QtyRate_Rec.Minimum_Duration;
6429       Lx_Covered_Levels(Li_TableIdx).Minimum_Period	           := Lx_QtyRate_Rec.Minimum_Period;
6430       Lx_Covered_Levels(Li_TableIdx).Fixed_Qty		           := Lx_QtyRate_Rec.Fixed_Qty;
6431       Lx_Covered_Levels(Li_TableIdx).Fixed_UOM		           := Lx_QtyRate_Rec.Fixed_UOM;
6432       Lx_Covered_Levels(Li_TableIdx).Fixed_Duration	           := Lx_QtyRate_Rec.Fixed_Duration;
6433       Lx_Covered_Levels(Li_TableIdx).Fixed_Period	           := Lx_QtyRate_Rec.Fixed_Period;
6434       Lx_Covered_Levels(Li_TableIdx).Level_Flag		           := Lx_QtyRate_Rec.Level_Flag;
6435 
6436     END LOOP;
6437  END IF; -- End of lx_cle_id is null
6438 
6439 /* Commented by Jvorugan for Bug:4998337
6440    FOR Idx IN Lx_Csr_CovLvl(Lx_Cle_Id)  LOOP
6441 
6442       Li_TableIdx                     := Li_TableIdx + 1;
6443 
6444       Lv_Prod_Name                    := NULL;
6445       Lx_Prod_Rec                     := OKS_ENT_UTIL_PVT.Get_Product(Idx.Id);
6446 
6447       IF Lx_Prod_Rec.Product_Id IS NOT NULL THEN
6448         OPEN  Lx_Csr_CovProd (Lx_Prod_Rec.Product_Id,Idx.Org_Id,Idx.Organization_Id);
6449         FETCH Lx_Csr_CovProd INTO Lv_Prod_Name;
6450         CLOSE Lx_Csr_CovProd;
6451       END IF;
6452 
6453       Lx_Item_Rec                                 := OKS_ENT_UTIL_PVT.Get_InvItem(Idx.Id,Idx.Organization_Id);
6454       Lx_Sys_Rec                                      := OKS_ENT_UTIL_PVT.Get_System(Idx.Id,Idx.Org_Id);
6455 
6456       Lx_Party_Rec                                := OKS_ENT_UTIL_PVT.Get_CLvl_Party(Idx.Id);
6457       Lx_CustAc_Rec                           := OKS_ENT_UTIL_PVT.Get_CLvl_Customer(Idx.Id);
6458       Lx_Site_Rec                                 := OKS_ENT_UTIL_PVT.Get_CLvl_Site(Idx.Id, Idx.Org_Id);
6459 
6460 --      Lx_QtyRate_Rec                        := OKS_ENT_UTIL_PVT.Get_QtyRate_Rule(Idx.Id); --null oks_k_lines_b , okc_k_lines_b
6461 --      Ln_ListPrice                              := TO_NUMBER(OKS_ENT_UTIL_PVT.Get_PriceList(NULL,Idx.Id,'P'));
6462 
6463       Lx_Covered_Levels(Li_TableIdx).Row_Id                            := Idx.RowId;
6464       Lx_Covered_Levels(Li_TableIdx).Line_Id                       := Idx.Id;
6465       Lx_Covered_Levels(Li_TableIdx).Header_Id                     := Idx.Dnz_Chr_Id;
6466       Lx_Covered_Levels(Li_TableIdx).Parent_Line_Id                := Idx.Cle_Id;
6467       Lx_Covered_Levels(Li_TableIdx).Line_Level                    := Idx.Name;
6468       Lx_Covered_Levels(Li_TableIdx).Cp_Id                             := Lx_Prod_Rec.Product_Id;
6469       Lx_Covered_Levels(Li_TableIdx).Quantity                      := Lx_Prod_Rec.Product_Qty;
6470       Lx_Covered_Levels(Li_TableIdx).Cp_Name                   := Lv_Prod_Name;
6471       Lx_Covered_Levels(Li_TableIdx).Inv_Item_Id               := Lx_Item_Rec.Inv_Item_Id;
6472       Lx_Covered_Levels(Li_TableIdx).item_name                 := Lx_Item_Rec.Item_name;
6473       Lx_Covered_Levels(Li_TableIdx).system_id                 := Lx_Sys_Rec.System_Id;
6474       Lx_Covered_Levels(Li_TableIdx).system_name                   := Lx_Sys_Rec.System_Name;
6475       Lx_Covered_Levels(Li_TableIdx).Site_Id                   := Lx_Site_Rec.Site_Id;
6476       Lx_Covered_Levels(Li_TableIdx).Site_Name                 := Lx_Site_Rec.Site_Name;
6477       Lx_Covered_Levels(Li_TableIdx).Party_Id                  := Lx_Party_Rec.Party_Id;
6478       Lx_Covered_Levels(Li_TableIdx).Party_Name                := Lx_Party_Rec.Party_Name;
6479       Lx_Covered_Levels(Li_TableIdx).Customer_Id                   := Lx_CustAc_Rec.Customer_Id;
6480       Lx_Covered_Levels(Li_TableIdx).Customer_Name                 := Lx_CustAc_Rec.Customer_Name;
6481       Lx_Covered_Levels(Li_TableIdx).List_Price                    := Ln_ListPrice;
6482       Lx_Covered_Levels(Li_TableIdx).Price_Negotiated          := Idx.Price_Negotiated;
6483       Lx_Covered_Levels(Li_TableIdx).Line_Name                     := Idx.Name;
6484       Lx_Covered_Levels(Li_TableIdx).Default_AMCV_Flag         := Lx_QtyRate_Rec.Default_AMCV_Flag;
6485       Lx_Covered_Levels(Li_TableIdx).Default_Qty                   := Lx_QtyRate_Rec.Default_Qty;
6486       Lx_Covered_Levels(Li_TableIdx).Default_UOM                   := Lx_QtyRate_Rec.Default_UOM;
6487       Lx_Covered_Levels(Li_TableIdx).Default_Duration          := Lx_QtyRate_Rec.Default_Duration;
6488       Lx_Covered_Levels(Li_TableIdx).Default_Period                := Lx_QtyRate_Rec.Default_Period;
6489       Lx_Covered_Levels(Li_TableIdx).Minimum_Qty                   := Lx_QtyRate_Rec.Minimum_Qty;
6490       Lx_Covered_Levels(Li_TableIdx).Minimum_UOM                   := Lx_QtyRate_Rec.Minimum_UOM;
6491       Lx_Covered_Levels(Li_TableIdx).Minimum_Duration          := Lx_QtyRate_Rec.Minimum_Duration;
6492       Lx_Covered_Levels(Li_TableIdx).Minimum_Period                := Lx_QtyRate_Rec.Minimum_Period;
6493       Lx_Covered_Levels(Li_TableIdx).Fixed_Qty                     := Lx_QtyRate_Rec.Fixed_Qty;
6494       Lx_Covered_Levels(Li_TableIdx).Fixed_UOM                     := Lx_QtyRate_Rec.Fixed_UOM;
6495       Lx_Covered_Levels(Li_TableIdx).Fixed_Duration                := Lx_QtyRate_Rec.Fixed_Duration;
6496       Lx_Covered_Levels(Li_TableIdx).Fixed_Period                  := Lx_QtyRate_Rec.Fixed_Period;
6497       Lx_Covered_Levels(Li_TableIdx).Level_Flag                    := Lx_QtyRate_Rec.Level_Flag;
6498 
6499     END LOOP;
6500   */
6501 
6502     X_Covered_Levels      := Lx_Covered_Levels;
6503     X_Result              := Lx_Result;
6504     X_Return_Status       := Lx_Return_Status;
6505 
6506   EXCEPTION
6507 
6508     WHEN OTHERS THEN
6509 
6510       OKC_API.SET_MESSAGE
6511         (P_App_Name	  => G_APP_NAME_OKC
6512 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
6513 	,P_Token1	  => G_SQLCODE_TOKEN
6514 	,P_Token1_Value	  => SQLCODE
6515 	,P_Token2	  => G_SQLERRM_TOKEN
6516 	,P_Token2_Value   => SQLERRM);
6517 
6518       OKC_API.SET_MESSAGE
6519         (P_App_Name	  => G_APP_NAME_OKC
6520 	,P_Msg_Name	  => G_DEBUG_TOKEN
6521 	,P_Token1	  => G_PACKAGE_TOKEN
6522 	,P_Token1_Value	  => G_PKG_NAME
6523 	,P_Token2	  => G_PROGRAM_TOKEN
6524 	,P_Token2_Value   => 'Get_Coverage_Level_Details');
6525 
6526       X_Result         := G_FALSE;
6527       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
6528 
6529   END Get_Coverage_Level_Details;
6530 
6531 -----------------------------------------------------------------------------------------------------------------------*
6532 
6533   PROCEDURE Get_Coverage_Levels
6534     (P_API_Version		IN  NUMBER
6535     ,P_Init_Msg_List		IN  VARCHAR2
6536     ,P_Contract_Line_Id	        IN  NUMBER
6537     ,X_Return_Status 		OUT NOCOPY VARCHAR2
6538     ,X_Msg_Count		OUT NOCOPY NUMBER
6539     ,X_Msg_Data			OUT NOCOPY VARCHAR2
6540     ,X_Covered_Levels		OUT NOCOPY Clvl_Tbl_Type)
6541   IS
6542 
6543     Lx_Result                   Gx_Boolean;
6544 
6545   BEGIN
6546 
6547     Get_Coverage_Level_Details
6548       (P_API_Version		  => P_API_Version
6549       ,P_Init_Msg_List		  => P_Init_Msg_List
6550       ,P_Cle_Id	                  => P_Contract_Line_Id
6551       ,X_Covered_Levels 	  => X_Covered_Levels
6552       ,X_Msg_Count		  => X_Msg_Count
6553       ,X_Msg_Data		  => X_Msg_Data
6554       ,X_Result                   => Lx_Result
6555       ,X_Return_Status            => X_Return_Status);
6556 
6557   EXCEPTION
6558 
6559     WHEN OTHERS THEN
6560 
6561       OKC_API.SET_MESSAGE
6562         (P_App_Name	  => G_APP_NAME_OKC
6563 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
6564 	,P_Token1	  => G_SQLCODE_TOKEN
6565 	,P_Token1_Value	  => SQLCODE
6566 	,P_Token2	  => G_SQLERRM_TOKEN
6567 	,P_Token2_Value   => SQLERRM);
6568 
6569       OKC_API.SET_MESSAGE
6570         (P_App_Name	  => G_APP_NAME_OKC
6571 	,P_Msg_Name	  => G_DEBUG_TOKEN
6572 	,P_Token1	  => G_PACKAGE_TOKEN
6573 	,P_Token1_Value	  => G_PKG_NAME
6574 	,P_Token2	  => G_PROGRAM_TOKEN
6575 	,P_Token2_Value   => 'Get_Coverage_Levels');
6576 
6577       --X_Result         := G_FALSE;
6578       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
6579 
6580   END Get_Coverage_Levels;
6581 
6582 -----------------------------------------------------------------------------------------------------------------------*
6583 
6584   PROCEDURE Get_Coverage_Type_Attribs
6585     (P_CVL_Id                   IN  Gx_OKS_Id
6586     ,P_Set_ExcepionStack        IN  Gx_Boolean
6587     ,X_Cov_Type_Code            out nocopy VARCHAR2
6588     ,X_Cov_Type_Meaning         out nocopy VARCHAR2
6589     ,X_Cov_Type_Description     out nocopy VARCHAR2
6590     ,X_Cov_Type_Imp_Level       out nocopy VARCHAR2
6591     ,X_Result                   out nocopy Gx_Boolean
6592     ,X_Return_Status            out nocopy Gx_Ret_Sts)
6593   IS
6594 
6595     CURSOR Lx_Csr_CovType(Cx_CVL_Id IN Gx_OKS_Id) IS
6596     SELECT CVT.Code
6597           ,CVT.Meaning
6598           ,CVT.Description
6599           ,CVT.Importance_Level
6600       FROM OKS_K_Lines_B OKSLB
6601           ,OKS_Cov_Types_V CVT
6602      WHERE OKSLB.Cle_Id = Cx_CVL_Id
6603        AND OKSLB.Coverage_Type = CVT.Code;
6604 
6605     Lx_CVL_Id	                CONSTANT Gx_OKS_Id := P_CVL_Id;
6606     Lx_Set_ExcepionStack        CONSTANT Gx_Boolean := P_Set_ExcepionStack;
6607 
6608     Lx_Cov_Type_Code            Oks_Cov_Types_B.Code%TYPE;
6609     Lx_Cov_Type_Meaning         Oks_Cov_Types_TL.Meaning%TYPE;
6610     Lx_Cov_Type_Description     Oks_Cov_Types_TL.Description%TYPE;
6611     Lx_Cov_Type_Imp_Level       Oks_Cov_Types_B.Importance_Level%TYPE;
6612 
6613     Lx_Result                   Gx_Boolean;
6614     Lx_Return_Status            Gx_Ret_Sts;
6615 
6616     L_EXCEP_NO_DATA_FOUND       EXCEPTION;
6617 
6618   BEGIN
6619 
6620     Lx_Result                   := G_TRUE;
6621     Lx_Return_Status            := G_RET_STS_SUCCESS;
6622 
6623     OPEN Lx_Csr_CovType(Lx_CVL_Id);
6624     FETCH Lx_Csr_CovType INTO Lx_Cov_Type_Code,Lx_Cov_Type_Meaning,Lx_Cov_Type_Description,Lx_Cov_Type_Imp_Level;
6625 
6626     IF Lx_Csr_CovType%NOTFOUND THEN
6627 
6628       CLOSE Lx_Csr_CovType;
6629       RAISE L_EXCEP_NO_DATA_FOUND;
6630 
6631     END IF;
6632 
6633     CLOSE Lx_Csr_CovType;
6634 
6635     X_Cov_Type_Code         :=  Lx_Cov_Type_Code;
6636     X_Cov_Type_Meaning      :=  Lx_Cov_Type_Meaning;
6637     X_Cov_Type_Description  :=  Lx_Cov_Type_Description;
6638     X_Cov_Type_Imp_Level    :=  Lx_Cov_Type_Imp_Level;
6639 
6640     X_Result                := Lx_Result;
6641     X_Return_Status         := Lx_Return_Status;
6642 
6643   EXCEPTION
6644 
6645     WHEN L_EXCEP_NO_DATA_FOUND THEN
6646 
6647       Lx_Result   := G_FALSE;
6648 
6649       IF Lx_Set_ExcepionStack = G_TRUE THEN
6650 
6651         OKC_API.SET_MESSAGE
6652           (p_app_name	   => G_APP_NAME_OKC
6653 	  ,p_msg_name	   => G_INVALID_VALUE
6654 	  ,p_token1	   => G_COL_NAME_TOKEN
6655 	  ,p_token1_value  => 'Coverage Type');
6656 
6657         Lx_Return_Status  := G_RET_STS_ERROR;
6658 
6659       END IF;
6660 
6661       X_Result            := Lx_Result;
6662       X_Return_Status     := Lx_Return_Status;
6663 
6664     WHEN OTHERS THEN
6665 
6666       IF Lx_Csr_CovType%ISOPEN THEN
6667         CLOSE Lx_Csr_CovType;
6668       END IF;
6669 
6670       OKC_API.SET_MESSAGE
6671         (P_App_Name	  => G_APP_NAME_OKC
6672 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
6673 	,P_Token1	  => G_SQLCODE_TOKEN
6674 	,P_Token1_Value	  => SQLCODE
6675 	,P_Token2	  => G_SQLERRM_TOKEN
6676 	,P_Token2_Value   => SQLERRM);
6677 
6678       OKC_API.SET_MESSAGE
6679         (P_App_Name	  => G_APP_NAME_OKC
6680 	,P_Msg_Name	  => G_DEBUG_TOKEN
6681 	,P_Token1	  => G_PACKAGE_TOKEN
6682 	,P_Token1_Value	  => G_PKG_NAME
6683 	,P_Token2	  => G_PROGRAM_TOKEN
6684 	,P_Token2_Value   => 'Get_Coverage_Type_Attribs');
6685 
6686       X_Result            := G_FALSE;
6687       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
6688 
6689   END Get_Coverage_Type_Attribs;
6690 
6691 -----------------------------------------------------------------------------------------------------------------------*
6692 
6693   PROCEDURE Get_Cont_Coverage_Type
6694     (P_API_Version		IN  NUMBER
6695     ,P_Init_Msg_List		IN  VARCHAR2
6696     ,P_SVL_Id                   IN  Gx_OKS_Id
6697     ,P_Set_ExcepionStack        IN  Gx_Boolean
6698     ,X_Coverage_Type            out nocopy CovType_Rec_Type
6699     ,X_Msg_Count		OUT NOCOPY NUMBER
6700     ,X_Msg_Data			OUT NOCOPY VARCHAR2
6701     ,X_Result                   out nocopy Gx_Boolean
6702     ,X_Return_Status            out nocopy Gx_Ret_Sts)
6703   IS
6704 
6705     Lx_SVL_Id	                CONSTANT Gx_OKS_Id := P_SVL_Id;
6706     Lx_Set_ExcepionStack        CONSTANT Gx_Boolean := P_Set_ExcepionStack;
6707 
6708     Ld_SVL_Start                DATE;
6709     Ld_SVL_End                  DATE;
6710     Ld_SVL_Terminated           DATE;
6711 
6712     Lx_CVL_Id                   Gx_OKS_Id;
6713     Ld_CVL_Start                DATE;
6714     Ld_CVL_End                  DATE;
6715     Ld_CVL_Terminated           DATE;
6716 
6717     Lx_Cov_Type_Code            Oks_Cov_Types_B.Code%TYPE;
6718     Lx_Cov_Type_Meaning         Oks_Cov_Types_TL.Meaning%TYPE;
6719     Lx_Cov_Type_Description     Oks_Cov_Types_TL.Description%TYPE;
6720     Lx_Cov_Type_Imp_Level       Oks_Cov_Types_B.Importance_Level%TYPE;
6721 
6722     Lx_Result                   Gx_Boolean;
6723     Lx_Return_Status            Gx_Ret_Sts;
6724 
6725     L_EXCEP_NULL_VALUE          EXCEPTION;
6726     L_EXCEP_NO_DATA_FOUND       EXCEPTION;
6727 
6728     -- Added for 12.0 Coverage Rearch project (JVARGHES)
6729 
6730     Lv_Std_Cov_YN              VARCHAR2(10);
6731 
6732     --
6733 
6734   BEGIN
6735 
6736     Lx_Result                   := G_TRUE;
6737     Lx_Return_Status            := G_RET_STS_SUCCESS;
6738 
6739     Validate_Required_NumValue
6740       (P_Num_Value             => Lx_SVL_Id
6741       ,P_Set_ExcepionStack     => Lx_Set_ExcepionStack
6742       ,P_ExcepionMsg           => 'Contract Line'
6743       ,X_Result                => Lx_result
6744       ,X_Return_Status         => Lx_Return_Status);
6745 
6746     IF Lx_result <> G_TRUE  THEN
6747        RAISE L_EXCEP_NULL_VALUE;
6748     END IF;
6749 
6750     --
6751     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6752     --
6753     --Validate_Service_Line
6754     --  (P_SVL_Id	                => Lx_SVL_Id
6755     --  ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
6756     --  ,X_SVL_Start              => Ld_SVL_Start
6757     --  ,X_SVL_End                => Ld_SVL_End
6758     --  ,X_SVL_Terminated         => Ld_SVL_Terminated
6759     --  ,X_Result                 => Lx_Result
6760     --  ,X_Return_Status 	    => Lx_Return_Status);
6761     --
6762     -- Added for 12.0 Coverage Rearch project (JVARGHES)
6763     --
6764     --
6765 
6766       Validate_Service_Line
6767         (P_SVL_Id	           => Lx_SVL_Id
6768         ,P_Set_ExcepionStack => Lx_Set_ExcepionStack
6769         ,X_CVL_Id	           => Lx_CVL_Id
6770         ,X_Std_Cov_YN	     => Lv_Std_Cov_YN
6771         ,X_SVL_Start         => Ld_SVL_Start
6772         ,X_SVL_End           => Ld_SVL_End
6773         ,X_SVL_Terminated    => Ld_SVL_Terminated
6774         ,X_Result            => Lx_Result
6775         ,X_Return_Status     => Lx_Return_Status);
6776 
6777     --
6778 
6779     IF Lx_Result <> G_TRUE  THEN
6780       RAISE L_EXCEP_NO_DATA_FOUND;
6781     END IF;
6782 
6783     --
6784     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6785     --
6786     --Validate_Coverage_Line
6787     --  (P_SVL_Id	              =>  Lx_SVL_Id
6788     --  ,P_template_YN            => 'N'
6789     --  ,P_Set_ExcepionStack      => G_FALSE
6790     --  ,X_CVL_Id                 => Lx_CVL_Id
6791     --  ,X_CVL_Start              => Ld_CVL_Start
6792     --  ,X_CVL_End                => Ld_CVL_End
6793     --  ,X_CVL_Terminated         => Ld_CVL_Terminated
6794     --  ,X_Result                 => Lx_Result
6795     --  ,X_Return_Status 	        => Lx_Return_Status);
6796     --
6797     --
6798     -- Added for 12.0 Coverage Rearch project (JVARGHES)
6799     --
6800 
6801     Validate_Coverage_Line
6802      (P_CVL_Id	             => Lx_CVL_Id
6803      ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
6804      ,X_CVL_Start              => Ld_CVL_Start
6805      ,X_CVL_End                => Ld_CVL_End
6806      ,X_CVL_Terminated         => Ld_CVL_Terminated
6807      ,X_Result                 => Lx_Result
6808      ,X_Return_Status 	       => Lx_Return_Status);
6809 
6810     IF Lx_Result <> G_TRUE  THEN
6811       RAISE L_EXCEP_NO_DATA_FOUND;
6812     END IF;
6813 
6814     IF NVL(Lv_Std_Cov_YN,'*') = 'Y'
6815     THEN
6816 
6817       Ld_CVL_Start      := Ld_SVL_Start;
6818       Ld_CVL_End        := Ld_SVL_End;
6819       Ld_CVL_Terminated := Ld_SVL_Terminated;
6820 
6821     END IF;
6822 
6823     --
6824     --
6825 
6826     Get_Coverage_Type_Attribs
6827       (P_CVL_Id                => Lx_CVL_Id
6828       ,P_Set_ExcepionStack     => G_FALSE
6829       ,X_Cov_Type_Code         => Lx_Cov_Type_Code
6830       ,X_Cov_Type_Meaning      => Lx_Cov_Type_Meaning
6831       ,X_Cov_Type_Description  => Lx_Cov_Type_Description
6832       ,X_Cov_Type_Imp_Level    => Lx_Cov_Type_Imp_Level
6833       ,X_Result                => Lx_Result
6834       ,X_Return_Status         => Lx_Return_Status);
6835 
6836     IF Lx_Result <> G_TRUE  THEN
6837       RAISE L_EXCEP_NO_DATA_FOUND;
6838     END IF;
6839 
6840     X_Coverage_Type.Code             :=  Lx_Cov_Type_Code;
6841     X_Coverage_Type.Meaning          :=  Lx_Cov_Type_Meaning;
6842     X_Coverage_Type.Importance_Level :=  Lx_Cov_Type_Imp_Level;
6843 
6844     X_Result                         := Lx_Result;
6845     X_Return_Status                  := Lx_Return_Status;
6846 
6847   EXCEPTION
6848 
6849     WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_NO_DATA_FOUND THEN
6850 
6851       X_Result            := Lx_Result;
6852       X_Return_Status     := Lx_Return_Status;
6853 
6854     WHEN OTHERS THEN
6855 
6856       OKC_API.SET_MESSAGE
6857         (P_App_Name	  => G_APP_NAME_OKC
6858 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
6859 	,P_Token1	  => G_SQLCODE_TOKEN
6860 	,P_Token1_Value	  => SQLCODE
6861 	,P_Token2	  => G_SQLERRM_TOKEN
6862 	,P_Token2_Value   => SQLERRM);
6863 
6864       OKC_API.SET_MESSAGE
6865         (P_App_Name	  => G_APP_NAME_OKC
6866 	,P_Msg_Name	  => G_DEBUG_TOKEN
6867 	,P_Token1	  => G_PACKAGE_TOKEN
6868 	,P_Token1_Value	  => G_PKG_NAME
6869 	,P_Token2	  => G_PROGRAM_TOKEN
6870 	,P_Token2_Value   => 'Get_Cont_Coverage_Type');
6871 
6872       X_Result            := G_FALSE;
6873       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
6874 
6875   END Get_Cont_Coverage_Type;
6876 
6877 -----------------------------------------------------------------------------------------------------------------------*
6878 
6879   PROCEDURE Get_Coverage_Type
6880     (P_API_Version		IN  NUMBER
6881     ,P_Init_Msg_List		IN  VARCHAR2
6882     ,P_Contract_Line_Id	        IN  NUMBER
6883     ,X_Return_Status 		OUT NOCOPY VARCHAR2
6884     ,X_Msg_Count 	        out nocopy NUMBER
6885     ,X_Msg_Data		        out nocopy VARCHAR2
6886     ,X_Coverage_Type		OUT NOCOPY CovType_Rec_Type)
6887 
6888   IS
6889 
6890     Lx_Result                   Gx_Boolean;
6891 
6892   BEGIN
6893 
6894     Get_Cont_Coverage_Type
6895       (P_API_Version		=> P_API_Version
6896       ,P_Init_Msg_List		=> P_Init_Msg_List
6897       ,P_SVL_Id                 => P_Contract_Line_Id
6898       ,P_Set_ExcepionStack      => G_TRUE
6899       ,X_Coverage_Type          => X_Coverage_Type
6900       ,X_Msg_Count		=> X_Msg_Count
6901       ,X_Msg_Data		=> X_Msg_Data
6902       ,X_Result                 => Lx_Result
6903       ,X_Return_Status          => X_Return_Status);
6904 
6905   EXCEPTION
6906 
6907     WHEN OTHERS THEN
6908 
6909       OKC_API.SET_MESSAGE
6910         (P_App_Name	  => G_APP_NAME_OKC
6911 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
6912 	,P_Token1	  => G_SQLCODE_TOKEN
6913 	,P_Token1_Value	  => SQLCODE
6914 	,P_Token2	  => G_SQLERRM_TOKEN
6915 	,P_Token2_Value   => SQLERRM);
6916 
6917       OKC_API.SET_MESSAGE
6918         (P_App_Name	  => G_APP_NAME_OKC
6919 	,P_Msg_Name	  => G_DEBUG_TOKEN
6920 	,P_Token1	  => G_PACKAGE_TOKEN
6921 	,P_Token1_Value	  => G_PKG_NAME
6922 	,P_Token2	  => G_PROGRAM_TOKEN
6923 	,P_Token2_Value   => 'Get_Coverage_Type');
6924 
6925       --X_Result         := G_FALSE;
6926       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
6927 
6928   END Get_Coverage_Type;
6929 
6930 -----------------------------------------------------------------------------------------------------------------------*
6931 
6932   PROCEDURE Get_Cont_Preferred_Engineers
6933     (P_API_Version		IN  NUMBER
6934     ,P_Init_Msg_List		IN  VARCHAR2
6935     ,P_SVL_Id	                IN  Gx_OKS_Id
6936     ,P_business_process_id		IN		NUMBER		-- added for 11.5.9 (patchset I) enhancement # 2467065
6937     ,P_request_date		      IN		DATE	    -- added for 11.5.9 (patchset I) enhancement # 2467065
6938     ,P_Set_ExcepionStack        IN  Gx_Boolean
6939     ,X_Pref_Engineers		OUT NOCOPY PrfEng_Tbl_Type
6940     ,X_Msg_Count		OUT NOCOPY NUMBER
6941     ,X_Msg_Data			OUT NOCOPY VARCHAR2
6942     ,X_Result                   out nocopy Gx_Boolean
6943     ,X_Return_Status            out nocopy Gx_Ret_Sts)
6944   IS
6945 
6946     --
6947     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
6948     --
6949 
6950 /*
6951     CURSOR Lx_Csr_PrefEngrs(Cx_SBL_Id IN Gx_OKS_Id,Ld_Request_Date IN Date) IS
6952     SELECT RSC.resource_id Resource_Id
6953    	      ,decode(RSC.category,'EMPLOYEE','RS_EMPLOYEE',RSC.category) Resource_Type
6954                     -- ,decode(RSC.Resource_Type,'EMPLOYEE','RS_EMPLOYEE',RSC.Resource_Type) Resource_Type
6955           ,cimbp.object1_id1
6956           ,con.primary_yn
6957           ,con.resource_class
6958       FROM JTF_RS_RESOURCE_EXTNS RSC --OKX_Resources_V RSC
6959           ,OKC_Contacts CON
6960           ,OKC_K_Party_Roles_B ROL
6961           ,OKC_K_Lines_B BPL
6962           ,OKC_K_Lines_B SBL
6963           ,OKC_K_Lines_B COV
6964           ,okc_k_items cimbp
6965      WHERE SBL.Id         = Cx_SBL_Id
6966        AND SBL.Lse_Id     IN (1,14,19)
6967        and cov.cle_id     = sbl.id
6968        and cov.lse_id     in (2,15,20)
6969        AND BPL.cle_id     = COV.id
6970        AND BPL.Lse_Id     IN (3,16,21)
6971        and bpl.id         = cimbp.cle_id
6972        and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
6973        AND trunc(nvl(Ld_Request_Date,sysdate)) >= trunc(bpl.start_date)
6974        and trunc(nvl(Ld_Request_Date,sysdate)) <= trunc(oks_entitlements_pvt.get_final_end_date(bpl.dnz_chr_id,bpl.end_date)) -- uptake grace period
6975        AND ROL.Cle_Id     = BPL.Id
6976        AND CON.Cpl_Id     = ROL.Id
6977        AND CON.Jtot_Object1_Code = 'OKX_RESOURCE'
6978        AND RSC.resource_id        = CON.Object1_Id1
6979 		AND SBL.dnz_chr_id = BPL.dnz_chr_id
6980        	AND SBL.dnz_chr_id = COV.dnz_chr_id
6981        	AND BPL.dnz_chr_id = ROL.dnz_chr_id
6982        	AND ROL.dnz_chr_id = CON.dnz_chr_id
6983 
6984     UNION ALL
6985 
6986     SELECT RSG.Id1 Resource_Id
6987           ,RSG.Resource_Type Resource_Type
6988           ,cimbp.object1_id1
6989           ,con.primary_yn
6990           ,con.resource_class
6991       FROM OKS_Resource_Groups_V RSG
6992           ,OKC_Contacts CON
6993           ,OKC_K_Party_Roles_B ROL
6994           ,OKC_K_Lines_B BPL
6995           ,OKC_K_Lines_B SBL
6996           ,OKC_K_Lines_B COV
6997           ,okc_k_items cimbp
6998     WHERE  SBL.Id            = Cx_SBL_Id
6999        AND SBL.Lse_Id        IN (1,14,19)
7000        and cov.cle_id        = sbl.id
7001        and cov.lse_id        in (2,15,20)
7002        AND BPL.cle_id        = COV.id
7003        AND BPL.Lse_Id        IN (3,16,21)
7004        and bpl.id            = cimbp.cle_id
7005        and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
7006        AND trunc(nvl(Ld_Request_Date,sysdate)) >= trunc(bpl.start_date)
7007        and trunc(nvl(Ld_Request_Date,sysdate)) <= trunc(get_final_end_date(bpl.dnz_chr_id,bpl.end_date)) -- uptake grace period
7008        AND ROL.Cle_Id     = BPL.Id
7009        AND CON.Cpl_Id     = ROL.Id
7010        AND CON.Jtot_Object1_Code = 'OKS_RSCGROUP'
7011        AND RSG.Id1        = CON.Object1_Id1
7012        AND RSG.Id2        = CON.Object1_Id2
7013 		AND SBL.dnz_chr_id = BPL.dnz_chr_id
7014        	AND SBL.dnz_chr_id = COV.dnz_chr_id
7015        	AND BPL.dnz_chr_id = ROL.dnz_chr_id
7016        	AND ROL.dnz_chr_id = CON.dnz_chr_id;
7017 */
7018 
7019     --
7020     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
7021     --
7022 
7023     CURSOR Lx_Csr_PrefEngrs(Cx_SBL_Id IN Gx_OKS_Id) IS
7024     SELECT RSC.resource_id Resource_Id
7025           ,decode(RSC.category,'EMPLOYEE','RS_EMPLOYEE',RSC.category) Resource_Type
7026           -- ,decode(RSC.Resource_Type,'EMPLOYEE','RS_EMPLOYEE',RSC.Resource_Type) Resource_Type
7027           ,cimbp.object1_id1
7028           ,con.primary_yn
7029           ,con.resource_class
7030           ,bpl.start_date bpl_start_date
7031           ,bpl.end_date bpl_end_date
7032           ,ksl.Standard_Cov_YN Standard_Cov_YN
7033           ,bpl.id bpl_id
7034           ,ksl.dnz_chr_id ksl_dnz_chr_id
7035 
7036       FROM JTF_RS_RESOURCE_EXTNS RSC --OKX_Resources_V RSC
7037           ,OKC_Contacts CON
7038           ,OKC_K_Party_Roles_B ROL
7039           ,OKC_K_Lines_B BPL
7040           ,okc_k_items cimbp
7041           ,oks_k_lines_b ksl
7042      WHERE ksl.cle_id     = Cx_SBL_Id
7043        AND BPL.cle_id     = ksl.Coverage_Id
7044        AND BPL.Lse_Id     IN (3,16,21)
7045        and bpl.id         = cimbp.cle_id
7046        and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
7047        AND ROL.Cle_Id     = BPL.Id
7048        AND CON.Cpl_Id     = ROL.Id
7049        AND CON.Jtot_Object1_Code = 'OKX_RESOURCE'
7050        AND RSC.resource_id        = CON.Object1_Id1
7051        --	AND BPL.dnz_chr_id = COV.dnz_chr_id
7052        	AND BPL.dnz_chr_id = ROL.dnz_chr_id
7053        	AND ROL.dnz_chr_id = CON.dnz_chr_id
7054 
7055     UNION ALL
7056 
7057     SELECT RSG.Id1 Resource_Id
7058           ,RSG.Resource_Type Resource_Type
7059           ,cimbp.object1_id1
7060           ,con.primary_yn
7061           ,con.resource_class
7062           ,bpl.start_date bpl_start_date
7063           ,bpl.end_date bpl_end_date
7064           ,ksl.Standard_Cov_YN  Standard_Cov_YN
7065           ,bpl.id bpl_id
7066           ,ksl.dnz_chr_id ksl_dnz_chr_id
7067 
7068       FROM OKS_Resource_Groups_V RSG
7069           ,OKC_Contacts CON
7070           ,OKC_K_Party_Roles_B ROL
7071           ,OKC_K_Lines_B BPL
7072           ,okc_k_items cimbp
7073           ,oks_k_lines_b ksl
7074     WHERE  ksl.cle_id     = Cx_SBL_Id
7075        AND BPL.cle_id     = ksl.Coverage_Id
7076        AND BPL.Lse_Id        IN (3,16,21)
7077        and bpl.id            = cimbp.cle_id
7078        and cimbp.object1_id1 = nvl(p_business_process_id,cimbp.object1_id1)
7079        AND ROL.Cle_Id     = BPL.Id
7080        AND CON.Cpl_Id     = ROL.Id
7081        AND CON.Jtot_Object1_Code = 'OKS_RSCGROUP'
7082        AND RSG.Id1        = CON.Object1_Id1
7083        AND RSG.Id2        = CON.Object1_Id2
7084        --	AND BPL.dnz_chr_id = COV.dnz_chr_id
7085        	AND BPL.dnz_chr_id = ROL.dnz_chr_id
7086        	AND ROL.dnz_chr_id = CON.dnz_chr_id;
7087 
7088 --
7089 --
7090 
7091     Lx_SBL_Id	              CONSTANT Gx_OKS_Id := P_SVL_Id;
7092     Lx_Set_ExcepionStack        CONSTANT Gx_Boolean := P_Set_ExcepionStack;
7093     Ld_Request_Date             CONSTANT Date := nvl(P_request_date,sysdate);
7094     Lx_Pref_Engineers 	        PrfEng_Tbl_Type;
7095 
7096     Li_TableIdx                 BINARY_INTEGER;
7097 
7098     Ld_SVL_Start                DATE;
7099     Ld_SVL_End                  DATE;
7100     Ld_SVL_Terminated           DATE;
7101 
7102     Ld_BPL_Start                DATE;
7103     Ld_BPL_End                  DATE;
7104     Ld_BPL_Terminated           DATE;
7105 
7106     Lx_Result                   Gx_Boolean;
7107     Lx_Return_Status            Gx_Ret_Sts;
7108 
7109     L_EXCEP_NULL_VALUE              EXCEPTION;
7110     L_EXCEP_UNEXPECTED_ERR          EXCEPTION;
7111     L_EXCEP_INVALID_CONTRACT_LINE   EXCEPTION;
7112 
7113     --
7114     -- Added for 12.0 Coverage Rearch project (JVARGHES)
7115     --
7116 
7117     Ln_CVL_Id                  NUMBER;
7118     Lv_Std_Cov_YN              VARCHAR2(10);
7119 
7120     --
7121     -- Added for 12.0 Coverage Rearch project (JVARGHES)
7122     --
7123 
7124     Ld_BPL_OFS_Start	       DATE;
7125     Ln_BPL_OFS_Duration	       NUMBER;
7126     Lv_BPL_OFS_UOM             VARCHAR2(100);
7127 
7128     L_EXCEP_NO_DATA_FOUND    EXCEPTION;
7129     --
7130 
7131   BEGIN
7132 
7133     Lx_Result                   := G_TRUE;
7134     Lx_Return_Status            := G_RET_STS_SUCCESS;
7135 
7136     G_GRACE_PROFILE_SET      := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
7137 
7138     Validate_Required_NumValue
7139       (P_Num_Value           => Lx_SBL_Id
7140       ,P_Set_ExcepionStack   => Lx_Set_ExcepionStack
7141       ,P_ExcepionMsg         => 'Contract - Service/Business Process Line'
7142       ,X_Result              => Lx_result
7143       ,X_Return_Status       => Lx_Return_Status);
7144 
7145     IF Lx_result <> G_TRUE  THEN
7146       RAISE L_EXCEP_NULL_VALUE;
7147     END IF;
7148 
7149 --
7150 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
7151 --
7152 --    Validate_Service_Line
7153 --      (P_SVL_Id	              => Lx_SBL_Id
7154 --      ,P_Set_ExcepionStack    => G_FALSE
7155 --      ,X_SVL_Start            => Ld_SVL_Start
7156 --      ,X_SVL_End              => Ld_SVL_End
7157 --      ,X_SVL_Terminated       => Ld_SVL_Terminated
7158 --     ,X_Result               => Lx_result
7159 --      ,X_Return_Status 	      => Lx_Return_Status );
7160 --
7161 --
7162 -- Added for 12.0 Coverage Rearch project (JVARGHES)
7163 --
7164     Validate_Service_Line
7165       (P_SVL_Id	            => Lx_SBL_Id
7166       ,P_Set_ExcepionStack    => G_FALSE
7167       ,X_CVL_Id	            => Ln_CVL_Id
7168       ,X_Std_Cov_YN	      => Lv_Std_Cov_YN
7169       ,X_SVL_Start            => Ld_SVL_Start
7170       ,X_SVL_End              => Ld_SVL_End
7171       ,X_SVL_Terminated       => Ld_SVL_Terminated
7172       ,X_Result               => Lx_result
7173       ,X_Return_Status 	      => Lx_Return_Status );
7174 
7175 --
7176 --
7177 
7178     IF Lx_result <> G_TRUE  THEN
7179       RAISE L_EXCEP_NULL_VALUE;
7180     END IF;
7181 
7182     Li_TableIdx  := 0;
7183 
7184     FOR Idx IN Lx_Csr_PrefEngrs(Lx_SBL_Id) LOOP
7185 
7186 --
7187 -- Added for 12.0 Coverage Rearch project (JVARGHES)
7188 --
7189 
7190       IF Idx.Standard_Cov_YN = 'Y' THEN
7191 
7192         Get_BP_Line_Start_Offset
7193          (P_BPL_Id	        => Idx.BPL_Id
7194          ,P_SVL_Start	        => Ld_SVL_Start
7195          ,X_BPL_OFS_Start	  => Ld_BPL_Start
7196          ,X_BPL_OFS_Duration	  => Ln_BPL_OFS_Duration
7197          ,X_BPL_OFS_UOM	        => Lv_BPL_OFS_UOM
7198          ,X_Return_Status 	  => Lx_Return_Status);
7199 
7200         IF Lx_Return_Status<> G_RET_STS_SUCCESS  THEN
7201            RAISE L_EXCEP_NO_DATA_FOUND;
7202          END IF;
7203 
7204          Ld_BPL_End    := Ld_SVL_End;
7205 
7206       ELSE
7207 
7208          Ld_BPL_Start  := Idx.BPL_Start_date;
7209          Ld_BPL_End    := Idx.BPL_End_Date;
7210 
7211       END IF;
7212 
7213    ld_bpl_end := oks_entitlements_pvt.get_final_end_date(idx.ksl_dnz_chr_id,Ld_BPL_End );
7214 
7215 --
7216 
7217    IF trunc(nvl(Ld_Request_Date,sysdate)) between trunc(Ld_BPL_Start) and trunc(ld_bpl_end) then  -- Added for Coverage Rearch project (JVARGHES)
7218 
7219       Li_TableIdx           := Li_TableIdx + 1;
7220 
7221       Lx_Pref_Engineers(Li_TableIdx).Engineer_Id            := Idx.Resource_Id;
7222       Lx_Pref_Engineers(Li_TableIdx).Resource_Type          := Idx.Resource_Type;
7223       Lx_Pref_Engineers(Li_TableIdx).business_process_id    := to_number(Idx.object1_id1);
7224       Lx_Pref_Engineers(Li_TableIdx).primary_flag           := Idx.primary_yn;
7225       Lx_Pref_Engineers(Li_TableIdx).resource_class         := Idx.resource_class;
7226 
7227    END IF; -- Coverage Rearch project (JVARGHES)
7228 
7229     END LOOP;
7230 
7231     X_Pref_Engineers        := Lx_Pref_Engineers;
7232     X_Result                := Lx_Result;
7233     X_Return_Status         := Lx_Return_Status;
7234 
7235   EXCEPTION
7236 
7237     WHEN L_EXCEP_NULL_VALUE OR L_EXCEP_UNEXPECTED_ERR  THEN
7238 
7239       X_Result              := Lx_Result;
7240       X_Return_Status       := Lx_Return_Status;
7241 
7242     WHEN L_EXCEP_INVALID_CONTRACT_LINE THEN
7243 
7244       Lx_Result  := G_FALSE;
7245 
7246       IF Lx_Set_ExcepionStack = G_TRUE THEN
7247 
7248 	OKC_API.SET_MESSAGE
7249           (P_App_Name	        => G_APP_NAME_OKC
7250           ,P_Msg_Name	        => G_INVALID_VALUE
7251 	  ,P_Token1		=> G_COL_NAME_TOKEN
7252 	  ,P_Token1_Value	=> 'Contract - Service/Business Process Line');
7253 
7254 	Lx_Return_Status := G_RET_STS_ERROR;
7255 
7256       END IF;
7257 
7258       X_Result              := Lx_Result;
7259       X_Return_Status       := Lx_Return_Status;
7260 
7261     WHEN OTHERS THEN
7262 
7263       OKC_API.SET_MESSAGE
7264         (P_App_Name	  => G_APP_NAME_OKC
7265 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
7266 	,P_Token1	  => G_SQLCODE_TOKEN
7267 	,P_Token1_Value	  => SQLCODE
7268 	,P_Token2	  => G_SQLERRM_TOKEN
7269 	,P_Token2_Value   => SQLERRM);
7270 
7271       OKC_API.SET_MESSAGE
7272         (P_App_Name	  => G_APP_NAME_OKC
7273 	,P_Msg_Name	  => G_DEBUG_TOKEN
7274 	,P_Token1	  => G_PACKAGE_TOKEN
7275 	,P_Token1_Value	  => G_PKG_NAME
7276 	,P_Token2	  => G_PROGRAM_TOKEN
7277 	,P_Token2_Value   => 'Get_Cont_Preferred_Engineers');
7278 
7279       X_Result         := G_FALSE;
7280       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
7281 
7282   END Get_Cont_Preferred_Engineers;
7283 
7284 -----------------------------------------------------------------------------------------------------------------------*
7285 
7286   PROCEDURE get_preferred_engineers
7287 	(p_api_version		IN  Number
7288 	,p_init_msg_list		IN  Varchar2
7289 	,p_contract_line_id	       IN  Number
7290     ,P_business_process_id		IN		NUMBER		-- added for 11.5.9 (patchset I) enhancement # 2467065
7291 	,P_request_date		      IN		DATE	    -- added for 11.5.9 (patchset I) enhancement # 2467065
7292 	,x_return_status 		out nocopy Varchar2
7293 	,x_msg_count		out nocopy Number
7294 	,x_msg_data			out nocopy Varchar2
7295 	,x_prf_engineers		out nocopy prfeng_tbl_type)
7296   IS
7297     Lx_Result                   Gx_Boolean;
7298   BEGIN
7299 
7300     Get_Cont_Preferred_Engineers
7301       (P_API_Version		=> P_API_Version
7302       ,P_Init_Msg_List		=> P_Init_Msg_List
7303       ,P_SVL_Id	                => P_Contract_Line_Id
7304       ,P_business_process_id	=> P_business_process_id	-- added for 11.5.9 (patchset I) enhancement # 2467065
7305 	  ,P_request_date		    => P_request_date    -- added for 11.5.9 (patchset I) enhancement # 2467065
7306       ,P_Set_ExcepionStack      => G_TRUE
7307       ,X_Pref_Engineers		=> X_Prf_Engineers
7308       ,X_Msg_Count		=> X_Msg_Count
7309       ,X_Msg_Data		=> X_Msg_Data
7310       ,X_Result                 => Lx_Result
7311       ,X_Return_Status          => X_Return_Status);
7312 
7313   EXCEPTION
7314 
7315     WHEN OTHERS THEN
7316 
7317       OKC_API.SET_MESSAGE
7318         (P_App_Name	  => G_APP_NAME_OKC
7319 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
7320 	,P_Token1	  => G_SQLCODE_TOKEN
7321 	,P_Token1_Value	  => SQLCODE
7322 	,P_Token2	  => G_SQLERRM_TOKEN
7323 	,P_Token2_Value   => SQLERRM);
7324 
7325       OKC_API.SET_MESSAGE
7326         (P_App_Name	  => G_APP_NAME_OKC
7327 	,P_Msg_Name	  => G_DEBUG_TOKEN
7328 	,P_Token1	  => G_PACKAGE_TOKEN
7329 	,P_Token1_Value	  => G_PKG_NAME
7330 	,P_Token2	  => G_PROGRAM_TOKEN
7331 	,P_Token2_Value   => 'Get_Preferred_Engineers');
7332 
7333       --X_Result         := G_FALSE;
7334       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
7335 
7336   END Get_Preferred_Engineers;
7337 
7338 -----------------------------------------------------------------------------------------------------------------------*
7339 
7340    PROCEDURE Get_Contract_Contacts
7341     (P_API_Version		IN  NUMBER
7342     ,P_Init_Msg_List		IN  VARCHAR2
7343     ,P_Chr_Id                   IN  Gx_OKS_Id
7344     ,P_Cle_Id	                IN  Gx_OKS_Id
7345     ,X_Cont_Contacts		OUT NOCOPY Ent_Contact_Tbl
7346     ,X_Msg_Count		OUT NOCOPY NUMBER
7347     ,X_Msg_Data			OUT NOCOPY VARCHAR2
7348     ,X_Result                   out nocopy Gx_Boolean
7349     ,X_Return_Status            out nocopy Gx_Ret_Sts)
7350   IS
7351 
7352    -- getting resource based contacts for contract id.
7353 
7354     CURSOR Lx_Csr_Chr_RscContacts(Cx_Chr_Id IN  Gx_OKS_Id) IS
7355       SELECT PR.DNZ_CHR_ID CONTRACT_ID
7356 	    ,CS.RESOURCE_ID	   CONTACT_ID
7357 	    ,CS.CATEGORY RSC_CATEGORY
7358         ,NULL 	   CONTACT_NAME
7359 	    ,PR.ID	   CONTACT_ROLE_ID
7360 	    ,CO.CRO_CODE   CONTACT_ROLE_CODE
7361           ,HDR.ORG_ID  ORG_ID -- Modified for 12.0 MOAC project (JVARGHES)
7362 	FROM JTF_RS_RESOURCE_EXTNS CS --OKX_RESOURCES_V CS
7363 	    ,OKC_CONTACTS CO
7364 	    ,OKC_K_PARTY_ROLES_B  PR
7365           ,OKC_K_HEADERS_ALL_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
7366        WHERE     PR.DNZ_CHR_ID  = Cx_Chr_Id
7367 
7368        -- Modified for 12.0 MOAC project (JVARGHES)
7369          AND HDR.ID = Cx_Chr_Id
7370          AND HDR.ID = PR.Dnz_Chr_Id
7371 
7372          and co.dnz_chr_id = pr.dnz_chr_id
7373 	     AND CO.CPL_ID      = PR.ID
7374 	     AND CO.OBJECT1_ID1	= CS.RESOURCE_ID --CS.ID1
7375 	     AND CO.OBJECT1_ID2	= '#' --CS.ID2
7376          AND CO.JTOT_OBJECT1_CODE = 'OKX_RESOURCE';
7377 
7378    -- getting po agents based contacts for contract id.
7379 
7380     CURSOR Lx_Csr_Chr_POAContacts(Cx_Chr_Id IN  Gx_OKS_Id) IS
7381       SELECT PR.DNZ_CHR_ID CONTRACT_ID
7382 	    ,POA.AGENT_ID  CONTACT_ID
7383 	    ,'PO_AGENT' RSC_CATEGORY
7384         ,PER.FULL_NAME	   CONTACT_NAME
7385 	    ,PR.ID	   CONTACT_ROLE_ID
7386 	    ,CO.CRO_CODE   CONTACT_ROLE_CODE
7387 	FROM PO_AGENTS POA --OKX_BUYERS_V CS
7388         ,PER_ALL_PEOPLE_F PER
7389 	    ,OKC_CONTACTS CO
7390 	    ,OKC_K_PARTY_ROLES_B  PR
7391        WHERE PR.DNZ_CHR_ID  = Cx_Chr_Id
7392          and co.dnz_chr_id = pr.dnz_chr_id
7393 	     AND CO.CPL_ID      = PR.ID
7394 	     AND CO.OBJECT1_ID1	= POA.AGENT_ID --CS.ID1
7395 	     AND CO.OBJECT1_ID2	= '#' --CS.ID2
7396          AND CO.JTOT_OBJECT1_CODE = 'OKX_BUYER'
7397          and POA.AGENT_ID      =   PER.PERSON_ID
7398          and PER.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_PEOPLE_F A
7399                                   WHERE A.PERSON_ID = PER.PERSON_ID);
7400 
7401    -- getting sales persons based contacts for contract id.
7402 
7403     CURSOR Lx_Csr_Chr_SRPContacts(Cx_Chr_Id IN  Gx_OKS_Id) IS
7404       SELECT PR.DNZ_CHR_ID CONTRACT_ID
7405 	    ,S.SALESREP_ID	   CONTACT_ID
7406 	    ,CS.CATEGORY RSC_CATEGORY
7407             ,TL.RESOURCE_NAME	   CONTACT_NAME
7408 	    ,PR.ID	   CONTACT_ROLE_ID
7409 	    ,CO.CRO_CODE   CONTACT_ROLE_CODE
7410 	FROM JTF_RS_RESOURCE_EXTNS CS
7411             ,JTF_RS_SALESREPS S
7412             ,JTF_RS_RESOURCE_EXTNS_TL TL     -- Bug Fix #5442182 hmnair
7413 	    ,OKC_CONTACTS CO
7414 	    ,OKC_K_PARTY_ROLES_B  PR
7415             ,OKC_K_HEADERS_ALL_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
7416        WHERE PR.DNZ_CHR_ID  = Cx_Chr_Id
7417              AND co.dnz_chr_id = pr.dnz_chr_id
7418 	     AND CO.CPL_ID      = PR.ID
7419 	     AND CO.OBJECT1_ID1	= S.SALESREP_ID --CS.ID1
7420 	     AND CO.OBJECT1_ID2	= '#' --CS.ID2
7421              AND CO.JTOT_OBJECT1_CODE = 'OKX_SALEPERS'
7422 
7423        -- Modified for 12.0 MOAC project (JVARGHES)
7424          AND HDR.ID = Cx_Chr_Id
7425          AND HDR.ID = PR.Dnz_Chr_Id
7426          AND S.ORG_ID = HDR.ORG_ID
7427        -- AND (S.ORG_ID = SYS_CONTEXT('OKC_CONTEXT','ORG_ID') OR  NVL(SYS_CONTEXT('OKC_CONTEXT','ORG_ID'),-99) = -99)
7428          AND S.RESOURCE_ID = CS.RESOURCE_ID
7429          AND CS.CATEGORY in ('EMPLOYEE','OTHER','PARTY','PARTNER','SUPPLIER_CONTACT')
7430          AND TL.RESOURCE_ID = CS.RESOURCE_ID  -- Bug Fix #5442182 hmnair
7431          AND TL.LANGUAGE = USERENV('LANG')
7432          AND TL.CATEGORY = CS.CATEGORY;
7433 
7434    -- getting resource based contacts for contract line id.
7435 
7436     CURSOR Lx_Csr_Cle_RscContacts(Cx_Cle_Id IN  Gx_OKS_Id,Cx_Chr_Id IN  Gx_OKS_Id) IS
7437       SELECT PR.DNZ_CHR_ID CONTRACT_ID
7438 	    ,CS.RESOURCE_ID	   CONTACT_ID
7439 	    ,CS.CATEGORY RSC_CATEGORY
7440           ,NULL 	   CONTACT_NAME
7441 	    ,PR.ID	   CONTACT_ROLE_ID
7442 	    ,CO.CRO_CODE   CONTACT_ROLE_CODE
7443           ,HDR.ORG_ID  ORG_ID -- Modified for 12.0 MOAC project (JVARGHES)
7444 	FROM JTF_RS_RESOURCE_EXTNS CS --OKX_RESOURCES_V CS
7445 	    ,OKC_CONTACTS CO
7446 	    ,OKC_K_PARTY_ROLES_B  PR
7447           ,OKC_K_HEADERS_ALL_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
7448        WHERE  PR.DNZ_CHR_ID  = Cx_Chr_Id
7449          and PR.CLE_ID  = Cx_Cle_Id
7450 
7451          -- Modified for 12.0 MOAC project (JVARGHES)
7452          AND HDR.ID = Cx_Chr_Id
7453          AND HDR.ID = PR.Dnz_Chr_Id
7454          --
7455          and co.dnz_chr_id = pr.dnz_chr_id
7456 	     AND CO.CPL_ID      = PR.ID
7457 	     AND CO.OBJECT1_ID1	= CS.RESOURCE_ID --CS.ID1
7458 	     AND CO.OBJECT1_ID2	= '#' --CS.ID2
7459          AND CO.JTOT_OBJECT1_CODE = 'OKX_RESOURCE';
7460 
7461    -- getting po agents based contacts for contract line id.
7462 
7463     CURSOR Lx_Csr_Cle_POAContacts(Cx_Cle_Id IN  Gx_OKS_Id,Cx_Chr_Id IN  Gx_OKS_Id) IS
7464       SELECT PR.DNZ_CHR_ID CONTRACT_ID
7465 	    ,POA.AGENT_ID  CONTACT_ID
7466 	    ,'PO_AGENT' RSC_CATEGORY
7467         ,PER.FULL_NAME	   CONTACT_NAME
7468 	    ,PR.ID	   CONTACT_ROLE_ID
7469 	    ,CO.CRO_CODE   CONTACT_ROLE_CODE
7470 	FROM PO_AGENTS POA --OKX_BUYERS_V CS
7471         ,PER_ALL_PEOPLE_F PER
7472 	    ,OKC_CONTACTS CO
7473 	    ,OKC_K_PARTY_ROLES_B  PR
7474        WHERE PR.DNZ_CHR_ID  = Cx_Chr_Id
7475          and PR.CLE_ID  = Cx_Cle_Id
7476          and co.dnz_chr_id = pr.dnz_chr_id
7477 	     AND CO.CPL_ID      = PR.ID
7478 	     AND CO.OBJECT1_ID1	= POA.AGENT_ID --CS.ID1
7479 	     AND CO.OBJECT1_ID2	= '#' --CS.ID2
7480          AND CO.JTOT_OBJECT1_CODE = 'OKX_BUYER'
7481          and POA.AGENT_ID      =   PER.PERSON_ID
7482          and PER.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_PEOPLE_F A
7483                                   WHERE A.PERSON_ID = PER.PERSON_ID);
7484 
7485 
7486    -- getting sales persons based contacts for contract line id.
7487 
7488     CURSOR Lx_Csr_Cle_SRPContacts(Cx_Cle_Id IN  Gx_OKS_Id,Cx_Chr_Id IN  Gx_OKS_Id) IS
7489       SELECT PR.DNZ_CHR_ID CONTRACT_ID
7490 	    ,S.SALESREP_ID	   CONTACT_ID
7491 	    ,CS.CATEGORY RSC_CATEGORY
7492             ,TL.RESOURCE_NAME	   CONTACT_NAME   -- Bug Fix #5442182 hmnair
7493 	    ,PR.ID	   CONTACT_ROLE_ID
7494 	    ,CO.CRO_CODE   CONTACT_ROLE_CODE
7495 	FROM JTF_RS_RESOURCE_EXTNS CS
7496             ,JTF_RS_SALESREPS S
7497             ,JTF_RS_RESOURCE_EXTNS_TL TL         -- Bug Fix #5442182 hmnair
7498 	    ,OKC_CONTACTS CO
7499 	    ,OKC_K_PARTY_ROLES_B  PR
7500             ,OKC_K_HEADERS_ALL_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
7501        WHERE PR.DNZ_CHR_ID  = Cx_Chr_Id
7502          and PR.CLE_ID  = Cx_Cle_Id
7503          and co.dnz_chr_id = pr.dnz_chr_id
7504 	     AND CO.CPL_ID      = PR.ID
7505 	     AND CO.OBJECT1_ID1	= S.SALESREP_ID --CS.ID1
7506 	     AND CO.OBJECT1_ID2	= '#' --CS.ID2
7507          AND CO.JTOT_OBJECT1_CODE = 'OKX_SALEPERS'
7508 
7509      --  Modified for 12.0 MOAC project (JVARGHES)
7510          AND HDR.ID = Cx_Chr_Id
7511          AND HDR.ID = PR.Dnz_Chr_Id
7512          AND S.ORG_ID = HDR.Org_ID
7513      --  AND (S.ORG_ID = SYS_CONTEXT('OKC_CONTEXT','ORG_ID') OR  NVL(SYS_CONTEXT('OKC_CONTEXT','ORG_ID'),-99) = -99)
7514          AND S.RESOURCE_ID = CS.RESOURCE_ID
7515          AND CS.CATEGORY in ('EMPLOYEE','OTHER','PARTY','PARTNER','SUPPLIER_CONTACT')
7516          AND TL.RESOURCE_ID = CS.RESOURCE_ID     -- Bug Fix #5442182 hmnair
7517          AND TL.LANGUAGE = USERENV('LANG')
7518          AND TL.CATEGORY = CS.CATEGORY;
7519 
7520 
7521    CURSOR Lx_Csr_dnz_Chr(Cx_Cle_Id IN  Gx_OKS_Id) IS
7522       SELECT CLE.DNZ_CHR_ID CONTRACT_ID
7523       FROM   Okc_K_lines_B cle
7524       WHERE  cle.id = Cx_Cle_Id
7525       AND    rownum = 1;
7526 
7527 -- for category 'SUPPLIER_CONTACT'
7528 
7529    CURSOR Lx_Csr_vndr_name(Cx_Resource_Id IN  number, cn_org_id in number) IS
7530       SELECT  C.LAST_NAME NAME
7531       FROM    JTF_RS_RESOURCE_EXTNS RSC ,
7532               PO_VENDOR_SITES_ALL S ,
7533               PO_VENDOR_CONTACTS C
7534       WHERE   RSC.RESOURCE_ID =    Cx_Resource_Id
7535       and     C.VENDOR_CONTACT_ID = RSC.SOURCE_ID
7536       and     S.VENDOR_SITE_ID = C.VENDOR_SITE_ID
7537       AND      S.ORG_ID = cn_org_id ;   -- Modified for 12.0 MOAC project (JVARGHES)
7538     --  AND     S.ORG_ID = sys_context('OKC_CONTEXT','ORG_ID');  -- Modified for 12.0 MOAC project (JVARGHES)
7539 
7540 -- for category 'EMPLOYEE'
7541 
7542    CURSOR Lx_Csr_emp_name(Cx_Resource_Id IN  number) IS
7543       SELECT  PER.FULL_NAME NAME
7544       FROM    JTF_RS_RESOURCE_EXTNS RSC ,
7545               FND_USER U ,
7546               PER_ALL_PEOPLE_F PER
7547       WHERE   PER.PERSON_ID   =   RSC.SOURCE_ID
7548       and     U.USER_ID       =   RSC.USER_ID
7549       and     RSC.RESOURCE_ID =    Cx_Resource_Id
7550       and     PER.EFFECTIVE_START_DATE = (SELECT MAX(A.EFFECTIVE_START_DATE) FROM PER_ALL_PEOPLE_F A
7551                                   WHERE A.PERSON_ID = PER.PERSON_ID);
7552 
7553  -- for category 'PARTNER', 'PARTY'
7554 
7555    CURSOR Lx_Csr_pty_name(Cx_Resource_Id IN  number) IS
7556       SELECT PARTY.PARTY_NAME NAME
7557       FROM   JTF_RS_RESOURCE_EXTNS RSC ,
7558              FND_USER U ,
7559              HZ_PARTIES PARTY
7560       WHERE  RSC.CATEGORY IN ( 'PARTNER', 'PARTY')
7561       AND    PARTY.PARTY_ID = RSC.SOURCE_ID
7562       AND    U.USER_ID      = RSC.USER_ID
7563       and    RSC.RESOURCE_ID = Cx_Resource_Id;
7564 
7565 
7566  -- for category 'OTHER'
7567 
7568     CURSOR Lx_Csr_oth_name(Cx_Resource_Id IN  number, cn_org_id in number) IS
7569       SELECT TL.RESOURCE_NAME NAME         -- Bug Fix #5442182 hmnair
7570       FROM   JTF_RS_RESOURCE_EXTNS RSC ,
7571              FND_USER U ,
7572              JTF_RS_SALESREPS SRP
7573              ,JTF_RS_RESOURCE_EXTNS_TL TL    -- Bug Fix #5442182 hmnair
7574       WHERE  RSC.CATEGORY = 'OTHER'
7575       AND    SRP.RESOURCE_ID   = RSC.RESOURCE_ID
7576       AND    U.USER_ID = RSC.USER_ID
7577       AND    SRP.Org_ID = Cn_Org_Id    -- Modified for 12.0 MOAC project (JVARGHES)
7578       --AND    SRP.ORG_ID = sys_context  ('OKC_CONTEXT', 'ORG_ID') -- Modified for 12.0 MOAC project (JVARGHES)
7579       AND    TL.RESOURCE_ID = RSC.RESOURCE_ID   -- Bug Fix #5442182 hmnair
7580       AND    TL.LANGUAGE = USERENV('LANG')
7581       AND    TL.CATEGORY = RSC.CATEGORY
7582       and    RSC.RESOURCE_ID = Cx_Resource_Id;
7583 
7584 -- cursor for building role meanings plsql table
7585 
7586     CURSOR Lx_Csr_Rle_lkup IS
7587       SELECT LU.LOOKUP_CODE CODE,
7588              LU.MEANING MEANING
7589       FROM   fnd_lookups lu
7590       WHERE  LU.LOOKUP_TYPE	= 'OKC_CONTACT_ROLE';
7591 
7592 
7593     Lx_Chr_Id                   CONSTANT Gx_OKS_Id := P_Chr_Id;
7594     Lx_Cle_Id	                CONSTANT Gx_OKS_Id := P_Cle_Id;
7595 
7596     Lx_Dnz_Chr_Id               Gx_OKS_Id ;
7597 
7598     Lx_Cont_Contacts		    Ent_Contact_Tbl;
7599     Lx_Result                   Gx_Boolean;
7600     Lx_Return_Status            Gx_Ret_Sts;
7601     l_Rle_Lkup_TBL              Rle_Lkup_TBL;
7602 
7603     Li_TableIdx                 BINARY_INTEGER;
7604     i                           BINARY_INTEGER;
7605 
7606   BEGIN
7607 
7608     Lx_Result                   := G_TRUE;
7609     Lx_Return_Status            := G_RET_STS_SUCCESS;
7610 
7611     i                           := 0;
7612 
7613    -- getting dnz_chr_id if cle_id passed to be used in sqls for performance reasons
7614 
7615     IF Lx_Cle_Id IS NOT NULL THEN
7616 
7617       FOR Idx IN Lx_Csr_dnz_Chr(Lx_Cle_Id) LOOP
7618 
7619          Lx_Dnz_Chr_Id  := Idx.Contract_Id;
7620 
7621       END LOOP;
7622 
7623     END IF;
7624 
7625     -- building role meaning plsql table for performance reasons.
7626 
7627     for Rle_lkup in Lx_Csr_Rle_lkup  loop
7628         i                          := i + 1;
7629         l_Rle_Lkup_TBL(i).code     := Rle_lkup.code;
7630         l_Rle_Lkup_TBL(i).meaning  := Rle_lkup.meaning;
7631 
7632     end loop;
7633 
7634     -- actual processing starts here..
7635 
7636     Li_TableIdx  := 0;
7637 
7638     -- building contacts output plsql table for jtf resource based contacts
7639     IF Lx_Cle_Id IS NOT NULL THEN
7640 
7641      FOR Idx IN Lx_Csr_Cle_RscContacts(Lx_Cle_Id,Lx_Dnz_Chr_Id) LOOP
7642 
7643         if Idx.Rsc_Category = 'SUPPLIER_CONTACT' then
7644             for Lx_Rec_vndr_name in Lx_Csr_vndr_name(Idx.Contact_Id, idx.org_id) loop
7645                 for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7646                     if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7647                         Li_TableIdx   := Li_TableIdx + 1;
7648                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	 := Idx.Contract_Id;
7649                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	 := Idx.Contact_Id;
7650                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name  := Lx_Rec_vndr_name.name;
7651                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7652                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7653                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7654                     end if;
7655                 end loop;
7656             end loop;
7657         end if;
7658 
7659         if Idx.Rsc_Category = 'EMPLOYEE' then
7660             for Lx_rec_emp_name in Lx_Csr_emp_name(Idx.Contact_Id) loop
7661                 for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7662                     if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7663                         Li_TableIdx   := Li_TableIdx + 1;
7664                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	 := Idx.Contract_Id;
7665                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	 := Idx.Contact_Id;
7666                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name  := Lx_rec_emp_name.name;
7667                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7668                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7669                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7670                     end if;
7671                 end loop;
7672             end loop;
7673         end if;
7674 
7675 
7676         if Idx.Rsc_Category in ('PARTNER','PARTY') then
7677             for Lx_rec_pty_name in Lx_Csr_pty_name(Idx.Contact_Id) loop
7678                 for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7679                     if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7680                         Li_TableIdx   := Li_TableIdx + 1;
7681                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	 := Idx.Contract_Id;
7682                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	 := Idx.Contact_Id;
7683                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name  := Lx_rec_pty_name.name;
7684                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7685                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7686                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7687                     end if;
7688                 end loop;
7689             end loop;
7690         end if;
7691 
7692         if Idx.Rsc_Category = ('OTHER') then
7693             for Lx_rec_oth_name in Lx_Csr_oth_name(Idx.Contact_Id, idx.org_id) loop
7694                 for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7695                     if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7696                         Li_TableIdx   := Li_TableIdx + 1;
7697                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	 := Idx.Contract_Id;
7698                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	 := Idx.Contact_Id;
7699                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name  := Lx_rec_oth_name.name;
7700                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7701                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7702                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7703                     end if;
7704                 end loop;
7705             end loop;
7706         end if;
7707 
7708     END LOOP;
7709 
7710     -- building contacts output plsql table for buyers based contacts
7711 
7712     FOR Idx IN Lx_Csr_Cle_POAContacts(Lx_Cle_Id,Lx_Dnz_Chr_Id) LOOP
7713         for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7714              if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7715                         Li_TableIdx   := Li_TableIdx + 1;
7716                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	     := Idx.Contract_Id;
7717                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	     := Idx.Contact_Id;
7718                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name       := Idx.contact_name;
7719                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7720                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7721                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7722               end if;
7723         end loop;
7724     END LOOP;
7725 
7726     -- building contacts output plsql table for sales persons based contacts
7727 
7728     FOR Idx IN Lx_Csr_Cle_SRPContacts(Lx_Cle_Id,Lx_Dnz_Chr_Id) LOOP
7729         for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7730              if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7731                         Li_TableIdx   := Li_TableIdx + 1;
7732                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	     := Idx.Contract_Id;
7733                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	     := Idx.Contact_Id;
7734                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name       := Idx.contact_name;
7735                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7736                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7737                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7738               end if;
7739         end loop;
7740      END LOOP;
7741 
7742     else
7743 
7744      FOR Idx IN Lx_Csr_Chr_RscContacts(Lx_Chr_Id) LOOP
7745 
7746         if Idx.Rsc_Category = 'SUPPLIER_CONTACT' then
7747             for Lx_Rec_vndr_name in Lx_Csr_vndr_name(Idx.Contact_Id, idx.org_id) loop
7748                 for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7749                     if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7750                         Li_TableIdx   := Li_TableIdx + 1;
7751                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	 := Idx.Contract_Id;
7752                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	 := Idx.Contact_Id;
7753                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name  := Lx_Rec_vndr_name.name;
7754                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7755                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7756                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7757                     end if;
7758                 end loop;
7759             end loop;
7760         end if;
7761 
7762         if Idx.Rsc_Category = 'EMPLOYEE' then
7763             for Lx_rec_emp_name in Lx_Csr_emp_name(Idx.Contact_Id) loop
7764                 for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7765                     if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7766                         Li_TableIdx   := Li_TableIdx + 1;
7767                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	 := Idx.Contract_Id;
7768                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	 := Idx.Contact_Id;
7769                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name  := Lx_rec_emp_name.name;
7770                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7771                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7772                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7773                     end if;
7774                 end loop;
7775             end loop;
7776         end if;
7777 
7778 
7779         if Idx.Rsc_Category in ('PARTNER','PARTY') then
7780             for Lx_rec_pty_name in Lx_Csr_pty_name(Idx.Contact_Id) loop
7781                 for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7782                     if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7783                         Li_TableIdx   := Li_TableIdx + 1;
7784                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	 := Idx.Contract_Id;
7785                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	 := Idx.Contact_Id;
7786                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name  := Lx_rec_pty_name.name;
7787                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7788                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7789                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7790                     end if;
7791                 end loop;
7792             end loop;
7793         end if;
7794 
7795         if Idx.Rsc_Category = ('OTHER') then
7796             for Lx_rec_oth_name in Lx_Csr_oth_name(Idx.Contact_Id, idx.org_id) loop
7797                 for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7798                     if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7799                         Li_TableIdx   := Li_TableIdx + 1;
7800                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	 := Idx.Contract_Id;
7801                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	 := Idx.Contact_Id;
7802                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name  := Lx_rec_oth_name.name;
7803                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7804                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7805                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7806                     end if;
7807                 end loop;
7808             end loop;
7809         end if;
7810 
7811     END LOOP;
7812 
7813     -- building contacts output plsql table for buyers based contacts
7814 
7815     FOR Idx IN Lx_Csr_Chr_POAContacts(Lx_Chr_Id) LOOP
7816         for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7817              if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7818                         Li_TableIdx   := Li_TableIdx + 1;
7819                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	     := Idx.Contract_Id;
7820                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	     := Idx.Contact_Id;
7821                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name       := Idx.contact_name;
7822                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7823                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7824                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7825               end if;
7826         end loop;
7827     END LOOP;
7828 
7829     -- building contacts output plsql table for sales persons based contacts
7830 
7831     FOR Idx IN Lx_Csr_Chr_SRPContacts(Lx_Chr_Id) LOOP
7832         for  i in l_Rle_Lkup_TBL.first..l_Rle_Lkup_TBL.last loop
7833              if Idx.Contact_Role_Code = l_Rle_Lkup_TBL(i).code then
7834                         Li_TableIdx   := Li_TableIdx + 1;
7835                     	Lx_Cont_Contacts(Li_TableIdx).Contract_Id	     := Idx.Contract_Id;
7836                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Id	     := Idx.Contact_Id;
7837                         Lx_Cont_Contacts(Li_TableIdx).Contact_Name       := Idx.contact_name;
7838                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Id    := Idx.Contact_Role_Id;
7839                     	Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Code  := Idx.Contact_Role_Code;
7840                         Lx_Cont_Contacts(Li_TableIdx).Contact_Role_Name  := l_Rle_Lkup_TBL(i).meaning;
7841               end if;
7842         end loop;
7843      END LOOP;
7844 
7845    end if;
7846 
7847     X_Cont_Contacts       := Lx_Cont_Contacts;
7848     X_Result              := Lx_Result;
7849     X_Return_Status       := Lx_Return_Status;
7850 
7851   EXCEPTION
7852 
7853     WHEN OTHERS THEN
7854 
7855       OKC_API.SET_MESSAGE
7856         (P_App_Name	  => G_APP_NAME_OKC
7857 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
7858 	,P_Token1	  => G_SQLCODE_TOKEN
7859 	,P_Token1_Value	  => SQLCODE
7860 	,P_Token2	  => G_SQLERRM_TOKEN
7861 	,P_Token2_Value   => SQLERRM);
7862 
7863       OKC_API.SET_MESSAGE
7864         (P_App_Name	  => G_APP_NAME_OKC
7865 	,P_Msg_Name	  => G_DEBUG_TOKEN
7866 	,P_Token1	  => G_PACKAGE_TOKEN
7867 	,P_Token1_Value	  => G_PKG_NAME
7868 	,P_Token2	  => G_PROGRAM_TOKEN
7869 	,P_Token2_Value   => 'Get_Contract_Contacts');
7870 
7871       X_Result         := G_FALSE;
7872       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
7873 
7874   END Get_Contract_Contacts;
7875 
7876 -----------------------------------------------------------------------------------------------------------------------*
7877 
7878   PROCEDURE Get_Contacts
7879     (P_API_Version		IN  NUMBER
7880     ,P_Init_Msg_List		IN  VARCHAR2
7881     ,P_Contract_Id		IN  NUMBER
7882     ,P_Contract_Line_Id	        IN  NUMBER
7883     ,X_Return_Status 		OUT NOCOPY VARCHAR2
7884     ,X_Msg_Count		OUT NOCOPY NUMBER
7885     ,X_Msg_Data			OUT NOCOPY VARCHAR2
7886     ,X_Ent_Contacts		OUT NOCOPY Ent_Contact_Tbl)
7887   IS
7888 
7889     Lx_Result                   Gx_Boolean;
7890 
7891   BEGIN
7892 
7893     Get_Contract_Contacts
7894       (P_API_Version		=> P_API_Version
7895       ,P_Init_Msg_List		=> P_Init_Msg_List
7896       ,P_Chr_Id                 => P_Contract_Id
7897       ,P_Cle_Id	                => P_Contract_Line_Id
7898       ,X_Cont_Contacts		=> X_Ent_Contacts
7899       ,X_Msg_Count		=> X_Msg_Count
7900       ,X_Msg_Data		=> X_Msg_Data
7901       ,X_Result                 => Lx_Result
7902       ,X_Return_Status          => X_Return_Status);
7903 
7904   EXCEPTION
7905 
7906     WHEN OTHERS THEN
7907 
7908       OKC_API.SET_MESSAGE
7909         (P_App_Name	  => G_APP_NAME_OKC
7910 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
7911 	,P_Token1	  => G_SQLCODE_TOKEN
7912 	,P_Token1_Value	  => SQLCODE
7913 	,P_Token2	  => G_SQLERRM_TOKEN
7914 	,P_Token2_Value   => SQLERRM);
7915 
7916       OKC_API.SET_MESSAGE
7917         (P_App_Name	  => G_APP_NAME_OKC
7918 	,P_Msg_Name	  => G_DEBUG_TOKEN
7919 	,P_Token1	  => G_PACKAGE_TOKEN
7920 	,P_Token1_Value	  => G_PKG_NAME
7921 	,P_Token2	  => G_PROGRAM_TOKEN
7922 	,P_Token2_Value   => 'Get_Contacts');
7923 
7924       --X_Result         := G_FALSE;
7925       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
7926 
7927   END Get_Contacts;
7928 
7929 -----------------------------------------------------------------------------------------------------------------------*
7930 
7931   PROCEDURE Append_ContItem_PlSql_Table
7932     (P_Input_Tab          IN  GT_ContItem_Ref
7933     ,P_Append_Tab         IN  GT_ContItem_Ref
7934     ,X_Output_Tab         out nocopy GT_ContItem_Ref
7935     ,X_Result             out nocopy Gx_Boolean
7936     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)
7937   IS
7938 
7939     Lx_Input_Tab          GT_ContItem_Ref;
7940     Lx_Output_Tab         GT_ContItem_Ref;
7941 
7942     Li_In_TableIdx        BINARY_INTEGER;
7943     Li_Out_TableIdx       BINARY_INTEGER;
7944 
7945     Lx_Result             Gx_Boolean;
7946     Lx_Return_Status      Gx_Ret_Sts;
7947 
7948   BEGIN
7949 
7950     Lx_Input_Tab          := P_Input_Tab;
7951     Lx_Output_Tab         := P_Append_Tab;
7952 
7953     Lx_Result             := G_TRUE;
7954     Lx_Return_Status      := G_RET_STS_SUCCESS;
7955 
7956     Li_In_TableIdx       := Lx_Input_Tab.FIRST;
7957     Li_Out_TableIdx      := NVL(Lx_Output_Tab.LAST,0);
7958 
7959     WHILE Li_In_TableIdx IS NOT NULL LOOP
7960 
7961       Li_Out_TableIdx                := Li_Out_TableIdx + 1;
7962       Lx_Output_Tab(Li_Out_TableIdx) := Lx_Input_Tab(Li_In_TableIdx);
7963       Li_In_TableIdx                 := Lx_Input_Tab.NEXT(Li_In_TableIdx);
7964 
7965     END LOOP;
7966 
7967     X_Output_Tab          := Lx_Output_Tab;
7968 
7969     X_Result              := Lx_Result;
7970     X_Return_Status       := Lx_Return_Status;
7971 
7972   EXCEPTION
7973 
7974     WHEN OTHERS THEN
7975 
7976       OKC_API.SET_MESSAGE
7977         (P_App_Name	  => G_APP_NAME_OKC
7978 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
7979 	,P_Token1	  => G_SQLCODE_TOKEN
7980 	,P_Token1_Value	  => SQLCODE
7981 	,P_Token2	  => G_SQLERRM_TOKEN
7982 	,P_Token2_Value   => SQLERRM);
7983 
7984       OKC_API.SET_MESSAGE
7985         (P_App_Name	  => G_APP_NAME_OKC
7986 	,P_Msg_Name	  => G_DEBUG_TOKEN
7987 	,P_Token1	  => G_PACKAGE_TOKEN
7988 	,P_Token1_Value	  => G_PKG_NAME
7989 	,P_Token2	  => G_PROGRAM_TOKEN
7990 	,P_Token2_Value   => 'Append_ContItem_PlSql_Table');
7991 
7992       X_Result         := G_FALSE;
7993       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
7994 
7995   END Append_ContItem_PlSql_Table;
7996 
7997 -----------------------------------------------------------------------------------------------------------------------*
7998 
7999   PROCEDURE Get_Item_CovLevels
8000     (P_CovItem_Obj_Id         IN  Gx_OKS_Id
8001     ,P_Organization_Id        IN  NUMBER
8002     ,X_Item_CovLevels         out nocopy GT_ContItem_Ref
8003     ,X_Result                 out nocopy Gx_Boolean
8004     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
8005   IS
8006 
8007     CURSOR Lx_Csr_CovItem(Cx_CovItem_Id IN Gx_OKS_Id
8008                          ,Cn_Organization_Id IN NUMBER) IS
8009       SELECT '*'
8010         FROM Okx_System_Items_V CI
8011        WHERE CI.Id1 = Cx_CovItem_Id
8012      --  AND CI.Id2 = Cn_Organization_Id               -- Bug# 4735542
8013          AND CI.Serviceable_Product_Flag ='Y';
8014      --  AND CI.Organization_Id = Cn_Organization_Id;  -- Bug# 4735542
8015 
8016     Lx_CovItem_Obj_Id         CONSTANT Gx_OKS_Id := P_CovItem_Obj_Id;
8017     Ln_Organization_Id        CONSTANT NUMBER := P_Organization_Id;
8018 
8019     Lx_Item_CovLevels         GT_ContItem_Ref;
8020     Lv_Dummy                  VARCHAR2(1);
8021     Lx_Result                 Gx_Boolean;
8022     Lx_Return_Status          Gx_Ret_Sts;
8023     Li_TableIdx               BINARY_INTEGER;
8024 
8025     L_EXCEP_NO_DATA_FOUND     EXCEPTION;
8026 
8027   BEGIN
8028 
8029     Lx_Result                 := G_TRUE;
8030     Lx_Return_Status          := G_RET_STS_SUCCESS;
8031 
8032     OPEN Lx_Csr_CovItem(Lx_CovItem_Obj_Id,Ln_organization_Id);
8033     FETCH Lx_Csr_CovItem INTO Lv_Dummy;
8034 
8035     IF Lx_Csr_CovItem%NOTFOUND THEN
8036       RAISE L_EXCEP_NO_DATA_FOUND;
8037     END IF;
8038 
8039     CLOSE Lx_Csr_CovItem;
8040 
8041     Li_TableIdx  := 1;
8042 
8043     Lx_Item_CovLevels(Li_TableIdx).Rx_Obj1Id1  := Lx_CovItem_Obj_Id;
8044     Lx_Item_CovLevels(Li_TableIdx).Rx_Obj1Id2  := Ln_organization_Id;
8045     Lx_Item_CovLevels(Li_TableIdx).Rx_ObjCode  := 'OKX_COVITEM';
8046 
8047     X_Item_CovLevels      := Lx_Item_CovLevels;
8048     X_Result              := Lx_Result;
8049     X_Return_Status       := Lx_Return_Status;
8050 
8051   EXCEPTION
8052 
8053     WHEN L_EXCEP_NO_DATA_FOUND THEN
8054 
8055       IF Lx_Csr_CovItem%ISOPEN THEN
8056         CLOSE Lx_Csr_CovItem;
8057       END IF;
8058 
8059       X_Result            := G_TRUE;
8060       X_Return_Status     := G_TRUE;
8061 
8062     WHEN OTHERS THEN
8063 
8064       OKC_API.SET_MESSAGE
8065         (P_App_Name	  => G_APP_NAME_OKC
8066 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
8067 	,P_Token1	  => G_SQLCODE_TOKEN
8068 	,P_Token1_Value	  => SQLCODE
8069 	,P_Token2	  => G_SQLERRM_TOKEN
8070 	,P_Token2_Value   => SQLERRM);
8071 
8072       OKC_API.SET_MESSAGE
8073         (P_App_Name	  => G_APP_NAME_OKC
8074 	,P_Msg_Name	  => G_DEBUG_TOKEN
8075 	,P_Token1	  => G_PACKAGE_TOKEN
8076 	,P_Token1_Value	  => G_PKG_NAME
8077 	,P_Token2	  => G_PROGRAM_TOKEN
8078 	,P_Token2_Value   => 'Get_Item_CovLevels');
8079 
8080       X_Result         := G_FALSE;
8081       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
8082 
8083   END Get_Item_CovLevels;
8084 
8085 -----------------------------------------------------------------------------------------------------------------------*
8086 
8087   PROCEDURE Get_Party_CovLevels
8088     (P_CovParty_Obj_Id        IN  Gx_OKS_Id
8089     ,X_Party_CovLevels        out nocopy GT_ContItem_Ref
8090     ,X_Result                 out nocopy Gx_Boolean
8091     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
8092   IS
8093 
8094     CURSOR Lx_Csr_CovParty(Cx_CovParty_Id IN Gx_OKS_Id ) IS
8095       SELECT '*'
8096         FROM Okx_Parties_V PY
8097        WHERE PY.Id1 = Cx_CovParty_Id
8098          AND PY.Id2 = '#';
8099 
8100     Lx_CovParty_Obj_Id        CONSTANT Gx_OKS_Id := P_CovParty_Obj_Id;
8101 
8102     Lx_Party_CovLevels        GT_ContItem_Ref;
8103     Lv_Dummy                  VARCHAR2(1);
8104     Lx_Result                 Gx_Boolean;
8105     Lx_Return_Status          Gx_Ret_Sts;
8106 
8107     Li_TableIdx               BINARY_INTEGER;
8108     L_EXCEP_NO_DATA_FOUND     EXCEPTION;
8109 
8110   BEGIN
8111 
8112     Lx_Result                 := G_TRUE;
8113     Lx_Return_Status          := G_RET_STS_SUCCESS;
8114 
8115     OPEN Lx_Csr_CovParty(Lx_CovParty_Obj_Id);
8116     FETCH Lx_Csr_CovParty INTO Lv_Dummy;
8117 
8118     IF Lx_Csr_CovParty%NOTFOUND THEN
8119       RAISE L_EXCEP_NO_DATA_FOUND;
8120     END IF;
8121 
8122     CLOSE Lx_Csr_CovParty;
8123 
8124     Li_TableIdx  := 1;
8125 
8126     Lx_Party_CovLevels(Li_TableIdx).Rx_Obj1Id1  := Lx_CovParty_Obj_Id;
8127     Lx_Party_CovLevels(Li_TableIdx).Rx_Obj1Id2  := '#';
8128     Lx_Party_CovLevels(Li_TableIdx).Rx_ObjCode  := 'OKX_PARTY';
8129 
8130     X_Party_CovLevels     := Lx_Party_CovLevels;
8131     X_Result              := Lx_Result;
8132     X_Return_Status       := Lx_Return_Status;
8133 
8134   EXCEPTION
8135 
8136     WHEN L_EXCEP_NO_DATA_FOUND THEN
8137 
8138       IF Lx_Csr_CovParty%ISOPEN THEN
8139         CLOSE Lx_Csr_CovParty;
8140       END IF;
8141 
8142       X_Result              := G_TRUE;
8143       X_Return_Status       := G_TRUE;
8144 
8145     WHEN OTHERS THEN
8146 
8147       OKC_API.SET_MESSAGE
8148         (P_App_Name	  => G_APP_NAME_OKC
8149 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
8150 	,P_Token1	  => G_SQLCODE_TOKEN
8151 	,P_Token1_Value	  => SQLCODE
8152 	,P_Token2	  => G_SQLERRM_TOKEN
8153 	,P_Token2_Value   => SQLERRM);
8154 
8155       OKC_API.SET_MESSAGE
8156         (P_App_Name	  => G_APP_NAME_OKC
8157 	,P_Msg_Name	  => G_DEBUG_TOKEN
8158 	,P_Token1	  => G_PACKAGE_TOKEN
8159 	,P_Token1_Value	  => G_PKG_NAME
8160 	,P_Token2	  => G_PROGRAM_TOKEN
8161 	,P_Token2_Value   => 'Get_Party_CovLevels');
8162 
8163       X_Result         := G_FALSE;
8164       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
8165 
8166   END Get_Party_CovLevels;
8167 
8168 -----------------------------------------------------------------------------------------------------------------------*
8169 
8170   PROCEDURE Get_Customer_CovLevels
8171     (P_CovCust_Obj_Id         IN  Gx_OKS_Id
8172     ,X_Party_Id               out nocopy Gx_OKS_Id
8173     ,X_Customer_CovLevels     out nocopy GT_ContItem_Ref
8174     ,X_Result                 out nocopy Gx_Boolean
8175     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
8176   IS
8177 
8178     CURSOR Lx_Csr_CovCust(Cx_CovCust_Id IN Gx_OKS_Id) IS
8179       SELECT CA.Party_Id
8180         FROM Okx_Customer_Accounts_V CA
8181        WHERE CA.Id1 = Cx_CovCust_Id
8182          AND CA.Id2 = '#';
8183 
8184     Lx_CovCust_Obj_Id         CONSTANT Gx_OKS_Id := P_CovCust_Obj_Id;
8185 
8186     Lx_Customer_CovLevels     GT_ContItem_Ref;
8187     Lx_Customer_CovLevels_Out GT_ContItem_Ref;
8188     Lx_Customer_Party         GT_ContItem_Ref;
8189 
8190     Lx_Result                 Gx_Boolean;
8191     Lx_Return_Status          Gx_Ret_Sts;
8192 
8193     Lx_Party_Id               Okx_Customer_Accounts_V.Party_Id%TYPE;
8194 
8195     Li_TableIdx               BINARY_INTEGER;
8196     L_EXCEP_UNEXPECTED_ERR    EXCEPTION;
8197     L_EXCEP_NO_DATA_FOUND     EXCEPTION;
8198 
8199   BEGIN
8200 
8201     Lx_Result                 := G_TRUE;
8202     Lx_Return_Status          := G_RET_STS_SUCCESS;
8203 
8204     OPEN Lx_Csr_CovCust(Lx_CovCust_Obj_Id);
8205     FETCH Lx_Csr_CovCust INTO Lx_Party_Id;
8206 
8207     IF Lx_Csr_CovCust%NOTFOUND THEN
8208       RAISE L_EXCEP_NO_DATA_FOUND;
8209     END IF;
8210 
8211     CLOSE Lx_Csr_CovCust;
8212 
8213     Li_TableIdx  := 1;
8214     Lx_Customer_CovLevels(Li_TableIdx).Rx_Obj1Id1  := Lx_CovCust_Obj_Id;
8215     Lx_Customer_CovLevels(Li_TableIdx).Rx_Obj1Id2  := '#';
8216     Lx_Customer_CovLevels(Li_TableIdx).Rx_ObjCode  := 'OKX_CUSTACCT';
8217 
8218     IF (set_account_party_id = 'T') THEN
8219        covd_account_party_id := Lx_Party_Id;  -- store the account_party_id to compare with site party_id #4690940
8220     END IF;
8221 
8222     Get_Party_CovLevels
8223       (P_CovParty_Obj_Id    => Lx_Party_Id
8224       ,X_Party_CovLevels    => Lx_Customer_Party
8225       ,X_Result             => Lx_Result
8226       ,X_Return_Status      => Lx_Return_Status);
8227 
8228     IF Lx_Result <> G_TRUE THEN
8229       RAISE L_EXCEP_UNEXPECTED_ERR;
8230     END IF;
8231 
8232     Append_ContItem_PlSql_Table
8233       (P_Input_Tab          => Lx_Customer_Party
8234       ,P_Append_Tab         => Lx_Customer_CovLevels
8235       ,X_Output_Tab         => Lx_Customer_CovLevels_Out
8236       ,X_Result             => Lx_Result
8237       ,X_Return_Status      => Lx_Return_Status);
8238 
8239     IF Lx_Result <> G_TRUE THEN
8240       RAISE L_EXCEP_UNEXPECTED_ERR;
8241     END IF;
8242 
8243     Lx_Customer_CovLevels  := Lx_Customer_CovLevels_Out;
8244 
8245     X_Party_Id             := Lx_Party_Id;
8246     X_Customer_CovLevels   := Lx_Customer_CovLevels;
8247     X_Result               := Lx_Result;
8248     X_Return_Status        := Lx_Return_Status;
8249 
8250   EXCEPTION
8251 
8252     WHEN L_EXCEP_NO_DATA_FOUND THEN
8253 
8254       IF Lx_Csr_CovCust%ISOPEN THEN
8255         CLOSE Lx_Csr_CovCust;
8256       END IF;
8257 
8258       X_Result              := G_TRUE;
8259       X_Return_Status       := G_TRUE;
8260 
8261     WHEN L_EXCEP_UNEXPECTED_ERR THEN
8262 
8263       X_Result              := Lx_Result;
8264       X_Return_Status       := Lx_Return_Status;
8265 
8266     WHEN OTHERS THEN
8267 
8268       OKC_API.SET_MESSAGE
8269         (P_App_Name	  => G_APP_NAME_OKC
8270 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
8271 	,P_Token1	  => G_SQLCODE_TOKEN
8272 	,P_Token1_Value	  => SQLCODE
8273 	,P_Token2	  => G_SQLERRM_TOKEN
8274 	,P_Token2_Value   => SQLERRM);
8275 
8276       OKC_API.SET_MESSAGE
8277         (P_App_Name	  => G_APP_NAME_OKC
8278 	,P_Msg_Name	  => G_DEBUG_TOKEN
8279 	,P_Token1	  => G_PACKAGE_TOKEN
8280 	,P_Token1_Value	  => G_PKG_NAME
8281 	,P_Token2	  => G_PROGRAM_TOKEN
8282 	,P_Token2_Value   => 'Get_Customer_CovLevels');
8283 
8284       X_Result             := G_FALSE;
8285       X_Return_Status      := G_RET_STS_UNEXP_ERROR;
8286 
8287   END Get_Customer_CovLevels;
8288 
8289 -----------------------------------------------------------------------------------------------------------------------*
8290 
8291   PROCEDURE Get_Site_CovLevels
8292     (P_CovSite_Obj_Id         IN  Gx_OKS_Id
8293     ,P_Org_Id                 IN  NUMBER
8294     ,X_Site_CovLevels         out nocopy GT_ContItem_Ref
8295     ,X_Result                 out nocopy Gx_Boolean
8296     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
8297   IS
8298 
8299 
8300     CURSOR Lx_Csr_CovSite(Cx_CovSite_Id IN Gx_OKS_Id
8301                          ,Cn_Org_Id IN NUMBER) IS
8302       SELECT PS.Id1
8303             ,PS.Id2
8304             ,PS.Party_Id
8305         FROM Okx_Party_Sites_V PS
8306        WHERE PS.Id1 = Cx_CovSite_Id;
8307 
8308     Lx_CovSite_Obj_Id         CONSTANT Gx_OKS_Id := P_CovSite_Obj_Id;
8309     Ln_Org_Id                 CONSTANT NUMBER := P_Org_Id;
8310 
8311     Lx_Site_CovLevels         GT_ContItem_Ref;
8312     Lx_Site_CovLevels_Out     GT_ContItem_Ref;
8313     Lx_Site_Customer          GT_ContItem_Ref;
8314     Lx_Site_Party             GT_ContItem_Ref;
8315 
8316     Lx_Result                 Gx_Boolean;
8317     Lx_Return_Status          Gx_Ret_Sts;
8318 
8319     Lx_Cust_Account_Id        Okx_Cust_Site_Uses_V.Cust_Account_Id%TYPE;
8320     Lx_Party_Id               Okx_Cust_Site_Uses_V.Party_Id%TYPE;
8321     Lx_Party_Id_Dummy         Okx_Customer_Accounts_V.Party_Id%TYPE;
8322 
8323     Li_TableIdx               BINARY_INTEGER;
8324 
8325     L_EXCEP_UNEXPECTED_ERR    EXCEPTION;
8326 
8327   BEGIN
8328 
8329     Lx_Result                 := G_TRUE;
8330     Lx_Return_Status          := G_RET_STS_SUCCESS;
8331 
8332     FOR IDX IN Lx_Csr_CovSite(Lx_CovSite_Obj_Id,Ln_Org_Id) LOOP
8333 
8334       Li_TableIdx  := NVL(Lx_Site_CovLevels.LAST,0) + 1;
8335 
8336       Lx_Site_CovLevels(Li_TableIdx).Rx_Obj1Id1  := Idx.Id1;
8337       Lx_Site_CovLevels(Li_TableIdx).Rx_Obj1Id2  := Idx.Id2;
8338       Lx_Site_CovLevels(Li_TableIdx).Rx_ObjCode  := 'OKX_PARTYSITE';
8339 
8340 --      Get_Party_CovLevels
8341 --        (P_CovParty_Obj_Id    => Idx.Party_Id
8342 --        ,X_Party_CovLevels    => Lx_Site_Party
8343 --        ,X_Result             => Lx_Result
8344 --        ,X_Return_Status      => Lx_Return_Status);
8345 --
8346 --
8347 
8348       IF covd_account_party_id IS NOT NULL THEN                -- #4690940 start
8349 	    IF covd_account_party_id <> Idx.Party_Id THEN
8350 	       Get_Party_CovLevels
8351 		              (P_CovParty_Obj_Id    => Idx.Party_Id
8352 				    ,X_Party_CovLevels    => Lx_Site_Party
8353 				    ,X_Result             => Lx_Result
8354 				    ,X_Return_Status      => Lx_Return_Status);
8355 	    END IF;
8356 	 ELSE
8357          Get_Party_CovLevels
8358             (P_CovParty_Obj_Id    => Idx.Party_Id
8359              ,X_Party_CovLevels    => Lx_Site_Party
8360              ,X_Result             => Lx_Result
8361              ,X_Return_Status      => Lx_Return_Status);
8362       END IF;                                                  --#4690940 end
8363 
8364 --
8365 
8366       IF Lx_Result <> G_TRUE THEN
8367         RAISE L_EXCEP_UNEXPECTED_ERR;
8368       END IF;
8369 
8370       Append_ContItem_PlSql_Table
8371         (P_Input_Tab          => Lx_Site_Party
8372         ,P_Append_Tab         => Lx_Site_CovLevels
8373         ,X_Output_Tab         => Lx_Site_CovLevels_Out
8374         ,X_Result             => Lx_Result
8375         ,X_Return_Status      => Lx_Return_Status);
8376 
8377       IF Lx_Result <> G_TRUE THEN
8378         RAISE L_EXCEP_UNEXPECTED_ERR;
8379       END IF;
8380 
8381       Lx_Site_CovLevels      := Lx_Site_CovLevels_Out;
8382 
8383     END LOOP;
8384 
8385     X_Site_CovLevels      := Lx_Site_CovLevels;
8386     X_Result              := Lx_Result;
8387     X_Return_Status       := Lx_Return_Status;
8388 
8389   EXCEPTION
8390 
8391     WHEN L_EXCEP_UNEXPECTED_ERR THEN
8392 
8393       X_Result            := Lx_Result;
8394       X_Return_Status     := Lx_Return_Status;
8395 
8396     WHEN OTHERS THEN
8397 
8398       OKC_API.SET_MESSAGE
8399         (P_App_Name	  => G_APP_NAME_OKC
8400 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
8401 	,P_Token1	  => G_SQLCODE_TOKEN
8402 	,P_Token1_Value	  => SQLCODE
8403 	,P_Token2	  => G_SQLERRM_TOKEN
8404 	,P_Token2_Value   => SQLERRM);
8405 
8406       OKC_API.SET_MESSAGE
8407         (P_App_Name	  => G_APP_NAME_OKC
8408 	,P_Msg_Name	  => G_DEBUG_TOKEN
8409 	,P_Token1	  => G_PACKAGE_TOKEN
8410 	,P_Token1_Value	  => G_PKG_NAME
8411 	,P_Token2	  => G_PROGRAM_TOKEN
8412 	,P_Token2_Value   => 'Get_Site_CovLevels');
8413 
8414       X_Result           := G_FALSE;
8415       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
8416 
8417   END Get_Site_CovLevels;
8418 
8419 -----------------------------------------------------------------------------------------------------------------------*
8420 
8421   PROCEDURE Get_System_CovLevels
8422     (P_CovSys_Obj_Id          IN  Gx_OKS_Id
8423     ,P_Org_Id                 IN  NUMBER
8424     ,X_System_CovLevels       out nocopy GT_ContItem_Ref
8425     ,X_Result                 out nocopy Gx_Boolean
8426     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
8427   IS
8428 
8429     CURSOR Lx_Csr_CovSys(Cx_CovSys_Id IN Gx_OKS_Id                 --Modified for New Install Base.
8430                         ,Cn_Org_Id IN NUMBER) IS
8431       SELECT CSISYS.System_Id System_Id,
8432              CSISYS.Customer_Id,
8433              CSISYS.Install_Site_Use_Id
8434         FROM CSI_SYSTEMS_B CSISYS
8435         connect by prior parent_system_id = system_id
8436         start with system_id = Cx_CovSys_Id;
8437 
8438     Lx_CovSys_Obj_Id          CONSTANT Gx_OKS_Id := P_CovSys_Obj_Id;
8439     Ln_org_Id                 CONSTANT NUMBER := P_Org_Id;
8440 
8441     Lx_System_CovLevels       GT_ContItem_Ref;
8442     Lx_System_CovLevels_Out   GT_ContItem_Ref;
8443 
8444     Lx_System_Customer        GT_ContItem_Ref;
8445     Lx_System_Site            GT_ContItem_Ref;
8446 
8447     Lx_Party_Id               Okx_Customer_Accounts_V.Party_Id%TYPE;
8448 
8449     Lx_Result                 Gx_Boolean;
8450     Lx_Return_Status          Gx_Ret_Sts;
8451 
8452     Li_TableIdx               BINARY_INTEGER;
8453     L_EXCEP_UNEXPECTED_ERR    EXCEPTION;
8454 
8455   BEGIN
8456 
8457     Lx_Result                 := G_TRUE;
8458     Lx_Return_Status          := G_RET_STS_SUCCESS;
8459 
8460     FOR Idx IN Lx_Csr_CovSys(Lx_CovSys_Obj_Id,Ln_Org_Id) LOOP
8461 
8462       Li_TableIdx  := NVL(Lx_System_CovLevels.LAST,0) + 1;
8463 
8464       Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id1  := Idx.System_Id;
8465       Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id2  := '#';
8466       Lx_System_CovLevels(Li_TableIdx).Rx_ObjCode  := 'OKX_COVSYST';
8467 
8468       Get_Customer_CovLevels
8469         (P_CovCust_Obj_Id     => Idx.Customer_Id
8470         ,X_Party_Id           => Lx_Party_Id
8471         ,X_Customer_CovLevels => Lx_System_Customer
8472         ,X_Result             => Lx_Result
8473         ,X_Return_Status      => Lx_Return_Status);
8474 
8475       IF Lx_Result <> G_TRUE THEN
8476         RAISE L_EXCEP_UNEXPECTED_ERR;
8477       END IF;
8478 
8479       Append_ContItem_PlSql_Table
8480         (P_Input_Tab          => Lx_System_Customer
8481         ,P_Append_Tab         => Lx_System_CovLevels
8482         ,X_Output_Tab         => Lx_System_CovLevels_Out
8483         ,X_Result             => Lx_Result
8484         ,X_Return_Status      => Lx_Return_Status);
8485 
8486       IF Lx_Result <> G_TRUE THEN
8487         RAISE L_EXCEP_UNEXPECTED_ERR;
8488       END IF;
8489 
8490       Lx_System_CovLevels     := Lx_System_CovLevels_Out;
8491 
8492       Get_Site_CovLevels
8493         (P_CovSite_Obj_Id     => Idx.Install_Site_Use_Id
8494         ,P_Org_Id             => Ln_org_Id
8495         ,X_Site_CovLevels     => Lx_System_Site
8496         ,X_Result             => Lx_Result
8497         ,X_Return_Status      => Lx_Return_Status);
8498 
8499       IF Lx_Result <> G_TRUE THEN
8500         RAISE L_EXCEP_UNEXPECTED_ERR;
8501       END IF;
8502 
8503       Append_ContItem_PlSql_Table
8504         (P_Input_Tab          => Lx_System_Site
8505         ,P_Append_Tab         => Lx_System_CovLevels
8506         ,X_Output_Tab         => Lx_System_CovLevels_out
8507         ,X_Result             => Lx_Result
8508         ,X_Return_Status      => Lx_Return_Status);
8509 
8510       IF Lx_Result <> G_TRUE THEN
8511         RAISE L_EXCEP_UNEXPECTED_ERR;
8512       END IF;
8513 
8514       Lx_System_CovLevels     := Lx_System_CovLevels_Out;
8515 
8516     END LOOP;
8517 
8518     X_System_CovLevels      := Lx_System_CovLevels;
8519     X_Result                := Lx_Result;
8520     X_Return_Status         := Lx_Return_Status;
8521 
8522   EXCEPTION
8523 
8524     WHEN L_EXCEP_UNEXPECTED_ERR THEN
8525 
8526       X_Result              := Lx_Result;
8527       X_Return_Status       := Lx_Return_Status;
8528 
8529     WHEN OTHERS THEN
8530 
8531       OKC_API.SET_MESSAGE
8532         (P_App_Name	  => G_APP_NAME_OKC
8533 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
8534 	,P_Token1	  => G_SQLCODE_TOKEN
8535 	,P_Token1_Value	  => SQLCODE
8536 	,P_Token2	  => G_SQLERRM_TOKEN
8537 	,P_Token2_Value   => SQLERRM);
8538 
8539       OKC_API.SET_MESSAGE
8540         (P_App_Name	  => G_APP_NAME_OKC
8541 	,P_Msg_Name	  => G_DEBUG_TOKEN
8542 	,P_Token1	  => G_PACKAGE_TOKEN
8543 	,P_Token1_Value	  => G_PKG_NAME
8544 	,P_Token2	  => G_PROGRAM_TOKEN
8545 	,P_Token2_Value   => 'Get_System_CovLevels');
8546 
8547       X_Result         := G_FALSE;
8548       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
8549 
8550   END Get_System_CovLevels;
8551 
8552 -----------------------------------------------------------------------------------------------------------------------*
8553 
8554 /**********************************************************
8555 ** This Procedure gets all the parents traversing up     **
8556 ** for a given child(subject) with the relationship type **
8557 ** COMPONENT-OF. It stops traversing when the top-most   **
8558 ** is reached or the relationship is broken.             **
8559 ***********************************************************/
8560 
8561 -- added procedure Get_All_Parents to fix bug 3583486.
8562 
8563   PROCEDURE Get_All_Parents
8564    (
8565     p_api_version      IN  NUMBER,
8566     p_commit           IN  VARCHAR2,
8567     p_init_msg_list    IN  VARCHAR2,
8568     p_validation_level IN  NUMBER,
8569     p_subject_id       IN  NUMBER,
8570     x_rel_tbl          OUT NOCOPY ii_relationship_tbl,
8571     x_return_status    OUT NOCOPY VARCHAR2,
8572     x_msg_count        OUT NOCOPY NUMBER,
8573     x_msg_data         OUT NOCOPY VARCHAR2
8574    ) IS
8575 
8576    l_api_version            CONSTANT NUMBER := 1.0;
8577    l_api_name               CONSTANT VARCHAR2(30) := 'GET_ALL_PARENTS';
8578    l_ctr                    NUMBER;
8579    l_object_id              NUMBER;
8580    l_subject_id             NUMBER;
8581    l_exists                 VARCHAR2(1);
8582    l_relationship_id        NUMBER;
8583    l_rel_type_code          CONSTANT VARCHAR2(30) := 'COMPONENT-OF';
8584 
8585    L_EXCEP_CYCLIC_DATA      EXCEPTION;
8586    Lx_ExcepionMsg           Varchar2(1000);
8587    Lx_Return_Status         Varchar2(1);
8588 
8589 BEGIN
8590 
8591    l_ctr               := 0;
8592 
8593    -- Check for freeze_flag in csi_install_parameters is set to 'Y', not required.
8594    -- csi_utility_grp.check_ib_active;
8595 
8596    x_return_status := FND_API.G_RET_STS_SUCCESS;
8597 
8598    l_subject_id := p_subject_id;
8599 
8600    LOOP
8601       Begin
8602 	 select relationship_id,object_id
8603 	 into l_relationship_id,l_object_id
8604 	 from CSI_II_RELATIONSHIPS
8605 	 where subject_id = l_subject_id
8606 	 and   relationship_type_code = l_rel_type_code
8607 	 and   ((active_end_date is null) or (active_end_date > sysdate));
8608 	 --
8609 	 l_ctr := l_ctr + 1;
8610 	 x_rel_tbl(l_ctr).subject_id := l_subject_id;
8611 	 x_rel_tbl(l_ctr).object_id := l_object_id;
8612 	 x_rel_tbl(l_ctr).relationship_id := l_relationship_id;
8613 	 x_rel_tbl(l_ctr).relationship_type_code := l_rel_type_code;
8614 	 --
8615          -- Just in case a cycle exists because of bad data the following check will break
8616          -- the loop.
8617 	 l_exists := 'N';
8618 	 IF x_rel_tbl.count > 0 THEN
8619 	    FOR j in x_rel_tbl.FIRST .. x_rel_tbl.LAST Loop
8620 	       IF l_object_id = x_rel_tbl(j).subject_id THEN
8621     		  l_exists        := 'Y';
8622               Lx_ExcepionMsg  := 'OBJECT_ID in Relationship Id: '||x_rel_tbl(l_ctr).relationship_id||
8623                                  ' and SUBJECT_ID in Relationship Id: '||x_rel_tbl(j).relationship_id||
8624                                  ' is in a cyclic relationship';
8625      		  exit;
8626 	       END IF;
8627 	    End Loop;
8628 	 END IF;
8629 	 --
8630 	 IF l_exists = 'Y' THEN
8631 --	    exit;
8632         RAISE L_EXCEP_CYCLIC_DATA;
8633 	 END IF;
8634 	 --
8635 	 l_subject_id := l_object_id;
8636       Exception
8637 	 when no_data_found then
8638 	    exit;
8639       End;
8640    END LOOP;
8641    -- End of API body
8642 
8643 
8644   EXCEPTION
8645 
8646     WHEN L_EXCEP_CYCLIC_DATA THEN
8647 
8648         OKC_API.SET_MESSAGE
8649           (p_app_name	   => G_APP_NAME_OKC
8650      	  ,p_msg_name	   => G_INVALID_VALUE
8651 	      ,p_token1	       => G_COL_NAME_TOKEN
8652 	      ,p_token1_value  => Lx_ExcepionMsg);
8653 
8654         Lx_Return_Status  := G_RET_STS_ERROR;
8655 
8656     WHEN OTHERS THEN
8657 
8658       OKC_API.SET_MESSAGE
8659         (P_App_Name	  => G_APP_NAME_OKC
8660 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
8661 	,P_Token1	  => G_SQLCODE_TOKEN
8662 	,P_Token1_Value	  => SQLCODE
8663 	,P_Token2	  => G_SQLERRM_TOKEN
8664 	,P_Token2_Value   => SQLERRM);
8665 
8666       OKC_API.SET_MESSAGE
8667         (P_App_Name	  => G_APP_NAME_OKC
8668 	,P_Msg_Name	  => G_DEBUG_TOKEN
8669 	,P_Token1	  => G_PACKAGE_TOKEN
8670 	,P_Token1_Value	  => G_PKG_NAME
8671 	,P_Token2	  => G_PROGRAM_TOKEN
8672 	,P_Token2_Value   => 'Get_All_Parents');
8673 
8674       X_Return_Status := G_RET_STS_UNEXP_ERROR;
8675 
8676 END Get_All_Parents;
8677 
8678 ------------------------------------------------------------------------------------------------------
8679 
8680 PROCEDURE Get_Product_CovLevels
8681     (P_CovProd_Obj_Id         IN  Gx_OKS_Id
8682     ,P_Organization_Id        IN  NUMBER
8683     ,P_Org_Id                 IN  NUMBER
8684     ,X_Party_Id               out nocopy Gx_OKS_Id
8685     ,X_Product_CovLevels      out nocopy GT_ContItem_Ref
8686     ,X_Result                 out nocopy Gx_Boolean
8687     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
8688   IS
8689 
8690 /*
8691 CURSOR Lx_Csr_PARPROD (Cx_CovProd_Id IN Gx_OKS_Id ) IS
8692 	SELECT  object_id,
8693 		subject_id
8694 	FROM csi_ii_relationships
8695         connect by prior    object_id = subject_id
8696         start with subject_id = Cx_CovProd_Id
8697 	UNION
8698 	SELECT  instance_id object_id,
8699 --		null subject_id
8700         -1 subject_id --bug 2740241
8701 	FROM csi_item_instances
8702 	where instance_id = Cx_CovProd_Id;
8703 */
8704 
8705 CURSOR Lx_Csr_CovProd(Cx_CovProd_Id IN Gx_OKS_Id
8706                          ,Cn_Organization_Id IN NUMBER
8707                          ,Cn_Org_Id IN NUMBER) IS
8708 	SELECT  CSI.Inventory_item_id Inventory_item_id,
8709 	      	CSI.System_id System_id,
8710         	CSI.Owner_party_account_id Owner_party_account_id, --CSI.Owner_party_id Owner_party_id
8711         	CSI.install_location_id install_location_id,
8712         	CSI.INSTALL_LOCATION_TYPE_CODE install_location_type_code
8713 	FROM    CSI_ITEM_INSTANCES CSI
8714 	WHERE   CSI.INSTANCE_ID  = Cx_CovProd_Id;
8715 
8716 
8717 
8718 
8719 
8720     Lx_CovProd_Obj_Id         CONSTANT Gx_OKS_Id := P_CovProd_Obj_Id;
8721     Ln_organization_Id        CONSTANT NUMBER := P_Organization_Id;
8722     Ln_Org_Id                 CONSTANT NUMBER := P_Org_Id;
8723 
8724     Lx_Product_CovLevels      GT_ContItem_Ref;
8725     Lx_Product_CovLevels_Out  GT_ContItem_Ref;
8726     Lx_Product_Customer       GT_ContItem_Ref;
8727     Lx_Product_Site           GT_ContItem_Ref;
8728     Lx_Product_Item           GT_ContItem_Ref;
8729     Lx_Product_System         GT_ContItem_Ref;
8730 
8731     Lx_Result                 Gx_Boolean;
8732     Lx_Return_Status          Gx_Ret_Sts;
8733 
8734 /* ---CSI Uptake ----
8735     Lx_Inv_Item_Id            Okx_Customer_Products_V.Inventory_Item_Id%TYPE;
8736     Lx_System_Id              Okx_Customer_Products_V.System_Id%TYPE;
8737     Lx_Customer_Id            Okx_Customer_Products_V.Customer_Id%TYPE;
8738     Lx_Site_Id                Okx_Customer_Products_V.Install_Site_Use_Id%TYPE;
8739 */
8740 
8741     Lx_Party_Id               Okx_Customer_Accounts_V.Party_Id%TYPE;
8742     Lx_Inv_Item_Id            CSI_ITEM_INSTANCES.Inventory_Item_Id%TYPE;
8743     Lx_System_Id              CSI_ITEM_INSTANCES.System_Id%TYPE;
8744     Lx_Customer_Id            CSI_ITEM_INSTANCES.Owner_Party_Id%TYPE;
8745     Lx_Site_Id                CSI_ITEM_INSTANCES.Install_location_id%TYPE;
8746     Lx_Site_Type_Code         CSI_ITEM_INSTANCES.Install_location_type_code%TYPE;
8747 
8748     Lx_PARENT_OBJ             GT_PARENT_Ref;
8749     Li_PAR_Idx                BINARY_INTEGER;
8750 
8751     Lx_INSTANCES              GT_INSTANCES;
8752     Li_INST_Idx               BINARY_INTEGER;
8753 
8754     L_rel_tbl                 ii_relationship_tbl;
8755     Li_RelTbl_Idx             BINARY_INTEGER;
8756     L_msg_count               number;
8757     L_msg_data                VARCHAR2(1000);
8758     Li_TableIdx               BINARY_INTEGER;
8759 
8760     L_EXCEP_UNEXPECTED_ERR    EXCEPTION;
8761     L_EXCEP_NO_DATA_FOUND     EXCEPTION;
8762 
8763   BEGIN
8764 
8765     Lx_Result                 := G_TRUE;
8766     Lx_Return_Status          := G_RET_STS_SUCCESS;
8767 
8768 /*
8769     Li_PAR_Idx := 0;
8770 
8771     FOR Lx_Csr_PARPROD_REC in Lx_Csr_PARPROD(Lx_CovProd_Obj_Id) LOOP
8772 
8773 
8774       Li_PAR_Idx  := Li_PAR_Idx + 1;
8775       Lx_PARENT_OBJ(Li_PAR_Idx).Rx_object_id := Lx_Csr_PARPROD_REC.object_id;
8776 
8777       Lx_PARENT_OBJ(Li_PAR_Idx).Rx_subject_id := Lx_Csr_PARPROD_REC.subject_id;
8778 
8779     END LOOP;
8780 */
8781 
8782     Li_INST_Idx  := 1;
8783 
8784     Lx_INSTANCES(Li_INST_Idx).RX_Inst_ID := Lx_CovProd_Obj_Id;
8785 
8786 -- call to get_all_parents to add the parent instances to Lx_INSTANCES
8787 
8788     Get_All_Parents
8789      (
8790      p_api_version      => 1.0,
8791      p_commit           => G_FALSE,
8792      p_init_msg_list    => 'T',
8793      p_validation_level => FND_API.G_VALID_LEVEL_FULL,
8794      p_subject_id       => Lx_CovProd_Obj_Id,
8795      x_rel_tbl          => L_rel_tbl,
8796      x_return_status    => Lx_return_status,
8797      x_msg_count        => L_msg_count,
8798      x_msg_data         => L_msg_data
8799      );
8800 
8801     IF Lx_return_status <> 'S' THEN
8802       RAISE L_EXCEP_UNEXPECTED_ERR;
8803     END IF;
8804 
8805     IF L_rel_tbl.count > 0 THEN
8806 
8807       Li_RelTbl_Idx     := L_rel_tbl.FIRST;
8808 
8809       WHILE Li_RelTbl_Idx IS NOT NULL  LOOP
8810 
8811           Li_INST_Idx   := Li_INST_Idx + 1;
8812 
8813           Lx_INSTANCES(Li_INST_Idx).RX_Inst_ID    := L_rel_tbl(Li_RelTbl_Idx).object_id;
8814 
8815           Li_RelTbl_Idx  := L_rel_tbl.NEXT(Li_RelTbl_Idx);
8816 
8817       END LOOP;
8818 
8819     END IF;
8820 
8821     Li_TableIdx  := 1;
8822 
8823   IF Lx_INSTANCES.COUNT > 0 THEN -- added while fixing bug 2740241
8824 
8825    FOR i in Lx_INSTANCES.FIRST .. Lx_INSTANCES.LAST LOOP
8826 
8827     OPEN Lx_Csr_CovProd(Lx_INSTANCES(i).RX_Inst_ID,Ln_organization_Id,Ln_Org_Id);
8828 
8829     FETCH Lx_Csr_CovProd INTO Lx_Inv_Item_Id,Lx_System_Id,Lx_Customer_Id,Lx_Site_Id,Lx_Site_Type_Code;
8830 
8831     IF Lx_Csr_CovProd%NOTFOUND THEN
8832       RAISE L_EXCEP_NO_DATA_FOUND;
8833     END IF;
8834 
8835     Lx_Product_CovLevels(Li_TableIdx).Rx_Obj1Id1  := Lx_INSTANCES(i).RX_Inst_ID;
8836     Lx_Product_CovLevels(Li_TableIdx).Rx_Obj1Id2  := '#';
8837     Lx_Product_CovLevels(Li_TableIdx).Rx_ObjCode  := 'OKX_CUSTPROD';
8838 
8839     Get_Item_CovLevels
8840       (P_CovItem_Obj_Id     => Lx_Inv_Item_Id
8841       ,P_Organization_Id    => Ln_Organization_Id
8842       ,X_Item_CovLevels     => Lx_Product_Item
8843       ,X_Result             => Lx_Result
8844       ,X_Return_Status      => Lx_Return_Status);
8845 
8846     IF Lx_Result <> G_TRUE THEN
8847       RAISE L_EXCEP_UNEXPECTED_ERR;
8848     END IF;
8849 
8850     Append_ContItem_PlSql_Table
8851       (P_Input_Tab          => Lx_Product_Item
8852       ,P_Append_Tab         => Lx_Product_CovLevels
8853       ,X_Output_Tab         => Lx_Product_CovLevels_Out
8854       ,X_Result             => Lx_Result
8855       ,X_Return_Status      => Lx_Return_Status);
8856 
8857     IF Lx_Result <> G_TRUE THEN
8858       RAISE L_EXCEP_UNEXPECTED_ERR;
8859     END IF;
8860 
8861     Lx_Product_CovLevels  :=  Lx_Product_CovLevels_Out;
8862 
8863     Get_System_CovLevels
8864       (P_CovSys_Obj_Id      => Lx_System_Id
8865       ,P_Org_Id             => Ln_Org_Id
8866       ,X_System_CovLevels   => Lx_Product_System
8867       ,X_Result             => Lx_Result
8868       ,X_Return_Status      => Lx_Return_Status);
8869 
8870     IF Lx_Result <> G_TRUE THEN
8871       RAISE L_EXCEP_UNEXPECTED_ERR;
8872     END IF;
8873 
8874     Append_ContItem_PlSql_Table
8875       (P_Input_Tab          => Lx_Product_System
8876       ,P_Append_Tab         => Lx_Product_CovLevels
8877       ,X_Output_Tab         => Lx_Product_CovLevels_Out
8878       ,X_Result             => Lx_Result
8879       ,X_Return_Status      => Lx_Return_Status);
8880 
8881     IF Lx_Result <> G_TRUE THEN
8882       RAISE L_EXCEP_UNEXPECTED_ERR;
8883     END IF;
8884 
8885     Lx_Product_CovLevels  :=  Lx_Product_CovLevels_Out;
8886 
8887     Get_Customer_CovLevels
8888       (P_CovCust_Obj_Id     => Lx_Customer_Id
8889       ,X_Party_Id           => Lx_Party_Id
8890       ,X_Customer_CovLevels => Lx_Product_Customer
8891       ,X_Result             => Lx_Result
8892       ,X_Return_Status      => Lx_Return_Status);
8893 
8894     IF Lx_Result <> G_TRUE THEN
8895       RAISE L_EXCEP_UNEXPECTED_ERR;
8896     END IF;
8897 
8898     Append_ContItem_PlSql_Table
8899       (P_Input_Tab          => Lx_Product_Customer
8900       ,P_Append_Tab         => Lx_Product_CovLevels
8901       ,X_Output_Tab         => Lx_Product_CovLevels_Out
8902       ,X_Result             => Lx_Result
8903       ,X_Return_Status      => Lx_Return_Status);
8904 
8905     IF Lx_Result <> G_TRUE THEN
8906       RAISE L_EXCEP_UNEXPECTED_ERR;
8907     END IF;
8908 
8909     Lx_Product_CovLevels  :=  Lx_Product_CovLevels_Out;
8910 
8911   If Lx_Site_Type_Code = 'HZ_PARTY_SITES' Then
8912 
8913     Get_Site_CovLevels
8914       (P_CovSite_Obj_Id     => Lx_Site_Id
8915       ,P_Org_Id             => Ln_Org_Id
8916       ,X_Site_CovLevels     => Lx_Product_Site
8917       ,X_Result             => Lx_Result
8918       ,X_Return_Status      => Lx_Return_Status);
8919 
8920     IF Lx_Result <> G_TRUE THEN
8921       RAISE L_EXCEP_UNEXPECTED_ERR;
8922     END IF;
8923 
8924     Append_ContItem_PlSql_Table
8925       (P_Input_Tab          => Lx_Product_Site
8926       ,P_Append_Tab         => Lx_Product_CovLevels
8927       ,X_Output_Tab         => Lx_Product_CovLevels_Out
8928       ,X_Result             => Lx_Result
8929       ,X_Return_Status      => Lx_Return_Status);
8930 
8931     IF Lx_Result <> G_TRUE THEN
8932       RAISE L_EXCEP_UNEXPECTED_ERR;
8933     END IF;
8934 
8935     Lx_Product_CovLevels  :=  Lx_Product_CovLevels_Out;
8936 
8937    END IF; -- Lx_Site_Type_Code = 'HZ_PARTY_SITES'
8938 
8939    Li_TableIdx  := Lx_Product_CovLevels.LAST + 1;
8940 
8941    CLOSE Lx_Csr_CovProd;
8942 
8943   END LOOP;
8944 
8945  END IF;
8946 
8947     Lx_Product_CovLevels  :=  Lx_Product_CovLevels_Out;
8948 
8949     X_Party_Id            := Lx_Party_Id;
8950     X_Product_CovLevels   := Lx_Product_CovLevels;
8951     X_Result              := Lx_Result;
8952     X_Return_Status       := Lx_Return_Status;
8953 
8954   EXCEPTION
8955 
8956     WHEN L_EXCEP_NO_DATA_FOUND THEN
8957 
8958       IF Lx_Csr_CovProd%ISOPEN THEN
8959         CLOSE Lx_Csr_CovProd;
8960       END IF;
8961 
8962       X_Result              := G_TRUE;
8963       X_Return_Status       := G_TRUE;
8964 
8965     WHEN L_EXCEP_UNEXPECTED_ERR THEN
8966 
8967       X_Result              := Lx_Result;
8968       X_Return_Status       := Lx_Return_Status;
8969 
8970     WHEN OTHERS THEN
8971 
8972       OKC_API.SET_MESSAGE
8973     (P_App_Name	  => G_APP_NAME_OKC
8974 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
8975 	,P_Token1	  => G_SQLCODE_TOKEN
8976 	,P_Token1_Value	  => SQLCODE
8977 	,P_Token2	  => G_SQLERRM_TOKEN
8978 	,P_Token2_Value   => SQLERRM);
8979 
8980       OKC_API.SET_MESSAGE
8981         (P_App_Name	  => G_APP_NAME_OKC
8982 	,P_Msg_Name	  => G_DEBUG_TOKEN
8983 	,P_Token1	  => G_PACKAGE_TOKEN
8984 	,P_Token1_Value	  => G_PKG_NAME
8985 	,P_Token2	  => G_PROGRAM_TOKEN
8986 	,P_Token2_Value   => 'Get_Product_CovLevels');
8987 
8988       X_Result         := G_FALSE;
8989       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
8990 
8991   END Get_Product_CovLevels;
8992 
8993 /*--------------------------------------------------*/
8994 
8995 
8996   PROCEDURE Sort_Asc_ContItem_PlSql_Table
8997     (P_Input_Tab          IN  GT_ContItem_Ref
8998     ,X_Output_Tab         out nocopy GT_ContItem_Ref
8999     ,X_Result             out nocopy Gx_Boolean
9000     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)  IS
9001 
9002     Lx_Sort_Tab           GT_ContItem_Ref;
9003     Lx_Result             Gx_Boolean;
9004     Lx_Return_Status      Gx_Ret_Sts;
9005 
9006     Li_TableIdx_Out       BINARY_INTEGER;
9007     Li_TableIdx_In        BINARY_INTEGER;
9008 
9009     Lx_Temp_ContItem      GR_ContItem_Ref;
9010 
9011     Lv_Composit_Val1      VARCHAR2(300);
9012     Lv_Composit_Val2      VARCHAR2(300);
9013 
9014   BEGIN
9015 
9016     Lx_Sort_Tab           := P_Input_Tab;
9017     Lx_Result             := G_TRUE;
9018     Lx_Return_Status      := G_RET_STS_SUCCESS;
9019 
9020     Li_TableIdx_Out  := Lx_Sort_Tab.FIRST;
9021 
9022     WHILE Li_TableIdx_Out IS NOT NULL LOOP
9023 
9024       Li_TableIdx_In  := Li_TableIdx_Out;
9025 
9026       WHILE Li_TableIdx_In IS NOT NULL LOOP
9027 
9028         Lv_Composit_Val1  := Lx_Sort_Tab(Li_TableIdx_Out).Rx_ObjCode||Lx_Sort_Tab(Li_TableIdx_Out).Rx_Obj1Id1
9029                              ||Lx_Sort_Tab(Li_TableIdx_Out).Rx_Obj1Id2;
9030 
9031         Lv_Composit_Val2  := Lx_Sort_Tab(Li_TableIdx_In).Rx_ObjCode||Lx_Sort_Tab(Li_TableIdx_In).Rx_Obj1Id1
9032                              ||Lx_Sort_Tab(Li_TableIdx_In).Rx_Obj1Id2;
9033 
9034         IF Lv_Composit_Val1 > Lv_Composit_Val2 THEN
9035 
9036           Lx_Temp_ContItem              := Lx_Sort_Tab(Li_TableIdx_Out);
9037           Lx_Sort_Tab(Li_TableIdx_Out)  := Lx_Sort_Tab(Li_TableIdx_In);
9038           Lx_Sort_Tab(Li_TableIdx_In)   := Lx_Temp_ContItem;
9039 
9040         END IF;
9041 
9042         Li_TableIdx_In  := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
9043 
9044       END LOOP;
9045 
9046       Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
9047 
9048     END LOOP;
9049 
9050     X_Output_Tab          := Lx_Sort_Tab;
9051     X_Result              := Lx_Result;
9052     X_Return_Status       := Lx_Return_Status;
9053 
9054   EXCEPTION
9055 
9056     WHEN OTHERS THEN
9057 
9058       OKC_API.SET_MESSAGE
9059         (P_App_Name	  => G_APP_NAME_OKC
9060 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
9061 	,P_Token1	  => G_SQLCODE_TOKEN
9062 	,P_Token1_Value	  => SQLCODE
9063 	,P_Token2	  => G_SQLERRM_TOKEN
9064 	,P_Token2_Value   => SQLERRM);
9065 
9066       OKC_API.SET_MESSAGE
9067         (P_App_Name	  => G_APP_NAME_OKC
9068 	,P_Msg_Name	  => G_DEBUG_TOKEN
9069 	,P_Token1	  => G_PACKAGE_TOKEN
9070 	,P_Token1_Value	  => G_PKG_NAME
9071 	,P_Token2	  => G_PROGRAM_TOKEN
9072 	,P_Token2_Value   => 'Sort_Asc_ContItem_PlSql_Table');
9073 
9074       X_Result           := G_FALSE;
9075       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
9076 
9077   END Sort_Asc_ContItem_PlSql_Table;
9078 
9079 -----------------------------------------------------------------------------------------------------------------------*
9080 
9081   PROCEDURE Dedup_ContItem_PlSql_Table
9082     (P_Input_Tab          IN  GT_ContItem_Ref
9083     ,X_Output_Tab         out nocopy GT_ContItem_Ref
9084     ,X_Result             out nocopy Gx_Boolean
9085     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)  IS
9086 
9087     Lx_DeDup_Tab          GT_ContItem_Ref;
9088     Lx_Result             Gx_Boolean;
9089     Lx_Return_Status      Gx_Ret_Sts;
9090 
9091     Li_TableIdx           BINARY_INTEGER;
9092 
9093     Lx_Temp_ContItem      GR_ContItem_Ref;
9094 
9095     Lv_Composit_Val1      VARCHAR2(300);
9096     Lv_Composit_Val2      VARCHAR2(300);
9097 
9098   BEGIN
9099 
9100     Lx_DeDup_Tab          := P_Input_Tab;
9101     Lx_Result             := G_TRUE;
9102     Lx_Return_Status      := G_RET_STS_SUCCESS;
9103 
9104     Li_TableIdx          := Lx_DeDup_Tab.FIRST;
9105 
9106     WHILE Li_TableIdx IS NOT NULL LOOP
9107 
9108       Lv_Composit_Val1   := Lx_DeDup_Tab(Li_TableIdx).Rx_ObjCode||Lx_DeDup_Tab(Li_TableIdx).Rx_Obj1Id1
9109                            ||Lx_DeDup_Tab(Li_TableIdx).Rx_Obj1Id2;
9110 
9111       Lv_Composit_Val2   := Lx_Temp_ContItem.Rx_ObjCode||Lx_Temp_ContItem.Rx_Obj1Id1||Lx_Temp_ContItem.Rx_Obj1Id2;
9112 
9113       IF Lv_Composit_Val1 = Lv_Composit_Val2 THEN
9114         Lx_DeDup_Tab.DELETE(Li_TableIdx);
9115       ELSE
9116         Lx_Temp_ContItem  := Lx_DeDup_Tab(Li_TableIdx);
9117       END IF;
9118 
9119       Li_TableIdx         := Lx_DeDup_Tab.NEXT(Li_TableIdx);
9120 
9121     END LOOP;
9122 
9123     X_Output_Tab          := Lx_DeDup_Tab;
9124     X_Result              := Lx_Result;
9125     X_Return_Status       := Lx_Return_Status;
9126 
9127   EXCEPTION
9128 
9129     WHEN OTHERS THEN
9130 
9131       OKC_API.SET_MESSAGE
9132         (P_App_Name	  => G_APP_NAME_OKC
9133 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
9134 	,P_Token1	  => G_SQLCODE_TOKEN
9135 	,P_Token1_Value	  => SQLCODE
9136 	,P_Token2	  => G_SQLERRM_TOKEN
9137 	,P_Token2_Value   => SQLERRM);
9138 
9139       OKC_API.SET_MESSAGE
9140         (P_App_Name	  => G_APP_NAME_OKC
9141 	,P_Msg_Name	  => G_DEBUG_TOKEN
9142 	,P_Token1	  => G_PACKAGE_TOKEN
9143 	,P_Token1_Value	  => G_PKG_NAME
9144 	,P_Token2	  => G_PROGRAM_TOKEN
9145 	,P_Token2_Value   => 'Dedup_ContItem_PlSql_Table');
9146 
9147       X_Result         := G_FALSE;
9148       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
9149 
9150   END Dedup_ContItem_PlSql_Table;
9151 
9152 -----------------------------------------------------------------------------------------------------------------------*
9153 
9154   PROCEDURE Get_CovLevel_Contracts
9155     (P_CovLevel_Items         IN  GT_ContItem_Ref
9156     ,P_Party_Id               IN  Gx_OKS_Id
9157     ,X_CovLevel_Contracts     OUT NOCOPY GT_Contract_Ref
9158     ,X_Result                 OUT nocopy Gx_Boolean
9159     ,X_Return_Status   	      OUT nocopy Gx_Ret_Sts)
9160   IS
9161 
9162 -- bug 3045667 needed resolution as pre filtering records based on party id
9163 -- if the object_code = 'OKX_COVITEM' for performance improvements. used exists clause.
9164 
9165 
9166     CURSOR Lx_Csr_CovLvlOthr_Contracts(Cx_CovLevel_Obj_Id1 IN Gx_OKS_Id
9167                                     ,Cv_CovLevel_Obj_Id2 IN VARCHAR2
9168                                     ,Cx_CovLevel_Obj_Code IN Gx_JTOT_ObjCode) IS
9169        SELECT DISTINCT IT.Dnz_Chr_Id Dnz_Chr_Id, IT.Cle_Id
9170          FROM OKC_K_ITEMS IT
9171         WHERE IT.Object1_Id1  = TO_CHAR(Cx_CovLevel_Obj_Id1)
9172           AND (IT.Object1_Id2 = Cv_CovLevel_Obj_Id2 OR Cv_CovLevel_Obj_Id2 = '#')
9173           AND IT.Jtot_Object1_Code = Cx_CovLevel_Obj_Code;
9174 
9175      --bug 9083530 Added hints to the query to improve performance.
9176     CURSOR Lx_Csr_CovLvlItem_Contracts(Cx_CovLevel_Obj_Id1 IN Gx_OKS_Id
9177                                     ,Cv_CovLevel_Obj_Id2 IN VARCHAR2
9178                                     ,Cx_CovLevel_Obj_Code IN Gx_JTOT_ObjCode) IS
9179        SELECT /*+ index(IT OKC_K_ITEMS_N2) */ DISTINCT IT.Dnz_Chr_Id Dnz_Chr_Id, IT.Cle_Id
9180          FROM OKC_K_ITEMS IT
9181         WHERE IT.Object1_Id1  = TO_CHAR(Cx_CovLevel_Obj_Id1)
9182    --     AND (IT.Object1_Id2 = Cv_CovLevel_Obj_Id2 OR Cv_CovLevel_Obj_Id2 = '#')  -- BUG# 4735542
9183           AND IT.Jtot_Object1_Code = Cx_CovLevel_Obj_Code
9184           AND EXISTS (SELECT/*+ push_subq no_unnest */ '*'
9185                        FROM OKC_K_PARTY_ROLES_B PR
9186                       WHERE PR.CHR_ID = IT.DNZ_CHR_ID
9187                         AND PR.CLE_ID IS NULL
9188                         AND PR.DNZ_CHR_ID = IT.DNZ_CHR_ID
9189                         AND PR.OBJECT1_ID1 = TO_CHAR(p_party_id)
9190                         AND PR.OBJECT1_ID2 = '#'
9191                         AND PR.JTOT_OBJECT1_CODE = 'OKX_PARTY'
9192                         AND PR.RLE_CODE <> 'VENDOR');
9193 
9194     CURSOR Lx_Csr_CovLvlItem_Contracts1(Cx_CovLevel_Obj_Id1 IN Gx_OKS_Id
9195                                     ,Cv_CovLevel_Obj_Id2 IN VARCHAR2
9196                                     ,Cx_CovLevel_Obj_Code IN Gx_JTOT_ObjCode) IS
9197        SELECT /*+ index(IT OKC_K_ITEMS_N2) */ DISTINCT IT.Dnz_Chr_Id Dnz_Chr_Id, IT.Cle_Id
9198          FROM OKC_K_ITEMS IT
9199         WHERE IT.Object1_Id1  = TO_CHAR(Cx_CovLevel_Obj_Id1)
9200    --     AND (IT.Object1_Id2 = Cv_CovLevel_Obj_Id2 OR Cv_CovLevel_Obj_Id2 = '#')  -- BUG# 4735542
9201           AND IT.Jtot_Object1_Code = Cx_CovLevel_Obj_Code
9202           AND EXISTS (SELECT/*+ push_subq no_unnest */ '*'
9203                        FROM OKC_K_PARTY_ROLES_B PR
9204                       WHERE PR.CHR_ID = IT.DNZ_CHR_ID
9205                         AND PR.CLE_ID IS NULL
9206                         AND PR.DNZ_CHR_ID = IT.DNZ_CHR_ID
9207                         AND PR.OBJECT1_ID1 = TO_CHAR(p_party_id)
9208                         AND PR.OBJECT1_ID2 = '#'
9209                         AND PR.JTOT_OBJECT1_CODE = 'OKX_PARTY'
9210                         AND PR.RLE_CODE not in ('VENDOR','MERCHANT'));    ---Modified condition for ER9681794
9211 
9212     Lx_Party_Id                 CONSTANT Gx_OKS_Id := P_Party_Id;
9213     Lx_CovLevel_Items           GT_ContItem_Ref;
9214     Lx_CovLevel_SortItems       GT_ContItem_Ref;
9215     Lx_CovLevel_DeDupItems      GT_ContItem_Ref;
9216 
9217     Lx_CovLvlOth_DeDupItems     GT_ContItem_Ref;
9218     Lx_CovLvlItem_DeDupItems    GT_ContItem_Ref;
9219 
9220     Lx_CovLevel_Obj_Id1         Gx_OKS_Id ;
9221     Lv_CovLevel_Obj_Id2         VARCHAR2(200) ;
9222     Lx_CovLevel_Obj_Code        Gx_JTOT_ObjCode ;
9223 
9224     Lx_CovLevel_Contracts       GT_Contract_Ref;
9225 
9226     Lx_Result                   Gx_Boolean;
9227     Lx_Return_Status            Gx_Ret_Sts;
9228 
9229     Li_TableIdx                 BINARY_INTEGER;
9230     Li_TabIdx_DeDup             BINARY_INTEGER;
9231 
9232     j                           number;
9233     k                           number;
9234 
9235     L_EXCEP_UNEXPECTED_ERR      EXCEPTION;
9236 
9237   BEGIN
9238 
9239     Lx_CovLevel_Items           := P_CovLevel_Items;
9240 
9241     Lx_Result                   := G_TRUE;
9242     Lx_Return_Status            := G_RET_STS_SUCCESS;
9243 
9244     Li_TableIdx                 := 0;
9245     j                           := 0;
9246     k                           := 0;
9247 
9248     Sort_Asc_ContItem_PlSql_Table
9249       (P_Input_Tab          => Lx_CovLevel_Items
9250       ,X_Output_Tab         => Lx_CovLevel_SortItems
9251       ,X_Result             => Lx_Result
9252       ,X_Return_Status      => Lx_Return_Status);
9253 
9254     IF Lx_Result <> G_TRUE THEN
9255       RAISE L_EXCEP_UNEXPECTED_ERR;
9256     END IF;
9257 
9258     Dedup_ContItem_PlSql_Table
9259       (P_Input_Tab          => Lx_CovLevel_SortItems
9260       ,X_Output_Tab         => Lx_CovLevel_DeDupItems
9261       ,X_Result             => Lx_Result
9262       ,X_Return_Status      => Lx_Return_Status);
9263 
9264     IF Lx_Result <> G_TRUE THEN
9265       RAISE L_EXCEP_UNEXPECTED_ERR;
9266     END IF;
9267 
9268   -- added due to bug 3045667
9269 --    IF Lx_CovLevel_DeDupItems.COUNT > 0 THEN  -- fixed dated july 30, 2003
9270 --     FOR i in Lx_CovLevel_DeDupItems.first..Lx_CovLevel_DeDupItems.last LOOP
9271 
9272      Li_TabIdx_DeDup        := Lx_CovLevel_DeDupItems.FIRST;
9273      Li_TableIdx            := 0; --NVL(Lx_CovLevel_Contracts.FIRST,0);
9274 
9275      WHILE Li_TabIdx_DeDup IS NOT NULL  LOOP
9276 
9277 	  Li_TableIdx	:= Li_TableIdx + 1;
9278 
9279         IF Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode = 'OKX_COVITEM' THEN
9280             Lx_CovLvlItem_DeDupItems(Li_TableIdx).Rx_Obj1Id1  := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
9281             Lx_CovLvlItem_DeDupItems(Li_TableIdx).Rx_Obj1Id2  := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
9282             Lx_CovLvlItem_DeDupItems(Li_TableIdx).Rx_ObjCode  := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
9283         ELSE
9284             Lx_CovLvlOth_DeDupItems(Li_TableIdx).Rx_Obj1Id1  := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
9285             Lx_CovLvlOth_DeDupItems(Li_TableIdx).Rx_Obj1Id2  := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
9286             Lx_CovLvlOth_DeDupItems(Li_TableIdx).Rx_ObjCode  := Lx_CovLevel_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
9287         END IF;
9288 
9289         Li_TabIdx_DeDup  := Lx_CovLevel_DeDupItems.NEXT(Li_TabIdx_DeDup);
9290 
9291 	END LOOP;
9292 
9293 --     END LOOP;
9294 --    END IF;
9295 
9296     IF Lx_CovLvlOth_DeDupItems.count > 0 THEN -- bug 3045667
9297 
9298      Li_TabIdx_DeDup        := Lx_CovLvlOth_DeDupItems.FIRST;
9299      Li_TableIdx            := 0; --NVL(Lx_CovLevel_Contracts.FIRST,0);
9300 
9301      WHILE Li_TabIdx_DeDup IS NOT NULL  LOOP
9302 
9303       Lx_CovLevel_Obj_Id1  := Lx_CovLvlOth_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
9304       Lv_CovLevel_Obj_Id2  := Lx_CovLvlOth_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
9305       Lx_CovLevel_Obj_Code := Lx_CovLvlOth_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
9306 
9307       FOR Idx IN Lx_Csr_CovLvlOthr_Contracts(Lx_CovLevel_Obj_Id1,Lv_CovLevel_Obj_Id2,Lx_CovLevel_Obj_Code) LOOP
9308 
9309         Li_TableIdx   := Li_TableIdx + 1;
9310         Lx_CovLevel_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
9311         Lx_CovLevel_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Cle_Id;
9312 
9313         IF Lx_CovLevel_Obj_Code = 'OKX_COVITEM' THEN
9314           Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := Lx_Party_Id;
9315         ELSE
9316           Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9317         END IF;
9318 
9319       END LOOP;
9320 
9321       Li_TabIdx_DeDup  := Lx_CovLvlOth_DeDupItems.NEXT(Li_TabIdx_DeDup);
9322 
9323      END LOOP;
9324 
9325     END IF;
9326 
9327     IF Lx_CovLvlItem_DeDupItems.count > 0 THEN
9328 
9329      Li_TabIdx_DeDup        := Lx_CovLvlItem_DeDupItems.FIRST;
9330      Li_TableIdx            := nvl(Li_TableIdx,0); --NVL(Lx_covLevel_Contracts.LAST,0);
9331 
9332      WHILE Li_TabIdx_DeDup IS NOT NULL  LOOP
9333 
9334       Lx_CovLevel_Obj_Id1  := Lx_CovLvlItem_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id1;
9335       Lv_CovLevel_Obj_Id2  := Lx_CovLvlItem_DeDupItems(Li_TabIdx_DeDup).Rx_Obj1Id2;
9336       Lx_CovLevel_Obj_Code := Lx_CovLvlItem_DeDupItems(Li_TabIdx_DeDup).Rx_ObjCode;
9337 
9338  /*added for ER9681794*/
9339 
9340      IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N') ='Y' then
9341 
9342       FOR Idx IN Lx_Csr_CovLvlItem_Contracts1(Lx_CovLevel_Obj_Id1,Lv_CovLevel_Obj_Id2,Lx_CovLevel_Obj_Code) LOOP
9343 
9344         Li_TableIdx   := Li_TableIdx + 1;
9345         Lx_CovLevel_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
9346         Lx_CovLevel_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Cle_Id;
9347 
9348         IF Lx_CovLevel_Obj_Code = 'OKX_COVITEM' THEN
9349           Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := Lx_Party_Id;
9350         ELSE
9351           Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9352         END IF;
9353 
9354       END LOOP;
9355 
9356       ELSE
9357 
9358         /*added for ER9681794*/
9359 
9360         FOR Idx IN Lx_Csr_CovLvlItem_Contracts(Lx_CovLevel_Obj_Id1,Lv_CovLevel_Obj_Id2,Lx_CovLevel_Obj_Code) LOOP
9361 
9362         Li_TableIdx   := Li_TableIdx + 1;
9363         Lx_CovLevel_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
9364         Lx_CovLevel_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Cle_Id;
9365 
9366         IF Lx_CovLevel_Obj_Code = 'OKX_COVITEM' THEN
9367           Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := Lx_Party_Id;
9368         ELSE
9369           Lx_CovLevel_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9370         END IF;
9371 
9372       END LOOP;
9373 
9374       END IF;    /*added for ER9681794*/
9375 
9376       Li_TabIdx_DeDup  := Lx_CovLvlItem_DeDupItems.NEXT(Li_TabIdx_DeDup);
9377 
9378      END LOOP;
9379 
9380     END IF;
9381 
9382 
9383     X_CovLevel_Contracts  := Lx_CovLevel_Contracts;
9384     X_Result              := Lx_Result;
9385     X_Return_Status       := Lx_Return_Status;
9386 
9387   EXCEPTION
9388 
9389     WHEN L_EXCEP_UNEXPECTED_ERR THEN
9390 
9391       X_Result              := Lx_Result;
9392       X_Return_Status       := Lx_Return_Status;
9393 
9394     WHEN OTHERS THEN
9395 
9396       OKC_API.SET_MESSAGE
9397         (P_App_Name	  => G_APP_NAME_OKC
9398 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
9399 	,P_Token1	  => G_SQLCODE_TOKEN
9400 	,P_Token1_Value	  => SQLCODE
9401 	,P_Token2	  => G_SQLERRM_TOKEN
9402 	,P_Token2_Value   => SQLERRM);
9403 
9404       OKC_API.SET_MESSAGE
9405         (P_App_Name	  => G_APP_NAME_OKC
9406 	,P_Msg_Name	  => G_DEBUG_TOKEN
9407 	,P_Token1	  => G_PACKAGE_TOKEN
9408 	,P_Token1_Value	  => G_PKG_NAME
9409 	,P_Token2	  => G_PROGRAM_TOKEN
9410 	,P_Token2_Value   => 'Get_CovLevel_Contracts');
9411 
9412       X_Result         := G_FALSE;
9413       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
9414 
9415   END Get_CovLevel_Contracts;
9416 
9417 -----------------------------------------------------------------------------------------------------------------------*
9418 
9419   PROCEDURE Get_CovProd_Contracts
9420     (P_CovProd_Obj_Id         IN  Gx_OKS_Id
9421     ,P_Organization_Id        IN  NUMBER
9422     ,P_Org_Id                 IN  NUMBER
9423     ,X_CovProd_Contracts      out nocopy GT_Contract_Ref
9424     ,X_Result                 out nocopy Gx_Boolean
9425     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
9426   IS
9427 
9428     Lx_CovProd_Obj_Id         CONSTANT Gx_OKS_Id := P_CovProd_Obj_Id;
9429     Ln_Organization_Id        CONSTANT NUMBER := P_Organization_Id;
9430     Ln_Org_Id                 CONSTANT NUMBER := P_Org_Id;
9431 
9432     Lx_Party_Id               Okx_Customer_Accounts_V.Party_Id%TYPE;
9433 
9434     Lx_Product_CovLevels      GT_ContItem_Ref;
9435     Lx_CovProd_Contracts      GT_Contract_Ref;
9436 
9437     Lx_Result                 Gx_Boolean;
9438     Lx_Return_Status          Gx_Ret_Sts;
9439 
9440     L_EXCEP_UNEXPECTED_ERR    EXCEPTION;
9441 
9442   BEGIN
9443 
9444     Lx_Result                 := G_TRUE;
9445     Lx_Return_Status          := G_RET_STS_SUCCESS;
9446 
9447     Get_Product_CovLevels
9448       (P_CovProd_Obj_Id      => Lx_CovProd_Obj_Id
9449       ,P_Organization_Id     => Ln_Organization_Id
9450       ,P_Org_Id              => Ln_Org_Id
9451       ,X_Party_Id            => Lx_Party_Id
9452       ,X_Product_CovLevels   => Lx_Product_CovLevels
9453       ,X_Result              => Lx_Result
9454       ,X_Return_Status       => Lx_Return_Status);
9455 
9456     IF Lx_Result <> G_TRUE THEN
9457       RAISE L_EXCEP_UNEXPECTED_ERR;
9458     END IF;
9459 
9460     Get_CovLevel_Contracts
9461       (P_CovLevel_Items      => Lx_Product_CovLevels
9462       ,P_Party_Id            => Lx_Party_Id
9463       ,X_CovLevel_Contracts  => Lx_CovProd_Contracts
9464       ,X_Result              => Lx_Result
9465       ,X_Return_Status       => Lx_Return_Status);
9466 
9467     IF Lx_Result <> G_TRUE THEN
9468       RAISE L_EXCEP_UNEXPECTED_ERR;
9469     END IF;
9470 
9471     X_CovProd_Contracts   := Lx_CovProd_Contracts;
9472     X_Result              := Lx_Result;
9473     X_Return_Status       := Lx_Return_Status;
9474 
9475   EXCEPTION
9476 
9477     WHEN L_EXCEP_UNEXPECTED_ERR THEN
9478 
9479       X_Result            := Lx_Result;
9480       X_Return_Status     := Lx_Return_Status;
9481 
9482     WHEN OTHERS THEN
9483 
9484       OKC_API.SET_MESSAGE
9485         (P_App_Name	  => G_APP_NAME_OKC
9486 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
9487 	,P_Token1	  => G_SQLCODE_TOKEN
9488 	,P_Token1_Value	  => SQLCODE
9489 	,P_Token2	  => G_SQLERRM_TOKEN
9490 	,P_Token2_Value   => SQLERRM);
9491 
9492       OKC_API.SET_MESSAGE
9493         (P_App_Name	  => G_APP_NAME_OKC
9494 	,P_Msg_Name	  => G_DEBUG_TOKEN
9495 	,P_Token1	  => G_PACKAGE_TOKEN
9496 	,P_Token1_Value	  => G_PKG_NAME
9497 	,P_Token2	  => G_PROGRAM_TOKEN
9498 	,P_Token2_Value   => 'Get_CovProd_Contracts');
9499 
9500       X_Result           := G_FALSE;
9501       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
9502 
9503   END Get_CovProd_Contracts;
9504 
9505 -----------------------------------------------------------------------------------------------------------------------*
9506 
9507   PROCEDURE Get_CovItem_Contracts
9508     (P_CovItem_Obj_Id         IN  Gx_OKS_Id
9509     ,P_Organization_Id        IN  NUMBER
9510     ,P_Party_Id               IN  Gx_OKS_Id
9511     ,X_CovItem_Contracts      out nocopy GT_Contract_Ref
9512     ,X_Result                 out nocopy Gx_Boolean
9513     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
9514   IS
9515 
9516     Lx_CovItem_Obj_Id         CONSTANT Gx_OKS_Id := P_CovItem_Obj_Id;
9517     Ln_Organization_Id        CONSTANT NUMBER := P_Organization_Id;
9518     Lx_Party_Id               CONSTANT Gx_OKS_Id := P_Party_Id;
9519 
9520     Lx_Item_CovLevels         GT_ContItem_Ref;
9521     Lx_CovItem_Contracts      GT_Contract_Ref;
9522 
9523     Lx_Result                 Gx_Boolean;
9524     Lx_Return_Status          Gx_Ret_Sts;
9525 
9526     L_EXCEP_UNEXPECTED_ERR    EXCEPTION;
9527 
9528   BEGIN
9529 
9530     Lx_Result                 := G_TRUE;
9531     Lx_Return_Status          := G_RET_STS_SUCCESS;
9532 
9533     Get_Item_CovLevels
9534       (P_CovItem_Obj_Id      => Lx_CovItem_Obj_Id
9535       ,P_Organization_Id     => Ln_Organization_Id
9536       ,X_Item_CovLevels      => Lx_Item_CovLevels
9537       ,X_Result              => Lx_Result
9538       ,X_Return_Status       => Lx_Return_Status);
9539 
9540     IF Lx_Result <> G_TRUE THEN
9541       RAISE L_EXCEP_UNEXPECTED_ERR;
9542     END IF;
9543 
9544     Get_CovLevel_Contracts
9545       (P_CovLevel_Items      => Lx_Item_CovLevels
9546       ,P_Party_Id            => Lx_Party_Id
9547       ,X_CovLevel_Contracts  => Lx_CovItem_Contracts
9548       ,X_Result              => Lx_Result
9549       ,X_Return_Status       => Lx_Return_Status);
9550 
9551     IF Lx_Result <> G_TRUE THEN
9552       RAISE L_EXCEP_UNEXPECTED_ERR;
9553     END IF;
9554 
9555     X_CovItem_Contracts    := Lx_CovItem_Contracts;
9556     X_Result               := Lx_Result;
9557     X_Return_Status        := Lx_Return_Status;
9558 
9559   EXCEPTION
9560 
9561     WHEN L_EXCEP_UNEXPECTED_ERR THEN
9562 
9563       X_Result              := Lx_Result;
9564       X_Return_Status       := Lx_Return_Status;
9565 
9566     WHEN OTHERS THEN
9567 
9568       OKC_API.SET_MESSAGE
9569         (P_App_Name	  => G_APP_NAME_OKC
9570 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
9571 	,P_Token1	  => G_SQLCODE_TOKEN
9572 	,P_Token1_Value	  => SQLCODE
9573 	,P_Token2	  => G_SQLERRM_TOKEN
9574 	,P_Token2_Value   => SQLERRM);
9575 
9576       OKC_API.SET_MESSAGE
9577         (P_App_Name	  => G_APP_NAME_OKC
9578 	,P_Msg_Name	  => G_DEBUG_TOKEN
9579 	,P_Token1	  => G_PACKAGE_TOKEN
9580 	,P_Token1_Value	  => G_PKG_NAME
9581 	,P_Token2	  => G_PROGRAM_TOKEN
9582 	,P_Token2_Value   => 'Get_CovItem_Contracts');
9583 
9584       X_Result         := G_FALSE;
9585       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
9586 
9587   END Get_CovItem_Contracts;
9588 
9589 -----------------------------------------------------------------------------------------------------------------------*
9590 
9591   PROCEDURE Get_CovSys_Contracts
9592     (P_CovSys_Obj_Id          IN  Gx_OKS_Id
9593     ,P_Org_Id                 IN  NUMBER
9594     ,X_CovSys_Contracts       out nocopy GT_Contract_Ref
9595     ,X_Result                 out nocopy Gx_Boolean
9596     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
9597   IS
9598 
9599     Lx_CovSys_Obj_Id          CONSTANT Gx_OKS_Id := P_CovSys_Obj_Id;
9600     Ln_Org_Id                 CONSTANT NUMBER := P_Org_Id;
9601 
9602     Lx_System_CovLevels       GT_ContItem_Ref;
9603     Lx_CovSys_Contracts       GT_Contract_Ref;
9604 
9605     Lx_Result                 Gx_Boolean;
9606     Lx_Return_Status          Gx_Ret_Sts;
9607 
9608     L_EXCEP_UNEXPECTED_ERR    EXCEPTION;
9609 
9610   BEGIN
9611 
9612     Lx_Result                 := G_TRUE;
9613     Lx_Return_Status          := G_RET_STS_SUCCESS;
9614 
9615     Get_System_CovLevels
9616       (P_CovSys_Obj_Id       => Lx_CovSys_Obj_Id
9617       ,P_Org_Id              => Ln_Org_Id
9618       ,X_System_CovLevels    => Lx_System_CovLevels
9619       ,X_Result              => Lx_Result
9620       ,X_Return_Status       => Lx_Return_Status );
9621 
9622     IF Lx_Result <> G_TRUE THEN
9623       RAISE L_EXCEP_UNEXPECTED_ERR;
9624     END IF;
9625 
9626     Get_CovLevel_Contracts
9627       (P_CovLevel_Items      => Lx_System_CovLevels
9628       ,P_Party_Id            => NULL
9629       ,X_CovLevel_Contracts  => Lx_CovSys_Contracts
9630       ,X_Result              => Lx_Result
9631       ,X_Return_Status       => Lx_Return_Status);
9632 
9633     IF Lx_Result <> G_TRUE THEN
9634       RAISE L_EXCEP_UNEXPECTED_ERR;
9635     END IF;
9636 
9637     X_CovSys_Contracts    := Lx_CovSys_Contracts;
9638     X_Result              := Lx_Result;
9639     X_Return_Status       := Lx_Return_Status;
9640 
9641   EXCEPTION
9642 
9643     WHEN L_EXCEP_UNEXPECTED_ERR THEN
9644 
9645       X_Result              := Lx_Result;
9646       X_Return_Status       := Lx_Return_Status;
9647 
9648     WHEN OTHERS THEN
9649 
9650       OKC_API.SET_MESSAGE
9651         (P_App_Name	  => G_APP_NAME_OKC
9652 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
9653 	,P_Token1	  => G_SQLCODE_TOKEN
9654 	,P_Token1_Value	  => SQLCODE
9655 	,P_Token2	  => G_SQLERRM_TOKEN
9656 	,P_Token2_Value   => SQLERRM);
9657 
9658       OKC_API.SET_MESSAGE
9659         (P_App_Name	  => G_APP_NAME_OKC
9660 	,P_Msg_Name	  => G_DEBUG_TOKEN
9661 	,P_Token1	  => G_PACKAGE_TOKEN
9662 	,P_Token1_Value	  => G_PKG_NAME
9663 	,P_Token2	  => G_PROGRAM_TOKEN
9664 	,P_Token2_Value   => 'Get_CovSys_Contracts');
9665 
9666       X_Result         := G_FALSE;
9667       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
9668 
9669   END Get_CovSys_Contracts;
9670 
9671 -----------------------------------------------------------------------------------------------------------------------*
9672 
9673   PROCEDURE Get_CovSite_Contracts
9674     (P_CovSite_Obj_Id         IN  Gx_OKS_Id
9675     ,P_Org_Id                 IN  NUMBER
9676     ,X_CovSite_Contracts      out nocopy GT_Contract_Ref
9677     ,X_Result                 out nocopy Gx_Boolean
9678     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
9679   IS
9680 
9681     Lx_CovSite_Obj_Id         CONSTANT Gx_OKS_Id := P_CovSite_Obj_Id;
9682     Ln_Org_Id                 CONSTANT NUMBER := P_Org_Id;
9683 
9684     Lx_Site_CovLevels         GT_ContItem_Ref;
9685     Lx_CovSite_Contracts      GT_Contract_Ref;
9686 
9687     Lx_Result                 Gx_Boolean;
9688     Lx_Return_Status          Gx_Ret_Sts;
9689 
9690     L_EXCEP_UNEXPECTED_ERR    EXCEPTION;
9691 
9692   BEGIN
9693 
9694     Lx_Result                 := G_TRUE;
9695     Lx_Return_Status          := G_RET_STS_SUCCESS;
9696 
9697     Get_Site_CovLevels
9698       (P_CovSite_Obj_Id      => Lx_CovSite_Obj_Id
9699       ,P_Org_Id              => Ln_Org_Id
9700       ,X_Site_CovLevels      => Lx_Site_CovLevels
9701       ,X_Result              => Lx_Result
9702       ,X_Return_Status       => Lx_Return_Status );
9703 
9704     IF Lx_Result <> G_TRUE THEN
9705       RAISE L_EXCEP_UNEXPECTED_ERR;
9706     END IF;
9707 
9708     Get_CovLevel_Contracts
9709       (P_CovLevel_Items      => Lx_Site_CovLevels
9710       ,P_Party_Id            => NULL
9711       ,X_CovLevel_Contracts  => Lx_CovSite_Contracts
9712       ,X_Result              => Lx_Result
9713       ,X_Return_Status       => Lx_Return_Status);
9714 
9715     IF Lx_Result <> G_TRUE THEN
9716       RAISE L_EXCEP_UNEXPECTED_ERR;
9717     END IF;
9718 
9719     X_CovSite_Contracts   := Lx_CovSite_Contracts;
9720     X_Result              := Lx_Result;
9721     X_Return_Status       := Lx_Return_Status;
9722 
9723   EXCEPTION
9724 
9725     WHEN L_EXCEP_UNEXPECTED_ERR THEN
9726 
9727       X_Result            := Lx_Result;
9728       X_Return_Status     := Lx_Return_Status;
9729 
9730     WHEN OTHERS THEN
9731 
9732       OKC_API.SET_MESSAGE
9733         (P_App_Name	  => G_APP_NAME_OKC
9734 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
9735 	,P_Token1	  => G_SQLCODE_TOKEN
9736 	,P_Token1_Value	  => SQLCODE
9737 	,P_Token2	  => G_SQLERRM_TOKEN
9738 	,P_Token2_Value   => SQLERRM);
9739 
9740       OKC_API.SET_MESSAGE
9741         (P_App_Name	  => G_APP_NAME_OKC
9742 	,P_Msg_Name	  => G_DEBUG_TOKEN
9743 	,P_Token1	  => G_PACKAGE_TOKEN
9744 	,P_Token1_Value	  => G_PKG_NAME
9745 	,P_Token2	  => G_PROGRAM_TOKEN
9746 	,P_Token2_Value   => 'Get_CovSite_Contracts');
9747 
9748       X_Result           := G_FALSE;
9749       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
9750 
9751   END Get_CovSite_Contracts;
9752 
9753 -----------------------------------------------------------------------------------------------------------------------*
9754 
9755   PROCEDURE Get_CovCust_Contracts
9756     (P_CovCust_Obj_Id         IN  Gx_OKS_Id
9757     ,X_CovCust_Contracts      out nocopy GT_Contract_Ref
9758     ,X_Result                 out nocopy Gx_Boolean
9759     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
9760   IS
9761 
9762     Lx_CovCust_Obj_Id         CONSTANT Gx_OKS_Id := P_CovCust_Obj_Id;
9763 
9764     Lx_Cust_CovLevels         GT_ContItem_Ref;
9765     Lx_CovCust_Contracts      GT_Contract_Ref;
9766 
9767     Lx_Party_Id               Okx_Customer_Accounts_V.Party_Id%TYPE;
9768 
9769     Lx_Result                 Gx_Boolean;
9770     Lx_Return_Status          Gx_Ret_Sts;
9771 
9772     L_EXCEP_UNEXPECTED_ERR    EXCEPTION;
9773 
9774   BEGIN
9775 
9776     Lx_Result                 := G_TRUE;
9777     Lx_Return_Status          := G_RET_STS_SUCCESS;
9778 
9779     Get_Customer_CovLevels
9780       (P_CovCust_Obj_Id      => Lx_CovCust_Obj_Id
9781       ,X_Party_Id            => Lx_Party_Id
9782       ,X_Customer_CovLevels  => Lx_Cust_CovLevels
9783       ,X_Result              => Lx_Result
9784       ,X_Return_Status       => Lx_Return_Status );
9785 
9786     IF Lx_Result <> G_TRUE THEN
9787       RAISE L_EXCEP_UNEXPECTED_ERR;
9788     END IF;
9789 
9790     Get_CovLevel_Contracts
9791       (P_CovLevel_Items      => Lx_Cust_CovLevels
9792       ,P_Party_Id            => NULL
9793       ,X_CovLevel_Contracts  => Lx_CovCust_Contracts
9794       ,X_Result              => Lx_Result
9795       ,X_Return_Status       => Lx_Return_Status);
9796 
9797     IF Lx_Result <> G_TRUE THEN
9798       RAISE L_EXCEP_UNEXPECTED_ERR;
9799     END IF;
9800 
9801     X_CovCust_Contracts    := Lx_CovCust_Contracts;
9802     X_Result               := Lx_Result;
9803     X_Return_Status        := Lx_Return_Status;
9804 
9805   EXCEPTION
9806 
9807     WHEN L_EXCEP_UNEXPECTED_ERR THEN
9808 
9809       X_Result              := Lx_Result;
9810       X_Return_Status       := Lx_Return_Status;
9811 
9812     WHEN OTHERS THEN
9813 
9814       OKC_API.SET_MESSAGE
9815         (P_App_Name	  => G_APP_NAME_OKC
9816 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
9817 	,P_Token1	  => G_SQLCODE_TOKEN
9818 	,P_Token1_Value	  => SQLCODE
9819 	,P_Token2	  => G_SQLERRM_TOKEN
9820 	,P_Token2_Value   => SQLERRM);
9821 
9822       OKC_API.SET_MESSAGE
9823         (P_App_Name	  => G_APP_NAME_OKC
9824 	,P_Msg_Name	  => G_DEBUG_TOKEN
9825 	,P_Token1	  => G_PACKAGE_TOKEN
9826 	,P_Token1_Value	  => G_PKG_NAME
9827 	,P_Token2	  => G_PROGRAM_TOKEN
9828 	,P_Token2_Value   => 'Get_CovCust_Contracts');
9829 
9830       X_Result             := G_FALSE;
9831       X_Return_Status      := G_RET_STS_UNEXP_ERROR;
9832 
9833   END Get_CovCust_Contracts;
9834 
9835 -----------------------------------------------------------------------------------------------------------------------*
9836 
9837   PROCEDURE Get_CovParty_Contracts
9838     (P_CovParty_Obj_Id        IN  Gx_OKS_Id
9839     ,X_CovParty_Contracts     out nocopy GT_Contract_Ref
9840     ,X_Result                 out nocopy Gx_Boolean
9841     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
9842   IS
9843 
9844     Lx_CovParty_Obj_Id        CONSTANT Gx_OKS_Id := P_CovParty_Obj_Id;
9845 
9846     Lx_Party_CovLevels        GT_ContItem_Ref;
9847     Lx_CovParty_Contracts     GT_Contract_Ref;
9848 
9849     Lx_Result                 Gx_Boolean;
9850     Lx_Return_Status          Gx_Ret_Sts;
9851 
9852     L_EXCEP_UNEXPECTED_ERR    EXCEPTION;
9853 
9854   BEGIN
9855 
9856     Lx_Result                 := G_TRUE;
9857     Lx_Return_Status          := G_RET_STS_SUCCESS;
9858 
9859     Get_Party_CovLevels
9860       (P_CovParty_Obj_Id     => Lx_CovParty_Obj_Id
9861       ,X_Party_CovLevels     => Lx_Party_CovLevels
9862       ,X_Result              => Lx_Result
9863       ,X_Return_Status       => Lx_Return_Status );
9864 
9865     IF Lx_Result <> G_TRUE THEN
9866       RAISE L_EXCEP_UNEXPECTED_ERR;
9867     END IF;
9868 
9869     Get_CovLevel_Contracts
9870       (P_CovLevel_Items      => Lx_Party_CovLevels
9871       ,P_Party_Id            => NULL
9872       ,X_CovLevel_Contracts  => Lx_CovParty_Contracts
9873       ,X_Result              => Lx_Result
9874       ,X_Return_Status       => Lx_Return_Status);
9875 
9876     IF Lx_Result <> G_TRUE THEN
9877       RAISE L_EXCEP_UNEXPECTED_ERR;
9878     END IF;
9879 
9880     X_CovParty_Contracts  := Lx_CovParty_Contracts;
9881     X_Result              := Lx_Result;
9882     X_Return_Status       := Lx_Return_Status;
9883 
9884   EXCEPTION
9885 
9886     WHEN L_EXCEP_UNEXPECTED_ERR THEN
9887 
9888       X_Result            := Lx_Result;
9889       X_Return_Status     := Lx_Return_Status;
9890 
9891     WHEN OTHERS THEN
9892 
9893       OKC_API.SET_MESSAGE
9894         (P_App_Name	  => G_APP_NAME_OKC
9895 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
9896 	,P_Token1	  => G_SQLCODE_TOKEN
9897 	,P_Token1_Value	  => SQLCODE
9898 	,P_Token2	  => G_SQLERRM_TOKEN
9899 	,P_Token2_Value   => SQLERRM);
9900 
9901       OKC_API.SET_MESSAGE
9902         (P_App_Name	  => G_APP_NAME_OKC
9903 	,P_Msg_Name	  => G_DEBUG_TOKEN
9904 	,P_Token1	  => G_PACKAGE_TOKEN
9905 	,P_Token1_Value	  => G_PKG_NAME
9906 	,P_Token2	  => G_PROGRAM_TOKEN
9907 	,P_Token2_Value   => 'Get_CovParty_Contracts');
9908 
9909       X_Result          := G_FALSE;
9910       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
9911 
9912   END Get_CovParty_Contracts;
9913 
9914 -----------------------------------------------------------------------------------------------------------------------*
9915 
9916   PROCEDURE Get_CovLvlLine_Contracts
9917     (P_CovLvlLine_Id          IN  Gx_OKS_Id
9918     ,X_Contracts              out nocopy GT_Contract_Ref
9919     ,X_Result                 out nocopy Gx_Boolean
9920     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
9921   IS
9922 
9923     CURSOR Lx_Csr_Contracts(Cx_CovLvlLine_Id IN Gx_OKS_Id) IS
9924       SELECT Dnz_Chr_Id, Id
9925         FROM Okc_K_Lines_B
9926        WHERE Id = Cx_CovLvlLine_Id
9927          AND Lse_Id In (7,8,9,10,11,35,18,25);
9928 
9929     Lx_CovLvlLine_Id         CONSTANT Gx_OKS_Id := P_CovLvlLine_Id;
9930 
9931     Lx_Contracts             GT_Contract_Ref;
9932     Li_TableIdx              BINARY_INTEGER;
9933 
9934     Lx_Result                 Gx_Boolean;
9935     Lx_Return_Status          Gx_Ret_Sts;
9936 
9937   BEGIN
9938 
9939     Lx_Result                 := G_TRUE;
9940     Lx_Return_Status          := G_RET_STS_SUCCESS;
9941 
9942     Li_TableIdx          := 0;
9943 
9944     FOR Idx IN Lx_Csr_Contracts(Lx_CovLvlLine_Id) LOOP
9945 
9946       Li_TableIdx  := Li_TableIdx + 1;
9947       Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
9948       Lx_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Id;
9949       Lx_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
9950 
9951     END LOOP;
9952 
9953     X_Contracts          := Lx_Contracts;
9954     X_Result             := Lx_Result;
9955     X_Return_Status      := Lx_Return_Status;
9956 
9957   EXCEPTION
9958 
9959     WHEN OTHERS THEN
9960 
9961       OKC_API.SET_MESSAGE
9962         (P_App_Name	  => G_APP_NAME_OKC
9963 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
9964 	,P_Token1	  => G_SQLCODE_TOKEN
9965 	,P_Token1_Value	  => SQLCODE
9966 	,P_Token2	  => G_SQLERRM_TOKEN
9967 	,P_Token2_Value   => SQLERRM);
9968 
9969       OKC_API.SET_MESSAGE
9970         (P_App_Name	  => G_APP_NAME_OKC
9971 	,P_Msg_Name	  => G_DEBUG_TOKEN
9972 	,P_Token1	  => G_PACKAGE_TOKEN
9973 	,P_Token1_Value	  => G_PKG_NAME
9974 	,P_Token2	  => G_PROGRAM_TOKEN
9975 	,P_Token2_Value   => 'Get_CovLvlLine_Contracts');
9976 
9977       X_Result          := G_FALSE;
9978       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
9979 
9980   END Get_CovLvlLine_Contracts;
9981 
9982 -----------------------------------------------------------------------------------------------------------------------*
9983 
9984   PROCEDURE Get_SrvLine_Contracts
9985     (P_SrvLine_Id             IN  Gx_OKS_Id
9986     ,X_Contracts              out nocopy GT_Contract_Ref
9987     ,X_Result                 out nocopy Gx_Boolean
9988     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
9989   IS
9990 
9991     CURSOR Lx_Csr_Contracts(Cx_SrvLine_Id IN Gx_OKS_Id) IS
9992       SELECT Dnz_Chr_Id, Id
9993         FROM Okc_K_Lines_B
9994        WHERE Id = Cx_SrvLine_Id
9995          AND Lse_Id In (1,14,19);
9996 
9997     Lx_SrvLine_Id            CONSTANT Gx_OKS_Id := P_SrvLine_Id;
9998     Lx_Contracts             GT_Contract_Ref;
9999     Li_TableIdx              BINARY_INTEGER;
10000 
10001     Lx_Result                 Gx_Boolean;
10002     Lx_Return_Status          Gx_Ret_Sts;
10003 
10004   BEGIN
10005 
10006     Lx_Result                 := G_TRUE;
10007     Lx_Return_Status          := G_RET_STS_SUCCESS;
10008 
10009     Li_TableIdx          := 0;
10010 
10011     FOR Idx IN Lx_Csr_Contracts(Lx_SrvLine_Id) LOOP
10012 
10013       Li_TableIdx  := Li_TableIdx + 1;
10014       Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Dnz_Chr_Id;
10015       Lx_Contracts(Li_TableIdx).Rx_Cle_Id := Idx.Id;
10016       Lx_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
10017 
10018     END LOOP;
10019 
10020     X_Contracts          := Lx_Contracts;
10021     X_Result             := Lx_Result;
10022     X_Return_Status      := Lx_Return_Status;
10023 
10024   EXCEPTION
10025 
10026     WHEN OTHERS THEN
10027 
10028       OKC_API.SET_MESSAGE
10029         (P_App_Name	  => G_APP_NAME_OKC
10030 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
10031 	,P_Token1	  => G_SQLCODE_TOKEN
10032 	,P_Token1_Value	  => SQLCODE
10033 	,P_Token2	  => G_SQLERRM_TOKEN
10034 	,P_Token2_Value   => SQLERRM);
10035 
10036       OKC_API.SET_MESSAGE
10037         (P_App_Name	  => G_APP_NAME_OKC
10038 	,P_Msg_Name	  => G_DEBUG_TOKEN
10039 	,P_Token1	  => G_PACKAGE_TOKEN
10040 	,P_Token1_Value	  => G_PKG_NAME
10041 	,P_Token2	  => G_PROGRAM_TOKEN
10042 	,P_Token2_Value   => 'Get_SrvLine_Contracts');
10043 
10044       X_Result          := G_FALSE;
10045       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
10046 
10047   END Get_SrvLine_Contracts;
10048 
10049 -----------------------------------------------------------------------------------------------------------------------*
10050 
10051   PROCEDURE Get_Contracts_Id
10052     (P_Contract_Num           IN  VARCHAR2
10053     ,P_Contract_Num_Modifier  IN  VARCHAR2
10054     ,X_Contracts              out nocopy GT_Contract_Ref
10055     ,X_Result                 out nocopy Gx_Boolean
10056     ,X_Return_Status   	      out nocopy Gx_Ret_Sts)
10057   IS
10058 
10059 -- cursor modified to fix bug 3041443
10060 
10061     CURSOR Lx_Csr_Contracts(Cv_Contract_Num IN VARCHAR2, Cv_Contract_Num_Modifier IN VARCHAR2) IS
10062       SELECT Id
10063         FROM OKC_K_HEADERS_ALL_B  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
10064        WHERE Contract_Number = Cv_Contract_Num
10065          --AND (Cv_Contract_Num_Modifier IS NULL OR Contract_Number_Modifier = Cv_Contract_Num_Modifier);
10066          --AND nvl(Contract_Number_Modifier,-99) = nvl(Cv_Contract_Num_Modifier,-99)
10067          AND nvl(Contract_Number_Modifier,'#') = nvl(Cv_Contract_Num_Modifier,nvl(Contract_Number_Modifier,'#'));
10068 
10069     Lv_Contract_Num            CONSTANT VARCHAR2(120) := P_Contract_Num;
10070     Lv_Contract_Num_Modifier   CONSTANT VARCHAR2(120) := P_Contract_Num_Modifier;
10071 
10072     Lx_Contracts               GT_Contract_Ref;
10073     Li_TableIdx                BINARY_INTEGER;
10074 
10075     Lx_Result                 Gx_Boolean;
10076     Lx_Return_Status          Gx_Ret_Sts;
10077 
10078   BEGIN
10079 
10080     Lx_Result                 := G_TRUE;
10081     Lx_Return_Status          := G_RET_STS_SUCCESS;
10082 
10083     Li_TableIdx           := 0;
10084 
10085     FOR Idx IN Lx_Csr_Contracts(Lv_Contract_Num, Lv_Contract_Num_Modifier) LOOP
10086 
10087       Li_TableIdx  := Li_TableIdx + 1;
10088       Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
10089       Lx_Contracts(Li_TableIdx).Rx_Cle_Id := NULL;
10090       Lx_Contracts(Li_TableIdx).Rx_Pty_Id := NULL;
10091 
10092     END LOOP;
10093 
10094     X_Contracts          := Lx_Contracts;
10095     X_Result             := Lx_Result;
10096     X_Return_Status      := Lx_Return_Status;
10097 
10098   EXCEPTION
10099 
10100     WHEN OTHERS THEN
10101 
10102       OKC_API.SET_MESSAGE
10103         (P_App_Name	  => G_APP_NAME_OKC
10104 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
10105 	,P_Token1	  => G_SQLCODE_TOKEN
10106 	,P_Token1_Value	  => SQLCODE
10107 	,P_Token2	  => G_SQLERRM_TOKEN
10108 	,P_Token2_Value   => SQLERRM);
10109 
10110       OKC_API.SET_MESSAGE
10111         (P_App_Name	  => G_APP_NAME_OKC
10112 	,P_Msg_Name	  => G_DEBUG_TOKEN
10113 	,P_Token1	  => G_PACKAGE_TOKEN
10114 	,P_Token1_Value	  => G_PKG_NAME
10115 	,P_Token2	  => G_PROGRAM_TOKEN
10116 	,P_Token2_Value   => 'Get_Contracts_Id');
10117 
10118       X_Result            := G_FALSE;
10119       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
10120 
10121   END Get_Contracts_Id;
10122 
10123 -----------------------------------------------------------------------------------------------------------------------*
10124 
10125   PROCEDURE Get_Service_Line_Details
10126     (P_SrvLine_Id       IN  Gx_OKS_Id
10127     ,P_Organization_Id  IN  NUMBER
10128     ,X_Name             out nocopy VARCHAR2
10129     ,X_Description      out nocopy VARCHAR2
10130     ,X_Start_Date       out nocopy DATE
10131     ,X_End_Date         out nocopy DATE
10132     ,X_Date_Terminated  out nocopy DATE
10133     ,X_Eff_End_Date     out nocopy DATE
10134     ,X_Result           out nocopy Gx_Boolean
10135     ,X_Return_Status   	out nocopy Gx_Ret_Sts)
10136   IS
10137 
10138     CURSOR Lx_Csr_SrvItem (Cx_SrvLine_Id In Gx_OKS_Id, Cn_Organization_Id IN NUMBER) IS
10139       SELECT XI.Name
10140             ,XI.Description
10141             ,SV.Start_Date
10142             ,Get_End_Date_Time(SV.End_Date) End_Date
10143             ,Get_End_Date_Time(SV.Date_Terminated) Date_Terminated
10144         FROM Okx_System_Items_V XI
10145             ,Okc_K_Items IT
10146             ,Okc_K_Lines_B SV
10147        WHERE SV.Id = Cx_SrvLine_Id
10148          AND SV.Lse_Id IN (1,14,19)
10149          AND IT.Cle_Id = SV.Id
10150    --    AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
10151          AND XI.Id1 = IT.Object1_Id1
10152          AND XI.Id2 = IT.Object1_Id2
10153          AND XI.Service_Item_Flag = 'Y'
10154          AND XI.Organization_Id = Cn_Organization_Id;
10155 
10156     Lx_SrvLine_Id            CONSTANT Gx_OKS_Id := P_SrvLine_Id;
10157     Ln_Organization_Id       CONSTANT NUMBER := P_Organization_Id;
10158     Lv_Name                  Okx_System_Items_V.Name%TYPE;         --VARCHAR2(240);
10159     Lv_Description           Okx_System_Items_V.Description%TYPE;  --VARCHAR2(40);
10160     Ld_Start_Date            DATE;
10161     Ld_End_Date              DATE;
10162     Ld_Date_Terminated       DATE;
10163     Ld_Eff_End_Date          DATE;
10164 
10165     Lx_Result                 Gx_Boolean;
10166     Lx_Return_Status          Gx_Ret_Sts;
10167 
10168   BEGIN
10169 
10170     Lx_Result                 := G_TRUE;
10171     Lx_Return_Status          := G_RET_STS_SUCCESS;
10172 
10173     OPEN Lx_Csr_SrvItem (Lx_SrvLine_Id,Ln_Organization_Id);
10174     FETCH Lx_Csr_SrvItem INTO Lv_Name, Lv_Description,Ld_Start_Date,Ld_End_Date,Ld_Date_Terminated;
10175     CLOSE Lx_Csr_SrvItem;
10176 
10177     IF Ld_Date_Terminated < Ld_End_Date THEN
10178       Ld_Eff_End_Date := Ld_Date_Terminated;
10179    -- grace period not allowed for terminated line
10180     ELSE
10181       Ld_Eff_End_Date := Ld_End_Date;
10182 
10183    -- grace period changes starts
10184       IF G_GRACE_PROFILE_SET = 'Y' AND Ld_Date_Terminated IS NULL THEN
10185 -- grace period changes are done only if line end date matches contract end date
10186         IF  trunc(Ld_Eff_End_Date) = trunc(G_CONTRACT_END_DATE) THEN
10187             Ld_Eff_End_Date := Get_Final_End_Date(G_CONTRACT_ID,Ld_Eff_End_Date);
10188         END IF;
10189 
10190       END IF;
10191 -- grace period changes ends
10192 
10193     END IF;
10194 
10195     X_Name               := Lv_Name;
10196     X_Description        := Lv_Description;
10197 
10198     X_Start_Date         := Ld_Start_Date;
10199     X_End_Date           := Ld_End_Date;
10200     X_Date_Terminated    := Ld_Date_Terminated;
10201     X_Eff_End_Date       := Ld_Eff_End_Date;
10202 
10203     X_Result             := Lx_Result;
10204     X_Return_Status      := Lx_Return_Status;
10205 
10206   EXCEPTION
10207 
10208     WHEN OTHERS THEN
10209 
10210       OKC_API.SET_MESSAGE
10211         (P_App_Name	  => G_APP_NAME_OKC
10212 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
10213 	,P_Token1	  => G_SQLCODE_TOKEN
10214 	,P_Token1_Value	  => SQLCODE
10215 	,P_Token2	  => G_SQLERRM_TOKEN
10216 	,P_Token2_Value   => SQLERRM);
10217 
10218       OKC_API.SET_MESSAGE
10219         (P_App_Name	  => G_APP_NAME_OKC
10220 	,P_Msg_Name	  => G_DEBUG_TOKEN
10221 	,P_Token1	  => G_PACKAGE_TOKEN
10222 	,P_Token1_Value	  => G_PKG_NAME
10223 	,P_Token2	  => G_PROGRAM_TOKEN
10224 	,P_Token2_Value   => 'Get_Service_Line_Details');
10225 
10226       X_Result          := G_FALSE;
10227       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
10228 
10229   END Get_Service_Line_Details;
10230 
10231 -----------------------------------------------------------------------------------------------------------------------*
10232 
10233   PROCEDURE Get_Coverage_Line_Details
10234     (P_SrvLine_Id       IN  Gx_OKS_Id
10235     ,P_Organization_Id  IN  NUMBER
10236     ,X_Cov_Id           out nocopy Gx_OKS_Id
10237     ,X_Name             out nocopy VARCHAR2
10238     ,X_Description      out nocopy VARCHAR2
10239     ,X_Start_Date       out nocopy DATE
10240     ,X_End_Date         out nocopy DATE
10241     ,X_Date_Terminated  out nocopy DATE
10242     ,X_Eff_End_Date     out nocopy DATE
10243     ,X_Result           out nocopy Gx_Boolean
10244     ,X_Return_Status   	out nocopy Gx_Ret_Sts)
10245 
10246   IS
10247     --
10248     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
10249     --
10250     --
10251     --CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN  Gx_OKS_Id) IS
10252     --  SELECT Id
10253     --	    ,Name
10254     --	    ,Item_Description
10255     --	    ,Start_Date
10256     --    ,Get_End_Date_Time(End_Date) End_Date
10257     --      ,Get_End_Date_Time(Date_Terminated) Date_Terminated
10258     --   FROM  Okc_K_Lines_V
10259     --  WHERE  Cle_Id = Cx_SrvLine_Id
10260     --    AND  Lse_Id IN (2,15,20);
10261     --
10262     -- Added for 12.0 Coverage Rearch project (JVARGHES)
10263     --
10264     --
10265     CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN  Gx_OKS_Id) IS
10266       SELECT COV.Id
10267 	      ,COV.Name
10268 	      ,COV.Item_Description
10269 	      ,COV.Start_Date
10270 	      ,Get_End_Date_Time(COV.End_Date) End_Date
10271             ,Get_End_Date_Time(COV.Date_Terminated) Date_Terminated
10272             ,KSL.Standard_COV_YN
10273 	      ,SVL.Start_Date
10274 	      ,Get_End_Date_Time(SVL.End_Date) End_Date
10275             ,Get_End_Date_Time(SVL.Date_Terminated) Date_Terminated
10276        FROM  Okc_K_Lines_B SVL
10277             ,Oks_K_Lines_B KSL
10278             ,Okc_K_Lines_V COV
10279       WHERE SVL.Id = Cx_SrvLine_Id
10280         AND SVL.Lse_Id in (1,14,19)
10281         AND KSL.Cle_Id = SVL.Id
10282         AND COV.ID = KSL.Coverage_Id
10283 	  AND COV.Lse_Id IN (2,15,20);
10284     --
10285 
10286     Lx_SrvLine_Id            CONSTANT Gx_OKS_Id := P_SrvLine_Id;
10287     Ln_Organization_Id       CONSTANT NUMBER := P_Organization_Id;
10288     Lx_Cov_Id                Gx_OKS_Id;
10289     Lv_Name                  Okc_K_Lines_V.Name%TYPE;              --VARCHAR2(240);
10290     Lv_Description           Okc_K_Lines_V.Item_Description%TYPE;  --VARCHAR2(1995);
10291     Ld_Start_Date            DATE;
10292     Ld_End_Date              DATE;
10293     Ld_Date_Terminated       DATE;
10294     Ld_Eff_End_Date          DATE;
10295 
10296     Lx_Result                 Gx_Boolean;
10297     Lx_Return_Status          Gx_Ret_Sts;
10298 
10299     -- Added for 12.0 Coverage Rearch project (JVARGHES)
10300 
10301     Lv_Std_Cov_YN              VARCHAR2(10);
10302 
10303     Ld_SVL_Start_Date          DATE;
10304     Ld_SVL_End_Date            DATE;
10305     Ld_SVL_Date_Terminated     DATE;
10306 
10307     --
10308 
10309   BEGIN
10310 
10311     Lx_Result                 := G_TRUE;
10312     Lx_Return_Status          := G_RET_STS_SUCCESS;
10313 
10314     OPEN Lx_Csr_CovItem (Lx_SrvLine_Id);
10315 
10316     --
10317     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
10318     --
10319     -- FETCH Lx_Csr_CovItem INTO Lx_Cov_Id,Lv_Name,Lv_Description
10320     --                         ,Ld_Start_Date,Ld_End_Date,Ld_Date_Terminated;
10321     --
10322     --
10323     FETCH Lx_Csr_CovItem INTO Lx_Cov_Id,Lv_Name,Lv_Description
10324                              ,Ld_Start_Date,Ld_End_Date,Ld_Date_Terminated,Lv_Std_Cov_YN
10325                              ,Ld_SVL_Start_Date,Ld_SVL_End_Date,Ld_SVL_Date_Terminated;
10326 
10327     --
10328     --
10329     CLOSE Lx_Csr_CovItem;
10330 
10331     --
10332     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
10333     --
10334 
10335     IF NVL(Lv_Std_Cov_YN,'*') = 'Y' THEN
10336 
10337       Ld_Start_Date      := Ld_SVL_Start_Date;
10338       Ld_End_Date        := Ld_SVL_End_Date;
10339       Ld_Date_Terminated := Ld_SVL_Date_Terminated;
10340 
10341     END IF;
10342 
10343     --
10344 
10345     IF Ld_Date_Terminated < Ld_End_Date THEN
10346       Ld_Eff_End_Date := Ld_Date_Terminated;
10347 -- grace period changes not allowed for terminated line
10348     ELSE
10349       Ld_Eff_End_Date := Ld_End_Date;
10350 
10351 -- grace period changes starts
10352 
10353       IF G_GRACE_PROFILE_SET = 'Y' AND Ld_Date_Terminated IS NULL THEN
10354 -- grace period changes are done only if line end date matches contract end date
10355 
10356          IF  trunc(Ld_Eff_End_Date) = trunc(G_CONTRACT_END_DATE) THEN
10357              Ld_Eff_End_Date := Get_Final_End_Date(G_CONTRACT_ID,Ld_Eff_End_Date);
10358          END IF;
10359 
10360       END IF;
10361 -- grace period changes ends
10362 
10363     END IF;
10364 
10365     X_Cov_Id             := Lx_Cov_Id;
10366     X_Name               := Lv_Name;
10367     X_Description        := Lv_Description;
10368     X_Start_Date         := Ld_Start_Date;
10369     X_End_Date           := Ld_End_Date;
10370     X_Date_Terminated    := Ld_Date_Terminated;
10371     X_Eff_End_Date       := Ld_Eff_End_Date;
10372 
10373     X_Result             := Lx_Result;
10374     X_Return_Status      := Lx_Return_Status;
10375 
10376   EXCEPTION
10377 
10378     WHEN OTHERS THEN
10379 
10380       OKC_API.SET_MESSAGE
10381         (P_App_Name	  => G_APP_NAME_OKC
10382 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
10383 	,P_Token1	  => G_SQLCODE_TOKEN
10384 	,P_Token1_Value	  => SQLCODE
10385 	,P_Token2	  => G_SQLERRM_TOKEN
10386 	,P_Token2_Value   => SQLERRM);
10387 
10388       OKC_API.SET_MESSAGE
10389         (P_App_Name	  => G_APP_NAME_OKC
10390 	,P_Msg_Name	  => G_DEBUG_TOKEN
10391 	,P_Token1	  => G_PACKAGE_TOKEN
10392 	,P_Token1_Value	  => G_PKG_NAME
10393 	,P_Token2	  => G_PROGRAM_TOKEN
10394 	,P_Token2_Value   => 'Get_Coverage_Line_Details');
10395 
10396       X_Result            := G_FALSE;
10397       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
10398 
10399   END Get_Coverage_Line_Details;
10400 
10401 -----------------------------------------------------------------------------------------------------------------------*
10402 
10403   PROCEDURE Sort_Asc_GetContracts_01
10404     (P_Input_Tab          IN  Ent_Cont_Tbl
10405     ,X_Output_Tab         out nocopy Ent_Cont_Tbl
10406     ,X_Result             out nocopy Gx_Boolean
10407     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)  IS
10408 
10409     Lx_Sort_Tab           Ent_Cont_Tbl;
10410 
10411     Li_TableIdx_Out       BINARY_INTEGER;
10412     Li_TableIdx_In        BINARY_INTEGER;
10413 
10414     Lx_Temp_ContItem      Ent_Cont_Rec;
10415 
10416     Lv_Composit_Val1      VARCHAR2(1000);     --VARCHAR2(600);
10417     Lv_Composit_Val2      VARCHAR2(1000);     --VARCHAR2(600);
10418 
10419     Lx_Result                 Gx_Boolean;
10420     Lx_Return_Status          Gx_Ret_Sts;
10421 
10422   BEGIN
10423 
10424     Lx_Sort_Tab               := P_Input_Tab;
10425     Lx_Result                 := G_TRUE;
10426     Lx_Return_Status          := G_RET_STS_SUCCESS;
10427 
10428     Li_TableIdx_Out  := Lx_Sort_Tab.FIRST;
10429 
10430     WHILE Li_TableIdx_Out IS NOT NULL LOOP
10431 
10432       Li_TableIdx_In  := Li_TableIdx_Out;
10433 
10434       WHILE Li_TableIdx_In IS NOT NULL LOOP
10435 
10436         Lv_Composit_Val1  := RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Contract_Number,120,' ')
10437                               ||RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Service_Name,250,' ')           --150
10438                               ||RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Term_Name,250,' ')     --150
10439                               ||RPAD(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Level,250,' ');        --150
10440 
10441         Lv_Composit_Val2  := RPAD(Lx_Sort_Tab(Li_TableIdx_In).Contract_Number,120,' ')
10442                               ||RPAD(Lx_Sort_Tab(Li_TableIdx_In).Service_Name,250,' ')            --150
10443                               ||RPAD(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Term_Name,250,' ')      --150
10444                               ||RPAD(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Level,250,' ');         --150
10445 
10446         IF Lv_Composit_Val1 > Lv_Composit_Val2 THEN
10447 
10448           Lx_Temp_ContItem              := Lx_Sort_Tab(Li_TableIdx_Out);
10449           Lx_Sort_Tab(Li_TableIdx_Out)  := Lx_Sort_Tab(Li_TableIdx_In);
10450           Lx_Sort_Tab(Li_TableIdx_In)   := Lx_Temp_ContItem;
10451 
10452         END IF;
10453 
10454         Li_TableIdx_In  := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
10455 
10456       END LOOP;
10457 
10458       Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
10459 
10460     END LOOP;
10461 
10462     X_Output_Tab          := Lx_Sort_Tab;
10463     X_Result              := Lx_Result;
10464     X_Return_Status       := Lx_Return_Status;
10465 
10466   EXCEPTION
10467 
10468     WHEN OTHERS THEN
10469 
10470       OKC_API.SET_MESSAGE
10471         (P_App_Name	  => G_APP_NAME_OKC
10472 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
10473 	,P_Token1	  => G_SQLCODE_TOKEN
10474 	,P_Token1_Value	  => SQLCODE
10475 	,P_Token2	  => G_SQLERRM_TOKEN
10476 	,P_Token2_Value   => SQLERRM);
10477 
10478       OKC_API.SET_MESSAGE
10479         (P_App_Name	  => G_APP_NAME_OKC
10480 	,P_Msg_Name	  => G_DEBUG_TOKEN
10481 	,P_Token1	  => G_PACKAGE_TOKEN
10482 	,P_Token1_Value	  => G_PKG_NAME
10483 	,P_Token2	  => G_PROGRAM_TOKEN
10484 	,P_Token2_Value   => 'Sort_Asc_GetContracts_01');
10485 
10486       X_Result           := G_FALSE;
10487       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
10488 
10489   END Sort_Asc_GetContracts_01;
10490 
10491 -----------------------------------------------------------------------------------------------------------------------*
10492 
10493   PROCEDURE Get_Prof_Service_Name_And_Desc
10494     (P_Profile_Value    IN  VARCHAR2
10495     ,P_Db_Srv_Name      IN  VARCHAR2
10496     ,P_Db_Srv_Desc      IN  VARCHAR2
10497     ,X_Prof_Srv_Name    out nocopy VARCHAR2
10498     ,X_Prof_Srv_Desc    out nocopy VARCHAR2
10499     ,X_Result           out nocopy Gx_Boolean
10500     ,X_Return_Status   	out nocopy Gx_Ret_Sts)
10501   IS
10502 
10503     Lv_Prof_Value       CONSTANT VARCHAR2(300) := P_Profile_Value;
10504     Lv_Db_Srv_Name      CONSTANT VARCHAR2(300) := P_Db_Srv_Name;
10505     Lv_Db_Srv_Desc      CONSTANT VARCHAR2(300) := P_Db_Srv_Desc;
10506 
10507     Lv_Prof_Srv_Name    VARCHAR2(300);
10508     Lv_Prof_Srv_Desc    VARCHAR2(300);
10509 
10510     Lx_Result                 Gx_Boolean;
10511     Lx_Return_Status          Gx_Ret_Sts;
10512 
10513   BEGIN
10514 
10515     Lx_Result                 := G_TRUE;
10516     Lx_Return_Status          := G_RET_STS_SUCCESS;
10517 
10518     IF Lv_Prof_Value = 'DISPLAY_NAME' THEN
10519 
10520       Lv_Prof_Srv_Name := Lv_Db_Srv_Name;--Lv_Db_Srv_Desc;-- no swapping to be done anymore
10521       Lv_Prof_Srv_Desc := Lv_Db_Srv_Desc;--Lv_Db_Srv_Name;-- no swapping to be done anymore
10522 
10523     ELSE
10524 
10525       Lv_Prof_Srv_Name := Lv_Db_Srv_Name;
10526       Lv_Prof_Srv_Desc := Lv_Db_Srv_Desc;
10527 
10528     END IF;
10529 
10530     X_Prof_Srv_Name    := Lv_Prof_Srv_Name;
10531     X_Prof_Srv_Desc    := Lv_Prof_Srv_Desc;
10532     X_Result           := Lx_Result;
10533     X_Return_Status    := Lx_Return_Status;
10534 
10535   EXCEPTION
10536 
10537     WHEN OTHERS THEN
10538 
10539       OKC_API.SET_MESSAGE
10540         (P_App_Name	  => G_APP_NAME_OKC
10541 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
10542 	,P_Token1	  => G_SQLCODE_TOKEN
10543 	,P_Token1_Value	  => SQLCODE
10544 	,P_Token2	  => G_SQLERRM_TOKEN
10545 	,P_Token2_Value   => SQLERRM);
10546 
10547       OKC_API.SET_MESSAGE
10548         (P_App_Name	  => G_APP_NAME_OKC
10549 	,P_Msg_Name	  => G_DEBUG_TOKEN
10550 	,P_Token1	  => G_PACKAGE_TOKEN
10551 	,P_Token1_Value	  => G_PKG_NAME
10552 	,P_Token2	  => G_PROGRAM_TOKEN
10553 	,P_Token2_Value   => 'Get_Prof_Service_Name_And_Desc');
10554 
10555       X_Result          := G_FALSE;
10556       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
10557 
10558   END Get_Prof_Service_Name_And_Desc;
10559 
10560 -----------------------------------------------------------------------------------------------------------------------*
10561 
10562   PROCEDURE Get_Contracts_01_Format
10563     (P_Contracts        IN  GT_Contract_Ref
10564     ,P_Request_Date     IN  DATE
10565     ,P_Validate_Flag    IN  VARCHAR2
10566     ,P_Chr_Id_Flag      IN  VARCHAR2             --Bug# 4719510 (JVARGHES)
10567     ,X_Contracts_01     out nocopy Ent_Cont_Tbl
10568     ,X_Result           out nocopy Gx_Boolean
10569     ,X_Return_Status   	out nocopy Gx_Ret_Sts)
10570   IS
10571 
10572     CURSOR Lx_Csr_Contracts(Cx_Chr_Id IN Gx_OKS_Id, Cx_Cle_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
10573                            ,Cx_Lang in VARCHAR2) IS
10574       SELECT HD.Id Contract_Id
10575             ,HD.Contract_Number
10576             ,HD.Contract_Number_Modifier
10577             ,HD.Authoring_Org_Id
10578             ,HD.Inv_Organization_Id
10579             ,HD.End_Date HDR_End_Date --grace period changes
10580 	    ,CL.Cle_Id Service_Line_Id
10581 	    ,CL.Id Coverage_Level_Line_Id
10582             ,SB.Lty_Code Coverage_Level_Code
10583             ,ST.Name Coverage_Level
10584             ,CL.Start_Date
10585 	    ,Get_End_Date_Time(CL.End_Date) End_Date
10586             ,Get_End_Date_Time(CL.Date_Terminated) Date_Terminated
10587 	    ,IT.Object1_Id1 Coverage_Level_Id
10588 	    ,DECODE(SB.Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
10589        FROM  OKC_K_HEADERS_ALL_B HD  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
10590 	    ,Okc_Line_Styles_B SB
10591 	    ,Okc_Line_Styles_TL ST
10592 	    ,Okc_K_Items IT
10593             ,Okc_K_Lines_B CL
10594        WHERE CL.Id = NVL(Cx_Cle_Id, CL.Id)
10595          AND CL.Dnz_Chr_Id = Cx_Chr_Id
10596          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
10597          AND IT.Cle_Id = CL.Id
10598          AND SB.Id = CL.Lse_Id
10599          AND ST.Id = SB.Id
10600          and st.language = Cx_Lang
10601          AND HD.Id = CL.Dnz_Chr_Id
10602          AND HD.Scs_Code IN ('SERVICE','WARRANTY')
10603          AND HD.Id > -1
10604          AND HD.Template_YN <> 'Y'
10605          AND (Cv_Cont_Pty_Id IS NULL
10606              OR
10607              EXISTS   (SELECT '*'
10608                          FROM Okc_K_Party_Roles_B PR
10609                         WHERE PR.Chr_Id = HD.Id
10610                           AND PR.Cle_Id IS NULL
10611                           AND PR.Dnz_Chr_Id = HD.Id
10612                           AND PR.Object1_Id1 = Cv_Cont_Pty_Id
10613                           AND PR.Object1_Id2 = '#'
10614                           AND PR.Jtot_Object1_Code = 'OKX_PARTY'
10615                           AND PR.RLE_CODE <> 'VENDOR'));
10616 
10617     CURSOR Lx_Csr_Contracts_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_Cle_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
10618                            ,Cx_Lang in VARCHAR2) IS
10619       SELECT HD.Id Contract_Id
10620             ,HD.Contract_Number
10621             ,HD.Contract_Number_Modifier
10622             ,HD.Authoring_Org_Id
10623             ,HD.Inv_Organization_Id
10624             ,HD.End_Date HDR_End_Date --grace period changes
10625 	    ,CL.Cle_Id Service_Line_Id
10626 	    ,CL.Id Coverage_Level_Line_Id
10627             ,SB.Lty_Code Coverage_Level_Code
10628             ,ST.Name Coverage_Level
10629             ,CL.Start_Date
10630 	    ,Get_End_Date_Time(CL.End_Date) End_Date
10631             ,Get_End_Date_Time(CL.Date_Terminated) Date_Terminated
10632 	    ,IT.Object1_Id1 Coverage_Level_Id
10633 	    ,DECODE(SB.Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
10634        FROM  OKC_K_HEADERS_ALL_B HD  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
10635 	    ,Okc_Line_Styles_B SB
10636 	    ,Okc_Line_Styles_TL ST
10637 	    ,Okc_K_Items IT
10638             ,Okc_K_Lines_B CL
10639        WHERE CL.Id = NVL(Cx_Cle_Id, CL.Id)
10640          AND CL.Dnz_Chr_Id = Cx_Chr_Id
10641          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
10642          AND IT.Cle_Id = CL.Id
10643          AND SB.Id = CL.Lse_Id
10644          AND ST.Id = SB.Id
10645          and st.language = Cx_Lang
10646          AND HD.Id = CL.Dnz_Chr_Id
10647          AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION')    ---Modified condition for ER9681794
10648          AND HD.Id > -1
10649          AND HD.Template_YN <> 'Y'
10650          AND (Cv_Cont_Pty_Id IS NULL
10651              OR
10652              EXISTS   (SELECT '*'
10653                          FROM Okc_K_Party_Roles_B PR
10654                         WHERE PR.Chr_Id = HD.Id
10655                           AND PR.Cle_Id IS NULL
10656                           AND PR.Dnz_Chr_Id = HD.Id
10657                           AND PR.Object1_Id1 = Cv_Cont_Pty_Id
10658                           AND PR.Object1_Id2 = '#'
10659                           AND PR.Jtot_Object1_Code = 'OKX_PARTY'
10660                           AND PR.RLE_CODE not in ('VENDOR','MERCHANT')));    ---Modified condition for ER9681794
10661 
10662     Lx_Contracts             GT_Contract_Ref;
10663     Ld_Request_Date          DATE;
10664     Lv_Validate_Flag         VARCHAR2(1);
10665 
10666     Lv_Cont_Pty_Id           VARCHAR2(100);
10667 
10668     Lx_Contracts_01          Ent_Cont_Tbl;
10669     Lx_Contracts_01_Out      Ent_Cont_Tbl;
10670 
10671     Li_TableIdx              BINARY_INTEGER;
10672     Li_OutTab_Idx            BINARY_INTEGER;
10673     Lv_Entile_Flag           VARCHAR2(1);
10674     Lv_Effective_Falg        VARCHAR2(1);
10675 
10676     Ld_CovLvl_Eff_End_Date   DATE;
10677 
10678     Lv_Srv_Name              Okx_System_Items_V.Name%TYPE;          --VARCHAR2(150) ;
10679     Lv_Srv_Description       Okx_System_Items_V.Description%TYPE;   --VARCHAR2(1995);
10680     Lv_Prof_Srv_Name         VARCHAR2(300) ;
10681     Lv_Prof_Srv_Desc         VARCHAR2(300);
10682 
10683     Ld_Srv_Start_Date        DATE;
10684     Ld_Srv_End_Date          DATE;
10685     Ld_Srv_Date_Terminated   DATE;
10686     Ld_Srv_Eff_End_Date      DATE;
10687 
10688     Lx_Cov_Id                Gx_OKS_Id;
10689     Lv_Cov_Name              Okc_K_Lines_V.Name%TYPE;               --VARCHAR2(150) ;
10690     Lv_Cov_Description       Okc_K_Lines_V.Item_Description%TYPE;   --VARCHAR2(1995);
10691     Ld_Cov_Start_Date        DATE;
10692     Ld_Cov_End_Date          DATE;
10693     Ld_Cov_Date_Terminated   DATE;
10694     Ld_Cov_Eff_End_Date      DATE;
10695 
10696     Lx_Cov_Type_Code         Oks_Cov_Types_B.Code%TYPE;
10697     Lx_Cov_Type_Meaning      Oks_Cov_Types_TL.Meaning%TYPE;
10698     Lx_Cov_Type_Description  Oks_Cov_Types_TL.Description%TYPE;
10699     Lx_Cov_Type_Imp_Level    Oks_Cov_Types_B.Importance_Level%TYPE;
10700 
10701     Lv_Prof_Name             CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
10702     Lv_Prof_Value            VARCHAR2(300);
10703 
10704     Lx_Lang                  CONSTANT VARCHAR2(30) := userenv('LANG');
10705 
10706     L_EXCEP_UNEXPECTED_ERR   EXCEPTION;
10707 
10708     Lx_Result                 Gx_Boolean;
10709     Lx_Return_Status          Gx_Ret_Sts;
10710 
10711   BEGIN
10712 
10713     Lx_Result                 := G_FALSE; -- #5092665 hmnair        /*Bug:6767455*/
10714     Lx_Return_Status          := G_RET_STS_SUCCESS;
10715 
10716     Lx_Contracts              := P_Contracts;
10717 
10718     Lv_Validate_Flag          := nvl(P_Validate_Flag,'N');
10719     Li_OutTab_Idx             := 0;
10720 
10721     Ld_Request_Date           := nvl(P_Request_Date,sysdate);
10722 
10723     --
10724     IF Lv_Validate_Flag = 'Y' THEN
10725        Lv_Validate_Flag := 'T';
10726     END IF;
10727     --
10728     FND_PROFILE.Get(Lv_Prof_Name, Lv_Prof_Value);
10729     --
10730 
10731     Li_TableIdx  := Lx_Contracts.FIRST;
10732 
10733     WHILE Li_TableIdx IS NOT NULL LOOP
10734 
10735       Lv_Cont_Pty_Id  := TO_CHAR(Lx_Contracts(Li_TableIdx).Rx_Pty_Id);
10736 
10737 /*Added for ER9681794*/
10738       IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
10739 
10740       FOR Idx IN Lx_Csr_Contracts_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id, Lx_Contracts(Li_TableIdx).Rx_Cle_Id,
10741                                   Lv_Cont_Pty_Id,Lx_Lang) LOOP
10742 
10743         Lv_Srv_Name              := NULL;
10744         Lv_Srv_Description       := NULL;
10745         Ld_Srv_Start_Date        := NULL;
10746         Ld_Srv_End_Date          := NULL;
10747         Ld_Srv_Date_Terminated   := NULL;
10748         Ld_Srv_Eff_End_Date      := NULL;
10749 
10750         Lx_Cov_Id                := NULL;
10751         Lv_Cov_Name              := NULL;
10752         Lv_Cov_Description       := NULL;
10753         Ld_Cov_Start_Date        := NULL;
10754         Ld_Cov_End_Date          := NULL;
10755         Ld_Cov_Date_Terminated   := NULL;
10756         Ld_Cov_Eff_End_Date      := NULL;
10757 
10758         IF Idx.Date_Terminated < Idx.End_Date THEN
10759         -- grace period not allowed for terminated line
10760           Ld_CovLvl_Eff_End_Date := Idx.Date_Terminated;
10761         ELSE
10762           Ld_CovLvl_Eff_End_Date := Idx.End_Date;
10763         -- grace period changes starts
10764 
10765           IF G_GRACE_PROFILE_SET = 'Y' AND Idx.Date_Terminated IS NULL THEN
10766 -- grace period changes are done only if line end date matches contract end date
10767 
10768             G_CONTRACT_END_DATE := Idx.HDR_End_Date;
10769             G_CONTRACT_ID       := Idx.Contract_Id;
10770 
10771            IF  trunc(Ld_CovLvl_Eff_End_Date) = trunc(Idx.HDR_End_Date) THEN
10772                Ld_CovLvl_Eff_End_Date := Get_Final_End_Date(Idx.Contract_Id,Ld_CovLvl_Eff_End_Date);
10773            END IF;
10774 
10775           END IF;
10776 -- grace period changes ends
10777         END IF;
10778 --following procedure modified for grace period changes
10779 
10780         Get_Service_Line_Details
10781           (P_SrvLine_Id       => Idx.Service_Line_Id
10782           ,P_Organization_Id  => Idx.Inv_Organization_Id
10783           ,X_Name             => Lv_Srv_Name
10784           ,X_Description      => Lv_Srv_Description
10785           ,X_Start_Date       => Ld_Srv_Start_Date
10786           ,X_End_Date         => Ld_Srv_End_Date
10787           ,X_Date_Terminated  => Ld_Srv_Date_Terminated
10788           ,X_Eff_End_Date     => Ld_Srv_Eff_End_Date
10789           ,X_Result           => Lx_Result
10790           ,X_Return_Status    => Lx_Return_Status);
10791 
10792         IF Lx_Result <> G_TRUE THEN
10793           RAISE L_EXCEP_UNEXPECTED_ERR;
10794         END IF;
10795 --following procedure modified for grace period changes
10796 
10797         Get_Coverage_Line_Details
10798           (P_SrvLine_Id       => Idx.Service_Line_Id
10799           ,P_Organization_Id  => Idx.Inv_Organization_Id
10800           ,X_Cov_Id           => Lx_Cov_Id
10801           ,X_Name             => Lv_Cov_Name
10802           ,X_Description      => Lv_Cov_Description
10803           ,X_Start_Date       => Ld_Cov_Start_Date
10804           ,X_End_Date         => Ld_Cov_End_Date
10805           ,X_Date_Terminated  => Ld_Cov_Date_Terminated
10806           ,X_Eff_End_Date     => Ld_Cov_Eff_End_Date
10807           ,X_Result           => Lx_Result
10808           ,X_Return_Status    => Lx_Return_Status);
10809 
10810         IF Lx_Result <> G_TRUE THEN
10811           RAISE L_EXCEP_UNEXPECTED_ERR;
10812         END IF;
10813 
10814         IF (Ld_Request_Date BETWEEN Ld_Srv_Start_Date AND Ld_Srv_Eff_End_Date)
10815            AND
10816            (Ld_Request_Date BETWEEN Idx.Start_Date AND Ld_CovLvl_Eff_End_Date)
10817            AND
10818            (Ld_Request_Date BETWEEN Ld_Cov_Start_Date AND Ld_Cov_Eff_End_Date)  THEN
10819 
10820           Lv_Effective_Falg := 'T';
10821         ELSE
10822           Lv_Effective_Falg := 'F';
10823         END IF;
10824 
10825         Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Idx.Service_Line_Id, 'ENTITLE');
10826 
10827         IF (Lv_Validate_Flag = 'T' AND Lv_Effective_Falg = 'T' AND Lv_Entile_Flag = 'T') OR (Lv_Validate_Flag <> 'T') THEN
10828 
10829           Get_Prof_Service_Name_And_Desc
10830             (P_Profile_Value    => Lv_Prof_Value
10831             ,P_Db_Srv_Name      => Lv_Srv_Name
10832             ,P_Db_Srv_Desc      => Lv_Srv_Description
10833             ,X_Prof_Srv_Name    => Lv_Prof_Srv_Name
10834             ,X_Prof_Srv_Desc    => Lv_Prof_Srv_Desc
10835             ,X_Result           => Lx_Result
10836             ,X_Return_Status   	=> Lx_Return_Status);
10837 
10838           IF Lx_Result <> G_TRUE THEN
10839             RAISE L_EXCEP_UNEXPECTED_ERR;
10840           END IF;
10841 
10842           Li_OutTab_Idx := Li_OutTab_Idx + 1;
10843 
10844           Lx_Contracts_01(Li_OutTab_Idx).Contract_Id                 := Idx.Contract_Id;
10845           Lx_Contracts_01(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
10846           Lx_Contracts_01(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
10847           Lx_Contracts_01(Li_OutTab_Idx).Service_Line_Id             := Idx.Service_Line_Id;
10848           Lx_Contracts_01(Li_OutTab_Idx).Service_Name                := Lv_Prof_Srv_Name;           --Lv_Srv_Name;
10849           Lx_Contracts_01(Li_OutTab_Idx).Service_Description         := Lv_Prof_Srv_Desc;           --Lv_Srv_Description;
10850           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_Cov_Id;
10851           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Name          := Lv_Cov_Name;
10852           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Description   := Lv_Cov_Description;
10853           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Line_Id      := Idx.Coverage_Level_Line_Id;
10854           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level              := Idx.Coverage_Level;
10855           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Code         := Idx.Coverage_Level_Code;
10856           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Start_Date   := Idx.Start_Date;
10857           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_End_Date     := Idx.End_Date;
10858           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Id           := Idx.Coverage_Level_Id;
10859           Lx_Contracts_01(Li_OutTab_Idx).Warranty_Flag               := Idx.Warranty_Flag;
10860           Lx_Contracts_01(Li_OutTab_Idx).Eligible_For_Entitlement    := Lv_Entile_Flag;
10861 
10862           Get_Coverage_Type_Attribs
10863               (P_CVL_Id                => Lx_Cov_Id --Lx_CovLine_Id
10864               ,P_Set_ExcepionStack     => G_FALSE
10865               ,X_Cov_Type_Code         => Lx_Cov_Type_Code
10866               ,X_Cov_Type_Meaning      => Lx_Cov_Type_Meaning
10867               ,X_Cov_Type_Description  => Lx_Cov_Type_Description
10868               ,X_Cov_Type_Imp_Level    => Lx_Cov_Type_Imp_Level
10869               ,X_Result                => Lx_Result
10870               ,X_Return_Status         => Lx_Return_Status);
10871 
10872             IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
10873               RAISE L_EXCEP_UNEXPECTED_ERR;
10874             END IF;
10875 
10876             Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Code      :=  Lx_Cov_Type_Code;
10877             Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Meaning   :=  Lx_Cov_Type_Meaning;
10878             Lx_Contracts_01(Li_OutTab_Idx).coverage_Type_Imp_Level :=  Lx_Cov_Type_Imp_Level;
10879 
10880         END IF;
10881 
10882       END LOOP;
10883 
10884     ELSE
10885     /*Added for ER9681794*/
10886     FOR Idx IN Lx_Csr_Contracts(Lx_Contracts(Li_TableIdx).Rx_Chr_Id, Lx_Contracts(Li_TableIdx).Rx_Cle_Id,
10887                                   Lv_Cont_Pty_Id,Lx_Lang) LOOP
10888 
10889         Lv_Srv_Name              := NULL;
10890         Lv_Srv_Description       := NULL;
10891         Ld_Srv_Start_Date        := NULL;
10892         Ld_Srv_End_Date          := NULL;
10893         Ld_Srv_Date_Terminated   := NULL;
10894         Ld_Srv_Eff_End_Date      := NULL;
10895 
10896         Lx_Cov_Id                := NULL;
10897         Lv_Cov_Name              := NULL;
10898         Lv_Cov_Description       := NULL;
10899         Ld_Cov_Start_Date        := NULL;
10900         Ld_Cov_End_Date          := NULL;
10901         Ld_Cov_Date_Terminated   := NULL;
10902         Ld_Cov_Eff_End_Date      := NULL;
10903 
10904         IF Idx.Date_Terminated < Idx.End_Date THEN
10905         -- grace period not allowed for terminated line
10906           Ld_CovLvl_Eff_End_Date := Idx.Date_Terminated;
10907         ELSE
10908           Ld_CovLvl_Eff_End_Date := Idx.End_Date;
10909         -- grace period changes starts
10910 
10911           IF G_GRACE_PROFILE_SET = 'Y' AND Idx.Date_Terminated IS NULL THEN
10912 -- grace period changes are done only if line end date matches contract end date
10913 
10914             G_CONTRACT_END_DATE := Idx.HDR_End_Date;
10915             G_CONTRACT_ID       := Idx.Contract_Id;
10916 
10917            IF  trunc(Ld_CovLvl_Eff_End_Date) = trunc(Idx.HDR_End_Date) THEN
10918                Ld_CovLvl_Eff_End_Date := Get_Final_End_Date(Idx.Contract_Id,Ld_CovLvl_Eff_End_Date);
10919            END IF;
10920 
10921           END IF;
10922 -- grace period changes ends
10923         END IF;
10924 --following procedure modified for grace period changes
10925 
10926         Get_Service_Line_Details
10927           (P_SrvLine_Id       => Idx.Service_Line_Id
10928           ,P_Organization_Id  => Idx.Inv_Organization_Id
10929           ,X_Name             => Lv_Srv_Name
10930           ,X_Description      => Lv_Srv_Description
10931           ,X_Start_Date       => Ld_Srv_Start_Date
10932           ,X_End_Date         => Ld_Srv_End_Date
10933           ,X_Date_Terminated  => Ld_Srv_Date_Terminated
10934           ,X_Eff_End_Date     => Ld_Srv_Eff_End_Date
10935           ,X_Result           => Lx_Result
10936           ,X_Return_Status    => Lx_Return_Status);
10937 
10938         IF Lx_Result <> G_TRUE THEN
10939           RAISE L_EXCEP_UNEXPECTED_ERR;
10940         END IF;
10941 --following procedure modified for grace period changes
10942 
10943         Get_Coverage_Line_Details
10944           (P_SrvLine_Id       => Idx.Service_Line_Id
10945           ,P_Organization_Id  => Idx.Inv_Organization_Id
10946           ,X_Cov_Id           => Lx_Cov_Id
10947           ,X_Name             => Lv_Cov_Name
10948           ,X_Description      => Lv_Cov_Description
10949           ,X_Start_Date       => Ld_Cov_Start_Date
10950           ,X_End_Date         => Ld_Cov_End_Date
10951           ,X_Date_Terminated  => Ld_Cov_Date_Terminated
10952           ,X_Eff_End_Date     => Ld_Cov_Eff_End_Date
10953           ,X_Result           => Lx_Result
10954           ,X_Return_Status    => Lx_Return_Status);
10955 
10956         IF Lx_Result <> G_TRUE THEN
10957           RAISE L_EXCEP_UNEXPECTED_ERR;
10958         END IF;
10959 
10960         IF (Ld_Request_Date BETWEEN Ld_Srv_Start_Date AND Ld_Srv_Eff_End_Date)
10961            AND
10962            (Ld_Request_Date BETWEEN Idx.Start_Date AND Ld_CovLvl_Eff_End_Date)
10963            AND
10964            (Ld_Request_Date BETWEEN Ld_Cov_Start_Date AND Ld_Cov_Eff_End_Date)  THEN
10965 
10966           Lv_Effective_Falg := 'T';
10967         ELSE
10968           Lv_Effective_Falg := 'F';
10969         END IF;
10970 
10971         Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Idx.Service_Line_Id, 'ENTITLE');
10972 
10973         IF (Lv_Validate_Flag = 'T' AND Lv_Effective_Falg = 'T' AND Lv_Entile_Flag = 'T') OR (Lv_Validate_Flag <> 'T') THEN
10974 
10975           Get_Prof_Service_Name_And_Desc
10976             (P_Profile_Value    => Lv_Prof_Value
10977             ,P_Db_Srv_Name      => Lv_Srv_Name
10978             ,P_Db_Srv_Desc      => Lv_Srv_Description
10979             ,X_Prof_Srv_Name    => Lv_Prof_Srv_Name
10980             ,X_Prof_Srv_Desc    => Lv_Prof_Srv_Desc
10981             ,X_Result           => Lx_Result
10982             ,X_Return_Status   	=> Lx_Return_Status);
10983 
10984           IF Lx_Result <> G_TRUE THEN
10985             RAISE L_EXCEP_UNEXPECTED_ERR;
10986           END IF;
10987 
10988           Li_OutTab_Idx := Li_OutTab_Idx + 1;
10989 
10990           Lx_Contracts_01(Li_OutTab_Idx).Contract_Id                 := Idx.Contract_Id;
10991           Lx_Contracts_01(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
10992           Lx_Contracts_01(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
10993           Lx_Contracts_01(Li_OutTab_Idx).Service_Line_Id             := Idx.Service_Line_Id;
10994           Lx_Contracts_01(Li_OutTab_Idx).Service_Name                := Lv_Prof_Srv_Name;           --Lv_Srv_Name;
10995           Lx_Contracts_01(Li_OutTab_Idx).Service_Description         := Lv_Prof_Srv_Desc;           --Lv_Srv_Description;
10996           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_Cov_Id;
10997           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Name          := Lv_Cov_Name;
10998           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Description   := Lv_Cov_Description;
10999           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Line_Id      := Idx.Coverage_Level_Line_Id;
11000           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level              := Idx.Coverage_Level;
11001           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Code         := Idx.Coverage_Level_Code;
11002           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Start_Date   := Idx.Start_Date;
11003           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_End_Date     := Idx.End_Date;
11004           Lx_Contracts_01(Li_OutTab_Idx).Coverage_Level_Id           := Idx.Coverage_Level_Id;
11005           Lx_Contracts_01(Li_OutTab_Idx).Warranty_Flag               := Idx.Warranty_Flag;
11006           Lx_Contracts_01(Li_OutTab_Idx).Eligible_For_Entitlement    := Lv_Entile_Flag;
11007 
11008           Get_Coverage_Type_Attribs
11009               (P_CVL_Id                => Lx_Cov_Id --Lx_CovLine_Id
11010               ,P_Set_ExcepionStack     => G_FALSE
11011               ,X_Cov_Type_Code         => Lx_Cov_Type_Code
11012               ,X_Cov_Type_Meaning      => Lx_Cov_Type_Meaning
11013               ,X_Cov_Type_Description  => Lx_Cov_Type_Description
11014               ,X_Cov_Type_Imp_Level    => Lx_Cov_Type_Imp_Level
11015               ,X_Result                => Lx_Result
11016               ,X_Return_Status         => Lx_Return_Status);
11017 
11018             IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
11019               RAISE L_EXCEP_UNEXPECTED_ERR;
11020             END IF;
11021 
11022             Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Code      :=  Lx_Cov_Type_Code;
11023             Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Meaning   :=  Lx_Cov_Type_Meaning;
11024             Lx_Contracts_01(Li_OutTab_Idx).coverage_Type_Imp_Level :=  Lx_Cov_Type_Imp_Level;
11025 
11026         END IF;
11027 
11028       END LOOP;
11029 
11030     END IF;  ----Added for ER9681794
11031 
11032       Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
11033 
11034     END LOOP;
11035 
11036     IF NVL(P_Chr_Id_Flag,'N') = 'Y'  THEN    --Bug# 4719510 (JVARGHES)
11037 
11038       X_Contracts_01     := Lx_Contracts_01;
11039 
11040     ELSE                                     --Bug# 4719510 (JVARGHES)
11041 
11042       Sort_Asc_GetContracts_01
11043         (P_Input_Tab          => Lx_Contracts_01
11044         ,X_Output_Tab         => Lx_Contracts_01_Out
11045         ,X_Result             => Lx_Result
11046         ,X_Return_Status      => Lx_Return_Status);
11047 
11048       IF Lx_Result <> G_TRUE THEN
11049         RAISE L_EXCEP_UNEXPECTED_ERR;
11050       END IF;
11051 
11052       X_Contracts_01     := Lx_Contracts_01_Out;
11053 
11054     END IF;                                 --Bug# 4719510 (JVARGHES)
11055 
11056     X_Result             := G_TRUE;         -- Bug #5092665 hmnair           /*Bug:6767455*/
11057     X_Return_Status      := Lx_Return_Status;
11058 
11059   EXCEPTION
11060 
11061     WHEN L_EXCEP_UNEXPECTED_ERR THEN
11062 
11063       X_Result           := Lx_Result;
11064       X_Return_Status    := Lx_Return_Status;
11065 
11066     WHEN OTHERS THEN
11067 
11068       OKC_API.SET_MESSAGE
11069         (P_App_Name	  => G_APP_NAME_OKC
11070 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
11071 	,P_Token1	  => G_SQLCODE_TOKEN
11072 	,P_Token1_Value	  => SQLCODE
11073 	,P_Token2	  => G_SQLERRM_TOKEN
11074 	,P_Token2_Value   => SQLERRM);
11075 
11076       OKC_API.SET_MESSAGE
11077         (P_App_Name	  => G_APP_NAME_OKC
11078 	,P_Msg_Name	  => G_DEBUG_TOKEN
11079 	,P_Token1	  => G_PACKAGE_TOKEN
11080 	,P_Token1_Value	  => G_PKG_NAME
11081 	,P_Token2	  => G_PROGRAM_TOKEN
11082 	,P_Token2_Value   => 'Get_Contracts_01_Format');
11083 
11084       X_Result          := G_FALSE;
11085       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
11086 
11087   END Get_Contracts_01_Format;
11088 
11089 -----------------------------------------------------------------------------------------------------------------------*
11090 
11091   PROCEDURE Get_Contracts_01
11092     (P_API_Version		IN  NUMBER
11093     ,P_Init_Msg_List		IN  VARCHAR2
11094     ,P_Inp_Rec			IN  Inp_Cont_Rec
11095     ,X_Return_Status 		OUT NOCOPY VARCHAR2
11096     ,X_Msg_Count		OUT NOCOPY NUMBER
11097     ,X_Msg_Data			OUT NOCOPY VARCHAR2
11098     ,X_Ent_Contracts		OUT NOCOPY Ent_Cont_Tbl)
11099   IS
11100 
11101     Lx_Inp_Rec			CONSTANT Inp_Cont_Rec := P_Inp_Rec;
11102 
11103     Lx_Ent_Contracts            Ent_Cont_Tbl;
11104 
11105     Lx_Contracts                GT_Contract_Ref;
11106 
11107     Ln_Organization_Id          NUMBER;
11108     Ln_Org_Id                   NUMBER;
11109 
11110     Lv_Chr_Id_Flag              VARCHAR2(10);   --Bug# 4719510 (JVARGHES)
11111 
11112     L_EXCEP_UNEXPECTED_ERR      EXCEPTION;
11113 
11114     Lx_Result                 Gx_Boolean;
11115     Lx_Return_Status          Gx_Ret_Sts;
11116 
11117   BEGIN
11118 
11119     Lx_Result                 := G_TRUE;
11120     Lx_Return_Status          := G_RET_STS_SUCCESS;
11121 
11122 
11123  -- Bug# 4735542.
11124  -- Ln_Organization_Id       := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
11125 
11126  -- Modified for 12.0 MOAC project (JVARGHES)
11127  -- Ln_Org_Id                := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
11128  --
11129 
11130     G_GRACE_PROFILE_SET      := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
11131 
11132     Lv_Chr_Id_Flag           := 'N';  --Bug# 4719510 (JVARGHES)
11133 
11134     IF Lx_Inp_Rec.Coverage_Level_Line_Id IS NOT NULL THEN
11135 
11136       Get_CovLvlLine_Contracts
11137         (P_CovLvlLine_Id          => Lx_Inp_Rec.Coverage_Level_Line_Id
11138         ,X_Contracts              => Lx_Contracts
11139         ,X_Result                 => Lx_Result
11140         ,X_Return_Status   	  => Lx_Return_Status);
11141 
11142       IF Lx_Result <> G_TRUE THEN
11143         RAISE L_EXCEP_UNEXPECTED_ERR;
11144       END IF;
11145 
11146     ELSIF Lx_Inp_Rec.Contract_Number IS NOT NULL THEN
11147 
11148       Lv_Chr_Id_Flag             := 'Y';  --Bug# 4719510 (JVARGHES)
11149 
11150       Get_Contracts_Id
11151         (P_Contract_Num           => Lx_Inp_Rec.Contract_Number
11152         ,P_Contract_Num_Modifier  => Lx_Inp_Rec.Contract_Number_Modifier --NULL
11153         ,X_Contracts              => Lx_Contracts
11154         ,X_Result                 => Lx_Result
11155         ,X_Return_Status   	  => Lx_Return_Status);
11156 
11157       IF Lx_Result <> G_TRUE THEN
11158         RAISE L_EXCEP_UNEXPECTED_ERR;
11159       END IF;
11160 
11161     ELSIF Lx_Inp_Rec.Product_Id IS NOT NULL THEN
11162 
11163       Get_CovProd_Contracts
11164         (P_CovProd_Obj_Id         => Lx_Inp_Rec.Product_Id
11165         ,P_Organization_Id        => Ln_Organization_Id
11166         ,P_Org_Id                 => Ln_Org_Id
11167         ,X_CovProd_Contracts      => Lx_Contracts
11168         ,X_Result                 => Lx_Result
11169         ,X_Return_Status   	  => Lx_Return_Status);
11170 
11171       IF Lx_Result <> G_TRUE THEN
11172         RAISE L_EXCEP_UNEXPECTED_ERR;
11173       END IF;
11174 
11175     ELSIF Lx_Inp_Rec.Item_Id IS NOT NULL THEN
11176 
11177       Get_CovItem_Contracts
11178         (P_CovItem_Obj_Id         => Lx_Inp_Rec.Item_Id
11179         ,P_Organization_Id        => Ln_Organization_Id
11180         ,P_Party_Id               => Lx_Inp_Rec.Party_Id
11181         ,X_CovItem_Contracts      => Lx_Contracts
11182         ,X_Result                 => Lx_Result
11183         ,X_Return_Status   	  => Lx_Return_Status);
11184 
11185       IF Lx_Result <> G_TRUE THEN
11186         RAISE L_EXCEP_UNEXPECTED_ERR;
11187       END IF;
11188 
11189     ELSIF Lx_Inp_Rec.System_Id IS NOT NULL THEN
11190 
11191       Get_CovSys_Contracts
11192         (P_CovSys_Obj_Id          => Lx_Inp_Rec.System_Id
11193         ,P_Org_Id                 => Ln_Org_Id
11194         ,X_CovSys_Contracts       => Lx_Contracts
11195         ,X_Result                 => Lx_Result
11196         ,X_Return_Status   	  => Lx_Return_Status);
11197 
11198       IF Lx_Result <> G_TRUE THEN
11199         RAISE L_EXCEP_UNEXPECTED_ERR;
11200       END IF;
11201 
11202     ELSIF Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL THEN
11203 
11204       Get_CovCust_Contracts
11205         (P_CovCust_Obj_Id         => Lx_Inp_Rec.Cust_Acct_Id
11206         ,X_CovCust_Contracts      => Lx_Contracts
11207         ,X_Result                 => Lx_Result
11208         ,X_Return_Status   	  => Lx_Return_Status);
11209 
11210       IF Lx_Result <> G_TRUE THEN
11211         RAISE L_EXCEP_UNEXPECTED_ERR;
11212       END IF;
11213 
11214     ELSIF Lx_Inp_Rec.Site_Id IS NOT NULL THEN
11215 
11216       Get_CovSite_Contracts
11217         (P_CovSite_Obj_Id         => Lx_Inp_Rec.Site_Id
11218         ,P_Org_Id                 => Ln_Org_Id
11219         ,X_CovSite_Contracts      => Lx_Contracts
11220         ,X_Result                 => Lx_Result
11221         ,X_Return_Status   	  => Lx_Return_Status);
11222 
11223       IF Lx_Result <> G_TRUE THEN
11224         RAISE L_EXCEP_UNEXPECTED_ERR;
11225       END IF;
11226 
11227     ELSIF Lx_Inp_Rec.Party_Id IS NOT NULL THEN
11228 
11229       Get_CovParty_Contracts
11230         (P_CovParty_Obj_Id        => Lx_Inp_Rec.Party_Id
11231         ,X_CovParty_Contracts     => Lx_Contracts
11232         ,X_Result                 => Lx_Result
11233         ,X_Return_Status   	  => Lx_Return_Status);
11234 
11235       IF Lx_Result <> G_TRUE THEN
11236         RAISE L_EXCEP_UNEXPECTED_ERR;
11237       END IF;
11238 
11239     END IF;
11240 
11241     Get_Contracts_01_Format
11242       (P_Contracts           => Lx_Contracts
11243       ,P_Request_Date        => Lx_Inp_Rec.Request_Date
11244       ,P_Validate_Flag       => Lx_Inp_Rec.Validate_Flag
11245       ,P_Chr_Id_Flag         => Lv_Chr_Id_Flag                 --Bug# 4719510 (JVARGHES)
11246       ,X_Contracts_01        => Lx_Ent_Contracts
11247       ,X_Result              => Lx_Result
11248       ,X_Return_Status       => Lx_Return_Status);
11249 
11250     IF Lx_Result <> G_TRUE THEN
11251       RAISE L_EXCEP_UNEXPECTED_ERR;
11252     END IF;
11253 
11254     X_Ent_Contracts       := Lx_Ent_Contracts;
11255     X_Return_Status       := Lx_Return_Status;
11256 
11257   EXCEPTION
11258 
11259     WHEN L_EXCEP_UNEXPECTED_ERR THEN
11260 
11261       --X_Result         := Lx_Result;
11262       X_Return_Status    := Lx_Return_Status;
11263 
11264     WHEN OTHERS THEN
11265 
11266       OKC_API.SET_MESSAGE
11267         (P_App_Name	  => G_APP_NAME_OKC
11268 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
11269 	,P_Token1	  => G_SQLCODE_TOKEN
11270 	,P_Token1_Value	  => SQLCODE
11271 	,P_Token2	  => G_SQLERRM_TOKEN
11272 	,P_Token2_Value   => SQLERRM);
11273 
11274       OKC_API.SET_MESSAGE
11275         (P_App_Name	  => G_APP_NAME_OKC
11276 	,P_Msg_Name	  => G_DEBUG_TOKEN
11277 	,P_Token1	  => G_PACKAGE_TOKEN
11278 	,P_Token1_Value	  => G_PKG_NAME
11279 	,P_Token2	  => G_PROGRAM_TOKEN
11280 	,P_Token2_Value   => 'get_contracts_01');
11281 
11282       --X_Result        := G_FALSE;
11283       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
11284 
11285   END get_contracts_01;
11286 
11287 -----------------------------------------------------------------------------------------------------------------------*
11288 
11289   PROCEDURE Get_Contracts
11290     (P_API_Version		IN  NUMBER
11291     ,P_Init_Msg_List		IN  VARCHAR2
11292     ,P_Inp_Rec			IN  Inp_Cont_Rec
11293     ,X_Return_Status 		OUT NOCOPY VARCHAR2
11294     ,X_Msg_Count		      OUT NOCOPY NUMBER
11295     ,X_Msg_Data			OUT NOCOPY VARCHAR2
11296     ,X_Ent_Contracts		OUT NOCOPY Ent_Cont_Tbl)
11297   IS
11298 
11299     Lx_Inp_Rec                  Inp_Cont_Rec;
11300 
11301   BEGIN
11302 
11303     Lx_Inp_Rec        := P_Inp_Rec;
11304 
11305     -- Bug# 4735542.
11306     -- okc_context.set_okc_org_context;
11307 
11308     IF Lx_Inp_Rec.Request_Date IS NULL THEN
11309       Lx_Inp_Rec.Request_Date := SYSDATE;
11310     END IF;
11311 
11312     Get_Contracts_01
11313       (P_API_Version		=> P_API_Version
11314       ,P_Init_Msg_List		=> P_Init_Msg_List
11315       ,P_Inp_Rec		=> Lx_Inp_Rec
11316       ,X_Return_Status 		=> X_Return_Status
11317       ,X_Msg_Count		=> X_Msg_Count
11318       ,X_Msg_Data		=> X_Msg_Data
11319       ,X_Ent_Contracts		=> X_Ent_Contracts);
11320 
11321   EXCEPTION
11322 
11323     WHEN OTHERS THEN
11324 
11325       OKC_API.SET_MESSAGE
11326         (P_App_Name	  => G_APP_NAME_OKC
11327 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
11328 	,P_Token1	  => G_SQLCODE_TOKEN
11329 	,P_Token1_Value	  => SQLCODE
11330 	,P_Token2	  => G_SQLERRM_TOKEN
11331 	,P_Token2_Value   => SQLERRM);
11332 
11333       OKC_API.SET_MESSAGE
11334         (P_App_Name	  => G_APP_NAME_OKC
11335 	,P_Msg_Name	  => G_DEBUG_TOKEN
11336 	,P_Token1	  => G_PACKAGE_TOKEN
11337 	,P_Token1_Value	  => G_PKG_NAME
11338 	,P_Token2	  => G_PROGRAM_TOKEN
11339 	,P_Token2_Value   => 'Get_Contracts-Ent_Cont_Tbl');
11340 
11341       --X_Result           := G_FALSE;
11342       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
11343 
11344   END Get_Contracts;
11345 
11346 -----------------------------------------------------------------------------------------------------------------------*
11347 
11348   PROCEDURE Sort_Asc_GetContracts_02
11349     (P_Input_Tab          IN  Get_ConTop_Tbl
11350     ,P_Sort_Key           IN  VARCHAR2
11351     ,X_Output_Tab         out nocopy Get_ConTop_Tbl
11352     ,X_Result             out nocopy Gx_Boolean
11353     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)
11354   IS
11355 
11356     Lv_Sort_Key           CONSTANT VARCHAR2(10) := P_Sort_Key;
11357 
11358     Lx_Sort_Tab           Get_ConTop_Tbl;
11359 
11360     Li_TableIdx_Out       BINARY_INTEGER;
11361     Li_TableIdx_In        BINARY_INTEGER;
11362 
11363     Lx_Temp_ContItem      Get_ConTop_Rec;
11364 
11365     Lv_Composit_Val1      DATE;
11366     Lv_Composit_Val1_Num  NUMBER;
11367 
11368     Lv_Composit_Val2      DATE;
11369     Lv_Composit_Val2_Num  NUMBER;
11370 
11371     Lx_Result                 Gx_Boolean;
11372     Lx_Return_Status          Gx_Ret_Sts;
11373 
11374   BEGIN
11375 
11376     Lx_Result                 := G_TRUE;
11377     Lx_Return_Status          := G_RET_STS_SUCCESS;
11378 
11379     Lx_Sort_Tab               := P_Input_Tab;
11380 
11381     Li_TableIdx_Out  := Lx_Sort_Tab.FIRST;
11382 
11383     WHILE Li_TableIdx_Out IS NOT NULL LOOP
11384 
11385       Li_TableIdx_In  := Li_TableIdx_Out;
11386 
11387       WHILE Li_TableIdx_In IS NOT NULL LOOP
11388 
11389         IF Lv_Sort_Key IN (G_RESOLUTION_TIME,G_REACTION_TIME) THEN
11390 
11391           IF Lv_Sort_Key = G_REACTION_TIME THEN
11392             Lv_Composit_Val1  := Lx_Sort_Tab(Li_TableIdx_Out).Exp_Reaction_Time;
11393           ELSE
11394             Lv_Composit_Val1  := Lx_Sort_Tab(Li_TableIdx_Out).Exp_Resolution_Time;
11395           END IF;
11396 
11397           IF Lv_Composit_Val1 IS NOT NULL THEN
11398             Lv_Composit_Val1_Num  := TO_NUMBER(TO_CHAR(Lv_Composit_Val1,'YYYYMMDDHH24MISS'));
11399           ELSE
11400             -- Lv_Composit_Val1_Num  := NULL; --G_MISS_NUM;   -- Bug# 4896181
11401                Lv_Composit_Val1_Num  := 99999999999999;       -- Bug# 4896181
11402           END IF;
11403 
11404           IF Lv_Sort_Key = G_REACTION_TIME THEN
11405             Lv_Composit_Val2  := Lx_Sort_Tab(Li_TableIdx_In).Exp_Reaction_Time;
11406           ELSE
11407             Lv_Composit_Val2  := Lx_Sort_Tab(Li_TableIdx_In).Exp_Resolution_Time;
11408           END IF;
11409 
11410           IF Lv_Composit_Val2 IS NOT NULL THEN
11411             Lv_Composit_Val2_Num  := TO_NUMBER(TO_CHAR(Lv_Composit_Val2,'YYYYMMDDHH24MISS'));
11412           ELSE
11413            -- Lv_Composit_Val2_Num  := NULL; --G_MISS_NUM;  -- Bug# 4896181
11414            Lv_Composit_Val2_Num  := 99999999999999;         -- Bug# 4896181
11415           END IF;
11416 
11417         ELSIF Lv_Sort_Key = G_COVERAGE_TYPE_IMP_LEVEL THEN
11418 
11419           -- Bug# 4896181
11420           -- Lv_Composit_Val1_Num  := NVL(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Type_Imp_Level,NULL --G_MISS_NUM);
11421           -- Lv_Composit_Val2_Num  := NVL(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Type_Imp_Level,NULL --G_MISS_NUM) ;
11422 
11423              Lv_Composit_Val1_Num  := NVL(Lx_Sort_Tab(Li_TableIdx_Out).Coverage_Type_Imp_Level,99999999999999);
11424              Lv_Composit_Val2_Num  := NVL(Lx_Sort_Tab(Li_TableIdx_In).Coverage_Type_Imp_Level,99999999999999);
11425 
11426 
11427         END IF;
11428 
11429         IF Lv_Composit_Val1_Num > Lv_Composit_Val2_Num THEN
11430 
11431           Lx_Temp_ContItem              := Lx_Sort_Tab(Li_TableIdx_Out);
11432           Lx_Sort_Tab(Li_TableIdx_Out)  := Lx_Sort_Tab(Li_TableIdx_In);
11433           Lx_Sort_Tab(Li_TableIdx_In)   := Lx_Temp_ContItem;
11434 
11435         END IF;
11436 
11437         Li_TableIdx_In  := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
11438 
11439       END LOOP;
11440 
11441       Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
11442 
11443     END LOOP;
11444 
11445     X_Output_Tab          := Lx_Sort_Tab;
11446     X_Result              := Lx_Result;
11447     X_Return_Status       := Lx_Return_Status;
11448 
11449   EXCEPTION
11450 
11451     WHEN OTHERS THEN
11452 
11453       OKC_API.SET_MESSAGE
11454         (P_App_Name	  => G_APP_NAME_OKC
11455 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
11456 	,P_Token1	  => G_SQLCODE_TOKEN
11457 	,P_Token1_Value	  => SQLCODE
11458 	,P_Token2	  => G_SQLERRM_TOKEN
11459 	,P_Token2_Value   => SQLERRM);
11460 
11461       OKC_API.SET_MESSAGE
11462         (P_App_Name	  => G_APP_NAME_OKC
11463 	,P_Msg_Name	  => G_DEBUG_TOKEN
11464 	,P_Token1	  => G_PACKAGE_TOKEN
11465 	,P_Token1_Value	  => G_PKG_NAME
11466 	,P_Token2	  => G_PROGRAM_TOKEN
11467 	,P_Token2_Value   => 'Sort_Asc_GetContracts_02');
11468 
11469       X_Result           := G_FALSE;
11470       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
11471 
11472   END Sort_Asc_GetContracts_02;
11473 
11474 -----------------------------------------------------------------------------------------------------------------------*
11475    PROCEDURE Get_Contracts_02_Format
11476     (P_Contracts            IN  GT_Contract_Ref
11477     ,P_BusiProc_Id	    IN  Gx_BusProcess_Id
11478     ,P_Severity_Id	    IN  Gx_Severity_Id
11479     ,P_Request_TZone_Id	    IN  Gx_TimeZoneId
11480     ,P_Dates_In_Input_TZ    IN VARCHAR2    -- Added for 12.0 ENT-TZ project (JVARGHES)
11481     ,P_Incident_Date        IN  DATE       -- Added for 12.0 ENT-TZ project (JVARGHES)
11482     ,P_Request_Date         IN  DATE
11483     ,P_Calc_RespTime_YN     IN  VARCHAR2
11484     ,P_Validate_Eff         IN  VARCHAR2
11485     ,P_Validate_Flag        IN  VARCHAR2
11486     ,P_SrvLine_Flag         IN  VARCHAR2
11487     ,P_Sort_Key             IN  VARCHAR2
11488     ,X_Contracts_02         out nocopy Get_ConTop_Tbl
11489     ,X_Result               out nocopy Gx_Boolean
11490     ,X_Return_Status   	    out nocopy Gx_Ret_Sts
11491     ,P_cust_id                  IN NUMBER DEFAULT NULL
11492     ,P_cust_site_id             IN NUMBER DEFAULT NULL
11493     ,P_cust_loc_id              IN NUMBER DEFAULT NULL)
11494   IS
11495 
11496 -- cursor for Cx_SrvLine_Id  is not null and Cx_CovLvlLine_Id is null
11497 
11498    CURSOR Lx_Csr_Contracts1(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11499                            ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS      ----added Cd_req_dt parameter for 13795417 by ansraj
11500       SELECT HD.Id Contract_Id
11501 	    ,HD.Contract_Number
11502             ,HD.Contract_Number_Modifier
11503             ,HD.Sts_Code
11504             ,HD.Authoring_Org_Id
11505             ,HD.Inv_Organization_Id
11506             ,HD.End_Date HDR_End_Date --grace period changes
11507 	    ,SV.Id Service_Line_Id
11508             ,SV.Start_Date SV_Start_Date
11509 	    ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11510             ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11511             ,CL.Sts_Code CL_Sts_Code
11512 	    ,CL.Id CovLvl_Line_Id
11513             ,CL.Start_Date CL_Start_Date
11514 	    ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11515             ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11516        --   ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11517             ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11518         FROM OKC_K_HEADERS_ALL_B HD  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
11519             ,Okc_K_Lines_B SV
11520             ,Okc_K_Lines_B CL
11521        WHERE HD.Id = Cx_Chr_Id
11522          AND HD.Scs_Code IN ('SERVICE','WARRANTY')
11523          AND HD.Id > -1
11524          AND HD.Template_YN <> 'Y'
11525          AND SV.Dnz_Chr_Id = HD.Id
11526          AND SV.Cle_Id IS NULL
11527          AND SV.Chr_Id = HD.Id
11528          AND SV.Lse_ID IN (1,14,19)
11529          AND SV.Id = Cx_SrvLine_Id --NVL(Cx_SrvLine_Id,SV.Id)
11530          AND CL.Cle_Id = SV.Id
11531          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11532          AND (Cx_BP_Id IS NULL
11533               OR
11534               EXISTS (SELECT '*'            -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11535                        FROM Okc_K_Items ITM
11536                            ,Okc_K_Lines_B BPL
11537                            ,Oks_K_Lines_B KSL
11538                       WHERE KSL.Cle_Id = SV.Id
11539                         AND BPL.Cle_Id = KSL.Coverage_ID
11540                         AND ITM.Cle_Id = BPL.Id
11541                         AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11542                         AND ITM.Object1_Id2 = '#'
11543                         AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11544                        AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt)))                       --Cv_ValFlg validation added for bugfix 14596603 by ansraj  ----added for 13795417 by ansraj
11545                         ));
11546 
11547     CURSOR Lx_Csr_Contracts1_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11548                            ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS      ----added Cd_req_dt parameter for 13795417 by ansraj
11549       SELECT HD.Id Contract_Id
11550 	    ,HD.Contract_Number
11551             ,HD.Contract_Number_Modifier
11552             ,HD.Sts_Code
11553             ,HD.Authoring_Org_Id
11554             ,HD.Inv_Organization_Id
11555             ,HD.End_Date HDR_End_Date --grace period changes
11556 	    ,SV.Id Service_Line_Id
11557             ,SV.Start_Date SV_Start_Date
11558 	    ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11559             ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11560             ,CL.Sts_Code CL_Sts_Code
11561 	    ,CL.Id CovLvl_Line_Id
11562             ,CL.Start_Date CL_Start_Date
11563 	    ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11564             ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11565        --   ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11566             ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11567         FROM OKC_K_HEADERS_ALL_B HD  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
11568             ,Okc_K_Lines_B SV
11569             ,Okc_K_Lines_B CL
11570        WHERE HD.Id = Cx_Chr_Id
11571          AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION')      ----Modified condition for ER9681794
11572          AND HD.Id > -1
11573          AND HD.Template_YN <> 'Y'
11574          AND SV.Dnz_Chr_Id = HD.Id
11575          AND SV.Cle_Id IS NULL
11576          AND SV.Chr_Id = HD.Id
11577          AND SV.Lse_ID IN (1,14,19)
11578          AND SV.Id = Cx_SrvLine_Id --NVL(Cx_SrvLine_Id,SV.Id)
11579          AND CL.Cle_Id = SV.Id
11580          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11581          AND (Cx_BP_Id IS NULL
11582               OR
11583               EXISTS (SELECT '*'            -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11584                        FROM Okc_K_Items ITM
11585                            ,Okc_K_Lines_B BPL
11586                            ,Oks_K_Lines_B KSL
11587                       WHERE KSL.Cle_Id = SV.Id
11588                         AND BPL.Cle_Id = KSL.Coverage_ID
11589                         AND ITM.Cle_Id = BPL.Id
11590                         AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11591                         AND ITM.Object1_Id2 = '#'
11592                         AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11593                        AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt)))                       --Cv_ValFlg validation added for bugfix 14596603 by ansraj  ----added for 13795417 by ansraj
11594                         ));
11595       --
11596       -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11597       --
11598       --        EXISTS (SELECT '*'
11599       --                 FROM Okc_K_Items ITM
11600       --                     ,Okc_K_Lines_B BPL
11601       --                     ,Okc_K_Lines_B CV
11602       --                WHERE CV.Cle_Id  = SV.Id
11603       --                  AND CV.Lse_Id IN (2,15,20)
11604       --                  AND BPL.Cle_Id = CV.Id
11605       --                  AND ITM.Cle_Id = BPL.Id
11606       --                 -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
11607       --                  AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11608       --                  AND ITM.Object1_Id2 = '#'
11609       --                 -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11610       --                  AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11611       --                  ));
11612       --
11613       --
11614 
11615 -- cursor for Cx_SrvLine_Id  is  null and Cx_CovLvlLine_Id is not null
11616 
11617     CURSOR Lx_Csr_Contracts2(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11618                            ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS      ----added Cd_req_dt parameter for 13795417 by ansraj
11619       SELECT HD.Id Contract_Id
11620 	    ,HD.Contract_Number
11621             ,HD.Contract_Number_Modifier
11622             ,HD.Sts_Code
11623             ,HD.Authoring_Org_Id
11624             ,HD.Inv_Organization_Id
11625             ,HD.End_Date HDR_End_Date --grace period changes
11626 	    ,SV.Id Service_Line_Id
11627             ,SV.Start_Date SV_Start_Date
11628 	    ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11629             ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11630             ,CL.Sts_Code CL_Sts_Code
11631 	    ,CL.Id CovLvl_Line_Id
11632             ,CL.Start_Date CL_Start_Date
11633 	    ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11634             ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11635        --   ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11636             ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11637         FROM OKC_K_HEADERS_ALL_B HD  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
11638             ,Okc_K_Lines_B SV
11639             ,Okc_K_Lines_B CL
11640        WHERE HD.Id = Cx_Chr_Id
11641          AND HD.Scs_Code IN ('SERVICE','WARRANTY')
11642          AND HD.Id > -1
11643          AND HD.Template_YN <> 'Y'
11644          AND SV.Dnz_Chr_Id = HD.Id
11645          AND SV.Cle_Id IS NULL
11646          AND SV.Chr_Id = HD.Id
11647          AND SV.Lse_ID IN (1,14,19)
11648          AND CL.Cle_Id = SV.Id
11649          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11650          AND CL.Id = Cx_CovLvlLine_Id
11651          AND (Cx_BP_Id IS NULL
11652               OR
11653               EXISTS (SELECT '*'            -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11654                        FROM Okc_K_Items ITM
11655                            ,Okc_K_Lines_B BPL
11656                            ,Oks_K_Lines_B KSL
11657                       WHERE KSL.Cle_Id = SV.Id
11658                         AND BPL.Cle_Id = KSL.Coverage_ID
11659                         AND ITM.Cle_Id = BPL.Id
11660                         AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11661                         AND ITM.Object1_Id2 = '#'
11662                         AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11663                        AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt)))                       --Cv_ValFlg validation added for bugfix 14596603 by ansraj  ----added for 13795417 by ansraj
11664                         ));
11665 
11666     CURSOR Lx_Csr_Contracts2_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11667                            ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS      ----added Cd_req_dt parameter for 13795417 by ansraj
11668       SELECT HD.Id Contract_Id
11669 	    ,HD.Contract_Number
11670             ,HD.Contract_Number_Modifier
11671             ,HD.Sts_Code
11672             ,HD.Authoring_Org_Id
11673             ,HD.Inv_Organization_Id
11674             ,HD.End_Date HDR_End_Date --grace period changes
11675 	    ,SV.Id Service_Line_Id
11676             ,SV.Start_Date SV_Start_Date
11677 	    ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11678             ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11679             ,CL.Sts_Code CL_Sts_Code
11680 	    ,CL.Id CovLvl_Line_Id
11681             ,CL.Start_Date CL_Start_Date
11682 	    ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11683             ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11684        --   ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11685             ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11686         FROM OKC_K_HEADERS_ALL_B HD  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
11687             ,Okc_K_Lines_B SV
11688             ,Okc_K_Lines_B CL
11689        WHERE HD.Id = Cx_Chr_Id
11690          AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION')    -------Modified condition for ER9681794
11691          AND HD.Id > -1
11692          AND HD.Template_YN <> 'Y'
11693          AND SV.Dnz_Chr_Id = HD.Id
11694          AND SV.Cle_Id IS NULL
11695          AND SV.Chr_Id = HD.Id
11696          AND SV.Lse_ID IN (1,14,19)
11697          AND CL.Cle_Id = SV.Id
11698          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11699          AND CL.Id = Cx_CovLvlLine_Id
11700          AND (Cx_BP_Id IS NULL
11701               OR
11702               EXISTS (SELECT '*'            -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11703                        FROM Okc_K_Items ITM
11704                            ,Okc_K_Lines_B BPL
11705                            ,Oks_K_Lines_B KSL
11706                       WHERE KSL.Cle_Id = SV.Id
11707                         AND BPL.Cle_Id = KSL.Coverage_ID
11708                         AND ITM.Cle_Id = BPL.Id
11709                         AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11710                         AND ITM.Object1_Id2 = '#'
11711                         AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11712                        AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt)))                       --Cv_ValFlg validation added for bugfix 14596603 by ansraj  ----added for 13795417 by ansraj
11713                         ));
11714     --
11715     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11716     --
11717     --         EXISTS (SELECT '*'
11718     --                   FROM Okc_K_Items ITM
11719     --                       ,Okc_K_Lines_B BPL
11720     --                       ,Okc_K_Lines_B CV
11721     --                  WHERE CV.Cle_Id  = SV.Id
11722     --                    AND CV.Lse_Id IN (2,15,20)
11723     --                    AND BPL.Cle_Id = CV.Id
11724     --                    AND ITM.Cle_Id = BPL.Id
11725     --                   -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
11726     --                    AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11727     --                    AND ITM.Object1_Id2 = '#'
11728     --                   -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11729     --                    AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11730     --                    ));
11731     --
11732     --
11733 
11734 -- cursor for Cx_SrvLine_Id  is  not null and Cx_CovLvlLine_Id is not null
11735 
11736     CURSOR Lx_Csr_Contracts3(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11737                            ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS      ----added Cd_req_dt parameter for 13795417 by ansraj
11738       SELECT HD.Id Contract_Id
11739 	    ,HD.Contract_Number
11740             ,HD.Contract_Number_Modifier
11741             ,HD.Sts_Code
11742             ,HD.Authoring_Org_Id
11743             ,HD.Inv_Organization_Id
11744             ,HD.End_Date HDR_End_Date --grace period changes
11745 	    ,SV.Id Service_Line_Id
11746             ,SV.Start_Date SV_Start_Date
11747 	    ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11748             ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11749             ,CL.Sts_Code CL_Sts_Code
11750 	    ,CL.Id CovLvl_Line_Id
11751             ,CL.Start_Date CL_Start_Date
11752 	    ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11753             ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11754        --   ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11755             ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11756         FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
11757             ,Okc_K_Lines_B SV
11758             ,Okc_K_Lines_B CL
11759        WHERE HD.Id = Cx_Chr_Id
11760          AND HD.Scs_Code IN ('SERVICE','WARRANTY')
11761          AND HD.Id > -1
11762          AND HD.Template_YN <> 'Y'
11763          AND SV.Dnz_Chr_Id = HD.Id
11764          AND SV.Cle_Id IS NULL
11765          AND SV.Chr_Id = HD.Id
11766          AND SV.Lse_ID IN (1,14,19)
11767          AND SV.Id = Cx_SrvLine_Id
11768          AND CL.Cle_Id = SV.Id
11769          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11770          AND CL.Id = Cx_CovLvlLine_Id
11771          AND (Cx_BP_Id IS NULL
11772               OR
11773               EXISTS (SELECT '*'            -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11774                        FROM Okc_K_Items ITM
11775                            ,Okc_K_Lines_B BPL
11776                            ,Oks_K_Lines_B KSL
11777                       WHERE KSL.Cle_Id = SV.Id
11778                         AND BPL.Cle_Id = KSL.Coverage_ID
11779                         AND ITM.Cle_Id = BPL.Id
11780                         AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11781                         AND ITM.Object1_Id2 = '#'
11782                         AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11783                        AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt)))                       --Cv_ValFlg validation added for bugfix 14596603 by ansraj  ----added for 13795417 by ansraj
11784                         ));
11785 
11786     CURSOR Lx_Csr_Contracts3_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11787                            ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS      ----added Cd_req_dt parameter for 13795417 by ansraj
11788       SELECT HD.Id Contract_Id
11789 	    ,HD.Contract_Number
11790             ,HD.Contract_Number_Modifier
11791             ,HD.Sts_Code
11792             ,HD.Authoring_Org_Id
11793             ,HD.Inv_Organization_Id
11794             ,HD.End_Date HDR_End_Date --grace period changes
11795 	    ,SV.Id Service_Line_Id
11796             ,SV.Start_Date SV_Start_Date
11797 	    ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11798             ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11799             ,CL.Sts_Code CL_Sts_Code
11800 	    ,CL.Id CovLvl_Line_Id
11801             ,CL.Start_Date CL_Start_Date
11802 	    ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11803             ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11804        --   ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11805             ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11806         FROM OKC_K_HEADERS_ALL_B HD -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
11807             ,Okc_K_Lines_B SV
11808             ,Okc_K_Lines_B CL
11809        WHERE HD.Id = Cx_Chr_Id
11810          AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION')      ----Modified condition for ER9681794
11811          AND HD.Id > -1
11812          AND HD.Template_YN <> 'Y'
11813          AND SV.Dnz_Chr_Id = HD.Id
11814          AND SV.Cle_Id IS NULL
11815          AND SV.Chr_Id = HD.Id
11816          AND SV.Lse_ID IN (1,14,19)
11817          AND SV.Id = Cx_SrvLine_Id
11818          AND CL.Cle_Id = SV.Id
11819          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11820          AND CL.Id = Cx_CovLvlLine_Id
11821          AND (Cx_BP_Id IS NULL
11822               OR
11823               EXISTS (SELECT '*'            -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11824                        FROM Okc_K_Items ITM
11825                            ,Okc_K_Lines_B BPL
11826                            ,Oks_K_Lines_B KSL
11827                       WHERE KSL.Cle_Id = SV.Id
11828                         AND BPL.Cle_Id = KSL.Coverage_ID
11829                         AND ITM.Cle_Id = BPL.Id
11830                         AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11831                         AND ITM.Object1_Id2 = '#'
11832                         AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11833                        AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt)))                       --Cv_ValFlg validation added for bugfix 14596603 by ansraj  ----added for 13795417 by ansraj
11834                         ));
11835       --
11836       -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11837       --
11838       --      EXISTS (SELECT '*'
11839       --                FROM Okc_K_Items ITM
11840       --                     ,Okc_K_Lines_B BPL
11841       --                     ,Okc_K_Lines_B CV
11842       --                WHERE CV.Cle_Id  = SV.Id
11843       --                  AND CV.Lse_Id IN (2,15,20)
11844       --                  AND BPL.Cle_Id = CV.Id
11845       --                  AND ITM.Cle_Id = BPL.Id
11846       --                 -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
11847       --                  AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11848       --                  AND ITM.Object1_Id2 = '#'
11849       --                 -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11850       --                  AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11851       --                  ));
11852       --
11853 
11854 -- cursor for Cx_SrvLine_Id  is  null and Cx_CovLvlLine_Id is null
11855 
11856 CURSOR Lx_Csr_Contracts4(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11857                            ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS      ----added Cd_req_dt parameter for 13795417 by ansraj
11858       SELECT HD.Id Contract_Id
11859 	    ,HD.Contract_Number
11860             ,HD.Contract_Number_Modifier
11861             ,HD.Sts_Code
11862             ,HD.Authoring_Org_Id
11863             ,HD.Inv_Organization_Id
11864             ,HD.End_Date HDR_End_Date --grace period changes
11865 	    ,SV.Id Service_Line_Id
11866             ,SV.Start_Date SV_Start_Date
11867 	    ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11868             ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11869             ,CL.Sts_Code CL_Sts_Code
11870 	    ,CL.Id CovLvl_Line_Id
11871             ,CL.Start_Date CL_Start_Date
11872 	    ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11873             ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11874        --   ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11875             ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11876         FROM OKC_K_HEADERS_ALL_B HD  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
11877             ,Okc_K_Lines_B SV
11878             ,Okc_K_Lines_B CL
11879        WHERE HD.Id = Cx_Chr_Id
11880          AND HD.Scs_Code IN ('SERVICE','WARRANTY')
11881          AND HD.Id > -1
11882          AND HD.Template_YN <> 'Y'
11883          AND SV.Dnz_Chr_Id = HD.Id
11884          AND SV.Cle_Id IS NULL
11885          AND SV.Chr_Id = HD.Id
11886          AND SV.Lse_ID IN (1,14,19)
11887          AND CL.Cle_Id = SV.Id
11888          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11889          AND (Cx_BP_Id IS NULL
11890               OR
11891               EXISTS (SELECT '*'            -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11892                        FROM Okc_K_Items ITM
11893                            ,Okc_K_Lines_B BPL
11894                            ,Oks_K_Lines_B KSL
11895                       WHERE KSL.Cle_Id = SV.Id
11896                         AND BPL.Cle_Id = KSL.Coverage_ID
11897                         AND ITM.Cle_Id = BPL.Id
11898                         AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11899                         AND ITM.Object1_Id2 = '#'
11900                         AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11901                        AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt)))                       --Cv_ValFlg validation added for bugfix 14596603 by ansraj  ----added for 13795417 by ansraj
11902                         ));
11903 
11904     CURSOR Lx_Csr_Contracts4_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
11905                            ,Cx_CovLvlLine_Id IN Gx_OKS_Id, Cx_BP_Id IN Gx_BusProcess_Id,Cv_Cont_Pty_Id IN VARCHAR2, Cd_req_dt IN DATE, Cv_ValFlg IN VARCHAR2) IS      ----added Cd_req_dt parameter for 13795417 by ansraj
11906 
11907       SELECT HD.Id Contract_Id
11908 	    ,HD.Contract_Number
11909             ,HD.Contract_Number_Modifier
11910             ,HD.Sts_Code
11911             ,HD.Authoring_Org_Id
11912             ,HD.Inv_Organization_Id
11913             ,HD.End_Date HDR_End_Date --grace period changes
11914 	    ,SV.Id Service_Line_Id
11915             ,SV.Start_Date SV_Start_Date
11916 	    ,Get_End_Date_Time(SV.End_Date) SV_End_Date
11917             ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
11918             ,CL.Sts_Code CL_Sts_Code
11919 	    ,CL.Id CovLvl_Line_Id
11920             ,CL.Start_Date CL_Start_Date
11921 	    ,Get_End_Date_Time(CL.End_Date) CL_End_Date
11922             ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
11923        --   ,DECODE(SV.Lse_Id,14,'Y','N') Warranty_Flag
11924             ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
11925         FROM OKC_K_HEADERS_ALL_B HD  -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
11926             ,Okc_K_Lines_B SV
11927             ,Okc_K_Lines_B CL
11928        WHERE HD.Id = Cx_Chr_Id
11929          AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION')      ----Modified condition for ER9681794
11930          AND HD.Id > -1
11931          AND HD.Template_YN <> 'Y'
11932          AND SV.Dnz_Chr_Id = HD.Id
11933          AND SV.Cle_Id IS NULL
11934          AND SV.Chr_Id = HD.Id
11935          AND SV.Lse_ID IN (1,14,19)
11936          AND CL.Cle_Id = SV.Id
11937          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
11938          AND (Cx_BP_Id IS NULL
11939               OR
11940               EXISTS (SELECT '*'            -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11941                        FROM Okc_K_Items ITM
11942                            ,Okc_K_Lines_B BPL
11943                            ,Oks_K_Lines_B KSL
11944                       WHERE KSL.Cle_Id = SV.Id
11945                         AND BPL.Cle_Id = KSL.Coverage_ID
11946                         AND ITM.Cle_Id = BPL.Id
11947                         AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11948                         AND ITM.Object1_Id2 = '#'
11949                         AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11950                        AND (Cv_ValFlg <> 'T' OR (Cd_req_dt BETWEEN nvl(BPL.START_DATE,Cd_req_dt) AND nvl(BPL.END_DATE,Cd_req_dt)))                       --Cv_ValFlg validation added for bugfix 14596603 by ansraj  ----added for 13795417 by ansraj
11951                         ));
11952       --
11953       -- Modified for 12.0 Coverage Rearch project (JVARGHES)
11954       --
11955       --
11956       --        EXISTS (SELECT '*'
11957       --                 FROM Okc_K_Items ITM
11958       --                     ,Okc_K_Lines_B BPL
11959       --                     ,Okc_K_Lines_B CV
11960       --                WHERE CV.Cle_Id  = SV.Id
11961       --                  AND CV.Lse_Id IN (2,15,20)
11962       --                  AND BPL.Cle_Id = CV.Id
11963       --                  AND ITM.Cle_Id = BPL.Id
11964       --                 -- AND ITM.Object1_Id1 = TO_CHAR(Cx_BP_Id)
11965       --                  AND ITM.OBJECT1_ID1||''  = TO_CHAR(Cx_BP_Id)
11966       --                  AND ITM.Object1_Id2 = '#'
11967       --                 -- AND ITM.Jtot_Object1_Code = 'OKX_BUSIPROC'
11968       --                  AND ITM.JTOT_OBJECT1_CODE||'' = 'OKX_BUSIPROC'
11969       --                  ));
11970       --
11971 
11972     Lx_Contracts             GT_Contract_Ref;
11973     Ld_Request_Date          DATE;
11974     Lv_Validate_Flag         VARCHAR2(1);
11975     Lv_SrvLine_Flag          CONSTANT VARCHAR2(1) := P_SrvLine_Flag;
11976     Lv_Sort_Key              CONSTANT VARCHAR2(10):= P_Sort_Key;
11977 
11978     Lx_BusiProc_Id	     CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
11979     Lx_Severity_Id	     CONSTANT Gx_Severity_Id := P_Severity_Id;
11980     Lx_Request_TZone_Id	     CONSTANT Gx_TimeZoneId := P_Request_TZone_Id;
11981     Lv_Calc_RespTime_YN      CONSTANT VARCHAR2(1) := P_Calc_RespTime_YN;
11982     Lv_Validate_Eff          CONSTANT VARCHAR2(1) := P_Validate_Eff;
11983     Lv_Cont_Pty_Id           VARCHAR2(100);
11984 
11985     /*vgujarat - modified for access hour ER 9675504*/
11986     Lx_cust_id               NUMBER := P_cust_id;      --access hour
11987     Lx_cust_site_id          NUMBER := P_cust_site_id; --access hour
11988     Lx_cust_loc_id           NUMBER := P_cust_loc_id;  --access hour
11989 
11990     Lx_Contracts_02          Get_ConTop_Tbl;
11991     Lx_Contracts_02_Out      Get_ConTop_Tbl;
11992     Lx_Contracts_02_Val      Get_ConTop_Tbl;
11993 
11994     Lx_Idx_Rec               Idx_Rec;
11995 
11996     Lx_Result                Gx_Boolean;
11997     Lx_Return_Status         Gx_Ret_Sts;
11998     Lx_Result1               Gx_Boolean;
11999     Lx_Return_Status1        Gx_Ret_Sts;
12000     Lx_Result2               Gx_Boolean;
12001     Lx_Return_Status2        Gx_Ret_Sts;
12002     Lx_Result3               Gx_Boolean;
12003     Lx_Return_Status3        Gx_Ret_Sts;
12004 
12005     Lx_Cov_Type_Code         Oks_Cov_Types_B.Code%TYPE;
12006     Lx_Cov_Type_Meaning      Oks_Cov_Types_TL.Meaning%TYPE;
12007     Lx_Cov_Type_Description  Oks_Cov_Types_TL.Description%TYPE;
12008     Lx_Cov_Type_Imp_Level    Oks_Cov_Types_B.Importance_Level%TYPE;
12009 
12010     Li_TableIdx              BINARY_INTEGER;
12011     Li_OutTab_Idx            BINARY_INTEGER;
12012     Lv_Entile_Flag           VARCHAR2(1);
12013     Lv_Effective_Falg        VARCHAR2(1);
12014 
12015     Lx_SrvLine_Id            Gx_OKS_Id;
12016     Lx_CovLvlLine_Id         Gx_OKS_Id;
12017 
12018     Ld_SRV_Eff_End_Date      DATE;
12019     Ld_COV_Eff_End_Date      DATE;
12020     Ld_CVL_Eff_End_Date      DATE;
12021 
12022     Lv_Srv_Name              Okx_System_Items_V.Name%TYPE;            --VARCHAR2(150) ;
12023     Lv_Srv_Description       Okx_System_Items_V.Description%TYPE;     --VARCHAR2(1995);
12024     Lv_Prof_Srv_Name         VARCHAR2(300) ;
12025     Lv_Prof_Srv_Desc         VARCHAR2(300);
12026 
12027     Lv_Cov_Name              Okc_K_Lines_V.Name%TYPE;                 --VARCHAR2(150) ;
12028     Lv_Cov_Description       Okc_K_Lines_V.Item_Description%TYPE;     --VARCHAR2(1995);
12029 
12030     Lx_React_Durn	     Gx_ReactDurn;
12031     Lx_React_UOM 	     Gx_ReactUOM;
12032     Lv_React_Day             VARCHAR2(20);
12033     Ld_React_By_DateTime     DATE;
12034     Ld_React_Start_DateTime  DATE;
12035 
12036     Lx_Resln_Durn	     Gx_ReactDurn;
12037     Lx_Resln_UOM 	     Gx_ReactUOM;
12038     Lv_Resln_Day             VARCHAR2(20);
12039     Ld_Resln_By_DateTime     DATE;
12040     Ld_Resln_Start_DateTime  DATE;
12041 
12042     Ln_Msg_Count	     NUMBER;
12043     Lv_Msg_Data		     VARCHAR2(2000);
12044 
12045     Lv_RCN_RSN_Flag          VARCHAR2(10);
12046     Lb_RSN_CTXT_Exists       BOOLEAN;
12047 
12048     Lx_CovLine_Id            Gx_OKS_Id;
12049     Ld_Cov_StDate            DATE;
12050     Ld_Cov_EdDate            DATE;
12051     Ld_Cov_TnDate            DATE;
12052     Lv_Cov_Check             VARCHAR2(1);
12053 
12054     Lv_Prof_Name             CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
12055     Lv_Prof_Value            VARCHAR2(300);
12056 
12057     -- Added for 12.0 ENT-TZ project (JVARGHES)
12058 
12059     Lv_Dates_In_Input_TZ    VARCHAR2(1);
12060     Ld_INCIDENT_DATE        DATE;
12061 
12062     --
12063 
12064     L_EXCEP_UNEXPECTED_ERR   EXCEPTION;
12065 
12066   BEGIN
12067 
12068     Lx_Contracts             := P_Contracts;
12069     Ld_Request_Date          := nvl(P_Request_Date,sysdate);
12070     Lv_Validate_Flag         := P_Validate_Flag;
12071 
12072     -- Added for 12.0 ENT-TZ project (JVARGHES)
12073 
12074     Lv_Dates_In_Input_TZ     := P_Dates_In_Input_TZ;
12075     Ld_Incident_Date         := P_Incident_Date;
12076 
12077     --
12078 
12079     Lx_Result                := G_TRUE;
12080     Lx_Return_Status         := G_RET_STS_SUCCESS;
12081     Lx_Result1               := G_TRUE;
12082     Lx_Return_Status1        := G_RET_STS_SUCCESS;
12083     Lx_Result2               := G_TRUE;
12084     Lx_Return_Status2        := G_RET_STS_SUCCESS;
12085     Lx_Result3               := G_TRUE;
12086     Lx_Return_Status3        := G_RET_STS_SUCCESS;
12087 
12088     Li_OutTab_Idx            := 0;
12089 
12090 
12091     Li_TableIdx  := Lx_Contracts.FIRST;
12092 
12093     WHILE Li_TableIdx IS NOT NULL LOOP
12094 
12095       IF Lv_SrvLine_Flag = 'T' THEN
12096 
12097         Lx_SrvLine_Id     := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
12098         Lx_CovLvlLine_Id  := NULL;
12099 
12100       ELSE
12101 
12102         Lx_SrvLine_Id     := NULL;
12103         Lx_CovLvlLine_Id  := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
12104 
12105       END IF;
12106 
12107       Lv_Cont_Pty_Id  := TO_CHAR(Lx_Contracts(Li_TableIdx).Rx_Pty_Id);
12108 
12109    IF Lx_SrvLine_Id  is  not null and Lx_CovLvlLine_Id is null then
12110 
12111      /*added for ER9681794*/
12112      IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
12113 
12114       FOR Idx IN Lx_Csr_Contracts1_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12115 
12116         Lx_Idx_Rec.Contract_Id                  := Idx.Contract_Id;
12117         Lx_Idx_Rec.Contract_Number              := Idx.Contract_Number;
12118         Lx_Idx_Rec.Contract_Number_Modifier     := Idx.Contract_Number_Modifier;
12119         Lx_Idx_Rec.Sts_Code                     := Idx.Sts_Code;
12120         Lx_Idx_Rec.Authoring_Org_Id             := Idx.Authoring_Org_Id;
12121         Lx_Idx_Rec.Inv_Organization_Id          := Idx.Inv_Organization_Id;
12122         Lx_Idx_Rec.HDR_End_Date                 := Idx.HDR_End_Date;
12123         Lx_Idx_Rec.Service_Line_Id              := Idx.Service_Line_Id;
12124         Lx_Idx_Rec.SV_Start_Date                := Idx.SV_Start_Date;
12125         Lx_Idx_Rec.SV_End_Date                  := Idx.SV_End_Date;
12126         Lx_Idx_Rec.SV_Date_Terminated           := Idx.SV_Date_Terminated;
12127         Lx_Idx_Rec.CL_Sts_Code                  := Idx.CL_Sts_Code;
12128         Lx_Idx_Rec.CovLvl_Line_Id               := Idx.CovLvl_Line_Id;
12129         Lx_Idx_Rec.CL_Start_Date                := Idx.CL_Start_Date;
12130         Lx_Idx_Rec.CL_End_Date                  := Idx.CL_End_Date;
12131         Lx_Idx_Rec.CL_Date_Terminated           := Idx.CL_Date_Terminated;
12132         Lx_Idx_Rec.Warranty_Flag                := Idx.Warranty_Flag;
12133 
12134     /*vgujarat - modified for access hour ER 9675504*/
12135         Get_Cont02Format_Validation
12136             (P_Contracts            => Lx_Idx_Rec
12137             ,P_BusiProc_Id	      => Lx_BusiProc_Id
12138             ,P_Severity_Id	      => Lx_Severity_Id
12139             ,P_Request_TZone_Id	=> Lx_Request_TZone_Id
12140     	      ,P_Dates_In_Input_TZ    => Lv_Dates_In_Input_TZ      -- Added for 12.0 ENT-TZ project (JVARGHES)
12141 	      ,P_Incident_Date        => Ld_Incident_Date          -- Added for 12.0 ENT-TZ project (JVARGHES)
12142             ,P_Request_Date         => Ld_Request_Date
12143             ,P_Request_Date_Start   => NULL
12144             ,P_Request_Date_End     => NULL
12145             ,P_Calc_RespTime_YN     => Lv_Calc_RespTime_YN
12146             ,P_Validate_Eff         => Lv_Validate_Eff
12147             ,P_Validate_Flag        => Lv_Validate_Flag
12148             ,P_SrvLine_Flag         => Lv_SrvLine_Flag
12149             ,P_Sort_Key             => Lv_Sort_Key
12150             ,X_Contracts_02         => Lx_Contracts_02_Val
12151             ,X_Result               => Lx_Result
12152             ,X_Return_Status   	    => Lx_Return_Status
12153             ,P_cust_id              => Lx_cust_id         --access hour
12154             ,P_cust_site_id         => Lx_cust_site_id    --access hour
12155             ,P_cust_loc_id          => Lx_cust_loc_id);   --access hour
12156 
12157         IF Lx_Contracts_02_Val.COUNT > 0 THEN
12158 
12159          Li_OutTab_Idx := Li_OutTab_Idx + 1;
12160 
12161           Lx_Contracts_02(Li_OutTab_Idx).Contract_Id                 := Lx_Contracts_02_Val(1).Contract_Id;
12162           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts_02_Val(1).Contract_Number;
12163           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12164      --   Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12165           Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12166           Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id             := Lx_Contracts_02_Val(1).Service_Line_Id;
12167           Lx_Contracts_02(Li_OutTab_Idx).Service_Name                := Lx_Contracts_02_Val(1).Service_Name;
12168           Lx_Contracts_02(Li_OutTab_Idx).Service_Description         := Lx_Contracts_02_Val(1).Service_Description;
12169      --   Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12170      --   Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12171           Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12172           Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12173           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12174           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name          := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12175           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description   := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12176           Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag               := Lx_Contracts_02_Val(1).Warranty_Flag;
12177           Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement    := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12178           Lx_Contracts_02(Li_OutTab_Idx).date_terminated	         := Lx_Contracts_02_Val(1).date_terminated;
12179           Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time           := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12180           Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time         := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12181           Lx_Contracts_02(Li_OutTab_Idx).Status_Code                 := Lx_Contracts_02_Val(1).Status_Code;
12182           Lx_Contracts_02(Li_OutTab_Idx).Status_Text                 := Lx_Contracts_02_Val(1).Status_Text;
12183           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code          := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12184           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning       := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12185           Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level     := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12186 
12187           Lx_Contracts_02(Li_OutTab_Idx).service_po_number           := Lx_Contracts_02_Val(1).service_po_number;
12188           Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag    := Lx_Contracts_02_Val(1).service_po_required_flag;
12189 
12190           --Added for IB OA Pages (JVARGHES)
12191           Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id              := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12192           --
12193 
12194           Lx_Contracts_02_Val.DELETE;
12195 
12196        END IF;
12197 
12198         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12199             RAISE L_EXCEP_UNEXPECTED_ERR;
12200         END IF;
12201 
12202       END LOOP;
12203 
12204     ELSE
12205 
12206     /*added for ER9681794*/
12207 
12208     FOR Idx IN Lx_Csr_Contracts1(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12209 
12210         Lx_Idx_Rec.Contract_Id                  := Idx.Contract_Id;
12211         Lx_Idx_Rec.Contract_Number              := Idx.Contract_Number;
12212         Lx_Idx_Rec.Contract_Number_Modifier     := Idx.Contract_Number_Modifier;
12213         Lx_Idx_Rec.Sts_Code                     := Idx.Sts_Code;
12214         Lx_Idx_Rec.Authoring_Org_Id             := Idx.Authoring_Org_Id;
12215         Lx_Idx_Rec.Inv_Organization_Id          := Idx.Inv_Organization_Id;
12216         Lx_Idx_Rec.HDR_End_Date                 := Idx.HDR_End_Date;
12217         Lx_Idx_Rec.Service_Line_Id              := Idx.Service_Line_Id;
12218         Lx_Idx_Rec.SV_Start_Date                := Idx.SV_Start_Date;
12219         Lx_Idx_Rec.SV_End_Date                  := Idx.SV_End_Date;
12220         Lx_Idx_Rec.SV_Date_Terminated           := Idx.SV_Date_Terminated;
12221         Lx_Idx_Rec.CL_Sts_Code                  := Idx.CL_Sts_Code;
12222         Lx_Idx_Rec.CovLvl_Line_Id               := Idx.CovLvl_Line_Id;
12223         Lx_Idx_Rec.CL_Start_Date                := Idx.CL_Start_Date;
12224         Lx_Idx_Rec.CL_End_Date                  := Idx.CL_End_Date;
12225         Lx_Idx_Rec.CL_Date_Terminated           := Idx.CL_Date_Terminated;
12226         Lx_Idx_Rec.Warranty_Flag                := Idx.Warranty_Flag;
12227 
12228     /*vgujarat - modified for access hour ER 9675504*/
12229         Get_Cont02Format_Validation
12230             (P_Contracts            => Lx_Idx_Rec
12231             ,P_BusiProc_Id	      => Lx_BusiProc_Id
12232             ,P_Severity_Id	      => Lx_Severity_Id
12233             ,P_Request_TZone_Id	=> Lx_Request_TZone_Id
12234     	      ,P_Dates_In_Input_TZ    => Lv_Dates_In_Input_TZ      -- Added for 12.0 ENT-TZ project (JVARGHES)
12235 	      ,P_Incident_Date        => Ld_Incident_Date          -- Added for 12.0 ENT-TZ project (JVARGHES)
12236             ,P_Request_Date         => Ld_Request_Date
12237             ,P_Request_Date_Start   => NULL
12238             ,P_Request_Date_End     => NULL
12239             ,P_Calc_RespTime_YN     => Lv_Calc_RespTime_YN
12240             ,P_Validate_Eff         => Lv_Validate_Eff
12241             ,P_Validate_Flag        => Lv_Validate_Flag
12242             ,P_SrvLine_Flag         => Lv_SrvLine_Flag
12243             ,P_Sort_Key             => Lv_Sort_Key
12244             ,X_Contracts_02         => Lx_Contracts_02_Val
12245             ,X_Result               => Lx_Result
12246             ,X_Return_Status   	    => Lx_Return_Status
12247             ,P_cust_id              => Lx_cust_id         --access hour
12248             ,P_cust_site_id         => Lx_cust_site_id    --access hour
12249             ,P_cust_loc_id          => Lx_cust_loc_id);   --access hour
12250 
12251         IF Lx_Contracts_02_Val.COUNT > 0 THEN
12252 
12253          Li_OutTab_Idx := Li_OutTab_Idx + 1;
12254 
12255           Lx_Contracts_02(Li_OutTab_Idx).Contract_Id                 := Lx_Contracts_02_Val(1).Contract_Id;
12256           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts_02_Val(1).Contract_Number;
12257           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12258      --   Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12259           Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12260           Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id             := Lx_Contracts_02_Val(1).Service_Line_Id;
12261           Lx_Contracts_02(Li_OutTab_Idx).Service_Name                := Lx_Contracts_02_Val(1).Service_Name;
12262           Lx_Contracts_02(Li_OutTab_Idx).Service_Description         := Lx_Contracts_02_Val(1).Service_Description;
12263      --   Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12264      --   Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12265           Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12266           Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12267           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12268           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name          := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12269           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description   := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12270           Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag               := Lx_Contracts_02_Val(1).Warranty_Flag;
12271           Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement    := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12272           Lx_Contracts_02(Li_OutTab_Idx).date_terminated	         := Lx_Contracts_02_Val(1).date_terminated;
12273           Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time           := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12274           Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time         := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12275           Lx_Contracts_02(Li_OutTab_Idx).Status_Code                 := Lx_Contracts_02_Val(1).Status_Code;
12276           Lx_Contracts_02(Li_OutTab_Idx).Status_Text                 := Lx_Contracts_02_Val(1).Status_Text;
12277           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code          := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12278           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning       := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12279           Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level     := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12280 
12281           Lx_Contracts_02(Li_OutTab_Idx).service_po_number           := Lx_Contracts_02_Val(1).service_po_number;
12282           Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag    := Lx_Contracts_02_Val(1).service_po_required_flag;
12283 
12284           --Added for IB OA Pages (JVARGHES)
12285           Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id              := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12286           --
12287 
12288           Lx_Contracts_02_Val.DELETE;
12289 
12290        END IF;
12291 
12292         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12293             RAISE L_EXCEP_UNEXPECTED_ERR;
12294         END IF;
12295 
12296       END LOOP;
12297 
12298      END IF;   /*added for ER9681794*/
12299 
12300       Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
12301 
12302 
12303    ELSIF Lx_SrvLine_Id  is   null and Lx_CovLvlLine_Id is not null then
12304 
12305       /*Added for ER9681794*/
12306      IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
12307 
12308       FOR Idx IN Lx_Csr_Contracts2_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12309 
12310         Lx_Idx_Rec.Contract_Id                  := Idx.Contract_Id;
12311         Lx_Idx_Rec.Contract_Number              := Idx.Contract_Number;
12312         Lx_Idx_Rec.Contract_Number_Modifier     := Idx.Contract_Number_Modifier;
12313         Lx_Idx_Rec.Sts_Code                     := Idx.Sts_Code;
12314         Lx_Idx_Rec.Authoring_Org_Id             := Idx.Authoring_Org_Id;
12315         Lx_Idx_Rec.Inv_Organization_Id          := Idx.Inv_Organization_Id;
12316         Lx_Idx_Rec.HDR_End_Date                 := Idx.HDR_End_Date;
12317         Lx_Idx_Rec.Service_Line_Id              := Idx.Service_Line_Id;
12318         Lx_Idx_Rec.SV_Start_Date                := Idx.SV_Start_Date;
12319         Lx_Idx_Rec.SV_End_Date                  := Idx.SV_End_Date;
12320         Lx_Idx_Rec.SV_Date_Terminated           := Idx.SV_Date_Terminated;
12321         Lx_Idx_Rec.CL_Sts_Code                  := Idx.CL_Sts_Code;
12322         Lx_Idx_Rec.CovLvl_Line_Id               := Idx.CovLvl_Line_Id;
12323         Lx_Idx_Rec.CL_Start_Date                := Idx.CL_Start_Date;
12324         Lx_Idx_Rec.CL_End_Date                  := Idx.CL_End_Date;
12325         Lx_Idx_Rec.CL_Date_Terminated           := Idx.CL_Date_Terminated;
12326         Lx_Idx_Rec.Warranty_Flag                := Idx.Warranty_Flag;
12327 
12328     /*vgujarat - modified for access hour ER 9675504*/
12329         Get_Cont02Format_Validation
12330             (P_Contracts            => Lx_Idx_Rec
12331             ,P_BusiProc_Id	        => Lx_BusiProc_Id
12332             ,P_Severity_Id	        => Lx_Severity_Id
12333             ,P_Request_TZone_Id	    => Lx_Request_TZone_Id
12334     	      ,P_Dates_In_Input_TZ    => Lv_Dates_In_Input_TZ      -- Added for 12.0 ENT-TZ project (JVARGHES)
12335 	      ,P_Incident_Date        => Ld_Incident_Date          -- Added for 12.0 ENT-TZ project (JVARGHES)
12336             ,P_Request_Date         => Ld_Request_Date
12337             ,P_Request_Date_Start   => NULL
12338             ,P_Request_Date_End     => NULL
12339             ,P_Calc_RespTime_YN     => Lv_Calc_RespTime_YN
12340             ,P_Validate_Eff         => Lv_Validate_Eff
12341             ,P_Validate_Flag        => Lv_Validate_Flag
12342             ,P_SrvLine_Flag         => Lv_SrvLine_Flag
12343             ,P_Sort_Key             => Lv_Sort_Key
12344             ,X_Contracts_02         => Lx_Contracts_02_Val
12345             ,X_Result               => Lx_Result
12346             ,X_Return_Status   	    => Lx_Return_Status
12347             ,P_cust_id              => Lx_cust_id         --access hour
12348             ,P_cust_site_id         => Lx_cust_site_id    --access hour
12349             ,P_cust_loc_id          => Lx_cust_loc_id);   --access hour
12350 
12351         IF Lx_Contracts_02_Val.COUNT > 0 THEN
12352 
12353          Li_OutTab_Idx := Li_OutTab_Idx + 1;
12354 
12355           Lx_Contracts_02(Li_OutTab_Idx).Contract_Id                 := Lx_Contracts_02_Val(1).Contract_Id;
12356           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts_02_Val(1).Contract_Number;
12357           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12358      --   Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12359           Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12360           Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id             := Lx_Contracts_02_Val(1).Service_Line_Id;
12361           Lx_Contracts_02(Li_OutTab_Idx).Service_Name                := Lx_Contracts_02_Val(1).Service_Name;
12362           Lx_Contracts_02(Li_OutTab_Idx).Service_Description         := Lx_Contracts_02_Val(1).Service_Description;
12363      --   Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12364      --   Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12365           Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12366           Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12367           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12368           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name          := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12369           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description   := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12370           Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag               := Lx_Contracts_02_Val(1).Warranty_Flag;
12371           Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement    := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12372           Lx_Contracts_02(Li_OutTab_Idx).date_terminated	         := Lx_Contracts_02_Val(1).date_terminated;
12373           Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time           := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12374           Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time         := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12375           Lx_Contracts_02(Li_OutTab_Idx).Status_Code                 := Lx_Contracts_02_Val(1).Status_Code;
12376           Lx_Contracts_02(Li_OutTab_Idx).Status_Text                 := Lx_Contracts_02_Val(1).Status_Text;
12377           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code          := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12378           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning       := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12379           Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level     := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12380 
12381           Lx_Contracts_02(Li_OutTab_Idx).service_po_number           := Lx_Contracts_02_Val(1).service_po_number;
12382           Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag    := Lx_Contracts_02_Val(1).service_po_required_flag;
12383 
12384           --Added for IB OA Pages (JVARGHES)
12385           Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id              := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12386           --
12387 
12388           Lx_Contracts_02_Val.DELETE;
12389 
12390        END IF;
12391 
12392         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12393             RAISE L_EXCEP_UNEXPECTED_ERR;
12394         END IF;
12395 
12396       END LOOP;
12397 
12398     ELSE
12399 
12400      /*added for ER9681794*/
12401 
12402      FOR Idx IN Lx_Csr_Contracts2(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12403 
12404         Lx_Idx_Rec.Contract_Id                  := Idx.Contract_Id;
12405         Lx_Idx_Rec.Contract_Number              := Idx.Contract_Number;
12406         Lx_Idx_Rec.Contract_Number_Modifier     := Idx.Contract_Number_Modifier;
12407         Lx_Idx_Rec.Sts_Code                     := Idx.Sts_Code;
12408         Lx_Idx_Rec.Authoring_Org_Id             := Idx.Authoring_Org_Id;
12409         Lx_Idx_Rec.Inv_Organization_Id          := Idx.Inv_Organization_Id;
12410         Lx_Idx_Rec.HDR_End_Date                 := Idx.HDR_End_Date;
12411         Lx_Idx_Rec.Service_Line_Id              := Idx.Service_Line_Id;
12412         Lx_Idx_Rec.SV_Start_Date                := Idx.SV_Start_Date;
12413         Lx_Idx_Rec.SV_End_Date                  := Idx.SV_End_Date;
12414         Lx_Idx_Rec.SV_Date_Terminated           := Idx.SV_Date_Terminated;
12415         Lx_Idx_Rec.CL_Sts_Code                  := Idx.CL_Sts_Code;
12416         Lx_Idx_Rec.CovLvl_Line_Id               := Idx.CovLvl_Line_Id;
12417         Lx_Idx_Rec.CL_Start_Date                := Idx.CL_Start_Date;
12418         Lx_Idx_Rec.CL_End_Date                  := Idx.CL_End_Date;
12419         Lx_Idx_Rec.CL_Date_Terminated           := Idx.CL_Date_Terminated;
12420         Lx_Idx_Rec.Warranty_Flag                := Idx.Warranty_Flag;
12421 
12422     /*vgujarat - modified for access hour ER 9675504*/
12423         Get_Cont02Format_Validation
12424             (P_Contracts            => Lx_Idx_Rec
12425             ,P_BusiProc_Id	        => Lx_BusiProc_Id
12426             ,P_Severity_Id	        => Lx_Severity_Id
12427             ,P_Request_TZone_Id	    => Lx_Request_TZone_Id
12428     	      ,P_Dates_In_Input_TZ    => Lv_Dates_In_Input_TZ      -- Added for 12.0 ENT-TZ project (JVARGHES)
12429 	      ,P_Incident_Date        => Ld_Incident_Date          -- Added for 12.0 ENT-TZ project (JVARGHES)
12430             ,P_Request_Date         => Ld_Request_Date
12431             ,P_Request_Date_Start   => NULL
12432             ,P_Request_Date_End     => NULL
12433             ,P_Calc_RespTime_YN     => Lv_Calc_RespTime_YN
12434             ,P_Validate_Eff         => Lv_Validate_Eff
12435             ,P_Validate_Flag        => Lv_Validate_Flag
12436             ,P_SrvLine_Flag         => Lv_SrvLine_Flag
12437             ,P_Sort_Key             => Lv_Sort_Key
12438             ,X_Contracts_02         => Lx_Contracts_02_Val
12439             ,X_Result               => Lx_Result
12440             ,X_Return_Status   	    => Lx_Return_Status
12441             ,P_cust_id              => Lx_cust_id         --access hour
12442             ,P_cust_site_id         => Lx_cust_site_id    --access hour
12443             ,P_cust_loc_id          => Lx_cust_loc_id);   --access hour
12444 
12445         IF Lx_Contracts_02_Val.COUNT > 0 THEN
12446 
12447          Li_OutTab_Idx := Li_OutTab_Idx + 1;
12448 
12449           Lx_Contracts_02(Li_OutTab_Idx).Contract_Id                 := Lx_Contracts_02_Val(1).Contract_Id;
12450           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts_02_Val(1).Contract_Number;
12451           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12452      --   Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12453           Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12454           Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id             := Lx_Contracts_02_Val(1).Service_Line_Id;
12455           Lx_Contracts_02(Li_OutTab_Idx).Service_Name                := Lx_Contracts_02_Val(1).Service_Name;
12456           Lx_Contracts_02(Li_OutTab_Idx).Service_Description         := Lx_Contracts_02_Val(1).Service_Description;
12457      --   Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12458      --   Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12459           Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12460           Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12461           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12462           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name          := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12463           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description   := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12464           Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag               := Lx_Contracts_02_Val(1).Warranty_Flag;
12465           Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement    := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12466           Lx_Contracts_02(Li_OutTab_Idx).date_terminated	         := Lx_Contracts_02_Val(1).date_terminated;
12467           Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time           := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12468           Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time         := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12469           Lx_Contracts_02(Li_OutTab_Idx).Status_Code                 := Lx_Contracts_02_Val(1).Status_Code;
12470           Lx_Contracts_02(Li_OutTab_Idx).Status_Text                 := Lx_Contracts_02_Val(1).Status_Text;
12471           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code          := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12472           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning       := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12473           Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level     := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12474 
12475           Lx_Contracts_02(Li_OutTab_Idx).service_po_number           := Lx_Contracts_02_Val(1).service_po_number;
12476           Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag    := Lx_Contracts_02_Val(1).service_po_required_flag;
12477 
12478           --Added for IB OA Pages (JVARGHES)
12479           Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id              := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12480           --
12481 
12482           Lx_Contracts_02_Val.DELETE;
12483 
12484        END IF;
12485 
12486         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12487             RAISE L_EXCEP_UNEXPECTED_ERR;
12488         END IF;
12489 
12490       END LOOP;
12491 
12492      END IF;  /*added for ER9681794*/
12493 
12494       Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
12495 
12496 
12497    ELSIF Lx_SrvLine_Id  is   not null and Lx_CovLvlLine_Id is not null then
12498 
12499       /*Added for ER9681794*/
12500       IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
12501 
12502       FOR Idx IN Lx_Csr_Contracts3_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12503 
12504         Lx_Idx_Rec.Contract_Id                  := Idx.Contract_Id;
12505         Lx_Idx_Rec.Contract_Number              := Idx.Contract_Number;
12506         Lx_Idx_Rec.Contract_Number_Modifier     := Idx.Contract_Number_Modifier;
12507         Lx_Idx_Rec.Sts_Code                     := Idx.Sts_Code;
12508         Lx_Idx_Rec.Authoring_Org_Id             := Idx.Authoring_Org_Id;
12509         Lx_Idx_Rec.Inv_Organization_Id          := Idx.Inv_Organization_Id;
12510         Lx_Idx_Rec.HDR_End_Date                 := Idx.HDR_End_Date;
12511         Lx_Idx_Rec.Service_Line_Id              := Idx.Service_Line_Id;
12512         Lx_Idx_Rec.SV_Start_Date                := Idx.SV_Start_Date;
12513         Lx_Idx_Rec.SV_End_Date                  := Idx.SV_End_Date;
12514         Lx_Idx_Rec.SV_Date_Terminated           := Idx.SV_Date_Terminated;
12515         Lx_Idx_Rec.CL_Sts_Code                  := Idx.CL_Sts_Code;
12516         Lx_Idx_Rec.CovLvl_Line_Id               := Idx.CovLvl_Line_Id;
12517         Lx_Idx_Rec.CL_Start_Date                := Idx.CL_Start_Date;
12518         Lx_Idx_Rec.CL_End_Date                  := Idx.CL_End_Date;
12519         Lx_Idx_Rec.CL_Date_Terminated           := Idx.CL_Date_Terminated;
12520         Lx_Idx_Rec.Warranty_Flag                := Idx.Warranty_Flag;
12521 
12522     /*vgujarat - modified for access hour ER 9675504*/
12523         Get_Cont02Format_Validation
12524             (P_Contracts            => Lx_Idx_Rec
12525             ,P_BusiProc_Id	        => Lx_BusiProc_Id
12526             ,P_Severity_Id	        => Lx_Severity_Id
12527             ,P_Request_TZone_Id	    => Lx_Request_TZone_Id
12528     	      ,P_Dates_In_Input_TZ    => Lv_Dates_In_Input_TZ      -- Added for 12.0 ENT-TZ project (JVARGHES)
12529 	      ,P_Incident_Date        => Ld_Incident_Date          -- Added for 12.0 ENT-TZ project (JVARGHES)
12530             ,P_Request_Date         => Ld_Request_Date
12531             ,P_Request_Date_Start   => NULL
12532             ,P_Request_Date_End     => NULL
12533             ,P_Calc_RespTime_YN     => Lv_Calc_RespTime_YN
12534             ,P_Validate_Eff         => Lv_Validate_Eff
12535             ,P_Validate_Flag        => Lv_Validate_Flag
12536             ,P_SrvLine_Flag         => Lv_SrvLine_Flag
12537             ,P_Sort_Key             => Lv_Sort_Key
12538             ,X_Contracts_02         => Lx_Contracts_02_Val
12539             ,X_Result               => Lx_Result
12540             ,X_Return_Status   	    => Lx_Return_Status
12541             ,P_cust_id              => Lx_cust_id         --access hour
12542             ,P_cust_site_id         => Lx_cust_site_id    --access hour
12543             ,P_cust_loc_id          => Lx_cust_loc_id);   --access hour
12544         IF Lx_Contracts_02_Val.COUNT > 0 THEN
12545 
12546          Li_OutTab_Idx := Li_OutTab_Idx + 1;
12547 
12548           Lx_Contracts_02(Li_OutTab_Idx).Contract_Id                 := Lx_Contracts_02_Val(1).Contract_Id;
12549           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts_02_Val(1).Contract_Number;
12550           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12551      --   Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12552           Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12553           Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id             := Lx_Contracts_02_Val(1).Service_Line_Id;
12554           Lx_Contracts_02(Li_OutTab_Idx).Service_Name                := Lx_Contracts_02_Val(1).Service_Name;
12555           Lx_Contracts_02(Li_OutTab_Idx).Service_Description         := Lx_Contracts_02_Val(1).Service_Description;
12556      --   Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12557      --   Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12558           Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12559           Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12560           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12561           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name          := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12562           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description   := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12563           Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag               := Lx_Contracts_02_Val(1).Warranty_Flag;
12564           Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement    := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12565           Lx_Contracts_02(Li_OutTab_Idx).date_terminated	         := Lx_Contracts_02_Val(1).date_terminated;
12566           Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time           := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12567           Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time         := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12568           Lx_Contracts_02(Li_OutTab_Idx).Status_Code                 := Lx_Contracts_02_Val(1).Status_Code;
12569           Lx_Contracts_02(Li_OutTab_Idx).Status_Text                 := Lx_Contracts_02_Val(1).Status_Text;
12570           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code          := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12571           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning       := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12572           Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level     := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12573 
12574           Lx_Contracts_02(Li_OutTab_Idx).service_po_number           := Lx_Contracts_02_Val(1).service_po_number;
12575           Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag    := Lx_Contracts_02_Val(1).service_po_required_flag;
12576 
12577           --Added for IB OA Pages (JVARGHES)
12578           Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id              := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12579           --
12580 
12581           Lx_Contracts_02_Val.DELETE;
12582 
12583        END IF;
12584 
12585         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12586             RAISE L_EXCEP_UNEXPECTED_ERR;
12587         END IF;
12588 
12589       END LOOP;
12590 
12591     ELSE
12592 
12593     /*Added for ER9681794*/
12594 
12595       FOR Idx IN Lx_Csr_Contracts3(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12596 
12597         Lx_Idx_Rec.Contract_Id                  := Idx.Contract_Id;
12598         Lx_Idx_Rec.Contract_Number              := Idx.Contract_Number;
12599         Lx_Idx_Rec.Contract_Number_Modifier     := Idx.Contract_Number_Modifier;
12600         Lx_Idx_Rec.Sts_Code                     := Idx.Sts_Code;
12601         Lx_Idx_Rec.Authoring_Org_Id             := Idx.Authoring_Org_Id;
12602         Lx_Idx_Rec.Inv_Organization_Id          := Idx.Inv_Organization_Id;
12603         Lx_Idx_Rec.HDR_End_Date                 := Idx.HDR_End_Date;
12604         Lx_Idx_Rec.Service_Line_Id              := Idx.Service_Line_Id;
12605         Lx_Idx_Rec.SV_Start_Date                := Idx.SV_Start_Date;
12606         Lx_Idx_Rec.SV_End_Date                  := Idx.SV_End_Date;
12607         Lx_Idx_Rec.SV_Date_Terminated           := Idx.SV_Date_Terminated;
12608         Lx_Idx_Rec.CL_Sts_Code                  := Idx.CL_Sts_Code;
12609         Lx_Idx_Rec.CovLvl_Line_Id               := Idx.CovLvl_Line_Id;
12610         Lx_Idx_Rec.CL_Start_Date                := Idx.CL_Start_Date;
12611         Lx_Idx_Rec.CL_End_Date                  := Idx.CL_End_Date;
12612         Lx_Idx_Rec.CL_Date_Terminated           := Idx.CL_Date_Terminated;
12613         Lx_Idx_Rec.Warranty_Flag                := Idx.Warranty_Flag;
12614 
12615     /*vgujarat - modified for access hour ER 9675504*/
12616         Get_Cont02Format_Validation
12617             (P_Contracts            => Lx_Idx_Rec
12618             ,P_BusiProc_Id	        => Lx_BusiProc_Id
12619             ,P_Severity_Id	        => Lx_Severity_Id
12620             ,P_Request_TZone_Id	    => Lx_Request_TZone_Id
12621     	      ,P_Dates_In_Input_TZ    => Lv_Dates_In_Input_TZ      -- Added for 12.0 ENT-TZ project (JVARGHES)
12622 	      ,P_Incident_Date        => Ld_Incident_Date          -- Added for 12.0 ENT-TZ project (JVARGHES)
12623             ,P_Request_Date         => Ld_Request_Date
12624             ,P_Request_Date_Start   => NULL
12625             ,P_Request_Date_End     => NULL
12626             ,P_Calc_RespTime_YN     => Lv_Calc_RespTime_YN
12627             ,P_Validate_Eff         => Lv_Validate_Eff
12628             ,P_Validate_Flag        => Lv_Validate_Flag
12629             ,P_SrvLine_Flag         => Lv_SrvLine_Flag
12630             ,P_Sort_Key             => Lv_Sort_Key
12631             ,X_Contracts_02         => Lx_Contracts_02_Val
12632             ,X_Result               => Lx_Result
12633             ,X_Return_Status   	    => Lx_Return_Status
12634             ,P_cust_id              => Lx_cust_id         --access hour
12635             ,P_cust_site_id         => Lx_cust_site_id    --access hour
12636             ,P_cust_loc_id          => Lx_cust_loc_id);   --access hour
12637         IF Lx_Contracts_02_Val.COUNT > 0 THEN
12638 
12639          Li_OutTab_Idx := Li_OutTab_Idx + 1;
12640 
12641           Lx_Contracts_02(Li_OutTab_Idx).Contract_Id                 := Lx_Contracts_02_Val(1).Contract_Id;
12642           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts_02_Val(1).Contract_Number;
12643           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12644      --   Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12645           Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12646           Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id             := Lx_Contracts_02_Val(1).Service_Line_Id;
12647           Lx_Contracts_02(Li_OutTab_Idx).Service_Name                := Lx_Contracts_02_Val(1).Service_Name;
12648           Lx_Contracts_02(Li_OutTab_Idx).Service_Description         := Lx_Contracts_02_Val(1).Service_Description;
12649      --   Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12650      --   Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12651           Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12652           Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12653           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12654           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name          := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12655           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description   := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12656           Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag               := Lx_Contracts_02_Val(1).Warranty_Flag;
12657           Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement    := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12658           Lx_Contracts_02(Li_OutTab_Idx).date_terminated	         := Lx_Contracts_02_Val(1).date_terminated;
12659           Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time           := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12660           Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time         := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12661           Lx_Contracts_02(Li_OutTab_Idx).Status_Code                 := Lx_Contracts_02_Val(1).Status_Code;
12662           Lx_Contracts_02(Li_OutTab_Idx).Status_Text                 := Lx_Contracts_02_Val(1).Status_Text;
12663           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code          := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12664           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning       := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12665           Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level     := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12666 
12667           Lx_Contracts_02(Li_OutTab_Idx).service_po_number           := Lx_Contracts_02_Val(1).service_po_number;
12668           Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag    := Lx_Contracts_02_Val(1).service_po_required_flag;
12669 
12670           --Added for IB OA Pages (JVARGHES)
12671           Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id              := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12672           --
12673 
12674           Lx_Contracts_02_Val.DELETE;
12675 
12676        END IF;
12677 
12678         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12679             RAISE L_EXCEP_UNEXPECTED_ERR;
12680         END IF;
12681 
12682       END LOOP;
12683 
12684     END IF;  /*Added for ER9681794*/
12685 
12686       Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
12687 
12688 
12689    ELSIF Lx_SrvLine_Id  is  null and Lx_CovLvlLine_Id is null then
12690 
12691       /*Added for ER9681794*/
12692       IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
12693 
12694       FOR Idx IN Lx_Csr_Contracts4_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12695 
12696         Lx_Idx_Rec.Contract_Id                  := Idx.Contract_Id;
12697         Lx_Idx_Rec.Contract_Number              := Idx.Contract_Number;
12698         Lx_Idx_Rec.Contract_Number_Modifier     := Idx.Contract_Number_Modifier;
12699         Lx_Idx_Rec.Sts_Code                     := Idx.Sts_Code;
12700         Lx_Idx_Rec.Authoring_Org_Id             := Idx.Authoring_Org_Id;
12701         Lx_Idx_Rec.Inv_Organization_Id          := Idx.Inv_Organization_Id;
12702         Lx_Idx_Rec.HDR_End_Date                 := Idx.HDR_End_Date;
12703         Lx_Idx_Rec.Service_Line_Id              := Idx.Service_Line_Id;
12704         Lx_Idx_Rec.SV_Start_Date                := Idx.SV_Start_Date;
12705         Lx_Idx_Rec.SV_End_Date                  := Idx.SV_End_Date;
12706         Lx_Idx_Rec.SV_Date_Terminated           := Idx.SV_Date_Terminated;
12707         Lx_Idx_Rec.CL_Sts_Code                  := Idx.CL_Sts_Code;
12708         Lx_Idx_Rec.CovLvl_Line_Id               := Idx.CovLvl_Line_Id;
12709         Lx_Idx_Rec.CL_Start_Date                := Idx.CL_Start_Date;
12710         Lx_Idx_Rec.CL_End_Date                  := Idx.CL_End_Date;
12711         Lx_Idx_Rec.CL_Date_Terminated           := Idx.CL_Date_Terminated;
12712         Lx_Idx_Rec.Warranty_Flag                := Idx.Warranty_Flag;
12713 
12714     /*vgujarat - modified for access hour ER 9675504*/
12715         Get_Cont02Format_Validation
12716             (P_Contracts            => Lx_Idx_Rec
12717             ,P_BusiProc_Id	        => Lx_BusiProc_Id
12718             ,P_Severity_Id	        => Lx_Severity_Id
12719             ,P_Request_TZone_Id	    => Lx_Request_TZone_Id
12720     	      ,P_Dates_In_Input_TZ    => Lv_Dates_In_Input_TZ      -- Added for 12.0 ENT-TZ project (JVARGHES)
12721 	      ,P_Incident_Date        => Ld_Incident_Date          -- Added for 12.0 ENT-TZ project (JVARGHES)
12722             ,P_Request_Date         => Ld_Request_Date
12723             ,P_Request_Date_Start   => NULL
12724             ,P_Request_Date_End     => NULL
12725             ,P_Calc_RespTime_YN     => Lv_Calc_RespTime_YN
12726             ,P_Validate_Eff         => Lv_Validate_Eff
12727             ,P_Validate_Flag        => Lv_Validate_Flag
12728             ,P_SrvLine_Flag         => Lv_SrvLine_Flag
12729             ,P_Sort_Key             => Lv_Sort_Key
12730             ,X_Contracts_02         => Lx_Contracts_02_Val
12731             ,X_Result               => Lx_Result
12732             ,X_Return_Status   	    => Lx_Return_Status
12733             ,P_cust_id              => Lx_cust_id         --access hour
12734             ,P_cust_site_id         => Lx_cust_site_id    --access hour
12735             ,P_cust_loc_id          => Lx_cust_loc_id);   --access hour
12736 
12737         IF Lx_Contracts_02_Val.COUNT > 0 THEN
12738 
12739          Li_OutTab_Idx := Li_OutTab_Idx + 1;
12740 
12741           Lx_Contracts_02(Li_OutTab_Idx).Contract_Id                 := Lx_Contracts_02_Val(1).Contract_Id;
12742           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts_02_Val(1).Contract_Number;
12743           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12744      --   Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12745           Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12746           Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id             := Lx_Contracts_02_Val(1).Service_Line_Id;
12747           Lx_Contracts_02(Li_OutTab_Idx).Service_Name                := Lx_Contracts_02_Val(1).Service_Name;
12748           Lx_Contracts_02(Li_OutTab_Idx).Service_Description         := Lx_Contracts_02_Val(1).Service_Description;
12749      --   Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12750      --   Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12751           Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12752           Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12753           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12754           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name          := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12755           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description   := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12756           Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag               := Lx_Contracts_02_Val(1).Warranty_Flag;
12757           Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement    := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12758           Lx_Contracts_02(Li_OutTab_Idx).date_terminated	         := Lx_Contracts_02_Val(1).date_terminated;
12759           Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time           := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12760           Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time         := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12761           Lx_Contracts_02(Li_OutTab_Idx).Status_Code                 := Lx_Contracts_02_Val(1).Status_Code;
12762           Lx_Contracts_02(Li_OutTab_Idx).Status_Text                 := Lx_Contracts_02_Val(1).Status_Text;
12763           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code          := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12764           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning       := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12765           Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level     := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12766 
12767           Lx_Contracts_02(Li_OutTab_Idx).service_po_number           := Lx_Contracts_02_Val(1).service_po_number;
12768           Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag    := Lx_Contracts_02_Val(1).service_po_required_flag;
12769 
12770           --Added for IB OA Pages (JVARGHES)
12771           Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id              := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12772           --
12773 
12774           Lx_Contracts_02_Val.DELETE;
12775 
12776        END IF;
12777 
12778         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12779             RAISE L_EXCEP_UNEXPECTED_ERR;
12780         END IF;
12781 
12782       END LOOP;
12783 
12784     ELSE
12785 
12786     /*Added for ER9681794*/
12787 
12788       FOR Idx IN Lx_Csr_Contracts4(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lx_BusiProc_Id,Lv_Cont_Pty_Id,Ld_Request_Date,Lv_Validate_Flag) LOOP
12789 
12790         Lx_Idx_Rec.Contract_Id                  := Idx.Contract_Id;
12791         Lx_Idx_Rec.Contract_Number              := Idx.Contract_Number;
12792         Lx_Idx_Rec.Contract_Number_Modifier     := Idx.Contract_Number_Modifier;
12793         Lx_Idx_Rec.Sts_Code                     := Idx.Sts_Code;
12794         Lx_Idx_Rec.Authoring_Org_Id             := Idx.Authoring_Org_Id;
12795         Lx_Idx_Rec.Inv_Organization_Id          := Idx.Inv_Organization_Id;
12796         Lx_Idx_Rec.HDR_End_Date                 := Idx.HDR_End_Date;
12797         Lx_Idx_Rec.Service_Line_Id              := Idx.Service_Line_Id;
12798         Lx_Idx_Rec.SV_Start_Date                := Idx.SV_Start_Date;
12799         Lx_Idx_Rec.SV_End_Date                  := Idx.SV_End_Date;
12800         Lx_Idx_Rec.SV_Date_Terminated           := Idx.SV_Date_Terminated;
12801         Lx_Idx_Rec.CL_Sts_Code                  := Idx.CL_Sts_Code;
12802         Lx_Idx_Rec.CovLvl_Line_Id               := Idx.CovLvl_Line_Id;
12803         Lx_Idx_Rec.CL_Start_Date                := Idx.CL_Start_Date;
12804         Lx_Idx_Rec.CL_End_Date                  := Idx.CL_End_Date;
12805         Lx_Idx_Rec.CL_Date_Terminated           := Idx.CL_Date_Terminated;
12806         Lx_Idx_Rec.Warranty_Flag                := Idx.Warranty_Flag;
12807 
12808     /*vgujarat - modified for access hour ER 9675504*/
12809         Get_Cont02Format_Validation
12810             (P_Contracts            => Lx_Idx_Rec
12811             ,P_BusiProc_Id	        => Lx_BusiProc_Id
12812             ,P_Severity_Id	        => Lx_Severity_Id
12813             ,P_Request_TZone_Id	    => Lx_Request_TZone_Id
12814     	      ,P_Dates_In_Input_TZ    => Lv_Dates_In_Input_TZ      -- Added for 12.0 ENT-TZ project (JVARGHES)
12815 	      ,P_Incident_Date        => Ld_Incident_Date          -- Added for 12.0 ENT-TZ project (JVARGHES)
12816             ,P_Request_Date         => Ld_Request_Date
12817             ,P_Request_Date_Start   => NULL
12818             ,P_Request_Date_End     => NULL
12819             ,P_Calc_RespTime_YN     => Lv_Calc_RespTime_YN
12820             ,P_Validate_Eff         => Lv_Validate_Eff
12821             ,P_Validate_Flag        => Lv_Validate_Flag
12822             ,P_SrvLine_Flag         => Lv_SrvLine_Flag
12823             ,P_Sort_Key             => Lv_Sort_Key
12824             ,X_Contracts_02         => Lx_Contracts_02_Val
12825             ,X_Result               => Lx_Result
12826             ,X_Return_Status   	    => Lx_Return_Status
12827             ,P_cust_id              => Lx_cust_id         --access hour
12828             ,P_cust_site_id         => Lx_cust_site_id    --access hour
12829             ,P_cust_loc_id          => Lx_cust_loc_id);   --access hour
12830 
12831         IF Lx_Contracts_02_Val.COUNT > 0 THEN
12832 
12833          Li_OutTab_Idx := Li_OutTab_Idx + 1;
12834 
12835           Lx_Contracts_02(Li_OutTab_Idx).Contract_Id                 := Lx_Contracts_02_Val(1).Contract_Id;
12836           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts_02_Val(1).Contract_Number;
12837           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
12838      --   Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12839           Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts_02_Val(1).Sts_code;
12840           Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id             := Lx_Contracts_02_Val(1).Service_Line_Id;
12841           Lx_Contracts_02(Li_OutTab_Idx).Service_Name                := Lx_Contracts_02_Val(1).Service_Name;
12842           Lx_Contracts_02(Li_OutTab_Idx).Service_Description         := Lx_Contracts_02_Val(1).Service_Description;
12843      --   Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12844      --   Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12845           Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts_02_Val(1).Service_Start_Date;
12846           Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts_02_Val(1).Service_End_Date;
12847           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_Contracts_02_Val(1).Coverage_Term_Line_Id;
12848           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name          := Lx_Contracts_02_Val(1).Coverage_Term_Name;
12849           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description   := Lx_Contracts_02_Val(1).Coverage_Term_Description;
12850           Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag               := Lx_Contracts_02_Val(1).Warranty_Flag;
12851           Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement    := Lx_Contracts_02_Val(1).Eligible_For_Entitlement;
12852           Lx_Contracts_02(Li_OutTab_Idx).date_terminated	         := Lx_Contracts_02_Val(1).date_terminated;
12853           Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time           := Lx_Contracts_02_Val(1).Exp_Reaction_Time;
12854           Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time         := Lx_Contracts_02_Val(1).Exp_Resolution_Time;
12855           Lx_Contracts_02(Li_OutTab_Idx).Status_Code                 := Lx_Contracts_02_Val(1).Status_Code;
12856           Lx_Contracts_02(Li_OutTab_Idx).Status_Text                 := Lx_Contracts_02_Val(1).Status_Text;
12857           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code          := Lx_Contracts_02_Val(1).Coverage_Type_Code;
12858           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning       := Lx_Contracts_02_Val(1).Coverage_Type_Meaning;
12859           Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level     := Lx_Contracts_02_Val(1).coverage_Type_Imp_Level;
12860 
12861           Lx_Contracts_02(Li_OutTab_Idx).service_po_number           := Lx_Contracts_02_Val(1).service_po_number;
12862           Lx_Contracts_02(Li_OutTab_Idx).service_po_required_flag    := Lx_Contracts_02_Val(1).service_po_required_flag;
12863 
12864           --Added for IB OA Pages (JVARGHES)
12865           Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id              := Lx_Contracts_02_Val(1).CovLvl_Line_Id;
12866           --
12867 
12868           Lx_Contracts_02_Val.DELETE;
12869 
12870        END IF;
12871 
12872         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
12873             RAISE L_EXCEP_UNEXPECTED_ERR;
12874         END IF;
12875 
12876       END LOOP;
12877 
12878     END IF;  /*Added for ER9681794*/
12879 
12880       Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
12881 
12882 
12883    END IF;
12884 
12885 END LOOP;
12886 
12887 
12888 --    IF Lv_Sort_Key <> G_NO_SORT_KEY THEN
12889 --    above IF commented and new one introduced , as sorting needs to be done when calculate response time flag
12890 --    is 'Y' or sort key is sorting with importance level.
12891     IF (((Lv_Calc_RespTime_YN = 'N') AND (Lv_Sort_Key = 'COVTYP_IMP')) OR (Lv_Calc_RespTime_YN = 'Y')) THEN
12892 
12893       Sort_Asc_GetContracts_02
12894         (P_Input_Tab          => Lx_Contracts_02
12895         ,P_Sort_Key           => Lv_Sort_Key
12896         ,X_Output_Tab         => Lx_Contracts_02_Out
12897         ,X_Result             => Lx_Result
12898         ,X_Return_Status      => Lx_Return_Status);
12899 
12900       IF Lx_Result <> G_TRUE THEN
12901         RAISE L_EXCEP_UNEXPECTED_ERR;
12902       END IF;
12903 
12904     ELSE
12905 
12906       Lx_Contracts_02_Out := Lx_Contracts_02;
12907 
12908     END IF;
12909 
12910 
12911     X_Contracts_02        := Lx_Contracts_02_Out;
12912     X_Result              := Lx_Result;
12913     X_Return_Status       := Lx_Return_Status;
12914 
12915   EXCEPTION
12916 
12917     WHEN L_EXCEP_UNEXPECTED_ERR THEN
12918 
12919       X_Result           := Lx_Result;
12920       X_Return_Status    := Lx_Return_Status;
12921 
12922     WHEN OTHERS THEN
12923 
12924       OKC_API.SET_MESSAGE
12925         (P_App_Name	  => G_APP_NAME_OKC
12926 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
12927 	,P_Token1	  => G_SQLCODE_TOKEN
12928 	,P_Token1_Value	  => SQLCODE
12929 	,P_Token2	  => G_SQLERRM_TOKEN
12930 	,P_Token2_Value   => SQLERRM);
12931 
12932       OKC_API.SET_MESSAGE
12933         (P_App_Name	  => G_APP_NAME_OKC
12934 	,P_Msg_Name	  => G_DEBUG_TOKEN
12935 	,P_Token1	  => G_PACKAGE_TOKEN
12936 	,P_Token1_Value	  => G_PKG_NAME
12937 	,P_Token2	  => G_PROGRAM_TOKEN
12938 	,P_Token2_Value   => 'Get_Contracts_02_Format');
12939 
12940       X_Result          := G_FALSE;
12941       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
12942 
12943   END Get_Contracts_02_Format;
12944 
12945 -----------------------------------------------------------------------------------------------------------------------*
12946 
12947   PROCEDURE Append_Contract_PlSql_Table
12948     (P_Input_Tab          IN  GT_Contract_Ref
12949     ,P_Append_Tab         IN  GT_Contract_Ref
12950     ,X_Output_Tab         out nocopy GT_Contract_Ref
12951     ,X_Result             out nocopy Gx_Boolean
12952     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)
12953   IS
12954 
12955     Lx_Input_Tab          GT_Contract_Ref;
12956     Lx_Output_Tab         GT_Contract_Ref;
12957 
12958     Li_In_TableIdx        BINARY_INTEGER;
12959     Li_Out_TableIdx       BINARY_INTEGER;
12960 
12961     Lx_Result             Gx_Boolean;
12962     Lx_Return_Status      Gx_Ret_Sts;
12963 
12964   BEGIN
12965 
12966     Lx_Input_Tab          := P_Input_Tab;
12967     Lx_Output_Tab         := P_Append_Tab;
12968 
12969     Lx_Result             := G_TRUE;
12970     Lx_Return_Status      := G_RET_STS_SUCCESS;
12971 
12972     Li_In_TableIdx       := Lx_Input_Tab.FIRST;
12973     Li_Out_TableIdx      := NVL(Lx_Output_Tab.LAST,0);
12974 
12975     WHILE Li_In_TableIdx IS NOT NULL LOOP
12976 
12977       Li_Out_TableIdx                := Li_Out_TableIdx + 1;
12978       Lx_Output_Tab(Li_Out_TableIdx) := Lx_Input_Tab(Li_In_TableIdx);
12979       Li_In_TableIdx                 := Lx_Input_Tab.NEXT(Li_In_TableIdx);
12980 
12981     END LOOP;
12982 
12983     X_Output_Tab          := Lx_Output_Tab;
12984 
12985     X_Result              := Lx_Result;
12986     X_Return_Status       := Lx_Return_Status;
12987 
12988   EXCEPTION
12989 
12990     WHEN OTHERS THEN
12991 
12992       OKC_API.SET_MESSAGE
12993         (P_App_Name	  => G_APP_NAME_OKC
12994 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
12995 	,P_Token1	  => G_SQLCODE_TOKEN
12996 	,P_Token1_Value	  => SQLCODE
12997 	,P_Token2	  => G_SQLERRM_TOKEN
12998 	,P_Token2_Value   => SQLERRM);
12999 
13000       OKC_API.SET_MESSAGE
13001         (P_App_Name	  => G_APP_NAME_OKC
13002 	,P_Msg_Name	  => G_DEBUG_TOKEN
13003 	,P_Token1	  => G_PACKAGE_TOKEN
13004 	,P_Token1_Value	  => G_PKG_NAME
13005 	,P_Token2	  => G_PROGRAM_TOKEN
13006 	,P_Token2_Value   => 'Append_Contract_PlSql_Table');
13007 
13008       X_Result         := G_FALSE;
13009       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
13010 
13011   END Append_Contract_PlSql_Table;
13012 
13013 -----------------------------------------------------------------------------------------------------------------------*
13014 /*vgujarat - modified for access hour ER 9675504*/
13015   PROCEDURE Get_Contracts_02
13016     (P_API_Version		IN  NUMBER
13017     ,P_Init_Msg_List		IN  VARCHAR2
13018     ,P_Inp_Rec			IN  Inp_rec_getcont02
13019     ,X_Return_Status 		OUT NOCOPY VARCHAR2
13020     ,X_Msg_Count		OUT NOCOPY NUMBER
13021     ,X_Msg_Data			OUT NOCOPY VARCHAR2
13022     ,X_Ent_Contracts		OUT NOCOPY Get_ConTop_Tbl)
13023   IS
13024 
13025     CURSOR Lx_SrvLine(Cx_SrvLine_Id IN Gx_OKS_Id) IS
13026       SELECT Dnz_Chr_Id
13027         FROM Okc_K_lines_B
13028        WHERE Id = Cx_SrvLine_Id;
13029 
13030     Lx_Inp_Rec		 	  CONSTANT Inp_rec_getcont02 := P_Inp_Rec;
13031 
13032     Lx_Ent_Contracts            Get_ConTop_Tbl;
13033     Lx_Contracts                GT_Contract_Ref;
13034     Lx_Contracts_Temp           GT_Contract_Ref;
13035     Lx_Contracts_Temp1          GT_Contract_Ref;  --Bug# 4690940
13036     Lx_Contracts_Temp2          GT_Contract_Ref;  --Bug# 4690940
13037 
13038     Lx_Contracts_Out            GT_Contract_Ref;
13039     Lv_SrvLine_Flag             VARCHAR2(1);
13040 
13041     Ln_Organization_Id          NUMBER;
13042     Ln_Org_Id                   NUMBER;
13043     Ln_Chr_Id                   NUMBER;
13044 
13045     Li_TableIdx                 BINARY_INTEGER;
13046 
13047     L_EXCEP_UNEXPECTED_ERR      EXCEPTION;
13048 
13049     Lx_Result             Gx_Boolean;
13050     Lx_Return_Status      Gx_Ret_Sts;
13051 
13052   BEGIN
13053 
13054     Lx_Result             := G_TRUE;
13055     Lx_Return_Status      := G_RET_STS_SUCCESS;
13056     Lv_SrvLine_Flag       := 'F';
13057 
13058 --  Bug# 4735542
13059 --  Ln_Organization_Id          := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
13060 
13061 --  Modified for 12.0 MOAC project (JVARGHES)
13062 --  Ln_Org_Id                   := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
13063 --
13064     G_GRACE_PROFILE_SET         := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
13065 
13066     IF Lx_Inp_Rec.Calc_RespTime_Flag = 'Y' THEN
13067 
13068       Validate_Required_NumValue
13069         (P_Num_Value              => Lx_Inp_Rec.Business_Process_Id
13070         ,P_Set_ExcepionStack      => G_TRUE
13071         ,P_ExcepionMsg            => 'Business Process'
13072         ,X_Result                 => Lx_Result
13073         ,X_Return_Status   	  => Lx_Return_Status);
13074 
13075       IF Lx_Result <> G_TRUE THEN
13076         RAISE L_EXCEP_UNEXPECTED_ERR;
13077       END IF;
13078 
13079       Validate_Required_NumValue
13080         (P_Num_Value              => Lx_Inp_Rec.Severity_Id
13081         ,P_Set_ExcepionStack      => G_TRUE
13082         ,P_ExcepionMsg            => 'Severity'
13083         ,X_Result                 => Lx_Result
13084         ,X_Return_Status   	  => Lx_Return_Status);
13085 
13086       IF Lx_Result <> G_TRUE THEN
13087         RAISE L_EXCEP_UNEXPECTED_ERR;
13088       END IF;
13089 
13090       Validate_Required_NumValue
13091         (P_Num_Value              => Lx_Inp_Rec.Time_Zone_Id
13092         ,P_Set_ExcepionStack      => G_TRUE
13093         ,P_ExcepionMsg            => 'Time Zone'
13094         ,X_Result                 => Lx_Result
13095         ,X_Return_Status   	  => Lx_Return_Status);
13096 
13097       IF Lx_Result <> G_TRUE THEN
13098         RAISE L_EXCEP_UNEXPECTED_ERR;
13099       END IF;
13100 
13101     END IF;
13102 
13103     IF Lx_Inp_Rec.Service_Line_Id IS NOT NULL THEN
13104 
13105       OPEN Lx_SrvLine(Lx_Inp_Rec.Service_Line_Id);
13106       FETCH Lx_SrvLine INTO Ln_Chr_Id;
13107       CLOSE Lx_SrvLine;
13108 
13109       Li_TableIdx                         := NVL(Lx_Contracts.LAST,0) + 1;
13110       Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Ln_Chr_Id;
13111       Lx_Contracts(Li_TableIdx).Rx_Cle_Id := Lx_Inp_Rec.Service_Line_Id;
13112 
13113       Lv_SrvLine_Flag  := 'T';
13114 
13115     ELSIF Lx_Inp_Rec.Contract_Number IS NOT NULL THEN
13116 
13117       Get_Contracts_Id
13118         (P_Contract_Num           => Lx_Inp_Rec.Contract_Number
13119         ,P_Contract_Num_Modifier  => Lx_Inp_Rec.Contract_Number_Modifier
13120         ,X_Contracts              => Lx_Contracts
13121         ,X_Result                 => Lx_Result
13122         ,X_Return_Status   	  => Lx_Return_Status);
13123 
13124       IF Lx_Result <> G_TRUE THEN
13125         RAISE L_EXCEP_UNEXPECTED_ERR;
13126       END IF;
13127 
13128     ELSIF Lx_Inp_Rec.Product_Id IS NOT NULL THEN
13129 
13130       Get_CovProd_Contracts
13131         (P_CovProd_Obj_Id         => Lx_Inp_Rec.Product_Id
13132         ,P_Organization_Id        => Ln_Organization_Id
13133         ,P_Org_Id                 => Ln_Org_Id
13134         ,X_CovProd_Contracts      => Lx_Contracts
13135         ,X_Result                 => Lx_Result
13136         ,X_Return_Status   	  => Lx_Return_Status);
13137 
13138       IF Lx_Result <> G_TRUE THEN
13139         RAISE L_EXCEP_UNEXPECTED_ERR;
13140       END IF;
13141 
13142     ELSE
13143 
13144       IF Lx_Inp_Rec.Item_Id IS NOT NULL THEN
13145 
13146         Get_CovItem_Contracts
13147           (P_CovItem_Obj_Id         => Lx_Inp_Rec.Item_Id
13148           ,P_Organization_Id        => Ln_Organization_Id
13149           ,P_Party_Id               => Lx_Inp_Rec.Party_Id
13150           ,X_CovItem_Contracts      => Lx_Contracts
13151           ,X_Result                 => Lx_Result
13152           ,X_Return_Status   	    => Lx_Return_Status);
13153 
13154         IF Lx_Result <> G_TRUE THEN
13155           RAISE L_EXCEP_UNEXPECTED_ERR;
13156         END IF;
13157 
13158       END IF;
13159 
13160       IF Lx_Inp_Rec.System_Id IS NOT NULL THEN
13161 
13162         Get_CovSys_Contracts
13163           (P_CovSys_Obj_Id          => Lx_Inp_Rec.System_Id
13164           ,P_Org_Id                 => Ln_Org_Id
13165           ,X_CovSys_Contracts       => Lx_Contracts_Temp
13166           ,X_Result                 => Lx_Result
13167           ,X_Return_Status   	    => Lx_Return_Status);
13168 
13169         IF Lx_Result <> G_TRUE THEN
13170           RAISE L_EXCEP_UNEXPECTED_ERR;
13171         END IF;
13172 
13173    --
13174    --
13175 
13176    -- ELSIF Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL THEN  --Modified for fix of bug# 4690940.
13177       ELSIF (Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL)
13178          OR (Lx_Inp_Rec.Site_Id IS NOT NULL)  THEN
13179 
13180         set_account_party_id := 'T';
13181 
13182         IF Lx_Inp_Rec.Cust_Acct_Id IS NOT NULL THEN
13183 
13184           Get_CovCust_Contracts
13185             (P_CovCust_Obj_Id       => Lx_Inp_Rec.Cust_Acct_Id
13186             ,X_CovCust_Contracts    => Lx_Contracts_Temp1  --Modified for fix of bug# 4690940.
13187             ,X_Result               => Lx_Result
13188             ,X_Return_Status   	=> Lx_Return_Status);
13189 
13190           IF Lx_Result <> G_TRUE THEN
13191             RAISE L_EXCEP_UNEXPECTED_ERR;
13192           END IF;
13193 
13194         END IF;
13195 
13196    -- ELSIF Lx_Inp_Rec.Site_Id IS NOT NULL THEN
13197 
13198         IF Lx_Inp_Rec.Site_Id IS NOT NULL THEN
13199 
13200           Get_CovSite_Contracts
13201             (P_CovSite_Obj_Id         => Lx_Inp_Rec.Site_Id
13202             ,P_Org_Id                 => Ln_Org_Id
13203             ,X_CovSite_Contracts      => Lx_Contracts_Temp2  --Modified for fix of bug# 4690940.
13204             ,X_Result                 => Lx_Result
13205             ,X_Return_Status   	  => Lx_Return_Status);
13206 
13207           IF Lx_Result <> G_TRUE THEN
13208             RAISE L_EXCEP_UNEXPECTED_ERR;
13209           END IF;
13210 
13211         END IF;
13212 
13213         covd_account_party_id := NULL;  -- #4690940
13214 	  set_account_party_id  := 'F';
13215 
13216 	   -- Append account and site rows  #4690940
13217 	   Append_Contract_PlSql_Table
13218 	           (P_Input_Tab          => Lx_Contracts_Temp1
13219 		      ,P_Append_Tab         => Lx_Contracts_Temp2
13220 		      ,X_Output_Tab         => Lx_Contracts_Temp
13221 		      ,X_Result             => Lx_Result
13222 		      ,X_Return_Status      => Lx_Return_Status);
13223 
13224 
13225   --
13226   --
13227       ELSIF Lx_Inp_Rec.Party_Id IS NOT NULL THEN
13228 
13229         Get_CovParty_Contracts
13230           (P_CovParty_Obj_Id        => Lx_Inp_Rec.Party_Id
13231           ,X_CovParty_Contracts     => Lx_Contracts_Temp
13232           ,X_Result                 => Lx_Result
13233           ,X_Return_Status   	    => Lx_Return_Status);
13234 
13235         IF Lx_Result <> G_TRUE THEN
13236           RAISE L_EXCEP_UNEXPECTED_ERR;
13237         END IF;
13238 
13239       END IF;
13240 
13241     END IF;
13242 
13243      Append_Contract_PlSql_Table
13244         (P_Input_Tab          => Lx_Contracts_Temp
13245         ,P_Append_Tab         => Lx_Contracts
13246         ,X_Output_Tab         => Lx_Contracts_Out
13247         ,X_Result             => Lx_Result
13248         ,X_Return_Status      => Lx_Return_Status);
13249 
13250       IF Lx_Result <> G_TRUE THEN
13251         RAISE L_EXCEP_UNEXPECTED_ERR;
13252       END IF;
13253 /*vgujarat - modified for access hour ER 9675504*/
13254     Get_Contracts_02_Format
13255       (P_Contracts          => Lx_Contracts_Out
13256       ,P_BusiProc_Id	    => Lx_Inp_Rec.Business_Process_Id
13257       ,P_Severity_Id	    => Lx_Inp_Rec.Severity_Id
13258       ,P_Request_TZone_Id   => Lx_Inp_Rec.Time_Zone_Id
13259       ,P_Dates_In_Input_TZ  => Lx_Inp_Rec.Dates_In_Input_TZ    -- Added for 12.0 ENT-TZ project (JVARGHES)
13260       ,P_Incident_Date      => Lx_Inp_Rec.Incident_Date        -- Added for 12.0 ENT-TZ project (JVARGHES)
13261       ,P_Request_Date       => Lx_Inp_Rec.Request_Date
13262       ,P_Calc_RespTime_YN   => Lx_Inp_Rec.Calc_RespTime_Flag
13263       ,P_Validate_Eff       => Lx_Inp_Rec.Validate_Eff_Flag
13264       ,P_Validate_Flag      => Lx_Inp_Rec.Validate_Flag
13265       ,P_SrvLine_Flag       => Lv_SrvLine_Flag
13266       ,P_Sort_Key           => Lx_Inp_Rec.Sort_Key
13267       ,X_Contracts_02       => Lx_Ent_Contracts
13268       ,X_Result             => Lx_Result
13269       ,X_Return_Status      => Lx_Return_Status
13270       ,P_cust_id            => Lx_Inp_Rec.cust_id
13271       ,P_cust_site_id       => Lx_Inp_Rec.cust_site_id
13272       ,P_cust_loc_id        => Lx_Inp_Rec.cust_loc_id);
13273 
13274     X_Ent_Contracts       := Lx_Ent_Contracts;
13275     X_Return_Status       := Lx_Return_Status;
13276 
13277   EXCEPTION
13278 
13279     WHEN L_EXCEP_UNEXPECTED_ERR THEN
13280 
13281       --X_Result         := Lx_Result;
13282       X_Return_Status    := Lx_Return_Status;
13283 
13284     WHEN OTHERS THEN
13285 
13286       OKC_API.SET_MESSAGE
13287         (P_App_Name	  => G_APP_NAME_OKC
13288 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
13289 	,P_Token1	  => G_SQLCODE_TOKEN
13290 	,P_Token1_Value	  => SQLCODE
13291 	,P_Token2	  => G_SQLERRM_TOKEN
13292 	,P_Token2_Value   => SQLERRM);
13293 
13294       OKC_API.SET_MESSAGE
13295         (P_App_Name	  => G_APP_NAME_OKC
13296 	,P_Msg_Name	  => G_DEBUG_TOKEN
13297 	,P_Token1	  => G_PACKAGE_TOKEN
13298 	,P_Token1_Value	  => G_PKG_NAME
13299 	,P_Token2	  => G_PROGRAM_TOKEN
13300 	,P_Token2_Value   => 'Get_Contracts_02');
13301 
13302       --X_Result        := G_FALSE;
13303       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
13304 
13305   END Get_Contracts_02;
13306 
13307 -----------------------------------------------------------------------------------------------------------------------*
13308 /*vgujarat - modified for access hour ER 9675504*/
13309   PROCEDURE Get_Contracts
13310     (P_Api_Version		IN  NUMBER
13311     ,P_Init_Msg_List		IN  VARCHAR2
13312     ,P_Inp_Rec			IN  Get_ContIn_Rec
13313     ,X_Return_Status 		OUT NOCOPY VARCHAR2
13314     ,X_Msg_Count		      OUT NOCOPY NUMBER
13315     ,X_Msg_Data			OUT NOCOPY VARCHAR2
13316     ,X_Ent_Contracts		OUT NOCOPY Get_ConTop_Tbl)
13317   IS
13318 
13319     Lx_Inp_Rec                Get_ContIn_Rec;
13320     Lx_ContInp_Rec            Inp_rec_getCont02;
13321 
13322   BEGIN
13323 
13324     Lx_Inp_Rec                := P_Inp_Rec;
13325 
13326  --  Bug# 4735542
13327  --  okc_context.set_okc_org_context;
13328 
13329     Lx_ContInp_Rec.Contract_Number          :=  Lx_Inp_Rec.Contract_Number;
13330     Lx_ContInp_Rec.Contract_Number_Modifier :=  Lx_Inp_Rec.contract_number_modifier ;
13331     Lx_ContInp_Rec.Service_Line_Id          :=  Lx_Inp_Rec.Service_Line_Id;
13332     Lx_ContInp_Rec.Party_Id                 :=  Lx_Inp_Rec.Party_Id;
13333     Lx_ContInp_Rec.Site_Id                  :=  Lx_Inp_Rec.Site_Id;
13334     Lx_ContInp_Rec.Cust_Acct_Id             :=  Lx_Inp_Rec.Cust_Acct_Id;
13335     Lx_ContInp_Rec.System_Id                :=  Lx_Inp_Rec.System_Id;
13336     Lx_ContInp_Rec.Item_Id	              :=  Lx_Inp_Rec.Item_Id;
13337     Lx_ContInp_Rec.Product_Id	              :=  Lx_Inp_Rec.Product_Id;
13338 
13339     -- Added for 12.0 ENT-TZ project (JVARGHES)
13340     Lx_ContInp_Rec.INCIDENT_DATE            :=  P_Inp_Rec.INCIDENT_DATE;
13341     --
13342 
13343     Lx_ContInp_Rec.Request_Date             :=  Lx_Inp_Rec.Request_Date;
13344     Lx_ContInp_Rec.Business_Process_Id	  :=  Lx_Inp_Rec.Business_Process_Id;
13345     Lx_ContInp_Rec.Severity_Id	        :=  Lx_Inp_Rec.Severity_Id;
13346     Lx_ContInp_Rec.Time_Zone_Id             :=  Lx_Inp_Rec.Time_Zone_Id;
13347 
13348     -- Added for 12.0 ENT-TZ project (JVARGHES)
13349     Lx_ContInp_Rec. Dates_In_Input_TZ :=  P_Inp_Rec. Dates_In_Input_TZ;
13350     --
13351 
13352     Lx_ContInp_Rec.Calc_RespTime_Flag	  :=  Lx_Inp_Rec.Calc_RespTime_Flag;
13353     Lx_ContInp_Rec.Validate_Flag	        :=  Lx_Inp_Rec.Validate_Flag;
13354     Lx_ContInp_Rec.Validate_Eff_Flag        :=  'T';
13355     Lx_ContInp_Rec.Sort_Key                 :=  NVL(Lx_Inp_Rec.Sort_Key,G_RESOLUTION_TIME);
13356 
13357  /*vgujarat - modified for access hour ER 9675504*/
13358     Lx_ContInp_Rec.cust_id	  :=  Lx_Inp_Rec.cust_id;
13359     Lx_ContInp_Rec.cust_site_id	        :=  Lx_Inp_Rec.cust_site_id;
13360     Lx_ContInp_Rec.cust_loc_id             :=  Lx_Inp_Rec.cust_loc_id;
13361 
13362     IF Lx_ContInp_Rec.Request_Date IS NULL THEN
13363       Lx_ContInp_Rec.Request_Date := SYSDATE;
13364     END IF;
13365 
13366     Get_Contracts_02
13367       (P_API_Version		=> P_Api_Version
13368       ,P_Init_Msg_List		=> P_Init_Msg_List
13369       ,P_Inp_Rec		      => Lx_ContInp_Rec
13370       ,X_Return_Status 		=> X_Return_Status
13371       ,X_Msg_Count		=> X_Msg_Count
13372       ,X_Msg_Data		      => X_Msg_Data
13373       ,X_Ent_Contracts		=> X_Ent_Contracts);
13374 
13375   EXCEPTION
13376 
13377     WHEN OTHERS THEN
13378 
13379       OKC_API.SET_MESSAGE
13380         (P_App_Name	  => G_APP_NAME_OKC
13381 	  ,P_Msg_Name	  => G_UNEXPECTED_ERROR
13382 	  ,P_Token1	        => G_SQLCODE_TOKEN
13383 	  ,P_Token1_Value	  => SQLCODE
13384 	  ,P_Token2	        => G_SQLERRM_TOKEN
13385 	  ,P_Token2_Value   => SQLERRM);
13386 
13387       OKC_API.SET_MESSAGE
13388         (P_App_Name	  => G_APP_NAME_OKC
13389   	  ,P_Msg_Name	  => G_DEBUG_TOKEN
13390 	  ,P_Token1	        => G_PACKAGE_TOKEN
13391 	  ,P_Token1_Value	  => G_PKG_NAME
13392 	  ,P_Token2	        => G_PROGRAM_TOKEN
13393 	  ,P_Token2_Value   => 'Get_Contracts-Get_ConTop_Tbl');
13394 
13395       --X_Result        := G_FALSE;
13396       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
13397 
13398   END Get_Contracts;
13399 
13400 -----------------------------------------------------------------------------------------------------------------------*
13401 
13402   PROCEDURE Get_Contracts
13403     (P_Api_Version		IN  NUMBER
13404     ,P_Init_Msg_List		IN  VARCHAR2
13405     ,P_Inp_Rec			IN  Input_Rec_IB
13406     ,X_Return_Status 		OUT NOCOPY VARCHAR2
13407     ,X_Msg_Count		OUT NOCOPY NUMBER
13408     ,X_Msg_Data			OUT NOCOPY VARCHAR2
13409     ,X_Ent_Contracts		OUT NOCOPY Output_Tbl_IB)
13410   IS
13411 
13412     Lx_Inp_Rec                  Input_Rec_IB;
13413     Lx_ContInp_Rec              Inp_rec_getCont02;
13414     Lx_Contracts		Get_ConTop_Tbl;
13415     Lx_Ent_Contracts		Output_Tbl_IB;
13416 
13417     Li_TableIdx1                BINARY_INTEGER;
13418     Li_TableIdx2                BINARY_INTEGER;
13419 
13420   BEGIN
13421 
13422     Lx_Inp_Rec                              := P_Inp_Rec;
13423 
13424  -- Bug# 4735542
13425  -- okc_context.set_okc_org_context;
13426 
13427     Lx_ContInp_Rec.Contract_Number          :=  Lx_Inp_Rec.Contract_Number;
13428     Lx_ContInp_Rec.Contract_Number_Modifier :=  Lx_Inp_Rec.Contract_Number_Modifier;
13429     Lx_ContInp_Rec.Service_Line_Id          :=  Lx_Inp_Rec.Service_Line_Id;
13430     Lx_ContInp_Rec.Party_Id                 :=  Lx_Inp_Rec.Party_Id;
13431     Lx_ContInp_Rec.Site_Id                  :=  Lx_Inp_Rec.Site_Id;
13432     Lx_ContInp_Rec.Cust_Acct_Id             :=  Lx_Inp_Rec.Cust_Acct_Id;
13433     Lx_ContInp_Rec.System_Id                :=  Lx_Inp_Rec.System_Id;
13434     Lx_ContInp_Rec.Item_Id	            :=  Lx_Inp_Rec.Item_Id;
13435     Lx_ContInp_Rec.Product_Id	            :=  Lx_Inp_Rec.Product_Id;
13436     Lx_ContInp_Rec.Request_Date             :=  SYSDATE;
13437     Lx_ContInp_Rec.Business_Process_Id	    :=  Lx_Inp_Rec.Business_Process_Id;
13438     Lx_ContInp_Rec.Severity_Id	            :=  Lx_Inp_Rec.Severity_Id;
13439     Lx_ContInp_Rec.Time_Zone_Id             :=  Lx_Inp_Rec.Time_Zone_Id;
13440     Lx_ContInp_Rec.Calc_RespTime_Flag	    :=  Lx_Inp_Rec.Calc_RespTime_Flag;
13441     Lx_ContInp_Rec.Validate_Flag	    :=  Lx_Inp_Rec.Validate_Flag;
13442     Lx_ContInp_Rec.Validate_Eff_Flag        :=  'F';
13443     Lx_ContInp_Rec.Sort_Key                 :=  G_NO_SORT_KEY;
13444 
13445     Get_Contracts_02
13446       (P_API_Version		=> P_Api_Version
13447       ,P_Init_Msg_List		=> P_Init_Msg_List
13448       ,P_Inp_Rec		=> Lx_ContInp_Rec
13449       ,X_Return_Status 		=> X_Return_Status
13450       ,X_Msg_Count		=> X_Msg_Count
13451       ,X_Msg_Data		=> X_Msg_Data
13452       ,X_Ent_Contracts		=> Lx_Contracts);
13453 
13454     Li_TableIdx1       :=  Lx_Contracts.FIRST;
13455     Li_TableIdx2       :=  0;
13456 
13457     WHILE Li_TableIdx1 IS NOT NULL LOOP
13458 
13459       Li_TableIdx2  :=     Li_TableIdx2 + 1;
13460 
13461       Lx_Ent_Contracts(Li_TableIdx2).Contract_Id                 := Lx_Contracts(Li_TableIdx1).Contract_Id;
13462       Lx_Ent_Contracts(Li_TableIdx2).Contract_Number             := Lx_Contracts(Li_TableIdx1).Contract_Number;
13463       Lx_Ent_Contracts(Li_TableIdx2).Contract_Number_Modifier    := Lx_Contracts(Li_TableIdx1).Contract_Number_Modifier;
13464       Lx_Ent_Contracts(Li_TableIdx2).Sts_code                    := Lx_Contracts(Li_TableIdx1).Sts_code;
13465       Lx_Ent_Contracts(Li_TableIdx2).Service_Line_Id             := Lx_Contracts(Li_TableIdx1).Service_Line_Id;
13466       Lx_Ent_Contracts(Li_TableIdx2).Service_Name                := Lx_Contracts(Li_TableIdx1).Service_Name;
13467       Lx_Ent_Contracts(Li_TableIdx2).Service_Description         := Lx_Contracts(Li_TableIdx1).Service_Description;
13468       Lx_Ent_Contracts(Li_TableIdx2).Service_Start_Date          := Lx_Contracts(Li_TableIdx1).Service_Start_Date;
13469       Lx_Ent_Contracts(Li_TableIdx2).Service_End_Date            := Lx_Contracts(Li_TableIdx1).Service_End_Date;
13470       Lx_Ent_Contracts(Li_TableIdx2).Coverage_Term_Line_Id       := Lx_Contracts(Li_TableIdx1).Coverage_Term_Line_Id;
13471       Lx_Ent_Contracts(Li_TableIdx2).Coverage_Term_Name          := Lx_Contracts(Li_TableIdx1).Coverage_Term_Name;
13472 
13473       Lx_Ent_Contracts(Li_TableIdx2).Coverage_Type_Code          := Lx_Contracts(Li_TableIdx1).Coverage_Type_Code;
13474       Lx_Ent_Contracts(Li_TableIdx2).Coverage_Type_Imp_level     := Lx_Contracts(Li_TableIdx1).Coverage_Type_Imp_level;
13475 
13476       Lx_Ent_Contracts(Li_TableIdx2).Coverage_Term_Description   := Lx_Contracts(Li_TableIdx1).Coverage_Term_Description;
13477       Lx_Ent_Contracts(Li_TableIdx2).Warranty_Flag               := Lx_Contracts(Li_TableIdx1).Warranty_Flag;
13478       Lx_Ent_Contracts(Li_TableIdx2).Eligible_For_Entitlement    := Lx_Contracts(Li_TableIdx1).Eligible_For_Entitlement;
13479       Lx_Ent_Contracts(Li_TableIdx2).Exp_Reaction_Time           := Lx_Contracts(Li_TableIdx1).Exp_Reaction_Time;
13480       Lx_Ent_Contracts(Li_TableIdx2).Exp_Resolution_Time         := Lx_Contracts(Li_TableIdx1).Exp_Resolution_Time;
13481       Lx_Ent_Contracts(Li_TableIdx2).Status_Code                 := Lx_Contracts(Li_TableIdx1).Status_Code;
13482       Lx_Ent_Contracts(Li_TableIdx2).Status_Text                 := Lx_Contracts(Li_TableIdx1).Status_Text;
13483       Lx_Ent_Contracts(Li_TableIdx2).date_terminated             := Lx_Contracts(Li_TableIdx1).date_terminated;
13484 
13485       -- Added for 12.0 ENT-TZ project (JVARGHES)
13486       Lx_Ent_Contracts(Li_TableIdx2).CovLvl_Line_Id              := Lx_Contracts(Li_TableIdx1).CovLvl_Line_Id;
13487       --
13488 
13489       Li_TableIdx1       :=  Lx_Contracts.NEXT(Li_TableIdx1);
13490 
13491     END LOOP;
13492 
13493     X_Ent_Contracts   :=  Lx_Ent_Contracts;
13494 
13495   EXCEPTION
13496 
13497     WHEN OTHERS THEN
13498 
13499       OKC_API.SET_MESSAGE
13500         (P_App_Name	  => G_APP_NAME_OKC
13501 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
13502 	,P_Token1	  => G_SQLCODE_TOKEN
13503 	,P_Token1_Value	  => SQLCODE
13504 	,P_Token2	  => G_SQLERRM_TOKEN
13505 	,P_Token2_Value   => SQLERRM);
13506 
13507       OKC_API.SET_MESSAGE
13508         (P_App_Name	  => G_APP_NAME_OKC
13509 	,P_Msg_Name	  => G_DEBUG_TOKEN
13510 	,P_Token1	  => G_PACKAGE_TOKEN
13511 	,P_Token1_Value	  => G_PKG_NAME
13512 	,P_Token2	  => G_PROGRAM_TOKEN
13513 	,P_Token2_Value   => 'Get_Contracts-Output_Tbl_IB');
13514 
13515       --X_Result        := G_FALSE;
13516       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
13517 
13518   END Get_Contracts;
13519 
13520 -----------------------------------------------------------------------------------------------------------------------*
13521 
13522   PROCEDURE Sort_Asc_GetContracts_03
13523     (P_Input_Tab          IN  Output_Tbl_EntFrm
13524     ,X_Output_Tab         out nocopy Output_Tbl_EntFrm
13525     ,X_Result             out nocopy Gx_Boolean
13526     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)
13527   IS
13528 
13529     Lx_Sort_Tab           Output_Tbl_EntFrm;
13530     Lx_Result             Gx_Boolean;
13531     Lx_Return_Status      Gx_Ret_Sts;
13532 
13533     Li_TableIdx_Out       BINARY_INTEGER;
13534     Li_TableIdx_In        BINARY_INTEGER;
13535 
13536     Lx_Temp_ContItem      output_rec_entfrm;
13537 
13538     Lv_Compare_Val1      VARCHAR2(120);
13539     Lv_Compare_Val2      VARCHAR2(120);
13540 
13541 
13542   BEGIN
13543 
13544     Lx_Sort_Tab           := P_Input_Tab;
13545     Lx_Result             := G_TRUE;
13546     Lx_Return_Status      := G_RET_STS_SUCCESS;
13547 
13548     Li_TableIdx_Out  := Lx_Sort_Tab.FIRST;
13549 
13550     WHILE Li_TableIdx_Out IS NOT NULL LOOP
13551 
13552       Li_TableIdx_In  := Li_TableIdx_Out;
13553 
13554       WHILE Li_TableIdx_In IS NOT NULL LOOP
13555 
13556         Lv_Compare_Val1  := Lx_Sort_Tab(Li_TableIdx_Out).Contract_Number;
13557         Lv_Compare_Val2  := Lx_Sort_Tab(Li_TableIdx_In).Contract_Number;
13558 
13559         IF Lv_Compare_Val1 > Lv_Compare_Val2 THEN
13560 
13561           Lx_Temp_ContItem              := Lx_Sort_Tab(Li_TableIdx_Out);
13562           Lx_Sort_Tab(Li_TableIdx_Out)  := Lx_Sort_Tab(Li_TableIdx_In);
13563           Lx_Sort_Tab(Li_TableIdx_In)   := Lx_Temp_ContItem;
13564 
13565         END IF;
13566 
13567         Li_TableIdx_In  := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
13568 
13569       END LOOP;
13570 
13571       Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
13572 
13573     END LOOP;
13574 
13575     X_Output_Tab          := Lx_Sort_Tab;
13576     X_Result              := Lx_Result;
13577     X_Return_Status       := Lx_Return_Status;
13578 
13579   EXCEPTION
13580 
13581     WHEN OTHERS THEN
13582 
13583       OKC_API.SET_MESSAGE
13584         (P_App_Name	  => G_APP_NAME_OKC
13585 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
13586 	,P_Token1	  => G_SQLCODE_TOKEN
13587 	,P_Token1_Value	  => SQLCODE
13588 	,P_Token2	  => G_SQLERRM_TOKEN
13589 	,P_Token2_Value   => SQLERRM);
13590 
13591       OKC_API.SET_MESSAGE
13592         (P_App_Name	  => G_APP_NAME_OKC
13593 	,P_Msg_Name	  => G_DEBUG_TOKEN
13594 	,P_Token1	  => G_PACKAGE_TOKEN
13595 	,P_Token1_Value	  => G_PKG_NAME
13596 	,P_Token2	  => G_PROGRAM_TOKEN
13597 	,P_Token2_Value   => 'Sort_Asc_GetContracts_03');
13598 
13599       X_Result           := G_FALSE;
13600       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
13601 
13602   END Sort_Asc_GetContracts_03;
13603 
13604 -----------------------------------------------------------------------------------------------------------------------*
13605 
13606   PROCEDURE Get_Contracts_03_Format
13607     (P_Contracts            IN  GT_Contract_Ref
13608     ,P_Con_Number           IN  VARCHAR2
13609     ,P_Con_Number_Modifier  IN  VARCHAR2
13610     ,P_Con_Customer_Id      IN  NUMBER
13611     ,P_Service_Item_Id      IN  NUMBER
13612     ,P_Organization_Id      IN  NUMBER
13613     ,P_Request_Date         IN  DATE
13614     ,P_Validate_Eff         IN  VARCHAR2
13615     ,X_Contracts_03         out nocopy Output_Tbl_EntFrm
13616     ,X_Result               out nocopy Gx_Boolean
13617     ,X_Return_Status   	    out nocopy Gx_Ret_Sts)
13618   IS
13619 
13620     CURSOR Lx_Csr_Contracts(Cx_Chr_Id IN Gx_OKS_Id, Cv_Con_Number IN VARCHAR2, Cv_Con_Number_Modifier IN VARCHAR2,
13621                             Cv_Con_Cusomer_Id IN VARCHAR2, Cv_Service_Item_Id IN VARCHAR2, Cn_Organization_Id IN NUMBER) IS
13622       SELECT HB.Id Contract_Id
13623             ,HB.Contract_Number Contract_Number
13624             ,HB.Contract_Number_Modifier Contract_Number_Modifier
13625             ,HT.Cognomen Contract_Known_As
13626             ,HT.Short_Description Contract_Short_Description
13627             ,HB.Sts_Code Contract_Status_Code
13628             ,HB.Start_Date Contract_Start_Date
13629             ,Get_End_Date_Time(HB.End_Date) Contract_End_Date
13630             ,Get_End_Date_Time(HB.Date_Terminated) Contract_Terminated_Date
13631         FROM Okc_K_Headers_TL HT
13632             ,OKC_K_HEADERS_ALL_B  HB  -- OKC_K_HEADERS_B HB  -- Modified for 12.0 MOAC project (JVARGHES)
13633        WHERE HB.Id = NVL(Cx_Chr_Id,HB.Id)
13634          AND HB.Contract_Number = NVL(Cv_Con_Number,HB.Contract_Number)
13635          AND (Cv_Con_Number_Modifier IS NULL OR HB.Contract_Number_Modifier = Cv_Con_Number_Modifier)
13636          AND (Cv_Con_Cusomer_Id IS NULL
13637              OR
13638              HB.Id IN ( SELECT PR.Chr_Id
13639                         FROM Okx_Parties_V PX
13640                             ,Okc_K_Party_Roles_B PR
13641                        WHERE PR.Object1_Id1 = NVL(Cv_Con_Cusomer_Id,PR.Object1_Id1)  --PR.Chr_Id = HB.Id
13642                          AND PR.Rle_Code in ('CUSTOMER')
13643                          AND PR.Jtot_Object1_Code = 'OKX_PARTY'
13644                          AND PX.Id1 = TO_NUMBER(PR.Object1_Id1)
13645                          AND PX.Id2 = PR.Object1_Id2 ))
13646          AND (Cv_Service_Item_Id IS NULL
13647              OR
13648              HB.Id IN ( SELECT SV.Chr_Id
13649                         FROM Okx_System_Items_V XI
13650                             ,Okc_K_Items IT
13651                             ,Okc_K_Lines_B SV
13652                        WHERE SV.Lse_ID IN (1,14,19)  --SV.Chr_Id = HB.Id
13653                          AND IT.Cle_Id = SV.Id
13654                          AND IT.Object1_Id1 = NVL(Cv_Service_Item_Id,IT.Object1_Id1)
13655                          AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
13656                          AND XI.Id1 = TO_NUMBER(IT.Object1_Id1)
13657                          AND XI.Id2 = IT.Object1_Id2
13658                          AND XI.Service_Item_Flag = 'Y'
13659                       -- AND XI.Organization_Id = Cn_Organization_Id  --Bug# 4735542.
13660                          ))
13661          AND HB.Scs_Code IN ('SERVICE','WARRANTY')
13662          AND HB.Id  > -1
13663          AND HB.Template_YN <> 'Y'
13664          AND HB.Id  = HT.Id
13665          AND HT.Language = USERENV('LANG');
13666 
13667     CURSOR Lx_Csr_Contracts_sub(Cx_Chr_Id IN Gx_OKS_Id, Cv_Con_Number IN VARCHAR2, Cv_Con_Number_Modifier IN VARCHAR2,
13668                             Cv_Con_Cusomer_Id IN VARCHAR2, Cv_Service_Item_Id IN VARCHAR2, Cn_Organization_Id IN NUMBER) IS
13669       SELECT HB.Id Contract_Id
13670             ,HB.Contract_Number Contract_Number
13671             ,HB.Contract_Number_Modifier Contract_Number_Modifier
13672             ,HT.Cognomen Contract_Known_As
13673             ,HT.Short_Description Contract_Short_Description
13674             ,HB.Sts_Code Contract_Status_Code
13675             ,HB.Start_Date Contract_Start_Date
13676             ,Get_End_Date_Time(HB.End_Date) Contract_End_Date
13677             ,Get_End_Date_Time(HB.Date_Terminated) Contract_Terminated_Date
13678         FROM Okc_K_Headers_TL HT
13679             ,OKC_K_HEADERS_ALL_B  HB  -- OKC_K_HEADERS_B HB  -- Modified for 12.0 MOAC project (JVARGHES)
13680        WHERE HB.Id = NVL(Cx_Chr_Id,HB.Id)
13681          AND HB.Contract_Number = NVL(Cv_Con_Number,HB.Contract_Number)
13682          AND (Cv_Con_Number_Modifier IS NULL OR HB.Contract_Number_Modifier = Cv_Con_Number_Modifier)
13683          AND (Cv_Con_Cusomer_Id IS NULL
13684              OR
13685              HB.Id IN ( SELECT PR.Chr_Id
13686                         FROM Okx_Parties_V PX
13687                             ,Okc_K_Party_Roles_B PR
13688                        WHERE PR.Object1_Id1 = NVL(Cv_Con_Cusomer_Id,PR.Object1_Id1)  --PR.Chr_Id = HB.Id
13689                          AND PR.Rle_Code in ('CUSTOMER','SUBSCRIBER')     ---Modified condition for ER9681794
13690                          AND PR.Jtot_Object1_Code = 'OKX_PARTY'
13691                          AND PX.Id1 = TO_NUMBER(PR.Object1_Id1)
13692                          AND PX.Id2 = PR.Object1_Id2 ))
13693          AND (Cv_Service_Item_Id IS NULL
13694              OR
13695              HB.Id IN ( SELECT SV.Chr_Id
13696                         FROM Okx_System_Items_V XI
13697                             ,Okc_K_Items IT
13698                             ,Okc_K_Lines_B SV
13699                        WHERE SV.Lse_ID IN (1,14,19)  --SV.Chr_Id = HB.Id
13700                          AND IT.Cle_Id = SV.Id
13701                          AND IT.Object1_Id1 = NVL(Cv_Service_Item_Id,IT.Object1_Id1)
13702                          AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
13703                          AND XI.Id1 = TO_NUMBER(IT.Object1_Id1)
13704                          AND XI.Id2 = IT.Object1_Id2
13705                          AND XI.Service_Item_Flag = 'Y'
13706                       -- AND XI.Organization_Id = Cn_Organization_Id  --Bug# 4735542.
13707                          ))
13708          AND HB.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION')    ---Modified condition for ER9681794
13709          AND HB.Id  > -1
13710          AND HB.Template_YN <> 'Y'
13711          AND HB.Id  = HT.Id
13712          AND HT.Language = USERENV('LANG');
13713 
13714     Lx_Contracts             GT_Contract_Ref;
13715 
13716     Lv_Con_Number            CONSTANT VARCHAR2(120) := P_Con_Number;
13717     Lv_Con_Number_Modifier   CONSTANT VARCHAR2(120) := P_Con_Number_Modifier;
13718     Ln_Con_Customer_Id                NUMBER;
13719     Ln_Service_Item_Id       CONSTANT NUMBER := P_Service_Item_Id;
13720     Ln_Organization_Id       CONSTANT NUMBER := P_Organization_Id;
13721     Ld_Request_Date          CONSTANT DATE := P_Request_Date;
13722     Lv_Validate_Eff          VARCHAR2(1);
13723     Ln_Party_Id              NUMBER;
13724 
13725     Lx_Contracts_03          Output_Tbl_EntFrm;
13726     Lx_Contracts_03_Out      Output_Tbl_EntFrm;
13727 
13728     Ld_Con_Eff_End_Date      DATE;
13729     Lv_Effective_Falg        VARCHAR2(1);
13730 
13731     Lx_Chr_Id                Gx_OKS_Id;
13732 
13733     Lx_Result                Gx_Boolean;
13734     Lx_Return_Status         Gx_Ret_Sts;
13735     Li_TableIdx              BINARY_INTEGER;
13736     Li_OutTab_Idx            BINARY_INTEGER;
13737 
13738     L_EXCEP_UNEXPECTED_ERR   EXCEPTION;
13739 
13740   BEGIN
13741 
13742     Lx_Contracts             := P_Contracts;
13743     Ln_Con_Customer_Id       := P_Con_Customer_Id;
13744     Lv_Validate_Eff          := P_Validate_Eff;
13745 
13746     Lx_Result                := G_TRUE;
13747     Lx_Return_Status         := G_RET_STS_SUCCESS;
13748     Li_OutTab_Idx            := 0;
13749 
13750     --
13751     IF Lv_Validate_Eff = 'Y' THEN
13752       Lv_Validate_Eff := 'T';
13753     END IF;
13754     --
13755 
13756     Li_TableIdx  := Lx_Contracts.FIRST;
13757 
13758     WHILE Li_TableIdx IS NOT NULL LOOP
13759 
13760       Lx_Chr_Id           := Lx_Contracts(Li_TableIdx).Rx_Chr_Id;
13761       Ln_Party_Id         := Lx_Contracts(Li_TableIdx).Rx_Pty_Id;
13762       Ln_Con_Customer_Id  := NVL(Ln_Con_Customer_Id,Ln_Party_Id);
13763 
13764   /*Added for ER9681794*/
13765     IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
13766 
13767       FOR Idx IN Lx_Csr_Contracts_sub(Lx_Chr_Id,Lv_Con_Number,Lv_Con_Number_Modifier,
13768                                   TO_CHAR(Ln_Con_Customer_Id),TO_CHAR(Ln_Service_Item_Id),Ln_Organization_Id) LOOP
13769 
13770         IF Lv_Validate_Eff = 'T' THEN
13771 
13772           IF Idx.Contract_Terminated_Date < Idx.Contract_End_Date THEN
13773             Ld_Con_Eff_End_Date := Idx.Contract_Terminated_Date;
13774           ELSE
13775             Ld_Con_Eff_End_Date := Idx.Contract_End_Date;
13776 
13777       -- grace period changes starts
13778 
13779             IF G_GRACE_PROFILE_SET = 'Y' AND Idx.Contract_Terminated_Date IS NULL THEN
13780 
13781               G_CONTRACT_END_DATE := Ld_Con_Eff_End_Date;
13782               G_CONTRACT_ID       := Idx.Contract_Id;
13783 
13784               Ld_Con_Eff_End_Date := Get_Final_End_Date(Idx.Contract_Id,Ld_Con_Eff_End_Date);
13785 
13786             END IF;
13787 
13788       -- grace period changes ends
13789           END IF;
13790 
13791           IF (Ld_Request_Date BETWEEN Idx.Contract_Start_Date AND Ld_Con_Eff_End_Date) THEN
13792             Lv_Effective_Falg := 'T';
13793           ELSE
13794             Lv_Effective_Falg := 'F';
13795           END IF;
13796 
13797         END IF;
13798 
13799         IF (Lv_Validate_Eff = 'T' AND Lv_Effective_Falg = 'T' ) OR (Lv_Validate_Eff <> 'T') THEN
13800 
13801           Li_OutTab_Idx := Li_OutTab_Idx + 1;
13802 
13803           Lx_Contracts_03(Li_OutTab_Idx).Contract_Id                 := Idx.Contract_Id;
13804           Lx_Contracts_03(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
13805           Lx_Contracts_03(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
13806           Lx_Contracts_03(Li_OutTab_Idx).Contract_Known_As           := Idx.Contract_Known_As;
13807           Lx_Contracts_03(Li_OutTab_Idx).Contract_Short_Description  := Idx.Contract_Short_Description;
13808           Lx_Contracts_03(Li_OutTab_Idx).Contract_Status_Code        := Idx.Contract_Status_Code;
13809           Lx_Contracts_03(Li_OutTab_Idx).Contract_Start_Date         := Idx.Contract_Start_Date;
13810           Lx_Contracts_03(Li_OutTab_Idx).Contract_End_Date           := Idx.Contract_End_Date;
13811           Lx_Contracts_03(Li_OutTab_Idx).Contract_Terminated_Date    := Idx.Contract_Terminated_Date;
13812 
13813         END IF;
13814 
13815       END LOOP;
13816 
13817     ELSE
13818 
13819     /*added for ER9681794*/
13820 
13821 
13822       FOR Idx IN Lx_Csr_Contracts(Lx_Chr_Id,Lv_Con_Number,Lv_Con_Number_Modifier,
13823                                   TO_CHAR(Ln_Con_Customer_Id),TO_CHAR(Ln_Service_Item_Id),Ln_Organization_Id) LOOP
13824 
13825         IF Lv_Validate_Eff = 'T' THEN
13826 
13827           IF Idx.Contract_Terminated_Date < Idx.Contract_End_Date THEN
13828             Ld_Con_Eff_End_Date := Idx.Contract_Terminated_Date;
13829           ELSE
13830             Ld_Con_Eff_End_Date := Idx.Contract_End_Date;
13831 
13832       -- grace period changes starts
13833 
13834             IF G_GRACE_PROFILE_SET = 'Y' AND Idx.Contract_Terminated_Date IS NULL THEN
13835 
13836               G_CONTRACT_END_DATE := Ld_Con_Eff_End_Date;
13837               G_CONTRACT_ID       := Idx.Contract_Id;
13838 
13839               Ld_Con_Eff_End_Date := Get_Final_End_Date(Idx.Contract_Id,Ld_Con_Eff_End_Date);
13840 
13841             END IF;
13842 
13843       -- grace period changes ends
13844           END IF;
13845 
13846           IF (Ld_Request_Date BETWEEN Idx.Contract_Start_Date AND Ld_Con_Eff_End_Date) THEN
13847             Lv_Effective_Falg := 'T';
13848           ELSE
13849             Lv_Effective_Falg := 'F';
13850           END IF;
13851 
13852         END IF;
13853 
13854         IF (Lv_Validate_Eff = 'T' AND Lv_Effective_Falg = 'T' ) OR (Lv_Validate_Eff <> 'T') THEN
13855 
13856           Li_OutTab_Idx := Li_OutTab_Idx + 1;
13857 
13858           Lx_Contracts_03(Li_OutTab_Idx).Contract_Id                 := Idx.Contract_Id;
13859           Lx_Contracts_03(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
13860           Lx_Contracts_03(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
13861           Lx_Contracts_03(Li_OutTab_Idx).Contract_Known_As           := Idx.Contract_Known_As;
13862           Lx_Contracts_03(Li_OutTab_Idx).Contract_Short_Description  := Idx.Contract_Short_Description;
13863           Lx_Contracts_03(Li_OutTab_Idx).Contract_Status_Code        := Idx.Contract_Status_Code;
13864           Lx_Contracts_03(Li_OutTab_Idx).Contract_Start_Date         := Idx.Contract_Start_Date;
13865           Lx_Contracts_03(Li_OutTab_Idx).Contract_End_Date           := Idx.Contract_End_Date;
13866           Lx_Contracts_03(Li_OutTab_Idx).Contract_Terminated_Date    := Idx.Contract_Terminated_Date;
13867 
13868         END IF;
13869 
13870       END LOOP;
13871 
13872     END IF;  ---added for ER9681794
13873 
13874       Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
13875 
13876     END LOOP;
13877 
13878     Sort_Asc_GetContracts_03
13879       (P_Input_Tab          => Lx_Contracts_03
13880       ,X_Output_Tab         => Lx_Contracts_03_Out
13881       ,X_Result             => Lx_Result
13882       ,X_Return_Status      => Lx_Return_Status);
13883 
13884     IF Lx_Result <> G_TRUE THEN
13885       RAISE L_EXCEP_UNEXPECTED_ERR;
13886     END IF;
13887 
13888     X_Contracts_03       := Lx_Contracts_03_Out;
13889     X_Result             := Lx_Result;
13890     X_Return_Status      := Lx_Return_Status;
13891 
13892   EXCEPTION
13893 
13894     WHEN L_EXCEP_UNEXPECTED_ERR THEN
13895 
13896       X_Result           := Lx_Result;
13897       X_Return_Status    := Lx_Return_Status;
13898 
13899     WHEN OTHERS THEN
13900 
13901       OKC_API.SET_MESSAGE
13902         (P_App_Name	  => G_APP_NAME_OKC
13903 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
13904 	,P_Token1	  => G_SQLCODE_TOKEN
13905 	,P_Token1_Value	  => SQLCODE
13906 	,P_Token2	  => G_SQLERRM_TOKEN
13907 	,P_Token2_Value   => SQLERRM);
13908 
13909       OKC_API.SET_MESSAGE
13910         (P_App_Name	  => G_APP_NAME_OKC
13911 	,P_Msg_Name	  => G_DEBUG_TOKEN
13912 	,P_Token1	  => G_PACKAGE_TOKEN
13913 	,P_Token1_Value	  => G_PKG_NAME
13914 	,P_Token2	  => G_PROGRAM_TOKEN
13915 	,P_Token2_Value   => 'Get_Contracts_03_Format');
13916 
13917       X_Result          := G_FALSE;
13918       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
13919 
13920   END Get_Contracts_03_Format;
13921 
13922 -----------------------------------------------------------------------------------------------------------------------*
13923 
13924   PROCEDURE Sort_Asc_ContRef_PlSql_Table
13925     (P_Input_Tab          IN  GT_Contract_Ref
13926     ,X_Output_Tab         out nocopy GT_Contract_Ref
13927     ,X_Result             out nocopy Gx_Boolean
13928     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)  IS
13929 
13930     Lx_Sort_Tab           GT_Contract_Ref;
13931     Lx_Result             Gx_Boolean;
13932     Lx_Return_Status      Gx_Ret_Sts;
13933 
13934     Li_TableIdx_Out       BINARY_INTEGER;
13935     Li_TableIdx_In        BINARY_INTEGER;
13936 
13937     Lx_Temp_ContRef       GR_Contract_Ref;
13938 
13939     Lv_Compare_Val1       NUMBER;
13940     Lv_Compare_Val2       NUMBER;
13941 
13942   BEGIN
13943 
13944     Lx_Sort_Tab           := P_Input_Tab;
13945     Lx_Result             := G_TRUE;
13946     Lx_Return_Status      := G_RET_STS_SUCCESS;
13947 
13948     Li_TableIdx_Out  := Lx_Sort_Tab.FIRST;
13949 
13950     WHILE Li_TableIdx_Out IS NOT NULL LOOP
13951 
13952       Li_TableIdx_In  := Li_TableIdx_Out;
13953 
13954       WHILE Li_TableIdx_In IS NOT NULL LOOP
13955 
13956         Lv_Compare_Val1  := Lx_Sort_Tab(Li_TableIdx_Out).Rx_Chr_Id;
13957         Lv_Compare_Val2  := Lx_Sort_Tab(Li_TableIdx_In).Rx_Chr_Id;
13958 
13959         IF Lv_Compare_Val1 > Lv_Compare_Val2 THEN
13960 
13961           Lx_Temp_ContRef               := Lx_Sort_Tab(Li_TableIdx_Out);
13962           Lx_Sort_Tab(Li_TableIdx_Out)  := Lx_Sort_Tab(Li_TableIdx_In);
13963           Lx_Sort_Tab(Li_TableIdx_In)   := Lx_Temp_ContRef;
13964 
13965         END IF;
13966 
13967         Li_TableIdx_In  := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
13968 
13969       END LOOP;
13970 
13971       Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
13972 
13973     END LOOP;
13974 
13975     X_Output_Tab          := Lx_Sort_Tab;
13976     X_Result              := Lx_Result;
13977     X_Return_Status       := Lx_Return_Status;
13978 
13979   EXCEPTION
13980 
13981     WHEN OTHERS THEN
13982 
13983       OKC_API.SET_MESSAGE
13984         (P_App_Name	  => G_APP_NAME_OKC
13985 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
13986 	,P_Token1	  => G_SQLCODE_TOKEN
13987 	,P_Token1_Value	  => SQLCODE
13988 	,P_Token2	  => G_SQLERRM_TOKEN
13989 	,P_Token2_Value   => SQLERRM);
13990 
13991       OKC_API.SET_MESSAGE
13992         (P_App_Name	  => G_APP_NAME_OKC
13993 	,P_Msg_Name	  => G_DEBUG_TOKEN
13994 	,P_Token1	  => G_PACKAGE_TOKEN
13995 	,P_Token1_Value	  => G_PKG_NAME
13996 	,P_Token2	  => G_PROGRAM_TOKEN
13997 	,P_Token2_Value   => 'Sort_Asc_ContRef_PlSql_Table');
13998 
13999       X_Result           := G_FALSE;
14000       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
14001 
14002   END Sort_Asc_ContRef_PlSql_Table;
14003 
14004 -----------------------------------------------------------------------------------------------------------------------*
14005 
14006   PROCEDURE Dedup_ContItem_PlSql_Table
14007     (P_Input_Tab          IN  GT_Contract_Ref
14008     ,X_Output_Tab         out nocopy GT_Contract_Ref
14009     ,X_Result             out nocopy Gx_Boolean
14010     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)  IS
14011 
14012     Lx_DeDup_Tab          GT_Contract_Ref;
14013     Lx_Result             Gx_Boolean;
14014     Lx_Return_Status      Gx_Ret_Sts;
14015 
14016     Lx_Temp_ContRef       GR_Contract_Ref;
14017 
14018     Li_TableIdx           BINARY_INTEGER;
14019     Lv_Compare_Val1       VARCHAR2(300);
14020     Lv_Compare_Val2       VARCHAR2(300);
14021 
14022   BEGIN
14023 
14024     Lx_DeDup_Tab          := P_Input_Tab;
14025     Lx_Result             := G_TRUE;
14026     Lx_Return_Status      := G_RET_STS_SUCCESS;
14027 
14028     Li_TableIdx           := Lx_DeDup_Tab.FIRST;
14029 
14030     WHILE Li_TableIdx IS NOT NULL LOOP
14031 
14032       Lv_Compare_Val1     := Lx_DeDup_Tab(Li_TableIdx).Rx_Chr_Id;
14033       Lv_Compare_Val2     := Lx_Temp_ContRef.Rx_Chr_Id;
14034 
14035       IF Lv_Compare_Val1 = Lv_Compare_Val2 THEN
14036         Lx_DeDup_Tab.DELETE(Li_TableIdx);
14037       ELSE
14038         Lx_Temp_ContRef   := Lx_DeDup_Tab(Li_TableIdx);
14039       END IF;
14040 
14041       Li_TableIdx         := Lx_DeDup_Tab.NEXT(Li_TableIdx);
14042 
14043     END LOOP;
14044 
14045     X_Output_Tab          := Lx_DeDup_Tab;
14046     X_Result              := Lx_Result;
14047     X_Return_Status       := Lx_Return_Status;
14048 
14049   EXCEPTION
14050 
14051     WHEN OTHERS THEN
14052 
14053       OKC_API.SET_MESSAGE
14054         (P_App_Name	  => G_APP_NAME_OKC
14055 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
14056 	,P_Token1	  => G_SQLCODE_TOKEN
14057 	,P_Token1_Value	  => SQLCODE
14058 	,P_Token2	  => G_SQLERRM_TOKEN
14059 	,P_Token2_Value   => SQLERRM);
14060 
14061       OKC_API.SET_MESSAGE
14062         (P_App_Name	  => G_APP_NAME_OKC
14063 	,P_Msg_Name	  => G_DEBUG_TOKEN
14064 	,P_Token1	  => G_PACKAGE_TOKEN
14065 	,P_Token1_Value	  => G_PKG_NAME
14066 	,P_Token2	  => G_PROGRAM_TOKEN
14067 	,P_Token2_Value   => 'Dedup_ContItem_PlSql_Table');
14068 
14069       X_Result         := G_FALSE;
14070       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
14071 
14072   END Dedup_ContItem_PlSql_Table;
14073 
14074 -----------------------------------------------------------------------------------------------------------------------*
14075 
14076   PROCEDURE Get_Contracts_03
14077     (P_API_Version		IN  NUMBER
14078     ,P_Init_Msg_List		IN  VARCHAR2
14079     ,P_Inp_Rec			IN  Input_Rec_EntFrm
14080     ,X_Return_Status 		OUT NOCOPY VARCHAR2
14081     ,X_Msg_Count		OUT NOCOPY NUMBER
14082     ,X_Msg_Data			OUT NOCOPY VARCHAR2
14083     ,X_Ent_Contracts		OUT NOCOPY Output_Tbl_EntFrm)
14084   IS
14085 
14086     Lx_Inp_Rec			CONSTANT Input_Rec_EntFrm := P_Inp_Rec;
14087     Lx_Return_Status            Gx_Ret_Sts;
14088     Lx_Result                   Gx_Boolean;
14089 
14090     Lx_Ent_Contracts            Output_Tbl_EntFrm;
14091     Lx_Contracts                GT_Contract_Ref;
14092     Lx_Contracts_Out            GT_Contract_Ref;
14093 
14094     Ln_Organization_Id          NUMBER;
14095     Ln_Org_Id                   NUMBER;
14096     Lv_CovLvl_Flag              VARCHAR2(1);
14097 
14098     L_EXCEP_UNEXPECTED_ERR      EXCEPTION;
14099 
14100   BEGIN
14101 
14102     Lx_Return_Status            := G_RET_STS_SUCCESS;
14103     Lx_Result                   := G_TRUE;
14104 
14105     Lv_CovLvl_Flag              := 'F';
14106 
14107  -- Bug# 4735542
14108  -- Ln_Organization_Id          := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
14109 
14110  -- Modified for 12.0 MOAC project (JVARGHES)
14111  -- Ln_Org_Id                   := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
14112  --
14113     G_GRACE_PROFILE_SET         := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
14114 
14115     IF Lx_Inp_Rec.CovLvl_Product_Id IS NOT NULL THEN
14116 
14117       Get_CovProd_Contracts
14118         (P_CovProd_Obj_Id         => Lx_Inp_Rec.CovLvl_Product_Id
14119         ,P_Organization_Id        => Ln_Organization_Id
14120         ,P_Org_Id                 => Ln_Org_Id
14121         ,X_CovProd_Contracts      => Lx_Contracts
14122         ,X_Result                 => Lx_Result
14123         ,X_Return_Status   	  => Lx_Return_Status);
14124 
14125       IF Lx_Result <> G_TRUE THEN
14126         RAISE L_EXCEP_UNEXPECTED_ERR;
14127       END IF;
14128 
14129       Lv_CovLvl_Flag            := 'T';
14130 
14131     ELSIF Lx_Inp_Rec.CovLvl_Item_Id IS NOT NULL THEN
14132 
14133       Get_CovItem_Contracts
14134         (P_CovItem_Obj_Id         => Lx_Inp_Rec.CovLvl_Item_Id
14135         ,P_Organization_Id        => Ln_Organization_Id
14136         ,P_Party_Id               => Lx_Inp_Rec.CovLvl_Party_Id
14137         ,X_CovItem_Contracts      => Lx_Contracts
14138         ,X_Result                 => Lx_Result
14139         ,X_Return_Status   	  => Lx_Return_Status);
14140 
14141       IF Lx_Result <> G_TRUE THEN
14142         RAISE L_EXCEP_UNEXPECTED_ERR;
14143       END IF;
14144 
14145       Lv_CovLvl_Flag            := 'T';
14146 
14147     ELSIF Lx_Inp_Rec.CovLvl_System_Id IS NOT NULL THEN
14148 
14149       Get_CovSys_Contracts
14150         (P_CovSys_Obj_Id          => Lx_Inp_Rec.CovLvl_System_Id
14151         ,P_Org_Id                 => Ln_Org_Id
14152         ,X_CovSys_Contracts       => Lx_Contracts
14153         ,X_Result                 => Lx_Result
14154         ,X_Return_Status   	  => Lx_Return_Status);
14155 
14156       IF Lx_Result <> G_TRUE THEN
14157         RAISE L_EXCEP_UNEXPECTED_ERR;
14158       END IF;
14159 
14160       Lv_CovLvl_Flag            := 'T';
14161 
14162     ELSIF Lx_Inp_Rec.CovLvl_Cust_Acct_Id IS NOT NULL THEN
14163 
14164       Get_CovCust_Contracts
14165         (P_CovCust_Obj_Id         => Lx_Inp_Rec.CovLvl_Cust_Acct_Id
14166         ,X_CovCust_Contracts      => Lx_Contracts
14167         ,X_Result                 => Lx_Result
14168         ,X_Return_Status   	  => Lx_Return_Status);
14169 
14170       IF Lx_Result <> G_TRUE THEN
14171         RAISE L_EXCEP_UNEXPECTED_ERR;
14172       END IF;
14173 
14174       Lv_CovLvl_Flag            := 'T';
14175 
14176     ELSIF Lx_Inp_Rec.CovLvl_Site_Id IS NOT NULL THEN
14177 
14178       Get_CovSite_Contracts
14179         (P_CovSite_Obj_Id         => Lx_Inp_Rec.CovLvl_Site_Id
14180         ,P_Org_Id                 => Ln_Org_Id
14181         ,X_CovSite_Contracts      => Lx_Contracts
14182         ,X_Result                 => Lx_Result
14183         ,X_Return_Status   	  => Lx_Return_Status);
14184 
14185       IF Lx_Result <> G_TRUE THEN
14186         RAISE L_EXCEP_UNEXPECTED_ERR;
14187       END IF;
14188 
14189       Lv_CovLvl_Flag            := 'T';
14190 
14191     ELSIF Lx_Inp_Rec.CovLvl_Party_Id IS NOT NULL THEN
14192 
14193       Get_CovParty_Contracts
14194         (P_CovParty_Obj_Id        => Lx_Inp_Rec.CovLvl_Party_Id
14195         ,X_CovParty_Contracts     => Lx_Contracts
14196         ,X_Result                 => Lx_Result
14197         ,X_Return_Status   	  => Lx_Return_Status);
14198 
14199       IF Lx_Result <> G_TRUE THEN
14200         RAISE L_EXCEP_UNEXPECTED_ERR;
14201       END IF;
14202 
14203       Lv_CovLvl_Flag            := 'T';
14204 
14205     END IF;
14206 
14207     IF Lx_Contracts.Count > 0 THEN
14208 
14209       Sort_Asc_ContRef_PlSql_Table
14210         (P_Input_Tab          => Lx_Contracts
14211         ,X_Output_Tab         => Lx_Contracts_Out
14212         ,X_Result             => Lx_Result
14213         ,X_Return_Status      => Lx_Return_Status);
14214 
14215       IF Lx_Result <> G_TRUE THEN
14216         RAISE L_EXCEP_UNEXPECTED_ERR;
14217       END IF;
14218 
14219       Lx_Contracts           :=  Lx_Contracts_Out;
14220 
14221       Dedup_ContItem_PlSql_Table
14222         (P_Input_Tab          => Lx_Contracts
14223         ,X_Output_Tab         => Lx_Contracts_Out
14224         ,X_Result             => Lx_Result
14225         ,X_Return_Status      => Lx_Return_Status);
14226 
14227       IF Lx_Result <> G_TRUE THEN
14228         RAISE L_EXCEP_UNEXPECTED_ERR;
14229       END IF;
14230 
14231     ELSE
14232 
14233       IF Lv_CovLvl_Flag <> 'T' THEN
14234         Lx_Contracts_Out(1).Rx_Cle_Id :=  NULL; --G_MISS_NUM;
14235       END IF;
14236 
14237     END IF;
14238 
14239     Get_Contracts_03_Format
14240       (P_Contracts            => Lx_Contracts_Out
14241       ,P_Con_Number           => Lx_Inp_Rec.Contract_Number
14242       ,P_Con_Number_Modifier  => Lx_Inp_Rec.Contract_Number_Modifier
14243       ,P_Con_Customer_Id      => Lx_Inp_Rec.Contract_Customer_Id
14244       ,P_Service_Item_Id      => Lx_Inp_Rec.Contract_Service_Item_Id
14245       ,P_Organization_Id      => Ln_Organization_Id
14246       ,P_Request_Date         => Lx_Inp_Rec.Request_Date
14247       ,P_Validate_Eff         => Lx_Inp_Rec.Validate_Effectivity
14248       ,X_Contracts_03         => Lx_Ent_Contracts
14249       ,X_Result               => Lx_Result
14250       ,X_Return_Status        => Lx_Return_Status);
14251 
14252     IF Lx_Result <> G_TRUE THEN
14253       RAISE L_EXCEP_UNEXPECTED_ERR;
14254     END IF;
14255 
14256     X_Ent_Contracts       := Lx_Ent_Contracts;
14257     X_Return_Status       := Lx_Return_Status;
14258 
14259   EXCEPTION
14260 
14261     WHEN L_EXCEP_UNEXPECTED_ERR THEN
14262 
14263       --X_Result         := Lx_Result;
14264       X_Return_Status    := Lx_Return_Status;
14265 
14266     WHEN OTHERS THEN
14267 
14268       OKC_API.SET_MESSAGE
14269         (P_App_Name	  => G_APP_NAME_OKC
14270 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
14271 	,P_Token1	  => G_SQLCODE_TOKEN
14272 	,P_Token1_Value	  => SQLCODE
14273 	,P_Token2	  => G_SQLERRM_TOKEN
14274 	,P_Token2_Value   => SQLERRM);
14275 
14276       OKC_API.SET_MESSAGE
14277         (P_App_Name	  => G_APP_NAME_OKC
14278 	,P_Msg_Name	  => G_DEBUG_TOKEN
14279 	,P_Token1	  => G_PACKAGE_TOKEN
14280 	,P_Token1_Value	  => G_PKG_NAME
14281 	,P_Token2	  => G_PROGRAM_TOKEN
14282 	,P_Token2_Value   => 'Get_Contracts_03');
14283 
14284       --X_Result        := G_FALSE;
14285       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
14286 
14287   END Get_Contracts_03;
14288 
14289 -----------------------------------------------------------------------------------------------------------------------*
14290 
14291   PROCEDURE Get_Contracts
14292     (P_API_Version	  IN  NUMBER
14293     ,P_Init_Msg_List	  IN  VARCHAR2
14294     ,P_Inp_Rec		  IN  Input_Rec_EntFrm
14295     ,X_Return_Status 	  out nocopy VARCHAR2
14296     ,X_Msg_Count	  out nocopy NUMBER
14297     ,X_Msg_Data		  out nocopy VARCHAR2
14298     ,X_Ent_Contracts	  out nocopy Output_Tbl_EntFrm)
14299   IS
14300 
14301     Lx_Inp_Rec            Input_Rec_EntFrm;
14302 
14303   BEGIN
14304 
14305     Lx_Inp_Rec            := P_Inp_Rec;
14306 
14307  -- Bug# 4735542
14308  -- okc_context.set_okc_org_context;
14309 
14310     IF Lx_Inp_Rec.Request_Date IS NULL THEN
14311       Lx_Inp_Rec.Request_Date := SYSDATE;
14312     END IF;
14313 
14314     Get_Contracts_03
14315       (P_API_Version	  => P_API_Version
14316       ,P_Init_Msg_List	  => P_Init_Msg_List
14317       ,P_Inp_Rec	  => Lx_Inp_Rec
14318       ,X_Return_Status 	  => X_Return_Status
14319       ,X_Msg_Count	  => X_Msg_Count
14320       ,X_Msg_Data	  => X_Msg_Data
14321       ,X_Ent_Contracts	  => X_Ent_Contracts);
14322 
14323   EXCEPTION
14324 
14325     WHEN OTHERS THEN
14326 
14327       OKC_API.SET_MESSAGE
14328         (P_App_Name	  => G_APP_NAME_OKC
14329 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
14330 	,P_Token1	  => G_SQLCODE_TOKEN
14331 	,P_Token1_Value	  => SQLCODE
14332 	,P_Token2	  => G_SQLERRM_TOKEN
14333 	,P_Token2_Value   => SQLERRM);
14334 
14335       OKC_API.SET_MESSAGE
14336         (P_App_Name	  => G_APP_NAME_OKC
14337 	,P_Msg_Name	  => G_DEBUG_TOKEN
14338 	,P_Token1	  => G_PACKAGE_TOKEN
14339 	,P_Token1_Value	  => G_PKG_NAME
14340 	,P_Token2	  => G_PROGRAM_TOKEN
14341 	,P_Token2_Value   => 'Get_Contracts-Output_Tbl_EntFrm');
14342 
14343       --X_Result           := G_FALSE;
14344       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
14345 
14346   END Get_Contracts;
14347 
14348 -----------------------------------------------------------------------------------------------------------------------*
14349 /*
14350 As per ER# 2165039 this procedure (Get_HighImp_CP_Contract)
14351 when called by IB (Installed Base) will return a record based on
14352 following conditions:
14353 
14354 1.Only the Covered level of 'Covered Product' would be considered.
14355 3.Always return only one row, based on the highest importance level (1 being
14356 the highest)- loosing the visibility to other contract lines covering the same
14357 instance.
14358 4.Returns only one row- system picked, even if there are multiple rows selected
14359 for the criteria.
14360 */
14361 
14362  PROCEDURE Get_HighImp_CP_Contract
14363     (P_API_Version		    IN  NUMBER
14364     ,P_Init_Msg_List		IN  VARCHAR2
14365     ,P_Customer_product_Id	IN  NUMBER
14366     ,X_Return_Status 		OUT NOCOPY VARCHAR2
14367     ,X_Msg_Count 	        out nocopy NUMBER
14368     ,X_Msg_Data		        out nocopy VARCHAR2
14369     ,X_Importance_Lvl		OUT NOCOPY OKS_ENTITLEMENTS_PUB.High_Imp_level_K_rec)
14370 
14371   IS
14372 
14373   CURSOR Cur_ImplvlExists is
14374     select count(*) cnt
14375     from   oks_cov_types_v
14376     where importance_level is NOT NULL;
14377 --
14378 --
14379 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14380 --
14381 --
14382 --  CURSOR Cur_HighImpCont is
14383 --    select  okh.contract_number,
14384 --            okh.contract_number_modifier,
14385 --            okh.start_date,
14386 --            okh.end_date,
14387 --            cvt.meaning,
14388 --            cvt.importance_level,
14389 --            okh.estimated_amount,
14390 --            okh.sts_code
14391 --    from    OKC_K_HEADERS_ALL_B okh,
14392 --            okc_k_lines_b cle,
14393 --            okc_k_lines_b cle_cov,
14394 --            oks_k_lines_b okscle_cov,
14395 --            okc_k_lines_b cle_cvl,
14396 --            okc_k_items cim,
14397 --            okc_statuses_v sts,
14398 --            oks_cov_types_v cvt
14399 --    where   cle.chr_id = okh.id
14400 --    and     okh.sts_code = sts.code
14401 --    and     sts.ste_code = 'ACTIVE'
14402 --    and     cle_cov.cle_id = cle.id
14403 --    and     cle_cov.lse_id in (2,15,20)
14404 --    and     okscle_cov.cle_id = cle_cov.id
14405 --    and     okscle_cov.coverage_type = cvt.code
14406 --    and     cle_cvl.cle_id = cle.id
14407 --    and     cle_cvl.lse_id in (9,18,25)
14408 --    and     cle_cvl.id = cim.cle_id
14409 --    and     cim.object1_id1 = P_Customer_product_Id
14410 --    order by cvt.importance_level;
14411 --
14412 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14413 --
14414 --
14415   CURSOR Cur_HighImpCont IS
14416     select  okh.contract_number,
14417             okh.contract_number_modifier,
14418             okh.start_date,
14419             okh.end_date,
14420             cvt.meaning,
14421             cvt.importance_level,
14422             okh.estimated_amount,
14423             okh.sts_code
14424     from    OKC_K_HEADERS_ALL_B okh, -- OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
14425             okc_k_lines_b cle,
14426             oks_k_lines_b cle_ksl,
14427             oks_k_lines_b okscle_cov,
14428             okc_k_lines_b cle_cvl,
14429             okc_k_items cim,
14430             okc_statuses_v sts,
14431             oks_cov_types_v cvt
14432     where   cle.chr_id = okh.id
14433     and     okh.sts_code = sts.code
14434     and     sts.ste_code = 'ACTIVE'
14435     and     cle_ksl.cle_id = cle.id
14436     and     okscle_cov.cle_id = cle_ksl.coverage_id
14437     and     okscle_cov.coverage_type = cvt.code
14438     and     cle_cvl.cle_id = cle.id
14439     and     cle_cvl.lse_id in (9,18,25)
14440     and     cle_cvl.id = cim.cle_id
14441     and     cim.object1_id1 = P_Customer_product_Id
14442     order by cvt.importance_level;
14443   --
14444   --
14445   -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14446   --
14447   --
14448   --CURSOR Cur_CpCont is
14449   --  select  okh.contract_number,
14450   --          okh.contract_number_modifier,
14451   --          okh.start_date,
14452   --          okh.end_date,
14453   --          covtyp.meaning,
14454   --          covtyp.importance_level importance_level,
14455   --          okh.estimated_amount,
14456   --          okh.sts_code
14457   --  from    OKC_K_HEADERS_ALL_B okh,
14458   --          okc_k_lines_b cle,
14459   --          okc_k_lines_b cle_cov,
14460   --          oks_k_lines_b okscle_cov,
14461   --          okc_k_lines_b cle_cvl,
14462   --          okc_k_items cim,
14463   --          okc_statuses_v sts,
14464   --          oks_cov_types_v covtyp
14465   --  where   cle.chr_id = okh.id
14466   --  and     okh.sts_code = sts.code
14467   --  and     sts.ste_code = 'ACTIVE'
14468   --  and     cle_cov.cle_id = cle.id
14469   --  and     cle_cov.lse_id in (2,15,20)
14470   --  and     okscle_cov.cle_id = cle_cov.id
14471   --  and     okscle_cov.coverage_type = covtyp.code
14472   --  and     cle_cvl.cle_id = cle.id
14473   --  and     cle_cvl.lse_id in (9,18,25)
14474   --  and     cle_cvl.id = cim.cle_id
14475   --  and     cim.object1_id1 = P_Customer_product_Id
14476   --  and     rownum =1;
14477   --
14478   --
14479   --
14480   -- Modified for 12.0 Coverage Rearch project (JVARGHES)
14481   --
14482   --
14483   CURSOR Cur_CpCont is
14484     select  okh.contract_number,
14485             okh.contract_number_modifier,
14486             okh.start_date,
14487             okh.end_date,
14488             covtyp.meaning,
14489             covtyp.importance_level importance_level,
14490             okh.estimated_amount,
14491             okh.sts_code
14492     from    OKC_K_HEADERS_ALL_B okh, -- OKC_K_HEADERS_B okh  -- Modified for 12.0 MOAC project (JVARGHES)
14493             okc_k_lines_b cle,
14494             oks_k_lines_b cle_ksl,
14495             oks_k_lines_b okscle_cov,
14496             okc_k_lines_b cle_cvl,
14497             okc_k_items cim,
14498             okc_statuses_v sts,
14499             oks_cov_types_v covtyp
14500     where   cle.chr_id = okh.id
14501     and     okh.sts_code = sts.code
14502     and     sts.ste_code = 'ACTIVE'
14503     and     cle_ksl.cle_id = cle.id
14504     and     okscle_cov.cle_id = cle_ksl.coverage_id
14505     and     okscle_cov.coverage_type = covtyp.code
14506     and     cle_cvl.cle_id = cle.id
14507     and     cle_cvl.lse_id in (9,18,25)
14508     and     cle_cvl.id = cim.cle_id
14509     and     cim.object1_id1 = P_Customer_product_Id
14510     and     rownum =1;
14511    --
14512    --
14513 
14514     Lx_Result                   Gx_Boolean;
14515 
14516   BEGIN
14517 
14518 
14519     FOR Implvl_rec in Cur_ImplvlExists LOOP
14520 
14521        If  Implvl_rec.cnt >0 then
14522 
14523          FOR HighImpCont_rec in Cur_HighImpCont LOOP
14524 
14525             X_Importance_Lvl.contract_number            :=     HighImpCont_rec.contract_number;
14526             X_Importance_Lvl.contract_number_modifier   :=     HighImpCont_rec.contract_number_modifier;
14527             X_Importance_Lvl.contract_status_code       :=     HighImpCont_rec.sts_code;
14528             X_Importance_Lvl.contract_start_date        :=     HighImpCont_rec.start_date;
14529             X_Importance_Lvl.contract_end_date          :=     HighImpCont_rec.end_date;
14530             X_Importance_Lvl.contract_amount            :=     HighImpCont_rec.estimated_amount;
14531             X_Importance_Lvl.coverage_type              :=     HighImpCont_rec.meaning;
14532             X_Importance_Lvl.coverage_imp_level         :=     HighImpCont_rec.importance_level;
14533           exit;
14534          END LOOP;
14535 
14536         else
14537 
14538          FOR CpCont_rec in Cur_CpCont LOOP
14539 
14540             X_Importance_Lvl.contract_number            :=     CpCont_rec.contract_number;
14541             X_Importance_Lvl.contract_number_modifier   :=     CpCont_rec.contract_number_modifier;
14542             X_Importance_Lvl.contract_status_code       :=     CpCont_rec.sts_code;
14543             X_Importance_Lvl.contract_start_date        :=     CpCont_rec.start_date;
14544             X_Importance_Lvl.contract_end_date          :=     CpCont_rec.end_date;
14545             X_Importance_Lvl.contract_amount            :=     CpCont_rec.estimated_amount;
14546             X_Importance_Lvl.coverage_type              :=     CpCont_rec.meaning;
14547             X_Importance_Lvl.coverage_imp_level         :=     CpCont_rec.importance_level;
14548 
14549          END LOOP;
14550 
14551         end if;
14552 
14553      END LOOP;
14554 
14555 
14556     X_Return_Status  := G_RET_STS_SUCCESS;
14557 
14558   EXCEPTION
14559 
14560     WHEN OTHERS THEN
14561 
14562       OKC_API.SET_MESSAGE
14563         (P_App_Name	  => G_APP_NAME_OKC
14564 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
14565 	,P_Token1	  => G_SQLCODE_TOKEN
14566 	,P_Token1_Value	  => SQLCODE
14567 	,P_Token2	  => G_SQLERRM_TOKEN
14568 	,P_Token2_Value   => SQLERRM);
14569 
14570       OKC_API.SET_MESSAGE
14571         (P_App_Name	  => G_APP_NAME_OKC
14572 	,P_Msg_Name	  => G_DEBUG_TOKEN
14573 	,P_Token1	  => G_PACKAGE_TOKEN
14574 	,P_Token1_Value	  => G_PKG_NAME
14575 	,P_Token2	  => G_PROGRAM_TOKEN
14576 	,P_Token2_Value   => 'Get_HighImp_CP_Contract');
14577 
14578       --X_Result         := G_FALSE;
14579       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
14580 
14581   END Get_HighImp_CP_Contract;
14582 
14583  FUNCTION Get_Final_End_Date(
14584     P_Contract_Id IN number,
14585     P_Enddate IN DATE) Return Date is
14586 
14587   CURSOR Lx_Csr_HDR_Grace(Cx_HDR_Id IN Gx_OKS_Id) IS
14588     SELECT Grace_Duration Duration
14589           ,Grace_Period TimeUnit
14590       FROM Oks_K_Headers_B OKH
14591      WHERE OKH.chr_Id = Cx_HDR_Id;
14592 
14593   L_Date    DATE;
14594 
14595   BEGIN
14596 
14597   L_Date    := P_Enddate;
14598 
14599    IF G_GRACE_PROFILE_SET IS NULL THEN  -- Bug 5003767
14600      G_GRACE_PROFILE_SET :=  fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
14601    END IF;
14602 
14603    IF G_GRACE_PROFILE_SET = 'Y' then
14604     FOR Idx in Lx_Csr_HDR_Grace(P_Contract_Id) LOOP
14605 
14606 	    if Idx.TimeUnit is not null and
14607       	 Idx.duration is not null then
14608 
14609 	    	L_Date := OKC_TIME_UTIL_PVT.get_enddate(
14610       	        P_Enddate,
14611             	  Idx.TimeUnit,
14612                     Idx.Duration) + 1;
14613 
14614 
14615 	    end if;
14616     END LOOP;
14617    END IF;
14618 
14619    RETURN L_Date;
14620 
14621   END Get_Final_End_Date;
14622 
14623 
14624 -----------------------------------------------------------------------------------------------------------------------*
14625 
14626 
14627   PROCEDURE OKS_VALIDATE_SYSTEM
14628     (P_API_Version		    IN  NUMBER
14629     ,P_Init_Msg_List		IN  VARCHAR2
14630     ,P_System_Id	        IN  NUMBER
14631     ,P_Request_Date         IN  DATE
14632     ,P_Update_Only_Check    IN  VARCHAR2
14633     ,X_Return_Status 		OUT NOCOPY VARCHAR2
14634     ,X_Msg_Count 	        out nocopy NUMBER
14635     ,X_Msg_Data		        out nocopy VARCHAR2
14636     ,X_System_Valid		OUT NOCOPY VARCHAR2) IS
14637 
14638    CURSOR Lx_Csr_SysProd(Cx_System_id IN VARCHAR2) IS
14639 	   SELECT CSI.instance_id CP_Id
14640              ,CSI.System_Id System_Id
14641        FROM   CSI_ITEM_INSTANCES CSI
14642        WHERE  CSI.System_id =  (Cx_System_Id);
14643 
14644 
14645    CURSOR Check_update_only(p_coverage_id IN Gx_OKS_Id) IS
14646        SELECT 'Y'
14647        FROM  okc_k_lines_v bp,
14648              okc_k_items cim,
14649              cs_business_processes cbp
14650        WHERE bp.cle_id = p_coverage_id
14651        AND   cim.cle_id = bp.id
14652        AND   cbp.business_process_id = cim.object1_id1
14653        AND   cim.jtot_object1_code = 'OKX_BUSIPROC'
14654        AND   (cbp.service_request_flag = 'Y'
14655               OR cbp.depot_repair_flag = 'Y'
14656               OR cbp.field_service_flag = 'Y')
14657        AND   ROWNUM = 1;
14658 
14659     Lx_system_valid             Gx_Boolean;
14660 
14661     l_system_id                 CONSTANT NUMBER := p_system_id;
14662     l_request_date              CONSTANT DATE := nvl(p_request_date,sysdate);
14663     l_update_only_check         CONSTANT VARCHAR2(1) := nvl(p_update_only_check,'N');
14664     l_out_validate_csi          VARCHAR2(1);
14665 
14666     Li_TableIdx                 BINARY_INTEGER;
14667     Lx_System_CovLevels         GT_ContItem_Ref;
14668     Lx_Prod_CovLevels           GT_ContItem_Ref;
14669     Lx_CovSys_Contracts         GT_Contract_Ref;
14670     Lx_CustProd_Contracts       GT_Contract_Ref;
14671     Lx_Result                   Gx_Boolean;
14672     Lx_Return_Status            Gx_Ret_Sts;
14673     Lx_Ent_Contracts            Get_ConTop_Tbl ;
14674     Lx_ExcepionMsg              Gx_ExceptionMsg;
14675     L_EXCEP_NO_DATA_FOUND       EXCEPTION;
14676     L_EXCEP_UNEXPECTED_ERR      EXCEPTION;
14677     L_VALIDATE_CSI              EXCEPTION;
14678     i                           NUMBER;
14679 
14680     X_out_paramter_csi          VARCHAR2(1);
14681 
14682     BEGIN
14683 
14684      Lx_system_valid             := G_FALSE;
14685      Lx_Result                   := G_TRUE;
14686      Lx_Return_Status            := G_RET_STS_SUCCESS;
14687 
14688      l_out_validate_csi          := 'N';
14689 
14690      Li_TableIdx  := 1;
14691 
14692      Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id1  := l_system_id;
14693 
14694      Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id2  := '#';
14695      Lx_System_CovLevels(Li_TableIdx).Rx_ObjCode  := 'OKX_COVSYST';
14696 
14697 
14698       Get_CovLevel_Contracts
14699       (P_CovLevel_Items      => Lx_System_CovLevels
14700       ,P_Party_Id            => NULL
14701       ,X_CovLevel_Contracts  => Lx_CovSys_Contracts
14702       ,X_Result              => Lx_Result
14703       ,X_Return_Status       => Lx_Return_Status);
14704 
14705         IF Lx_Result <> G_TRUE THEN
14706               RAISE L_EXCEP_UNEXPECTED_ERR;
14707         END IF;
14708 
14709 
14710       Get_Contracts_02_Format
14711       (P_Contracts          => Lx_CovSys_Contracts
14712       ,P_BusiProc_Id	    => NULL
14713       ,P_Severity_Id	    => NULL
14714       ,P_Request_TZone_Id   => NULL
14715       ,P_Dates_In_Input_TZ  => 'Y'             -- Added for 12.0 ENT-TZ project (JVARGHES)
14716       ,P_Incident_Date      => l_request_date  -- Added for 12.0 ENT-TZ project (JVARGHES)
14717       ,P_Request_Date       => l_request_date
14718       ,P_Calc_RespTime_YN   => 'N'
14719       ,P_Validate_Eff       => 'T'
14720       ,P_Validate_Flag      => 'Y'
14721       ,P_SrvLine_Flag       => 'F'
14722       ,P_Sort_Key           => NULL
14723       ,X_Contracts_02       => Lx_Ent_Contracts
14724       ,X_Result             => Lx_Result
14725       ,X_Return_Status      => Lx_Return_Status);
14726 
14727         IF Lx_Result <> G_TRUE THEN
14728                RAISE L_EXCEP_UNEXPECTED_ERR;
14729         END IF;
14730 
14731         IF Lx_Ent_Contracts.count > 0 THEN
14732 
14733           IF l_update_only_check <> 'Y' then
14734              l_out_validate_csi := 'Y';
14735              --RETURN l_out_validate_csi;
14736 			x_system_valid := l_out_validate_csi;
14737 			RAISE L_VALIDATE_CSI;
14738           ELSE
14739              i := 1;
14740              LOOP
14741                FOR bp_rec IN Check_update_only(Lx_Ent_Contracts(i).coverage_term_line_id)
14742                LOOP
14743                 l_out_validate_csi := 'Y';
14744                 --RETURN l_out_validate_csi;
14745 			x_system_valid := l_out_validate_csi;
14746 			RAISE L_VALIDATE_CSI;
14747                END LOOP;
14748 
14749                IF (i = Lx_Ent_Contracts.last) THEN
14750                 EXIT;
14751                END IF;
14752                 i := Lx_Ent_Contracts.next(i);
14753              END LOOP;
14754            END IF;
14755 
14756          END IF;
14757 
14758          Li_TableIdx := 0;
14759 
14760          FOR Itm in Lx_Csr_SysProd(l_System_id)
14761          LOOP
14762             Li_TableIdx := Li_TableIdx + 1;
14763 
14764             Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id1  := Itm.CP_Id;
14765             Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id2  := '#';
14766             Lx_Prod_CovLevels(Li_TableIdx).Rx_ObjCode  := 'OKX_CUSTPROD';
14767 
14768               Get_CovLevel_Contracts
14769                   (P_CovLevel_Items      => Lx_Prod_CovLevels
14770                   ,P_Party_Id            => NULL
14771                   ,X_CovLevel_Contracts  => Lx_CustProd_Contracts
14772                   ,X_Result              => Lx_Result
14773                   ,X_Return_Status       => Lx_Return_Status);
14774 
14775 
14776                IF Lx_Result <> G_TRUE THEN
14777                     RAISE L_EXCEP_UNEXPECTED_ERR;
14778                END IF;
14779 
14780               Get_Contracts_02_Format
14781                   (P_Contracts          => Lx_CustProd_Contracts
14782                   ,P_BusiProc_Id	    => NULL
14783                   ,P_Severity_Id	    => NULL
14784                   ,P_Request_TZone_Id   => NULL
14785                   ,P_Dates_In_Input_TZ  => 'Y'             -- Added for 12.0 ENT-TZ project (JVARGHES)
14786                   ,P_Incident_Date      => l_request_date  -- Added for 12.0 ENT-TZ project (JVARGHES)
14787                   ,P_Request_Date       => l_request_date
14788                   ,P_Calc_RespTime_YN   => 'N'
14789                   ,P_Validate_Eff       => 'T'
14790                   ,P_Validate_Flag      => 'Y'
14791                   ,P_SrvLine_Flag       => 'F'
14792                   ,P_Sort_Key           => NULL
14793                   ,X_Contracts_02       => Lx_Ent_Contracts
14794                   ,X_Result             => Lx_Result
14795                   ,X_Return_Status      => Lx_Return_Status);
14796 
14797 
14798                IF Lx_Result <> G_TRUE THEN
14799                     RAISE L_EXCEP_UNEXPECTED_ERR;
14800                END IF;
14801 
14802                IF Lx_Ent_Contracts.count > 0 THEN
14803                  IF l_update_only_check <> 'Y' THEN
14804                     l_out_validate_csi := 'Y';
14805                     --RETURN l_out_validate_csi;
14806 			x_system_valid := l_out_validate_csi;
14807 			RAISE L_VALIDATE_CSI;
14808                  ELSE
14809                     i := 1;
14810                     LOOP
14811                       FOR bp_rec IN Check_update_only(Lx_Ent_Contracts(i).coverage_term_line_id)
14812                       LOOP
14813                          l_out_validate_csi := 'Y';
14814                          --RETURN l_out_validate_csi;
14815 			x_system_valid := l_out_validate_csi;
14816 			RAISE L_VALIDATE_CSI;
14817                       END LOOP;
14818                       IF (i = Lx_Ent_Contracts.last) THEN
14819                         EXIT;
14820                       END IF;
14821                           i := Lx_Ent_Contracts.next(i);
14822                     END LOOP;
14823                   END IF;
14824                 END IF;
14825 
14826             END LOOP;
14827 
14828             --RETURN l_out_validate_csi;
14829 			x_system_valid := l_out_validate_csi;
14830 			RAISE L_VALIDATE_CSI;
14831 
14832   EXCEPTION
14833 
14834 	WHEN L_VALIDATE_CSI THEN
14835 		x_return_status := G_RET_STS_SUCCESS;
14836 
14837     WHEN L_EXCEP_UNEXPECTED_ERR THEN
14838 
14839        --RETURN l_out_validate_csi;
14840 			x_system_valid := l_out_validate_csi;
14841 			x_return_status := G_RET_STS_UNEXP_ERROR;
14842 
14843     WHEN OTHERS THEN
14844 
14845       OKC_API.SET_MESSAGE
14846         (P_App_Name	  => G_APP_NAME_OKC
14847     	,P_Msg_Name	  => G_UNEXPECTED_ERROR
14848 	    ,P_Token1	  => G_SQLCODE_TOKEN
14849 	    ,P_Token1_Value	  => SQLCODE
14850     	,P_Token2	  => G_SQLERRM_TOKEN
14851     	,P_Token2_Value   => SQLERRM);
14852 
14853       OKC_API.SET_MESSAGE
14854         (P_App_Name	  => G_APP_NAME_OKC
14855     	,P_Msg_Name	  => G_DEBUG_TOKEN
14856     	,P_Token1	  => G_PACKAGE_TOKEN
14857     	,P_Token1_Value	  => G_PKG_NAME
14858     	,P_Token2	  => G_PROGRAM_TOKEN
14859     	,P_Token2_Value   => 'OKS_VALIDATE_SYSTEM');
14860 
14861     --RETURN l_out_validate_csi;
14862 			x_system_valid := l_out_validate_csi;
14863 			x_return_status := G_RET_STS_UNEXP_ERROR;
14864 
14865   END OKS_VALIDATE_SYSTEM;
14866 
14867   PROCEDURE Get_CSI_LatestEdDtdKLines_02
14868     (P_Input_Tab          IN  Get_ConTop_Tbl
14869     ,X_Output_Tab         out nocopy Get_ConTop_Tbl
14870     ,X_Result             out nocopy Gx_Boolean
14871     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)
14872   IS
14873 
14874     Lx_Sort_Tab           Get_ConTop_Tbl;
14875     Lx_Sort_Tab_Out       Get_ConTop_Tbl;
14876     Lx_Result             Gx_Boolean;
14877     Lx_Return_Status      Gx_Ret_Sts;
14878 
14879     Li_TableIdx_Out       BINARY_INTEGER;
14880     Li_TableIdx_In        BINARY_INTEGER;
14881 
14882     Lx_Temp_ContItem      Get_ConTop_Rec;
14883 
14884     Lv_Composit_Val1      DATE;
14885     Lv_Composit_Val1_Num  NUMBER;
14886 
14887     Lv_Composit_Val2      DATE;
14888     Lv_Composit_Val2_Num  NUMBER;
14889 
14890     i                     NUMBER;
14891     j                     NUMBER;
14892     Lx_KLine_EdDt         DATE;
14893 
14894   BEGIN
14895 
14896     Lx_Sort_Tab           := P_Input_Tab;
14897     Lx_Result             := G_TRUE;
14898     Lx_Return_Status      := G_RET_STS_SUCCESS;
14899 
14900     Li_TableIdx_Out  := Lx_Sort_Tab.FIRST;
14901 
14902 -- Sorting Contract lines with latest end dates
14903 
14904     WHILE Li_TableIdx_Out IS NOT NULL LOOP
14905 
14906       Li_TableIdx_In  := Li_TableIdx_Out;
14907 
14908       WHILE Li_TableIdx_In IS NOT NULL LOOP
14909 
14910         Lv_Composit_Val1  := Lx_Sort_Tab(Li_TableIdx_Out).Service_End_Date;
14911         Lv_Composit_Val1_Num  := TO_NUMBER(TO_CHAR(Lv_Composit_Val1,'YYYYMMDDHH24MISS'));
14912         Lv_Composit_Val2  := Lx_Sort_Tab(Li_TableIdx_In).Service_End_Date;
14913         Lv_Composit_Val2_Num  := TO_NUMBER(TO_CHAR(Lv_Composit_Val2,'YYYYMMDDHH24MISS'));
14914 
14915         IF Lv_Composit_Val1_Num < Lv_Composit_Val2_Num THEN
14916 
14917           Lx_Temp_ContItem              := Lx_Sort_Tab(Li_TableIdx_Out);
14918           Lx_Sort_Tab(Li_TableIdx_Out)  := Lx_Sort_Tab(Li_TableIdx_In);
14919           Lx_Sort_Tab(Li_TableIdx_In)   := Lx_Temp_ContItem;
14920 
14921         END IF;
14922 
14923         Li_TableIdx_In  := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
14924 
14925       END LOOP;
14926 
14927       Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
14928 
14929     END LOOP;
14930 
14931 
14932 
14933 -- keeping contract lines with latest end date
14934 
14935     i                 := Lx_Sort_Tab.First;
14936     j                 := 1;
14937     Lx_KLine_EdDt     := Lx_Sort_Tab(i).Service_End_Date;
14938 
14939     WHILE i IS NOT NULL LOOP
14940         IF Lx_KLine_EdDt <> Lx_Sort_Tab(i).Service_End_Date THEN
14941            EXIT;
14942         ELSE
14943            Lx_Sort_Tab_Out(j)  := Lx_Sort_Tab(i);
14944            i := Lx_Sort_Tab.Next(i);
14945            j := j+1 ; --Lx_Sort_Tab_Out.Next(j);
14946         END IF;
14947     END LOOP;
14948 
14949     X_Output_Tab          := Lx_Sort_Tab_Out;
14950     X_Result              := Lx_Result;
14951     X_Return_Status       := Lx_Return_Status;
14952 
14953     Lx_Sort_Tab.DELETE;
14954 
14955   EXCEPTION
14956 
14957     WHEN OTHERS THEN
14958 
14959       OKC_API.SET_MESSAGE
14960         (P_App_Name	  => G_APP_NAME_OKC
14961 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
14962 	,P_Token1	  => G_SQLCODE_TOKEN
14963 	,P_Token1_Value	  => SQLCODE
14964 	,P_Token2	  => G_SQLERRM_TOKEN
14965 	,P_Token2_Value   => SQLERRM);
14966 
14967       OKC_API.SET_MESSAGE
14968         (P_App_Name	  => G_APP_NAME_OKC
14969 	,P_Msg_Name	  => G_DEBUG_TOKEN
14970 	,P_Token1	  => G_PACKAGE_TOKEN
14971 	,P_Token1_Value	  => G_PKG_NAME
14972 	,P_Token2	  => G_PROGRAM_TOKEN
14973 	,P_Token2_Value   => 'Get_CSI_LatestEdDtdKLines_02');
14974 
14975       X_Result           := G_FALSE;
14976       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
14977 
14978   END Get_CSI_LatestEdDtdKLines_02;
14979 
14980   PROCEDURE Sort_CSI_KLineId_02
14981     (P_Input_Tab          IN  Get_ConTop_Tbl
14982     ,X_Output_Tab         out nocopy Get_ConTop_Tbl
14983     ,X_Result             out nocopy Gx_Boolean
14984     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)
14985   IS
14986 
14987     Lx_Sort_Tab           Get_ConTop_Tbl;
14988     Lx_Result             Gx_Boolean;
14989     Lx_Return_Status      Gx_Ret_Sts;
14990 
14991     Li_TableIdx_Out       BINARY_INTEGER;
14992     Li_TableIdx_In        BINARY_INTEGER;
14993 
14994     Lx_Temp_ContItem      Get_ConTop_Rec;
14995 
14996     Lv_Composit_Val1      DATE;
14997     Lv_Composit_Val1_Num  NUMBER;
14998 
14999     Lv_Composit_Val2      DATE;
15000     Lv_Composit_Val2_Num  NUMBER;
15001 
15002   BEGIN
15003 
15004     Lx_Sort_Tab           := P_Input_Tab;
15005     Lx_Result             := G_TRUE;
15006     Lx_Return_Status      := G_RET_STS_SUCCESS;
15007 
15008     Li_TableIdx_Out  := Lx_Sort_Tab.FIRST;
15009 
15010     WHILE Li_TableIdx_Out IS NOT NULL LOOP
15011 
15012       Li_TableIdx_In  := Li_TableIdx_Out;
15013 
15014       WHILE Li_TableIdx_In IS NOT NULL LOOP
15015 
15016         Lv_Composit_Val1_Num  := Lx_Sort_Tab(Li_TableIdx_Out).Service_Line_Id;
15017         Lv_Composit_Val2_Num  := Lx_Sort_Tab(Li_TableIdx_In).Service_Line_Id;
15018 
15019         IF Lv_Composit_Val1_Num > Lv_Composit_Val2_Num THEN
15020 
15021           Lx_Temp_ContItem              := Lx_Sort_Tab(Li_TableIdx_Out);
15022           Lx_Sort_Tab(Li_TableIdx_Out)  := Lx_Sort_Tab(Li_TableIdx_In);
15023           Lx_Sort_Tab(Li_TableIdx_In)   := Lx_Temp_ContItem;
15024 
15025         END IF;
15026 
15027         Li_TableIdx_In  := Lx_Sort_Tab.NEXT(Li_TableIdx_In);
15028 
15029       END LOOP;
15030 
15031       Li_TableIdx_Out := Lx_Sort_Tab.NEXT(Li_TableIdx_Out);
15032 
15033     END LOOP;
15034 
15035     X_Output_Tab          := Lx_Sort_Tab;
15036     X_Result              := Lx_Result;
15037     X_Return_Status       := Lx_Return_Status;
15038 
15039   EXCEPTION
15040 
15041     WHEN OTHERS THEN
15042 
15043       OKC_API.SET_MESSAGE
15044         (P_App_Name	  => G_APP_NAME_OKC
15045 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
15046 	,P_Token1	  => G_SQLCODE_TOKEN
15047 	,P_Token1_Value	  => SQLCODE
15048 	,P_Token2	  => G_SQLERRM_TOKEN
15049 	,P_Token2_Value   => SQLERRM);
15050 
15051       OKC_API.SET_MESSAGE
15052         (P_App_Name	  => G_APP_NAME_OKC
15053 	,P_Msg_Name	  => G_DEBUG_TOKEN
15054 	,P_Token1	  => G_PACKAGE_TOKEN
15055 	,P_Token1_Value	  => G_PKG_NAME
15056 	,P_Token2	  => G_PROGRAM_TOKEN
15057 	,P_Token2_Value   => 'Sort_CSI_KLineId_02');
15058 
15059       X_Result           := G_FALSE;
15060       X_Return_Status    := G_RET_STS_UNEXP_ERROR;
15061 
15062   END Sort_CSI_KLineId_02;
15063 
15064 
15065   PROCEDURE Dedup_CSICP_KLine_PlSql_Table
15066     (P_Input_Tab          IN  GT_Contract_Ref
15067     ,X_Output_Tab         out nocopy GT_Contract_Ref
15068     ,X_Result             out nocopy Gx_Boolean
15069     ,X_Return_Status   	  out nocopy Gx_Ret_Sts)  IS
15070 
15071     Lx_DeDup_Tab          GT_Contract_Ref;
15072     Lx_Result             Gx_Boolean;
15073     Lx_Return_Status      Gx_Ret_Sts;
15074 
15075     Lx_Temp_ContRef       GR_Contract_Ref;
15076 
15077     Li_TableIdx           BINARY_INTEGER;
15078     Lv_Compare_Val1       VARCHAR2(300);
15079     Lv_Compare_Val2       VARCHAR2(300);
15080 
15081   BEGIN
15082 
15083     Lx_DeDup_Tab          := P_Input_Tab;
15084     Lx_Result             := G_TRUE;
15085     Lx_Return_Status      := G_RET_STS_SUCCESS;
15086 
15087     Li_TableIdx           := Lx_DeDup_Tab.FIRST;
15088 
15089     WHILE Li_TableIdx IS NOT NULL LOOP
15090 
15091       Lv_Compare_Val1     := Lx_DeDup_Tab(Li_TableIdx).Rx_Cle_Id;
15092       Lv_Compare_Val2     := Lx_Temp_ContRef.Rx_Cle_Id;
15093 
15094       IF Lv_Compare_Val1 = Lv_Compare_Val2 THEN
15095         Lx_DeDup_Tab.DELETE(Li_TableIdx);
15096       ELSE
15097         Lx_Temp_ContRef   := Lx_DeDup_Tab(Li_TableIdx);
15098       END IF;
15099 
15100       Li_TableIdx         := Lx_DeDup_Tab.NEXT(Li_TableIdx);
15101 
15102     END LOOP;
15103 
15104     X_Output_Tab          := Lx_DeDup_Tab;
15105     X_Result              := Lx_Result;
15106     X_Return_Status       := Lx_Return_Status;
15107 
15108   EXCEPTION
15109 
15110     WHEN OTHERS THEN
15111 
15112       OKC_API.SET_MESSAGE
15113         (P_App_Name	  => G_APP_NAME_OKC
15114 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
15115 	,P_Token1	  => G_SQLCODE_TOKEN
15116 	,P_Token1_Value	  => SQLCODE
15117 	,P_Token2	  => G_SQLERRM_TOKEN
15118 	,P_Token2_Value   => SQLERRM);
15119 
15120       OKC_API.SET_MESSAGE
15121         (P_App_Name	  => G_APP_NAME_OKC
15122 	,P_Msg_Name	  => G_DEBUG_TOKEN
15123 	,P_Token1	  => G_PACKAGE_TOKEN
15124 	,P_Token1_Value	  => G_PKG_NAME
15125 	,P_Token2	  => G_PROGRAM_TOKEN
15126 	,P_Token2_Value   => 'Dedup_CSICP_KLine_PlSql_Table');
15127 
15128       X_Result         := G_FALSE;
15129       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
15130 
15131   END Dedup_CSICP_KLine_PlSql_Table;
15132 
15133   -----------------------------------------------------------------------------------------------------------------------*
15134 
15135   PROCEDURE Get_Sort_CSI_ImpLvl
15136     (P_Contracts            IN  Get_ConTop_Tbl
15137     ,X_Contracts_02         out nocopy Get_ConTop_Tbl
15138     ,X_Result               out nocopy Gx_Boolean
15139     ,X_Return_Status   	    out nocopy Gx_Ret_Sts)
15140   IS
15141 
15142     Lx_Contracts             Get_ConTop_Tbl;
15143     Lx_Contracts_01          Get_ConTop_Tbl;
15144     Lx_Contracts_01_Out      Get_ConTop_Tbl;
15145     Lx_Contracts_02          Get_ConTop_Tbl;
15146 
15147 
15148     Lx_Result                Gx_Boolean;
15149     Lx_Return_Status         Gx_Ret_Sts;
15150 
15151     Lx_Cov_Type_Code         Oks_Cov_Types_B.Code%TYPE;
15152     Lx_Cov_Type_Meaning      Oks_Cov_Types_TL.Meaning%TYPE;
15153     Lx_Cov_Type_Description  Oks_Cov_Types_TL.Description%TYPE;
15154     Lx_Cov_Type_Imp_Level    Oks_Cov_Types_B.Importance_Level%TYPE;
15155 
15156 
15157     Li_OutTab_Idx            BINARY_INTEGER;
15158     i                        NUMBER ;
15159     j                        NUMBER ;
15160     Lx_Imp_Level             NUMBER;
15161 
15162     Ln_Msg_Count	     NUMBER;
15163     Lv_Msg_Data		     VARCHAR2(2000);
15164 
15165     L_EXCEP_UNEXPECTED_ERR   EXCEPTION;
15166 
15167   BEGIN
15168 
15169     Lx_Contracts             := P_Contracts;
15170     Lx_Result                := G_TRUE;
15171     Lx_Return_Status         := G_RET_STS_SUCCESS;
15172     Li_OutTab_Idx            := 1;
15173 
15174         Lx_Contracts_01 := Lx_Contracts;
15175 
15176 -- getting importance level for all Contract lines
15177 
15178         WHILE Li_OutTab_Idx IS NOT NULL LOOP
15179 
15180             Get_Coverage_Type_Attribs
15181               (P_CVL_Id                => Lx_Contracts_01(Li_OutTab_Idx).Coverage_Term_Line_Id
15182               ,P_Set_ExcepionStack     => G_FALSE
15183               ,X_Cov_Type_Code         => Lx_Cov_Type_Code
15184               ,X_Cov_Type_Meaning      => Lx_Cov_Type_Meaning
15185               ,X_Cov_Type_Description  => Lx_Cov_Type_Description
15186               ,X_Cov_Type_Imp_Level    => Lx_Cov_Type_Imp_Level
15187               ,X_Result                => Lx_Result
15188               ,X_Return_Status         => Lx_Return_Status);
15189 
15190             IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
15191               RAISE L_EXCEP_UNEXPECTED_ERR;
15192             END IF;
15193 
15194             Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Code      :=  Lx_Cov_Type_Code;
15195             Lx_Contracts_01(Li_OutTab_Idx).Coverage_Type_Meaning   :=  Lx_Cov_Type_Meaning;
15196             Lx_Contracts_01(Li_OutTab_Idx).coverage_Type_Imp_Level :=  Lx_Cov_Type_Imp_Level;
15197 
15198            Li_OutTab_Idx := Lx_Contracts_01.NEXT(Li_OutTab_Idx);
15199 
15200         END LOOP;
15201 
15202 -- Sorting importance level for all Contract lines
15203 
15204         Sort_Asc_GetContracts_02
15205         (P_Input_Tab          => Lx_Contracts_01
15206         ,P_Sort_Key           => G_COVERAGE_TYPE_IMP_LEVEL --Lv_Sort_Key
15207         ,X_Output_Tab         => Lx_Contracts_01_Out
15208         ,X_Result             => Lx_Result
15209         ,X_Return_Status      => Lx_Return_Status);
15210 
15211         IF Lx_Result <> G_TRUE THEN
15212             RAISE L_EXCEP_UNEXPECTED_ERR;
15213         END IF;
15214 
15215         Lx_Contracts_01.DELETE;
15216         Lx_Contracts_01 := Lx_Contracts_01_Out;
15217         Lx_Contracts_01_Out.DELETE;
15218 
15219 -- Keeping all Contract lines with highest importance level
15220 
15221         i                 := Lx_Contracts_01.First;
15222         j                 := 1;
15223         Lx_Imp_Level      := nvl(Lx_Contracts_01(i).coverage_Type_Imp_Level,-9999);
15224 
15225         WHILE i IS NOT NULL LOOP
15226 
15227             IF Lx_Imp_Level <> nvl(Lx_Contracts_01(i).coverage_Type_Imp_Level,-9999) THEN
15228                EXIT;
15229             ELSE
15230                Lx_Contracts_02(j) := Lx_Contracts_01(i);
15231                i := Lx_Contracts_01.Next(i);
15232                j := j+1;
15233             END IF;
15234         END LOOP;
15235         X_Contracts_02        := Lx_Contracts_02;
15236         X_Result              := Lx_Result;
15237         X_Return_Status       := Lx_Return_Status;
15238 
15239 
15240   EXCEPTION
15241 
15242     WHEN L_EXCEP_UNEXPECTED_ERR THEN
15243 
15244       X_Result           := Lx_Result;
15245       X_Return_Status    := Lx_Return_Status;
15246 
15247     WHEN OTHERS THEN
15248 
15249       OKC_API.SET_MESSAGE
15250         (P_App_Name	  => G_APP_NAME_OKC
15251 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
15252 	,P_Token1	  => G_SQLCODE_TOKEN
15253 	,P_Token1_Value	  => SQLCODE
15254 	,P_Token2	  => G_SQLERRM_TOKEN
15255 	,P_Token2_Value   => SQLERRM);
15256 
15257       OKC_API.SET_MESSAGE
15258         (P_App_Name	  => G_APP_NAME_OKC
15259 	,P_Msg_Name	  => G_DEBUG_TOKEN
15260 	,P_Token1	  => G_PACKAGE_TOKEN
15261 	,P_Token1_Value	  => G_PKG_NAME
15262 	,P_Token2	  => G_PROGRAM_TOKEN
15263 	,P_Token2_Value   => 'Get_Sort_CSI_ImpLvl');
15264 
15265       X_Result          := G_FALSE;
15266       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
15267 
15268   END Get_Sort_CSI_ImpLvl;
15269 
15270   -----------------------------------------------------------------------------------------------------------------------*
15271 
15272   PROCEDURE Get_CSI_KLine_PrefGrps
15273     (P_Contracts            IN  Get_ConTop_Tbl
15274     ,X_Contracts_02         out nocopy Get_ConTop_Tbl
15275     ,X_Result               out nocopy Gx_Boolean
15276     ,X_Return_Status   	    out nocopy Gx_Ret_Sts)
15277   IS
15278 
15279     CURSOR Check_Preferred_Group(p_coverage_id IN Gx_OKS_Id,p_chr_id in Gx_OKS_Id) IS
15280        SELECT  COUNT(*) Pref_Grp_Cnt --CON.OBJECT1_ID1
15281        FROM    OKC_K_LINES_B CVL,
15282                OKC_K_LINES_B BPL,
15283                OKC_K_PARTY_ROLES_B CPL,
15284                OKC_CONTACTS CON
15285        WHERE   CVL.ID = p_coverage_id
15286        AND     BPL.CLE_ID = CVL.ID
15287        AND     BPL.LSE_ID in (3,16,21)
15288        AND     BPL.ID = CPL.CLE_ID
15289        AND     CPL.ID = CON.CPL_ID
15290        and     con.dnz_chr_id = p_chr_id
15291        AND     CON.JTOT_OBJECT1_CODE = 'OKS_RSCGROUP';
15292 
15293 
15294     Lx_Contracts             Get_ConTop_Tbl;
15295     Lx_Contracts_02          Get_ConTop_Tbl;
15296 
15297     Lx_Result                Gx_Boolean;
15298     Lx_Return_Status         Gx_Ret_Sts;
15299 
15300     Lx_Cov_Type_Code         Oks_Cov_Types_B.Code%TYPE;
15301     Lx_Cov_Type_Meaning      Oks_Cov_Types_TL.Meaning%TYPE;
15302     Lx_Cov_Type_Description  Oks_Cov_Types_TL.Description%TYPE;
15303     Lx_Cov_Type_Imp_Level    Oks_Cov_Types_B.Importance_Level%TYPE;
15304 
15305 
15306     Li_OutTab_Idx            BINARY_INTEGER;
15307     i                        NUMBER;
15308     j                        NUMBER;
15309 
15310     Ln_Msg_Count	     NUMBER;
15311     Lv_Msg_Data		     VARCHAR2(2000);
15312 
15313     L_EXCEP_UNEXPECTED_ERR   EXCEPTION;
15314 
15315   BEGIN
15316 
15317     Lx_Contracts             := P_Contracts;
15318     Lx_Result                := G_TRUE;
15319     Lx_Return_Status         := G_RET_STS_SUCCESS;
15320     Li_OutTab_Idx            := 1;
15321 
15322          i                 := Lx_Contracts.First;
15323          j                 := 1;
15324 
15325          WHILE i IS NOT NULL LOOP  -- building table of records having contract lines
15326                                                   -- with preferred group
15327              FOR Pref_Grp_Rec in Check_Preferred_Group(Lx_Contracts(i).Coverage_Term_Line_Id,
15328                                                        Lx_Contracts(i).Contract_Id) LOOP
15329 
15330                  IF Pref_Grp_Rec.Pref_Grp_Cnt >= 1 THEN
15331                     Lx_Contracts_02(j) := Lx_Contracts(i);
15332                  END IF;
15333              END LOOP;
15334              i := Lx_Contracts.Next(i);
15335              j := j+1;
15336          END LOOP;
15337 
15338 -- Logic here is if there any contract line with preferred group then that is the ouput otherwise all
15339 -- Input Contract lines are without preferred groups and hence all of them are tie candidates
15340 
15341          IF Lx_Contracts_02.COUNT > 0 THEN
15342            X_Contracts_02       := Lx_Contracts_02;
15343          ELSE
15344            X_Contracts_02       := Lx_Contracts;
15345          END IF;
15346 
15347          Lx_Contracts_02.DELETE;
15348          Lx_Contracts.DELETE;
15349 
15350          X_Result              := Lx_Result;
15351          X_Return_Status       := Lx_Return_Status;
15352 
15353   EXCEPTION
15354 
15355     WHEN L_EXCEP_UNEXPECTED_ERR THEN
15356 
15357       X_Result           := Lx_Result;
15358       X_Return_Status    := Lx_Return_Status;
15359 
15360     WHEN OTHERS THEN
15361 
15362       OKC_API.SET_MESSAGE
15363         (P_App_Name	  => G_APP_NAME_OKC
15364 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
15365 	,P_Token1	  => G_SQLCODE_TOKEN
15366 	,P_Token1_Value	  => SQLCODE
15367 	,P_Token2	  => G_SQLERRM_TOKEN
15368 	,P_Token2_Value   => SQLERRM);
15369 
15370       OKC_API.SET_MESSAGE
15371         (P_App_Name	  => G_APP_NAME_OKC
15372 	,P_Msg_Name	  => G_DEBUG_TOKEN
15373 	,P_Token1	  => G_PACKAGE_TOKEN
15374 	,P_Token1_Value	  => G_PKG_NAME
15375 	,P_Token2	  => G_PROGRAM_TOKEN
15376 	,P_Token2_Value   => 'Get_CSI_KLine_PrefGrps');
15377 
15378       X_Result          := G_FALSE;
15379       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
15380 
15381   END Get_CSI_KLine_PrefGrps;
15382 
15383 
15384   PROCEDURE Default_Contline_System
15385     (P_API_Version		    IN  NUMBER
15386     ,P_Init_Msg_List		IN  VARCHAR2
15387     ,P_System_Id	        IN  NUMBER
15388     ,P_Request_Date         IN  DATE
15389     ,X_Return_Status 		OUT NOCOPY VARCHAR2
15390     ,X_Msg_Count 	        out nocopy NUMBER
15391     ,X_Msg_Data		        out nocopy VARCHAR2
15392     ,X_Ent_Contracts		OUT NOCOPY Default_Contline_System_Rec) IS
15393 
15394    CURSOR Lx_Csr_SysProd(Cx_System_id IN VARCHAR2) IS
15395        SELECT CSI.instance_id CP_Id,
15396               CSI.System_Id System_Id
15397        FROM   CSI_ITEM_INSTANCES CSI
15398        WHERE  CSI.System_id =  (Cx_System_Id);
15399 
15400     l_system_id                 NUMBER;
15401     l_request_date              DATE;
15402 
15403     Li_TableIdx                 BINARY_INTEGER;
15404     Lx_System_CovLevels         GT_ContItem_Ref;
15405     Lx_Prod_CovLevels           GT_ContItem_Ref;
15406     Lx_CovSys_Contracts         GT_Contract_Ref;
15407     Lx_CustProd_Contracts       GT_Contract_Ref;
15408     Lx_Contracts                GT_Contract_Ref;
15409     Lx_Contracts_Out            GT_Contract_Ref;
15410     Lx_Result                   Gx_Boolean;
15411     Lx_Return_Status            Gx_Ret_Sts;
15412 
15413     Lx_Ent_Contracts            Get_ConTop_Tbl ;
15414     Lx_Ent_Contracts_01         Get_ConTop_Tbl ;
15415     Lx_Ent_Contracts_02         Get_ConTop_Tbl ;
15416     Lx_Ent_Contracts2           Get_ConTop_Tbl ;
15417 
15418     Lx_ExcepionMsg              Gx_ExceptionMsg;
15419     L_EXCEP_NO_DATA_FOUND       EXCEPTION;
15420     L_EXCEP_UNEXPECTED_ERR      EXCEPTION;
15421     L_DEF_CONTRACT_LINE         EXCEPTION;
15422     i                           NUMBER;
15423     j                           NUMBER;
15424     l_imp_level                 NUMBER;
15425     l_KLine_EdDt                DATE;
15426 
15427     BEGIN
15428 
15429 
15430     l_system_id                 := p_system_id;
15431     l_request_date              := p_request_date;
15432     Lx_Result                   := G_TRUE;
15433     Lx_Return_Status            := G_RET_STS_SUCCESS;
15434 
15435      Li_TableIdx  := 1;
15436 
15437      Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id1  := l_system_id;
15438      Lx_System_CovLevels(Li_TableIdx).Rx_Obj1Id2  := '#';
15439      Lx_System_CovLevels(Li_TableIdx).Rx_ObjCode  := 'OKX_COVSYST';
15440 
15441 -- Gets all the contract lines for the covered system_id
15442 
15443       Get_CovLevel_Contracts
15444       (P_CovLevel_Items      => Lx_System_CovLevels
15445       ,P_Party_Id            => NULL
15446       ,X_CovLevel_Contracts  => Lx_CovSys_Contracts
15447       ,X_Result              => Lx_Result
15448       ,X_Return_Status       => Lx_Return_Status);
15449 
15450         IF Lx_Result <> G_TRUE THEN
15451               RAISE L_EXCEP_UNEXPECTED_ERR;
15452         END IF;
15453 
15454 --- Gets the all the valid contract lines and detailed information
15455 
15456       Get_Contracts_02_Format
15457       (P_Contracts          => Lx_CovSys_Contracts
15458       ,P_BusiProc_Id	    => NULL
15459       ,P_Severity_Id	    => NULL
15460       ,P_Request_TZone_Id   => NULL
15461       ,P_Dates_In_Input_TZ  => 'Y'             -- Added for 12.0 ENT-TZ project (JVARGHES)
15462       ,P_Incident_Date      => l_request_date  -- Added for 12.0 ENT-TZ project (JVARGHES)
15463       ,P_Request_Date       => l_request_date
15464       ,P_Calc_RespTime_YN   => 'N'
15465       ,P_Validate_Eff       => 'T'
15466       ,P_Validate_Flag      => 'Y'
15467       ,P_SrvLine_Flag       => 'F'
15468       ,P_Sort_Key           => NULL --'COVTYP_IMP' --NULL
15469       ,X_Contracts_02       => Lx_Ent_Contracts
15470       ,X_Result             => Lx_Result
15471       ,X_Return_Status      => Lx_Return_Status);
15472 
15473 
15474         IF Lx_Result <> G_TRUE THEN
15475                RAISE L_EXCEP_UNEXPECTED_ERR;
15476         END IF;
15477 
15478         IF      Lx_Ent_Contracts.COUNT = 1 THEN -- only one direct record for system id
15479 
15480                     X_Ent_Contracts := Lx_Ent_Contracts(1);
15481                     RAISE L_DEF_CONTRACT_LINE;
15482 
15483         ELSIF   Lx_Ent_Contracts.COUNT > 1 THEN -- more than one direct record for system id
15484 
15485 -- Sorts all the contract lines with highest importance level and then returns contract lines with highest
15486 -- importance level
15487 
15488 
15489                  Get_Sort_CSI_ImpLvl
15490                     (P_Contracts            => Lx_Ent_Contracts
15491                     ,X_Contracts_02         => Lx_Ent_Contracts2
15492                     ,X_Result               => Lx_Result
15493                     ,X_Return_Status   	    => Lx_Return_Status);
15494 
15495                 IF Lx_Result <> G_TRUE THEN
15496                    RAISE L_EXCEP_UNEXPECTED_ERR;
15497                 END IF;
15498 
15499                 Lx_Ent_Contracts.DELETE;
15500                 Lx_Ent_Contracts := Lx_Ent_Contracts2;
15501                 Lx_Ent_Contracts2.DELETE;
15502 
15503 
15504                 IF    Lx_Ent_Contracts.COUNT = 1 THEN -- one record with highest importance level
15505 
15506                         X_Ent_Contracts := Lx_Ent_Contracts(1);
15507                         RAISE L_DEF_CONTRACT_LINE;
15508 
15509                 ELSIF  Lx_Ent_Contracts.COUNT >1 THEN -- more than one record with highest importance level
15510                                                       -- ; Tie exists
15511 
15512                         -- Gets all the contract lines with preferred groups
15513 
15514                         Get_CSI_KLine_PrefGrps
15515                             (P_Contracts            => Lx_Ent_Contracts
15516                             ,X_Contracts_02         => Lx_Ent_Contracts_01
15517                             ,X_Result               => Lx_Result
15518                             ,X_Return_Status   	    => Lx_Return_Status);
15519 
15520                         IF Lx_Result <> G_TRUE THEN
15521                             RAISE L_EXCEP_UNEXPECTED_ERR;
15522                         END IF;
15523 
15524                         Lx_Ent_Contracts.DELETE;
15525 
15526                         IF     Lx_Ent_Contracts_01.COUNT = 1 THEN -- one record with preferred group
15527 
15528                                 X_Ent_Contracts := Lx_Ent_Contracts_01(1);
15529                                 RAISE L_DEF_CONTRACT_LINE;
15530 
15531                         ELSIF  (Lx_Ent_Contracts_01.COUNT >1 )THEN -- more than one record or,
15532                                                                    -- no record with preferred group
15533                                                                    --   (the above proc. returns all); Tie exists
15534 
15535                            -- Getting contract lines  with latest end date
15536 
15537                                  Get_CSI_LatestEdDtdKLines_02
15538                                       (P_Input_Tab          => Lx_Ent_Contracts_01
15539                                       ,X_Output_Tab         => Lx_Ent_Contracts_02
15540                                       ,X_Result             => Lx_Result
15541                                       ,X_Return_Status      => Lx_Return_Status);
15542 
15543 
15544                                 IF Lx_Result <> G_TRUE THEN
15545                                     RAISE L_EXCEP_UNEXPECTED_ERR;
15546                                 END IF;
15547 
15548 
15549                                 IF   Lx_Ent_Contracts_02.COUNT >= 1 THEN --only one contract line with same
15550                                                                         --latest end date ,
15551                                                                         -- in case,more than one contract line with
15552                                                                          --same latest end date; return first one
15553 
15554                                       X_Ent_Contracts := Lx_Ent_Contracts_02(1);
15555                                       RAISE L_DEF_CONTRACT_LINE;
15556 
15557  --                               ELSIF Lx_Ent_Contracts_02.COUNT > 1 THEN --more than one contract line with
15558                                                                          --same latest end date; Tie exists
15559 
15560 
15561   --                                    NULL;  -- Automatically goes to indirect lines logic
15562 
15563                                 END IF; --line latest end date comparison ends
15564 
15565                         END IF; -- preferred group comparison ends
15566 
15567 --              ELSIF  Lx_Ent_Contracts.COUNT =0 THEN -- no record with highest importance level  (probably N/A)
15568   --                      NULL;
15569                 END IF; -- highest importance level comparison ends
15570 
15571 --        ELSIF   Lx_Ent_Contracts.COUNT = 0 THEN -- no direct record for system id
15572 
15573 --                NULL;  -- Automatically goes to indirect lines logic
15574 
15575         END IF;
15576 
15577         Lx_Ent_Contracts.DELETE;
15578         Lx_Ent_Contracts_01.DELETE;
15579         Lx_Ent_Contracts_02.DELETE;
15580 
15581 ----- Indirect lines logic starts
15582 
15583         Li_TableIdx := 0;
15584 
15585 ---   Following loop gets all the contract lines for all the covered customer products for a system id
15586 
15587         FOR Itm in Lx_Csr_SysProd(l_System_id)
15588         LOOP
15589 
15590             Li_TableIdx := Li_TableIdx + 1;
15591 
15592             Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id1  := Itm.CP_Id;
15593             Lx_Prod_CovLevels(Li_TableIdx).Rx_Obj1Id2  := '#';
15594             Lx_Prod_CovLevels(Li_TableIdx).Rx_ObjCode  := 'OKX_CUSTPROD';
15595 
15596         END LOOP;
15597 
15598                Get_CovLevel_Contracts
15599                   (P_CovLevel_Items      => Lx_Prod_CovLevels
15600                   ,P_Party_Id            => NULL
15601                   ,X_CovLevel_Contracts  => Lx_CustProd_Contracts
15602                   ,X_Result              => Lx_Result
15603                   ,X_Return_Status       => Lx_Return_Status);
15604 
15605          Lx_Contracts :=  Lx_CustProd_Contracts;
15606          Lx_CustProd_Contracts.DELETE;
15607 
15608  --- Removes all the duplicate contract lines
15609 
15610          Dedup_CSICP_KLine_PlSql_Table
15611                     (P_Input_Tab          => Lx_Contracts
15612                     ,X_Output_Tab         => Lx_Contracts_Out
15613                     ,X_Result             => Lx_Result
15614                     ,X_Return_Status   	  => Lx_Return_Status);
15615 
15616 
15617          IF Lx_Result <> G_TRUE THEN
15618               RAISE L_EXCEP_UNEXPECTED_ERR;
15619          END IF;
15620 
15621          Lx_Contracts :=  Lx_Contracts_Out;
15622          Lx_Contracts_Out.DELETE;
15623 
15624 --- Gets the all the valid contract lines and detailed information
15625 
15626               Get_Contracts_02_Format
15627                   (P_Contracts          => Lx_Contracts
15628                   ,P_BusiProc_Id	    => NULL
15629                   ,P_Severity_Id	    => NULL
15630                   ,P_Request_TZone_Id   => NULL
15631                   ,P_Request_Date       => l_request_date
15632                   ,P_Dates_In_Input_TZ  => 'Y'             -- Added for 12.0 ENT-TZ project (JVARGHES)
15633                   ,P_Incident_Date      => l_request_date  -- Added for 12.0 ENT-TZ project (JVARGHES)
15634                   ,P_Calc_RespTime_YN   => 'N'
15635                   ,P_Validate_Eff       => 'T'
15636                   ,P_Validate_Flag      => 'Y'
15637                   ,P_SrvLine_Flag       => 'F'
15638                   ,P_Sort_Key           => NULL --'COVTYP_IMP' --NULL
15639                   ,X_Contracts_02       => Lx_Ent_Contracts
15640                   ,X_Result             => Lx_Result
15641                   ,X_Return_Status      => Lx_Return_Status);
15642 
15643 
15644            IF Lx_Result <> G_TRUE THEN
15645                 RAISE L_EXCEP_UNEXPECTED_ERR;
15646            END IF;
15647 
15648         IF      Lx_Ent_Contracts.COUNT = 1 THEN -- only one indirect record for cp_ids of the system id
15649 
15650                     X_Ent_Contracts := Lx_Ent_Contracts(1);
15651                     RAISE L_DEF_CONTRACT_LINE;
15652 
15653         ELSIF   Lx_Ent_Contracts.COUNT > 1 THEN -- more than one indirect record for cp_ids of the system id
15654 
15655 -- Sorts all the contract lines with highest importance level and then returns contract lines with highest
15656 -- importance level
15657 
15658 
15659                 Get_Sort_CSI_ImpLvl
15660                     (P_Contracts            => Lx_Ent_Contracts
15661                     ,X_Contracts_02         => Lx_Ent_Contracts2
15662                     ,X_Result               => Lx_Result
15663                     ,X_Return_Status   	    => Lx_Return_Status);
15664 
15665 
15666                 IF Lx_Result <> G_TRUE THEN
15667                    RAISE L_EXCEP_UNEXPECTED_ERR;
15668                 END IF;
15669 
15670                 Lx_Ent_Contracts.DELETE;
15671                 Lx_Ent_Contracts := Lx_Ent_Contracts2;
15672                 Lx_Ent_Contracts2.DELETE;
15673 
15674                 IF    Lx_Ent_Contracts.COUNT = 1 THEN -- one record with highest importance level
15675 
15676                         X_Ent_Contracts := Lx_Ent_Contracts(1);
15677                         RAISE L_DEF_CONTRACT_LINE;
15678 
15679                 ELSIF  Lx_Ent_Contracts.COUNT >1 THEN -- more than one record with highest importance level
15680                                                       -- ; Tie exists
15681 
15682                       -- Gets all the contract lines with preferred groups
15683 
15684                         Get_CSI_KLine_PrefGrps
15685                             (P_Contracts            => Lx_Ent_Contracts
15686                             ,X_Contracts_02         => Lx_Ent_Contracts_01
15687                             ,X_Result               => Lx_Result
15688                             ,X_Return_Status   	    => Lx_Return_Status);
15689 
15690 
15691                         IF Lx_Result <> G_TRUE THEN
15692                             RAISE L_EXCEP_UNEXPECTED_ERR;
15693                         END IF;
15694 
15695                         Lx_Ent_Contracts.DELETE;
15696 
15697                         IF     Lx_Ent_Contracts_01.COUNT = 1 THEN -- one record with preferred group
15698 
15699 
15700                                 X_Ent_Contracts := Lx_Ent_Contracts_01(1);
15701                                 RAISE L_DEF_CONTRACT_LINE;
15702 
15703                         ELSIF  (Lx_Ent_Contracts_01.COUNT >1 )THEN -- more than one record or,
15704                                                                    -- no record with preferred group
15705                                                                    --   (the above proc. returns all); Tie exists
15706 
15707                            -- Getting contract lines  with latest end date
15708 
15709                                  Get_CSI_LatestEdDtdKLines_02
15710                                       (P_Input_Tab          => Lx_Ent_Contracts_01
15711                                       ,X_Output_Tab         => Lx_Ent_Contracts_02
15712                                       ,X_Result             => Lx_Result
15713                                       ,X_Return_Status      => Lx_Return_Status);
15714 
15715 
15716                                 IF Lx_Result <> G_TRUE THEN
15717                                     RAISE L_EXCEP_UNEXPECTED_ERR;
15718                                 END IF;
15719 
15720 
15721                                 IF   Lx_Ent_Contracts_02.COUNT >= 1 THEN --only one contract line with same
15722                                                                         --latest end date ,
15723                                                                         -- in case,more than one contract line with
15724                                                                          --same latest end date; return first one
15725 
15726                                       X_Ent_Contracts := Lx_Ent_Contracts_02(1);
15727                                       RAISE L_DEF_CONTRACT_LINE;
15728 
15729  --                               ELSIF Lx_Ent_Contracts_02.COUNT > 1 THEN --more than one contract line with
15730                                                                          --same latest end date; Tie exists
15731 
15732   --                                    NULL;  -- Automatically goes to indirect lines logic
15733 
15734                                 END IF; --line latest end date comparison ends
15735 
15736                         END IF; -- preferred group comparison ends
15737 
15738 --              ELSIF  Lx_Ent_Contracts.COUNT =0 THEN -- no record with highest importance level  (probably N/A)
15739   --                      NULL;
15740                 END IF; -- highest importance level comparison ends
15741 
15742 --        ELSIF   Lx_Ent_Contracts.COUNT = 0 THEN -- no direct record for system id
15743 
15744 --                NULL;  -- Automatically goes to indirect lines logic
15745 
15746         END IF;
15747 
15748 
15749   EXCEPTION
15750 
15751     WHEN L_DEF_CONTRACT_LINE THEN
15752 
15753         X_Return_Status    := G_RET_STS_SUCCESS;
15754 
15755     WHEN L_EXCEP_UNEXPECTED_ERR THEN
15756 
15757         X_Return_Status    := G_RET_STS_UNEXP_ERROR;
15758 
15759     WHEN OTHERS THEN
15760 
15761       OKC_API.SET_MESSAGE
15762         (P_App_Name	  => G_APP_NAME_OKC
15763     	,P_Msg_Name	  => G_UNEXPECTED_ERROR
15764 	    ,P_Token1	  => G_SQLCODE_TOKEN
15765 	    ,P_Token1_Value	  => SQLCODE
15766     	,P_Token2	  => G_SQLERRM_TOKEN
15767     	,P_Token2_Value   => SQLERRM);
15768 
15769       OKC_API.SET_MESSAGE
15770         (P_App_Name	  => G_APP_NAME_OKC
15771     	,P_Msg_Name	  => G_DEBUG_TOKEN
15772     	,P_Token1	  => G_PACKAGE_TOKEN
15773     	,P_Token1_Value	  => G_PKG_NAME
15774     	,P_Token2	  => G_PROGRAM_TOKEN
15775     	,P_Token2_Value   => 'Default_Contract_line_CSI');
15776 
15777         X_Return_Status    := G_RET_STS_UNEXP_ERROR;
15778 
15779 
15780   END Default_Contline_System;
15781 
15782     /*vgujarat - modified for access hour ER 9675504*/
15783   PROCEDURE Get_Cont02Format_Validation
15784     (P_Contracts            IN  Idx_Rec
15785     ,P_BusiProc_Id	        IN  Gx_BusProcess_Id
15786     ,P_Severity_Id	        IN  Gx_Severity_Id
15787     ,P_Request_TZone_Id	    IN  Gx_TimeZoneId
15788     ,P_Dates_In_Input_TZ    IN VARCHAR2    -- Added for 12.0 ENT-TZ project (JVARGHES)
15789     ,P_Incident_Date        IN  DATE       -- Added for 12.0 ENT-TZ project (JVARGHES)
15790     ,P_Request_Date         IN  DATE
15791     ,P_Request_Date_Start   IN  DATE
15792     ,P_Request_Date_End     IN  DATE
15793     ,P_Calc_RespTime_YN     IN  VARCHAR2
15794     ,P_Validate_Eff         IN  VARCHAR2
15795     ,P_Validate_Flag        IN  VARCHAR2
15796     ,P_SrvLine_Flag         IN  VARCHAR2
15797     ,P_Sort_Key             IN  VARCHAR2
15798     ,X_Contracts_02         out nocopy Get_ConTop_Tbl
15799     ,X_Result               out nocopy Gx_Boolean
15800     ,X_Return_Status   	    out nocopy Gx_Ret_Sts
15801     ,P_cust_id                  IN NUMBER DEFAULT NULL
15802     ,P_cust_site_id             IN NUMBER DEFAULT NULL
15803     ,P_cust_loc_id              IN NUMBER DEFAULT NULL) IS
15804 
15805 --
15806 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
15807 --
15808 --
15809 --   CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN  Gx_OKS_Id) IS
15810 --      SELECT Name
15811 --	    ,Item_Description
15812 --          ,Id Coverage_Line_Id
15813 --          ,Start_Date CV_Start_Date
15814 --	    ,Get_End_Date_Time(End_Date) Cv_End_Date
15815 --          ,Get_End_Date_Time(Date_Terminated) CV_Date_Terminated
15816 --       FROM  Okc_K_Lines_V
15817 --      WHERE  Cle_Id = Cx_SrvLine_Id
15818 --	AND  Lse_Id IN (2,15,20);
15819 --
15820 --
15821 -- Added for 12.0 Coverage Rearch project (JVARGHES)
15822 --
15823     CURSOR Lx_Csr_CovItem(Cx_SrvLine_Id IN  Gx_OKS_Id) IS
15824     SELECT CVL.Name
15825 	    ,CVL.Item_Description
15826           ,CVL.Id Coverage_Line_Id
15827           ,CVL.Start_Date CV_Start_Date
15828 	    ,Get_End_Date_Time(CVL.End_Date) Cv_End_Date
15829           ,Get_End_Date_Time(CVL.Date_Terminated) CV_Date_Terminated
15830           ,KSL.Standard_Cov_YN
15831        FROM  OKS_K_LINES_B KSL
15832             ,Okc_K_Lines_V CVL
15833       WHERE KSL.Cle_Id = Cx_SrvLine_Id
15834         AND KSL.Coverage_Id = CVL.Id
15835   	  AND CVL.Lse_Id IN (2,15,20);
15836 
15837 --
15838 --
15839 
15840 -- replaced following cursor because of bug 3248293
15841 
15842     CURSOR Lx_Csr_SrvItem (Cx_SrvLine_Id In Gx_OKS_Id, Cn_Organization_Id IN NUMBER) IS
15843       SELECT mtl.concatenated_segments Name
15844             ,mtl.description Description
15845         FROM mtl_system_items_b_kfv mtl
15846             ,Okc_K_Items IT
15847        WHERE IT.Cle_Id = Cx_SrvLine_Id
15848          AND IT.Jtot_Object1_Code IN ('OKX_SERVICE','OKX_WARRANTY')
15849          AND mtl.inventory_item_id = IT.Object1_Id1
15850          AND mtl.organization_id = IT.Object1_Id2
15851          AND mtl.Service_Item_Flag = 'Y';
15852 --         AND mtl.Organization_Id = Cn_Organization_Id;
15853 
15854 --  The above validation "AND mtl.Organization_Id = Cn_Organization_Id"
15855 --  in this cursor Lx_Csr_SrvItem  commented out . The fix is for bug 3248293.
15856 --  it is possible to have ext. warranty lines having different inv_organization_id
15857 --  than the contract header inv_organization_id
15858 
15859     Lx_Contracts             Idx_Rec;
15860     Ld_Request_Date          CONSTANT DATE := P_Request_Date;
15861     Ld_Request_Date_Start    CONSTANT DATE := P_Request_Date_Start;
15862     Ld_Request_Date_End      CONSTANT DATE := P_Request_Date_End;
15863     Lv_Validate_Flag         VARCHAR2(1);
15864     Lv_SrvLine_Flag          CONSTANT VARCHAR2(1) := P_SrvLine_Flag;
15865     Lv_Sort_Key              CONSTANT VARCHAR2(10):= P_Sort_Key;
15866 
15867     Lx_BusiProc_Id	         CONSTANT Gx_BusProcess_Id := P_BusiProc_Id;
15868     Lx_Severity_Id	         CONSTANT Gx_Severity_Id := P_Severity_Id;
15869     Lx_Request_TZone_Id	     CONSTANT Gx_TimeZoneId := P_Request_TZone_Id;
15870     Lv_Calc_RespTime_YN      CONSTANT VARCHAR2(1) := P_Calc_RespTime_YN;
15871     Lv_Validate_Eff          CONSTANT VARCHAR2(1) := P_Validate_Eff;
15872     Lv_Cont_Pty_Id           VARCHAR2(100);
15873 
15874     /*vgujarat - modified for access hour ER 9675504*/
15875     Lx_cust_id                 CONSTANT NUMBER              := P_cust_id;
15876     Lx_cust_site_id            CONSTANT NUMBER              := P_cust_site_id;
15877     Lx_cust_loc_id             CONSTANT NUMBER              := P_cust_loc_id;
15878 
15879     Lx_Contracts_02          Get_ConTop_Tbl;
15880     Lx_Contracts_02_Out      Get_ConTop_Tbl;
15881 
15882     Lx_Result                Gx_Boolean;
15883     Lx_Return_Status         Gx_Ret_Sts;
15884     Lx_Result1               Gx_Boolean;
15885     Lx_Return_Status1        Gx_Ret_Sts;
15886     Lx_Result2               Gx_Boolean;
15887     Lx_Return_Status2        Gx_Ret_Sts;
15888     Lx_Result3               Gx_Boolean;
15889     Lx_Return_Status3        Gx_Ret_Sts;
15890 
15891     Lx_Cov_Type_Code         Oks_Cov_Types_B.Code%TYPE;
15892     Lx_Cov_Type_Meaning      Oks_Cov_Types_TL.Meaning%TYPE;
15893     Lx_Cov_Type_Description  Oks_Cov_Types_TL.Description%TYPE;
15894     Lx_Cov_Type_Imp_Level    Oks_Cov_Types_B.Importance_Level%TYPE;
15895 
15896     Li_TableIdx              BINARY_INTEGER;
15897     Li_OutTab_Idx            BINARY_INTEGER;
15898     Lv_Entile_Flag           VARCHAR2(1);
15899     Lv_Effective_Falg        VARCHAR2(1);
15900 
15901     Lx_SrvLine_Id            Gx_OKS_Id;
15902     Lx_CovLvlLine_Id         Gx_OKS_Id;
15903 
15904     Ld_SRV_Eff_End_Date      DATE;
15905     Ld_COV_Eff_End_Date      DATE;
15906     Ld_CVL_Eff_End_Date      DATE;
15907 
15908     Lv_Srv_Name              VARCHAR2(300) ; --Okx_System_Items_V.Name%TYPE;            --VARCHAR2(150) ;
15909     Lv_Srv_Description       VARCHAR2(300) ; --Okx_System_Items_V.Description%TYPE;     --VARCHAR2(1995);
15910     Lv_Prof_Srv_Name         VARCHAR2(300) ;
15911     Lv_Prof_Srv_Desc         VARCHAR2(300);
15912 
15913     Lv_Cov_Name              Okc_K_Lines_V.Name%TYPE;                 --VARCHAR2(150) ;
15914     Lv_Cov_Description       Okc_K_Lines_V.Item_Description%TYPE;     --VARCHAR2(1995);
15915 
15916     Lx_React_Durn	         Gx_ReactDurn;
15917     Lx_React_UOM 	         Gx_ReactUOM;
15918     Lv_React_Day             VARCHAR2(20);
15919     Ld_React_By_DateTime     DATE;
15920     Ld_React_Start_DateTime  DATE;
15921 
15922     Lx_Resln_Durn	         Gx_ReactDurn;
15923     Lx_Resln_UOM 	         Gx_ReactUOM;
15924     Lv_Resln_Day             VARCHAR2(20);
15925     Ld_Resln_By_DateTime     DATE;
15926     Ld_Resln_Start_DateTime  DATE;
15927 
15928     Ln_Msg_Count	         NUMBER;
15929     Lv_Msg_Data		         VARCHAR2(2000);
15930 
15931     Lv_RCN_RSN_Flag          VARCHAR2(10);
15932     Lb_RSN_CTXT_Exists       BOOLEAN;
15933 
15934     Lx_CovLine_Id            Gx_OKS_Id;
15935     Ld_Cov_StDate            DATE;
15936     Ld_Cov_EdDate            DATE;
15937     Ld_Cov_TnDate            DATE;
15938     Lv_Cov_Check             VARCHAR2(1);
15939 
15940     Lv_Prof_Name             CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
15941     Lv_Prof_Value            VARCHAR2(300);
15942     Lx_Service_PO            VARCHAR2(450);
15943     Lx_Service_PO_Required   VARCHAR2(450);
15944 
15945     L_EXCEP_UNEXPECTED_ERR   EXCEPTION;
15946 
15947     -- Added for 12.0 ENT-TZ project (JVARGHES)
15948 
15949     Ld_Incident_Date        DATE;
15950     Ld_Reported_Date        DATE;
15951     Lv_Dates_In_Input_TZ    VARCHAR2(1);
15952 
15953     --
15954     -- Modified for 12.0 Coverage Rearch project (JVARGHES)
15955     --
15956 
15957     Lv_Standard_Cov_YN      VARCHAR2(10);
15958 
15959     --
15960 
15961   BEGIN
15962 
15963 
15964     Lx_Contracts             := P_Contracts;
15965     Lv_Validate_Flag         := P_Validate_Flag;
15966     Lx_Result                := G_TRUE;
15967     Lx_Return_Status         := G_RET_STS_SUCCESS;
15968     Lx_Result1               := G_TRUE;
15969     Lx_Return_Status1        := G_RET_STS_SUCCESS;
15970     Lx_Result2               := G_TRUE;
15971     Lx_Return_Status2        := G_RET_STS_SUCCESS;
15972     Lx_Result3               := G_TRUE;
15973     Lx_Return_Status3        := G_RET_STS_SUCCESS;
15974     Li_OutTab_Idx            := 0;
15975 
15976 
15977    -- Added for 12.0 ENT-TZ project (JVARGHES)
15978 
15979    Ld_Incident_Date          := NVL(p_Incident_Date,Ld_Request_Date);
15980    Ld_Reported_Date          := Ld_Request_Date;
15981    Lv_Dates_In_Input_TZ      := P_Dates_In_Input_TZ;
15982 
15983    --
15984 
15985 -- 11.5.10 --no more check required if RSN rule exists as rules architecture no more exist in 11.5.10
15986 
15987 --    Lb_RSN_CTXT_Exists  := FND_FLEX_DSC_API.CONTEXT_EXISTS('OKS','OKS Rule Developer DF','RSN');
15988     ---
15989     FND_PROFILE.Get(Lv_Prof_Name, Lv_Prof_Value);
15990     ---
15991 
15992     IF Lv_Validate_Flag = 'Y' THEN
15993        Lv_Validate_Flag := 'T';
15994     END IF;
15995     ---
15996 
15997 --    IF Lb_RSN_CTXT_Exists THEN
15998       Lv_RCN_RSN_Flag   := G_RUL_CATEGORY_REACT_RESOLVE;
15999 --    ELSE
16000 --      Lv_RCN_RSN_Flag   := G_RUL_CATEGORY_REACTION;
16001 --    END IF;
16002 
16003         --
16004         -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16005         --
16006 
16007         OPEN Lx_Csr_CovItem(Lx_Contracts.Service_Line_Id);
16008         FETCH Lx_Csr_CovItem INTO Lv_Cov_Name,Lv_Cov_Description,Lx_CovLine_Id
16009                                   ,Ld_Cov_StDate,Ld_Cov_EdDate,Ld_Cov_TnDate, Lv_Standard_Cov_YN;
16010 
16011         --
16012         --
16013 
16014         IF Lx_Csr_CovItem%NOTFOUND THEN
16015           Lv_Cov_Check := 'N';
16016         ELSE
16017           Lv_Cov_Check := 'Y';
16018         END IF;
16019 
16020         CLOSE Lx_Csr_CovItem;
16021 
16022         --
16023         -- Added for 12.0 Coverage Rearch project (JVARGHES)
16024         --
16025 
16026         IF Lv_Standard_Cov_YN = 'Y'
16027         THEN
16028           Ld_Cov_StDate := Lx_Contracts.Sv_Start_Date;
16029           Ld_Cov_EdDate := Lx_Contracts.Sv_End_Date;
16030           Ld_Cov_TnDate := Lx_Contracts.SV_Date_Terminated;
16031         END IF;
16032 
16033         --
16034         --
16035         --
16036         -- Added for Bug#16754022
16037           IF Lx_Contracts.CL_Date_Terminated < Lx_Contracts.CL_End_Date THEN
16038             Ld_CVL_Eff_End_Date := Lx_Contracts.CL_Date_Terminated-1;
16039           ELSE
16040             Ld_CVL_Eff_End_Date := Lx_Contracts.CL_End_Date;
16041 
16042             -- grace period starts
16043             IF G_GRACE_PROFILE_SET = 'Y' AND Lx_Contracts.CL_Date_Terminated IS NULL THEN
16044                -- grace period is considered only if line end date matches contract end date
16045 
16046               G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
16047               G_CONTRACT_ID       := Lx_Contracts.Contract_Id;
16048 
16049               IF  trunc(Ld_CVL_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
16050                   Ld_CVL_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_CVL_Eff_End_Date);
16051               END IF;
16052 
16053             END IF;
16054             -- grace period ends
16055           END IF;
16056         -- End of Code added for Bug#16754022
16057 
16058         IF Lv_Validate_Eff = 'T' THEN
16059 
16060           IF Lx_Contracts.SV_Date_Terminated < Lx_Contracts.Sv_End_Date THEN
16061             Ld_SRV_Eff_End_Date := Lx_Contracts.SV_Date_Terminated;
16062           ELSE
16063             Ld_SRV_Eff_End_Date := Lx_Contracts.Sv_End_Date;
16064 
16065       -- grace period changes starts
16066 
16067             IF G_GRACE_PROFILE_SET = 'Y' AND Lx_Contracts.SV_Date_Terminated IS NULL THEN
16068 -- grace period changes are done only if line end date matches contract end date
16069 
16070               G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
16071               G_CONTRACT_ID       := Lx_Contracts.Contract_Id;
16072 
16073               IF  trunc(Ld_SRV_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
16074                 Ld_SRV_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_SRV_Eff_End_Date);
16075               END IF;
16076 
16077             END IF;
16078 
16079       -- grace period changes ends
16080           END IF;
16081 
16082           IF Ld_Cov_TnDate < Ld_Cov_EdDate THEN
16083             Ld_COV_Eff_End_Date := Ld_Cov_TnDate;
16084           ELSE
16085             Ld_COV_Eff_End_Date := Ld_Cov_EdDate;
16086 
16087       -- grace period changes starts
16088 
16089             IF G_GRACE_PROFILE_SET = 'Y' AND Ld_COV_TnDate IS NULL THEN
16090 -- grace period changes are done only if line end date matches contract end date
16091 
16092               G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
16093               G_CONTRACT_ID       := Lx_Contracts.Contract_Id;
16094 
16095               IF  trunc(Ld_COV_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
16096                   Ld_COV_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_COV_Eff_End_Date);
16097               END IF;
16098 
16099             END IF;
16100 
16101       -- grace period changes ends
16102           END IF;
16103 
16104 	  /* Commented Code for Bug#16754022 */
16105           /*IF Lx_Contracts.CL_Date_Terminated < Lx_Contracts.CL_End_Date THEN
16106             Ld_CVL_Eff_End_Date := Lx_Contracts.CL_Date_Terminated-1; --modified for bugfix 14368049 by ansraj
16107           ELSE
16108             Ld_CVL_Eff_End_Date := Lx_Contracts.CL_End_Date;
16109 
16110       -- grace period changes starts
16111 
16112             IF G_GRACE_PROFILE_SET = 'Y' AND Lx_Contracts.CL_Date_Terminated IS NULL THEN
16113 -- grace period changes are done only if line end date matches contract end date
16114 
16115               G_CONTRACT_END_DATE := Lx_Contracts.HDR_End_Date;
16116               G_CONTRACT_ID       := Lx_Contracts.Contract_Id;
16117 
16118               IF  trunc(Ld_CVL_Eff_End_Date) = trunc(Lx_Contracts.HDR_End_Date) THEN
16119                   Ld_CVL_Eff_End_Date := Get_Final_End_Date(Lx_Contracts.Contract_Id,Ld_CVL_Eff_End_Date);
16120               END IF;
16121 
16122             END IF;
16123 
16124       -- grace period changes ends
16125           END IF;*/
16126 	  /* End of commented code for Bug#16754022 */
16127 
16128 --
16129 --  Commented out for 12.0 ENT-TZ project (JVARGHES)
16130 --
16131 --          IF ((Ld_Request_Date BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16132 --             AND
16133 --             ((Ld_Request_Date BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16134 --             AND
16135 --             (Ld_Request_Date BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
16136 --                                                OR
16137 --              ((Ld_Request_Date_Start BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16138 --             AND
16139 --             ((Ld_Request_Date_Start BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16140 --             AND
16141 --             (Ld_Request_Date_Start BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
16142 --                                                OR
16143 --              ((Ld_Request_Date_End BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16144 --             AND
16145 --             ((Ld_Request_Date_End BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16146 --             AND
16147 --             (Ld_Request_Date_End BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
16148 --          THEN
16149 --            Lv_Effective_Falg := 'T';
16150 --          ELSE
16151 --            Lv_Effective_Falg := 'F';
16152 --          END IF;
16153 --
16154 --
16155 -- Added for 12.0 ENT-TZ project (JVARGHES)
16156 --
16157          IF ((Ld_Incident_Date BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16158              AND
16159              ((Ld_Incident_Date BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16160              AND
16161              (Ld_Incident_Date BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
16162                                                 OR
16163 	     -- Added by Jvorugan for Bug:5174820
16164           -- Added by Jvorugan for Bug:5174820
16165 	   ((Ld_Request_Date_Start <= Lx_Contracts.SV_Start_Date AND Ld_Request_Date_End >= Ld_Srv_Eff_End_Date)
16166              AND
16167              ((Ld_Request_Date_Start <= Ld_Cov_StDate AND Ld_Request_Date_End >= Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16168              AND
16169              (Ld_Request_Date_Start <= Lx_Contracts.CL_Start_Date AND Ld_Request_Date_End >= Ld_CVL_Eff_End_Date))
16170 
16171 	 -- End of changes by Jvorugan
16172        /*  Commented by Jvorugan for Bug:5174820
16173            ((Ld_Request_Date_Start BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16174              AND
16175              ((Ld_Request_Date_Start BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16176              AND
16177              (Ld_Request_Date_Start BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))
16178                                                 OR
16179               ((Ld_Request_Date_End BETWEEN Lx_Contracts.SV_Start_Date AND Ld_Srv_Eff_End_Date)
16180              AND
16181              ((Ld_Request_Date_End BETWEEN Ld_Cov_StDate AND Ld_Cov_Eff_End_Date) OR (Lv_Cov_Check = 'N'))
16182              AND
16183              (Ld_Request_Date_End BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date))   */
16184           THEN
16185             Lv_Effective_Falg := 'T';
16186           ELSE
16187             Lv_Effective_Falg := 'F';
16188           END IF;
16189 --
16190         ELSE
16191           Lv_Effective_Falg := 'T';
16192         END IF;
16193 
16194         --added for bugfix 14596603 by ansraj
16195         IF (Ld_Incident_Date BETWEEN Lx_Contracts.CL_Start_Date AND Ld_CVL_Eff_End_Date)
16196                                           OR
16197            (Ld_Request_Date_Start <= Lx_Contracts.CL_Start_Date AND Ld_Request_Date_End >= Ld_CVL_Eff_End_Date)
16198         THEN
16199            Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Lx_Contracts.Service_Line_Id, 'ENTITLE');
16200         ELSE
16201            Lv_Entile_Flag := 'F';
16202         END IF;
16203        -- end of bugfix 14596603 by ansraj
16204 
16205       --  Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Lx_Contracts.Service_Line_Id, 'ENTITLE'); --commented for bugfix 14596603 by ansraj
16206 
16207         IF (Lv_Validate_Flag = 'T' AND Lv_Effective_Falg = 'T' AND Lv_Entile_Flag = 'T') OR (Lv_Validate_Flag <> 'T') THEN
16208 
16209           OPEN Lx_Csr_SrvItem (Lx_Contracts.Service_Line_Id, Lx_Contracts.Inv_Organization_Id);
16210           FETCH Lx_Csr_SrvItem INTO Lv_Srv_Name, Lv_Srv_Description;
16211           CLOSE Lx_Csr_SrvItem;
16212 
16213 -- commented because of bug 3248293. no more name and description swapping needed.
16214 
16215 /*
16216           Get_Prof_Service_Name_And_Desc
16217             (P_Profile_Value    => Lv_Prof_Value
16218             ,P_Db_Srv_Name      => Lv_Srv_Name
16219             ,P_Db_Srv_Desc      => Lv_Srv_Description
16220             ,X_Prof_Srv_Name    => Lv_Prof_Srv_Name
16221             ,X_Prof_Srv_Desc    => Lv_Prof_Srv_Desc
16222             ,X_Result           => Lx_Result3
16223             ,X_Return_Status   	=> Lx_Return_Status3);
16224 
16225           IF Lx_Return_Status3 = G_RET_STS_UNEXP_ERROR THEN
16226             RAISE L_EXCEP_UNEXPECTED_ERR;
16227           END IF;
16228 */
16229 
16230           Li_OutTab_Idx := Li_OutTab_Idx + 1;
16231 
16232           Lx_Contracts_02(Li_OutTab_Idx).Contract_Id                 := Lx_Contracts.Contract_Id;
16233           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts.Contract_Number;
16234           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts.Contract_Number_Modifier;
16235      --   Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts.Sts_code;
16236           Lx_Contracts_02(Li_OutTab_Idx).Sts_code                    := Lx_Contracts.CL_Sts_code;
16237           Lx_Contracts_02(Li_OutTab_Idx).Service_Line_Id             := Lx_Contracts.Service_Line_Id;
16238 
16239 -- replaced because of bug 3248293
16240 
16241           Lx_Contracts_02(Li_OutTab_Idx).Service_Name                := Lv_Srv_Name; --Lv_Prof_Srv_Name;
16242           Lx_Contracts_02(Li_OutTab_Idx).Service_Description         := Lv_Srv_Description; --Lv_Prof_Srv_Desc;
16243 
16244      --   Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts.SV_Start_Date;
16245      --   Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts.SV_End_Date;
16246           Lx_Contracts_02(Li_OutTab_Idx).Service_Start_Date          := Lx_Contracts.CL_Start_Date;
16247           Lx_Contracts_02(Li_OutTab_Idx).Service_End_Date            := Lx_Contracts.CL_End_Date;
16248           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Line_Id       := Lx_CovLine_Id;
16249           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Name          := Lv_Cov_Name;
16250           Lx_Contracts_02(Li_OutTab_Idx).Coverage_Term_Description   := Lv_Cov_Description;
16251           Lx_Contracts_02(Li_OutTab_Idx).Warranty_Flag               := Lx_Contracts.Warranty_Flag;
16252           Lx_Contracts_02(Li_OutTab_Idx).Eligible_For_Entitlement    := Lv_Entile_Flag;
16253           Lx_Contracts_02(Li_OutTab_Idx).date_terminated	         := Lx_Contracts.cl_date_terminated; --Lx_Contracts.sv_date_terminated;
16254           Lx_Contracts_02(Li_OutTab_Idx).PM_Program_Id	             := Lx_Contracts.PM_Program_Id;
16255           Lx_Contracts_02(Li_OutTab_Idx).PM_Schedule_Exists	         := Lx_Contracts.PM_Schedule_Exists;
16256 
16257           -- Added for 12.0 ENT-TZ project (JVARGHES)
16258           Lx_Contracts_02(Li_OutTab_Idx).CovLvl_Line_Id              := Lx_Contracts.CovLvl_Line_Id;
16259           --
16260 
16261 --dbms_output.put_line('Value of Lv_Calc_RespTime_YN='||Lv_Calc_RespTime_YN);
16262           IF Lv_Calc_RespTime_YN = 'Y' THEN
16263             /*vgujarat - modified for access hour ER 9675504*/
16264             Get_ReactResol_By_DateTime
16265               (P_API_Version		=> 1.0
16266               ,P_Init_Msg_List	        => 'F'
16267               ,P_SVL_Id	                => Lx_Contracts.Service_Line_Id
16268               ,P_BusiProc_Id	        => Lx_BusiProc_Id
16269               ,P_Severity_Id	        => Lx_Severity_Id
16270           --  ,P_Request_Date	        => Ld_Request_Date
16271               ,P_Request_Date	        => Ld_Reported_Date      -- Added for 12.0 ENT-TZ project (JVARGHES)
16272               ,P_Request_TZone_Id     => Lx_Request_TZone_Id
16273 	        ,P_Dates_In_Input_TZ    => Lv_Dates_In_Input_TZ  -- Added for 12.0 ENT-TZ project (JVARGHES)
16274               ,P_template_YN            => 'N'
16275               ,P_Option                 => G_FIRST
16276               ,P_Rcn_Rsn_Flag           => Lv_RCN_RSN_Flag
16277               ,P_Set_ExcepionStack      => G_FALSE
16278               ,X_React_Durn	            => Lx_React_Durn
16279               ,X_React_UOM 	            => Lx_React_UOM
16280               ,X_React_Day              => Lv_React_Day
16281               ,X_React_By_DateTime      => Ld_React_By_DateTime
16282               ,X_React_Start_DateTime   => Ld_React_Start_DateTime
16283               ,X_Resolve_Durn	        => Lx_Resln_Durn
16284               ,X_Resolve_UOM 	        => Lx_Resln_UOM
16285               ,X_Resolve_Day            => Lv_Resln_Day
16286               ,X_Resolve_By_DateTime    => Ld_Resln_By_DateTime
16287               ,X_Resolve_Start_DateTime => Ld_Resln_Start_DateTime
16288               ,X_Msg_count		        => Ln_Msg_Count
16289               ,X_Msg_Data		        => Lv_Msg_Data
16290               ,X_Result                 => Lx_Result1
16291               ,X_Return_Status          => Lx_Return_Status1
16292               ,P_cust_id                => Lx_cust_id        --access hour
16293               ,P_cust_site_id           => Lx_cust_site_id   --access hour
16294               ,P_cust_loc_id            => Lx_cust_loc_id);  --access hour
16295 
16296             IF Lx_Return_Status1 = G_RET_STS_UNEXP_ERROR THEN
16297               RAISE L_EXCEP_UNEXPECTED_ERR;
16298             END IF;
16299 
16300             Lx_Contracts_02(Li_OutTab_Idx).Exp_Reaction_Time      :=  Ld_React_By_DateTime;
16301 
16302             -->> Included for backward compatibility of this API
16303             -- no more backward compatibility required for 11.5.10 onwards so resolution time will always be assigned
16304             -- resolution time
16305 /*
16306             IF Lb_RSN_CTXT_Exists THEN
16307               Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time  :=  Ld_Resln_By_DateTime;
16308             ELSE
16309               Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time  :=  Ld_React_By_DateTime;
16310             END IF;
16311 */
16312             Lx_Contracts_02(Li_OutTab_Idx).Exp_Resolution_Time  :=  Ld_Resln_By_DateTime;
16313             --<< Included for backward compatibility of this API
16314 
16315             Lx_Contracts_02(Li_OutTab_Idx).Status_Code            :=  Lx_Return_Status1;
16316             Lx_Contracts_02(Li_OutTab_Idx).Status_Text            :=  Lv_Msg_Data;
16317 
16318             --<<Following only applicable for Service Request API.
16319             ----That is the reason this code is placed in this IF statement
16320 
16321             Get_Coverage_Type_Attribs
16322               (P_CVL_Id                => Lx_CovLine_Id
16323               ,P_Set_ExcepionStack     => G_FALSE
16324               ,X_Cov_Type_Code         => Lx_Cov_Type_Code
16325               ,X_Cov_Type_Meaning      => Lx_Cov_Type_Meaning
16326               ,X_Cov_Type_Description  => Lx_Cov_Type_Description
16327               ,X_Cov_Type_Imp_Level    => Lx_Cov_Type_Imp_Level
16328               ,X_Result                => Lx_Result2
16329               ,X_Return_Status         => Lx_Return_Status2);
16330 
16331             IF Lx_Return_Status2 = G_RET_STS_UNEXP_ERROR THEN
16332               RAISE L_EXCEP_UNEXPECTED_ERR;
16333             END IF;
16334 
16335             Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code      :=  Lx_Cov_Type_Code;
16336             Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning   :=  Lx_Cov_Type_Meaning;
16337             Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level :=  Lx_Cov_Type_Imp_Level;
16338 
16339             ----End for Service Request.>>
16340 
16341           END IF;
16342 
16343 -- addition for "getting coverage type and importance level even if calculate response time is not required" starts
16344 
16345           IF (Lv_Calc_RespTime_YN = 'N') AND (Lv_Sort_Key = 'COVTYP_IMP') THEN --
16346 
16347            Get_Coverage_Type_Attribs
16348               (P_CVL_Id                => Lx_CovLine_Id
16349               ,P_Set_ExcepionStack     => G_FALSE
16350               ,X_Cov_Type_Code         => Lx_Cov_Type_Code
16351               ,X_Cov_Type_Meaning      => Lx_Cov_Type_Meaning
16352               ,X_Cov_Type_Description  => Lx_Cov_Type_Description
16353               ,X_Cov_Type_Imp_Level    => Lx_Cov_Type_Imp_Level
16354               ,X_Result                => Lx_Result2
16355               ,X_Return_Status         => Lx_Return_Status2);
16356 
16357             IF Lx_Return_Status2 = G_RET_STS_UNEXP_ERROR THEN
16358               RAISE L_EXCEP_UNEXPECTED_ERR;
16359             END IF;
16360 
16361             Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Code      :=  Lx_Cov_Type_Code;
16362             Lx_Contracts_02(Li_OutTab_Idx).Coverage_Type_Meaning   :=  Lx_Cov_Type_Meaning;
16363             Lx_Contracts_02(Li_OutTab_Idx).coverage_Type_Imp_Level :=  Lx_Cov_Type_Imp_Level;
16364           END IF;
16365 
16366 -- addition for "getting coverage type and importance level even if calculate response time is not required" ends
16367 
16368           Get_Service_PO
16369               (P_CHR_Id                => Lx_Contracts.Contract_Id
16370               ,P_Set_ExcepionStack     => G_FALSE
16371               ,X_Service_PO            => Lx_Service_PO
16372               ,X_Service_PO_Required   => Lx_Service_PO_Required
16373               ,X_Result                => Lx_Result
16374               ,X_Return_Status         => Lx_Return_Status);
16375 
16376             IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
16377               RAISE L_EXCEP_UNEXPECTED_ERR;
16378             END IF;
16379 
16380             Lx_Contracts_02(Li_OutTab_Idx).service_PO_number            :=  Lx_Service_PO;
16381             Lx_Contracts_02(Li_OutTab_Idx).service_PO_required_flag     :=  Lx_Service_PO_Required;
16382 
16383         END IF;
16384 
16385         X_Contracts_02        := Lx_Contracts_02;
16386         X_Result              := Lx_Result;
16387         X_Return_Status       := Lx_Return_Status;
16388 
16389   EXCEPTION
16390 
16391     WHEN L_EXCEP_UNEXPECTED_ERR THEN
16392 
16393         X_Return_Status    := G_RET_STS_UNEXP_ERROR;
16394 
16395     WHEN OTHERS THEN
16396 
16397       OKC_API.SET_MESSAGE
16398         (P_App_Name	  => G_APP_NAME_OKC
16399     	,P_Msg_Name	  => G_UNEXPECTED_ERROR
16400 	    ,P_Token1	  => G_SQLCODE_TOKEN
16401 	    ,P_Token1_Value	  => SQLCODE
16402     	,P_Token2	  => G_SQLERRM_TOKEN
16403     	,P_Token2_Value   => SQLERRM);
16404 
16405       OKC_API.SET_MESSAGE
16406         (P_App_Name	  => G_APP_NAME_OKC
16407     	,P_Msg_Name	  => G_DEBUG_TOKEN
16408     	,P_Token1	  => G_PACKAGE_TOKEN
16409     	,P_Token1_Value	  => G_PKG_NAME
16410     	,P_Token2	  => G_PROGRAM_TOKEN
16411     	,P_Token2_Value   => 'Get_Cont02Format_Validation');
16412 
16413         X_Return_Status    := G_RET_STS_UNEXP_ERROR;
16414 
16415 END Get_Cont02Format_Validation;
16416 
16417 PROCEDURE Get_cov_txn_groups
16418     (p_api_version		IN  Number
16419 	,p_init_msg_list		IN  Varchar2
16420 	,p_inp_rec_bp		IN  INP_REC_BP
16421 	,x_return_status 	OUT NOCOPY Varchar2
16422 	,x_msg_count		OUT NOCOPY Number
16423 	,x_msg_data			OUT NOCOPY Varchar2
16424 	,x_cov_txn_grp_lines	OUT NOCOPY OUTPUT_TBL_BP)
16425 IS
16426 
16427 --
16428 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16429 --
16430 --    CURSOR cur_bp (p_line_id in number,p_chk_def in varchar2,p_sr_enabled varchar2,p_dr_enabled varchar2,p_fs_enabled varchar2) is
16431 --        select 	lines2.id id,
16432 --            	lines2.start_date start_date,
16433 --                lines2.end_date end_date,
16434 --            	to_number(items.object1_id1) object1_id1 ,
16435 --                lines2.dnz_chr_id
16436 --        from    okc_k_lines_v lines,
16437 --                okc_k_lines_v lines2,
16438 --                okc_k_items items,
16439 --                cs_business_processes bp
16440 --        where   lines.cle_id        = p_line_id
16441 --        and     lines.id            = lines2.cle_id
16442 --        and     lines.lse_id        in (2,15,20)
16443 --        and     lines2.id           = items.cle_id
16444 --        and     lines2.lse_id       in (3,16,21)
16445 --        and     items.object1_id1   = bp.business_process_id
16446 --        and     items.object1_id2   = '#'
16447 --        and     items.jtot_object1_code     = 'OKX_BUSIPROC'
16448 --        and     bp.service_request_flag     =
16449 --				decode(p_chk_def,'Y',
16450 --				decode(p_sr_enabled,null,bp.service_request_flag,p_sr_enabled),
16451 --				bp.service_request_flag)
16452 --        and     bp.depot_repair_flag        =
16453 --				decode(p_chk_def,'Y',
16454 --				decode(p_dr_enabled,null,bp.depot_repair_flag,p_dr_enabled),
16455 --				bp.depot_repair_flag)
16456 --        and     bp.field_service_flag       =
16457 --				decode(p_chk_def,'Y',
16458 --				decode(p_fs_enabled,null,bp.field_service_flag,p_fs_enabled),
16459 --				bp.field_service_flag);
16460 --
16461 --
16462 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16463 --
16464 --
16465     CURSOR cur_bp (p_line_id in number,p_chk_def in varchar2,p_sr_enabled varchar2
16466                   ,p_dr_enabled IN varchar2,p_fs_enabled IN varchar2) is
16467         select  lines2.id id,
16468                 decode(ksl.Standard_Cov_YN, 'Y',lines.start_date,lines2.start_date) start_date,
16469                 decode(ksl.Standard_Cov_YN, 'Y',lines.end_date,lines2.end_date) end_date,
16470                 to_number(items.object1_id1) object1_id1,
16471                 lines.dnz_chr_id,
16472                 ksl.Standard_Cov_YN Standard_Cov_YN
16473         from    okc_k_lines_b lines,
16474                 oks_k_lines_b KSL,
16475                 okc_k_lines_v lines2,
16476                 okc_k_items items,
16477                 cs_business_processes bp
16478         where   lines.id           = p_line_id
16479         and     lines.lse_id in (1,14,19)
16480         and     KSL.cle_id         = lines.id
16481         and     KSL.Coverage_Id    = lines2.cle_Id
16482         and     lines2.id           = items.cle_id
16483         and     lines2.lse_id       in (3,16,21)
16484         and     items.object1_id1   = bp.business_process_id
16485         and     items.object1_id2   = '#'
16486         and     items.jtot_object1_code     = 'OKX_BUSIPROC'
16487         and     bp.service_request_flag     =
16488 				decode(p_chk_def,'Y',
16489 				decode(p_sr_enabled,null,bp.service_request_flag,p_sr_enabled),
16490 				bp.service_request_flag)
16491         and     bp.depot_repair_flag        =
16492 				decode(p_chk_def,'Y',
16493 				decode(p_dr_enabled,null,bp.depot_repair_flag,p_dr_enabled),
16494 				bp.depot_repair_flag)
16495         and     bp.field_service_flag       =
16496 				decode(p_chk_def,'Y',
16497 				decode(p_fs_enabled,null,bp.field_service_flag,p_fs_enabled),
16498 				bp.field_service_flag);
16499 
16500 --
16501 --
16502 
16503     CURSOR cur_hdr (p_line_id in number) is
16504         select  hdr.id id,
16505                 hdr.start_date start_date,
16506                 hdr.end_date  end_date
16507         from    OKC_K_HEADERS_ALL_B hdr, --,OKC_K_HEADERS_B HDR  -- Modified for 12.0 MOAC project (JVARGHES)
16508                 okc_k_lines_v lines
16509         where   lines.chr_id = hdr.id
16510         and     lines.dnz_chr_id = hdr.id
16511         and     lines.id = p_line_id;
16512 
16513     G_CONTRACT_END_DATE             date;
16514     G_CONTRACT_ID                   number;
16515     G_GRACE_PROFILE_SET             varchar2(1);
16516 
16517     p_id                            number;
16518     p_bp_id                         number;
16519     i                               number;
16520 
16521     HDR                             cur_hdr%rowtype;
16522 
16523     Lx_Result                       Gx_Boolean;
16524     Lx_Return_Status                Gx_Ret_Sts;
16525 
16526     -- Added for 12.0 Coverage Rearch project (JVARGHES)
16527 
16528     Lv_Std_Cov_YN              VARCHAR2(10);
16529 
16530     Ld_BPL_Start_Date	       DATE;
16531     Ln_BPL_OFS_Duration	       NUMBER;
16532     Lv_BPL_OFS_UOM             VARCHAR2(100);
16533 
16534     L_EXCEP_NO_DATA_FOUND    EXCEPTION;
16535    --
16536 
16537 BEGIN
16538 
16539     G_GRACE_PROFILE_SET             := NULL;
16540     i                               := 0;
16541     Lx_Result                       := G_TRUE;
16542     Lx_Return_Status                := G_RET_STS_SUCCESS;
16543 
16544     OKS_ENTITLEMENTS_PVT.G_GRACE_PROFILE_SET := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
16545 
16546 	IF OKS_ENTITLEMENTS_PVT.G_GRACE_PROFILE_SET = 'Y' THEN
16547 	  FOR Hdr_rec in  cur_hdr (p_inp_rec_bp.contract_line_id) LOOP
16548 	      HDR := Hdr_rec;
16549 	  END LOOP;
16550 	END IF;
16551 
16552 	FOR l_bp_out in cur_bp(p_inp_rec_bp.contract_line_id,p_inp_rec_bp.check_bp_def,
16553                         p_inp_rec_bp.sr_enabled,p_inp_rec_bp.dr_enabled,p_inp_rec_bp.fs_enabled) LOOP
16554 
16555      --
16556      -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16557      --
16558 
16559       IF l_bp_out.Standard_Cov_YN = 'Y'
16560       THEN
16561 
16562         Get_BP_Line_Start_Offset
16563          (P_BPL_Id	        => l_bp_out.Id
16564          ,P_SVL_Start	        => l_bp_out.Start_date
16565          ,X_BPL_OFS_Start	  => Ld_BPL_Start_date
16566          ,X_BPL_OFS_Duration	  => Ln_BPL_OFS_Duration
16567          ,X_BPL_OFS_UOM	        => Lv_BPL_OFS_UOM
16568          ,X_Return_Status 	  => Lx_Return_Status);
16569 
16570         IF Lx_Return_Status<> G_RET_STS_SUCCESS  THEN
16571           RAISE L_EXCEP_NO_DATA_FOUND;
16572         END IF;
16573 
16574       ELSE
16575 
16576         Ld_BPL_Start_date  := l_bp_out.Start_date;
16577 
16578       END IF;
16579 
16580       --
16581       --
16582 
16583     	i := i + 1;
16584     	x_cov_txn_grp_lines(i).cov_txn_grp_line_id := l_bp_out.id;
16585 	    x_cov_txn_grp_lines(i).bp_id               := l_bp_out.object1_id1;
16586 
16587    --	x_cov_txn_grp_lines(i).start_date          := l_bp_out.start_date;  -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16588    	x_cov_txn_grp_lines(i).start_date          := Ld_BPL_Start_date;    -- Modified for 12.0 Coverage Rearch project (JVARGHES)
16589 
16590 
16591     	IF OKS_ENTITLEMENTS_PVT.G_GRACE_PROFILE_SET = 'Y' THEN
16592     		  IF (trunc(HDR.end_date) = trunc(l_bp_out.end_date)) then
16593 		       	x_cov_txn_grp_lines(i).end_date := OKS_ENTITLEMENTS_PVT.Get_Final_End_Date(l_bp_out.dnz_chr_id,
16594                                                                                         l_bp_out.end_date);
16595     		  ELSE
16596 	          	x_cov_txn_grp_lines(i).end_date := l_bp_out.end_date;
16597 	       	  END IF;
16598         ELSE
16599     			x_cov_txn_grp_lines(i).end_date := l_bp_out.end_date;
16600         END IF;
16601 
16602 	END LOOP;
16603 
16604         X_Return_Status   := Lx_Return_Status;
16605 
16606  EXCEPTION
16607 
16608     WHEN OTHERS THEN
16609 
16610 
16611       OKC_API.SET_MESSAGE
16612         (P_App_Name	  => G_APP_NAME_OKC
16613 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
16614 	,P_Token1	  => G_SQLCODE_TOKEN
16615 	,P_Token1_Value	  => SQLCODE
16616 	,P_Token2	  => G_SQLERRM_TOKEN
16617 	,P_Token2_Value   => SQLERRM);
16618 
16619       OKC_API.SET_MESSAGE
16620         (P_App_Name	  => G_APP_NAME_OKC
16621 	,P_Msg_Name	  => G_DEBUG_TOKEN
16622 	,P_Token1	  => G_PACKAGE_TOKEN
16623 	,P_Token1_Value	  => G_PKG_NAME
16624 	,P_Token2	  => G_PROGRAM_TOKEN
16625 	,P_Token2_Value   => 'Get_cov_txn_groups');
16626 
16627      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
16628 
16629 END Get_cov_txn_groups;
16630 
16631 PROCEDURE Get_txn_billing_types
16632     (p_api_version		IN  Number
16633 	,p_init_msg_list		IN  Varchar2
16634 	,p_cov_txngrp_line_id		IN  number
16635     ,p_return_bill_rates_YN   IN  Varchar2
16636 	,x_return_status 		OUT NOCOPY Varchar2
16637 	,x_msg_count		OUT NOCOPY Number
16638 	,x_msg_data			OUT NOCOPY Varchar2
16639 	,x_txn_bill_types		OUT NOCOPY output_tbl_bt
16640     ,x_txn_bill_rates   out nocopy output_tbl_br)
16641 IS
16642 
16643 
16644 cursor cur_bt (p_txn_grp_line_id in number) is
16645 select  lines.id id,
16646         lines2.id bt_line_id,
16647         lines.start_date start_date,
16648         lines.end_date end_date ,
16649         items2.object1_id1 bt_object1_id1,
16650         items2.jtot_object1_code jtot_object1_code,
16651         okslines2.discount_amount, -- rul.rule_information2 rule_information2,
16652         okslines2.discount_percent -- rul.rule_information4 rule_information4
16653 from    okc_k_lines_v lines,
16654         okc_k_lines_v lines2,
16655         okc_k_items items2,
16656         oks_k_lines_b okslines2
16657 --        okc_rule_groups_b rgp,
16658 --        okc_rules_b rul
16659 where   lines.id     = p_txn_grp_line_id
16660 and     lines.lse_id in (3,16,21)
16661 and     lines2.cle_id = lines.id
16662 and     lines2.id = items2.cle_id
16663 and     lines2.lse_id in (5,23,59)
16664 and     items2.jtot_object1_code = 'OKX_BILLTYPE'
16665 and     lines2.id  = okslines2.cle_id;
16666 
16667 
16668 cursor cur_br (p_bill_type_id in number) is
16669 select oksbsch.BT_CLE_ID bt_line_id,
16670        oksbsch.CLE_ID br_line_id,
16671        oksbsch.ID br_schedule_id,
16672        oksbsch.BILL_RATE_CODE bill_rate,
16673        oksbsch.FLAT_RATE flat_rate,
16674        oksbsch.UOM uom,
16675        oksbsch.PERCENT_OVER_LIST_PRICE percent_over_list_price,
16676        oksbsch.START_HOUR start_hour,
16677        oksbsch.START_MINUTE start_minute,
16678        oksbsch.END_HOUR end_hour,
16679        oksbsch.END_MINUTE end_minute,
16680        oksbsch.MONDAY_FLAG monday_flag,
16681        oksbsch.TUESDAY_FLAG tuesday_flag,
16682        oksbsch.WEDNESDAY_FLAG wednesday_flag,
16683        oksbsch.THURSDAY_FLAG thursday_flag,
16684        oksbsch.FRIDAY_FLAG friday_flag,
16685        oksbsch.SATURDAY_FLAG saturday_flag,
16686        oksbsch.SUNDAY_FLAG sunday_flag,
16687        to_number(oksbsch.OBJECT1_ID2) labor_item_org_id,
16688        to_number(oksbsch.OBJECT1_ID1) labor_item_id,
16689        oksbsch.HOLIDAY_YN holiday_yn
16690 from   okc_k_lines_v lines,
16691        okc_k_lines_v lines2,
16692        oks_billrate_schedules oksbsch
16693 --       okc_rule_groups_v rgp,
16694 --       okc_rules_b rules
16695 where  lines.id = p_bill_type_id
16696 and    lines.id = lines2.cle_id
16697 and    lines2.id = oksbsch.cle_id;
16698 
16699    G_CONTRACT_END_DATE          date;
16700    G_CONTRACT_ID                number;
16701 
16702    p_id                         number;
16703    p_bp_id                      number;
16704 
16705    i                            number;
16706    j                            number;
16707 
16708    l_bp_object1_id1             number;
16709    l_bt_object1_id1             number;
16710 
16711    Lx_Result                    Gx_Boolean;
16712    Lx_Return_Status             Gx_Ret_Sts;
16713 
16714 
16715 begin
16716 
16717    i                            := 0;
16718    j                            := 0;
16719    Lx_Result                    := G_TRUE;
16720    Lx_Return_Status             := G_RET_STS_SUCCESS;
16721 
16722   FOR bt_rec in cur_bt(p_cov_txngrp_line_id)
16723   LOOP
16724             i := i + 1;
16725             x_txn_bill_types(i).Txn_BT_line_id       := Bt_rec.bt_line_id;
16726             x_txn_bill_types(i).txn_bill_type_id     := Bt_rec.bt_object1_id1;
16727             x_txn_bill_types(i).Covered_upto_amount  := Bt_rec.discount_amount; --Bt_rec.rule_information2;
16728             x_txn_bill_types(i).percent_covered      := Bt_rec.discount_percent; --Bt_rec.rule_information4;
16729 
16730           if p_return_bill_rates_YN = 'Y' then
16731 
16732             FOR br_rec in cur_br(Bt_rec.bt_line_id)
16733             LOOP
16734 
16735                 j:= j + 1;
16736 
16737                 x_txn_bill_rates(j).BT_line_id                  := BR_rec.bt_line_id;
16738                 x_txn_bill_rates(j).Br_line_id                  := BR_rec.br_line_id;
16739                 x_txn_bill_rates(j).br_schedule_id              := BR_rec.br_schedule_id;
16740                 x_txn_bill_rates(j).bill_rate                   := BR_rec.bill_rate;
16741                 x_txn_bill_rates(j).flat_rate                   := BR_rec.flat_rate;
16742                 x_txn_bill_rates(j).uom                         := BR_rec.uom;
16743                 x_txn_bill_rates(j).percent_over_list_price     := BR_rec.percent_over_list_price;
16744                 x_txn_bill_rates(j).start_hour                  := BR_rec.start_hour;
16745                 x_txn_bill_rates(j).start_minute                := BR_rec.start_minute;
16746                 x_txn_bill_rates(j).end_hour                    := BR_rec.end_hour;
16747                 x_txn_bill_rates(j).end_minute                  := BR_rec.end_minute;
16748                 x_txn_bill_rates(j).monday_flag                 := BR_rec.monday_flag;
16749                 x_txn_bill_rates(j).tuesday_flag                := BR_rec.tuesday_flag;
16750                 x_txn_bill_rates(j).wednesday_flag              := BR_rec.wednesday_flag;
16751                 x_txn_bill_rates(j).thursday_flag               := BR_rec.thursday_flag;
16752                 x_txn_bill_rates(j).friday_flag                 := BR_rec.friday_flag;
16753                 x_txn_bill_rates(j).saturday_flag               := BR_rec.saturday_flag;
16754                 x_txn_bill_rates(j).sunday_flag                 := BR_rec.sunday_flag;
16755                 x_txn_bill_rates(j).labor_item_org_id           := BR_rec.labor_item_org_id;
16756                 x_txn_bill_rates(j).labor_item_id               := BR_rec.labor_item_id;
16757                 x_txn_bill_rates(j).holiday_yn                  := BR_rec.holiday_yn ;
16758 
16759             end loop;
16760           end if;
16761         end loop;
16762 
16763     X_Return_Status   := Lx_Return_Status;
16764 
16765 EXCEPTION
16766 WHEN OTHERS THEN
16767    OKC_API.SET_MESSAGE
16768     (P_App_Name	  => G_APP_NAME_OKC
16769 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
16770 	,P_Token1	  => G_SQLCODE_TOKEN
16771 	,P_Token1_Value	  => SQLCODE
16772 	,P_Token2	  => G_SQLERRM_TOKEN
16773 	,P_Token2_Value   => SQLERRM);
16774 
16775 OKC_API.SET_MESSAGE
16776     (P_App_Name	  => G_APP_NAME_OKC
16777 	,P_Msg_Name	  => G_DEBUG_TOKEN
16778 	,P_Token1	  => G_PACKAGE_TOKEN
16779 	,P_Token1_Value	  => G_PKG_NAME
16780 	,P_Token2	  => G_PROGRAM_TOKEN
16781 	,P_Token2_Value   => 'Get_txn_billing_types');
16782 
16783    --  X_Result            := G_FALSE;
16784      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
16785 
16786 END Get_txn_billing_types;
16787 
16788 PROCEDURE Search_Contracts_01_Format
16789     (P_Contracts            IN  GT_Contract_Ref
16790     ,P_Contract_rec	        IN  inp_cont_rec_type
16791     ,P_Request_Date         IN  DATE
16792     ,P_Contract_Id          IN  NUMBER
16793     ,P_Validate_Eff         IN  VARCHAR2
16794     ,P_Validate_Flag        IN  VARCHAR2
16795     ,P_SrvLine_Flag         IN  VARCHAR2
16796     ,P_Sort_Key             IN  VARCHAR2
16797     ,X_Contracts_02         out nocopy Output_Tbl_Contract
16798     ,X_Result               out nocopy Gx_Boolean
16799     ,X_Return_Status   	    out nocopy Gx_Ret_Sts)
16800   IS
16801 
16802     CURSOR Lx_Csr_Contracts(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
16803                            ,Cx_CovLvlLine_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
16804                            ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
16805                            ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
16806                            ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
16807                            Cx_HD_Sts_Code IN VARCHAR2) IS
16808       SELECT HD.Id Contract_Id
16809      	    ,HD.Contract_Number
16810             ,HD.Contract_Number_Modifier
16811             ,HD.Sts_Code
16812             ,HD.Authoring_Org_Id
16813             ,HD.Inv_Organization_Id
16814             ,HD.End_Date HDR_End_Date --grace period changes
16815     	    ,SV.Id Service_Line_Id
16816             ,SV.Start_Date SV_Start_Date
16817 	        ,Get_End_Date_Time(SV.End_Date) SV_End_Date
16818             ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
16819             ,CL.Sts_Code CL_Sts_Code
16820 	        ,CL.Id CovLvl_Line_Id
16821             ,CL.Start_Date CL_Start_Date
16822 	        ,Get_End_Date_Time(CL.End_Date) CL_End_Date
16823             ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
16824             ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
16825             ,HD.Scs_Code Scs_Code
16826             ,HD.Estimated_Amount Estimated_Amount
16827             ,HD.Start_Date HD_Start_Date
16828 	        ,HD.End_Date HD_End_Date
16829             ,HD.Date_Terminated HD_Date_Terminated
16830             ,HDT.Cognomen Cognomen  -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
16831             ,HDT.short_description short_description -- HD.short_description  -- Modified for 12.0 MOAC project (JVARGHES)
16832             ,HD.currency_code HD_currency_code
16833             ,CAT.meaning HD_cat_meaning
16834             ,STS.meaning HD_sts_meaning
16835         FROM OKC_K_HEADERS_ALL_B HD   -- Modified for 12.0 MOAC project (JVARGHES)
16836             ,OKC_K_HEADERS_TL HDT     -- Okc_K_Headers_V HD   -- Modified for 12.0 MOAC project (JVARGHES)
16837             ,Okc_K_Lines_B SV
16838             ,Okc_K_Lines_B CL
16839             ,okc_subclasses_v CAT
16840             ,okc_statuses_v STS
16841        WHERE HD.Id = Cx_Chr_Id
16842          AND HD.Scs_Code IN ('SERVICE','WARRANTY')
16843          AND HDT.ID         = HD.ID                    -- Modified for 12.0 MOAC project (JVARGHES)
16844          AND HDT.LANGUAGE   = USERENV('LANG')          -- Modified for 12.0 MOAC project (JVARGHES)
16845          AND HD.Sts_code = STS.code
16846          AND HD.Scs_code = CAT.code
16847          AND HD.Id > -1
16848          AND HD.Template_YN <> 'Y'
16849          AND (trunc(HD.Start_Date) between
16850             nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
16851             nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
16852          AND (trunc(HD.End_Date) between
16853             nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
16854             nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
16855         AND ((trunc(HD.Date_Terminated) IS NULL)OR
16856          ((trunc(HD.Date_Terminated) between
16857             nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
16858             nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
16859          AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
16860          AND SV.Dnz_Chr_Id = HD.Id
16861          AND SV.Cle_Id IS NULL
16862          AND SV.Chr_Id = HD.Id
16863          AND SV.Lse_ID IN (1,14,19)
16864          AND SV.Id = NVL(Cx_SrvLine_Id,SV.Id)
16865          AND CL.Cle_Id = SV.Id
16866          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
16867          AND CL.Id = NVL(Cx_CovLvlLine_Id, CL.Id)
16868          AND EXISTS   (SELECT '*'
16869                          FROM Okc_K_Party_Roles_B PR
16870                         WHERE PR.Chr_Id = HD.Id
16871                           AND PR.Cle_Id IS NULL
16872                           AND PR.Dnz_Chr_Id = HD.Id
16873                           AND PR.Object1_Id1 = Cv_Cont_Pty_Id
16874                           AND PR.Object1_Id2 = '#'
16875                           AND PR.Jtot_Object1_Code = 'OKX_PARTY'
16876                           AND PR.RLE_CODE <> 'VENDOR');
16877 
16878     CURSOR Lx_Csr_Contracts_sub(Cx_Chr_Id IN Gx_OKS_Id, Cx_SrvLine_Id IN Gx_OKS_Id
16879                            ,Cx_CovLvlLine_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
16880                            ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
16881                            ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
16882                            ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
16883                            Cx_HD_Sts_Code IN VARCHAR2) IS
16884       SELECT HD.Id Contract_Id
16885      	    ,HD.Contract_Number
16886             ,HD.Contract_Number_Modifier
16887             ,HD.Sts_Code
16888             ,HD.Authoring_Org_Id
16889             ,HD.Inv_Organization_Id
16890             ,HD.End_Date HDR_End_Date --grace period changes
16891     	    ,SV.Id Service_Line_Id
16892             ,SV.Start_Date SV_Start_Date
16893 	        ,Get_End_Date_Time(SV.End_Date) SV_End_Date
16894             ,Get_End_Date_Time(SV.Date_Terminated) SV_Date_Terminated
16895             ,CL.Sts_Code CL_Sts_Code
16896 	        ,CL.Id CovLvl_Line_Id
16897             ,CL.Start_Date CL_Start_Date
16898 	        ,Get_End_Date_Time(CL.End_Date) CL_End_Date
16899             ,Get_End_Date_Time(CL.Date_Terminated) CL_Date_Terminated
16900             ,DECODE(SV.Lse_Id, 14, 'Y', 15, 'Y', 16, 'Y', 17, 'Y', 18, 'Y', 'N') Warranty_Flag
16901             ,HD.Scs_Code Scs_Code
16902             ,HD.Estimated_Amount Estimated_Amount
16903             ,HD.Start_Date HD_Start_Date
16904 	        ,HD.End_Date HD_End_Date
16905             ,HD.Date_Terminated HD_Date_Terminated
16906             ,HDT.Cognomen Cognomen  -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
16907             ,HDT.short_description short_description -- HD.short_description  -- Modified for 12.0 MOAC project (JVARGHES)
16908             ,HD.currency_code HD_currency_code
16909             ,CAT.meaning HD_cat_meaning
16910             ,STS.meaning HD_sts_meaning
16911         FROM OKC_K_HEADERS_ALL_B HD   -- Modified for 12.0 MOAC project (JVARGHES)
16912             ,OKC_K_HEADERS_TL HDT     -- Okc_K_Headers_V HD   -- Modified for 12.0 MOAC project (JVARGHES)
16913             ,Okc_K_Lines_B SV
16914             ,Okc_K_Lines_B CL
16915             ,okc_subclasses_v CAT
16916             ,okc_statuses_v STS
16917        WHERE HD.Id = Cx_Chr_Id
16918          AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION')   ----Modified condition for ER9681794
16919          AND HDT.ID         = HD.ID                    -- Modified for 12.0 MOAC project (JVARGHES)
16920          AND HDT.LANGUAGE   = USERENV('LANG')          -- Modified for 12.0 MOAC project (JVARGHES)
16921          AND HD.Sts_code = STS.code
16922          AND HD.Scs_code = CAT.code
16923          AND HD.Id > -1
16924          AND HD.Template_YN <> 'Y'
16925          AND (trunc(HD.Start_Date) between
16926             nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
16927             nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
16928          AND (trunc(HD.End_Date) between
16929             nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
16930             nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
16931         AND ((trunc(HD.Date_Terminated) IS NULL)OR
16932          ((trunc(HD.Date_Terminated) between
16933             nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
16934             nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
16935          AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
16936          AND SV.Dnz_Chr_Id = HD.Id
16937          AND SV.Cle_Id IS NULL
16938          AND SV.Chr_Id = HD.Id
16939          AND SV.Lse_ID IN (1,14,19)
16940          AND SV.Id = NVL(Cx_SrvLine_Id,SV.Id)
16941          AND CL.Cle_Id = SV.Id
16942          AND CL.Lse_ID IN (7,8,9,10,11,35,18,25)
16943          AND CL.Id = NVL(Cx_CovLvlLine_Id, CL.Id)
16944          AND EXISTS   (SELECT '*'
16945                          FROM Okc_K_Party_Roles_B PR
16946                         WHERE PR.Chr_Id = HD.Id
16947                           AND PR.Cle_Id IS NULL
16948                           AND PR.Dnz_Chr_Id = HD.Id
16949                           AND PR.Object1_Id1 = Cv_Cont_Pty_Id
16950                           AND PR.Object1_Id2 = '#'
16951                           AND PR.Jtot_Object1_Code = 'OKX_PARTY'
16952                           AND PR.RLE_CODE not in ('VENDOR','MERCHANT'));     ----Modified condition for ER9681794
16953 
16954 
16955     CURSOR Lx_Csr_Contracts1(Cx_Chr_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
16956                            ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
16957                            ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
16958                            ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
16959                            Cx_HD_Sts_Code IN VARCHAR2) IS
16960 
16961       SELECT HD.Id Contract_Id
16962      	    ,HD.Contract_Number
16963             ,HD.Contract_Number_Modifier
16964             ,HD.Sts_Code
16965             ,HD.End_Date HDR_End_Date --grace period changes
16966     	    ,HD.Scs_Code Scs_Code
16967             ,HD.Estimated_Amount Estimated_Amount
16968             ,HD.Start_Date HD_Start_Date
16969 	        ,HD.End_Date HD_End_Date
16970             ,HD.Date_Terminated HD_Date_Terminated
16971             ,HDT.Cognomen Cognomen  -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
16972             ,HDT.short_description short_description -- HD.short_description  -- Modified for 12.0 MOAC project (JVARGHES)
16973             ,HD.currency_code HD_currency_code
16974             ,CAT.meaning HD_cat_meaning
16975             ,STS.meaning HD_sts_meaning
16976         FROM OKC_K_HEADERS_ALL_B HD   -- Modified for 12.0 MOAC project (JVARGHES)
16977             ,OKC_K_HEADERS_TL HDT     -- Okc_K_Headers_V HD   -- Modified for 12.0 MOAC project (JVARGHES)
16978             ,okc_subclasses_v CAT
16979             ,okc_statuses_v STS
16980        WHERE HD.Id = Cx_Chr_Id			-- Modified for Bug#13840327
16981          AND HD.Scs_Code IN ('SERVICE','WARRANTY')
16982          AND HDT.ID         = HD.ID                    -- Modified for 12.0 MOAC project (JVARGHES)
16983          AND HDT.LANGUAGE   = USERENV('LANG')          -- Modified for 12.0 MOAC project (JVARGHES)
16984          AND HD.Sts_code = STS.code
16985          AND HD.Scs_code = CAT.code
16986          AND HD.Id > -1
16987          AND HD.Template_YN <> 'Y'
16988          AND (trunc(HD.Start_Date) between
16989             nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
16990             nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
16991          AND (trunc(HD.End_Date) between
16992             nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
16993             nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
16994          AND ((trunc(HD.Date_Terminated) IS NULL)OR
16995          ((trunc(HD.Date_Terminated) between
16996             nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
16997             nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
16998          AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
16999          AND EXISTS   (SELECT '*'
17000                          FROM Okc_K_Party_Roles_B PR
17001                         WHERE PR.Chr_Id = HD.Id
17002                           AND PR.Cle_Id IS NULL
17003                           AND PR.Dnz_Chr_Id = HD.Id
17004                           AND PR.Object1_Id1 = Cv_Cont_Pty_Id
17005                           AND PR.Object1_Id2 = '#'
17006                           AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17007                           AND PR.RLE_CODE <> 'VENDOR');
17008 
17009     CURSOR Lx_Csr_Contracts1_sub(Cx_Chr_Id IN Gx_OKS_Id,Cv_Cont_Pty_Id IN VARCHAR2
17010                            ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
17011                            ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
17012                            ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
17013                            Cx_HD_Sts_Code IN VARCHAR2) IS
17014 
17015       SELECT HD.Id Contract_Id
17016      	    ,HD.Contract_Number
17017             ,HD.Contract_Number_Modifier
17018             ,HD.Sts_Code
17019             ,HD.End_Date HDR_End_Date --grace period changes
17020     	    ,HD.Scs_Code Scs_Code
17021             ,HD.Estimated_Amount Estimated_Amount
17022             ,HD.Start_Date HD_Start_Date
17023 	        ,HD.End_Date HD_End_Date
17024             ,HD.Date_Terminated HD_Date_Terminated
17025             ,HDT.Cognomen Cognomen  -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
17026             ,HDT.short_description short_description -- HD.short_description  -- Modified for 12.0 MOAC project (JVARGHES)
17027             ,HD.currency_code HD_currency_code
17028             ,CAT.meaning HD_cat_meaning
17029             ,STS.meaning HD_sts_meaning
17030         FROM OKC_K_HEADERS_ALL_B HD   -- Modified for 12.0 MOAC project (JVARGHES)
17031             ,OKC_K_HEADERS_TL HDT     -- Okc_K_Headers_V HD   -- Modified for 12.0 MOAC project (JVARGHES)
17032             ,okc_subclasses_v CAT
17033             ,okc_statuses_v STS
17034        WHERE HD.Id = nvl(Cx_Chr_Id,HD.Id)
17035          AND HD.Scs_Code IN ('SERVICE','WARRANTY','SUBSCRIPTION')      ------Modified condition for ER9681794
17036          AND HDT.ID         = HD.ID                    -- Modified for 12.0 MOAC project (JVARGHES)
17037          AND HDT.LANGUAGE   = USERENV('LANG')          -- Modified for 12.0 MOAC project (JVARGHES)
17038          AND HD.Sts_code = STS.code
17039          AND HD.Scs_code = CAT.code
17040          AND HD.Id > -1
17041          AND HD.Template_YN <> 'Y'
17042          AND (trunc(HD.Start_Date) between
17043             nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
17044             nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
17045          AND (trunc(HD.End_Date) between
17046             nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
17047             nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
17048          AND ((trunc(HD.Date_Terminated) IS NULL)OR
17049          ((trunc(HD.Date_Terminated) between
17050             nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
17051             nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
17052          AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
17053          AND EXISTS   (SELECT '*'
17054                          FROM Okc_K_Party_Roles_B PR
17055                         WHERE PR.Chr_Id = HD.Id
17056                           AND PR.Cle_Id IS NULL
17057                           AND PR.Dnz_Chr_Id = HD.Id
17058                           AND PR.Object1_Id1 = Cv_Cont_Pty_Id
17059                           AND PR.Object1_Id2 = '#'
17060                           AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17061                           AND PR.RLE_CODE not in ('VENDOR','MERCHANT'));    ----Modified condition for ER9681794
17062 
17063     /* Added for Bug#13840327*/
17064 
17065     CURSOR Lx_Csr_Contracts1_OKS(Cv_Cont_Pty_Id IN VARCHAR2
17066                            ,Cx_Start_Date_From IN Date,Cx_Start_Date_To IN Date
17067                            ,Cx_End_Date_From IN Date,Cx_End_Date_To IN Date
17068                            ,Cx_Date_Terminated_From IN Date,Cx_Date_Terminated_To IN Date,
17069                            Cx_HD_Sts_Code IN VARCHAR2) IS
17070 
17071       SELECT HD.Id Contract_Id
17072      	    ,HD.Contract_Number
17073             ,HD.Contract_Number_Modifier
17074             ,HD.Sts_Code
17075             ,HD.End_Date HDR_End_Date --grace period changes
17076     	    ,HD.Scs_Code Scs_Code
17077             ,HD.Estimated_Amount Estimated_Amount
17078             ,HD.Start_Date HD_Start_Date
17079 	    ,HD.End_Date HD_End_Date
17080             ,HD.Date_Terminated HD_Date_Terminated
17081             ,HDT.Cognomen Cognomen  -- HD.Cognomen Cognomen -- Modified for 12.0 MOAC project (JVARGHES)
17082             ,HDT.short_description short_description -- HD.short_description  -- Modified for 12.0 MOAC project (JVARGHES)
17083             ,HD.currency_code HD_currency_code
17084             ,CAT.meaning HD_cat_meaning
17085             ,STS.meaning HD_sts_meaning
17086         FROM OKC_K_HEADERS_ALL_B HD   -- Modified for 12.0 MOAC project (JVARGHES)
17087             ,OKC_K_HEADERS_TL HDT     -- Okc_K_Headers_V HD   -- Modified for 12.0 MOAC project (JVARGHES)
17088             ,okc_subclasses_v CAT
17089             ,okc_statuses_v STS
17090        WHERE HD.Scs_Code IN ('SERVICE','WARRANTY')
17091          AND HDT.ID         = HD.ID                    -- Modified for 12.0 MOAC project (JVARGHES)
17092          AND HDT.LANGUAGE   = USERENV('LANG')          -- Modified for 12.0 MOAC project (JVARGHES)
17093          AND HD.Sts_code = STS.code
17094          AND HD.Scs_code = CAT.code
17095          AND HD.Id > -1
17096          AND HD.Template_YN <> 'Y'
17097          AND (trunc(HD.Start_Date) between
17098             nvl(trunc(Cx_Start_Date_From),nvl(trunc(Cx_Start_Date_To),trunc(HD.Start_Date))) and
17099             nvl(trunc(Cx_Start_Date_To),nvl(trunc(Cx_Start_Date_From),trunc(HD.Start_Date))))
17100          AND (trunc(HD.End_Date) between
17101             nvl(trunc(Cx_End_Date_From),nvl(trunc(Cx_End_Date_To),trunc(HD.End_Date))) and
17102             nvl(trunc(Cx_End_Date_To),nvl(trunc(Cx_End_Date_From),trunc(HD.End_Date))))
17103          AND ((trunc(HD.Date_Terminated) IS NULL)OR
17104          ((trunc(HD.Date_Terminated) between
17105             nvl(trunc(Cx_Date_Terminated_From),nvl(trunc(Cx_Date_Terminated_To),trunc(HD.Date_Terminated))) and
17106             nvl(trunc(Cx_Date_Terminated_To),nvl(trunc(Cx_Date_Terminated_From),trunc(HD.Date_Terminated))))))
17107          AND HD.Sts_code = nvl(Cx_HD_Sts_Code,HD.Sts_code)
17108          AND EXISTS   (SELECT '*'
17109                          FROM Okc_K_Party_Roles_B PR
17110                         WHERE PR.Chr_Id = HD.Id
17111                           AND PR.Cle_Id IS NULL
17112                           AND PR.Dnz_Chr_Id = HD.Id
17113                           AND PR.Object1_Id1 = Cv_Cont_Pty_Id
17114                           AND PR.Object1_Id2 = '#'
17115                           AND PR.Jtot_Object1_Code = 'OKX_PARTY'
17116                           AND PR.RLE_CODE <> 'VENDOR' );
17117 
17118       /*End of code Added for Bug#13840327*/
17119 
17120     Lx_Contracts             GT_Contract_Ref;
17121     Lx_Contract_rec          inp_cont_rec_type;
17122     Ld_Request_Date          CONSTANT DATE := nvl(P_Request_Date,sysdate);
17123     Lv_Contract_Id           NUMBER ;
17124     Lv_Validate_Flag         VARCHAR2(1);
17125     Lv_SrvLine_Flag          CONSTANT VARCHAR2(1) := P_SrvLine_Flag;
17126     Lv_Sort_Key              CONSTANT VARCHAR2(10):= P_Sort_Key;
17127 
17128     Lv_Validate_Eff          CONSTANT VARCHAR2(1) := P_Validate_Eff;
17129     Lv_Cont_Pty_Id           VARCHAR2(100);
17130 
17131     Lx_Contracts_02          Output_Tbl_Contract;
17132     Lx_Contracts_02_Out      Output_Tbl_Contract;
17133     Lx_Contracts_02_Val      Get_Contop_Tbl;
17134 
17135     Lx_Idx_Rec               Idx_Rec;
17136 
17137     Lx_Result                Gx_Boolean;
17138     Lx_Return_Status         Gx_Ret_Sts;
17139     Lx_Result1               Gx_Boolean;
17140     Lx_Return_Status1        Gx_Ret_Sts;
17141     Lx_Result2               Gx_Boolean;
17142     Lx_Return_Status2        Gx_Ret_Sts;
17143     Lx_Result3               Gx_Boolean;
17144     Lx_Return_Status3        Gx_Ret_Sts;
17145 
17146     Lx_Cov_Type_Code         Oks_Cov_Types_B.Code%TYPE;
17147     Lx_Cov_Type_Meaning      Oks_Cov_Types_TL.Meaning%TYPE;
17148     Lx_Cov_Type_Description  Oks_Cov_Types_TL.Description%TYPE;
17149     Lx_Cov_Type_Imp_Level    Oks_Cov_Types_B.Importance_Level%TYPE;
17150 
17151     Li_TableIdx              BINARY_INTEGER;
17152     Li_OutTab_Idx            BINARY_INTEGER;
17153     Lv_Entile_Flag           VARCHAR2(1);
17154     Lv_Effective_Falg        VARCHAR2(1);
17155 
17156     Lx_SrvLine_Id            Gx_OKS_Id;
17157     Lx_CovLvlLine_Id         Gx_OKS_Id;
17158 
17159     Ld_SRV_Eff_End_Date      DATE;
17160     Ld_COV_Eff_End_Date      DATE;
17161     Ld_CVL_Eff_End_Date      DATE;
17162 
17163     Lv_Srv_Name              Okx_System_Items_V.Name%TYPE;            --VARCHAR2(150) ;
17164     Lv_Srv_Description       Okx_System_Items_V.Description%TYPE;     --VARCHAR2(1995);
17165     Lv_Prof_Srv_Name         VARCHAR2(300) ;
17166     Lv_Prof_Srv_Desc         VARCHAR2(300);
17167 
17168     Lv_Cov_Name              Okc_K_Lines_V.Name%TYPE;                 --VARCHAR2(150) ;
17169     Lv_Cov_Description       Okc_K_Lines_V.Item_Description%TYPE;     --VARCHAR2(1995);
17170 
17171     Lx_React_Durn	     Gx_ReactDurn;
17172     Lx_React_UOM 	     Gx_ReactUOM;
17173     Lv_React_Day             VARCHAR2(20);
17174     Ld_React_By_DateTime     DATE;
17175     Ld_React_Start_DateTime  DATE;
17176 
17177     Lx_Resln_Durn	     Gx_ReactDurn;
17178     Lx_Resln_UOM 	     Gx_ReactUOM;
17179     Lv_Resln_Day             VARCHAR2(20);
17180     Ld_Resln_By_DateTime     DATE;
17181     Ld_Resln_Start_DateTime  DATE;
17182 
17183     Ln_Msg_Count	     NUMBER;
17184     Lv_Msg_Data		     VARCHAR2(2000);
17185 
17186     Lv_RCN_RSN_Flag          VARCHAR2(10);
17187     Lb_RSN_CTXT_Exists       BOOLEAN;
17188 
17189     Lx_CovLine_Id            Gx_OKS_Id;
17190     Ld_Cov_StDate            DATE;
17191     Ld_Cov_EdDate            DATE;
17192     Ld_Cov_TnDate            DATE;
17193     Lv_Cov_Check             VARCHAR2(1);
17194 
17195     Lx_Contract_Id           NUMBER;
17196     Lx_Valid_K               VARCHAR2(1);
17197 
17198     Lv_Prof_Name             CONSTANT VARCHAR2(300) := 'OKS_ITEM_DISPLAY_PREFERENCE';
17199     Lv_Prof_Value            VARCHAR2(300);
17200 
17201     L_EXCEP_UNEXPECTED_ERR   EXCEPTION;
17202 
17203   BEGIN
17204 
17205     Lx_Contracts             := P_Contracts;
17206     Lx_Contract_rec          := P_Contract_rec;
17207     Lv_Contract_Id           := P_Contract_Id;
17208     Lv_Validate_Flag         := P_Validate_Flag;
17209     Lx_Result                := G_TRUE;
17210     Lx_Return_Status         := G_RET_STS_SUCCESS;
17211     Lx_Result1               := G_TRUE;
17212     Lx_Return_Status1        := G_RET_STS_SUCCESS;
17213     Lx_Result2               := G_TRUE;
17214     Lx_Return_Status2        := G_RET_STS_SUCCESS;
17215     Lx_Result3               := G_TRUE;
17216     Lx_Return_Status3        := G_RET_STS_SUCCESS;
17217     Li_OutTab_Idx            := 0;
17218     Lx_Contract_Id           := -99999;
17219     Lx_Valid_K               := 'F';
17220 
17221     IF  Lx_Contracts.COUNT > 0 AND Lv_Validate_Flag = 'T' AND Lv_Validate_Eff = 'T' THEN
17222 
17223      Li_TableIdx  := Lx_Contracts.FIRST;
17224 
17225      WHILE Li_TableIdx IS NOT NULL LOOP
17226 
17227       IF Lv_SrvLine_Flag = 'T' THEN
17228 
17229         Lx_SrvLine_Id     := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
17230         Lx_CovLvlLine_Id  := NULL;
17231 
17232       ELSE
17233 
17234         Lx_SrvLine_Id     := NULL;
17235         Lx_CovLvlLine_Id  := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
17236 
17237       END IF;
17238 
17239       Lv_Cont_Pty_Id  := TO_CHAR(Lx_Contract_rec.Contract_Party_Id);
17240 
17241       /*Added for ER9681794*/
17242       IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' THEN
17243 
17244       FOR Idx IN Lx_Csr_Contracts_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lv_Cont_Pty_Id
17245                                  ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17246                                  ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17247                                  ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17248                                  Lx_Contract_rec.Contract_Status_Code) LOOP
17249 
17250 
17251         Lx_Idx_Rec.Contract_Id                  := Idx.Contract_Id;
17252         Lx_Idx_Rec.Contract_Number              := Idx.Contract_Number;
17253         Lx_Idx_Rec.Contract_Number_Modifier     := Idx.Contract_Number_Modifier;
17254         Lx_Idx_Rec.Sts_Code                     := Idx.Sts_Code;
17255         Lx_Idx_Rec.Authoring_Org_Id             := Idx.Authoring_Org_Id;
17256         Lx_Idx_Rec.Inv_Organization_Id          := Idx.Inv_Organization_Id;
17257         Lx_Idx_Rec.HDR_End_Date                 := Idx.HDR_End_Date;
17258         Lx_Idx_Rec.Service_Line_Id              := Idx.Service_Line_Id;
17259         Lx_Idx_Rec.SV_Start_Date                := Idx.SV_Start_Date;
17260         Lx_Idx_Rec.SV_End_Date                  := Idx.SV_End_Date;
17261         Lx_Idx_Rec.SV_Date_Terminated           := Idx.SV_Date_Terminated;
17262         Lx_Idx_Rec.CL_Sts_Code                  := Idx.CL_Sts_Code;
17263         Lx_Idx_Rec.CovLvl_Line_Id               := Idx.CovLvl_Line_Id;
17264         Lx_Idx_Rec.CL_Start_Date                := Idx.CL_Start_Date;
17265         Lx_Idx_Rec.CL_End_Date                  := Idx.CL_End_Date;
17266         Lx_Idx_Rec.CL_Date_Terminated           := Idx.CL_Date_Terminated;
17267         Lx_Idx_Rec.Warranty_Flag                := Idx.Warranty_Flag;
17268         Lx_Idx_Rec.HD_currency_code             := Idx.HD_currency_code;
17269 
17270 
17271         IF (Lx_Contract_Id <> Lx_Idx_Rec.Contract_Id) OR (Lx_Valid_K = 'F') THEN
17272 
17273          Get_Cont02Format_Validation
17274             (P_Contracts            => Lx_Idx_Rec
17275             ,P_BusiProc_Id	        => NULL
17276             ,P_Severity_Id	        => NULL
17277             ,P_Request_TZone_Id	    => NULL
17278             ,P_Dates_In_Input_TZ    => 'Y'              -- Added for 12.0 ENT-TZ project (JVARGHES)
17279             ,P_Incident_Date        => ld_request_date  -- Added for 12.0 ENT-TZ project (JVARGHES)
17280             ,P_Request_Date         => Ld_Request_Date
17281             ,P_Request_Date_Start   => NULL
17282             ,P_Request_Date_End     => NULL
17283             ,P_Calc_RespTime_YN     => NULL
17284             ,P_Validate_Eff         => Lv_Validate_Eff
17285             ,P_Validate_Flag        => Lv_Validate_Flag
17286             ,P_SrvLine_Flag         => Lv_SrvLine_Flag
17287             ,P_Sort_Key             => Lv_Sort_Key
17288             ,X_Contracts_02         => Lx_Contracts_02_Val
17289             ,X_Result               => Lx_Result
17290             ,X_Return_Status   	    => Lx_Return_Status);
17291 
17292         END IF;
17293 
17294         IF (Lx_Contract_Id <> Lx_Idx_Rec.Contract_Id) THEN
17295 
17296             Lx_Contract_Id := Lx_Idx_Rec.Contract_Id;
17297             Lx_Valid_K    := 'F';
17298 
17299         END IF;
17300 
17301         IF Lx_Contracts_02_Val.COUNT > 0 THEN
17302 
17303          Lx_Valid_K    := 'T';
17304 
17305          Li_OutTab_Idx := Li_OutTab_Idx + 1;
17306 
17307           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts_02_Val(1).Contract_Number;
17308           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
17309           Lx_Contracts_02(Li_OutTab_Idx).contract_status_code        := Lx_Contracts_02_Val(1).Sts_code;
17310           Lx_Contracts_02(Li_OutTab_Idx).contract_category           := Idx.scs_code;
17311           Lx_Contracts_02(Li_OutTab_Idx).known_as                    := Idx.cognomen;
17312           Lx_Contracts_02(Li_OutTab_Idx).short_description           := Idx.short_description;
17313           Lx_Contracts_02(Li_OutTab_Idx).start_date                  := Idx.HD_start_date;
17314           Lx_Contracts_02(Li_OutTab_Idx).end_date                    := Idx.HD_end_date;
17315           Lx_Contracts_02(Li_OutTab_Idx).date_terminated             := Idx.HD_date_terminated;
17316           Lx_Contracts_02(Li_OutTab_Idx).contract_amount             := Idx.estimated_amount;
17317           Lx_Contracts_02(Li_OutTab_Idx).currency_code               := Idx.HD_Currency_code;
17318           Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning              := Idx.HD_sts_meaning;
17319           Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning              := Idx.HD_cat_meaning;
17320 
17321          Lx_Contracts_02_Val.DELETE;
17322 
17323         END IF;
17324 
17325         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
17326             RAISE L_EXCEP_UNEXPECTED_ERR;
17327         END IF;
17328 
17329       END LOOP;
17330 
17331    ELSE
17332     /*ADDED FOR ER9681794*/
17333 
17334     FOR Idx IN Lx_Csr_Contracts(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lx_SrvLine_Id,Lx_CovLvlLine_Id,Lv_Cont_Pty_Id
17335                                  ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17336                                  ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17337                                  ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17338                                  Lx_Contract_rec.Contract_Status_Code) LOOP
17339 
17340 
17341         Lx_Idx_Rec.Contract_Id                  := Idx.Contract_Id;
17342         Lx_Idx_Rec.Contract_Number              := Idx.Contract_Number;
17343         Lx_Idx_Rec.Contract_Number_Modifier     := Idx.Contract_Number_Modifier;
17344         Lx_Idx_Rec.Sts_Code                     := Idx.Sts_Code;
17345         Lx_Idx_Rec.Authoring_Org_Id             := Idx.Authoring_Org_Id;
17346         Lx_Idx_Rec.Inv_Organization_Id          := Idx.Inv_Organization_Id;
17347         Lx_Idx_Rec.HDR_End_Date                 := Idx.HDR_End_Date;
17348         Lx_Idx_Rec.Service_Line_Id              := Idx.Service_Line_Id;
17349         Lx_Idx_Rec.SV_Start_Date                := Idx.SV_Start_Date;
17350         Lx_Idx_Rec.SV_End_Date                  := Idx.SV_End_Date;
17351         Lx_Idx_Rec.SV_Date_Terminated           := Idx.SV_Date_Terminated;
17352         Lx_Idx_Rec.CL_Sts_Code                  := Idx.CL_Sts_Code;
17353         Lx_Idx_Rec.CovLvl_Line_Id               := Idx.CovLvl_Line_Id;
17354         Lx_Idx_Rec.CL_Start_Date                := Idx.CL_Start_Date;
17355         Lx_Idx_Rec.CL_End_Date                  := Idx.CL_End_Date;
17356         Lx_Idx_Rec.CL_Date_Terminated           := Idx.CL_Date_Terminated;
17357         Lx_Idx_Rec.Warranty_Flag                := Idx.Warranty_Flag;
17358         Lx_Idx_Rec.HD_currency_code             := Idx.HD_currency_code;
17359 
17360 
17361         IF (Lx_Contract_Id <> Lx_Idx_Rec.Contract_Id) OR (Lx_Valid_K = 'F') THEN
17362 
17363          Get_Cont02Format_Validation
17364             (P_Contracts            => Lx_Idx_Rec
17365             ,P_BusiProc_Id	        => NULL
17366             ,P_Severity_Id	        => NULL
17367             ,P_Request_TZone_Id	    => NULL
17368             ,P_Dates_In_Input_TZ    => 'Y'              -- Added for 12.0 ENT-TZ project (JVARGHES)
17369             ,P_Incident_Date        => ld_request_date  -- Added for 12.0 ENT-TZ project (JVARGHES)
17370             ,P_Request_Date         => Ld_Request_Date
17371             ,P_Request_Date_Start   => NULL
17372             ,P_Request_Date_End     => NULL
17373             ,P_Calc_RespTime_YN     => NULL
17374             ,P_Validate_Eff         => Lv_Validate_Eff
17375             ,P_Validate_Flag        => Lv_Validate_Flag
17376             ,P_SrvLine_Flag         => Lv_SrvLine_Flag
17377             ,P_Sort_Key             => Lv_Sort_Key
17378             ,X_Contracts_02         => Lx_Contracts_02_Val
17379             ,X_Result               => Lx_Result
17380             ,X_Return_Status   	    => Lx_Return_Status);
17381 
17382         END IF;
17383 
17384         IF (Lx_Contract_Id <> Lx_Idx_Rec.Contract_Id) THEN
17385 
17386             Lx_Contract_Id := Lx_Idx_Rec.Contract_Id;
17387             Lx_Valid_K    := 'F';
17388 
17389         END IF;
17390 
17391         IF Lx_Contracts_02_Val.COUNT > 0 THEN
17392 
17393          Lx_Valid_K    := 'T';
17394 
17395          Li_OutTab_Idx := Li_OutTab_Idx + 1;
17396 
17397           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Lx_Contracts_02_Val(1).Contract_Number;
17398           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Lx_Contracts_02_Val(1).Contract_Number_Modifier;
17399           Lx_Contracts_02(Li_OutTab_Idx).contract_status_code        := Lx_Contracts_02_Val(1).Sts_code;
17400           Lx_Contracts_02(Li_OutTab_Idx).contract_category           := Idx.scs_code;
17401           Lx_Contracts_02(Li_OutTab_Idx).known_as                    := Idx.cognomen;
17402           Lx_Contracts_02(Li_OutTab_Idx).short_description           := Idx.short_description;
17403           Lx_Contracts_02(Li_OutTab_Idx).start_date                  := Idx.HD_start_date;
17404           Lx_Contracts_02(Li_OutTab_Idx).end_date                    := Idx.HD_end_date;
17405           Lx_Contracts_02(Li_OutTab_Idx).date_terminated             := Idx.HD_date_terminated;
17406           Lx_Contracts_02(Li_OutTab_Idx).contract_amount             := Idx.estimated_amount;
17407           Lx_Contracts_02(Li_OutTab_Idx).currency_code               := Idx.HD_Currency_code;
17408           Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning              := Idx.HD_sts_meaning;
17409           Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning              := Idx.HD_cat_meaning;
17410 
17411          Lx_Contracts_02_Val.DELETE;
17412 
17413         END IF;
17414 
17415         IF Lx_Return_Status = G_RET_STS_UNEXP_ERROR THEN
17416             RAISE L_EXCEP_UNEXPECTED_ERR;
17417         END IF;
17418 
17419       END LOOP;
17420 
17421    END IF;  ---ADDED FOR ER9681794
17422 
17423       Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
17424 
17425     END LOOP;
17426 
17427    ELSIF  Lx_Contracts.COUNT > 0 AND Lv_Validate_Flag = 'F' AND Lv_Validate_Eff = 'F' THEN
17428 
17429      Li_TableIdx  := Lx_Contracts.FIRST;
17430 
17431      WHILE Li_TableIdx IS NOT NULL LOOP
17432 
17433       IF Lv_SrvLine_Flag = 'T' THEN
17434 
17435         Lx_SrvLine_Id     := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
17436         Lx_CovLvlLine_Id  := NULL;
17437 
17438       ELSE
17439 
17440         Lx_SrvLine_Id     := NULL;
17441         Lx_CovLvlLine_Id  := Lx_Contracts(Li_TableIdx).Rx_Cle_Id;
17442 
17443       END IF;
17444 
17445       Lv_Cont_Pty_Id  := TO_CHAR(Lx_Contract_rec.Contract_Party_Id);
17446 
17447       /*ADDED FOR ER9681794*/
17448       IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' THEN
17449 
17450       IF Lx_Contracts(Li_TableIdx).Rx_Chr_Id IS NOT NULL THEN   -- Added for Bug#13840327
17451 
17452       FOR Idx IN Lx_Csr_Contracts1_sub(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lv_Cont_Pty_Id
17453                                  ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17454                                  ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17455                                  ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17456                                  Lx_Contract_rec.Contract_Status_Code) LOOP
17457 
17458 
17459          Li_OutTab_Idx := Li_OutTab_Idx + 1;
17460 
17461           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
17462           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
17463           Lx_Contracts_02(Li_OutTab_Idx).contract_status_code        := Idx.Sts_code;
17464           Lx_Contracts_02(Li_OutTab_Idx).contract_category           := Idx.scs_code;
17465           Lx_Contracts_02(Li_OutTab_Idx).known_as                    := Idx.cognomen;
17466           Lx_Contracts_02(Li_OutTab_Idx).short_description           := Idx.short_description;
17467           Lx_Contracts_02(Li_OutTab_Idx).start_date                  := Idx.HD_start_date;
17468           Lx_Contracts_02(Li_OutTab_Idx).end_date                    := Idx.HD_end_date;
17469           Lx_Contracts_02(Li_OutTab_Idx).date_terminated             := Idx.HD_date_terminated;
17470           Lx_Contracts_02(Li_OutTab_Idx).contract_amount             := Idx.estimated_amount;
17471           Lx_Contracts_02(Li_OutTab_Idx).currency_code               := Idx.HD_Currency_code;
17472           Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning              := Idx.HD_sts_meaning;
17473           Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning              := Idx.HD_cat_meaning;
17474 
17475 
17476       END LOOP;
17477 
17478       /* Added for Bug#13840327 */
17479       ELSE
17480           FOR Idx IN Lx_Csr_Contracts1_OKS (Lv_Cont_Pty_Id
17481                                     ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17482                                     ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17483                                     ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17484                                     Lx_Contract_rec.Contract_Status_Code) LOOP
17485 
17486               Li_OutTab_Idx := Li_OutTab_Idx + 1;
17487 
17488               Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
17489               Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
17490               Lx_Contracts_02(Li_OutTab_Idx).contract_status_code        := Idx.Sts_code;
17491               Lx_Contracts_02(Li_OutTab_Idx).contract_category           := Idx.scs_code;
17492               Lx_Contracts_02(Li_OutTab_Idx).known_as                    := Idx.cognomen;
17493               Lx_Contracts_02(Li_OutTab_Idx).short_description           := Idx.short_description;
17494               Lx_Contracts_02(Li_OutTab_Idx).start_date                  := Idx.HD_start_date;
17495               Lx_Contracts_02(Li_OutTab_Idx).end_date                    := Idx.HD_end_date;
17496               Lx_Contracts_02(Li_OutTab_Idx).date_terminated             := Idx.HD_date_terminated;
17497               Lx_Contracts_02(Li_OutTab_Idx).contract_amount             := Idx.estimated_amount;
17498               Lx_Contracts_02(Li_OutTab_Idx).currency_code               := Idx.HD_Currency_code;
17499               Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning              := Idx.HD_sts_meaning;
17500               Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning              := Idx.HD_cat_meaning;
17501 
17502           END LOOP;
17503       END IF;
17504       /* End of code Added for Bug#13840327 */
17505 
17506      ELSE
17507 
17508      IF Lx_Contracts(Li_TableIdx).Rx_Chr_Id IS NOT NULL THEN   -- Added for Bug#13840327
17509      /*ADDED FOR ER9681794*/
17510      FOR Idx IN Lx_Csr_Contracts1(Lx_Contracts(Li_TableIdx).Rx_Chr_Id,Lv_Cont_Pty_Id
17511                                  ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17512                                  ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17513                                  ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17514                                  Lx_Contract_rec.Contract_Status_Code) LOOP
17515 
17516 
17517          Li_OutTab_Idx := Li_OutTab_Idx + 1;
17518 
17519           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
17520           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
17521           Lx_Contracts_02(Li_OutTab_Idx).contract_status_code        := Idx.Sts_code;
17522           Lx_Contracts_02(Li_OutTab_Idx).contract_category           := Idx.scs_code;
17523           Lx_Contracts_02(Li_OutTab_Idx).known_as                    := Idx.cognomen;
17524           Lx_Contracts_02(Li_OutTab_Idx).short_description           := Idx.short_description;
17525           Lx_Contracts_02(Li_OutTab_Idx).start_date                  := Idx.HD_start_date;
17526           Lx_Contracts_02(Li_OutTab_Idx).end_date                    := Idx.HD_end_date;
17527           Lx_Contracts_02(Li_OutTab_Idx).date_terminated             := Idx.HD_date_terminated;
17528           Lx_Contracts_02(Li_OutTab_Idx).contract_amount             := Idx.estimated_amount;
17529           Lx_Contracts_02(Li_OutTab_Idx).currency_code               := Idx.HD_Currency_code;
17530           Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning              := Idx.HD_sts_meaning;
17531           Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning              := Idx.HD_cat_meaning;
17532 
17533 
17534       END LOOP;
17535 
17536       /* Added for Bug#13840327 */
17537       ELSE
17538           FOR Idx IN Lx_Csr_Contracts1_OKS (Lv_Cont_Pty_Id
17539                                     ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17540                                     ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17541                                     ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17542                                     Lx_Contract_rec.Contract_Status_Code) LOOP
17543 
17544 
17545               Li_OutTab_Idx := Li_OutTab_Idx + 1;
17546 
17547               Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
17548               Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
17549               Lx_Contracts_02(Li_OutTab_Idx).contract_status_code        := Idx.Sts_code;
17550               Lx_Contracts_02(Li_OutTab_Idx).contract_category           := Idx.scs_code;
17551               Lx_Contracts_02(Li_OutTab_Idx).known_as                    := Idx.cognomen;
17552               Lx_Contracts_02(Li_OutTab_Idx).short_description           := Idx.short_description;
17553               Lx_Contracts_02(Li_OutTab_Idx).start_date                  := Idx.HD_start_date;
17554               Lx_Contracts_02(Li_OutTab_Idx).end_date                    := Idx.HD_end_date;
17555               Lx_Contracts_02(Li_OutTab_Idx).date_terminated             := Idx.HD_date_terminated;
17556               Lx_Contracts_02(Li_OutTab_Idx).contract_amount             := Idx.estimated_amount;
17557               Lx_Contracts_02(Li_OutTab_Idx).currency_code               := Idx.HD_Currency_code;
17558               Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning              := Idx.HD_sts_meaning;
17559               Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning              := Idx.HD_cat_meaning;
17560 
17561           END LOOP;
17562       END IF;
17563       /* End of code Added for Bug#13840327 */
17564 
17565     END IF; ---ADDED FOR ER9681794
17566 
17567       Li_TableIdx := Lx_Contracts.NEXT(Li_TableIdx);
17568 
17569      END LOOP;
17570 
17571     ELSIF Lx_Contracts.COUNT = 0 AND Lv_Validate_Flag = 'F' AND Lv_Validate_Eff = 'F' THEN
17572 
17573       Lv_Cont_Pty_Id  := TO_CHAR(Lx_Contract_rec.Contract_Party_Id);
17574 
17575      /*ADDED FOR ER9681794*/
17576      IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' THEN
17577 
17578       FOR Idx IN Lx_Csr_Contracts1_sub(Lv_Contract_Id,Lv_Cont_Pty_Id
17579                                  ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17580                                  ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17581                                  ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17582                                  Lx_Contract_rec.Contract_Status_Code) LOOP
17583 
17584 
17585 
17586          Li_OutTab_Idx := Li_OutTab_Idx + 1;
17587 
17588           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
17589           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
17590           Lx_Contracts_02(Li_OutTab_Idx).contract_status_code        := Idx.Sts_code;
17591           Lx_Contracts_02(Li_OutTab_Idx).contract_category           := Idx.scs_code;
17592           Lx_Contracts_02(Li_OutTab_Idx).known_as                    := Idx.cognomen;
17593           Lx_Contracts_02(Li_OutTab_Idx).short_description           := Idx.short_description;
17594           Lx_Contracts_02(Li_OutTab_Idx).start_date                  := Idx.HD_start_date;
17595           Lx_Contracts_02(Li_OutTab_Idx).end_date                    := Idx.HD_end_date;
17596           Lx_Contracts_02(Li_OutTab_Idx).date_terminated             := Idx.HD_date_terminated;
17597           Lx_Contracts_02(Li_OutTab_Idx).contract_amount             := Idx.estimated_amount;
17598           Lx_Contracts_02(Li_OutTab_Idx).currency_code               := Idx.HD_Currency_code;
17599           Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning              := Idx.HD_sts_meaning;
17600           Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning              := Idx.HD_cat_meaning;
17601 
17602     END LOOP;
17603 
17604    ELSE
17605 
17606     IF Lv_Contract_Id IS NOT NULL THEN       -- Added for Bug#13840327
17607 
17608     /*ADDED FOR ER9681794*/
17609     FOR Idx IN Lx_Csr_Contracts1(Lv_Contract_Id,Lv_Cont_Pty_Id
17610                                  ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17611                                  ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17612                                  ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17613                                  Lx_Contract_rec.Contract_Status_Code) LOOP
17614 
17615 
17616 
17617          Li_OutTab_Idx := Li_OutTab_Idx + 1;
17618 
17619           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
17620           Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
17621           Lx_Contracts_02(Li_OutTab_Idx).contract_status_code        := Idx.Sts_code;
17622           Lx_Contracts_02(Li_OutTab_Idx).contract_category           := Idx.scs_code;
17623           Lx_Contracts_02(Li_OutTab_Idx).known_as                    := Idx.cognomen;
17624           Lx_Contracts_02(Li_OutTab_Idx).short_description           := Idx.short_description;
17625           Lx_Contracts_02(Li_OutTab_Idx).start_date                  := Idx.HD_start_date;
17626           Lx_Contracts_02(Li_OutTab_Idx).end_date                    := Idx.HD_end_date;
17627           Lx_Contracts_02(Li_OutTab_Idx).date_terminated             := Idx.HD_date_terminated;
17628           Lx_Contracts_02(Li_OutTab_Idx).contract_amount             := Idx.estimated_amount;
17629           Lx_Contracts_02(Li_OutTab_Idx).currency_code               := Idx.HD_Currency_code;
17630           Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning              := Idx.HD_sts_meaning;
17631           Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning              := Idx.HD_cat_meaning;
17632 
17633     END LOOP;
17634     /* Added for Bug#13840327 */
17635     ELSE
17636           FOR Idx IN Lx_Csr_Contracts1_OKS (Lv_Cont_Pty_Id
17637                                     ,Lx_Contract_rec.Start_Date_From,Lx_Contract_rec.Start_Date_To
17638                                     ,Lx_Contract_rec.End_Date_From,Lx_Contract_rec.End_Date_To
17639                                     ,Lx_Contract_rec.Date_Terminated_From,Lx_Contract_rec.Date_Terminated_To,
17640                                     Lx_Contract_rec.Contract_Status_Code) LOOP
17641 
17642 
17643               Li_OutTab_Idx := Li_OutTab_Idx + 1;
17644 
17645               Lx_Contracts_02(Li_OutTab_Idx).Contract_Number             := Idx.Contract_Number;
17646               Lx_Contracts_02(Li_OutTab_Idx).Contract_Number_Modifier    := Idx.Contract_Number_Modifier;
17647               Lx_Contracts_02(Li_OutTab_Idx).contract_status_code        := Idx.Sts_code;
17648               Lx_Contracts_02(Li_OutTab_Idx).contract_category           := Idx.scs_code;
17649               Lx_Contracts_02(Li_OutTab_Idx).known_as                    := Idx.cognomen;
17650               Lx_Contracts_02(Li_OutTab_Idx).short_description           := Idx.short_description;
17651               Lx_Contracts_02(Li_OutTab_Idx).start_date                  := Idx.HD_start_date;
17652               Lx_Contracts_02(Li_OutTab_Idx).end_date                    := Idx.HD_end_date;
17653               Lx_Contracts_02(Li_OutTab_Idx).date_terminated             := Idx.HD_date_terminated;
17654               Lx_Contracts_02(Li_OutTab_Idx).contract_amount             := Idx.estimated_amount;
17655               Lx_Contracts_02(Li_OutTab_Idx).currency_code               := Idx.HD_Currency_code;
17656               Lx_Contracts_02(Li_OutTab_Idx).HD_sts_meaning              := Idx.HD_sts_meaning;
17657               Lx_Contracts_02(Li_OutTab_Idx).HD_cat_meaning              := Idx.HD_cat_meaning;
17658 
17659           END LOOP;
17660     END IF;
17661 
17662     /* End of code Added for Bug#13840327 */
17663 
17664   END IF;  ---ADDED FOR ER9681794
17665 
17666    END IF;
17667 
17668     Lx_Contracts_02_Out := Lx_Contracts_02;
17669 
17670     X_Contracts_02        := Lx_Contracts_02_Out;
17671     X_Result              := Lx_Result;
17672     X_Return_Status       := Lx_Return_Status;
17673 
17674 
17675 
17676   EXCEPTION
17677 
17678     WHEN L_EXCEP_UNEXPECTED_ERR THEN
17679 
17680       X_Result           := Lx_Result;
17681       X_Return_Status    := Lx_Return_Status;
17682 
17683     WHEN OTHERS THEN
17684 
17685       OKC_API.SET_MESSAGE
17686         (P_App_Name	  => G_APP_NAME_OKC
17687 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
17688 	,P_Token1	  => G_SQLCODE_TOKEN
17689 	,P_Token1_Value	  => SQLCODE
17690 	,P_Token2	  => G_SQLERRM_TOKEN
17691 	,P_Token2_Value   => SQLERRM);
17692 
17693       OKC_API.SET_MESSAGE
17694         (P_App_Name	  => G_APP_NAME_OKC
17695 	,P_Msg_Name	  => G_DEBUG_TOKEN
17696 	,P_Token1	  => G_PACKAGE_TOKEN
17697 	,P_Token1_Value	  => G_PKG_NAME
17698 	,P_Token2	  => G_PROGRAM_TOKEN
17699 	,P_Token2_Value   => 'Search_Contracts_01_Format');
17700 
17701       X_Result          := G_FALSE;
17702       X_Return_Status   := G_RET_STS_UNEXP_ERROR;
17703 
17704   END Search_Contracts_01_Format;
17705 
17706 
17707 PROCEDURE Search_Contracts
17708     (p_api_version         IN  Number
17709     ,p_init_msg_list       IN  Varchar2
17710     ,p_contract_rec        IN  inp_cont_rec_type
17711     ,p_clvl_id_tbl         IN  covlvl_id_tbl
17712     ,x_return_status       out nocopy Varchar2
17713     ,x_msg_count           out nocopy Number
17714     ,x_msg_data            out nocopy Varchar2
17715     ,x_contract_tbl        out nocopy output_tbl_contract) IS
17716 
17717 
17718     Lx_Inp_Rec_02     CONSTANT  inp_cont_rec_type   := p_contract_rec;
17719     Lx_Inp_Tbl_03               covlvl_id_tbl;
17720     Lx_Return_Status            Gx_Ret_Sts;
17721     Lx_Result                   Gx_Boolean;
17722     Lv_Request_date	            date;
17723 
17724     Lx_Ent_Contracts            output_tbl_contract;
17725     Lx_Contracts                GT_Contract_Ref;
17726     Lx_Contracts_Temp           GT_Contract_Ref;
17727     Lx_Contracts_Out            GT_Contract_Ref;
17728     Lx_Contracts_02             GT_Contract_Ref;
17729     Lx_Contracts_Prev           GT_Contract_Ref;
17730     Lx_Contracts_ContNum        GT_Contract_Ref;
17731 
17732     Lx_Contract_Id              NUMBER;
17733 
17734     Lv_SrvLine_Flag             VARCHAR2(1);
17735 
17736     Ln_Organization_Id          NUMBER;
17737     Ln_Org_Id                   NUMBER;
17738     Ln_Chr_Id                   NUMBER;
17739 
17740     Lx_Validate_Eff             VARCHAR2(1);
17741     Lx_Validate_Flag            VARCHAR2(1);
17742 
17743     i                           NUMBER;
17744     j                           NUMBER;
17745     Lx_Chr_Id                   NUMBER;
17746 
17747     Li_TableIdx                 BINARY_INTEGER;
17748 
17749     L_EXCEP_UNEXPECTED_ERR      EXCEPTION;
17750 
17751   BEGIN
17752 
17753     Lx_Inp_Tbl_03               :=  p_clvl_id_tbl;
17754     Lx_Return_Status            :=  G_RET_STS_SUCCESS;
17755     Lx_Result                   :=  G_TRUE;
17756     Lv_SrvLine_Flag             := 'F';
17757     Lx_Validate_Eff             := 'F';
17758     Lx_Validate_Flag            := 'F';
17759     Lx_Chr_Id                   := -99999;
17760 
17761  -- Bug# 4735542
17762  -- OKC_CONTEXT.set_okc_org_context(p_org_id => NULL,p_organization_id => NULL);
17763  -- Ln_Organization_Id          := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
17764 
17765  -- Modified for 12.0 MOAC project (JVARGHES)
17766  -- Ln_Org_Id                   := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
17767  --
17768     G_GRACE_PROFILE_SET         := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
17769 
17770     if Lx_Inp_Rec_02.request_date is null then
17771 	    Lv_request_date := sysdate;
17772     end if;
17773 
17774     IF ((Lx_Inp_Rec_02.Contract_Number IS NOT NULL) --AND (Lx_Inp_Rec_02.Contract_Number_Modifier IS NOT NULL)
17775     ) THEN
17776 
17777      Get_Contracts_Id
17778         (P_Contract_Num           => Lx_Inp_Rec_02.Contract_Number
17779         ,P_Contract_Num_Modifier  => Lx_Inp_Rec_02.Contract_Number_Modifier
17780         ,X_Contracts              => Lx_Contracts_ContNum
17781         ,X_Result                 => Lx_Result
17782         ,X_Return_Status   	      => Lx_Return_Status);
17783 
17784       IF Lx_Result <> G_TRUE THEN
17785         RAISE L_EXCEP_UNEXPECTED_ERR;
17786       END IF;
17787 
17788       IF Lx_Contracts_ContNum.COUNT > 0 THEN
17789        Lx_Contract_Id  := Lx_Contracts_ContNum(1).Rx_Chr_Id;
17790       END IF;
17791 
17792     END IF;
17793 
17794     IF Lx_Inp_Tbl_03.COUNT > 0 THEN
17795 
17796     FOR i in Lx_Inp_Tbl_03.FIRST..Lx_Inp_Tbl_03.LAST  LOOP
17797 
17798      IF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_CUSTPROD' THEN
17799 
17800       Get_CovProd_Contracts
17801         (P_CovProd_Obj_Id         => Lx_Inp_Tbl_03(i).covlvl_id
17802         ,P_Organization_Id        => Ln_Organization_Id
17803         ,P_Org_Id                 => Ln_Org_Id
17804         ,X_CovProd_Contracts      => Lx_Contracts
17805         ,X_Result                 => Lx_Result
17806         ,X_Return_Status   	  => Lx_Return_Status);
17807 
17808       IF Lx_Result <> G_TRUE THEN
17809         RAISE L_EXCEP_UNEXPECTED_ERR;
17810       END IF;
17811 
17812      ELSE
17813 
17814       IF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_COVITEM' THEN
17815 
17816         Get_CovItem_Contracts
17817           (P_CovItem_Obj_Id         => Lx_Inp_Tbl_03(i).covlvl_id
17818           ,P_Organization_Id        => Ln_Organization_Id
17819           ,P_Party_Id               => Lx_Inp_Rec_02.Contract_Party_Id --Lx_Inp_Rec.Party_Id
17820           ,X_CovItem_Contracts      => Lx_Contracts
17821           ,X_Result                 => Lx_Result
17822           ,X_Return_Status   	    => Lx_Return_Status);
17823 
17824         IF Lx_Result <> G_TRUE THEN
17825           RAISE L_EXCEP_UNEXPECTED_ERR;
17826         END IF;
17827 
17828       END IF;
17829 
17830       IF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_COVSYST' THEN
17831 
17832         Get_CovSys_Contracts
17833           (P_CovSys_Obj_Id          => Lx_Inp_Tbl_03(i).covlvl_id
17834           ,P_Org_Id                 => Ln_Org_Id
17835           ,X_CovSys_Contracts       => Lx_Contracts_Temp
17836           ,X_Result                 => Lx_Result
17837           ,X_Return_Status   	    => Lx_Return_Status);
17838 
17839         IF Lx_Result <> G_TRUE THEN
17840           RAISE L_EXCEP_UNEXPECTED_ERR;
17841         END IF;
17842 
17843       ELSIF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_CUSTACCT' THEN
17844 
17845         Get_CovCust_Contracts
17846           (P_CovCust_Obj_Id         => Lx_Inp_Tbl_03(i).covlvl_id
17847           ,X_CovCust_Contracts      => Lx_Contracts_Temp
17848           ,X_Result                 => Lx_Result
17849           ,X_Return_Status   	    => Lx_Return_Status);
17850 
17851         IF Lx_Result <> G_TRUE THEN
17852           RAISE L_EXCEP_UNEXPECTED_ERR;
17853         END IF;
17854 
17855       ELSIF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_PARTYSITE' THEN
17856 
17857         Get_CovSite_Contracts
17858           (P_CovSite_Obj_Id         => Lx_Inp_Tbl_03(i).covlvl_id
17859           ,P_Org_Id                 => Ln_Org_Id
17860           ,X_CovSite_Contracts      => Lx_Contracts_Temp
17861           ,X_Result                 => Lx_Result
17862           ,X_Return_Status   	    => Lx_Return_Status);
17863 
17864         IF Lx_Result <> G_TRUE THEN
17865           RAISE L_EXCEP_UNEXPECTED_ERR;
17866         END IF;
17867 
17868       ELSIF Lx_Inp_Tbl_03(i).covlvl_code = 'OKX_PARTY' THEN
17869 
17870         Get_CovParty_Contracts
17871           (P_CovParty_Obj_Id        => Lx_Inp_Tbl_03(i).covlvl_id
17872           ,X_CovParty_Contracts     => Lx_Contracts_Temp
17873           ,X_Result                 => Lx_Result
17874           ,X_Return_Status   	    => Lx_Return_Status);
17875 
17876         IF Lx_Result <> G_TRUE THEN
17877           RAISE L_EXCEP_UNEXPECTED_ERR;
17878         END IF;
17879 
17880       END IF;
17881 
17882     END IF;
17883 
17884     Append_Contract_PlSql_Table
17885         (P_Input_Tab          => Lx_Contracts_Temp
17886         ,P_Append_Tab         => Lx_Contracts
17887         ,X_Output_Tab         => Lx_Contracts_Out
17888         ,X_Result             => Lx_Result
17889         ,X_Return_Status      => Lx_Return_Status);
17890 
17891       IF Lx_Result <> G_TRUE THEN
17892         RAISE L_EXCEP_UNEXPECTED_ERR;
17893       END IF;
17894 
17895     Lx_Contracts_Temp.DELETE;
17896     Lx_Contracts.DELETE;
17897 
17898     Lx_Contracts :=     Lx_Contracts_Out;
17899 
17900     Lx_Contracts_Out.DELETE;
17901 
17902     IF i = 1 THEN
17903         Lx_Contracts_Prev :=  Lx_Contracts;
17904     ELSE
17905 
17906         Append_Contract_PlSql_Table
17907         (P_Input_Tab          => Lx_Contracts_Prev
17908         ,P_Append_Tab         => Lx_Contracts
17909         ,X_Output_Tab         => Lx_Contracts_Out
17910         ,X_Result             => Lx_Result
17911         ,X_Return_Status      => Lx_Return_Status);
17912 
17913       IF Lx_Result <> G_TRUE THEN
17914         RAISE L_EXCEP_UNEXPECTED_ERR;
17915       END IF;
17916 
17917       Lx_Contracts_Prev.DELETE;
17918       Lx_Contracts_Prev := Lx_Contracts_Out;
17919 
17920      END IF;
17921 
17922     END LOOP;
17923 
17924     Lx_Contracts_Out := Lx_Contracts_Prev;
17925     Lx_Contracts_Prev.DELETE;
17926 
17927     Lx_Contracts.DELETE;
17928     Lx_Contracts := Lx_Contracts_Out;
17929     Lx_Contracts_Out.DELETE;
17930 
17931     IF Lx_Contracts.COUNT > 1 THEN
17932      Sort_Asc_ContRef_PlSql_Table
17933         (P_Input_Tab          => Lx_Contracts
17934         ,X_Output_Tab         => Lx_Contracts_Out
17935         ,X_Result             => Lx_Result
17936         ,X_Return_Status      => Lx_Return_Status);
17937 
17938      IF Lx_Result <> G_TRUE THEN
17939         RAISE L_EXCEP_UNEXPECTED_ERR;
17940      END IF;
17941     END IF;
17942 
17943 
17944     IF Lx_Contracts_Out.COUNT > 0 THEN
17945      FOR i in Lx_Contracts_Out.FIRST..Lx_Contracts_Out.LAST LOOP
17946        Lx_Contracts_Out(i).Rx_Pty_Id := Lx_Inp_Rec_02.Contract_Party_Id;
17947      END LOOP;
17948     END IF;
17949 
17950 
17951     IF Lx_Inp_Rec_02.Entitlement_Check_YN = 'Y' THEN
17952 
17953         Lx_Validate_Eff    := 'T';
17954         Lx_Validate_Flag   := 'T';
17955 
17956     ELSE
17957 
17958         Lx_Validate_Eff    := 'F';
17959         Lx_Validate_Flag   := 'F';
17960 
17961         IF Lx_Contracts_Out.COUNT > 0 THEN
17962 
17963           i                 := Lx_Contracts_Out.First;
17964           j                 := 1;
17965 
17966           WHILE i IS NOT NULL LOOP
17967 
17968                IF Lx_Chr_Id <> Lx_Contracts_Out(i).Rx_Chr_Id THEN
17969 
17970                    Lx_Contracts_02(j) := Lx_Contracts_Out(i);
17971                    Lx_Chr_Id          := Lx_Contracts_Out(i).Rx_Chr_Id;
17972 
17973                END IF;
17974 
17975                 i := Lx_Contracts_Out.Next(i);
17976                 j := j+1;
17977 
17978            END LOOP;
17979 
17980            Lx_Contracts_Out.DELETE;
17981            Lx_Contracts_Out := Lx_Contracts_02;
17982            Lx_Contracts_02.DELETE;
17983 
17984          END IF;
17985 
17986       END IF;
17987 
17988       IF Lx_Contracts_ContNum.COUNT > 0 THEN
17989 
17990       Lx_Chr_Id := Lx_Contracts_ContNum(1).Rx_Chr_Id;
17991 
17992         IF Lx_Contracts_Out.COUNT > 0 THEN
17993 
17994         i                 := Lx_Contracts_Out.First;
17995         j                 := 1;
17996 
17997         WHILE i IS NOT NULL LOOP
17998 
17999                IF Lx_Chr_Id = Lx_Contracts_Out(i).Rx_Chr_Id THEN
18000 
18001                    Lx_Contracts_02(j) := Lx_Contracts_Out(i);
18002 
18003                END IF;
18004 
18005                 i := Lx_Contracts_Out.Next(i);
18006                 j := j+1;
18007 
18008         END LOOP;
18009 
18010            Lx_Contracts_Out.DELETE;
18011            Lx_Contracts_Out := Lx_Contracts_02;
18012            Lx_Contracts_02.DELETE;
18013 
18014         END IF;
18015 
18016       END IF;
18017 
18018     ELSE --Lx_Inp_Tbl_03.COUNT = 0 case
18019 
18020         Lx_Validate_Eff    := 'F';
18021         Lx_Validate_Flag   := 'F';
18022 
18023     END IF; --Lx_Inp_Tbl_03.COUNT check ends
18024 
18025 
18026   IF ((Lx_Inp_Tbl_03.COUNT <> 0 and Lx_Contracts_Out.COUNT <> 0)
18027       OR
18028      (Lx_Inp_Tbl_03.COUNT = 0)) THEN
18029 
18030 
18031    Search_Contracts_01_Format
18032     (P_Contracts            =>  Lx_Contracts_Out
18033     ,P_Contract_rec         =>  Lx_Inp_Rec_02
18034     ,P_Request_Date         =>  Lv_Request_Date --Lx_Inp_Rec_02.Request_Date
18035     ,P_Contract_Id          =>  Lx_Contract_Id
18036     ,P_Validate_Eff         =>  Lx_Validate_Eff
18037     ,P_Validate_Flag        =>  Lx_Validate_Flag
18038     ,P_SrvLine_Flag         =>  'N'
18039     ,P_Sort_Key             =>  NULL
18040     ,X_Contracts_02         =>  Lx_Ent_Contracts
18041     ,X_Result               =>  Lx_Result
18042     ,X_Return_Status   	    =>  Lx_Return_Status);
18043 
18044     IF Lx_Result <> G_TRUE THEN
18045         RAISE L_EXCEP_UNEXPECTED_ERR;
18046     END IF;
18047 
18048     X_Contract_tbl        := Lx_Ent_Contracts;
18049     X_Return_Status       := Lx_Return_Status;
18050 
18051   ELSE
18052 
18053  --   X_Contract_tbl        := Lx_Ent_Contracts;
18054     X_Return_Status       := Lx_Return_Status;
18055 
18056   END IF;
18057 
18058 
18059 EXCEPTION
18060 
18061   WHEN OTHERS THEN
18062 
18063       OKC_API.SET_MESSAGE
18064         (P_App_Name	  => G_APP_NAME_OKC
18065 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
18066 	,P_Token1	  => G_SQLCODE_TOKEN
18067 	,P_Token1_Value	  => SQLCODE
18068 	,P_Token2	  => G_SQLERRM_TOKEN
18069 	,P_Token2_Value   => SQLERRM);
18070 
18071       OKC_API.SET_MESSAGE
18072         (P_App_Name	  => G_APP_NAME_OKC
18073 	,P_Msg_Name	  => G_DEBUG_TOKEN
18074 	,P_Token1	  => G_PACKAGE_TOKEN
18075 	,P_Token1_Value	  => G_PKG_NAME
18076 	,P_Token2	  => G_PROGRAM_TOKEN
18077 	,P_Token2_Value   => 'Search_Contracts');
18078 
18079    --  X_Result            := G_FALSE;
18080      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
18081 
18082 END  Search_Contracts;
18083 
18084 PROCEDURE Get_Contracts_Expiration
18085     (p_api_version              IN  Number
18086     ,p_init_msg_list            IN  Varchar2
18087     ,p_contract_id              IN  Number
18088     ,x_return_status            out nocopy Varchar2
18089     ,x_msg_count                out nocopy Number
18090     ,x_msg_data                 out nocopy Varchar2
18091     ,x_contract_end_date        out nocopy date
18092     ,x_Contract_Grace_Duration  out nocopy number
18093     ,x_Contract_Grace_Period    out nocopy VARCHAR2)
18094 
18095     IS
18096 
18097     CURSOR KHDR_Date IS
18098     select  end_date
18099     from    OKC_K_HEADERS_ALL_B  -- OKC_K_HEADERS_B   -- Modified for 12.0 MOAC project (JVARGHES)
18100     where   id = p_contract_id;
18101 
18102     Lx_CHR_Id	                CONSTANT Gx_OKS_Id := p_contract_id;
18103 
18104     Lx_Result                   Gx_Boolean;
18105     Lx_Return_Status            Gx_Ret_Sts;
18106 
18107     L_EXCEP_UNEXPECTED_ERR      EXCEPTION;
18108 
18109     G_GRACE_PROFILE_SET         VARCHAR2(1);
18110 
18111 BEGIN
18112 
18113     Lx_Result                   := G_TRUE;
18114     Lx_Return_Status            := G_RET_STS_SUCCESS;
18115 
18116     G_GRACE_PROFILE_SET         := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
18117 
18118   for KHDR_Date_rec in KHDR_Date loop
18119 
18120     x_contract_end_date := KHDR_Date_rec.end_date;
18121 
18122   end loop;
18123 
18124 IF	(G_GRACE_PROFILE_SET = 'Y') THEN
18125 
18126   Get_Contract_Grace
18127     (P_Contract_Id              => p_contract_id
18128     ,P_Set_ExcepionStack        => G_FALSE
18129     ,x_grace_period             => x_Contract_Grace_Period
18130     ,x_grace_duration           => x_Contract_Grace_Duration
18131     ,X_Result                   => Lx_Result
18132     ,X_Return_Status            => Lx_Return_Status);
18133 
18134   IF Lx_Result <> G_TRUE THEN
18135      RAISE L_EXCEP_UNEXPECTED_ERR;
18136   END IF;
18137 
18138 END IF;
18139 
18140 EXCEPTION
18141 
18142   WHEN OTHERS THEN
18143 
18144       OKC_API.SET_MESSAGE
18145         (P_App_Name	  => G_APP_NAME_OKC
18146 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
18147 	,P_Token1	  => G_SQLCODE_TOKEN
18148 	,P_Token1_Value	  => SQLCODE
18149 	,P_Token2	  => G_SQLERRM_TOKEN
18150 	,P_Token2_Value   => SQLERRM);
18151 
18152       OKC_API.SET_MESSAGE
18153         (P_App_Name	  => G_APP_NAME_OKC
18154 	,P_Msg_Name	  => G_DEBUG_TOKEN
18155 	,P_Token1	  => G_PACKAGE_TOKEN
18156 	,P_Token1_Value	  => G_PKG_NAME
18157 	,P_Token2	  => G_PROGRAM_TOKEN
18158 	,P_Token2_Value   => 'Get_Contracts_Expiration');
18159 
18160    --  X_Result            := G_FALSE;
18161      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
18162 
18163 END  Get_Contracts_Expiration;
18164 
18165 PROCEDURE Get_Service_PO
18166     (P_CHR_Id                   IN  Gx_OKS_Id
18167     ,P_Set_ExcepionStack        IN  Gx_Boolean
18168     ,X_Service_PO               out nocopy VARCHAR2
18169     ,X_Service_PO_required      out nocopy VARCHAR2
18170     ,X_Result                   out nocopy Gx_Boolean
18171     ,X_Return_Status            out nocopy Gx_Ret_Sts)
18172   IS
18173 
18174 
18175 
18176     CURSOR Lx_Csr_SvcPO(Cx_CHR_Id IN Gx_OKS_Id) IS
18177 				SELECT service_po_number,service_po_required
18178 				FROM	OKS_K_Headers_B CHR
18179 				WHERE	CHR.chr_Id = Cx_CHR_Id;
18180 
18181     Lx_CHR_Id	                CONSTANT Gx_OKS_Id := P_CHR_Id;
18182     Lx_Set_ExcepionStack        CONSTANT Gx_Boolean := P_Set_ExcepionStack;
18183 
18184     Lx_Service_PO               Oks_K_headers_b.service_po_number%TYPE;
18185     Lx_Service_PO_Required      Oks_K_headers_b.service_po_required%TYPE;
18186 
18187 
18188     Lx_Result                   Gx_Boolean;
18189     Lx_Return_Status            Gx_Ret_Sts;
18190 
18191     L_EXCEP_NO_DATA_FOUND       EXCEPTION;
18192 
18193   BEGIN
18194 
18195     Lx_Result                   := G_TRUE;
18196     Lx_Return_Status            := G_RET_STS_SUCCESS;
18197 
18198     OPEN Lx_Csr_SvcPO(Lx_CHR_Id);
18199     FETCH Lx_Csr_SvcPO INTO Lx_Service_PO,Lx_Service_PO_Required;
18200 
18201     IF Lx_Csr_SvcPO%NOTFOUND THEN
18202 
18203       CLOSE Lx_Csr_SvcPO;
18204       RAISE L_EXCEP_NO_DATA_FOUND;
18205 
18206     END IF;
18207 
18208     CLOSE Lx_Csr_SvcPO;
18209 
18210     X_Service_PO            :=  Lx_Service_PO;
18211     X_Service_PO_Required   :=  Lx_Service_PO_Required;
18212 
18213     X_Result                := Lx_Result;
18214     X_Return_Status         := Lx_Return_Status;
18215 
18216   EXCEPTION
18217 
18218     WHEN L_EXCEP_NO_DATA_FOUND THEN
18219 
18220       Lx_Result   := G_FALSE;
18221 
18222       IF Lx_Set_ExcepionStack = G_TRUE THEN
18223 
18224         OKC_API.SET_MESSAGE
18225           (p_app_name	   => G_APP_NAME_OKC
18226 	  ,p_msg_name	   => G_INVALID_VALUE
18227 	  ,p_token1	   => G_COL_NAME_TOKEN
18228 	  ,p_token1_value  => 'Service PO');
18229 
18230         Lx_Return_Status  := G_RET_STS_ERROR;
18231 
18232       END IF;
18233 
18234       X_Result            := Lx_Result;
18235       X_Return_Status     := Lx_Return_Status;
18236 
18237     WHEN OTHERS THEN
18238 
18239       IF Lx_Csr_SvcPO%ISOPEN THEN
18240         CLOSE Lx_Csr_SvcPO;
18241       END IF;
18242 
18243       OKC_API.SET_MESSAGE
18244         (P_App_Name	  => G_APP_NAME_OKC
18245 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
18246 	,P_Token1	  => G_SQLCODE_TOKEN
18247 	,P_Token1_Value	  => SQLCODE
18248 	,P_Token2	  => G_SQLERRM_TOKEN
18249 	,P_Token2_Value   => SQLERRM);
18250 
18251       OKC_API.SET_MESSAGE
18252         (P_App_Name	  => G_APP_NAME_OKC
18253 	,P_Msg_Name	  => G_DEBUG_TOKEN
18254 	,P_Token1	  => G_PACKAGE_TOKEN
18255 	,P_Token1_Value	  => G_PKG_NAME
18256 	,P_Token2	  => G_PROGRAM_TOKEN
18257 	,P_Token2_Value   => 'Get_Service_PO');
18258 
18259       X_Result            := G_FALSE;
18260       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
18261 
18262 END Get_Service_PO;
18263 
18264 PROCEDURE Get_Contract_Grace
18265     (P_Contract_Id              IN number
18266     ,P_Set_ExcepionStack        IN  Gx_Boolean
18267     ,x_grace_period             OUT NOCOPY varchar2
18268     ,x_grace_duration           OUT NOCOPY number
18269     ,X_Result                   out nocopy Gx_Boolean
18270     ,X_Return_Status            out nocopy Gx_Ret_Sts)
18271     IS
18272 
18273   CURSOR Lx_Csr_HDR_Grace(Cx_HDR_Id IN Gx_OKS_Id) IS
18274     SELECT Grace_Duration Duration
18275           ,Grace_Period TimeUnit
18276       FROM Oks_K_Headers_B OKH
18277      WHERE OKH.chr_Id = Cx_HDR_Id;
18278 
18279     Lx_CHR_Id	                CONSTANT Gx_OKS_Id  := P_Contract_id;
18280     Lx_Set_ExcepionStack        CONSTANT Gx_Boolean := P_Set_ExcepionStack;
18281 
18282 --    Lx_Service_PO               Okc_Rules_B.Rule_Information1%TYPE;
18283 
18284     Lx_Result                   Gx_Boolean;
18285     Lx_Return_Status            Gx_Ret_Sts;
18286 
18287     L_EXCEP_NO_DATA_FOUND       EXCEPTION;
18288 
18289 BEGIN
18290 
18291     Lx_Result                   := G_TRUE;
18292     Lx_Return_Status            := G_RET_STS_SUCCESS;
18293 
18294 --   IF G_GRACE_PROFILE_SET = 'Y' then
18295     FOR Idx in Lx_Csr_HDR_Grace(Lx_CHR_Id) LOOP
18296 
18297     x_grace_period      := Idx.TimeUnit;
18298     x_grace_duration    := Idx.Duration;
18299 
18300     END LOOP;
18301 --   END IF;
18302 
18303    X_Result            := Lx_Result;
18304    X_Return_Status     := Lx_Return_Status;
18305 
18306  EXCEPTION
18307 
18308    WHEN OTHERS THEN
18309 
18310 
18311       OKC_API.SET_MESSAGE
18312         (P_App_Name	  => G_APP_NAME_OKC
18313 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
18314 	,P_Token1	  => G_SQLCODE_TOKEN
18315 	,P_Token1_Value	  => SQLCODE
18316 	,P_Token2	  => G_SQLERRM_TOKEN
18317 	,P_Token2_Value   => SQLERRM);
18318 
18319       OKC_API.SET_MESSAGE
18320         (P_App_Name	  => G_APP_NAME_OKC
18321 	,P_Msg_Name	  => G_DEBUG_TOKEN
18322 	,P_Token1	  => G_PACKAGE_TOKEN
18323 	,P_Token1_Value	  => G_PKG_NAME
18324 	,P_Token2	  => G_PROGRAM_TOKEN
18325 	,P_Token2_Value   => 'Get_Contract_Grace');
18326 
18327       X_Result            := G_FALSE;
18328       X_Return_Status     := G_RET_STS_UNEXP_ERROR;
18329 
18330 
18331 END Get_Contract_Grace;
18332 
18333 --================================================================
18334 
18335 PROCEDURE VALIDATE_CONTRACT_LINE
18336     (p_api_version          IN  NUMBER
18337     ,p_init_msg_list        IN  VARCHAR2
18338     ,p_contract_line_id     IN  NUMBER
18339     ,p_busiproc_id          IN  NUMBER
18340     ,p_request_date         IN  DATE
18341     ,p_covlevel_tbl_in      IN covlevel_tbl_type
18342     ,p_verify_combination   IN VARCHAR2
18343     ,x_return_status        OUT nocopy Varchar2
18344     ,x_msg_count            OUT nocopy Number
18345     ,x_msg_data             OUT nocopy Varchar2
18346     ,x_covlevel_tbl_out     OUT NOCOPY  covlevel_tbl_type
18347     ,x_combination_valid    OUT NOCOPY VARCHAR2)
18348 
18349 
18350 
18351     IS
18352 
18353     Lx_Result                 VARCHAR2(1);
18354     x_result                  VARCHAR2(1);
18355     Lx_Return_Status          VARCHAR2(1);
18356 
18357     L_EXCEP_NULL_VALUE          EXCEPTION;
18358     EXCEPTION_HALT_VALIDATION   EXCEPTION;
18359     L_EXCEP_UNEXPECTED_ERR      EXCEPTION;
18360     Lx_Set_ExcepionStack        VARCHAR2(1);
18361 
18362      l_busiproc_id           VARCHAR2(30);
18363      l_request_date          DATE;
18364      l_contract_line_id      NUMBER;
18365      l_busiproc_match        VARCHAR2(1);
18366      j                       NUMBER ;
18367 
18368      Lx_Party_Id             Okx_Customer_Accounts_V.Party_Id%TYPE;
18369      Lx_Product_CovLevels    OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18370      Lx_Item_CovLevels       OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18371      Lx_System_CovLevels     OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18372      Lx_Cust_CovLevels       OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18373      Lx_Site_CovLevels       OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18374      Lx_Party_CovLevels      OKS_ENTITLEMENTS_PVT.GT_ContItem_Ref;
18375      l_jtot_object1_code     VARCHAR2(30);
18376 
18377      prod_index              NUMBER;
18378      system_index            NUMBER;
18379      l_check_system          VARCHAR2(1);
18380      l_check_custprod        VARCHAR2(1);
18381      partysite_index         NUMBER;
18382      l_check_site            VARCHAR2(1);
18383      l_check_party           VARCHAR2(1);
18384      party_index             NUMBER;
18385      l_org_id                NUMBER;
18386      l_inv_org_id            NUMBER;
18387 
18388      Ln_Organization_Id       NUMBER;
18389      Ln_Org_Id                NUMBER;
18390      item_index              NUMBER;
18391      l_check_item            VARCHAR2(1);
18392      l_check_cust            VARCHAR2(1);
18393      custacct_index          NUMBER;
18394      k                       NUMBER;
18395 
18396      CURSOR CUR_GET_ORG_ID(l_contract_line_id IN NUMBER) IS
18397      SELECT hdr.AUTHORING_ORG_ID, hdr.INV_ORGANIZATION_ID
18398      FROM OKC_K_HEADERS_ALL_B hdr, OKC_K_LINES_B lines
18399      WHERE lines.id = l_contract_line_id
18400      AND   lines.chr_id = hdr.id ;
18401 
18402 
18403      FUNCTION VALIDATE_BUSINESS_PROCESS(P_CONTRACT_LINE_ID IN NUMBER
18404                                         ,P_BUSIPROC_ID     IN VARCHAR2
18405                                         ,P_EFFECTIVE_DATE  IN DATE) RETURN VARCHAR2 IS
18406 
18407 
18408 -- Commented out by JVARGHES on Apr 12, 2005
18409 -- For the fix of bug# 4282785
18410 /*
18411       CURSOR CUR_GET_BP(p_contract_line_id IN NUMBER, p_effective_date IN DATE) IS
18412        SELECT   lines1.chr_id  chr_id,
18413                 lines2.id bp_line_id,
18414                 lines2.start_date start_date,
18415                 lines2.end_date end_date,
18416                 items.object1_id1
18417        FROM     OKC_K_LINES_B lines1,
18418                 OKC_K_LINES_B lines2,
18419                 OKC_K_LINES_B lines3,
18420                 OKC_K_ITEMS   items
18421         WHERE   lines1.id  = p_contract_line_id
18422         AND     lines2.cle_id = lines1.id
18423         AND     lines2.lse_id IN (2,15,20)
18424         AND     lines3.cle_id = lines2.id
18425         AND     lines3.lse_id IN (3,16,21)
18426         AND     items.cle_id = lines3.id
18427         AND     items.dnz_chr_id = lines3.dnz_chr_id
18428         AND     items.jtot_object1_code = 'OKX_BUSIPROC'
18429         AND     items.object1_id1 = p_busiproc_id
18430         and     items.object1_id2 = '#' -- new where clause added to address performance bug 3755019
18431         AND     trunc(p_effective_date) BETWEEN NVL(lines3.start_date, trunc(sysdate))
18432                                         AND     NVL(lines3.end_date, trunc(sysdate)) ;
18433 */
18434 
18435 -- Modified by JVARGHES on Apr 12, 2005
18436 -- For the fix of bug# 4282785
18437 
18438 --
18439 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
18440 --
18441 
18442       CURSOR CUR_GET_BP(p_contract_line_id IN NUMBER) IS
18443        SELECT /*+ ordered use_nl(lines1,KSL,lines3,items) index(items okc_k_items_n1) */ -- Bug Fix:5694209
18444                decode(KSL.Standard_Cov_YN,'Y', lines1.start_date,lines3.start_date) start_date
18445               ,decode(KSL.Standard_Cov_YN,'Y', lines1.end_date,lines3.end_date) end_date
18446               , lines3.id bpl_id
18447               , ksl.Standard_Cov_YN Standard_Cov_YN
18448        FROM     OKC_K_LINES_B lines1,
18449                 OKS_K_LINES_B KSL,
18450                 OKC_K_LINES_B lines3,
18451                 OKC_K_ITEMS   items
18452         WHERE   lines1.id = p_contract_line_id
18453         AND     lines1.lse_id IN (1,14,19)
18454         and     ksl.cle_id  = lines1.id
18455         AND     lines3.cle_id = KSL.Coverage_Id
18456         AND     lines3.lse_id IN (3,16,21)
18457         AND     items.cle_id = lines3.id
18458         AND     items.dnz_chr_id = lines3.dnz_chr_id
18459         AND     items.jtot_object1_code = 'OKX_BUSIPROC'
18460         AND     items.object1_id1 = p_busiproc_id
18461         and     items.object1_id2 = '#' -- new where clause added to address performance bug 3755019
18462         AND     ROWNUM <= 1;
18463 
18464 --
18465 
18466      l_busiproc_id             VARCHAR2(30);
18467      l_effective_date          DATE;
18468      l_contract_line_id        NUMBER;
18469      x_busiproc_match          VARCHAR2(1);
18470 
18471 
18472       --
18473       -- Modified for 12.0 Coverage Rearch project (JVARGHES)
18474       --
18475 
18476       Ld_BPL_Start	       DATE;
18477       Ln_BPL_OFS_Duration	 NUMBER;
18478       Lv_BPL_OFS_UOM           VARCHAR2(100);
18479 
18480       Lx_Return_Status         VARCHAR2(10);
18481 
18482       L_EXCEP_NO_DATA_FOUND    EXCEPTION;
18483       --
18484       --
18485 
18486     BEGIN
18487 
18488       x_busiproc_match := 'N';
18489 
18490       l_busiproc_id         := P_BUSIPROC_ID ;
18491       l_effective_date      := P_EFFECTIVE_DATE ;
18492       l_contract_line_id    := P_CONTRACT_LINE_ID ;
18493 
18494 
18495 -- Comented out by JVARGHES on Apr 12, 2005
18496 -- For the fix of bug# 4282785
18497 
18498 /*
18499      FOR bp_rec IN CUR_GET_BP(l_contract_line_id, l_effective_date)
18500       LOOP
18501       x_busiproc_match := 'Y' ;
18502      END LOOP ;
18503 */
18504 
18505 -- Modified by JVARGHES on Apr 12, 2005
18506 -- For the fix of bug# 4282785
18507 
18508 --
18509 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
18510 --
18511 --     OPEN CUR_GET_BP(p_contract_line_id  => l_contract_line_id, p_effective_date => l_effective_date);
18512 --     FETCH CUR_GET_BP INTO x_busiproc_match;
18513 --
18514 --     IF CUR_GET_BP%FOUND THEN
18515 --       x_busiproc_match := 'Y';
18516 --     ELSE
18517 --       x_busiproc_match := 'N';
18518 --     END IF;
18519 --
18520 --     CLOSE CUR_GET_BP;
18521 --
18522 --
18523 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
18524 --
18525 
18526       x_busiproc_match := 'N';
18527 
18528       FOR bp_rec IN CUR_GET_BP(p_contract_line_id  => l_contract_line_id)
18529       LOOP
18530 
18531           IF bp_rec.Standard_Cov_YN = 'Y' THEN
18532 
18533              Get_BP_Line_Start_Offset
18534               (P_BPL_Id	        => bp_rec.BPL_Id
18535               ,P_SVL_Start	        => bp_rec.start_date
18536               ,X_BPL_OFS_Start	  => Ld_BPL_Start
18537               ,X_BPL_OFS_Duration	  => Ln_BPL_OFS_Duration
18538               ,X_BPL_OFS_UOM	  => Lv_BPL_OFS_UOM
18539               ,X_Return_Status 	  => Lx_Return_Status);
18540 
18541              IF Lx_Return_Status<> G_RET_STS_SUCCESS  THEN
18542                RAISE L_EXCEP_NO_DATA_FOUND;
18543              END IF;
18544 
18545           ELSE
18546 
18547              Ld_BPL_Start := bp_rec.start_date;
18548 
18549           END IF;
18550 
18551           IF l_effective_date between NVL(Ld_BPL_Start,trunc(sysdate))
18552                                    AND  NVL(bp_rec.end_date, trunc(sysdate))  THEN
18553             x_busiproc_match := 'Y';
18554             EXIT;
18555 
18556           END IF;
18557 
18558       END LOOP;
18559 
18560 --
18561 --
18562       RETURN x_busiproc_match ;
18563 
18564     END VALIDATE_BUSINESS_PROCESS;
18565 
18566 
18567     FUNCTION VALIDATE_COVLEVELS(p_contract_line_id IN NUMBER,
18568                               p_object1_id1      IN VARCHAR2,
18569                               p_object1_id2      IN VARCHAR2,
18570                               p_object_code      IN VARCHAR2)
18571                               RETURN VARCHAR2 IS
18572 
18573         CURSOR CUR_GET_COVLEVELS(l_contract_line_id IN NUMBER, l_object1_id1 IN VARCHAR2, l_object1_id2 IN VARCHAR2,
18574                              l_object_code IN VARCHAR2) IS
18575 
18576             SELECT 'X'
18577             FROM    OKC_K_LINES_B lines1,
18578                     OKC_K_LINES_B lines2,
18579                     OKC_K_ITEMS  items
18580               WHERE lines1.id                 = l_contract_line_id
18581                 AND lines2.cle_id             = lines1.id
18582                 AND lines2.dnz_chr_id         = lines1.chr_id
18583                 AND items.cle_id              = lines2.id
18584                 AND items.object1_id1         = l_object1_id1
18585                 AND items.object1_id2         = l_object1_id2
18586                 AND items.jtot_object1_code   = l_object_code ;
18587 
18588 
18589         lx_contract_line_id    NUMBER;
18590         lx_object1_id1         VARCHAR2(40);
18591         lx_object1_id2         VARCHAR2(200);
18592         lx_object_code         VARCHAR2(30);
18593         x_covlevel_exist       VARCHAR2(1);
18594         l_dummy                VARCHAR2(1);
18595 
18596         BEGIN
18597 
18598           lx_contract_line_id := p_contract_line_id;
18599           lx_object1_id1      := p_object1_id1;
18600           lx_object1_id2      := p_object1_id2;
18601           lx_object_code      := p_object_code;
18602 
18603           OPEN CUR_GET_COVLEVELS(lx_contract_line_id, lx_object1_id1,lx_object1_id2,lx_object_code);
18604           FETCH CUR_GET_COVLEVELS INTO l_dummy;
18605           CLOSE CUR_GET_COVLEVELS;
18606 
18607           IF l_dummy = 'X' THEN
18608             x_covlevel_exist := 'Y';
18609           ELSE
18610             x_covlevel_exist := 'N';
18611           END IF ;
18612 
18613          RETURN x_covlevel_exist ;
18614 
18615     END VALIDATE_COVLEVELS ;
18616 
18617 
18618    BEGIN
18619 
18620     Lx_Result                 := OKC_API.G_TRUE;
18621     x_result                  := OKC_API.G_TRUE;
18622     Lx_Set_ExcepionStack      := OKC_API.G_TRUE;
18623 
18624          -- check that the p_contract_line_id is not null
18625 
18626     OKS_ENTITLEMENTS_PVT.Validate_Required_NumValue
18627       (P_Num_Value              => p_contract_line_id
18628       ,P_Set_ExcepionStack      => Lx_Set_ExcepionStack
18629       ,P_ExcepionMsg            => 'Contract Line'
18630       ,X_Result                 => Lx_result
18631       ,X_Return_Status   	    => Lx_Return_Status);
18632 
18633     IF Lx_result <> G_TRUE  THEN
18634       RAISE L_EXCEP_NULL_VALUE;
18635     END IF;
18636 
18637     OPEN  CUR_GET_ORG_ID(p_contract_line_id);
18638     FETCH CUR_GET_ORG_ID  INTO  l_org_id, l_inv_org_id;
18639     CLOSE CUR_GET_ORG_ID;
18640 
18641    IF p_busiproc_id IS NOT NULL THEN
18642     l_busiproc_id       := TO_CHAR(p_busiproc_id) ;
18643     l_request_date      := nvl(p_request_date,sysdate);
18644     l_contract_line_id  := p_contract_line_id ;
18645 
18646    l_busiproc_match:=  VALIDATE_BUSINESS_PROCESS(P_CONTRACT_LINE_ID  => l_contract_line_id,
18647                                                  P_BUSIPROC_ID       => l_busiproc_id,
18648                                                  P_EFFECTIVE_DATE    => l_request_date);
18649 
18650 
18651 
18652   -- if the call TO above function returns 'N', update the input cov level tbl to N
18653 
18654     IF l_busiproc_match = 'N' THEN
18655 
18656      x_covlevel_tbl_out := p_covlevel_tbl_in ;
18657 
18658      j:= x_covlevel_tbl_out.FIRST;
18659 
18660      FOR covlevel_rec in x_covlevel_tbl_out.FIRST..x_covlevel_tbl_out.LAST
18661      LOOP
18662         x_covlevel_tbl_out(j).covered_yn  := 'N';
18663         j:= j + 1 ;
18664      END LOOP ;
18665 
18666      IF p_verify_combination = 'Y' THEN
18667             x_combination_valid:= 'N';
18668      END IF ;
18669 
18670      RAISE EXCEPTION_HALT_VALIDATION;
18671 
18672     END IF;
18673 
18674     IF (p_busiproc_id IS NULL) OR
18675        (p_busiproc_id IS NOT NULL and l_busiproc_match = 'Y') THEN -- CHECK THE INPUT COVLEVEL TBL fucntion return Y
18676 
18677       IF p_covlevel_tbl_in.COUNT > 0 THEN
18678 
18679         Ln_Organization_Id          := l_inv_org_id ;
18680         Ln_Org_Id                   := l_org_id;
18681 
18682         x_covlevel_tbl_out := p_covlevel_tbl_in ;
18683 
18684         FOR i in  p_covlevel_tbl_in.FIRST .. p_covlevel_tbl_in.LAST LOOP
18685 
18686           IF p_covlevel_tbl_in(i).covlevel_code = 'OKX_CUSTPROD' THEN
18687 
18688             l_jtot_object1_code := 'OKX_CUSTPROD';
18689 
18690             OKS_ENTITLEMENTS_PVT.Get_Product_CovLevels
18691     		     (P_CovProd_Obj_Id      => p_covlevel_tbl_in(i).covlevel_id, -- l_jtot_object1_code,
18692 	            P_Organization_Id     => Ln_Organization_Id,
18693                   P_Org_Id              => Ln_Org_Id,
18694                   X_Party_Id            => Lx_Party_Id,
18695                   X_Product_CovLevels   => Lx_Product_CovLevels,
18696                   X_Result              => Lx_Result,
18697                   X_Return_Status       => Lx_Return_Status);
18698 
18699                IF Lx_Result <> G_TRUE THEN
18700        	        	RAISE L_EXCEP_UNEXPECTED_ERR;
18701         	   END IF;
18702 
18703         	   IF LX_PRODUCT_COVLEVELS.COUNT > 0 THEN
18704 
18705 		         FOR prod_index in Lx_Product_CovLevels.FIRST .. Lx_Product_CovLevels.LAST LOOP
18706 
18707                         l_check_custprod := VALIDATE_COVLEVELS(p_contract_line_id,
18708                                                LX_PRODUCT_COVLEVELS(prod_index).RX_OBJ1ID1,
18709                                                LX_PRODUCT_COVLEVELS(prod_index).RX_OBJ1ID2,
18710                                                LX_PRODUCT_COVLEVELS(prod_index).RX_OBJCODE);
18711 
18712                         IF l_check_custprod = 'Y' THEN
18713                              x_covlevel_tbl_out(i).covered_yn :='Y';
18714                              EXIT ;
18715                         ELSE
18716                              x_covlevel_tbl_out(i).covered_yn :='N';
18717                         END IF ;
18718 
18719                  END LOOP ; -- END LOOP FOR LX_PRODUCT_COVLEVELS
18720 
18721                 END IF ; -- END IF LX_PRODUCT_COVLEVELS.COUNT > 0
18722 
18723           ELSIF  p_covlevel_tbl_in(i).covlevel_code = 'OKX_COVITEM' THEN
18724 
18725                 l_jtot_object1_code := 'OKX_COVITEM';
18726 
18727                 OKS_ENTITLEMENTS_PVT.Get_Item_CovLevels(P_CovItem_Obj_Id      => p_covlevel_tbl_in(i).covlevel_id,
18728                                                      P_Organization_Id     => Ln_Organization_Id,
18729                                                      X_Item_CovLevels      => Lx_Item_CovLevels,
18730                                                      X_Result              => Lx_Result,
18731                                                      X_Return_Status       => Lx_Return_Status);
18732 
18733 
18734                 IF Lx_Result <> G_TRUE THEN
18735                    RAISE L_EXCEP_UNEXPECTED_ERR;
18736                 END IF;
18737 
18738                 IF LX_ITEM_COVLEVELS.COUNT > 0 THEN
18739 
18740                    FOR item_index in Lx_Item_CovLevels.FIRST .. Lx_Item_CovLevels.LAST  LOOP
18741 
18742                       l_check_item :=   VALIDATE_COVLEVELS(p_contract_line_id,
18743                                                LX_ITEM_COVLEVELS(item_index).RX_OBJ1ID1,
18744                                                LX_ITEM_COVLEVELS(item_index).RX_OBJ1ID2,
18745                                                LX_ITEM_COVLEVELS(item_index).RX_OBJCODE);
18746 
18747                         IF l_check_item = 'Y' THEN
18748                            x_covlevel_tbl_out(i).covered_yn :='Y';
18749                            EXIT ;
18750                         ELSE
18751                             x_covlevel_tbl_out(i).covered_yn :='N';
18752                         END IF ;
18753 
18754                     END LOOP ;
18755 
18756                 END IF ;  -- END IF FOR LX_ITEM_COVLEVELS.COUNT > 0
18757 
18758           ELSIF  p_covlevel_tbl_in(i).covlevel_code = 'OKX_COVSYST' THEN
18759 
18760                 l_jtot_object1_code := 'OKX_COVSYST';
18761 
18762                 OKS_ENTITLEMENTS_PVT.Get_System_CovLevels(P_CovSys_Obj_Id       => p_covlevel_tbl_in(i).covlevel_id,
18763                                                                P_Org_Id              => Ln_Org_Id,
18764                                                                X_System_CovLevels    => Lx_System_CovLevels,
18765                                                                X_Result              => Lx_Result,
18766                                                                X_Return_Status       => Lx_Return_Status );
18767 
18768                 IF Lx_Result <> G_TRUE THEN
18769                    RAISE L_EXCEP_UNEXPECTED_ERR;
18770                 END IF;
18771 
18772                 IF LX_SYSTEM_COVLEVELS.COUNT > 0 THEN
18773 
18774                      FOR system_index in Lx_System_CovLevels.FIRST .. Lx_System_CovLevels.LAST  LOOP
18775 
18776                          l_check_system := VALIDATE_COVLEVELS(p_contract_line_id,
18777                                                LX_SYSTEM_COVLEVELS(system_index).RX_OBJ1ID1,
18778                                                LX_SYSTEM_COVLEVELS(system_index).RX_OBJ1ID2,
18779                                                LX_SYSTEM_COVLEVELS(system_index).RX_OBJCODE);
18780 
18781                          IF l_check_system = 'Y' THEN
18782                               x_covlevel_tbl_out(i).covered_yn :='Y';
18783                              EXIT ;
18784                          ELSE
18785                              x_covlevel_tbl_out(i).covered_yn :='N';
18786                          END IF ;
18787 
18788                      END LOOP ;
18789 
18790                  END IF ;  -- END IF FOR LX_SYSTEM_COVLEVELS.COUNT > 0
18791 
18792           ELSIF  p_covlevel_tbl_in(i).covlevel_code = 'OKX_CUSTACCT' THEN
18793 
18794                  l_jtot_object1_code := 'OKX_CUSTACCT';
18795 
18796                  OKS_ENTITLEMENTS_PVT.Get_Customer_CovLevels(P_CovCust_Obj_Id      => p_covlevel_tbl_in(i).covlevel_id,
18797                                                                      X_Party_Id            => Lx_Party_Id,
18798                                                                      X_Customer_CovLevels  => Lx_Cust_CovLevels,
18799                                                                      X_Result              => Lx_Result,
18800                                                                      X_Return_Status       => Lx_Return_Status );
18801                  IF Lx_Result <> G_TRUE THEN
18802                       RAISE L_EXCEP_UNEXPECTED_ERR;
18803                  END IF;
18804 
18805                  IF LX_CUST_COVLEVELS.COUNT > 0 THEN
18806 
18807                      FOR custacct_index in Lx_Cust_CovLevels.FIRST .. Lx_Cust_CovLevels.LAST LOOP
18808 
18809                          l_check_cust := VALIDATE_COVLEVELS(p_contract_line_id,
18810                                                LX_CUST_COVLEVELS(custacct_index).RX_OBJ1ID1,
18811                                                LX_CUST_COVLEVELS(custacct_index).RX_OBJ1ID2,
18812                                                LX_CUST_COVLEVELS(custacct_index).RX_OBJCODE);
18813 
18814                         IF l_check_cust = 'Y' THEN
18815                             x_covlevel_tbl_out(i).covered_yn :='Y';
18816                             EXIT ;
18817                         ELSE
18818                             x_covlevel_tbl_out(i).covered_yn :='N';
18819                         END IF ;
18820 
18821                      END LOOP ;
18822 
18823                   END IF ;  -- END IF FOR LX_CUST_COVLEVELS.COUNT > 0
18824 
18825           ELSIF   p_covlevel_tbl_in(i).covlevel_code = 'OKX_PARTYSITE' THEN
18826 
18827                   l_jtot_object1_code := 'OKX_PARTYSITE';
18828 
18829                   OKS_ENTITLEMENTS_PVT.Get_Site_CovLevels(P_CovSite_Obj_Id      => p_covlevel_tbl_in(i).covlevel_id,
18830                                                              P_Org_Id              => Ln_Org_Id,
18831                                                              X_Site_CovLevels      => Lx_Site_CovLevels,
18832                                                              X_Result              => Lx_Result,
18833                                                              X_Return_Status       => Lx_Return_Status );
18834 
18835                   IF Lx_Result <> G_TRUE THEN
18836                          RAISE L_EXCEP_UNEXPECTED_ERR;
18837                   END IF;
18838 
18839                   IF LX_SITE_COVLEVELS.COUNT > 0 THEN
18840 
18841                     FOR partysite_index in Lx_Site_CovLevels.FIRST .. Lx_Site_CovLevels.LAST  LOOP
18842 
18843                        l_check_site := VALIDATE_COVLEVELS(p_contract_line_id,
18844                                                LX_SITE_COVLEVELS(partysite_index).RX_OBJ1ID1,
18845                                                LX_SITE_COVLEVELS(partysite_index).RX_OBJ1ID2,
18846                                                LX_SITE_COVLEVELS(partysite_index).RX_OBJCODE);
18847 
18848 
18849                         IF l_check_site = 'Y' THEN
18850                             x_covlevel_tbl_out(i).covered_yn :='Y';
18851                             EXIT ;
18852                         ELSE
18853                             x_covlevel_tbl_out(i).covered_yn :='N';
18854                         END IF ;
18855 
18856                     END LOOP ;
18857 
18858                    END IF ;  -- END IF FOR LX_SITE_COVLEVELS.COUNT > 0
18859 
18860            ELSIF  p_covlevel_tbl_in(i).covlevel_code = 'OKX_PARTY' THEN
18861 
18862                    l_jtot_object1_code := 'OKX_PARTY';
18863 
18864                    OKS_ENTITLEMENTS_PVT.Get_Party_CovLevels(P_CovParty_Obj_Id     => p_covlevel_tbl_in(i).covlevel_id,
18865                                                              X_Party_CovLevels     => Lx_Party_CovLevels,
18866                                                              X_Result              => Lx_Result,
18867                                                              X_Return_Status       => Lx_Return_Status );
18868 
18869                    IF Lx_Result <> G_TRUE THEN
18870                        RAISE L_EXCEP_UNEXPECTED_ERR;
18871                    END IF;
18872 
18873                    IF LX_PARTY_COVLEVELS.COUNT > 0 THEN
18874 
18875                      FOR party_index in Lx_Party_CovLevels.FIRST .. Lx_Party_CovLevels.LAST LOOP
18876 
18877                         l_check_party := VALIDATE_COVLEVELS(p_contract_line_id,
18878                                                LX_PARTY_COVLEVELS(party_index).RX_OBJ1ID1,
18879                                                LX_PARTY_COVLEVELS(party_index).RX_OBJ1ID2,
18880                                                LX_PARTY_COVLEVELS(party_index).RX_OBJCODE);
18881 
18882                         IF l_check_party = 'Y' THEN
18883                             x_covlevel_tbl_out(i).covered_yn :='Y';
18884                             EXIT ;
18885                         ELSE
18886                             x_covlevel_tbl_out(i).covered_yn :='N';
18887                         END IF ;
18888 
18889                      END LOOP ;
18890 
18891                    END IF ;  -- END IF FOR LX_PARTY_COVLEVELS.COUNT > 0
18892 
18893           END IF ;
18894 
18895      END LOOP ;
18896 
18897   -- check here for combination..
18898 
18899 
18900   IF p_verify_combination = 'Y' THEN
18901 
18902     k := x_covlevel_tbl_out.first ;
18903 
18904          x_combination_valid:= 'N';
18905 
18906          FOR  out_rec IN x_covlevel_tbl_out.FIRST .. x_covlevel_tbl_out.LAST
18907          LOOP
18908 		/*
18909                 IF x_covlevel_tbl_out(k).covered_yn = 'N'  THEN
18910                    x_combination_valid:= 'N';
18911                    EXIT;
18912                 END IF ;
18913 		*/
18914 
18915 /********************************************************************************
18916               The logic is changed as that is what is required.
18917               If contract line covers any one of the input covered level records in
18918               , that is covered_yn = 'Y' , then  as per the new
18919               inputs from the Service Request at a later date, the contract line
18920               should be considered valid and x_combination_valid should return 'Y'.
18921 ********************************************************************************/
18922 
18923                 IF x_covlevel_tbl_out(k).covered_yn = 'Y' THEN
18924                    x_combination_valid:= 'Y';
18925                    EXIT;
18926                 END IF ;
18927 
18928            k := x_covlevel_tbl_out.NEXT(k);
18929        END LOOP ;
18930      END IF ;
18931   END IF ;
18932   END IF ;
18933   END IF ;
18934 
18935 LX_PRODUCT_COVLEVELS.DELETE;
18936 LX_ITEM_COVLEVELS.DELETE;
18937 LX_SYSTEM_COVLEVELS.DELETE;
18938 LX_CUST_COVLEVELS.DELETE;
18939 LX_SITE_COVLEVELS.DELETE;
18940 LX_PARTY_COVLEVELS.DELETE;
18941 
18942 x_return_status:= OKC_API.G_RET_STS_SUCCESS ;
18943 
18944 
18945 
18946     EXCEPTION
18947 
18948         WHEN L_EXCEP_NULL_VALUE THEN
18949         X_Result        := Lx_Result;
18950         X_Return_Status := Lx_Return_Status;
18951 
18952         WHEN EXCEPTION_HALT_VALIDATION THEN
18953 
18954         X_Return_Status := OKC_API.G_RET_STS_SUCCESS;
18955         x_combination_valid := 'N';
18956         x_covlevel_tbl_out := p_covlevel_tbl_in;
18957 
18958       WHEN    L_EXCEP_UNEXPECTED_ERR THEN
18959         x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
18960         x_combination_valid := 'N';
18961         x_covlevel_tbl_out := p_covlevel_tbl_in;
18962 
18963     WHEN OTHERS THEN
18964 
18965       OKC_API.SET_MESSAGE
18966         (P_App_Name	  => G_APP_NAME_OKC
18967 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
18968 	,P_Token1	  => G_SQLCODE_TOKEN
18969 	,P_Token1_Value	  => SQLCODE
18970 	,P_Token2	  => G_SQLERRM_TOKEN
18971 	,P_Token2_Value   => SQLERRM);
18972 
18973       OKC_API.SET_MESSAGE
18974         (P_App_Name	  => G_APP_NAME_OKC
18975 	,P_Msg_Name	  => G_DEBUG_TOKEN
18976 	,P_Token1	  => G_PACKAGE_TOKEN
18977 	,P_Token1_Value	  => G_PKG_NAME
18978 	,P_Token2	  => G_PROGRAM_TOKEN
18979 	,P_Token2_Value   => 'Validate_Required_RT_Tokens');
18980 
18981       X_Result        := G_FALSE;
18982       X_Return_Status := G_RET_STS_UNEXP_ERROR;
18983 
18984 
18985     END VALIDATE_CONTRACT_LINE;
18986 
18987 
18988 -- Added by JVARGHES on Feb 03, 2005.
18989 -- for the resolution of Bug# 3796499.
18990 
18991   FUNCTION Get_NLS_Day_of_Week(P_Day_of_Week IN VARCHAR2) RETURN VARCHAR2 IS
18992 
18993     CURSOR C1(Cv_Day_of_Week IN VARCHAR2) IS
18994            SELECT
18995              DECODE(Cv_Day_of_Week
18996                    ,TO_CHAR(SYSDATE,  'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE,  'DY')
18997                    ,TO_CHAR(SYSDATE+1,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+1,'DY')
18998                    ,TO_CHAR(SYSDATE+2,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+2,'DY')
18999                    ,TO_CHAR(SYSDATE+3,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+3,'DY')
19000                    ,TO_CHAR(SYSDATE+4,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+4,'DY')
19001                    ,TO_CHAR(SYSDATE+5,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+5,'DY')
19002                    ,TO_CHAR(SYSDATE+6,'DY','NLS_DATE_LANGUAGE = AMERICAN'),TO_CHAR(SYSDATE+6,'DY')
19003                    ,'-1')
19004            FROM DUAL;
19005 
19006     lv_Result   VARCHAR2(50);
19007 
19008   BEGIN
19009 
19010     OPEN C1(Cv_Day_of_Week => P_Day_of_Week);
19011     FETCH C1 INTO lv_Result;
19012     CLOSE C1;
19013 
19014     RETURN lv_Result;
19015 
19016   END Get_NLS_Day_of_Week;
19017 
19018 /*
19019 -- Comment out by JVARGHES on Mar 07, 2005.
19020 -- for the resolution of Bug# 4191909.
19021 
19022     FUNCTION Get_NLS_day_of_week(
19023       P_day_of_week IN Varchar2) Return Varchar2 is
19024 
19025       l_daynum       number;
19026       l_daychar      varchar2(100);
19027       l_daypsdchar   varchar2(100);
19028       l_daypsdnum    number;
19029       l_dayrtnchar   varchar2(100);
19030 
19031 
19032 
19033     BEGIN
19034 
19035       l_daynum       := null;
19036       l_daychar      := null;
19037       l_daypsdchar   := P_day_of_week;
19038       l_daypsdnum    := null;
19039       l_dayrtnchar   := null;
19040 
19041 
19042          if l_daypsdchar = 'SUN' then
19043             l_daypsdnum := 1;
19044          elsif l_daypsdchar = 'MON' then
19045             l_daypsdnum := 2;
19046          elsif l_daypsdchar = 'TUE' then
19047             l_daypsdnum := 3;
19048          elsif l_daypsdchar = 'WED' then
19049             l_daypsdnum := 4;
19050          elsif l_daypsdchar = 'THU' then
19051             l_daypsdnum := 5;
19052          elsif l_daypsdchar = 'FRI' then
19053             l_daypsdnum := 6;
19054          elsif l_daypsdchar = 'SAT' then
19055             l_daypsdnum := 7;
19056          end if;
19057 
19058 
19059          for i in 0..6 loop
19060 
19061 
19062            l_daynum 	:= to_number(to_char(sysdate+i,'D'));
19063            l_daychar 	:= to_char(sysdate+i,'DY');
19064 
19065 
19066           if l_daypsdnum = l_daynum then
19067             l_dayrtnchar := l_daychar;
19068             exit;
19069           end if;
19070 
19071         end loop;
19072 
19073         if l_dayrtnchar is null then
19074           l_dayrtnchar := 'NOTVALID';
19075         end if;
19076 
19077         return l_dayrtnchar;
19078 
19079  END Get_NLS_day_of_week;
19080 
19081 */
19082 
19083 PROCEDURE    Get_Valid_Line(
19084                             PHd_Id          IN    NUMBER,
19085                             PHd_Start_Date  IN    Date,
19086                             PHd_END_Date    IN    Date,
19087                             PSv_Start_Date  IN    Date,
19088                             PSv_End_Date    IN    Date,
19089                             PSv_Term_Date   IN    Date,
19090                             PIt_Start_Date  IN    Date,
19091                             PIt_End_Date    IN    Date,
19092                             PIt_Term_Date   IN    Date,
19093                             PCo_Start_Date  IN    Date,
19094                             PCo_End_Date    IN    Date,
19095                             PCo_Term_Date   IN    Date,
19096                             P_Request_Date  IN    Date,
19097                             X_Valid_line    OUT NOCOPY  VARCHAR2,
19098                             X_return_Status OUT NOCOPY  VARCHAR2) IS
19099 
19100 
19101 
19102 Lv_Request_Date     Constant Date :=    trunc(nvl(p_request_date,SYSDATE));
19103 LHd_END_Date        Constant Date :=    PHd_END_Date       ;
19104 LSv_Start_Date      Constant Date :=    PSv_Start_Date     ;
19105 LSv_End_Date        Constant Date :=    PSv_End_Date       ;
19106 LSv_Term_Date       Constant Date :=    PSv_Term_Date      ;
19107 LIt_Start_Date      Constant Date :=    PIt_Start_Date     ;
19108 LIt_End_Date        Constant Date :=    PIt_End_Date       ;
19109 LIt_Term_Date       Constant Date :=    PIt_Term_Date      ;
19110 LCo_Start_Date      Constant Date :=    PCo_Start_Date     ;
19111 LCo_End_Date        Constant Date :=    PCo_End_Date       ;
19112 LCo_Term_Date       Constant Date :=    PCo_Term_Date      ;
19113 LHd_Id              Constant NUMBER   := PHd_Id;
19114 LSv_Eff_End_Date    Date;
19115 LCo_Eff_End_Date    Date;
19116 LIt_Eff_End_Date    Date;
19117 
19118 BEGIN
19119 
19120         IF LSv_Term_Date  < LSv_End_Date THEN
19121             LSv_Eff_End_Date := LSv_Term_Date;
19122         ELSE
19123             LSv_Eff_End_Date := LSv_End_Date;
19124 
19125               -- grace period changes starts
19126 
19127             IF G_GRACE_PROFILE_SET = 'Y' AND LSv_Term_Date IS NULL THEN
19128                 -- grace period changes are done only if line end date matches contract end date
19129 
19130               IF  trunc(LSv_Eff_End_Date) = trunc(LHd_END_Date) THEN
19131         --- truncating the dates to remove accidental existence of time components in dates.
19132                 LSv_Eff_End_Date := trunc(Get_Final_End_Date(LHd_Id,LSv_Eff_End_Date));
19133               END IF;
19134 
19135             END IF;
19136 
19137           -- grace period changes ends
19138         END IF;
19139 
19140         IF LCo_Term_Date < LCo_End_Date THEN
19141             LCo_Eff_End_Date := LCo_Term_Date;
19142         ELSE
19143             LCo_Eff_End_Date := LCo_End_Date;
19144 
19145               -- grace period changes starts
19146 
19147             IF G_GRACE_PROFILE_SET = 'Y' AND LCo_Term_Date IS NULL THEN
19148                 IF  trunc(LCo_Eff_End_Date) = trunc(LHd_END_Date) THEN
19149         --- truncating the dates to remove accidental existence of time components in dates.
19150                       LCo_Eff_End_Date := trunc(Get_Final_End_Date(LHd_Id,LCo_Eff_End_Date));
19151                 END IF;
19152             END IF;
19153 
19154       -- grace period changes ends
19155         END IF;
19156 
19157 
19158         IF LIt_Term_Date < LIt_End_Date THEN
19159             LIt_Eff_End_Date := LIt_Term_Date;
19160         ELSE
19161             LIt_Eff_End_Date := LIt_End_Date;
19162 
19163               -- grace period changes starts
19164 
19165             IF G_GRACE_PROFILE_SET = 'Y' AND LIt_Term_Date IS NULL THEN
19166                 -- grace period changes are done only if line end date matches contract end date
19167                 IF  trunc(LIt_Eff_End_Date) = trunc(LHd_END_Date) THEN
19168         --- truncating the dates to remove accidental existence of time components in dates.
19169                    LIt_Eff_End_Date := trunc(Get_Final_End_Date(LHd_Id,LIt_Eff_End_Date));
19170                 END IF;
19171             END IF;
19172         END IF;
19173 
19174 
19175         IF ((Lv_Request_Date BETWEEN LSv_Start_Date AND LSv_Eff_End_Date)
19176              AND
19177              (Lv_Request_Date BETWEEN LIt_Start_Date AND LIt_Eff_End_Date)
19178              AND
19179              (Lv_Request_Date BETWEEN LCo_Start_Date AND LCo_Eff_End_Date)) THEN
19180 
19181              X_Valid_line    := 'T';
19182 
19183         END IF;
19184 
19185     X_return_Status := 'S'; --LX_return_Status;
19186 
19187 EXCEPTION
19188     WHEN OTHERS THEN
19189 
19190     OKC_API.SET_MESSAGE
19191     (P_App_Name	  => G_APP_NAME_OKC
19192 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
19193 	,P_Token1	  => G_SQLCODE_TOKEN
19194 	,P_Token1_Value	  => SQLCODE
19195 	,P_Token2	  => G_SQLERRM_TOKEN
19196 	,P_Token2_Value   => SQLERRM);
19197 
19198     OKC_API.SET_MESSAGE
19199     (P_App_Name	  => G_APP_NAME_OKC
19200 	,P_Msg_Name	  => G_DEBUG_TOKEN
19201 	,P_Token1	  => G_PACKAGE_TOKEN
19202 	,P_Token1_Value	  => G_PKG_NAME
19203 	,P_Token2	  => G_PROGRAM_TOKEN
19204 	,P_Token2_Value   => 'Get_Valid_Line');
19205 
19206     X_Return_Status     := G_RET_STS_UNEXP_ERROR;
19207 
19208 END get_valid_line;
19209 
19210 
19211 PROCEDURE Get_Contract_ID
19212     (P_contract_id            IN  NUMBER
19213     ,P_Contract_Num           IN  VARCHAR2
19214     ,P_Contract_Num_Modifier  IN  VARCHAR2
19215     ,P_START_DATE_FROM        IN  DATE
19216     ,P_START_DATE_TO          IN  DATE
19217     ,P_END_DATE_FROM          IN  DATE
19218     ,P_END_DATE_TO            IN  DATE
19219     ,P_DATE_TERMINATE_FROM    IN  DATE
19220     ,P_DATE_TERMINATE_TO      IN  DATE
19221     ,P_STATUS                 IN  VARCHAR2
19222     ,P_Cont_Pty_Id            IN  NUMBER
19223     ,P_cont_renewal_code      IN  VARCHAR2
19224     ,p_authoring_org_id       in  number
19225     ,p_contract_grp_id        in  number -- additional header level criteria added dtd Dec 17th, 2003
19226     ,X_Contracts              OUT NOCOPY GT_Contract_Ref
19227     ,X_Result                 OUT NOCOPY Gx_Boolean
19228     ,X_Return_Status   	      OUT NOCOPY Gx_Ret_Sts) IS
19229 
19230     /*Bug:6767455*/
19231     CURSOR Lx_Csr_terdt_Contracts(  Cv_Contract_Id           IN NUMBER,
19232  	                             Cv_Contract_Num          IN VARCHAR2,
19233  	                             Cv_Contract_Num_Modifier IN VARCHAR2,
19234  	                             Cv_START_DATE_FROM          IN DATE,
19235  	                             Cv_START_DATE_TO            IN DATE,
19236  	                             Cv_END_DATE_FROM            IN DATE,
19237  	                             Cv_END_DATE_TO              IN DATE,
19238  	                             Cv_DATE_TERMINATE_FROM      IN DATE,
19239  	                             Cv_DATE_TERMINATE_TO        IN DATE,
19240  	                             Cv_STATUS                   IN VARCHAR2,
19241  	                             Cv_Cont_Pty_Id              IN NUMBER,
19242  	                             Cv_cont_renewal_code        IN VARCHAR2,
19243  	                             Cv_authoring_org_id         in number,
19244  	                             Cv_contract_grp_id          in number) IS
19245  	             SELECT /*+ leading(b) use_nl(b oksb)  */    b.Id Id,                      -- 11.5.10 rule rearchitecture changes
19246  	                       b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19247  	                         oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19248  	             FROM     OKC_K_HEADERS_ALL_B B,            --Okc_K_Headers_B B, /*Bug:6767455*/
19249  	                     oks_k_headers_b oksb          -- 11.5.10 rule rearchitecture changes
19250  	             WHERE   b.id = oksb.chr_id            -- 11.5.10 rule rearchitecture changes
19251  	             AND     B.Start_Date BETWEEN Cv_Start_Date_From AND Cv_Start_Date_to
19252  	             AND     B.End_Date BETWEEN Cv_End_Date_From AND Cv_End_Date_To
19253  	             AND     B.Date_Terminated BETWEEN Cv_Date_Terminate_From AND Cv_Date_Terminate_To
19254  	             AND     sts_code = nvl(Cv_STATUS,B.Sts_Code)
19255  	             and     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
19256 
19257  /*Bug:6767455*/
19258   CURSOR Lx_Csr_noHdr_Contracts(  Cv_Contract_Id           IN NUMBER,
19259                             Cv_Contract_Num          IN VARCHAR2,
19260                             Cv_Contract_Num_Modifier IN VARCHAR2,
19261                             Cv_START_DATE_FROM          IN DATE,
19262                             Cv_START_DATE_TO            IN DATE,
19263                             Cv_END_DATE_FROM            IN DATE,
19264                             Cv_END_DATE_TO              IN DATE,
19265                             Cv_DATE_TERMINATE_FROM      IN DATE,
19266                             Cv_DATE_TERMINATE_TO        IN DATE,
19267                             Cv_STATUS                   IN VARCHAR2,
19268                             Cv_Cont_Pty_Id              IN NUMBER,
19269                             Cv_cont_renewal_code        IN VARCHAR2,
19270                             Cv_authoring_org_id         in number,
19271                             Cv_contract_grp_id          in number) IS
19272               /*Bug:6767455*/
19273                SELECT   /*+ leading(b) use_nl(b oksb)  */  b.Id Id,                      -- 11.5.10 rule rearchitecture changes
19274  	                       b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19275  	                         oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19276  	             FROM    OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project   /*Bug:6767455*/
19277  	                     oks_k_headers_b oksb          -- 11.5.10 rule rearchitecture changes
19278  	             WHERE   b.id = oksb.chr_id            -- 11.5.10 rule rearchitecture changes
19279  	             AND     B.Start_Date BETWEEN Cv_Start_Date_From AND Cv_Start_Date_to
19280  	             AND     B.End_Date BETWEEN Cv_End_Date_From AND Cv_End_Date_To
19281  	             AND     sts_code = nvl(Cv_STATUS,B.Sts_Code)
19282  	             and     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
19283 
19284  	   CURSOR Lx_Csr_Hdr_Contracts(  Cv_Contract_Id           IN NUMBER,
19285  	                             Cv_Contract_Num          IN VARCHAR2,
19286  	                             Cv_Contract_Num_Modifier IN VARCHAR2,
19287  	                             Cv_START_DATE_FROM          IN DATE,
19288  	                             Cv_START_DATE_TO            IN DATE,
19289  	                             Cv_END_DATE_FROM            IN DATE,
19290  	                             Cv_END_DATE_TO              IN DATE,
19291  	                             Cv_DATE_TERMINATE_FROM      IN DATE,
19292  	                             Cv_DATE_TERMINATE_TO        IN DATE,
19293  	                             Cv_STATUS                   IN VARCHAR2,
19294  	                             Cv_Cont_Pty_Id              IN NUMBER,
19295  	                             Cv_cont_renewal_code        IN VARCHAR2,
19296  	                             Cv_authoring_org_id         in number,
19297  	                             Cv_contract_grp_id          in number) IS
19298  	             SELECT /*+ leading(b) use_nl(b oksb) */
19299  	                     b.Id Id,                       -- 11.5.10 rule rearchitecture changes
19300  	                       b.renewal_type_code,           -- Added by Jvorugan for perf bug:4991724
19301  	                         oksb.electronic_renewal_flag   -- Added by Jvorugan for perf bug:4991724
19302             FROM    OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19303                     oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19304             WHERE   B.Id = Cv_Contract_Id --B.Id --nvl(Cv_Contract_Id,B.Id)          /*Added for Bug:6767455*/
19305             and     Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19306             --AND     nvl(Contract_Number_Modifier,-99) = nvl(Cv_Contract_Num_Modifier,nvl(Contract_Number_Modifier,-99))
19307             AND     ( (Cv_Contract_Num_Modifier IS NULL)
19308  	                      OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19309             and     b.id         = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19310         --- truncating the dates to remove accidental existence of time components in dates.
19311         /*Modified for Bug:6767455*/
19312            /* AND     trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date))
19313             and     trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date))
19314             AND     trunc(B.End_Date)   >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
19315             AND     trunc(B.End_Date)   <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
19316             AND     nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
19317                      nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19318             AND     nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
19319                      nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))*/
19320            AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19321  	             AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19322  	             AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19323  	             AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19324  	             AND     ((Cv_Date_Terminate_From IS NULL) OR
19325  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19326  	             AND     ((Cv_Date_Terminate_To IS NULL) OR
19327  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19328  	 /*Modified for Bug:6767455*/
19329             AND     Sts_Code    = nvl(Cv_STATUS,B.Sts_Code)
19330             and     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19331             AND      (Cv_Cont_Pty_Id IS NULL
19332  	               OR
19333             EXISTS
19334                         (SELECT 'x'
19335                             FROM Okc_K_Party_Roles_B PR
19336                             WHERE pr.Cle_Id IS NULL
19337 			                AND PR.Dnz_Chr_Id = b.Id
19338                            -- AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
19339                              AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19340                             AND PR.Object1_Id2 = '#'
19341                             AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19342                             AND PR.RLE_CODE <> 'VENDOR'))
19343 -- where clause for contract group added dtd Dec 17th, 2003
19344             AND    (Cv_contract_grp_id is null
19345                     OR
19346                     EXISTS (SELECT 'x'
19347                             FROM Okc_K_grpings grpng
19348                             WHERE grpng.included_chr_id = b.id
19349                             and   grpng.cgp_parent_id = Cv_contract_grp_id ));
19350     --        and   nvl(b.renewal_type_code,'#') = nvl(Cv_cont_renewal_code,nvl(b.renewal_type_code,'#'))
19351             /*Added for Bug:6767455
19352 
19353            AND     ((Cv_cont_renewal_code IS NULL)
19354                        OR
19355                        (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code not in ('ERN','NSR')
19356                          AND nvl(b.renewal_type_code,'#') = Cv_cont_renewal_code)
19357                        OR
19358                        (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'ERN'
19359                          AND nvl(b.renewal_type_code,'#') = 'NSR'
19360                          and nvl(oksb.electronic_renewal_flag,'N') = 'Y')
19361                        OR
19362                        (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'NSR'
19363                          AND nvl(b.renewal_type_code,'#') = 'NSR'
19364                          and nvl(oksb.electronic_renewal_flag,'N') = 'N'));
19365            */
19366 
19367   CURSOR Lx_Csr_Hdr_Contracts_sub(  Cv_Contract_Id           IN NUMBER,
19368  	                             Cv_Contract_Num          IN VARCHAR2,
19369  	                             Cv_Contract_Num_Modifier IN VARCHAR2,
19370  	                             Cv_START_DATE_FROM          IN DATE,
19371  	                             Cv_START_DATE_TO            IN DATE,
19372  	                             Cv_END_DATE_FROM            IN DATE,
19373  	                             Cv_END_DATE_TO              IN DATE,
19374  	                             Cv_DATE_TERMINATE_FROM      IN DATE,
19375  	                             Cv_DATE_TERMINATE_TO        IN DATE,
19376  	                             Cv_STATUS                   IN VARCHAR2,
19377  	                             Cv_Cont_Pty_Id              IN NUMBER,
19378  	                             Cv_cont_renewal_code        IN VARCHAR2,
19379  	                             Cv_authoring_org_id         in number,
19380  	                             Cv_contract_grp_id          in number) IS
19381  	             SELECT /*+ leading(b) use_nl(b oksb) */
19382  	                     b.Id Id,                       -- 11.5.10 rule rearchitecture changes
19383  	                       b.renewal_type_code,           -- Added by Jvorugan for perf bug:4991724
19384  	                         oksb.electronic_renewal_flag   -- Added by Jvorugan for perf bug:4991724
19385             FROM    OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19386                     oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19387             WHERE   B.Id = Cv_Contract_Id --B.Id --nvl(Cv_Contract_Id,B.Id)          /*Added for Bug:6767455*/
19388             and     Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19389             AND     ( (Cv_Contract_Num_Modifier IS NULL)
19390  	                      OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19391             and     b.id         = oksb.chr_id -- 11.5.10 rule rearchitecture changes
19392            AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19393  	             AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19394  	             AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19395  	             AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19396  	             AND     ((Cv_Date_Terminate_From IS NULL) OR
19397  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19398  	             AND     ((Cv_Date_Terminate_To IS NULL) OR
19399  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19400             AND     Sts_Code    = nvl(Cv_STATUS,B.Sts_Code)
19401             and     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19402             AND      (Cv_Cont_Pty_Id IS NULL
19403  	               OR
19404             EXISTS
19405                         (SELECT 'x'
19406                             FROM Okc_K_Party_Roles_B PR
19407                             WHERE pr.Cle_Id IS NULL
19408 			                AND PR.Dnz_Chr_Id = b.Id
19409                              AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19410                             AND PR.Object1_Id2 = '#'
19411                             AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19412                             AND PR.RLE_CODE not in ('VENDOR','MERCHANT')))    ---Modified condition for ER9681794
19413             AND    (Cv_contract_grp_id is null
19414                     OR
19415                     EXISTS (SELECT 'x'
19416                             FROM Okc_K_grpings grpng
19417                             WHERE grpng.included_chr_id = b.id
19418                             and   grpng.cgp_parent_id = Cv_contract_grp_id ));
19419 
19420  CURSOR Lx_Csr_Party_Contracts(Cv_Contract_Num          IN VARCHAR2,
19421  	                                  Cv_Contract_Num_Modifier IN VARCHAR2,
19422  	                                  Cv_START_DATE_FROM          IN DATE,
19423  	                                  Cv_START_DATE_TO            IN DATE,
19424  	                                  Cv_END_DATE_FROM            IN DATE,
19425  	                                  Cv_END_DATE_TO              IN DATE,
19426  	                                  Cv_DATE_TERMINATE_FROM      IN DATE,
19427  	                                  Cv_DATE_TERMINATE_TO        IN DATE,
19428  	                                  Cv_STATUS                   IN VARCHAR2,
19429  	                                  Cv_Cont_Pty_Id              IN NUMBER,
19430  	                                  Cv_cont_renewal_code        IN VARCHAR2,
19431  	                                  Cv_authoring_org_id         in number,
19432  	                                  Cv_contract_grp_id          in number) IS
19433  	             SELECT  /*+ leading(pr) use_nl(pr b oksb) */ b.Id Id,                      -- 11.5.10 rule rearchitecture changes
19434  	                       b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19435  	                         oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19436  	             FROM    OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19437  	                     oks_k_headers_b oksb,          -- 11.5.10 rule rearchitecture changes
19438  	                     Okc_K_Party_Roles_B PR
19439  	             WHERE   PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19440  	             AND     PR.Object1_Id2 = '#'
19441  	             AND     PR.Jtot_Object1_Code = 'OKX_PARTY'
19442  	             AND     PR.RLE_CODE <> 'VENDOR'
19443  	             AND     PR.Cle_Id IS NULL
19444  	             AND     B.ID = PR.DNZ_CHR_ID
19445  	             AND     B.ID = PR.CHR_ID
19446  	         --    AND     Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19447  	         --    AND     ( (Cv_Contract_Num_Modifier IS NULL)
19448  	         --             OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19449  	             AND     B.id = oksb.chr_id            -- 11.5.10 rule rearchitecture changes
19450  	             AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19451  	             AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19452  	             AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19453  	             AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19454  	             AND     ((Cv_Date_Terminate_From IS NULL) OR
19455  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19456  	             AND     ((Cv_Date_Terminate_To IS NULL) OR
19457  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19458  	             AND     sts_code = nvl(Cv_STATUS,B.Sts_Code)
19459  	             AND     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
19460 
19461 
19462 
19463   CURSOR Lx_Csr_Party_Contracts_sub(Cv_Contract_Num          IN VARCHAR2,
19464  	                                  Cv_Contract_Num_Modifier IN VARCHAR2,
19465  	                                  Cv_START_DATE_FROM          IN DATE,
19466  	                                  Cv_START_DATE_TO            IN DATE,
19467  	                                  Cv_END_DATE_FROM            IN DATE,
19468  	                                  Cv_END_DATE_TO              IN DATE,
19469  	                                  Cv_DATE_TERMINATE_FROM      IN DATE,
19470  	                                  Cv_DATE_TERMINATE_TO        IN DATE,
19471  	                                  Cv_STATUS                   IN VARCHAR2,
19472  	                                  Cv_Cont_Pty_Id              IN NUMBER,
19473  	                                  Cv_cont_renewal_code        IN VARCHAR2,
19474  	                                  Cv_authoring_org_id         in number,
19475  	                                  Cv_contract_grp_id          in number) IS
19476  	             SELECT  /*+ leading(pr) use_nl(pr b oksb) */ b.Id Id,                      -- 11.5.10 rule rearchitecture changes
19477  	                       b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19478  	                         oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19479  	             FROM    OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19480  	                     oks_k_headers_b oksb,          -- 11.5.10 rule rearchitecture changes
19481  	                     Okc_K_Party_Roles_B PR
19482  	             WHERE   PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19483  	             AND     PR.Object1_Id2 = '#'
19484  	             AND     PR.Jtot_Object1_Code = 'OKX_PARTY'
19485  	             AND     PR.RLE_CODE not in ('VENDOR','MERCHANT')      ---Modified condition for ER9681794
19486  	             AND     PR.Cle_Id IS NULL
19487  	             AND     B.ID = PR.DNZ_CHR_ID
19488  	             AND     B.ID = PR.CHR_ID
19489  	         --    AND     Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19490  	         --    AND     ( (Cv_Contract_Num_Modifier IS NULL)
19491  	         --             OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19492  	             AND     B.id = oksb.chr_id            -- 11.5.10 rule rearchitecture changes
19493  	             AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19494  	             AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19495  	             AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19496  	             AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19497  	             AND     ((Cv_Date_Terminate_From IS NULL) OR
19498  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19499  	             AND     ((Cv_Date_Terminate_To IS NULL) OR
19500  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19501  	             AND     sts_code = nvl(Cv_STATUS,B.Sts_Code)
19502  	             AND     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
19503 
19504  	     -- hmnair - Added for bug fix #
19505 
19506  	      CURSOR Lx_Csr_Group_Contracts(Cv_Contract_Num          IN VARCHAR2,
19507  	                                    Cv_Contract_Num_Modifier IN VARCHAR2,
19508  	                                    Cv_START_DATE_FROM          IN DATE,
19509  	                                    Cv_START_DATE_TO            IN DATE,
19510  	                                    Cv_END_DATE_FROM            IN DATE,
19511  	                                    Cv_END_DATE_TO              IN DATE,
19512  	                                    Cv_DATE_TERMINATE_FROM      IN DATE,
19513  	                                    Cv_DATE_TERMINATE_TO        IN DATE,
19514  	                                    Cv_STATUS                   IN VARCHAR2,
19515  	                                    Cv_Cont_Pty_Id              IN NUMBER,
19516  	                                    Cv_cont_renewal_code        IN VARCHAR2,
19517  	                                    Cv_authoring_org_id         in number,
19518  	                                    Cv_contract_grp_id          in number) IS
19519  	             SELECT  /*+ leading(grpng) use_nl(grpng b oksb) */ b.Id Id,                      -- 11.5.10 rule rearchitecture changes
19520  	                       b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19521  	                         oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19522  	             FROM    OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19523  	                     oks_k_headers_b oksb,          -- 11.5.10 rule rearchitecture changes
19524  	                     Okc_K_grpings grpng
19525  	             WHERE   grpng.cgp_parent_id = Cv_contract_grp_id
19526  	             AND     B.ID = grpng.included_chr_id
19527  	           --  AND     Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19528  	           --  AND     ( (Cv_Contract_Num_Modifier IS NULL)
19529  	           --           OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19530  	             AND     B.id = oksb.chr_id            -- 11.5.10 rule rearchitecture changes
19531  	             AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19532  	             AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19533  	             AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19534  	             AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19535  	             AND     ((Cv_Date_Terminate_From IS NULL) OR
19536  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19537  	             AND     ((Cv_Date_Terminate_To IS NULL) OR
19538  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19539  	             AND     sts_code = nvl(Cv_STATUS,B.Sts_Code)
19540  	             AND     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id); -- multi org security check
19541 
19542  	     -- hmnair - Added for bug fix #
19543 
19544 	     CURSOR Lx_Csr_Party_Group_Contracts(Cv_Contract_Num          IN VARCHAR2,
19545  	                                          Cv_Contract_Num_Modifier IN VARCHAR2,
19546  	                                          Cv_START_DATE_FROM          IN DATE,
19547  	                                          Cv_START_DATE_TO            IN DATE,
19548  	                                          Cv_END_DATE_FROM            IN DATE,
19549  	                                          Cv_END_DATE_TO              IN DATE,
19550  	                                          Cv_DATE_TERMINATE_FROM      IN DATE,
19551  	                                          Cv_DATE_TERMINATE_TO        IN DATE,
19552  	                                          Cv_STATUS                   IN VARCHAR2,
19553  	                                          Cv_Cont_Pty_Id              IN NUMBER,
19554  	                                          Cv_cont_renewal_code        IN VARCHAR2,
19555  	                                          Cv_authoring_org_id         in number,
19556  	                                          Cv_contract_grp_id          in number) IS
19557  	             SELECT  /*+ ordered use_nl(pr grpng b oksb) */ b.Id Id,                      -- 11.5.10 rule rearchitecture changes
19558  	                       b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19559  	                         oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19560 
19561  	             FROM    Okc_K_Party_Roles_B PR,
19562  	                     Okc_K_grpings grpng,
19563  	                     OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19564  	                     oks_k_headers_b oksb          -- 11.5.10 rule rearchitecture changes
19565 
19566  	             WHERE   PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19567  	             AND     PR.Object1_Id2 = '#'
19568  	             AND     PR.Jtot_Object1_Code = 'OKX_PARTY'
19569  	             AND     PR.RLE_CODE <> 'VENDOR'
19570  	             AND     PR.Cle_Id IS NULL
19571  	             AND     B.ID = PR.DNZ_CHR_ID
19572  	             AND     B.ID = PR.CHR_ID
19573  	          --   AND     Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19574  	          --   AND     ( (Cv_Contract_Num_Modifier IS NULL)
19575  	          --            OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19576  	             AND     B.id = oksb.chr_id            -- 11.5.10 rule rearchitecture changes
19577  	             AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19578  	             AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19579  	             AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19580  	             AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19581  	             AND     ((Cv_Date_Terminate_From IS NULL) OR
19582  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19583  	             AND     ((Cv_Date_Terminate_To IS NULL) OR
19584  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19585  	             AND     sts_code = nvl(Cv_STATUS,B.Sts_Code)
19586  	             AND     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id)    -- multi org security check
19587  	             AND     grpng.included_chr_id = b.ID
19588  	             AND     grpng.included_chr_id = PR.DNZ_CHR_ID
19589  	             AND     grpng.cgp_parent_id = Cv_contract_grp_id;
19590 
19591  	      CURSOR Lx_Csr_Party_Group_Contracts1(Cv_Contract_Num          IN VARCHAR2,
19592  	                                          Cv_Contract_Num_Modifier IN VARCHAR2,
19593  	                                          Cv_START_DATE_FROM          IN DATE,
19594  	                                          Cv_START_DATE_TO            IN DATE,
19595  	                                          Cv_END_DATE_FROM            IN DATE,
19596  	                                          Cv_END_DATE_TO              IN DATE,
19597  	                                          Cv_DATE_TERMINATE_FROM      IN DATE,
19598  	                                          Cv_DATE_TERMINATE_TO        IN DATE,
19599  	                                          Cv_STATUS                   IN VARCHAR2,
19600  	                                          Cv_Cont_Pty_Id              IN NUMBER,
19601  	                                          Cv_cont_renewal_code        IN VARCHAR2,
19602  	                                          Cv_authoring_org_id         in number,
19603  	                                          Cv_contract_grp_id          in number) IS
19604  	             SELECT  /*+ ordered use_nl(pr grpng b oksb) */ b.Id Id,                      -- 11.5.10 rule rearchitecture changes
19605  	                       b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19606  	                         oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19607 
19608  	             FROM    Okc_K_Party_Roles_B PR,
19609  	                     Okc_K_grpings grpng,
19610  	                     OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19611  	                     oks_k_headers_b oksb          -- 11.5.10 rule rearchitecture changes
19612 
19613  	             WHERE   PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19614  	             AND     PR.Object1_Id2 = '#'
19615  	             AND     PR.Jtot_Object1_Code = 'OKX_PARTY'
19616  	             AND     PR.RLE_CODE not in ('VENDOR','MERCHANT')    ------Modified condition for ER9681794
19617  	             AND     PR.Cle_Id IS NULL
19618  	             AND     B.ID = PR.DNZ_CHR_ID
19619  	             AND     B.ID = PR.CHR_ID
19620  	          --   AND     Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19621  	          --   AND     ( (Cv_Contract_Num_Modifier IS NULL)
19622  	          --            OR (Contract_Number_Modifier = Cv_Contract_Num_Modifier))
19623  	             AND     B.id = oksb.chr_id            -- 11.5.10 rule rearchitecture changes
19624  	             AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19625  	             AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19626  	             AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19627  	             AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19628  	             AND     ((Cv_Date_Terminate_From IS NULL) OR
19629  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19630  	             AND     ((Cv_Date_Terminate_To IS NULL) OR
19631  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19632  	             AND     sts_code = nvl(Cv_STATUS,B.Sts_Code)
19633  	             AND     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id)    -- multi org security check
19634  	             AND     grpng.included_chr_id = b.ID
19635  	             AND     grpng.included_chr_id = PR.DNZ_CHR_ID
19636  	             AND     grpng.cgp_parent_id = Cv_contract_grp_id;
19637 
19638  	             --Added for bug fix -- hmnair
19639 
19640 		     CURSOR Lx_Csr_KNum_Mod_Contracts(Cv_Contract_Num          IN VARCHAR2,
19641  	                             Cv_Contract_Num_Modifier IN VARCHAR2,
19642  	                             Cv_START_DATE_FROM          IN DATE,
19643  	                             Cv_START_DATE_TO            IN DATE,
19644  	                             Cv_END_DATE_FROM            IN DATE,
19645  	                             Cv_END_DATE_TO              IN DATE,
19646  	                             Cv_DATE_TERMINATE_FROM      IN DATE,
19647  	                             Cv_DATE_TERMINATE_TO        IN DATE,
19648  	                             Cv_STATUS                   IN VARCHAR2,
19649  	                             Cv_Cont_Pty_Id              IN NUMBER,
19650  	                             Cv_cont_renewal_code        IN VARCHAR2,
19651  	                             Cv_authoring_org_id         in number,
19652  	                             Cv_contract_grp_id          in number) IS
19653  	             SELECT /*+ leadin(b) use_nl(b oksb) */ b.Id Id,                      -- 11.5.10 rule rearchitecture changes
19654  	                       b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19655  	                         oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19656  	             FROM    OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19657  	                     oks_k_headers_b oksb          -- 11.5.10 rule rearchitecture changes
19658  	             WHERE   Contract_Number = Cv_Contract_Num
19659  	    --         AND     ( (Cv_Contract_Num_Modifier IS NULL)
19660  	               AND    Contract_Number_Modifier = Cv_Contract_Num_Modifier
19661  	               AND     b.id = oksb.chr_id            -- 11.5.10 rule rearchitecture changes
19662  	    --
19663  	    --  Modified by JVARGHES on 23/May/2006 for fix of bug# 4991724
19664  	    --       AND     trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date))  -- truncating the dates to remove
19665  	    --       and     trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date))    -- accidental existence of time components in dates.
19666  	    --       AND     trunc(B.End_Date)   >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
19667  	    --       AND     trunc(B.End_Date)   <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
19668  	    --       AND     nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
19669  	    --               nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19670  	    --       AND     nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
19671  	    --               nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19672  	             AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19673  	             AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19674  	             AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19675  	             AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19676  	             AND     ((Cv_Date_Terminate_From IS NULL) OR
19677  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19678  	             AND     ((Cv_Date_Terminate_To IS NULL) OR
19679  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19680  	    --
19681  	    --  Modified by JVARGHES on 23/May/2006 for fix of bug# 4991724
19682  	    --
19683  	             AND     sts_code = nvl(Cv_STATUS,B.Sts_Code)
19684  	             AND     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19685  	             AND    (Cv_Cont_Pty_Id IS NULL
19686                                OR
19687                               EXISTS (SELECT 'x'
19688                                FROM Okc_K_Party_Roles_B PR
19689  	                       WHERE pr.Cle_Id IS NULL
19690  	                       AND PR.Dnz_Chr_Id = b.Id
19691  	               --    AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
19692  	                       AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19693  	                        AND PR.Object1_Id2 = '#'
19694  	                        AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19695  	                        AND PR.RLE_CODE <> 'VENDOR'))
19696  	                      AND    (Cv_contract_grp_id is null     --  Where clause for contract group added dtd Dec 17th, 2003
19697                                   OR
19698                           EXISTS (SELECT 'x'
19699                           FROM Okc_K_grpings grpng
19700                           WHERE grpng.included_chr_id = b.id
19701                           AND   grpng.cgp_parent_id = Cv_contract_grp_id ));
19702 
19703 
19704  	             CURSOR Lx_Csr_KNum_Mod_Contracts_sub(Cv_Contract_Num          IN VARCHAR2,
19705  	                             Cv_Contract_Num_Modifier IN VARCHAR2,
19706  	                             Cv_START_DATE_FROM          IN DATE,
19707  	                             Cv_START_DATE_TO            IN DATE,
19708  	                             Cv_END_DATE_FROM            IN DATE,
19709  	                             Cv_END_DATE_TO              IN DATE,
19710  	                             Cv_DATE_TERMINATE_FROM      IN DATE,
19711  	                             Cv_DATE_TERMINATE_TO        IN DATE,
19712  	                             Cv_STATUS                   IN VARCHAR2,
19713  	                             Cv_Cont_Pty_Id              IN NUMBER,
19714  	                             Cv_cont_renewal_code        IN VARCHAR2,
19715  	                             Cv_authoring_org_id         in number,
19716  	                             Cv_contract_grp_id          in number) IS
19717  	             SELECT /*+ leadin(b) use_nl(b oksb) */ b.Id Id,                      -- 11.5.10 rule rearchitecture changes
19718  	                       b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19719  	                         oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19720  	             FROM    OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19721  	                     oks_k_headers_b oksb          -- 11.5.10 rule rearchitecture changes
19722  	             WHERE   Contract_Number = Cv_Contract_Num
19723  	    --         AND     ( (Cv_Contract_Num_Modifier IS NULL)
19724  	               AND    Contract_Number_Modifier = Cv_Contract_Num_Modifier
19725  	               AND     b.id = oksb.chr_id            -- 11.5.10 rule rearchitecture changes
19726  	    --
19727  	    --  Modified by JVARGHES on 23/May/2006 for fix of bug# 4991724
19728  	    --       AND     trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date))  -- truncating the dates to remove
19729  	    --       and     trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date))    -- accidental existence of time components in dates.
19730  	    --       AND     trunc(B.End_Date)   >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
19731  	    --       AND     trunc(B.End_Date)   <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
19732  	    --       AND     nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
19733  	    --               nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19734  	    --       AND     nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
19735  	    --               nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19736  	             AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19737  	             AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19738  	             AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19739  	             AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19740  	             AND     ((Cv_Date_Terminate_From IS NULL) OR
19741  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19742  	             AND     ((Cv_Date_Terminate_To IS NULL) OR
19743  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19744  	    --
19745  	    --  Modified by JVARGHES on 23/May/2006 for fix of bug# 4991724
19746  	    --
19747  	             AND     sts_code = nvl(Cv_STATUS,B.Sts_Code)
19748  	             AND     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19749  	             AND    (Cv_Cont_Pty_Id IS NULL
19750                                OR
19751                               EXISTS (SELECT 'x'
19752                                FROM Okc_K_Party_Roles_B PR
19753  	                       WHERE pr.Cle_Id IS NULL
19754  	                       AND PR.Dnz_Chr_Id = b.Id
19755  	               --    AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
19756  	                       AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19757  	                        AND PR.Object1_Id2 = '#'
19758  	                        AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19759  	                        AND PR.RLE_CODE not in ('VENDOR','MERCHANT')))    ---Modified condition for ER9681794
19760  	                      AND    (Cv_contract_grp_id is null     --  Where clause for contract group added dtd Dec 17th, 2003
19761                                   OR
19762                           EXISTS (SELECT 'x'
19763                           FROM Okc_K_grpings grpng
19764                           WHERE grpng.included_chr_id = b.id
19765                           AND   grpng.cgp_parent_id = Cv_contract_grp_id ));
19766                           /*Added for Bug:6767455*/
19767 
19768   CURSOR Lx_Csr_ContractNum_Contracts(Cv_Contract_Num         IN VARCHAR2,
19769                             Cv_Contract_Num_Modifier IN VARCHAR2,
19770                             Cv_START_DATE_FROM          IN DATE,
19771                             Cv_START_DATE_TO            IN DATE,
19772                             Cv_END_DATE_FROM            IN DATE,
19773                             Cv_END_DATE_TO              IN DATE,
19774                             Cv_DATE_TERMINATE_FROM      IN DATE,
19775                             Cv_DATE_TERMINATE_TO        IN DATE,
19776                             Cv_STATUS                   IN VARCHAR2,
19777                             Cv_Cont_Pty_Id              IN NUMBER,
19778                             Cv_cont_renewal_code        IN VARCHAR2,
19779                             Cv_authoring_org_id         in number,
19780                             Cv_contract_grp_id          in number) IS
19781             SELECT  /*+ leadin(b) use_nl(b oksb) */ b.Id Id,  -- 11.5.10 rule rearchitecture changes
19782                     b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19783  	            oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19784             FROM    OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19785                     oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19786              WHERE   Contract_Number = Cv_Contract_Num
19787             /*and     Contract_Number = nvl(Cv_Contract_Num,Contract_Number)
19788             AND     nvl(Contract_Number_Modifier,-99) = nvl(Cv_Contract_Num_Modifier,nvl(Contract_Number_Modifier,-99))*/
19789             and     b.id         = oksb.chr_id
19790         --- truncating the dates to remove accidental existence of time components in dates.
19791         /*Commented for Bug:6767455
19792             AND     trunc(B.Start_Date) >= nvl(trunc(Cv_Start_Date_From),trunc(B.Start_Date))
19793             and     trunc(B.Start_Date) <= nvl(trunc(Cv_Start_Date_to),trunc(B.Start_Date))
19794             AND     trunc(B.End_Date)   >= nvl(trunc(Cv_End_Date_From),trunc(B.End_Date))
19795             AND     trunc(B.End_Date)   <= nvl(trunc(Cv_End_Date_To),trunc(B.End_Date))
19796             AND     nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) >=
19797                      nvl(trunc(Cv_Date_Terminate_From),nvl(trunc(B.Date_Terminated),trunc(sysdate)))
19798             AND     nvl(trunc(B.Date_Terminated),nvl(trunc(Cv_Date_Terminate_From)-1,nvl(trunc(Cv_Date_Terminate_To)+1,trunc(sysdate)))) <=
19799                      nvl(trunc(Cv_Date_Terminate_To),nvl(trunc(B.Date_Terminated),trunc(sysdate)))*/
19800              AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19801              AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19802  	     AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19803  	     AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19804  	     AND     ((Cv_Date_Terminate_From IS NULL) OR
19805  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19806  	    AND     ((Cv_Date_Terminate_To IS NULL) OR
19807  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19808             AND     Sts_Code    = nvl(Cv_STATUS,B.Sts_Code)
19809             and     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19810             AND    (Cv_Cont_Pty_Id IS NULL
19811                      OR
19812                      EXISTS
19813                         (SELECT 'x'
19814                             FROM Okc_K_Party_Roles_B PR
19815                             WHERE pr.Cle_Id IS NULL
19816 			                AND PR.Dnz_Chr_Id = b.Id
19817                             --AND to_number(PR.Object1_Id1) = nvl(Cv_Cont_Pty_Id,to_number(PR.Object1_Id1))
19818                             AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19819                             AND PR.Object1_Id2 = '#'
19820                             AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19821                             AND PR.RLE_CODE <> 'VENDOR'))     ---Modified condition for ER9681794
19822 -- where clause for contract group added dtd Dec 17th, 2003
19823             AND    (Cv_contract_grp_id is null
19824                     OR
19825                     EXISTS (SELECT 'x'
19826                             FROM Okc_K_grpings grpng
19827                             WHERE grpng.included_chr_id = b.id
19828                             and   grpng.cgp_parent_id = Cv_contract_grp_id ));
19829                             /*commented for bug:6767455
19830     --        and   nvl(b.renewal_type_code,'#') = nvl(Cv_cont_renewal_code,nvl(b.renewal_type_code,'#'))
19831             AND     ((Cv_cont_renewal_code IS NULL)
19832                        OR
19833                        (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code not in ('ERN','NSR')
19834                          AND nvl(b.renewal_type_code,'#') = Cv_cont_renewal_code)
19835                        OR
19836                        (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'ERN'
19837                          AND nvl(b.renewal_type_code,'#') = 'NSR'
19838                          and nvl(oksb.electronic_renewal_flag,'N') = 'Y')
19839                        OR
19840                        (Cv_cont_renewal_code IS NOT NULL and Cv_cont_renewal_code = 'NSR'
19841                          AND nvl(b.renewal_type_code,'#') = 'NSR'
19842                          and nvl(oksb.electronic_renewal_flag,'N') = 'N'));*/
19843 
19844     CURSOR Lx_Csr_ContractNum_Contracts1(Cv_Contract_Num         IN VARCHAR2,
19845                             Cv_Contract_Num_Modifier IN VARCHAR2,
19846                             Cv_START_DATE_FROM          IN DATE,
19847                             Cv_START_DATE_TO            IN DATE,
19848                             Cv_END_DATE_FROM            IN DATE,
19849                             Cv_END_DATE_TO              IN DATE,
19850                             Cv_DATE_TERMINATE_FROM      IN DATE,
19851                             Cv_DATE_TERMINATE_TO        IN DATE,
19852                             Cv_STATUS                   IN VARCHAR2,
19853                             Cv_Cont_Pty_Id              IN NUMBER,
19854                             Cv_cont_renewal_code        IN VARCHAR2,
19855                             Cv_authoring_org_id         in number,
19856                             Cv_contract_grp_id          in number) IS
19857             SELECT  /*+ leadin(b) use_nl(b oksb) */ b.Id Id,  -- 11.5.10 rule rearchitecture changes
19858                     b.renewal_type_code,          -- Added by Jyothi for perf bug:4991724
19859  	            oksb.electronic_renewal_flag  -- Added by Jyothi for perf bug:4991724
19860             FROM    OKC_K_HEADERS_ALL_B B,  -- OKC_K_HEADERS_B B  -- Modified for 12.0 MOAC project (JVARGHES)
19861                     oks_k_headers_b oksb -- 11.5.10 rule rearchitecture changes
19862              WHERE   Contract_Number = Cv_Contract_Num
19863              and     b.id         = oksb.chr_id
19864              AND     B.Start_Date >= NVL(trunc(Cv_Start_Date_From),B.Start_Date)
19865              AND     B.Start_Date <= NVL((trunc(Cv_Start_Date_to)+0.99998843),B.Start_Date)
19866  	     AND     B.End_Date >= NVL(trunc(Cv_End_Date_From),B.End_Date)
19867  	     AND     B.End_Date <= NVL((trunc(Cv_End_Date_To)+0.99998843),B.End_Date)
19868  	     AND     ((Cv_Date_Terminate_From IS NULL) OR
19869  	                     (B.Date_Terminated >= trunc(Cv_Date_Terminate_From)))
19870  	    AND     ((Cv_Date_Terminate_To IS NULL) OR
19871  	                     (B.Date_Terminated <= (trunc(Cv_Date_Terminate_To)+0.99998843)))
19872             AND     Sts_Code    = nvl(Cv_STATUS,B.Sts_Code)
19873             and     authoring_org_id = nvl(cv_authoring_org_id,authoring_org_id) -- multi org security check
19874             AND    (Cv_Cont_Pty_Id IS NULL
19875                      OR
19876                      EXISTS
19877                         (SELECT 'x'
19878                             FROM Okc_K_Party_Roles_B PR
19879                             WHERE pr.Cle_Id IS NULL
19880 			                AND PR.Dnz_Chr_Id = b.Id
19881                             AND PR.Object1_Id1 = TO_CHAR(Cv_Cont_Pty_Id)
19882                             AND PR.Object1_Id2 = '#'
19883                             AND PR.Jtot_Object1_Code = 'OKX_PARTY'
19884                             AND PR.RLE_CODE not in ('VENDOR','MERCHANT')))     ---Modified condition for ER9681794
19885             AND    (Cv_contract_grp_id is null
19886                     OR
19887                     EXISTS (SELECT 'x'
19888                             FROM Okc_K_grpings grpng
19889                             WHERE grpng.included_chr_id = b.id
19890                             and   grpng.cgp_parent_id = Cv_contract_grp_id ));
19891 
19892 
19893     Lv_Contract_Id              CONSTANT NUMBER :=    P_Contract_Id;
19894     Lv_Contract_Num             CONSTANT VARCHAR2(120) :=    P_Contract_Num;
19895     Lv_Contract_Num_Modifier    CONSTANT VARCHAR2(120) :=    P_Contract_Num_Modifier;
19896     Lv_START_FROM_DATE          DATE;
19897     Lv_START_TO_DATE            DATE;
19898     Lv_END_FROM_DATE             DATE;
19899     Lv_END_TO_DATE               DATE;
19900     Lv_FROM_TERMINATE_DATE       DATE;
19901     Lv_TO_TERMINATE_DATE         DATE;
19902     Lv_STATUS                   CONSTANT VARCHAR2(120) :=    P_STATUS;
19903     Lv_Cont_Pty_Id              CONSTANT NUMBER        :=    P_Cont_Pty_Id;
19904     Lv_Cont_Renewal_Code        CONSTANT VARCHAR2(120) :=    P_cont_renewal_code;
19905     Lv_authoring_org_id         CONSTANT number        :=    P_authoring_org_id;
19906     Lv_contract_grp_id          CONSTANT number        :=    P_contract_grp_id;
19907     Lx_Result                  Gx_Boolean;
19908     Lx_Return_Status           Gx_Ret_Sts;
19909 
19910     l_last_date                DATE;
19911     l_first_date               DATE;
19912 
19913     Lx_Contracts               GT_Contract_Ref;
19914     Li_TableIdx                BINARY_INTEGER;
19915 
19916   BEGIN
19917     l_last_date                  :=   TO_DATE(5373484,'j');
19918     l_first_date                 :=   TO_DATE(1,'j');
19919     Lv_START_FROM_DATE           :=    P_START_DATE_FROM;
19920     Lv_START_TO_DATE             :=    P_START_DATE_TO;
19921     Lv_END_FROM_DATE             :=    P_END_DATE_FROM;
19922     Lv_END_TO_DATE               :=    P_END_DATE_TO;
19923     Lv_FROM_TERMINATE_DATE       :=    P_DATE_TERMINATE_FROM;
19924     Lv_TO_TERMINATE_DATE         :=    P_DATE_TERMINATE_TO;
19925     Lx_Result                    :=    G_TRUE;
19926     Lx_Return_Status             :=    G_RET_STS_SUCCESS;
19927 
19928     Li_TableIdx           := 0;
19929 
19930     if Lv_Contract_Id is not null then
19931       /*added for ER9681794*/
19932       IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
19933 
19934         FOR Idx IN Lx_Csr_Hdr_Contracts_sub(Lv_Contract_Id,
19935                                     Lv_Contract_Num,
19936                                     Lv_Contract_Num_Modifier,
19937                                     Lv_START_FROM_DATE,
19938                                     Lv_START_TO_DATE,
19939                                     Lv_END_FROM_DATE,
19940                                     Lv_END_TO_DATE,
19941                                     Lv_FROM_TERMINATE_DATE,
19942                                     Lv_TO_TERMINATE_DATE,
19943                                     Lv_STATUS,
19944                                     Lv_Cont_Pty_Id,
19945                                     Lv_Cont_Renewal_Code,
19946                                     Lv_authoring_org_id,
19947                                     Lv_contract_grp_id) LOOP
19948                  IF ((Lv_Cont_Renewal_Code IS NULL)                                  /*Added for bug:6767455*/
19949  	                        OR
19950  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
19951  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
19952  	                        OR
19953  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
19954  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
19955  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
19956  	                        OR
19957  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
19958  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
19959  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
19960  	            THEN
19961             Li_TableIdx  := Li_TableIdx + 1;
19962             Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
19963             END IF;
19964 
19965         END LOOP;
19966     ELSE
19967       /*added for ER9681794*/
19968       FOR Idx IN Lx_Csr_Hdr_Contracts(Lv_Contract_Id,
19969                                     Lv_Contract_Num,
19970                                     Lv_Contract_Num_Modifier,
19971                                     Lv_START_FROM_DATE,
19972                                     Lv_START_TO_DATE,
19973                                     Lv_END_FROM_DATE,
19974                                     Lv_END_TO_DATE,
19975                                     Lv_FROM_TERMINATE_DATE,
19976                                     Lv_TO_TERMINATE_DATE,
19977                                     Lv_STATUS,
19978                                     Lv_Cont_Pty_Id,
19979                                     Lv_Cont_Renewal_Code,
19980                                     Lv_authoring_org_id,
19981                                     Lv_contract_grp_id) LOOP
19982                  IF ((Lv_Cont_Renewal_Code IS NULL)                                  /*Added for bug:6767455*/
19983  	                        OR
19984  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
19985  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
19986  	                        OR
19987  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
19988  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
19989  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
19990  	                        OR
19991  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
19992  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
19993  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
19994  	            THEN
19995             Li_TableIdx  := Li_TableIdx + 1;
19996             Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
19997             END IF;
19998 
19999         END LOOP;
20000    END IF; ---added for ER9681794*/
20001     ELSIF (Lv_Contract_Num IS NOT NULL AND Lv_Contract_Num_Modifier IS NOT NULL )THEN          /*Added for bug:6767455*/
20002       /*added for ER9681794*/
20003       IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
20004 
20005         FOR Idx IN Lx_Csr_KNum_Mod_Contracts_sub(Lv_Contract_Num,
20006                                     Lv_Contract_Num_Modifier,
20007                                     Lv_START_FROM_DATE,
20008                                     Lv_START_TO_DATE,
20009                                     Lv_END_FROM_DATE,
20010                                     Lv_END_TO_DATE,
20011                                     Lv_FROM_TERMINATE_DATE,
20012                                     Lv_TO_TERMINATE_DATE,
20013                                     Lv_STATUS,
20014                                     Lv_Cont_Pty_Id,
20015                                     Lv_Cont_Renewal_Code,
20016                                     Lv_authoring_org_id,
20017                                     Lv_contract_grp_id) LOOP
20018        IF  ((Lv_Cont_Renewal_Code IS NULL)
20019  	                        OR
20020  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20021  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20022  	                        OR
20023  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20024  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20025  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20026  	                        OR
20027  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20028  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20029  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20030  	           THEN
20031 
20032             Li_TableIdx  := Li_TableIdx + 1;
20033             Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20034      END IF;
20035 
20036         END LOOP;
20037    ELSE
20038    /*Added for ER9681794*/
20039    FOR Idx IN Lx_Csr_KNum_Mod_Contracts(Lv_Contract_Num,
20040                                     Lv_Contract_Num_Modifier,
20041                                     Lv_START_FROM_DATE,
20042                                     Lv_START_TO_DATE,
20043                                     Lv_END_FROM_DATE,
20044                                     Lv_END_TO_DATE,
20045                                     Lv_FROM_TERMINATE_DATE,
20046                                     Lv_TO_TERMINATE_DATE,
20047                                     Lv_STATUS,
20048                                     Lv_Cont_Pty_Id,
20049                                     Lv_Cont_Renewal_Code,
20050                                     Lv_authoring_org_id,
20051                                     Lv_contract_grp_id) LOOP
20052        IF  ((Lv_Cont_Renewal_Code IS NULL)
20053  	                        OR
20054  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20055  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20056  	                        OR
20057  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20058  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20059  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20060  	                        OR
20061  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20062  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20063  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20064  	           THEN
20065 
20066             Li_TableIdx  := Li_TableIdx + 1;
20067             Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20068      END IF;
20069 
20070         END LOOP;
20071 
20072     END IF; /*added for ER9681794*/
20073 
20074   ELSIF Lv_Contract_Num IS NOT NULL THEN
20075    /*Added for ER9681794*/
20076    IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
20077 
20078     FOR Idx IN Lx_Csr_ContractNum_Contracts1(Lv_Contract_Num,
20079                       Lv_Contract_Num_Modifier,
20080                       Lv_START_FROM_DATE,
20081                       Lv_START_TO_DATE,
20082                        Lv_END_FROM_DATE,
20083                        Lv_END_TO_DATE,
20084                        Lv_FROM_TERMINATE_DATE,
20085  	                Lv_TO_TERMINATE_DATE,
20086  	               Lv_STATUS,
20087  	                Lv_Cont_Pty_Id,
20088  	                Lv_Cont_Renewal_Code,
20089  	                Lv_authoring_org_id,
20090  	                Lv_contract_grp_id) LOOP
20091  	           IF  ((Lv_Cont_Renewal_Code IS NULL)
20092  	                        OR
20093  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20094  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20095  	                        OR
20096  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20097  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20098  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20099  	                        OR
20100  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20101  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20102  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20103  	           THEN
20104                      Li_TableIdx  := Li_TableIdx + 1;
20105  	               Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20106  	           END IF;
20107            END LOOP;
20108     ELSE
20109     /*Added for ER9681794*/
20110     FOR Idx IN Lx_Csr_ContractNum_Contracts(Lv_Contract_Num,
20111                       Lv_Contract_Num_Modifier,
20112                       Lv_START_FROM_DATE,
20113                       Lv_START_TO_DATE,
20114                        Lv_END_FROM_DATE,
20115                        Lv_END_TO_DATE,
20116                        Lv_FROM_TERMINATE_DATE,
20117  	                Lv_TO_TERMINATE_DATE,
20118  	               Lv_STATUS,
20119  	                Lv_Cont_Pty_Id,
20120  	                Lv_Cont_Renewal_Code,
20121  	                Lv_authoring_org_id,
20122  	                Lv_contract_grp_id) LOOP
20123  	           IF  ((Lv_Cont_Renewal_Code IS NULL)
20124  	                        OR
20125  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20126  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20127  	                        OR
20128  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20129  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20130  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20131  	                        OR
20132  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20133  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20134  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20135  	           THEN
20136                      Li_TableIdx  := Li_TableIdx + 1;
20137  	               Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20138  	           END IF;
20139            END LOOP;
20140 	END IF;  ---added for ER9681794
20141 
20142    /* commented for bug:6767455  OKC_API.SET_MESSAGE
20143     (P_App_Name	  => G_APP_NAME_OKC
20144 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
20145 	,P_Token1	  => G_SQLCODE_TOKEN
20146 	,P_Token1_Value	  => SQLCODE
20147 	,P_Token2	  => G_SQLERRM_TOKEN
20148 	,P_Token2_Value   => SQLERRM);
20149 
20150     OKC_API.SET_MESSAGE
20151     (P_App_Name	  => G_APP_NAME_OKC
20152 	,P_Msg_Name	  => G_DEBUG_TOKEN
20153 	,P_Token1	  => G_PACKAGE_TOKEN
20154 	,P_Token1_Value	  => G_PKG_NAME
20155 	,P_Token2	  => G_PROGRAM_TOKEN
20156 	,P_Token2_Value   => 'Get_Contract_Id');
20157 
20158     X_Result            := G_FALSE;
20159     X_Return_Status     := G_RET_STS_UNEXP_ERROR;
20160 
20161 END Get_Contract_ID;*/
20162  ELSIF (Lv_Cont_Pty_Id IS NOT NULL AND Lv_contract_grp_id IS NOT NULL) THEN
20163   /*Added for ER9681794*/
20164   IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
20165 
20166   FOR Idx IN Lx_Csr_Party_Group_Contracts1(Lv_Contract_Num,
20167                                 Lv_Contract_Num_Modifier,
20168                                 Lv_START_FROM_DATE,
20169                                 Lv_START_TO_DATE,
20170                                 Lv_END_FROM_DATE,
20171                                 Lv_END_TO_DATE,
20172                                 Lv_FROM_TERMINATE_DATE,
20173  	                        Lv_TO_TERMINATE_DATE,
20174  	                        Lv_STATUS,
20175  	                        Lv_Cont_Pty_Id,
20176  	                        Lv_Cont_Renewal_Code,
20177  	                        Lv_authoring_org_id,
20178  	                        Lv_contract_grp_id) LOOP
20179  	           IF  ((Lv_Cont_Renewal_Code IS NULL)
20180  	                        OR
20181  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20182  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20183  	                        OR
20184  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20185  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20186  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20187  	                        OR
20188  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20189  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20190  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20191  	           THEN
20192                    Li_TableIdx  := Li_TableIdx + 1;
20193                    Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20194                     END IF;
20195                  END LOOP;
20196   ELSE
20197   /*added for ER9681794 */
20198    FOR Idx IN Lx_Csr_Party_Group_Contracts(Lv_Contract_Num,
20199                                 Lv_Contract_Num_Modifier,
20200                                 Lv_START_FROM_DATE,
20201                                 Lv_START_TO_DATE,
20202                                 Lv_END_FROM_DATE,
20203                                 Lv_END_TO_DATE,
20204                                 Lv_FROM_TERMINATE_DATE,
20205  	                        Lv_TO_TERMINATE_DATE,
20206  	                        Lv_STATUS,
20207  	                        Lv_Cont_Pty_Id,
20208  	                        Lv_Cont_Renewal_Code,
20209  	                        Lv_authoring_org_id,
20210  	                        Lv_contract_grp_id) LOOP
20211  	           IF  ((Lv_Cont_Renewal_Code IS NULL)
20212  	                        OR
20213  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20214  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20215  	                        OR
20216  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20217  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20218  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20219  	                        OR
20220  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20221  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20222  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20223  	           THEN
20224                    Li_TableIdx  := Li_TableIdx + 1;
20225                    Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20226                     END IF;
20227                  END LOOP;
20228   END IF;  ---added for ER9681794
20229 ELSIF (Lv_Cont_Pty_Id IS NOT NULL) THEN
20230  /*added for ER9681794*/
20231  IF nvl(FND_PROFILE.VALUE('OKS_DISPLAY_SUBSCRIPTION'),'N')='Y' then
20232       FOR Idx IN Lx_Csr_Party_Contracts_sub(Lv_Contract_Num,
20233  	                                     Lv_Contract_Num_Modifier,
20234  	                                     Lv_START_FROM_DATE,
20235  	                                     Lv_START_TO_DATE,
20236  	                                     Lv_END_FROM_DATE,
20237  	                                     Lv_END_TO_DATE,
20238  	                                     Lv_FROM_TERMINATE_DATE,
20239  	                                     Lv_TO_TERMINATE_DATE,
20240  	                                     Lv_STATUS,
20241  	                                     Lv_Cont_Pty_Id,
20242  	                                     Lv_Cont_Renewal_Code,
20243  	                                     Lv_authoring_org_id,
20244  	                                     Lv_contract_grp_id) LOOP
20245  	           IF  ((Lv_Cont_Renewal_Code IS NULL)
20246  	                        OR
20247  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20248  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20249  	                        OR
20250  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20251  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20252  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20253  	                        OR
20254  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20255  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20256  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20257  	           THEN
20258                          Li_TableIdx  := Li_TableIdx + 1;
20259                          Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20260                    END IF;
20261           END LOOP;
20262   ELSE
20263   /*added for ER9681794*/
20264     FOR Idx IN Lx_Csr_Party_Contracts(Lv_Contract_Num,
20265  	                                     Lv_Contract_Num_Modifier,
20266  	                                     Lv_START_FROM_DATE,
20267  	                                     Lv_START_TO_DATE,
20268  	                                     Lv_END_FROM_DATE,
20269  	                                     Lv_END_TO_DATE,
20270  	                                     Lv_FROM_TERMINATE_DATE,
20271  	                                     Lv_TO_TERMINATE_DATE,
20272  	                                     Lv_STATUS,
20273  	                                     Lv_Cont_Pty_Id,
20274  	                                     Lv_Cont_Renewal_Code,
20275  	                                     Lv_authoring_org_id,
20276  	                                     Lv_contract_grp_id) LOOP
20277  	           IF  ((Lv_Cont_Renewal_Code IS NULL)
20278  	                        OR
20279  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20280  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20281  	                        OR
20282  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20283  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20284  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20285  	                        OR
20286  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20287  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20288  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20289  	           THEN
20290                          Li_TableIdx  := Li_TableIdx + 1;
20291                          Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20292                          END IF;
20293                           END LOOP;
20294 END IF; ---Added for ER9681794*/
20295 
20296 ELSIF (Lv_contract_grp_id IS NOT NULL) THEN
20297  FOR Idx IN Lx_Csr_Group_Contracts(Lv_Contract_Num,
20298                                    Lv_Contract_Num_Modifier,
20299  	                           Lv_START_FROM_DATE,
20300  	                           Lv_START_TO_DATE,
20301  	                           Lv_END_FROM_DATE,
20302  	                           Lv_END_TO_DATE,
20303  	                           Lv_FROM_TERMINATE_DATE,
20304  	                           Lv_TO_TERMINATE_DATE,
20305  	                           Lv_STATUS,
20306  	                           Lv_Cont_Pty_Id,
20307  	                           Lv_Cont_Renewal_Code,
20308  	                           Lv_authoring_org_id,
20309  	                           Lv_contract_grp_id) LOOP
20310  	           IF  ((Lv_Cont_Renewal_Code IS NULL)
20311  	                        OR
20312  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20313  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20314  	                        OR
20315  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20316  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20317  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20318  	                        OR
20319  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20320  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20321  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20322  	           THEN
20323 
20324  	               Li_TableIdx  := Li_TableIdx + 1;
20325  	               Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20326  	           END IF;
20327 
20328  	         END LOOP;
20329  	     ELSIF (Lv_FROM_TERMINATE_DATE IS NOT NULL OR Lv_TO_TERMINATE_DATE IS NOT NULL) THEN     /*Added for bug:6767455*/
20330 
20331  	         IF (Lv_START_FROM_DATE IS NULL) THEN
20332  	             Lv_START_FROM_DATE := l_first_date;
20333  	         END IF;
20334 
20335  	         IF (Lv_START_TO_DATE IS NULL) THEN
20336  	             Lv_START_TO_DATE := l_last_date;
20337  	         END IF;
20338 
20339  	         IF (Lv_END_FROM_DATE IS NULL) THEN
20340  	             Lv_END_FROM_DATE := l_first_date;
20341  	          END IF;
20342 
20343  	         IF (Lv_END_TO_DATE IS NULL) THEN
20344  	             Lv_END_TO_DATE := l_last_date;
20345  	         END IF;
20346 
20347  	         IF (Lv_FROM_TERMINATE_DATE IS NULL) THEN
20348  	             Lv_FROM_TERMINATE_DATE := l_first_date;
20349  	         END IF;
20350 
20351  	         IF (Lv_TO_TERMINATE_DATE IS NULL) THEN
20352  	             Lv_TO_TERMINATE_DATE := l_last_date;
20353  	         END IF;
20354 
20355 
20356  	         Lv_START_FROM_DATE := TRUNC(Lv_START_FROM_DATE);
20357  	         Lv_END_FROM_DATE   := TRUNC(Lv_END_FROM_DATE);
20358  	         Lv_START_TO_DATE   := TRUNC(Lv_START_TO_DATE) + 0.99998843;
20359  	         Lv_END_TO_DATE     := TRUNC(Lv_END_TO_DATE) + 0.99998843;
20360  	         Lv_TO_TERMINATE_DATE   := TRUNC(Lv_TO_TERMINATE_DATE) + 0.99998843;                    /*Added for bug:6767455*/
20361  	         Lv_FROM_TERMINATE_DATE := TRUNC(Lv_FROM_TERMINATE_DATE);
20362 
20363 
20364  	         FOR Idx IN Lx_Csr_terdt_Contracts(Lv_Contract_Id,
20365  	                                     Lv_Contract_Num,
20366  	                                     Lv_Contract_Num_Modifier,
20367  	                                     Lv_START_FROM_DATE,
20368  	                                     Lv_START_TO_DATE,
20369  	                                     Lv_END_FROM_DATE,
20370  	                                     Lv_END_TO_DATE,
20371  	                                     Lv_FROM_TERMINATE_DATE,
20372  	                                     Lv_TO_TERMINATE_DATE,
20373  	                                     Lv_STATUS,
20374  	                                     Lv_Cont_Pty_Id,
20375  	                                     Lv_Cont_Renewal_Code,
20376  	                                     Lv_authoring_org_id,
20377  	                                     Lv_contract_grp_id) LOOP
20378  	           IF  ((Lv_Cont_Renewal_Code IS NULL)
20379  	                        OR
20380  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20381  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20382  	                        OR
20383  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20384  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20385  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20386  	                        OR
20387  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20388  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20389  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20390  	           THEN
20391 
20392  	               Li_TableIdx  := Li_TableIdx + 1;
20393  	               Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20394  	           END IF;
20395 
20396  	         END LOOP;
20397  	     ELSE
20398  	         IF (Lv_START_FROM_DATE IS NULL) THEN
20399  	             Lv_START_FROM_DATE := l_first_date;
20400  	         END IF;
20401 
20402  	         IF (Lv_START_TO_DATE IS NULL) THEN
20403  	             Lv_START_TO_DATE := l_last_date;
20404  	         END IF;
20405 
20406  	         IF (Lv_END_FROM_DATE IS NULL) THEN
20407  	             Lv_END_FROM_DATE := l_first_date;
20408  	          END IF;
20409 
20410  	         IF (Lv_END_TO_DATE IS NULL) THEN
20411  	             Lv_END_TO_DATE := l_last_date;
20412  	         END IF;
20413 
20414 
20415  	         Lv_START_FROM_DATE := TRUNC(Lv_START_FROM_DATE);
20416  	         Lv_END_FROM_DATE   := TRUNC(Lv_END_FROM_DATE);
20417  	         Lv_START_TO_DATE   := TRUNC(Lv_START_TO_DATE) + 0.99998843;
20418  	         Lv_END_TO_DATE     := TRUNC(Lv_END_TO_DATE) + 0.99998843;
20419 
20420  	         FOR Idx IN Lx_Csr_NoHdr_Contracts(Lv_Contract_Id,
20421  	                                     Lv_Contract_Num,
20422  	                                     Lv_Contract_Num_Modifier,
20423  	                                     Lv_START_FROM_DATE,
20424  	                                     Lv_START_TO_DATE,
20425  	                                     Lv_END_FROM_DATE,
20426  	                                     Lv_END_TO_DATE,
20427  	                                     Lv_FROM_TERMINATE_DATE,
20428  	                                     Lv_TO_TERMINATE_DATE,
20429  	                                     Lv_STATUS,
20430  	                                     Lv_Cont_Pty_Id,
20431  	                                     Lv_Cont_Renewal_Code,
20432  	                                     Lv_authoring_org_id,
20433  	                                     Lv_contract_grp_id) LOOP
20434  	           IF  ((Lv_Cont_Renewal_Code IS NULL)
20435  	                        OR
20436  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code not in ('ERN','NSR')
20437  	                          AND nvl(Idx.renewal_type_code,'#') = Lv_Cont_Renewal_Code)
20438  	                        OR
20439  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'ERN'
20440  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20441  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'Y')
20442  	                        OR
20443  	                        (Lv_Cont_Renewal_Code IS NOT NULL and Lv_Cont_Renewal_Code = 'NSR'
20444  	                          AND nvl(Idx.renewal_type_code,'#') = 'NSR'
20445  	                          and nvl(Idx.electronic_renewal_flag,'N') = 'N'))
20446  	           THEN
20447 
20448  	               Li_TableIdx  := Li_TableIdx + 1;
20449  	               Lx_Contracts(Li_TableIdx).Rx_Chr_Id := Idx.Id;
20450  	           END IF;
20451 
20452  	         END LOOP;
20453  	     END IF;
20454 
20455  	     X_Contracts          := Lx_Contracts;
20456  	     X_Result             := Lx_Result;
20457  	     X_Return_Status      := Lx_Return_Status;
20458 
20459 
20460  	   EXCEPTION
20461 
20462  	     WHEN OTHERS THEN
20463 
20464  	     OKC_API.SET_MESSAGE
20465  	     (P_App_Name   => G_APP_NAME_OKC
20466  	         ,P_Msg_Name          => G_UNEXPECTED_ERROR
20467  	         ,P_Token1          => G_SQLCODE_TOKEN
20468  	         ,P_Token1_Value          => SQLCODE
20469  	         ,P_Token2          => G_SQLERRM_TOKEN
20470  	         ,P_Token2_Value   => SQLERRM);
20471 
20472  	     OKC_API.SET_MESSAGE
20473  	     (P_App_Name   => G_APP_NAME_OKC
20474  	         ,P_Msg_Name          => G_DEBUG_TOKEN
20475  	         ,P_Token1          => G_PACKAGE_TOKEN
20476  	         ,P_Token1_Value          => G_PKG_NAME
20477  	         ,P_Token2          => G_PROGRAM_TOKEN
20478  	         ,P_Token2_Value   => 'Get_Contract_Id');
20479 
20480  	     X_Result            := G_FALSE;
20481  	     X_Return_Status     := G_RET_STS_UNEXP_ERROR;
20482 
20483  	 END Get_Contract_ID;
20484 
20485  	 PROCEDURE Dedup_Service_Line_PlSql_Table
20486  	     (P_Input_Tab          IN  output_tbl_contractline
20487  	     ,X_Output_Tab         OUT NOCOPY output_tbl_contractline
20488  	     ,X_Result             OUT NOCOPY Gx_Boolean
20489  	     ,X_Return_Status      OUT NOCOPY Gx_Ret_Sts)  IS
20490 
20491  	     Lx_DeDup_Tab          output_tbl_contractline;
20492  	     Lx_DeDup_Tab2         output_tbl_contractline ;
20493  	     Lx_Result             Gx_Boolean;
20494  	     Lx_Return_Status      Gx_Ret_Sts;
20495              Lx_Temp_ContRef       OKS_ENTITLEMENTS_PUB.output_rec_contractline;
20496              Li_TableIdx            BINARY_INTEGER;
20497     Li_TableIdx_Out        BINARY_INTEGER;
20498     Li_TableIdx_In         BINARY_INTEGER;
20499 
20500     Lv_Compare_Val1       OKC_K_LINES_B.ID%TYPE;--VARCHAR2(300);
20501     Lv_Compare_Val2       OKC_K_LINES_B.ID%TYPE;--VARCHAR2(300);
20502     K                     NUMBER;
20503     L_Found               VARCHAR2(1);
20504 
20505 BEGIN
20506 
20507     Lx_DeDup_Tab          := P_Input_Tab;
20508     Lx_Result             := G_TRUE;
20509     Lx_Return_Status      := G_RET_STS_SUCCESS;
20510     K                     := 1;
20511     L_Found               := 'N';
20512 
20513     FOR I IN Lx_DeDup_Tab.FIRST .. Lx_DeDup_Tab.LAST LOOP
20514 
20515         IF Lx_DeDup_Tab2.COUNT > 0 THEN
20516             L_Found := 'N';
20517             FOR J IN Lx_DeDup_Tab2.FIRST .. Lx_DeDup_Tab2.LAST LOOP
20518                 IF   Lx_DeDup_Tab(I).Service_ID = Lx_DeDup_Tab2(J).Service_Id THEN
20519 
20520                     L_Found := 'Y';
20521 
20522                 END IF;
20523 
20524             END LOOP;
20525                 IF L_Found = 'N' THEN
20526 
20527                     K := K + 1;
20528                     Lx_DeDup_Tab2(K) := Lx_DeDup_Tab(I);
20529 
20530                 END IF;
20531 
20532         ELSE
20533             Lx_DeDup_Tab2(1) := Lx_DeDup_Tab(I);
20534 
20535         END IF;
20536     END LOOP;
20537 
20538 
20539     Lx_DeDup_Tab.DELETE;
20540     Lx_DeDup_Tab := Lx_DeDup_Tab2;
20541     X_Output_Tab          := Lx_DeDup_Tab;
20542     X_Result              := Lx_Result;
20543     X_Return_Status       := Lx_Return_Status;
20544 
20545 EXCEPTION
20546 
20547     WHEN OTHERS THEN
20548 
20549       OKC_API.SET_MESSAGE
20550         (P_App_Name	  => G_APP_NAME_OKC
20551 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
20552 	,P_Token1	  => G_SQLCODE_TOKEN
20553 	,P_Token1_Value	  => SQLCODE
20554 	,P_Token2	  => G_SQLERRM_TOKEN
20555 	,P_Token2_Value   => SQLERRM);
20556 
20557       OKC_API.SET_MESSAGE
20558         (P_App_Name	  => G_APP_NAME_OKC
20559 	,P_Msg_Name	  => G_DEBUG_TOKEN
20560 	,P_Token1	  => G_PACKAGE_TOKEN
20561 	,P_Token1_Value	  => G_PKG_NAME
20562 	,P_Token2	  => G_PROGRAM_TOKEN
20563 	,P_Token2_Value   => 'Dedup_Service_Line_PlSql_Table');
20564 
20565       X_Result         := G_FALSE;
20566       X_Return_Status  := G_RET_STS_UNEXP_ERROR;
20567 
20568 END Dedup_Service_Line_PlSql_Table;
20569 
20570 PROCEDURE Get_Contract_Lines
20571             (P_Contracts               IN      GT_Contract_Ref
20572             ,P_Contract_line_Rec       IN      srchline_inpcontlinerec_type
20573             ,P_Covlevel_lines_passed   IN      varchar2
20574             ,P_Request_Date            IN      DATE
20575             ,P_Entitlement_Check_YN    IN      Varchar2
20576             ,p_authoring_org_id        in      number
20577             ,X_Contracts_02            OUT     nocopy output_tbl_contractline
20578             ,X_Result                  OUT     nocopy Gx_Boolean
20579             ,X_Return_Status           OUT     nocopy Gx_Ret_Sts) IS
20580 
20581 
20582 
20583 --
20584 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
20585 --
20586 
20587 /*
20588 
20589 CURSOR  get_Contract_cur   (P_Id IN NUMBER,
20590                             P_Cle_Id IN NUMBER,
20591                             P_Service_Item_id IN NUMBER,
20592                             P_Sts_Code          IN VARCHAR2,
20593                             P_Start_Date_From  IN DATE,
20594                             P_Start_Date_TO    IN DATE,
20595                             P_END_Date_From    IN DATE,
20596                             P_END_Date_TO      IN DATE,
20597                             P_Cov_type          IN VARCHAR2,
20598                             P_Bill_To           IN VARCHAR2,
20599                             P_Ship_To           IN VARCHAR2,
20600                             P_renewal_code      IN VARCHAR2,
20601                             p_authoring_org_id  in number) IS
20602         SELECT Hd.Id    Id,
20603                Hd.Contract_Number   Contract_Number,
20604                Hd.Contract_Number_Modifier Contract_Number_Modifier,
20605                Hd.Short_Description Short_Description,
20606                Hd.Start_Date    Hd_Start_Date,
20607                Hd.End_Date      Hd_End_Date,
20608                hd.scs_code      hd_scs_code,
20609                Sv.Id Service_ID,
20610                Sv.Line_Number Line_Number,
20611         --- truncating the dates to remove accidental existence of time components in dates.
20612                trunc(Sv.Start_Date) Start_Date,
20613                trunc(Sv.End_Date) End_Date,
20614                trunc(Sv.Date_Terminated) Date_Terminated,
20615                Sv.Sts_code Sts_code,
20616                SYS.description     Name,
20617         --- truncating the dates to remove accidental existence of time components in dates.
20618                trunc(Clv.Start_Date) Item_Start_Date,
20619                trunc(Clv.End_Date)   Item_End_Date,
20620                trunc(Clv.Date_Terminated)  Item_Date_Terminated,
20621                cov.id       cov_line_id,
20622                Cov.Name     Cov_Name,
20623         --- truncating the dates to remove accidental existence of time components in dates.
20624                trunc(Cov.Start_Date) Cov_Start_Date,
20625                trunc(Cov.End_Date)   Cov_End_Date,
20626                trunc(Cov.Date_Terminated) Cov_Date_Terminated,
20627                Sv.Lse_Id    Service_Lse_Id
20628         FROM    OKC_K_HEADERS_V HD,
20629                 OKC_K_LINES_V Sv,
20630                 OKC_K_LINES_V Cov,
20631                 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
20632                 OKC_K_LINES_V Clv,
20633                 OKC_K_ITEMS  items,
20634                 Okx_System_Items_V sys
20635         WHERE   Hd.Id = Sv.chr_id
20636         AND     Hd.Id = nvl(P_Id,Hd.Id)
20637         and     hd.authoring_org_id  = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
20638         AND     Sv.lse_id in (1,14,19)
20639         AND     Sv.id = items.cle_id
20640         AND     Sv.dnz_chr_id = items.dnz_chr_id
20641         AND     sys.id1 =  to_number(items.object1_id1)
20642         AND     sys.id2 =  to_number(items.object1_id2)
20643         AND     items.dnz_chr_id = Hd.Id
20644         AND     to_number(items.object1_id1) = nvl(P_service_Item_id,to_number(items.object1_id1))
20645         AND     items.JTOT_OBJECT1_CODE   in ('OKX_SERVICE','OKX_WARRANTY')
20646         AND     items.object1_id2 = sys.id2 --'204'
20647         AND     Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
20648         --- truncating the dates to remove accidental existence of time components in dates.
20649         AND     trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
20650         and     trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
20651         AND     trunc(sv.End_Date)   >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
20652         and     trunc(sv.End_Date)   <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
20653         AND     Cov.lse_id in (2,15,20)
20654         AND     Cov.cle_id = Sv.id
20655         AND     Cov.dnz_chr_Id = Sv.dnz_chr_Id
20656         and     okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
20657         AND     clv.id = P_Cle_Id --nvl(P_Cle_Id,clv.id)
20658         AND     clv.lse_id in (7,8,9,10,11,18,25,35)
20659         AND     clv.dnz_chr_id = Sv.dnz_chr_id
20660         AND     clv.dnz_chr_id = Hd.Id
20661         AND     clv.cle_id  = Sv.Id
20662         and     nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
20663         and     nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20664         and     nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20665         and     nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
20666         order by sv.id;
20667 */
20668 
20669 --
20670 -- Modified for 12.0 Coverage Rearch project (JVARGHES)
20671 --
20672 /*Added for bug:6767455*/
20673 CURSOR  get_Contract_noitem_cur(P_Id IN NUMBER,
20674                             P_Cle_Id IN NUMBER,
20675                             P_Sts_Code          IN VARCHAR2,
20676                             P_Start_Date_From  IN DATE,
20677                             P_Start_Date_TO    IN DATE,
20678                             P_END_Date_From    IN DATE,
20679                             P_END_Date_TO      IN DATE,
20680                             P_Cov_type          IN VARCHAR2,
20681                             P_Bill_To           IN VARCHAR2,
20682                             P_Ship_To           IN VARCHAR2,
20683                             P_renewal_code      IN VARCHAR2,
20684                             p_authoring_org_id  in number) IS
20685         SELECT /*+ leading(clv) use_nl(clv sv items sys hd cov okscov ) */
20686                Hd.Id    Id,
20687                Hd.Contract_Number   Contract_Number,
20688                Hd.Contract_Number_Modifier Contract_Number_Modifier,
20689                HdT.Short_Description Short_Description,  /*bug 7412576*/
20690                Hd.Start_Date    Hd_Start_Date,
20691                Hd.End_Date      Hd_End_Date,
20692                hd.scs_code      hd_scs_code,
20693 	       hd.org_id        org_id, /*bug:7363217*/
20694                Sv.Id Service_ID,
20695                Sv.Line_Number Line_Number,
20696         --- truncating the dates to remove accidental existence of time components in dates.
20697                trunc(Sv.Start_Date) Start_Date,
20698                trunc(Sv.End_Date) End_Date,
20699                trunc(Sv.Date_Terminated) Date_Terminated,
20700                Sv.Sts_code Sts_code,
20701                SYS.concatenated_segments     Name,
20702         --- truncating the dates to remove accidental existence of time components in dates.
20703                trunc(Clv.Start_Date) Item_Start_Date,
20704                trunc(Clv.End_Date)   Item_End_Date,
20705                trunc(Clv.Date_Terminated)  Item_Date_Terminated,
20706                cov.id       cov_line_id,
20707                Cov.Name     Cov_Name,
20708         --- truncating the dates to remove accidental existence of time components in dates.
20709                /*trunc(Cov.Start_Date) Cov_Start_Date,
20710                trunc(Cov.End_Date)   Cov_End_Date,
20711                trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/  /*bug 7412576*/
20712 	       trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
20713                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
20714                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
20715                Sv.Lse_Id    Service_Lse_Id
20716         FROM OKC_K_HEADERS_ALL_B HD,
20717                  OKC_K_HEADERS_TL HDT,       /*bug 7412576 OKC_K_HEADERS_V HD,*/
20718                 OKC_K_LINES_B Sv,
20719                 OKC_K_LINES_V Cov,
20720                  oks_k_lines_b  ksl,
20721                 oks_k_lines_B okscov, --11.5.10 rule rearchitecture changes
20722                 OKC_K_LINES_B Clv,
20723                 OKC_K_ITEMS  items,
20724                 MTL_SYSTEM_ITEMS_B_KFV sys
20725         WHERE   HDT.ID         = HD.ID
20726          AND     HDT.LANGUAGE   = USERENV('LANG')
20727          AND     Hd.Id = Sv.chr_id
20728         AND     Hd.Id = nvl(P_Id,Hd.Id)
20729         and     hd.authoring_org_id  = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
20730         AND     Sv.lse_id in (1,14,19)
20731         AND     Sv.id = items.cle_id
20732         AND     Sv.dnz_chr_id = items.dnz_chr_id
20733         AND     sys.inventory_item_id =  to_number(items.object1_id1)
20734         AND     sys.organization_id =  to_number(items.object1_id2)
20735         AND     items.dnz_chr_id = Hd.Id
20736         AND     items.JTOT_OBJECT1_CODE  in ('OKX_SERVICE','OKX_WARRANTY')
20737         -- AND     items.object1_id2 = sys.id2 --'204'
20738         AND     Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
20739         --- truncating the dates to remove accidental existence of time components in dates.
20740 --      AND     trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
20741 --      and     trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
20742 --      AND     trunc(sv.End_Date)   >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
20743 --      and     trunc(sv.End_Date)   <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
20744         AND     sv.Start_Date between P_Start_Date_From and P_Start_Date_to
20745         AND     sv.End_Date between P_End_Date_From and P_End_Date_To
20746        AND     ksl.cle_id = sv.id
20747         and     ksl.Coverage_Id = COV.Id    /*bug 7412576*/
20748         AND     Cov.lse_id in (2,15,20)
20749        /* AND     Cov.cle_id = Sv.id
20750         AND     Cov.dnz_chr_Id = Sv.dnz_chr_Id   */   /*bug 7412576*/
20751         and     okscov.cle_id = cov.id             -- 11.5.10 rule rearchitecture changes
20752         AND     clv.id = P_Cle_Id                   -- nvl(P_Cle_Id,clv.id)
20753         AND     clv.lse_id in (7,8,9,10,11,18,25,35)
20754         AND     clv.dnz_chr_id = Sv.dnz_chr_id
20755         AND     clv.dnz_chr_id = Hd.Id
20756         AND     clv.cle_id  = Sv.Id
20757         and     nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
20758  --     and     nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20759  --     and     nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20760         and     ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
20761         and     ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
20762         and     nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
20763         order by sv.id;
20764         /*Added for bug:6767455*/
20765 CURSOR  get_Contract_cur   (P_Id IN NUMBER,
20766                             P_Cle_Id IN NUMBER,
20767                             P_Service_Item_id IN NUMBER,
20768                             P_Sts_Code          IN VARCHAR2,
20769                             P_Start_Date_From  IN DATE,
20770                             P_Start_Date_TO    IN DATE,
20771                             P_END_Date_From    IN DATE,
20772                             P_END_Date_TO      IN DATE,
20773                             P_Cov_type          IN VARCHAR2,
20774                             P_Bill_To           IN VARCHAR2,
20775                             P_Ship_To           IN VARCHAR2,
20776                             P_renewal_code      IN VARCHAR2,
20777                             p_authoring_org_id  in number) IS
20778         SELECT /*+ leading(clv) use_nl(clv sv items sys hd cov okscov) index(items okc_k_items_n1)*/
20779                 Hd.Id    Id,
20780                Hd.Contract_Number   Contract_Number,
20781                Hd.Contract_Number_Modifier Contract_Number_Modifier,
20782                HdT.Short_Description Short_Description, -- HdT.Short_Description -- Modified for 12.0 MOAC project (JVARGHES)
20783                Hd.Start_Date    Hd_Start_Date,
20784                Hd.End_Date      Hd_End_Date,
20785                hd.scs_code      hd_scs_code,
20786                hd.org_id        org_id,                 -- Modified for 12.0 MOAC project (JVARGHES)
20787                Sv.Id Service_ID,
20788                Sv.Line_Number Line_Number,
20789         --- truncating the dates to remove accidental existence of time components in dates.
20790                trunc(Sv.Start_Date) Start_Date,
20791                trunc(Sv.End_Date) End_Date,
20792                trunc(Sv.Date_Terminated) Date_Terminated,
20793                Sv.Sts_code Sts_code,
20794                SYS.concatenated_segments    Name,
20795         --- truncating the dates to remove accidental existence of time components in dates.
20796                trunc(Clv.Start_Date) Item_Start_Date,
20797                trunc(Clv.End_Date)   Item_End_Date,
20798                trunc(Clv.Date_Terminated)  Item_Date_Terminated,
20799                cov.id       cov_line_id,
20800                Cov.Name     Cov_Name,
20801         --- truncating the dates to remove accidental existence of time components in dates.
20802                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
20803                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
20804                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
20805                Sv.Lse_Id    Service_Lse_Id
20806         FROM    OKC_K_HEADERS_ALL_B HD,   -- Modified for 12.0 MOAC project (JVARGHES)
20807                 OKC_K_HEADERS_TL HDT,     -- Okc_K_Headers_V HD   -- Modified for 12.0 MOAC project (JVARGHES)
20808                 OKC_K_LINES_B Sv,
20809                 OKS_K_LINES_B KSL,
20810                 OKC_K_LINES_V Cov,
20811                 oks_k_lines_B okscov, --11.5.10 rule rearchitecture changes
20812                 OKC_K_LINES_B Clv,
20813                 OKC_K_ITEMS  items,
20814                 MTL_SYSTEM_ITEMS_B_KFV sys
20815         WHERE   Hd.Id = Sv.chr_id
20816         AND     HDT.ID         = HD.ID                    -- Modified for 12.0 MOAC project (JVARGHES)
20817         AND     HDT.LANGUAGE   = USERENV('LANG')          -- Modified for 12.0 MOAC project (JVARGHES)
20818         AND     Hd.Id = nvl(P_Id,Hd.Id)
20819         and     hd.authoring_org_id  = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
20820         AND     Sv.lse_id in (1,14,19)
20821         AND     Sv.id = items.cle_id
20822         AND     Sv.dnz_chr_id = items.dnz_chr_id
20823         /*AND     sys.id1 =  to_number(items.object1_id1)
20824         AND     sys.id2 =  to_number(items.object1_id2)*/
20825         AND     sys.inventory_item_id =  to_number(items.object1_id1)
20826         AND     sys.organization_id =  to_number(items.object1_id2)
20827         AND     items.dnz_chr_id = Hd.Id
20828         --AND     to_number(items.object1_id1) = nvl(P_service_Item_id,to_number(items.object1_id1))
20829         AND     items.object1_id1 = to_number(P_service_Item_id)
20830         AND     items.JTOT_OBJECT1_CODE   in ('OKX_SERVICE','OKX_WARRANTY')
20831         --AND     items.object1_id2 = sys.id2 --'204'
20832         AND     Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
20833         --- truncating the dates to remove accidental existence of time components in dates.
20834         /*AND     trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
20835         and     trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
20836         AND     trunc(sv.End_Date)   >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
20837         and     trunc(sv.End_Date)   <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))*/
20838         AND     sv.Start_Date between P_Start_Date_From and P_Start_Date_to
20839         AND     sv.End_Date between P_End_Date_From and P_End_Date_To
20840         AND     ksl.cle_id = sv.id
20841         and     ksl.Coverage_Id = COV.Id
20842         AND     Cov.lse_id in (2,15,20)
20843         and     okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
20844         AND     clv.id = P_Cle_Id --nvl(P_Cle_Id,clv.id)
20845         AND     clv.lse_id in (7,8,9,10,11,18,25,35)
20846         AND     clv.dnz_chr_id = Sv.dnz_chr_id
20847         AND     clv.dnz_chr_id = Hd.Id
20848         AND     clv.cle_id  = Sv.Id
20849         and     nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
20850         /*and     nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20851         and     nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes*/
20852         and     ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
20853         and     ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
20854         and     nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
20855         order by sv.id;
20856 CURSOR  get_Contract_noclvl_noitem_cur   (P_Id IN NUMBER,
20857                             P_Cle_Id IN NUMBER,
20858                             P_Sts_Code          IN VARCHAR2,
20859                             P_Start_Date_From  IN DATE,
20860                             P_Start_Date_TO    IN DATE,
20861                             P_END_Date_From    IN DATE,
20862                             P_END_Date_TO      IN DATE,
20863                             P_Cov_type          IN VARCHAR2,
20864                             P_Bill_To           IN VARCHAR2,
20865                             P_Ship_To           IN VARCHAR2,
20866                             P_renewal_code      IN VARCHAR2,
20867                             p_authoring_org_id  in number) IS
20868         SELECT /*+ leading(sv) use_nl(sv items sys hd cov okscov) */
20869                Hd.Id    Id,
20870                Hd.Contract_Number   Contract_Number,
20871                Hd.Contract_Number_Modifier Contract_Number_Modifier,
20872                HdT.Short_Description Short_Description,         /*bug 7412576*/
20873                Hd.Start_Date    Hd_Start_Date,
20874                Hd.End_Date      Hd_End_Date,
20875                hd.scs_code      hd_scs_code,
20876                hd.org_id        org_id, /*bug:7363217*/
20877                Sv.Id Service_ID,
20878                Sv.Line_Number Line_Number,
20879         --- truncating the dates to remove accidental existence of time components in dates.
20880                trunc(Sv.Start_Date) Start_Date,
20881                trunc(Sv.End_Date) End_Date,
20882                trunc(Sv.Date_Terminated) Date_Terminated,
20883                Sv.Sts_code Sts_code,
20884                SYS.concatenated_segments     Name,
20885                cov.id       cov_line_id,
20886                Cov.Name     Cov_Name,
20887         --- truncating the dates to remove accidental existence of time components in dates.
20888                /*trunc(Cov.Start_Date) Cov_Start_Date,
20889                trunc(Cov.End_Date)   Cov_End_Date,
20890                trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/     /*bug 7412576*/
20891 	       trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
20892                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
20893                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
20894                Sv.Lse_Id    Service_Lse_Id
20895         FROM    OKC_K_HEADERS_ALL_B HD,
20896                 OKC_K_HEADERS_TL HDT, /*OKC_K_HEADERS_V HD,*/  /*bug 7412576*/
20897                 OKC_K_LINES_B Sv,
20898                 OKS_K_LINES_B KSL,
20899                 OKC_K_LINES_V Cov,
20900                 oks_k_lines_b okscov,--11.5.10 rule rearchitecture changes
20901                 OKC_K_ITEMS  items,
20902                 MTL_SYSTEM_ITEMS_B_KFV sys
20903         WHERE   Hd.Id = Sv.chr_id
20904         AND     HDT.ID = HD.ID
20905         AND     HDT.LANGUAGE   = USERENV('LANG')    /*bug 7412576*/
20906         AND     Hd.id = SV.DNZ_CHR_ID
20907         AND     Hd.Id = nvl(P_Id,Hd.Id)
20908         and     hd.authoring_org_id  = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
20909         AND     Sv.lse_id in (1,14,19)
20910         AND     Sv.id = items.cle_id
20911         AND     Sv.dnz_chr_id = items.dnz_chr_id
20912         AND     sys.inventory_item_id =  to_number(items.object1_id1)
20913         AND     sys.organization_id =  to_number(items.object1_id2)
20914         AND     items.dnz_chr_id = Hd.Id
20915         AND     items.JTOT_OBJECT1_CODE   in ('OKX_SERVICE','OKX_WARRANTY')
20916      --   AND     items.object1_id2 = sys.id2 --'204'
20917         AND     Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
20918         --- truncating the dates to remove accidental existence of time components in dates.
20919 --      AND     trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
20920 --      and     trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
20921 --      AND     trunc(sv.End_Date)   >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
20922 --      and     trunc(sv.End_Date)   <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
20923         AND     sv.Start_Date between P_Start_Date_From and P_Start_Date_to
20924         AND     sv.End_Date between P_End_Date_From and P_End_Date_To
20925         AND     ksl.cle_id = sv.id
20926         and     ksl.Coverage_Id = COV.Id
20927         AND     Cov.lse_id in (2,15,20)
20928       /*  AND     Cov.cle_id = Sv.id
20929         AND     Cov.dnz_chr_Id = Sv.dnz_chr_Id*/          /*bug 7412576*/
20930         and     okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
20931         and     nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
20932 --      and     nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20933 --      and     nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
20934         and     ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
20935         and     ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
20936         and     nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
20937         order by sv.id;
20938 
20939 CURSOR  get_Cont_noclvl_chr_noitem_cur   (P_Id IN NUMBER,
20940                             P_Cle_Id IN NUMBER,                     -- not being used anywhere
20941                             P_Sts_Code          IN VARCHAR2,
20942                             P_Start_Date_From  IN DATE,
20943                             P_Start_Date_TO    IN DATE,
20944                             P_END_Date_From    IN DATE,
20945                             P_END_Date_TO      IN DATE,
20946                             P_Cov_type          IN VARCHAR2,
20947                             P_Bill_To           IN VARCHAR2,
20948                             P_Ship_To           IN VARCHAR2,
20949                             P_renewal_code      IN VARCHAR2,
20950                             p_authoring_org_id  in number) IS
20951         SELECT /*+ leading(hd) use_nl(hd sv items sys cov okscov) */
20952                Hd.Id    Id,
20953                Hd.Contract_Number   Contract_Number,
20954                Hd.Contract_Number_Modifier Contract_Number_Modifier,
20955                HdT.Short_Description Short_Description,    /*bug 7412576*/
20956                Hd.Start_Date    Hd_Start_Date,
20957                Hd.End_Date      Hd_End_Date,
20958                hd.scs_code      hd_scs_code,
20959                hd.org_id        org_id, /*bug:7363217*/
20960                Sv.Id Service_ID,
20961                Sv.Line_Number Line_Number,
20962         --- truncating the dates to remove accidental existence of time components in dates.
20963                trunc(Sv.Start_Date) Start_Date,
20964                trunc(Sv.End_Date) End_Date,
20965                trunc(Sv.Date_Terminated) Date_Terminated,
20966                Sv.Sts_code Sts_code,
20967                SYS.concatenated_segments     Name,
20968                cov.id       cov_line_id,
20969                Cov.Name     Cov_Name,
20970         --- truncating the dates to remove accidental existence of time components in dates.
20971 
20972 	      /* trunc(Cov.Start_Date) Cov_Start_Date,
20973                trunc(Cov.End_Date)   Cov_End_Date,
20974                trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/        /*bug 7412576*/
20975                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
20976                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
20977                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
20978                Sv.Lse_Id    Service_Lse_Id
20979         FROM     OKC_K_HEADERS_ALL_B HD,
20980                 OKC_K_HEADERS_TL HDT,/*OKC_K_HEADERS_V HD,*/ /*bug 7412576*/
20981                 OKC_K_LINES_B Sv,
20982                 OKS_K_LINES_B KSL,
20983                 OKC_K_LINES_V Cov,
20984                 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
20985                 OKC_K_ITEMS  items,
20986                 MTL_SYSTEM_ITEMS_B_KFV  sys
20987         WHERE   Hd.Id = Sv.chr_id
20988         AND   HDT.ID = HD.ID
20989         AND   HDT.LANGUAGE   = USERENV('LANG')
20990         AND     Hd.id = SV.DNZ_CHR_ID
20991         AND     Hd.Id = P_ID                    -- nvl(P_Id,Hd.Id)
20992         and     hd.authoring_org_id  = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
20993         AND     Sv.lse_id in (1,14,19)
20994         AND     Sv.id = items.cle_id
20995         AND     Sv.dnz_chr_id = items.dnz_chr_id
20996         AND     sys.inventory_item_id =  to_number(items.object1_id1)
20997         AND     sys.organization_id =  to_number(items.object1_id2)
20998         AND     items.dnz_chr_id = Hd.Id
20999         AND     items.JTOT_OBJECT1_CODE   in ('OKX_SERVICE','OKX_WARRANTY')
21000        -- AND     items.object1_id2 = sys.id2 --'204'
21001         AND     Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
21002         --- truncating the dates to remove accidental existence of time components in dates.
21003 --      AND     trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
21004 --      and     trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
21005 --      AND     trunc(sv.End_Date)   >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
21006 --      and     trunc(sv.End_Date)   <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
21007         AND     sv.Start_Date between P_Start_Date_From and P_Start_Date_to
21008         AND     sv.End_Date between P_End_Date_From and P_End_Date_To
21009         AND     ksl.cle_id = sv.id
21010         and     ksl.Coverage_Id = COV.Id
21011         AND     Cov.lse_id in (2,15,20)
21012        /* AND     Cov.cle_id = Sv.id
21013         AND     Cov.dnz_chr_Id = Sv.dnz_chr_Id*/   /*bug 7412576*/
21014         and     okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
21015         and     nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
21016 --      and     nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
21017 --      and     nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
21018         and     ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
21019         and     ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
21020         and     nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
21021         order by sv.id;
21022 
21023         /*modified for bug:8700389*/ --Fix for Bug#16188340
21024          CURSOR  get_Cont_noclvl_kid_noitem_cur(P_Id IN NUMBER,
21025  	                             P_Start_Date_From  IN DATE,
21026  	                             P_Start_Date_TO    IN DATE,
21027  	                             P_END_Date_From    IN DATE,
21028  	                             P_END_Date_TO      IN DATE) IS
21029  	         SELECT /*+ leading(hd) use_nl(hd sv items sys cov okscov) */
21030  	                Hd.Id    Id,
21031  	                Hd.Contract_Number   Contract_Number,
21032  	                Hd.Contract_Number_Modifier Contract_Number_Modifier,
21033  	                HDT.SHORT_DESCRIPTION SHORT_DESCRIPTION,
21034  	                Hd.Start_Date    Hd_Start_Date,
21035  	                Hd.End_Date      Hd_End_Date,
21036  	                hd.scs_code      hd_scs_code,
21037                         hd.org_id        org_id,
21038  	                Sv.Id Service_ID,
21039  	                Sv.Line_Number Line_Number,
21040  	                trunc(Sv.Start_Date) Start_Date,
21041  	                trunc(Sv.End_Date) End_Date,
21042  	                trunc(Sv.Date_Terminated) Date_Terminated,
21043  	                Sv.Sts_code Sts_code,
21044  	                SYS.concatenated_segments     Name,
21045  	                cov.id       cov_line_id,
21046  	                COVTL.NAME COV_NAME,
21047  	               /* trunc(Cov.Start_Date) Cov_Start_Date,
21048  	                trunc(Cov.End_Date)   Cov_End_Date,
21049  	                trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/
21050                         trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
21051                         trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
21052                         trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
21053  	                Sv.Lse_Id    Service_Lse_Id
21054  	         FROM    OKC_K_HEADERS_ALL_B HD,        /*modified for bug:8700389*/
21055  	                 OKC_K_HEADERS_TL HDT,
21056  	                 OKC_K_LINES_B Sv,
21057                          OKS_K_LINES_B KSL,
21058  	                 OKC_K_LINES_B Cov,
21059  	                 OKC_K_LINES_TL COVTL,
21060  	                 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
21061  	                 OKC_K_ITEMS  items,
21062  	                 MTL_SYSTEM_ITEMS_B_KFV  sys
21063  	         WHERE   Hd.Id = Sv.chr_id
21064  	         AND     Hd.id = SV.DNZ_CHR_ID
21065  	         AND     Hd.Id = P_ID                    -- nvl(P_Id,Hd.Id)
21066  	         AND     HD.ID=HDT.ID
21067  	         AND     HDT.LANGUAGE = USERENV('LANG')
21068  	         AND     Sv.lse_id in (1,14,19)
21069  	         AND     Sv.id = items.cle_id
21070  	         AND     Sv.dnz_chr_id = items.dnz_chr_id
21071  	         AND     sys.inventory_item_id =  to_number(items.object1_id1)
21072  	         AND     sys.organization_id =  to_number(items.object1_id2)
21073  	         AND     items.dnz_chr_id = Hd.Id
21074  	         AND     items.JTOT_OBJECT1_CODE   in ('OKX_SERVICE','OKX_WARRANTY')
21075  	         AND     sv.Start_Date between P_Start_Date_From and P_Start_Date_to
21076  	         AND     sv.End_Date between P_End_Date_From and P_End_Date_To
21077                  AND     ksl.cle_id = sv.id
21078                  AND     ksl.Coverage_Id = COV.Id
21079                  AND     Cov.lse_id in (2,15,20)
21080  	         /*AND     Cov.cle_id = Sv.id
21081  	         AND     Cov.dnz_chr_Id = Sv.dnz_chr_Id*/
21082  	         AND     COVTL.ID=COV.ID
21083  	         AND     COVTL.LANGUAGE = USERENV('LANG')
21084  	         and     okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
21085  	         order by sv.id;
21086 
21087 CURSOR  get_Contract_noclvl_cur   (P_Id IN NUMBER,
21088                             P_Cle_Id IN NUMBER,
21089                             P_Service_Item_id IN NUMBER,
21090                             P_Sts_Code          IN VARCHAR2,
21091                             P_Start_Date_From  IN DATE,
21092                             P_Start_Date_TO    IN DATE,
21093                             P_END_Date_From    IN DATE,
21094                             P_END_Date_TO      IN DATE,
21095                             P_Cov_type          IN VARCHAR2,
21096                             P_Bill_To           IN VARCHAR2,
21097                             P_Ship_To           IN VARCHAR2,
21098                             P_renewal_code      IN VARCHAR2,
21099                             p_authoring_org_id  in number) IS
21100         SELECT /*+ leading(sv) use_nl(sv items sys hd cov okscov) index(items okc_k_items_n1)*/
21101                 Hd.Id    Id,
21102                Hd.Contract_Number   Contract_Number,
21103                Hd.Contract_Number_Modifier Contract_Number_Modifier,
21104                HdT.Short_Description Short_Description, -- HdT.Short_Description -- Modified for 12.0 MOAC project (JVARGHES)
21105                Hd.Start_Date    Hd_Start_Date,
21106                Hd.End_Date      Hd_End_Date,
21107                hd.scs_code      hd_scs_code,
21108                hd.org_id        org_id,                 -- Modified for 12.0 MOAC project (JVARGHES)
21109                Sv.Id Service_ID,
21110                Sv.Line_Number Line_Number,
21111         --- truncating the dates to remove accidental existence of time components in dates.
21112                trunc(Sv.Start_Date) Start_Date,
21113                trunc(Sv.End_Date) End_Date,
21114                trunc(Sv.Date_Terminated) Date_Terminated,
21115                Sv.Sts_code Sts_code,
21116                SYS.concatenated_segments     Name,
21117                cov.id       cov_line_id,
21118                Cov.Name     Cov_Name,
21119         --- truncating the dates to remove accidental existence of time components in dates.
21120                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
21121                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
21122                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
21123                Sv.Lse_Id    Service_Lse_Id
21124         FROM    OKC_K_HEADERS_ALL_B HD,   -- Modified for 12.0 MOAC project (JVARGHES)
21125                OKC_K_HEADERS_TL HDT,     -- Okc_K_Headers_V HD   -- Modified for 12.0 MOAC project (JVARGHES)
21126                 OKC_K_LINES_B Sv,
21127                 OKC_K_LINES_V Cov,
21128                 oks_k_lines_b  ksl,
21129                 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
21130                 OKC_K_ITEMS  items,
21131                 MTL_SYSTEM_ITEMS_B_KFV sys
21132         WHERE   Hd.Id = Sv.chr_id
21133         AND     Hd.id = SV.DNZ_CHR_ID
21134         AND     HDT.ID         = HD.ID                    -- Modified for 12.0 MOAC project (JVARGHES)
21135         AND     HDT.LANGUAGE   = USERENV('LANG')          -- Modified for 12.0 MOAC project (JVARGHES)
21136         AND     Hd.Id = nvl(P_Id,Hd.Id)
21137         and     hd.authoring_org_id  = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
21138         AND     Sv.lse_id in (1,14,19)
21139         AND     Sv.id = items.cle_id
21140         AND     Sv.dnz_chr_id = items.dnz_chr_id
21141        /*AND     sys.id1 =  to_number(items.object1_id1)
21142         AND     sys.id2 =  to_number(items.object1_id2)*/    /*Bug:6767455*/
21143         AND     sys.inventory_item_id =  to_number(items.object1_id1)
21144         AND     sys.organization_id =  to_number(items.object1_id2)
21145         AND     items.dnz_chr_id = Hd.Id
21146         AND     items.object1_id1 = to_number(P_service_Item_id)
21147         AND     items.JTOT_OBJECT1_CODE   in ('OKX_SERVICE','OKX_WARRANTY')
21148        -- AND     items.object1_id2 = sys.id2 --'204'
21149         AND     Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
21150         --- truncating the dates to remove accidental existence of time components in dates.
21151  --     AND     trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
21152  --     and     trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
21153  --     AND     trunc(sv.End_Date)   >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
21154  --     and     trunc(sv.End_Date)   <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))
21155         AND     sv.Start_Date between P_Start_Date_From and P_Start_Date_to
21156         AND     sv.End_Date between P_End_Date_From and P_End_Date_To
21157        AND     ksl.cle_id = sv.id
21158         and     ksl.Coverage_Id = COV.Id
21159         AND     Cov.lse_id in (2,15,20)
21160         /*AND     Cov.cle_id = Sv.id
21161         AND     Cov.dnz_chr_Id = Sv.dnz_chr_Id*/         /*bug 7412576*/
21162         and     okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
21163         and     nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
21164  --     and     nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
21165  --     and     nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
21166         and     ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
21167         and     ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
21168         and     nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
21169         order by sv.id;
21170 
21171 CURSOR  get_Cont_noclvl_chr_cur   (P_Id IN NUMBER,
21172                             P_Cle_Id IN NUMBER,                  -- not being used anywhere
21173                             P_Service_Item_id IN NUMBER,
21174                             P_Sts_Code          IN VARCHAR2,
21175                             P_Start_Date_From  IN DATE,
21176                             P_Start_Date_TO    IN DATE,
21177                             P_END_Date_From    IN DATE,
21178                             P_END_Date_TO      IN DATE,
21179                             P_Cov_type          IN VARCHAR2,
21180                             P_Bill_To           IN VARCHAR2,
21181                             P_Ship_To           IN VARCHAR2,
21182                             P_renewal_code      IN VARCHAR2,
21183                             p_authoring_org_id  in number) IS
21184         SELECT /*+ leading(hd) use_nl(hd sv items sys cov okscov) index(items okc_k_items_n1)*/
21185                Hd.Id    Id,
21186                Hd.Contract_Number   Contract_Number,
21187                Hd.Contract_Number_Modifier Contract_Number_Modifier,
21188                HdT.Short_Description Short_Description,        /*bug 7412576*/
21189                Hd.Start_Date    Hd_Start_Date,
21190                Hd.End_Date      Hd_End_Date,
21191                hd.scs_code      hd_scs_code,
21192               hd.org_id        org_id, /*bug:7363217*/
21193                Sv.Id Service_ID,
21194                Sv.Line_Number Line_Number,
21195         --- truncating the dates to remove accidental existence of time components in dates.
21196                trunc(Sv.Start_Date) Start_Date,
21197                trunc(Sv.End_Date) End_Date,
21198                trunc(Sv.Date_Terminated) Date_Terminated,
21199                Sv.Sts_code Sts_code,
21200                SYS.concatenated_segments     Name,
21201                cov.id       cov_line_id,
21202                Cov.Name     Cov_Name,
21203         --- truncating the dates to remove accidental existence of time components in dates.
21204                /*trunc(Cov.Start_Date) Cov_Start_Date,
21205                trunc(Cov.End_Date)   Cov_End_Date,
21206                trunc(Cov.Date_Terminated) Cov_Date_Terminated,*/  /*bug 7412576*/
21207                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Start_Date,Cov.Start_Date)) Cov_Start_Date,
21208                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.END_Date,Cov.END_Date)) Cov_END_Date,
21209                trunc(DECODE(KSL.Standard_Cov_YN,'Y',SV.Date_Terminated,Cov.Date_Terminated)) Cov_Date_Terminated,
21210                Sv.Lse_Id    Service_Lse_Id
21211         FROM    OKC_K_HEADERS_ALL_B HD,
21212                 OKC_K_HEADERS_TL HDT,     /*OKC_K_HEADERS_V HD,*/ /*bug 7412576*/
21213                 OKC_K_LINES_B Sv,
21214                 OKC_K_LINES_V Cov,
21215                  oks_k_lines_b  ksl,
21216                 oks_k_lines_b okscov, --11.5.10 rule rearchitecture changes
21217                 OKC_K_ITEMS  items,
21218                 MTL_SYSTEM_ITEMS_B_KFV sys
21219         WHERE   Hd.Id = Sv.chr_id
21220         AND     HDT.ID = HD.ID
21221        AND     HDT.LANGUAGE   = USERENV('LANG')        /*bug 7412576*/
21222         AND     Hd.id = SV.DNZ_CHR_ID
21223         AND     Hd.Id = p_id                -- nvl(P_Id,Hd.Id)
21224         and     hd.authoring_org_id  = nvl(p_authoring_org_id,hd.authoring_org_id) -- multi org security check
21225         AND     Sv.lse_id in (1,14,19)
21226         AND     Sv.id = items.cle_id
21227         AND     Sv.dnz_chr_id = items.dnz_chr_id
21228         AND     sys.inventory_item_id =  to_number(items.object1_id1)
21229         AND     sys.organization_id =  to_number(items.object1_id2)
21230         AND     items.dnz_chr_id = Hd.Id
21231         --AND     to_number(items.object1_id1) = nvl(P_service_Item_id,to_number(items.object1_id1))
21232          AND     items.object1_id1 = to_number(P_service_Item_id)
21233         AND     items.JTOT_OBJECT1_CODE   in ('OKX_SERVICE','OKX_WARRANTY')
21234        --AND     items.object1_id2 = sys.id2 --'204'
21235         AND     Sv.Sts_code = nvl(p_Sts_Code,Sv.Sts_code)
21236         --- truncating the dates to remove accidental existence of time components in dates.
21237         /*AND     trunc(sv.Start_Date) >= nvl(trunc(P_Start_Date_From),trunc(sv.Start_Date))
21238         and     trunc(sv.Start_Date) <= nvl(trunc(P_Start_Date_to),trunc(sv.Start_Date))
21239         AND     trunc(sv.End_Date)   >= nvl(trunc(P_End_Date_From),trunc(sv.End_Date))
21240         and     trunc(sv.End_Date)   <= nvl(trunc(P_End_Date_To),trunc(sv.End_Date))*/
21241         AND     sv.Start_Date between P_Start_Date_From and P_Start_Date_to
21242         AND     sv.End_Date between P_End_Date_From and P_End_Date_To
21243         AND     ksl.cle_id = sv.id
21244         and     ksl.Coverage_Id = COV.Id              /*commented for bug:6767455*/ /*bug 7412576*/
21245         AND     Cov.lse_id in (2,15,20)
21246        /* AND     Cov.cle_id = Sv.id
21247         AND     Cov.dnz_chr_Id = Sv.dnz_chr_Id*/
21248         and     okscov.cle_id = cov.id --11.5.10 rule rearchitecture changes
21249         and     nvl(okscov.coverage_type,'#') = nvl(p_cov_type,nvl(okscov.coverage_type,'#'))--11.5.10 rule rearchitecture changes
21250         /*and     nvl(sv.bill_to_site_use_id,-99) = nvl(p_bill_to,nvl(sv.bill_to_site_use_id,-99))--11.5.10 rule rearchitecture changes
21251         and     nvl(sv.ship_to_site_use_id,-99) = nvl(p_ship_to,nvl(sv.ship_to_site_use_id,-99))--11.5.10 rule rearchitecture changes*/
21252         and     ((p_bill_to IS NULL) OR (sv.bill_to_site_use_id = p_bill_to)) --11.5.10 rule rearchitecture changes
21253         and     ((p_ship_to IS NULL) OR (sv.ship_to_site_use_id = p_ship_to))
21254         and     nvl(sv.line_renewal_type_code,'#') = nvl(p_renewal_code,nvl(sv.line_renewal_type_code,'#'))--11.5.10 rule rearchitecture changes
21255         order by sv.id;
21256 Type l_num_tbl is table of NUMBER index  by BINARY_INTEGER ;                      /* Added for bug:6767455*/
21257   Type l_date_tbl is table of DATE index  by BINARY_INTEGER ;
21258   Type l_chr_tbl is table of Varchar2(600) index  by BINARY_INTEGER ;
21259 
21260   Id                        l_num_tbl;
21261   contract_number           l_chr_tbl;
21262   Contract_Number_Modifier  l_chr_tbl;
21263   Short_Description         l_chr_tbl;
21264   Hd_Start_Date             l_date_tbl;
21265   Hd_End_Date               l_date_tbl;
21266   hd_scs_code               l_chr_tbl;
21267   org_id                    l_num_tbl;
21268   Service_ID                l_num_tbl;
21269   Line_Number               l_num_tbl;
21270   Start_Date                l_date_tbl;
21271   End_Date                  l_date_tbl;
21272   Date_Terminated           l_date_tbl;
21273   Sts_code                  l_chr_tbl;
21274   Name                      l_chr_tbl;
21275   Item_Start_Date           l_date_tbl;
21276   Item_End_Date             l_date_tbl;
21277   Item_Date_Terminated      l_date_tbl;
21278   cov_line_id               l_num_tbl;
21279   Cov_Name                  l_chr_tbl;
21280   Cov_Start_Date            l_date_tbl;
21281   Cov_End_Date              l_date_tbl;
21282   Cov_Date_Terminated       l_date_tbl;
21283   Service_Lse_Id            l_num_tbl;
21284 
21285     Lv_Contracts                GT_Contract_Ref;
21286     Lv_Contract_line_Rec        srchline_inpcontlinerec_type;
21287     Lv_Request_Date             Date;
21288     Lv_Contracts_02             output_tbl_contractline ;
21289     Lv_Contracts_02_Out         output_tbl_contractline ;
21290 
21291     Lv_Entitlment_Check         CONSTANT    VARCHAR2(1) := P_Entitlement_Check_YN;
21292     Lv_authoring_org_id         CONSTANT    number := P_authoring_org_id; -- multi org security check
21293     Lv_covlevel_lines_passed    CONSTANT    VARCHAR2(1) := P_Covlevel_lines_passed;
21294 
21295     Lx_Result                   Gx_Boolean;
21296     Lx_Return_Status            Gx_Ret_Sts;
21297 
21298     Lx_counter                  Binary_Integer;
21299     Lv_Entile_Flag              VARCHAR2(1);
21300     L_Profile_Flag              VARCHAR2(1);
21301     L_return_Status             VARCHAR2(1);
21302     Lx_service_id               number;
21303     L_valid_line                varchar2(1);
21304     L_line_id_tbl               Line_id_tbl;
21305     l_last_date                 DATE;
21306     l_first_date                DATE;
21307 
21308    -- Modified for 12.0 MOAC project (JVARGHES)
21309    --
21310 
21311     CURSOR c_OU(c_Org_Id IN NUMBER)
21312     IS SELECT OU.Name
21313          FROM HR_ALL_ORGANIZATION_UNITS_TL OU
21314         WHERE OU.ORGANIZATION_ID = c_Org_Id
21315           AND OU.LANGUAGE = USERENV('LANG');
21316    --
21317    --
21318 
21319     FUNCTION Get_Line_Styles(P_lse_id IN NUMBER) Return Varchar2 is
21320 
21321         CURSOR get_line_style (lse_id IN NUMBER) IS
21322         SELECT  Id,NAME
21323         FROM    OKC_LINE_STYLES_V
21324         WHERE   ID = lse_id;
21325 
21326         L_Lse_Id       NUMBER;
21327         L_style_name   VARCHAR2(100);
21328     BEGIN
21329         L_Lse_Id       := P_lse_id;
21330         L_style_name   := NULL;
21331 
21332         FOR get_line_style_rec in get_line_style(l_Lse_id) LOOP
21333             l_style_name := get_line_style_rec.NAME;
21334 
21335         END LOOP;
21336         RETURN l_style_name;
21337     END Get_Line_Styles;
21338 
21339     PROCEDURE Fetch_Sts_Meaning IS
21340 
21341         CURSOR GET_STATUS_CUR IS
21342          SELECT CODE,MEANING
21343          FROM   OKC_STATUSES_V ;
21344 
21345         i Number;
21346     BEGIN
21347         i := 1;
21348         l_status_tab.DELETE;
21349 
21350         FOR GET_STATUS_REC IN GET_STATUS_CUR   LOOP
21351             l_status_tab(i).Code := GET_STATUS_REC.CODE;
21352             l_status_tab(i).Meaning := GET_STATUS_REC.MEANING;
21353             i := i+1;
21354         END LOOP;
21355 
21356     END Fetch_Sts_Meaning;
21357 
21358     FUNCTION    Get_Sts_Meaning (L_CODE IN VARCHAR2) RETURN VARCHAR2 IS
21359     BEGIN
21360         FOR I IN L_STATUS_TAB.FIRST .. L_STATUS_TAB.LAST LOOP
21361             IF l_Code = L_STATUS_TAB(i).CODE THEN
21362                     RETURN L_STATUS_TAB(i).MEANING;
21363             END IF;
21364         END LOOP;
21365     END Get_Sts_Meaning;
21366 
21367     FUNCTION  Get_Line_Processed (p_line_id IN VARCHAR2,
21368                               p_line_id_tbl IN OUT NOCOPY line_id_tbl ) RETURN VARCHAR2 IS
21369 
21370         l_line_processed        varchar2(1);
21371 
21372     BEGIN
21373         l_line_processed        := 'N';
21374         if p_line_id_tbl.count > 0 then
21375              for i in p_line_id_tbl.first..p_line_id_tbl.last loop
21376                 if p_line_id = p_line_id_tbl(i).line_id then
21377                    l_line_processed := 'Y';
21378                    exit;
21379                 end if;
21380              end loop;
21381              if  l_line_processed = 'N' then
21382                 p_line_id_tbl(l_line_id_tbl.last+1).line_id    := p_line_id;
21383              end if;
21384         else
21385              p_line_id_tbl(1).line_id    := p_line_id;
21386         end if;
21387         return l_line_processed;
21388     END Get_Line_Processed;
21389 
21390 
21391 BEGIN
21392 
21393     Lv_Contracts                := P_Contracts;
21394     Lv_Contract_line_Rec        := P_Contract_line_Rec;
21395     Lv_Request_Date             := nvl(P_Request_Date,sysdate);
21396     Lx_Result                   := G_TRUE;
21397     Lx_Return_Status            := G_RET_STS_SUCCESS;
21398     Lx_counter                  := 1;
21399     Lx_service_id               := -99;
21400     l_last_date                  :=   TO_DATE(5373484,'j');
21401     l_first_date                 :=   TO_DATE(1,'j');
21402 
21403         IF (Lv_Contract_line_Rec.Start_Date_From IS NULL) THEN
21404             Lv_Contract_line_Rec.Start_Date_From := l_first_date;
21405         END IF;
21406  IF (Lv_Contract_line_Rec.Start_Date_To IS NULL) THEN
21407             Lv_Contract_line_Rec.Start_Date_To := l_last_date;
21408         END IF;
21409 
21410         IF (Lv_Contract_line_Rec.End_Date_From IS NULL) THEN
21411             Lv_Contract_line_Rec.End_Date_From := l_first_date;
21412         END IF;
21413 
21414         IF (Lv_Contract_line_Rec.End_Date_To IS NULL) THEN
21415             Lv_Contract_line_Rec.End_Date_To := l_last_date;
21416         END IF;
21417 
21418 
21419         Lv_Contract_line_Rec.Start_Date_From := TRUNC(Lv_Contract_line_Rec.Start_Date_From);
21420         Lv_Contract_line_Rec.End_Date_From   := TRUNC(Lv_Contract_line_Rec.End_Date_From);
21421         Lv_Contract_line_Rec.Start_Date_To   := TRUNC(Lv_Contract_line_Rec.Start_Date_To) + 0.99998843;
21422         Lv_Contract_line_Rec.End_Date_To     := TRUNC(Lv_Contract_line_Rec.End_Date_To) + 0.99998843;
21423     Fetch_Sts_Meaning;
21424 
21425     G_GRACE_PROFILE_SET          := fnd_profile.value('OKS_ENABLE_GRACE_PERIOD');
21426 
21427     Lv_Contracts_02.DELETE;
21428 
21429   IF Lv_Contracts.COUNT = 0 THEN
21430 /*Added for bug:6767455*/
21431  /* Added by Jvorugan for Bug:4991724
21432        If service_item_id is not null, then only passing the value.
21433        This is to avoid full table scan on okc_k_items due to nvl condition on service_item_id*/
21434 
21435     IF Lv_Contract_line_Rec.Service_Item_ID IS NULL
21436     THEN
21437        open get_Contract_noclvl_noitem_cur(NULL,
21438                                         NULL,
21439                                         Lv_Contract_line_Rec.Contract_Line_Status_Code,
21440                                         Lv_Contract_line_Rec.Start_Date_From,
21441                                         Lv_Contract_line_Rec.Start_Date_To,
21442                                         Lv_Contract_line_Rec.End_Date_From,
21443                                         Lv_Contract_line_Rec.End_Date_To,
21444                                         Lv_Contract_line_Rec.Coverage_Type_Code,
21445                                         Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21446                                         Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21447                                         Lv_Contract_line_Rec.line_renewal_type_code,
21448                                         Lv_authoring_org_id);
21449        fetch get_Contract_noclvl_noitem_cur BULK COLLECT into   Id,
21450                                                    contract_number,
21451                                                    contract_Number_Modifier,
21452                                                    Short_Description,
21453                                                    Hd_Start_Date,
21454                                                    Hd_End_Date,
21455                                                    hd_scs_code,
21456                                                     org_id,         /*bug:7363217*/
21457                                                    Service_ID,
21458                                                    Line_Number,
21459                                                    Start_Date,
21460                                                    End_Date,
21461                                                    Date_Terminated,
21462                                                    Sts_code,
21463                                                    Name,
21464                                                    cov_line_id,
21465                                                    Cov_Name,
21466                                                    Cov_Start_Date,
21467                                                    Cov_End_Date,
21468                                                    Cov_Date_Terminated,
21469                                                    Service_Lse_Id;
21470         close get_Contract_noclvl_noitem_cur;
21471      ELSE
21472         open get_Contract_noclvl_cur(NULL,
21473                                         NULL,
21474                                         Lv_Contract_line_Rec.Service_Item_ID,
21475                                         Lv_Contract_line_Rec.Contract_Line_Status_Code,
21476                                         Lv_Contract_line_Rec.Start_Date_From,
21477                                         Lv_Contract_line_Rec.Start_Date_To,
21478                                         Lv_Contract_line_Rec.End_Date_From,
21479                                         Lv_Contract_line_Rec.End_Date_To,
21480                                         Lv_Contract_line_Rec.Coverage_Type_Code,
21481                                         Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21482                                         Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21483                                         Lv_Contract_line_Rec.line_renewal_type_code,
21484                                         Lv_authoring_org_id);
21485         fetch get_Contract_noclvl_cur BULK COLLECT into         Id,
21486                                                    contract_number,
21487                                                    contract_Number_Modifier,
21488                                                    Short_Description,
21489                                                    Hd_Start_Date,
21490                                                    Hd_End_Date,
21491                                                    hd_scs_code,
21492                                                    org_id,         /*bug:6767455*/
21493                                                    Service_ID,
21494                                                    Line_Number,
21495                                                    Start_Date,
21496                                                    End_Date,
21497                                                    Date_Terminated,
21498                                                    Sts_code,
21499                                                    Name,
21500                                                    cov_line_id,
21501                                                    Cov_Name,
21502                                                    Cov_Start_Date,
21503                                                    Cov_End_Date,
21504                                                    Cov_Date_Terminated,
21505                                                    Service_Lse_Id;
21506 	        close get_Contract_noclvl_cur;
21507 
21508      END IF;
21509 
21510    IF Id.count >0
21511    THEN
21512       FOR i in Id.FIRST..ID.LAST
21513       LOOP
21514 
21515            if nvl(lx_service_id,-99) <>Service_ID(i) then
21516             Lv_Contracts_02(lx_counter).Contract_Number                 :=  contract_number(i);
21517             Lv_Contracts_02(lx_counter).Contract_Number_Modifier        :=  contract_Number_Modifier(i);
21518             Lv_Contracts_02(lx_counter).Contract_Description            :=  Short_Description(i);
21519             Lv_Contracts_02(lx_counter).Contract_Line_Number            :=  Line_Number(i);
21520             Lv_Contracts_02(lx_counter).Line_Start_Date                 :=  Start_Date(i);
21521             Lv_Contracts_02(lx_counter).Line_End_Date                   :=  End_Date(i);
21522             Lv_Contracts_02(lx_counter).Contract_line_Status_code       :=  Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
21523             Lv_Contracts_02(lx_counter).Service_name                    :=  name(i);
21524             Lv_Contracts_02(lx_counter).Coverage_name                   :=  Cov_name(i);
21525             Lv_Contracts_02(lx_counter).Service_Id                      :=  Service_ID(i);
21526             Lv_Contracts_02(lx_counter).Service_Lse_ID                  :=  Service_Lse_Id(i);
21527             Lv_Contracts_02(lx_counter).contract_line_type              :=  Get_Line_Styles(Service_Lse_Id(i));
21528             Lv_Contracts_02(lx_counter).contract_id                     :=  Id(i);
21529             Lv_Contracts_02(lx_counter).coverage_line_id                :=  cov_line_Id(i);
21530             Lv_Contracts_02(lx_counter).scs_code                        :=  hd_scs_code(i);
21531 
21532             /*bug:7363217*/
21533             --
21534             Lv_Contracts_02(lx_counter).OPERATING_UNIT                  :=  org_id(i);
21535             OPEN c_OU(org_id(i));
21536             FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21537             CLOSE c_OU;
21538 
21539             lx_counter :=lx_counter  + 1 ;
21540             lx_service_id := service_id(i);
21541 
21542             end if;
21543       END LOOP;
21544    END IF;
21545 
21546 
21547    /* commented  for  Bug:6767455
21548             For Idx In get_Contract_noclvl_cur(NULL,
21549                                         NULL,
21550                                         Lv_Contract_line_Rec.Service_Item_ID,
21551                                         Lv_Contract_line_Rec.Contract_Line_Status_Code,
21552                                         Lv_Contract_line_Rec.Start_Date_From,
21553                                         Lv_Contract_line_Rec.Start_Date_To,
21554                                         Lv_Contract_line_Rec.End_Date_From,
21555                                         Lv_Contract_line_Rec.End_Date_To,
21556                                         Lv_Contract_line_Rec.Coverage_Type_Code,
21557                                         Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21558                                         Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21559                                         Lv_Contract_line_Rec.line_renewal_type_code,
21560                                         Lv_authoring_org_id) LOOP
21561 
21562 
21563             if nvl(lx_service_id,-99) <> Idx.Service_id then
21564 
21565             Lv_Contracts_02(lx_counter).Contract_Number                 :=  Idx.Contract_Number;
21566             Lv_Contracts_02(lx_counter).Contract_Number_Modifier        :=  Idx.Contract_Number_Modifier;
21567             Lv_Contracts_02(lx_counter).Contract_Description            :=  Idx.Short_Description;
21568             Lv_Contracts_02(lx_counter).Contract_Line_Number            :=  Idx.Line_Number;
21569             Lv_Contracts_02(lx_counter).Line_Start_Date                 :=  Idx.Start_Date;
21570             Lv_Contracts_02(lx_counter).Line_End_Date                   :=  Idx.End_Date;
21571             Lv_Contracts_02(lx_counter).Contract_line_Status_code       :=  Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
21572             Lv_Contracts_02(lx_counter).Service_name                    :=  Idx.name;
21573             Lv_Contracts_02(lx_counter).Coverage_name                   :=  Idx.Cov_name;
21574             Lv_Contracts_02(lx_counter).Service_Id                      :=  Idx.Service_ID;
21575             Lv_Contracts_02(lx_counter).Service_Lse_ID                  :=  Idx.Service_Lse_Id;
21576             Lv_Contracts_02(lx_counter).contract_line_type              :=  Get_Line_Styles(Idx.Service_Lse_Id);
21577             Lv_Contracts_02(lx_counter).contract_id                     :=  Idx.Id;
21578             Lv_Contracts_02(lx_counter).coverage_line_id                :=  Idx.cov_line_Id;
21579             Lv_Contracts_02(lx_counter).scs_code                        :=  Idx.hd_scs_code;
21580 
21581             --
21582             -- Modified for 12.0 MOAC project (JVARGHES)
21583             --
21584             Lv_Contracts_02(lx_counter).OPERATING_UNIT                  :=  Idx.org_id;
21585             OPEN c_OU(Idx.org_id);
21586             FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21587             CLOSE c_OU;
21588             --
21589             --
21590 
21591             lx_counter :=lx_counter  + 1 ;
21592             lx_service_id := Idx.service_id;
21593 
21594             end if;
21595 
21596     END LOOP;
21597 */
21598     END IF;
21599 
21600     IF  Lv_Contracts.COUNT > 0 and Lv_covlevel_lines_passed = 'Y' THEN
21601 
21602       FOR I In Lv_Contracts.FIRST .. Lv_Contracts.LAST LOOP
21603 
21604 -- checking if covered level line id processed
21605       If Get_Line_Processed (p_line_id        => Lv_Contracts(i).Rx_Cle_ID,
21606                              p_line_id_tbl    => l_line_id_tbl) = 'N' then
21607  /* Added  for Bug:6767455
21608        If service_item_id is not null, then only passing the value.
21609        This is to avoid full table scan on okc_k_items due to nvl condition on service_item_id*/
21610 
21611        IF Lv_Contract_line_Rec.Service_Item_ID IS NULL
21612        THEN
21613            open get_Contract_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
21614                                     Lv_Contracts(i).Rx_Cle_ID,
21615                                     Lv_Contract_line_Rec.Contract_Line_Status_Code,
21616                                     Lv_Contract_line_Rec.Start_Date_From,
21617                                     Lv_Contract_line_Rec.Start_Date_To,
21618                                     Lv_Contract_line_Rec.End_Date_From,
21619                                     Lv_Contract_line_Rec.End_Date_To,
21620                                     Lv_Contract_line_Rec.Coverage_Type_Code,
21621                                     Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21622                                     Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21623                                     Lv_Contract_line_Rec.line_renewal_type_code,
21624                                     Lv_authoring_org_id);
21625 	   fetch get_Contract_noitem_cur bulk collect into Id,
21626                                                    contract_number,
21627                                                    contract_Number_Modifier,
21628                                                    Short_Description,
21629                                                    Hd_Start_Date,
21630                                                    Hd_End_Date,
21631                                                    hd_scs_code,
21632                                                    org_id,         /*bug:7363217*/
21633                                                    Service_ID,
21634                                                    Line_Number,
21635                                                    Start_Date,
21636                                                    End_Date,
21637                                                    Date_Terminated,
21638                                                    Sts_code,
21639                                                    Name,
21640                                                    Item_Start_Date,
21641                                                    Item_End_Date,
21642                                                    Item_Date_Terminated,
21643                                                    cov_line_id,
21644                                                    Cov_Name,
21645                                                    Cov_Start_Date,
21646                                                    Cov_End_Date,
21647                                                    Cov_Date_Terminated,
21648                                                    Service_Lse_Id;
21649 	   close  get_Contract_noitem_cur;
21650         ELSE
21651            open get_Contract_cur   (Lv_Contracts(i).Rx_Chr_ID,
21652                                     Lv_Contracts(i).Rx_Cle_ID,
21653                                     Lv_Contract_line_Rec.Service_Item_ID,
21654                                     Lv_Contract_line_Rec.Contract_Line_Status_Code,
21655                                     Lv_Contract_line_Rec.Start_Date_From,
21656                                     Lv_Contract_line_Rec.Start_Date_To,
21657                                     Lv_Contract_line_Rec.End_Date_From,
21658                                     Lv_Contract_line_Rec.End_Date_To,
21659                                     Lv_Contract_line_Rec.Coverage_Type_Code,
21660                                     Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21661                                     Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21662                                     Lv_Contract_line_Rec.line_renewal_type_code,
21663                                     Lv_authoring_org_id);
21664 	   fetch get_Contract_cur  bulk collect into Id,
21665                                                    contract_number,
21666                                                    contract_Number_Modifier,
21667                                                    Short_Description,
21668                                                    Hd_Start_Date,
21669                                                    Hd_End_Date,
21670                                                    hd_scs_code,
21671                                                    org_id,     /*Bug:6767455*/
21672                                                    Service_ID,
21673                                                    Line_Number,
21674                                                    Start_Date,
21675                                                    End_Date,
21676                                                    Date_Terminated,
21677                                                    Sts_code,
21678                                                    Name,
21679 	                         Item_Start_Date,
21680                                                    Item_End_Date,
21681                                                    Item_Date_Terminated,
21682                                                    cov_line_id,
21683                                                    Cov_Name,
21684                                                    Cov_Start_Date,
21685                                                    Cov_End_Date,
21686                                                    Cov_Date_Terminated,
21687                                                    Service_Lse_Id;
21688 	   close  get_Contract_cur;
21689 	END IF;
21690    IF Id.count >0
21691    THEN
21692 
21693       FOR i in Id.FIRST..Id.LAST
21694       LOOP
21695 
21696 	if nvl(lx_service_id,-99) <> service_id(i)then
21697 
21698 	   IF Lv_Entitlment_Check = 'Y' THEN             --Lv_Entitlment_Check = 'Y'
21699 
21700             Get_Valid_Line(
21701                             PHd_Id              =>Id(i),
21702                             PHd_Start_Date      =>Hd_Start_Date(i),
21703                             PHd_END_Date        =>Hd_End_Date(i),
21704                             PSv_Start_Date      =>Start_Date(i),
21705                             PSv_End_Date        =>End_Date(i),
21706                             PSv_Term_Date       =>Date_Terminated(i),
21707                             PIt_Start_Date      =>Item_Start_Date(i),
21708                             PIt_End_Date        =>Item_End_Date(i),
21709                             PIt_Term_Date       =>Item_Date_Terminated(i),
21710                             PCo_Start_Date      =>Cov_Start_Date(i),
21711                             PCo_End_Date        =>Cov_End_Date(i),
21712                             PCo_Term_Date       =>Cov_Date_Terminated(i),
21713                             P_Request_Date      =>Lv_Request_Date,
21714                             X_valid_line        =>L_valid_line,
21715                             X_return_Status     =>L_return_Status);
21716 
21717           Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Service_ID(i), 'ENTITLE');
21718 
21719             IF ((Lv_Entile_Flag = 'T') AND (L_valid_line = 'T'))  THEN  --Lv_Entile_Flag = 'T'
21720 
21721             Lv_Contracts_02(lx_counter).Contract_Number                 :=  Contract_Number(i);
21722             Lv_Contracts_02(lx_counter).Contract_Number_Modifier        :=  Contract_Number_Modifier(i);
21723             Lv_Contracts_02(lx_counter).Contract_Description            :=  Short_Description(i);
21724             Lv_Contracts_02(lx_counter).Contract_Line_Number            :=  Line_Number(i);
21725             Lv_Contracts_02(lx_counter).Line_Start_Date                 :=  Start_Date(i);
21726             Lv_Contracts_02(lx_counter).Line_End_Date                   :=  End_Date(i);
21727             Lv_Contracts_02(lx_counter).Contract_line_Status_code       :=  Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
21728             Lv_Contracts_02(lx_counter).Service_name                    :=  name(i);
21729             Lv_Contracts_02(lx_counter).Coverage_name                   :=  Cov_name(i);
21730             Lv_Contracts_02(lx_counter).Service_Id                      :=  Service_ID(i);
21731             Lv_Contracts_02(lx_counter).Service_Lse_ID                  :=  Service_Lse_Id(i);
21732             Lv_Contracts_02(lx_counter).contract_line_type              :=  Get_Line_Styles(Service_Lse_Id(i));
21733             Lv_Contracts_02(lx_counter).contract_id                     :=  Id(i);
21734             Lv_Contracts_02(lx_counter).coverage_line_id                :=  cov_line_Id(i);
21735             Lv_Contracts_02(lx_counter).scs_code                        :=  hd_scs_code(i);
21736            /*bug:7363217*/
21737             --
21738             Lv_Contracts_02(lx_counter).OPERATING_UNIT                  :=  org_id(i);
21739             OPEN c_OU(org_id(i));
21740             FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21741             CLOSE c_OU;
21742             lx_counter :=lx_counter  + 1 ;
21743            lx_service_id := service_id(i);   /*Bug:8434577*/
21744 
21745             END IF; ----Lv_Entile_Flag = 'T'
21746            ELSE  ----Lv_Entitlment_Check = 'Y'
21747 
21748             Lv_Contracts_02(lx_counter).Contract_Number                 :=  Contract_Number(i);
21749             Lv_Contracts_02(lx_counter).Contract_Number_Modifier        :=  Contract_Number_Modifier(i);
21750             Lv_Contracts_02(lx_counter).Contract_Description            :=  Short_Description(i);
21751             Lv_Contracts_02(lx_counter).Contract_Line_Number            :=  Line_Number(i);
21752             Lv_Contracts_02(lx_counter).Line_Start_Date                 :=  Start_Date(i);
21753             Lv_Contracts_02(lx_counter).Line_End_Date                   :=   End_Date(i);
21754             Lv_Contracts_02(lx_counter).Contract_line_Status_code       :=  Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
21755             Lv_Contracts_02(lx_counter).Service_name                    :=   name(i);
21756             Lv_Contracts_02(lx_counter).Coverage_name                   :=  Cov_name(i);
21757             Lv_Contracts_02(lx_counter).Service_Id                      :=  Service_ID(i);
21758             Lv_Contracts_02(lx_counter).Service_Lse_ID                  := Service_Lse_Id(i);
21759             Lv_Contracts_02(lx_counter).contract_line_type              :=  Get_Line_Styles(Service_Lse_Id(i));
21760             Lv_Contracts_02(lx_counter).contract_id                     :=  Id(i);
21761             Lv_Contracts_02(lx_counter).coverage_line_id                :=  cov_line_Id(i);
21762             Lv_Contracts_02(lx_counter).scs_code                        :=  hd_scs_code(i);
21763 
21764 	    /*bug:7363217*/
21765             --
21766             Lv_Contracts_02(lx_counter).OPERATING_UNIT                  :=  org_id(i);
21767             OPEN c_OU(org_id(i));
21768             FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21769             CLOSE c_OU;
21770             lx_counter :=lx_counter  + 1 ;
21771             lx_service_id := service_id(i);   /*Bug:8434577*/
21772            END IF;  --Lv_Entitlment_Check = 'Y'
21773 
21774         -----lx_service_id := service_id(i);  /*Removed for bug 8434577*/
21775 
21776        end if;
21777 
21778       END LOOP;
21779 
21780     END IF;  -- Id.count >0
21781 
21782 
21783     /* commented  for perf bug:6767455
21784         For Idx In get_Contract_cur(Lv_Contracts(i).Rx_Chr_ID,
21785                                     Lv_Contracts(i).Rx_Cle_ID,
21786                                     Lv_Contract_line_Rec.Service_Item_ID,
21787                                     Lv_Contract_line_Rec.Contract_Line_Status_Code,
21788                                     Lv_Contract_line_Rec.Start_Date_From,
21789                                     Lv_Contract_line_Rec.Start_Date_To,
21790                                     Lv_Contract_line_Rec.End_Date_From,
21791                                     Lv_Contract_line_Rec.End_Date_To,
21792                                     Lv_Contract_line_Rec.Coverage_Type_Code,
21793                                     Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21794                                     Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21795                                     Lv_Contract_line_Rec.line_renewal_type_code,
21796                                     Lv_authoring_org_id) LOOP
21797 
21798 
21799         if nvl(lx_service_id,-99) <> Idx.service_id then
21800 
21801           IF Lv_Entitlment_Check = 'Y' THEN             --Lv_Entitlment_Check = 'Y'
21802 
21803             Get_Valid_Line(
21804                             PHd_Id              =>Idx.Id,
21805                             PHd_Start_Date      =>Idx.Hd_Start_Date,
21806                             PHd_END_Date        =>Idx.Hd_End_Date,
21807                             PSv_Start_Date      =>Idx.Start_Date,
21808                             PSv_End_Date        =>Idx.End_Date,
21809                             PSv_Term_Date       =>Idx.Date_Terminated,
21810                             PIt_Start_Date      =>Idx.Item_Start_Date,
21811                             PIt_End_Date        =>Idx.Item_End_Date,
21812                             PIt_Term_Date       =>Idx.Item_Date_Terminated,
21813                             PCo_Start_Date      =>Idx.Cov_Start_Date,
21814                             PCo_End_Date        =>Idx.Cov_End_Date,
21815                             PCo_Term_Date       =>Idx.Cov_Date_Terminated,
21816                             P_Request_Date      =>Lv_Request_Date,
21817                             X_valid_line        =>L_valid_line,
21818                             X_return_Status     =>L_return_Status);
21819 
21820           Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Idx.Service_ID, 'ENTITLE');
21821 
21822             IF ((Lv_Entile_Flag = 'T') AND (L_valid_line = 'T'))  THEN  --Lv_Entile_Flag = 'T'
21823 
21824             Lv_Contracts_02(lx_counter).Contract_Number                 :=  Idx.Contract_Number;
21825             Lv_Contracts_02(lx_counter).Contract_Number_Modifier        :=  Idx.Contract_Number_Modifier;
21826             Lv_Contracts_02(lx_counter).Contract_Description            :=  Idx.Short_Description;
21827             Lv_Contracts_02(lx_counter).Contract_Line_Number            :=  Idx.Line_Number;
21828             Lv_Contracts_02(lx_counter).Line_Start_Date                 :=  Idx.Start_Date;
21829             Lv_Contracts_02(lx_counter).Line_End_Date                   :=  Idx.End_Date;
21830             Lv_Contracts_02(lx_counter).Contract_line_Status_code       :=  Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
21831             Lv_Contracts_02(lx_counter).Service_name                    :=  Idx.name;
21832             Lv_Contracts_02(lx_counter).Coverage_name                   :=  Idx.Cov_name;
21833             Lv_Contracts_02(lx_counter).Service_Id                      :=  Idx.Service_ID;
21834             Lv_Contracts_02(lx_counter).Service_Lse_ID                  :=  Idx.Service_Lse_Id;
21835             Lv_Contracts_02(lx_counter).contract_line_type              :=  Get_Line_Styles(Idx.Service_Lse_Id);
21836             Lv_Contracts_02(lx_counter).contract_id                     :=  Idx.Id;
21837             Lv_Contracts_02(lx_counter).coverage_line_id                :=  Idx.cov_line_Id;
21838             Lv_Contracts_02(lx_counter).scs_code                        :=  Idx.hd_scs_code;
21839 
21840             --
21841             -- Modified for 12.0 MOAC project (JVARGHES)
21842             --
21843             Lv_Contracts_02(lx_counter).OPERATING_UNIT                  :=  Idx.org_id;
21844             OPEN c_OU(Idx.org_id);
21845             FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21846             CLOSE c_OU;
21847             --
21848             --
21849 
21850             lx_counter :=lx_counter  + 1 ;
21851 
21852             END IF; ----Lv_Entile_Flag = 'T'
21853 
21854         ELSE  ----Lv_Entitlment_Check = 'Y'
21855 
21856             Lv_Contracts_02(lx_counter).Contract_Number                 :=  Idx.Contract_Number;
21857             Lv_Contracts_02(lx_counter).Contract_Number_Modifier        :=  Idx.Contract_Number_Modifier;
21858             Lv_Contracts_02(lx_counter).Contract_Description            :=  Idx.Short_Description;
21859             Lv_Contracts_02(lx_counter).Contract_Line_Number            :=  Idx.Line_Number;
21860             Lv_Contracts_02(lx_counter).Line_Start_Date                 :=  Idx.Start_Date;
21861             Lv_Contracts_02(lx_counter).Line_End_Date                   :=  Idx.End_Date;
21862             Lv_Contracts_02(lx_counter).Contract_line_Status_code       :=  Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
21863             Lv_Contracts_02(lx_counter).Service_name                    :=  Idx.name;
21864             Lv_Contracts_02(lx_counter).Coverage_name                   :=  Idx.Cov_name;
21865             Lv_Contracts_02(lx_counter).Service_Id                      :=  Idx.Service_ID;
21866             Lv_Contracts_02(lx_counter).Service_Lse_ID                  :=  Idx.Service_Lse_Id;
21867             Lv_Contracts_02(lx_counter).contract_line_type              :=  Get_Line_Styles(Idx.Service_Lse_Id);
21868             Lv_Contracts_02(lx_counter).contract_id                     :=  Idx.Id;
21869             Lv_Contracts_02(lx_counter).coverage_line_id                :=  Idx.cov_line_Id;
21870             Lv_Contracts_02(lx_counter).scs_code                        :=  Idx.hd_scs_code;
21871 
21872             --
21873             -- Modified for 12.0 MOAC project (JVARGHES)
21874             --
21875             Lv_Contracts_02(lx_counter).OPERATING_UNIT                  :=  Idx.org_id;
21876             OPEN c_OU(Idx.org_id);
21877             FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
21878             CLOSE c_OU;
21879             --
21880             --
21881 
21882             lx_counter :=lx_counter  + 1 ;
21883 
21884         END IF;  --Lv_Entitlment_Check = 'Y'
21885 
21886         lx_service_id := Idx.service_id;
21887 
21888        end if;
21889 
21890       END LOOP;*/
21891 
21892 -- checking if covered level line id processed
21893      END If;
21894 
21895     END LOOP;
21896 
21897     END IF;
21898 
21899 
21900     IF  Lv_Contracts.COUNT > 0 and Lv_covlevel_lines_passed = 'N' THEN
21901     FOR I In Lv_Contracts.FIRST .. Lv_Contracts.LAST LOOP
21902     /* Added by Jvorugan for Bug:4991724
21903        If service_item_id is not null, then only passing the value.
21904        This is to avoid full table scan on okc_k_items due to nvl condition on service_item_id*/
21905 
21906     IF Lv_Contract_line_Rec.Service_Item_ID IS NULL
21907     THEN
21908 
21909        IF Lv_Contracts(i).Rx_Chr_ID IS NOT NULL THEN
21910 
21911                   /*harlaksh modified for bug 8700389*/
21912  	           If ((Lv_authoring_org_id IS NULL) AND
21913  	            (Lv_Contract_line_Rec.Contract_Line_Status_Code IS NULL) AND
21914  	            (Lv_Contract_line_Rec.Coverage_Type_Code IS NULL) AND
21915  	            (Lv_Contract_line_Rec.Line_Bill_To_Site_Id IS NULL) AND
21916  	            (Lv_Contract_line_Rec.Line_Ship_To_Site_Id IS NULL) AND
21917  	            (Lv_Contract_line_Rec.line_renewal_type_code IS NULL))
21918  	           THEN
21919  	                /*CALL NEW CURSOR*/
21920  	                open get_Cont_noclvl_kid_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
21921  	                                                Lv_Contract_line_Rec.Start_Date_From,
21922  	                                                Lv_Contract_line_Rec.Start_Date_To,
21923  	                                                Lv_Contract_line_Rec.End_Date_From,
21924  	                                                Lv_Contract_line_Rec.End_Date_To);
21925 
21926  	                fetch get_Cont_noclvl_kid_noitem_cur BULK COLLECT into   Id,
21927  	                                                               contract_number,
21928  	                                                               contract_Number_Modifier,
21929  	                                                               Short_Description,
21930  	                                                               Hd_Start_Date,
21931  	                                                               Hd_End_Date,
21932  	                                                               hd_scs_code,
21933                                                                        org_id,
21934  	                                                               Service_ID,
21935  	                                                               Line_Number,
21936  	                                                               Start_Date,
21937  	                                                               End_Date,
21938  	                                                               Date_Terminated,
21939  	                                                               Sts_code,
21940  	                                                               Name,
21941  	                                                               cov_line_id,
21942  	                                                               Cov_Name,
21943  	                                                               Cov_Start_Date,
21944  	                                                               Cov_End_Date,
21945  	                                                               Cov_Date_Terminated,
21946  	                                                               Service_Lse_Id;
21947  	                close get_Cont_noclvl_kid_noitem_cur;
21948 
21949  	 ELSE
21950 
21951        open get_Cont_noclvl_chr_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
21952                                     Lv_Contracts(i).Rx_Cle_ID,
21953                                     Lv_Contract_line_Rec.Contract_Line_Status_Code,
21954                                     Lv_Contract_line_Rec.Start_Date_From,
21955                                     Lv_Contract_line_Rec.Start_Date_To,
21956                                     Lv_Contract_line_Rec.End_Date_From,
21957                                     Lv_Contract_line_Rec.End_Date_To,
21958                                     Lv_Contract_line_Rec.Coverage_Type_Code,
21959                                     Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21960                                     Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21961                                     Lv_Contract_line_Rec.line_renewal_type_code,
21962                                     Lv_authoring_org_id);
21963 
21964        fetch get_Cont_noclvl_chr_noitem_cur BULK COLLECT into   Id,
21965                                                    contract_number,
21966                                                    contract_Number_Modifier,
21967                                                    Short_Description,
21968                                                    Hd_Start_Date,
21969                                                    Hd_End_Date,
21970                                                    hd_scs_code,
21971 	                          org_id,         /*bug:7363217*/
21972                                                    Service_ID,
21973                                                    Line_Number,
21974                                                    Start_Date,
21975                                                    End_Date,
21976                                                    Date_Terminated,
21977                                                    Sts_code,
21978                                                    Name,
21979                                                    cov_line_id,
21980                                                    Cov_Name,
21981                                                    Cov_Start_Date,
21982                                                    Cov_End_Date,
21983                                                    Cov_Date_Terminated,
21984                                                    Service_Lse_Id;
21985         close get_Cont_noclvl_chr_noitem_cur;
21986  END IF;           /*modified for bug:8700389*/
21987        ELSE
21988 
21989        open get_Contract_noclvl_noitem_cur(Lv_Contracts(i).Rx_Chr_ID,
21990                                     Lv_Contracts(i).Rx_Cle_ID,
21991                                     Lv_Contract_line_Rec.Contract_Line_Status_Code,
21992                                     Lv_Contract_line_Rec.Start_Date_From,
21993                                     Lv_Contract_line_Rec.Start_Date_To,
21994                                     Lv_Contract_line_Rec.End_Date_From,
21995                                     Lv_Contract_line_Rec.End_Date_To,
21996                                     Lv_Contract_line_Rec.Coverage_Type_Code,
21997                                     Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
21998                                     Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
21999                                     Lv_Contract_line_Rec.line_renewal_type_code,
22000                                     Lv_authoring_org_id);
22001 
22002        fetch get_Contract_noclvl_noitem_cur BULK COLLECT into   Id,
22003                                                    contract_number,
22004                                                    contract_Number_Modifier,
22005                                                    Short_Description,
22006                                                    Hd_Start_Date,
22007                                                    Hd_End_Date,
22008                                                    hd_scs_code,
22009 	                          org_id,         /*bug:7363217*/
22010                                                    Service_ID,
22011                                                    Line_Number,
22012                                                    Start_Date,
22013                                                    End_Date,
22014                                                    Date_Terminated,
22015                                                    Sts_code,
22016                                                    Name,
22017                                                    cov_line_id,
22018                                                    Cov_Name,
22019                                                    Cov_Start_Date,
22020                                                    Cov_End_Date,
22021                                                    Cov_Date_Terminated,
22022                                                    Service_Lse_Id;
22023         close get_Contract_noclvl_noitem_cur;
22024 
22025         end if;
22026 
22027      ELSE
22028 
22029        IF Lv_Contracts(i).Rx_Chr_ID IS NOT NULL THEN
22030 
22031         open get_Cont_noclvl_chr_cur(Lv_Contracts(i).Rx_Chr_ID,
22032                                     Lv_Contracts(i).Rx_Cle_ID,
22033 				            Lv_Contract_line_Rec.Service_Item_ID,
22034                                     Lv_Contract_line_Rec.Contract_Line_Status_Code,
22035                                     Lv_Contract_line_Rec.Start_Date_From,
22036                                     Lv_Contract_line_Rec.Start_Date_To,
22037                                     Lv_Contract_line_Rec.End_Date_From,
22038                                     Lv_Contract_line_Rec.End_Date_To,
22039                                     Lv_Contract_line_Rec.Coverage_Type_Code,
22040                                     Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
22041                                     Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
22042                                     Lv_Contract_line_Rec.line_renewal_type_code,
22043                                     Lv_authoring_org_id);
22044 
22045 	fetch get_Cont_noclvl_chr_cur BULK COLLECT into Id,
22046                                                    contract_number,
22047                                                    contract_Number_Modifier,
22048                                                    Short_Description,
22049                                                    Hd_Start_Date,
22050                                                    Hd_End_Date,
22051                                                    hd_scs_code,
22052 	                        org_id,         /*bug:7363217*/
22053                                                    Service_ID,
22054                                                    Line_Number,
22055                                                    Start_Date,
22056                                                    End_Date,
22057                                                    Date_Terminated,
22058                                                    Sts_code,
22059                                                    Name,
22060                                                    cov_line_id,
22061                                                    Cov_Name,
22062                                                    Cov_Start_Date,
22063                                                    Cov_End_Date,
22064                                                    Cov_Date_Terminated,
22065                                                    Service_Lse_Id;
22066 
22067         close get_Cont_noclvl_chr_cur;
22068 
22069 
22070        ELSE
22071         open get_Contract_noclvl_cur(Lv_Contracts(i).Rx_Chr_ID,
22072                                     Lv_Contracts(i).Rx_Cle_ID,
22073 				    Lv_Contract_line_Rec.Service_Item_ID,
22074                                     Lv_Contract_line_Rec.Contract_Line_Status_Code,
22075                                     Lv_Contract_line_Rec.Start_Date_From,
22076                                     Lv_Contract_line_Rec.Start_Date_To,
22077                                     Lv_Contract_line_Rec.End_Date_From,
22078                                     Lv_Contract_line_Rec.End_Date_To,
22079                                     Lv_Contract_line_Rec.Coverage_Type_Code,
22080                                     Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
22081                                     Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
22082                                     Lv_Contract_line_Rec.line_renewal_type_code,
22083                                     Lv_authoring_org_id);
22084 
22085 	fetch get_Contract_noclvl_cur BULK COLLECT into         Id,
22086                                                    contract_number,
22087                                                    contract_Number_Modifier,
22088                                                    Short_Description,
22089                                                    Hd_Start_Date,
22090                                                    Hd_End_Date,
22091                                                    hd_scs_code,
22092                                                    org_id,    /*Bug:6767455*/
22093                                                    Service_ID,
22094                                                    Line_Number,
22095                                                    Start_Date,
22096                                                    End_Date,
22097                                                    Date_Terminated,
22098                                                    Sts_code,
22099                                                    Name,
22100                                                    cov_line_id,
22101                                                    Cov_Name,
22102                                                    Cov_Start_Date,
22103                                                    Cov_End_Date,
22104                                                    Cov_Date_Terminated,
22105                                                    Service_Lse_Id;
22106 
22107         close get_Contract_noclvl_cur;
22108 
22109       END IF;
22110 
22111      END IF;
22112 
22113    IF Id.count >0
22114    THEN
22115       FOR i in Id.FIRST..ID.LAST
22116       LOOP
22117 
22118       if nvl(lx_service_id,-99) <> service_id(i) then
22119            /*modified for bug:8700389*/
22120         IF Lv_Entitlment_Check = 'Y' THEN
22121        Lv_Entile_Flag := OKC_ASSENT_PUB.LINE_OPERATION_ALLOWED(Service_ID(i), 'ENTITLE');
22122 
22123      IF (Lv_Entile_Flag = 'T')  THEN  --Lv_Entile_Flag = 'T'
22124 
22125             Lv_Contracts_02(lx_counter).Contract_Number                 :=  Contract_Number(i);
22126             Lv_Contracts_02(lx_counter).Contract_Number_Modifier        :=  Contract_Number_Modifier(i);
22127             Lv_Contracts_02(lx_counter).Contract_Description            :=  Short_Description(i);
22128             Lv_Contracts_02(lx_counter).Contract_Line_Number            :=  Line_Number(i);
22129             Lv_Contracts_02(lx_counter).Line_Start_Date                 :=  Start_Date(i);
22130             Lv_Contracts_02(lx_counter).Line_End_Date                   :=  End_Date(i);
22131             Lv_Contracts_02(lx_counter).Contract_line_Status_code       :=  Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
22132             Lv_Contracts_02(lx_counter).Service_name                    :=  name(i);
22133             Lv_Contracts_02(lx_counter).Coverage_name                   :=  Cov_name(i);
22134             Lv_Contracts_02(lx_counter).Service_Id                      :=  Service_ID(i);
22135             Lv_Contracts_02(lx_counter).Service_Lse_ID                  :=  Service_Lse_Id(i);
22136             Lv_Contracts_02(lx_counter).contract_line_type              :=  Get_Line_Styles(Service_Lse_Id(i));
22137             Lv_Contracts_02(lx_counter).contract_id                     :=  Id(i);
22138             Lv_Contracts_02(lx_counter).coverage_line_id                :=  cov_line_Id(i);
22139             Lv_Contracts_02(lx_counter).scs_code                        :=  hd_scs_code(i);
22140           /*bug:7363217*/
22141             --
22142             Lv_Contracts_02(lx_counter).OPERATING_UNIT                  :=  org_id(i);
22143             OPEN c_OU(org_id(i));
22144             FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
22145             CLOSE c_OU;
22146             lx_counter :=lx_counter  + 1 ;
22147             lx_service_id := service_id(i);   /*Added for bug 8434577 */
22148     END IF; ----Lv_Entile_Flag = 'T'
22149  ELSE  ----Lv_Entitlment_Check = 'Y'
22150             Lv_Contracts_02(lx_counter).Contract_Number                 :=  Contract_Number(i);
22151             Lv_Contracts_02(lx_counter).Contract_Number_Modifier        :=  Contract_Number_Modifier(i);
22152             Lv_Contracts_02(lx_counter).Contract_Description            :=  Short_Description(i);
22153             Lv_Contracts_02(lx_counter).Contract_Line_Number            :=  Line_Number(i);
22154             Lv_Contracts_02(lx_counter).Line_Start_Date                 :=  Start_Date(i);
22155             Lv_Contracts_02(lx_counter).Line_End_Date                   :=  End_Date(i);
22156             Lv_Contracts_02(lx_counter).Contract_line_Status_code       :=  Get_Sts_Meaning(Sts_code(i));--Idx.Sts_code;
22157             Lv_Contracts_02(lx_counter).Service_name                    :=  name(i);
22158             Lv_Contracts_02(lx_counter).Coverage_name                   :=  Cov_name(i);
22159             Lv_Contracts_02(lx_counter).Service_Id                      :=  Service_ID(i);
22160             Lv_Contracts_02(lx_counter).Service_Lse_ID                  :=  Service_Lse_Id(i);
22161             Lv_Contracts_02(lx_counter).contract_line_type              :=  Get_Line_Styles(Service_Lse_Id(i));
22162             Lv_Contracts_02(lx_counter).contract_id                     :=  Id(i);
22163             Lv_Contracts_02(lx_counter).coverage_line_id                :=  cov_line_Id(i);
22164             Lv_Contracts_02(lx_counter).scs_code                        :=  hd_scs_code(i);
22165 
22166             Lv_Contracts_02(lx_counter).OPERATING_UNIT                  :=  org_id(i);
22167             OPEN c_OU(org_id(i));
22168             FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
22169             CLOSE c_OU;
22170             lx_counter :=lx_counter  + 1 ;
22171             lx_service_id := service_id(i);    /*Added for bug 8434577  */
22172         END IF;  --Lv_Entitlment_Check = 'Y'
22173 -----lx_service_id := service_id(i);   /*Commented for bug 8434577  */
22174      end if;-- lx_service_id
22175 
22176       END LOOP;
22177 
22178     END IF;  -- Id.count >0
22179          /* commented for Bug:6767455
22180              For Idx In get_Contract_noclvl_cur(Lv_Contracts(i).Rx_Chr_ID,
22181                                     Lv_Contracts(i).Rx_Cle_ID,
22182                                     Lv_Contract_line_Rec.Service_Item_ID,
22183                                     Lv_Contract_line_Rec.Contract_Line_Status_Code,
22184                                     Lv_Contract_line_Rec.Start_Date_From,
22185                                     Lv_Contract_line_Rec.Start_Date_To,
22186                                     Lv_Contract_line_Rec.End_Date_From,
22187                                     Lv_Contract_line_Rec.End_Date_To,
22188                                     Lv_Contract_line_Rec.Coverage_Type_Code,
22189                                     Lv_Contract_line_Rec.Line_Bill_To_Site_Id,
22190                                     Lv_Contract_line_Rec.Line_Ship_To_Site_Id,
22191                                     Lv_Contract_line_Rec.line_renewal_type_code,
22192                                     Lv_authoring_org_id) LOOP
22193 
22194 
22195         if nvl(lx_service_id,-99) <> Idx.service_id then
22196 
22197 
22198             Lv_Contracts_02(lx_counter).Contract_Number                 :=  Idx.Contract_Number;
22199             Lv_Contracts_02(lx_counter).Contract_Number_Modifier        :=  Idx.Contract_Number_Modifier;
22200             Lv_Contracts_02(lx_counter).Contract_Description            :=  Idx.Short_Description;
22201             Lv_Contracts_02(lx_counter).Contract_Line_Number            :=  Idx.Line_Number;
22202             Lv_Contracts_02(lx_counter).Line_Start_Date                 :=  Idx.Start_Date;
22203             Lv_Contracts_02(lx_counter).Line_End_Date                   :=  Idx.End_Date;
22204             Lv_Contracts_02(lx_counter).Contract_line_Status_code       :=  Get_Sts_Meaning(Idx.Sts_code);--Idx.Sts_code;
22205             Lv_Contracts_02(lx_counter).Service_name                    :=  Idx.name;
22206             Lv_Contracts_02(lx_counter).Coverage_name                   :=  Idx.Cov_name;
22207             Lv_Contracts_02(lx_counter).Service_Id                      :=  Idx.Service_ID;
22208             Lv_Contracts_02(lx_counter).Service_Lse_ID                  :=  Idx.Service_Lse_Id;
22209             Lv_Contracts_02(lx_counter).contract_line_type              :=  Get_Line_Styles(Idx.Service_Lse_Id);
22210             Lv_Contracts_02(lx_counter).contract_id                     :=  Idx.Id;
22211             Lv_Contracts_02(lx_counter).coverage_line_id                :=  Idx.cov_line_Id;
22212             Lv_Contracts_02(lx_counter).scs_code                        :=  Idx.hd_scs_code;
22213 
22214             --
22215             -- Modified for 12.0 MOAC project (JVARGHES)
22216             --
22217             Lv_Contracts_02(lx_counter).OPERATING_UNIT                  :=  Idx.org_id;
22218             OPEN c_OU(Idx.org_id);
22219             FETCH c_OU INTO Lv_Contracts_02(lx_counter).OPERATING_UNIT_NAME;
22220             CLOSE c_OU;
22221             --
22222             --
22223 
22224             lx_counter :=lx_counter  + 1 ;
22225 
22226             lx_service_id := Idx.service_id;
22227 
22228        end if;
22229 
22230       END LOOP;
22231 */
22232     END LOOP;
22233 
22234     END IF;
22235 
22236     X_Contracts_02 := Lv_Contracts_02;
22237     X_Result        :=Lx_Result;
22238     X_Return_Status := Lx_Return_Status;
22239 
22240 EXCEPTION
22241 
22242  WHEN OTHERS THEN
22243 
22244 OKC_API.SET_MESSAGE
22245     (P_App_Name	  => G_APP_NAME_OKC
22246 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
22247 	,P_Token1	  => G_SQLCODE_TOKEN
22248 	,P_Token1_Value	  => SQLCODE
22249 	,P_Token2	  => G_SQLERRM_TOKEN
22250 	,P_Token2_Value   => SQLERRM);
22251 
22252 OKC_API.SET_MESSAGE
22253     (P_App_Name	  => G_APP_NAME_OKC
22254 	,P_Msg_Name	  => G_DEBUG_TOKEN
22255 	,P_Token1	  => G_PACKAGE_TOKEN
22256 	,P_Token1_Value	  => G_PKG_NAME
22257 	,P_Token2	  => G_PROGRAM_TOKEN
22258 	,P_Token2_Value   => 'Get_Contract_Lines');
22259 
22260      X_Result            := G_FALSE;
22261      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
22262 
22263 END Get_Contract_Lines;
22264 
22265 PROCEDURE Search_Contract_lines
22266     (p_api_version         		IN  Number
22267     ,p_init_msg_list       		IN  Varchar2
22268     ,p_contract_rec        		IN  srchline_inpcontrec_type
22269     ,p_contract_line_rec        IN  srchline_inpcontlinerec_type
22270     ,p_clvl_id_tbl         		IN  srchline_covlvl_id_tbl
22271     ,x_return_status       		out nocopy Varchar2
22272     ,x_msg_count           		out nocopy Number
22273     ,x_msg_data            		out nocopy Varchar2
22274     ,x_contract_tbl        		out nocopy output_tbl_contractline)IS
22275 
22276     i                           NUMBER;
22277     j                           NUMBER;
22278     l                           number;
22279     Lx_Chr_Id                   NUMBER;
22280 
22281     Lx_Inp_Rec_03               srchline_inpcontrec_type;
22282     Lx_Inp_Rec_02               srchline_inpcontlinerec_type;
22283     Lx_Inp_Tbl_01               srchline_covlvl_id_tbl;
22284     Lx_Ent_ContractLiness       output_tbl_contractline;
22285 
22286     Lx_request_date             date;
22287 
22288 
22289     Lx_Result                   Gx_Boolean;
22290     Lx_Return_Status            Gx_Ret_Sts;
22291     Ln_Org_Id                   NUMBER;
22292     Ln_Organization_Id          NUMBER;
22293     Lx_Contract_Id              NUMBER;
22294 
22295 
22296     L_EXCEP_UNEXPECTED_ERR      EXCEPTION;
22297 
22298     Lx_Contracts_02             GT_Contract_Ref;
22299     Lx_Contracts                GT_Contract_Ref;
22300     Lx_Contracts_Temp           GT_Contract_Ref;
22301     Lx_Contracts_Out            GT_Contract_Ref;
22302     Lx_Contracts_Line           GT_Contract_Ref;
22303     Lx_Contracts_Prev           GT_Contract_Ref;
22304     Lx_Contracts_ContNum        GT_Contract_Ref;
22305 
22306     Lx_Validate_Eff             VARCHAR2(1);
22307     Lx_Validate_Flag            VARCHAR2(1);
22308 
22309     Lx_Rec_Exists               VARCHAR2(1);
22310 
22311     Lx_Covlevel_lines_passed       VARCHAR2(1);
22312 
22313 BEGIN  -- Main Begin for Search_Contract_line
22314 
22315     Lx_Chr_Id                   := -99999;
22316     Lx_Inp_Rec_03               := p_contract_rec;
22317     Lx_Inp_Rec_02               := p_contract_line_rec;
22318     Lx_Inp_Tbl_01               := p_clvl_id_tbl;
22319     Lx_request_date             := nvl(p_contract_rec.request_date,sysdate);
22320     Lx_Return_Status            := G_RET_STS_SUCCESS;
22321     Lx_Result                   := G_TRUE;
22322     Lx_Validate_Eff             := 'F';
22323     Lx_Validate_Flag            := 'F';
22324     Lx_Rec_Exists               := 'N';
22325 
22326 
22327  -- Bug# 4735542
22328  -- OKC_CONTEXT.set_okc_org_context;
22329  -- Ln_Organization_Id          := SYS_CONTEXT('OKC_CONTEXT','ORGANIZATION_ID');
22330 
22331  -- Modified for 12.0 MOAC project (JVARGHES)
22332  -- Ln_Org_Id                   := SYS_CONTEXT('OKC_CONTEXT','ORG_ID');
22333  --
22334 
22335     IF ((Lx_Inp_Rec_02.service_item_id              IS NULL) AND
22336         (Lx_Inp_Rec_02.contract_line_status_code    IS NULL) AND
22337         (Lx_Inp_Rec_02.coverage_type_code           IS NULL) AND
22338         (Lx_Inp_Rec_02.start_date_from              IS NULL) AND
22339         (Lx_Inp_Rec_02.start_date_to                IS NULL) AND
22340         (Lx_Inp_Rec_02.end_date_from                IS NULL) AND
22341         (Lx_Inp_Rec_02.end_date_to                  IS NULL) AND
22342         (Lx_Inp_Rec_02.line_bill_to_site_id         IS NULL) AND
22343         (Lx_Inp_Rec_02.line_ship_to_site_id         IS NULL) AND
22344         (Lx_Inp_Rec_02.line_renewal_type_code       IS NULL))   THEN
22345 
22346 
22347         G_Service_Line_Data := 'N';
22348     ELSE
22349 
22350         G_Service_Line_Data := 'Y';
22351 
22352     END IF;
22353 
22354 
22355     IF ((Lx_Inp_Rec_03.contract_id                  IS NULL) AND
22356         (Lx_Inp_Rec_03.contract_number              IS NULL) AND
22357         (Lx_Inp_Rec_03.contract_number_modifier     IS NULL) AND
22358         (Lx_Inp_Rec_03.contract_status_code         IS NULL) AND
22359         (Lx_Inp_Rec_03.start_date_from              IS NULL) AND
22360         (Lx_Inp_Rec_03.start_date_to                IS NULL) AND
22361         (Lx_Inp_Rec_03.end_date_from                IS NULL) AND
22362         (Lx_Inp_Rec_03.end_date_to                  IS NULL) AND
22363         (Lx_Inp_Rec_03.date_terminated_from         IS NULL) AND
22364         (Lx_Inp_Rec_03.date_terminated_to           IS NULL) AND
22365         (Lx_Inp_Rec_03.contract_party_id            IS NULL) AND
22366         (Lx_Inp_Rec_03.contract_renewal_type_code   IS NULL) AND
22367         (Lx_Inp_Rec_03.request_date                 IS NULL) AND
22368         (Lx_Inp_Rec_03.contract_group_id            IS NULL)) THEN
22369 
22370         G_Header_Data       := 'N' ;
22371     ELSE
22372         G_Header_Data       := 'Y' ;
22373     END IF;
22374 
22375 
22376     IF Lx_Inp_Tbl_01.COUNT > 0 THEN --Lx_Inp_Tbl_01.COUNT > 0
22377 
22378         FOR i in Lx_Inp_Tbl_01.FIRST..Lx_Inp_Tbl_01.LAST  LOOP  --1st LOOP
22379 
22380              IF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_CUSTPROD' THEN  -- 2nd if
22381 
22382                   Get_CovProd_Contracts
22383                     (P_CovProd_Obj_Id         => Lx_Inp_Tbl_01(i).covlvl_id1
22384                     ,P_Organization_Id        => Ln_Organization_Id   --Lx_Inp_Tbl_01(i).covlvl_id2
22385                     ,P_Org_Id                 => Ln_Org_Id
22386                     ,X_CovProd_Contracts      => Lx_Contracts
22387                     ,X_Result                 => Lx_Result
22388                     ,X_Return_Status   	  => Lx_Return_Status);
22389 
22390                   IF Lx_Result <> G_TRUE THEN
22391                     RAISE L_EXCEP_UNEXPECTED_ERR;
22392                   END IF;
22393 
22394             ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_COVITEM' THEN
22395 
22396                 Get_CovItem_Contracts
22397                   (P_CovItem_Obj_Id         => Lx_Inp_Tbl_01(i).covlvl_id1
22398                   ,P_Organization_Id        => Lx_Inp_Tbl_01(i).covlvl_id2
22399                   ,P_Party_Id               => Lx_Inp_Rec_03.Contract_Party_Id
22400                   ,X_CovItem_Contracts      => Lx_Contracts
22401                   ,X_Result                 => Lx_Result
22402                   ,X_Return_Status   	    => Lx_Return_Status);
22403 
22404                 IF Lx_Result <> G_TRUE THEN
22405                       RAISE L_EXCEP_UNEXPECTED_ERR;
22406                 END IF;
22407 
22408          -- END IF;
22409 
22410              ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_COVSYST' THEN -- 3rd If
22411 
22412                 Get_CovSys_Contracts
22413                   (P_CovSys_Obj_Id          => Lx_Inp_Tbl_01(i).covlvl_id1
22414                   ,P_Org_Id                 => Ln_Org_Id
22415                   ,X_CovSys_Contracts       => Lx_Contracts --_Temp
22416                   ,X_Result                 => Lx_Result
22417                   ,X_Return_Status   	    => Lx_Return_Status);
22418 
22419                 IF Lx_Result <> G_TRUE THEN
22420                   RAISE L_EXCEP_UNEXPECTED_ERR;
22421                 END IF;
22422 
22423             ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_CUSTACCT' THEN
22424 
22425                 Get_CovCust_Contracts
22426               (P_CovCust_Obj_Id         => Lx_Inp_Tbl_01(i).covlvl_id1
22427               ,X_CovCust_Contracts      => Lx_Contracts --_Temp
22428               ,X_Result                 => Lx_Result
22429               ,X_Return_Status   	    => Lx_Return_Status);
22430 
22431             IF Lx_Result <> G_TRUE THEN
22432               RAISE L_EXCEP_UNEXPECTED_ERR;
22433             END IF;
22434 
22435             ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_PARTYSITE' THEN
22436 
22437                 Get_CovSite_Contracts
22438               (P_CovSite_Obj_Id         => Lx_Inp_Tbl_01(i).covlvl_id1
22439               ,P_Org_Id                 => Ln_Org_Id
22440               ,X_CovSite_Contracts      => Lx_Contracts --_Temp
22441               ,X_Result                 => Lx_Result
22442               ,X_Return_Status   	    => Lx_Return_Status);
22443 
22444             IF Lx_Result <> G_TRUE THEN
22445               RAISE L_EXCEP_UNEXPECTED_ERR;
22446             END IF;
22447 
22448             ELSIF Lx_Inp_Tbl_01(i).covlvl_code = 'OKX_PARTY' THEN
22449 
22450             Get_CovParty_Contracts
22451               (P_CovParty_Obj_Id        => Lx_Inp_Tbl_01(i).covlvl_id1
22452               ,X_CovParty_Contracts     => Lx_Contracts --_Temp
22453               ,X_Result                 => Lx_Result
22454               ,X_Return_Status   	    => Lx_Return_Status);
22455 
22456             IF Lx_Result <> G_TRUE THEN
22457               RAISE L_EXCEP_UNEXPECTED_ERR;
22458             END IF;
22459 
22460             END IF;-- 3rd If
22461 
22462 
22463             IF i = Lx_Inp_Tbl_01.FIRST THEN  --4th IF
22464                 Lx_Contracts_Prev :=  Lx_Contracts;
22465                 Lx_Contracts.DELETE;
22466 
22467             ELSE
22468 
22469                 Append_Contract_PlSql_Table
22470                 (P_Input_Tab          => Lx_Contracts_Prev
22471                 ,P_Append_Tab         => Lx_Contracts
22472                 ,X_Output_Tab         => Lx_Contracts_Out
22473                 ,X_Result             => Lx_Result
22474                 ,X_Return_Status      => Lx_Return_Status);
22475 
22476                   IF Lx_Result <> G_TRUE THEN
22477                     RAISE L_EXCEP_UNEXPECTED_ERR;
22478                   END IF;
22479 
22480                     Lx_Contracts_Prev.DELETE;
22481                     Lx_Contracts_Prev := Lx_Contracts_Out;
22482                     Lx_Contracts_Out.DELETE;
22483                     Lx_Contracts.DELETE;
22484 
22485             END IF;  --4th IF
22486 
22487         --END IF;  -- 2nd if
22488         END LOOP;            --1st LOOP
22489         Lx_Contracts := Lx_Contracts_Prev;
22490 
22491     END IF;     --Lx_Inp_Tbl_01.COUNT > 0
22492 
22493     IF Lx_Contracts.COUNT > 1 THEN
22494      Sort_Asc_ContRef_PlSql_Table
22495         (P_Input_Tab          => Lx_Contracts
22496         ,X_Output_Tab         => Lx_Contracts_Out
22497         ,X_Result             => Lx_Result
22498         ,X_Return_Status      => Lx_Return_Status);
22499 
22500 
22501              IF Lx_Result <> G_TRUE THEN
22502                 RAISE L_EXCEP_UNEXPECTED_ERR;
22503              END IF;
22504     ELSE
22505         Lx_Contracts_Out :=   Lx_Contracts;
22506 
22507     END IF;
22508 
22509     Lx_Contracts.DELETE;
22510     Lx_Contracts    := Lx_Contracts_Out; -- signifies covered level inputs entered but no covered level line exists
22511 
22512 
22513 
22514 IF (((Lx_Inp_Rec_03.Contract_Number IS NOT NULL) AND (Lx_Inp_Rec_03.Contract_Number_modifier IS NOT NULL)) OR
22515     (Lx_Inp_Rec_03.Contract_Id IS NOT NULL)) THEN
22516 
22517 
22518     Get_Contract_Id
22519     (P_contract_id                  => Lx_Inp_Rec_03.Contract_Id
22520     ,P_Contract_Num                 => Lx_Inp_Rec_03.Contract_Number
22521     ,P_Contract_Num_Modifier        => Lx_Inp_Rec_03.Contract_Number_Modifier
22522     ,P_START_DATE_FROM              => Lx_Inp_Rec_03.START_DATE_FROM
22523     ,P_START_DATE_TO                => Lx_Inp_Rec_03.START_DATE_TO
22524     ,P_END_DATE_FROM                => Lx_Inp_Rec_03.END_DATE_FROM
22525     ,P_END_DATE_TO                  => Lx_Inp_Rec_03.END_DATE_TO
22526     ,P_DATE_TERMINATE_FROM          => Lx_Inp_Rec_03.DATE_TERMINATED_FROM
22527     ,P_DATE_TERMINATE_TO            => Lx_Inp_Rec_03.DATE_TERMINATED_TO
22528     ,P_STATUS                       => Lx_Inp_Rec_03.CONTRACT_STATUS_CODE
22529     ,P_Cont_Pty_Id                  => Lx_Inp_Rec_03.contract_party_id
22530     ,P_cont_renewal_code            => Lx_Inp_Rec_03.contract_renewal_type_code
22531     ,P_authoring_org_id             => Lx_Inp_Rec_03.authoring_org_id
22532     ,P_contract_grp_id              => Lx_Inp_Rec_03.contract_group_id -- additional header level criteria added dtd Dec 17th, 2003
22533     ,X_Contracts                    => Lx_Contracts_ContNum
22534     ,X_Result                       => Lx_Result
22535     ,X_Return_Status                => Lx_Return_Status);
22536 
22537 
22538         IF Lx_Result <> G_TRUE THEN
22539             RAISE L_EXCEP_UNEXPECTED_ERR;
22540         END IF;
22541 
22542     IF Lx_Contracts_ContNum.COUNT > 0 THEN  --Lx_Contracts_ContNum.COUNT > 0
22543 
22544         Lx_Chr_Id := Lx_Contracts_ContNum(1).Rx_Chr_Id;
22545 
22546         IF Lx_Contracts_Out.COUNT > 0 THEN
22547 
22548             i   := Lx_Contracts_Out.First;
22549             j   := 1;
22550 
22551             WHILE i IS NOT NULL LOOP
22552 
22553                 IF Lx_Chr_Id = Lx_Contracts_Out(i).Rx_Chr_Id THEN
22554 
22555                     Lx_Contracts_02(j) := Lx_Contracts_Out(i);
22556 
22557                 END IF;
22558 
22559                 i := Lx_Contracts_Out.Next(i);
22560                 j := j+1;
22561 
22562             END LOOP;
22563 
22564             Lx_Contracts_Out.DELETE;
22565             Lx_Contracts_Out := Lx_Contracts_02;
22566             Lx_Contracts_02.DELETE;
22567 
22568         ELSE
22569 
22570             Lx_Contracts_Out(1).Rx_Chr_Id :=   Lx_Chr_Id;
22571             Lx_Contracts_Out(1).Rx_Cle_Id :=   Lx_Contracts_ContNum(1).Rx_Cle_Id;
22572 
22573         END IF;
22574     ELSE
22575         Lx_Contracts_Out.DELETE;
22576 
22577     END IF;--Lx_Contracts_ContNum.COUNT > 0
22578 END IF;  ----Lx_Inp_Rec_03.Contract_Number IS NOT NULL
22579 
22580 
22581 IF ((Lx_Inp_Rec_03.Contract_id IS NULL) AND
22582     ((Lx_Inp_Rec_03.Contract_Number      Is NOT NULL) OR
22583      (Lx_Inp_Rec_03.Contract_Status_Code Is NOT NULL) OR
22584      (Lx_Inp_Rec_03.Start_Date_From      Is NOT NULL) OR
22585      (Lx_Inp_Rec_03.Start_Date_To        Is NOT NULL) OR
22586      (Lx_Inp_Rec_03.End_Date_From        Is NOT NULL) OR
22587      (Lx_Inp_Rec_03.End_Date_To          Is NOT NULL) OR
22588      (Lx_Inp_Rec_03.Date_Terminated_From Is NOT NULL) OR
22589      (Lx_Inp_Rec_03.Date_Terminated_To   Is NOT NULL) OR
22590      (Lx_Inp_Rec_03.contract_party_id    Is NOT NULL) OR
22591      (Lx_Inp_Rec_03.contract_group_id    Is NOT NULL) OR -- additional header level criteria added dtd Dec 17th, 2003
22592      (Lx_Inp_Rec_03.contract_renewal_type_code   Is NOT NULL))) THEN
22593 
22594     Get_Contract_Id
22595     (P_contract_id                  => NULL
22596     ,P_Contract_Num                 => Lx_Inp_Rec_03.Contract_Number
22597     ,P_Contract_Num_Modifier        => Lx_Inp_Rec_03.Contract_Number_Modifier
22598     ,P_START_DATE_FROM              => Lx_Inp_Rec_03.START_DATE_FROM
22599     ,P_START_DATE_TO                => Lx_Inp_Rec_03.START_DATE_TO
22600     ,P_END_DATE_FROM                => Lx_Inp_Rec_03.END_DATE_FROM
22601     ,P_END_DATE_TO                  => Lx_Inp_Rec_03.END_DATE_TO
22602     ,P_DATE_TERMINATE_FROM          => Lx_Inp_Rec_03.DATE_TERMINATED_FROM
22603     ,P_DATE_TERMINATE_TO            => Lx_Inp_Rec_03.DATE_TERMINATED_TO
22604     ,P_STATUS                       => Lx_Inp_Rec_03.CONTRACT_STATUS_CODE
22605     ,P_Cont_Pty_Id                  => Lx_Inp_Rec_03.contract_party_id
22606     ,P_cont_renewal_code            => Lx_Inp_Rec_03.contract_renewal_type_code
22607     ,P_authoring_org_id             => Lx_Inp_Rec_03.authoring_org_id
22608     ,P_contract_grp_id              => Lx_Inp_Rec_03.contract_group_id -- additional header level criteria added dtd Dec 17th, 2003
22609     ,X_Contracts                    => Lx_Contracts_ContNum
22610     ,X_Result                       => Lx_Result
22611     ,X_Return_Status                => Lx_Return_Status);
22612 
22613 
22614         IF Lx_Result <> G_TRUE THEN
22615             RAISE L_EXCEP_UNEXPECTED_ERR;
22616         END IF;
22617 
22618 
22619     l   := 0;
22620 
22621     IF Lx_Contracts_ContNum.COUNT > 0 THEN  --Lx_Contracts_ContNum.COUNT > 0
22622 
22623         IF Lx_Contracts_Out.COUNT > 0 THEN  --Lx_Contracts_Out.COUNT > 0
22624 
22625            FOR I in Lx_Contracts_ContNum.First .. Lx_Contracts_ContNum.LAST LOOP
22626 
22627             FOR K in Lx_Contracts_Out.FIRST .. Lx_Contracts_Out.LAST LOOP
22628 
22629                 IF Lx_Contracts_ContNum(i).Rx_Chr_Id = Lx_Contracts_Out(k).Rx_Chr_Id THEN
22630 
22631                     l   := l+1;
22632                     Lx_Contracts_02(l).Rx_Chr_Id := Lx_Contracts_Out(k).Rx_Chr_Id;
22633                     Lx_Contracts_02(l).Rx_Cle_Id := Lx_Contracts_Out(k).Rx_Cle_Id;
22634                     Lx_Contracts_02(l).Rx_Pty_Id := Lx_Contracts_Out(k).Rx_Pty_Id;
22635 
22636                 END IF;
22637 
22638             END LOOP;
22639            END LOOP;
22640 
22641             Lx_Contracts_Out.DELETE;
22642             Lx_Contracts_Out := Lx_Contracts_02;
22643             Lx_Contracts_02.DELETE;
22644 
22645         ELSE
22646 
22647             Lx_Contracts_Out := Lx_Contracts_ContNum;
22648 
22649         END IF;    --Lx_Contracts_Out.COUNT > 0
22650 
22651     ELSE
22652 
22653         Lx_Contracts_Out.DELETE;
22654 
22655     END IF;
22656 
22657 END IF;
22658 
22659 
22660 IF  (( Lx_Inp_Tbl_01.COUNT=0 and G_Header_Data ='N')  OR
22661      ( Lx_Inp_Tbl_01.COUNT >0 and G_Header_Data ='N' and Lx_Contracts.COUNT>0 )OR
22662      ( Lx_Inp_Tbl_01.COUNT >0 and G_Header_Data ='Y' and Lx_Contracts.COUNT>0 and Lx_Contracts_Out.COUNT>0 ) OR
22663      ( Lx_Inp_Tbl_01.COUNT =0 and G_Header_Data ='Y' and Lx_Contracts_Out.COUNT>0)) then
22664 
22665   if Lx_contracts.count > 0 then
22666     Lx_Covlevel_lines_passed := 'Y';
22667   else
22668     Lx_Covlevel_lines_passed := 'N';
22669   end if;
22670 
22671     Get_Contract_Lines
22672         (P_Contracts               =>  Lx_Contracts_Out
22673         ,P_Contract_line_Rec       =>  Lx_Inp_Rec_02
22674         ,p_Covlevel_lines_passed   =>  Lx_Covlevel_lines_passed
22675         ,P_Request_Date            =>  Lx_request_date --Lx_Inp_Rec_03.Request_Date
22676         ,P_Entitlement_Check_YN    =>  Lx_Inp_Rec_03.entitlement_check_YN
22677         ,P_authoring_org_id        =>  Lx_Inp_Rec_03.authoring_org_id -- multi org security check
22678         ,X_Contracts_02            =>  Lx_Ent_ContractLiness
22679         ,X_Result                  =>  Lx_Result
22680         ,X_Return_Status   	       =>  Lx_Return_Status)   ;
22681 
22682 END IF;
22683 
22684         IF Lx_Result <> G_TRUE THEN
22685             RAISE L_EXCEP_UNEXPECTED_ERR;
22686         END IF;
22687 
22688 
22689     X_Contract_tbl        := Lx_Ent_ContractLiness;--Lx_Ent_Contracts;
22690     X_Return_Status       := Lx_Return_Status;
22691 
22692 EXCEPTION
22693 
22694   WHEN OTHERS THEN
22695 
22696       OKC_API.SET_MESSAGE
22697         (P_App_Name	  => G_APP_NAME_OKC
22698 	,P_Msg_Name	  => G_UNEXPECTED_ERROR
22699 	,P_Token1	  => G_SQLCODE_TOKEN
22700 	,P_Token1_Value	  => SQLCODE
22701 	,P_Token2	  => G_SQLERRM_TOKEN
22702 	,P_Token2_Value   => SQLERRM);
22703 
22704       OKC_API.SET_MESSAGE
22705         (P_App_Name	  => G_APP_NAME_OKC
22706 	,P_Msg_Name	  => G_DEBUG_TOKEN
22707 	,P_Token1	  => G_PACKAGE_TOKEN
22708 	,P_Token1_Value	  => G_PKG_NAME
22709 	,P_Token2	  => G_PROGRAM_TOKEN
22710 	,P_Token2_Value   => 'Search_Contracts_Lines');
22711 
22712    --  X_Result            := G_FALSE;
22713      X_Return_Status     := G_RET_STS_UNEXP_ERROR;
22714 
22715 END Search_Contract_lines; -- Main End for Search_Contract_line
22716 
22717 -- Bug# 4899844
22718 
22719   FUNCTION Get_BPL_Offset_Start_Date
22720    (P_SVL_Start_Date IN DATE
22721    ,P_Offset_Timeunit IN VARCHAR2
22722    ,P_Offset_Duration IN NUMBER) RETURN DATE
22723   IS
22724 
22725    l_BPL_Offset_Start_Date  DATE;
22726 
22727   BEGIN
22728 
22729     IF (P_SVL_Start_Date IS NOT NULL)
22730      AND (P_Offset_Timeunit IS NOT NULL)
22731        AND (P_Offset_Timeunit IS NOT NULL) THEN
22732 
22733          l_BPL_Offset_Start_Date := OKC_Time_Util_Pub.Get_EndDate(P_SVL_Start_Date,P_Offset_Timeunit,P_Offset_Duration)+1;
22734 
22735     ELSE
22736 
22737          l_BPL_Offset_Start_Date  := P_SVL_Start_Date;
22738 
22739     END IF;
22740 
22741     RETURN l_BPL_Offset_Start_Date ;
22742 
22743   END Get_BPL_Offset_Start_Date;
22744 
22745 --
22746 
22747 END OKS_ENTITLEMENTS_PVT;