DBA Data[Home] [Help]

PACKAGE BODY: APPS.PQH_DE_GRADE_COMPUTE

Source


1 Package Body PQH_DE_GRADE_COMPUTE As
2 /* $Header: pqhgrdco.pkb 115.10 2002/12/10 06:10:00 vevenkat noship $ */
3 
4  Procedure PQH_DE_WC_COMPUTE
5  (p_Wrkplc_Vldtn_Ver_Id In  Number,
6   P_Business_Group_Id   In  Number,
7   P_WC_Grade	        Out NOCOPY Varchar2,
8   P_Wc_Case_group       Out NOCOPY Varchar2) is
9 
10  Cursor Jobftr_Unitperc is
11  Select Sum(Nvl(Unit_Percentage,0)) Untperc , Job_Feature_Code
12    from PQH_DE_WRKPLC_VLDTN_OPS a, PQH_DE_WRKPLC_VLDTN_Jobftrs b Where
13         WRKPLC_VLDTN_VER_ID  = p_Wrkplc_Vldtn_Ver_Id   and
14         a.Business_group_Id  = p_Business_Group_Id     and
15         a.WRKPLC_VLDTN_OP_ID = WRKPLC_VLDTN_OPR_JOB_ID and
16         WRKPLC_VLDTN_OPR_JOB_TYPE = 'O'                and
17         a.Business_group_Id  = b.Business_Group_Id
18         Group By Job_Feature_Code
19         Order By To_Number(Job_Feature_Code) Desc;
20 
21  Cursor Case_group_Algor(p_Entity_Id In Varchar2) is
22  Select Entity_Id, PARENT_HIERARCHY_NODE_ID, Nvl(Information2,0) Perc, Hierarchy_Version_Id
23    from Per_gen_Hierarchy_Nodes
24   Where Node_type = 'JOB_FTR'   and
25         Entity_Id = p_Entity_Id and
26         Hierarchy_Version_Id  in
27         (Select HIERARCHY_VERSION_ID  from
28                 Per_gen_Hierarchy_Versions
29           where Trunc(Sysdate) between Date_From and Nvl(date_To,Sysdate)
30             and Hierarchy_Id in
31            (Select Hierarchy_Id from
32                    Per_Gen_Hierarchy
33              Where type = 'REMUNERATION_REGULATION' and Business_Group_id=p_Business_Group_id))
34              Order By Perc Desc;
35 
36  Cursor Grade(p_Hierarchy_Node_id In Varchar2, p_Hierarchy_Version_Id In Number) is
37  Select a.Entity_Id, b.Entity_Id  from
38         Per_gen_Hierarchy_Nodes b, Per_gen_Hierarchy_Nodes a
39   Where a.Node_type             = 'CASE_GROUP'
40     and a.Hierarchy_Node_id     = p_Hierarchy_Node_id
41     and a.Hierarchy_Version_Id  = p_Hierarchy_Version_Id
42     and b.HIERARCHY_NODE_ID     = a.PARENT_HIERARCHY_NODE_ID
43     and b.Hierarchy_Version_Id  = a.Hierarchy_Version_Id;
44 
45  l_Grade_Status Varchar2(1) := 'N';
46  l_UntPerct     Pqh_de_wrkplc_Vldtn_Ops.Unit_Percentage%TYPE;
47  Begin
48   P_WC_Grade := -4;
49   Select Nvl(Sum(Unit_Percentage),0) into l_UntPerct
50    From Pqh_de_wrkplc_Vldtn_Ops
51    Where Wrkplc_Vldtn_Ver_Id = p_Wrkplc_Vldtn_Ver_Id;
52    If l_UntPerct <> 100 Then
53       P_WC_Grade := -1;
54       Return;
55    End If;
56    For JobFtrrec in Jobftr_Unitperc
57    Loop
58      For Percrec in Case_group_Algor(JobFtrrec.Job_Feature_Code)
59      Loop
60        If Percrec.Perc <= JobFtrrec.Untperc Then
61           Open Grade(Percrec.PARENT_HIERARCHY_NODE_ID, Percrec.Hierarchy_Version_Id);
62           Fetch Grade into P_Wc_Case_group, P_WC_Grade;
63           If Grade%ROWCOUNT > 1 then
64              Close Grade;
65              P_WC_Grade := -3;
66              Return;
67           End If;
68           If Grade%FOUND Then
69              Close Grade;
70              Return;
71           Else
72              Close Grade;
73              P_WC_Grade := -2;
74              Return;
75           End If;
76           Return;
77        End If;
78      End Loop;
79    End Loop;
80 Exception
81 When Others Then
82   Hr_utility.Set_message(8302,sqlerrm);
83   Hr_utility.raise_Error;
84 End;
85 
86  Procedure PQH_DE_CS_COMPUTE
87  (P_GVNumber             In  Number,
88   P_CS_Grade	         Out NOCOPY Number  ,
89   p_cs_Grdnam            Out NOCOPY Varchar2) is
90 
91  Cursor Derive_Grad Is
92  Select GRADE_ID
93    From PQH_DE_RESULT_SETS
94   Where P_GVNumber
95 Between GRADUAL_VALUE_NUMBER_FROM
96    and  GRADUAL_VALUE_NUMBER_To;
97  Begin
98 
99  hr_multi_message.enable_message_list;
100 
101  Open Derive_Grad;
102  Fetch Derive_Grad into P_CS_Grade;
103  If Derive_Grad%NOTFOUND Then
104     Close Derive_Grad;
105     Hr_utility.Set_message(8302,'PQH_DE_GRADE');
106     Hr_utility.raise_Error;
107  End If;
108  If Derive_Grad%ROWCOUNT > 1 then
109     Close Derive_Grad;
110     Hr_utility.Set_message(8302,'PQH_DE_GRADE');
111     Hr_utility.raise_Error;
112  End If;
113  p_cs_Grdnam := hr_general.Decode_grade(P_CS_Grade);
114  Close Derive_Grad;
115  Exception
116  when app_exception.application_exception then
117     if hr_multi_message.exception_add
118        (p_associated_column1 => 'PQH_DE_WRKPLC_VLDTN_VERS.GRADE'
119        ) then
120       -- raise;
121            NULL;
122     end if;
123  End;
124 
125  Function Lookup_Meaning
126  (P_Lookup_Type In Varchar2,
127   P_Lookup_Code In Varchar2)
128   Return Varchar2 Is
129   Cursor C1 is
130   Select Meaning
131   from Hr_lookups
132   where Lookup_Type  = p_lookup_Type and
133         Lookup_Code  = P_Lookup_Code and
134         Enabled_Flag = 'Y';
135   l_Meaning Varchar2(80);
136  Begin
137   Open C1;
138   Fetch C1 into l_Meaning;
139   Close C1;
140   Return L_Meaning;
141  End;
142 
143  Function UNFreeze(P_Wrkplc_Vldtn_vern_Id In Number)
144   Return Varchar2 is
145    c_Frz varchar2(1);
146    c_Frz_Enab_Dis number:=0;
147   cursor c1(Vald_id number) is
148    select count(*)  from
149      Hr_all_Positions_F
150      where INFORMATION_CATEGORY           = 'DE_PQH_WP'
151        and Nvl(Information5,Information9) = To_Char(Vald_id);
152   cursor c2(Vald_id number) is
153    select     FREEZE
154    from       pqh_de_wrkplc_vldtn_vers
155    where      WRKPLC_VLDTN_VER_ID = Vald_id;
156  Begin
157  OPEN c2(P_Wrkplc_Vldtn_vern_Id);
158  fetch c2 into c_Frz;
159  CLOSE c2;
160  if c_Frz = 'U' then
161   return 'U';
162  elsif c_Frz = 'F'
163  then
164   OPEN c1(P_Wrkplc_Vldtn_vern_Id);
165   fetch c1 into c_Frz_Enab_Dis;
166   CLOSE c1;
167    if c_Frz_Enab_Dis > 0
168      then
169             Return 'D';
170     else
171          Return 'F';
172    end if;
173  end if;
174  END;
175 End;